diff --git a/102.mpw.js b/102.mpw.js new file mode 100644 index 000000000..f38321227 --- /dev/null +++ b/102.mpw.js @@ -0,0 +1,2 @@ +var MPW;(()=>{var e,t,r,n,o={95856:()=>{},27355:(e,t,r)=>{"use strict";const n=10**8,o=(0,r(2262).qj)({current:null,main:{name:"mainnet",collateralInSats:1e4*n,isTestnet:!1,TICKER:"PIV",PUBKEY_PREFIX:["D"],STAKING_PREFIX:"S",PUBKEY_ADDRESS:30,STAKING_ADDRESS:63,SECRET_KEY:212,BIP44_TYPE:119,BIP44_TYPE_LEDGER:77,PROTOCOL_VERSION:70926,MASTERNODE_PORT:51472,Explorers:[{name:"rockdev",url:"https://explorer.rockdev.org"},{name:"zkBitcoin",url:"https://zkbitcoin.com"},{name:"Duddino",url:"https://explorer.duddino.com"}],Nodes:[{name:"Duddino",url:"https://rpc.duddino.com/mainnet"}],Consensus:{UPGRADE_V6_0:void 0},coinbaseMaturity:100,budgetCycleBlocks:43200,proposalFee:50*n,proposalFeeConfirmRequirement:6,maxPaymentCycles:6,maxPayment:432e3*n,defaultColdStakingAddress:"SdgQDpS8jDRJDX8yK8m9KnTMarsE84zdsy"},testnet:{name:"testnet",collateralInSats:1e4*n,isTestnet:!0,TICKER:"tPIV",PUBKEY_PREFIX:["x","y"],STAKING_PREFIX:"W",PUBKEY_ADDRESS:139,STAKING_ADDRESS:73,SECRET_KEY:239,BIP44_TYPE:1,BIP44_TYPE_LEDGER:1,PROTOCOL_VERSION:70926,MASTERNODE_PORT:51474,Explorers:[{name:"rockdev",url:"https://testnet.rockdev.org"},{name:"duddino",url:"https://testnet.duddino.com"}],Nodes:[{name:"Duddino",url:"https://rpc.duddino.com/testnet"}],Consensus:{UPGRADE_V6_0:void 0},coinbaseMaturity:15,budgetCycleBlocks:144,proposalFee:50*n,proposalFeeConfirmRequirement:3,maxPaymentCycles:20,maxPayment:1440*n,defaultColdStakingAddress:"WmNziUEPyhnUkiVdfsiNX93H6rSJnios44"}});o.current=o.main;var i=r(17748),s=r(48764);function a(e){return s.Buffer.from(e).toString("hex")}function c(e=32){return crypto.getRandomValues(new Uint8Array(e))}function u(e,t,r){const n=e.length;if(n-r-t.length<0){const e="CRITICAL: Overflow detected ("+(n-r-t.length)+"), possible state corruption, backup and refresh advised.";throw new Error(e)}let o=0;for(;r{for(;;){o.current=o["mainnet"===e.data?"main":"testnet"];const t={};t.priv=c(),t.pub=f({pkBytes:t.priv}),postMessage(t)}}}},i={};function s(e){var t=i[e];if(void 0!==t)return t.exports;var r=i[e]={exports:{}};return o[e](r,r.exports,s),r.exports}s.m=o,s.x=()=>{var e=s.O(void 0,[812,776],(()=>s(27355)));return s.O(e)},e=[],s.O=(t,r,n,o)=>{if(!r){var i=1/0;for(l=0;l=o)&&Object.keys(s.O).every((e=>s.O[e](r[c])))?r.splice(c--,1):(a=!1,o0&&e[l-1][2]>o;l--)e[l]=e[l-1];e[l]=[r,n,o]},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,s.t=function(e,n){if(1&n&&(e=this(e)),8&n)return e;if("object"==typeof e&&e){if(4&n&&e.__esModule)return e;if(16&n&&"function"==typeof e.then)return e}var o=Object.create(null);s.r(o);var i={};t=t||[null,r({}),r([]),r(r)];for(var a=2&n&&e;"object"==typeof a&&!~t.indexOf(a);a=r(a))Object.getOwnPropertyNames(a).forEach((t=>i[t]=()=>e[t]));return i.default=()=>e,s.d(o,i),o},s.d=(e,t)=>{for(var r in t)s.o(t,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},s.f={},s.e=e=>Promise.all(Object.keys(s.f).reduce(((t,r)=>(s.f[r](e,t),t)),[])),s.u=e=>"./"+e+".mpw.js",s.miniCssF=e=>{},s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;s.g.importScripts&&(e=s.g.location+"");var t=s.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var n=r.length-1;n>-1&&!e;)e=r[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),s.p=e})(),(()=>{var e={102:1};s.f.i=(t,r)=>{e[t]||importScripts(s.p+s.u(t))};var t=self.webpackChunkMPW=self.webpackChunkMPW||[],r=t.push.bind(t);t.push=t=>{var[n,o,i]=t;for(var a in o)s.o(o,a)&&(s.m[a]=o[a]);for(i&&i(s);n.length;)e[n.pop()]=1;r(t)}})(),n=s.x,s.x=()=>Promise.all([s.e(812),s.e(776)]).then(n);var a=s.x();MPW=a})(); +//# sourceMappingURL=102.mpw.js.map \ No newline at end of file diff --git a/102.mpw.js.map b/102.mpw.js.map new file mode 100644 index 000000000..54a75ac9c --- /dev/null +++ b/102.mpw.js.map @@ -0,0 +1 @@ +{"version":3,"file":"./102.mpw.js","mappings":"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","sources":["webpack://MPW/webpack/runtime/chunk loaded","webpack://MPW/webpack/runtime/create fake namespace object","webpack://MPW/webpack/runtime/startup chunk dependencies","webpack://MPW/./scripts/chain_params.js","webpack://MPW/./scripts/utils.js","webpack://MPW/./scripts/encoding.js","webpack://MPW/./scripts/vanitygen_worker.js","webpack://MPW/webpack/bootstrap","webpack://MPW/webpack/runtime/define property getters","webpack://MPW/webpack/runtime/ensure chunk","webpack://MPW/webpack/runtime/get javascript chunk filename","webpack://MPW/webpack/runtime/get mini-css chunk filename","webpack://MPW/webpack/runtime/global","webpack://MPW/webpack/runtime/hasOwnProperty shorthand","webpack://MPW/webpack/runtime/make namespace object","webpack://MPW/webpack/runtime/publicPath","webpack://MPW/webpack/runtime/importScripts chunk loading","webpack://MPW/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (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((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var next = __webpack_require__.x;\n__webpack_require__.x = () => {\n\treturn Promise.all([\n\t\t__webpack_require__.e(812),\n\t\t__webpack_require__.e(776)\n\t]).then(next);\n};","import { reactive } from 'vue';\n\n// In most BTC-derived coins, the below parameters can be found in the 'src/chainparams.cpp' Mainnet configuration.\n// These below params share the same names as the CPP params, so finding and editing these is easy-peasy!\n// <[network_byte] [32_byte_payload] [0x01] [4_byte_checksum]>\nexport const PRIVKEY_BYTE_LENGTH = 38;\n\nexport const COIN_DECIMALS = 8;\nexport const COIN = 10 ** 8;\n\n/** The maximum gap (absence of transactions within a range of derived addresses) before an account search ends */\nexport const MAX_ACCOUNT_GAP = 20;\n\n/* Internal tweaking parameters */\n// A new encryption password must be 'at least' this long.\nexport const MIN_PASS_LENGTH = 6;\n\n/** BIP21 coin prefix */\nexport const BIP21_PREFIX = 'pivx';\n\n/* chainparams */\nexport const cChainParams = reactive({\n current: null,\n main: {\n name: 'mainnet',\n collateralInSats: 10000 * COIN,\n isTestnet: false,\n TICKER: 'PIV',\n PUBKEY_PREFIX: ['D'],\n STAKING_PREFIX: 'S',\n PUBKEY_ADDRESS: 30,\n STAKING_ADDRESS: 63,\n SECRET_KEY: 212,\n BIP44_TYPE: 119,\n BIP44_TYPE_LEDGER: 77,\n PROTOCOL_VERSION: 70926,\n MASTERNODE_PORT: 51472,\n // A list of Labs-trusted explorers\n Explorers: [\n // Display name Blockbook-compatible API base\n { name: 'rockdev', url: 'https://explorer.rockdev.org' },\n { name: 'zkBitcoin', url: 'https://zkbitcoin.com' },\n { name: 'Duddino', url: 'https://explorer.duddino.com' },\n ],\n Nodes: [{ name: 'Duddino', url: 'https://rpc.duddino.com/mainnet' }],\n Consensus: {\n // Network upgrades\n UPGRADE_V6_0: undefined,\n },\n coinbaseMaturity: 100,\n budgetCycleBlocks: 43200,\n proposalFee: 50 * COIN,\n proposalFeeConfirmRequirement: 6,\n maxPaymentCycles: 6,\n maxPayment: 10 * 43200 * COIN, // 43200 blocks of 10 PIV\n defaultColdStakingAddress: 'SdgQDpS8jDRJDX8yK8m9KnTMarsE84zdsy', // Labs Cold Pool\n },\n testnet: {\n name: 'testnet',\n collateralInSats: 10000 * COIN,\n isTestnet: true,\n TICKER: 'tPIV',\n PUBKEY_PREFIX: ['x', 'y'],\n STAKING_PREFIX: 'W',\n PUBKEY_ADDRESS: 139,\n STAKING_ADDRESS: 73,\n SECRET_KEY: 239,\n BIP44_TYPE: 1,\n BIP44_TYPE_LEDGER: 1,\n PROTOCOL_VERSION: 70926,\n MASTERNODE_PORT: 51474,\n // A list of Labs-trusted explorers\n Explorers: [\n // Display name Blockbook-compatible API base\n { name: 'rockdev', url: 'https://testnet.rockdev.org' },\n { name: 'duddino', url: 'https://testnet.duddino.com' },\n ],\n Nodes: [{ name: 'Duddino', url: 'https://rpc.duddino.com/testnet' }],\n Consensus: {\n // Network upgrades\n UPGRADE_V6_0: undefined,\n },\n coinbaseMaturity: 15,\n budgetCycleBlocks: 144,\n proposalFee: 50 * COIN,\n proposalFeeConfirmRequirement: 3,\n maxPaymentCycles: 20,\n maxPayment: 10 * 144 * COIN, // 144 blocks of 10 tPIV\n defaultColdStakingAddress: 'WmNziUEPyhnUkiVdfsiNX93H6rSJnios44', // Sparrow's Testnet Cold Pool\n },\n});\n// Set default chain\ncChainParams.current = cChainParams.main;\n","import { Buffer } from 'buffer';\nimport { sha256 } from '@noble/hashes/sha256';\n\nexport const pubKeyHashNetworkLen = 21;\nexport const pubChksum = 4;\nexport const pubPrebaseLen = pubKeyHashNetworkLen + pubChksum;\n\nexport function hexToBytes(str) {\n return Buffer.from(str, 'hex');\n}\n\nexport function bytesToHex(bytes) {\n return Buffer.from(bytes).toString('hex');\n}\n\n/**\n * Double SHA256 hash a byte array\n * @param {Array} buff - Bytes to hash\n * @returns {Uint8Array} Hash buffer\n */\nexport function dSHA256(buff) {\n return sha256(sha256(new Uint8Array(buff)));\n}\n\n/* --- UTILS --- */\n// Cryptographic Random-Gen\nexport function getSafeRand(nSize = 32) {\n return crypto.getRandomValues(new Uint8Array(nSize));\n}\n\nexport const MAP_ALPHANUMERIC =\n 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';\n\n/**\n * Generate a random Alpha-Numeric sequence\n * @param {number} nSize - The amount of characters to generate\n * @returns {string} - A random alphanumeric string of nSize length\n */\nexport function getAlphaNumericRand(nSize = 32) {\n let result = '';\n const randValues = getSafeRand(nSize);\n for (const byte of randValues) {\n const index = byte % MAP_ALPHANUMERIC.length;\n result += MAP_ALPHANUMERIC.charAt(index);\n }\n return result;\n}\n\n// Writes a sequence of Array-like bytes into a location within a Uint8Array\nexport function writeToUint8(arr, bytes, pos) {\n const arrLen = arr.length;\n // Sanity: ensure an overflow cannot occur, if one is detected, somewhere in MPW's state could be corrupted.\n if (arrLen - pos - bytes.length < 0) {\n const strERR =\n 'CRITICAL: Overflow detected (' +\n (arrLen - pos - bytes.length) +\n '), possible state corruption, backup and refresh advised.';\n throw new Error(strERR);\n }\n let i = 0;\n while (pos < arrLen) arr[pos++] = bytes[i++];\n}\n\n/** Convert a 2D array into a CSV string */\nexport function arrayToCSV(data) {\n return data\n .map(\n (row) =>\n row\n .map(String) // convert every value to String\n .map((v) => v.replaceAll('\"', '\"\"')) // escape double colons\n .map((v) => `\"${v}\"`) // quote it\n .join(',') // comma-separated\n )\n .join('\\r\\n'); // rows starting on new lines\n}\n","import { sha256 } from '@noble/hashes/sha256';\nimport { hexToBytes, bytesToHex, dSHA256 } from './utils.js';\nimport * as nobleSecp256k1 from '@noble/secp256k1';\nimport { ripemd160 } from '@noble/hashes/ripemd160';\nimport { cChainParams, PRIVKEY_BYTE_LENGTH } from './chain_params.js';\nimport {\n pubKeyHashNetworkLen,\n writeToUint8,\n getSafeRand,\n pubPrebaseLen,\n} from './utils.js';\n\nimport bs58 from 'bs58';\n\n/**\n * Compress an uncompressed Public Key in byte form\n * @param {Array | Uint8Array} pubKeyBytes - The uncompressed public key bytes\n * @returns {Array} The compressed public key bytes\n */\nexport function compressPublicKey(pubKeyBytes) {\n if (pubKeyBytes.length != 65)\n throw new Error('Attempting to compress an invalid uncompressed key');\n const x = pubKeyBytes.slice(1, 33);\n const y = pubKeyBytes.slice(33);\n\n // Compressed key is [key_parity + 2, x]\n return [y[31] % 2 === 0 ? 2 : 3, ...x];\n}\n\n/**\n * Network encode 32 bytes for a private key\n * @param {Uint8Array} pkBytes - 32 Bytes\n * @returns {Uint8Array} - The network-encoded Private Key bytes\n */\nexport function encodePrivkeyBytes(pkBytes) {\n const pkNetBytes = new Uint8Array(pkBytes.length + 2);\n pkNetBytes[0] = cChainParams.current.SECRET_KEY; // Private key prefix (1 byte)\n writeToUint8(pkNetBytes, pkBytes, 1); // Private key bytes (32 bytes)\n pkNetBytes[pkNetBytes.length - 1] = 1; // Leading digit (1 byte)\n return pkNetBytes;\n}\n\n/**\n * Generate a new private key OR encode an existing private key from raw bytes\n * @param {Uint8Array} pkBytesToEncode - Bytes to encode as a coin private key\n * @returns {PrivateKey} - The private key\n */\nexport function generateOrEncodePrivkey(pkBytesToEncode) {\n // Private Key Generation\n const pkBytes = pkBytesToEncode || getSafeRand();\n\n // Network Encoding\n const pkNetBytes = encodePrivkeyBytes(pkBytes);\n\n // Double SHA-256 hash\n const shaObj = dSHA256(pkNetBytes);\n\n // WIF Checksum\n const checksum = shaObj.slice(0, 4);\n const keyWithChecksum = new Uint8Array(34 + checksum.length);\n writeToUint8(keyWithChecksum, pkNetBytes, 0);\n writeToUint8(keyWithChecksum, checksum, 34);\n\n // Return both the raw bytes and the WIF format\n return { pkBytes, strWIF: bs58.encode(keyWithChecksum) };\n}\n\n/**\n * Derive a Secp256k1 network-encoded public key (coin address) from raw private or public key bytes\n * @param {Object} options - The object to deconstruct\n * @param {String} [options.publicKey] - The hex encoded public key. Can be both compressed or uncompressed\n * @param {Array | Uint8Array} [options.pkBytes] - An array of bytes containing the private key\n * @param {\"ENCODED\" | \"UNCOMPRESSED_HEX\" | \"COMPRESSED_HEX\"} options.output - Output\n * @return {String} the public key with the specified encoding\n */\nexport function deriveAddress({ pkBytes, publicKey, output = 'ENCODED' }) {\n if (!pkBytes && !publicKey) return null;\n const compress = output !== 'UNCOMPRESSED_HEX';\n // Public Key Derivation\n let pubKeyBytes = publicKey\n ? hexToBytes(publicKey)\n : nobleSecp256k1.getPublicKey(pkBytes, compress);\n\n if (output === 'UNCOMPRESSED_HEX') {\n if (pubKeyBytes.length !== 65) {\n // It's actually possible, but it's probably not something that we'll need\n throw new Error(\"Can't uncompress an already compressed key\");\n }\n return bytesToHex(pubKeyBytes);\n }\n\n if (pubKeyBytes.length === 65) {\n pubKeyBytes = compressPublicKey(pubKeyBytes);\n }\n\n if (pubKeyBytes.length != 33) {\n throw new Error('Invalid public key');\n }\n\n if (output === 'COMPRESSED_HEX') {\n return bytesToHex(pubKeyBytes);\n }\n\n // First pubkey SHA-256 hash\n const pubKeyHashing = sha256(new Uint8Array(pubKeyBytes));\n\n // RIPEMD160 hash\n const pubKeyHashRipemd160 = ripemd160(pubKeyHashing);\n\n // Network Encoding\n const pubKeyHashNetwork = new Uint8Array(pubKeyHashNetworkLen);\n pubKeyHashNetwork[0] = cChainParams.current.PUBKEY_ADDRESS;\n writeToUint8(pubKeyHashNetwork, pubKeyHashRipemd160, 1);\n\n // Double SHA-256 hash\n const pubKeyHashingSF = dSHA256(pubKeyHashNetwork);\n\n // Checksum\n const checksumPubKey = pubKeyHashingSF.slice(0, 4);\n\n // Public key pre-base58\n const pubKeyPreBase = new Uint8Array(pubPrebaseLen);\n writeToUint8(pubKeyPreBase, pubKeyHashNetwork, 0);\n writeToUint8(pubKeyPreBase, checksumPubKey, pubKeyHashNetworkLen);\n\n // Encode as Base58 human-readable network address\n return bs58.encode(pubKeyPreBase);\n}\n\n/**\n * Verify the integrity of an address\n * @param {string} strPubkey - A base58 encoded public key\n * @param {Object} [expectedKey] - The key type to check, defaults to current chain's `PUBKEY_ADDRESS`\n * @return {boolean|Error} `true` if valid, `false` if invalid\n */\nexport function verifyPubkey(\n strPubkey,\n expectedKey = cChainParams.current.PUBKEY_ADDRESS\n) {\n // Decode base58 and verify basic integrity\n try {\n const bDecoded = bs58.decode(strPubkey);\n if (bDecoded.length !== 25) return false;\n if (bDecoded[0] !== expectedKey) return false;\n\n // Sha256d hash the pubkey payload\n const bDoubleSHA = dSHA256(bDecoded.slice(0, 21));\n\n // Verify payload integrity via checksum\n const bChecksum = bDoubleSHA.slice(0, 4);\n const bChecksumPayload = bDecoded.slice(21);\n if (!bChecksum.every((byte, i) => byte === bChecksumPayload[i]))\n return false;\n\n // All is valid! (base58 format, payload and checksum integrity)\n return true;\n } catch (e) {\n // Definitely not valid (likely a bad base58 string)\n return false;\n }\n}\n\n// Verify the integrity of a WIF private key, optionally parsing and returning the key payload\nexport function verifyWIF(\n strWIF = '',\n fParseBytes = false,\n skipVerification = false\n) {\n // Convert from Base58\n const bWIF = bs58.decode(strWIF);\n\n if (!skipVerification) {\n // Verify the byte length\n if (bWIF.byteLength !== PRIVKEY_BYTE_LENGTH) {\n throw Error(\n 'Private key length (' +\n bWIF.byteLength +\n ') is invalid, should be ' +\n PRIVKEY_BYTE_LENGTH +\n '!'\n );\n }\n\n // Verify the network byte\n if (bWIF[0] !== cChainParams.current.SECRET_KEY) {\n // Find the network it's trying to use, if any\n const cNetwork = Object.keys(cChainParams)\n .filter((strNet) => strNet !== 'current')\n .map((strNet) => cChainParams[strNet])\n .find((cNet) => cNet.SECRET_KEY === bWIF[0]);\n // Give a specific alert based on the byte properties\n throw Error(\n cNetwork\n ? 'This private key is for ' +\n (cNetwork.isTestnet ? 'Testnet' : 'Mainnet') +\n ', wrong network!'\n : 'This private key belongs to another coin, or is corrupted.'\n );\n }\n\n // Perform SHA256d hash of the WIF bytes\n const shaHash = dSHA256(bWIF.slice(0, 34));\n\n // Verify checksum (comparison by String since JS hates comparing object-like primitives)\n const bChecksumWIF = bWIF.slice(bWIF.byteLength - 4);\n const bChecksum = shaHash.slice(0, 4);\n if (bChecksumWIF.join('') !== bChecksum.join('')) {\n throw Error(\n 'Private key checksum is invalid, key may be modified, mis-typed, or corrupt.'\n );\n }\n }\n\n return fParseBytes ? Uint8Array.from(bWIF.slice(1, 33)) : true;\n}\n\n// A convenient alias to verifyWIF that returns the raw byte payload\nexport function parseWIF(strWIF, skipVerification = false) {\n return verifyWIF(strWIF, true, skipVerification);\n}\n","import { cChainParams } from './chain_params.js';\nimport { deriveAddress } from './encoding.js';\nimport { getSafeRand } from './utils.js';\n\n/**\n * @param {MessageEvent<'main'|'testnet'>} event\n */\nonmessage = (event) => {\n while (true) {\n // Ensure we're using the correct network\n cChainParams.current =\n cChainParams[event.data === 'mainnet' ? 'main' : 'testnet'];\n const cKeypair = {};\n cKeypair.priv = getSafeRand();\n\n cKeypair.pub = deriveAddress({ pkBytes: cKeypair.priv });\n postMessage(cKeypair);\n }\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\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\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// the startup function\n__webpack_require__.x = () => {\n\t// Load entry module and return exports\n\t// This entry module depends on other loaded chunks and execution need to be delayed\n\tvar __webpack_exports__ = __webpack_require__.O(undefined, [812,776], () => (__webpack_require__(27355)))\n\t__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n\treturn __webpack_exports__;\n};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((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 and sibling chunks for the entrypoint\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"./\" + chunkId + \".mpw.js\";\n};","// This function allow to reference async chunks and sibling chunks for the entrypoint\n__webpack_require__.miniCssF = (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__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && !scriptUrl) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","// no baseURI\n\n// object to store loaded chunks\n// \"1\" means \"already loaded\"\nvar installedChunks = {\n\t102: 1\n};\n\n// importScripts chunk loading\nvar installChunk = (data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\tfor(var moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) runtime(__webpack_require__);\n\twhile(chunkIds.length)\n\t\tinstalledChunks[chunkIds.pop()] = 1;\n\tparentChunkLoadingFunction(data);\n};\n__webpack_require__.f.i = (chunkId, promises) => {\n\t// \"1\" is the signal for \"already loaded\"\n\tif(!installedChunks[chunkId]) {\n\t\tif(true) { // all chunks have JS\n\t\t\timportScripts(__webpack_require__.p + __webpack_require__.u(chunkId));\n\t\t}\n\t}\n};\n\nvar chunkLoadingGlobal = self[\"webpackChunkMPW\"] = self[\"webpackChunkMPW\"] || [];\nvar parentChunkLoadingFunction = chunkLoadingGlobal.push.bind(chunkLoadingGlobal);\nchunkLoadingGlobal.push = installChunk;\n\n// no HMR\n\n// no HMR manifest","// run startup\nvar __webpack_exports__ = __webpack_require__.x();\n"],"names":["deferred","leafPrototypes","getProto","next","COIN","current","main","name","collateralInSats","isTestnet","TICKER","PUBKEY_PREFIX","STAKING_PREFIX","PUBKEY_ADDRESS","STAKING_ADDRESS","SECRET_KEY","BIP44_TYPE","BIP44_TYPE_LEDGER","PROTOCOL_VERSION","MASTERNODE_PORT","Explorers","url","Nodes","Consensus","UPGRADE_V6_0","undefined","coinbaseMaturity","budgetCycleBlocks","proposalFee","proposalFeeConfirmRequirement","maxPaymentCycles","maxPayment","defaultColdStakingAddress","testnet","bytesToHex","bytes","Buffer","from","toString","nSize","crypto","getRandomValues","Uint8Array","arr","pos","arrLen","length","strERR","Error","i","deriveAddress","pkBytes","publicKey","output","compress","pubKeyBytes","str","x","slice","compressPublicKey","pubKeyHashing","sha256","pubKeyHashRipemd160","ripemd160","pubKeyHashNetwork","buff","checksumPubKey","pubKeyPreBase","pubKeyHashNetworkLen","onmessage","event","data","cKeypair","priv","pub","postMessage","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","__webpack_modules__","m","__webpack_exports__","O","result","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","Object","keys","every","key","splice","r","getPrototypeOf","obj","t","value","mode","this","__esModule","then","ns","create","def","indexOf","getOwnPropertyNames","forEach","d","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","reduce","promises","u","miniCssF","g","globalThis","Function","window","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","scriptUrl","importScripts","location","document","currentScript","src","scripts","getElementsByTagName","replace","p","installedChunks","chunkLoadingGlobal","self","parentChunkLoadingFunction","push","bind","moreModules","runtime","pop"],"sourceRoot":""} \ No newline at end of file diff --git a/12.mpw.js b/12.mpw.js new file mode 100644 index 000000000..7b52d3314 --- /dev/null +++ b/12.mpw.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkMPW=self.webpackChunkMPW||[]).push([[12],{79012:t=>{t.exports='\n\x3c!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --\x3e\n\n\n\n\n\n\n\n\n\t\n\t\n\n\n\n\t\n\t\n\n\n\n'}}]); \ No newline at end of file diff --git a/120.mpw.js b/120.mpw.js deleted file mode 100644 index 2faaaa2af..000000000 --- a/120.mpw.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkMPW=self.webpackChunkMPW||[]).push([[120],{35120:(e,r,t)=>{t.r(r),t.d(r,{default:()=>o});const o={amount:"Montant",staking:"Staking",wallet:"Portefeuille",display:"Afficher",activity:"Activité",yes:"Oui",no:"Non",navDashboard:"Tableau de Bord",navStake:"Stake",navMasternode:"Masternode",navGovernance:"Gouvernance",navSettings:"Paramètres",footerBuiltWithPivxLabs:"Construit avec 💜 par PIVX Labs 🇫🇷",loading:"Chargement",loadingTitle:"Mon portefeuille PIVX",dashboardTitle:"Tableau de bord",dCardOneTitle:"Créer le",dCardOneSubTitle:"Nouveau portefeuille",dCardOneDesc:"Créer un nouveau portefeuille PIVX, qui offre les méthodes de sauvegarde et de sécurité les plus sûres.",dCardOneButton:"Créer un nouveau portefeuille",dCardTwoTitle:"Créer un nouveau",dCardTwoSubTitle:"Portefeuille Vanité",dCardTwoDesc:"Créer un portefeuille avec un préfixe personnalisé, cela peut prendre beaucoup de temps !",dCardTwoButton:"Créer un portefeuille Vanity",dCardThreeTitle:"Accédez à votre",dCardThreeSubTitle:"Portefeuille de hardware",dCardThreeDesc:"Utilisez votre portefeuille Ledger Hardware avec l'interface familière de l'application MPW.",dCardThreeButton:"Accéder à mon Ledger",dCardFourTitle:"Aller à",dCardFourSubTitle:"Mon portefeuille",dCardFourDesc:"Importer un portefeuille PIVX à l'aide d'une clé privée, d'un xpriv ou d'une phrase de démarrage.",dCardFourButtonI:"Importer le portefeuille",dCardFourButtonA:"Accéder à mon portefeuille",vanityPrefixNote:"Remarque : les adresses commencent toujours par :",vanityPrefixInput:"Adresse Préfixe",thisIsYourSeed:"Voici votre phrase d'introduction:",writeDownSeed:"Notez-le à un seul endroit. Vous ne verrez que cela une fois!",doNotShareWarning:"Toute personne disposant d'une copie peut accéder à à tousvotre fonds",doNotShare:"Ne le partagez avec personne.",digitalStoreNotAdvised:"NON il est conseillé de les stocker sous forme numérique.",optionalPassphrase:"Phrase mot de passe Facultatif (BIP39)",writtenDown:"J'ai écrit ma phrase d'introduction",importSeedValid:"La phrase source est valide !",importSeedError:"La phrase source n'est pas valide !",importSeedErrorSize:"Une phrase clé doit comporter entre 12 et 24 mots !",importSeedErrorTypo:"Seed Phrase contient des fautes de frappe ! Vérifiez soigneusement votre saisie",importSeedErrorSkip:"La phrase de semence semble invalide, mais l'utilisateur n'a pas tenu compte de l'avertissement.",gettingStarted:"Démarrer",secureYourWallet:"Protégez votre portefeuille",unlockWallet:"Déverrouiller le portefeuille",lockWallet:"Fermeture du portefeuille",encryptWallet:"Cryptage du portefeuille",encryptPasswordCurrent:"Mot de passe actuel",encryptPasswordFirst:"Entrer le mot de passe",encryptPasswordSecond:"Réintroduire le mot de passe",encrypt:"Crypter",changePassword:"Changer le mot de passe",balanceBreakdown:"Composition de la balance",viewOnExplorer:"Voir dans l'explorateur",export:"Exporter",refreshAddress:"Mise à jour de l'Adresse",redeemOrCreateCode:"Ouvrir ou Créer un Code",address:"Adresse",receivingAddress:"Adresse de réception",sendAmountCoinsMax:"Max",paymentRequestMessage:"Description (de l'opérateur)",send:"Envoyer",receive:"Recevoir",contacts:"Contacts",name:"Nom",username:"Nom d'utilisateur",addressOrXPub:"Adresse ou XPub",back:"Retour",chooseAContact:"Sélectionner un contact",createContact:"Création d'un contact",encryptFirstForContacts:'Une fois que vous avez touché "{button}" dans le tableau de bord, vous pouvez créer un contact pour faciliter la réception des PIV !',shareContactURL:"Partager l'URL du contact",setupYourContact:"Configurez votre contact",receiveWithContact:"Recevoir par un simple contact basé sur le nom d'utilisateur",onlyShareContactPrivately:"Seul partager votre contact avec des personnes de confiance (famille, amis)",changeTo:"Modifier pour",contact:"Contact",xpub:"XPub",addContactTitle:"Ajouter {strName} aux contacts",addContactSubtext:"Une fois ajouté, vous pourrez envoyer des transactions à {strName} par leur nom (en tapant ou en cliquant), plus d'adresses, c'est facile.",addContactWarning:"S'assurer qu'il s'agit bien d'un produit authentique \"{strName}\", n'acceptez pas de demandes de contact provenant de sources inconnues ! ",editContactTitle:'Changer "{strName}" Contact',newName:"Nouvelle dénomination",removeContactTitle:"Supprimer {strName}?",removeContactSubtext:"Êtes-vous sûr de vouloir supprimer {strName} de vos contacts ?",removeContactNote:"Vous pouvez les ajouter à tout moment à l'avenir.",privateKey:"Clé privée",viewPrivateKey:"Montrer la clé privée ?",privateWarning1:"Assurez-vous que personne ne regarde votre écran.",privateWarning2:"Toute personne possédant cette clé peut voler vos fonds",viewKey:"Voir la clé",pivxPromos:"est un système décentralisé de codes cadeaux d'une valeur de PIV",redeemInput:"Introduisez votre code'PIVX Promos",createName:"Nom de la promotion (facultatif)",createAmount:"Valeur promotionnelle",stake:"Stake",stakeUnstake:"Unstake",ownerAddress:"(Optionnel) Adresse du propriétaire",rewardHistory:"Historique des récompenses",loadMore:"Chargez plus",mnControlYour:"Contrôlez votre",mnSubtext:"À partir de ce guide, vous pouvez créer et accéder à un ou plusieurs masternodes.",govSubtext:"Dans cet onglet, vous pouvez consulter les propositions et, si vous disposez d'un masternode, participer au DAO et voter!",govMonthlyBudget:"Budget Mensuel",govAllocBudget:"Budget Attribué",govNextPayout:"Prochain paiement du Trésor",govTableStatus:"ÉTAT",govTableName:"NOM",govTablePayment:"PAIEMENT",govTableVotes:"VOTES",govTableVote:"VOTE",contestedProposalsDesc:" Il s'agit des propositions qui ont reçu un nombre écrasant de votes négatifs, ce qui en fait probablement des spams ou des propositions très contestables.",settingsCurrency:"Choisissez une devise d'affichage :",priceProvidedBy:"Les prix sont fournis par",settingsDecimals:"Solde Décimales :",settingsExplorer:"Choisissez un explorateur :",settingsLanguage:"Choisissez une langue :",settingsPivxNode:"Choisir un node PIVX :",settingsAutoSelectNet:"Sélection Automatique des Explorateurs et des Nodes",settingsAnalytics:"Choisissez votre niveau d'analyse :",settingsToggleDebug:"Mode de débogage",settingsToggleTestnet:"Mode testnet",settingsToggleAdvancedMode:"Mode avancé",settingsToggleAdvancedModeSubtext:"Cela permet d'accéder à des fonctionnalités et à une personnalisation plus poussées, mais peut s'avérer difficile et potentiellement dangereux pour les utilisateurs inexpérimentés !",netSwitchUnsavedWarningTitle:"Votre {network} portefeuille n'est pas sauvé !",netSwitchUnsavedWarningSubtitle:"Votre {network} compte est en danger !",netSwitchUnsavedWarningSubtext:"Si vous changez de compte {network} avant de l'avoir sauvegardé, vous perdrez le compte! ",netSwitchUnsavedWarningConfirmation:"Êtes-vous vraiment sûr ?",transparencyReport:"Rapport de transparence",hit:"Un ping indiquant le chargement d'une application, aucune donnée unique n'est envoyée.",time_to_sync:"Le temps en secondes que le MPW a pris pour se synchroniser pour la dernière fois.",transaction:"Un ping indiquant un Tx, aucune donnée unique n'est envoyée mais peut être déduite de l'heure sur le réseau.",analyticDisabled:"Désactivé",analyticMinimal:"Minimum",analyticBalanced:"Solde",MIGRATION_ACCOUNT_FAILURE_TITLE:"Échec de la récupération du compte",MIGRATION_ACCOUNT_FAILURE_HTML:"Une erreur s'est produite lors de la récupération de votre compte.
Veuillez réimporter votre portefeuille en utilisant la clé suivante :",ID:"ID",time:"Heure",description:"Description",activityBlockReward:"Récompense en bloc",activitySentTo:"Envoyé à {r}",activitySelf:"soi-même",activityShieldedAddress:"Adresse protégée",activityReceivedFrom:"Reçu de {s}",activityDelegatedTo:"Délégué à {r}",activityUndelegated:"Non délégué",activityUnknown:"Transaction inconnu",password:"Mot de passe",walletUnlock:"Déverrouillez votre portefeuille",walletPassword:"Mot de passe du portefeuille",walletUnlockCreateMN:"Débloquez pour créer votre Masternode!",walletUnlockMNStart:"Débloquez pour démarrer votre Masternode!",walletUnlockProposal:"Débloquez pour créer une proposition! Débloquez pour démarrer votre Masternode !",walletUnlockPromo:"Déverrouillez pour finaliser votre code promo!",walletUnlockTx:"Déverrouillez pour envoyer votre transaction!",walletUnlockStake:"Déverrouillez pour Staker votre",walletUnlockUnstake:"Débloquer pour Unstake votre",changelogTitle:"Quoi de neuf en",popupSetColdAddr:"Définissez votre adresse de Cold Staking",popupCurrentAddress:"Adresse actuelle :",popupColdStakeNote:"Une Cold Address mise des pièces en votre nom, mais ne peut pas en dépenser. Il est donc possible d'utiliser Cold Address d'un inconnu en toute sécurité !",popupExample:"Exemple :",popupWalletLock:"Voulez-vous verrouiller votre portefeuille ?",popupWalletWipe:"Voulez-vous effacer les données privées de votre portefeuille ?",popupWalletLockNote:"Vous devrez saisir votre mot de passe pour accéder à vos fonds.",popupWalletWipeNote:"Vous perdrez l'accès à vos fonds si vous n'avez pas sauvegardé votre clé privée ou votre phrase de base.",popupSeedPhraseBad:"Phrase semence inattendue",popupSeedPhraseBadNote:"La phrase de semence est soit invalide, soit n'a pas été généré par MPW.
Voulez-vous toujours continuer ?",popupCreateProposal:"Créer une proposition",popupCreateProposalCost:"Coût",popupProposalName:"Nom de la proposition",popupProposalAddress:"Adresse de la proposition (optionnel)",popupProposalDuration:"Durée en cycles",popupProposalPerCycle:"par cycle",popupProposalEncryptFirst:'Vous devez appuyer sur "{button}" avant de pouvoir créer des propositions !',popupProposalVoteHash:"Vote Hash :",popupProposalFinalisedNote:"Félicitations pour le lancement de votre proposition!
Les propriétaires de Masternodes peuvent utiliser votre Hash de vote pour voter à partir de portefeuilles autres que MPW, alors assurez-vous d'ajouter ceci à votre message sur le forum, le cas échéant!",popupProposalFinalisedSignoff:"Bonne chance dans votre voyage à travers le DAO, PIVian!",popupHardwareAddrCheck:"Veuillez confirmer qu'il s'agit bien de l'adresse figurant sur votre",proposalFinalisationConfirming:"Confirmant...",proposalFinalisationRemaining:"restants",proposalFinalisationExpired:"Proposition expirée",proposalFinalisationReady:"Prêt à soumettre",proposalPassing:"PASSANT",proposalFailing:"ÉCHOUANT",proposalTooYoung:"TROP JEUNE",proposalFunded:"FINANCÉE",proposalNotFunded:"NON FINANCÉE",proposalPaymentsRemaining:"l'installation(s) restants
de",proposalPaymentTotal:"totale",proposalNetYes:"Net Oui",popupConfirm:"Confirmer",popupClose:"Fermer",popupCancel:"Annuler",chartPublicAvailable:"Disponible au public",timeDays:"Jours",timeHours:"Heures",timeMinutes:"Minutes",timeSeconds:"Secondes",unhandledException:"Exception non traitée.",ALERTS:"<-- DO NOT EDIT THIS LINE! All below entries are for Alert Popups",INTERNAL_ERROR:"Erreur interne, veuillez réessayer plus tard",FAILED_TO_IMPORT:"Échec de l'importation ! Mot de passe invalide",FAILED_TO_IMPORT_HARDWARE:"Erreur d'importation du Hardware Wallet.",UNSUPPORTED_CHARACTER:"Le caractère {char} n'est pas pris en charge dans les adresses ! (Non compatible avec Base58)",UNSUPPORTED_WEBWORKERS:"Ce navigateur ne prend pas en charge Web Workers (JS multi-threaded), Malheureusement, il n'est pas possible de générer des portefeuilles Vanity!",INVALID_ADDRESS:"Adresse PIVX non valide !
{address}",TESTNET_ENCRYPTION_DISABLED:"Modo Testnet activé !
Cryptage du portefeuille désactivé",PASSWORD_TOO_SMALL:"Ce mot de passe est un peu court !
Utiliser au moins {MIN_PASS_LENGTH} caractères.",PASSWORD_DOESNT_MATCH:"Vos mots de passe ne correspondent pas!",NEW_PASSWORD_SUCCESS:"Vous êtes protégé ! 🔐
Bravo, PIVian blindé !",INCORRECT_PASSWORD:"Mot de passe incorrect!",INVALID_AMOUNT:"Valeur non valide!
",TX_SENT:"Transaction envoyée!",TX_FAILED:"Échec de la Transaction!",QR_SCANNER_BAD_RECEIVER:"n'est pas un récepteur de paiement valide",VALIDATE_AMOUNT_LOW:"
La valeur minimale est de {minimumAmount} {coinTicker}!",VALIDATE_AMOUNT_DECIMAL:"{coinDecimal} limite décimale dépassée",SUCCESS_STAKING_ADDR:"Adresse de Staking défini!
Poursuivre avec le unstake!",STAKE_ADDR_SET:"Adresse du Cold Staking défini!
Cette adresse sera utilisée à l'avenir pour la réalisation de Stake..",STAKE_ADDR_BAD:"L'adresse du Cold Staking n'est pas valide !",CONFIRM_UNSTAKE_H_WALLET:"Confirmer votre Unstake
Confirmez le TX dans votre {strHardwareName}",CONFIRM_TRANSACTION_H_WALLET:"Confirmez votre transaction
Confirmez le TX dans votre {strHardwareName}",SUCCESS_STAKING_ADDR_SET:"Adresse de Staking définie!
>Poursuivre avec la stake",STAKE_NOT_SEND:"Dans ce cas, utilisez l'écran Stake, et non l'écran d'envoi!",BAD_ADDR_LENGTH:"Adresse PIVX non valide!
Préfixe non valide {address} (Vous devez commencer par{addressPrefix})",BAD_ADDR_PREFIX:"Adresse PIVX non valide!
Préfixe non valide {address} (Vous devez commencer par{addressPrefix})",SENT_NOTHING:"Vous ne pouvez pas envoyer 'rien",MORE_THEN_8_DECIMALS:"limite de 8 décimales dépassée",SAVE_WALLET_PLEASE:"Gardez votre portefeuille!
Tableau de bord ➜ Définir le mot de passe",BACKUP_OR_ENCRYPT_WALLET:"Cryptez et/ou sauvegardez vos clés avant de partir, car vous risquez de les perdre!",NO_CAMERAS:"Cet appareil n'est pas équipé d'une caméra!",STAKING_LEDGER_NO_SUPPORT:"Ledger n'est pas compatible avec Cold Staking",CONNECTION_FAILED:"Échec de la synchronisation! Réessayer plus tard.
Vous pouvez essayer de vous reconnecter via Paramètres.",MN_NOT_ENABLED:"Votre masternode n'est pas encore activé!",VOTE_SUBMITTED:"Vote envoyé!",VOTED_ALREADY:"Vous avez déjà voté sur cette proposition ! Attendre 1 heure",VOTE_SIG_BAD:"Échec de la vérification de la signature, vérifiez la clé privée de votre masternode maître.",MN_CREATED_WAIT_CONFS:"Masternode créé!
Attendre 15 confirmations pour continuer",MN_ACCESS_BEFORE_VOTE:"Accéder à un masternode avant de voter!",MN_OFFLINE_STARTING:"Votre masternode est hors ligne, essayons de le démarrer",MN_STARTED:"Masternode a débuté!",MN_RESTARTED:"Masternode redémarré!",MN_STARTED_ONLINE_SOON:"Masternode initié!
Il sera bientôt en ligne",MN_START_FAILED:"Masternode initié !",MN_RESTART_FAILED:"Masternode redémarré!",MN_DESTROYED:"Masternode détruit!
Vous pouvez maintenant dépenser vos pièces.",MN_STATUS_IS:"L'état de votre masternode est",MN_STATE:"L'état de votre masternode est {state}",MN_BAD_IP:"L'adresse IP n'est pas valide!",MN_NOT_ENOUGH_COLLAT:"Vous avez besoin {amount} plus {ticker} pour créer un Masternode!",MN_ENOUGH_BUT_NO_COLLAT:"Vous disposez d'un solde suffisant pour un Masternode, mais pas d'UTXO comme garantie valide de {amount} {ticker}",MN_COLLAT_NOT_SUITABLE:"Il ne s'agit pas d'une UTXO appropriée pour un Masternode",MN_CANT_CONNECT:"Impossible de se connecter au nœud RPC!",CONTACTS_ENCRYPT_FIRST:'Vous devez appuyer sur "{button}" avant de pouvoir utiliser les contacts !',CONTACTS_NAME_REQUIRED:"Un nom est nécessaire !",CONTACTS_NAME_TOO_LONG:"Le nom est trop long !",CONTACTS_CANNOT_ADD_YOURSELF:"Vous ne pouvez pas vous ajouter comme contact !",CONTACTS_ALREADY_EXISTS:"Le contact existe déjà!
Vous avez déjà enregistré ce contact",CONTACTS_NAME_ALREADY_EXISTS:"Le nom du contact existe déjà!
Il pourrait s'agir d'une tentative d'hameçonnage, attention!",CONTACTS_EDIT_NAME_ALREADY_EXISTS:'Le contact existe déjà!
Un contact est déjà appelé "{strNewName}"!',CONTACTS_KEY_ALREADY_EXISTS:"Le contact existe déjà, mais sous un nom différent!
Vous avez {newName} sauvegardé comme {oldName} dans vos contacts",CONTACTS_NOT_A_CONTACT_QR:"Ce n'est pas un QR de contact!",CONTACTS_ADDED:"Nouveau contact ajouté!
{strName} a été ajouté, bravo!",CONTACTS_YOU_HAVE_NONE:"Vous n'avez pas de contacts!",SWITCHED_EXPLORERS:"Explorateur échangé!
En utilisant maintenant le {explorerName}",SWITCHED_NODE:"Nœud commuté!
L'utilisation de la {node}",SWITCHED_ANALYTICS:"Niveau d'analyse modifié!
Il est maintenant {level}",SWITCHED_SYNC:"Changement de mode de synchronisation !
Utiliser la synchronisation maintenant {sync}",UNABLE_SWITCH_TESTNET:"Il n'est pas possible de passer en mode Testnet !
Un portefeuille est déjà chargé.",WALLET_OFFLINE_AUTOMATIC:"Le mode hors-ligne est actif !
Veuillez désactiver le mode hors connexion pour les transactions automatiques",WALLET_UNLOCK_IMPORT:"S'il vous plaît, {unlock} votre portefeuille avant d'envoyer des transactions !",WALLET_FIREFOX_UNSUPPORTED:"O Firefox ne supporte pas cela !
Malheureusement, Firefox ne prend pas en charge les portefeuilles hardware",WALLET_HARDWARE_WALLET:"Portefeuille de Hardware prêt!
Gardez votre {hardwareWallet} connecté, déverrouillé et dans l'application PIVX",WALLET_CONFIRM_L:"Confirmez l'importation dans votre Ledger",WALLET_NO_HARDWARE:"Aucun dispositif disponible
Il n'a pas été possible de trouver un portefeuille de hardware; brancher et déverrouiller!",WALLET_HARDWARE_UDEV:"",WALLET_HARDWARE_NO_ACCESS:"Le système d'exploitation refuse l'accès Veuillez vérifier les paramètres de votre système d'exploitation.",WALLET_HARDWARE_CONNECTION_LOST:"Perte de connexion avec le {hardwareWallet}
Oops! Il semble que {hardwareWalletProductionName} a été déconnecté au milieu de l'opération.",WALLET_HARDWARE_BUSY:"{hardwareWallet} est en mode veille
Veuillez débloquer le vôtre {hardwareWalletProductionName} ou compléter l'introduction actuelle",WALLET_HARDWARE_ERROR:"b> {hardwareWallet}

{error}",CONFIRM_POPUP_VOTE:"Confirmer le vote",CONFIRM_POPUP_VOTE_HTML:"Êtes-vous sûr ? Il faut 60 minutes pour changer de vote",CONFIRM_POPUP_TRANSACTION:"Confirmez votre transaction",CONFIRM_POPUP_MN_P_KEY:"Clé privée de votre Masternode",CONFIRM_POPUP_MN_P_KEY_HTML:"
Enregistrez cette clé privée et copiez-la dans votre configuration VPS.
",CONFIRM_POPUP_VERIFY_ADDR:"Vérifiez votre adresse",MIGRATION_MASTERNODE_FAILURE:"Échec de la récupération de votre masternode. S'il vous plaît, le réimporter.",MIGRATION_ACCOUNT_FAILURE:"Échec de la récupération de votre compte. S'il vous plaît, le réimporter.",APP_INSTALLED:"Application installée!"}}}]); -//# sourceMappingURL=120.mpw.js.map \ No newline at end of file diff --git a/120.mpw.js.map b/120.mpw.js.map deleted file mode 100644 index d76d98ee3..000000000 --- a/120.mpw.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"./120.mpw.js","mappings":"wHAAA,SAOIA,OAAQ,UACRC,QAAS,UACTC,OAAQ,eACRC,QAAS,WACTC,SAAU,WACVC,IAAK,MACLC,GAAI,MAGJC,aAAc,kBACdC,SAAU,QACVC,cAAe,aACfC,cAAe,cACfC,YAAa,aAGbC,wBAAyB,uCAGzBC,QAAS,aACTC,aAAc,wBAGdC,eAAgB,kBAChBC,cAAe,WACfC,iBAAkB,uBAClBC,aACI,0GACJC,eAAgB,gCAEhBC,cAAe,mBACfC,iBAAkB,sBAClBC,aACI,4FACJC,eAAgB,+BAEhBC,gBAAiB,kBACjBC,mBAAoB,2BACpBC,eACI,+FACJC,iBAAkB,uBAElBC,eAAgB,UAChBC,kBAAmB,mBACnBC,cACI,oGACJC,iBAAkB,2BAClBC,iBAAkB,6BAGlBC,iBAAkB,oDAClBC,kBAAmB,kBAGnBC,eAAgB,qCAChBC,cACI,uEACJC,kBACI,gFACJC,WAAY,gCACZC,uBACI,mEACJC,mBAAoB,yCACpBC,YAAa,sCAGbC,gBAAiB,gCACjBC,gBAAiB,sCACjBC,oBAAqB,sDACrBC,oBACI,kFACJC,oBACI,mGAGJC,eAAgB,WAChBC,iBAAkB,8BAClBC,aAAc,gCACdC,WAAY,4BAGZC,cAAe,2BACfC,uBAAwB,sBACxBC,qBAAsB,yBACtBC,sBAAuB,+BACvBC,QAAS,UACTC,eAAgB,0BAGhBC,iBAAkB,4BAClBC,eAAgB,0BAChBC,OAAQ,WACRC,eAAgB,2BAChBC,mBAAoB,0BAGpBC,QAAS,UACTC,iBAAkB,uBAClBC,mBAAoB,MACpBC,sBAAuB,+BACvBC,KAAM,UAGNC,QAAS,WACTC,SAAU,WACVC,KAAM,MACNC,SAAU,oBACVC,cAAe,kBACfC,KAAM,SACNC,eAAgB,0BAChBC,cAAe,wBACfC,wBACI,uIACJC,gBAAiB,4BACjBC,iBAAkB,2BAClBC,mBACI,+DACJC,0BACI,qFAGJC,SAAU,gBACVC,QAAS,UACTC,KAAM,OAENC,gBAAiB,iCACjBC,kBACI,6IACJC,kBACI,8IAEJC,iBAAkB,8BAClBC,QAAS,wBAETC,mBAAoB,uBACpBC,qBACI,kEACJC,kBAAmB,oDAGnBC,WAAY,aACZC,eAAgB,0BAChBC,gBAAiB,oDACjBC,gBAAiB,0DACjBC,QAAS,cAITC,WACI,mEAEJC,YAAa,qCACbC,WAAY,mCACZC,aAAc,wBAGdC,MAAO,QACPC,aAAc,UACdC,aAAc,sCACdC,cAAe,6BACfC,SAAU,eAGVC,cAAe,kBACfC,UACI,oFAGJC,WACI,mIACJC,iBAAkB,iBAClBC,eAAgB,kBAChBC,cAAe,8BACfC,eAAgB,OAChBC,aAAc,MACdC,gBAAiB,WACjBC,cAAe,QACfC,aAAc,OACdC,uBACI,8JAGJC,iBAAkB,sCAClBC,gBAAiB,4BACjBC,iBAAkB,oBAClBC,iBAAkB,8BAClBC,iBAAkB,0BAClBC,iBAAkB,yBAClBC,sBACI,sDACJC,kBAAmB,sCACnBC,oBAAqB,mBACrBC,sBAAuB,eACvBC,2BAA4B,cAC5BC,kCACI,wLAGJC,6BACI,iDACJC,gCAAiC,yCACjCC,+BACI,4FACJC,oCAAqC,2BAGrCC,mBAAoB,0BACpBC,IAAK,yFACLC,aACI,qFACJC,YACI,+GAGJC,iBAAkB,YAClBC,gBAAiB,UACjBC,iBAAkB,QAGlBC,gCAAiC,qCACjCC,+BACI,gJAGJC,GAAI,KACJC,KAAM,QACNC,YAAa,cACbC,oBAAqB,qBACrBC,eAAgB,eAChBC,aAAc,WACdC,wBAAyB,mBACzBC,qBAAsB,cACtBC,oBAAqB,gBACrBC,oBAAqB,cACrBC,gBAAiB,sBACjBC,SAAU,eACVC,aAAc,mCACdC,eAAgB,+BAChBC,qBAAsB,yCACtBC,oBAAqB,4CACrBC,qBACI,mFACJC,kBAAmB,iDACnBC,eAAgB,gDAChBC,kBAAmB,kCACnBC,oBAAqB,+BACrBC,eAAgB,kBAChBC,iBAAkB,2CAClBC,oBAAqB,qBACrBC,mBACI,6JACJC,aAAc,YACdC,gBAAiB,+CACjBC,gBACI,kEACJC,oBACI,kEACJC,oBACI,2GACJC,mBAAoB,4BACpBC,uBACI,+GACJC,oBAAqB,wBACrBC,wBAAyB,OACzBC,kBAAmB,wBACnBC,qBAAsB,wCACtBC,sBAAuB,kBACvBC,sBAAuB,YACvBC,0BACI,8EACJC,sBAAuB,cACvBC,2BACI,4QACJC,8BACI,2DACJC,uBACI,uEACJC,+BAAgC,gBAChCC,8BAA+B,WAC/BC,4BAA6B,sBAC7BC,0BAA2B,mBAC3BC,gBAAiB,UACjBC,gBAAiB,WACjBC,iBAAkB,aAClBC,eAAgB,WAChBC,kBAAmB,eACnBC,0BAA2B,mCAC3BC,qBAAsB,SACtBC,eAAgB,UAChBC,aAAc,YACdC,WAAY,SACZC,YAAa,UACbC,qBAAsB,uBACtBC,SAAU,QACVC,UAAW,SACXC,YAAa,UACbC,YAAa,WACbC,mBAAoB,yBAGpBC,OAAQ,oEAERC,eAAgB,+CAChBC,iBAAkB,wDAClBC,0BACI,kDACJC,sBACI,gGACJC,uBACI,oJACJC,gBAAiB,iDACjBC,4BACI,qEACJC,mBACI,+FACJC,sBAAuB,0CACvBC,qBACI,0DACJC,mBAAoB,0BACpBC,eAAgB,gCAChBC,QAAS,uBACTC,UAAW,2BACXC,wBAAyB,4CACzBC,oBACI,8DACJC,wBAAyB,yCACzBC,qBACI,mEACJC,eACI,kHACJC,eAAgB,+CAChBC,yBACI,iFACJC,6BACI,qFACJC,yBACI,kEACJC,eACI,sEACJC,gBACI,2GACJC,gBACI,2GACJC,aAAc,mCACdC,qBAAsB,iCACtBC,mBACI,iFACJC,yBACI,sFACJC,WAAY,8CACZC,0BAA2B,gDAC3BC,kBACI,sHACJC,eAAgB,4CAChBC,eAAgB,eAChBC,cACI,+DACJC,aACI,+FACJC,sBACI,qEACJC,sBAAuB,0CACvBC,oBACI,2DACJC,WAAY,8BACZC,aAAc,+BACdC,uBACI,wDACJC,gBAAiB,6BACjBC,kBAAmB,2BACnBC,aACI,4EACJC,aAAc,iCACdC,SAAU,iDACVC,UAAW,iCACXC,qBACI,2EACJC,wBACI,oHACJC,uBACI,4DACJC,gBAAiB,0CAGjBC,uBACI,6EACJC,uBAAwB,0BACxBC,uBAAwB,yBACxBC,6BACI,kDACJC,wBACI,yEACJC,6BACI,wGACJC,kCACI,+EACJC,4BACI,wIACJC,0BAA2B,iCAC3BC,eACI,oEACJC,uBAAwB,+BAExBC,mBACI,2EACJC,cAAe,qDACfC,mBACI,gEACJC,cACI,kGACJC,sBACI,+FAEJC,yBACI,yHACJC,qBACI,kFACJC,2BACI,wHACJC,uBACI,2HACJC,iBAAkB,4CAClBC,mBACI,mIACJC,qBAAsB,GACtBC,0BACI,oHACJC,gCACI,uJACJC,qBACI,gJACJC,sBAAuB,uCAEvBC,mBAAoB,oBACpBC,wBACI,0DACJC,0BAA2B,8BAC3BC,uBAAwB,iCACxBC,4BACI,oFACJC,0BAA2B,yBAE3BC,6BACI,gFACJC,0BACI,6EACJC,cAAe,yB","sources":["webpack://MPW/./locale/fr/translation.js"],"sourcesContent":["export default {\n // Les balises HTML de base sont autorisées, comme , etc. Toutes les données sont nettoyées https://developer.mozilla.org/fr/docs/Web/API/Element/innerHTML\n\n // NOTA: Si une section n'a PAS besoin d'être traduite, laissez-la vide..\n // NOTE : Les variables que MPW insère sont indiquées par des accolades {}, par exemple, {button}, NE traduisez PAS les variables, mais placez-les là où cela a le plus de sens.\n\n // General words\n amount: 'Montant', //Amount\n staking: 'Staking', //Staking\n wallet: 'Portefeuille', //Wallet\n display: 'Afficher', //Display\n activity: 'Activité', //Activity\n yes: 'Oui', //Yes\n no: 'Non', //No\n\n // Nav Bar\n navDashboard: 'Tableau de Bord', //Dashboard\n navStake: 'Stake', //Stake\n navMasternode: 'Masternode', //Masternode\n navGovernance: 'Gouvernance', //Governance\n navSettings: 'Paramètres', //Settings\n\n // Footer\n footerBuiltWithPivxLabs: 'Construit avec 💜 par PIVX Labs 🇫🇷', //Built with 💜 by PIVX Labs\n\n // Intro\n loading: 'Chargement', //Loading\n loadingTitle: 'Mon portefeuille PIVX', //My PIVX Wallet is\n\n // Onboarding Dashboard\n dashboardTitle: 'Tableau de bord', //Dashboard\n dCardOneTitle: 'Créer le', //Create a\n dCardOneSubTitle: 'Nouveau portefeuille', //New Wallet\n dCardOneDesc:\n 'Créer un nouveau portefeuille PIVX, qui offre les méthodes de sauvegarde et de sécurité les plus sûres.', //Create a new PIVX wallet, offering the most secure backup & security methods.\n dCardOneButton: 'Créer un nouveau portefeuille', //Create A New Wallet\n\n dCardTwoTitle: 'Créer un nouveau', //Create a new\n dCardTwoSubTitle: 'Portefeuille Vanité', //Vanity Wallet\n dCardTwoDesc:\n 'Créer un portefeuille avec un préfixe personnalisé, cela peut prendre beaucoup de temps !', //Create a wallet with a custom prefix, this can take a long time!\n dCardTwoButton: 'Créer un portefeuille Vanity', //Create A Vanity Wallet\n\n dCardThreeTitle: 'Accédez à votre', //Access your\n dCardThreeSubTitle: 'Portefeuille de hardware', //Hardware Wallet\n dCardThreeDesc:\n \"Utilisez votre portefeuille Ledger Hardware avec l'interface familière de l'application MPW.\", //Use your Ledger Hardware wallet with MPW's familiar interface.\n dCardThreeButton: 'Accéder à mon Ledger', //Access my Ledger\n\n dCardFourTitle: 'Aller à', //Go to\n dCardFourSubTitle: 'Mon portefeuille', //My Wallet\n dCardFourDesc:\n \"Importer un portefeuille PIVX à l'aide d'une clé privée, d'un xpriv ou d'une phrase de démarrage.\", //Import a PIVX wallet using a Private Key, xpriv, or Seed Phrase.\n dCardFourButtonI: 'Importer le portefeuille', //Import Wallet\n dCardFourButtonA: 'Accéder à mon portefeuille', //Access My Wallet\n\n // Vanity Creation\n vanityPrefixNote: 'Remarque : les adresses commencent toujours par :', //Note: addresses will always start with:\n vanityPrefixInput: 'Adresse Préfixe', //Address Prefix\n\n // Seed Phrase Creation\n thisIsYourSeed: \"Voici votre phrase d'introduction:\", //This is your seed phrase:\n writeDownSeed:\n 'Notez-le à un seul endroit. Vous ne verrez que cela une fois!', //Write it down somewhere. You'll only see this once!\n doNotShareWarning:\n \"Toute personne disposant d'une copie peut accéder à à tousvotre fonds\", //Anyone with a copy of it can access all of your funds.\n doNotShare: 'Ne le partagez avec personne.', //Do NOT share it with anybody.\n digitalStoreNotAdvised:\n 'NON il est conseillé de les stocker sous forme numérique.', //It is NOT advised to store this digitally.\n optionalPassphrase: 'Phrase mot de passe Facultatif (BIP39)', //Optional Passphrase\n writtenDown: \"J'ai écrit ma phrase d'introduction\", //I have written down my seed phrase\n\n // Seed Phrase Import\n importSeedValid: 'La phrase source est valide !', //Seed Phrase is valid!\n importSeedError: \"La phrase source n'est pas valide !\", //Seed Phrase is invalid!\n importSeedErrorSize: 'Une phrase clé doit comporter entre 12 et 24 mots !', //A Seed Phrase should be 12 or 24 words long!\n importSeedErrorTypo:\n 'Seed Phrase contient des fautes de frappe ! Vérifiez soigneusement votre saisie', //Seed Phrase contains typing errors! Check your input carefully\n importSeedErrorSkip:\n \"La phrase de semence semble invalide, mais l'utilisateur n'a pas tenu compte de l'avertissement.\", //Seed Phrase appears invalid, but the warning was skipped by the user\n\n // Wallet Dashboard\n gettingStarted: 'Démarrer', //Getting Started\n secureYourWallet: 'Protégez votre portefeuille', //Secure your wallet\n unlockWallet: 'Déverrouiller le portefeuille', //Unlock wallet\n lockWallet: 'Fermeture du portefeuille', //Lock wallet\n\n // Encrypt wallet\n encryptWallet: 'Cryptage du portefeuille', //Encrypt wallet\n encryptPasswordCurrent: 'Mot de passe actuel', //Current Password\n encryptPasswordFirst: 'Entrer le mot de passe', //Enter Password\n encryptPasswordSecond: 'Réintroduire le mot de passe', //Re-enter Password\n encrypt: 'Crypter', //Encrypt\n changePassword: 'Changer le mot de passe', //Change Password\n\n // Wallet Dashboard Sub-menu\n balanceBreakdown: 'Composition de la balance', //Balance Breakdown\n viewOnExplorer: \"Voir dans l'explorateur\", //View on Explorer\n export: 'Exporter', //Export\n refreshAddress: \"Mise à jour de l'Adresse\", //Refresh address\n redeemOrCreateCode: 'Ouvrir ou Créer un Code', //Redeem or Create Code\n\n // Send\n address: 'Adresse', //Address\n receivingAddress: 'Adresse de réception', //Receiving address\n sendAmountCoinsMax: 'Max', //MAX\n paymentRequestMessage: \"Description (de l'opérateur)\", //Description (from the merchant)\n send: 'Envoyer', //Send\n\n // Contacts System\n receive: 'Recevoir', //Receive\n contacts: 'Contacts', //Contacts\n name: 'Nom', //Name\n username: \"Nom d'utilisateur\", //Username\n addressOrXPub: 'Adresse ou XPub', //Address or XPub\n back: 'Retour', //Back\n chooseAContact: 'Sélectionner un contact', //Choose a Contact\n createContact: \"Création d'un contact\", //Create Contact\n encryptFirstForContacts:\n 'Une fois que vous avez touché \"{button}\" dans le tableau de bord, vous pouvez créer un contact pour faciliter la réception des PIV !', //Once you hit \"{button}\" in the Dashboard, you can create a Contact to make receiving PIV easier!\n shareContactURL: \"Partager l'URL du contact\", //Share Contact URL\n setupYourContact: 'Configurez votre contact', //Setup your Contact\n receiveWithContact:\n \"Recevoir par un simple contact basé sur le nom d'utilisateur\", //Receive using a simple username-based Contact\n onlyShareContactPrivately:\n 'Seul partager votre contact avec des personnes de confiance (famille, amis)', //Only share your Contact with trusted people (family, friends)\n\n /* Context: The \"Change to\" is used in-app with one of the Three options below it, i.e: \"Change to Contact\" */\n changeTo: 'Modifier pour', //Change to\n contact: 'Contact', //Contact\n xpub: 'XPub', //XPub\n\n addContactTitle: 'Ajouter {strName} aux contacts', //Add {strName} to Contacts\n addContactSubtext:\n \"Une fois ajouté, vous pourrez envoyer des transactions à {strName} par leur nom (en tapant ou en cliquant), plus d'adresses, c'est facile.\", //Once added you\\'ll be able to send transactions to {strName} by their name (either typing, or clicking), no more addresses, nice \\'n easy.\n addContactWarning:\n \"S'assurer qu'il s'agit bien d'un produit authentique \\\"{strName}\\\", n'acceptez pas de demandes de contact provenant de sources inconnues ! \", //Ensure that this is the real \"{strName}\", do not accept Contact requests from unknown sources!\n\n editContactTitle: 'Changer \"{strName}\" Contact', //Change \"{strName}\" Contact\n newName: 'Nouvelle dénomination', //New Name\n\n removeContactTitle: 'Supprimer {strName}?', //Remove {strName}?\n removeContactSubtext:\n 'Êtes-vous sûr de vouloir supprimer {strName} de vos contacts ?', //Are you sure you wish to remove {strName} from your Contacts?\n removeContactNote: \"Vous pouvez les ajouter à tout moment à l'avenir.\", //You can add them again any time in the future.\n\n // Export\n privateKey: 'Clé privée', //Private Key\n viewPrivateKey: 'Montrer la clé privée ?', //View Private Key?\n privateWarning1: 'Assurez-vous que personne ne regarde votre écran.', //Make sure no one can see your screen.\n privateWarning2: 'Toute personne possédant cette clé peut voler vos fonds', //Anyone with this key can steal your funds.\n viewKey: 'Voir la clé', //View key\n\n // PIVX Promos\n // NOTE: for this below line, continue the sentence \"PIVX Promos [...]\", since 'PIVX Promos' is a brand, it is not translated.\n pivxPromos:\n \"est un système décentralisé de codes cadeaux d'une valeur de PIV\", // [...] is a decentralised system for gift codes worth PIV\n // NOTE: on this line, if possible, leave 'PIVX Promos' untranslated\n redeemInput: \"Introduisez votre code'PIVX Promos\", //Enter your 'PIVX Promos' code\n createName: 'Nom de la promotion (facultatif)', //Promo Name (Optional)\n createAmount: 'Valeur promotionnelle', //Promo Amount\n\n // Stake\n stake: 'Stake', //Stake\n stakeUnstake: 'Unstake', //Unstake\n ownerAddress: '(Optionnel) Adresse du propriétaire', //(Optional) Owner Address\n rewardHistory: 'Historique des récompenses', //Reward History\n loadMore: 'Chargez plus', //Load more\n\n // Masternode\n mnControlYour: 'Contrôlez votre', //Control your\n mnSubtext:\n 'À partir de ce guide, vous pouvez créer et accéder à un ou plusieurs masternodes.', //From this tab you can create and access one or more masternodes\n\n // Governance\n govSubtext:\n \"Dans cet onglet, vous pouvez consulter les propositions et, si vous disposez d'un masternode, participer au DAO et voter!\", //From this tab you can check the proposals and, if you have a masternode, be a part of the DAO and vote!\n govMonthlyBudget: 'Budget Mensuel', //Monthly Budget\n govAllocBudget: 'Budget Attribué', //Allocated Budget\n govNextPayout: 'Prochain paiement du Trésor', //Next Treasury Payout\n govTableStatus: 'ÉTAT', //STATUS\n govTableName: 'NOM', //NAME\n govTablePayment: 'PAIEMENT', //PAYMENT\n govTableVotes: 'VOTES', //VOTES\n govTableVote: 'VOTE', //VOTE\n contestedProposalsDesc:\n \" Il s'agit des propositions qui ont reçu un nombre écrasant de votes négatifs, ce qui en fait probablement des spams ou des propositions très contestables.\", //These are proposals that received an overwhelming amount of downvotes, making it likely spam or a highly contestable proposal.\n\n // Settings\n settingsCurrency: \"Choisissez une devise d'affichage :\", //Choose a display currency:\n priceProvidedBy: 'Les prix sont fournis par', //Price data provided by\n settingsDecimals: 'Solde Décimales :', //Balance Decimals:\n settingsExplorer: 'Choisissez un explorateur :', //Choose an explorer:\n settingsLanguage: 'Choisissez une langue :', //Choose a Language:\n settingsPivxNode: 'Choisir un node PIVX :', //Choose a PIVX node:\n settingsAutoSelectNet:\n 'Sélection Automatique des Explorateurs et des Nodes', //Auto-select Explorers and Nodes\n settingsAnalytics: \"Choisissez votre niveau d'analyse :\", //Choose your analytics contribution level:\n settingsToggleDebug: 'Mode de débogage', //Debug Mode\n settingsToggleTestnet: 'Mode testnet', //Testnet Mode\n settingsToggleAdvancedMode: 'Mode avancé', //Advanced Mode\n settingsToggleAdvancedModeSubtext:\n \"Cela permet d'accéder à des fonctionnalités et à une personnalisation plus poussées, mais peut s'avérer difficile et potentiellement dangereux pour les utilisateurs inexpérimentés !\", //This unlocks deeper functionality and customisation, but may be overwhelming and potentially dangerous for unexperienced users!\n\n // Network switching (mainnet <---> testnet)\n netSwitchUnsavedWarningTitle:\n \"Votre {network} portefeuille n'est pas sauvé !\", //Your {network} wallet isn\\'t saved!\n netSwitchUnsavedWarningSubtitle: 'Votre {network} compte est en danger !', //Your {network} account is at risk!\n netSwitchUnsavedWarningSubtext:\n \"Si vous changez de compte {network} avant de l'avoir sauvegardé, vous perdrez le compte! \", //If you switch to {network} before saving it, you\\'ll lose the account!\n netSwitchUnsavedWarningConfirmation: 'Êtes-vous vraiment sûr ?', //Are you really sure?\n\n // Transparency Report\n transparencyReport: 'Rapport de transparence', //Transparency Report\n hit: \"Un ping indiquant le chargement d'une application, aucune donnée unique n'est envoyée.\", //A ping indicating an app load, no unique data is sent.\n time_to_sync:\n 'Le temps en secondes que le MPW a pris pour se synchroniser pour la dernière fois.', //The time in seconds it took for MPW to last synchronise.\n transaction:\n \"Un ping indiquant un Tx, aucune donnée unique n'est envoyée mais peut être déduite de l'heure sur le réseau.\", //A ping indicating a Tx, no unique data is sent, but may be inferred from on-chain time.\n\n // Analytics Levels\n analyticDisabled: 'Désactivé', //Disabled\n analyticMinimal: 'Minimum', //Minimal\n analyticBalanced: 'Solde', //Balanced\n\n // Migration System\n MIGRATION_ACCOUNT_FAILURE_TITLE: 'Échec de la récupération du compte', //Failed to recover account\n MIGRATION_ACCOUNT_FAILURE_HTML:\n \"Une erreur s'est produite lors de la récupération de votre compte.
Veuillez réimporter votre portefeuille en utilisant la clé suivante :\", //There was an error recovering your account.
Please reimport your wallet using the following key:\n\n // Dynamic Elements (Rendered at runtime - TODO in future PR: sort in to above categories for consistency)\n ID: 'ID', //ID\n time: 'Heure', //Time\n description: 'Description', //Description\n activityBlockReward: 'Récompense en bloc', //Block Reward\n activitySentTo: 'Envoyé à {r}', //Sent to\n activitySelf: 'soi-même', //Self\n activityShieldedAddress: 'Adresse protégée', //Shielded address\n activityReceivedFrom: 'Reçu de {s}', //Received from\n activityDelegatedTo: 'Délégué à {r}', //Delegated to\n activityUndelegated: 'Non délégué', //Undelegated\n activityUnknown: 'Transaction inconnu', //Unknown Tx\n password: 'Mot de passe', //Password\n walletUnlock: 'Déverrouillez votre portefeuille', //Unlock your wallet\n walletPassword: 'Mot de passe du portefeuille', //Wallet password\n walletUnlockCreateMN: 'Débloquez pour créer votre Masternode!', //Unlock to create your Masternode!\n walletUnlockMNStart: 'Débloquez pour démarrer votre Masternode!', //Unlock to start your Masternode!\n walletUnlockProposal:\n 'Débloquez pour créer une proposition! Débloquez pour démarrer votre Masternode !', //Unlock to create a proposal!\n walletUnlockPromo: 'Déverrouillez pour finaliser votre code promo!', //Unlock to finalise your Promo Code!\n walletUnlockTx: 'Déverrouillez pour envoyer votre transaction!', //Unlock to send your transaction!\n walletUnlockStake: 'Déverrouillez pour Staker votre', //Unlock to stake your\n walletUnlockUnstake: 'Débloquer pour Unstake votre', //Unlock to unstake your\n changelogTitle: 'Quoi de neuf en', //What's New in\n popupSetColdAddr: 'Définissez votre adresse de Cold Staking', //Set your Cold Staking address\n popupCurrentAddress: 'Adresse actuelle :', //Current address:\n popupColdStakeNote:\n \"Une Cold Address mise des pièces en votre nom, mais ne peut pas en dépenser. Il est donc possible d'utiliser Cold Address d'un inconnu en toute sécurité !\", //A Cold Address stakes coins on your behalf, it cannot spend coins, so it's even safe to use a stranger's Cold Address!\n popupExample: 'Exemple :', //Example:\n popupWalletLock: 'Voulez-vous verrouiller votre portefeuille ?', //Do you want to lock your wallet?\n popupWalletWipe:\n 'Voulez-vous effacer les données privées de votre portefeuille ?', //Do you want to wipe your wallet private data?\n popupWalletLockNote:\n 'Vous devrez saisir votre mot de passe pour accéder à vos fonds.', //You will need to enter your password to access your funds\n popupWalletWipeNote:\n \"Vous perdrez l'accès à vos fonds si vous n'avez pas sauvegardé votre clé privée ou votre phrase de base.\", //You will lose access to your funds if you haven't backed up your private key or seed phrase\n popupSeedPhraseBad: 'Phrase semence inattendue', //Unexpected Seed Phrase\n popupSeedPhraseBadNote:\n \"La phrase de semence est soit invalide, soit n'a pas été généré par MPW.
Voulez-vous toujours continuer ?\", //The seed phrase is either invalid or was not generated by MPW.
Do you still want to proceed?\n popupCreateProposal: 'Créer une proposition', //Create Proposal\n popupCreateProposalCost: 'Coût', //Cost\n popupProposalName: 'Nom de la proposition', //Proposal Name\n popupProposalAddress: 'Adresse de la proposition (optionnel)', //Proposal Address (Optional)\n popupProposalDuration: 'Durée en cycles', //Duration in cycles\n popupProposalPerCycle: 'par cycle', //per cycle\n popupProposalEncryptFirst:\n 'Vous devez appuyer sur \"{button}\" avant de pouvoir créer des propositions !', //You need to hit \"{button}\" before you can create proposals!\n popupProposalVoteHash: 'Vote Hash :', //Vote Hash:\n popupProposalFinalisedNote:\n \"Félicitations pour le lancement de votre proposition!
Les propriétaires de Masternodes peuvent utiliser votre Hash de vote pour voter à partir de portefeuilles autres que MPW, alors assurez-vous d'ajouter ceci à votre message sur le forum, le cas échéant!\", //Congratulations on launching your proposal!
Masternode owners can use your Vote Hash to vote from wallets other than MPW, so make sure to add this to your forum post, if applicable!\n popupProposalFinalisedSignoff:\n 'Bonne chance dans votre voyage à travers le DAO, PIVian!', //Good luck on your journey through the DAO, PIVian!\n popupHardwareAddrCheck:\n \"Veuillez confirmer qu'il s'agit bien de l'adresse figurant sur votre\", //Please confirm this is the address you see on your\n proposalFinalisationConfirming: 'Confirmant...', //Confirming...\n proposalFinalisationRemaining: 'restants', //remaining\n proposalFinalisationExpired: 'Proposition expirée', //Proposal Expired\n proposalFinalisationReady: 'Prêt à soumettre', //Ready to submit\n proposalPassing: 'PASSANT', //PASSING\n proposalFailing: 'ÉCHOUANT', //FAILING\n proposalTooYoung: 'TROP JEUNE', //TOO YOUNG\n proposalFunded: 'FINANCÉE', //FUNDED\n proposalNotFunded: 'NON FINANCÉE', //NOT FUNDED\n proposalPaymentsRemaining: \"l'installation(s) restants
de\", //installment(s) remaining
of\n proposalPaymentTotal: 'totale', //total\n proposalNetYes: 'Net Oui', //Net Yes\n popupConfirm: 'Confirmer', //Confirm\n popupClose: 'Fermer', //Close\n popupCancel: 'Annuler', //Cancel\n chartPublicAvailable: 'Disponible au public', //Public Available\n timeDays: 'Jours', //Days\n timeHours: 'Heures', //Hours\n timeMinutes: 'Minutes', //Minutes\n timeSeconds: 'Secondes', //Seconds\n unhandledException: 'Exception non traitée.', //Unhandled exception.\n\n // Alerts\n ALERTS: '<-- DO NOT EDIT THIS LINE! All below entries are for Alert Popups',\n\n INTERNAL_ERROR: 'Erreur interne, veuillez réessayer plus tard', //Internal error, please try again later\n FAILED_TO_IMPORT: \"Échec de l'importation ! Mot de passe invalide\", //Failed to import! Invalid password\n FAILED_TO_IMPORT_HARDWARE:\n \"Erreur d'importation du Hardware Wallet.\", // Failed to import Hardware Wallet.\n UNSUPPORTED_CHARACTER:\n \"Le caractère {char} n'est pas pris en charge dans les adresses ! (Non compatible avec Base58)\", //The character '{char}' is unsupported in addresses! (Not Base58 compatible)\n UNSUPPORTED_WEBWORKERS:\n \"Ce navigateur ne prend pas en charge Web Workers (JS multi-threaded), Malheureusement, il n'est pas possible de générer des portefeuilles Vanity!\", //This browser doesn\\'t support Web Workers (multi-threaded JS), unfortunately you cannot generate Vanity wallets!\n INVALID_ADDRESS: 'Adresse PIVX non valide !
{address}', //Invalid PIVX address!
{address}\n TESTNET_ENCRYPTION_DISABLED:\n 'Modo Testnet activé !
Cryptage du portefeuille désactivé', //Testnet Mode is ON!
Wallet encryption disabled\n PASSWORD_TOO_SMALL:\n 'Ce mot de passe est un peu court !
Utiliser au moins {MIN_PASS_LENGTH} caractères.', //That password is a little short!
Use at least {MIN_PASS_LENGTH} characters.\n PASSWORD_DOESNT_MATCH: 'Vos mots de passe ne correspondent pas!', //Your passwords don\\'t match!\n NEW_PASSWORD_SUCCESS:\n 'Vous êtes protégé ! 🔐
Bravo, PIVian blindé !', //You\\'re Secured! 🔐
Nice stuff, Armoured PIVian!\n INCORRECT_PASSWORD: 'Mot de passe incorrect!', //Incorrect password!\n INVALID_AMOUNT: 'Valeur non valide!
', //Invalid amount!
\n TX_SENT: 'Transaction envoyée!', //Transaction sent!\n TX_FAILED: 'Échec de la Transaction!', //Transaction Failed!\n QR_SCANNER_BAD_RECEIVER: \"n'est pas un récepteur de paiement valide\", //is not a valid payment receiver\n VALIDATE_AMOUNT_LOW:\n '
La valeur minimale est de {minimumAmount} {coinTicker}!', //
Minimum amount is {minimumAmount} {coinTicker}!\n VALIDATE_AMOUNT_DECIMAL: '{coinDecimal} limite décimale dépassée', //{coinDecimal} decimal limit exceeded\n SUCCESS_STAKING_ADDR:\n 'Adresse de Staking défini!
Poursuivre avec le unstake!', //Staking Address set!
Now go ahead and unstake!\n STAKE_ADDR_SET:\n \"Adresse du Cold Staking défini!
Cette adresse sera utilisée à l'avenir pour la réalisation de Stake..\", //Cold Address set!
Future stakes will use this address.\n STAKE_ADDR_BAD: \"L'adresse du Cold Staking n'est pas valide !\", //Invalid Cold Staking address!\n CONFIRM_UNSTAKE_H_WALLET:\n 'Confirmer votre Unstake
Confirmez le TX dans votre {strHardwareName}', //Confirm your Unstake
Confirm the TX on your {strHardwareName}\n CONFIRM_TRANSACTION_H_WALLET:\n 'Confirmez votre transaction
Confirmez le TX dans votre {strHardwareName}', //Confirm your transaction
Confirm the TX on your {strHardwareName}\n SUCCESS_STAKING_ADDR_SET:\n 'Adresse de Staking définie!
>Poursuivre avec la stake', //Staking Address set!
Now go ahead and stake!\n STAKE_NOT_SEND:\n \"Dans ce cas, utilisez l'écran Stake, et non l'écran d'envoi!\", //Here, use the Stake screen, not the Send screen!\n BAD_ADDR_LENGTH:\n 'Adresse PIVX non valide!
Préfixe non valide {address} (Vous devez commencer par{addressPrefix})', //Invalid PIVX address!
Bad length ({addressLength})\n BAD_ADDR_PREFIX:\n 'Adresse PIVX non valide!
Préfixe non valide {address} (Vous devez commencer par{addressPrefix})', //Invalid PIVX address!
Bad prefix {address} (Should start with {addressPrefix})\n SENT_NOTHING: \"Vous ne pouvez pas envoyer 'rien\", //You can\\'t send \\'nothing\\'!\n MORE_THEN_8_DECIMALS: 'limite de 8 décimales dépassée', //8 decimal limit exceeded\n SAVE_WALLET_PLEASE:\n 'Gardez votre portefeuille!
Tableau de bord ➜ Définir le mot de passe', //Save your wallet!
Dashboard ➜ Secure your wallet\n BACKUP_OR_ENCRYPT_WALLET:\n 'Cryptez et/ou sauvegardez vos clés avant de partir, car vous risquez de les perdre!', //Please ENCRYPT and/or BACKUP your keys before leaving, or you may lose them!\n NO_CAMERAS: \"Cet appareil n'est pas équipé d'une caméra!\", //This device has no camera!\n STAKING_LEDGER_NO_SUPPORT: \"Ledger n'est pas compatible avec Cold Staking\", //Ledger is not supported for Cold Staking\n CONNECTION_FAILED:\n 'Échec de la synchronisation! Réessayer plus tard.
Vous pouvez essayer de vous reconnecter via Paramètres.', //Failed to synchronize! Please try again later.
You can attempt re-connect via the Settings.\n MN_NOT_ENABLED: \"Votre masternode n'est pas encore activé!\", //Your masternode is not enabled yet!\n VOTE_SUBMITTED: 'Vote envoyé!', //Vote submitted!\n VOTED_ALREADY:\n 'Vous avez déjà voté sur cette proposition ! Attendre 1 heure', //You already voted for this proposal! Please wait 1 hour\n VOTE_SIG_BAD:\n 'Échec de la vérification de la signature, vérifiez la clé privée de votre masternode maître.', //Failed to verify signature, please check your masternode\\'s private key\n MN_CREATED_WAIT_CONFS:\n 'Masternode créé!
Attendre 15 confirmations pour continuer', //Masternode Created!
Wait 15 confirmations to proceed further\n MN_ACCESS_BEFORE_VOTE: 'Accéder à un masternode avant de voter!', //Access a masternode before voting!\n MN_OFFLINE_STARTING:\n 'Votre masternode est hors ligne, essayons de le démarrer', //Your masternode is offline, we will try to start it\n MN_STARTED: 'Masternode a débuté!', //Masternode started!\n MN_RESTARTED: 'Masternode redémarré!', //Masternode restarted!\n MN_STARTED_ONLINE_SOON:\n 'Masternode initié!
Il sera bientôt en ligne', //Masternode started!
It\\'ll be online soon\n MN_START_FAILED: 'Masternode initié !', //Masternode started!\n MN_RESTART_FAILED: 'Masternode redémarré!', //Masternode restarted!\n MN_DESTROYED:\n 'Masternode détruit!
Vous pouvez maintenant dépenser vos pièces.', //Masternode destroyed!
Your coins are now spendable.\n MN_STATUS_IS: \"L'état de votre masternode est\", //Your masternode status is\n MN_STATE: \"L'état de votre masternode est {state}\", //Your masternode is in {state} state\n MN_BAD_IP: \"L'adresse IP n'est pas valide!\", //The IP address is invalid!\n MN_NOT_ENOUGH_COLLAT:\n 'Vous avez besoin {amount} plus {ticker} pour créer un Masternode!', //You need {amount} more {ticker} to create a Masternode!\n MN_ENOUGH_BUT_NO_COLLAT:\n \"Vous disposez d'un solde suffisant pour un Masternode, mais pas d'UTXO comme garantie valide de {amount} {ticker}\", //You have enough balance for a Masternode, but no valid collateral UTXO of {amount} {ticker}\n MN_COLLAT_NOT_SUITABLE:\n \"Il ne s'agit pas d'une UTXO appropriée pour un Masternode\", //This is not a suitable UTXO for a Masternode\n MN_CANT_CONNECT: 'Impossible de se connecter au nœud RPC!', //Unable to connect to RPC node!\n\n /* Contacts System Alerts */\n CONTACTS_ENCRYPT_FIRST:\n 'Vous devez appuyer sur \"{button}\" avant de pouvoir utiliser les contacts !', //You need to hit \"{button}\" before you can use Contacts!\n CONTACTS_NAME_REQUIRED: 'Un nom est nécessaire !', //A name is required!\n CONTACTS_NAME_TOO_LONG: 'Le nom est trop long !', //That name is too long!\n CONTACTS_CANNOT_ADD_YOURSELF:\n 'Vous ne pouvez pas vous ajouter comme contact !', //You cannot add yourself as a Contact!\n CONTACTS_ALREADY_EXISTS:\n 'Le contact existe déjà!
Vous avez déjà enregistré ce contact', //Contact already exists!
You already saved this contact\n CONTACTS_NAME_ALREADY_EXISTS:\n \"Le nom du contact existe déjà!
Il pourrait s'agir d'une tentative d'hameçonnage, attention!\", //Contact name already exists!
This could potentially be a phishing attempt, beware!\n CONTACTS_EDIT_NAME_ALREADY_EXISTS:\n 'Le contact existe déjà!
Un contact est déjà appelé \"{strNewName}\"!', //Contact already exists!
A contact is already called \"{strNewName}\"!\n CONTACTS_KEY_ALREADY_EXISTS:\n 'Le contact existe déjà, mais sous un nom différent!
Vous avez {newName} sauvegardé comme {oldName} dans vos contacts', //Contact already exists, but under a different name!
You have {newName} saved as {oldName} in your contacts\n CONTACTS_NOT_A_CONTACT_QR: \"Ce n'est pas un QR de contact!\", //This isn\\'t a Contact QR!\n CONTACTS_ADDED:\n 'Nouveau contact ajouté!
{strName} a été ajouté, bravo!', //New Contact added!
{strName} has been added, hurray!\n CONTACTS_YOU_HAVE_NONE: \"Vous n'avez pas de contacts!\", //You have no contacts!\n\n SWITCHED_EXPLORERS:\n 'Explorateur échangé!
En utilisant maintenant le {explorerName}', //Switched explorer!
Now using {explorerName}\n SWITCHED_NODE: \"Nœud commuté!
L'utilisation de la {node}\", //Switched node!
Now using {node}\n SWITCHED_ANALYTICS:\n \"Niveau d'analyse modifié!
Il est maintenant {level}\", //Switched analytics level!
Now {level}\n SWITCHED_SYNC:\n 'Changement de mode de synchronisation !
Utiliser la synchronisation maintenant {sync}', //Switched sync mode!
Now using {sync} sync\n UNABLE_SWITCH_TESTNET:\n \"Il n'est pas possible de passer en mode Testnet !
Un portefeuille est déjà chargé.\", //Unable to switch Testnet Mode!
A wallet is already loaded\n\n WALLET_OFFLINE_AUTOMATIC:\n 'Le mode hors-ligne est actif !
Veuillez désactiver le mode hors connexion pour les transactions automatiques', //Offline Mode is active!
Please disable Offline Mode for automatic transactions\n WALLET_UNLOCK_IMPORT:\n \"S'il vous plaît, {unlock} votre portefeuille avant d'envoyer des transactions !\", //Please {unlock} your wallet before sending transactions!\n WALLET_FIREFOX_UNSUPPORTED:\n 'O Firefox ne supporte pas cela !
Malheureusement, Firefox ne prend pas en charge les portefeuilles hardware', //Firefox doesn't support this!
Unfortunately, Firefox does not support hardware wallets\n WALLET_HARDWARE_WALLET:\n \"Portefeuille de Hardware prêt!
Gardez votre {hardwareWallet} connecté, déverrouillé et dans l'application PIVX\", //Hardware wallet ready!
Please keep your {hardwareWallet} plugged in, unlocked, and in the PIVX app\n WALLET_CONFIRM_L: \"Confirmez l'importation dans votre Ledger\", //Confirm the import on your Ledger\n WALLET_NO_HARDWARE:\n \"Aucun dispositif disponible
Il n'a pas été possible de trouver un portefeuille de hardware; brancher et déverrouiller!\", //No device available
Couldn't find a hardware wallet; please plug it in and unlock!\n WALLET_HARDWARE_UDEV: '', // The OS denied access Did you add the udev rules?\n WALLET_HARDWARE_NO_ACCESS:\n \"Le système d'exploitation refuse l'accès Veuillez vérifier les paramètres de votre système d'exploitation.\", // The OS denied access Please check your Operating System settings.\n WALLET_HARDWARE_CONNECTION_LOST:\n \"Perte de connexion avec le {hardwareWallet}
Oops! Il semble que {hardwareWalletProductionName} a été déconnecté au milieu de l'opération.\", //Lost connection to {hardwareWallet}
It seems the {hardwareWalletProductionName} was unplugged mid-operation, oops!\n WALLET_HARDWARE_BUSY:\n \"{hardwareWallet} est en mode veille
Veuillez débloquer le vôtre {hardwareWalletProductionName} ou compléter l'introduction actuelle\", //{hardwareWallet} is waiting
Please unlock your {hardwareWalletProductionName} or finish it's current prompt\n WALLET_HARDWARE_ERROR: 'b> {hardwareWallet}

{error}', // {hardwareWallet}
{error}\n\n CONFIRM_POPUP_VOTE: 'Confirmer le vote', //Confirm Vote\n CONFIRM_POPUP_VOTE_HTML:\n 'Êtes-vous sûr ? Il faut 60 minutes pour changer de vote', //Are you sure? It takes 60 minutes to change vote\n CONFIRM_POPUP_TRANSACTION: 'Confirmez votre transaction', //Confirm your transaction\n CONFIRM_POPUP_MN_P_KEY: 'Clé privée de votre Masternode', //Your Masternode Private Key\n CONFIRM_POPUP_MN_P_KEY_HTML:\n '
Enregistrez cette clé privée et copiez-la dans votre configuration VPS.
', //
Save this private key and copy it to your VPS config
\n CONFIRM_POPUP_VERIFY_ADDR: 'Vérifiez votre adresse', //Verify your address\n\n MIGRATION_MASTERNODE_FAILURE:\n \"Échec de la récupération de votre masternode. S'il vous plaît, le réimporter.\", //Failed to recover your masternode. Please reimport it.\n MIGRATION_ACCOUNT_FAILURE:\n \"Échec de la récupération de votre compte. S'il vous plaît, le réimporter.\", //Failed to recover your account. Please reimport it.\n APP_INSTALLED: 'Application installée!', //App Installed!\n};\n"],"names":["amount","staking","wallet","display","activity","yes","no","navDashboard","navStake","navMasternode","navGovernance","navSettings","footerBuiltWithPivxLabs","loading","loadingTitle","dashboardTitle","dCardOneTitle","dCardOneSubTitle","dCardOneDesc","dCardOneButton","dCardTwoTitle","dCardTwoSubTitle","dCardTwoDesc","dCardTwoButton","dCardThreeTitle","dCardThreeSubTitle","dCardThreeDesc","dCardThreeButton","dCardFourTitle","dCardFourSubTitle","dCardFourDesc","dCardFourButtonI","dCardFourButtonA","vanityPrefixNote","vanityPrefixInput","thisIsYourSeed","writeDownSeed","doNotShareWarning","doNotShare","digitalStoreNotAdvised","optionalPassphrase","writtenDown","importSeedValid","importSeedError","importSeedErrorSize","importSeedErrorTypo","importSeedErrorSkip","gettingStarted","secureYourWallet","unlockWallet","lockWallet","encryptWallet","encryptPasswordCurrent","encryptPasswordFirst","encryptPasswordSecond","encrypt","changePassword","balanceBreakdown","viewOnExplorer","export","refreshAddress","redeemOrCreateCode","address","receivingAddress","sendAmountCoinsMax","paymentRequestMessage","send","receive","contacts","name","username","addressOrXPub","back","chooseAContact","createContact","encryptFirstForContacts","shareContactURL","setupYourContact","receiveWithContact","onlyShareContactPrivately","changeTo","contact","xpub","addContactTitle","addContactSubtext","addContactWarning","editContactTitle","newName","removeContactTitle","removeContactSubtext","removeContactNote","privateKey","viewPrivateKey","privateWarning1","privateWarning2","viewKey","pivxPromos","redeemInput","createName","createAmount","stake","stakeUnstake","ownerAddress","rewardHistory","loadMore","mnControlYour","mnSubtext","govSubtext","govMonthlyBudget","govAllocBudget","govNextPayout","govTableStatus","govTableName","govTablePayment","govTableVotes","govTableVote","contestedProposalsDesc","settingsCurrency","priceProvidedBy","settingsDecimals","settingsExplorer","settingsLanguage","settingsPivxNode","settingsAutoSelectNet","settingsAnalytics","settingsToggleDebug","settingsToggleTestnet","settingsToggleAdvancedMode","settingsToggleAdvancedModeSubtext","netSwitchUnsavedWarningTitle","netSwitchUnsavedWarningSubtitle","netSwitchUnsavedWarningSubtext","netSwitchUnsavedWarningConfirmation","transparencyReport","hit","time_to_sync","transaction","analyticDisabled","analyticMinimal","analyticBalanced","MIGRATION_ACCOUNT_FAILURE_TITLE","MIGRATION_ACCOUNT_FAILURE_HTML","ID","time","description","activityBlockReward","activitySentTo","activitySelf","activityShieldedAddress","activityReceivedFrom","activityDelegatedTo","activityUndelegated","activityUnknown","password","walletUnlock","walletPassword","walletUnlockCreateMN","walletUnlockMNStart","walletUnlockProposal","walletUnlockPromo","walletUnlockTx","walletUnlockStake","walletUnlockUnstake","changelogTitle","popupSetColdAddr","popupCurrentAddress","popupColdStakeNote","popupExample","popupWalletLock","popupWalletWipe","popupWalletLockNote","popupWalletWipeNote","popupSeedPhraseBad","popupSeedPhraseBadNote","popupCreateProposal","popupCreateProposalCost","popupProposalName","popupProposalAddress","popupProposalDuration","popupProposalPerCycle","popupProposalEncryptFirst","popupProposalVoteHash","popupProposalFinalisedNote","popupProposalFinalisedSignoff","popupHardwareAddrCheck","proposalFinalisationConfirming","proposalFinalisationRemaining","proposalFinalisationExpired","proposalFinalisationReady","proposalPassing","proposalFailing","proposalTooYoung","proposalFunded","proposalNotFunded","proposalPaymentsRemaining","proposalPaymentTotal","proposalNetYes","popupConfirm","popupClose","popupCancel","chartPublicAvailable","timeDays","timeHours","timeMinutes","timeSeconds","unhandledException","ALERTS","INTERNAL_ERROR","FAILED_TO_IMPORT","FAILED_TO_IMPORT_HARDWARE","UNSUPPORTED_CHARACTER","UNSUPPORTED_WEBWORKERS","INVALID_ADDRESS","TESTNET_ENCRYPTION_DISABLED","PASSWORD_TOO_SMALL","PASSWORD_DOESNT_MATCH","NEW_PASSWORD_SUCCESS","INCORRECT_PASSWORD","INVALID_AMOUNT","TX_SENT","TX_FAILED","QR_SCANNER_BAD_RECEIVER","VALIDATE_AMOUNT_LOW","VALIDATE_AMOUNT_DECIMAL","SUCCESS_STAKING_ADDR","STAKE_ADDR_SET","STAKE_ADDR_BAD","CONFIRM_UNSTAKE_H_WALLET","CONFIRM_TRANSACTION_H_WALLET","SUCCESS_STAKING_ADDR_SET","STAKE_NOT_SEND","BAD_ADDR_LENGTH","BAD_ADDR_PREFIX","SENT_NOTHING","MORE_THEN_8_DECIMALS","SAVE_WALLET_PLEASE","BACKUP_OR_ENCRYPT_WALLET","NO_CAMERAS","STAKING_LEDGER_NO_SUPPORT","CONNECTION_FAILED","MN_NOT_ENABLED","VOTE_SUBMITTED","VOTED_ALREADY","VOTE_SIG_BAD","MN_CREATED_WAIT_CONFS","MN_ACCESS_BEFORE_VOTE","MN_OFFLINE_STARTING","MN_STARTED","MN_RESTARTED","MN_STARTED_ONLINE_SOON","MN_START_FAILED","MN_RESTART_FAILED","MN_DESTROYED","MN_STATUS_IS","MN_STATE","MN_BAD_IP","MN_NOT_ENOUGH_COLLAT","MN_ENOUGH_BUT_NO_COLLAT","MN_COLLAT_NOT_SUITABLE","MN_CANT_CONNECT","CONTACTS_ENCRYPT_FIRST","CONTACTS_NAME_REQUIRED","CONTACTS_NAME_TOO_LONG","CONTACTS_CANNOT_ADD_YOURSELF","CONTACTS_ALREADY_EXISTS","CONTACTS_NAME_ALREADY_EXISTS","CONTACTS_EDIT_NAME_ALREADY_EXISTS","CONTACTS_KEY_ALREADY_EXISTS","CONTACTS_NOT_A_CONTACT_QR","CONTACTS_ADDED","CONTACTS_YOU_HAVE_NONE","SWITCHED_EXPLORERS","SWITCHED_NODE","SWITCHED_ANALYTICS","SWITCHED_SYNC","UNABLE_SWITCH_TESTNET","WALLET_OFFLINE_AUTOMATIC","WALLET_UNLOCK_IMPORT","WALLET_FIREFOX_UNSUPPORTED","WALLET_HARDWARE_WALLET","WALLET_CONFIRM_L","WALLET_NO_HARDWARE","WALLET_HARDWARE_UDEV","WALLET_HARDWARE_NO_ACCESS","WALLET_HARDWARE_CONNECTION_LOST","WALLET_HARDWARE_BUSY","WALLET_HARDWARE_ERROR","CONFIRM_POPUP_VOTE","CONFIRM_POPUP_VOTE_HTML","CONFIRM_POPUP_TRANSACTION","CONFIRM_POPUP_MN_P_KEY","CONFIRM_POPUP_MN_P_KEY_HTML","CONFIRM_POPUP_VERIFY_ADDR","MIGRATION_MASTERNODE_FAILURE","MIGRATION_ACCOUNT_FAILURE","APP_INSTALLED"],"sourceRoot":""} \ No newline at end of file diff --git a/123.mpw.js b/123.mpw.js index bac5ad306..b22646d03 100644 --- a/123.mpw.js +++ b/123.mpw.js @@ -1,2 +1,2 @@ -var MPW;(()=>{var e,r,t={46601:()=>{},89214:()=>{},52361:()=>{},94616:()=>{},8651:(e,r,t)=>{"use strict";var o=t(14498);onmessage=async function(e){const r=new o.Fn(e.data);r.progressEmitter.on("deriveProgress",(e=>{postMessage({type:"progress",res:e})}));const t=await r.derivePrivateKey();postMessage({type:"key",res:t})}}},o={};function s(e){var r=o[e];if(void 0!==r)return r.exports;var i=o[e]={id:e,loaded:!1,exports:{}};return t[e].call(i.exports,i,i.exports,s),i.loaded=!0,i.exports}s.m=t,s.x=()=>{var e=s.O(void 0,[621,498],(()=>s(8651)));return s.O(e)},e=[],s.O=(r,t,o,i)=>{if(!t){var n=1/0;for(l=0;l=i)&&Object.keys(s.O).every((e=>s.O[e](t[p])))?t.splice(p--,1):(a=!1,i0&&e[l-1][2]>i;l--)e[l]=e[l-1];e[l]=[t,o,i]},s.d=(e,r)=>{for(var t in r)s.o(r,t)&&!s.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},s.f={},s.e=e=>Promise.all(Object.keys(s.f).reduce(((r,t)=>(s.f[t](e,r),r)),[])),s.u=e=>"./"+e+".mpw.js",s.miniCssF=e=>{},s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),s.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e;s.g.importScripts&&(e=s.g.location+"");var r=s.g.document;if(!e&&r&&(r.currentScript&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var o=t.length-1;o>-1&&!e;)e=t[o--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),s.p=e})(),(()=>{var e={123:1,492:1};s.f.i=(r,t)=>{e[r]||importScripts(s.p+s.u(r))};var r=self.webpackChunkMPW=self.webpackChunkMPW||[],t=r.push.bind(r);r.push=r=>{var[o,i,n]=r;for(var a in i)s.o(i,a)&&(s.m[a]=i[a]);for(n&&n(s);o.length;)e[o.pop()]=1;t(r)}})(),r=s.x,s.x=()=>Promise.all([s.e(621),s.e(498)]).then(r);var i=s.x();MPW=i})(); +var MPW;(()=>{var e,r,t={46601:()=>{},89214:()=>{},52361:()=>{},94616:()=>{},8651:(e,r,t)=>{"use strict";var o=t(14498);onmessage=async function(e){const r=new o.Fn(e.data);r.progressEmitter.on("deriveProgress",(e=>{postMessage({type:"progress",res:e})}));const t=await r.derivePrivateKey();postMessage({type:"key",res:t})}}},o={};function s(e){var r=o[e];if(void 0!==r)return r.exports;var i=o[e]={id:e,loaded:!1,exports:{}};return t[e].call(i.exports,i,i.exports,s),i.loaded=!0,i.exports}s.m=t,s.x=()=>{var e=s.O(void 0,[812,498],(()=>s(8651)));return s.O(e)},e=[],s.O=(r,t,o,i)=>{if(!t){var n=1/0;for(l=0;l=i)&&Object.keys(s.O).every((e=>s.O[e](t[p])))?t.splice(p--,1):(a=!1,i0&&e[l-1][2]>i;l--)e[l]=e[l-1];e[l]=[t,o,i]},s.d=(e,r)=>{for(var t in r)s.o(r,t)&&!s.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},s.f={},s.e=e=>Promise.all(Object.keys(s.f).reduce(((r,t)=>(s.f[t](e,r),r)),[])),s.u=e=>"./"+e+".mpw.js",s.miniCssF=e=>{},s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),s.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e;s.g.importScripts&&(e=s.g.location+"");var r=s.g.document;if(!e&&r&&(r.currentScript&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var o=t.length-1;o>-1&&!e;)e=t[o--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),s.p=e})(),(()=>{var e={123:1,492:1};s.f.i=(r,t)=>{e[r]||importScripts(s.p+s.u(r))};var r=self.webpackChunkMPW=self.webpackChunkMPW||[],t=r.push.bind(r);r.push=r=>{var[o,i,n]=r;for(var a in i)s.o(i,a)&&(s.m[a]=i[a]);for(n&&n(s);o.length;)e[o.pop()]=1;t(r)}})(),r=s.x,s.x=()=>Promise.all([s.e(812),s.e(498)]).then(r);var i=s.x();MPW=i})(); //# sourceMappingURL=123.mpw.js.map \ No newline at end of file diff --git a/123.mpw.js.map b/123.mpw.js.map index 64296de85..606bef69e 100644 --- a/123.mpw.js.map +++ b/123.mpw.js.map @@ -1 +1 @@ -{"version":3,"file":"./123.mpw.js","mappings":"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","sources":["webpack://MPW/webpack/runtime/chunk loaded","webpack://MPW/webpack/runtime/startup chunk dependencies","webpack://MPW/./scripts/promos_worker.js","webpack://MPW/webpack/bootstrap","webpack://MPW/webpack/runtime/define property getters","webpack://MPW/webpack/runtime/ensure chunk","webpack://MPW/webpack/runtime/get javascript chunk filename","webpack://MPW/webpack/runtime/get mini-css chunk filename","webpack://MPW/webpack/runtime/global","webpack://MPW/webpack/runtime/hasOwnProperty shorthand","webpack://MPW/webpack/runtime/node module decorator","webpack://MPW/webpack/runtime/publicPath","webpack://MPW/webpack/runtime/importScripts chunk loading","webpack://MPW/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var next = __webpack_require__.x;\n__webpack_require__.x = () => {\n\treturn Promise.all([\n\t\t__webpack_require__.e(621),\n\t\t__webpack_require__.e(498)\n\t]).then(next);\n};","import { PromoCode } from 'pivx-promos';\n\n// Listen for the caller giving the 'Promo Code' to derive\nonmessage = async function (evt) {\n const code = new PromoCode(evt.data);\n\n // Setup the progress emitter\n code.progressEmitter.on('deriveProgress', (progress) => {\n postMessage({ type: 'progress', res: progress });\n });\n\n // Begin deriving, returning the finished key when complete\n const cWallet = await code.derivePrivateKey();\n postMessage({ type: 'key', res: cWallet });\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// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n// the startup function\n__webpack_require__.x = () => {\n\t// Load entry module and return exports\n\t// This entry module depends on other loaded chunks and execution need to be delayed\n\tvar __webpack_exports__ = __webpack_require__.O(undefined, [621,498], () => (__webpack_require__(8651)))\n\t__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n\treturn __webpack_exports__;\n};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((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 and sibling chunks for the entrypoint\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"./\" + chunkId + \".mpw.js\";\n};","// This function allow to reference async chunks and sibling chunks for the entrypoint\n__webpack_require__.miniCssF = (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__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && !scriptUrl) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","// no baseURI\n\n// object to store loaded chunks\n// \"1\" means \"already loaded\"\nvar installedChunks = {\n\t123: 1,\n\t492: 1\n};\n\n// importScripts chunk loading\nvar installChunk = (data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\tfor(var moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) runtime(__webpack_require__);\n\twhile(chunkIds.length)\n\t\tinstalledChunks[chunkIds.pop()] = 1;\n\tparentChunkLoadingFunction(data);\n};\n__webpack_require__.f.i = (chunkId, promises) => {\n\t// \"1\" is the signal for \"already loaded\"\n\tif(!installedChunks[chunkId]) {\n\t\tif(true) { // all chunks have JS\n\t\t\timportScripts(__webpack_require__.p + __webpack_require__.u(chunkId));\n\t\t}\n\t}\n};\n\nvar chunkLoadingGlobal = self[\"webpackChunkMPW\"] = self[\"webpackChunkMPW\"] || [];\nvar parentChunkLoadingFunction = chunkLoadingGlobal.push.bind(chunkLoadingGlobal);\nchunkLoadingGlobal.push = installChunk;\n\n// no HMR\n\n// no HMR manifest","// run startup\nvar __webpack_exports__ = __webpack_require__.x();\n"],"names":["deferred","next","onmessage","async","evt","code","data","progressEmitter","on","progress","postMessage","type","res","cWallet","derivePrivateKey","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","id","loaded","__webpack_modules__","call","m","x","__webpack_exports__","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","d","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","reduce","promises","u","miniCssF","g","globalThis","this","Function","window","obj","prop","prototype","hasOwnProperty","nmd","paths","children","scriptUrl","importScripts","location","document","currentScript","src","scripts","getElementsByTagName","Error","replace","p","installedChunks","chunkLoadingGlobal","self","parentChunkLoadingFunction","push","bind","moreModules","runtime","pop","then"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"./123.mpw.js","mappings":"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","sources":["webpack://MPW/webpack/runtime/chunk loaded","webpack://MPW/webpack/runtime/startup chunk dependencies","webpack://MPW/./scripts/promos_worker.js","webpack://MPW/webpack/bootstrap","webpack://MPW/webpack/runtime/define property getters","webpack://MPW/webpack/runtime/ensure chunk","webpack://MPW/webpack/runtime/get javascript chunk filename","webpack://MPW/webpack/runtime/get mini-css chunk filename","webpack://MPW/webpack/runtime/global","webpack://MPW/webpack/runtime/hasOwnProperty shorthand","webpack://MPW/webpack/runtime/node module decorator","webpack://MPW/webpack/runtime/publicPath","webpack://MPW/webpack/runtime/importScripts chunk loading","webpack://MPW/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var next = __webpack_require__.x;\n__webpack_require__.x = () => {\n\treturn Promise.all([\n\t\t__webpack_require__.e(812),\n\t\t__webpack_require__.e(498)\n\t]).then(next);\n};","import { PromoCode } from 'pivx-promos';\n\n// Listen for the caller giving the 'Promo Code' to derive\nonmessage = async function (evt) {\n const code = new PromoCode(evt.data);\n\n // Setup the progress emitter\n code.progressEmitter.on('deriveProgress', (progress) => {\n postMessage({ type: 'progress', res: progress });\n });\n\n // Begin deriving, returning the finished key when complete\n const cWallet = await code.derivePrivateKey();\n postMessage({ type: 'key', res: cWallet });\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// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n// the startup function\n__webpack_require__.x = () => {\n\t// Load entry module and return exports\n\t// This entry module depends on other loaded chunks and execution need to be delayed\n\tvar __webpack_exports__ = __webpack_require__.O(undefined, [812,498], () => (__webpack_require__(8651)))\n\t__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n\treturn __webpack_exports__;\n};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((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 and sibling chunks for the entrypoint\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"./\" + chunkId + \".mpw.js\";\n};","// This function allow to reference async chunks and sibling chunks for the entrypoint\n__webpack_require__.miniCssF = (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__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && !scriptUrl) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","// no baseURI\n\n// object to store loaded chunks\n// \"1\" means \"already loaded\"\nvar installedChunks = {\n\t123: 1,\n\t492: 1\n};\n\n// importScripts chunk loading\nvar installChunk = (data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\tfor(var moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) runtime(__webpack_require__);\n\twhile(chunkIds.length)\n\t\tinstalledChunks[chunkIds.pop()] = 1;\n\tparentChunkLoadingFunction(data);\n};\n__webpack_require__.f.i = (chunkId, promises) => {\n\t// \"1\" is the signal for \"already loaded\"\n\tif(!installedChunks[chunkId]) {\n\t\tif(true) { // all chunks have JS\n\t\t\timportScripts(__webpack_require__.p + __webpack_require__.u(chunkId));\n\t\t}\n\t}\n};\n\nvar chunkLoadingGlobal = self[\"webpackChunkMPW\"] = self[\"webpackChunkMPW\"] || [];\nvar parentChunkLoadingFunction = chunkLoadingGlobal.push.bind(chunkLoadingGlobal);\nchunkLoadingGlobal.push = installChunk;\n\n// no HMR\n\n// no HMR manifest","// run startup\nvar __webpack_exports__ = __webpack_require__.x();\n"],"names":["deferred","next","onmessage","async","evt","code","data","progressEmitter","on","progress","postMessage","type","res","cWallet","derivePrivateKey","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","id","loaded","__webpack_modules__","call","m","x","__webpack_exports__","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","d","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","reduce","promises","u","miniCssF","g","globalThis","this","Function","window","obj","prop","prototype","hasOwnProperty","nmd","paths","children","scriptUrl","importScripts","location","document","currentScript","src","scripts","getElementsByTagName","Error","replace","p","installedChunks","chunkLoadingGlobal","self","parentChunkLoadingFunction","push","bind","moreModules","runtime","pop","then"],"sourceRoot":""} \ No newline at end of file diff --git a/137.mpw.js b/137.mpw.js deleted file mode 100644 index 51d5d663c..000000000 --- a/137.mpw.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkMPW=self.webpackChunkMPW||[]).push([[137],{34137:(e,t,a)=>{a.r(t),a.d(t,{default:()=>o});const o={amount:"Amount",staking:"Staking",wallet:"Wallet",display:"Display",activity:"Activity",yes:"Yes",no:"No",navDashboard:"Dashboard",navStake:"Stake",navMasternode:"Masternode",navGovernance:"Governance",navSettings:"Settings",footerBuiltWithPivxLabs:"Built with 💜 by PIVX Labs",loading:"Loading",loadingTitle:"My PIVX Wallet is",dashboardTitle:"Dashboard",dCardOneTitle:"Create a",dCardOneSubTitle:"New Wallet",dCardOneDesc:"Create a new PIVX wallet, offering the most secure backup & security methods.",dCardOneButton:"Create A New Wallet",dCardTwoTitle:"Create a new",dCardTwoSubTitle:"Vanity Wallet",dCardTwoDesc:"Create a wallet with a custom prefix, this can take a long time!",dCardTwoButton:"Create A Vanity Wallet",dCardThreeTitle:"Access your",dCardThreeSubTitle:"Ledger Wallet",dCardThreeDesc:"Use your Ledger Hardware wallet with MPW's familiar interface.",dCardThreeButton:"Access my Ledger",dCardFourTitle:"Go to",dCardFourSubTitle:"My Wallet",dCardFourDesc:"Import a PIVX wallet using a Private Key, xpriv, or Seed Phrase.",dCardFourButtonI:"Import Wallet",dCardFourButtonA:"Access My Wallet",vanityPrefixNote:"Note: addresses will always start with:",vanityPrefixInput:"Address Prefix",thisIsYourSeed:"This is your seed phrase:",writeDownSeed:"Write it down somewhere. You'll only see this once!",doNotShareWarning:"Anyone with a copy of it can access all of your funds.",doNotShare:"Do NOT share it with anyone.",digitalStoreNotAdvised:"It is NOT advised to store this digitally.",optionalPassphrase:"Optional Passphrase (BIP39)",writtenDown:"I have written down my seed phrase",importSeedValid:"Seed Phrase is valid!",importSeedError:"Seed Phrase is invalid!",importSeedErrorSize:"A Seed Phrase should be 12 or 24 words long!",importSeedErrorTypo:"Seed Phrase contains typing errors! Check your input carefully",importSeedErrorSkip:"Seed Phrase appears invalid, but the warning was skipped by the user",gettingStarted:"Getting Started",secureYourWallet:"Secure your wallet",unlockWallet:"Unlock wallet",lockWallet:"Lock wallet",encryptWallet:"Encrypt wallet",encryptPasswordCurrent:"Current Password",encryptPasswordFirst:"Enter Password",encryptPasswordSecond:"Re-enter Password",encrypt:"Encrypt",changePassword:"Change Password",balanceBreakdown:"Balance Breakdown",viewOnExplorer:"View on Explorer",export:"Export",refreshAddress:"Refresh address",redeemOrCreateCode:"Redeem or Create Code",address:"Address",receivingAddress:"Receiving address",sendAmountCoinsMax:"MAX",paymentRequestMessage:"Description (from the merchant)",send:"Send",receive:"Receive",contacts:"Contacts",name:"Name",username:"Username",addressOrXPub:"Address or XPub",back:"Back",chooseAContact:"Choose a Contact",createContact:"Create Contact",encryptFirstForContacts:'Once you hit "{button}" in the Dashboard, you can create a Contact to make receiving PIV easier!',shareContactURL:"Share Contact URL",setupYourContact:"Setup your Contact",receiveWithContact:"Receive using a simple username-based Contact",onlyShareContactPrivately:"Only share your Contact with trusted people (family, friends)",changeTo:"Change to",contact:"Contact",xpub:"XPub",addContactTitle:"Add {strName} to Contacts",addContactSubtext:"Once added you'll be able to send transactions to {strName} by their name (either typing, or clicking), no more addresses, nice 'n easy.",addContactWarning:'Ensure that this is the real "{strName}", do not accept Contact requests from unknown sources!',editContactTitle:'Change "{strName}" Contact',newName:"New Name",removeContactTitle:"Remove {strName}?",removeContactSubtext:"Are you sure you wish to remove {strName} from your Contacts?",removeContactNote:"You can add them again any time in the future.",privateKey:"Private Key",viewPrivateKey:"View Private Key?",privateWarning1:"Make sure no one can see your screen.",privateWarning2:"Anyone with this key can steal your funds.",viewKey:"View key",pivxPromos:"is a decentralised system for gift codes worth PIV",redeemInput:"Enter your 'PIVX Promos' code",createName:"Promo Name (Optional)",createAmount:"Promo Amount",stake:"Stake",stakeUnstake:"Unstake",ownerAddress:"(Optional) Owner Address",rewardHistory:"Reward History",loadMore:"Load more",mnControlYour:"Control your",mnSubtext:"From this tab you can create and access one or more masternodes",govSubtext:"From this tab you can check the proposals and, if you have a masternode, be a part of the DAO and vote!",govMonthlyBudget:"Monthly Budget",govAllocBudget:"Allocated Budget",govNextPayout:"Next Treasury Payout",govTableStatus:"STATUS",govTableName:"NAME",govTablePayment:"PAYMENT",govTableVotes:"VOTES",govTableVote:"VOTE",contestedProposalsTitle:"Contested Proposals",contestedProposalsDesc:"These are proposals that received an overwhelming amount of downvotes, making it likely spam or a highly contestable proposal.",settingsCurrency:"Choose a display currency:",priceProvidedBy:"Price data provided by",settingsDecimals:"Balance Decimals:",settingsExplorer:"Choose an explorer:",settingsLanguage:"Choose a Language:",settingsPivxNode:"Choose a PIVX node:",settingsAutoSelectNet:"Auto-select Explorers and Nodes",settingsAnalytics:"Choose your analytics contribution level:",settingsToggleDebug:"Debug Mode",settingsToggleTestnet:"Testnet Mode",settingsToggleAdvancedMode:"Advanced Mode",settingsToggleAdvancedModeSubtext:"This unlocks deeper functionality and customisation, but may be overwhelming and potentially dangerous for unexperienced users!",netSwitchUnsavedWarningTitle:"Your {network} wallet isn't saved!",netSwitchUnsavedWarningSubtitle:"Your {network} account is at risk!",netSwitchUnsavedWarningSubtext:"If you switch to {network} before saving it, you'll lose the account!",netSwitchUnsavedWarningConfirmation:"Are you really sure?",transparencyReport:"Transparency Report",hit:"A ping indicating an app load, no unique data is sent.",time_to_sync:"The time in seconds it took for MPW to last synchronise.",transaction:"A ping indicating a Tx, no unique data is sent, but may be inferred from on-chain time.",analyticDisabled:"Disabled",analyticMinimal:"Minimal",analyticBalanced:"Balanced",MIGRATION_ACCOUNT_FAILURE_TITLE:"Failed to recover account",MIGRATION_ACCOUNT_FAILURE_HTML:"There was an error recovering your account.
Please reimport your wallet using the following key:",ID:"ID",time:"Time",description:"Description",activityBlockReward:"Block Reward",activitySentTo:"Sent to {r}",activitySelf:"self",activityShieldedAddress:"Shielded address",activityReceivedFrom:"Received from {s}",activityDelegatedTo:"Delegated to {r}",activityUndelegated:"Undelegated",activityUnknown:"Unknown Tx",password:"Password",walletUnlock:"Unlock your wallet",walletPassword:"Wallet password",walletUnlockCreateMN:"Unlock to create your Masternode!",walletUnlockMNStart:"Unlock to start your Masternode!",walletUnlockProposal:"Unlock to create a proposal!",walletUnlockPromo:"Unlock to finalise your Promo Code!",walletUnlockTx:"Unlock to send your transaction!",walletUnlockStake:"Unlock to stake your",walletUnlockUnstake:"Unlock to unstake your",changelogTitle:"What's New in",popupSetColdAddr:"Set your Cold Staking address",popupCurrentAddress:"Current address:",popupColdStakeNote:"A Cold Address stakes coins on your behalf, it cannot spend coins, so it's even safe to use a stranger's Cold Address!",popupExample:"Example:",popupWalletLock:"Do you want to lock your wallet?",popupWalletWipe:"Do you want to wipe your wallet private data?",popupWalletLockNote:"You will need to enter your password to access your funds",popupWalletWipeNote:"You will lose access to your funds if you haven't backed up your private key or seed phrase",popupSeedPhraseBad:"Unexpected Seed Phrase",popupSeedPhraseBadNote:"The seed phrase is either invalid or was not generated by MPW.
Do you still want to proceed?",popupCreateProposal:"Create Proposal",popupCreateProposalCost:"Cost",popupProposalName:"Proposal Name",popupProposalAddress:"Proposal Address (Optional)",popupProposalDuration:"Duration in cycles",popupProposalPerCycle:"per cycle",popupProposalEncryptFirst:'You need to hit "{button}" before you can create proposals!',popupProposalVoteHash:"Vote Hash:",popupProposalFinalisedNote:"Congratulations on launching your proposal!
Masternode owners can use your Vote Hash to vote from wallets other than MPW, so make sure to add this to your forum post, if applicable!",popupProposalFinalisedSignoff:"Good luck on your journey through the DAO, PIVian!",popupHardwareAddrCheck:"Please confirm this is the address you see on your",proposalFinalisationConfirming:"Confirming...",proposalFinalisationRemaining:"remaining",proposalFinalisationExpired:"Proposal Expired",proposalFinalisationReady:"Ready to submit",proposalPassing:"PASSING",proposalFailing:"FAILING",proposalTooYoung:"TOO YOUNG",proposalFunded:"FUNDED",proposalNotFunded:"NOT FUNDED",proposalPaymentsRemaining:"installment(s) remaining
of",proposalPaymentTotal:"total",proposalNetYes:"Net Yes",popupConfirm:"Confirm",popupClose:"Close",popupCancel:"Cancel",chartPublicAvailable:"Public Available",timeDays:"Days",timeHours:"Hours",timeMinutes:"Minutes",timeSeconds:"Seconds",unhandledException:"Unhandled exception.",ALERTS:"<-- DO NOT EDIT THIS LINE! All below entries are for Alert Popups",INTERNAL_ERROR:"Internal error, please try again later",FAILED_TO_IMPORT:"Failed to import! Invalid password",FAILED_TO_IMPORT_HARDWARE:" Failed to import Hardware Wallet.",TESTNET_ENCRYPTION_DISABLED:"Testnet Mode is ON!
Wallet encryption disabled",PASSWORD_TOO_SMALL:"That password is a little short!
Use at least {MIN_PASS_LENGTH} characters.",PASSWORD_DOESNT_MATCH:"Your passwords don't match!",NEW_PASSWORD_SUCCESS:"You're Secured! 🔐
Nice stuff, Armoured PIVian!",INCORRECT_PASSWORD:"Incorrect password!",INVALID_AMOUNT:"Invalid amount!
",TX_SENT:"Transaction sent!",TX_FAILED:"Transaction Failed!",QR_SCANNER_BAD_RECEIVER:"is not a valid payment receiver",UNSUPPORTED_CHARACTER:"The character '{char}' is unsupported in addresses! (Not Base58 compatible)",UNSUPPORTED_WEBWORKERS:"This browser doesn't support Web Workers (multi-threaded JS), unfortunately you cannot generate Vanity wallets!",INVALID_ADDRESS:"Invalid PIVX address!
{address}",VALIDATE_AMOUNT_LOW:"
Minimum amount is {minimumAmount} {coinTicker}!",VALIDATE_AMOUNT_DECIMAL:"{coinDecimal} decimal limit exceeded",SUCCESS_STAKING_ADDR:"Staking Address set!
Now go ahead and unstake!",CONFIRM_UNSTAKE_H_WALLET:"Confirm your Unstake
Confirm the TX on your {strHardwareName}",CONFIRM_TRANSACTION_H_WALLET:"Confirm your transaction
Confirm the TX on your {strHardwareName}",SUCCESS_STAKING_ADDR_SET:"Staking Address set!
Now go ahead and stake!",STAKE_ADDR_SET:"Cold Address set!
Future stakes will use this address.",STAKE_ADDR_BAD:"Invalid Cold Staking address!",STAKE_NOT_SEND:"Here, use the Stake screen, not the Send screen!",BAD_ADDR_LENGTH:"Invalid PIVX address!
Bad length ({addressLength})",BAD_ADDR_PREFIX:"Invalid PIVX address!
Bad prefix {address} (Should start with {addressPrefix})",SENT_NOTHING:"You can't send 'nothing'!",MORE_THEN_8_DECIMALS:"8 decimal limit exceeded",SAVE_WALLET_PLEASE:"Save your wallet!
Dashboard ➜ Secure your wallet",BACKUP_OR_ENCRYPT_WALLET:"Please ENCRYPT and/or BACKUP your keys before leaving, or you may lose them!",NO_CAMERAS:"This device has no camera!",STAKING_LEDGER_NO_SUPPORT:"Ledger is not supported for Cold Staking",CONNECTION_FAILED:"Failed to synchronize! Please try again later.
You can attempt re-connect via the Settings.",MN_NOT_ENABLED:"Your masternode is not enabled yet!",VOTE_SUBMITTED:"Vote submitted!",VOTED_ALREADY:"You already voted for this proposal! Please wait 1 hour",VOTE_SIG_BAD:"Failed to verify signature, please check your masternode's private key",MN_CREATED_WAIT_CONFS:"Masternode Created!
Wait 15 confirmations to proceed further",MN_ACCESS_BEFORE_VOTE:"Access a masternode before voting!",MN_OFFLINE_STARTING:"Your masternode is offline, we will try to start it",MN_STARTED:"Masternode started!",MN_RESTARTED:"Masternode restarted!",MN_STARTED_ONLINE_SOON:"Masternode started!
It'll be online soon",MN_START_FAILED:"Masternode started!",MN_RESTART_FAILED:"Masternode restarted!",MN_DESTROYED:"Masternode destroyed!
Your coins are now spendable.",MN_STATUS_IS:"Your masternode status is",MN_STATE:"Your masternode is in {state} state",MN_BAD_IP:"The IP address is invalid!",MN_NOT_ENOUGH_COLLAT:"You need {amount} more {ticker} to create a Masternode!",MN_ENOUGH_BUT_NO_COLLAT:"You have enough balance for a Masternode, but no valid collateral UTXO of {amount} {ticker}",MN_COLLAT_NOT_SUITABLE:"This is not a suitable UTXO for a Masternode",MN_CANT_CONNECT:"Unable to connect to RPC node!",CONTACTS_ENCRYPT_FIRST:'You need to hit "{button}" before you can use Contacts!',CONTACTS_NAME_REQUIRED:"A name is required!",CONTACTS_NAME_TOO_LONG:"That name is too long!",CONTACTS_CANNOT_ADD_YOURSELF:"You cannot add yourself as a Contact!",CONTACTS_ALREADY_EXISTS:"Contact already exists!
You already saved this contact",CONTACTS_NAME_ALREADY_EXISTS:"Contact name already exists!
This could potentially be a phishing attempt, beware!",CONTACTS_EDIT_NAME_ALREADY_EXISTS:'Contact already exists!
A contact is already called "{strNewName}"!',CONTACTS_KEY_ALREADY_EXISTS:"Contact already exists, but under a different name!
You have {newName} saved as {oldName} in your contacts",CONTACTS_NOT_A_CONTACT_QR:"This isn't a Contact QR!",CONTACTS_ADDED:"New Contact added!
{strName} has been added, hurray!",CONTACTS_YOU_HAVE_NONE:"You have no contacts!",PROPOSAL_FINALISED:"Proposal Launched!",PROPOSAL_UNCONFIRMED:"The proposal hasn't confirmed yet",PROPOSAL_EXPIRED:"The proposal has expired. Create a new one.",PROPOSAL_FINALISE_FAIL:"Failed to finalize proposal.",PROPOSAL_IMPORT_FIRST:"Create or import your wallet to continue",PROPOSAL_NOT_ENOUGH_FUNDS:"Not enough funds to create a proposal.",PROPOSAL_INVALID_ERROR:"Proposal is invalid. Error:",PROPOSAL_CREATED:"Proposal Created!
Wait for confirmations, then finalise your proposal!",PROMO_MIN:"Minimum amount is {min} {ticker}!",PROMO_MAX_QUANTITY:"Your device can only create {quantity} codes at a time!",PROMO_NOT_ENOUGH:"You don't have enough {ticker} to create that code!",PROMO_ALREADY_CREATED:"You've already created that code!",SWITCHED_EXPLORERS:"Switched explorer!
Now using {explorerName}",SWITCHED_NODE:"Switched node!
Now using {node}",SWITCHED_ANALYTICS:"Switched analytics level!
Now {level}",SWITCHED_SYNC:"Switched sync mode!
Now using {sync} sync",UNABLE_SWITCH_TESTNET:"Unable to switch Testnet Mode!
A wallet is already loaded",WALLET_OFFLINE_AUTOMATIC:"Offline Mode is active!
Please disable Offline Mode for automatic transactions",WALLET_UNLOCK_IMPORT:"Please {unlock} your wallet before sending transactions!",WALLET_FIREFOX_UNSUPPORTED:"Firefox doesn't support this!
Unfortunately, Firefox does not support hardware wallets",WALLET_HARDWARE_WALLET:"Hardware wallet ready!
Please keep your {hardwareWallet} plugged in, unlocked, and in the PIVX app",WALLET_CONFIRM_L:"Confirm the import on your Ledger",WALLET_NO_HARDWARE:"No device available
Couldn't find a hardware wallet; please plug it in and unlock!",WALLET_HARDWARE_UDEV:"The OS denied access Did you add the udev rules?",WALLET_HARDWARE_NO_ACCESS:"The OS denied access Please check your Operating System settings.",WALLET_HARDWARE_CONNECTION_LOST:"Lost connection to {hardwareWallet}
It seems the {hardwareWallet} was unplugged mid-operation, oops!",WALLET_HARDWARE_BUSY:"{hardwareWallet} is waiting
Please unlock your {hardwareWallet} or finish it's current prompt",WALLET_HARDWARE_ERROR:" {hardwareWallet}
{error}",CONFIRM_POPUP_VOTE:"Confirm Vote",CONFIRM_POPUP_VOTE_HTML:"Are you sure? It takes 60 minutes to change vote",CONFIRM_POPUP_TRANSACTION:"Confirm your transaction",CONFIRM_POPUP_MN_P_KEY:"Your Masternode Private Key",CONFIRM_POPUP_MN_P_KEY_HTML:"
Save this private key and copy it to your VPS config
",CONFIRM_POPUP_VERIFY_ADDR:"Verify your address",MIGRATION_MASTERNODE_FAILURE:"Failed to recover your masternode. Please reimport it.",MIGRATION_ACCOUNT_FAILURE:"Failed to recover your account. Please reimport it.",APP_INSTALLED:"App Installed!"}}}]); -//# sourceMappingURL=137.mpw.js.map \ No newline at end of file diff --git a/137.mpw.js.map b/137.mpw.js.map deleted file mode 100644 index 416a600ba..000000000 --- a/137.mpw.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"./137.mpw.js","mappings":"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","sources":["webpack://MPW/./locale/en/translation.js"],"sourcesContent":["export default {\n // This document is to be used as a template as all the base code is in English\n // Basic HTML tags are allowed such as etc. All data is sanitized https://developer.mozilla.org/en-US/docs/Web/API/Element/innerHTML\n\n // General words\n amount: 'Amount', //\n staking: 'Staking', //\n wallet: 'Wallet', //\n display: 'Display', //\n activity: 'Activity', //\n yes: 'Yes', //\n no: 'No', //\n\n // Nav Bar\n navDashboard: 'Dashboard', //\n navStake: 'Stake', //\n navMasternode: 'Masternode', //\n navGovernance: 'Governance', //\n navSettings: 'Settings', //\n\n // Footer\n footerBuiltWithPivxLabs: 'Built with 💜 by PIVX Labs', //\n\n // Intro\n loading: 'Loading', //\n loadingTitle: 'My PIVX Wallet is', //\n\n // Onboarding Dashboard\n dashboardTitle: 'Dashboard', //\n dCardOneTitle: 'Create a', //\n dCardOneSubTitle: 'New Wallet', //\n dCardOneDesc:\n 'Create a new PIVX wallet, offering the most secure backup & security methods.', //\n dCardOneButton: 'Create A New Wallet', //\n\n dCardTwoTitle: 'Create a new', //\n dCardTwoSubTitle: 'Vanity Wallet', //\n dCardTwoDesc:\n 'Create a wallet with a custom prefix, this can take a long time!', //\n dCardTwoButton: 'Create A Vanity Wallet', //\n\n dCardThreeTitle: 'Access your', //\n dCardThreeSubTitle: 'Ledger Wallet', //\n dCardThreeDesc:\n \"Use your Ledger Hardware wallet with MPW's familiar interface.\", //\n dCardThreeButton: 'Access my Ledger', //\n\n dCardFourTitle: 'Go to', //\n dCardFourSubTitle: 'My Wallet', //\n dCardFourDesc:\n 'Import a PIVX wallet using a Private Key, xpriv, or Seed Phrase.', //\n dCardFourButtonI: 'Import Wallet', //\n dCardFourButtonA: 'Access My Wallet', //\n\n // Vanity Creation\n vanityPrefixNote: 'Note: addresses will always start with:', //\n vanityPrefixInput: 'Address Prefix', //\n\n // Seed Phrase Creation\n thisIsYourSeed: 'This is your seed phrase:', //\n writeDownSeed: \"Write it down somewhere. You'll only see this once!\", //\n doNotShareWarning:\n 'Anyone with a copy of it can access all of your funds.', //\n doNotShare: 'Do NOT share it with anyone.', //\n digitalStoreNotAdvised: 'It is NOT advised to store this digitally.', //\n optionalPassphrase: 'Optional Passphrase (BIP39)', //\n writtenDown: 'I have written down my seed phrase', //\n\n // Seed Phrase Import\n importSeedValid: 'Seed Phrase is valid!', //\n importSeedError: 'Seed Phrase is invalid!', //\n importSeedErrorSize: 'A Seed Phrase should be 12 or 24 words long!', //\n importSeedErrorTypo:\n 'Seed Phrase contains typing errors! Check your input carefully', //\n importSeedErrorSkip:\n 'Seed Phrase appears invalid, but the warning was skipped by the user', //\n\n // Wallet Dashboard\n gettingStarted: 'Getting Started', //\n secureYourWallet: 'Secure your wallet', //\n unlockWallet: 'Unlock wallet', //\n lockWallet: 'Lock wallet', //\n\n // Encrypt wallet\n encryptWallet: 'Encrypt wallet', //\n encryptPasswordCurrent: 'Current Password', //\n encryptPasswordFirst: 'Enter Password', //\n encryptPasswordSecond: 'Re-enter Password', //\n encrypt: 'Encrypt', //\n changePassword: 'Change Password', //\n\n // Wallet Dashboard Sub-menu\n balanceBreakdown: 'Balance Breakdown', //\n viewOnExplorer: 'View on Explorer', //\n export: 'Export', //\n refreshAddress: 'Refresh address', //\n redeemOrCreateCode: 'Redeem or Create Code', //\n\n // Send\n address: 'Address', //\n receivingAddress: 'Receiving address', //\n sendAmountCoinsMax: 'MAX', //\n paymentRequestMessage: 'Description (from the merchant)', //\n send: 'Send', //\n\n // Contacts System\n receive: 'Receive', //\n contacts: 'Contacts', //\n name: 'Name', //\n username: 'Username', //\n addressOrXPub: 'Address or XPub', //\n back: 'Back', //\n chooseAContact: 'Choose a Contact', //\n createContact: 'Create Contact', //\n encryptFirstForContacts:\n 'Once you hit \"{button}\" in the Dashboard, you can create a Contact to make receiving PIV easier!', //\n shareContactURL: 'Share Contact URL', //\n setupYourContact: 'Setup your Contact', //\n receiveWithContact: 'Receive using a simple username-based Contact', //\n onlyShareContactPrivately:\n 'Only share your Contact with trusted people (family, friends)', //\n\n /* Context: The \"Change to\" is used in-app with one of the Three options below it, i.e: \"Change to Contact\" */\n changeTo: 'Change to', //\n contact: 'Contact', //\n xpub: 'XPub', //\n\n addContactTitle: 'Add {strName} to Contacts', //\n addContactSubtext:\n \"Once added you'll be able to send transactions to {strName} by their name (either typing, or clicking), no more addresses, nice 'n easy.\", //\n addContactWarning:\n 'Ensure that this is the real \"{strName}\", do not accept Contact requests from unknown sources!', //\n\n editContactTitle: 'Change \"{strName}\" Contact', //\n newName: 'New Name', //\n\n removeContactTitle: 'Remove {strName}?', //\n removeContactSubtext:\n 'Are you sure you wish to remove {strName} from your Contacts?', //\n removeContactNote: 'You can add them again any time in the future.', //\n\n // Export\n privateKey: 'Private Key', //\n viewPrivateKey: 'View Private Key?', //\n privateWarning1: 'Make sure no one can see your screen.', //\n privateWarning2: 'Anyone with this key can steal your funds.', //\n viewKey: 'View key', //\n\n // PIVX Promos\n // NOTE: for this below line, continue the sentence \"PIVX Promos [...]\", since 'PIVX Promos' is a brand, it is not translated.\n pivxPromos: 'is a decentralised system for gift codes worth PIV', // [...] is a decentralised system for gift codes worth PIV\n // NOTE: on this line, if possible, leave 'PIVX Promos' untranslated\n redeemInput: \"Enter your 'PIVX Promos' code\", //Enter your 'PIVX Promos' code\n createName: 'Promo Name (Optional)', //Promo Name (Optional)\n createAmount: 'Promo Amount', //Promo Amount\n\n // Stake\n stake: 'Stake', //\n stakeUnstake: 'Unstake', //\n ownerAddress: '(Optional) Owner Address',\n rewardHistory: 'Reward History', //\n loadMore: 'Load more', //\n\n // Masternode\n mnControlYour: 'Control your', //\n mnSubtext:\n 'From this tab you can create and access one or more masternodes', //\n\n // Governance\n govSubtext:\n 'From this tab you can check the proposals and, if you have a masternode, be a part of the DAO and vote!', //\n govMonthlyBudget: 'Monthly Budget', //\n govAllocBudget: 'Allocated Budget', //\n govNextPayout: 'Next Treasury Payout', //\n govTableStatus: 'STATUS', //\n govTableName: 'NAME', //\n govTablePayment: 'PAYMENT', //\n govTableVotes: 'VOTES', //\n govTableVote: 'VOTE', //\n contestedProposalsTitle: 'Contested Proposals', //\n contestedProposalsDesc:\n 'These are proposals that received an overwhelming amount of downvotes, making it likely spam or a highly contestable proposal.', //\n\n // Settings\n settingsCurrency: 'Choose a display currency:', //\n priceProvidedBy: 'Price data provided by', //\n settingsDecimals: 'Balance Decimals:', //\n settingsExplorer: 'Choose an explorer:', //\n settingsLanguage: 'Choose a Language:', //\n settingsPivxNode: 'Choose a PIVX node:', //\n settingsAutoSelectNet: 'Auto-select Explorers and Nodes', //\n settingsAnalytics: 'Choose your analytics contribution level:', //\n settingsToggleDebug: 'Debug Mode', //\n settingsToggleTestnet: 'Testnet Mode', //\n settingsToggleAdvancedMode: 'Advanced Mode', //\n settingsToggleAdvancedModeSubtext:\n 'This unlocks deeper functionality and customisation, but may be overwhelming and potentially dangerous for unexperienced users!', //\n\n // Network switching (mainnet <---> testnet)\n netSwitchUnsavedWarningTitle: \"Your {network} wallet isn't saved!\", //\n netSwitchUnsavedWarningSubtitle: 'Your {network} account is at risk!', //\n netSwitchUnsavedWarningSubtext:\n \"If you switch to {network} before saving it, you'll lose the account!\", //\n netSwitchUnsavedWarningConfirmation: 'Are you really sure?', //\n\n // Transparency Report\n transparencyReport: 'Transparency Report',\n hit: 'A ping indicating an app load, no unique data is sent.',\n time_to_sync: 'The time in seconds it took for MPW to last synchronise.',\n transaction:\n 'A ping indicating a Tx, no unique data is sent, but may be inferred from on-chain time.',\n\n // Analytics Levels\n analyticDisabled: 'Disabled',\n analyticMinimal: 'Minimal',\n analyticBalanced: 'Balanced',\n\n // Migration System\n MIGRATION_ACCOUNT_FAILURE_TITLE: 'Failed to recover account',\n MIGRATION_ACCOUNT_FAILURE_HTML:\n 'There was an error recovering your account.
Please reimport your wallet using the following key:',\n\n // Dynamic Elements (Rendered at runtime - TODO in future PR: sort in to above categories for consistency)\n ID: 'ID',\n time: 'Time',\n description: 'Description',\n activityBlockReward: 'Block Reward',\n activitySentTo: 'Sent to {r}',\n activitySelf: 'self',\n activityShieldedAddress: 'Shielded address',\n activityReceivedFrom: 'Received from {s}',\n activityDelegatedTo: 'Delegated to {r}',\n activityUndelegated: 'Undelegated',\n activityUnknown: 'Unknown Tx',\n password: 'Password',\n walletUnlock: 'Unlock your wallet',\n walletPassword: 'Wallet password',\n walletUnlockCreateMN: 'Unlock to create your Masternode!',\n walletUnlockMNStart: 'Unlock to start your Masternode!',\n walletUnlockProposal: 'Unlock to create a proposal!',\n walletUnlockPromo: 'Unlock to finalise your Promo Code!',\n walletUnlockTx: 'Unlock to send your transaction!',\n walletUnlockStake: 'Unlock to stake your',\n walletUnlockUnstake: 'Unlock to unstake your',\n changelogTitle: \"What's New in\",\n popupSetColdAddr: 'Set your Cold Staking address',\n popupCurrentAddress: 'Current address:',\n popupColdStakeNote:\n \"A Cold Address stakes coins on your behalf, it cannot spend coins, so it's even safe to use a stranger's Cold Address!\",\n popupExample: 'Example:',\n popupWalletLock: 'Do you want to lock your wallet?',\n popupWalletWipe: 'Do you want to wipe your wallet private data?',\n popupWalletLockNote:\n 'You will need to enter your password to access your funds',\n popupWalletWipeNote:\n \"You will lose access to your funds if you haven't backed up your private key or seed phrase\",\n popupSeedPhraseBad: 'Unexpected Seed Phrase',\n popupSeedPhraseBadNote:\n 'The seed phrase is either invalid or was not generated by MPW.
Do you still want to proceed?',\n popupCreateProposal: 'Create Proposal',\n popupCreateProposalCost: 'Cost',\n popupProposalName: 'Proposal Name',\n popupProposalAddress: 'Proposal Address (Optional)',\n popupProposalDuration: 'Duration in cycles',\n popupProposalPerCycle: 'per cycle',\n popupProposalEncryptFirst:\n 'You need to hit \"{button}\" before you can create proposals!',\n popupProposalVoteHash: 'Vote Hash:',\n popupProposalFinalisedNote:\n 'Congratulations on launching your proposal!
Masternode owners can use your Vote Hash to vote from wallets other than MPW, so make sure to add this to your forum post, if applicable!',\n popupProposalFinalisedSignoff:\n 'Good luck on your journey through the DAO, PIVian!',\n popupHardwareAddrCheck:\n 'Please confirm this is the address you see on your',\n proposalFinalisationConfirming: 'Confirming...',\n proposalFinalisationRemaining: 'remaining',\n proposalFinalisationExpired: 'Proposal Expired',\n proposalFinalisationReady: 'Ready to submit',\n proposalPassing: 'PASSING',\n proposalFailing: 'FAILING',\n proposalTooYoung: 'TOO YOUNG',\n proposalFunded: 'FUNDED',\n proposalNotFunded: 'NOT FUNDED',\n proposalPaymentsRemaining: 'installment(s) remaining
of',\n proposalPaymentTotal: 'total',\n proposalNetYes: 'Net Yes',\n popupConfirm: 'Confirm',\n popupClose: 'Close',\n popupCancel: 'Cancel',\n chartPublicAvailable: 'Public Available',\n timeDays: 'Days',\n timeHours: 'Hours',\n timeMinutes: 'Minutes',\n timeSeconds: 'Seconds',\n unhandledException: 'Unhandled exception.',\n\n // Alerts\n ALERTS: '<-- DO NOT EDIT THIS LINE! All below entries are for Alert Popups',\n\n INTERNAL_ERROR: 'Internal error, please try again later',\n FAILED_TO_IMPORT: 'Failed to import! Invalid password',\n FAILED_TO_IMPORT_HARDWARE: ' Failed to import Hardware Wallet.',\n TESTNET_ENCRYPTION_DISABLED:\n 'Testnet Mode is ON!
Wallet encryption disabled',\n PASSWORD_TOO_SMALL:\n 'That password is a little short!
Use at least {MIN_PASS_LENGTH} characters.',\n PASSWORD_DOESNT_MATCH: \"Your passwords don't match!\",\n NEW_PASSWORD_SUCCESS:\n \"You're Secured! 🔐
Nice stuff, Armoured PIVian!\",\n INCORRECT_PASSWORD: 'Incorrect password!',\n INVALID_AMOUNT: 'Invalid amount!
',\n TX_SENT: 'Transaction sent!',\n TX_FAILED: 'Transaction Failed!',\n QR_SCANNER_BAD_RECEIVER: 'is not a valid payment receiver',\n UNSUPPORTED_CHARACTER:\n \"The character '{char}' is unsupported in addresses! (Not Base58 compatible)\",\n UNSUPPORTED_WEBWORKERS:\n \"This browser doesn't support Web Workers (multi-threaded JS), unfortunately you cannot generate Vanity wallets!\",\n INVALID_ADDRESS: 'Invalid PIVX address!
{address}',\n VALIDATE_AMOUNT_LOW: '
Minimum amount is {minimumAmount} {coinTicker}!',\n VALIDATE_AMOUNT_DECIMAL: '{coinDecimal} decimal limit exceeded',\n SUCCESS_STAKING_ADDR:\n 'Staking Address set!
Now go ahead and unstake!',\n CONFIRM_UNSTAKE_H_WALLET:\n 'Confirm your Unstake
Confirm the TX on your {strHardwareName}',\n CONFIRM_TRANSACTION_H_WALLET:\n 'Confirm your transaction
Confirm the TX on your {strHardwareName}',\n SUCCESS_STAKING_ADDR_SET:\n 'Staking Address set!
Now go ahead and stake!',\n STAKE_ADDR_SET:\n 'Cold Address set!
Future stakes will use this address.',\n STAKE_ADDR_BAD: 'Invalid Cold Staking address!',\n STAKE_NOT_SEND: 'Here, use the Stake screen, not the Send screen!',\n BAD_ADDR_LENGTH:\n 'Invalid PIVX address!
Bad length ({addressLength})',\n BAD_ADDR_PREFIX:\n 'Invalid PIVX address!
Bad prefix {address} (Should start with {addressPrefix})',\n SENT_NOTHING: \"You can't send 'nothing'!\",\n MORE_THEN_8_DECIMALS: '8 decimal limit exceeded',\n SAVE_WALLET_PLEASE:\n 'Save your wallet!
Dashboard ➜ Secure your wallet',\n BACKUP_OR_ENCRYPT_WALLET:\n 'Please ENCRYPT and/or BACKUP your keys before leaving, or you may lose them!',\n NO_CAMERAS: 'This device has no camera!',\n STAKING_LEDGER_NO_SUPPORT: 'Ledger is not supported for Cold Staking',\n CONNECTION_FAILED:\n 'Failed to synchronize! Please try again later.
You can attempt re-connect via the Settings.',\n MN_NOT_ENABLED: 'Your masternode is not enabled yet!',\n VOTE_SUBMITTED: 'Vote submitted!',\n VOTED_ALREADY: 'You already voted for this proposal! Please wait 1 hour',\n VOTE_SIG_BAD:\n \"Failed to verify signature, please check your masternode's private key\",\n MN_CREATED_WAIT_CONFS:\n 'Masternode Created!
Wait 15 confirmations to proceed further',\n MN_ACCESS_BEFORE_VOTE: 'Access a masternode before voting!',\n MN_OFFLINE_STARTING: 'Your masternode is offline, we will try to start it',\n MN_STARTED: 'Masternode started!',\n MN_RESTARTED: 'Masternode restarted!',\n MN_STARTED_ONLINE_SOON:\n \"Masternode started!
It'll be online soon\",\n MN_START_FAILED: 'Masternode started!',\n MN_RESTART_FAILED: 'Masternode restarted!',\n MN_DESTROYED:\n 'Masternode destroyed!
Your coins are now spendable.',\n MN_STATUS_IS: 'Your masternode status is',\n MN_STATE: 'Your masternode is in {state} state',\n MN_BAD_IP: 'The IP address is invalid!',\n MN_NOT_ENOUGH_COLLAT:\n 'You need {amount} more {ticker} to create a Masternode!',\n MN_ENOUGH_BUT_NO_COLLAT:\n 'You have enough balance for a Masternode, but no valid collateral UTXO of {amount} {ticker}',\n MN_COLLAT_NOT_SUITABLE: 'This is not a suitable UTXO for a Masternode',\n MN_CANT_CONNECT: 'Unable to connect to RPC node!',\n\n /* Contacts System Alerts */\n CONTACTS_ENCRYPT_FIRST:\n 'You need to hit \"{button}\" before you can use Contacts!',\n CONTACTS_NAME_REQUIRED: 'A name is required!',\n CONTACTS_NAME_TOO_LONG: 'That name is too long!',\n CONTACTS_CANNOT_ADD_YOURSELF: 'You cannot add yourself as a Contact!',\n CONTACTS_ALREADY_EXISTS:\n 'Contact already exists!
You already saved this contact',\n CONTACTS_NAME_ALREADY_EXISTS:\n 'Contact name already exists!
This could potentially be a phishing attempt, beware!',\n CONTACTS_EDIT_NAME_ALREADY_EXISTS:\n 'Contact already exists!
A contact is already called \"{strNewName}\"!',\n CONTACTS_KEY_ALREADY_EXISTS:\n 'Contact already exists, but under a different name!
You have {newName} saved as {oldName} in your contacts',\n CONTACTS_NOT_A_CONTACT_QR: \"This isn't a Contact QR!\",\n CONTACTS_ADDED:\n 'New Contact added!
{strName} has been added, hurray!',\n CONTACTS_YOU_HAVE_NONE: 'You have no contacts!',\n\n PROPOSAL_FINALISED: 'Proposal Launched!',\n PROPOSAL_UNCONFIRMED: \"The proposal hasn't confirmed yet\",\n PROPOSAL_EXPIRED: 'The proposal has expired. Create a new one.',\n PROPOSAL_FINALISE_FAIL: 'Failed to finalize proposal.',\n PROPOSAL_IMPORT_FIRST: 'Create or import your wallet to continue',\n PROPOSAL_NOT_ENOUGH_FUNDS: 'Not enough funds to create a proposal.',\n PROPOSAL_INVALID_ERROR: 'Proposal is invalid. Error:',\n PROPOSAL_CREATED:\n 'Proposal Created!
Wait for confirmations, then finalise your proposal!',\n\n PROMO_MIN: 'Minimum amount is {min} {ticker}!',\n PROMO_MAX_QUANTITY:\n 'Your device can only create {quantity} codes at a time!',\n PROMO_NOT_ENOUGH: \"You don't have enough {ticker} to create that code!\",\n PROMO_ALREADY_CREATED: \"You've already created that code!\",\n\n SWITCHED_EXPLORERS: 'Switched explorer!
Now using {explorerName}',\n SWITCHED_NODE: 'Switched node!
Now using {node}',\n SWITCHED_ANALYTICS: 'Switched analytics level!
Now {level}',\n SWITCHED_SYNC: 'Switched sync mode!
Now using {sync} sync',\n UNABLE_SWITCH_TESTNET:\n 'Unable to switch Testnet Mode!
A wallet is already loaded',\n\n WALLET_OFFLINE_AUTOMATIC:\n 'Offline Mode is active!
Please disable Offline Mode for automatic transactions',\n WALLET_UNLOCK_IMPORT:\n 'Please {unlock} your wallet before sending transactions!',\n WALLET_FIREFOX_UNSUPPORTED:\n \"Firefox doesn't support this!
Unfortunately, Firefox does not support hardware wallets\",\n WALLET_HARDWARE_WALLET:\n 'Hardware wallet ready!
Please keep your {hardwareWallet} plugged in, unlocked, and in the PIVX app',\n WALLET_CONFIRM_L: 'Confirm the import on your Ledger',\n WALLET_NO_HARDWARE:\n \"No device available
Couldn't find a hardware wallet; please plug it in and unlock!\",\n WALLET_HARDWARE_UDEV:\n 'The OS denied access Did you add the udev rules?',\n WALLET_HARDWARE_NO_ACCESS:\n 'The OS denied access Please check your Operating System settings.',\n WALLET_HARDWARE_CONNECTION_LOST:\n 'Lost connection to {hardwareWallet}
It seems the {hardwareWallet} was unplugged mid-operation, oops!',\n WALLET_HARDWARE_BUSY:\n \"{hardwareWallet} is waiting
Please unlock your {hardwareWallet} or finish it's current prompt\",\n WALLET_HARDWARE_ERROR: ' {hardwareWallet}
{error}',\n\n CONFIRM_POPUP_VOTE: 'Confirm Vote',\n CONFIRM_POPUP_VOTE_HTML: 'Are you sure? It takes 60 minutes to change vote',\n CONFIRM_POPUP_TRANSACTION: 'Confirm your transaction',\n CONFIRM_POPUP_MN_P_KEY: 'Your Masternode Private Key',\n CONFIRM_POPUP_MN_P_KEY_HTML:\n '
Save this private key and copy it to your VPS config
',\n CONFIRM_POPUP_VERIFY_ADDR: 'Verify your address',\n\n MIGRATION_MASTERNODE_FAILURE:\n 'Failed to recover your masternode. Please reimport it.',\n MIGRATION_ACCOUNT_FAILURE:\n 'Failed to recover your account. Please reimport it.',\n APP_INSTALLED: 'App Installed!',\n};\n"],"names":["amount","staking","wallet","display","activity","yes","no","navDashboard","navStake","navMasternode","navGovernance","navSettings","footerBuiltWithPivxLabs","loading","loadingTitle","dashboardTitle","dCardOneTitle","dCardOneSubTitle","dCardOneDesc","dCardOneButton","dCardTwoTitle","dCardTwoSubTitle","dCardTwoDesc","dCardTwoButton","dCardThreeTitle","dCardThreeSubTitle","dCardThreeDesc","dCardThreeButton","dCardFourTitle","dCardFourSubTitle","dCardFourDesc","dCardFourButtonI","dCardFourButtonA","vanityPrefixNote","vanityPrefixInput","thisIsYourSeed","writeDownSeed","doNotShareWarning","doNotShare","digitalStoreNotAdvised","optionalPassphrase","writtenDown","importSeedValid","importSeedError","importSeedErrorSize","importSeedErrorTypo","importSeedErrorSkip","gettingStarted","secureYourWallet","unlockWallet","lockWallet","encryptWallet","encryptPasswordCurrent","encryptPasswordFirst","encryptPasswordSecond","encrypt","changePassword","balanceBreakdown","viewOnExplorer","export","refreshAddress","redeemOrCreateCode","address","receivingAddress","sendAmountCoinsMax","paymentRequestMessage","send","receive","contacts","name","username","addressOrXPub","back","chooseAContact","createContact","encryptFirstForContacts","shareContactURL","setupYourContact","receiveWithContact","onlyShareContactPrivately","changeTo","contact","xpub","addContactTitle","addContactSubtext","addContactWarning","editContactTitle","newName","removeContactTitle","removeContactSubtext","removeContactNote","privateKey","viewPrivateKey","privateWarning1","privateWarning2","viewKey","pivxPromos","redeemInput","createName","createAmount","stake","stakeUnstake","ownerAddress","rewardHistory","loadMore","mnControlYour","mnSubtext","govSubtext","govMonthlyBudget","govAllocBudget","govNextPayout","govTableStatus","govTableName","govTablePayment","govTableVotes","govTableVote","contestedProposalsTitle","contestedProposalsDesc","settingsCurrency","priceProvidedBy","settingsDecimals","settingsExplorer","settingsLanguage","settingsPivxNode","settingsAutoSelectNet","settingsAnalytics","settingsToggleDebug","settingsToggleTestnet","settingsToggleAdvancedMode","settingsToggleAdvancedModeSubtext","netSwitchUnsavedWarningTitle","netSwitchUnsavedWarningSubtitle","netSwitchUnsavedWarningSubtext","netSwitchUnsavedWarningConfirmation","transparencyReport","hit","time_to_sync","transaction","analyticDisabled","analyticMinimal","analyticBalanced","MIGRATION_ACCOUNT_FAILURE_TITLE","MIGRATION_ACCOUNT_FAILURE_HTML","ID","time","description","activityBlockReward","activitySentTo","activitySelf","activityShieldedAddress","activityReceivedFrom","activityDelegatedTo","activityUndelegated","activityUnknown","password","walletUnlock","walletPassword","walletUnlockCreateMN","walletUnlockMNStart","walletUnlockProposal","walletUnlockPromo","walletUnlockTx","walletUnlockStake","walletUnlockUnstake","changelogTitle","popupSetColdAddr","popupCurrentAddress","popupColdStakeNote","popupExample","popupWalletLock","popupWalletWipe","popupWalletLockNote","popupWalletWipeNote","popupSeedPhraseBad","popupSeedPhraseBadNote","popupCreateProposal","popupCreateProposalCost","popupProposalName","popupProposalAddress","popupProposalDuration","popupProposalPerCycle","popupProposalEncryptFirst","popupProposalVoteHash","popupProposalFinalisedNote","popupProposalFinalisedSignoff","popupHardwareAddrCheck","proposalFinalisationConfirming","proposalFinalisationRemaining","proposalFinalisationExpired","proposalFinalisationReady","proposalPassing","proposalFailing","proposalTooYoung","proposalFunded","proposalNotFunded","proposalPaymentsRemaining","proposalPaymentTotal","proposalNetYes","popupConfirm","popupClose","popupCancel","chartPublicAvailable","timeDays","timeHours","timeMinutes","timeSeconds","unhandledException","ALERTS","INTERNAL_ERROR","FAILED_TO_IMPORT","FAILED_TO_IMPORT_HARDWARE","TESTNET_ENCRYPTION_DISABLED","PASSWORD_TOO_SMALL","PASSWORD_DOESNT_MATCH","NEW_PASSWORD_SUCCESS","INCORRECT_PASSWORD","INVALID_AMOUNT","TX_SENT","TX_FAILED","QR_SCANNER_BAD_RECEIVER","UNSUPPORTED_CHARACTER","UNSUPPORTED_WEBWORKERS","INVALID_ADDRESS","VALIDATE_AMOUNT_LOW","VALIDATE_AMOUNT_DECIMAL","SUCCESS_STAKING_ADDR","CONFIRM_UNSTAKE_H_WALLET","CONFIRM_TRANSACTION_H_WALLET","SUCCESS_STAKING_ADDR_SET","STAKE_ADDR_SET","STAKE_ADDR_BAD","STAKE_NOT_SEND","BAD_ADDR_LENGTH","BAD_ADDR_PREFIX","SENT_NOTHING","MORE_THEN_8_DECIMALS","SAVE_WALLET_PLEASE","BACKUP_OR_ENCRYPT_WALLET","NO_CAMERAS","STAKING_LEDGER_NO_SUPPORT","CONNECTION_FAILED","MN_NOT_ENABLED","VOTE_SUBMITTED","VOTED_ALREADY","VOTE_SIG_BAD","MN_CREATED_WAIT_CONFS","MN_ACCESS_BEFORE_VOTE","MN_OFFLINE_STARTING","MN_STARTED","MN_RESTARTED","MN_STARTED_ONLINE_SOON","MN_START_FAILED","MN_RESTART_FAILED","MN_DESTROYED","MN_STATUS_IS","MN_STATE","MN_BAD_IP","MN_NOT_ENOUGH_COLLAT","MN_ENOUGH_BUT_NO_COLLAT","MN_COLLAT_NOT_SUITABLE","MN_CANT_CONNECT","CONTACTS_ENCRYPT_FIRST","CONTACTS_NAME_REQUIRED","CONTACTS_NAME_TOO_LONG","CONTACTS_CANNOT_ADD_YOURSELF","CONTACTS_ALREADY_EXISTS","CONTACTS_NAME_ALREADY_EXISTS","CONTACTS_EDIT_NAME_ALREADY_EXISTS","CONTACTS_KEY_ALREADY_EXISTS","CONTACTS_NOT_A_CONTACT_QR","CONTACTS_ADDED","CONTACTS_YOU_HAVE_NONE","PROPOSAL_FINALISED","PROPOSAL_UNCONFIRMED","PROPOSAL_EXPIRED","PROPOSAL_FINALISE_FAIL","PROPOSAL_IMPORT_FIRST","PROPOSAL_NOT_ENOUGH_FUNDS","PROPOSAL_INVALID_ERROR","PROPOSAL_CREATED","PROMO_MIN","PROMO_MAX_QUANTITY","PROMO_NOT_ENOUGH","PROMO_ALREADY_CREATED","SWITCHED_EXPLORERS","SWITCHED_NODE","SWITCHED_ANALYTICS","SWITCHED_SYNC","UNABLE_SWITCH_TESTNET","WALLET_OFFLINE_AUTOMATIC","WALLET_UNLOCK_IMPORT","WALLET_FIREFOX_UNSUPPORTED","WALLET_HARDWARE_WALLET","WALLET_CONFIRM_L","WALLET_NO_HARDWARE","WALLET_HARDWARE_UDEV","WALLET_HARDWARE_NO_ACCESS","WALLET_HARDWARE_CONNECTION_LOST","WALLET_HARDWARE_BUSY","WALLET_HARDWARE_ERROR","CONFIRM_POPUP_VOTE","CONFIRM_POPUP_VOTE_HTML","CONFIRM_POPUP_TRANSACTION","CONFIRM_POPUP_MN_P_KEY","CONFIRM_POPUP_MN_P_KEY_HTML","CONFIRM_POPUP_VERIFY_ADDR","MIGRATION_MASTERNODE_FAILURE","MIGRATION_ACCOUNT_FAILURE","APP_INSTALLED"],"sourceRoot":""} \ No newline at end of file diff --git a/190.mpw.js b/190.mpw.js new file mode 100644 index 000000000..1504bbbc0 --- /dev/null +++ b/190.mpw.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkMPW=self.webpackChunkMPW||[]).push([[190],{27190:e=>{e.exports=JSON.parse('{"amount":"Montant","staking":"Staking","wallet":"Portefeuille","display":"Afficher","activity":"Activité","yes":"Oui","no":"Non","navDashboard":"Tableau de Bord","navStake":"Stake","navMasternode":"Masternode","navGovernance":"Gouvernance","navSettings":"Paramètres","footerBuiltWithPivxLabs":"Construit avec 💜 par PIVX Labs 🇫🇷","loading":"Chargement","loadingTitle":"Mon portefeuille PIVX","dashboardTitle":"Tableau de bord","dCardOneTitle":"Créer le","dCardOneSubTitle":"Nouveau portefeuille","dCardOneDesc":"Créer un nouveau portefeuille PIVX, qui offre les méthodes de sauvegarde et de sécurité les plus sûres.","dCardOneButton":"Créer un nouveau portefeuille","dCardTwoTitle":"Créer un nouveau","dCardTwoSubTitle":"Portefeuille Vanité","dCardTwoDesc":"Créer un portefeuille avec un préfixe personnalisé, cela peut prendre beaucoup de temps !","dCardTwoButton":"Créer un portefeuille Vanity","dCardThreeTitle":"Accédez à votre","dCardThreeSubTitle":"Portefeuille de hardware","dCardThreeDesc":"Utilisez votre portefeuille Ledger Hardware avec l\'interface familière de l\'application MPW.","dCardThreeButton":"Accéder à mon Ledger","dCardFourTitle":"Aller à","dCardFourSubTitle":"Mon portefeuille","dCardFourDesc":"Importer un portefeuille PIVX à l\'aide d\'une clé privée, d\'un xpriv ou d\'une phrase de démarrage.","dCardFourButtonI":"Importer le portefeuille","dCardFourButtonA":"Accéder à mon portefeuille","vanityPrefixNote":"Remarque : les adresses commencent toujours par :","vanityPrefixInput":"Adresse Préfixe","thisIsYourSeed":"Voici votre phrase d\'introduction:","writeDownSeed":"Notez-le à un seul endroit. Vous ne verrez que cela une fois!","doNotShareWarning":"Toute personne disposant d\'une copie peut accéder à à tousvotre fonds","doNotShare":"Ne le partagez avec personne.","digitalStoreNotAdvised":"NON il est conseillé de les stocker sous forme numérique.","optionalPassphrase":"Phrase mot de passe Facultatif (BIP39)","writtenDown":"J\'ai écrit ma phrase d\'introduction","importSeedValid":"La phrase source est valide !","importSeedError":"La phrase source n\'est pas valide !","importSeedErrorSize":"Une phrase clé doit comporter entre 12 et 24 mots !","importSeedErrorTypo":"Seed Phrase contient des fautes de frappe ! Vérifiez soigneusement votre saisie","importSeedErrorSkip":"La phrase de semence semble invalide, mais l\'utilisateur n\'a pas tenu compte de l\'avertissement.","gettingStarted":"Démarrer","secureYourWallet":"Protégez votre portefeuille","unlockWallet":"Déverrouiller le portefeuille","lockWallet":"Fermeture du portefeuille","encryptWallet":"Cryptage du portefeuille","encryptPasswordCurrent":"Mot de passe actuel","encryptPasswordFirst":"Entrer le mot de passe","encryptPasswordSecond":"Réintroduire le mot de passe","encrypt":"Crypter","changePassword":"Changer le mot de passe","balanceBreakdown":"Composition de la balance","viewOnExplorer":"Voir dans l\'explorateur","export":"Exporter","refreshAddress":"Mise à jour de l\'Adresse","redeemOrCreateCode":"Ouvrir ou Créer un Code","address":"Adresse","receivingAddress":"Adresse de réception","sendAmountCoinsMax":"Max","paymentRequestMessage":"Description (de l\'opérateur)","send":"Envoyer","receive":"Recevoir","contacts":"Contacts","name":"Nom","username":"Nom d\'utilisateur","addressOrXPub":"Adresse ou XPub","back":"Retour","chooseAContact":"Sélectionner un contact","createContact":"Création d\'un contact","encryptFirstForContacts":"Une fois que vous avez touché \\"{button}\\" dans le tableau de bord, vous pouvez créer un contact pour faciliter la réception des PIV !","shareContactURL":"Partager l\'URL du contact","setupYourContact":"Configurez votre contact","receiveWithContact":"Recevoir par un simple contact basé sur le nom d\'utilisateur","onlyShareContactPrivately":"Seul partager votre contact avec des personnes de confiance (famille, amis)","changeTo":"Modifier pour","contact":"Contact","xpub":"XPub","addContactTitle":"Ajouter {strName} aux contacts","addContactSubtext":"Une fois ajouté, vous pourrez envoyer des transactions à {strName} par leur nom (en tapant ou en cliquant), plus d\'adresses, c\'est facile.","addContactWarning":"S\'assurer qu\'il s\'agit bien d\'un produit authentique \\"{strName}\\", n\'acceptez pas de demandes de contact provenant de sources inconnues ! ","editContactTitle":"Changer \\"{strName}\\" Contact","newName":"Nouvelle dénomination","removeContactTitle":"Supprimer {strName}?","removeContactSubtext":"Êtes-vous sûr de vouloir supprimer {strName} de vos contacts ?","removeContactNote":"Vous pouvez les ajouter à tout moment à l\'avenir.","privateKey":"Clé privée","viewPrivateKey":"Montrer la clé privée ?","privateWarning1":"Assurez-vous que personne ne regarde votre écran.","privateWarning2":"Toute personne possédant cette clé peut voler vos fonds","viewKey":"Voir la clé","pivxPromos":"est un système décentralisé de codes cadeaux d\'une valeur de PIV","redeemInput":"Introduisez votre code\'PIVX Promos","createName":"Nom de la promotion (facultatif)","createAmount":"Valeur promotionnelle","stake":"Stake","stakeUnstake":"Unstake","ownerAddress":"(Optionnel) Adresse du propriétaire","rewardHistory":"Historique des récompenses","loadMore":"Chargez plus","mnControlYour":"Contrôlez votre","mnSubtext":"À partir de ce guide, vous pouvez créer et accéder à un ou plusieurs masternodes.","govSubtext":"Dans cet onglet, vous pouvez consulter les propositions et, si vous disposez d\'un masternode, participer au DAO et voter!","govMonthlyBudget":"Budget Mensuel","govAllocBudget":"Budget Attribué","govNextPayout":"Prochain paiement du Trésor","govTableStatus":"ÉTAT","govTableName":"NOM","govTablePayment":"PAIEMENT","govTableVotes":"VOTES","govTableVote":"VOTE","contestedProposalsDesc":" Il s\'agit des propositions qui ont reçu un nombre écrasant de votes négatifs, ce qui en fait probablement des spams ou des propositions très contestables.","settingsCurrency":"Choisissez une devise d\'affichage :","priceProvidedBy":"Les prix sont fournis par","settingsDecimals":"Solde Décimales :","settingsExplorer":"Choisissez un explorateur :","settingsLanguage":"Choisissez une langue :","settingsPivxNode":"Choisir un node PIVX :","settingsAutoSelectNet":"Sélection Automatique des Explorateurs et des Nodes","settingsAnalytics":"Choisissez votre niveau d\'analyse :","settingsToggleDebug":"Mode de débogage","settingsToggleTestnet":"Mode testnet","settingsToggleAdvancedMode":"Mode avancé","settingsToggleAdvancedModeSubtext":"Cela permet d\'accéder à des fonctionnalités et à une personnalisation plus poussées, mais peut s\'avérer difficile et potentiellement dangereux pour les utilisateurs inexpérimentés !","netSwitchUnsavedWarningTitle":"Votre {network} portefeuille n\'est pas sauvé !","netSwitchUnsavedWarningSubtitle":"Votre {network} compte est en danger !","netSwitchUnsavedWarningSubtext":"Si vous changez de compte {network} avant de l\'avoir sauvegardé, vous perdrez le compte! ","netSwitchUnsavedWarningConfirmation":"Êtes-vous vraiment sûr ?","transparencyReport":"Rapport de transparence","hit":"Un ping indiquant le chargement d\'une application, aucune donnée unique n\'est envoyée.","time_to_sync":"Le temps en secondes que le MPW a pris pour se synchroniser pour la dernière fois.","transaction":"Un ping indiquant un Tx, aucune donnée unique n\'est envoyée mais peut être déduite de l\'heure sur le réseau.","analyticDisabled":"Désactivé","analyticMinimal":"Minimum","analyticBalanced":"Solde","MIGRATION_ACCOUNT_FAILURE_TITLE":"Échec de la récupération du compte","MIGRATION_ACCOUNT_FAILURE_HTML":"Une erreur s\'est produite lors de la récupération de votre compte.
Veuillez réimporter votre portefeuille en utilisant la clé suivante :","ID":"ID","time":"Heure","description":"Description","activityBlockReward":"Récompense en bloc","activitySentTo":"Envoyé à {r}","activitySelf":"soi-même","activityShieldedAddress":"Adresse protégée","activityDelegatedTo":"Délégué à {r}","activityUndelegated":"Non délégué","activityUnknown":"Transaction inconnu","password":"Mot de passe","walletUnlock":"Déverrouillez votre portefeuille","walletPassword":"Mot de passe du portefeuille","walletUnlockCreateMN":"Débloquez pour créer votre Masternode!","walletUnlockMNStart":"Débloquez pour démarrer votre Masternode!","walletUnlockProposal":"Débloquez pour créer une proposition! Débloquez pour démarrer votre Masternode !","walletUnlockPromo":"Déverrouillez pour finaliser votre code promo!","walletUnlockTx":"Déverrouillez pour envoyer votre transaction!","walletUnlockStake":"Déverrouillez pour Staker votre","walletUnlockUnstake":"Débloquer pour Unstake votre","changelogTitle":"Quoi de neuf en","popupSetColdAddr":"Définissez votre adresse de Cold Staking","popupCurrentAddress":"Adresse actuelle :","popupColdStakeNote":"Une Cold Address mise des pièces en votre nom, mais ne peut pas en dépenser. Il est donc possible d\'utiliser Cold Address d\'un inconnu en toute sécurité !","popupExample":"Exemple :","popupWalletLock":"Voulez-vous verrouiller votre portefeuille ?","popupWalletWipe":"Voulez-vous effacer les données privées de votre portefeuille ?","popupWalletLockNote":"Vous devrez saisir votre mot de passe pour accéder à vos fonds.","popupWalletWipeNote":"Vous perdrez l\'accès à vos fonds si vous n\'avez pas sauvegardé votre clé privée ou votre phrase de base.","popupSeedPhraseBad":"Phrase semence inattendue","popupSeedPhraseBadNote":"La phrase de semence est soit invalide, soit n\'a pas été généré par MPW.
Voulez-vous toujours continuer ?","popupCreateProposal":"Créer une proposition","popupCreateProposalCost":"Coût","popupProposalName":"Nom de la proposition","popupProposalAddress":"Adresse de la proposition (optionnel)","popupProposalDuration":"Durée en cycles","popupProposalPerCycle":"par cycle","popupProposalEncryptFirst":"Vous devez appuyer sur \\"{button}\\" avant de pouvoir créer des propositions !","popupProposalVoteHash":"Vote Hash :","popupProposalFinalisedNote":"Félicitations pour le lancement de votre proposition!
Les propriétaires de Masternodes peuvent utiliser votre Hash de vote pour voter à partir de portefeuilles autres que MPW, alors assurez-vous d\'ajouter ceci à votre message sur le forum, le cas échéant!","popupProposalFinalisedSignoff":"Bonne chance dans votre voyage à travers le DAO, PIVian!","popupHardwareAddrCheck":"Veuillez confirmer qu\'il s\'agit bien de l\'adresse figurant sur votre","proposalFinalisationConfirming":"Confirmant...","proposalFinalisationRemaining":"restants","proposalFinalisationExpired":"Proposition expirée","proposalFinalisationReady":"Prêt à soumettre","proposalPassing":"PASSANT","proposalFailing":"ÉCHOUANT","proposalTooYoung":"TROP JEUNE","proposalFunded":"FINANCÉE","proposalNotFunded":"NON FINANCÉE","proposalPaymentsRemaining":"l\'installation(s) restants
de","proposalPaymentTotal":"totale","proposalNetYes":"Net Oui","popupConfirm":"Confirmer","popupClose":"Fermer","popupCancel":"Annuler","chartPublicAvailable":"Disponible au public","timeDays":"Jours","timeHours":"Heures","timeMinutes":"Minutes","timeSeconds":"Secondes","unhandledException":"Exception non traitée.","syncStatusHistoryProgress":"Syncing History Chunks {current} of {total}","syncStatusStarting":"Votre portefeuille est en cours de synchronisationxa0!
Vous pourrez l\'utiliser pleinement une fois cette opération terminée.","syncStatusFinished":"Synchronisation terminéexa0!
Votre portefeuille est prêt à être utiliséxa0!","contestedProposalsTitle":"Propositions contestées","accountDeleted":"","activityReceivedWith":"Reçu avec {s}","ALERTS":{"INTERNAL_ERROR":"Erreur interne, veuillez réessayer plus tard","FAILED_TO_IMPORT":"Échec de l\'importation ! Mot de passe invalide","FAILED_TO_IMPORT_HARDWARE":"Erreur d\'importation du Hardware Wallet.","UNSUPPORTED_CHARACTER":"Le caractère {char} n\'est pas pris en charge dans les adresses ! (Non compatible avec Base58)","UNSUPPORTED_WEBWORKERS":"Ce navigateur ne prend pas en charge Web Workers (JS multi-threaded), Malheureusement, il n\'est pas possible de générer des portefeuilles Vanity!","INVALID_ADDRESS":"Adresse PIVX non valide !
{address}","TESTNET_ENCRYPTION_DISABLED":"Modo Testnet activé !
Cryptage du portefeuille désactivé","PASSWORD_TOO_SMALL":"Ce mot de passe est un peu court !
Utiliser au moins {MIN_PASS_LENGTH} caractères.","PASSWORD_DOESNT_MATCH":"Vos mots de passe ne correspondent pas!","NEW_PASSWORD_SUCCESS":"Vous êtes protégé ! 🔐
Bravo, PIVian blindé !","INCORRECT_PASSWORD":"Mot de passe incorrect!","INVALID_AMOUNT":"Valeur non valide!
","TX_SENT":"Transaction envoyée!","TX_FAILED":"Échec de la Transaction!","QR_SCANNER_BAD_RECEIVER":"n\'est pas un récepteur de paiement valide","VALIDATE_AMOUNT_LOW":"
La valeur minimale est de {minimumAmount} {coinTicker}!","VALIDATE_AMOUNT_DECIMAL":"{coinDecimal} limite décimale dépassée","SUCCESS_STAKING_ADDR":"Adresse de Staking défini!
Poursuivre avec le unstake!","STAKE_ADDR_SET":"Adresse du Cold Staking défini!
Cette adresse sera utilisée à l\'avenir pour la réalisation de Stake..","STAKE_ADDR_BAD":"L\'adresse du Cold Staking n\'est pas valide !","CONFIRM_UNSTAKE_H_WALLET":"Confirmer votre Unstake
Confirmez le TX dans votre {strHardwareName}","CONFIRM_TRANSACTION_H_WALLET":"Confirmez votre transaction
Confirmez le TX dans votre {strHardwareName}","SUCCESS_STAKING_ADDR_SET":"Adresse de Staking définie!
>Poursuivre avec la stake","STAKE_NOT_SEND":"Dans ce cas, utilisez l\'écran Stake, et non l\'écran d\'envoi!","BAD_ADDR_LENGTH":"Adresse PIVX non valide!
Préfixe non valide {address} (Vous devez commencer par{addressPrefix})","BAD_ADDR_PREFIX":"Adresse PIVX non valide!
Préfixe non valide {address} (Vous devez commencer par{addressPrefix})","SENT_NOTHING":"Vous ne pouvez pas envoyer \'rien","MORE_THEN_8_DECIMALS":"limite de 8 décimales dépassée","SAVE_WALLET_PLEASE":"Gardez votre portefeuille!
Tableau de bord ➜ Définir le mot de passe","BACKUP_OR_ENCRYPT_WALLET":"Cryptez et/ou sauvegardez vos clés avant de partir, car vous risquez de les perdre!","NO_CAMERAS":"Cet appareil n\'est pas équipé d\'une caméra!","STAKING_LEDGER_NO_SUPPORT":"Ledger n\'est pas compatible avec Cold Staking","CONNECTION_FAILED":"Échec de la synchronisation! Réessayer plus tard.
Vous pouvez essayer de vous reconnecter via Paramètres.","MN_NOT_ENABLED":"Votre masternode n\'est pas encore activé!","VOTE_SUBMITTED":"Vote envoyé!","VOTED_ALREADY":"Vous avez déjà voté sur cette proposition ! Attendre 1 heure","VOTE_SIG_BAD":"Échec de la vérification de la signature, vérifiez la clé privée de votre masternode maître.","MN_CREATED_WAIT_CONFS":"Masternode créé!
Attendre 15 confirmations pour continuer","MN_ACCESS_BEFORE_VOTE":"Accéder à un masternode avant de voter!","MN_OFFLINE_STARTING":"Votre masternode est hors ligne, essayons de le démarrer","MN_STARTED":"Masternode a débuté!","MN_RESTARTED":"Masternode redémarré!","MN_STARTED_ONLINE_SOON":"Masternode initié!
Il sera bientôt en ligne","MN_START_FAILED":"Masternode initié !","MN_RESTART_FAILED":"Masternode redémarré!","MN_DESTROYED":"Masternode détruit!
Vous pouvez maintenant dépenser vos pièces.","MN_STATUS_IS":"L\'état de votre masternode est","MN_STATE":"L\'état de votre masternode est {state}","MN_BAD_IP":"L\'adresse IP n\'est pas valide!","MN_BAD_PRIVKEY":"La clé privée n\'est pas valide","MN_NOT_ENOUGH_COLLAT":"Vous avez besoin {amount} plus {ticker} pour créer un Masternode!","MN_ENOUGH_BUT_NO_COLLAT":"Vous disposez d\'un solde suffisant pour un Masternode, mais pas d\'UTXO comme garantie valide de {amount} {ticker}","MN_COLLAT_NOT_SUITABLE":"Il ne s\'agit pas d\'une UTXO appropriée pour un Masternode","MN_CANT_CONNECT":"Impossible de se connecter au nœud RPC!","CONTACTS_ENCRYPT_FIRST":"Vous devez appuyer sur \\"{button}\\" avant de pouvoir utiliser les contacts !","CONTACTS_NAME_REQUIRED":"Un nom est nécessaire !","CONTACTS_NAME_TOO_LONG":"Le nom est trop long !","CONTACTS_CANNOT_ADD_YOURSELF":"Vous ne pouvez pas vous ajouter comme contact !","CONTACTS_ALREADY_EXISTS":"Le contact existe déjà!
Vous avez déjà enregistré ce contact","CONTACTS_NAME_ALREADY_EXISTS":"Le nom du contact existe déjà!
Il pourrait s\'agir d\'une tentative d\'hameçonnage, attention!","CONTACTS_EDIT_NAME_ALREADY_EXISTS":"Le contact existe déjà!
Un contact est déjà appelé \\"{strNewName}\\"!","CONTACTS_KEY_ALREADY_EXISTS":"Le contact existe déjà, mais sous un nom différent!
Vous avez {newName} sauvegardé comme {oldName} dans vos contacts","CONTACTS_NOT_A_CONTACT_QR":"Ce n\'est pas un QR de contact!","CONTACTS_ADDED":"Nouveau contact ajouté!
{strName} a été ajouté, bravo!","CONTACTS_YOU_HAVE_NONE":"Vous n\'avez pas de contacts!","SWITCHED_EXPLORERS":"Explorateur échangé!
En utilisant maintenant le {explorerName}","SWITCHED_NODE":"Nœud commuté!
L\'utilisation de la {node}","SWITCHED_ANALYTICS":"Niveau d\'analyse modifié!
Il est maintenant {level}","SWITCHED_SYNC":"Changement de mode de synchronisation !
Utiliser la synchronisation maintenant {sync}","UNABLE_SWITCH_TESTNET":"Il n\'est pas possible de passer en mode Testnet !
Un portefeuille est déjà chargé.","WALLET_OFFLINE_AUTOMATIC":"Le mode hors-ligne est actif !
Veuillez désactiver le mode hors connexion pour les transactions automatiques","WALLET_UNLOCK_IMPORT":"S\'il vous plaît, {unlock} votre portefeuille avant d\'envoyer des transactions !","WALLET_FIREFOX_UNSUPPORTED":"O Firefox ne supporte pas cela !
Malheureusement, Firefox ne prend pas en charge les portefeuilles hardware","WALLET_HARDWARE_WALLET":"Portefeuille de Hardware prêt!
Gardez votre {hardwareWallet} connecté, déverrouillé et dans l\'application PIVX","WALLET_CONFIRM_L":"Confirmez l\'importation dans votre Ledger","WALLET_NO_HARDWARE":"Aucun dispositif disponible
Il n\'a pas été possible de trouver un portefeuille de hardware; brancher et déverrouiller!","WALLET_HARDWARE_UDEV":"Le système d\'exploitation a refusé l\'accès Avez-vous ajouté les règles udevxa0?","WALLET_HARDWARE_NO_ACCESS":"Le système d\'exploitation refuse l\'accès Veuillez vérifier les paramètres de votre système d\'exploitation.","WALLET_HARDWARE_CONNECTION_LOST":"Perte de connexion avec le {hardwareWallet}
Oops! Il semble que {hardwareWalletProductionName} a été déconnecté au milieu de l\'opération.","WALLET_HARDWARE_BUSY":"{hardwareWallet} est en mode veille
Veuillez débloquer le vôtre {hardwareWalletProductionName} ou compléter l\'introduction actuelle","WALLET_HARDWARE_ERROR":"b> {hardwareWallet}

{error}","CONFIRM_POPUP_VOTE":"Confirmer le vote","CONFIRM_POPUP_VOTE_HTML":"Êtes-vous sûr ? Il faut 60 minutes pour changer de vote","CONFIRM_POPUP_TRANSACTION":"Confirmez votre transaction","CONFIRM_POPUP_MN_P_KEY":"Clé privée de votre Masternode","CONFIRM_POPUP_MN_P_KEY_HTML":"
Enregistrez cette clé privée et copiez-la dans votre configuration VPS.
","CONFIRM_POPUP_VERIFY_ADDR":"Vérifiez votre adresse","MIGRATION_MASTERNODE_FAILURE":"Échec de la récupération de votre masternode. S\'il vous plaît, le réimporter.","MIGRATION_ACCOUNT_FAILURE":"Échec de la récupération de votre compte. S\'il vous plaît, le réimporter.","APP_INSTALLED":"Application installée!","PROPOSAL_FINALISED":"Proposal Launched!","PROPOSAL_UNCONFIRMED":"La proposition n\'a pas encore été confirmée","PROPOSAL_EXPIRED":"La proposition a expiré. Créez-en un nouveau.","PROPOSAL_FINALISE_FAIL":"Échec de la finalisation de la proposition.","PROPOSAL_IMPORT_FIRST":"Créez ou importez votre portefeuille pour continuer","PROPOSAL_NOT_ENOUGH_FUNDS":"Pas assez de fonds pour créer une proposition.","PROPOSAL_INVALID_ERROR":"La proposition n\'est pas valide. Erreur:","PROPOSAL_CREATED":"Proposition crééexa0!
Attendez les confirmations, puis finalisez votre propositionxa0!","PROMO_MIN":"Le montant minimum est de {min}xa0{ticker}xa0!","PROMO_MAX_QUANTITY":"Votre appareil ne peut créer que {quantité} de codes à la fois !","PROMO_NOT_ENOUGH":"Vous n\'avez pas assez de {ticker} pour créer ce code !","PROMO_ALREADY_CREATED":"Vous avez déjà créé ce code !","CONFIRM_POPUP_DELETE_ACCOUNT":"Cette opération supprimera toutes vos données, y compris les contacts des masternodes et les clés privées !","CONFIRM_POPUP_DELETE_ACCOUNT_TITLE":"Êtes-vous sûr ?","WALLET_NOT_SYNCED":""}}')}}]); \ No newline at end of file diff --git a/194.mpw.js b/194.mpw.js deleted file mode 100644 index c5e215556..000000000 --- a/194.mpw.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkMPW=self.webpackChunkMPW||[]).push([[194],{74214:(a,e,o)=>{o.r(e),o.d(e,{default:()=>r});const r={amount:"Quantia",staking:"Staking",wallet:"Carteira",display:"Mostrar",activity:"Atividade",yes:"Sim",no:"Não",navDashboard:"Painel",navStake:"Stake",navMasternode:"Masternode",navGovernance:"Governança",navSettings:"Configurações",footerBuiltWithPivxLabs:"Construido com 💜 por PIVX Labs 🇵🇹",loading:"Carregar",loadingTitle:"A Minha Carteira PIVX",dashboardTitle:"Painel",dCardOneTitle:"Criar a",dCardOneSubTitle:"Nova Carteira",dCardOneDesc:"Crie uma carteira nova PIVX, oferecendo os métodos de backup e segurança mais seguros.",dCardOneButton:"Crie uma Carteira Nova",dCardTwoTitle:"Criar Nova",dCardTwoSubTitle:"Carteira Vanity",dCardTwoDesc:"Criar uma carteira com um prefixo personalizado, isso pode levar muito tempo!",dCardTwoButton:"Criar uma Carteira Vanity",dCardThreeTitle:"Aceda à sua",dCardThreeSubTitle:"Carteira de hardware",dCardThreeDesc:"Use a sua carteira Ledger Hardware com a interface familiar do MPW.",dCardThreeButton:"Aceder à minha Ledger",dCardFourTitle:"Vá para",dCardFourSubTitle:"A minha Carteira",dCardFourDesc:"Importar uma carteira PIVX usando uma chave privada, xpriv ou Frase Inicial.",dCardFourButtonI:"Importar Carteira",dCardFourButtonA:"Aceder à Minha Carteira",vanityPrefixNote:"Nota: os endereços começarão sempre por",vanityPrefixInput:"Prefixo do endereço",thisIsYourSeed:"Esta é a sua frase inicial:",writeDownSeed:"Escreva num lugar. Você só vai ver isso uma vez!",doNotShareWarning:"Qualquer pessoa com uma cópia pode aceder a todos os seus fundos",doNotShare:"NÃO a compartilhe com ninguém.",digitalStoreNotAdvised:"NÃO é aconselhável armazená-lo digitalmente.",optionalPassphrase:"Frase Senha Opcional (BIP39)",writtenDown:"Eu escrevi a minha frase-inicial",importSeedValid:"A frase-semente é válida!",importSeedError:"A frase-semente é válida!",importSeedErrorSize:"Uma frase-semente deve ter 12 ou 24 palavras!",importSeedErrorTypo:"A frase-semente contém erros de digitação! Verifique cuidadosamente a sua introdução",importSeedErrorSkip:"A frase-semente parece inválida, mas o aviso foi ignorado pelo utilizador",gettingStarted:"A Começar",secureYourWallet:"Proteja a sua carteira",unlockWallet:"Desbloquear a carteira",lockWallet:"Fechar a carteira",encryptWallet:"Criptografar carteira",encryptPasswordCurrent:"Palavra-passe atual",encryptPasswordFirst:"Digite a senha",encryptPasswordSecond:"Digite novamente a senha",encrypt:"Criptografar",changePassword:"Alterar a palavra-passe",balanceBreakdown:"Composição do Saldo",viewOnExplorer:"Ver no Explorador ",export:"Exportar",refreshAddress:"Atualizar endereço",redeemOrCreateCode:"Resgatar ou Criar Código",address:"Endereço",receivingAddress:"Endereço de recepção",sendAmountCoinsMax:"MAX",paymentRequestMessage:"Descrição (do comerciante)",send:"Enviar",receive:"Receber",contacts:"Contactos",name:"Nome",username:"Nome de utilizador",addressOrXPub:"Endereço ou XPub",back:"Voltar",chooseAContact:"Escolha um contacto",createContact:"Criar contacto",encryptFirstForContacts:'Depois de clicar no "{button}" no Painel de Controlo, pode criar um Contacto para facilitar a receção de PIV!',shareContactURL:"Partilhar URL de contacto",setupYourContact:"Configurar o seu contacto",receiveWithContact:"Receber através de um simples contacto baseado no nome de utilizador",onlyShareContactPrivately:" partilhe o seu contacto com pessoas de confiança (família, amigos)",changeTo:"Alterar para",contact:"Contacto",xpub:" XPub",addContactTitle:"Adicionar {strName} aos contactos",addContactSubtext:"Uma vez adicionado, será capaz de enviar transacções para {strName} pelo seu nome (quer digitando, quer clicando), sem mais endereços, fácil e agradável.",addContactWarning:'Certifica-te de que este é o verdadeiro "{strName}", não aceites pedidos de contacto de fontes desconhecidas!',editContactTitle:'Alterar "{strName}" Contacto',newName:"Novo nome",removeContactTitle:"Remover {strName}?",removeContactSubtext:"Tem a certeza de que pretende remover {strName} dos seus Contactos?",removeContactNote:"Pode voltar a adicioná-los em qualquer altura no futuro.",privateKey:"Chave privada",viewPrivateKey:"Mostrar a chave privada?",privateWarning1:"Certifique-se de que ninguém está a ver o seu ecrã.",privateWarning2:"Qualquer pessoa com esta chave pode roubar os seus fundos",viewKey:"Ver a chave",pivxPromos:"é um sistema descentralizado de códigos de presente no valor de PIV",redeemInput:"Digite o seu código 'PIVX Promos'",createName:"Nome da promoção (opcional)",createAmount:"Valor promocional",stake:"Stake",stakeUnstake:"Unstake",ownerAddress:"(Facultativo) Endereço do proprietário",rewardHistory:"Histórico de recompensas",loadMore:"Carregar mais",mnControlYour:"Controle o seu",mnSubtext:"A partir deste guia, você pode criar e aceder a um ou mais masternodes",govSubtext:"Nesta aba você pode conferir as propostas e, se tiver um masternode, fazer parte do DAO e votar!",govMonthlyBudget:"Orçamento mensal",govAllocBudget:"Orçamento Alocado",govNextPayout:"Próximo Pagamento da Tesoraria",govTableStatus:"ESTADO",govTableName:"NOME",govTablePayment:"PAGAMENTO",govTableVotes:"VOTOS",govTableVote:"VOTO",contestedProposalsTitle:"Propostas Contestadas",contestedProposalsDesc:"Estas são as propostas que receberam uma quantidade esmagadora de votos negativos, tornando-as provavelmente spam ou uma proposta altamente contestável.",settingsCurrency:"Escolha uma moeda de exibição:",priceProvidedBy:"Dados sobre preços fornecidos por",settingsDecimals:"Balanço de decimais:",settingsExplorer:"Escolha um explorador:",settingsLanguage:"Escolha um Idioma:",settingsPivxNode:"Escolha um node PIVX:",settingsAutoSelectNet:"Seleção automática de Exploradores e Nodes",settingsAnalytics:"Escolha o seu nível de contribuição analítica:",settingsToggleDebug:"Modo de depuração",settingsToggleTestnet:"Modo Testnet",settingsToggleAdvancedMode:"Modo avançado",settingsToggleAdvancedModeSubtext:"Isto desbloqueia uma funcionalidade e personalização mais profundas, mas pode ser demasiado complicado e potencialmente perigoso para utilizadores inexperientes!",netSwitchUnsavedWarningTitle:"A tua carteira não está guardada!",netSwitchUnsavedWarningSubtitle:"A tua carteira não está guardada!",netSwitchUnsavedWarningSubtext:"Se mudares para {network} antes de a guardares, perdes a conta!",netSwitchUnsavedWarningConfirmation:"Tens mesmo a certeza?",transparencyReport:'"Relatório de Transparência"',hit:'"Um ping a indicar o carregamento de uma aplicação, nenhum dado exclusivo é enviado."',time_to_sync:'"O tempo em segundos que o MPW levou a sincronizar pela última vez."',transaction:'"Um ping indicando uma Tx, nenhum dado exclusivo é enviado, mas pode ser inferido a partir do tempo na rede."',analyticDisabled:"Desativado",analyticMinimal:"Mínimo",analyticBalanced:"Saldo",MIGRATION_ACCOUNT_FAILURE_TITLE:"Falha ao recuperar conta",MIGRATION_ACCOUNT_FAILURE_HTML:"Ocorreu um erro ao recuperar a sua conta.
Por favor reimporte sua carteira usando a seguinte chave:",ID:"BI",time:"Tempo",description:"Descrição",activityBlockReward:"Bloco Recompensa",activitySentTo:"Enviado para {r}",activitySelf:"si mesmo",activityShieldedAddress:"Endereço Protegido",activityReceivedFrom:"Recebido de {s}",activityDelegatedTo:"Delegado a {r}",activityUndelegated:"Não é Delegado",activityUnknown:"Tx desconhecido",password:"Senha",walletUnlock:"Desbloquear a sua carteira",walletPassword:"Senha da Carteira",walletUnlockCreateMN:"Desbloquear para criar o seu Masternode!",walletUnlockMNStart:"Desbloquear para iniciar o seu Masternode",walletUnlockProposal:"Desbloquear para criar uma proposta",walletUnlockPromo:"Desbloquear para finalizar o seu código promocional",walletUnlockTx:"Desbloquear para enviar a sua transação",walletUnlockStake:"Desbloquear o seu para skate",walletUnlockUnstake:"Desbloquear para retirar o seu",changelogTitle:"O que há de Novo em",popupSetColdAddr:"Defina o seu endereço de Frio Staking",popupCurrentAddress:"Endereço atual",popupColdStakeNote:"Um Endereço de aposta moedas em seu nome, não pode gastar moedas, então é até seguro usar o Cold Address de um estranho!",popupExample:"Exemplo:",popupWalletLock:"Você quer bloquear a sua carteira",popupWalletWipe:"Deseja limpar os dados privados da sua carteira",popupWalletLockNote:"Você precisará digitar sua senha para acessar seus fundos",popupWalletWipeNote:"Você perderá o acesso aos seus fundos se não tiver feito o backup de sua chave privada ou frase inicial",popupSeedPhraseBad:"Frase inicial Inesperada",popupSeedPhraseBadNote:"A frase inicial é inválida ou não foi gerada pelo MPW.
Você ainda quer continuar",popupCreateProposal:"Criar Proposta",popupCreateProposalCost:"Custo",popupProposalName:"Título da Proposta",popupProposalAddress:"Endereço da proposta (facultativo)",popupProposalDuration:"Duração em ciclos",popupProposalPerCycle:"por ciclo",popupProposalEncryptFirst:'É necessário premir o botão "{button}" antes de poder criar propostas!',popupProposalVoteHash:"Votação de Hash:",popupProposalFinalisedNote:"Parabéns pelo lançamento da sua proposta!
Os proprietários do Masternode podem usar a sua votação de hash em outras carteiras que não sejam MPW, então certifique-se de adicionar isso à sua publicação no fórum, se aplicável!",popupProposalFinalisedSignoff:"Boa sorte na sua jornada pelo DAO, PIVian!",popupHardwareAddrCheck:"Confirme se este é o seu endereço que você vê",proposalFinalisationConfirming:"A Confirmar",proposalFinalisationRemaining:"restante",proposalFinalisationExpired:"Proposta Expirada",proposalFinalisationReady:"Pronto para enviar",proposalPassing:"PASSAGEM",proposalFailing:"FALHA",proposalTooYoung:"DEMASIADO JOVEM",proposalFunded:"FINANCIADO/A",proposalNotFunded:"NÃO FINANCIADO/A",proposalPaymentsRemaining:"parcela(s) restante(s)
de",proposalPaymentTotal:"Total",proposalNetYes:"Sim Líquido",popupConfirm:"Confirme",popupClose:"Fechar",popupCancel:"Cancelar",chartPublicAvailable:"Público disponível",timeDays:"Dias",timeHours:"Horas",timeMinutes:"Minutos",timeSeconds:"Segundos",unhandledException:"Exceção não tratada",ALERTS:"<-- DO NOT EDIT THIS LINE! All below entries are for Alert Popups",INTERNAL_ERROR:"Erro interno, por favor tente novamente mais tarde",FAILED_TO_IMPORT:"Falha ao importar! Senha inválida",UNSUPPORTED_CHARACTER:"O caracter {char} não é suportado em endereços! (Não é compatível com Base58)",UNSUPPORTED_WEBWORKERS:"Este navegador não suporta Web Workers (JS multi-threaded), infelizmente você não pode gerar carteiras Vanity!",INVALID_ADDRESS:"Endereço PIVX inválido!
{address}",TESTNET_ENCRYPTION_DISABLED:"Modo Testnet ativado!
Encriptação da carteira desativada",PASSWORD_TOO_SMALL:"Esta senha é um pouco curta!
Use pelo menos {MIN_PASS_LENGTH} caracteres.",PASSWORD_DOESNT_MATCH:"As suas senhas não correspondem!",NEW_PASSWORD_SUCCESS:"Você está protegido! 🔐
Muito bem, PIVian blindado!",INCORRECT_PASSWORD:"Senha incorreta!",INVALID_AMOUNT:"Valor inválido!
",TX_SENT:"Transação enviada!",TX_FAILED:"Falha na transação!",QR_SCANNER_BAD_RECEIVER:"não é um receptor de pagamento válido",VALIDATE_AMOUNT_LOW:"
O valor mínimo é {minimumAmount} {coinTicker}!",VALIDATE_AMOUNT_DECIMAL:"{coinDecimal} limite decimal excedido",SUCCESS_STAKING_ADDR:"Endereço de Staking definido!
Prossiga com o unstake!",CONFIRM_UNSTAKE_H_WALLET:"Confirme o seu Unstake
Confirme a TX no seu {strHardwareName}",CONFIRM_TRANSACTION_H_WALLET:"Confirme a sua transação
Confirme a TX no seu {strHardwareName}",SUCCESS_STAKING_ADDR_SET:"Endereço de Staking definido!
>Prossiga com o stake",STAKE_ADDR_SET:"Endereço de Cold Staking definido!
Ao fazer Stake no futuro irá ser usado este endereço.",STAKE_ADDR_BAD:"Endereço de Cold Staking inválido!",STAKE_NOT_SEND:"Aqui, use o ecrã de Stake, não o ecrã de Envio!",BAD_ADDR_LENGTH:"Endereço PIVX inválido!
Comprimento incorreto ({addressLength})",BAD_ADDR_PREFIX:"Endereço PIVX inválido!
Prefixo inválido {address} (Deve começar com {addressPrefix})",SENT_NOTHING:"Você não pode enviar 'nada'!",MORE_THEN_8_DECIMALS:"limite de 8 decimais excedido",SAVE_WALLET_PLEASE:"Guarde a sua carteira!
Painel ➜ Proteja a sua carteira",BACKUP_OR_ENCRYPT_WALLET:"Criptografe e/ou faça backup das suas chaves antes de sair, ou você pode perdê-las!",NO_CAMERAS:"Este dispositivo não tem câmara!",STAKING_LEDGER_NO_SUPPORT:"A Ledger não é compatível com Cold Staking",CONNECTION_FAILED:"Falha ao sincronizar! Tente novamente mais tarde.
Pode tentar reconectar através das Configurações.",MN_NOT_ENABLED:"O seu masternode ainda não está ativado!",VOTE_SUBMITTED:"Voto enviado!",VOTED_ALREADY:"Você já votou nesta proposta! Aguarde 1 hora",VOTE_SIG_BAD:"Falha ao verificar a assinatura, verifique a chave privada do seu masternode",MN_CREATED_WAIT_CONFS:"Masternode criado!
Aguarde 15 confirmações para prosseguir",MN_ACCESS_BEFORE_VOTE:"Aceda a um masternode antes de votar!",MN_OFFLINE_STARTING:"O seu masternode está offline, vamos tentar iniciá-lo",MN_STARTED:"Masternode iniciado!",MN_RESTARTED:"Masternode reiniciado!",MN_STARTED_ONLINE_SOON:"Masternode iniciado!
Em breve estará online",MN_START_FAILED:"Masternode iniciado!",MN_RESTART_FAILED:"Masternode reiniciado!",MN_DESTROYED:"Masternode destruído!
Já pode despender das suas moedas.",MN_STATUS_IS:"O estado do seu masternode é",MN_STATE:"O estado do seu masternode é {state}",MN_BAD_IP:"O endereço IP é inválido!",MN_NOT_ENOUGH_COLLAT:"Você precisa de {amount} mais {ticker} para criar um Masternode!",MN_ENOUGH_BUT_NO_COLLAT:"Você tem saldo suficiente para um Masternode, mas nenhum UTXO como garantia válido de {amount} {ticker}",MN_COLLAT_NOT_SUITABLE:"Este não é um UTXO adequado para um Masternode",MN_CANT_CONNECT:"Não é possível conectar ao nó RPC!",CONTACTS_ENCRYPT_FIRST:' É necessário carregar em "{button}" antes de poder utilizar Contactos!',CONTACTS_NAME_REQUIRED:"/É necessário um nome!",CONTACTS_NAME_TOO_LONG:"Esse nome é demasiado longo!",CONTACTS_CANNOT_ADD_YOURSELF:"Não se pode adicionar a si próprio como contacto!",CONTACTS_ALREADY_EXISTS:" O contacto já existe!

Já guardou este contacto",CONTACTS_NAME_ALREADY_EXISTS:"//O nome do contacto já existe!
Pode tratar-se de uma tentativa de phishing. Cuidado!",CONTACTS_EDIT_NAME_ALREADY_EXISTS:'//O contacto já existe!
Já existe um contacto com o nome "{strNewName}"!',CONTACTS_KEY_ALREADY_EXISTS:" //O contacto já existe, mas com um nome diferente!
Tem {newName} guardado como {oldName} nos seus contactos",CONTACTS_NOT_A_CONTACT_QR:"Isto não é um QR de contacto!",CONTACTS_ADDED:"//Novo contacto adicionado!
{strName} foi adicionado, viva!",CONTACTS_YOU_HAVE_NONE:" Não tem contactos!",PROPOSAL_FINALISED:"Proposta finalizada!",PROPOSAL_UNCONFIRMED:"A proposta ainda não foi confirmada.",PROPOSAL_EXPIRED:"A proposta expirou. Crie uma nova.",PROPOSAL_FINALISE_FAIL:"Falha ao finalizar a proposta.",PROPOSAL_IMPORT_FIRST:"Crie ou importe a sua carteira para continuar",PROPOSAL_NOT_ENOUGH_FUNDS:"Não há fundos suficientes para criar uma proposta.",PROPOSAL_INVALID_ERROR:"A proposta é inválida. Erro:",PROPOSAL_CREATED:"Proposta criada!
Aguarde 6 confirmações para finalizar.",PROMO_MIN:"O valor mínimo é {min} {ticker}!",PROMO_MAX_QUANTITY:"O seu dispositivo só pode criar {quantity} códigos de cada vez!",PROMO_NOT_ENOUGH:"Não tem {ticker} suficiente para criar esse código!",PROMO_ALREADY_CREATED:"Já criou esse código!",SWITCHED_EXPLORERS:"Explorador trocado!
A usar agora o {explorerName}",SWITCHED_NODE:"Nó trocado!
A usar o {node}",SWITCHED_ANALYTICS:"Nível de análise alterado!
Agora é {level}",SWITCHED_SYNC:"Modo de sincronização alternado!
A usar agora a sincronização {sync}",UNABLE_SWITCH_TESTNET:"Não é possível alternar o modo Testnet!
Já está carregada uma carteira.",WALLET_OFFLINE_AUTOMATIC:"O modo offline está ativo!
Por favor desabilite o Modo Offline para transações automáticas",WALLET_UNLOCK_IMPORT:"Por favor, {unlock} a sua carteira antes de enviar transações!",WALLET_FIREFOX_UNSUPPORTED:"O Firefox não suporta isto!
Infelizmente, o Firefox não suporta carteiras de hardware",WALLET_HARDWARE_WALLET:"Carteira de hardware pronta!
Mantenha a sua {hardwareWallet} conectada, desbloqueada e na aplicação PIVX",WALLET_CONFIRM_L:"Confirme a importação na sua Ledger",WALLET_NO_HARDWARE:"Nenhum dispositivo disponível
Não foi possível encontrar uma carteira de hardware; conecte-a e desbloqueie-a!",WALLET_HARDWARE_UDEV:"O SO negou acesso Você adicionou as regras do udev?",WALLET_HARDWARE_NO_ACCESS:"O sistema operativo negou o acesso Verifique as definições do seu sistema operativo.",WALLET_HARDWARE_CONNECTION_LOST:"Conexão perdida com a {hardwareWallet}
Oops! Parece que a {hardwareWalletProductionName} foi desconectado no meio da operação.",WALLET_HARDWARE_BUSY:"{hardwareWallet} está em modo de espera
Por favor desbloqueie a sua {hardwareWalletProductionName} ou conclua a introdução atual",WALLET_HARDWARE_ERROR:" {hardwareWallet}
{error}",CONFIRM_POPUP_VOTE:"Confirmar Voto",CONFIRM_POPUP_VOTE_HTML:"Tem a certeza? Demora 60 minutos para mudar de voto",CONFIRM_POPUP_TRANSACTION:"Confirme a sua transação",CONFIRM_POPUP_MN_P_KEY:"A chave privada do seu Masternode",CONFIRM_POPUP_MN_P_KEY_HTML:"
Guarde esta chave privada e copie-a para a sua configuração no VPS
",CONFIRM_POPUP_VERIFY_ADDR:"Verifique o seu endereço",MIGRATION_MASTERNODE_FAILURE:"Falha ao recuperar o seu masternode. Por favor, reimporte-o.",MIGRATION_ACCOUNT_FAILURE:"Falha ao recuperar a sua conta. Por favor, reimporte-a.",APP_INSTALLED:"Aplicação instalada!"}}}]); -//# sourceMappingURL=194.mpw.js.map \ No newline at end of file diff --git a/194.mpw.js.map b/194.mpw.js.map deleted file mode 100644 index c4a3b26ca..000000000 --- a/194.mpw.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"./194.mpw.js","mappings":"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AAuB,YACvBC,0BACI,yEACJC,sBAAuB,mBACvBC,2BACI,4OACJC,8BAA+B,6CAC/BC,uBAAwB,gDACxBC,+BAAgC,cAChCC,8BAA+B,WAC/BC,4BAA6B,oBAC7BC,0BAA2B,qBAC3BC,gBAAiB,WACjBC,gBAAiB,QACjBC,iBAAkB,kBAClBC,eAAgB,eAChBC,kBAAmB,mBACnBC,0BAA2B,+BAC3BC,qBAAsB,QACtBC,eAAgB,cAChBC,aAAc,WACdC,WAAY,SACZC,YAAa,WACbC,qBAAsB,qBACtBC,SAAU,OACVC,UAAW,QACXC,YAAa,UACbC,YAAa,WACbC,mBAAoB,sBAGpBC,OAAQ,oEAERC,eAAgB,qDAChBC,iBAAkB,2CAClBC,sBACI,gFACJC,uBACI,iHACJC,gBAAiB,+CACjBC,4BACI,qEACJC,mBACI,sFACJC,sBAAuB,mCACvBC,qBACI,gEACJC,mBAAoB,mBACpBC,eAAgB,6BAChBC,QAAS,qBACTC,UAAW,sBACXC,wBAAyB,wCACzBC,oBAAqB,qDACrBC,wBAAyB,wCACzBC,qBACI,kEACJC,yBACI,0EACJC,6BACI,4EACJC,yBACI,gEACJC,eACI,qGACJC,eAAgB,qCAChBC,eAAgB,yDAChBC,gBACI,2EACJC,gBACI,iGACJC,aAAc,+BACdC,qBAAsB,gCACtBC,mBACI,mEACJC,yBACI,sFACJC,WAAY,mCACZC,0BAA2B,6CAC3BC,kBACI,gHACJC,eAAgB,2CAChBC,eAAgB,gBAChBC,cAAe,+CACfC,aACI,+EACJC,sBACI,sEACJC,sBAAuB,wCACvBC,oBACI,wDACJC,WAAY,8BACZC,aAAc,gCACdC,uBACI,wDACJC,gBAAiB,8BACjBC,kBAAmB,gCACnBC,aACI,qEACJC,aAAc,+BACdC,SAAU,8CACVC,UAAW,4BACXC,qBACI,0EACJC,wBACI,0GACJC,uBAAwB,iDACxBC,gBAAiB,qCAGjBC,uBACI,0EACJC,uBAAwB,yBACxBC,uBAAwB,+BACxBC,6BACI,oDACJC,wBACI,yDACJC,6BACI,kGACJC,kCACI,qFACJC,4BACI,gIACJC,0BAA2B,gCAC3BC,eACI,wEACJC,uBAAwB,sBAExBC,mBAAoB,uBACpBC,qBAAsB,uCACtBC,iBAAkB,qCAClBC,uBAAwB,iCACxBC,sBAAuB,gDACvBC,0BACI,qDACJC,uBAAwB,+BACxBC,iBACI,oEAEJC,UAAW,mCACXC,mBACI,kEACJC,iBAAkB,sDAClBC,sBAAuB,wBAEvBC,mBACI,8DACJC,cAAe,wCACfC,mBAAoB,uDACpBC,cACI,iFACJC,sBACI,oFAEJC,yBACI,uGACJC,qBACI,iEACJC,2BACI,kGACJC,uBACI,qHACJC,iBAAkB,sCAClBC,mBACI,0HACJC,qBACI,6DACJC,0BACI,8FACJC,gCACI,4IACJC,qBACI,6IACJC,sBAAuB,wCAEvBC,mBAAoB,iBACpBC,wBACI,sDACJC,0BAA2B,2BAC3BC,uBAAwB,oCACxBC,4BACI,+EACJC,0BAA2B,2BAE3BC,6BACI,+DACJC,0BACI,0DACJC,cAAe,uB","sources":["webpack://MPW/./locale/pt-pt/translation.js"],"sourcesContent":["export default {\n // As tags básicas HTML são permitidas como etc. Todos os dados são higienizados https://developer.mozilla.org/pt-BR/docs/Web/API/Element/innerHTML\n\n // NOTA: Se uma seção NÃO precisar ser traduzida, deixe-a vazia.\n // NOTE: Variables that MPW insert are denoted by brackets {}, for example, {button}, do NOT translate variables, but place them where it makes the most sense.\n\n // General words\n amount: 'Quantia', //Amount\n staking: 'Staking', //Staking\n wallet: 'Carteira', //Wallet\n display: 'Mostrar', //Display\n activity: 'Atividade', //Activity\n yes: 'Sim', //Yes\n no: 'Não', //No\n\n // Nav Bar\n navDashboard: 'Painel', //Dashboard\n navStake: 'Stake', //Stake\n navMasternode: 'Masternode', //Masternode\n navGovernance: 'Governança', //Governance\n navSettings: 'Configurações', //Settings\n\n // Footer\n footerBuiltWithPivxLabs: 'Construido com 💜 por PIVX Labs 🇵🇹', //Built with 💜 by PIVX Labs\n\n // Intro\n loading: 'Carregar', //Loading\n loadingTitle: 'A Minha Carteira PIVX', //My PIVX Wallet is\n\n // Onboarding Dashboard\n dashboardTitle: 'Painel', //Dashboard\n dCardOneTitle: 'Criar a', //Create a\n dCardOneSubTitle: 'Nova Carteira', //New Wallet\n dCardOneDesc:\n 'Crie uma carteira nova PIVX, oferecendo os métodos de backup e segurança mais seguros.', //Create a new PIVX wallet, offering the most secure backup & security methods.\n dCardOneButton: 'Crie uma Carteira Nova', //Create A New Wallet\n\n dCardTwoTitle: 'Criar Nova', //Create a new\n dCardTwoSubTitle: 'Carteira Vanity', //Vanity Wallet\n dCardTwoDesc:\n 'Criar uma carteira com um prefixo personalizado, isso pode levar muito tempo!', //Create a wallet with a custom prefix, this can take a long time!\n dCardTwoButton: 'Criar uma Carteira Vanity', //Create A Vanity Wallet\n\n dCardThreeTitle: 'Aceda à sua', //Access your\n dCardThreeSubTitle: 'Carteira de hardware', //Hardware Wallet\n dCardThreeDesc:\n 'Use a sua carteira Ledger Hardware com a interface familiar do MPW.', //Use your Ledger Hardware wallet with MPW's familiar interface.\n dCardThreeButton: 'Aceder à minha Ledger', //Access my Ledger\n\n dCardFourTitle: 'Vá para', //Go to\n dCardFourSubTitle: 'A minha Carteira', //My Wallet\n dCardFourDesc:\n 'Importar uma carteira PIVX usando uma chave privada, xpriv ou Frase Inicial.', //Import a PIVX wallet using a Private Key, xpriv, or Seed Phrase.\n dCardFourButtonI: 'Importar Carteira', //Import Wallet\n dCardFourButtonA: 'Aceder à Minha Carteira', //Access My Wallet\n\n // Vanity Creation\n vanityPrefixNote: 'Nota: os endereços começarão sempre por', //Note: addresses will always start with:\n vanityPrefixInput: 'Prefixo do endereço', //Address Prefix\n\n // Seed Phrase Creation\n thisIsYourSeed: 'Esta é a sua frase inicial:', //This is your seed phrase:\n writeDownSeed: 'Escreva num lugar. Você só vai ver isso uma vez!', //Write it down somewhere. You'll only see this once!\n doNotShareWarning:\n 'Qualquer pessoa com uma cópia pode aceder a todos os seus fundos', //Anyone with a copy of it can access all of your funds.\n doNotShare: 'NÃO a compartilhe com ninguém.', //Do NOT share it with anybody.\n digitalStoreNotAdvised:\n 'NÃO é aconselhável armazená-lo digitalmente.', //It is NOT advised to store this digitally.\n optionalPassphrase: 'Frase Senha Opcional (BIP39)', //Optional Passphrase\n writtenDown: 'Eu escrevi a minha frase-inicial', //I have written down my seed phrase\n\n // Seed Phrase Import\n importSeedValid: 'A frase-semente é válida!', //Seed Phrase is valid!\n importSeedError: 'A frase-semente é válida!', //Seed Phrase is invalid!\n importSeedErrorSize: 'Uma frase-semente deve ter 12 ou 24 palavras!', //A Seed Phrase should be 12 or 24 words long!\n importSeedErrorTypo:\n 'A frase-semente contém erros de digitação! Verifique cuidadosamente a sua introdução', //Seed Phrase contains typing errors! Check your input carefully\n importSeedErrorSkip:\n 'A frase-semente parece inválida, mas o aviso foi ignorado pelo utilizador', //Seed Phrase appears invalid, but the warning was skipped by the user\n\n // Wallet Dashboard\n gettingStarted: 'A Começar', //Getting Started\n secureYourWallet: 'Proteja a sua carteira', //Secure your wallet\n unlockWallet: 'Desbloquear a carteira', //Unlock wallet\n lockWallet: 'Fechar a carteira', //Lock wallet\n\n // Encrypt wallet\n encryptWallet: 'Criptografar carteira', //Encrypt wallet\n encryptPasswordCurrent: 'Palavra-passe atual', //Current Password\n encryptPasswordFirst: 'Digite a senha', //Enter Password\n encryptPasswordSecond: 'Digite novamente a senha', //Re-enter Password\n encrypt: 'Criptografar', //Encrypt\n changePassword: 'Alterar a palavra-passe', //Change Password\n\n // Wallet Dashboard Sub-menu\n balanceBreakdown: 'Composição do Saldo', //Balance Breakdown\n viewOnExplorer: 'Ver no Explorador ', //View on Explorer\n export: 'Exportar', //Export\n refreshAddress: 'Atualizar endereço', //Refresh address\n redeemOrCreateCode: 'Resgatar ou Criar Código', //Redeem or Create Code\n\n // Send\n address: 'Endereço', //Address\n receivingAddress: 'Endereço de recepção', //Receiving address\n sendAmountCoinsMax: 'MAX', //MAX\n paymentRequestMessage: 'Descrição (do comerciante)', //Description (from the merchant)\n send: 'Enviar', //Send\n\n // Contacts System\n receive: 'Receber', //Receive\n contacts: 'Contactos', //Contacts\n name: 'Nome', //Name\n username: 'Nome de utilizador', //Username\n addressOrXPub: 'Endereço ou XPub', //Address or XPub\n back: 'Voltar', //Back\n chooseAContact: 'Escolha um contacto', //Choose a Contact\n createContact: 'Criar contacto', //Create Contact\n encryptFirstForContacts:\n 'Depois de clicar no \"{button}\" no Painel de Controlo, pode criar um Contacto para facilitar a receção de PIV!', //Once you hit \"{button}\" in the Dashboard, you can create a Contact to make receiving PIV easier!\n shareContactURL: 'Partilhar URL de contacto', //Share Contact URL\n setupYourContact: 'Configurar o seu contacto', //Setup your Contact\n receiveWithContact:\n 'Receber através de um simples contacto baseado no nome de utilizador', //Receive using a simple username-based Contact\n onlyShareContactPrivately:\n ' partilhe o seu contacto com pessoas de confiança (família, amigos)', //Only share your Contact with trusted people (family, friends)\n\n /* Context: The \"Change to\" is used in-app with one of the Three options below it, i.e: \"Change to Contact\" */\n changeTo: 'Alterar para', //Change to\n contact: 'Contacto', //Contact\n xpub: ' XPub', //XPub\n\n addContactTitle: 'Adicionar {strName} aos contactos', //Add {strName} to Contacts\n addContactSubtext:\n 'Uma vez adicionado, será capaz de enviar transacções para {strName} pelo seu nome (quer digitando, quer clicando), sem mais endereços, fácil e agradável.', //Once added you\\'ll be able to send transactions to {strName} by their name (either typing, or clicking), no more addresses, nice \\'n easy.\n addContactWarning:\n 'Certifica-te de que este é o verdadeiro \"{strName}\", não aceites pedidos de contacto de fontes desconhecidas!', //Ensure that this is the real \"{strName}\", do not accept Contact requests from unknown sources!\n\n editContactTitle: 'Alterar \"{strName}\" Contacto', //Change \"{strName}\" Contact\n newName: 'Novo nome', //New Name\n\n removeContactTitle: 'Remover {strName}?', //Remove {strName}?\n removeContactSubtext:\n 'Tem a certeza de que pretende remover {strName} dos seus Contactos?', //Are you sure you wish to remove {strName} from your Contacts?\n removeContactNote:\n 'Pode voltar a adicioná-los em qualquer altura no futuro.', //You can add them again any time in the future.\n\n // Export\n privateKey: 'Chave privada', //Private Key\n viewPrivateKey: 'Mostrar a chave privada?', //View Private Key?\n privateWarning1: 'Certifique-se de que ninguém está a ver o seu ecrã.', //Make sure no one can see your screen.\n privateWarning2:\n 'Qualquer pessoa com esta chave pode roubar os seus fundos', //Anyone with this key can steal your funds.\n viewKey: 'Ver a chave', //View key\n\n // PIVX Promos\n // NOTE: for this below line, continue the sentence \"PIVX Promos [...]\", since 'PIVX Promos' is a brand, it is not translated.\n pivxPromos:\n 'é um sistema descentralizado de códigos de presente no valor de PIV', // [...] is a decentralised system for gift codes worth PIV\n // NOTE: on this line, if possible, leave 'PIVX Promos' untranslated\n redeemInput: \"Digite o seu código 'PIVX Promos'\", //Enter your 'PIVX Promos' code\n createName: 'Nome da promoção (opcional)', //Promo Name (Optional)\n createAmount: 'Valor promocional', //Promo Amount\n\n // Stake\n stake: 'Stake', //Stake\n stakeUnstake: 'Unstake', //Unstake\n ownerAddress: '(Facultativo) Endereço do proprietário', //(Optional) Owner Address\n rewardHistory: 'Histórico de recompensas', //Reward History\n loadMore: 'Carregar mais', //Load more\n\n // Masternode\n mnControlYour: 'Controle o seu', //Control your\n mnSubtext:\n 'A partir deste guia, você pode criar e aceder a um ou mais masternodes', //From this tab you can create and access one or more masternodes\n\n // Governance\n govSubtext:\n 'Nesta aba você pode conferir as propostas e, se tiver um masternode, fazer parte do DAO e votar!', //From this tab you can check the proposals and, if you have a masternode, be a part of the DAO and vote!\n govMonthlyBudget: 'Orçamento mensal', //Monthly Budget\n govAllocBudget: 'Orçamento Alocado', //Allocated Budget\n govNextPayout: 'Próximo Pagamento da Tesoraria', //Next Treasury Payout\n govTableStatus: 'ESTADO', //STATUS\n govTableName: 'NOME', //NAME\n govTablePayment: 'PAGAMENTO', //PAYMENT\n govTableVotes: 'VOTOS', //VOTES\n govTableVote: 'VOTO', //VOTE\n contestedProposalsTitle: 'Propostas Contestadas', //Contested Proposals\n contestedProposalsDesc:\n 'Estas são as propostas que receberam uma quantidade esmagadora de votos negativos, tornando-as provavelmente spam ou uma proposta altamente contestável.', //These are proposals that received an overwhelming amount of downvotes, making it likely spam or a highly contestable proposal.\n\n // Settings\n settingsCurrency: 'Escolha uma moeda de exibição:', //Choose a display currency:\n priceProvidedBy: 'Dados sobre preços fornecidos por', //Price data provided by\n settingsDecimals: 'Balanço de decimais:', //Balance Decimals:\n settingsExplorer: 'Escolha um explorador:', //Choose an explorer:\n settingsLanguage: 'Escolha um Idioma:', //Choose a Language:\n settingsPivxNode: 'Escolha um node PIVX:', //Choose a PIVX node:\n settingsAutoSelectNet: 'Seleção automática de Exploradores e Nodes', //Auto-select Explorers and Nodes\n settingsAnalytics: 'Escolha o seu nível de contribuição analítica:', //Choose your analytics contribution level:\n settingsToggleDebug: 'Modo de depuração', //Debug Mode\n settingsToggleTestnet: 'Modo Testnet', //Testnet Mode\n settingsToggleAdvancedMode: 'Modo avançado', //Advanced Mode\n settingsToggleAdvancedModeSubtext:\n 'Isto desbloqueia uma funcionalidade e personalização mais profundas, mas pode ser demasiado complicado e potencialmente perigoso para utilizadores inexperientes!', //This unlocks deeper functionality and customisation, but may be overwhelming and potentially dangerous for unexperienced users!\n\n // Network switching (mainnet <---> testnet)\n netSwitchUnsavedWarningTitle: 'A tua carteira não está guardada!', //Your {network} wallet isn\\'t saved!\n netSwitchUnsavedWarningSubtitle: 'A tua carteira não está guardada!', //Your {network} account is at risk!\n netSwitchUnsavedWarningSubtext:\n 'Se mudares para {network} antes de a guardares, perdes a conta!', //If you switch to {network} before saving it, you\\'ll lose the account!\n netSwitchUnsavedWarningConfirmation: 'Tens mesmo a certeza?', //Are you really sure?\n\n // Transparency Report\n transparencyReport: '\"Relatório de Transparência\"', //Transparency Report\n hit: '\"Um ping a indicar o carregamento de uma aplicação, nenhum dado exclusivo é enviado.\"', //A ping indicating an app load, no unique data is sent.\n time_to_sync:\n '\"O tempo em segundos que o MPW levou a sincronizar pela última vez.\"', //The time in seconds it took for MPW to last synchronise.\n transaction:\n '\"Um ping indicando uma Tx, nenhum dado exclusivo é enviado, mas pode ser inferido a partir do tempo na rede.\"', //A ping indicating a Tx, no unique data is sent, but may be inferred from on-chain time.\n\n // Analytics Levels\n analyticDisabled: 'Desativado', //Disabled\n analyticMinimal: 'Mínimo', //Minimal\n analyticBalanced: 'Saldo', //Balanced\n\n // Migration System\n MIGRATION_ACCOUNT_FAILURE_TITLE: 'Falha ao recuperar conta', //Failed to recover account\n MIGRATION_ACCOUNT_FAILURE_HTML:\n 'Ocorreu um erro ao recuperar a sua conta.
Por favor reimporte sua carteira usando a seguinte chave:', //There was an error recovering your account.
Please reimport your wallet using the following key:\n\n // Dynamic Elements (Rendered at runtime - TODO in future PR: sort in to above categories for consistency)\n ID: 'BI', //ID\n time: 'Tempo', //Time\n description: 'Descrição', //Description\n activityBlockReward: 'Bloco Recompensa', //Block Reward\n activitySentTo: 'Enviado para {r}', //Sent to\n activitySelf: 'si mesmo', //Self\n activityShieldedAddress: 'Endereço Protegido', //Shielded address\n activityReceivedFrom: 'Recebido de {s}', //Received from\n activityDelegatedTo: 'Delegado a {r}', //Delegated to\n activityUndelegated: 'Não é Delegado', //Undelegated\n activityUnknown: 'Tx desconhecido', //Unknown Tx\n password: 'Senha', //Password\n walletUnlock: 'Desbloquear a sua carteira', //Unlock your wallet\n walletPassword: 'Senha da Carteira', //Wallet password\n walletUnlockCreateMN: 'Desbloquear para criar o seu Masternode!', //Unlock to create your Masternode!\n walletUnlockMNStart: 'Desbloquear para iniciar o seu Masternode', //Unlock to start your Masternode!\n walletUnlockProposal: 'Desbloquear para criar uma proposta', //Unlock to create a proposal!\n walletUnlockPromo: 'Desbloquear para finalizar o seu código promocional', //Unlock to finalise your Promo Code!\n walletUnlockTx: 'Desbloquear para enviar a sua transação', //Unlock to send your transaction!\n walletUnlockStake: 'Desbloquear o seu para skate', //Unlock to stake your\n walletUnlockUnstake: 'Desbloquear para retirar o seu', //Unlock to unstake your\n changelogTitle: 'O que há de Novo em', //What's New in\n popupSetColdAddr: 'Defina o seu endereço de Frio Staking', //Set your Cold Staking address\n popupCurrentAddress: 'Endereço atual', //Current address:\n popupColdStakeNote:\n 'Um Endereço de aposta moedas em seu nome, não pode gastar moedas, então é até seguro usar o Cold Address de um estranho!', //A Cold Address stakes coins on your behalf, it cannot spend coins, so it's even safe to use a stranger's Cold Address!\n popupExample: 'Exemplo:', //Example:\n popupWalletLock: 'Você quer bloquear a sua carteira', //Do you want to lock your wallet?\n popupWalletWipe: 'Deseja limpar os dados privados da sua carteira', //Do you want to wipe your wallet private data?\n popupWalletLockNote:\n 'Você precisará digitar sua senha para acessar seus fundos', //You will need to enter your password to access your funds\n popupWalletWipeNote:\n 'Você perderá o acesso aos seus fundos se não tiver feito o backup de sua chave privada ou frase inicial', //You will lose access to your funds if you haven't backed up your private key or seed phrase\n popupSeedPhraseBad: 'Frase inicial Inesperada', //Unexpected Seed Phrase\n popupSeedPhraseBadNote:\n 'A frase inicial é inválida ou não foi gerada pelo MPW.
Você ainda quer continuar', //The seed phrase is either invalid or was not generated by MPW.
Do you still want to proceed?\n popupCreateProposal: 'Criar Proposta', //Create Proposal\n popupCreateProposalCost: 'Custo', //Cost\n popupProposalName: 'Título da Proposta', //Proposal Title\n popupProposalAddress: 'Endereço da proposta (facultativo)', //Proposal Address (Optional)\n popupProposalDuration: 'Duração em ciclos', //Duration in cycles\n popupProposalPerCycle: 'por ciclo', //per cycle\n popupProposalEncryptFirst:\n 'É necessário premir o botão \"{button}\" antes de poder criar propostas!', //You need to hit \"{button}\" before you can create proposals!\n popupProposalVoteHash: 'Votação de Hash:', //Vote Hash:\n popupProposalFinalisedNote:\n 'Parabéns pelo lançamento da sua proposta!
Os proprietários do Masternode podem usar a sua votação de hash em outras carteiras que não sejam MPW, então certifique-se de adicionar isso à sua publicação no fórum, se aplicável!', //Congratulations on launching your proposal!
Masternode owners can use your Vote Hash to vote from wallets other than MPW, so make sure to add this to your forum post, if applicable!\n popupProposalFinalisedSignoff: 'Boa sorte na sua jornada pelo DAO, PIVian!', //Good luck on your journey through the DAO, PIVian!\n popupHardwareAddrCheck: 'Confirme se este é o seu endereço que você vê', //Please confirm this is the address you see on your\n proposalFinalisationConfirming: 'A Confirmar', //Confirming...\n proposalFinalisationRemaining: 'restante', //remaining\n proposalFinalisationExpired: 'Proposta Expirada', //Proposal Expired\n proposalFinalisationReady: 'Pronto para enviar', //Ready to submit\n proposalPassing: 'PASSAGEM', //PASSING\n proposalFailing: 'FALHA', //FAILING\n proposalTooYoung: 'DEMASIADO JOVEM', //TOO YOUNG\n proposalFunded: 'FINANCIADO/A', //FUNDED\n proposalNotFunded: 'NÃO FINANCIADO/A', //NOT FUNDED\n proposalPaymentsRemaining: 'parcela(s) restante(s)
de', //installment(s) remaining
of\n proposalPaymentTotal: 'Total', //total\n proposalNetYes: 'Sim Líquido', //Net Yes\n popupConfirm: 'Confirme', //Confirm\n popupClose: 'Fechar', //Close\n popupCancel: 'Cancelar', //Cancel\n chartPublicAvailable: 'Público disponível', //Public Available\n timeDays: 'Dias', //Days\n timeHours: 'Horas', //Hours\n timeMinutes: 'Minutos', //Minutes\n timeSeconds: 'Segundos', //Seconds\n unhandledException: 'Exceção não tratada', //Unhandled exception.\n\n // Alerts\n ALERTS: '<-- DO NOT EDIT THIS LINE! All below entries are for Alert Popups',\n\n INTERNAL_ERROR: 'Erro interno, por favor tente novamente mais tarde', //Internal error, please try again later\n FAILED_TO_IMPORT: 'Falha ao importar! Senha inválida', //Failed to import! Invalid password\n UNSUPPORTED_CHARACTER:\n 'O caracter {char} não é suportado em endereços! (Não é compatível com Base58)', //The character '{char}' is unsupported in addresses! (Not Base58 compatible)\n UNSUPPORTED_WEBWORKERS:\n 'Este navegador não suporta Web Workers (JS multi-threaded), infelizmente você não pode gerar carteiras Vanity!', //This browser doesn\\'t support Web Workers (multi-threaded JS), unfortunately you cannot generate Vanity wallets!\n INVALID_ADDRESS: 'Endereço PIVX inválido!
{address}', //Invalid PIVX address!
{address}\n TESTNET_ENCRYPTION_DISABLED:\n 'Modo Testnet ativado!
Encriptação da carteira desativada', //Testnet Mode is ON!
Wallet encryption disabled\n PASSWORD_TOO_SMALL:\n 'Esta senha é um pouco curta!
Use pelo menos {MIN_PASS_LENGTH} caracteres.',\n PASSWORD_DOESNT_MATCH: 'As suas senhas não correspondem!', //Your passwords don\\'t match!\n NEW_PASSWORD_SUCCESS:\n 'Você está protegido! 🔐
Muito bem, PIVian blindado!', //You\\'re Secured! 🔐
Nice stuff, Armoured PIVian!\n INCORRECT_PASSWORD: 'Senha incorreta!', //Incorrect password!\n INVALID_AMOUNT: 'Valor inválido!
', //Invalid amount!
\n TX_SENT: 'Transação enviada!', //Transaction sent!\n TX_FAILED: 'Falha na transação!', //Transaction Failed!\n QR_SCANNER_BAD_RECEIVER: 'não é um receptor de pagamento válido', //is not a valid payment receiver\n VALIDATE_AMOUNT_LOW: '
O valor mínimo é {minimumAmount} {coinTicker}!', //
Minimum amount is {minimumAmount} {coinTicker}!\n VALIDATE_AMOUNT_DECIMAL: '{coinDecimal} limite decimal excedido', //{coinDecimal} decimal limit exceeded\n SUCCESS_STAKING_ADDR:\n 'Endereço de Staking definido!
Prossiga com o unstake!', //Staking Address set!
Now go ahead and unstake!\n CONFIRM_UNSTAKE_H_WALLET:\n 'Confirme o seu Unstake
Confirme a TX no seu {strHardwareName}', //Confirm your Unstake
Confirm the TX on your {strHardwareName}\n CONFIRM_TRANSACTION_H_WALLET:\n 'Confirme a sua transação
Confirme a TX no seu {strHardwareName}', //Confirm your transaction
Confirm the TX on your {strHardwareName}\n SUCCESS_STAKING_ADDR_SET:\n 'Endereço de Staking definido!
>Prossiga com o stake', //'Staking Address set!
Now go ahead and stake!\n STAKE_ADDR_SET:\n 'Endereço de Cold Staking definido!
Ao fazer Stake no futuro irá ser usado este endereço.', //Cold Address set!
Future stakes will use this address.\n STAKE_ADDR_BAD: 'Endereço de Cold Staking inválido!', //Invalid Cold Staking address!\n STAKE_NOT_SEND: 'Aqui, use o ecrã de Stake, não o ecrã de Envio!', //Here, use the Stake screen, not the Send screen!\n BAD_ADDR_LENGTH:\n 'Endereço PIVX inválido!
Comprimento incorreto ({addressLength})', //Invalid PIVX address!
Bad length ({addressLength})\n BAD_ADDR_PREFIX:\n 'Endereço PIVX inválido!
Prefixo inválido {address} (Deve começar com {addressPrefix})', //Invalid PIVX address!
Bad prefix {address} (Should start with {addressPrefix})\n SENT_NOTHING: \"Você não pode enviar 'nada'!\", //You can\\'t send \\'nothing\\'!\n MORE_THEN_8_DECIMALS: 'limite de 8 decimais excedido', //8 decimal limit exceeded\n SAVE_WALLET_PLEASE:\n 'Guarde a sua carteira!
Painel ➜ Proteja a sua carteira', //Save your wallet!
Dashboard ➜ Secure your wallet\n BACKUP_OR_ENCRYPT_WALLET:\n 'Criptografe e/ou faça backup das suas chaves antes de sair, ou você pode perdê-las!', //Please ENCRYPT and/or BACKUP your keys before leaving, or you may lose them!\n NO_CAMERAS: 'Este dispositivo não tem câmara!', //This device has no camera!\n STAKING_LEDGER_NO_SUPPORT: 'A Ledger não é compatível com Cold Staking', //Ledger is not supported for Cold Staking\n CONNECTION_FAILED:\n 'Falha ao sincronizar! Tente novamente mais tarde.
Pode tentar reconectar através das Configurações.', //Failed to synchronize! Please try again later.
You can attempt re-connect via the Settings.\n MN_NOT_ENABLED: 'O seu masternode ainda não está ativado!', //Your masternode is not enabled yet!\n VOTE_SUBMITTED: 'Voto enviado!', //Vote submitted!\n VOTED_ALREADY: 'Você já votou nesta proposta! Aguarde 1 hora', //You already voted for this proposal! Please wait 1 hour\n VOTE_SIG_BAD:\n 'Falha ao verificar a assinatura, verifique a chave privada do seu masternode', //Failed to verify signature, please check your masternode\\'s private key\n MN_CREATED_WAIT_CONFS:\n 'Masternode criado!
Aguarde 15 confirmações para prosseguir', //Masternode Created!
Wait 15 confirmations to proceed further\n MN_ACCESS_BEFORE_VOTE: 'Aceda a um masternode antes de votar!', //Access a masternode before voting!\n MN_OFFLINE_STARTING:\n 'O seu masternode está offline, vamos tentar iniciá-lo', //Your masternode is offline, we will try to start it\n MN_STARTED: 'Masternode iniciado!', //Masternode started!\n MN_RESTARTED: 'Masternode reiniciado!', //Masternode restarted!\n MN_STARTED_ONLINE_SOON:\n 'Masternode iniciado!
Em breve estará online', //Masternode started!
It\\'ll be online soon\n MN_START_FAILED: 'Masternode iniciado!', //Masternode started!\n MN_RESTART_FAILED: 'Masternode reiniciado!', //Masternode restarted!\n MN_DESTROYED:\n 'Masternode destruído!
Já pode despender das suas moedas.', //Masternode destroyed!
Your coins are now spendable.\n MN_STATUS_IS: 'O estado do seu masternode é', //Your masternode status is\n MN_STATE: 'O estado do seu masternode é {state}', //Your masternode is in {state} state\n MN_BAD_IP: 'O endereço IP é inválido!', //The IP address is invalid!\n MN_NOT_ENOUGH_COLLAT:\n 'Você precisa de {amount} mais {ticker} para criar um Masternode!', //You need {amount} more {ticker} to create a Masternode!\n MN_ENOUGH_BUT_NO_COLLAT:\n 'Você tem saldo suficiente para um Masternode, mas nenhum UTXO como garantia válido de {amount} {ticker}', //You have enough balance for a Masternode, but no valid collateral UTXO of {amount} {ticker}\n MN_COLLAT_NOT_SUITABLE: 'Este não é um UTXO adequado para um Masternode', //This is not a suitable UTXO for a Masternode\n MN_CANT_CONNECT: 'Não é possível conectar ao nó RPC!', //Unable to connect to RPC node!\n\n /* Contacts System Alerts */\n CONTACTS_ENCRYPT_FIRST:\n ' É necessário carregar em \"{button}\" antes de poder utilizar Contactos!', //You need to hit \"{button}\" before you can use Contacts!\n CONTACTS_NAME_REQUIRED: '/É necessário um nome!', //A name is required!\n CONTACTS_NAME_TOO_LONG: 'Esse nome é demasiado longo!', //That name is too long!\n CONTACTS_CANNOT_ADD_YOURSELF:\n 'Não se pode adicionar a si próprio como contacto!', //You cannot add yourself as a Contact!\n CONTACTS_ALREADY_EXISTS:\n ' O contacto já existe!

Já guardou este contacto', //Contact already exists!
You already saved this contact\n CONTACTS_NAME_ALREADY_EXISTS:\n '//O nome do contacto já existe!
Pode tratar-se de uma tentativa de phishing. Cuidado!', //Contact name already exists!
This could potentially be a phishing attempt, beware!\n CONTACTS_EDIT_NAME_ALREADY_EXISTS:\n '//O contacto já existe!
Já existe um contacto com o nome \"{strNewName}\"!', //Contact already exists!
A contact is already called \"{strNewName}\"!\n CONTACTS_KEY_ALREADY_EXISTS:\n ' //O contacto já existe, mas com um nome diferente!
Tem {newName} guardado como {oldName} nos seus contactos', //Contact already exists, but under a different name!
You have {newName} saved as {oldName} in your contacts\n CONTACTS_NOT_A_CONTACT_QR: 'Isto não é um QR de contacto!', //This isn\\'t a Contact QR!\n CONTACTS_ADDED:\n '//Novo contacto adicionado!
{strName} foi adicionado, viva!', //New Contact added!
{strName} has been added, hurray!\n CONTACTS_YOU_HAVE_NONE: ' Não tem contactos!', //You have no contacts!\n\n PROPOSAL_FINALISED: 'Proposta finalizada!', //Proposal finalized!\n PROPOSAL_UNCONFIRMED: 'A proposta ainda não foi confirmada.', //The proposal hasn\\'t been confirmed yet.\n PROPOSAL_EXPIRED: 'A proposta expirou. Crie uma nova.', //The proposal has expired. Create a new one.\n PROPOSAL_FINALISE_FAIL: 'Falha ao finalizar a proposta.', //Failed to finalize proposal.\n PROPOSAL_IMPORT_FIRST: 'Crie ou importe a sua carteira para continuar', //Create or import your wallet to continue\n PROPOSAL_NOT_ENOUGH_FUNDS:\n 'Não há fundos suficientes para criar uma proposta.', //Not enough funds to create a proposal.\n PROPOSAL_INVALID_ERROR: 'A proposta é inválida. Erro:', //Proposal is invalid. Error:\n PROPOSAL_CREATED:\n 'Proposta criada!
Aguarde 6 confirmações para finalizar.', //Proposal created!
Wait 6 confirmations to finalise.\n\n PROMO_MIN: 'O valor mínimo é {min} {ticker}!', //Minimum amount is {min} {ticker}!\n PROMO_MAX_QUANTITY:\n 'O seu dispositivo só pode criar {quantity} códigos de cada vez!', //Your device can only create {quantity} codes at a time!\n PROMO_NOT_ENOUGH: 'Não tem {ticker} suficiente para criar esse código!', //You don\\'t have enough {ticker} to create that code!\n PROMO_ALREADY_CREATED: 'Já criou esse código!', //You\\'ve already created that code!\n\n SWITCHED_EXPLORERS:\n 'Explorador trocado!
A usar agora o {explorerName}', //Switched explorer!
Now using {explorerName}\n SWITCHED_NODE: 'Nó trocado!
A usar o {node}', //Switched node!
Now using {node}\n SWITCHED_ANALYTICS: 'Nível de análise alterado!
Agora é {level}', //Switched analytics level!
Now {level}\n SWITCHED_SYNC:\n 'Modo de sincronização alternado!
A usar agora a sincronização {sync}', //Switched sync mode!
Now using {sync} sync\n UNABLE_SWITCH_TESTNET:\n 'Não é possível alternar o modo Testnet!
Já está carregada uma carteira.', //Unable to switch Testnet Mode!
A wallet is already loaded\n\n WALLET_OFFLINE_AUTOMATIC:\n 'O modo offline está ativo!
Por favor desabilite o Modo Offline para transações automáticas', //Offline Mode is active!
Please disable Offline Mode for automatic transactions\n WALLET_UNLOCK_IMPORT:\n 'Por favor, {unlock} a sua carteira antes de enviar transações!', //Please {unlock} your wallet before sending transactions!\n WALLET_FIREFOX_UNSUPPORTED:\n 'O Firefox não suporta isto!
Infelizmente, o Firefox não suporta carteiras de hardware', //Firefox doesn't support this!
Unfortunately, Firefox does not support hardware wallets\n WALLET_HARDWARE_WALLET:\n 'Carteira de hardware pronta!
Mantenha a sua {hardwareWallet} conectada, desbloqueada e na aplicação PIVX', //Hardware wallet ready!
Please keep your {hardwareWallet} plugged in, unlocked, and in the PIVX app\n WALLET_CONFIRM_L: 'Confirme a importação na sua Ledger', //Confirm the import on your Ledger\",\n WALLET_NO_HARDWARE:\n 'Nenhum dispositivo disponível
Não foi possível encontrar uma carteira de hardware; conecte-a e desbloqueie-a!', //No device available
Couldn't find a hardware wallet; please plug it in and unlock!\n WALLET_HARDWARE_UDEV:\n 'O SO negou acesso Você adicionou as regras do udev?', // The OS denied access Did you add the udev rules?\n WALLET_HARDWARE_NO_ACCESS:\n 'O sistema operativo negou o acesso Verifique as definições do seu sistema operativo.', // The OS denied access Please check your Operating System settings.\n WALLET_HARDWARE_CONNECTION_LOST:\n 'Conexão perdida com a {hardwareWallet}
Oops! Parece que a {hardwareWalletProductionName} foi desconectado no meio da operação.', //Lost connection to {hardwareWallet}
It seems the {hardwareWalletProductionName} was unplugged mid-operation, oops!\n WALLET_HARDWARE_BUSY:\n '{hardwareWallet} está em modo de espera
Por favor desbloqueie a sua {hardwareWalletProductionName} ou conclua a introdução atual', //{hardwareWallet} is waiting
Please unlock your {hardwareWalletProductionName} or finish it's current prompt\n WALLET_HARDWARE_ERROR: ' {hardwareWallet}
{error}', // {hardwareWallet}
{error}\n\n CONFIRM_POPUP_VOTE: 'Confirmar Voto', //Confirm Vote\n CONFIRM_POPUP_VOTE_HTML:\n 'Tem a certeza? Demora 60 minutos para mudar de voto', //Are you sure? It takes 60 minutes to change vote\n CONFIRM_POPUP_TRANSACTION: 'Confirme a sua transação', //Confirm your transaction\n CONFIRM_POPUP_MN_P_KEY: 'A chave privada do seu Masternode', //Your Masternode Private Key\n CONFIRM_POPUP_MN_P_KEY_HTML:\n '
Guarde esta chave privada e copie-a para a sua configuração no VPS
', //
Save this private key and copy it to your VPS config
\n CONFIRM_POPUP_VERIFY_ADDR: 'Verifique o seu endereço', //Verify your address\n\n MIGRATION_MASTERNODE_FAILURE:\n 'Falha ao recuperar o seu masternode. Por favor, reimporte-o.', //Failed to recover your masternode. Please reimport it.\n MIGRATION_ACCOUNT_FAILURE:\n 'Falha ao recuperar a sua conta. Por favor, reimporte-a.', //Failed to recover your account. Please reimport it.\n APP_INSTALLED: 'Aplicação instalada!', //App Installed!\n};\n"],"names":["amount","staking","wallet","display","activity","yes","no","navDashboard","navStake","navMasternode","navGovernance","navSettings","footerBuiltWithPivxLabs","loading","loadingTitle","dashboardTitle","dCardOneTitle","dCardOneSubTitle","dCardOneDesc","dCardOneButton","dCardTwoTitle","dCardTwoSubTitle","dCardTwoDesc","dCardTwoButton","dCardThreeTitle","dCardThreeSubTitle","dCardThreeDesc","dCardThreeButton","dCardFourTitle","dCardFourSubTitle","dCardFourDesc","dCardFourButtonI","dCardFourButtonA","vanityPrefixNote","vanityPrefixInput","thisIsYourSeed","writeDownSeed","doNotShareWarning","doNotShare","digitalStoreNotAdvised","optionalPassphrase","writtenDown","importSeedValid","importSeedError","importSeedErrorSize","importSeedErrorTypo","importSeedErrorSkip","gettingStarted","secureYourWallet","unlockWallet","lockWallet","encryptWallet","encryptPasswordCurrent","encryptPasswordFirst","encryptPasswordSecond","encrypt","changePassword","balanceBreakdown","viewOnExplorer","export","refreshAddress","redeemOrCreateCode","address","receivingAddress","sendAmountCoinsMax","paymentRequestMessage","send","receive","contacts","name","username","addressOrXPub","back","chooseAContact","createContact","encryptFirstForContacts","shareContactURL","setupYourContact","receiveWithContact","onlyShareContactPrivately","changeTo","contact","xpub","addContactTitle","addContactSubtext","addContactWarning","editContactTitle","newName","removeContactTitle","removeContactSubtext","removeContactNote","privateKey","viewPrivateKey","privateWarning1","privateWarning2","viewKey","pivxPromos","redeemInput","createName","createAmount","stake","stakeUnstake","ownerAddress","rewardHistory","loadMore","mnControlYour","mnSubtext","govSubtext","govMonthlyBudget","govAllocBudget","govNextPayout","govTableStatus","govTableName","govTablePayment","govTableVotes","govTableVote","contestedProposalsTitle","contestedProposalsDesc","settingsCurrency","priceProvidedBy","settingsDecimals","settingsExplorer","settingsLanguage","settingsPivxNode","settingsAutoSelectNet","settingsAnalytics","settingsToggleDebug","settingsToggleTestnet","settingsToggleAdvancedMode","settingsToggleAdvancedModeSubtext","netSwitchUnsavedWarningTitle","netSwitchUnsavedWarningSubtitle","netSwitchUnsavedWarningSubtext","netSwitchUnsavedWarningConfirmation","transparencyReport","hit","time_to_sync","transaction","analyticDisabled","analyticMinimal","analyticBalanced","MIGRATION_ACCOUNT_FAILURE_TITLE","MIGRATION_ACCOUNT_FAILURE_HTML","ID","time","description","activityBlockReward","activitySentTo","activitySelf","activityShieldedAddress","activityReceivedFrom","activityDelegatedTo","activityUndelegated","activityUnknown","password","walletUnlock","walletPassword","walletUnlockCreateMN","walletUnlockMNStart","walletUnlockProposal","walletUnlockPromo","walletUnlockTx","walletUnlockStake","walletUnlockUnstake","changelogTitle","popupSetColdAddr","popupCurrentAddress","popupColdStakeNote","popupExample","popupWalletLock","popupWalletWipe","popupWalletLockNote","popupWalletWipeNote","popupSeedPhraseBad","popupSeedPhraseBadNote","popupCreateProposal","popupCreateProposalCost","popupProposalName","popupProposalAddress","popupProposalDuration","popupProposalPerCycle","popupProposalEncryptFirst","popupProposalVoteHash","popupProposalFinalisedNote","popupProposalFinalisedSignoff","popupHardwareAddrCheck","proposalFinalisationConfirming","proposalFinalisationRemaining","proposalFinalisationExpired","proposalFinalisationReady","proposalPassing","proposalFailing","proposalTooYoung","proposalFunded","proposalNotFunded","proposalPaymentsRemaining","proposalPaymentTotal","proposalNetYes","popupConfirm","popupClose","popupCancel","chartPublicAvailable","timeDays","timeHours","timeMinutes","timeSeconds","unhandledException","ALERTS","INTERNAL_ERROR","FAILED_TO_IMPORT","UNSUPPORTED_CHARACTER","UNSUPPORTED_WEBWORKERS","INVALID_ADDRESS","TESTNET_ENCRYPTION_DISABLED","PASSWORD_TOO_SMALL","PASSWORD_DOESNT_MATCH","NEW_PASSWORD_SUCCESS","INCORRECT_PASSWORD","INVALID_AMOUNT","TX_SENT","TX_FAILED","QR_SCANNER_BAD_RECEIVER","VALIDATE_AMOUNT_LOW","VALIDATE_AMOUNT_DECIMAL","SUCCESS_STAKING_ADDR","CONFIRM_UNSTAKE_H_WALLET","CONFIRM_TRANSACTION_H_WALLET","SUCCESS_STAKING_ADDR_SET","STAKE_ADDR_SET","STAKE_ADDR_BAD","STAKE_NOT_SEND","BAD_ADDR_LENGTH","BAD_ADDR_PREFIX","SENT_NOTHING","MORE_THEN_8_DECIMALS","SAVE_WALLET_PLEASE","BACKUP_OR_ENCRYPT_WALLET","NO_CAMERAS","STAKING_LEDGER_NO_SUPPORT","CONNECTION_FAILED","MN_NOT_ENABLED","VOTE_SUBMITTED","VOTED_ALREADY","VOTE_SIG_BAD","MN_CREATED_WAIT_CONFS","MN_ACCESS_BEFORE_VOTE","MN_OFFLINE_STARTING","MN_STARTED","MN_RESTARTED","MN_STARTED_ONLINE_SOON","MN_START_FAILED","MN_RESTART_FAILED","MN_DESTROYED","MN_STATUS_IS","MN_STATE","MN_BAD_IP","MN_NOT_ENOUGH_COLLAT","MN_ENOUGH_BUT_NO_COLLAT","MN_COLLAT_NOT_SUITABLE","MN_CANT_CONNECT","CONTACTS_ENCRYPT_FIRST","CONTACTS_NAME_REQUIRED","CONTACTS_NAME_TOO_LONG","CONTACTS_CANNOT_ADD_YOURSELF","CONTACTS_ALREADY_EXISTS","CONTACTS_NAME_ALREADY_EXISTS","CONTACTS_EDIT_NAME_ALREADY_EXISTS","CONTACTS_KEY_ALREADY_EXISTS","CONTACTS_NOT_A_CONTACT_QR","CONTACTS_ADDED","CONTACTS_YOU_HAVE_NONE","PROPOSAL_FINALISED","PROPOSAL_UNCONFIRMED","PROPOSAL_EXPIRED","PROPOSAL_FINALISE_FAIL","PROPOSAL_IMPORT_FIRST","PROPOSAL_NOT_ENOUGH_FUNDS","PROPOSAL_INVALID_ERROR","PROPOSAL_CREATED","PROMO_MIN","PROMO_MAX_QUANTITY","PROMO_NOT_ENOUGH","PROMO_ALREADY_CREATED","SWITCHED_EXPLORERS","SWITCHED_NODE","SWITCHED_ANALYTICS","SWITCHED_SYNC","UNABLE_SWITCH_TESTNET","WALLET_OFFLINE_AUTOMATIC","WALLET_UNLOCK_IMPORT","WALLET_FIREFOX_UNSUPPORTED","WALLET_HARDWARE_WALLET","WALLET_CONFIRM_L","WALLET_NO_HARDWARE","WALLET_HARDWARE_UDEV","WALLET_HARDWARE_NO_ACCESS","WALLET_HARDWARE_CONNECTION_LOST","WALLET_HARDWARE_BUSY","WALLET_HARDWARE_ERROR","CONFIRM_POPUP_VOTE","CONFIRM_POPUP_VOTE_HTML","CONFIRM_POPUP_TRANSACTION","CONFIRM_POPUP_MN_P_KEY","CONFIRM_POPUP_MN_P_KEY_HTML","CONFIRM_POPUP_VERIFY_ADDR","MIGRATION_MASTERNODE_FAILURE","MIGRATION_ACCOUNT_FAILURE","APP_INSTALLED"],"sourceRoot":""} \ No newline at end of file diff --git a/195.mpw.js b/195.mpw.js deleted file mode 100644 index 9ae086fed..000000000 --- a/195.mpw.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkMPW=self.webpackChunkMPW||[]).push([[195],{52195:(e,s,a)=>{e.exports=a.p+"1f711aafe8419ae192fe.svg"}}]); \ No newline at end of file diff --git a/1f711aafe8419ae192fe.svg b/1f711aafe8419ae192fe.svg deleted file mode 100644 index f78557159..000000000 --- a/1f711aafe8419ae192fe.svg +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/206.mpw.js b/206.mpw.js new file mode 100644 index 000000000..4aff21ef8 --- /dev/null +++ b/206.mpw.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkMPW=self.webpackChunkMPW||[]).push([[206],{85206:e=>{e.exports=JSON.parse('{"amount":"ameownt","staking":"","wallet":"Wawwet","display":"Dispway","activity":"Actwivity","yes":"Yas","no":"Nu","navDashboard":"Dashbowed","navStake":"Stakin\'","navMasternode":"Masternowode","navGovernance":"Gubernance","navSettings":"Configgy","footerBuiltWithPivxLabs":"Built with wuv by PIVX Wabs 💜","loading":"Loading","loadingTitle":"My PIVX Wawwet is","dashboardTitle":"Dashbowod","dCardOneTitle":"Cweate a","dCardOneSubTitle":"New Wawwet!","dCardOneDesc":"Cweate a new PIVX wawwet, offewing da most secuwur backup & securrrity methods.","dCardOneButton":"Cweate A New Wawwet","dCardTwoTitle":"Cweate a new","dCardTwoSubTitle":"Vanity Wawwet","dCardTwoDesc":"Cweate a wawwet wiv a custom pwefix, dis can take a long twime!","dCardTwoButton":"Cweate A Vanity Wawwet","dCardThreeTitle":"Access yowour","dCardThreeSubTitle":"Hawdware Wawwet","dCardThreeDesc":"Use ur Ledger Hardware wawwet wiv MPW\'s famiwiar intwerface.","dCardThreeButton":"Access my Ledger","dCardFourTitle":"Go to","dCardFourSubTitle":"My Wawwet","dCardFourDesc":"Impowt a PIVX wawwet using a Pwivate Key, xpriv, or Seed Phrase.","dCardFourButtonI":"Impowt Wawwet","dCardFourButtonA":"Access My Wawwet","vanityPrefixNote":"Note: addwesses will always start wif:","vanityPrefixInput":"Addwess Prefix","thisIsYourSeed":"This is ur seed phrase:","writeDownSeed":"Write it down, baka! You\'ll only see this once!","doNotShareWarning":"Anyone with a copy of it can access all of ur funds.","doNotShare":"Do NOT share it with anyuwu.","digitalStoreNotAdvised":"It is NAWT advised to store this digitally.","optionalPassphrase":"Optional Passphwase (BIP39)","writtenDown":"I haz written down my seed phrase","importSeedValid":"Seed Phwase iz valid!","importSeedError":"Seed Phwase iz invalid!","importSeedErrorSize":"A Seed Phwase shwould be 12 or 24 words long!","importSeedErrorTypo":"Seed Phwase contains typing ewrrors! Check ur input carefully","importSeedErrorSkip":"Seed Phwase appears invalid, but da warning was skipped by da user","gettingStarted":"Getting Stwarted","secureYourWallet":"Secure ur wawwet","unlockWallet":"Unlock wawwet","lockWallet":"Lock wawwet","encryptWallet":"Encwypt wawwet","encryptPasswordCurrent":"Cuwwent Password","encryptPasswordFirst":"Entwer Password","encryptPasswordSecond":"Re-entwer Password","encrypt":"Encwypt","changePassword":"Change Passwoword","balanceBreakdown":"Bwalance Bweakdown","viewOnExplorer":"View on Expwower","export":"Expwort","refreshAddress":"Refwesh address","redeemOrCreateCode":"Redeem or Cweate Cowode","address":"Addwess","receivingAddress":"Receivwing addwess","sendAmountCoinsMax":"MAX♡","paymentRequestMessage":"Deswiption (fwom da Mewrchant)","send":"Send","receive":"Receive","contacts":"Contactz","name":"Name","username":"Username","addressOrXPub":"Addwess or XPubby","back":"Backu","chooseAContact":"Chowose a Contact","createContact":"Cweate Contactu","encryptFirstForContacts":"Once yew hit \\"{button}\\" in the Dashboard, yew can cweate a Contact to make receiving PIV easier!","shareContactURL":"Share Fren URL","setupYourContact":"Setup ur Contact","receiveWithContact":"Receive using a simp-le username-based Contact","onlyShareContactPrivately":"Only share ur Contact with trusted peeps (family, friends)","changeTo":"Change tew","contact":"Contactu","xpub":"XPubby","addContactTitle":"Add {strName} tew Contacts","addContactSubtext":"Once added you\'ll be ablwe tew send transactions tew {strName} by their name (either typing, or clicking), no more addwesses, nice \'n OwO.","addContactWarning":"Ensure dat dis is da real \\"{strName}\\", do not accept Contact requests fwom unknown sources!","editContactTitle":"Change \\"{strName}\\" Contactu","newName":"Neww Name","removeContactTitle":"Unfren {strName}?","removeContactSubtext":"Are u sure u wish to remove {strName} from your Fren list?","removeContactNote":"Yew can add dem again any time in the future, but... :(","privateKey":"Pwivate Key","viewPrivateKey":"View Pwivate Key?","privateWarning1":"Make sure no one can see ur scween.","privateWarning2":"Anyone with dis key can steal ur funds.","viewKey":"View the secret sauce","pivxPromos":"is a decentralised system for gifty cowodes worth PIV","redeemInput":"Enter ur \'PIVX Promos\' cowode","createName":"Pwomo Name (Optional)","createAmount":"Pwomo Ameownt","stake":"","stakeUnstake":"","ownerAddress":"(Optional) Owner Addwess","rewardHistory":"Rewawrd Histowy","loadMore":"Lowoad Mowore","mnControlYour":"Contwol ur","mnSubtext":"Fwom dis tab you can cweate and access one or more masternowodes","govSubtext":"Fwom dis tab yew can check the pwoposals and, if you have a masternowode, be a part of the DAO and vwote!","govMonthlyBudget":"Monthly Budgey","govAllocBudget":"Allocated Budgey","govNextPayout":"Next Moneybags Rain","govTableStatus":"STATUS","govTableName":"NAME","govTablePayment":"PAYMENT","govTableVotes":"VOWOTES","govTableVote":"VOWOTE","contestedProposalsTitle":"Contwested Pwoposals","contestedProposalsDesc":"Dees are pwoposals dat received an overwhelming ameownt of downwotes, making it likely spam or a highly contwestable pwoposal.","settingsCurrency":"Chowose a dispway cuwwency:","priceProvidedBy":"Pwice data pwovided by","settingsDecimals":"Balance Decimawls:","settingsExplorer":"Chowose an expwower:","settingsLanguage":"Chowose a Languwuage:","settingsAnalytics":"Chowose your anawytics contwibution wevel:","settingsPivxNode":"Chowose a PIVX nowode pwease:","settingsAutoSelectNet":"Auto-select Expwowers and Nowodes","settingsToggleDebug":"Debug Mowode","settingsToggleTestnet":"Testnet Mowode","settingsToggleAdvancedMode":"Advwanced Mowode","settingsToggleAdvancedModeSubtext":"Dis unlocks deeper fwunctionality and cuwustomisatwion, but may be oveuhwhelming and potentially dangerwus for unexperienced bakas!","netSwitchUnsavedWarningTitle":"Ur {network} wawwet isn\'t saved!","netSwitchUnsavedWarningSubtitle":"Ur {network} account could get fucky-wuckied!","netSwitchUnsavedWarningSubtext":"If u switch to {network} befwore saving it, you\'ll lose the account!","netSwitchUnsavedWarningConfirmation":"Are u reaaaaaaaaally sure?","transparencyReport":"Twanspawency Repawt","hit":"A ping indicating an app load, no unique data is sent.♡","time_to_sync":"The time in seconds it took for MPW to last synchronise.♡","transaction":"A ping indicating a Tx, no unique data is sent, but may be infewwed from on-chain time.♡","analyticDisabled":"Disabwed","analyticMinimal":"Minimuwul","analyticBalanced":"Bawanced","MIGRATION_ACCOUNT_FAILURE_TITLE":"Failed to recover accowount","MIGRATION_ACCOUNT_FAILURE_HTML":"There was an error recovering ur accowount.
Pwease reimport ur wawwet using the following key:","ID":"ID","time":"Time","description":"Descwiption","activityBlockReward":"Bwock Rewawrd","activitySentTo":"Sentu to {r}","activitySelf":"selfu","activityDelegatedTo":"Delegwated to {r}","activityUndelegated":"Undelegwated","activityUnknown":"Unknown Tx","password":"Password","walletUnlock":"Unlock ur wawwet","walletPassword":"Wawwet password","walletUnlockCreateMN":"Unlock to cweate ur Masternowode!","walletUnlockMNStart":"Unlock to start ur Masternowode!","walletUnlockProposal":"Unlock to cweate a pwoposal!","walletUnlockPromo":"Unlock to finalise ur Pwomo Cowode!","walletUnlockTx":"Unlock to send ur twansaction!","walletUnlockStake":"Unlock to stake ur","walletUnlockUnstake":"Unlock to unstake ur","changelogTitle":"What\'s Newu in","popupSetColdAddr":"Set ur Cold Staking addwess","popupCurrentAddress":"Current addwess:","popupColdStakeNote":"A Cold Addwess stakes coins on ur behalf, it cannot spend coins, so it\'s even safe to uwuse a stwanger\'s Cold Addwess!","popupExample":"Examplez:","popupWalletLock":"Do yew want to lock ur wawwet?","popupWalletWipe":"Do yew want to wipe ur wawwet pwivate data?","popupWalletLockNote":"Yew will need to enter ur password to access ur funds","popupWalletWipeNote":"Yew will lose access to ur funds if yew haven\'t backed up ur pwivate key or seed phwase","popupSeedPhraseBad":"Unexpectwed Seed Phwase","popupSeedPhraseBadNote":"The seed phwase iz either invalid, or was nawt generated by MPW.
Do yew still want to pwroceed?","popupCreateProposal":"Cweate Pwoposal","popupCreateProposalCost":"Cost","popupProposalName":"Pwoposal Name","popupProposalAddress":"Pwoposal Addwess (Optional)","popupProposalDuration":"Duwration in cycles","popupProposalPerCycle":"per cycle","popupProposalEncryptFirst":"Yew need tew hit \\"{button}\\" before yew can cweate pwoposals!","popupProposalVoteHash":"Vowote Hash:","popupProposalFinalisedNote":"Congratsu on launching ur pwoposal DAO senpai!
Masternowode owners can use ur Vowote Hash to vowote from wawwets other than MPW, so make sure to add dis to ur forum post, if applicable!","popupProposalFinalisedSignoff":"Good lucky on ur journey through the DAO, Senpai!","popupHardwareAddrCheck":"Pwease confwirm dis is the addwess you see on ur","proposalFinalisationConfirming":"Confwirming...","proposalFinalisationRemaining":"left","proposalFinalisationExpired":"Pwoposal Expired","proposalFinalisationReady":"Ready tew submit","proposalPassing":"PASSING, YAY!","proposalFailing":"FAILING, NAY!","proposalTooYoung":"TOO YOUNG, BAKA!","proposalFunded":"FUNDED!","proposalNotFunded":"NO MONIES","proposalPaymentsRemaining":"payment(s) remainingz
of","proposalPaymentTotal":"totalz","proposalNetYes":"Net Yasss\'es","popupConfirm":"Confirm-u","popupClose":"Close-u","popupCancel":"Cancel-u","chartPublicAvailable":"Public Avaiwable","timeDays":"Dayz","timeHours":"Hourz","timeMinutes":"Minutez","timeSeconds":"Secondz","unhandledException":"Unhandled exception.","syncStatusHistoryProgress":"","syncStatusStarting":"","syncStatusFinished":"","accountDeleted":"","activityShieldedAddress":"","activityReceivedWith":"","ALERTS":{"INTERNAL_ERROR":"Internal error, pwease try again later","FAILED_TO_IMPORT":"Faiwed to impawt! Invawed password! Baka!","TESTNET_ENCRYPTION_DISABLED":"Testnet Mowode in ON!
Wawwet encwyption disabwed","PASSWORD_TOO_SMALL":"Dat password is a wittle short!
Pwease use at least {MIN_PASS_LENGTH} chawacters!","PASSWORD_DOESNT_MATCH":"Yowour passwords dun match!! baka!!","NEW_PASSWORD_SUCCESS":"Yowou\'re Secuwed!
Good Job, PIVX Pogchamp!","INCORRECT_PASSWORD":"Incowwect password!","INVALID_AMOUNT":"Invawed ameownt
","TX_SENT":"Twansaction sentu!","TX_FAILED":"Twansaction Failed!","QR_SCANNER_BAD_RECEIVER":"is not a valid payment receiver","UNSUPPORTED_CHARACTER":"The chawacter \'{char}\' is unsupurrted in addwesses! (Not Base58 compatible)","UNSUPPORTED_WEBWORKERS":"Dis bwowser doesn\'t suppurrt web workers","INVALID_ADDRESS":"Invawed PIVX addwess baka
{address} ","VALIDATE_AMOUNT_LOW":"
Minimum ameownt is {minimumAmount} {coinTicker}!","VALIDATE_AMOUNT_DECIMAL":" decimal wimit exceeded. Yowouve gone too fawr!","SUCCESS_STAKING_ADDR":"Staking Addwess set!
Now go ahead and unstake senpai❣","STAKE_ADDR_SET":"Cold Addwess set!
Future stakes will use dis addwess.","STAKE_ADDR_BAD":"Invawid Cold Staking addwess!","CONFIRM_UNSTAKE_H_WALLET":" Confirm yowour Unstake
Confirm da TX on yowour {strHardwareName}","CONFIRM_TRANSACTION_H_WALLET":"Confirm yowoure twansaction
Confirm da TX on yowour {strHardwareName}","SUCCESS_STAKING_ADDR_SET":"Staking Addwess set!~
Now go ahead and stake senpai❣","STAKE_NOT_SEND":"Here senpai❣ use da Stake scween, Not da send scween, baka!","BAD_ADDR_LENGTH":"Invawed PIVX addwess!
Bad wength ({addressLength})","BAD_ADDR_PREFIX":"Invawed PIVX addwess! Baka!
Bad pwefix {address} (Should start with {addressPrefix})","SENT_NOTHING":"You can\'t send nothing!! Baka!","MORE_THEN_8_DECIMALS":"8 decimal wimit exceeded. Too many nyumbers!!","SAVE_WALLET_PLEASE":"Save yowour wawwet!
Dashbowed ➜ Secure your wallet","BACKUP_OR_ENCRYPT_WALLET":"Pwease ENCWYPT and/or BACKUP yowour keys befowe weaving, or you may lose dem! Oh noes!","NO_CAMERAS":"Dis device has nwo camwera!","STAKING_LEDGER_NO_SUPPORT":"Ledger is not supported for Cold Staking","CONNECTION_FAILED":"Failed to synchronize! Please try again later.
You can attempt re-connect via the Settings.","MN_NOT_ENABLED":"Ur masternowode is nawt enabled yet!","VOTE_SUBMITTED":"Vowote submitted!","VOTED_ALREADY":"Yew already vowoted for dis pwoposal! Pwease wait 1 hour","VOTE_SIG_BAD":"Failed to vewify signature, pwease check ur masternowode\'s pwivate key","MN_CREATED_WAIT_CONFS":"Masternowode Created!
Wait 15 confwirmations to pwoceed further","MN_ACCESS_BEFORE_VOTE":"Access a masternowode befwore vowoting!","MN_OFFLINE_STARTING":"Ur masternowode is offline, we\'ll try to start it","MN_STARTED":"Masternowode started!","MN_RESTARTED":"Masternowode restarted!","MN_STARTED_ONLINE_SOON":"Masternowode started!
It\'ll be online soon","MN_START_FAILED":"Failed to start masternowode!","MN_RESTART_FAILED":"Failed to restart masternowode!","MN_DESTROYED":"Masternowode destrwoyed!
Ur coins are now spendable.","MN_STATUS_IS":"Ur masternowode status is","MN_STATE":"Ur masternowode is in {state} state","MN_BAD_IP":"The IP addwess is invalid!","MN_BAD_PRIVKEY":"","MN_NOT_ENOUGH_COLLAT":"Yew need {amount} more {ticker} to create a Masternowode!","MN_ENOUGH_BUT_NO_COLLAT":"Yew haz enough balance for a Masternowode, but nu valid collateral UTXO of {amount} {ticker}","MN_COLLAT_NOT_SUITABLE":"Dis is not a suitable UTXO for a Masternowode","MN_CANT_CONNECT":"Unable to connect to RPC nowode!","CONTACTS_ENCRYPT_FIRST":"Yew need tew hit \\"{button}\\" before yew can use Contacts!","CONTACTS_NAME_REQUIRED":"A name iz required!","CONTACTS_NAME_TOO_LONG":"That name iz teww long!","CONTACTS_CANNOT_ADD_YOURSELF":"Yew cannot add urself as a Contact!","CONTACTS_ALREADY_EXISTS":"Contact already exists!
Yew already saved dis contact","CONTACTS_NAME_ALREADY_EXISTS":"Contact name already exists!
Dis could potentially be a phishing attempt, beware!","CONTACTS_EDIT_NAME_ALREADY_EXISTS":"Contact already exists!
A contact iz already cawlled \\"{strNewName}\\"!","CONTACTS_KEY_ALREADY_EXISTS":"Contact already exists, buh under a different name!
Yew have {newName} saved as {oldName} in ur contacts","CONTACTS_NOT_A_CONTACT_QR":"Dis isn\'t a Contact QR, baka!","CONTACTS_ADDED":"New Contact added!
{strName} haz been added, hurray!","CONTACTS_YOU_HAVE_NONE":"Yew have no contacts! Lonely!","PROPOSAL_FINALISED":"Pwoposal finalized!","PROPOSAL_UNCONFIRMED":"Da pwoposal hasn\'t been confirmed yet.","PROPOSAL_EXPIRED":"Da pwoposal has expired. Cweate a new one.","PROPOSAL_FINALISE_FAIL":"Failed to finalize pwoposal.","PROPOSAL_IMPORT_FIRST":"Cweate or impwort ur wawwet to continue","PROPOSAL_NOT_ENOUGH_FUNDS":"Not enough funds to cweate a pwoposal.","PROPOSAL_INVALID_ERROR":"Pwoposal is invalid. Error:","PROPOSAL_CREATED":"Pwoposal cweated!
Wait 6 confwirmations to finalise.","PROMO_MIN":"Minimum ameownt is {min} {ticker}!","PROMO_MAX_QUANTITY":"Ur device can only cweate {quantity} cowodes at a time!","PROMO_NOT_ENOUGH":"Yew don\'t have enough {ticker} to cweate that code!","PROMO_ALREADY_CREATED":"You\'ve already created that code!","SWITCHED_EXPLORERS":"Switched expwower!
Nowo using {explorerName}✿","SWITCHED_NODE":"Switched nowode!✿
Nowo using {node}","SWITCHED_ANALYTICS":"Switched anawytics wevel!
Nowo {level}","SWITCHED_SYNC":"Switched sync mowode!✿
Nowo using {sync} sync","UNABLE_SWITCH_TESTNET":"Unable to switch Testnet Mowode!
A wawwet is alweady woaded✿","WALLET_OFFLINE_AUTOMATIC":"Offwine Mowode is active!
Pwease disabwe Offwine Mowode for automatic twansactions","WALLET_UNLOCK_IMPORT":"Pwease {unlock} your wawwet befowore sending twansactions!","WALLET_FIREFOX_UNSUPPORTED":"Oh noes!Firefox senpai doesn\'t suppurrt this!
Unfortunatewy, Firefox senpai does not suppurrt hawdware wawwets","WALLET_HARDWARE_WALLET":"Hawdware wawwet ready!
Pwease keep your {hardwareWallet} pwugged in, unwocked, and in da PIVX app ♥","WALLET_CONFIRM_L":"Confiwm da impowot on your Wedger","WALLET_NO_HARDWARE":"No device avaiwable ☹
Couldn\'t find a hawdware wawwet; pwease pwug it in and unwock!","WALLET_HARDWARE_CONNECTION_LOST":"Wost connection to da {hardwareWallet}
It seems da {hardwareWalletProductionName} was unpwugged mid-opewation, oops!!","WALLET_HARDWARE_UDEV":"Onii-chan noticed the OS denied access~ OwO Did you add the udev rules? UwU","WALLET_HARDWARE_NO_ACCESS":"Nyaa~ The OS denied access, nya~ Please purr-retty please check your Operating System settings, nya~ UwU","WALLET_HARDWARE_BUSY":"{hardwareWallet} is waiting!
Pwease unwock yowour {hardwareWalletProductionName} or finish it\'s cuwwent pwompt","WALLET_HARDWARE_ERROR":" {hardwareWallet}
{error}","CONFIRM_POPUP_VOTE":"Confiwm Vowote!","CONFIRM_POPUP_VOTE_HTML":"Are you suuure? It takes 60 minutes to change yowour vowote","CONFIRM_POPUP_TRANSACTION":"Confiwm yowour twansaction","CONFIRM_POPUP_MN_P_KEY":"Yowour Masternode Pwivate Key","CONFIRM_POPUP_MN_P_KEY_HTML":"
Save dis pwivate key and copy it to yowour VPS config
","CONFIRM_POPUP_VERIFY_ADDR":"Vewify yowour addwess","MIGRATION_MASTERNODE_FAILURE":"Failed to recover ur masternowode. Pwease reimport it.","MIGRATION_ACCOUNT_FAILURE":"Failed to recover ur account. Pwease reimport it.","APP_INSTALLED":"App Instawlled!","FAILED_TO_IMPORT_HARDWARE":"","CONFIRM_POPUP_DELETE_ACCOUNT":"","CONFIRM_POPUP_DELETE_ACCOUNT_TITLE":"","WALLET_NOT_SYNCED":""}}')}}]); \ No newline at end of file diff --git a/216.mpw.js b/216.mpw.js deleted file mode 100644 index 50754fbd5..000000000 --- a/216.mpw.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkMPW=self.webpackChunkMPW||[]).push([[216],{32216:(e,a,o)=>{o.r(a),o.d(a,{default:()=>r});const r={amount:"Quantidade",staking:"Staking",wallet:"Carteira",display:"Mostrar",activity:"Atividade",yes:"Sim",no:"Não",navDashboard:"Painel",navStake:"Stake",navMasternode:"Masternode",navGovernance:"Governança",navSettings:"Configurações",footerBuiltWithPivxLabs:"Construido com 💜 por PIVX Labs 🇧🇷",loading:"Carregando",loadingTitle:"A Minha Carteira PIVX",dashboardTitle:"Painel",dCardOneTitle:"Criar",dCardOneSubTitle:"Nova Carteira",dCardOneDesc:"Crie uma carteira nova PIVX, oferecendo os métodos de backup e segurança mais seguros.",dCardOneButton:"Crie uma Carteira Nova",dCardTwoTitle:"Criar Nova",dCardTwoSubTitle:"Carteira Vanity",dCardTwoDesc:"Criar uma carteira com um prefixo personalizado, isso pode levar bastante tempo!",dCardTwoButton:"Criar uma Carteira Vanity",dCardThreeTitle:"Acesse a sua",dCardThreeSubTitle:"Carteira de hardware",dCardThreeDesc:"Use a sua carteira de Hardware Ledger com a interface familiar do MPW.",dCardThreeButton:"Acessar a minha Ledger",dCardFourTitle:"Vá para",dCardFourSubTitle:"A minha Carteira",dCardFourDesc:"Importar uma carteira PIVX usando uma chave privada, xpriv ou Seed Phrase.",dCardFourButtonI:"Importar Carteira",dCardFourButtonA:"Acessar a Minha Carteira",vanityPrefixNote:"Anotação: Endereços sempre começaram com:",vanityPrefixInput:"Prefixo de endereço",thisIsYourSeed:"Esta é a sua Seed Phrase:",writeDownSeed:"Escreva em algum lugar. Você só ira ver isso uma vez!",doNotShareWarning:"Qualquer pessoa com uma cópia pode acessar todos os seus fundos",doNotShare:"NÃO a compartilhe com ninguém.",digitalStoreNotAdvised:"NÃO é aconselhável armazená-la digitalmente.",optionalPassphrase:"Frasse-Passe Opcional (BIP39)",writtenDown:"Eu escrevi a minha Seed Phrase",importSeedValid:"Seed Phrase é válida!",importSeedError:"Seed Phrase é inválida!",importSeedErrorSize:"A Seed Phrase deve ter 12 ou 24 palavras!",importSeedErrorTypo:"Seed Phrase contem erros de digitação! Verifique a cuidadosamente",importSeedErrorSkip:"Seed Phrase registra como inválida, mas o aviso foi pulado pelo usuário",gettingStarted:"Começar",secureYourWallet:"Proteja a sua carteira",unlockWallet:"Desbloquear a carteira",lockWallet:"Bloquear a carteira",encryptWallet:"Criptografar carteira",encryptPasswordCurrent:"Senha Atual",encryptPasswordFirst:"Digite a senha",encryptPasswordSecond:"Digite a senha novamente",encrypt:"Criptografar",changePassword:"Mudar Senha",balanceBreakdown:"Composição do Saldo",viewOnExplorer:"Ver no Explorador ",export:"Exportar",refreshAddress:"Atualizar endereço",redeemOrCreateCode:"Resgatar ou Criar Código",address:"Endereço",receivingAddress:"Endereço de recepção",sendAmountCoinsMax:"Máximo",paymentRequestMessage:"Descrição (do comerciante)",send:"Enviar",receive:"Receber",contacts:"Contatos",name:"Nome",username:"Nome de usuário",addressOrXPub:"Endereço ou XPub",back:"Voltar",chooseAContact:"Escolher um contato",createContact:"Criar Contato",encryptFirstForContacts:'Quando você pressionar "{button}" no dashboard você poderá criar um contato para receber PIV mais facilmente! ',shareContactURL:"Compartilhar URL do contato",setupYourContact:"Configurar o seu contato",receiveWithContact:"Receber utilizando um contato baseado em nome de usuário simples",onlyShareContactPrivately:"Somente compartilhe o seu contato com pessoas confiáveis (família e amigos)",changeTo:"Mudar para",contact:"Contato",xpub:"XPub",addContactTitle:"Adicionar {strName} aos contatos ",addContactSubtext:"Quando adicionado você será capaz de efetuar transações com {strName} pelo nome deles (digitando ou clicando), sem necessidade de endereços, simples e fácil",addContactWarning:'Garanta que este seja o verdadeiro "{strName}", não aceite pedidos de contatos de fontes desconhecidas!',editContactTitle:'Mudar o contato de "{strName}"',newName:"Novo nome",removeContactTitle:"Remover {strName}?",removeContactSubtext:"Você tem certeza que deseja remover {strName} dos seus contatos?",removeContactNote:"Você pode adiciona-los de volta a qualquer momento",privateKey:"Chave privada",viewPrivateKey:"Mostrar a chave privada?",privateWarning1:"Certifique-se de que ninguém veja a sua tela.",privateWarning2:"Qualquer pessoa com esta chave pode roubar os seus fundos",viewKey:"Ver a chave",pivxPromos:"é um sistema descentralizado de códigos de presente com valor em PIV",redeemInput:"Digite o seu código 'PIVX Promos'",createName:"Nome da promoção (opcional)",createAmount:"Valor promocional",stake:"Stake",stakeUnstake:"Unstake",ownerAddress:"(Opcional) Endereço do dono",rewardHistory:"Histórico de recompensas",loadMore:"Carregar mais",mnControlYour:"Controle o seu",mnSubtext:"A partir deste guia, você pode criar e acessar um ou mais masternodes",govSubtext:"Nesta aba você pode conferir as propostas e, se tiver um masternode, fazer parte do DAO e votar!",govMonthlyBudget:"Orçamento mensal",govAllocBudget:"Orçamento Alocado",govNextPayout:"Próximo Pagamento da Tesouraria",govTableStatus:"ESTADO",govTableName:"NOME",govTablePayment:"PAGAMENTO",govTableVotes:"VOTOS",govTableVote:"VOTO",contestedProposalsTitle:"Propostas Contestadas",contestedProposalsDesc:"Estas são as propostas que receberam uma quantidade massiva de votos negativos, sendo provavelmente spam ou uma proposta altamente contestável.",settingsCurrency:"Escolha uma moeda de exibição:",priceProvidedBy:"Dados de preço fornecidos por",settingsDecimals:"Decimais do saldo:",settingsExplorer:"Escolha um explorador:",settingsLanguage:"Escolha um Idioma:",settingsPivxNode:"Escolha um node PIVX:",settingsAutoSelectNet:"Seleção automática de Exploradores e Nodes",settingsAnalytics:"Escolha o seu nível de contribuição analítica:",settingsToggleDebug:"Modo de depuração",settingsToggleTestnet:"Modo Testnet",settingsToggleAdvancedMode:"Modo avançado",settingsToggleAdvancedModeSubtext:"Isto desbloqueia mais funcionalidades e customização, mas pode ser complicado e possivelmente perigoso para novos usuários!",netSwitchUnsavedWarningTitle:"Sua carteira de {network} não foi salva!",netSwitchUnsavedWarningSubtitle:"Sua conta de {network} está em risco!",netSwitchUnsavedWarningSubtext:"Se você mudar para {network} antes de salvar você perderá a a conta!",netSwitchUnsavedWarningConfirmation:"Você tem certeza?",transparencyReport:'"Relatório de Transparência"',hit:'"Um ping para indicar o carregamento de uma aplicação, nenhum dado exclusivo é enviado."',time_to_sync:'"O tempo em segundos que o MPW levou para sincronizar pela última vez."',transaction:'"Um ping indicando uma Tx, nenhum dado exclusivo é enviado, mas pode ser inferido a partir do tempo na rede."',analyticDisabled:"Desativado",analyticMinimal:"Mínimo",analyticBalanced:"Saldo",MIGRATION_ACCOUNT_FAILURE_TITLE:"Falha ao recuperar conta",MIGRATION_ACCOUNT_FAILURE_HTML:"Ocorreu um erro ao recuperar a sua conta.
Por favor reimporte sua carteira usando a seguinte chave:",ID:"ID",time:"Tempo",description:"Descrição",activityBlockReward:"Bloco Recompensa",activitySentTo:"Enviado para {r}",activitySelf:"si mesmo",activityShieldedAddress:"Endereço Protegido",activityReceivedFrom:"Recebido de {s}",activityDelegatedTo:"Delegado a {r}",activityUndelegated:"Não é Delegado",activityUnknown:"Tx desconhecido",password:"Senha",walletUnlock:"Desbloquear a sua carteira",walletPassword:"Senha da Carteira",walletUnlockCreateMN:"Desbloquear para criar o seu Masternode!",walletUnlockMNStart:"Desbloquear para iniciar o seu Masternode",walletUnlockProposal:"Desbloquear para criar uma proposta",walletUnlockPromo:"Desbloquear para finalizar o seu código promocional",walletUnlockTx:"Desbloquear para enviar a sua transação",walletUnlockStake:"Desbloquear para realizar Stake",walletUnlockUnstake:"Desbloquear para realizar Unstake",changelogTitle:"O que há de Novo em",popupSetColdAddr:"Defina o seu endereço de Cold Staking",popupCurrentAddress:"Endereço atual",popupColdStakeNote:"Um Endereço de Cold Staking faz staking de moedas em seu nome, não pode gastar moedas, então é seguro até usar o Cold Address de um estranho!",popupExample:"Exemplo:",popupWalletLock:"Você quer bloquear a sua carteira",popupWalletWipe:"Deseja limpar os dados privados da sua carteira",popupWalletLockNote:"Você precisará digitar sua senha para acessar seus fundos",popupWalletWipeNote:"Você perderá o acesso aos seus fundos se não tiver feito o backup de sua chave privada ou Seed Phrase",popupSeedPhraseBad:"Seed Phrase Inesperada",popupSeedPhraseBadNote:"A Seed Phrase é inválida ou não foi gerada pelo MPW.
Você ainda quer continuar",popupCreateProposal:"Criar Proposta",popupCreateProposalCost:"Custo",popupProposalName:"Título da Proposta",popupProposalAddress:"Endereço da proposta (Opcional)",popupProposalDuration:"Duração em ciclos",popupProposalPerCycle:"por ciclo",popupProposalEncryptFirst:'Você precisa pressionar "{button}" antes que possa criar propostas! ',popupProposalVoteHash:"Votação de Hash:",popupProposalFinalisedNote:"Parabéns pelo lançamento da sua proposta!
Os proprietários do Masternode podem usar a sua votação de hash em outras carteiras que não sejam MPW, então certifique-se de adicionar isso à sua publicação no fórum, se aplicável!",popupProposalFinalisedSignoff:"Boa sorte na sua jornada pelo DAO, PIVian!",popupHardwareAddrCheck:"Confirme se este é o seu endereço que você vê",proposalFinalisationConfirming:"A Confirmar",proposalFinalisationRemaining:"restante",proposalFinalisationExpired:"Proposta Expirada",proposalFinalisationReady:"Pronto para enviar",proposalPassing:"PASSAGEM",proposalFailing:"FALHA",proposalTooYoung:"MUITO NOVA",proposalFunded:"FINANCIADO/A",proposalNotFunded:"NÃO FINANCIADO/A",proposalPaymentsRemaining:"parcela(s) restante(s)
de",proposalPaymentTotal:"Total",proposalNetYes:"Votos Sim",popupConfirm:"Confirme",popupClose:"Fechar",popupCancel:"Cancelar",chartPublicAvailable:"Público disponível",timeDays:"Dias",timeHours:"Horas",timeMinutes:"Minutos",timeSeconds:"Segundos",unhandledException:"Exceção não tratada",ALERTS:"<-- DO NOT EDIT THIS LINE! All below entries are for Alert Popups",INTERNAL_ERROR:"Erro interno, por favor tente novamente mais tarde",FAILED_TO_IMPORT:"Falha ao importar! Senha inválida",UNSUPPORTED_CHARACTER:"O caracter {char} não é suportado em endereços! (Não é compatível com Base58)",UNSUPPORTED_WEBWORKERS:"Este navegador não suporta Web Workers (JS multi-threaded), infelizmente você não pode gerar carteiras Vanity!",INVALID_ADDRESS:"Endereço PIVX inválido!
{address}",TESTNET_ENCRYPTION_DISABLED:"Modo Testnet ativado!
Encriptação da carteira desativada",PASSWORD_TOO_SMALL:"Esta senha é um pouco curta!
Use pelo menos {MIN_PASS_LENGTH} caracteres.",PASSWORD_DOESNT_MATCH:"As suas senhas não correspondem!",NEW_PASSWORD_SUCCESS:"Você está protegido! 🔐
Muito bem, PIVian blindado!",INCORRECT_PASSWORD:"Senha incorreta!",INVALID_AMOUNT:"Valor inválido!
",TX_SENT:"Transação enviada!",TX_FAILED:"Falha na transação!",QR_SCANNER_BAD_RECEIVER:"não é um receptor de pagamento válido",VALIDATE_AMOUNT_LOW:"
O valor mínimo é {minimumAmount} {coinTicker}!",VALIDATE_AMOUNT_DECIMAL:"{coinDecimal} limite decimal excedido",SUCCESS_STAKING_ADDR:"Endereço de Staking definido!
Prossiga com o unstake!",CONFIRM_UNSTAKE_H_WALLET:"Confirme o seu Unstake
Confirme a TX no seu {strHardwareName}",CONFIRM_TRANSACTION_H_WALLET:"Confirme a sua transação
Confirme a TX no seu {strHardwareName}",SUCCESS_STAKING_ADDR_SET:"Endereço de Staking definido!
>Prossiga com o stake",STAKE_ADDR_SET:"Endereço de Cold Staking definido!
Ao fazer Stake no futuro este endereço irá ser usado.",STAKE_ADDR_BAD:"Endereço de Cold Staking inválido!",STAKE_NOT_SEND:"Aqui, use a tela de Stake, não a tela de Envio!",BAD_ADDR_LENGTH:"Endereço PIVX inválido!
Comprimento incorreto ({addressLength})",BAD_ADDR_PREFIX:"Endereço PIVX inválido!
Prefixo inválido {address} (Deve começar com {addressPrefix})",SENT_NOTHING:"Você não pode enviar 'nada'!",MORE_THEN_8_DECIMALS:"limite de 8 decimais excedido",SAVE_WALLET_PLEASE:"Salve a sua carteira!
Painel ➜ Proteja a sua carteira",BACKUP_OR_ENCRYPT_WALLET:"Criptografe e/ou faça backup das suas chaves antes de sair, ou você pode perdê-las!",NO_CAMERAS:"Este dispositivo não tem câmera!",STAKING_LEDGER_NO_SUPPORT:"A Ledger não é compatível com Cold Staking",CONNECTION_FAILED:"Falha ao sincronizar! Tente novamente mais tarde.
Pode tentar reconectar através das Configurações.",MN_NOT_ENABLED:"O seu masternode ainda não está ativado!",VOTE_SUBMITTED:"Voto enviado!",VOTED_ALREADY:"Você já votou nesta proposta! Aguarde 1 hora",VOTE_SIG_BAD:"Falha ao verificar a assinatura, verifique a chave privada do seu masternode",MN_CREATED_WAIT_CONFS:"Masternode criado!
Aguarde 15 confirmações para prosseguir",MN_ACCESS_BEFORE_VOTE:"Acesse um masternode antes de votar!",MN_OFFLINE_STARTING:"O seu masternode está offline, vamos tentar iniciá-lo",MN_STARTED:"Masternode iniciado!",MN_RESTARTED:"Masternode reiniciado!",MN_STARTED_ONLINE_SOON:"Masternode iniciado!
Em breve estará online",MN_START_FAILED:"Masternode iniciado!",MN_RESTART_FAILED:"Masternode reiniciado!",MN_DESTROYED:"Masternode destruído!
Já pode gastar suas moedas.",MN_STATUS_IS:"O status do seu masternode é",MN_STATE:"O status do seu masternode é {state}",MN_BAD_IP:"O endereço IP é inválido!",MN_NOT_ENOUGH_COLLAT:"Você precisa de {amount} mais {ticker} para criar um Masternode!",MN_ENOUGH_BUT_NO_COLLAT:"Você tem saldo suficiente para um Masternode, mas nenhum UTXO válido como garantia de {amount} {ticker}",MN_COLLAT_NOT_SUITABLE:"Este não é um UTXO adequado para um Masternode",MN_CANT_CONNECT:"Não é possível conectar ao nó RPC!",CONTACTS_ENCRYPT_FIRST:'Você precisa pressionar "{button}" antes que possa utilizar os contatos!',CONTACTS_NAME_REQUIRED:"Um nome é necessário!",CONTACTS_NAME_TOO_LONG:"Esse nome é muito comprido!",CONTACTS_CANNOT_ADD_YOURSELF:"Você não pode adicionar a si mesmo como contato",CONTACTS_ALREADY_EXISTS:"O contato já existe!
você já salvou este contato",CONTACTS_NAME_ALREADY_EXISTS:"O nome do contato já existe!
Isso pode ser uma tentativa de phising, tome cuidado!",CONTACTS_EDIT_NAME_ALREADY_EXISTS:'O contato já existe!
Um contato já é chamado "{strNewName}"!',CONTACTS_KEY_ALREADY_EXISTS:"O contato já exite porém com um nome differente!
Você tem {newName} salvo como {oldName} nos seus contatos",CONTACTS_NOT_A_CONTACT_QR:"Isto não é um código QR de contato!",CONTACTS_ADDED:"Novo contato adicionado!
{strName} foi adicionado, Viva!",CONTACTS_YOU_HAVE_NONE:"Você não tem contatos!",PROPOSAL_FINALISED:"Proposta finalizada!",PROPOSAL_UNCONFIRMED:"A proposta ainda não foi confirmada.",PROPOSAL_EXPIRED:"A proposta expirou. Crie uma nova.",PROPOSAL_FINALISE_FAIL:"Falha ao finalizar a proposta.",PROPOSAL_IMPORT_FIRST:"Crie ou importe a sua carteira para continuar",PROPOSAL_NOT_ENOUGH_FUNDS:"Não há fundos suficientes para criar uma proposta.",PROPOSAL_INVALID_ERROR:"A proposta é inválida. Erro:",PROPOSAL_CREATED:"Proposta criada!
Aguarde 6 confirmações para finalizar.",PROMO_MIN:"O valor mínimo é {min} {ticker}!",PROMO_MAX_QUANTITY:"O seu dispositivo só pode criar {quantity} códigos de cada vez!",PROMO_NOT_ENOUGH:"Você não tem {ticker} suficiente para criar esse código!",PROMO_ALREADY_CREATED:"Você já criou esse código!",SWITCHED_EXPLORERS:"Explorador trocado!
Agora será utilizado o {explorerName}",SWITCHED_NODE:"Nó trocado!
Agora será utilizado o {node}",SWITCHED_ANALYTICS:"Nível de análise alterado!
Agora é {level}",SWITCHED_SYNC:"Modo de sincronização alternado!
Agora sera utilizada a sincronização {sync}",UNABLE_SWITCH_TESTNET:"Não é possível alternar o modo Testnet!
Uma carteira está aberta.",WALLET_OFFLINE_AUTOMATIC:"O modo offline está ativo!
Por favor desabilite o Modo Offline para transações automáticas",WALLET_UNLOCK_IMPORT:"Por favor, {unlock} a sua carteira antes de enviar transações!",WALLET_FIREFOX_UNSUPPORTED:"O Firefox não tem suporte para isto!
Infelizmente, o Firefox não suporta carteiras de hardware",WALLET_HARDWARE_WALLET:"Carteira de hardware pronta!
Mantenha a sua {hardwareWallet} conectada, desbloqueada e na aplicação PIVX",WALLET_CONFIRM_L:"Confirme a importação na sua Ledger",WALLET_NO_HARDWARE:"Nenhum dispositivo disponível
Não foi possível encontrar uma carteira de hardware; conecte-a e desbloqueie-a!",WALLET_HARDWARE_UDEV:" O Sistema operacional recusou o acesso Você adicionou as regras de udev?",WALLET_HARDWARE_NO_ACCESS:" O Sistema operacional recusou o acesso Por favor cheque as configurações do seu sistema operacional",WALLET_HARDWARE_CONNECTION_LOST:"Conexão perdida com a {hardwareWallet}
Oops! Parece que a {hardwareWalletProductionName} foi desconectada no meio da operação.",WALLET_HARDWARE_BUSY:"{hardwareWallet} está em modo de espera
Por favor desbloqueie a sua {hardwareWalletProductionName} ou conclua o prompt atual",WALLET_HARDWARE_ERROR:" {hardwareWallet}
{error}",CONFIRM_POPUP_VOTE:"Confirmar Voto",CONFIRM_POPUP_VOTE_HTML:"Tem certeza? Demora 60 minutos para mudar o voto",CONFIRM_POPUP_TRANSACTION:"Confirme a sua transação",CONFIRM_POPUP_MN_P_KEY:"A chave privada do seu Masternode",CONFIRM_POPUP_MN_P_KEY_HTML:"
Guarde esta chave privada e copie-a para a sua configuração no VPS
",CONFIRM_POPUP_VERIFY_ADDR:"Verifique o seu endereço",MIGRATION_MASTERNODE_FAILURE:"Falha ao recuperar o seu masternode. Por favor, reimporte-o.",MIGRATION_ACCOUNT_FAILURE:"Falha ao recuperar a sua conta. Por favor, reimporte-a.",APP_INSTALLED:"Aplicação instalada!"}}}]); -//# sourceMappingURL=216.mpw.js.map \ No newline at end of file diff --git a/216.mpw.js.map b/216.mpw.js.map deleted file mode 100644 index b9e8963b9..000000000 --- a/216.mpw.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"./216.mpw.js","mappings":"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AAuB,YACvBC,0BACI,uEACJC,sBAAuB,mBACvBC,2BACI,4OACJC,8BAA+B,6CAC/BC,uBAAwB,gDACxBC,+BAAgC,cAChCC,8BAA+B,WAC/BC,4BAA6B,oBAC7BC,0BAA2B,qBAC3BC,gBAAiB,WACjBC,gBAAiB,QACjBC,iBAAkB,aAClBC,eAAgB,eAChBC,kBAAmB,mBACnBC,0BAA2B,+BAC3BC,qBAAsB,QACtBC,eAAgB,YAChBC,aAAc,WACdC,WAAY,SACZC,YAAa,WACbC,qBAAsB,qBACtBC,SAAU,OACVC,UAAW,QACXC,YAAa,UACbC,YAAa,WACbC,mBAAoB,sBAGpBC,OAAQ,oEAERC,eAAgB,qDAChBC,iBAAkB,2CAClBC,sBACI,gFACJC,uBACI,iHACJC,gBAAiB,+CACjBC,4BACI,qEACJC,mBACI,sFACJC,sBAAuB,mCACvBC,qBACI,gEACJC,mBAAoB,mBACpBC,eAAgB,6BAChBC,QAAS,qBACTC,UAAW,sBACXC,wBAAyB,wCACzBC,oBAAqB,qDACrBC,wBAAyB,wCACzBC,qBACI,kEACJC,yBACI,0EACJC,6BACI,4EACJC,yBACI,gEACJC,eACI,qGACJC,eAAgB,qCAChBC,eAAgB,yDAChBC,gBACI,2EACJC,gBACI,iGACJC,aAAc,+BACdC,qBAAsB,gCACtBC,mBACI,kEACJC,yBACI,sFACJC,WAAY,mCACZC,0BAA2B,6CAC3BC,kBACI,gHACJC,eAAgB,2CAChBC,eAAgB,gBAChBC,cAAe,+CACfC,aACI,+EACJC,sBACI,sEACJC,sBAAuB,uCACvBC,oBACI,wDACJC,WAAY,8BACZC,aAAc,gCACdC,uBACI,wDACJC,gBAAiB,8BACjBC,kBAAmB,gCACnBC,aAAc,8DACdC,aAAc,+BACdC,SAAU,8CACVC,UAAW,4BACXC,qBACI,0EACJC,wBACI,0GACJC,uBAAwB,iDACxBC,gBAAiB,qCAGjBC,uBACI,2EACJC,uBAAwB,wBACxBC,uBAAwB,8BACxBC,6BACI,kDACJC,wBACI,8DACJC,6BACI,gGACJC,kCACI,0EACJC,4BACI,+HACJC,0BAA2B,sCAC3BC,eACI,qEACJC,uBAAwB,yBAExBC,mBAAoB,uBACpBC,qBAAsB,uCACtBC,iBAAkB,qCAClBC,uBAAwB,iCACxBC,sBAAuB,gDACvBC,0BACI,qDACJC,uBAAwB,+BACxBC,iBACI,oEAEJC,UAAW,mCACXC,mBACI,kEACJC,iBACI,2DACJC,sBAAuB,6BAEvBC,mBACI,sEACJC,cAAe,sDACfC,mBAAoB,uDACpBC,cACI,yFACJC,sBACI,8EAEJC,yBACI,uGACJC,qBACI,iEACJC,2BACI,2GACJC,uBACI,qHACJC,iBAAkB,sCAClBC,mBACI,0HACJC,qBACI,oFACJC,0BACI,+GACJC,gCACI,4IACJC,qBACI,yIACJC,sBAAuB,wCAEvBC,mBAAoB,iBACpBC,wBAAyB,mDACzBC,0BAA2B,2BAC3BC,uBAAwB,oCACxBC,4BACI,+EACJC,0BAA2B,2BAE3BC,6BACI,+DACJC,0BACI,0DACJC,cAAe,uB","sources":["webpack://MPW/./locale/pt-br/translation.js"],"sourcesContent":["export default {\n // As tags básicas HTML são permitidas como etc. Todos os dados são higienizados https://developer.mozilla.org/pt-BR/docs/Web/API/Element/innerHTML\n\n // NOTA: Se uma seção NÃO precisar ser traduzida, deixe-a vazia.\n // NOTE: Variables that MPW insert are denoted by brackets {}, for example, {button}, do NOT translate variables, but place them where it makes the most sense.\n\n // General words\n amount: 'Quantidade', //Amount\n staking: 'Staking', //Staking\n wallet: 'Carteira', //Wallet\n display: 'Mostrar', //Display\n activity: 'Atividade', //Activity\n yes: 'Sim', //Yes\n no: 'Não', //No\n\n // Nav Bar\n navDashboard: 'Painel', //Dashboard\n navStake: 'Stake', //Stake\n navMasternode: 'Masternode', //Masternode\n navGovernance: 'Governança', //Governance\n navSettings: 'Configurações', //Settings\n\n // Footer\n footerBuiltWithPivxLabs: 'Construido com 💜 por PIVX Labs 🇧🇷', //Built with 💜 by PIVX Labs\n\n // Intro\n loading: 'Carregando', //Loading\n loadingTitle: 'A Minha Carteira PIVX', //My PIVX Wallet is\n\n // Onboarding Dashboard\n dashboardTitle: 'Painel', //Dashboard\n dCardOneTitle: 'Criar', //Create a\n dCardOneSubTitle: 'Nova Carteira', //New Wallet\n dCardOneDesc:\n 'Crie uma carteira nova PIVX, oferecendo os métodos de backup e segurança mais seguros.', //Create a new PIVX wallet, offering the most secure backup & security methods.\n dCardOneButton: 'Crie uma Carteira Nova', //Create A New Wallet\n\n dCardTwoTitle: 'Criar Nova', //Create a new\n dCardTwoSubTitle: 'Carteira Vanity', //Vanity Wallet\n dCardTwoDesc:\n 'Criar uma carteira com um prefixo personalizado, isso pode levar bastante tempo!', //Create a wallet with a custom prefix, this can take a long time!\n dCardTwoButton: 'Criar uma Carteira Vanity', //Create A Vanity Wallet\n\n dCardThreeTitle: 'Acesse a sua', //Access your\n dCardThreeSubTitle: 'Carteira de hardware', //Hardware Wallet\n dCardThreeDesc:\n 'Use a sua carteira de Hardware Ledger com a interface familiar do MPW.', //Use your Ledger Hardware wallet with MPW's familiar interface.\n dCardThreeButton: 'Acessar a minha Ledger', //Access my Ledger\n\n dCardFourTitle: 'Vá para', //Go to\n dCardFourSubTitle: 'A minha Carteira', //My Wallet\n dCardFourDesc:\n 'Importar uma carteira PIVX usando uma chave privada, xpriv ou Seed Phrase.', //Import a PIVX wallet using a Private Key, xpriv, or Seed Phrase.\n dCardFourButtonI: 'Importar Carteira', //Import Wallet\n dCardFourButtonA: 'Acessar a Minha Carteira', //Access My Wallet\n\n // Vanity Creation\n vanityPrefixNote: 'Anotação: Endereços sempre começaram com:', //Note: addresses will always start with:\n vanityPrefixInput: 'Prefixo de endereço', //Address Prefix\n\n // Seed Phrase Creation\n thisIsYourSeed: 'Esta é a sua Seed Phrase:', //This is your seed phrase:\n writeDownSeed:\n 'Escreva em algum lugar. Você só ira ver isso uma vez!', //Write it down somewhere. You'll only see this once!\n doNotShareWarning:\n 'Qualquer pessoa com uma cópia pode acessar todos os seus fundos', //Anyone with a copy of it can access all of your funds.\n doNotShare: 'NÃO a compartilhe com ninguém.', //Do NOT share it with anybody.\n digitalStoreNotAdvised:\n 'NÃO é aconselhável armazená-la digitalmente.', //It is NOT advised to store this digitally.\n optionalPassphrase: 'Frasse-Passe Opcional (BIP39)', //Optional Passphrase\n writtenDown: 'Eu escrevi a minha Seed Phrase', //I have written down my seed phrase\n\n // Seed Phrase Import\n importSeedValid: 'Seed Phrase é válida!', //Seed Phrase is valid!\n importSeedError: 'Seed Phrase é inválida!', //Seed Phrase is invalid!\n importSeedErrorSize: 'A Seed Phrase deve ter 12 ou 24 palavras!', //A Seed Phrase should be 12 or 24 words long!\n importSeedErrorTypo:\n 'Seed Phrase contem erros de digitação! Verifique a cuidadosamente', //Seed Phrase contains typing errors! Check your input carefully\n importSeedErrorSkip:\n 'Seed Phrase registra como inválida, mas o aviso foi pulado pelo usuário', //Seed Phrase appears invalid, but the warning was skipped by the user\n\n // Wallet Dashboard\n gettingStarted: 'Começar', //Getting Started\n secureYourWallet: 'Proteja a sua carteira', //Secure your wallet\n unlockWallet: 'Desbloquear a carteira', //Unlock wallet\n lockWallet: 'Bloquear a carteira', //Lock wallet\n\n // Encrypt wallet\n encryptWallet: 'Criptografar carteira', //Encrypt wallet\n encryptPasswordCurrent: 'Senha Atual', //Current Password\n encryptPasswordFirst: 'Digite a senha', //Enter Password\n encryptPasswordSecond: 'Digite a senha novamente', //Re-enter Password\n encrypt: 'Criptografar', //Encrypt\n changePassword: 'Mudar Senha', //Change Password\n\n // Wallet Dashboard Sub-menu\n balanceBreakdown: 'Composição do Saldo', //Balance Breakdown\n viewOnExplorer: 'Ver no Explorador ', //View on Explorer\n export: 'Exportar', //Export\n refreshAddress: 'Atualizar endereço', //Refresh address\n redeemOrCreateCode: 'Resgatar ou Criar Código', //Redeem or Create Code\n\n // Send\n address: 'Endereço', //Address\n receivingAddress: 'Endereço de recepção', //Receiving address\n sendAmountCoinsMax: 'Máximo', //MAX\n paymentRequestMessage: 'Descrição (do comerciante)', //Description (from the merchant)\n send: 'Enviar', //Send\n\n // Contacts System\n receive: 'Receber', //Receive\n contacts: 'Contatos', //Contacts\n name: 'Nome', //Name\n username: 'Nome de usuário', //Username\n addressOrXPub: 'Endereço ou XPub', //Address or XPub\n back: 'Voltar', //Back\n chooseAContact: 'Escolher um contato', //Choose a Contact\n createContact: 'Criar Contato', //Create Contact\n encryptFirstForContacts:\n 'Quando você pressionar \"{button}\" no dashboard você poderá criar um contato para receber PIV mais facilmente! ', //Once you hit \"{button}\" in the Dashboard, you can create a Contact to make receiving PIV easier!\n shareContactURL: 'Compartilhar URL do contato', //Share Contact URL\n setupYourContact: 'Configurar o seu contato', //Setup your Contact\n receiveWithContact:\n 'Receber utilizando um contato baseado em nome de usuário simples', //Receive using a simple username-based Contact\n onlyShareContactPrivately:\n 'Somente compartilhe o seu contato com pessoas confiáveis (família e amigos)', //Only share your Contact with trusted people (family, friends)\n\n /* Context: The \"Change to\" is used in-app with one of the Three options below it, i.e: \"Change to Contact\" */\n changeTo: 'Mudar para', //Change to\n contact: 'Contato', //Contact\n xpub: 'XPub', //XPub\n\n addContactTitle: 'Adicionar {strName} aos contatos ', //Add {strName} to Contacts\n addContactSubtext:\n 'Quando adicionado você será capaz de efetuar transações com {strName} pelo nome deles (digitando ou clicando), sem necessidade de endereços, simples e fácil', //Once added you\\'ll be able to send transactions to {strName} by their name (either typing, or clicking), no more addresses, nice \\'n easy.\n addContactWarning:\n 'Garanta que este seja o verdadeiro \"{strName}\", não aceite pedidos de contatos de fontes desconhecidas!', //Ensure that this is the real \"{strName}\", do not accept Contact requests from unknown sources!\n\n editContactTitle: 'Mudar o contato de \"{strName}\"', //Change \"{strName}\" Contact\n newName: 'Novo nome', //New Name\n\n removeContactTitle: 'Remover {strName}?', //Remove {strName}?\n removeContactSubtext:\n 'Você tem certeza que deseja remover {strName} dos seus contatos?', //Are you sure you wish to remove {strName} from your Contacts?\n removeContactNote: 'Você pode adiciona-los de volta a qualquer momento', //You can add them again any time in the future.\n\n // Export\n privateKey: 'Chave privada', //Private Key\n viewPrivateKey: 'Mostrar a chave privada?', //View Private Key?\n privateWarning1: 'Certifique-se de que ninguém veja a sua tela.', //Make sure no one can see your screen.\n privateWarning2:\n 'Qualquer pessoa com esta chave pode roubar os seus fundos', //Anyone with this key can steal your funds.\n viewKey: 'Ver a chave', //View key\n\n // PIVX Promos\n // NOTE: for this below line, continue the sentence \"PIVX Promos [...]\", since 'PIVX Promos' is a brand, it is not translated.\n pivxPromos:\n 'é um sistema descentralizado de códigos de presente com valor em PIV', // [...] is a decentralised system for gift codes worth PIV\n // NOTE: on this line, if possible, leave 'PIVX Promos' untranslated\n redeemInput: \"Digite o seu código 'PIVX Promos'\", //Enter your 'PIVX Promos' code\n createName: 'Nome da promoção (opcional)', //Promo Name (Optional)\n createAmount: 'Valor promocional', //Promo Amount\n\n // Stake\n stake: 'Stake', //Stake\n stakeUnstake: 'Unstake', //Unstake\n ownerAddress: '(Opcional) Endereço do dono', //(Optional) Owner Address\n rewardHistory: 'Histórico de recompensas', //Reward History\n loadMore: 'Carregar mais', //Load more\n\n // Masternode\n mnControlYour: 'Controle o seu', //Control your\n mnSubtext:\n 'A partir deste guia, você pode criar e acessar um ou mais masternodes', //From this tab you can create and access one or more masternodes\n\n // Governance\n govSubtext:\n 'Nesta aba você pode conferir as propostas e, se tiver um masternode, fazer parte do DAO e votar!', //From this tab you can check the proposals and, if you have a masternode, be a part of the DAO and vote!\n govMonthlyBudget: 'Orçamento mensal', //Monthly Budget\n govAllocBudget: 'Orçamento Alocado', //Allocated Budget\n govNextPayout: 'Próximo Pagamento da Tesouraria', //Next Treasury Payout\n govTableStatus: 'ESTADO', //STATUS\n govTableName: 'NOME', //NAME\n govTablePayment: 'PAGAMENTO', //PAYMENT\n govTableVotes: 'VOTOS', //VOTES\n govTableVote: 'VOTO', //VOTE\n contestedProposalsTitle: 'Propostas Contestadas', //Contested Proposals\n contestedProposalsDesc:\n 'Estas são as propostas que receberam uma quantidade massiva de votos negativos, sendo provavelmente spam ou uma proposta altamente contestável.', //These are proposals that received an overwhelming amount of downvotes, making it likely spam or a highly contestable proposal.\n\n // Settings\n settingsCurrency: 'Escolha uma moeda de exibição:', //Choose a display currency:\n priceProvidedBy: 'Dados de preço fornecidos por', //Price data provided by\n settingsDecimals: 'Decimais do saldo:', //Balance Decimals:\n settingsExplorer: 'Escolha um explorador:', //Choose an explorer:\n settingsLanguage: 'Escolha um Idioma:', //Choose a Language:\n settingsPivxNode: 'Escolha um node PIVX:', //Choose a PIVX node:\n settingsAutoSelectNet: 'Seleção automática de Exploradores e Nodes', //Auto-select Explorers and Nodes\n settingsAnalytics: 'Escolha o seu nível de contribuição analítica:', //Choose your analytics contribution level:\n settingsToggleDebug: 'Modo de depuração', //Debug Mode\n settingsToggleTestnet: 'Modo Testnet', //Testnet Mode\n settingsToggleAdvancedMode: 'Modo avançado', //Advanced Mode\n settingsToggleAdvancedModeSubtext:\n 'Isto desbloqueia mais funcionalidades e customização, mas pode ser complicado e possivelmente perigoso para novos usuários!', //This unlocks deeper functionality and customisation, but may be overwhelming and potentially dangerous for unexperienced users!\n\n // Network switching (mainnet <---> testnet)\n netSwitchUnsavedWarningTitle: 'Sua carteira de {network} não foi salva!', //Your {network} wallet isn\\'t saved!\n netSwitchUnsavedWarningSubtitle: 'Sua conta de {network} está em risco!', //Your {network} account is at risk!\n netSwitchUnsavedWarningSubtext:\n 'Se você mudar para {network} antes de salvar você perderá a a conta!', //If you switch to {network} before saving it, you\\'ll lose the account!\n netSwitchUnsavedWarningConfirmation: 'Você tem certeza?', //Are you really sure?\n\n // Transparency Report\n transparencyReport: '\"Relatório de Transparência\"', //Transparency Report\n hit: '\"Um ping para indicar o carregamento de uma aplicação, nenhum dado exclusivo é enviado.\"', //A ping indicating an app load, no unique data is sent.\n time_to_sync:\n '\"O tempo em segundos que o MPW levou para sincronizar pela última vez.\"', //The time in seconds it took for MPW to last synchronise.\n transaction:\n '\"Um ping indicando uma Tx, nenhum dado exclusivo é enviado, mas pode ser inferido a partir do tempo na rede.\"', //A ping indicating a Tx, no unique data is sent, but may be inferred from on-chain time.\n\n // Analytics Levels\n analyticDisabled: 'Desativado', //Disabled\n analyticMinimal: 'Mínimo', //Minimal\n analyticBalanced: 'Saldo', //Balanced\n\n // Migration System\n MIGRATION_ACCOUNT_FAILURE_TITLE: 'Falha ao recuperar conta', //Failed to recover account\n MIGRATION_ACCOUNT_FAILURE_HTML:\n 'Ocorreu um erro ao recuperar a sua conta.
Por favor reimporte sua carteira usando a seguinte chave:', //There was an error recovering your account.
Please reimport your wallet using the following key:\n\n // Dynamic Elements (Rendered at runtime - TODO in future PR: sort in to above categories for consistency)\n ID: 'ID', //ID\n time: 'Tempo', //Time\n description: 'Descrição', //Description\n activityBlockReward: 'Bloco Recompensa', //Block Reward\n activitySentTo: 'Enviado para {r}', //Sent to\n activitySelf: 'si mesmo', //Self\n activityShieldedAddress: 'Endereço Protegido', //Shielded address\n activityReceivedFrom: 'Recebido de {s}', //Received from\n activityDelegatedTo: 'Delegado a {r}', //Delegated to\n activityUndelegated: 'Não é Delegado', //Undelegated\n activityUnknown: 'Tx desconhecido', //Unknown Tx\n password: 'Senha', //Password\n walletUnlock: 'Desbloquear a sua carteira', //Unlock your wallet\n walletPassword: 'Senha da Carteira', //Wallet password\n walletUnlockCreateMN: 'Desbloquear para criar o seu Masternode!', //Unlock to create your Masternode!\n walletUnlockMNStart: 'Desbloquear para iniciar o seu Masternode', //Unlock to start your Masternode!\n walletUnlockProposal: 'Desbloquear para criar uma proposta', //Unlock to create a proposal!\n walletUnlockPromo: 'Desbloquear para finalizar o seu código promocional', //Unlock to finalise your Promo Code!\n walletUnlockTx: 'Desbloquear para enviar a sua transação', //Unlock to send your transaction!\n walletUnlockStake: 'Desbloquear para realizar Stake', //Unlock to stake your\n walletUnlockUnstake: 'Desbloquear para realizar Unstake', //Unlock to unstake your\n changelogTitle: 'O que há de Novo em', //What's New in\n popupSetColdAddr: 'Defina o seu endereço de Cold Staking', //Set your Cold Staking address\n popupCurrentAddress: 'Endereço atual', //Current address:\n popupColdStakeNote:\n 'Um Endereço de Cold Staking faz staking de moedas em seu nome, não pode gastar moedas, então é seguro até usar o Cold Address de um estranho!', //A Cold Address stakes coins on your behalf, it cannot spend coins, so it's even safe to use a stranger's Cold Address!\n popupExample: 'Exemplo:', //Example:\n popupWalletLock: 'Você quer bloquear a sua carteira', //Do you want to lock your wallet?\n popupWalletWipe: 'Deseja limpar os dados privados da sua carteira', //Do you want to wipe your wallet private data?\n popupWalletLockNote:\n 'Você precisará digitar sua senha para acessar seus fundos', //You will need to enter your password to access your funds\n popupWalletWipeNote:\n 'Você perderá o acesso aos seus fundos se não tiver feito o backup de sua chave privada ou Seed Phrase', //You will lose access to your funds if you haven't backed up your private key or seed phrase\n popupSeedPhraseBad: 'Seed Phrase Inesperada', //Unexpected Seed Phrase\n popupSeedPhraseBadNote:\n 'A Seed Phrase é inválida ou não foi gerada pelo MPW.
Você ainda quer continuar', //The seed phrase is either invalid or was not generated by MPW.
Do you still want to proceed?\n popupCreateProposal: 'Criar Proposta', //Create Proposal\n popupCreateProposalCost: 'Custo', //Cost\n popupProposalName: 'Título da Proposta', //Proposal Title\n popupProposalAddress: 'Endereço da proposta (Opcional)', //Proposal Address (Optional)\n popupProposalDuration: 'Duração em ciclos', //Duration in cycles\n popupProposalPerCycle: 'por ciclo', //per cycle\n popupProposalEncryptFirst:\n 'Você precisa pressionar \"{button}\" antes que possa criar propostas! ', //You need to hit \"{button}\" before you can create proposals!\n popupProposalVoteHash: 'Votação de Hash:', //Vote Hash:\n popupProposalFinalisedNote:\n 'Parabéns pelo lançamento da sua proposta!
Os proprietários do Masternode podem usar a sua votação de hash em outras carteiras que não sejam MPW, então certifique-se de adicionar isso à sua publicação no fórum, se aplicável!', //Congratulations on launching your proposal!
Masternode owners can use your Vote Hash to vote from wallets other than MPW, so make sure to add this to your forum post, if applicable!\n popupProposalFinalisedSignoff: 'Boa sorte na sua jornada pelo DAO, PIVian!', //Good luck on your journey through the DAO, PIVian!\n popupHardwareAddrCheck: 'Confirme se este é o seu endereço que você vê', //Please confirm this is the address you see on your\n proposalFinalisationConfirming: 'A Confirmar', //Confirming...\n proposalFinalisationRemaining: 'restante', //remaining\n proposalFinalisationExpired: 'Proposta Expirada', //Proposal Expired\n proposalFinalisationReady: 'Pronto para enviar', //Ready to submit\n proposalPassing: 'PASSAGEM', //PASSING\n proposalFailing: 'FALHA', //FAILING\n proposalTooYoung: 'MUITO NOVA', //TOO YOUNG\n proposalFunded: 'FINANCIADO/A', //FUNDED\n proposalNotFunded: 'NÃO FINANCIADO/A', //NOT FUNDED\n proposalPaymentsRemaining: 'parcela(s) restante(s)
de', //installment(s) remaining
of\n proposalPaymentTotal: 'Total', //total\n proposalNetYes: 'Votos Sim', //Net Yes\n popupConfirm: 'Confirme', //Confirm\n popupClose: 'Fechar', //Close\n popupCancel: 'Cancelar', //Cancel\n chartPublicAvailable: 'Público disponível', //Public Available\n timeDays: 'Dias', //Days\n timeHours: 'Horas', //Hours\n timeMinutes: 'Minutos', //Minutes\n timeSeconds: 'Segundos', //Seconds\n unhandledException: 'Exceção não tratada', //Unhandled exception.\n\n // Alerts\n ALERTS: '<-- DO NOT EDIT THIS LINE! All below entries are for Alert Popups',\n\n INTERNAL_ERROR: 'Erro interno, por favor tente novamente mais tarde', //Internal error, please try again later\n FAILED_TO_IMPORT: 'Falha ao importar! Senha inválida', //Failed to import! Invalid password\n UNSUPPORTED_CHARACTER:\n 'O caracter {char} não é suportado em endereços! (Não é compatível com Base58)', //The character '{char}' is unsupported in addresses! (Not Base58 compatible)\n UNSUPPORTED_WEBWORKERS:\n 'Este navegador não suporta Web Workers (JS multi-threaded), infelizmente você não pode gerar carteiras Vanity!', //This browser doesn\\'t support Web Workers (multi-threaded JS), unfortunately you cannot generate Vanity wallets!\n INVALID_ADDRESS: 'Endereço PIVX inválido!
{address}', //Invalid PIVX address!
{address}\n TESTNET_ENCRYPTION_DISABLED:\n 'Modo Testnet ativado!
Encriptação da carteira desativada', //Testnet Mode is ON!
Wallet encryption disabled\n PASSWORD_TOO_SMALL:\n 'Esta senha é um pouco curta!
Use pelo menos {MIN_PASS_LENGTH} caracteres.',\n PASSWORD_DOESNT_MATCH: 'As suas senhas não correspondem!', //Your passwords don\\'t match!\n NEW_PASSWORD_SUCCESS:\n 'Você está protegido! 🔐
Muito bem, PIVian blindado!', //You\\'re Secured! 🔐
Nice stuff, Armoured PIVian!\n INCORRECT_PASSWORD: 'Senha incorreta!', //Incorrect password!\n INVALID_AMOUNT: 'Valor inválido!
', //Invalid amount!
\n TX_SENT: 'Transação enviada!', //Transaction sent!\n TX_FAILED: 'Falha na transação!', //Transaction Failed!\n QR_SCANNER_BAD_RECEIVER: 'não é um receptor de pagamento válido', //is not a valid payment receiver\n VALIDATE_AMOUNT_LOW: '
O valor mínimo é {minimumAmount} {coinTicker}!', //
Minimum amount is {minimumAmount} {coinTicker}!\n VALIDATE_AMOUNT_DECIMAL: '{coinDecimal} limite decimal excedido', //{coinDecimal} decimal limit exceeded\n SUCCESS_STAKING_ADDR:\n 'Endereço de Staking definido!
Prossiga com o unstake!', //Staking Address set!
Now go ahead and unstake!\n CONFIRM_UNSTAKE_H_WALLET:\n 'Confirme o seu Unstake
Confirme a TX no seu {strHardwareName}', //Confirm your Unstake
Confirm the TX on your {strHardwareName}\n CONFIRM_TRANSACTION_H_WALLET:\n 'Confirme a sua transação
Confirme a TX no seu {strHardwareName}', //Confirm your transaction
Confirm the TX on your {strHardwareName}\n SUCCESS_STAKING_ADDR_SET:\n 'Endereço de Staking definido!
>Prossiga com o stake', //'Staking Address set!
Now go ahead and stake!\n STAKE_ADDR_SET:\n 'Endereço de Cold Staking definido!
Ao fazer Stake no futuro este endereço irá ser usado.', //Cold Address set!
Future stakes will use this address.\n STAKE_ADDR_BAD: 'Endereço de Cold Staking inválido!', //Invalid Cold Staking address!\n STAKE_NOT_SEND: 'Aqui, use a tela de Stake, não a tela de Envio!', //Here, use the Stake screen, not the Send screen!\n BAD_ADDR_LENGTH:\n 'Endereço PIVX inválido!
Comprimento incorreto ({addressLength})', //Invalid PIVX address!
Bad length ({addressLength})\n BAD_ADDR_PREFIX:\n 'Endereço PIVX inválido!
Prefixo inválido {address} (Deve começar com {addressPrefix})', //Invalid PIVX address!
Bad prefix {address} (Should start with {addressPrefix})\n SENT_NOTHING: \"Você não pode enviar 'nada'!\", //You can\\'t send \\'nothing\\'!\n MORE_THEN_8_DECIMALS: 'limite de 8 decimais excedido', //8 decimal limit exceeded\n SAVE_WALLET_PLEASE:\n 'Salve a sua carteira!
Painel ➜ Proteja a sua carteira', //Save your wallet!
Dashboard ➜ Secure your wallet\n BACKUP_OR_ENCRYPT_WALLET:\n 'Criptografe e/ou faça backup das suas chaves antes de sair, ou você pode perdê-las!', //Please ENCRYPT and/or BACKUP your keys before leaving, or you may lose them!\n NO_CAMERAS: 'Este dispositivo não tem câmera!', //This device has no camera!\n STAKING_LEDGER_NO_SUPPORT: 'A Ledger não é compatível com Cold Staking', //Ledger is not supported for Cold Staking\n CONNECTION_FAILED:\n 'Falha ao sincronizar! Tente novamente mais tarde.
Pode tentar reconectar através das Configurações.', //Failed to synchronize! Please try again later.
You can attempt re-connect via the Settings.\n MN_NOT_ENABLED: 'O seu masternode ainda não está ativado!', //Your masternode is not enabled yet!\n VOTE_SUBMITTED: 'Voto enviado!', //Vote submitted!\n VOTED_ALREADY: 'Você já votou nesta proposta! Aguarde 1 hora', //You already voted for this proposal! Please wait 1 hour\n VOTE_SIG_BAD:\n 'Falha ao verificar a assinatura, verifique a chave privada do seu masternode', //Failed to verify signature, please check your masternode\\'s private key\n MN_CREATED_WAIT_CONFS:\n 'Masternode criado!
Aguarde 15 confirmações para prosseguir', //Masternode Created!
Wait 15 confirmations to proceed further\n MN_ACCESS_BEFORE_VOTE: 'Acesse um masternode antes de votar!', //Access a masternode before voting!\n MN_OFFLINE_STARTING:\n 'O seu masternode está offline, vamos tentar iniciá-lo', //Your masternode is offline, we will try to start it\n MN_STARTED: 'Masternode iniciado!', //Masternode started!\n MN_RESTARTED: 'Masternode reiniciado!', //Masternode restarted!\n MN_STARTED_ONLINE_SOON:\n 'Masternode iniciado!
Em breve estará online', //Masternode started!
It\\'ll be online soon\n MN_START_FAILED: 'Masternode iniciado!', //Masternode started!\n MN_RESTART_FAILED: 'Masternode reiniciado!', //Masternode restarted!\n MN_DESTROYED: 'Masternode destruído!
Já pode gastar suas moedas.', //Masternode destroyed!
Your coins are now spendable.\n MN_STATUS_IS: 'O status do seu masternode é', //Your masternode status is\n MN_STATE: 'O status do seu masternode é {state}', //Your masternode is in {state} state\n MN_BAD_IP: 'O endereço IP é inválido!', //The IP address is invalid!\n MN_NOT_ENOUGH_COLLAT:\n 'Você precisa de {amount} mais {ticker} para criar um Masternode!', //You need {amount} more {ticker} to create a Masternode!\n MN_ENOUGH_BUT_NO_COLLAT:\n 'Você tem saldo suficiente para um Masternode, mas nenhum UTXO válido como garantia de {amount} {ticker}', //You have enough balance for a Masternode, but no valid collateral UTXO of {amount} {ticker}\n MN_COLLAT_NOT_SUITABLE: 'Este não é um UTXO adequado para um Masternode', //This is not a suitable UTXO for a Masternode\n MN_CANT_CONNECT: 'Não é possível conectar ao nó RPC!', //Unable to connect to RPC node!\n\n /* Contacts System Alerts */\n CONTACTS_ENCRYPT_FIRST:\n 'Você precisa pressionar \"{button}\" antes que possa utilizar os contatos!', //You need to hit \"{button}\" before you can use Contacts!\n CONTACTS_NAME_REQUIRED: 'Um nome é necessário!', //A name is required!\n CONTACTS_NAME_TOO_LONG: 'Esse nome é muito comprido!', //That name is too long!\n CONTACTS_CANNOT_ADD_YOURSELF:\n 'Você não pode adicionar a si mesmo como contato', //You cannot add yourself as a Contact!\n CONTACTS_ALREADY_EXISTS:\n 'O contato já existe!
você já salvou este contato', //Contact already exists!
You already saved this contact\n CONTACTS_NAME_ALREADY_EXISTS:\n 'O nome do contato já existe!
Isso pode ser uma tentativa de phising, tome cuidado!', //Contact name already exists!
This could potentially be a phishing attempt, beware!\n CONTACTS_EDIT_NAME_ALREADY_EXISTS:\n 'O contato já existe!
Um contato já é chamado \"{strNewName}\"!', //Contact already exists!
A contact is already called \"{strNewName}\"!\n CONTACTS_KEY_ALREADY_EXISTS:\n 'O contato já exite porém com um nome differente!
Você tem {newName} salvo como {oldName} nos seus contatos', //Contact already exists, but under a different name!
You have {newName} saved as {oldName} in your contacts\n CONTACTS_NOT_A_CONTACT_QR: 'Isto não é um código QR de contato!', //This isn\\'t a Contact QR!\n CONTACTS_ADDED:\n 'Novo contato adicionado!
{strName} foi adicionado, Viva!', //New Contact added!
{strName} has been added, hurray!\n CONTACTS_YOU_HAVE_NONE: 'Você não tem contatos!', //You have no contacts!\n\n PROPOSAL_FINALISED: 'Proposta finalizada!', //Proposal finalized!\n PROPOSAL_UNCONFIRMED: 'A proposta ainda não foi confirmada.', //The proposal hasn\\'t been confirmed yet.\n PROPOSAL_EXPIRED: 'A proposta expirou. Crie uma nova.', //The proposal has expired. Create a new one.\n PROPOSAL_FINALISE_FAIL: 'Falha ao finalizar a proposta.', //Failed to finalize proposal.\n PROPOSAL_IMPORT_FIRST: 'Crie ou importe a sua carteira para continuar', //Create or import your wallet to continue\n PROPOSAL_NOT_ENOUGH_FUNDS:\n 'Não há fundos suficientes para criar uma proposta.', //Not enough funds to create a proposal.\n PROPOSAL_INVALID_ERROR: 'A proposta é inválida. Erro:', //Proposal is invalid. Error:\n PROPOSAL_CREATED:\n 'Proposta criada!
Aguarde 6 confirmações para finalizar.', //Proposal created!
Wait 6 confirmations to finalise.\n\n PROMO_MIN: 'O valor mínimo é {min} {ticker}!', //Minimum amount is {min} {ticker}!\n PROMO_MAX_QUANTITY:\n 'O seu dispositivo só pode criar {quantity} códigos de cada vez!', //Your device can only create {quantity} codes at a time!\n PROMO_NOT_ENOUGH:\n 'Você não tem {ticker} suficiente para criar esse código!', //You don\\'t have enough {ticker} to create that code!\n PROMO_ALREADY_CREATED: 'Você já criou esse código!', //You\\'ve already created that code!\n\n SWITCHED_EXPLORERS:\n 'Explorador trocado!
Agora será utilizado o {explorerName}', //Switched explorer!
Now using {explorerName}\n SWITCHED_NODE: 'Nó trocado!
Agora será utilizado o {node}', //Switched node!
Now using {node}\n SWITCHED_ANALYTICS: 'Nível de análise alterado!
Agora é {level}', //Switched analytics level!
Now {level}\n SWITCHED_SYNC:\n 'Modo de sincronização alternado!
Agora sera utilizada a sincronização {sync}', //Switched sync mode!
Now using {sync} sync\n UNABLE_SWITCH_TESTNET:\n 'Não é possível alternar o modo Testnet!
Uma carteira está aberta.', //Unable to switch Testnet Mode!
A wallet is already loaded\n\n WALLET_OFFLINE_AUTOMATIC:\n 'O modo offline está ativo!
Por favor desabilite o Modo Offline para transações automáticas', //Offline Mode is active!
Please disable Offline Mode for automatic transactions\n WALLET_UNLOCK_IMPORT:\n 'Por favor, {unlock} a sua carteira antes de enviar transações!', //Please {unlock} your wallet before sending transactions!\n WALLET_FIREFOX_UNSUPPORTED:\n 'O Firefox não tem suporte para isto!
Infelizmente, o Firefox não suporta carteiras de hardware', //Firefox doesn't support this!
Unfortunately, Firefox does not support hardware wallets\n WALLET_HARDWARE_WALLET:\n 'Carteira de hardware pronta!
Mantenha a sua {hardwareWallet} conectada, desbloqueada e na aplicação PIVX', //Hardware wallet ready!
Please keep your {hardwareWallet} plugged in, unlocked, and in the PIVX app\n WALLET_CONFIRM_L: 'Confirme a importação na sua Ledger', //Confirm the import on your Ledger\",\n WALLET_NO_HARDWARE:\n 'Nenhum dispositivo disponível
Não foi possível encontrar uma carteira de hardware; conecte-a e desbloqueie-a!', //No device available
Couldn't find a hardware wallet; please plug it in and unlock!\n WALLET_HARDWARE_UDEV:\n ' O Sistema operacional recusou o acesso Você adicionou as regras de udev?', // The OS denied access Did you add the udev rules?\n WALLET_HARDWARE_NO_ACCESS:\n ' O Sistema operacional recusou o acesso Por favor cheque as configurações do seu sistema operacional', // The OS denied access Please check your Operating System settings.\n WALLET_HARDWARE_CONNECTION_LOST:\n 'Conexão perdida com a {hardwareWallet}
Oops! Parece que a {hardwareWalletProductionName} foi desconectada no meio da operação.', //Lost connection to {hardwareWallet}
It seems the {hardwareWalletProductionName} was unplugged mid-operation, oops!\n WALLET_HARDWARE_BUSY:\n '{hardwareWallet} está em modo de espera
Por favor desbloqueie a sua {hardwareWalletProductionName} ou conclua o prompt atual', //{hardwareWallet} is waiting
Please unlock your {hardwareWalletProductionName} or finish it's current prompt\n WALLET_HARDWARE_ERROR: ' {hardwareWallet}
{error}', // {hardwareWallet}
{error}\n\n CONFIRM_POPUP_VOTE: 'Confirmar Voto', //Confirm Vote\n CONFIRM_POPUP_VOTE_HTML: 'Tem certeza? Demora 60 minutos para mudar o voto', //Are you sure? It takes 60 minutes to change vote\n CONFIRM_POPUP_TRANSACTION: 'Confirme a sua transação', //Confirm your transaction\n CONFIRM_POPUP_MN_P_KEY: 'A chave privada do seu Masternode', //Your Masternode Private Key\n CONFIRM_POPUP_MN_P_KEY_HTML:\n '
Guarde esta chave privada e copie-a para a sua configuração no VPS
', //
Save this private key and copy it to your VPS config
\n CONFIRM_POPUP_VERIFY_ADDR: 'Verifique o seu endereço', //Verify your address\n\n MIGRATION_MASTERNODE_FAILURE:\n 'Falha ao recuperar o seu masternode. Por favor, reimporte-o.', //Failed to recover your masternode. Please reimport it.\n MIGRATION_ACCOUNT_FAILURE:\n 'Falha ao recuperar a sua conta. Por favor, reimporte-a.', //Failed to recover your account. Please reimport it.\n APP_INSTALLED: 'Aplicação instalada!', //App Installed!\n};\n"],"names":["amount","staking","wallet","display","activity","yes","no","navDashboard","navStake","navMasternode","navGovernance","navSettings","footerBuiltWithPivxLabs","loading","loadingTitle","dashboardTitle","dCardOneTitle","dCardOneSubTitle","dCardOneDesc","dCardOneButton","dCardTwoTitle","dCardTwoSubTitle","dCardTwoDesc","dCardTwoButton","dCardThreeTitle","dCardThreeSubTitle","dCardThreeDesc","dCardThreeButton","dCardFourTitle","dCardFourSubTitle","dCardFourDesc","dCardFourButtonI","dCardFourButtonA","vanityPrefixNote","vanityPrefixInput","thisIsYourSeed","writeDownSeed","doNotShareWarning","doNotShare","digitalStoreNotAdvised","optionalPassphrase","writtenDown","importSeedValid","importSeedError","importSeedErrorSize","importSeedErrorTypo","importSeedErrorSkip","gettingStarted","secureYourWallet","unlockWallet","lockWallet","encryptWallet","encryptPasswordCurrent","encryptPasswordFirst","encryptPasswordSecond","encrypt","changePassword","balanceBreakdown","viewOnExplorer","export","refreshAddress","redeemOrCreateCode","address","receivingAddress","sendAmountCoinsMax","paymentRequestMessage","send","receive","contacts","name","username","addressOrXPub","back","chooseAContact","createContact","encryptFirstForContacts","shareContactURL","setupYourContact","receiveWithContact","onlyShareContactPrivately","changeTo","contact","xpub","addContactTitle","addContactSubtext","addContactWarning","editContactTitle","newName","removeContactTitle","removeContactSubtext","removeContactNote","privateKey","viewPrivateKey","privateWarning1","privateWarning2","viewKey","pivxPromos","redeemInput","createName","createAmount","stake","stakeUnstake","ownerAddress","rewardHistory","loadMore","mnControlYour","mnSubtext","govSubtext","govMonthlyBudget","govAllocBudget","govNextPayout","govTableStatus","govTableName","govTablePayment","govTableVotes","govTableVote","contestedProposalsTitle","contestedProposalsDesc","settingsCurrency","priceProvidedBy","settingsDecimals","settingsExplorer","settingsLanguage","settingsPivxNode","settingsAutoSelectNet","settingsAnalytics","settingsToggleDebug","settingsToggleTestnet","settingsToggleAdvancedMode","settingsToggleAdvancedModeSubtext","netSwitchUnsavedWarningTitle","netSwitchUnsavedWarningSubtitle","netSwitchUnsavedWarningSubtext","netSwitchUnsavedWarningConfirmation","transparencyReport","hit","time_to_sync","transaction","analyticDisabled","analyticMinimal","analyticBalanced","MIGRATION_ACCOUNT_FAILURE_TITLE","MIGRATION_ACCOUNT_FAILURE_HTML","ID","time","description","activityBlockReward","activitySentTo","activitySelf","activityShieldedAddress","activityReceivedFrom","activityDelegatedTo","activityUndelegated","activityUnknown","password","walletUnlock","walletPassword","walletUnlockCreateMN","walletUnlockMNStart","walletUnlockProposal","walletUnlockPromo","walletUnlockTx","walletUnlockStake","walletUnlockUnstake","changelogTitle","popupSetColdAddr","popupCurrentAddress","popupColdStakeNote","popupExample","popupWalletLock","popupWalletWipe","popupWalletLockNote","popupWalletWipeNote","popupSeedPhraseBad","popupSeedPhraseBadNote","popupCreateProposal","popupCreateProposalCost","popupProposalName","popupProposalAddress","popupProposalDuration","popupProposalPerCycle","popupProposalEncryptFirst","popupProposalVoteHash","popupProposalFinalisedNote","popupProposalFinalisedSignoff","popupHardwareAddrCheck","proposalFinalisationConfirming","proposalFinalisationRemaining","proposalFinalisationExpired","proposalFinalisationReady","proposalPassing","proposalFailing","proposalTooYoung","proposalFunded","proposalNotFunded","proposalPaymentsRemaining","proposalPaymentTotal","proposalNetYes","popupConfirm","popupClose","popupCancel","chartPublicAvailable","timeDays","timeHours","timeMinutes","timeSeconds","unhandledException","ALERTS","INTERNAL_ERROR","FAILED_TO_IMPORT","UNSUPPORTED_CHARACTER","UNSUPPORTED_WEBWORKERS","INVALID_ADDRESS","TESTNET_ENCRYPTION_DISABLED","PASSWORD_TOO_SMALL","PASSWORD_DOESNT_MATCH","NEW_PASSWORD_SUCCESS","INCORRECT_PASSWORD","INVALID_AMOUNT","TX_SENT","TX_FAILED","QR_SCANNER_BAD_RECEIVER","VALIDATE_AMOUNT_LOW","VALIDATE_AMOUNT_DECIMAL","SUCCESS_STAKING_ADDR","CONFIRM_UNSTAKE_H_WALLET","CONFIRM_TRANSACTION_H_WALLET","SUCCESS_STAKING_ADDR_SET","STAKE_ADDR_SET","STAKE_ADDR_BAD","STAKE_NOT_SEND","BAD_ADDR_LENGTH","BAD_ADDR_PREFIX","SENT_NOTHING","MORE_THEN_8_DECIMALS","SAVE_WALLET_PLEASE","BACKUP_OR_ENCRYPT_WALLET","NO_CAMERAS","STAKING_LEDGER_NO_SUPPORT","CONNECTION_FAILED","MN_NOT_ENABLED","VOTE_SUBMITTED","VOTED_ALREADY","VOTE_SIG_BAD","MN_CREATED_WAIT_CONFS","MN_ACCESS_BEFORE_VOTE","MN_OFFLINE_STARTING","MN_STARTED","MN_RESTARTED","MN_STARTED_ONLINE_SOON","MN_START_FAILED","MN_RESTART_FAILED","MN_DESTROYED","MN_STATUS_IS","MN_STATE","MN_BAD_IP","MN_NOT_ENOUGH_COLLAT","MN_ENOUGH_BUT_NO_COLLAT","MN_COLLAT_NOT_SUITABLE","MN_CANT_CONNECT","CONTACTS_ENCRYPT_FIRST","CONTACTS_NAME_REQUIRED","CONTACTS_NAME_TOO_LONG","CONTACTS_CANNOT_ADD_YOURSELF","CONTACTS_ALREADY_EXISTS","CONTACTS_NAME_ALREADY_EXISTS","CONTACTS_EDIT_NAME_ALREADY_EXISTS","CONTACTS_KEY_ALREADY_EXISTS","CONTACTS_NOT_A_CONTACT_QR","CONTACTS_ADDED","CONTACTS_YOU_HAVE_NONE","PROPOSAL_FINALISED","PROPOSAL_UNCONFIRMED","PROPOSAL_EXPIRED","PROPOSAL_FINALISE_FAIL","PROPOSAL_IMPORT_FIRST","PROPOSAL_NOT_ENOUGH_FUNDS","PROPOSAL_INVALID_ERROR","PROPOSAL_CREATED","PROMO_MIN","PROMO_MAX_QUANTITY","PROMO_NOT_ENOUGH","PROMO_ALREADY_CREATED","SWITCHED_EXPLORERS","SWITCHED_NODE","SWITCHED_ANALYTICS","SWITCHED_SYNC","UNABLE_SWITCH_TESTNET","WALLET_OFFLINE_AUTOMATIC","WALLET_UNLOCK_IMPORT","WALLET_FIREFOX_UNSUPPORTED","WALLET_HARDWARE_WALLET","WALLET_CONFIRM_L","WALLET_NO_HARDWARE","WALLET_HARDWARE_UDEV","WALLET_HARDWARE_NO_ACCESS","WALLET_HARDWARE_CONNECTION_LOST","WALLET_HARDWARE_BUSY","WALLET_HARDWARE_ERROR","CONFIRM_POPUP_VOTE","CONFIRM_POPUP_VOTE_HTML","CONFIRM_POPUP_TRANSACTION","CONFIRM_POPUP_MN_P_KEY","CONFIRM_POPUP_MN_P_KEY_HTML","CONFIRM_POPUP_VERIFY_ADDR","MIGRATION_MASTERNODE_FAILURE","MIGRATION_ACCOUNT_FAILURE","APP_INSTALLED"],"sourceRoot":""} \ No newline at end of file diff --git a/326.mpw.js b/326.mpw.js deleted file mode 100644 index 20990a842..000000000 --- a/326.mpw.js +++ /dev/null @@ -1,2 +0,0 @@ -var MPW;(()=>{var t,e,a,n,s={71220:(t,e,a)=>{var n={"./de/translation.js":[81052,52],"./en/translation.js":[34137,137],"./es-mx/translation.js":[75605,605],"./fr/translation.js":[35120,120],"./it/translation.js":[12473,473],"./ph/translation.js":[1563,563],"./pt-br/translation.js":[32216,216],"./pt-pt/translation.js":[74214,194],"./template/translation.js":[60270],"./uwu/translation.js":[22858,858]};function s(t){if(!a.o(n,t))return Promise.resolve().then((()=>{var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}));var e=n[t],s=e[0];return Promise.all(e.slice(1).map(a.e)).then((()=>a(s)))}s.keys=()=>Object.keys(n),s.id=71220,t.exports=s},95856:()=>{},48777:()=>{},46601:()=>{},89214:()=>{},52361:()=>{},94616:()=>{},60270:(t,e,a)=>{"use strict";a.r(e),a.d(e,{default:()=>n});const n={amount:"",staking:"",wallet:"",display:"",activity:"",yes:"",no:"",navDashboard:"",navStake:"",navMasternode:"",navGovernance:"",navSettings:"",footerBuiltWithPivxLabs:"",loading:"",loadingTitle:"",dashboardTitle:"",dCardOneTitle:"",dCardOneSubTitle:"",dCardOneDesc:"",dCardOneButton:"",dCardTwoTitle:"",dCardTwoSubTitle:"",dCardTwoDesc:"",dCardTwoButton:"",dCardThreeTitle:"",dCardThreeSubTitle:"",dCardThreeDesc:"",dCardThreeButton:"",dCardFourTitle:"",dCardFourSubTitle:"",dCardFourDesc:"",dCardFourButtonI:"",dCardFourButtonA:"",vanityPrefixNote:"",vanityPrefixInput:"",thisIsYourSeed:"",writeDownSeed:"",doNotShareWarning:"",doNotShare:"",digitalStoreNotAdvised:"",optionalPassphrase:"",writtenDown:"",importSeedValid:"",importSeedError:"",importSeedErrorSize:"",importSeedErrorTypo:"",importSeedErrorSkip:"",gettingStarted:"",secureYourWallet:"",unlockWallet:"",lockWallet:"",encryptWallet:"",encryptPasswordCurrent:"",encryptPasswordFirst:"",encryptPasswordSecond:"",encrypt:"",changePassword:"",balanceBreakdown:"",viewOnExplorer:"",export:"",refreshAddress:"",redeemOrCreateCode:"",address:"",receivingAddress:"",sendAmountCoinsMax:"",paymentRequestMessage:"",send:"",receive:"",contacts:"",name:"",username:"",addressOrXPub:"",back:"",chooseAContact:"",createContact:"",encryptFirstForContacts:"",shareContactURL:"",setupYourContact:"",receiveWithContact:"",onlyShareContactPrivately:"",changeTo:"",contact:"",xpub:"",addContactTitle:"",addContactSubtext:"",addContactWarning:"",editContactTitle:"",newName:"",removeContactTitle:"",removeContactSubtext:"",removeContactNote:"",privateKey:"",viewPrivateKey:"",privateWarning1:"",privateWarning2:"",viewKey:"",pivxPromos:"",redeemInput:"",createName:"",createAmount:"",stake:"",stakeUnstake:"",ownerAddress:"",rewardHistory:"",loadMore:"",mnControlYour:"",mnSubtext:"",govSubtext:"",govMonthlyBudget:"",govAllocBudget:"",govNextPayout:"",govTableStatus:"",govTableName:"",govTablePayment:"",govTableVotes:"",govTableVote:"",contestedProposalsDesc:"",settingsCurrency:"",priceProvidedBy:"",settingsDecimals:"",settingsExplorer:"",settingsLanguage:"",settingsPivxNode:"",settingsAutoSelectNet:"",settingsAnalytics:"",settingsToggleDebug:"",settingsToggleTestnet:"",settingsToggleAdvancedMode:"",settingsToggleAdvancedModeSubtext:"",netSwitchUnsavedWarningTitle:"",netSwitchUnsavedWarningSubtitle:"",netSwitchUnsavedWarningSubtext:"",netSwitchUnsavedWarningConfirmation:"",transparencyReport:"",hit:"",time_to_sync:"",transaction:"",analyticDisabled:"",analyticMinimal:"",analyticBalanced:"",MIGRATION_ACCOUNT_FAILURE_TITLE:"",MIGRATION_ACCOUNT_FAILURE_HTML:"",ID:"",time:"",description:"",activityBlockReward:"",activitySentTo:"",activitySelf:"",activityShieldedAddress:"",activityReceivedFrom:"",activityDelegatedTo:"",activityUndelegated:"",activityUnknown:"",password:"",walletUnlock:"",walletPassword:"",walletUnlockCreateMN:"",walletUnlockMNStart:"",walletUnlockProposal:"",walletUnlockPromo:"",walletUnlockTx:"",walletUnlockStake:"",walletUnlockUnstake:"",changelogTitle:"",popupSetColdAddr:"",popupCurrentAddress:"",popupColdStakeNote:"",popupExample:"",popupWalletLock:"",popupWalletWipe:"",popupWalletLockNote:"",popupWalletWipeNote:"",popupSeedPhraseBad:"",popupSeedPhraseBadNote:"",popupCreateProposal:"",popupCreateProposalCost:"",popupProposalName:"",popupProposalAddress:"",popupProposalDuration:"",popupProposalPerCycle:"",popupProposalEncryptFirst:"",popupProposalVoteHash:"",popupProposalFinalisedNote:"",popupProposalFinalisedSignoff:"",popupHardwareAddrCheck:"",proposalFinalisationConfirming:"",proposalFinalisationRemaining:"",proposalFinalisationExpired:"",proposalFinalisationReady:"",proposalPassing:"",proposalFailing:"",proposalTooYoung:"",proposalFunded:"",proposalNotFunded:"",proposalPaymentsRemaining:"",proposalPaymentTotal:"",proposalNetYes:"",popupConfirm:"",popupClose:"",popupCancel:"",chartPublicAvailable:"",timeDays:"",timeHours:"",timeMinutes:"",timeSeconds:"",unhandledException:"",ALERTS:"<-- DO NOT EDIT THIS LINE! All below entries are for Alert Popups",INTERNAL_ERROR:"",FAILED_TO_IMPORT:"",FAILED_TO_IMPORT_HARDWARE:"",UNSUPPORTED_CHARACTER:"",UNSUPPORTED_WEBWORKERS:"",INVALID_ADDRESS:"",TESTNET_ENCRYPTION_DISABLED:"",PASSWORD_TOO_SMALL:"",PASSWORD_DOESNT_MATCH:"",NEW_PASSWORD_SUCCESS:"",INCORRECT_PASSWORD:"",INVALID_AMOUNT:"",TX_SENT:"",TX_FAILED:"",QR_SCANNER_BAD_RECEIVER:"",VALIDATE_AMOUNT_LOW:"",VALIDATE_AMOUNT_DECIMAL:"",SUCCESS_STAKING_ADDR:"",STAKE_ADDR_SET:"",STAKE_ADDR_BAD:"",CONFIRM_UNSTAKE_H_WALLET:"",CONFIRM_TRANSACTION_H_WALLET:"",SUCCESS_STAKING_ADDR_SET:"",STAKE_NOT_SEND:"",BAD_ADDR_LENGTH:"",BAD_ADDR_PREFIX:"",SENT_NOTHING:"",MORE_THEN_8_DECIMALS:"",SAVE_WALLET_PLEASE:"",BACKUP_OR_ENCRYPT_WALLET:"",NO_CAMERAS:"",STAKING_LEDGER_NO_SUPPORT:"",CONNECTION_FAILED:"",MN_NOT_ENABLED:"",VOTE_SUBMITTED:"",VOTED_ALREADY:"",VOTE_SIG_BAD:"",MN_CREATED_WAIT_CONFS:"",MN_ACCESS_BEFORE_VOTE:"",MN_OFFLINE_STARTING:"",MN_STARTED:"",MN_RESTARTED:"",MN_STARTED_ONLINE_SOON:"",MN_START_FAILED:"",MN_RESTART_FAILED:"",MN_DESTROYED:"",MN_STATUS_IS:"",MN_STATE:"",MN_BAD_IP:"",MN_NOT_ENOUGH_COLLAT:"",MN_ENOUGH_BUT_NO_COLLAT:"",MN_COLLAT_NOT_SUITABLE:"",MN_CANT_CONNECT:"",CONTACTS_ENCRYPT_FIRST:"",CONTACTS_NAME_REQUIRED:"",CONTACTS_NAME_TOO_LONG:"",CONTACTS_CANNOT_ADD_YOURSELF:"",CONTACTS_ALREADY_EXISTS:"",CONTACTS_NAME_ALREADY_EXISTS:"",CONTACTS_EDIT_NAME_ALREADY_EXISTS:"",CONTACTS_KEY_ALREADY_EXISTS:"",CONTACTS_NOT_A_CONTACT_QR:"",CONTACTS_ADDED:"",CONTACTS_YOU_HAVE_NONE:"",SWITCHED_EXPLORERS:"",SWITCHED_NODE:"",SWITCHED_ANALYTICS:"",SWITCHED_SYNC:"",UNABLE_SWITCH_TESTNET:"",WALLET_OFFLINE_AUTOMATIC:"",WALLET_UNLOCK_IMPORT:"",WALLET_FIREFOX_UNSUPPORTED:"",WALLET_HARDWARE_WALLET:"",WALLET_CONFIRM_L:"",WALLET_NO_HARDWARE:"",WALLET_HARDWARE_CONNECTION_LOST:"",WALLET_HARDWARE_UDEV:"",WALLET_HARDWARE_NO_ACCESS:"",WALLET_HARDWARE_BUSY:"",WALLET_HARDWARE_ERROR:"",CONFIRM_POPUP_VOTE:"",CONFIRM_POPUP_VOTE_HTML:"",CONFIRM_POPUP_TRANSACTION:"",CONFIRM_POPUP_MN_P_KEY:"",CONFIRM_POPUP_MN_P_KEY_HTML:"",CONFIRM_POPUP_VERIFY_ADDR:"",MIGRATION_MASTERNODE_FAILURE:"",MIGRATION_ACCOUNT_FAILURE:"",APP_INSTALLED:""}},57119:(t,e,a)=>{"use strict";var n=a(17748),s=a(48764);function o(t){return s.Buffer.from(t,"hex")}function r(t){return s.Buffer.from(t).toString("hex")}function i(t){return(0,n.J)((0,n.J)(new Uint8Array(t)))}var c=a(27760),l=a(72697),d=a(2262);const u=10**8,p=(0,d.qj)({current:null,main:{name:"mainnet",collateralInSats:1e4*u,isTestnet:!1,TICKER:"PIV",PUBKEY_PREFIX:["D"],STAKING_PREFIX:"S",PUBKEY_ADDRESS:30,SECRET_KEY:212,BIP44_TYPE:119,BIP44_TYPE_LEDGER:77,PROTOCOL_VERSION:70926,MASTERNODE_PORT:51472,Explorers:[{name:"rockdev",url:"https://explorer.rockdev.org"},{name:"zkBitcoin",url:"https://zkbitcoin.com"},{name:"Duddino",url:"https://explorer.duddino.com"}],Nodes:[{name:"Duddino",url:"https://rpc.duddino.com/mainnet"}],Consensus:{UPGRADE_V6_0:void 0},budgetCycleBlocks:43200,proposalFee:50*u,proposalFeeConfirmRequirement:6,maxPaymentCycles:6,maxPayment:432e3*u,defaultColdStakingAddress:"SdgQDpS8jDRJDX8yK8m9KnTMarsE84zdsy"},testnet:{name:"testnet",collateralInSats:1e4*u,isTestnet:!0,TICKER:"tPIV",PUBKEY_PREFIX:["x","y"],STAKING_PREFIX:"W",PUBKEY_ADDRESS:139,SECRET_KEY:239,BIP44_TYPE:1,BIP44_TYPE_LEDGER:1,PROTOCOL_VERSION:70926,MASTERNODE_PORT:51474,Explorers:[{name:"rockdev",url:"https://testnet.rockdev.org"},{name:"duddino",url:"https://testnet.duddino.com"}],Nodes:[{name:"Duddino",url:"https://rpc.duddino.com/testnet"}],Consensus:{UPGRADE_V6_0:void 0},budgetCycleBlocks:144,proposalFee:50*u,proposalFeeConfirmRequirement:3,maxPaymentCycles:20,maxPayment:1440*u,defaultColdStakingAddress:"WmNziUEPyhnUkiVdfsiNX93H6rSJnios44"}});p.current=p.main,a(60270);var h=a(26269);const y=new(a(17187).EventEmitter);function m(){return y}a(25108);let g=null;function f(){return g}var T=a(25108);class w{constructor({id:t,path:e,sats:a,script:n,vin:s=[],vout:o,height:r,status:i,isDelegate:c=!1,isReward:l=!1}={}){this.id=t,this.path=e,this.sats=a,this.script=n,this.vin=s,this.vout=o,this.height=r,this.status=i,this.isDelegate=c,this.isReward=l}equalsUTXO(t){return this.id===t.id&&this.vout===t.vout&&this.status===t.status}}class v{constructor(){this.UTXOs=[],this.subscribeToNetwork()}static CONFIRMED=0;static REMOVED=1;static PENDING=2;getUTXO(t,e){return this.UTXOs.find((a=>a.id===t&&a.vout===e))}async removeWithDelay(t,e){var a;await(a=60*t*1e3,new Promise(((t,e)=>setTimeout(t,a)))),this.removeUTXO(e)}isAlreadyStored({id:t,vout:e,status:a}){return this.UTXOs.some((n=>n.id===t&&n.vout===e&&(!a||n.status===a)))}getUTXOsByState(t){return this.UTXOs.filter((e=>e.status===t))}removeFromState(t,e){const a=this.getUTXOsByState(e);for(const e of a)if(e.id===t.id&&e.vout===t.vout){this.removeUTXO(e);break}}addUTXO({id:t,path:e,sats:a,script:n,vin:s,vout:o,height:r,status:i,isDelegate:c,isReward:l}){const d=new w({id:t,path:e,sats:a,script:n,vin:s,vout:o,height:r,status:i,isDelegate:c,isReward:l});if(this.isAlreadyStored({id:t,vout:o}))this.updateUTXO({id:t,vout:o});else{if(l&&1===s?.length){const t=this.getUTXO(s[0].txid,s[0].vout);t&&this.removeUTXO(t)}this.UTXOs.push(d)}m().emit("balance-update",ee(!0)),ae(!0)}updateUTXO({id:t,vout:e}){le&&T.assert(this.isAlreadyStored({id:t,vout:e}),"Debug Mode: updateUTXO must be called with an existing UTXO");const a=this.UTXOs.find((a=>a.id===t&&a.vout==e));a.status===v.PENDING&&(a.status=v.CONFIRMED),ee(!0),ae(!0)}removeUTXO(t){this.UTXOs=this.UTXOs.filter((e=>!e.equalsUTXO(t)))}autoRemoveUTXO({id:t,vout:e}){for(const a of this.UTXOs)if(a.id===t&&a.vout===e)return a.status=v.REMOVED,void this.removeWithDelay(12,a);T.error("Mempool: Failed to find UTXO "+t+" ("+e+") for auto-removal!")}autoRemoveUTXOs(t){for(const e of t)for(const t of this.UTXOs)if(t.equalsUTXO(e)){t.status=v.REMOVED,this.removeWithDelay(12,t);break}}getConfirmed(){return this.getUTXOsByState(v.CONFIRMED)}getStandardUTXOs(){return this.UTXOs.filter((t=>t.status!==v.REMOVED&&!t.isDelegate))}getDelegatedUTXOs(){return this.UTXOs.filter((t=>t.status!==v.REMOVED&&t.isDelegate))}getBalance(){return this.getStandardUTXOs().filter((t=>!re(t))).reduce(((t,e)=>t+e.sats),0)}static isValidUTXO(t){return!t.isReward||f().cachedBlockCount-t.height>100}getDelegatedBalance(){return this.getDelegatedUTXOs().reduce(((t,e)=>t+e.sats),0)}subscribeToNetwork(){m().on("utxo",(async t=>{for(const e of t)this.isAlreadyStored({id:e.txid,vout:e.vout})?this.updateUTXO({id:e.txid,vout:e.vout}):this.addUTXO(await f().getUTXOFullInfo(e))}))}}a(9424),a(2153),a(49840),a(34611),a(2099),a(27578),a(25108);let E="";new Map([[25870,"Open the PIVX app on your device"],[25873,"Open the PIVX app on your device"],[57408,"Navigate to the PIVX app on your device"],[27157,"Wrong app! Open the PIVX app on your device"],[27266,"Wrong app! Open the PIVX app on your device"],[27904,"Wrong app! Open the PIVX app on your device"],[27010,"Unlock your Ledger, then try again!"],[27404,"Unlock your Ledger, then try again!"]]);var A=a(25108);const _=new TextEncoder;async function C(t,e=""){const a=e||window.prompt("Please enter your wallet encryption password");return!!a&&await async function(t,e){try{const a=window.crypto.getRandomValues(new Uint8Array(16)),n=window.crypto.getRandomValues(new Uint8Array(12)),s=await S(e),o=await b(s,a,["encrypt"]),r=await window.crypto.subtle.encrypt({name:"AES-GCM",iv:n},o,_.encode(t)),i=new Uint8Array(r);let c=new Uint8Array(a.byteLength+n.byteLength+i.byteLength);return c.set(a,0),c.set(n,a.byteLength),c.set(i,a.byteLength+n.byteLength),(t=>btoa(String.fromCharCode.apply(null,t)))(c)}catch(t){return A.log(`Error - ${t}`),""}}(t,a)}new TextDecoder;const S=t=>window.crypto.subtle.importKey("raw",_.encode(t),"PBKDF2",!1,["deriveKey"]),b=(t,e,a)=>window.crypto.subtle.deriveKey({name:"PBKDF2",salt:e,iterations:25e4,hash:"SHA-256"},t,{name:"AES-GCM",length:256},!1,a);class O{constructor(t){this.publicKey=t?.publicKey||"",this.encWif=t?.encWif||"",this.localProposals=t?.localProposals||[],this.contacts=t?.contacts||[],this.name=t?.name||"",this.coldAddress=t?.coldAddress||""}publicKey="";encWif="";localProposals=[];contacts=[];name="";coldAddress="";getContactBy({name:t,pubkey:e}){if(!t&&!e)throw Error("getContactBy(): At least ONE search parameter MUST be set!");return t?this.contacts.find((e=>e.label===t)):e?this.contacts.find((t=>t.pubkey===e)):null}}async function P(t,e=!1){let a="",n=0;if(e){a+='
';for(const e of t.contacts||[]){const t=Me(e.pubkey)?e.pubkey.slice(0,32)+"…":e.pubkey;a+=`\n
\n
\n \n
\n
\n ${ke(ke(e.label))}\n ${ke(t)}\n
\n
\n `,n++}a+=`\n \n ${Ce.back}\n \n `,a+="
";const e=function(){return new Promise(((t,e)=>{setTimeout((()=>{function e(a){if(a.target.id.endsWith("-1"))return t("");const n=a.target.id.match(/([0-9]+)$/)[0],s=document.getElementById(`contactsName${n}`).innerText;t(s),function(){let t,a=-1;for(;t=document.getElementById(`contactsSelector${a}`);)t.removeEventListener("click",e),a++}()}let a,n=-1;for(;a=document.getElementById(`contactsSelector${n}`);)a.addEventListener("click",e,{once:!0}),n++}),500)}))};return await xe({title:Ce.chooseAContact,html:a,resolvePromise:e(),purpleModal:!0,textLeft:!0,noPadding:!0,maxHeight:450})}for(const e of t.contacts||[]){const t=Me(e.pubkey)?e.pubkey.slice(0,32)+"…":e.pubkey;a+=`\n
\n
\n \n
\n
\n ${ke(e.label)}\n ${ke(t)}\n
\n
\n \n
\n
\n `,n++}a+=`\n
\n
\n \n
\n
\n \n
\n
\n
\n \n
\n
\n \n
\n
\n
\n `,Qt.domContactsTable.innerHTML=a}async function R(){const t=await Ae.getInstance(),e=await t.getAccount();return e&&e.contacts?P(e):Ne("warning",Se(_e.CONTACTS_ENCRYPT_FIRST,[{button:Ce.secureYourWallet}]),3500)}async function I(t=N.CONTACT){if(t===N.CONTACT){const t=await Ae.getInstance(),e=await t.getAccount();if(e?.name){let t="";t=await k.getKeyToExport();const a=await async function(t,e){const a=await Ae.getInstance(),n=t||await a.getAccount();let o=e||"";o||(o=await k.getKeyToExport());const r=window.location.origin+window.location.pathname,i=s.Buffer.from(n.name).toString("hex");return`${r}?addcontact=${encodeURIComponent(i+":"+o)}`}(e,t);Qt.domModalQrLabel.innerHTML=`${Ce.shareContactURL}`,Qt.domModalQR.innerHTML=`\n

${Ce.onlyShareContactPrivately}

\n
\n `;const n=document.getElementById("receiveModalEmbeddedQR");Le(a,n,10),n.firstChild.style.width="100%",n.firstChild.style.height="auto",n.firstChild.classList.add("no-antialias"),document.getElementById("clipboard").value=t}else{const t=await k.getCurrentAddress();Qt.domModalQrLabel.innerHTML=t+``,await U()?Qt.domModalQR.innerHTML=`\n
\n ${Ce.setupYourContact}\n

${Ce.receiveWithContact}

\n \n \n
\n `:Qt.domModalQR.innerHTML=`\n
\n ${Ce.secureYourWallet}\n

${Se(Ce.encryptFirstForContacts,[{button:Ce.secureYourWallet}])}

\n
\n `}}else if(t===N.ADDRESS){const t=await k.getCurrentAddress();Le("pivx:"+t,Qt.domModalQR),Qt.domModalQrLabel.innerHTML=t+``,Qt.domModalQR.firstChild.style.width="100%",Qt.domModalQR.firstChild.style.height="auto",Qt.domModalQR.firstChild.classList.add("no-antialias"),document.getElementById("clipboard").value=t}else{const t=await k.getXPub();Qt.domModalQrLabel.innerHTML=t+``,Qt.domModalQR.innerHTML=`\n

${Ce.onlyShareContactPrivately}

\n
\n `;const e=document.getElementById("receiveModalEmbeddedQR");Le(t,e,10),e.firstChild.style.width="100%",e.firstChild.style.height="auto",e.firstChild.classList.add("no-antialias"),document.getElementById("clipboard").value=t}}async function D(){return async function(t=null){const e=k.isHD()?3:2;x=null!==t?t:(x+1)%e;let a="";switch((x+1)%e){case N.CONTACT:a=Ce.contact;break;case N.ADDRESS:a=Ce.address;break;case N.XPUB:a=Ce.xpub}return Qt.domModalQrReceiveTypeBtn.innerText=Ce.changeTo+" "+a,I(x),x}(x)}a(3006);const N={CONTACT:0,ADDRESS:1,XPUB:2};let x=N.CONTACT;function L(t,e){return t?.contacts?.find((t=>t.pubkey===e))?.label||e}var M=a(25108);a(19755);const k=new class{#t;#e;#a=0;#n=new Map;constructor(t){this.#e=t}getMasterKey(){return this.#t}async getColdStakingAddress(){const t=await Ae.getInstance(),e=await t.getAccount();return e?.coldAddress||p.current.defaultColdStakingAddress}get nAccount(){return this.#e}wipePrivateData(){this.#t.wipePrivateData(this.#e)}isViewOnly(){return!!this.#t&&this.#t.isViewOnly}isHD(){return!!this.#t&&this.#t.isHD}async hasWalletUnlocked(t=!1){return t&&!f().enabled?Ne("warning",_e.WALLET_OFFLINE_AUTOMATIC,5500):!!this.isLoaded()||Ne("warning",Se(_e.WALLET_UNLOCK_IMPORT,[{unlock:await U()?"unlock ":"import/create"}]),3500)}async setMasterKey(t){this.#t=t,await f().setWallet(this)}getCurrentAddress(){return this.getAddress(0,this.#a)}getAddress(t=0,e=0){const a=this.getDerivationPath(t,e);return this.#t.getAddress(a)}getXPub(t=0,e=0){const a=this.getDerivationPath(t,e).split("/").slice(0,4).join("/");return this.#t.getxpub(a)}isLoaded(){return!!this.#t}async encryptWallet(t=""){let e=await C(this.#t.keyToBackup,t);if(!e)return!1;Qt.domGenKeyWarning.style.display="none";const a=new O({publicKey:this.getKeyToExport(),encWif:e}),n=await Ae.getInstance();await n.getAccount()?await n.updateAccount(a):await n.addAccount(a),removeEventListener("beforeunload",ie,{capture:!0})}getNewAddress(){const t=f().lastWallet;this.#a=(this.#a>t?this.#a:t)+1,this.#a-t>20&&(this.#a=t);const e=this.getDerivationPath(0,this.#a);return[this.getAddress(0,this.#a),e]}isHardwareWallet(){return!0===this.#t?.isHardwareWallet}isOwnAddress(t){if(this.#n.has(t))return this.#n.get(t);const e=f().lastWallet;if(this.#a=this.#a>e?this.#a:e,!this.isHD()){const e=t===this.getKeyToExport()?":)":null;return this.#n.set(t,e),e}for(let e=0;e<=this.#a+20;e++){const a=this.getDerivationPath(0,e);if(t===this.#t.getAddress(a))return this.#n.set(t,a),a}return this.#n.set(t,null),null}getDerivationPath(t=0,e=0){return this.#t.getDerivationPath(this.#e,t,e)}getKeyToExport(){return this.#t?.getKeyToExport(this.#e)}}(0);async function U(){const t=await Ae.getInstance(),e=await t.getAccount();return!!e?.encWif}async function B({updateGUI:t=!1,verify:e=!1}={}){const[a,n]=k.getNewAddress();if(e&&k.isHardwareWallet()){const t=await xe({title:_e.CONFIRM_POPUP_VERIFY_ADDR,html:W(a),resolvePromise:k.getMasterKey().verifyAddress(n)});if(M.log(a,t),a!==t)throw new Error("User did not verify address")}return t&&D(),[a,n]}function W(t){return`${Ce.popupHardwareAddrCheck} ${E}.\n
${t}
`}a(51409);var H=a(77191);const K={0:0,FALSE:0,PUSHDATA1:76,PUSHDATA2:77,PUSHDATA4:78,"1NEGATE":79,RESERVED:80,1:81,TRUE:81,2:82,3:83,4:84,5:85,6:86,7:87,8:88,9:89,10:90,11:91,12:92,13:93,14:94,15:95,16:96,NOP:97,VER:98,IF:99,NOTIF:100,VERIF:101,VERNOTIF:102,ELSE:103,ENDIF:104,VERIFY:105,RETURN:106,TOALTSTACK:107,FROMALTSTACK:108,"2DROP":109,"2DUP":110,"3DUP":111,"2OVER":112,"2ROT":113,"2SWAP":114,IFDUP:115,DEPTH:116,DROP:117,DUP:118,NIP:119,OVER:120,PICK:121,ROLL:122,ROT:123,SWAP:124,TUCK:125,CAT:126,SUBSTR:127,LEFT:128,RIGHT:129,SIZE:130,INVERT:131,AND:132,OR:133,XOR:134,EQUAL:135,EQUALVERIFY:136,RESERVED1:137,RESERVED2:138,"1ADD":139,"1SUB":140,"2MUL":141,"2DIV":142,NEGATE:143,ABS:144,NOT:145,"0NOTEQUAL":146,ADD:147,SUB:148,MUL:149,DIV:150,MOD:151,LSHIFT:152,RSHIFT:153,BOOLAND:154,BOOLOR:155,NUMEQUAL:156,NUMEQUALVERIFY:157,NUMNOTEQUAL:158,LESSTHAN:159,GREATERTHAN:160,LESSTHANOREQUAL:161,GREATERTHANOREQUAL:162,MIN:163,MAX:164,WITHIN:165,RIPEMD160:166,SHA1:167,SHA256:168,HASH160:169,HASH256:170,CODESEPARATOR:171,CHECKSIG:172,CHECKSIGVERIFY:173,CHECKMULTISIG:174,CHECKMULTISIGVERIFY:175,NOP1:176,NOP2:177,CHECKLOCKTIMEVERIFY:177,NOP3:178,NOP4:179,NOP5:180,NOP6:181,NOP7:182,NOP8:183,NOP9:184,NOP10:185,ZEROCOINMINT:193,ZEROCOINSPEND:194,ZEROCOINPUBLICSPEND:195,CHECKCOLDSTAKEVERIFY_LOF:209,CHECKCOLDSTAKEVERIFY:210,INVALIDOPCODE:255};Object.freeze(K),a(25108);var F=a(25108);class V{cData={};strName="";strEndpoint="";async ensureCacheExists(){this.cData&&Object.keys(this.cData).length||await this.fetch()}async fetch(){try{return this.cData=await(await fetch(this.strEndpoint)).json()}catch(t){return F.warn("CoinGecko: Failed to fetch prices!"),F.warn(t),null}}}var $=a(91555),X=a(49963),j=a(66252),Y=a(3577);const G={class:"dcWallet-activityLbl"},z={key:0},Q={class:"dcWallet-activity"},q={class:"scrollTable"},J={class:"table table-responsive table-sm stakingTx table-mobile-scroll"},Z={scope:"col",class:"tx1"},tt={scope:"col",class:"tx2"},et=(0,j._)("th",{scope:"col",class:"tx3"},"Amount",-1),at=(0,j._)("th",{scope:"col",class:"tx4 text-right"},null,-1),nt={class:"align-middle pr-10px",style:{"font-size":"12px"}},st={style:{opacity:"0.75"}},ot={class:"align-middle pr-10px txcode"},rt=["href"],it={class:"wallet-code text-center active ptr",style:{padding:"4px 9px"}},ct={class:"align-middle pr-10px"},lt={style:{"font-family":"monospace"}},dt={class:"text-right pr-10px align-middle"},ut={key:0,class:"fas fa-check"},pt={key:1,class:"fas fa-hourglass-end"},ht={class:"buttoni-icon"},yt={class:"buttoni-text"},mt={__name:"Activity",props:{title:String,rewards:Boolean},setup(t,{expose:e}){const a=t,n=(0,d.iH)([]);let s=0;const o=(0,d.iH)(!1),r=(0,d.iH)(!1),i=(0,d.iH)("-"),c=(0,j.Fl)((()=>p.current.TICKER)),l=(0,j.Fl)((()=>f().strUrl)),u=(0,j.Fl)((()=>({1:{icon:"fa-gift",colour:"white",content:Ce.activityBlockReward},5:{icon:"fa-minus",colour:"#f93c4c",content:Ce.activitySentTo},4:{icon:"fa-plus",colour:"#5cff5c",content:Ce.activityReceivedFrom},2:{icon:"fa-snowflake",colour:"white",content:Ce.activityDelegatedTo},3:{icon:"fa-fire",colour:"white",content:Ce.activityUndelegated},0:{icon:"fa-question",colour:"white",content:Ce.activityUnknown}})));async function h(t=!1,e=!0){const c=f();if(!c)return;if(o.value)return;let l;try{if(o.value=!0,l=s===c.arrTxHistory.length&&e?await c.syncTxHistoryChunk(t):c.arrTxHistory,!l||c!==f())return;s=l.length}finally{o.value=!1}if(r.value=c.isHistorySynced,a.rewards){const t=l.filter((t=>1===t.type));if(t.length!==n.length){const e=t.reduce(((t,e)=>t+e.amount),0);return i.value=`${c.isHistorySynced?"":"≥"}${e}`,void y(t)}}n.length!==l.length&&y(l)}async function y(t){const e=[],s=f(),o={year:"2-digit",month:"2-digit",day:"2-digit"},r={hour:"2-digit",minute:"2-digit",hour12:!0};let i="",c=0;const l=await Ae.getInstance(),d=await l.getAccount();for(const n of t){const t=new Date(1e3*n.time);let l=Date.now()/1e3-n.time>86400?"":t.toLocaleTimeString(void 0,r);l||(i&&c-1e3*n.time<432e5||(i=t.toLocaleDateString(void 0,o)),l=i),c=1e3*n.time;const p=s.cachedBlockCount-n.blockHeight>=a.rewards?100:6;let h="";h=n.amount<.01?"<0.01":n.amount>=100?Math.round(n.amount).toString():n.amount.toFixed(2);let y=!1;if(5===n.type||4===n.type){y=!0;for(const t of n.receivers.concat(n.senders))await k.isOwnAddress(t)||(y=!1)}let{icon:m,colour:g,content:f}=u.value[n.type];const T=f.match(/{(.)}/);if(T){const t={r:"receivers",s:"senders"}[T[1]];let e="";if(y)e=Ce.activitySelf;else if(n.shieldedOutputs)e=Ce.activityShieldedAddress;else{const a=(await Promise.all(n[t].map((async t=>[await k.isOwnAddress(t),t])))).filter((([t,e])=>!t)).map((([t,e])=>L(d,e)));e=[...new Set(a.map((t=>t?.length>=32?t?.substring(0,6):t)))].join(", ")+"..."}f=f.replace(/{.}/,e)}e.push({date:l,id:n.id,content:a.rewards?n.id:f,formattedAmt:h,confirmed:p,icon:m,colour:g})}n.value=e}return(0,j.YP)(Ce,(async()=>await h(!1,!1))),e({update:h,reset:function(){n.value=[],s=0,h(!1)},getTxCount:function(){return s}}),(e,a)=>((0,j.wg)(),(0,j.iD)(j.HY,null,[(0,j._)("center",null,[(0,j._)("span",G,[(0,j.Uk)((0,Y.zw)(t.title)+" ",1),t.rewards?((0,j.wg)(),(0,j.iD)("span",z," ("+(0,Y.zw)(i.value)+" "+(0,Y.zw)(c.value)+") ",1)):(0,j.kq)("v-if",!0)])]),(0,j._)("div",Q,[(0,j._)("div",q,[(0,j._)("div",null,[(0,j._)("table",J,[(0,j._)("thead",null,[(0,j._)("tr",null,[(0,j._)("th",Z,(0,Y.zw)((0,d.SU)(Ce).time),1),(0,j._)("th",tt,(0,Y.zw)(t.rewards?(0,d.SU)(Ce).ID:(0,d.SU)(Ce).description),1),et,at])]),(0,j._)("tbody",null,[((0,j.wg)(!0),(0,j.iD)(j.HY,null,(0,j.Ko)(n.value,(t=>((0,j.wg)(),(0,j.iD)("tr",null,[(0,j._)("td",nt,[(0,j._)("i",st,(0,Y.zw)(t.date),1)]),(0,j._)("td",ot,[(0,j._)("a",{href:l.value+"/tx/"+t.id,target:"_blank",rel:"noopener noreferrer"},[(0,j._)("code",it,(0,Y.zw)(t.content),1)],8,rt)]),(0,j._)("td",ct,[(0,j._)("b",lt,[(0,j._)("i",{class:(0,Y.C_)(["fa-solid",[t.icon]]),style:(0,Y.j5)([{"padding-right":"3px"},{color:t.colour}])},null,6),(0,j.Uk)(" "+(0,Y.zw)(t.formattedAmt)+" "+(0,Y.zw)(c.value),1)])]),(0,j._)("td",dt,[(0,j._)("span",{class:(0,Y.C_)(["badge mb-0",{"badge-purple":t.confirmed,"bg-danger":!t.confirmed}])},[t.confirmed?((0,j.wg)(),(0,j.iD)("i",ut)):((0,j.wg)(),(0,j.iD)("i",pt))],2)])])))),256))])])]),(0,j._)("center",null,[r.value?(0,j.kq)("v-if",!0):((0,j.wg)(),(0,j.iD)("button",{key:0,class:"pivx-button-medium",onClick:a[0]||(a[0]=t=>h())},[(0,j._)("span",ht,[(0,j._)("i",{class:(0,Y.C_)(["fas fa-sync fa-tiny-margin",{"fa-spin":o.value}])},null,2)]),(0,j._)("span",yt,(0,Y.zw)((0,d.SU)(Ce).loadMore),1)]))])])])],64))}};var gt=a(23148);gt.kL.register(gt.wL,gt.jI,gt.qi,gt.De,gt.u,gt.f$);let ft=null;async function Tt(){if("block"===!Qt.domModalWalletBreakdown.style.display)return;const t=await async function(){const t=[];qt.getBalance()>0&&t.push({type:Ce.chartPublicAvailable,balance:qt.getBalance()/u,colour:"rgba(127, 17, 224, 1)"}),qt.getDelegatedBalance()>0&&t.push({type:"Staking",balance:qt.getDelegatedBalance()/u,colour:"rgba(42, 27, 66, 1)"});const e=await(await Ae.getInstance()).getMasternode();return(await Promise.all(qt.getConfirmed().map((async t=>({UTXO:t,isMnUTXO:re(t,e)}))))).filter((({isMnUTXO:t})=>t)).forEach((({UTXO:e})=>t.push({type:"Masternode",balance:e.sats/u,colour:"rgba(19, 13, 30, 1)"}))),t}();if(!ft)return await async function(t){const e=new Image;e.src=(await a.e(195).then(a.t.bind(a,52195,17))).default;const n={id:"centreLogo",beforeDraw:t=>{const a=t.ctx,{top:n,left:s,width:o,height:r}=t.chartArea,i=s+o/2-e.width/2,c=n+r/2-e.height/2;a.globalAlpha=.25,a.drawImage(e,i,c,e.width,e.height),a.globalAlpha=1}};ft=new gt.kL(Qt.domWalletBreakdownCanvas,{type:"doughnut",data:{labels:t.map((t=>t.type)),datasets:[{label:p.current.TICKER,data:t.map((t=>t.balance))}]},plugins:[n],options:{backgroundColor:t.map((t=>t.colour)),radius:"75%",cutout:"75%",animation:{duration:500},plugins:{legend:{labels:{color:"#FFFFFF",font:{size:16}}}}}}),ft.interval=setInterval(Tt,2500)}(t);ft.data.labels=t.map((t=>t.type)),ft.data.datasets[0].data=t.map((t=>t.balance)),ft.data.datasets[0].backgroundColor=t.map((t=>t.colour)),ft.update()}const wt={class:"dcWallet-balances mb-4"},vt={class:"row lessBot p-0"},Et={class:"col-6 d-flex dcWallet-topLeftMenu",style:{"justify-content":"flex-start"}},At={class:"noselect balance-title"},_t={class:"col-6 d-flex dcWallet-topRightMenu",style:{"justify-content":"flex-end"}},Ct={class:"btn-group dropleft"},St=(0,j._)("i",{class:"fa-solid fa-ellipsis-vertical",style:{width:"20px"},"data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},null,-1),bt={class:"dropdown"},Ot={class:"dropdown-move"},Pt={class:"dropdown-menu","aria-labelledby":"dropdownMenuButton"},Rt=(0,j._)("i",{class:"fa-solid fa-chart-pie"},null,-1),It=(0,j._)("i",{class:"fa-solid fa-magnifying-glass"},null,-1),Dt=(0,j._)("i",{class:"fa-solid fa-address-book"},null,-1),Nt=(0,j._)("i",{class:"fas fa-key"},null,-1),xt=(0,j._)("i",{class:"fas fa-sync-alt"},null,-1),Lt={class:"dropdown-item ptr","data-toggle":"modal","data-target":"#redeemCodeModal"},Mt=(0,j._)("i",{class:"fa-solid fa-gift"},null,-1),kt=(0,j._)("canvas",{id:"identicon",class:"innerShadow",width:"65",height:"65",style:{width:"65px",height:"65px"},"data-jdenticon-value":""},null,-1),Ut=(0,j._)("br",null,null,-1),Bt=["innerHTML"],Wt={class:"dcWallet-pivxTicker"},Ht=(0,j._)("i",{class:"fa-solid fa-plus",style:{opacity:"0.5",position:"relative",left:"2px"}},null,-1),Kt=(0,j._)("br",null,null,-1),Ft={class:"dcWallet-usdBalance"},Vt={class:"dcWallet-usdValue"},$t={class:"dcWallet-usdValue"},Xt={class:"row lessTop p-0"},jt={class:"col-6 d-flex",style:{"justify-content":"flex-start"}},Yt={class:"col-6 d-flex",style:{"justify-content":"flex-end"}},Gt={__name:"WalletBalance",setup(t){const e=(0,d.iH)(0),a=(0,d.iH)(0),n=(0,d.iH)(0),s=(0,d.iH)(!1),o=(0,d.iH)("USD"),r=(0,j.Fl)((()=>{const t=(e.value/u).toFixed(n.value);return Ue(t,t.length>=10?"17px":"25px")})),i=(0,j.Fl)((()=>{const{nValue:t,cLocale:n}=te(e.value/u*a.value);return t.toLocaleString("en-gb",n)})),c=(0,j.Fl)((()=>p.current.TICKER));m().on("balance-update",(async()=>{e.value=qt.getBalance(),o.value=de.toUpperCase(),a.value=await ue.getPrice(de),n.value=ye})),m().on("sync-status",(t=>{s.value="start"===t}));const l=(0,d.iH)(!1),h=(0,d.iH)(!1);return m().on("wallet-import",(()=>{l.value=k.isHD(),h.value=k.isHardwareWallet()})),(t,e)=>((0,j.wg)(),(0,j.iD)("center",null,[(0,j._)("div",wt,[(0,j._)("div",vt,[(0,j._)("div",Et,[(0,j._)("h3",At,[(0,j._)("span",{class:"reload noselect",onClick:e[0]||(e[0]=t=>async function(){if(!s.value)try{s.value=!0,await async function(){const t=f();if(!t.enabled)return zt.warn("Offline mode active: For your security, the wallet will avoid ALL internet requests.");k.isLoaded()&&await t.getBlockCount()}()}finally{s.value=!1}}())},[(0,j._)("i",{class:(0,Y.C_)(["fa-solid fa-rotate-right",{playAnim:s.value}])},null,2)])])]),(0,j._)("div",_t,[(0,j._)("div",Ct,[St,(0,j._)("div",bt,[(0,j._)("div",Ot,[(0,j._)("div",Pt,[(0,j._)("a",{class:"dropdown-item ptr",onClick:e[1]||(e[1]=t=>(0,d.SU)(Tt)()),"data-toggle":"modal","data-target":"#walletBreakdownModal"},[Rt,(0,j._)("span",null," "+(0,Y.zw)((0,d.SU)(Ce).balanceBreakdown),1)]),(0,j._)("a",{class:"dropdown-item ptr",onClick:e[2]||(e[2]=t=>(0,d.SU)(ne)())},[It,(0,j._)("span",null," "+(0,Y.zw)((0,d.SU)(Ce).viewOnExplorer),1)]),(0,j._)("a",{class:"dropdown-item ptr",onClick:e[3]||(e[3]=t=>(0,d.SU)(R)()),"data-toggle":"modal","data-target":"#contactsModal"},[Dt,(0,j._)("span",null," "+(0,Y.zw)((0,d.SU)(Ce).contacts),1)]),h.value?(0,j.kq)("v-if",!0):((0,j.wg)(),(0,j.iD)("a",{key:0,class:"dropdown-item ptr","data-toggle":"modal","data-target":"#exportPrivateKeysModal","data-backdrop":"static","data-keyboard":"false",onClick:e[4]||(e[4]=t=>(0,d.SU)(oe)())},[Nt,(0,j._)("span",null," "+(0,Y.zw)((0,d.SU)(Ce).export),1)])),l.value?((0,j.wg)(),(0,j.iD)("a",{key:1,class:"dropdown-item ptr","data-toggle":"modal","data-target":"#qrModal",onClick:e[5]||(e[5]=t=>(0,d.SU)(B)({updateGUI:!0,verify:!0}))},[xt,(0,j._)("span",null," "+(0,Y.zw)((0,d.SU)(Ce).refreshAddress),1)])):(0,j.kq)("v-if",!0),(0,j._)("a",Lt,[Mt,(0,j._)("span",null," "+(0,Y.zw)((0,d.SU)(Ce).redeemOrCreateCode),1)])])])])])])]),kt,Ut,(0,j._)("span",{class:"ptr",onClick:e[6]||(e[6]=t=>(0,d.SU)(Tt)()),"data-toggle":"modal","data-target":"#walletBreakdownModal"},[(0,j._)("span",{class:"dcWallet-pivxBalance",innerHTML:r.value},null,8,Bt),(0,j._)("span",Wt," "+(0,Y.zw)(c.value)+" ",1),Ht]),Kt,(0,j._)("div",Ft,[(0,j._)("span",Vt,(0,Y.zw)(i.value),1),(0,j._)("span",$t," "+(0,Y.zw)(o.value),1)]),(0,j._)("div",Xt,[(0,j._)("div",jt,[(0,j._)("div",{class:"dcWallet-btn-left",onClick:e[7]||(e[7]=t=>(0,d.SU)(se)("transferMenu","transferAnimation"))},(0,Y.zw)((0,d.SU)(Ce).send),1)]),(0,j._)("div",Yt,[(0,j._)("div",{class:"dcWallet-btn-right",onClick:e[8]||(e[8]=t=>(0,d.SU)(D)()),"data-toggle":"modal","data-target":"#qrModal"},(0,Y.zw)((0,d.SU)(Ce).receive),1)])])])]))}};a(19755);var zt=a(25108);let Qt={};const qt=new v;(0,X.ri)(mt,{title:"Activity",rewards:!1}).mount("#activityDashboard"),(0,X.ri)(mt,{title:"Reward History",rewards:!0}).mount("#stakeActivity"),(0,X.ri)(Gt).mount("#walletBalance");let Jt=!1;function Zt(){Qt.domGuiStakingValueCurrency.innerText=de.toUpperCase(),Qt.domSendAmountValueCurrency.innerText=de.toUpperCase(),Qt.domSendAmountCoinsTicker.innerText=p.current.TICKER,Qt.domStakeAmountValueCurrency.innerText=de.toUpperCase(),Qt.domStakeAmountCoinsTicker.innerText=p.current.TICKER,Qt.domUnstakeAmountValueCurrency.innerText=de.toUpperCase(),Qt.domUnstakeAmountCoinsTicker.innerText=p.current.TICKER}function te(t){let e=t;const a=Intl.supportedValuesOf("currency").includes(de.toUpperCase())?{style:"currency",currency:de,currencyDisplay:"narrowSymbol"}:{maximumFractionDigits:8,minimumFractionDigits:8};return"sats"===de&&(e=Math.round(e),a.maximumFractionDigits=0,a.minimumFractionDigits=0),{nValue:e,cLocale:a}}function ee(t=!1){const e=qt.getBalance();if(t){const t=(e/u).toFixed(ye);Qt.domAvailToDelegate.innerHTML=Ue(t)+" "+p.current.TICKER,Zt()}return e}function ae(t=!1){const e=qt.getDelegatedBalance();if(t){const t=(e/u).toFixed(ye),a=t.length;Qt.domGuiBalanceStaking.innerHTML=Ue(t,a>=10?"17px":"25px"),Qt.domAvailToUndelegate.innerHTML=Ue(t)+" "+p.current.TICKER,Zt(),async function(t,e=!1){const a=await ue.getPrice(de);if(a){const n=(e?ae():ee())/u*a,{nValue:s,cLocale:o}=te(n);t.innerText=s.toLocaleString("en-gb",o)}}(Qt.domGuiStakingValue,!0)}return e}async function ne(t=""){if(k.isLoaded()&&k.isHD()&&!t){const t=await k.getXPub();window.open(pe.url+"/xpub/"+t,"_blank")}else{const e=t||await k.getAddress();window.open(pe.url+"/address/"+e,"_blank")}}function se(t,e){let a=document.getElementById(t);a.classList.contains(e)?(a.classList.remove(e),Qt.domBlackBack.classList.remove("d-none"),setTimeout((()=>{Qt.domBlackBack.classList.remove("blackBackHide")}),10)):(a.classList.add(e),Qt.domBlackBack.classList.add("blackBackHide"),setTimeout((()=>{Qt.domBlackBack.classList.add("d-none")}),150))}async function oe(){if(Jt)Qt.domExportPrivateKey.innerHTML="",Jt=!1;else if(await U()){const{encWif:t}=await(await Ae.getInstance()).getAccount();Qt.domExportPrivateKey.innerHTML=t,Jt=!0}else k.isViewOnly()?Jt=!1:(Qt.domExportPrivateKey.innerHTML=k.getMasterKey().keyToBackup,Jt=!0)}function re(t,e){if(e?.collateralTxId){const{collateralTxId:a,outidx:n}=e;return a===t.id&&t.vout===n}return!1}p.current.isTestnet;const ie=t=>(t.preventDefault(),Ne("warning",_e.SAVE_WALLET_PLEASE,1e4),t.returnValue=Ce.BACKUP_OR_ENCRYPT_WALLET);function ce(t){const e=`${Ce.unhandledException}
${ke(t.message||t.reason)}`;try{Ne("warning",e)}catch(t){alert(e)}}try{window.addEventListener("error",ce),window.addEventListener("unhandledrejection",ce)}catch(t){}let le=!1,de="usd",ue=new class extends V{constructor(){super(),this.strName="CoinGecko",this.strEndpoint="https://api.coingecko.com/api/v3/coins/pivx?localization=false&tickers=false&market_data=true&community_data=false&developer_data=false&sparkline=false"}async getPrice(t){return await this.ensureCacheExists(),this.cData?.market_data?.current_price[t]||0}async getCurrencies(){return await this.ensureCacheExists(),We(this.cData)?[]:Object.keys(this.cData.market_data.current_price)}},pe=p.current.Explorers[0],he=p.current.Nodes[0],ye=2;class me{analytics;explorer;node;autoswitch;coldAddress;translation;displayCurrency;displayDecimals;advancedMode;constructor({analytics:t,explorer:e,node:a,autoswitch:n=!0,translation:s="",displayCurrency:o="usd",displayDecimals:r=ye,advancedMode:i=!1,coldAddress:c=""}={}){this.analytics=t,this.explorer=e,this.node=a,this.autoswitch=n,this.translation=s,this.displayCurrency=o,this.displayDecimals=r,this.advancedMode=i,this.coldAddress=c}}let ge={hit:"A ping indicating an app load, no unique data is sent.",time_to_sync:"The time in seconds it took for MPW to last synchronise.",transaction:"A ping indicating a Tx, no unique data is sent, but may be inferred from on-chain time."};Object.keys(ge);var fe=a(60743),Te=a(25108);class we{constructor({walletPrivateKeyPath:t,mnPrivateKey:e,collateralTxId:a,outidx:n,addr:s}={}){this.walletPrivateKeyPath=t,this.mnPrivateKey=e,this.collateralTxId=a,this.outidx=n,this.addr=s}static sessionVotes=[];async _getWalletPrivateKey(){return await k.getMasterKey().getPrivateKey(this.walletPrivateKeyPath)}async getFullData(){const t=`${he.url}/listmasternodes?params=${this.collateralTxId}`;try{const e=(await(await fetch(t)).json()).filter((t=>t.outidx===this.outidx));return e.length>0?e[0]:{status:"MISSING"}}catch(t){return Te.error(t),"EXPLORER_DOWN"}}async getStatus(){const t=await this.getFullData();return t?t.status:"MISSING"}static _decodeIpAddress(t,e){let a;if(t.endsWith(".onion")){const e=fe.decode(t.slice(0,-6)).split("").map((t=>t.charCodeAt(0)));switch(e.length){case 10:a=[253,135,216,126,235,67,...e];break;case 35:a=[4,32,...e.slice(0,32)];break;default:throw new Error("Invalid onion address")}}else a=(t.includes(".")?$.S5.fromAddress4(t):new $.S5(t)).toUnsignedByteArray();return r([...new Array(Math.max(16-a.length,0)).fill(0),...a])+r(we._numToBytes(e,2,!1))}static _numToBytes(t,e=8,a=!0){const n=[];for(let a=0;at.charCodeAt(0))),a=await this._getWalletPrivateKey(),n=e.split("").map((t=>t.charCodeAt(0))),s=i(t.concat(n.length).concat(n)),[o,r]=await c.Xx(s,Ke(a,!0),{der:!1,recovered:!0});return[r+31,...o]}}async getSignedPingMessage(t,e){const a=we.getPingSignature({vin:{txid:this.collateralTxId,idx:this.outidx},blockHash:e,sigTime:t}),[n,s]=await c.Xx(a,Ke(this.mnPrivateKey,!0),{der:!1,recovered:!0});return[s+27,...n]}async getWalletPublicKey(){return k.isHardwareWallet()?o(await k.getMasterKey().getPublicKey(this.walletPrivateKeyPath)):o(He({pkBytes:Ke(await this._getWalletPrivateKey(),!0),output:"COMPRESSED_HEX"}))}async broadcastMessageToHex(){const t=Math.round(Date.now()/1e3),e=await we.getLastBlockHash();let a,n;this.addr.includes(".")?[a,n]=this.addr.split(":"):([a,n]=this.addr.slice(1).split("]"),n=n.slice(1));const s=await this.getWalletPublicKey(),i=o(He({pkBytes:Ke(this.mnPrivateKey,!0),output:"UNCOMPRESSED_HEX",compress:!1})),c=await this.getSignedMessage(t),l=await this.getSignedPingMessage(t,e);return r([...o(this.collateralTxId).reverse(),...we._numToBytes(this.outidx,4,!0),...we._numToBytes(0,1,!0),...we._numToBytes(4294967295,4,!0),...o(we._decodeIpAddress(a,n)),...we._numToBytes(s.length,1,!0),...s,...we._numToBytes(i.length,1,!0),...i,...we._numToBytes(c.length,1,!0),...c,...we._numToBytes(t,8,!0),...we._numToBytes(p.current.PROTOCOL_VERSION,4,!0),...o(this.collateralTxId).reverse(),...we._numToBytes(this.outidx,4,!0),...we._numToBytes(0,1,!0),...we._numToBytes(4294967295,4,!0),...o(e).reverse(),...we._numToBytes(t,8,!0),...we._numToBytes(l.length,1,!0),...l,...we._numToBytes(1,4,!0),...we._numToBytes(1,4,!0)])}async start(){const t=await this.broadcastMessageToHex(),e=`${he.url}/relaymasternodebroadcast?params=${t}`;return(await(await fetch(e)).text()).includes("Masternode broadcast sent")}static async getProposals({fAllowFinished:t=!1}={}){const e=`${he.url}/getbudgetinfo`;let a=await(await fetch(e)).json();return t||(a=a.filter((t=>t.RemainingPaymentCount>0))),a}async getSignedVoteMessage(t,e,a){const n=[...o(this.collateralTxId).reverse(),...we._numToBytes(this.outidx,4,!0),0,255,255,255,255,...o(t).reverse(),...we._numToBytes(e,4,!0),...we._numToBytes(a,8,!0)],[r,l]=await c.Xx(i(n),Ke(this.mnPrivateKey,!0),{der:!1,recovered:!0});return s.Buffer.from([l+27,...r]).toString("base64")}async getVote(t,e){const a=we.sessionVotes.findIndex((([t])=>t===e));if(-1!==a)return we.sessionVotes[a][1];const n=`${encodeURI('.[] | select(.mnId=="')}${this.collateralTxId}-${this.outidx}")`,s=`${he.url}/getbudgetvotes?params=${t}&filter=${n}`;try{const{Vote:t}=await(await fetch(s)).json();return"YES"===t?1:2}catch(t){return null}}storeVote(t,e){const a=[t,e],n=we.sessionVotes.findIndex((([e])=>e===t));-1!==n?we.sessionVotes[n]=a:we.sessionVotes.push(a)}async vote(t,e){const a=Math.round(Date.now()/1e3),n=await this.getSignedVoteMessage(t,e,a),s=`${he.url}/mnbudgetrawvote?params=${this.collateralTxId},${this.outidx},${t},${1===e?"yes":"no"},${a},${encodeURI(n).replaceAll("+","%2b")}`;return await(await fetch(s)).text()}static createProposalHash({name:t,url:e,nPayments:a,start:n,address:s,monthlyPayment:o}){const c=n+(p.current.budgetCycleBlocks+1)*a,l=H.decode(s),d=[K.DUP,K.HASH160,l.length-5,...l.slice(1,l.length-4),K.EQUALVERIFY,K.CHECKSIG],u=[t.length,...t.split("").map((t=>t.charCodeAt(0))),e.length,...e.split("").map((t=>t.charCodeAt(0))),...we._numToBytes(n,4,!0),...we._numToBytes(c,4,!0),...we._numToBytes(o,8,!0),d.length,...d];return r(i(new Uint8Array(u)))}static async finalizeProposal({name:t,url:e,nPayments:a,start:n,address:s,monthlyPayment:o,txid:r}){try{const i=await(await fetch(`${he.url}/submitbudget?params=${encodeURI(t)},${encodeURI(e)},${a},${n},${encodeURI(s)},${o/u},${r}`)).text();return 66==i.length?{ok:!0,hash:i}:i.includes("is unconfirmed")||i.includes("requires at least")?{ok:!1,err:"unconfirmed"}:i.includes("invalid budget proposal")||i.includes("Invalid block start")?{ok:!1,err:"invalid"}:{ok:!1,err:"other"}}catch(t){return Te.error(t),{ok:!1,err:t}}}static async getNextSuperblock(){return parseInt(await(await fetch(`${he.url}/getnextsuperblock`)).text())}static async getMasternodeCount(){return await(await fetch(`${he.url}/getmasternodecount`)).json()}static isValidProposal({name:t,url:e,nPayments:a,_start:n,address:s,monthlyPayment:o}){const r=/^[a-z0-9 .,;\-_/:?@()]+$/i;return t.length>20?{ok:!1,err:"name_length"}:r.test(t)?e.length>64?{ok:!1,err:"url_length"}:r.test(e)&&/^(https?):\/\/[^\s/$.?#][^\s]*[^\s/.]\.[^\s/.][^\s]*[^\s.]$/.test(e)?a<1||a>p.current.maxPaymentCycles?{ok:!1,err:"invalid_payment_count"}:o<10*u||o*a>p.current.maxPayment?{ok:!1,err:"invalid_monthly_payment"}:34===(i=s).length&&p.current.PUBKEY_PREFIX.includes(i[0])?{ok:!0}:{ok:!1,err:"invalid_address"}:{ok:!1,err:"invalid_url"}:{ok:!1,err:"invalid_name"};var i}}a(19755);class ve{constructor({code:t,address:e,pkBytes:a,utxos:n,time:s}){this.code=t,this.address=e,this.pkBytes=a,this.utxos=n,this.time=s instanceof Date?s:new Date(s)}fSynced=!1;fLock=!1;async getBalance(t=!1){return t||await this.getUTXOs(),this.utxos.reduce(((t,e)=>t+e.sats),0)}async getUTXOs(t=!1){if(!t&&this.fLock)return this.utxos;this.fLock=!0,this.address||(this.address=He({pkBytes:this.pkBytes}));const e=await f().getUTXOs(this.address);this.utxos=[];for(const a of e)t?this.utxos.push(await f().getUTXOFullInfo(a)):this.utxos.push({id:a.txid,sats:parseInt(a.value),vout:a.vout});return this.fLock=!1,this.fSynced=!0,this.utxos}}var Ee=a(25108);class Ae{static version=1;#s;constructor({db:t}){this.#s=t}close(){this.#s.close(),this.#s=null}async addMasternode(t,e){const a=this.#s.transaction("masternodes","readwrite").objectStore("masternodes");await a.put(t,"masternode")}async removeMasternode(t){const e=this.#s.transaction("masternodes","readwrite").objectStore("masternodes");await e.delete("masternode")}async addPromo(t){const e=this.#s.transaction("promos","readwrite").objectStore("promos");await e.put(t,t.code)}async removePromo(t){const e=this.#s.transaction("promos","readwrite").objectStore("promos");await e.delete(t)}async addAccount(t){if(!(t instanceof O))return Ee.error("---- addAccount() called with invalid input, input dump below ----"),Ee.error(t),Ee.error("---- end of account dump ----"),Ne("warning","Account Creation Error
Logs were dumped in your Browser Console
Please submit these privately to PIVX Labs Developers!"),!1;const e=new O;for(const a of Object.keys(e))Be(t[a],e[a])?e[a]=t[a]:Ee.error('DB: addAccount() key "'+a+'" does NOT match the correct class type, likely data mismatch, please report!');const a=this.#s.transaction("accounts","readwrite").objectStore("accounts");if(await a.get("account"))return Ee.error("DB: Ran addAccount() when account already exists!");await a.put(e,"account")}async updateAccount(t,e=!1){if(!(t instanceof O))return Ee.error("---- updateAccount() called with invalid input, input dump below ----"),Ee.error(t),Ee.error("---- end of account dump ----"),Ne("warning","DB Update Error
Your wallet is safe, logs were dumped in your Browser Console
Please submit these privately to PIVX Labs Developers!"),!1;const a=await this.getAccount();if(!a)return Ee.error("---- updateAccount() called without an account existing, input dump below ----"),Ee.error(t),Ee.error("---- end of input dump ----"),Ne("warning","DB Update Error
Logs were dumped in your Browser Console
Please submit these privately to PIVX Labs Developers!"),!1;for(const n of Object.keys(a))Be(t[n],a[n])?!e&&We(t[n])||(a[n]=t[n]):Ee.error('DB: updateAccount() key "'+n+'" does NOT match the correct class type, likely data mismatch, please report!');const n=this.#s.transaction("accounts","readwrite").objectStore("accounts");await n.put(a,"account")}async removeAccount({publicKey:t}){const e=this.#s.transaction("accounts","readwrite").objectStore("accounts");await e.delete("account")}async getAccount(){const t=this.#s.transaction("accounts","readonly").objectStore("accounts"),e=await t.get("account");if(!e)return null;const a=new O;for(const t of Object.keys(a))Object.prototype.hasOwnProperty.call(e,t)&&(Be(e[t],a[t])?a[t]=e[t]:Ee.error('DB: getAccount() key "'+t+'" does NOT match the correct class type, likely bad data saved, please report!'));return a}async getMasternode(t){const e=this.#s.transaction("masternodes","readonly").objectStore("masternodes");return new we(await e.get("masternode"))}async getAllPromos(){const t=this.#s.transaction("promos","readonly").objectStore("promos");return(await t.getAll()).map((t=>new ve(t)))}async getSettings(){const t=this.#s.transaction("settings","readonly").objectStore("settings");return new me(await t.get("settings"))}async setSettings(t){const e=await this.getSettings(),a=this.#s.transaction("settings","readwrite").objectStore("settings");await a.put({...e,...t},"settings")}async#o(){if(0===localStorage.length)return;const t=new me({analytics:localStorage.analytics,explorer:localStorage.explorer,node:localStorage.node,translation:localStorage.translation,displayCurrency:localStorage.displayCurrency});if(await this.setSettings(t),localStorage.masternode)try{const t=JSON.parse(localStorage.masternode);await this.addMasternode(t)}catch(t){Ee.error(t),Ne("warning",_e.MIGRATION_MASTERNODE_FAILURE)}if(localStorage.encwif||localStorage.publicKey)try{const t=JSON.parse(localStorage.localProposals||"[]"),e=new O({publicKey:localStorage.publicKey,encWif:localStorage.encwif,localProposals:t});await this.addAccount(e)}catch(t){Ee.error(t),Ne("warning",_e.MIGRATION_ACCOUNT_FAILURE),localStorage.encwif&&await xe({title:Ce.MIGRATION_ACCOUNT_FAILURE_TITLE,html:`${Ce.MIGRATION_ACCOUNT_FAILURE_HTML} ${ke(localStorage.encwif)} `})}}static async create(t){let e=!1;const a=new Ae({db:null}),n=await(0,h.X3)(`MPW-${t}`,2,{upgrade:(t,a)=>{Ee.log("DB: Upgrading from "+a+" to 2"),0==a&&(t.createObjectStore("masternodes"),t.createObjectStore("accounts"),t.createObjectStore("settings"),e=!0),a<=1&&t.createObjectStore("promos")},blocking:()=>{a.close(),alert("New update received!"),window.location.reload()}});return a.#s=n,e&&a.#o(),a}static#r=new Map;static async getInstance(){const t=p.current.name,e=this.#r.get(t);return e&&e.#s||this.#r.set(t,await Ae.create(t)),this.#r.get(t)}}a(25108);const _e={},Ce=(0,d.qj)({});function Se(t,e){return e.forEach((e=>{t=t.replaceAll("{"+Object.keys(e)[0]+"}",Object.values(e)[0])})),t}var be=a(96192),Oe=(a(27715),a(19755));const Pe=21,Re=Pe+4;function Ie(t=32){return crypto.getRandomValues(new Uint8Array(t))}function De(t,e,a){const n=t.length;if(n-a-e.length<0){const t="CRITICAL: Overflow detected ("+(n-a-e.length)+"), possible state corruption, backup and refresh advised.";throw Ne("warning",t,5e3),Error(t)}let s=0;for(;a{n.style.opacity="1",n.style.zIndex="999999",n.classList.add("bounce-ani"),n.classList.add("bounce")}),100),t){case"warning":s="fa-exclamation";break;case"info":s="fa-info";break;default:s="fa-check"}n.innerHTML=`\n
\n \n
\n
\n ${e}\n
`,n.destroy=()=>{clearTimeout(n.timer),n.style.opacity="0",setTimeout((()=>{n.remove()}),600)},n.addEventListener("click",n.destroy),a>0&&(n.timer=setTimeout(n.destroy,a)),Qt.domAlertPos.appendChild(n)}async function xe({title:t,html:e,resolvePromise:a,hideConfirm:n,purpleModal:s,textLeft:o,noPadding:r,maxHeight:i}){Qt.domConfirmModalHeader.style.display=t?"block":"none",Qt.domConfirmModalTitle.innerHTML=t||"",Qt.domConfirmModalButtons.style.setProperty("display",a?"none":"block",a?"important":void 0),Oe("#confirmModal").modal(a?"show":{keyboard:!1}),Qt.domConfirmModalConfirmButton.style.display=n?"none":"",Qt.domConfirmModalCancelButton.innerText=n?Ce.popupClose:Ce.popupCancel,Qt.domConfirmModalContent.innerHTML=e,o?Qt.domConfirmModalContent.classList.remove("center-text"):Qt.domConfirmModalContent.classList.add("center-text"),s?Qt.domConfirmModalMain.classList.add("exportKeysModalColor"):Qt.domConfirmModalMain.classList.remove("exportKeysModalColor"),r?(Qt.domConfirmModalContent.classList.add("px-0"),Qt.domConfirmModalContent.classList.add("pb-0")):(Qt.domConfirmModalContent.classList.remove("px-0"),Qt.domConfirmModalContent.classList.remove("pb-0")),i&&Qt.domConfirmModalDialog.classList.add(`max-w-${i}`);for(const t of Qt.domConfirmModalContent.children)if("text"===t.type||"password"===t.type){t.focus();break}a=a||new Promise(((t,e)=>{Qt.domConfirmModalConfirmButton.onclick=()=>{t(!0)},Qt.domConfirmModalCancelButton.onclick=()=>{t(!1)}}));try{return await a}finally{Oe("#confirmModal").modal("hide"),Qt.domConfirmModalDialog.classList.remove(`max-w-${i}`)}}function Le(t="",e,a=4){const n=be(a,"L");n.addData(t),n.make(),e.innerHTML=n.createImgTag(2,2),e.firstChild.style.borderRadius="8px"}function Me(t){if(!t.startsWith("xpub"))return!1;try{return 78===H.decode(t.slice(4)).length}catch(t){return!1}}function ke(t){const e=document.createElement("div");return e.innerText=t,e.innerHTML}function Ue(t,e=""){if("number"==typeof t&&(t=t.toString()),!t.includes("."))return t;const a=t.split("."),n=e?"font-size: "+e:"";return`${a[0]}.${a[1]}`}function Be(t,e){try{return null===t||null===e?t===e:typeof t==typeof e&&("object"!=typeof t||Object.getPrototypeOf(t)===Object.getPrototypeOf(e))}catch(t){return!1}}function We(t){return null==t||""===t||Array.isArray(t)&&0===t.length||"object"==typeof t&&0===Object.keys(t).length}function He({pkBytes:t,publicKey:e,output:a="ENCODED"}){if(!t&&!e)return null;const s="UNCOMPRESSED_HEX"!==a;let d=e?o(e):c.$3(t,s);if("UNCOMPRESSED_HEX"===a){if(65!==d.length)throw new Error("Can't uncompress an already compressed key");return r(d)}if(65===d.length&&(d=function(t){if(65!=t.length)throw new Error("Attempting to compress an invalid uncompressed key");const e=t.slice(1,33);return[t.slice(33)[31]%2==0?2:3,...e]}(d)),33!=d.length)throw new Error("Invalid public key");if("COMPRESSED_HEX"===a)return r(d);const u=(0,n.J)(new Uint8Array(d)),h=(0,l.b)(u),y=new Uint8Array(Pe);y[0]=p.current.PUBKEY_ADDRESS,De(y,h,1);const m=i(y).slice(0,4),g=new Uint8Array(Re);return De(g,y,0),De(g,m,Pe),H.encode(g)}function Ke(t,e=!1){return function(t="",e=!1,a=!1){const n=H.decode(t);if(!a){if(38!==n.byteLength)throw Error("Private key length ("+n.byteLength+") is invalid, should be 38!");if(n[0]!==p.current.SECRET_KEY){const t=Object.keys(p).filter((t=>"current"!==t)).map((t=>p[t])).find((t=>t.SECRET_KEY===n[0]));throw Error(t?"This private key is for "+(t.isTestnet?"Testnet":"Mainnet")+", wrong network!":"This private key belongs to another coin, or is corrupted.")}const t=i(n.slice(0,34)),e=n.slice(n.byteLength-4),a=t.slice(0,4);if(e.join("")!==a.join(""))throw Error("Private key checksum is invalid, key may be modified, mis-typed, or corrupt.")}return!e||Uint8Array.from(n.slice(1,33))}(t,!0,e)}onmessage=function(t){for(;;){const t={};t.priv=Ie(),t.pub=He({pkBytes:t.priv}),postMessage(t)}}}},o={};function r(t){var e=o[t];if(void 0!==e)return e.exports;var a=o[t]={id:t,loaded:!1,exports:{}};return s[t].call(a.exports,a,a.exports,r),a.loaded=!0,a.exports}r.m=s,r.x=()=>{var t=r.O(void 0,[621,350],(()=>r(57119)));return r.O(t)},t=[],r.O=(e,a,n,s)=>{if(!a){var o=1/0;for(d=0;d=s)&&Object.keys(r.O).every((t=>r.O[t](a[c])))?a.splice(c--,1):(i=!1,s0&&t[d-1][2]>s;d--)t[d]=t[d-1];t[d]=[a,n,s]},r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},a=Object.getPrototypeOf?t=>Object.getPrototypeOf(t):t=>t.__proto__,r.t=function(t,n){if(1&n&&(t=this(t)),8&n)return t;if("object"==typeof t&&t){if(4&n&&t.__esModule)return t;if(16&n&&"function"==typeof t.then)return t}var s=Object.create(null);r.r(s);var o={};e=e||[null,a({}),a([]),a(a)];for(var i=2&n&&t;"object"==typeof i&&!~e.indexOf(i);i=a(i))Object.getOwnPropertyNames(i).forEach((e=>o[e]=()=>t[e]));return o.default=()=>t,r.d(s,o),s},r.d=(t,e)=>{for(var a in e)r.o(e,a)&&!r.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:e[a]})},r.f={},r.e=t=>Promise.all(Object.keys(r.f).reduce(((e,a)=>(r.f[a](t,e),e)),[])),r.u=t=>"./"+t+".mpw.js",r.miniCssF=t=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),(()=>{var t;r.g.importScripts&&(t=r.g.location+"");var e=r.g.document;if(!t&&e&&(e.currentScript&&(t=e.currentScript.src),!t)){var a=e.getElementsByTagName("script");if(a.length)for(var n=a.length-1;n>-1&&!t;)t=a[n--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),r.p=t})(),(()=>{r.b=self.location+"";var t={326:1};r.f.i=(e,a)=>{t[e]||importScripts(r.p+r.u(e))};var e=self.webpackChunkMPW=self.webpackChunkMPW||[],a=e.push.bind(e);e.push=e=>{var[n,s,o]=e;for(var i in s)r.o(s,i)&&(r.m[i]=s[i]);for(o&&o(r);n.length;)t[n.pop()]=1;a(e)}})(),n=r.x,r.x=()=>Promise.all([r.e(621),r.e(350)]).then(n);var i=r.x();MPW=i})(); -//# sourceMappingURL=326.mpw.js.map \ No newline at end of file diff --git a/326.mpw.js.map b/326.mpw.js.map deleted file mode 100644 index 23f8358a5..000000000 --- a/326.mpw.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"./326.mpw.js","mappings":"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","sources":["webpack://MPW/webpack/runtime/chunk loaded","webpack://MPW/webpack/runtime/create fake namespace object","webpack://MPW/webpack/runtime/startup chunk dependencies","webpack://MPW/./locale/ lazy ^\\.\\/.*\\/translation\\.js$ strict namespace object","webpack://MPW/./locale/template/translation.js","webpack://MPW/./scripts/utils.js","webpack://MPW/./scripts/chain_params.js","webpack://MPW/./scripts/event_bus.js","webpack://MPW/./scripts/network.js","webpack://MPW/./scripts/mempool.js","webpack://MPW/./scripts/misc.js","webpack://MPW/./scripts/ledger.js","webpack://MPW/./scripts/aes-gcm.js","webpack://MPW/./scripts/accounts.js","webpack://MPW/./scripts/contacts-book.js","webpack://MPW/./scripts/wallet.js","webpack://MPW/./scripts/script.js","webpack://MPW/./scripts/prices.js","webpack://MPW/./scripts/Activity.vue?e00a","webpack://MPW/./scripts/Activity.vue","webpack://MPW/./scripts/charting.js","webpack://MPW/./scripts/WalletBalance.vue?4fbf","webpack://MPW/./scripts/WalletBalance.vue","webpack://MPW/./scripts/global.js","webpack://MPW/./scripts/settings.js","webpack://MPW/./scripts/masternode.js","webpack://MPW/./scripts/promos.js","webpack://MPW/./scripts/database.js","webpack://MPW/./scripts/i18n.js","webpack://MPW/./scripts/encoding.js","webpack://MPW/./scripts/vanitygen_worker.js","webpack://MPW/webpack/bootstrap","webpack://MPW/webpack/runtime/compat get default export","webpack://MPW/webpack/runtime/define property getters","webpack://MPW/webpack/runtime/ensure chunk","webpack://MPW/webpack/runtime/get javascript chunk filename","webpack://MPW/webpack/runtime/get mini-css chunk filename","webpack://MPW/webpack/runtime/global","webpack://MPW/webpack/runtime/hasOwnProperty shorthand","webpack://MPW/webpack/runtime/make namespace object","webpack://MPW/webpack/runtime/node module decorator","webpack://MPW/webpack/runtime/publicPath","webpack://MPW/webpack/runtime/importScripts chunk loading","webpack://MPW/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (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((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var next = __webpack_require__.x;\n__webpack_require__.x = () => {\n\treturn Promise.all([\n\t\t__webpack_require__.e(621),\n\t\t__webpack_require__.e(350)\n\t]).then(next);\n};","var map = {\n\t\"./de/translation.js\": [\n\t\t81052,\n\t\t52\n\t],\n\t\"./en/translation.js\": [\n\t\t34137,\n\t\t137\n\t],\n\t\"./es-mx/translation.js\": [\n\t\t75605,\n\t\t605\n\t],\n\t\"./fr/translation.js\": [\n\t\t35120,\n\t\t120\n\t],\n\t\"./it/translation.js\": [\n\t\t12473,\n\t\t473\n\t],\n\t\"./ph/translation.js\": [\n\t\t1563,\n\t\t563\n\t],\n\t\"./pt-br/translation.js\": [\n\t\t32216,\n\t\t216\n\t],\n\t\"./pt-pt/translation.js\": [\n\t\t74214,\n\t\t194\n\t],\n\t\"./template/translation.js\": [\n\t\t60270\n\t],\n\t\"./uwu/translation.js\": [\n\t\t22858,\n\t\t858\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(() => {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 71220;\nmodule.exports = webpackAsyncContext;","export default {\n // This document is to be used as a template as all the base code is in English\n // Basic HTML tags are allowed such as etc. All data is sanitized https://developer.mozilla.org/en-US/docs/Web/API/Element/innerHTML\n\n // When updating the template you must also update the en version. If you don't and a new language with a new setting is used, it\n // will NOT translate back after switching back to en\n\n // How to create a new language:\n // 1) Create a new folder in locale and copy the template, add the locale prefix (en, uwu, etc) to the start of the variable\n // (var translation -> var en_translation) then edit the template with your new languages words.\n // 2) Go into the i18n.js and find `arrActiveLangs` and add the prefix to that array. ['en'] -> ['en', 'uwu']\n // 3) Go into the i18n.js page and find `translatableLanguages` add your prefix and variable name\n // var translatableLanguages = {\n // \"en\": en_translation\n // }\n // Turns into:\n // var translatableLanguages = {\n // \"en\": en_translation,\n // \"uwu\": uwu_translation\n // }\n // 4) Submit a push request to the github\n\n // NOTE: If a section does NOT need translating, leave it empty.\n // NOTE: Variables that MPW insert are denoted by brackets {}, for example, {button}, do NOT translate variables, but place them where it makes the most sense.\n\n // General words\n amount: '', //Amount\n staking: '', //Staking\n wallet: '', //Wallet\n display: '', //Display\n activity: '', //Activity\n yes: '', //Yes\n no: '', //No\n\n // Nav Bar\n navDashboard: '', //Dashboard\n navStake: '', //Stake\n navMasternode: '', //Masternode\n navGovernance: '', //Governance\n navSettings: '', //Settings\n\n // Footer\n footerBuiltWithPivxLabs: '', //Built with 💜 by PIVX Labs\n\n // Intro\n loading: '', //Loading\n loadingTitle: '', //My PIVX Wallet is\n\n // Onboarding Dashboard\n dashboardTitle: '', //Dashboard\n dCardOneTitle: '', //Create a\n dCardOneSubTitle: '', //New Wallet\n dCardOneDesc: '', //Create a new PIVX wallet, offering the most secure backup & security methods.\n dCardOneButton: '', //Create A New Wallet\n\n dCardTwoTitle: '', //Create a new\n dCardTwoSubTitle: '', //Vanity Wallet\n dCardTwoDesc: '', //Create a wallet with a custom prefix, this can take a long time!\n dCardTwoButton: '', //Create A Vanity Wallet\n\n dCardThreeTitle: '', //Access your\n dCardThreeSubTitle: '', //Hardware Wallet\n dCardThreeDesc: '', //Use your Ledger Hardware wallet with MPW's familiar interface.\n dCardThreeButton: '', //Access my Ledger\n\n dCardFourTitle: '', //Go to\n dCardFourSubTitle: '', //My Wallet\n dCardFourDesc: '', //Import a PIVX wallet using a Private Key, xpriv, or Seed Phrase.\n dCardFourButtonI: '', //Import Wallet\n dCardFourButtonA: '', //Access My Wallet\n\n // Vanity Creation\n vanityPrefixNote: '', //Note: addresses will always start with:\n vanityPrefixInput: '', //Address Prefix\n\n // Seed Phrase Creation\n thisIsYourSeed: '', //This is your seed phrase:\n writeDownSeed: '', //Write it down somewhere. You'll only see this once!\n doNotShareWarning: '', //Anyone with a copy of it can access all of your funds.\n doNotShare: '', //Do NOT share it with anybody.\n digitalStoreNotAdvised: '', //It is NOT advised to store this digitally.\n optionalPassphrase: '', //Optional Passphrase (BIP39)\n writtenDown: '', //I have written down my seed phrase\n\n // Seed Phrase Import\n importSeedValid: '', //Seed Phrase is valid!\n importSeedError: '', //Seed Phrase is invalid!\n importSeedErrorSize: '', //A Seed Phrase should be 12 or 24 words long!\n importSeedErrorTypo: '', //Seed Phrase contains typing errors! Check your input carefully\n importSeedErrorSkip: '', //Seed Phrase appears invalid, but the warning was skipped by the user\n\n // Wallet Dashboard\n gettingStarted: '', //Getting Started\n secureYourWallet: '', //Secure your wallet\n unlockWallet: '', //Unlock wallet\n lockWallet: '', //Lock wallet\n\n // Encrypt wallet\n encryptWallet: '', //Encrypt wallet\n encryptPasswordCurrent: '', //Current Password\n encryptPasswordFirst: '', //Enter Password\n encryptPasswordSecond: '', //Re-enter Password\n encrypt: '', //Encrypt\n changePassword: '', //Change Password\n\n // Wallet Dashboard Sub-menu\n balanceBreakdown: '', //Balance Breakdown\n viewOnExplorer: '', //View on Explorer\n export: '', //Export\n refreshAddress: '', //Refresh address\n redeemOrCreateCode: '', //Redeem or Create Code\n\n // Send\n address: '', //Address\n receivingAddress: '', //Receiving address\n sendAmountCoinsMax: '', //MAX\n paymentRequestMessage: '', //Description (from the merchant)\n send: '', //Send\n\n // Contacts System\n receive: '', //Receive\n contacts: '', //Contacts\n name: '', //Name\n username: '', //Username\n addressOrXPub: '', //Address or XPub\n back: '', //Back\n chooseAContact: '', //Choose a Contact\n createContact: '', //Create Contact\n encryptFirstForContacts: '', //Once you hit \"{button}\" in the Dashboard, you can create a Contact to make receiving PIV easier!\n shareContactURL: '', //Share Contact URL\n setupYourContact: '', //Setup your Contact\n receiveWithContact: '', //Receive using a simple username-based Contact\n onlyShareContactPrivately: '', //Only share your Contact with trusted people (family, friends)\n\n /* Context: The \"Change to\" is used in-app with one of the Three options below it, i.e: \"Change to Contact\" */\n changeTo: '', //Change to\n contact: '', //Contact\n xpub: '', //XPub\n\n addContactTitle: '', //Add {strName} to Contacts\n addContactSubtext: '', //Once added you\\'ll be able to send transactions to {strName} by their name (either typing, or clicking), no more addresses, nice \\'n easy.\n addContactWarning: '', //Ensure that this is the real \"{strName}\", do not accept Contact requests from unknown sources!\n\n editContactTitle: '', //Change \"{strName}\" Contact\n newName: '', //New Name\n\n removeContactTitle: '', //Remove {strName}?\n removeContactSubtext: '', //Are you sure you wish to remove {strName} from your Contacts?\n removeContactNote: '', //You can add them again any time in the future.\n\n // Export\n privateKey: '', //Private Key\n viewPrivateKey: '', //View Private Key?\n privateWarning1: '', //Make sure no one can see your screen.\n privateWarning2: '', //Anyone with this key can steal your funds.\n viewKey: '', //View key\n\n // PIVX Promos\n // NOTE: for this below line, continue the sentence \"PIVX Promos [...]\", since 'PIVX Promos' is a brand, it is not translated.\n pivxPromos: '', // [...] is a decentralised system for gift codes worth PIV\n // NOTE: on this line, if possible, leave 'PIVX Promos' untranslated\n redeemInput: '', //Enter your 'PIVX Promos' code\n createName: '', //Promo Name (Optional)\n createAmount: '', //Promo Amount\n\n // Stake\n stake: '', //Stake\n stakeUnstake: '', //Unstake\n ownerAddress: '', //(Optional) Owner Address\n rewardHistory: '', //Reward History\n loadMore: '', //Load more\n\n // Masternode\n mnControlYour: '', //Control your\n mnSubtext: '', //From this tab you can create and access one or more masternodes\n\n // Governance\n govSubtext: '', //From this tab you can check the proposals and, if you have a masternode, be a part of the DAO and vote!\n govMonthlyBudget: '', //Monthly Budget\n govAllocBudget: '', //Allocated Budget\n govNextPayout: '', //Next Treasury Payout\n govTableStatus: '', //STATUS\n govTableName: '', //NAME\n govTablePayment: '', //PAYMENT\n govTableVotes: '', //VOTES\n govTableVote: '', //VOTE\n contestedProposalsDesc: '', //These are proposals that received an overwhelming amount of downvotes, making it likely spam or a highly contestable proposal.\n\n // Settings\n settingsCurrency: '', //Choose a display currency:\n priceProvidedBy: '', //Price data provided by\n settingsDecimals: '', //Balance Decimals:\n settingsExplorer: '', //Choose an explorer:\n settingsLanguage: '', //Choose a Language:\n settingsPivxNode: '', //Choose a PIVX node:\n settingsAutoSelectNet: '', //Auto-select Explorers and Nodes\n settingsAnalytics: '', //Choose your analytics contribution level:\n settingsToggleDebug: '', //Debug Mode\n settingsToggleTestnet: '', //Testnet Mode\n settingsToggleAdvancedMode: '', //Advanced Mode\n settingsToggleAdvancedModeSubtext: '', //This unlocks deeper functionality and customisation, but may be overwhelming and potentially dangerous for unexperienced users!\n\n // Network switching (mainnet <---> testnet)\n netSwitchUnsavedWarningTitle: '', //Your {network} wallet isn\\'t saved!\n netSwitchUnsavedWarningSubtitle: '', //Your {network} account is at risk!\n netSwitchUnsavedWarningSubtext: '', //If you switch to {network} before saving it, you\\'ll lose the account!\n netSwitchUnsavedWarningConfirmation: '', //Are you really sure?\n\n // Transparency Report\n transparencyReport: '', //Transparency Report\n hit: '', //A ping indicating an app load, no unique data is sent.\n time_to_sync: '', //The time in seconds it took for MPW to last synchronise.\n transaction: '', //A ping indicating a Tx, no unique data is sent, but may be inferred from on-chain time.\n\n // Analytics Levels\n analyticDisabled: '', //Disabled\n analyticMinimal: '', //Minimal\n analyticBalanced: '', //Balanced\n\n // Migration System\n MIGRATION_ACCOUNT_FAILURE_TITLE: '', //Failed to recover account\n MIGRATION_ACCOUNT_FAILURE_HTML: '', //There was an error recovering your account.
Please reimport your wallet using the following key:\n\n // Dynamic Elements (Rendered at runtime - TODO in future PR: sort in to above categories for consistency)\n ID: '', //ID\n time: '', //Time\n description: '', //Description\n activityBlockReward: '', //Block Reward\n activitySentTo: '', //Sent to {}\n activitySelf: '', // self\n activityShieldedAddress: '', //Shielded address\n activityReceivedFrom: '', //Received from {}\n activityDelegatedTo: '', // Delegated to {}\n activityUndelegated: '', //Undelegated\n activityUnknown: '', //Unknown Tx\n password: '', //Password\n walletUnlock: '', //Unlock your wallet\n walletPassword: '', //Wallet password\n walletUnlockCreateMN: '', //Unlock to create your Masternode!\n walletUnlockMNStart: '', //Unlock to start your Masternode!\n walletUnlockProposal: '', //Unlock to create a proposal!\n walletUnlockPromo: '', //Unlock to finalise your Promo Code!\n walletUnlockTx: '', //Unlock to send your transaction!\n walletUnlockStake: '', //Unlock to stake your\n walletUnlockUnstake: '', //Unlock to unstake your\n changelogTitle: '', //What's New in\n popupSetColdAddr: '', //Set your Cold Staking address\n popupCurrentAddress: '', //Current address:\n popupColdStakeNote: '', //A Cold Address stakes coins on your behalf, it cannot spend coins, so it's even safe to use a stranger's Cold Address!\n popupExample: '', //Example:\n popupWalletLock: '', //Do you want to lock your wallet?\n popupWalletWipe: '', //Do you want to wipe your wallet private data?\n popupWalletLockNote: '', //You will need to enter your password to access your funds\n popupWalletWipeNote: '', //You will lose access to your funds if you haven't backed up your private key or seed phrase\n popupSeedPhraseBad: '', //Unexpected Seed Phrase\n popupSeedPhraseBadNote: '', //The seed phrase is either invalid or was not generated by MPW.
Do you still want to proceed?\n popupCreateProposal: '', //Create Proposal\n popupCreateProposalCost: '', //Cost\n popupProposalName: '', //Proposal Name\n popupProposalAddress: '', //Proposal Address (Optional)\n popupProposalDuration: '', //Duration in cycles\n popupProposalPerCycle: '', //per cycle\n popupProposalEncryptFirst: '', //You need to hit \"{button}\" before you can create proposals!\n popupProposalVoteHash: '', //Vote Hash:\n popupProposalFinalisedNote: '', //Congratulations on launching your proposal!
Masternode owners can use your Vote Hash to vote from wallets other than MPW, so make sure to add this to your forum post, if applicable!\n popupProposalFinalisedSignoff: '', //Good luck on your journey through the DAO, PIVian!\n popupHardwareAddrCheck: '', //Please confirm this is the address you see on your\n proposalFinalisationConfirming: '', //Confirming...\n proposalFinalisationRemaining: '', //remaining\n proposalFinalisationExpired: '', //Proposal Expired\n proposalFinalisationReady: '', //Ready to submit\n proposalPassing: '', //PASSING\n proposalFailing: '', //FAILING\n proposalTooYoung: '', //TOO YOUNG\n proposalFunded: '', //FUNDED\n proposalNotFunded: '', //NOT FUNDED\n proposalPaymentsRemaining: '', //installment(s) remaining
of\n proposalPaymentTotal: '', //total\n proposalNetYes: '', //Net Yes\n popupConfirm: '', //Confirm\n popupClose: '', //Close\n popupCancel: '', //Cancel\n chartPublicAvailable: '', //Public Available\n timeDays: '', //Days\n timeHours: '', //Hours\n timeMinutes: '', //Minutes\n timeSeconds: '', //Seconds\n unhandledException: '', //Unhandled exception.\n\n // Alerts\n ALERTS: '<-- DO NOT EDIT THIS LINE! All below entries are for Alert Popups',\n\n INTERNAL_ERROR: '', //Internal error, please try again later\n FAILED_TO_IMPORT: '', //Failed to import! Invalid password\n FAILED_TO_IMPORT_HARDWARE: '', // Failed to import Hardware Wallet.\n UNSUPPORTED_CHARACTER: '', //The character '{char}' is unsupported in addresses! (Not Base58 compatible)\n UNSUPPORTED_WEBWORKERS: '', //This browser doesn\\'t support Web Workers (multi-threaded JS), unfortunately you cannot generate Vanity wallets!\n INVALID_ADDRESS: '', //Invalid PIVX address!
{address}\n TESTNET_ENCRYPTION_DISABLED: '', //Testnet Mode is ON!
Wallet encryption disabled\n PASSWORD_TOO_SMALL: '', //That password is a little short!
Use at least {MIN_PASS_LENGTH} characters.\n PASSWORD_DOESNT_MATCH: '', //Your passwords don\\'t match!\n NEW_PASSWORD_SUCCESS: '', //You\\'re Secured! 🔐
Nice stuff, Armoured PIVian!\n INCORRECT_PASSWORD: '', //Incorrect password!\n INVALID_AMOUNT: '', //Invalid amount!
\n TX_SENT: '', //Transaction sent!\n TX_FAILED: '', //Transaction Failed!\n QR_SCANNER_BAD_RECEIVER: '', //is not a valid payment receiver\n VALIDATE_AMOUNT_LOW: '', //
Minimum amount is {minimumAmount} {coinTicker}!\n VALIDATE_AMOUNT_DECIMAL: '', //{coinDecimal} decimal limit exceeded\n SUCCESS_STAKING_ADDR: '', //Staking Address set!
Now go ahead and unstake!\n STAKE_ADDR_SET: '', //Cold Address set!
Future stakes will use this address.\n STAKE_ADDR_BAD: '', //Invalid Cold Staking address!\n CONFIRM_UNSTAKE_H_WALLET: '', //Confirm your Unstake
Confirm the TX on your {strHardwareName}\n CONFIRM_TRANSACTION_H_WALLET: '', //Confirm your transaction
Confirm the TX on your {strHardwareName}\n SUCCESS_STAKING_ADDR_SET: '', //Staking Address set!
Now go ahead and stake!\n STAKE_NOT_SEND: '', //Here, use the Stake screen, not the Send screen!\n BAD_ADDR_LENGTH: '', //Invalid PIVX address!
Bad length ({addressLength})\n BAD_ADDR_PREFIX: '', //Invalid PIVX address!
Bad prefix {address} (Should start with {addressPrefix})\n SENT_NOTHING: '', //You can\\'t send \\'nothing\\'!\n MORE_THEN_8_DECIMALS: '', //8 decimal limit exceeded\n SAVE_WALLET_PLEASE: '', //Save your wallet!
Dashboard ➜ Secure your wallet\n BACKUP_OR_ENCRYPT_WALLET: '', //Please ENCRYPT and/or BACKUP your keys before leaving, or you may lose them!\n NO_CAMERAS: '', //This device has no camera!\n STAKING_LEDGER_NO_SUPPORT: '', //Ledger is not supported for Cold Staking\n CONNECTION_FAILED: '', //Failed to synchronize! Please try again later.
You can attempt re-connect via the Settings.\n MN_NOT_ENABLED: '', //Your masternode is not enabled yet!\n VOTE_SUBMITTED: '', //Vote submitted!\n VOTED_ALREADY: '', //You already voted for this proposal! Please wait 1 hour\n VOTE_SIG_BAD: '', //Failed to verify signature, please check your masternode\\'s private key\n MN_CREATED_WAIT_CONFS: '', //Masternode Created!
Wait 15 confirmations to proceed further\n MN_ACCESS_BEFORE_VOTE: '', //Access a masternode before voting!\n MN_OFFLINE_STARTING: '', //Your masternode is offline, we will try to start it\n MN_STARTED: '', //Masternode started!\n MN_RESTARTED: '', //Masternode restarted!\n MN_STARTED_ONLINE_SOON: '', //Masternode started!
It\\'ll be online soon\n MN_START_FAILED: '', //Masternode started!\n MN_RESTART_FAILED: '', //Masternode restarted!\n MN_DESTROYED: '', //Masternode destroyed!
Your coins are now spendable.\n MN_STATUS_IS: '', //Your masternode status is\n MN_STATE: '', //Your masternode is in {state} state\n MN_BAD_IP: '', //The IP address is invalid!\n MN_NOT_ENOUGH_COLLAT: '', //You need {amount} more {ticker} to create a Masternode!\n MN_ENOUGH_BUT_NO_COLLAT: '', //You have enough balance for a Masternode, but no valid collateral UTXO of {amount} {ticker}\n MN_COLLAT_NOT_SUITABLE: '', //This is not a suitable UTXO for a Masternode\n MN_CANT_CONNECT: '', //Unable to connect to RPC node!\n\n /* Contacts System Alerts */\n CONTACTS_ENCRYPT_FIRST: '', //You need to hit \"{button}\" before you can use Contacts!\n CONTACTS_NAME_REQUIRED: '', //A name is required!\n CONTACTS_NAME_TOO_LONG: '', //That name is too long!\n CONTACTS_CANNOT_ADD_YOURSELF: '', //You cannot add yourself as a Contact!\n CONTACTS_ALREADY_EXISTS: '', //Contact already exists!
You already saved this contact\n CONTACTS_NAME_ALREADY_EXISTS: '', //Contact name already exists!
This could potentially be a phishing attempt, beware!\n CONTACTS_EDIT_NAME_ALREADY_EXISTS: '', //Contact already exists!
A contact is already called \"{strNewName}\"!\n CONTACTS_KEY_ALREADY_EXISTS: '', //Contact already exists, but under a different name!
You have {newName} saved as {oldName} in your contacts\n CONTACTS_NOT_A_CONTACT_QR: '', //This isn\\'t a Contact QR!\n CONTACTS_ADDED: '', //New Contact added!
{strName} has been added, hurray!\n CONTACTS_YOU_HAVE_NONE: '', //You have no contacts!\n\n SWITCHED_EXPLORERS: '', //Switched explorer!
Now using {explorerName}\n SWITCHED_NODE: '', //Switched node!
Now using {node}\n SWITCHED_ANALYTICS: '', //Switched analytics level!
Now {level}\n SWITCHED_SYNC: '', //Switched sync mode!
Now using {sync} sync\n UNABLE_SWITCH_TESTNET: '', //Unable to switch Testnet Mode!
A wallet is already loaded\n\n WALLET_OFFLINE_AUTOMATIC: '', //Offline Mode is active!
Please disable Offline Mode for automatic transactions\n WALLET_UNLOCK_IMPORT: '', //Please {unlock} your wallet before sending transactions!\n WALLET_FIREFOX_UNSUPPORTED: '', //Firefox doesn't support this!
Unfortunately, Firefox does not support hardware wallets\n WALLET_HARDWARE_WALLET: '', //Hardware wallet ready!
Please keep your {hardwareWallet} plugged in, unlocked, and in the PIVX app\n WALLET_CONFIRM_L: '', //Confirm the import on your Ledger\n WALLET_NO_HARDWARE: '', //No device available
Couldn't find a hardware wallet; please plug it in and unlock!\n WALLET_HARDWARE_CONNECTION_LOST: '', //Lost connection to {hardwareWallet}
It seems the {hardwareWalletProductionName} was unplugged mid-operation, oops!\n WALLET_HARDWARE_UDEV: '', // The OS denied access Did you add the udev rules?\n WALLET_HARDWARE_NO_ACCESS: '', // The OS denied access Please check your Operating System settings.\n WALLET_HARDWARE_BUSY: '', //{hardwareWallet} is waiting
Please unlock your {hardwareWalletProductionName} or finish it's current prompt\n WALLET_HARDWARE_ERROR: '', // {hardwareWallet}
{error}\n\n CONFIRM_POPUP_VOTE: '', //Confirm Vote\n CONFIRM_POPUP_VOTE_HTML: '', //Are you sure? It takes 60 minutes to change vote\n CONFIRM_POPUP_TRANSACTION: '', //Confirm your transaction\n CONFIRM_POPUP_MN_P_KEY: '', //Your Masternode Private Key\n CONFIRM_POPUP_MN_P_KEY_HTML: '', //
Save this private key and copy it to your VPS config
\n CONFIRM_POPUP_VERIFY_ADDR: '', //Verify your address\n\n MIGRATION_MASTERNODE_FAILURE: '', //Failed to recover your masternode. Please reimport it.\n MIGRATION_ACCOUNT_FAILURE: '', //Failed to recover your account. Please reimport it.\n APP_INSTALLED: '', //App Installed!\n};\n","import { Buffer } from 'buffer';\nimport { sha256 } from '@noble/hashes/sha256';\n\nexport function hexToBytes(str) {\n return Buffer.from(str, 'hex');\n}\n\nexport function bytesToHex(bytes) {\n return Buffer.from(bytes).toString('hex');\n}\n\n/**\n * Double SHA256 hash a byte array\n * @param {Array} buff - Bytes to hash\n * @returns {Uint8Array} Hash buffer\n */\nexport function dSHA256(buff) {\n return sha256(sha256(new Uint8Array(buff)));\n}\n","import { reactive } from 'vue';\n\n// In most BTC-derived coins, the below parameters can be found in the 'src/chainparams.cpp' Mainnet configuration.\n// These below params share the same names as the CPP params, so finding and editing these is easy-peasy!\n// <[network_byte] [32_byte_payload] [0x01] [4_byte_checksum]>\nexport const PRIVKEY_BYTE_LENGTH = 38;\n\nexport const COIN_DECIMALS = 8;\nexport const COIN = 10 ** 8;\n\n/** The maximum gap (absence of transactions within a range of derived addresses) before an account search ends */\nexport const MAX_ACCOUNT_GAP = 20;\n\n/* Internal tweaking parameters */\n// A new encryption password must be 'at least' this long.\nexport const MIN_PASS_LENGTH = 6;\n\n/** BIP21 coin prefix */\nexport const BIP21_PREFIX = 'pivx';\n\n/* chainparams */\nexport const cChainParams = reactive({\n current: null,\n main: {\n name: 'mainnet',\n collateralInSats: 10000 * COIN,\n isTestnet: false,\n TICKER: 'PIV',\n PUBKEY_PREFIX: ['D'],\n STAKING_PREFIX: 'S',\n PUBKEY_ADDRESS: 30,\n SECRET_KEY: 212,\n BIP44_TYPE: 119,\n BIP44_TYPE_LEDGER: 77,\n PROTOCOL_VERSION: 70926,\n MASTERNODE_PORT: 51472,\n // A list of Labs-trusted explorers\n Explorers: [\n // Display name Blockbook-compatible API base\n { name: 'rockdev', url: 'https://explorer.rockdev.org' },\n { name: 'zkBitcoin', url: 'https://zkbitcoin.com' },\n { name: 'Duddino', url: 'https://explorer.duddino.com' },\n ],\n Nodes: [{ name: 'Duddino', url: 'https://rpc.duddino.com/mainnet' }],\n Consensus: {\n // Network upgrades\n UPGRADE_V6_0: undefined,\n },\n budgetCycleBlocks: 43200,\n proposalFee: 50 * COIN,\n proposalFeeConfirmRequirement: 6,\n maxPaymentCycles: 6,\n maxPayment: 10 * 43200 * COIN, // 43200 blocks of 10 PIV\n defaultColdStakingAddress: 'SdgQDpS8jDRJDX8yK8m9KnTMarsE84zdsy', // Labs Cold Pool\n },\n testnet: {\n name: 'testnet',\n collateralInSats: 10000 * COIN,\n isTestnet: true,\n TICKER: 'tPIV',\n PUBKEY_PREFIX: ['x', 'y'],\n STAKING_PREFIX: 'W',\n PUBKEY_ADDRESS: 139,\n SECRET_KEY: 239,\n BIP44_TYPE: 1,\n BIP44_TYPE_LEDGER: 1,\n PROTOCOL_VERSION: 70926,\n MASTERNODE_PORT: 51474,\n // A list of Labs-trusted explorers\n Explorers: [\n // Display name Blockbook-compatible API base\n { name: 'rockdev', url: 'https://testnet.rockdev.org' },\n { name: 'duddino', url: 'https://testnet.duddino.com' },\n ],\n Nodes: [{ name: 'Duddino', url: 'https://rpc.duddino.com/testnet' }],\n Consensus: {\n // Network upgrades\n UPGRADE_V6_0: undefined,\n },\n budgetCycleBlocks: 144,\n proposalFee: 50 * COIN,\n proposalFeeConfirmRequirement: 3,\n maxPaymentCycles: 20,\n maxPayment: 10 * 144 * COIN, // 144 blocks of 10 tPIV\n defaultColdStakingAddress: 'WmNziUEPyhnUkiVdfsiNX93H6rSJnios44', // Sparrow's Testnet Cold Pool\n },\n});\n// Set default chain\ncChainParams.current = cChainParams.main;\n","import { EventEmitter } from 'events';\n\nconst eventEmitter = new EventEmitter();\n\n/**\n * Get the application wide event emitter.\n * @returns {EventEmitter}\n */\nexport function getEventEmitter() {\n return eventEmitter;\n}\n","import { cChainParams, COIN } from './chain_params.js';\nimport { createAlert, isColdAddress } from './misc.js';\nimport { Mempool, UTXO } from './mempool.js';\nimport { getEventEmitter } from './event_bus.js';\nimport {\n STATS,\n cStatKeys,\n cAnalyticsLevel,\n setExplorer,\n fAutoSwitch,\n} from './settings.js';\nimport { ALERTS } from './i18n.js';\n\n/**\n * @typedef {Object} XPUBAddress\n * @property {string} type - Type of address (always 'XPUBAddress' for XPUBInfo classes)\n * @property {string} name - PIVX address string\n * @property {string} path - BIP44 path of the address derivation\n * @property {number} transfers - Number of transfers involving the address\n * @property {number} decimals - Decimal places in the amounts (PIVX has 8 decimals)\n * @property {string} balance - Current balance of the address (satoshi)\n * @property {string} totalReceived - Total ever received by the address (satoshi)\n * @property {string} totalSent - Total ever sent from the address (satoshi)\n */\n\n/**\n * @typedef {Object} XPUBInfo\n * @property {number} page - Current response page in a paginated data\n * @property {number} totalPages - Total pages in the paginated data\n * @property {number} itemsOnPage - Number of items on the current page\n * @property {string} address - XPUB string of the address\n * @property {string} balance - Current balance of the xpub (satoshi)\n * @property {string} totalReceived - Total ever received by the xpub (satoshi)\n * @property {string} totalSent - Total ever sent from the xpub (satoshi)\n * @property {string} unconfirmedBalance - Unconfirmed balance of the xpub (satoshi)\n * @property {number} unconfirmedTxs - Number of unconfirmed transactions of the xpub\n * @property {number} txs - Total number of transactions of the xpub\n * @property {string[]?} txids - Transaction ids involving the xpub\n * @property {number?} usedTokens - Number of used token addresses from the xpub\n * @property {XPUBAddress[]?} tokens - Array of used token addresses\n */\n\n/**\n * A historical transaction type.\n * @enum {number}\n */\nexport const HistoricalTxType = {\n UNKNOWN: 0,\n STAKE: 1,\n DELEGATION: 2,\n UNDELEGATION: 3,\n RECEIVED: 4,\n SENT: 5,\n};\n\n/**\n * A historical transaction\n */\nexport class HistoricalTx {\n /**\n * @param {HistoricalTxType} type - The type of transaction.\n * @param {string} id - The transaction ID.\n * @param {Array} senders - The list of 'input addresses'.\n * @param {Array} receivers - The list of 'output addresses'.\n * @param {boolean} shieldedOutputs - If this transaction contains Shield outputs.\n * @param {number} time - The block time of the transaction.\n * @param {number} blockHeight - The block height of the transaction.\n * @param {number} amount - The amount transacted, in coins.\n */\n constructor(\n type,\n id,\n senders,\n receivers,\n shieldedOutputs,\n time,\n blockHeight,\n amount\n ) {\n this.type = type;\n this.id = id;\n this.senders = senders;\n this.receivers = receivers;\n this.shieldedOutputs = shieldedOutputs;\n this.time = time;\n this.blockHeight = blockHeight;\n this.amount = amount;\n }\n}\n\n/**\n * Virtual class rapresenting any network backend\n *\n */\nexport class Network {\n wallet;\n /**\n * @param {import('./wallet.js').Wallet} wallet\n */\n constructor(wallet) {\n if (this.constructor === Network) {\n throw new Error('Initializing virtual class');\n }\n this._enabled = true;\n this.wallet = wallet;\n\n this.lastWallet = 0;\n this.isHistorySynced = false;\n }\n\n /**\n * @param {boolean} value\n */\n set enabled(value) {\n if (value !== this._enabled) {\n getEventEmitter().emit('network-toggle', value);\n this._enabled = value;\n }\n }\n\n get enabled() {\n return this._enabled;\n }\n\n enable() {\n this.enabled = true;\n }\n\n disable() {\n this.enabled = false;\n }\n\n toggle() {\n this.enabled = !this.enabled;\n }\n\n getFee(bytes) {\n // TEMPORARY: Hardcoded fee per-byte\n return bytes * 50; // 50 sat/byte\n }\n\n get cachedBlockCount() {\n throw new Error('cachedBlockCount must be implemented');\n }\n\n error() {\n throw new Error('Error must be implemented');\n }\n\n getBlockCount() {\n throw new Error('getBlockCount must be implemented');\n }\n\n sentTransaction() {\n throw new Error('sendTransaction must be implemented');\n }\n\n submitAnalytics(_strType, _cData = {}) {\n throw new Error('submitAnalytics must be implemented');\n }\n\n setWallet(wallet) {\n this.wallet = wallet;\n }\n\n async getTxInfo(_txHash) {\n throw new Error('getTxInfo must be implemented');\n }\n}\n\n/**\n *\n */\nexport class ExplorerNetwork extends Network {\n /**\n * @param {string} strUrl - Url pointing to the blockbook explorer\n */\n constructor(strUrl, wallet) {\n super(wallet);\n /**\n * @type{string}\n * @public\n */\n this.strUrl = strUrl;\n\n /**\n * @type{Number}\n * @private\n */\n this.blocks = 0;\n\n /**\n * @type {Array}\n */\n this.arrTxHistory = [];\n\n this.historySyncing = false;\n }\n\n error() {\n if (this.enabled) {\n this.disable();\n createAlert('warning', ALERTS.CONNECTION_FAILED);\n }\n }\n\n get cachedBlockCount() {\n return this.blocks;\n }\n\n async getBlockCount() {\n try {\n getEventEmitter().emit('sync-status', 'start');\n const { backend } = await (\n await retryWrapper(fetchBlockbook, `/api/v2/api`)\n ).json();\n if (backend.blocks > this.blocks) {\n getEventEmitter().emit(\n 'new-block',\n backend.blocks,\n this.blocks\n );\n this.blocks = backend.blocks;\n\n await this.getUTXOs();\n }\n } catch (e) {\n this.error();\n throw e;\n } finally {\n getEventEmitter().emit('sync-status', 'stop');\n }\n return this.blocks;\n }\n\n /**\n * @typedef {object} BlockbookUTXO\n * @property {string} txid - The TX hash of the output\n * @property {number} vout - The Index Position of the output\n * @property {string} value - The string-based satoshi value of the output\n * @property {number} height - The block height the TX was confirmed in\n * @property {number} confirmations - The depth of the TX in the blockchain\n */\n\n /**\n * Fetch UTXOs from the current primary explorer\n * @param {string} strAddress - Optional address, gets UTXOs without changing MPW's state\n * @returns {Promise>} Resolves when it has finished fetching UTXOs\n */\n async getUTXOs(strAddress = '') {\n // Don't fetch UTXOs if we're already scanning for them!\n if (!strAddress) {\n if (!this.wallet || !this.wallet.isLoaded()) return;\n if (this.isSyncing) return;\n this.isSyncing = true;\n }\n try {\n let publicKey = strAddress || (await this.wallet.getKeyToExport());\n // Fetch UTXOs for the key\n const arrUTXOs = await (\n await retryWrapper(fetchBlockbook, `/api/v2/utxo/${publicKey}`)\n ).json();\n\n // If using MPW's wallet, then sync the UTXOs in MPW's state\n if (!strAddress) getEventEmitter().emit('utxo', arrUTXOs);\n\n // Return the UTXOs for additional utility use\n return arrUTXOs;\n } catch (e) {\n console.error(e);\n this.error();\n } finally {\n this.isSyncing = false;\n }\n }\n /**\n * Fetches UTXOs full info\n * @param {Object} cUTXO - object-formatted UTXO\n * @returns {Promise} Promise that resolves with the full info of the UTXO\n */\n async getUTXOFullInfo(cUTXO) {\n const cTx = await (\n await retryWrapper(\n fetchBlockbook,\n `/api/v2/tx-specific/${cUTXO.txid}`\n )\n ).json();\n const cVout = cTx.vout[cUTXO.vout];\n\n let path;\n if (cUTXO.path) {\n path = cUTXO.path.split('/');\n path[2] =\n (this.wallet.isHardwareWallet()\n ? cChainParams.current.BIP44_TYPE_LEDGER\n : cChainParams.current.BIP44_TYPE) + \"'\";\n this.lastWallet = Math.max(parseInt(path[5]), this.lastWallet);\n path = path.join('/');\n }\n\n const isColdStake = cVout.scriptPubKey.type === 'coldstake';\n const isStandard = cVout.scriptPubKey.type === 'pubkeyhash';\n const isReward = cTx.vout[0].scriptPubKey.hex === '';\n // We don't know what this is\n if (!isColdStake && !isStandard) {\n return null;\n }\n\n return new UTXO({\n id: cUTXO.txid,\n path,\n sats: Math.round(cVout.value * COIN),\n script: cVout.scriptPubKey.hex,\n vin: cTx?.vin || [],\n vout: cVout.n,\n height: this.cachedBlockCount - (cTx.confirmations - 1),\n status: cTx.confirmations < 1 ? Mempool.PENDING : Mempool.CONFIRMED,\n isDelegate: isColdStake,\n isReward,\n });\n }\n\n /**\n * Fetch an XPub's basic information\n * @param {string} strXPUB - The xpub to fetch info for\n * @returns {Promise} - A JSON class of aggregated XPUB info\n */\n async getXPubInfo(strXPUB) {\n return await (\n await retryWrapper(fetchBlockbook, `/api/v2/xpub/${strXPUB}`)\n ).json();\n }\n\n async sendTransaction(hex) {\n try {\n const data = await (\n await retryWrapper(fetchBlockbook, '/api/v2/sendtx/', {\n method: 'post',\n body: hex,\n })\n ).json();\n\n // Throw and catch if the data is not a TXID\n if (!data.result || data.result.length !== 64) throw data;\n\n console.log('Transaction sent! ' + data.result);\n getEventEmitter().emit('transaction-sent', true, data.result);\n return data.result;\n } catch (e) {\n getEventEmitter().emit('transaction-sent', false, e);\n return false;\n }\n }\n\n /**\n * Synchronise a partial chunk of our TX history\n * @param {boolean} [fNewOnly] - Whether to sync ONLY new transactions\n */\n async syncTxHistoryChunk(fNewOnly = false) {\n // Do not allow multiple calls at once\n if (this.historySyncing) {\n return this.arrTxHistory;\n }\n\n try {\n if (!this.enabled || !this.wallet || !this.wallet.isLoaded())\n return this.arrTxHistory;\n this.historySyncing = true;\n const nHeight = this.arrTxHistory.length\n ? this.arrTxHistory[this.arrTxHistory.length - 1].blockHeight\n : 0;\n const mapPaths = new Map();\n\n // Form the API call using our wallet information\n const strKey = await this.wallet.getKeyToExport();\n const strRoot = `/api/v2/${\n this.wallet.isHD() ? 'xpub/' : 'address/'\n }${strKey}`;\n const strCoreParams = `?details=txs&tokens=derived&pageSize=200`;\n const strAPI = strRoot + strCoreParams;\n\n // If we have a known block height, check for incoming transactions within the last 60 blocks\n const cRecentTXs =\n this.blocks > 0\n ? await (\n await retryWrapper(\n fetchBlockbook,\n `${strAPI}&from=${this.blocks - 60}`\n )\n ).json()\n : {};\n\n // If we do not have full history, then load more historical TXs in a slice\n const cData =\n !fNewOnly && !this.isHistorySynced\n ? await (\n await retryWrapper(\n fetchBlockbook,\n `${strAPI}&to=${nHeight ? nHeight - 1 : 0}`\n )\n ).json()\n : {};\n if (this.wallet.isHD() && (cData.tokens || cRecentTXs.tokens)) {\n // Map all address <--> derivation paths\n // - From historical transactions\n if (cData.tokens) {\n cData.tokens.forEach((cAddrPath) =>\n mapPaths.set(cAddrPath.name, cAddrPath.path)\n );\n }\n // - From new transactions\n if (cRecentTXs.tokens) {\n cRecentTXs.tokens.forEach((cAddrPath) =>\n mapPaths.set(cAddrPath.name, cAddrPath.path)\n );\n }\n } else {\n mapPaths.set(strKey, ':)');\n }\n\n // Process our aggregated history data\n if (\n (cData && cData.transactions) ||\n (cRecentTXs && cRecentTXs.transactions)\n ) {\n // Process Older (historical) TXs\n const arrOlderTXs = this.toHistoricalTXs(\n cData.transactions || [],\n mapPaths\n );\n\n // Process Recent TXs, then add them manually on the basis that they are NOT already known in history\n const arrRecentTXs = this.toHistoricalTXs(\n cRecentTXs.transactions || [],\n mapPaths\n );\n for (const cTx of arrRecentTXs) {\n if (\n !this.arrTxHistory.find((a) => a.id === cTx.id) &&\n !arrOlderTXs.find((a) => a.id === cTx.id)\n ) {\n // No identical Tx, so prepend it!\n this.arrTxHistory.unshift(cTx);\n }\n }\n this.arrTxHistory = this.arrTxHistory.concat(arrOlderTXs);\n\n // If the results don't match the full 'max/requested results', then we know the history is complete\n if (\n cData.transactions &&\n cData.transactions.length !== cData.itemsOnPage\n ) {\n this.isHistorySynced = true;\n }\n }\n return this.arrTxHistory;\n } catch (e) {\n console.error(e);\n } finally {\n this.historySyncing = false;\n }\n }\n\n /**\n * Convert a list of Blockbook transactions to HistoricalTxs\n * @param {Array} arrTXs - An array of the Blockbook TXs\n * @param {Map} mapPaths - A map of the derivation paths for involved addresses\n * @returns {Array} - A new array of `HistoricalTx`-formatted transactions\n */\n toHistoricalTXs(arrTXs, mapPaths) {\n /**\n * A function to sum a list of inputs (vin) or outputs (vout)\n * @type {(v: Array<{addresses: String[], value: Number}>) => Number}\n */\n const txSum = (v) =>\n v.reduce(\n (t, s) =>\n t +\n (s.addresses &&\n s.addresses.some((strAddr) => mapPaths.has(strAddr))\n ? parseInt(s.value)\n : 0),\n 0\n );\n\n return arrTXs\n .map((tx) => {\n // The total 'delta' or change in balance, from the Tx's sums\n let nAmount = (txSum(tx.vout) - txSum(tx.vin)) / COIN;\n\n // If this Tx creates any Shield outputs\n // Note: shielOuts typo intended, this is a Blockbook error\n const fShieldOuts = Number.isFinite(tx.shielOuts);\n\n // (Un)Delegated coins in this transaction, if any\n let nDelegated = 0;\n\n // The address(es) delegated to, if any\n let strDelegatedAddr = '';\n\n // The sender addresses, if any\n const arrSenders =\n tx.vin?.flatMap((vin) => vin.addresses) || [];\n\n // The receiver addresses, if any\n let arrReceivers =\n tx.vout?.flatMap((vout) => vout.addresses) || [];\n // Pretty-fy script addresses\n arrReceivers = arrReceivers.map((addr) =>\n addr.startsWith('OP_') ? 'Contract' : addr\n );\n\n // Figure out the type, based on the Tx's properties\n let type = HistoricalTxType.UNKNOWN;\n if (\n !fShieldOuts &&\n tx?.vout[0]?.addresses[0]?.startsWith('CoinStake')\n ) {\n type = HistoricalTxType.STAKE;\n } else if (nAmount > 0 || (nAmount > 0 && fShieldOuts)) {\n type = HistoricalTxType.RECEIVED;\n // If this contains Shield outputs, then we received them\n if (fShieldOuts)\n nAmount = parseInt(tx.valueBalanceSat) / COIN;\n } else if (nAmount < 0 || (nAmount < 0 && fShieldOuts)) {\n // Check vins for undelegations\n for (const vin of tx.vin) {\n const fDelegation = vin.addresses?.some((addr) =>\n isColdAddress(addr)\n );\n if (fDelegation) {\n nDelegated -= parseInt(vin.value);\n }\n }\n\n // Check vouts for delegations\n for (const out of tx.vout) {\n strDelegatedAddr =\n out.addresses?.find((addr) =>\n isColdAddress(addr)\n ) || strDelegatedAddr;\n\n const fDelegation = !!strDelegatedAddr;\n if (fDelegation) {\n nDelegated += parseInt(out.value);\n }\n }\n\n // If a delegation was made, then display the value delegated\n if (nDelegated > 0) {\n type = HistoricalTxType.DELEGATION;\n nAmount = nDelegated / COIN;\n } else if (nDelegated < 0) {\n type = HistoricalTxType.UNDELEGATION;\n nAmount = nDelegated / COIN;\n } else {\n type = HistoricalTxType.SENT;\n // If this contains Shield outputs, then we sent them\n if (fShieldOuts)\n nAmount = parseInt(tx.valueBalanceSat) / COIN;\n }\n }\n\n return new HistoricalTx(\n type,\n tx.txid,\n arrSenders,\n nDelegated !== 0 ? [strDelegatedAddr] : arrReceivers,\n fShieldOuts,\n tx.blockTime,\n tx.blockHeight,\n Math.abs(nAmount)\n );\n })\n .filter((tx) => tx.amount != 0);\n }\n\n async setWallet(wallet) {\n // If the public Master Key (xpub, address...) is different, then wipe TX history\n if (\n (await this.wallet?.getKeyToExport()) !==\n (await wallet?.getKeyToExport())\n ) {\n this.arrTxHistory = [];\n }\n\n // Set the key\n this.wallet = wallet;\n }\n\n async getTxInfo(txHash) {\n const req = await retryWrapper(fetchBlockbook, `/api/v2/tx/${txHash}`);\n return await req.json();\n }\n\n // PIVX Labs Analytics: if you are a user, you can disable this FULLY via the Settings.\n // ... if you're a developer, we ask you to keep these stats to enhance upstream development,\n // ... but you are free to completely strip MPW of any analytics, if you wish, no hard feelings.\n submitAnalytics(strType, cData = {}) {\n if (!this.enabled) return;\n\n // TODO: rebuild Labs Analytics, submitAnalytics() will be disabled at code-level until this is live again\n /* eslint-disable */\n return;\n\n // Limit analytics here to prevent 'leakage' even if stats are implemented incorrectly or forced\n let i = 0,\n arrAllowedKeys = [];\n for (i; i < cAnalyticsLevel.stats.length; i++) {\n const cStat = cAnalyticsLevel.stats[i];\n arrAllowedKeys.push(cStatKeys.find((a) => STATS[a] === cStat));\n }\n\n // Check if this 'stat type' was granted permissions\n if (!arrAllowedKeys.includes(strType)) return false;\n\n // Format\n const cStats = { type: strType, ...cData };\n\n // Send to Labs Analytics\n const request = new XMLHttpRequest();\n request.open('POST', 'https://scpscan.net/mpw/statistic', true);\n request.setRequestHeader('Content-Type', 'application/json');\n request.send(JSON.stringify(cStats));\n return true;\n }\n}\n\nlet _network = null;\n\n/**\n * Sets the network in use by MPW.\n * @param {ExplorerNetwork} network - network to use\n */\nexport function setNetwork(network) {\n _network = network;\n}\n\n/**\n * Gets the network in use by MPW.\n * @returns {ExplorerNetwork?} Returns the network in use, may be null if MPW hasn't properly loaded yet.\n */\nexport function getNetwork() {\n return _network;\n}\n\n/**\n * A Fetch wrapper which uses the current Blockbook Network's base URL\n * @param {string} api - The specific Blockbook api to call\n * @param {RequestInit} options - The Fetch options\n * @returns {Promise} - The unresolved Fetch promise\n */\nexport function fetchBlockbook(api, options) {\n return fetch(_network.strUrl + api, options);\n}\n\n/**\n * A wrapper for Blockbook calls which can, in the event of an unresponsive explorer,\n * seamlessly attempt the same call on multiple other explorers until success.\n * @param {Function} func - The function to re-attempt with\n * @param {...any} args - The arguments to pass to the function\n */\nasync function retryWrapper(func, ...args) {\n // Track internal errors from the wrapper\n let err;\n\n // If allowed by the user, Max Tries is ALL MPW-supported explorers, otherwise, restrict to only the current one.\n let nMaxTries = cChainParams.current.Explorers.length;\n let retries = 0;\n\n // The explorer index we started at\n let nIndex = cChainParams.current.Explorers.findIndex(\n (a) => a.url === getNetwork().strUrl\n );\n\n // Run the call until successful, or all attempts exhausted\n while (retries < nMaxTries) {\n try {\n // Call the passed function with the arguments\n const res = await func(...args);\n\n // If the endpoint is non-OK, assume it's an error\n if (!res.ok) throw res;\n\n // Return the result if successful\n return res;\n } catch (error) {\n err = error;\n\n // If allowed, switch explorers\n if (!fAutoSwitch) throw err;\n nIndex = (nIndex + 1) % cChainParams.current.Explorers.length;\n const cNewExplorer = cChainParams.current.Explorers[nIndex];\n\n // Set the explorer at Network-class level, then as a hacky workaround for the current callback; we\n // ... adjust the internal URL to the new explorer.\n getNetwork().strUrl = cNewExplorer.url;\n setExplorer(cNewExplorer, true);\n\n // Bump the attempts, and re-try next loop\n retries++;\n }\n }\n\n // Throw an error so the calling code knows the operation failed\n throw err;\n}\n","import { getNetwork } from './network.js';\nimport { getBalance, isMasternodeUTXO, getStakingBalance } from './global.js';\nimport { sleep } from './misc.js';\nimport { debug } from './settings.js';\nimport { getEventEmitter } from './event_bus.js';\n\n/**\n * @typedef {Object} cIn - An input of a Tx\n * @property {string} txid - The transaction ID\n * @property {number} vout - The output index\n */\n\n/** An Unspent Transaction Output, used as Inputs of future transactions */\nexport class UTXO {\n /**\n * @param {Object} UTXO\n * @param {String} UTXO.id - Transaction ID\n * @param {String} UTXO.path - If applicable, the HD Path of the owning address\n * @param {Number} UTXO.sats - Satoshi value in this UTXO\n * @param {String} UTXO.script - HEX encoded spending script\n * @param {Array?} UTXO.vin - The inputs of the transaction, if any\n * @param {Number} UTXO.vout - Output position of this transaction\n * @param {Number} UTXO.height - Block height of the UTXO\n * @param {Number} UTXO.status - UTXO status enum state\n * @param {boolean} UTXO.isDelegate - Whether the UTXO is a cold stake delegation\n * @param {boolean} UTXO.isReward - Whether the UTXO is a reward\n */\n constructor({\n id,\n path,\n sats,\n script,\n vin = [],\n vout,\n height,\n status,\n isDelegate = false,\n isReward = false,\n } = {}) {\n /** Transaction ID\n * @type {String} */\n this.id = id;\n\n /** HD Path of the owning address\n * @type {String} */\n this.path = path;\n\n /** Satoshi value in this UTXO\n * @type {Number} */\n this.sats = sats;\n\n /** HEX encoded spending script\n * @type {String} */\n this.script = script;\n\n /** The inputs of the transaction, if any\n * @type {Array} */\n this.vin = vin;\n\n /** Output position of this transaction\n * @type {Number} */\n this.vout = vout;\n\n /** Block height of the UTXO\n * @type {Number} */\n this.height = height;\n\n /** UTXO status enum state\n * @type {Number} */\n this.status = status;\n\n /** Whether it's a delegation UTXO\n * @type {boolean} */\n this.isDelegate = isDelegate;\n\n /** Whether it's a reward UTXO\n * @type {boolean} */\n this.isReward = isReward;\n }\n\n /**\n * Check for equality between this UTXO and another UTXO\n * @param {UTXO} cUTXO - UTXO to compare against\n * @returns {Boolean} `true` if equal, `false` if unequal\n */\n equalsUTXO(cUTXO) {\n return (\n this.id === cUTXO.id &&\n this.vout === cUTXO.vout &&\n this.status === cUTXO.status\n );\n }\n}\n\n/** A Mempool instance, stores and handles UTXO data for the wallet */\nexport class Mempool {\n constructor() {\n /**\n * An array of all known UTXOs\n * @type {Array}\n */\n this.UTXOs = [];\n this.subscribeToNetwork();\n }\n\n /** The CONFIRMED state (UTXO is spendable) */\n static CONFIRMED = 0;\n\n /** The REMOVED state (UTXO was spent and will be removed soon) */\n static REMOVED = 1;\n\n /** The PENDING state (standard UTXO is in mempool, pending confirmation) */\n static PENDING = 2;\n\n /**\n * Fetch a UTXO by ID and Index\n * @param {string} id - Transaction ID of the UTXO\n * @param {number} out - Output position of the UTXO\n */\n getUTXO(id, out) {\n return this.UTXOs.find(\n (cUTXO) => cUTXO.id === id && cUTXO.vout === out\n );\n }\n\n /**\n * Remove a UTXO after a set amount of time\n * @param {Number} nBlocks - Estimated blocks to wait\n * @param {UTXO} cUTXO - UTXO to remove\n */\n async removeWithDelay(nBlocks, cUTXO) {\n await sleep(nBlocks * 60 * 1000);\n this.removeUTXO(cUTXO);\n }\n\n /**\n * Check if an exact UTXO match can be found in our wallet\n * @param {Object} UTXO\n * @param {String} UTXO.id - Transaction ID\n * @param {Number} UTXO.vout - Output position of this transaction\n * @param {Number} [UTXO.status] - UTXO status enum state. If it's undefined, it will ignore it.\n * @returns {Boolean} `true` or `false`\n */\n isAlreadyStored({ id, vout, status }) {\n return this.UTXOs.some(\n (cUTXO) =>\n cUTXO.id === id &&\n cUTXO.vout === vout &&\n (!status || cUTXO.status === status)\n );\n }\n\n /**\n * Fetches an array of UTXOs filtered by their state\n * @param {Number} nState - Specific UTXO state\n * @returns {Array} `array` - An array of UTXOs\n */\n getUTXOsByState(nState) {\n return this.UTXOs.filter((cUTXO) => cUTXO.status === nState);\n }\n\n /**\n * Removes a UTXO from a specific state\n * @param {UTXO} cNewUTXO - Pending UTXO to remove\n * @param {Number} nState - Specific state of this UTXO to search for\n */\n removeFromState(cNewUTXO, nState) {\n const arrPendingUTXOs = this.getUTXOsByState(nState);\n // Loop each pending UTXO\n for (const cUTXO of arrPendingUTXOs) {\n // Search for matching ID + output number\n if (cUTXO.id === cNewUTXO.id && cUTXO.vout === cNewUTXO.vout) {\n // Nuke it from orbit\n this.removeUTXO(cUTXO);\n break;\n }\n }\n }\n\n /**\n * Add a new UTXO to the wallet\n * @param {UTXO} UTXO\n */\n addUTXO({\n id,\n path,\n sats,\n script,\n vin,\n vout,\n height,\n status,\n isDelegate,\n isReward,\n }) {\n const newUTXO = new UTXO({\n id,\n path,\n sats,\n script,\n vin,\n vout,\n height,\n status,\n isDelegate,\n isReward,\n });\n\n if (this.isAlreadyStored({ id, vout })) {\n this.updateUTXO({ id, vout });\n } else {\n // If this new UTXO is a reward with one vin (i.e: a Stake), we'll backtrace the input\n if (isReward && vin?.length === 1) {\n const cStakeInput = this.getUTXO(vin[0].txid, vin[0].vout);\n\n // And if the input is in our wallet, remove it\n if (cStakeInput) {\n this.removeUTXO(cStakeInput);\n }\n }\n this.UTXOs.push(newUTXO);\n }\n\n // Re-render the Balance UIs\n getEventEmitter().emit('balance-update', getBalance(true));\n getStakingBalance(true);\n }\n\n /**\n * Update an existing UTXO, by confirming its pending status\n * The UTXO must be in\n * @param {Object} UTXO - Object to be deconstructed\n * @param {String} UTXO.id - Transaction id\n * @param {Number} UTXO.vout - vout\n */\n updateUTXO({ id, vout }) {\n if (debug) {\n console.assert(\n this.isAlreadyStored({ id, vout }),\n 'Debug Mode: updateUTXO must be called with an existing UTXO'\n );\n }\n const cUTXO = this.UTXOs.find(\n (utxo) => utxo.id === id && utxo.vout == vout\n );\n switch (cUTXO.status) {\n case Mempool.PENDING:\n cUTXO.status = Mempool.CONFIRMED;\n break;\n }\n getBalance(true);\n getStakingBalance(true);\n }\n\n /**\n * Remove a UTXO completely from our wallet\n * @param {UTXO} cUTXO - UTXO to remove\n */\n removeUTXO(cUTXO) {\n this.UTXOs = this.UTXOs.filter((utxo) => !utxo.equalsUTXO(cUTXO));\n }\n\n /**\n * Remove a UTXO completely from our wallet, with a 12 minute delay given his id, path and vout\n * @param {Object} UTXO\n * @param {String} UTXO.id - Transaction ID\n * @param {Number} UTXO.vout - Output position of this transaction\n */\n autoRemoveUTXO({ id, vout }) {\n for (const cUTXO of this.UTXOs) {\n // Loop given + internal UTXOs to find a match, then start the delayed removal\n if (cUTXO.id === id && cUTXO.vout === vout) {\n cUTXO.status = Mempool.REMOVED;\n this.removeWithDelay(12, cUTXO);\n return;\n }\n }\n console.error(\n 'Mempool: Failed to find UTXO ' +\n id +\n ' (' +\n vout +\n ') for auto-removal!'\n );\n }\n\n /**\n * Remove many UTXOs completely from our wallet, with a 12 minute delay\n * @param {Array} arrUTXOs - UTXOs to remove\n */\n autoRemoveUTXOs(arrUTXOs) {\n for (const cNewUTXO of arrUTXOs) {\n for (const cUTXO of this.UTXOs) {\n // Loop given + internal UTXOs to find a match, then start the delayed removal\n if (cUTXO.equalsUTXO(cNewUTXO)) {\n cUTXO.status = Mempool.REMOVED;\n this.removeWithDelay(12, cUTXO);\n break;\n }\n }\n }\n }\n\n /**\n * Fetches an array of confirmed UTXOs, an easier alias to {@link getUTXOsByState}\n * @returns {Array} `array` - An array of UTXOs\n */\n getConfirmed() {\n return this.getUTXOsByState(Mempool.CONFIRMED);\n }\n\n /**\n * Get standard, non delegated, UTXOs\n * @returns {Array} Non delegated utxos\n */\n getStandardUTXOs() {\n return this.UTXOs.filter(\n (cUTXO) => cUTXO.status !== Mempool.REMOVED && !cUTXO.isDelegate\n );\n }\n\n /**\n * Get delegated UTXOs\n * @returns {Array} Delegated UTXOs\n */\n getDelegatedUTXOs() {\n return this.UTXOs.filter(\n (cUTXO) => cUTXO.status !== Mempool.REMOVED && cUTXO.isDelegate\n );\n }\n\n /**\n * Returns the real-time balance of the wallet (all addresses)\n * @returns {Number} Balance in satoshis\n */\n getBalance() {\n // Fetch 'standard' balances: the sum of all Confirmed or Unconfirmed transactions (excluding Masternode collaterals)\n return this.getStandardUTXOs()\n .filter((cUTXO) => !isMasternodeUTXO(cUTXO)) // TODO: add masternode\n .reduce((a, b) => a + b.sats, 0);\n }\n\n /**\n * Returns if a UTXO is valid\n * @param {UTXO} cUTXO - UTXO\n * @returns {Boolean} `true` if the reward UTXO is spendable, `false` if not\n */\n static isValidUTXO(cUTXO) {\n if (cUTXO.isReward) {\n return getNetwork().cachedBlockCount - cUTXO.height > 100;\n } else {\n return true;\n }\n }\n\n /**\n * Returns the real-time delegated balance of the wallet (all addresses)\n * @returns {Number} Delegated balance in satoshis\n */\n getDelegatedBalance() {\n return this.getDelegatedUTXOs().reduce((a, b) => a + b.sats, 0);\n }\n\n /**\n * Subscribes to network events\n * @param {Network} network\n */\n subscribeToNetwork() {\n getEventEmitter().on('utxo', async (utxos) => {\n for (const utxo of utxos) {\n // If we have the UTXO, we update it's confirmation status\n if (this.isAlreadyStored({ id: utxo.txid, vout: utxo.vout })) {\n this.updateUTXO({ id: utxo.txid, vout: utxo.vout });\n continue;\n }\n // If the UTXO is new, we'll process it and add it internally\n this.addUTXO(await getNetwork().getUTXOFullInfo(utxo));\n }\n });\n }\n}\n","import { translation } from './i18n.js';\nimport { doms } from './global.js';\nimport qrcode from 'qrcode-generator';\nimport bs58 from 'bs58';\nimport { bech32 } from 'bech32';\nimport { BIP21_PREFIX, cChainParams } from './chain_params.js';\nimport { dSHA256 } from './utils.js';\n\n/* MPW constants */\nexport const pubKeyHashNetworkLen = 21;\nexport const pubChksum = 4;\nexport const pubPrebaseLen = pubKeyHashNetworkLen + pubChksum;\n\n// Base58 Encoding Map\nexport const MAP_B58 =\n '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';\nexport const LEN_B58 = MAP_B58.length;\n\n/* --- UTILS --- */\n// Cryptographic Random-Gen\nexport function getSafeRand(nSize = 32) {\n return crypto.getRandomValues(new Uint8Array(nSize));\n}\n\nexport const MAP_ALPHANUMERIC =\n 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';\n\n/**\n * Generate a random Alpha-Numeric sequence\n * @param {number} nSize - The amount of characters to generate\n * @returns {string} - A random alphanumeric string of nSize length\n */\nexport function getAlphaNumericRand(nSize = 32) {\n let result = '';\n const randValues = getSafeRand(nSize);\n for (const byte of randValues) {\n const index = byte % MAP_ALPHANUMERIC.length;\n result += MAP_ALPHANUMERIC.charAt(index);\n }\n return result;\n}\n\n// Writes a sequence of Array-like bytes into a location within a Uint8Array\nexport function writeToUint8(arr, bytes, pos) {\n const arrLen = arr.length;\n // Sanity: ensure an overflow cannot occur, if one is detected, somewhere in MPW's state could be corrupted.\n if (arrLen - pos - bytes.length < 0) {\n const strERR =\n 'CRITICAL: Overflow detected (' +\n (arrLen - pos - bytes.length) +\n '), possible state corruption, backup and refresh advised.';\n createAlert('warning', strERR, 5000);\n throw Error(strERR);\n }\n let i = 0;\n while (pos < arrLen) arr[pos++] = bytes[i++];\n}\n\n/** Convert a 2D array into a CSV string */\nexport function arrayToCSV(data) {\n return data\n .map(\n (row) =>\n row\n .map(String) // convert every value to String\n .map((v) => v.replaceAll('\"', '\"\"')) // escape double colons\n .map((v) => `\"${v}\"`) // quote it\n .join(',') // comma-separated\n )\n .join('\\r\\n'); // rows starting on new lines\n}\n\n/** Download contents as a file */\nexport function downloadBlob(content, filename, contentType) {\n // Create a blob\n const blob = new Blob([content], { type: contentType });\n\n // Create a link to download it\n const pom = document.createElement('a');\n pom.href = URL.createObjectURL(blob);\n pom.setAttribute('download', filename);\n pom.click();\n}\n\n/**\n * Create a custom GUI Alert popup\n *\n * ### Do NOT display arbitrary / external errors:\n * - The use of `.innerHTML` allows for input styling at this cost.\n * @param {'success'|'info'|'warning'} type - The styling type of the alert\n * @param {string} message - The message to relay to the user\n * @param {number?} timeout - The time in `ms` until the alert expires (Defaults to never expiring)\n */\nexport function createAlert(type, message, timeout = 0) {\n const domAlert = document.createElement('div');\n domAlert.classList.add('notifyWrapper');\n domAlert.classList.add(type);\n setTimeout(() => {\n domAlert.style.opacity = '1';\n domAlert.style.zIndex = '999999';\n domAlert.classList.add('bounce-ani');\n domAlert.classList.add('bounce');\n }, 100);\n\n // Colors for types\n let typeIcon;\n switch (type) {\n case 'warning':\n typeIcon = 'fa-exclamation';\n break;\n case 'info':\n typeIcon = 'fa-info';\n break;\n default:\n // If no valid type is set, default to success\n type == 'success';\n typeIcon = 'fa-check';\n break;\n }\n\n // Message\n domAlert.innerHTML = `\n
\n \n
\n
\n ${message}\n
`;\n domAlert.destroy = () => {\n // Fully destroy timers + DOM elements, no memory leaks!\n clearTimeout(domAlert.timer);\n domAlert.style.opacity = '0';\n setTimeout(() => {\n domAlert.remove();\n }, 600);\n };\n // On Click: Delete alert from DOM after close animation.\n domAlert.addEventListener('click', domAlert.destroy);\n // On Timeout: Delete alert from DOM after a period of inactive time.\n if (timeout > 0) domAlert.timer = setTimeout(domAlert.destroy, timeout);\n doms.domAlertPos.appendChild(domAlert);\n}\n\n/**\n * Shows a Confirm popup with custom HTML.\n *\n * If `resolvePromise` has a value, the popup won't have\n * Confirm/Cancel buttons and will wait for the promise to resolve.\n *\n * Returns the awaited value of `resolvePromise` or `true/false` if the\n * user used a Cancel/Confirm button.\n * @param {object} options\n * @param {string?} options.title - The optional title of the popup\n * @param {string} options.html - The HTML of the popup contents\n * @param {Promise} options.resolvePromise - A promise to resolve before closing the modal\n * @param {boolean?} options.hideConfirm - Whether to hide the Confirm button or not\n * @param {boolean?} options.purpleModal - Toggle a Purple modal, or leave as false for White\n * @param {boolean?} options.textLeft - Toggle to align modal text to the left, or leave as false for center\n * @param {boolean?} options.noPadding - Toggle zero padding, or leave as false for default padding\n * @param {number?} options.maxHeight - An optional modal Max Height, omit for default modal max\n * @returns {Promise}\n */\nexport async function confirmPopup({\n title,\n html,\n resolvePromise,\n hideConfirm,\n purpleModal,\n textLeft,\n noPadding,\n maxHeight,\n}) {\n // If there's a title provided: display the header and text\n doms.domConfirmModalHeader.style.display = title ? 'block' : 'none';\n doms.domConfirmModalTitle.innerHTML = title || '';\n\n // If there's a promise to resolve, don't display buttons; the modal visibility will be controlled by the promise (f.e: a 'pls wait' screen)\n doms.domConfirmModalButtons.style.setProperty(\n 'display',\n resolvePromise ? 'none' : 'block',\n resolvePromise ? 'important' : undefined\n );\n $('#confirmModal').modal(resolvePromise ? 'show' : { keyboard: false });\n\n // Show or hide the confirm button, and replace 'Cancel' with 'Close'\n doms.domConfirmModalConfirmButton.style.display = hideConfirm ? 'none' : '';\n doms.domConfirmModalCancelButton.innerText = hideConfirm\n ? translation.popupClose\n : translation.popupCancel;\n\n // Set content display\n doms.domConfirmModalContent.innerHTML = html;\n\n // Set text align to left\n if (textLeft) {\n doms.domConfirmModalContent.classList.remove('center-text');\n } else {\n doms.domConfirmModalContent.classList.add('center-text');\n }\n\n // Use the purple modal\n if (purpleModal) {\n doms.domConfirmModalMain.classList.add('exportKeysModalColor');\n } else {\n doms.domConfirmModalMain.classList.remove('exportKeysModalColor');\n }\n\n // Remove padding\n if (noPadding) {\n doms.domConfirmModalContent.classList.add('px-0');\n doms.domConfirmModalContent.classList.add('pb-0');\n } else {\n doms.domConfirmModalContent.classList.remove('px-0');\n doms.domConfirmModalContent.classList.remove('pb-0');\n }\n\n // Set max-height (removed at `.finally` context)\n if (maxHeight)\n doms.domConfirmModalDialog.classList.add(`max-w-${maxHeight}`);\n\n // If there's an input in the prompt, focus the cursor upon it\n for (const domElement of doms.domConfirmModalContent.children) {\n if (domElement.type === 'text' || domElement.type === 'password') {\n domElement.focus();\n break;\n }\n }\n\n // Wait for the promise to resolve OR create a new one which resolves upon a modal button click\n resolvePromise =\n resolvePromise ||\n new Promise((res, _) => {\n doms.domConfirmModalConfirmButton.onclick = () => {\n res(true);\n };\n doms.domConfirmModalCancelButton.onclick = () => {\n res(false);\n };\n });\n try {\n return await resolvePromise;\n } finally {\n // We want to hide the modal even if an exception occurs\n $('#confirmModal').modal('hide');\n\n // Reset any modal settings\n doms.domConfirmModalDialog.classList.remove(`max-w-${maxHeight}`);\n }\n}\n\n// Generates and sets a QRCode image from a string and dom element\nexport function createQR(strData = '', domImg, size = 4) {\n // QRCode class consists of 'typeNumber' & 'errorCorrectionLevel'\n const cQR = qrcode(size, 'L');\n cQR.addData(strData);\n cQR.make();\n domImg.innerHTML = cQR.createImgTag(2, 2);\n domImg.firstChild.style.borderRadius = '8px';\n}\n\n/**\n * Prompt image selection, and return base64 of an image file.\n * @returns {Promise} The base64 string of the selected image file.\n */\nexport async function getImageFile() {\n return new Promise((resolve) => {\n let input = document.createElement('input');\n input.type = 'file';\n input.accept = 'image/*';\n input.onchange = (e) => {\n let file = e.target.files[0];\n let reader = new FileReader();\n reader.onloadend = () => resolve(reader.result);\n reader.readAsDataURL(file);\n };\n input.click();\n });\n}\n\n/**\n * A quick check to see if an address is a Standard (P2PKH) address\n * @param {string} strAddress - The address to check\n * @returns {boolean} - `true` if a Standard address, `false` if not\n */\nexport function isStandardAddress(strAddress) {\n return (\n strAddress.length === 34 &&\n cChainParams.current.PUBKEY_PREFIX.includes(strAddress[0])\n );\n}\n\n/**\n * A quick check to see if an address is a Cold (P2CS) address\n * @param {string} strAddress - The address to check\n * @returns {boolean} - `true` if a Cold address, `false` if not\n */\nexport function isColdAddress(strAddress) {\n return (\n strAddress.length === 34 &&\n cChainParams.current.STAKING_PREFIX === strAddress[0]\n );\n}\n\n/**\n * A quick check to see if a string is an XPub key\n * @param {string} strXPub - The XPub to check\n * @returns {boolean} - `true` if a valid formatted XPub, `false` if not\n */\nexport function isXPub(strXPub) {\n if (!strXPub.startsWith('xpub')) return false;\n\n // Attempt to Base58 decode the XPub\n try {\n // Slice away the `xpub` prefix and decode\n const decoded = bs58.decode(strXPub.slice(4));\n\n // Then verify the final length too\n return decoded.length === 78;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Attempt to safely parse a BIP21 Payment Request\n * @param {string} strReq - BIP21 Payment Request string\n * @returns {object | false}\n */\nexport function parseBIP21Request(strReq) {\n // Format should match: pivx:addr[?amount=x&label=x]\n if (!strReq.includes(BIP21_PREFIX + ':')) return false;\n\n const [addressPart, optionsPart] = strReq.includes('?')\n ? strReq.split('?')\n : [strReq, false];\n const strAddress = addressPart.substring(BIP21_PREFIX.length + 1); // remove 'pivx:' prefix\n let cOptions = {};\n\n // Ensure the address is valid\n if (\n // Standard address\n !isStandardAddress(strAddress) &&\n // Shield address\n !isValidBech32(strAddress).valid\n ) {\n return false;\n }\n\n if (optionsPart) {\n cOptions = Object.fromEntries(\n optionsPart\n .split('&')\n .map((opt) => opt.split('=').map(decodeURIComponent))\n );\n }\n\n return { address: strAddress, options: cOptions };\n}\n\n/**\n * @typedef {object} Bech32Check\n * @property {boolean} valid - If the string is a valid bech32 address\n * @property {object} res - The results of the bech32 decoding\n */\n\n/**\n * A safe bech32 wrapper for quickly checking if an address is valid\n * @param {string} str - Bech32 Address\n * @returns {Bech32Check} - Both the validity and decoding results\n */\nexport function isValidBech32(str) {\n try {\n return { valid: true, res: bech32.decode(str) };\n } catch (e) {\n return { valid: false, res: e };\n }\n}\n\n/**\n * Generate an encoded private key for masternodes\n */\nexport function generateMasternodePrivkey() {\n // Prefix the network byte with the private key (32 random bytes)\n const data = [cChainParams.current.SECRET_KEY, ...getSafeRand(32)];\n\n // Compute and concatenate the checksum, then encode the private key as Base58\n return bs58.encode([...data, ...dSHA256(data).slice(0, 4)]);\n}\n\nexport function sanitizeHTML(text) {\n const element = document.createElement('div');\n element.innerText = text;\n return element.innerHTML;\n}\n\n/**\n * \"Beautifies\" a number with HTML, by displaying decimals in a lower opacity\n * @param {string} strNumber - The number in String form to beautify\n * @param {string?} strDecFontSize - The optional font size to display decimals in\n * @returns {string} - A HTML string with beautified number handling\n */\nexport function beautifyNumber(strNumber, strDecFontSize = '') {\n if (typeof strNumber === 'number') strNumber = strNumber.toString();\n\n // Only run this for numbers with decimals\n if (!strNumber.includes('.')) return strNumber;\n\n // Split the number in to Full and Decimal parts\n const arrNumParts = strNumber.split('.');\n\n // Return a HTML that renders the decimal in a lower opacity\n const strFontSize = strDecFontSize ? 'font-size: ' + strDecFontSize : '';\n return `${arrNumParts[0]}.${arrNumParts[1]}`;\n}\n\n/**\n * Check if a string is valid Base64 encoding\n * @param {string} str - String to check\n * @returns {boolean}\n */\nexport function isBase64(str) {\n const base64Regex = /^[A-Za-z0-9+/=]+$/;\n\n // Check if the string contains only Base64 characters:\n if (!base64Regex.test(str)) {\n return false;\n }\n\n // Check if the length is a multiple of 4 (required for Base64):\n if (str.length % 4 !== 0) {\n return false;\n }\n\n // Try decoding the Base64 string to check for errors:\n try {\n atob(str);\n } catch (e) {\n return false;\n }\n\n // The string is likely Base64-encoded:\n return true;\n}\n\n/**\n * Checks if two values are of the same type.\n *\n * @param {any} a - The first value.\n * @param {any} b - The second value.\n * @returns {boolean} - `true` if the values are of the same type, `false` if not or if there was an error comparing.\n */\nexport function isSameType(a, b) {\n try {\n if (a === null || b === null) return a === b;\n if (typeof a !== typeof b) return false;\n if (typeof a === 'object')\n return Object.getPrototypeOf(a) === Object.getPrototypeOf(b);\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Checks if a value is 'empty'.\n *\n * @param {any} val - The value to check.\n * @returns {boolean} - `true` if the value is 'empty', `false` otherwise.\n * ---\n * Values **considered 'empty'**: `null`, `undefined`, empty strings, empty arrays, empty objects.\n *\n * Values **NOT considered 'empty'**: Any non-nullish primitive value: numbers (including `0` and `NaN`), `true`, `false`, `Symbol()`, `BigInt()`.\n */\nexport function isEmpty(val) {\n return (\n val == null ||\n val === '' ||\n (Array.isArray(val) && val.length === 0) ||\n (typeof val === 'object' && Object.keys(val).length === 0)\n );\n}\n\n/**\n * An artificial sleep function to pause code execution\n *\n * @param {Number} ms - The milliseconds to sleep\n *\n * @example\n * // Pause an asynchronous script for 1 second\n * await sleep(1000);\n */\nexport function sleep(ms) {\n return new Promise((res, _) => setTimeout(res, ms));\n}\n","import createXpub from 'create-xpub';\nimport { ALERTS, tr } from './i18n.js';\nimport AppBtc from '@ledgerhq/hw-app-btc';\nimport TransportWebUSB from '@ledgerhq/hw-transport-webusb';\nimport { createAlert } from './misc.js';\n\n/**\n * @type{TransportWebUSB}\n */\nlet transport;\n/**\n * @type {AppBtc?}\n */\nexport let cHardwareWallet = null;\nexport let strHardwareName = '';\n/**\n * Get hardware wallet keys.\n * @param {string} path - bip32 path to the key\n * @returns {Promise}\n */\nexport async function getHardwareWalletKeys(path, xpub = false, verify = true) {\n try {\n // Check if we haven't setup a connection yet OR the previous connection disconnected\n if (!cHardwareWallet || transport._disconnectEmitted) {\n transport = await TransportWebUSB.create();\n cHardwareWallet = new AppBtc({ transport, currency: 'PIVX' });\n }\n\n // Update device info and fetch the pubkey\n strHardwareName =\n transport.device.manufacturerName +\n ' ' +\n transport.device.productName;\n\n // Prompt the user in both UIs\n if (verify) createAlert('info', ALERTS.WALLET_CONFIRM_L, 3500);\n const cPubKey = await cHardwareWallet.getWalletPublicKey(path, {\n verify,\n format: 'legacy',\n });\n\n if (xpub) {\n return createXpub({\n depth: 3,\n childNumber: 2147483648,\n chainCode: cPubKey.chainCode,\n publicKey: cPubKey.publicKey,\n });\n } else {\n return cPubKey.publicKey;\n }\n } catch (e) {\n if (e.message.includes('denied by the user')) {\n // User denied an operation\n return null;\n }\n\n // If there's no device, nudge the user to plug it in.\n if (e.message.toLowerCase().includes('no device selected')) {\n createAlert('info', ALERTS.WALLET_NO_HARDWARE, 10000);\n return null;\n }\n\n // If the device is unplugged, or connection lost through other means (such as spontanious device explosion)\n if (e.message.includes(\"Failed to execute 'transferIn'\")) {\n createAlert(\n 'info',\n tr(ALERTS.WALLET_HARDWARE_CONNECTION_LOST, [\n {\n hardwareWallet: strHardwareName,\n },\n ]),\n 10000\n );\n return null;\n }\n\n // If the ledger is busy, just nudge the user.\n if (e.message.includes('is busy')) {\n createAlert(\n 'info',\n tr(ALERTS.WALLET_HARDWARE_BUSY, [\n {\n hardwareWallet: strHardwareName,\n },\n ]),\n 7500\n );\n return null;\n }\n\n // This is when the OS denies access to the WebUSB\n // It's likely caused by faulty udev rules on linux\n if (e instanceof DOMException && e.message.includes('Access Denied')) {\n if (navigator.userAgent.toLowerCase().includes('linux')) {\n createAlert('warning', ALERTS.WALLET_HARDWARE_UDEV, 5500);\n } else {\n createAlert('warning', ALERTS.WALLET_HARDWARE_NO_ACCESS, 5500);\n }\n\n console.error(e);\n return;\n }\n\n // Check if this is an expected error\n if (!e.statusCode || !LEDGER_ERRS.has(e.statusCode)) {\n console.error(\n 'MISSING LEDGER ERROR-CODE TRANSLATION! - Please report this below error on our GitHub so we can handle it more nicely!'\n );\n throw e;\n }\n\n // Translate the error to a user-friendly string (if possible)\n createAlert(\n 'warning',\n tr(ALERTS.WALLET_HARDWARE_ERROR, [\n {\n hardwareWallet: strHardwareName,\n },\n {\n error: LEDGER_ERRS.get(e.statusCode),\n },\n ]),\n 5500\n );\n\n return null;\n }\n}\n\n// Ledger Hardware wallet constants\nexport const LEDGER_ERRS = new Map([\n // Ledger error code <--> User-friendly string\n [25870, 'Open the PIVX app on your device'],\n [25873, 'Open the PIVX app on your device'],\n [57408, 'Navigate to the PIVX app on your device'],\n [27157, 'Wrong app! Open the PIVX app on your device'],\n [27266, 'Wrong app! Open the PIVX app on your device'],\n [27904, 'Wrong app! Open the PIVX app on your device'],\n [27010, 'Unlock your Ledger, then try again!'],\n [27404, 'Unlock your Ledger, then try again!'],\n]);\n","const buff_to_base64 = (buff) => btoa(String.fromCharCode.apply(null, buff));\n\nconst base64_to_buf = (b64) =>\n Uint8Array.from(atob(b64), (c) => c.charCodeAt(null));\n\nconst enc = new TextEncoder();\nconst dec = new TextDecoder();\n\nexport async function encrypt(data, strPassword = '') {\n const strPass =\n strPassword ||\n window.prompt('Please enter your wallet encryption password');\n if (!strPass) return false;\n return await encryptData(data, strPass);\n}\n\nexport async function decrypt(data, strPassword) {\n const strPass =\n strPassword ||\n window.prompt('Please enter your wallet unlock password');\n if (!strPass) return false;\n return (await decryptData(data, strPass)) || 'decryption failed!';\n}\n\nconst getPasswordKey = (password) =>\n window.crypto.subtle.importKey(\n 'raw',\n enc.encode(password),\n 'PBKDF2',\n false,\n ['deriveKey']\n );\n\nconst deriveKey = (passwordKey, salt, keyUsage) =>\n window.crypto.subtle.deriveKey(\n {\n name: 'PBKDF2',\n salt,\n iterations: 250000,\n hash: 'SHA-256',\n },\n passwordKey,\n { name: 'AES-GCM', length: 256 },\n false,\n keyUsage\n );\n\nasync function encryptData(secretData, password) {\n try {\n const salt = window.crypto.getRandomValues(new Uint8Array(16));\n const iv = window.crypto.getRandomValues(new Uint8Array(12));\n const passwordKey = await getPasswordKey(password);\n const aesKey = await deriveKey(passwordKey, salt, ['encrypt']);\n const encryptedContent = await window.crypto.subtle.encrypt(\n {\n name: 'AES-GCM',\n iv: iv,\n },\n aesKey,\n enc.encode(secretData)\n );\n\n const encryptedContentArr = new Uint8Array(encryptedContent);\n let buff = new Uint8Array(\n salt.byteLength + iv.byteLength + encryptedContentArr.byteLength\n );\n buff.set(salt, 0);\n buff.set(iv, salt.byteLength);\n buff.set(encryptedContentArr, salt.byteLength + iv.byteLength);\n return buff_to_base64(buff);\n } catch (e) {\n console.log(`Error - ${e}`);\n return '';\n }\n}\n\nasync function decryptData(encryptedData, password) {\n try {\n const encryptedDataBuff = base64_to_buf(encryptedData);\n const salt = encryptedDataBuff.slice(0, 16);\n const iv = encryptedDataBuff.slice(16, 16 + 12);\n const data = encryptedDataBuff.slice(16 + 12);\n const passwordKey = await getPasswordKey(password);\n const aesKey = await deriveKey(passwordKey, salt, ['decrypt']);\n const decryptedContent = await window.crypto.subtle.decrypt(\n {\n name: 'AES-GCM',\n iv: iv,\n },\n aesKey,\n data\n );\n return dec.decode(decryptedContent);\n } catch (e) {\n console.log(`Error - ${e}`);\n return '';\n }\n}\n","import { Contact } from './contacts-book.js';\n\n/**\n * A local Account, containing sensitive user-data\n */\nexport class Account {\n /**\n * Create an Account.\n * @param {Object} accountData - The account data.\n * @param {String} accountData.publicKey - The public key.\n * @param {String} [accountData.encWif] - The encrypted WIF.\n * @param {Array} [accountData.localProposals] - The local proposals.\n * @param {Array} [accountData.contacts] - The Contacts saved in this account.\n * @param {String} [accountData.name] - The Contact Name of the account.\n * @param {String} [accountData.coldAddress] - The Cold Address that this account delegates to.\n */\n constructor(accountData) {\n // Keys take the Constructor as priority, but if missing, default to their \"Type\" in empty form for type-safety\n this.publicKey = accountData?.publicKey || '';\n this.encWif = accountData?.encWif || '';\n this.localProposals = accountData?.localProposals || [];\n this.contacts = accountData?.contacts || [];\n this.name = accountData?.name || '';\n this.coldAddress = accountData?.coldAddress || '';\n }\n\n /** @type {String} The public key. */\n publicKey = '';\n\n /** @type {String} The encrypted WIF. */\n encWif = '';\n\n /** @type {Array} The local proposals. */\n localProposals = [];\n\n /** @type {Array} The Contacts saved in this account. */\n contacts = [];\n\n /** @type {String} The Contact Name of the account. */\n name = '';\n\n /** @type {String} The Cold Address that this account delegates to. */\n coldAddress = '';\n\n /**\n * Search for a Contact in this account, by specific properties\n * @param {Object} settings\n * @param {string?} settings.name - The Name of the contact to search for\n * @param {string?} settings.pubkey - The Pubkey of the contact to search for\n * @returns {Contact?} - A Contact, if found\n */\n getContactBy({ name, pubkey }) {\n if (!name && !pubkey)\n throw Error(\n 'getContactBy(): At least ONE search parameter MUST be set!'\n );\n\n // Get by Name\n if (name) return this.contacts.find((a) => a.label === name);\n // Get by Pubkey\n if (pubkey) return this.contacts.find((a) => a.pubkey === pubkey);\n\n // Nothing found\n return null;\n }\n}\n","import { Buffer } from 'buffer';\nimport { Account } from './accounts.js';\nimport { Database } from './database.js';\nimport { doms, toClipboard } from './global.js';\nimport { ALERTS, tr, translation } from './i18n.js';\nimport {\n confirmPopup,\n createAlert,\n createQR,\n getImageFile,\n isStandardAddress,\n isXPub,\n sanitizeHTML,\n} from './misc.js';\nimport { scanQRCode } from './scanner.js';\nimport { wallet, hasEncryptedWallet } from './wallet.js';\n\n/**\n * Represents an Account contact\n */\nexport class Contact {\n /**\n * Creates a new Account contact\n * @param {Object} options - The contact options\n * @param {string} options.label - The label of the contact\n * @param {string} options.icon - The optional icon of the contact (base64)\n * @param {string} options.pubkey - The Master public key of the contact\n * @param {number} options.date - The date (unix timestamp) of the contact being saved\n */\n constructor({ label, icon, pubkey, date }) {\n this.label = label;\n this.icon = icon;\n this.pubkey = pubkey;\n this.date = date;\n }\n\n /** The label of the Contact\n * @type {string}\n */\n label;\n\n /** The optional icon of the Contact (base64)\n * @type {string}\n */\n icon;\n\n /** The Master public key of the Contact\n * @type {string}\n */\n pubkey;\n\n /** The date (unix timestamp) of the Contact being saved\n * @type {number}\n */\n date;\n}\n\n/**\n * Add a Contact to an Account's contact list\n * @param {Account} account - The account to add the Contact to\n * @param {Contact} contact - The contact object\n */\nexport async function addContact(account, contact) {\n // TODO: once multi-account is added, ensure this function adds the contact to the correct account (by pubkey)\n const cDB = await Database.getInstance();\n\n // Push contact in to the account\n account.contacts.push(contact);\n\n // Save to the DB\n await cDB.updateAccount(account);\n}\n\n/**\n * Remove a Contact from an Account's contact list\n * @param {Account} account - The account to remove the Contact from\n * @param {string} pubkey - The contact pubkey\n */\nexport async function removeContact(account, pubkey) {\n // TODO: once multi-account is added, ensure this function adds the contact to the correct account (by pubkey)\n const cDB = await Database.getInstance();\n\n // Find the contact by index, if it exists; splice it away\n const nIndex = account.contacts.findIndex((a) => a.pubkey === pubkey);\n if (nIndex > -1) {\n // Splice out the contact, and save to DB\n account.contacts.splice(nIndex, 1);\n await cDB.updateAccount(account, true);\n }\n}\n\n/**\n * Render an Account's contact list\n * @param {Account} account\n * @param {boolean} fPrompt - If this is a Contact Selection prompt\n */\nexport async function renderContacts(account, fPrompt = false) {\n let strHTML = '';\n let i = 0;\n\n // For non-prompts: we allow the user to Add, Edit or Delete their contacts\n if (!fPrompt) {\n // Render an editable Contacts Table\n for (const cContact of account.contacts || []) {\n const strPubkey = isXPub(cContact.pubkey)\n ? cContact.pubkey.slice(0, 32) + '…'\n : cContact.pubkey;\n strHTML += `\n
\n
\n \n
\n
\n ${sanitizeHTML(\n cContact.label\n )}\n ${sanitizeHTML(\n strPubkey\n )}\n
\n
\n \n
\n
\n `;\n i++;\n }\n\n // Lastly, inject the \"Add Account\" UI to the table\n strHTML += `\n
\n
\n \n
\n
\n \n
\n
\n
\n \n
\n
\n \n
\n
\n
\n `;\n\n doms.domContactsTable.innerHTML = strHTML;\n } else {\n // For prompts: the user must click an address (or cancel), and cannot add, edit or delete contacts\n strHTML += `
`;\n for (const cContact of account.contacts || []) {\n const strPubkey = isXPub(cContact.pubkey)\n ? cContact.pubkey.slice(0, 32) + '…'\n : cContact.pubkey;\n strHTML += `\n
\n
\n \n
\n
\n ${sanitizeHTML(\n sanitizeHTML(cContact.label)\n )}\n ${sanitizeHTML(\n strPubkey\n )}\n
\n
\n `;\n i++;\n }\n\n // Add the final \"Back\" button\n strHTML += `\n \n ${translation.back}\n \n `;\n\n // Finish the display\n strHTML += `
`;\n\n // Prepare the Contact list Prompt\n const cPrompt = getUserContactClick();\n\n // Hook the Contact Prompt to the Popup UI, which resolves when the user has interacted with the Contact Prompt\n return await confirmPopup({\n title: translation.chooseAContact,\n html: strHTML,\n resolvePromise: cPrompt(),\n purpleModal: true,\n textLeft: true,\n noPadding: true,\n maxHeight: 450,\n });\n }\n}\n\n/**\n * Creates and returns a function that returns a promise for a click event.\n *\n * The promise will resolve with the Contact Name of whichever button is clicked first.\n *\n * Once a button is clicked, all remaining listeners are removed.\n */\nfunction getUserContactClick() {\n // Specify the function to return\n return function () {\n // Note that the return type is a Promise, this will wait on the click\n return new Promise((resolve, _reject) => {\n // Wait a bit for the DOM to fully render, then setup the handler functions + attach them to the Contact Buttons via Event Listeners\n setTimeout(() => {\n // The function to handle the click\n function handleClick(event) {\n // If this is the Exit button (a -1 index), just silently quit\n if (event.target.id.endsWith('-1')) return resolve('');\n\n // Splice the 'Contact Index' from the button clicked\n const nIndex = event.target.id.match(/([0-9]+)$/)[0];\n // Fetch the associated Contact Name from the table\n // TODO: maybe don't rely on the table, and just fetch the Contact Index from the DB Contacts?\n const strName = document.getElementById(\n `contactsName${nIndex}`\n ).innerText;\n // Resolve the promise with the Contact Name of the button that was clicked first\n resolve(strName);\n // Remove all the remaining click listeners\n removeRemainingListeners();\n }\n\n // The function to iterate over the buttons and remove their listeners\n function removeRemainingListeners() {\n let i = -1;\n let button;\n // This iteration removes the listener from each button\n // eslint-disable-next-line no-cond-assign\n while (\n (button = document.getElementById(\n `contactsSelector${i}`\n ))\n ) {\n button.removeEventListener('click', handleClick);\n i++;\n }\n }\n\n // Attach a click listener to each `contactsSelector` button\n let i = -1;\n let button;\n // eslint-disable-next-line no-cond-assign\n while (\n (button = document.getElementById(`contactsSelector${i}`))\n ) {\n button.addEventListener('click', handleClick, {\n once: true,\n });\n i++;\n }\n }, 500); // Waits 500ms to ensure the all the elements have been added to the DOM (yeah, not the most elegant, but cannot think of a better solution yet)\n });\n };\n}\n\n/**\n * A function that uses the Prompt system to ask the user for a contact\n */\nexport async function promptForContact() {\n const cDB = await Database.getInstance();\n const cAccount = await cDB.getAccount();\n if (!cAccount || (cAccount.contacts && cAccount.contacts.length === 0))\n return createAlert('warning', ALERTS.CONTACTS_YOU_HAVE_NONE, 2500);\n return renderContacts(cAccount, true);\n}\n\n/**\n * A GUI button wrapper that fills an Input with a user-selected Contact\n * @param {HTMLInputElement} domInput - The input box to fill with a selected Contact Address\n */\nexport async function guiSelectContact(domInput) {\n // Fill the 'Input box' with a user-chosen Contact\n domInput.value = (await promptForContact()) || '';\n\n // Run the validity checker for double-safety\n await guiCheckRecipientInput({ target: domInput });\n}\n\n/**\n * A GUI wrapper that renders the current Account's contacts list\n */\nexport async function guiRenderContacts() {\n const cDB = await Database.getInstance();\n const cAccount = await cDB.getAccount();\n\n if (!cAccount || !cAccount.contacts) {\n return createAlert(\n 'warning',\n tr(ALERTS.CONTACTS_ENCRYPT_FIRST, [\n { button: translation.secureYourWallet },\n ]),\n 3500\n );\n }\n\n return renderContacts(cAccount);\n}\n\n/**\n * Set the current Account's Contact name\n * @param {Account} account - The account to add the new Name to\n * @param {String} name - The name to set\n */\nexport async function setAccountContactName(account, name) {\n const cDB = await Database.getInstance();\n\n // Set the name\n account.name = name;\n\n // Save name to the DB\n await cDB.updateAccount(account);\n}\n\n/**\n * Render the Receive Modal with either our Contact or Address\n * @param {boolean} fContact - `true` to render our Contact, `false` to render our current Address\n */\nexport async function guiRenderReceiveModal(\n cReceiveType = RECEIVE_TYPES.CONTACT\n) {\n if (cReceiveType === RECEIVE_TYPES.CONTACT) {\n // Fetch Contact info from the current Account\n const cDB = await Database.getInstance();\n const cAccount = await cDB.getAccount();\n\n // Check that a local Contact name was set\n if (cAccount?.name) {\n // Derive our Public Key\n let strPubkey = '';\n\n // If HD: use xpub, otherwise we'll fallback to our single address\n strPubkey = await wallet.getKeyToExport();\n\n // Construct the Contact Share URI\n const strContactURI = await localContactToURI(cAccount, strPubkey);\n\n // Render Copy Button\n doms.domModalQrLabel.innerHTML = `${translation.shareContactURL}`;\n\n // We'll render a short informational text, alongside a QR below for Contact scanning\n doms.domModalQR.innerHTML = `\n

${translation.onlyShareContactPrivately}

\n
\n `;\n const domQR = document.getElementById('receiveModalEmbeddedQR');\n createQR(strContactURI, domQR, 10);\n domQR.firstChild.style.width = '100%';\n domQR.firstChild.style.height = 'auto';\n domQR.firstChild.classList.add('no-antialias');\n document.getElementById('clipboard').value = strPubkey;\n } else {\n // Get our current wallet address\n const strAddress = await wallet.getCurrentAddress();\n\n // Update the QR Label (we'll show the address here for now, user can set Contact \"Name\" optionally later)\n doms.domModalQrLabel.innerHTML =\n strAddress +\n ``;\n\n // Update the QR section\n if (await hasEncryptedWallet()) {\n doms.domModalQR.innerHTML = `\n
\n ${translation.setupYourContact}\n

${translation.receiveWithContact}

\n \n \n
\n `;\n } else {\n doms.domModalQR.innerHTML = `\n
\n ${translation.secureYourWallet}\n

${tr(translation.encryptFirstForContacts, [\n { button: translation.secureYourWallet },\n ])}

\n
\n `;\n }\n }\n } else if (cReceiveType === RECEIVE_TYPES.ADDRESS) {\n // Get our current wallet address\n const strAddress = await wallet.getCurrentAddress();\n createQR('pivx:' + strAddress, doms.domModalQR);\n doms.domModalQrLabel.innerHTML =\n strAddress +\n ``;\n doms.domModalQR.firstChild.style.width = '100%';\n doms.domModalQR.firstChild.style.height = 'auto';\n doms.domModalQR.firstChild.classList.add('no-antialias');\n document.getElementById('clipboard').value = strAddress;\n } else {\n // Get our current wallet XPub\n const strXPub = await wallet.getXPub();\n\n // Update the QR Label (we'll show the address here for now, user can set Contact \"Name\" optionally later)\n doms.domModalQrLabel.innerHTML =\n strXPub +\n ``;\n\n // We'll render a short informational text, alongside a QR below for Contact scanning\n doms.domModalQR.innerHTML = `\n

${translation.onlyShareContactPrivately}

\n
\n `;\n\n // Update the QR section\n const domQR = document.getElementById('receiveModalEmbeddedQR');\n createQR(strXPub, domQR, 10);\n domQR.firstChild.style.width = '100%';\n domQR.firstChild.style.height = 'auto';\n domQR.firstChild.classList.add('no-antialias');\n document.getElementById('clipboard').value = strXPub;\n }\n}\n\n/**\n * A GUI wrapper to re-render the current Receive Modal configuration\n */\nexport async function guiRenderCurrentReceiveModal() {\n return guiToggleReceiveType(cReceiveType);\n}\n\n/**\n * An enum of Receive Types (i.e: receive by Contact, Address, XPub)\n */\nexport const RECEIVE_TYPES = {\n CONTACT: 0,\n ADDRESS: 1,\n XPUB: 2,\n};\n\n/** The current Receive Type used by Receive UIs */\nexport let cReceiveType = RECEIVE_TYPES.CONTACT;\n\n/**\n * Cycles through the Receive Types with each run\n * @param {number?} nForceType - Optionally force the Receive Type\n */\nexport async function guiToggleReceiveType(nForceType = null) {\n // Figure out which Types can be used with this wallet\n const nTypeMax = wallet.isHD() ? 3 : 2;\n\n // Loop back to the first if we hit the end\n cReceiveType =\n nForceType !== null ? nForceType : (cReceiveType + 1) % nTypeMax;\n\n // Convert the *next* Type to text (also runs through i18n system)\n const nNextType = (cReceiveType + 1) % nTypeMax;\n let strNextType = '';\n switch (nNextType) {\n case RECEIVE_TYPES.CONTACT:\n strNextType = translation.contact;\n break;\n case RECEIVE_TYPES.ADDRESS:\n strNextType = translation.address;\n break;\n case RECEIVE_TYPES.XPUB:\n strNextType = translation.xpub;\n break;\n }\n\n // Render the new UI\n doms.domModalQrReceiveTypeBtn.innerText =\n translation.changeTo + ' ' + strNextType;\n guiRenderReceiveModal(cReceiveType);\n\n // Return the new Receive Type index\n return cReceiveType;\n}\n\n/** A GUI wrapper that adds a contact to the current Account's contacts list */\nexport async function guiAddContact() {\n const strName = document.getElementById('contactsNameInput').value.trim();\n const strAddr = document\n .getElementById('contactsAddressInput')\n .value.trim();\n\n // Verify the name\n if (strName.length < 1)\n return createAlert('warning', ALERTS.CONTACTS_NAME_REQUIRED, 2500);\n if (strName.length > 32)\n return createAlert('warning', ALERTS.CONTACTS_NAME_TOO_LONG, 2500);\n\n // Verify the address\n if (!isStandardAddress(strAddr) && !isXPub(strAddr))\n return createAlert(\n 'warning',\n tr(ALERTS.INVALID_ADDRESS, [{ address: strAddr }]),\n 3000\n );\n\n // Ensure we're not adding our own XPub\n if (isXPub(strAddr)) {\n if (wallet.isHD()) {\n // Compare the XPub against our own\n const fOurs = strAddr === (await wallet.getXPub());\n if (fOurs) {\n createAlert(\n 'warning',\n ALERTS.CONTACTS_CANNOT_ADD_YOURSELF,\n 3500\n );\n return false;\n }\n }\n } else {\n // Ensure we're not adding (one of) our own address(es)\n if (await wallet.isOwnAddress(strAddr)) {\n createAlert('warning', ALERTS.CONTACTS_CANNOT_ADD_YOURSELF, 3500);\n return false;\n }\n }\n\n // Fetch the current Account\n const cDB = await Database.getInstance();\n const cAccount = await cDB.getAccount();\n\n // Check this Contact isn't already saved, either fully or partially\n const cContactByName = cAccount.getContactBy({ name: strName });\n const cContactByPubkey = cAccount.getContactBy({ pubkey: strAddr });\n\n // If both Name and Key are saved, then they just tried re-adding the same Contact twice\n if (cContactByName && cContactByPubkey) {\n createAlert('warning', ALERTS.CONTACTS_ALREADY_EXISTS, 3000);\n return true;\n }\n\n // If the Name is saved, but not key, then this *could* be a kind of Username-based phishing attempt\n if (cContactByName && !cContactByPubkey) {\n createAlert('warning', ALERTS.CONTACTS_NAME_ALREADY_EXISTS, 4000);\n return true;\n }\n\n // If the Key is saved, but not the name: perhaps the Contact changed their name?\n if (!cContactByName && cContactByPubkey) {\n createAlert(\n 'warning',\n tr(ALERTS.CONTACTS_KEY_ALREADY_EXISTS, [\n { newName: strName },\n { oldName: cContactByPubkey.label },\n ]),\n 7500\n );\n return true;\n }\n\n // Add the Contact to it\n await addContact(cAccount, {\n label: strName,\n pubkey: strAddr,\n date: Date.now(),\n });\n\n // Render the new list\n return renderContacts(cAccount);\n}\n\n/**\n * Prompt the user to add a new Contact, safely checking for duplicates\n * @param {String} strName - The Name of the Contact\n * @param {String} strPubkey - The Public Key of the Contact\n * @param {boolean} fDuplicateNotif - Notify the user if the incoming Contact is a duplicate\n * @returns {Promise} - `true` if contact was added, `false` if not\n */\nexport async function guiAddContactPrompt(\n strName,\n strPubkey,\n fDuplicateNotif = true\n) {\n // Verify the name\n if (strName.length < 1)\n return createAlert('warning', ALERTS.CONTACTS_NAME_REQUIRED, 2500);\n if (strName.length > 32)\n return createAlert('warning', ALERTS.CONTACTS_NAME_TOO_LONG, 2500);\n\n // Verify the address\n if (!isStandardAddress(strPubkey) && !isXPub(strPubkey))\n return createAlert(\n 'warning',\n tr(ALERTS.INVALID_ADDRESS, [{ address: strPubkey }]),\n 4000\n );\n\n // Ensure we're not adding our own XPub\n if (isXPub(strPubkey)) {\n if (wallet.isHD()) {\n // Compare the XPub against our own\n const fOurs = strPubkey === (await wallet.getXPub());\n if (fOurs) {\n createAlert(\n 'warning',\n ALERTS.CONTACTS_CANNOT_ADD_YOURSELF,\n 3500\n );\n return false;\n }\n }\n } else {\n // Ensure we're not adding (one of) our own address(es)\n if (await wallet.isOwnAddress(strPubkey)) {\n createAlert('warning', ALERTS.CONTACTS_CANNOT_ADD_YOURSELF, 3500);\n return false;\n }\n }\n\n const cDB = await Database.getInstance();\n const cAccount = await cDB.getAccount();\n\n // Check this Contact isn't already saved, either fully or partially\n const cContactByName = cAccount.getContactBy({ name: strName });\n const cContactByPubkey = cAccount.getContactBy({ pubkey: strPubkey });\n\n // If both Name and Key are saved, then they just tried re-adding the same Contact twice\n if (cContactByName && cContactByPubkey) {\n if (fDuplicateNotif)\n createAlert('warning', ALERTS.CONTACTS_ALREADY_EXISTS, 3000);\n return true;\n }\n\n // If the Name is saved, but not key, then this *could* be a kind of Username-based phishing attempt\n if (cContactByName && !cContactByPubkey) {\n if (fDuplicateNotif)\n createAlert('warning', ALERTS.CONTACTS_NAME_ALREADY_EXISTS, 4000);\n return true;\n }\n\n // If the Key is saved, but not the name: perhaps the Contact changed their name?\n if (!cContactByName && cContactByPubkey) {\n if (fDuplicateNotif)\n createAlert(\n 'warning',\n tr(ALERTS.CONTACTS_KEY_ALREADY_EXISTS, [\n { newName: strName },\n { oldName: cContactByPubkey.label },\n ]),\n 7500\n );\n return true;\n }\n\n // Render an 'Add to Contacts' UI\n const strHTML = `\n

\n ${tr(translation.addContactSubtext, [{ strName: strName }])}\n
\n
\n ${tr(translation.addContactWarning, [\n { strName: strName },\n ])}\n

\n `;\n\n // Hook the Contact Prompt to the Popup UI, which resolves when the user has interacted with the Contact Prompt\n const fAdd = await confirmPopup({\n title: tr(translation.addContactTitle, [{ strName: strName }]),\n html: strHTML,\n });\n\n // If accepted, then we add to contacts!\n if (fAdd) {\n // Add the Contact to the current account\n await addContact(cAccount, {\n label: strName,\n pubkey: strPubkey,\n date: Date.now(),\n });\n\n // Notify\n createAlert(\n 'success',\n tr(ALERTS.CONTACTS_ADDED, [{ strName: strName }]),\n 3000\n );\n }\n\n // Return if the user accepted or declined\n return fAdd;\n}\n\n/**\n * Prompt the user to edit a contact by it's original name\n *\n * The new name will be taken from the internal prompt input\n * @param {number} nIndex - The DB index of the Contact to edit\n * @returns {Promise} - `true` if contact was edited, `false` if not\n */\nexport async function guiEditContactNamePrompt(nIndex) {\n // Fetch the desired Contact to edit\n const cDB = await Database.getInstance();\n const cAccount = await cDB.getAccount();\n const cContact = cAccount.contacts[nIndex];\n\n // Render an 'Add to Contacts' UI\n const strHTML = `\n \n `;\n\n // Hook the Contact Prompt to the Popup UI, which resolves when the user has interacted with the Contact Prompt\n const fContinue = await confirmPopup({\n title: tr(translation.editContactTitle, [\n { strName: sanitizeHTML(cContact.label) },\n ]),\n html: strHTML,\n });\n if (!fContinue) return false;\n\n // Verify the name\n const strNewName = document.getElementById('contactsNewNameInput').value;\n if (strNewName.length < 1) {\n createAlert('warning', ALERTS.CONTACTS_NAME_REQUIRED, 2500);\n return false;\n }\n if (strNewName.length > 32) {\n createAlert('warning', ALERTS.CONTACTS_NAME_TOO_LONG, 2500);\n return false;\n }\n\n // Check this new Name isn't already saved\n const cContactByNewName = cAccount.getContactBy({ name: strNewName });\n if (cContactByNewName) {\n createAlert(\n 'warning',\n tr(ALERTS.CONTACTS_EDIT_NAME_ALREADY_EXISTS, [\n { strNewName: strNewName },\n ]),\n 4500\n );\n return false;\n }\n\n // Edit it (since it's a pointer to the Account's Contacts)\n cContact.label = strNewName;\n\n // Commit to DB\n await cDB.updateAccount(cAccount);\n\n // Re-render the Contacts UI\n await renderContacts(cAccount);\n\n // Return if the user accepted or declined\n return true;\n}\n\n/**\n * Prompt the user to add an image to a contact by it's DB index\n *\n * The new image will be taken from the internal system prompt\n * @param {number} nIndex - The DB index of the Contact to edit\n * @returns {Promise} - `true` if contact was edited, `false` if not\n */\nexport async function guiAddContactImage(nIndex) {\n const cDB = await Database.getInstance();\n const cAccount = await cDB.getAccount();\n const cContact = cAccount.contacts[nIndex];\n\n // Prompt for the image\n const strImage = await getImageFile();\n if (!strImage) return false;\n\n // Fetch the original contact, edit it (since it's a pointer to the Account's Contacts)\n cContact.icon = strImage;\n\n // Commit to DB\n await cDB.updateAccount(cAccount);\n\n // Re-render the Contacts UI\n await renderContacts(cAccount);\n\n // Return that the edit was successful\n return true;\n}\n\n/**\n * A GUI wrapper to open a QR Scanner prompt for Contact imports\n * @returns {boolean} - `true` if contact was added, `false` if not\n */\nexport async function guiAddContactQRPrompt() {\n const cScan = await scanQRCode();\n\n // Empty (i.e: rejected or no camera) can just silently exit\n if (!cScan) return false;\n\n // MPW Contact Request URI\n if (cScan?.data?.includes('addcontact=')) {\n // Parse as URL Params\n const cURL = new URL(cScan.data);\n const urlParams = new URLSearchParams(cURL.search);\n const strURI = urlParams.get('addcontact');\n\n // Sanity check the URI\n if (strURI?.includes(':')) {\n // Split to 'name' and 'pubkey'\n const arrParts = strURI.split(':');\n\n // Convert Name from HEX to UTF-8\n const strName = Buffer.from(arrParts[0], 'hex').toString('utf8');\n const strPubkey = arrParts[1];\n\n // Prompt the user to add the Contact\n const fAdded = await guiAddContactPrompt(\n sanitizeHTML(strName),\n strPubkey\n );\n\n // Re-render the list\n await guiRenderContacts();\n\n // Return the status\n return fAdded;\n }\n } else {\n createAlert('warning', ALERTS.CONTACTS_NOT_A_CONTACT_QR, 2500);\n return false;\n }\n}\n\n/** A GUI wrapper that removes a contact from the current Account's contacts list */\nexport async function guiRemoveContact(index) {\n // Fetch the current Account\n const cDB = await Database.getInstance();\n const cAccount = await cDB.getAccount();\n\n // Fetch the Contact\n const cContact = cAccount.contacts[index];\n\n // Confirm the deletion\n const fConfirmed = await confirmPopup({\n title: tr(translation.removeContactTitle, [\n { strName: sanitizeHTML(cContact.label) },\n ]),\n html: `\n

\n ${tr(translation.removeContactSubtext, [\n { strName: sanitizeHTML(cContact.label) },\n ])}\n
\n
\n ${translation.removeContactNote}\n

\n `,\n });\n if (!fConfirmed) return;\n\n // Remove the Contact from it\n await removeContact(cAccount, cAccount.contacts[index].pubkey);\n\n // Render the new list\n return renderContacts(cAccount);\n}\n\n/** A GUI wrapper that sets the name of the current Account */\nexport async function guiSetAccountName(strDOM) {\n const domInput = document.getElementById(strDOM);\n\n // Verify the name\n const strNewName = domInput.value.trim();\n if (strNewName.length < 1) {\n createAlert('warning', ALERTS.CONTACTS_NAME_REQUIRED, 2500);\n return false;\n }\n if (strNewName.length > 32) {\n createAlert('warning', ALERTS.CONTACTS_NAME_TOO_LONG, 2500);\n return false;\n }\n\n // Fetch the current Account\n const cDB = await Database.getInstance();\n const cAccount = await cDB.getAccount();\n\n // Set the account's name\n await setAccountContactName(cAccount, strNewName);\n\n // Render the new Receive Modal\n await guiRenderReceiveModal();\n}\n\n/**\n * Checks the input from the recipient field\n *\n * This function should be connected to an `input` as it's `onchange` function\n * @param {InputEvent} event - The change event from the input\n */\nexport async function guiCheckRecipientInput(event) {\n const strInput = event.target.value.trim();\n\n // If the value is empty, we don't do any checks and simply reset the colourcoding\n if (!strInput) {\n return (event.target.style.color = '');\n }\n\n // Fetch the current Account\n const cDB = await Database.getInstance();\n const cAccount = await cDB.getAccount();\n\n // Check if this is a Contact\n const cContact = cAccount?.getContactBy({\n name: strInput,\n pubkey: strInput,\n });\n if (cContact) {\n // Yep, nice!\n return (event.target.style.color = 'green');\n }\n\n // Not a contact: dig deeper, is this a Standard address or XPub?\n if (isStandardAddress(strInput) || isXPub(strInput)) {\n // Yep!\n return (event.target.style.color = 'green');\n } else {\n // We give up: this appears to be nonsense\n return (event.target.style.color = '#b20000');\n }\n}\n\n/**\n * Search for a Name of a Contact from a given Account and Address\n * @param {Account} cAccount - The Account to search for the Contact\n * @param {string} address - The address to search for a Contact with\n * @returns {string} - The Name of the address Contact, or just the address if none is found\n */\nexport function getNameOrAddress(cAccount, address) {\n return (\n cAccount?.contacts?.find((a) => a.pubkey === address)?.label || address\n );\n}\n\n/**\n * Convert the current Account's Contact to a Share URI\n * @param {Account?} account - An optional Account to construct the Contact URI from, if omitted, the current DB account is used\n * @param {string?} pubkey - An optional Master Public Key to attach to the Contact URI\n */\nexport async function localContactToURI(account, pubkey) {\n // Fetch the current Account\n const cDB = await Database.getInstance();\n const cAccount = account || (await cDB.getAccount());\n\n // Use the given pubkey; but if none is passed, we'll derive our loaded Public Key\n let strPubkey = pubkey || '';\n\n // If HD: use xpub, otherwise we'll fallback to our single address\n if (!strPubkey) strPubkey = await wallet.getKeyToExport();\n\n // Construct the Contact URI Root\n const strURL = window.location.origin + window.location.pathname;\n\n // Convert our Name and Pubkey to HEX\n const strHexName = Buffer.from(cAccount.name).toString('hex');\n\n // Encode in our URI and return\n const strEncodedURI = encodeURIComponent(strHexName + ':' + strPubkey);\n return `${strURL}?addcontact=${strEncodedURI}`;\n}\n\n/**\n * A GUI wrapper for the Contact URI and Clipboard functions\n * @param {InputEvent} event - The DOM element calling the copy function\n */\nexport async function localContactToClipboard(event) {\n return toClipboard(await localContactToURI(), event.target);\n}\n","import { parseWIF } from './encoding.js';\nimport { generateMnemonic, mnemonicToSeed, validateMnemonic } from 'bip39';\nimport { doms, beforeUnloadListener } from './global.js';\nimport { getNetwork } from './network.js';\nimport { MAX_ACCOUNT_GAP, cChainParams } from './chain_params.js';\nimport {\n LegacyMasterKey,\n HdMasterKey,\n HardwareWalletMasterKey,\n} from './masterkey.js';\nimport { generateOrEncodePrivkey } from './encoding.js';\nimport {\n confirmPopup,\n createAlert,\n isXPub,\n isStandardAddress,\n} from './misc.js';\nimport {\n refreshChainData,\n setDisplayForAllWalletOptions,\n getBalance,\n getStakingBalance,\n} from './global.js';\nimport { ALERTS, tr, translation } from './i18n.js';\nimport { encrypt, decrypt } from './aes-gcm.js';\nimport * as jdenticon from 'jdenticon';\nimport { Database } from './database.js';\nimport { guiRenderCurrentReceiveModal } from './contacts-book.js';\nimport { Account } from './accounts.js';\nimport { debug, fAdvancedMode } from './settings.js';\n\nimport { strHardwareName, getHardwareWalletKeys } from './ledger.js';\nimport { getEventEmitter } from './event_bus.js';\nexport let fWalletLoaded = false;\n\n/**\n * Class Wallet, at the moment it is just a \"realization\" of Masterkey with a given nAccount\n * it also remembers which addresses we generated.\n * in future PRs this class will manage balance, UTXOs, masternode etc...\n */\nexport class Wallet {\n /**\n * @type {import('./masterkey.js').MasterKey}\n */\n #masterKey;\n /**\n * @type {number}\n */\n #nAccount;\n /**\n * @type {number}\n */\n #addressIndex = 0;\n /**\n * Map our own address -> Path\n * @type {Map}\n */\n #ownAddresses = new Map();\n constructor(nAccount) {\n this.#nAccount = nAccount;\n }\n\n getMasterKey() {\n return this.#masterKey;\n }\n\n /**\n * Gets the Cold Staking Address for the current wallet, while considering user settings and network automatically.\n * @return {Promise} Cold Address\n */\n async getColdStakingAddress() {\n // Check if we have an Account with custom Cold Staking settings\n const cDB = await Database.getInstance();\n const cAccount = await cDB.getAccount();\n\n // If there's an account with a Cold Address, return it, otherwise return the default\n return (\n cAccount?.coldAddress ||\n cChainParams.current.defaultColdStakingAddress\n );\n }\n\n get nAccount() {\n return this.#nAccount;\n }\n\n wipePrivateData() {\n this.#masterKey.wipePrivateData(this.#nAccount);\n }\n\n isViewOnly() {\n if (!this.#masterKey) return false;\n return this.#masterKey.isViewOnly;\n }\n\n isHD() {\n if (!this.#masterKey) return false;\n return this.#masterKey.isHD;\n }\n\n async hasWalletUnlocked(fIncludeNetwork = false) {\n if (fIncludeNetwork && !getNetwork().enabled)\n return createAlert(\n 'warning',\n ALERTS.WALLET_OFFLINE_AUTOMATIC,\n 5500\n );\n if (!this.isLoaded()) {\n return createAlert(\n 'warning',\n tr(ALERTS.WALLET_UNLOCK_IMPORT, [\n {\n unlock: (await hasEncryptedWallet())\n ? 'unlock '\n : 'import/create',\n },\n ]),\n 3500\n );\n } else {\n return true;\n }\n }\n\n /**\n * Set or replace the active Master Key with a new Master Key\n * @param {import('./masterkey.js').MasterKey} mk - The new Master Key to set active\n */\n async setMasterKey(mk) {\n this.#masterKey = mk;\n // Update the network master key\n await getNetwork().setWallet(this);\n }\n\n /**\n * Derive the current address (by internal index)\n * @return {string} Address\n *\n */\n getCurrentAddress() {\n return this.getAddress(0, this.#addressIndex);\n }\n\n /**\n * Derive a generic address (given nReceiving and nIndex)\n * @return {string} Address\n */\n getAddress(nReceiving = 0, nIndex = 0) {\n const path = this.getDerivationPath(nReceiving, nIndex);\n return this.#masterKey.getAddress(path);\n }\n\n /**\n * Derive xpub (given nReceiving and nIndex)\n * @return {string} Address\n */\n getXPub(nReceiving = 0, nIndex = 0) {\n // Get our current wallet XPub\n const derivationPath = this.getDerivationPath(nReceiving, nIndex)\n .split('/')\n .slice(0, 4)\n .join('/');\n return this.#masterKey.getxpub(derivationPath);\n }\n\n /**\n * Derive xpub (given nReceiving and nIndex)\n * @return {bool} Return true if a masterKey has been loaded in the wallet\n */\n isLoaded() {\n return !!this.#masterKey;\n }\n\n async encryptWallet(strPassword = '') {\n // Encrypt the wallet WIF with AES-GCM and a user-chosen password - suitable for browser storage\n let strEncWIF = await encrypt(this.#masterKey.keyToBackup, strPassword);\n if (!strEncWIF) return false;\n\n // Hide the encryption warning\n doms.domGenKeyWarning.style.display = 'none';\n\n // Prepare to Add/Update an account in the DB\n const cAccount = new Account({\n publicKey: this.getKeyToExport(),\n encWif: strEncWIF,\n });\n\n // Incase of a \"Change Password\", we check if an Account already exists\n const database = await Database.getInstance();\n if (await database.getAccount()) {\n // Update the existing Account (new encWif) in the DB\n await database.updateAccount(cAccount);\n } else {\n // Add the new Account to the DB\n await database.addAccount(cAccount);\n }\n\n // Remove the exit blocker, we can annoy the user less knowing the key is safe in their database!\n removeEventListener('beforeunload', beforeUnloadListener, {\n capture: true,\n });\n }\n\n /**\n * @return [string, string] Address and its BIP32 derivation path\n */\n getNewAddress() {\n const last = getNetwork().lastWallet;\n this.#addressIndex =\n (this.#addressIndex > last ? this.#addressIndex : last) + 1;\n if (this.#addressIndex - last > MAX_ACCOUNT_GAP) {\n // If the user creates more than ${MAX_ACCOUNT_GAP} empty wallets we will not be able to sync them!\n this.#addressIndex = last;\n }\n const path = this.getDerivationPath(0, this.#addressIndex);\n const address = this.getAddress(0, this.#addressIndex);\n return [address, path];\n }\n\n isHardwareWallet() {\n return this.#masterKey?.isHardwareWallet === true;\n }\n\n /**\n * @param {string} address - address to check\n * @return {string?} BIP32 path or null if it's not your address\n */\n isOwnAddress(address) {\n if (this.#ownAddresses.has(address)) {\n return this.#ownAddresses.get(address);\n }\n const last = getNetwork().lastWallet;\n this.#addressIndex =\n this.#addressIndex > last ? this.#addressIndex : last;\n if (this.isHD()) {\n for (let i = 0; i <= this.#addressIndex + MAX_ACCOUNT_GAP; i++) {\n const path = this.getDerivationPath(0, i);\n const testAddress = this.#masterKey.getAddress(path);\n if (address === testAddress) {\n this.#ownAddresses.set(address, path);\n return path;\n }\n }\n } else {\n const value = address === this.getKeyToExport() ? ':)' : null;\n this.#ownAddresses.set(address, value);\n return value;\n }\n\n this.#ownAddresses.set(address, null);\n return null;\n }\n\n /**\n * @return {String} BIP32 path or null if it's not your address\n */\n getDerivationPath(nReceiving = 0, nIndex = 0) {\n return this.#masterKey.getDerivationPath(\n this.#nAccount,\n nReceiving,\n nIndex\n );\n }\n\n getKeyToExport() {\n return this.#masterKey?.getKeyToExport(this.#nAccount);\n }\n}\n\n/**\n * @type{Wallet}\n */\nexport const wallet = new Wallet(0); // For now we are using only the 0-th account, (TODO: update once account system is done)\n\n/**\n * Import a wallet (with it's private, public or encrypted data)\n * @param {object} options\n * @param {string | Array} options.newWif - The import data (if omitted, the UI input is accessed)\n * @param {boolean} options.fRaw - Whether the import data is raw bytes or encoded (WIF, xpriv, seed)\n * @param {boolean} options.isHardwareWallet - Whether the import is from a Hardware wallet or not\n * @param {boolean} options.fSavePublicKey - Whether to save the derived public key to disk (for View Only mode)\n * @param {boolean} options.fStartup - Whether the import is at Startup or at Runtime\n * @returns {Promise}\n */\nexport async function importWallet({\n newWif = false,\n fRaw = false,\n isHardwareWallet = false,\n fSavePublicKey = false,\n fStartup = false,\n} = {}) {\n // TODO: remove `walletConfirm`, it is useless as Accounts cannot be overriden, and multi-accounts will come soon anyway\n // ... just didn't want to add a huge whitespace change from removing the `if (walletConfirm) {` line\n const walletConfirm = true;\n if (walletConfirm) {\n if (isHardwareWallet) {\n // Firefox does NOT support WebUSB, thus cannot work with Hardware wallets out-of-the-box\n if (navigator.userAgent.includes('Firefox')) {\n return createAlert(\n 'warning',\n ALERTS.WALLET_FIREFOX_UNSUPPORTED,\n 7500\n );\n }\n // Derive our hardware address and import!\n try {\n const key = await HardwareWalletMasterKey.create(0);\n await wallet.setMasterKey(key);\n } catch (e) {\n // Display a properly translated error if it's a ledger error\n if (\n e instanceof Error &&\n e.message === 'Failed to get hardware wallet keys.'\n ) {\n // console.error so we get a backtrace if needed\n console.error(e);\n return createAlert(\n 'warning',\n translation.FAILED_TO_IMPORT_HARDWARE,\n 5000\n );\n } else {\n throw e;\n }\n }\n\n createAlert(\n 'info',\n tr(ALERTS.WALLET_HARDWARE_WALLET, [\n { hardwareWallet: strHardwareName },\n ]),\n 12500\n );\n } else {\n // If raw bytes: purely encode the given bytes rather than generating our own bytes\n if (fRaw) {\n newWif = generateOrEncodePrivkey(newWif).strWIF;\n\n // A raw import likely means non-user owned key (i.e: created via VanityGen), thus, we assume safety first and add an exit blocking listener\n addEventListener('beforeunload', beforeUnloadListener, {\n capture: true,\n });\n }\n\n // Select WIF from internal source OR user input (could be: WIF, Mnemonic or xpriv)\n const privateImportValue = newWif || doms.domPrivKey.value;\n const passphrase = doms.domPrivKeyPassword.value;\n doms.domPrivKey.value = '';\n doms.domPrivKeyPassword.value = '';\n\n // Clean and verify the Seed Phrase (if one exists)\n const cPhraseValidator = await cleanAndVerifySeedPhrase(\n privateImportValue,\n true\n );\n\n // If Debugging is enabled, show what the validator returned\n if (debug) {\n const fnLog = cPhraseValidator.ok ? console.log : console.warn;\n fnLog('Seed Import Validator: ' + cPhraseValidator.msg);\n }\n\n // If the Seed is OK, proceed\n if (cPhraseValidator.ok) {\n // Generate our HD MasterKey with the cleaned (Mnemonic) Seed Phrase\n const seed = await mnemonicToSeed(\n cPhraseValidator.phrase,\n passphrase\n );\n await wallet.setMasterKey(new HdMasterKey({ seed }));\n } else if (cPhraseValidator.phrase.includes(' ')) {\n // The Phrase Validator failed, but the input contains at least one space; possibly a Seed Typo?\n return createAlert('warning', cPhraseValidator.msg, 5000);\n } else {\n // The input definitely isn't a seed, so we'll try every other import method\n try {\n // XPub import (HD view only)\n if (isXPub(privateImportValue)) {\n await wallet.setMasterKey(\n new HdMasterKey({\n xpub: privateImportValue,\n })\n );\n // XPrv import (HD full access)\n } else if (privateImportValue.startsWith('xprv')) {\n await wallet.setMasterKey(\n new HdMasterKey({\n xpriv: privateImportValue,\n })\n );\n // Pubkey import (non-HD view only)\n } else if (isStandardAddress(privateImportValue)) {\n await wallet.setMasterKey(\n new LegacyMasterKey({\n address: privateImportValue,\n })\n );\n // WIF import (non-HD full access)\n } else {\n // Attempt to import a raw WIF private key\n const pkBytes = parseWIF(privateImportValue);\n await wallet.setMasterKey(\n new LegacyMasterKey({ pkBytes })\n );\n }\n } catch (e) {\n return createAlert(\n 'warning',\n ALERTS.FAILED_TO_IMPORT + '
' + e.message,\n 6000\n );\n }\n }\n }\n\n // Reaching here: the deserialisation was a full cryptographic success, so a wallet is now imported!\n fWalletLoaded = true;\n\n // Hide wipe wallet button if there is no private key\n if (wallet.isViewOnly() || wallet.isHardwareWallet()) {\n doms.domWipeWallet.hidden = true;\n if (await hasEncryptedWallet()) {\n doms.domRestoreWallet.hidden = false;\n }\n }\n\n // For non-HD wallets: hide the 'new address' button, since these are essentially single-address MPW wallets\n\n // Update the loaded address in the Dashboard\n getNewAddress({ updateGUI: true });\n\n // Display Text\n doms.domGuiWallet.style.display = 'block';\n doms.domDashboard.click();\n\n // Update identicon\n doms.domIdenticon.dataset.jdenticonValue = wallet.getAddress();\n jdenticon.update('#identicon');\n\n // Hide the encryption prompt if the user is using\n // a hardware wallet, or is view-only mode.\n if (!(isHardwareWallet || wallet.isViewOnly())) {\n if (\n // If the wallet was internally imported (not UI pasted), like via vanity, display the encryption prompt\n (((fRaw && newWif.length) || newWif) &&\n !(await hasEncryptedWallet())) ||\n // If the wallet was pasted and is an unencrypted key, then display the encryption prompt\n !(await hasEncryptedWallet())\n ) {\n doms.domGenKeyWarning.style.display = 'block';\n } else if (await hasEncryptedWallet()) {\n // If the wallet was pasted and is an encrypted import, display the lock wallet UI\n doms.domWipeWallet.hidden = false;\n }\n } else {\n // Hide the encryption UI\n doms.domGenKeyWarning.style.display = 'none';\n }\n\n // Fetch state from explorer, if this import was post-startup\n if (getNetwork().enabled && !fStartup) {\n refreshChainData();\n getNetwork().getUTXOs();\n }\n\n // Hide all wallet starter options\n setDisplayForAllWalletOptions('none');\n getEventEmitter().emit('wallet-import');\n }\n}\n\n// Wallet Generation\nexport async function generateWallet(noUI = false) {\n // TODO: remove `walletConfirm`, it is useless as Accounts cannot be overriden, and multi-accounts will come soon anyway\n // ... just didn't want to add a huge whitespace change from removing the `if (walletConfirm) {` line\n const walletConfirm = true;\n if (walletConfirm) {\n const mnemonic = generateMnemonic();\n\n const passphrase = !noUI\n ? await informUserOfMnemonic(mnemonic)\n : undefined;\n const seed = await mnemonicToSeed(mnemonic, passphrase);\n\n // Prompt the user to encrypt the seed\n await wallet.setMasterKey(new HdMasterKey({ seed }));\n fWalletLoaded = true;\n\n doms.domGenKeyWarning.style.display = 'block';\n // Add a listener to block page unloads until we are sure the user has saved their keys, safety first!\n addEventListener('beforeunload', beforeUnloadListener, {\n capture: true,\n });\n\n // Display the dashboard\n doms.domGuiWallet.style.display = 'block';\n setDisplayForAllWalletOptions('none');\n\n // Update identicon\n doms.domIdenticon.dataset.jdenticonValue = wallet.getAddress();\n jdenticon.update('#identicon');\n\n await getNewAddress({ updateGUI: true });\n\n // Refresh the balance UI (why? because it'll also display any 'get some funds!' alerts)\n getStakingBalance(true);\n }\n\n return wallet;\n}\n\n/**\n * Clean a Seed Phrase string and verify it's integrity\n *\n * This returns an object of the validation status and the cleaned Seed Phrase for safe low-level usage.\n * @param {String} strPhraseInput - The Seed Phrase string\n * @param {Boolean} fPopupConfirm - Allow a warning bypass popup if the Seed Phrase is unusual\n */\nexport async function cleanAndVerifySeedPhrase(\n strPhraseInput = '',\n fPopupConfirm = true\n) {\n // Clean the phrase (removing unnecessary spaces) and force to lowercase\n const strPhrase = strPhraseInput.trim().replace(/\\s+/g, ' ').toLowerCase();\n\n // Count the Words\n const nWordCount = strPhrase.trim().split(' ').length;\n\n // Ensure it's a word count that makes sense\n if (nWordCount === 12 || nWordCount === 24) {\n if (!validateMnemonic(strPhrase)) {\n // If a popup is allowed and Advanced Mode is enabled, warn the user that the\n // ... seed phrase is potentially bad, and ask for confirmation to proceed\n if (!fPopupConfirm || !fAdvancedMode)\n return {\n ok: false,\n msg: translation.importSeedErrorTypo,\n phrase: strPhrase,\n };\n\n // The reason we want to ask the user for confirmation is that the mnemonic\n // could have been generated with another app that has a different dictionary\n const fSkipWarning = await confirmPopup({\n title: translation.popupSeedPhraseBad,\n html: translation.popupSeedPhraseBadNote,\n });\n\n if (fSkipWarning) {\n // User is probably an Arch Linux user and used `-f`\n return {\n ok: true,\n msg: translation.importSeedErrorSkip,\n phrase: strPhrase,\n };\n } else {\n // User heeded the warning and rejected the phrase\n return {\n ok: false,\n msg: translation.importSeedError,\n phrase: strPhrase,\n };\n }\n } else {\n // Valid count and mnemonic\n return {\n ok: true,\n msg: translation.importSeedValid,\n phrase: strPhrase,\n };\n }\n } else {\n // Invalid count\n return {\n ok: false,\n msg: translation.importSeedErrorSize,\n phrase: strPhrase,\n };\n }\n}\n\n/**\n * Display a Seed Phrase popup to the user and optionally wait for a Seed Passphrase\n * @param {string} mnemonic - The Seed Phrase to display to the user\n * @returns {Promise} - The Mnemonic Passphrase (empty string if omitted by user)\n */\nfunction informUserOfMnemonic(mnemonic) {\n return new Promise((res, _) => {\n // Configure the modal\n $('#mnemonicModal').modal({ keyboard: false });\n\n // Render the Seed Phrase and configure the button\n doms.domMnemonicModalContent.innerText = mnemonic;\n doms.domMnemonicModalButton.onclick = () => {\n res(doms.domMnemonicModalPassphrase.value);\n $('#mnemonicModal').modal('hide');\n\n // Wipe the mnemonic displays of sensitive data\n doms.domMnemonicModalContent.innerText = '';\n doms.domMnemonicModalPassphrase.value = '';\n };\n\n // Display the modal\n $('#mnemonicModal').modal('show');\n });\n}\n\nexport async function decryptWallet(strPassword = '') {\n // Check if there's any encrypted WIF available\n const database = await Database.getInstance();\n const { encWif: strEncWIF } = await database.getAccount();\n if (!strEncWIF || strEncWIF.length < 1) return false;\n\n // Prompt to decrypt it via password\n const strDecWIF = await decrypt(strEncWIF, strPassword);\n if (!strDecWIF || strDecWIF === 'decryption failed!') {\n if (strDecWIF)\n return createAlert('warning', ALERTS.INCORRECT_PASSWORD, 6000);\n } else {\n await importWallet({\n newWif: strDecWIF,\n // Save the public key to disk for View Only mode\n fSavePublicKey: true,\n });\n return true;\n }\n}\n\n/**\n * @returns {Promise} If the wallet has an encrypted database backup\n */\nexport async function hasEncryptedWallet() {\n const database = await Database.getInstance();\n const account = await database.getAccount();\n return !!account?.encWif;\n}\n\nexport async function getNewAddress({\n updateGUI = false,\n verify = false,\n} = {}) {\n const [address, path] = wallet.getNewAddress();\n if (verify && wallet.isHardwareWallet()) {\n // Generate address to present to the user without asking to verify\n const confAddress = await confirmPopup({\n title: ALERTS.CONFIRM_POPUP_VERIFY_ADDR,\n html: createAddressConfirmation(address),\n resolvePromise: wallet.getMasterKey().verifyAddress(path),\n });\n console.log(address, confAddress);\n if (address !== confAddress) {\n throw new Error('User did not verify address');\n }\n }\n\n // If we're generating a new address manually, then render the new address in our Receive Modal\n if (updateGUI) {\n guiRenderCurrentReceiveModal();\n }\n\n return [address, path];\n}\n\nfunction createAddressConfirmation(address) {\n return `${translation.popupHardwareAddrCheck} ${strHardwareName}.\n
${address}
`;\n}\n","export const OP = {\n // push value\n 0: 0x00,\n FALSE: 0x00, // ALIAS FOR: 0\n PUSHDATA1: 0x4c,\n PUSHDATA2: 0x4d,\n PUSHDATA4: 0x4e,\n '1NEGATE': 0x4f,\n RESERVED: 0x50,\n 1: 0x51,\n TRUE: 0x51, // ALIAS FOR: 1\n 2: 0x52,\n 3: 0x53,\n 4: 0x54,\n 5: 0x55,\n 6: 0x56,\n 7: 0x57,\n 8: 0x58,\n 9: 0x59,\n 10: 0x5a,\n 11: 0x5b,\n 12: 0x5c,\n 13: 0x5d,\n 14: 0x5e,\n 15: 0x5f,\n 16: 0x60,\n\n // control\n NOP: 0x61,\n VER: 0x62,\n IF: 0x63,\n NOTIF: 0x64,\n VERIF: 0x65,\n VERNOTIF: 0x66,\n ELSE: 0x67,\n ENDIF: 0x68,\n VERIFY: 0x69,\n RETURN: 0x6a,\n\n // stack ops\n TOALTSTACK: 0x6b,\n FROMALTSTACK: 0x6c,\n '2DROP': 0x6d,\n '2DUP': 0x6e,\n '3DUP': 0x6f,\n '2OVER': 0x70,\n '2ROT': 0x71,\n '2SWAP': 0x72,\n IFDUP: 0x73,\n DEPTH: 0x74,\n DROP: 0x75,\n DUP: 0x76,\n NIP: 0x77,\n OVER: 0x78,\n PICK: 0x79,\n ROLL: 0x7a,\n ROT: 0x7b,\n SWAP: 0x7c,\n TUCK: 0x7d,\n\n // splice ops\n CAT: 0x7e,\n SUBSTR: 0x7f,\n LEFT: 0x80,\n RIGHT: 0x81,\n SIZE: 0x82,\n\n // bit logic\n INVERT: 0x83,\n AND: 0x84,\n OR: 0x85,\n XOR: 0x86,\n EQUAL: 0x87,\n EQUALVERIFY: 0x88,\n RESERVED1: 0x89,\n RESERVED2: 0x8a,\n\n // numeric\n '1ADD': 0x8b,\n '1SUB': 0x8c,\n '2MUL': 0x8d,\n '2DIV': 0x8e,\n NEGATE: 0x8f,\n ABS: 0x90,\n NOT: 0x91,\n '0NOTEQUAL': 0x92,\n\n ADD: 0x93,\n SUB: 0x94,\n MUL: 0x95,\n DIV: 0x96,\n MOD: 0x97,\n LSHIFT: 0x98,\n RSHIFT: 0x99,\n\n BOOLAND: 0x9a,\n BOOLOR: 0x9b,\n NUMEQUAL: 0x9c,\n NUMEQUALVERIFY: 0x9d,\n NUMNOTEQUAL: 0x9e,\n LESSTHAN: 0x9f,\n GREATERTHAN: 0xa0,\n LESSTHANOREQUAL: 0xa1,\n GREATERTHANOREQUAL: 0xa2,\n MIN: 0xa3,\n MAX: 0xa4,\n\n WITHIN: 0xa5,\n\n // crypto\n RIPEMD160: 0xa6,\n SHA1: 0xa7,\n SHA256: 0xa8,\n HASH160: 0xa9,\n HASH256: 0xaa,\n CODESEPARATOR: 0xab,\n CHECKSIG: 0xac,\n CHECKSIGVERIFY: 0xad,\n CHECKMULTISIG: 0xae,\n CHECKMULTISIGVERIFY: 0xaf,\n\n // expansion\n NOP1: 0xb0,\n NOP2: 0xb1,\n CHECKLOCKTIMEVERIFY: 0xb1, // ALIAS FOR: NOP2\n NOP3: 0xb2,\n NOP4: 0xb3,\n NOP5: 0xb4,\n NOP6: 0xb5,\n NOP7: 0xb6,\n NOP8: 0xb7,\n NOP9: 0xb8,\n NOP10: 0xb9,\n\n // zerocoin\n ZEROCOINMINT: 0xc1,\n ZEROCOINSPEND: 0xc2,\n ZEROCOINPUBLICSPEND: 0xc3,\n\n // cold staking\n CHECKCOLDSTAKEVERIFY_LOF: 0xd1, // last output free for masternode/budget payments\n CHECKCOLDSTAKEVERIFY: 0xd2,\n\n INVALIDOPCODE: 0xff,\n};\nObject.freeze(OP);\n\nexport function getScriptForBurn(data) {\n let cScript = [];\n // Check if we're fitting any data into the TX\n if (typeof data === 'string' && data.length > 0) {\n let bData = new TextEncoder().encode(data);\n cScript.push(OP['RETURN']);\n cScript.push(OP['PUSHDATA1']);\n // Append the byte array length\n cScript.push(bData.length);\n // Convert from uint8 to array and append the byte array\n cScript = cScript.concat(Array.prototype.slice.call(bData));\n } else {\n // Empty data, create a simple RETURN script\n cScript.push(OP['RETURN']);\n }\n // Return the burn script\n return cScript;\n}\n","import { getEventEmitter } from './event_bus.js';\nimport { isEmpty } from './misc.js';\nimport { cMarket, fillCurrencySelect } from './settings.js';\n\n/**\n * CoinGecko's endpoint for PIVX data, optimised for least bandwidth\n * - No localisation, tickers, community data, developer data or sparklines\n */\nexport const COINGECKO_ENDPOINT =\n 'https://api.coingecko.com/api/v3/coins/pivx?localization=false&tickers=false&market_data=true&community_data=false&developer_data=false&sparkline=false';\n\n/**\n * The generic market data source template, used to build site-specific classes\n */\nexport class MarketSource {\n /** The storage object for raw market data */\n cData = {};\n\n /** The name of the market source */\n strName = '';\n\n /** The customised API endpoint of the market source */\n strEndpoint = '';\n\n /**\n * Ensure a market data cache exists, if not, fetch it and resume\n */\n async ensureCacheExists() {\n if (!this.cData || !Object.keys(this.cData).length) await this.fetch();\n }\n\n /**\n * Fetches the raw market source data\n * @returns {Promise}\n */\n async fetch() {\n try {\n return (this.cData = await (await fetch(this.strEndpoint)).json());\n } catch (e) {\n console.warn('CoinGecko: Failed to fetch prices!');\n console.warn(e);\n return null;\n }\n }\n}\n\n/**\n * The CoinGecko market data source\n */\nexport class CoinGecko extends MarketSource {\n constructor() {\n super();\n this.strName = 'CoinGecko';\n this.strEndpoint = COINGECKO_ENDPOINT;\n }\n\n /**\n * Get the price in a specific display currency\n * @param {string} strCurrency - The CoinGecko-supported display currency\n * @return {Promise}\n */\n async getPrice(strCurrency) {\n await this.ensureCacheExists();\n return this.cData?.market_data?.current_price[strCurrency] || 0;\n }\n\n /**\n * Get a list of the supported display currencies\n * @returns {Promise>} - A list of CoinGecko-supported display currencies\n */\n async getCurrencies() {\n await this.ensureCacheExists();\n return !isEmpty(this.cData)\n ? Object.keys(this.cData.market_data.current_price)\n : [];\n }\n}\n\n/**\n * Refreshes market data from the user's data source, then re-renders currency options and price displays\n */\nexport async function refreshPriceDisplay() {\n // Refresh our price data, and if successful, update the UI\n if (!isEmpty(await cMarket.fetch())) {\n // Update the currency customisation menu from the selected data source\n await fillCurrencySelect();\n\n // Update price values\n getEventEmitter().emit('balance-update');\n }\n}\n","import script from \"./Activity.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./Activity.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n","import {\n ArcElement,\n Chart,\n Colors,\n DoughnutController,\n Legend,\n LinearScale,\n Tooltip,\n} from 'chart.js';\nimport { cChainParams, COIN } from './chain_params.js';\nimport { doms, isMasternodeUTXO, mempool } from './global.js';\nimport { Database } from './database.js';\nimport { translation } from './i18n.js';\n\nChart.register(\n Colors,\n DoughnutController,\n ArcElement,\n Legend,\n Tooltip,\n LinearScale\n);\n\n/**\n * The wallet breakdown modal chart\n * @type {Chart}\n */\nlet chartWalletBreakdown = null;\n\n/**\n * An element generated from the wallet for the purpose of charting or tables\n * @typedef {object} WalletDatasetPoint\n * @property {string} type\n * @property {number} balance\n * @property {string} colour\n */\n\n/**\n * Generate an array of pie/doughnut charting data from the wallet's totals\n * @returns {Promise>} - The charting data\n */\nasync function getWalletDataset() {\n const arrBreakdown = [];\n\n // Public (Available)\n if (mempool.getBalance() > 0) {\n arrBreakdown.push({\n type: translation.chartPublicAvailable,\n balance: mempool.getBalance() / COIN,\n colour: 'rgba(127, 17, 224, 1)',\n });\n }\n\n // Staking (Locked)\n if (mempool.getDelegatedBalance() > 0) {\n arrBreakdown.push({\n type: 'Staking',\n balance: mempool.getDelegatedBalance() / COIN,\n colour: 'rgba(42, 27, 66, 1)',\n });\n }\n\n const masternode = await (await Database.getInstance()).getMasternode();\n\n // Masternode (Locked)\n (\n await Promise.all(\n mempool.getConfirmed().map(async (cUTXO) => {\n return {\n UTXO: cUTXO,\n isMnUTXO: isMasternodeUTXO(cUTXO, masternode),\n };\n })\n )\n )\n .filter(({ isMnUTXO }) => isMnUTXO)\n .forEach(({ UTXO }) =>\n arrBreakdown.push({\n type: 'Masternode',\n balance: UTXO.sats / COIN,\n colour: 'rgba(19, 13, 30, 1)',\n })\n );\n\n return arrBreakdown;\n}\n\n/**\n * Create the initial Wallet Breakdown chart configuration and UI rendering\n */\nexport async function generateWalletBreakdown(arrBreakdown) {\n // Render the PIVX logo in the centre of the \"Wallet Doughnut\"\n const image = new Image();\n image.src = (await import('../assets/logo-circle.svg')).default;\n const logo_plugin = {\n id: 'centreLogo',\n beforeDraw: (chart) => {\n const ctx = chart.ctx;\n const { top, left, width, height } = chart.chartArea;\n const x = left + width / 2 - image.width / 2;\n const y = top + height / 2 - image.height / 2;\n ctx.globalAlpha = 0.25;\n ctx.drawImage(image, x, y, image.width, image.height);\n ctx.globalAlpha = 1;\n },\n };\n\n // Initialise the chart\n chartWalletBreakdown = new Chart(doms.domWalletBreakdownCanvas, {\n type: 'doughnut',\n data: {\n labels: arrBreakdown.map((data) => data.type),\n datasets: [\n {\n label: cChainParams.current.TICKER,\n data: arrBreakdown.map((data) => data.balance),\n },\n ],\n },\n plugins: [logo_plugin],\n options: {\n backgroundColor: arrBreakdown.map((data) => data.colour),\n radius: '75%',\n cutout: '75%',\n animation: {\n duration: 500,\n },\n plugins: {\n legend: {\n labels: {\n color: '#FFFFFF',\n font: {\n size: 16,\n },\n },\n },\n },\n },\n });\n\n // Set an interval internally to refresh the chart in real-time\n chartWalletBreakdown.interval = setInterval(renderWalletBreakdown, 2500);\n}\n\n/**\n * Render the wallet breakdown chart, or create it if not initialised\n */\nexport async function renderWalletBreakdown() {\n // Only if the modal is open, to save performance and prevent rendering when it's not visible\n if (!doms.domModalWalletBreakdown.style.display === 'block') return;\n\n // Update the chart data with the new dataset\n const arrBreakdown = await getWalletDataset();\n\n // If no chart exists, create it\n if (!chartWalletBreakdown)\n return await generateWalletBreakdown(arrBreakdown);\n\n // Update the chart\n chartWalletBreakdown.data.labels = arrBreakdown.map((data) => data.type);\n chartWalletBreakdown.data.datasets[0].data = arrBreakdown.map(\n (data) => data.balance\n );\n chartWalletBreakdown.data.datasets[0].backgroundColor = arrBreakdown.map(\n (data) => data.colour\n );\n chartWalletBreakdown.update();\n}\n","import script from \"./WalletBalance.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./WalletBalance.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n","import { Mempool } from './mempool.js';\nimport Masternode from './masternode.js';\nimport { ALERTS, tr, start as i18nStart, translation } from './i18n.js';\nimport * as jdenticon from 'jdenticon';\nimport {\n wallet,\n hasEncryptedWallet,\n importWallet,\n decryptWallet,\n getNewAddress,\n} from './wallet.js';\nimport { LegacyMasterKey } from './masterkey.js';\nimport { getNetwork, HistoricalTxType } from './network.js';\nimport {\n start as settingsStart,\n cExplorer,\n debug,\n cMarket,\n strCurrency,\n nDisplayDecimals,\n fAdvancedMode,\n} from './settings.js';\nimport { createAndSendTransaction, signTransaction } from './transactions.js';\nimport {\n createAlert,\n confirmPopup,\n sanitizeHTML,\n MAP_B58,\n parseBIP21Request,\n isValidBech32,\n isBase64,\n sleep,\n beautifyNumber,\n isStandardAddress,\n isColdAddress,\n} from './misc.js';\nimport { cChainParams, COIN, MIN_PASS_LENGTH } from './chain_params.js';\nimport { decrypt } from './aes-gcm.js';\n\nimport { registerWorker } from './native.js';\nimport { refreshPriceDisplay } from './prices.js';\nimport { Address6 } from 'ip-address';\nimport { getEventEmitter } from './event_bus.js';\nimport { scanQRCode } from './scanner.js';\nimport { Database } from './database.js';\nimport bitjs from './bitTrx.js';\nimport { checkForUpgrades } from './changelog.js';\nimport { FlipDown } from './flipdown.js';\nimport { createApp } from 'vue';\nimport Activity from './Activity.vue';\nimport WalletBalance from './WalletBalance.vue';\nimport {\n cReceiveType,\n guiAddContactPrompt,\n guiCheckRecipientInput,\n guiToggleReceiveType,\n} from './contacts-book.js';\nimport { Buffer } from 'buffer';\nimport { Account } from './accounts.js';\n\n/** A flag showing if base MPW is fully loaded or not */\nexport let fIsLoaded = false;\n\n/** A getter for the flag showing if base MPW is fully loaded or not */\nexport function isLoaded() {\n return fIsLoaded;\n}\n\nexport let doms = {};\nexport const mempool = new Mempool();\n\n// For now we'll import the component as a vue app by itself. Later, when the\n// dashboard is rewritten in vue, we can simply add to the dashboard component template.\nexport const activityDashboard = createApp(Activity, {\n title: 'Activity',\n rewards: false,\n}).mount('#activityDashboard');\n\nexport const stakingDashboard = createApp(Activity, {\n title: 'Reward History',\n rewards: true,\n}).mount('#stakeActivity');\n\nexport const walletBalance = createApp(WalletBalance).mount('#walletBalance');\n\nexport async function start() {\n doms = {\n domNavbarToggler: document.getElementById('navbarToggler'),\n domDashboard: document.getElementById('dashboard'),\n domGuiWallet: document.getElementById('guiWallet'),\n domGettingStartedBtn: document.getElementById('gettingStartedBtn'),\n domGuiStakingValue: document.getElementById('guiStakingValue'),\n domGuiStakingValueCurrency: document.getElementById(\n 'guiStakingValueCurrency'\n ),\n domBalanceReloadStaking: document.getElementById(\n 'balanceReloadStaking'\n ),\n domGuiBalanceStaking: document.getElementById('guiBalanceStaking'),\n domGuiBalanceStakingTicker: document.getElementById(\n 'guiBalanceStakingTicker'\n ),\n domStakeAmount: document.getElementById('delegateAmount'),\n domStakeOwnerAddressContainer: document.getElementById(\n 'ownerAddressContainer'\n ),\n domStakeOwnerAddress: document.getElementById('delegateOwnerAddress'),\n domUnstakeAmount: document.getElementById('undelegateAmount'),\n domStakeTab: document.getElementById('stakeTab'),\n domAddress1s: document.getElementById('address1s'),\n domSendAmountCoins: document.getElementById('sendAmountCoins'),\n domSendAmountCoinsTicker: document.getElementById(\n 'sendAmountCoinsTicker'\n ),\n domSendAmountValue: document.getElementById('sendAmountValue'),\n domSendAmountValueCurrency: document.getElementById(\n 'sendAmountValueCurrency'\n ),\n domStakeAmountCoinsTicker: document.getElementById(\n 'stakeAmountCoinsTicker'\n ),\n domStakeAmountValueCurrency: document.getElementById(\n 'stakeAmountValueCurrency'\n ),\n domStakeAmountValue: document.getElementById('stakeAmountValue'),\n domUnstakeAmountCoinsTicker: document.getElementById(\n 'unstakeAmountCoinsTicker'\n ),\n domUnstakeAmountValueCurrency: document.getElementById(\n 'unstakeAmountValueCurrency'\n ),\n\n domUnstakeAmountValue: document.getElementById('unstakeAmountValue'),\n domModalQR: document.getElementById('ModalQR'),\n domModalQrLabel: document.getElementById('ModalQRLabel'),\n domModalQrReceiveTypeBtn: document.getElementById(\n 'ModalQRReceiveTypeBtn'\n ),\n domModalQRReader: document.getElementById('qrReaderModal'),\n domQrReaderStream: document.getElementById('qrReaderStream'),\n domCloseQrReaderBtn: document.getElementById('closeQrReader'),\n domModalWalletBreakdown: document.getElementById(\n 'walletBreakdownModal'\n ),\n domWalletBreakdownCanvas: document.getElementById(\n 'walletBreakdownCanvas'\n ),\n domPrefix: document.getElementById('prefix'),\n domPrefixNetwork: document.getElementById('prefixNetwork'),\n domWalletToggle: document.getElementById('wToggle'),\n domGenerateWallet: document.getElementById('generateWallet'),\n domGenVanityWallet: document.getElementById('generateVanityWallet'),\n domGenHardwareWallet: document.getElementById('generateHardwareWallet'),\n //GOVERNANCE ELEMENTS\n domGovTab: document.getElementById('governanceTab'),\n domGovProposalsTable: document.getElementById('proposalsTable'),\n domGovProposalsTableBody: document.getElementById('proposalsTableBody'),\n domTotalGovernanceBudget: document.getElementById(\n 'totalGovernanceBudget'\n ),\n domTotalGovernanceBudgetValue: document.getElementById(\n 'totalGovernanceBudgetValue'\n ),\n domAllocatedGovernanceBudget: document.getElementById(\n 'allocatedGovernanceBudget'\n ),\n domAllocatedGovernanceBudgetValue: document.getElementById(\n 'allocatedGovernanceBudgetValue'\n ),\n domAllocatedGovernanceBudget2: document.getElementById(\n 'allocatedGovernanceBudget2'\n ),\n domAllocatedGovernanceBudgetValue2: document.getElementById(\n 'allocatedGovernanceBudgetValue2'\n ),\n domGovProposalsContestedTable: document.getElementById(\n 'proposalsContestedTable'\n ),\n domGovProposalsContestedTableBody: document.getElementById(\n 'proposalsContestedTableBody'\n ),\n //MASTERNODE ELEMENTS\n domCreateMasternode: document.getElementById('createMasternode'),\n domControlMasternode: document.getElementById('controlMasternode'),\n domAccessMasternode: document.getElementById('accessMasternode'),\n domMnAccessMasternodeText: document.getElementById(\n 'accessMasternodeText'\n ),\n domMnCreateType: document.getElementById('mnCreateType'),\n domMnTextErrors: document.getElementById('mnTextErrors'),\n domMnIP: document.getElementById('mnIP'),\n domMnTxId: document.getElementById('mnTxId'),\n domMnPrivateKey: document.getElementById('mnPrivateKey'),\n domMnDashboard: document.getElementById('mnDashboard'),\n domMnProtocol: document.getElementById('mnProtocol'),\n domMnStatus: document.getElementById('mnStatus'),\n domMnNetType: document.getElementById('mnNetType'),\n domMnNetIP: document.getElementById('mnNetIP'),\n domMnLastSeen: document.getElementById('mnLastSeen'),\n\n domAccessWallet: document.getElementById('accessWallet'),\n domImportWallet: document.getElementById('importWallet'),\n domImportWalletText: document.getElementById('importWalletText'),\n domAccessWalletBtn: document.getElementById('accessWalletBtn'),\n domVanityUiButtonTxt: document.getElementById('vanButtonText'),\n domGenKeyWarning: document.getElementById('genKeyWarning'),\n domEncryptWalletLabel: document.getElementById('encryptWalletLabel'),\n domEncryptPasswordCurrent: document.getElementById(\n 'changePassword-current'\n ),\n domEncryptPasswordFirst: document.getElementById('newPassword'),\n domEncryptPasswordSecond: document.getElementById('newPasswordRetype'),\n domGenIt: document.getElementById('genIt'),\n domReqDesc: document.getElementById('reqDesc'),\n domReqDisplay: document.getElementById('reqDescDisplay'),\n domIdenticon: document.getElementById('identicon'),\n domPrivKey: document.getElementById('privateKey'),\n domPrivKeyPassword: document.getElementById('privateKeyPassword'),\n domAvailToDelegate: document.getElementById('availToDelegate'),\n domAvailToUndelegate: document.getElementById('availToUndelegate'),\n domAnalyticsDescriptor: document.getElementById('analyticsDescriptor'),\n domMnemonicModalContent: document.getElementById(\n 'ModalMnemonicContent'\n ),\n domMnemonicModalButton: document.getElementById(\n 'modalMnemonicConfirmButton'\n ),\n domMnemonicModalPassphrase: document.getElementById(\n 'ModalMnemonicPassphrase'\n ),\n domExportPrivateKey: document.getElementById('exportPrivateKeyText'),\n domWipeWallet: document.getElementById('guiWipeWallet'),\n domRestoreWallet: document.getElementById('guiRestoreWallet'),\n domRedeemTitle: document.getElementById('redeemCodeModalTitle'),\n domRedeemCodeUse: document.getElementById('redeemCodeUse'),\n domRedeemCodeCreate: document.getElementById('redeemCodeCreate'),\n domRedeemCodeGiftIconBox: document.getElementById(\n 'redeemCodeGiftIconBox'\n ),\n domRedeemCodeGiftIcon: document.getElementById('redeemCodeGiftIcon'),\n domRedeemCodeETA: document.getElementById('redeemCodeETA'),\n domRedeemCodeProgress: document.getElementById('redeemCodeProgress'),\n domRedeemCodeInputBox: document.getElementById('redeemCodeInputBox'),\n domRedeemCodeInput: document.getElementById('redeemCodeInput'),\n domRedeemCodeConfirmBtn: document.getElementById(\n 'redeemCodeModalConfirmButton'\n ),\n domRedeemCodeModeRedeemBtn: document.getElementById(\n 'redeemCodeModeRedeem'\n ),\n domRedeemCodeModeCreateBtn: document.getElementById(\n 'redeemCodeModeCreate'\n ),\n domRedeemCodeCreateInput: document.getElementById(\n 'redeemCodeCreateInput'\n ),\n domRedeemCodeCreateAmountInput: document.getElementById(\n 'redeemCodeCreateAmountInput'\n ),\n domRedeemCodeCreatePendingList: document.getElementById(\n 'redeemCodeCreatePendingList'\n ),\n domPromoTable: document.getElementById('promo-table'),\n domContactsTable: document.getElementById('contactsList'),\n domConfirmModalDialog: document.getElementById('confirmModalDialog'),\n domConfirmModalMain: document.getElementById('confirmModalMain'),\n domConfirmModalHeader: document.getElementById('confirmModalHeader'),\n domConfirmModalTitle: document.getElementById('confirmModalTitle'),\n domConfirmModalContent: document.getElementById('confirmModalContent'),\n domConfirmModalButtons: document.getElementById('confirmModalButtons'),\n domConfirmModalConfirmButton: document.getElementById(\n 'confirmModalConfirmButton'\n ),\n domConfirmModalCancelButton: document.getElementById(\n 'confirmModalCancelButton'\n ),\n\n masternodeLegacyAccessText:\n 'Access the masternode linked to this address
Note: the masternode MUST have been already created (however it can be online or offline)
If you want to create a new masternode access with a HD wallet',\n masternodeHDAccessText:\n \"Access your masternodes if you have any! If you don't you can create one\",\n // Aggregate menu screens and links for faster switching\n arrDomScreens: document.getElementsByClassName('tabcontent'),\n arrDomScreenLinks: document.getElementsByClassName('tablinks'),\n // Alert DOM element\n domAlertPos: document.getElementsByClassName('alertPositioning')[0],\n domNetwork: document.getElementById('Network'),\n domChangePasswordContainer: document.getElementById(\n 'changePassword-container'\n ),\n domDebug: document.getElementById('Debug'),\n domTestnet: document.getElementById('Testnet'),\n domCurrencySelect: document.getElementById('currency'),\n domExplorerSelect: document.getElementById('explorer'),\n domNodeSelect: document.getElementById('node'),\n domAutoSwitchToggle: document.getElementById('autoSwitchToggler'),\n domTranslationSelect: document.getElementById('translation'),\n domDisplayDecimalsSlider: document.getElementById('displayDecimals'),\n domDisplayDecimalsSliderDisplay:\n document.getElementById('sliderDisplay'),\n domBlackBack: document.getElementById('blackBack'),\n domWalletSettings: document.getElementById('settingsWallet'),\n domDisplaySettings: document.getElementById('settingsDisplay'),\n domWalletSettingsBtn: document.getElementById('settingsWalletBtn'),\n domDisplaySettingsBtn: document.getElementById('settingsDisplayBtn'),\n domVersion: document.getElementById('version'),\n domFlipdown: document.getElementById('flipdown'),\n domTestnetToggler: document.getElementById('testnetToggler'),\n domAdvancedModeToggler: document.getElementById('advancedModeToggler'),\n };\n\n await i18nStart();\n await loadImages();\n\n // Enable all Bootstrap Tooltips\n $(function () {\n $('#displayDecimals').tooltip({\n template:\n '
',\n });\n $('[data-toggle=\"tooltip\"]').tooltip();\n });\n\n // Set decimal slider event\n const sliderElement = document.getElementById('displayDecimals');\n function handleDecimalSlider() {\n setTimeout(() => {\n try {\n if (window.innerWidth > 991) {\n const sliderHalf = Math.round(\n document\n .getElementById('displayDecimals')\n .getBoundingClientRect().width / 2\n );\n const sliderBegin = -sliderHalf + 28;\n const stepVal = (sliderHalf * 2) / 8 - 6.45;\n const sliderValue = parseInt(sliderElement.value) + 1;\n\n document.querySelector('.sliderStyle').style.left = `${\n sliderBegin - stepVal + stepVal * sliderValue\n }px`;\n document.querySelector('.tooltip-inner').innerHTML =\n sliderValue - 1;\n }\n } catch (e) {}\n }, 10);\n }\n sliderElement.addEventListener('input', handleDecimalSlider);\n sliderElement.addEventListener('mouseover', handleDecimalSlider);\n\n // Register Input Pair events\n doms.domSendAmountCoins.oninput = () => {\n updateAmountInputPair(\n doms.domSendAmountCoins,\n doms.domSendAmountValue,\n true\n );\n };\n doms.domSendAmountValue.oninput = () => {\n updateAmountInputPair(\n doms.domSendAmountCoins,\n doms.domSendAmountValue,\n false\n );\n };\n\n /** Staking (Stake) */\n doms.domStakeAmount.oninput = () => {\n updateAmountInputPair(\n doms.domStakeAmount,\n doms.domStakeAmountValue,\n true\n );\n };\n doms.domStakeAmountValue.oninput = () => {\n updateAmountInputPair(\n doms.domStakeAmount,\n doms.domStakeAmountValue,\n false\n );\n };\n\n /** Staking (Unstake) */\n doms.domUnstakeAmount.oninput = () => {\n updateAmountInputPair(\n doms.domUnstakeAmount,\n doms.domUnstakeAmountValue,\n true\n );\n };\n doms.domUnstakeAmountValue.oninput = () => {\n updateAmountInputPair(\n doms.domUnstakeAmount,\n doms.domUnstakeAmountValue,\n false\n );\n };\n\n // Register native app service\n registerWorker();\n\n // Configure Identicon\n jdenticon.configure();\n\n // URL-Query request processing\n const urlParams = new URLSearchParams(window.location.search);\n\n // Check for a payment request address\n const reqTo = urlParams.has('pay') ? urlParams.get('pay') : '';\n\n // Check for a payment request amount\n const reqAmount = urlParams.has('amount')\n ? parseFloat(urlParams.get('amount'))\n : 0;\n await settingsStart();\n\n // Customise the UI if a saved wallet exists\n if (await hasEncryptedWallet()) {\n // Hide the 'Generate wallet' buttons\n doms.domGenerateWallet.style.display = 'none';\n doms.domGenVanityWallet.style.display = 'none';\n const database = await Database.getInstance();\n const { publicKey } = await database.getAccount();\n\n // Import the wallet, and toggle the startup flag, which delegates the chain data refresh to settingsStart();\n if (publicKey) {\n await importWallet({ newWif: publicKey, fStartup: true });\n\n // Update the \"Receive\" UI to apply Translation and Contacts updates\n await guiToggleReceiveType(cReceiveType);\n\n // Check for Add Contact calls\n if (urlParams.has('addcontact')) {\n // Quick sanity check\n const strURI = urlParams.get('addcontact');\n if (strURI.includes(':')) {\n // Split to 'name' and 'pubkey'\n const arrParts = strURI.split(':');\n\n // Convert Name from HEX to UTF-8\n const strName = Buffer.from(arrParts[0], 'hex').toString(\n 'utf8'\n );\n const strPubkey = arrParts[1];\n\n // Prompt the user to add the Contact\n guiAddContactPrompt(sanitizeHTML(strName), strPubkey);\n }\n } else if (reqTo.length || reqAmount > 0) {\n // Payment processor popup\n guiPreparePayment(\n reqTo,\n reqAmount,\n urlParams.has('desc') ? urlParams.get('desc') : ''\n );\n }\n } else {\n // Display the password unlock upfront\n await accessOrImportWallet();\n }\n } else {\n // Just load the block count, for use in non-wallet areas\n getNetwork().getBlockCount();\n }\n\n subscribeToNetworkEvents();\n\n doms.domPrefix.value = '';\n doms.domPrefixNetwork.innerText =\n cChainParams.current.PUBKEY_PREFIX.join(' or ');\n // If allowed by settings: submit a simple 'hit' (app load) to Labs Analytics\n getNetwork().submitAnalytics('hit');\n setInterval(() => {\n // Refresh blockchain data\n refreshChainData();\n\n // Fetch the PIVX prices\n refreshPriceDisplay();\n }, 15000);\n\n // After reaching here; we know MPW's base is fully loaded!\n fIsLoaded = true;\n\n // Check for recent upgrades, display the changelog\n checkForUpgrades();\n\n // If we haven't already (due to having no wallet, etc), display the Dashboard\n doms.domDashboard.click();\n\n // Update the Encryption UI (If the user has a wallet, then it changes to \"Change Password\" rather than \"Encrypt Wallet\")\n await updateEncryptionGUI();\n}\n\nfunction subscribeToNetworkEvents() {\n getEventEmitter().on('network-toggle', (value) => {\n doms.domNetwork.innerHTML =\n '';\n });\n\n getEventEmitter().on('sync-status', (value) => {\n switch (value) {\n case 'start':\n doms.domBalanceReloadStaking.classList.add('playAnim');\n break;\n case 'stop':\n doms.domBalanceReloadStaking.classList.remove('playAnim');\n break;\n }\n });\n\n getEventEmitter().on('new-block', (block, oldBlock) => {\n console.log(`New block detected! ${oldBlock} --> ${block}`);\n // Fetch latest Activity\n activityDashboard.update(true);\n stakingDashboard.update(true);\n\n // If it's open: update the Governance Dashboard\n if (doms.domGovTab.classList.contains('active')) {\n updateGovernanceTab();\n }\n });\n\n getEventEmitter().on('transaction-sent', (success, result) => {\n if (success) {\n doms.domAddress1s.value = '';\n doms.domSendAmountCoins.innerHTML = '';\n createAlert(\n 'success',\n `${ALERTS.TX_SENT}
${sanitizeHTML(result)}`,\n result ? 1250 + result.length * 50 : 3000\n );\n // If allowed by settings: submit a simple 'tx' ping to Labs Analytics\n getNetwork().submitAnalytics('transaction');\n } else {\n console.error('Error sending transaction:');\n console.error(result);\n createAlert('warning', ALERTS.TX_FAILED, 2500);\n }\n });\n}\n\n// WALLET STATE DATA\n\nlet exportHidden = false;\nlet isTestnetLastState = cChainParams.current.isTestnet;\n\n/**\n * @type {FlipDown | null}\n */\nlet governanceFlipdown = null;\n\n/**\n * Open a UI 'tab' menu, and close all other tabs, intended for frontend use\n * @param {Event} evt - The click event target\n * @param {string} tabName - The name of the tab to load\n */\nexport function openTab(evt, tabName) {\n // Only allow switching tabs if MPw is loaded\n if (!isLoaded()) return;\n\n // Hide all screens and deactivate link highlights\n for (const domScreen of doms.arrDomScreens)\n domScreen.style.display = 'none';\n for (const domLink of doms.arrDomScreenLinks)\n domLink.classList.remove('active');\n\n // Show and activate the given screen\n document.getElementById(tabName).style.display = 'block';\n evt.currentTarget.classList.add('active');\n\n // Close the navbar if it's not already closed\n if (!doms.domNavbarToggler.className.includes('collapsed'))\n doms.domNavbarToggler.click();\n\n if (tabName === 'Governance') {\n updateGovernanceTab();\n } else if (tabName === 'Masternode') {\n updateMasternodeTab();\n } else if (\n tabName === 'StakingTab' &&\n stakingDashboard.getTxCount() === 0\n ) {\n // Refresh the TX list\n stakingDashboard.update(false);\n } else if (\n tabName === 'keypair' &&\n getNetwork().arrTxHistory.length === 0\n ) {\n // Refresh the TX list\n activityDashboard.update(false);\n }\n}\n\n/**\n * Updates the GUI ticker among all elements; useful for Network Switching\n */\nexport function updateTicker() {\n // Update the Stake Dashboard currency\n doms.domGuiStakingValueCurrency.innerText = strCurrency.toUpperCase();\n\n // Update the Send menu ticker and currency\n doms.domSendAmountValueCurrency.innerText = strCurrency.toUpperCase();\n doms.domSendAmountCoinsTicker.innerText = cChainParams.current.TICKER;\n\n // Update the Stake/Unstake menu ticker and currency\n // Stake\n doms.domStakeAmountValueCurrency.innerText = strCurrency.toUpperCase();\n doms.domStakeAmountCoinsTicker.innerText = cChainParams.current.TICKER;\n\n // Unstake\n doms.domUnstakeAmountValueCurrency.innerText = strCurrency.toUpperCase();\n doms.domUnstakeAmountCoinsTicker.innerText = cChainParams.current.TICKER;\n}\n\n/**\n * Return locale settings best for displaying the user-selected currency\n * @param {Number} nAmount - The amount in Currency\n */\nexport function optimiseCurrencyLocale(nAmount) {\n // Allow manipulating the value, if necessary\n let nValue = nAmount;\n\n // Find the best fitting native-locale\n const cLocale = Intl.supportedValuesOf('currency').includes(\n strCurrency.toUpperCase()\n )\n ? {\n style: 'currency',\n currency: strCurrency,\n currencyDisplay: 'narrowSymbol',\n }\n : { maximumFractionDigits: 8, minimumFractionDigits: 8 };\n\n // Catch display edge-cases; like Satoshis having decimals.\n switch (strCurrency) {\n case 'sats':\n nValue = Math.round(nValue);\n cLocale.maximumFractionDigits = 0;\n cLocale.minimumFractionDigits = 0;\n }\n\n // Return display-optimised Value and Locale pair.\n return { nValue, cLocale };\n}\n\n/**\n * Update a 'price value' DOM display for the given balance type\n * @param {HTMLElement} domValue\n * @param {boolean} fCold\n */\nexport async function updatePriceDisplay(domValue, fCold = false) {\n // Update currency values\n const nPrice = await cMarket.getPrice(strCurrency);\n\n if (nPrice) {\n // Calculate the value\n const nCurrencyValue =\n ((fCold ? getStakingBalance() : getBalance()) / COIN) * nPrice;\n\n const { nValue, cLocale } = optimiseCurrencyLocale(nCurrencyValue);\n\n // Update the DOM\n domValue.innerText = nValue.toLocaleString('en-gb', cLocale);\n }\n}\n\nexport function getBalance(updateGUI = false) {\n const nBalance = mempool.getBalance();\n const nCoins = nBalance / COIN;\n\n // Update the GUI too, if chosen\n if (updateGUI) {\n // Set the balance, and adjust font-size for large balance strings\n const strBal = nCoins.toFixed(nDisplayDecimals);\n doms.domAvailToDelegate.innerHTML =\n beautifyNumber(strBal) + ' ' + cChainParams.current.TICKER;\n\n // Update tickers\n updateTicker();\n }\n\n return nBalance;\n}\n\nexport function getStakingBalance(updateGUI = false) {\n const nBalance = mempool.getDelegatedBalance();\n const nCoins = nBalance / COIN;\n\n if (updateGUI) {\n // Set the balance, and adjust font-size for large balance strings\n const strBal = nCoins.toFixed(nDisplayDecimals);\n const nLen = strBal.length;\n doms.domGuiBalanceStaking.innerHTML = beautifyNumber(\n strBal,\n nLen >= 10 ? '17px' : '25px'\n );\n doms.domAvailToUndelegate.innerHTML =\n beautifyNumber(strBal) + ' ' + cChainParams.current.TICKER;\n\n // Update tickers\n updateTicker();\n\n // Update price displays\n updatePriceDisplay(doms.domGuiStakingValue, true);\n }\n\n return nBalance;\n}\n\n/**\n * Fill a 'Coin Amount' with all of a balance type, and update the 'Coin Value'\n * @param {HTMLInputElement} domCoin - The 'Coin Amount' input element\n * @param {HTMLInputElement} domValue - Th 'Coin Value' input element\n * @param {boolean} fCold - Use the Cold Staking balance, or Available balance\n */\nexport function selectMaxBalance(domCoin, domValue, fCold = false) {\n domCoin.value = (fCold ? getStakingBalance() : getBalance()) / COIN;\n // Update the Send menu's value (assumption: if it's not a Cold balance, it's probably for Sending!)\n updateAmountInputPair(domCoin, domValue, true);\n}\n\n/**\n * Prompt a QR scan for a Payment (Address or BIP21)\n */\nexport async function openSendQRScanner() {\n const cScan = await scanQRCode();\n\n if (!cScan || !cScan.data) return;\n\n /* Check what data the scan contains - for the various QR request types */\n\n // Plain address (Length and prefix matches)\n if (isStandardAddress(cScan.data)) {\n return guiPreparePayment(cScan.data);\n }\n\n // Shield address (Valid bech32 string)\n if (isValidBech32(cScan.data).valid) {\n return guiPreparePayment(cScan.data);\n }\n\n // BIP21 Payment Request (Optional 'amount' and 'label')\n const cBIP21Req = parseBIP21Request(cScan.data);\n if (cBIP21Req) {\n return guiPreparePayment(\n cBIP21Req.address,\n cBIP21Req.options.amount || 0,\n cBIP21Req.options.label || ''\n );\n }\n\n // MPW Contact Request URI\n if (cScan.data.includes('addcontact=')) {\n // Parse as URL Params\n const cURL = new URL(cScan.data);\n const urlParams = new URLSearchParams(cURL.search);\n const strURI = urlParams.get('addcontact');\n\n // Sanity check the URI\n if (strURI?.includes(':')) {\n // Split to 'name' and 'pubkey'\n const arrParts = strURI.split(':');\n\n // If the wallet is encrypted, prompt the user to (optionally) add the Contact, before the Tx\n const fUseName = (await hasEncryptedWallet())\n ? await guiAddContactPrompt(\n sanitizeHTML(arrParts[0]),\n arrParts[1],\n false\n )\n : false;\n\n // Prompt for payment\n return guiPreparePayment(fUseName ? arrParts[0] : arrParts[1]);\n }\n }\n\n // No idea what this is...\n createAlert(\n 'warning',\n `\"${sanitizeHTML(\n cScan.data.substring(0, Math.min(cScan.data.length, 6))\n )}…\" ${ALERTS.QR_SCANNER_BAD_RECEIVER}`,\n 7500\n );\n}\n\n/**\n * Open the Explorer in a new tab for the current wallet, or a specific address\n * @param {string?} strAddress - Optional address to open, if void, the master key is used\n */\nexport async function openExplorer(strAddress = '') {\n if (wallet.isLoaded() && wallet.isHD() && !strAddress) {\n const xpub = await wallet.getXPub();\n window.open(cExplorer.url + '/xpub/' + xpub, '_blank');\n } else {\n const address = strAddress || (await wallet.getAddress());\n window.open(cExplorer.url + '/address/' + address, '_blank');\n }\n}\n\nasync function loadImages() {\n const images = [\n ['mpw-main-logo', import('../assets/logo.png')],\n ['privateKeyImage', import('../assets/key.png')],\n ];\n\n const promises = images.map(([id, path]) =>\n (async () => {\n document.getElementById(id).src = (await path).default;\n })()\n );\n await Promise.all(promises);\n}\n\nlet audio = null;\nexport async function playMusic() {\n // On first play: load the audio into memory from the host\n if (audio === null) {\n // Dynamically load the file\n audio = new Audio((await import('../assets/music.mp3')).default);\n }\n\n // Play or Pause\n if (audio.paused || audio.ended) {\n audio.play();\n for (const domImg of document.getElementsByTagName('img'))\n domImg.classList.add('discoFilter');\n } else {\n audio.pause();\n for (const domImg of document.getElementsByTagName('img'))\n domImg.classList.remove('discoFilter');\n }\n}\n\nexport function unblurPrivKey() {\n if (\n document\n .getElementById('exportPrivateKeyText')\n .classList.contains('blurred')\n ) {\n document\n .getElementById('exportPrivateKeyText')\n .classList.remove('blurred');\n } else {\n document\n .getElementById('exportPrivateKeyText')\n .classList.add('blurred');\n }\n}\n\nexport function toggleBottomMenu(dom, ani) {\n let element = document.getElementById(dom);\n if (element.classList.contains(ani)) {\n element.classList.remove(ani);\n doms.domBlackBack.classList.remove('d-none');\n setTimeout(() => {\n doms.domBlackBack.classList.remove('blackBackHide');\n }, 10);\n } else {\n element.classList.add(ani);\n doms.domBlackBack.classList.add('blackBackHide');\n setTimeout(() => {\n doms.domBlackBack.classList.add('d-none');\n }, 150);\n }\n}\n\n/**\n * Updates an Amount Input UI pair ('Coin' and 'Value' input boxes) in relation to the input box used\n * @param {HTMLInputElement} domCoin - The DOM input for the Coin amount\n * @param {HTMLInputElement} domValue - The DOM input for the Value amount\n * @param {boolean} fCoinEdited - `true` if Coin, `false` if Value\n */\nexport async function updateAmountInputPair(domCoin, domValue, fCoinEdited) {\n // Fetch the price in the user's preferred currency\n const nPrice = await cMarket.getPrice(strCurrency);\n\n // If there is no price loaded, then we just won't do anything\n if (!nPrice) return;\n\n if (fCoinEdited) {\n // If the 'Coin' input is edited, then update the 'Value' input with it's converted currency\n const nValue = Number(domCoin.value) * nPrice;\n domValue.value = nValue <= 0 ? '' : nValue;\n } else {\n // If the 'Value' input is edited, then update the 'Coin' input with the reversed conversion rate\n const nValue = Number(domValue.value) / nPrice;\n domCoin.value = nValue <= 0 ? '' : nValue;\n }\n}\n\nexport function toClipboard(source, caller) {\n // Fetch the text/value source\n const domCopy = document.getElementById(source) || source;\n\n // Use an invisible textbox as the clipboard source\n const domClipboard = document.getElementById('clipboard');\n domClipboard.value = domCopy.value || domCopy.innerHTML || domCopy;\n domClipboard.select();\n domClipboard.setSelectionRange(0, 99999);\n\n // Browser-dependent clipboard execution\n if (!navigator.clipboard) {\n document.execCommand('copy');\n } else {\n navigator.clipboard.writeText(domCopy.innerHTML || domCopy);\n }\n\n // Display a temporary checkmark response\n caller.classList.add('fa-check');\n caller.classList.remove('fa-clipboard');\n caller.style.cursor = 'default';\n setTimeout(() => {\n caller.classList.add('fa-clipboard');\n caller.classList.remove('fa-check');\n caller.style.cursor = 'pointer';\n }, 1000);\n}\n\n/**\n * Prompt for a payment in the GUI with pre-filled inputs\n * @param {string} strTo - The address receiving the payment\n * @param {number} nAmount - The payment amount in full coins\n * @param {string} strDesc - The payment message or description\n */\nexport function guiPreparePayment(strTo = '', nAmount = 0, strDesc = '') {\n // Apply values\n doms.domAddress1s.value = strTo;\n doms.domSendAmountCoins.value = nAmount;\n doms.domReqDesc.value = strDesc;\n doms.domReqDisplay.style.display = strDesc ? 'block' : 'none';\n\n // Switch to the Dashboard\n doms.domDashboard.click();\n\n // Open the Send menu, if not already open (with a small timeout post-load to allow for CSS loading)\n if (\n document\n .getElementById('transferMenu')\n .classList.contains('transferAnimation')\n ) {\n setTimeout(() => {\n toggleBottomMenu('transferMenu', 'transferAnimation');\n }, 300);\n }\n\n // Update the conversion value\n updateAmountInputPair(\n doms.domSendAmountCoins,\n doms.domSendAmountValue,\n true\n );\n\n // Run the Input Validity checker\n guiCheckRecipientInput({ target: doms.domAddress1s });\n\n // Focus on the coin input box (if no pre-fill was specified)\n if (nAmount <= 0) {\n doms.domSendAmountCoins.focus();\n }\n}\n\n/**\n * Set the \"Wallet Options\" menu visibility\n * @param {String} strDisplayCSS - The `display` CSS option to set the Wallet Options to\n */\nexport function setDisplayForAllWalletOptions(strDisplayCSS) {\n // Set the display and Reset the Vanity address input\n doms.domPrefix.value = '';\n doms.domPrefix.style.display = strDisplayCSS;\n\n // Set all \"*Wallet\" buttons\n doms.domGenerateWallet.style.display = strDisplayCSS;\n doms.domImportWallet.style.display = strDisplayCSS;\n doms.domGenVanityWallet.style.display = strDisplayCSS;\n doms.domAccessWallet.style.display = strDisplayCSS;\n doms.domGenHardwareWallet.style.display = strDisplayCSS;\n}\n\nexport async function govVote(hash, voteCode) {\n if (\n (await confirmPopup({\n title: ALERTS.CONFIRM_POPUP_VOTE,\n html: ALERTS.CONFIRM_POPUP_VOTE_HTML,\n })) == true\n ) {\n const database = await Database.getInstance();\n const cMasternode = await database.getMasternode();\n if (cMasternode) {\n if ((await cMasternode.getStatus()) !== 'ENABLED') {\n createAlert('warning', ALERTS.MN_NOT_ENABLED, 6000);\n return;\n }\n const result = await cMasternode.vote(hash.toString(), voteCode); //1 yes 2 no\n if (result.includes('Voted successfully')) {\n //good vote\n cMasternode.storeVote(hash.toString(), voteCode);\n await updateGovernanceTab();\n createAlert('success', ALERTS.VOTE_SUBMITTED, 6000);\n } else if (result.includes('Error voting :')) {\n //If you already voted return an alert\n createAlert('warning', ALERTS.VOTED_ALREADY, 6000);\n } else if (result.includes('Failure to verify signature.')) {\n //wrong masternode private key\n createAlert('warning', ALERTS.VOTE_SIG_BAD, 6000);\n } else {\n //this could be everything\n console.error(result);\n createAlert('warning', ALERTS.INTERNAL_ERROR, 6000);\n }\n } else {\n createAlert('warning', ALERTS.MN_ACCESS_BEFORE_VOTE, 6000);\n }\n }\n}\n\n/**\n * Start a Masternode via a signed network broadcast\n * @param {boolean} fRestart - Whether this is a Restart or a first Start\n */\nexport async function startMasternode(fRestart = false) {\n const database = await Database.getInstance();\n const cMasternode = await database.getMasternode(wallet.getMasterKey());\n if (cMasternode) {\n if (\n wallet.isViewOnly() &&\n !(await restoreWallet(translation.walletUnlockMNStart))\n )\n return;\n if (await cMasternode.start()) {\n const strMsg = fRestart ? ALERTS.MN_RESTARTED : ALERTS.MN_STARTED;\n createAlert('success', strMsg, 4000);\n } else {\n const strMsg = fRestart\n ? ALERTS.MN_RESTART_FAILED\n : ALERTS.MN_START_FAILED;\n createAlert('warning', strMsg, 4000);\n }\n }\n}\n\nexport async function destroyMasternode() {\n const database = await Database.getInstance();\n\n if (await database.getMasternode(wallet.getMasterKey())) {\n database.removeMasternode(wallet.getMasterKey());\n createAlert('success', ALERTS.MN_DESTROYED, 5000);\n updateMasternodeTab();\n }\n}\n\n/**\n * Takes an ip address and adds the port.\n * If it's a tor address, ip.onion:port will be used (e.g. expyuzz4wqqyqhjn.onion:12345)\n * If it's an IPv4 address, ip:port will be used, (e.g. 127.0.0.1:12345)\n * If it's an IPv6 address, [ip]:port will be used, (e.g. [::1]:12345)\n * @param {String} ip - Ip address with or without port\n * @returns {String}\n */\nfunction parseIpAddress(ip) {\n // IPv4 or tor without port\n if (ip.match(/\\d+\\.\\d+\\.\\d+\\.\\d+/) || ip.match(/\\w+\\.onion/)) {\n return `${ip}:${cChainParams.current.MASTERNODE_PORT}`;\n }\n\n // IPv4 or tor with port\n if (ip.match(/\\d+\\.\\d+\\.\\d+\\.\\d+:\\d+/) || ip.match(/\\w+\\.onion:\\d+/)) {\n return ip;\n }\n\n // IPv6 without port\n if (Address6.isValid(ip)) {\n return `[${ip}]:${cChainParams.current.MASTERNODE_PORT}`;\n }\n\n const groups = /\\[(.*)\\]:\\d+/.exec(ip);\n if (groups !== null && groups.length > 1) {\n // IPv6 with port\n if (Address6.isValid(groups[1])) {\n return ip;\n }\n }\n\n // If we haven't returned yet, the address was invalid.\n return null;\n}\n\nexport async function importMasternode() {\n const mnPrivKey = doms.domMnPrivateKey.value;\n const address = parseIpAddress(doms.domMnIP.value);\n if (!address) {\n createAlert('warning', ALERTS.MN_BAD_IP, 5000);\n return;\n }\n\n let collateralTxId;\n let outidx;\n let collateralPrivKeyPath;\n doms.domMnIP.value = '';\n doms.domMnPrivateKey.value = '';\n\n if (!wallet.isHD()) {\n // Find the first UTXO matching the expected collateral size\n const cCollaUTXO = mempool\n .getConfirmed()\n .find(\n (cUTXO) => cUTXO.sats === cChainParams.current.collateralInSats\n );\n\n // If there's no valid UTXO, exit with a contextual message\n if (!cCollaUTXO) {\n if (getBalance(false) < cChainParams.current.collateralInSats) {\n // Not enough balance to create an MN UTXO\n const amount =\n (cChainParams.current.collateralInSats -\n getBalance(false)) /\n COIN;\n const ticker = cChainParams.current.TICKER;\n createAlert(\n 'warning',\n tr(ALERTS.MN_NOT_ENOUGH_COLLAT, [\n { amount: amount },\n { ticker: ticker },\n ]),\n 10000\n );\n } else {\n // Balance is capable of a masternode, just needs to be created\n // TODO: this UX flow is weird, is it even possible? perhaps we can re-design this entire function accordingly\n const amount = cChainParams.current.collateralInSats / COIN;\n const ticker = cChainParams.current.TICKER;\n createAlert(\n 'warning',\n tr(ALERTS.MN_ENOUGH_BUT_NO_COLLAT, [\n { amount },\n { ticker },\n ]),\n 10000\n );\n }\n return;\n }\n\n collateralTxId = cCollaUTXO.id;\n outidx = cCollaUTXO.vout;\n collateralPrivKeyPath = 'legacy';\n } else {\n const path = doms.domMnTxId.value;\n const masterUtxo = mempool\n .getConfirmed()\n .findLast((u) => u.path === path); // first UTXO for each address in HD\n // sanity check:\n if (masterUtxo.sats !== cChainParams.current.collateralInSats) {\n return createAlert('warning', ALERTS.MN_COLLAT_NOT_SUITABLE, 10000);\n }\n collateralTxId = masterUtxo.id;\n outidx = masterUtxo.vout;\n collateralPrivKeyPath = path;\n }\n doms.domMnTxId.value = '';\n\n const cMasternode = new Masternode({\n walletPrivateKeyPath: collateralPrivKeyPath,\n mnPrivateKey: mnPrivKey,\n collateralTxId: collateralTxId,\n outidx: outidx,\n addr: address,\n });\n await refreshMasternodeData(cMasternode, true);\n await updateMasternodeTab();\n}\n\nexport async function accessOrImportWallet() {\n // Hide and Reset the Vanity address input\n doms.domPrefix.value = '';\n doms.domPrefix.style.display = 'none';\n\n // Show Import button, hide access button\n doms.domImportWallet.style.display = 'block';\n setTimeout(() => {\n doms.domPrivKey.style.opacity = '1';\n }, 100);\n doms.domAccessWalletBtn.style.display = 'none';\n\n // If we have a local wallet, display the decryption prompt\n // This is no longer being used, as the user will be put in view-only\n // mode when logging in, however if the user locked the wallet before\n // #52 there would be no way to recover the public key without getting\n // The password from the user\n if (await hasEncryptedWallet()) {\n doms.domPrivKey.placeholder = translation.encryptPasswordFirst;\n doms.domImportWalletText.innerText = translation.unlockWallet;\n doms.domPrivKey.focus();\n }\n}\n/**\n * An event function triggered apon private key UI input changes\n *\n * Useful for adjusting the input types or displaying password prompts depending on the import scheme\n */\nexport async function guiUpdateImportInput() {\n if (await hasEncryptedWallet()) return;\n // Check whether the string is Base64 (would likely be an MPW-encrypted import)\n // and it doesn't have any spaces (would be a mnemonic seed)\n const fContainsSpaces = doms.domPrivKey.value.trim().includes(' ');\n\n // If this could require a Seed Passphrase (BIP39 Passphrase) and Advanced Mode is enabled\n // ...or if this is an Encrypted Import (Encrypted Base64 MPW key)\n const fBIP39Passphrase = fContainsSpaces && fAdvancedMode;\n doms.domPrivKeyPassword.hidden =\n (doms.domPrivKey.value.length < 128 ||\n !isBase64(doms.domPrivKey.value)) &&\n !fBIP39Passphrase;\n\n doms.domPrivKeyPassword.placeholder = fContainsSpaces\n ? translation.optionalPassphrase\n : translation.password;\n\n // If the \"Import Password/Passphrase\" is hidden, we'll also wipe it's input, in the\n // ... edge-case that a passphrase was entered, then the import key had changed.\n if (doms.domPrivKeyPassword.hidden) doms.domPrivKeyPassword.value = '';\n\n // Uncloak the private input IF spaces are detected, to make Seed Phrases easier to input and verify\n doms.domPrivKey.setAttribute('type', fContainsSpaces ? 'text' : 'password');\n}\n\n/**\n * Imports a wallet using the GUI input, handling decryption via UI\n */\nexport async function guiImportWallet() {\n // Important: These fields will be wiped by importWallet();\n const strPrivKey = doms.domPrivKey.value;\n const strPassword = doms.domPrivKeyPassword.value;\n const fEncrypted = strPrivKey.length >= 128 && isBase64(strPrivKey);\n\n // If we are in testnet: prompt an import\n if (cChainParams.current.isTestnet) return importWallet();\n\n // If we don't have a DB wallet and the input is plain: prompt an import\n if (!(await hasEncryptedWallet()) && !fEncrypted) return importWallet();\n\n // If we don't have a DB wallet and the input is ciphered:\n if (!(await hasEncryptedWallet()) && fEncrypted) {\n const strDecWIF = await decrypt(strPrivKey, strPassword);\n if (!strDecWIF || strDecWIF === 'decryption failed!') {\n return createAlert('warning', ALERTS.FAILED_TO_IMPORT, 6000);\n } else {\n await importWallet({\n newWif: strDecWIF,\n // Save the public key to disk for future View Only mode post-decryption\n fSavePublicKey: true,\n });\n\n if (wallet.isLoaded()) {\n // Prepare a new Account to add\n const cAccount = new Account({\n publicKey: await wallet.getKeyToExport(),\n encWif: strPrivKey,\n });\n\n // Add the new Account to the DB\n const database = await Database.getInstance();\n database.addAccount(cAccount);\n }\n\n // Destroy residue import data\n doms.domPrivKey.value = '';\n doms.domPrivKeyPassword.value = '';\n return;\n }\n }\n // Prompt for decryption of the existing wallet\n const fHasWallet = await decryptWallet(doms.domPrivKey.value);\n\n // If the wallet was successfully loaded, hide all options and load the dash!\n if (fHasWallet) setDisplayForAllWalletOptions('none');\n}\n\nexport async function guiEncryptWallet() {\n // Fetch our inputs, ensure they're of decent entropy + match eachother\n const strPass = doms.domEncryptPasswordFirst.value,\n strPassRetype = doms.domEncryptPasswordSecond.value;\n if (strPass.length < MIN_PASS_LENGTH)\n return createAlert(\n 'warning',\n tr(ALERTS.PASSWORD_TOO_SMALL, [\n { MIN_PASS_LENGTH: MIN_PASS_LENGTH },\n ]),\n 4000\n );\n if (strPass !== strPassRetype)\n return createAlert('warning', ALERTS.PASSWORD_DOESNT_MATCH, 2250);\n\n // If this wallet is already encrypted, then we'll check for the current password and ensure it decrypts properly too\n if (await hasEncryptedWallet()) {\n // Grab the pass, and wipe the dialog immediately\n const strCurrentPass = doms.domEncryptPasswordCurrent.value;\n doms.domEncryptPasswordCurrent.value = '';\n\n // If the decryption fails: we don't allow changing the password\n if (!(await decryptWallet(strCurrentPass))) return;\n }\n\n // Encrypt the wallet using the new password\n await wallet.encryptWallet(strPass);\n createAlert('success', ALERTS.NEW_PASSWORD_SUCCESS, 5500);\n\n // Hide and reset the encryption modal\n $('#encryptWalletModal').modal('hide');\n doms.domEncryptPasswordFirst.value = '';\n doms.domEncryptPasswordSecond.value = '';\n\n // Display the 'Unlock/Lock Wallet' buttons accordingly based on state\n doms.domWipeWallet.hidden = wallet.isViewOnly();\n doms.domRestoreWallet.hidden = !wallet.isViewOnly();\n\n // Update the encryption UI (changes to \"Change Password\" now)\n await updateEncryptionGUI(true);\n}\n\n/** Update the \"Encrypt Wallet\" / \"Change Password\" dialog to match the current wallet state */\nexport async function updateEncryptionGUI(fEncrypted = null) {\n // If no param is provided, check if a wallet exists in the database\n if (fEncrypted === null) {\n fEncrypted = await hasEncryptedWallet();\n }\n // If the wallet is encrypted, we display a \"Current Password\" input in the Encryption dialog, otherwise, only accept New Passwords\n doms.domEncryptPasswordCurrent.style.display = fEncrypted ? '' : 'none';\n // And we adjust the displays to accomodate the mode as well\n doms.domEncryptWalletLabel.innerText = fEncrypted\n ? translation.changePassword\n : translation.encryptWallet;\n doms.domChangePasswordContainer.style.display = fEncrypted ? '' : 'none';\n}\n\nexport async function toggleExportUI() {\n if (!exportHidden) {\n if (await hasEncryptedWallet()) {\n const { encWif } = await (\n await Database.getInstance()\n ).getAccount();\n doms.domExportPrivateKey.innerHTML = encWif;\n exportHidden = true;\n } else {\n if (wallet.isViewOnly()) {\n exportHidden = false;\n } else {\n doms.domExportPrivateKey.innerHTML =\n wallet.getMasterKey().keyToBackup;\n exportHidden = true;\n }\n }\n } else {\n doms.domExportPrivateKey.innerHTML = '';\n exportHidden = false;\n }\n}\n\nexport function checkVanity() {\n var e = event || window.event; // get event object\n var key = e.keyCode || e.which; // get key cross-browser\n var char = String.fromCharCode(key).trim(); // convert key to char\n if (char.length == 0) return;\n\n // Ensure the input is base58 compatible\n if (!MAP_B58.toLowerCase().includes(char.toLowerCase())) {\n if (e.preventDefault) e.preventDefault();\n e.returnValue = false;\n return createAlert(\n 'warning',\n tr(ALERTS.UNSUPPORTED_CHARACTER, [{ char: char }]),\n 3500\n );\n }\n}\n\nlet isVanityGenerating = false;\nconst arrWorkers = [];\nlet vanUiUpdater;\n\nfunction stopSearch() {\n isVanityGenerating = false;\n for (let thread of arrWorkers) {\n thread.terminate();\n }\n while (arrWorkers.length) arrWorkers.pop();\n doms.domPrefix.disabled = false;\n doms.domVanityUiButtonTxt.innerText = translation.dCardTwoButton;\n clearInterval(vanUiUpdater);\n}\n\nexport async function generateVanityWallet() {\n if (isVanityGenerating) return stopSearch();\n if (typeof Worker === 'undefined')\n return createAlert('error', ALERTS.UNSUPPORTED_WEBWORKERS, 7500);\n // Generate a vanity address with the given prefix\n if (\n doms.domPrefix.value.length === 0 ||\n doms.domPrefix.style.display === 'none'\n ) {\n // No prefix, display the intro!\n doms.domPrefix.style.display = 'block';\n setTimeout(() => {\n doms.domPrefix.style.opacity = '1';\n }, 100);\n doms.domPrefix.focus();\n } else {\n // Remove spaces from prefix\n doms.domPrefix.value = doms.domPrefix.value.replace(/ /g, '');\n\n // Cache a lowercase equivilent for lower-entropy comparisons (a case-insensitive search is ALOT faster!) and strip accidental spaces\n const nInsensitivePrefix = doms.domPrefix.value.toLowerCase();\n const nPrefixLen = nInsensitivePrefix.length;\n\n // Ensure the input is base58 compatible\n for (const char of doms.domPrefix.value) {\n if (!MAP_B58.toLowerCase().includes(char.toLowerCase()))\n return createAlert(\n 'warning',\n tr(ALERTS.UNSUPPORTED_CHARACTER, [{ char: char }]),\n 3500\n );\n // We also don't want users to be mining addresses for years... so cap the letters to four until the generator is more optimized\n if (doms.domPrefix.value.length > 5)\n return createAlert(\n 'warning',\n tr(ALERTS.UNSUPPORTED_CHARACTER, [{ char: char }]),\n 3500\n );\n }\n isVanityGenerating = true;\n doms.domPrefix.disabled = true;\n let attempts = 0;\n\n // Setup workers\n const nThreads = Math.max(\n Math.floor(window.navigator.hardwareConcurrency * 0.75),\n 1\n );\n console.log('Spawning ' + nThreads + ' vanity search threads!');\n while (arrWorkers.length < nThreads) {\n arrWorkers.push(\n new Worker(new URL('./vanitygen_worker.js', import.meta.url))\n );\n const checkResult = (data) => {\n attempts++;\n if (\n data.pub.substr(1, nPrefixLen).toLowerCase() ==\n nInsensitivePrefix\n ) {\n importWallet({\n newWif: data.priv,\n fRaw: true,\n });\n stopSearch();\n return console.log(\n 'VANITY: Found an address after ' +\n attempts +\n ' attempts!'\n );\n }\n };\n\n arrWorkers[arrWorkers.length - 1].onmessage = (event) =>\n checkResult(event.data);\n arrWorkers[arrWorkers.length - 1].postMessage(\n cChainParams.current.PUBKEY_ADDRESS\n );\n }\n\n // GUI Updater\n doms.domVanityUiButtonTxt.innerText =\n 'Stop (Searched ' + attempts.toLocaleString('en-GB') + ' keys)';\n vanUiUpdater = setInterval(() => {\n doms.domVanityUiButtonTxt.innerText =\n 'Stop (Searched ' + attempts.toLocaleString('en-GB') + ' keys)';\n }, 200);\n }\n}\n\n/**\n * Sweep an address to our own wallet, spending all it's UTXOs without change\n * @param {Array} arrUTXOs - The UTXOs belonging to the address to sweep\n * @param {LegacyMasterKey} sweepingMasterKey - The address to sweep from\n * @param {number} nFixedFee - An optional fixed satoshi fee\n * @returns {Promise} - TXID on success, false or error on failure\n */\nexport async function sweepAddress(arrUTXOs, sweepingMasterKey, nFixedFee = 0) {\n const cTx = new bitjs.transaction();\n\n // Load all UTXOs as inputs\n let nTotal = 0;\n for (const cUTXO of arrUTXOs) {\n nTotal += cUTXO.sats;\n cTx.addinput({\n txid: cUTXO.id,\n index: cUTXO.vout,\n script: cUTXO.script,\n path: cUTXO.path,\n });\n }\n\n // Use a given fixed fee, or use the network fee if unspecified\n const nFee = nFixedFee || getNetwork().getFee(cTx.serialize().length);\n\n // Use a new address from our wallet to sweep the UTXOs in to\n const strAddress = (await getNewAddress(true, false))[0];\n\n // Sweep the full funds amount, minus the fee, leaving no change from any sweeped UTXOs\n cTx.addoutput(strAddress, (nTotal - nFee) / COIN);\n\n // Sign using the given Master Key, then broadcast the sweep, returning the TXID (or a failure)\n const sign = await signTransaction(cTx, sweepingMasterKey);\n return await getNetwork().sendTransaction(sign);\n}\n\nexport function toggleDropDown(id) {\n const domID = document.getElementById(id);\n domID.style.display = domID.style.display === 'block' ? 'none' : 'block';\n}\n\nexport function isMasternodeUTXO(cUTXO, cMasternode) {\n if (cMasternode?.collateralTxId) {\n const { collateralTxId, outidx } = cMasternode;\n return collateralTxId === cUTXO.id && cUTXO.vout === outidx;\n } else {\n return false;\n }\n}\n\n/**\n * Creates a GUI popup for the user to check or customise their Cold Address\n */\nexport async function guiSetColdStakingAddress() {\n // Use the Account's cold address, otherwise use the network's default Cold Staking address\n const strColdAddress = await wallet.getColdStakingAddress();\n\n // Display the popup and await a response\n if (\n await confirmPopup({\n title: translation.popupSetColdAddr,\n html: `\n

\n \n ${translation.popupColdStakeNote}\n \n

\n `,\n })\n ) {\n // Check the Cold Address input\n const strNewColdAddress = document\n .getElementById('newColdAddress')\n .value.trim();\n const fValidCold = isColdAddress(strNewColdAddress);\n if (\n !strNewColdAddress ||\n (strNewColdAddress !== strColdAddress && fValidCold)\n ) {\n // If the input is empty: we'll default back to this network's Cold Staking address (effectively a 'reset')\n const cDB = await Database.getInstance();\n const cAccount = await cDB.getAccount();\n\n // Save to DB (allowDeletion enabled to allow for resetting the Cold Address)\n cAccount.coldAddress = strNewColdAddress;\n await cDB.updateAccount(cAccount, true);\n\n createAlert('info', ALERTS.STAKE_ADDR_SET, 5000);\n return true;\n } else if (!fValidCold) {\n createAlert('warning', ALERTS.STAKE_ADDR_BAD, 2500);\n return false;\n }\n } else {\n return false;\n }\n}\n\nexport async function wipePrivateData() {\n const isEncrypted = await hasEncryptedWallet();\n const title = isEncrypted\n ? translation.popupWalletLock\n : translation.popupWalletWipe;\n const html = isEncrypted\n ? translation.popupWalletLockNote\n : translation.popupWalletWipeNote;\n if (\n await confirmPopup({\n title,\n html,\n })\n ) {\n wallet.wipePrivateData();\n doms.domWipeWallet.hidden = true;\n if (isEncrypted) {\n doms.domRestoreWallet.hidden = false;\n }\n }\n}\n\n/**\n * Prompt the user in the GUI to unlock their wallet\n * @param {string} strReason - An optional reason for the unlock\n * @returns {Promise} - If the unlock was successful or rejected\n */\nexport async function restoreWallet(strReason = '') {\n if (wallet.isHardwareWallet()) return true;\n // Build up the UI elements based upon conditions for the unlock prompt\n let strHTML = '';\n\n // If there's a reason given; display it as a sub-text\n strHTML += `

${strReason}

`;\n\n // Prompt the user\n if (\n await confirmPopup({\n title: translation.walletUnlock,\n html: `${strHTML}`,\n })\n ) {\n // Fetch the password from the prompt, and immediately destroy the prompt input\n const domPassword = document.getElementById('restoreWalletPassword');\n const strPassword = domPassword.value;\n domPassword.value = '';\n\n // Attempt to unlock the wallet with the provided password\n if (await decryptWallet(strPassword)) {\n doms.domRestoreWallet.hidden = true;\n doms.domWipeWallet.hidden = false;\n // Wallet is unlocked!\n return true;\n } else {\n // Password is invalid\n return false;\n }\n } else {\n // User rejected the unlock\n return false;\n }\n}\n\n/** A lock to prevent rendering the Governance Dashboard multiple times */\nlet fRenderingGovernance = false;\n\n/**\n * Fetch Governance data and re-render the Governance UI\n */\nexport async function updateGovernanceTab() {\n if (fRenderingGovernance) return;\n fRenderingGovernance = true;\n\n // Setup the Superblock countdown (if not already done), no need to block thread with await, either.\n let cNet = getNetwork();\n\n // When switching to mainnet from testnet or vise versa, you ned to use an await on getBlockCount() or cNet.cachedBlockCount returns 0\n if (!isTestnetLastState == cChainParams.current.isTestnet) {\n // Reset flipdown\n governanceFlipdown = null;\n doms.domFlipdown.innerHTML = '';\n\n // Get new network blockcount\n await getNetwork().getBlockCount();\n cNet = getNetwork();\n }\n\n // Update governance counter when testnet/mainnet has been switched\n if (!governanceFlipdown && cNet.cachedBlockCount > 0) {\n Masternode.getNextSuperblock().then((nSuperblock) => {\n // The estimated time to the superblock (using the block target and remaining blocks)\n const nTimestamp =\n Date.now() / 1000 + (nSuperblock - cNet.cachedBlockCount) * 60;\n governanceFlipdown = new FlipDown(nTimestamp).start();\n });\n isTestnetLastState = cChainParams.current.isTestnet;\n }\n\n // Fetch all proposals from the network\n const arrProposals = await Masternode.getProposals({\n fAllowFinished: false,\n });\n\n /* Sort proposals into two categories\n - Standard (Proposal is either new with <100 votes, or has a healthy vote count)\n - Contested (When a proposal may be considered spam, malicious, or simply highly contestable)\n */\n const arrStandard = arrProposals.filter(\n (a) => a.Yeas + a.Nays < 100 || a.Ratio > 0.25\n );\n const arrContested = arrProposals.filter(\n (a) => a.Yeas + a.Nays >= 100 && a.Ratio <= 0.25\n );\n\n // Render Proposals\n await Promise.all([\n renderProposals(arrStandard, false),\n renderProposals(arrContested, true),\n ]);\n\n // Remove lock\n fRenderingGovernance = false;\n}\n\n/**\n * @typedef {Object} ProposalCache\n * @property {number} nSubmissionHeight - The submission height of the proposal.\n * @property {string} txid - The transaction ID of the proposal (string).\n * @property {boolean} fFetching - Indicates whether the proposal is currently being fetched or not.\n */\n\n/**\n * An array of Proposal Finalisation caches\n * @type {Array}\n */\nconst arrProposalFinalisationCache = [];\n\n/**\n * Asynchronously wait for a Proposal Tx to confirm, then cache the height.\n *\n * Do NOT await unless you want to lock the thread for a long time.\n * @param {ProposalCache} cProposalCache - The proposal cache to wait for\n * @returns {Promise} Returns `true` once the block height is cached\n */\nasync function waitForSubmissionBlockHeight(cProposalCache) {\n let nHeight = null;\n\n // Wait in a permanent throttled loop until we successfully fetch the block\n const cNet = getNetwork();\n while (true) {\n // If a proposal is already fetching, then consequtive calls will be rejected\n cProposalCache.fFetching = true;\n\n // Attempt to fetch the submission Tx (may not exist yet!)\n let cTx = null;\n try {\n cTx = await cNet.getTxInfo(cProposalCache.txid);\n } catch (_) {}\n\n if (!cTx || !cTx.blockHeight) {\n // Didn't get the TX, throttle the thread by sleeping for a bit, then try again.\n await sleep(30000);\n } else {\n nHeight = cTx.blockHeight;\n break;\n }\n }\n\n // Update the proposal finalisation cache\n cProposalCache.nSubmissionHeight = nHeight;\n\n return true;\n}\n\n/**\n * Create a Status String for a proposal's finalisation status\n * @param {ProposalCache} cPropCache - The proposal cache to check\n * @returns {string} The string status, for display purposes\n */\nfunction getProposalFinalisationStatus(cPropCache) {\n const cNet = getNetwork();\n // Confirmations left until finalisation, by network consensus\n const nConfsLeft =\n cPropCache.nSubmissionHeight +\n cChainParams.current.proposalFeeConfirmRequirement -\n cNet.cachedBlockCount;\n\n if (cPropCache.nSubmissionHeight === 0 || cNet.cachedBlockCount === 0) {\n return translation.proposalFinalisationConfirming;\n } else if (nConfsLeft > 0) {\n return (\n nConfsLeft +\n ' block' +\n (nConfsLeft === 1 ? '' : 's') +\n ' ' +\n translation.proposalFinalisationRemaining\n );\n } else if (Math.abs(nConfsLeft) >= cChainParams.current.budgetCycleBlocks) {\n return translation.proposalFinalisationExpired;\n } else {\n return translation.proposalFinalisationReady;\n }\n}\n\n/**\n *\n * @param {Object} cProposal - A local proposal to add to the cache tracker\n * @returns {ProposalCache} - The finalisation cache object pointer of the local proposal\n */\nfunction addProposalToFinalisationCache(cProposal) {\n // If it exists, return the existing cache\n /** @type ProposalCache */\n let cPropCache = arrProposalFinalisationCache.find(\n (a) => a.txid === cProposal.mpw.txid\n );\n if (cPropCache) return cPropCache;\n\n // Create a new cache\n cPropCache = {\n nSubmissionHeight: 0,\n txid: cProposal.mpw.txid,\n fFetching: false,\n };\n arrProposalFinalisationCache.push(cPropCache);\n\n // Return the object 'pointer' in the array for further updating\n return cPropCache;\n}\n\n/**\n * Render Governance proposal objects to a given Proposal category\n * @param {Array} arrProposals - The proposals to render\n * @param {boolean} fContested - The proposal category\n */\nasync function renderProposals(arrProposals, fContested) {\n // Set the total budget\n doms.domTotalGovernanceBudget.innerText = (\n cChainParams.current.maxPayment / COIN\n ).toLocaleString('en-gb');\n\n // Update total budget in user's currency\n const nPrice = await cMarket.getPrice(strCurrency);\n const nCurrencyValue = (cChainParams.current.maxPayment / COIN) * nPrice;\n const { nValue, cLocale } = optimiseCurrencyLocale(nCurrencyValue);\n doms.domTotalGovernanceBudgetValue.innerHTML =\n nValue.toLocaleString('en-gb', cLocale) +\n ' ' +\n strCurrency.toUpperCase() +\n '';\n\n // Select the table based on the proposal category\n const domTable = fContested\n ? doms.domGovProposalsContestedTableBody\n : doms.domGovProposalsTableBody;\n\n // Render the proposals in the relevent table\n const database = await Database.getInstance();\n const cMasternode = await database.getMasternode();\n\n if (!fContested) {\n const localProposals =\n (await database.getAccount())?.localProposals?.map((p) => {\n return {\n Name: p.name,\n URL: p.url,\n PaymentAddress: p.address,\n MonthlyPayment: p.monthlyPayment / COIN,\n RemainingPaymentCount: p.nPayments,\n TotalPayment: p.nPayments * (p.monthlyPayment / COIN),\n Yeas: 0,\n Nays: 0,\n local: true,\n Ratio: 0,\n IsEstablished: false,\n mpw: p,\n };\n }) || [];\n arrProposals = localProposals.concat(arrProposals);\n }\n arrProposals = await Promise.all(\n arrProposals.map(async (p) => {\n return {\n YourVote:\n cMasternode && p.Hash\n ? await cMasternode.getVote(p.Name, p.Hash)\n : null,\n ...p,\n };\n })\n );\n\n // Fetch the Masternode count for proposal status calculations\n const cMasternodes = await Masternode.getMasternodeCount();\n\n let totalAllocatedAmount = 0;\n\n // Wipe the current table and start rendering proposals\n let i = 0;\n domTable.innerHTML = '';\n for (const cProposal of arrProposals) {\n const domRow = domTable.insertRow();\n\n const domStatus = domRow.insertCell();\n domStatus.classList.add('governStatusCol');\n if (domTable.id == 'proposalsTableBody') {\n domStatus.setAttribute(\n 'onclick',\n `if(document.getElementById('governMob${i}').classList.contains('d-none')) { document.getElementById('governMob${i}').classList.remove('d-none'); } else { document.getElementById('governMob${i}').classList.add('d-none'); }`\n );\n } else if (domTable.id == 'proposalsContestedTableBody') {\n domStatus.setAttribute(\n 'onclick',\n `if(document.getElementById('governMobCon${i}').classList.contains('d-none')) { document.getElementById('governMobCon${i}').classList.remove('d-none'); } else { document.getElementById('governMobCon${i}').classList.add('d-none'); }`\n );\n }\n\n // Add border radius to last row\n if (arrProposals.length - 1 == i) {\n domStatus.classList.add('bblr-7p');\n }\n\n // Net Yes calculation\n const { Yeas, Nays } = cProposal;\n const nNetYes = Yeas - Nays;\n const nNetYesPercent = (nNetYes / cMasternodes.enabled) * 100;\n\n // Proposal Status calculation\n const nRequiredVotes = cMasternodes.enabled / 10;\n let strStatus = '';\n let strFundingStatus = '';\n\n // Proposal Status calculations\n if (nNetYes < nRequiredVotes) {\n // Scenario 1: Not enough votes\n strStatus = translation.proposalFailing;\n strFundingStatus = translation.proposalNotFunded;\n } else if (!cProposal.IsEstablished) {\n // Scenario 2: Enough votes, but not established\n strStatus = translation.proposalFailing;\n strFundingStatus = translation.proposalTooYoung;\n } else {\n // Scenario 3: Enough votes, and established\n strStatus = translation.proposalPassing;\n strFundingStatus = translation.proposalFunded;\n }\n\n // Funding Status and allocation calculations\n if (cProposal.local) {\n // Check the finalisation cache\n const cPropCache = addProposalToFinalisationCache(cProposal);\n if (!cPropCache.fFetching) {\n waitForSubmissionBlockHeight(cPropCache).then(\n updateGovernanceTab\n );\n }\n const strLocalStatus = getProposalFinalisationStatus(cPropCache);\n const finalizeButton = document.createElement('button');\n finalizeButton.className = 'pivx-button-small';\n finalizeButton.innerHTML = '';\n\n if (\n strLocalStatus === translation.proposalFinalisationReady ||\n strLocalStatus === translation.proposalFinalisationExpired\n ) {\n finalizeButton.addEventListener('click', async () => {\n const result = await Masternode.finalizeProposal(\n cProposal.mpw\n );\n\n const deleteProposal = async () => {\n // Fetch Account\n const account = await database.getAccount();\n\n // Find index of Account local proposal to remove\n const nProposalIndex = account.localProposals.findIndex(\n (p) => p.txid === cProposal.mpw.txid\n );\n\n // If found, remove the proposal and update the account with the modified localProposals array\n if (nProposalIndex > -1) {\n // Remove our proposal from it\n account.localProposals.splice(nProposalIndex, 1);\n\n // Update the DB\n await database.updateAccount(account, true);\n }\n };\n\n if (result.ok) {\n deleteProposal();\n // Create a prompt showing the finalisation success, vote hash, and further details\n confirmPopup({\n title: translation.PROPOSAL_FINALISED + ' 🚀',\n html: `

${\n translation.popupProposalFinalisedNote\n }

${\n translation.popupProposalVoteHash\n }
${sanitizeHTML(\n result.hash\n )}

${\n translation.popupProposalFinalisedSignoff\n } 👋

`,\n hideConfirm: true,\n });\n updateGovernanceTab();\n } else {\n if (result.err === 'unconfirmed') {\n createAlert(\n 'warning',\n ALERTS.PROPOSAL_UNCONFIRMED,\n 5000\n );\n } else if (result.err === 'invalid') {\n createAlert(\n 'warning',\n ALERTS.PROPOSAL_EXPIRED,\n 5000\n );\n deleteProposal();\n updateGovernanceTab();\n } else {\n createAlert(\n 'warning',\n ALERTS.PROPOSAL_FINALISE_FAIL\n );\n }\n }\n });\n } else {\n finalizeButton.style.opacity = 0.5;\n finalizeButton.style.cursor = 'default';\n }\n\n domStatus.innerHTML = `\n \n ${strLocalStatus}
\n
\n \n \n `;\n domStatus.appendChild(finalizeButton);\n } else {\n if (domTable.id == 'proposalsTableBody') {\n if (\n cProposal.IsEstablished &&\n nNetYes >= nRequiredVotes &&\n totalAllocatedAmount + cProposal.MonthlyPayment <=\n cChainParams.current.maxPayment / COIN\n ) {\n strFundingStatus = translation.proposalFunded;\n totalAllocatedAmount += cProposal.MonthlyPayment;\n }\n }\n\n // Figure out the colour of the Status, if any (using CSS class `votes[Yes/No]`)\n const strColourClass =\n strStatus === translation.proposalPassing ? 'Yes' : 'No';\n\n domStatus.innerHTML = `\n \n ${strStatus}
\n (${strFundingStatus})
\n
\n \n ${nNetYesPercent.toFixed(1)}%
\n ${translation.proposalNetYes}\n
\n \n \n `;\n }\n\n // Name, Payment Address and URL hyperlink\n const domNameAndURL = domRow.insertCell();\n domNameAndURL.style = 'vertical-align: middle;';\n\n // IMPORTANT: Sanitise all of our HTML or a rogue server or malicious proposal could perform a cross-site scripting attack\n domNameAndURL.innerHTML = `${sanitizeHTML(\n cProposal.Name\n )}
${sanitizeHTML(\n cProposal.PaymentAddress.slice(0, 6) + '...'\n )}`;\n\n // Convert proposal amount to user's currency\n const nProposalValue = parseInt(cProposal.MonthlyPayment) * nPrice;\n const { nValue } = optimiseCurrencyLocale(nProposalValue);\n const strProposalCurrency = nValue.toLocaleString('en-gb', cLocale);\n\n // Payment Schedule and Amounts\n const domPayments = domRow.insertCell();\n domPayments.classList.add('for-desktop');\n domPayments.style = 'vertical-align: middle;';\n domPayments.innerHTML = `${sanitizeHTML(\n parseInt(cProposal.MonthlyPayment).toLocaleString('en-gb', ',', '.')\n )} ${\n cChainParams.current.TICKER\n }
\n (${strProposalCurrency} ${strCurrency.toUpperCase()})
\n\n ${sanitizeHTML(\n cProposal['RemainingPaymentCount']\n )} ${translation.proposalPaymentsRemaining} ${sanitizeHTML(\n parseInt(cProposal.TotalPayment).toLocaleString('en-gb', ',', '.')\n )} ${cChainParams.current.TICKER} ${\n translation.proposalPaymentTotal\n }`;\n\n // Vote Counts and Consensus Percentages\n const domVoteCounters = domRow.insertCell();\n domVoteCounters.classList.add('for-desktop');\n domVoteCounters.style = 'vertical-align: middle;';\n\n const nLocalPercent = cProposal.Ratio * 100;\n domVoteCounters.innerHTML = `${parseFloat(\n nLocalPercent\n ).toLocaleString(\n 'en-gb',\n { minimumFractionDigits: 0, maximumFractionDigits: 1 },\n ',',\n '.'\n )}%
\n
${sanitizeHTML(\n Yeas\n )}
/\n
${sanitizeHTML(\n Nays\n )}
\n `;\n\n // Voting Buttons for Masternode owners (MNOs)\n let voteBtn;\n if (cProposal.local) {\n const domVoteBtns = domRow.insertCell();\n domVoteBtns.classList.add('for-desktop');\n domVoteBtns.style = 'vertical-align: middle;';\n voteBtn = '';\n } else {\n let btnYesClass = 'pivx-button-small';\n let btnNoClass = 'pivx-button-small';\n if (cProposal.YourVote) {\n if (cProposal.YourVote === 1) {\n btnYesClass += ' pivx-button-big-yes-gov';\n } else {\n btnNoClass += ' pivx-button-big-no-gov';\n }\n }\n const domVoteBtns = domRow.insertCell();\n domVoteBtns.style = 'vertical-align: middle;';\n const domNoBtn = document.createElement('button');\n domNoBtn.className = btnNoClass;\n domNoBtn.innerText = translation.no;\n domNoBtn.onclick = () => govVote(cProposal.Hash, 2);\n\n const domYesBtn = document.createElement('button');\n domYesBtn.className = btnYesClass;\n domYesBtn.innerText = translation.yes;\n domYesBtn.onclick = () => govVote(cProposal.Hash, 1);\n\n // Add border radius to last row\n if (arrProposals.length - 1 == i) {\n domVoteBtns.classList.add('bbrr-7p');\n }\n\n domVoteBtns.classList.add('for-desktop');\n domVoteBtns.appendChild(domNoBtn);\n domVoteBtns.appendChild(domYesBtn);\n\n domNoBtn.setAttribute(\n 'onclick',\n `MPW.govVote('${cProposal.Hash}', 2)`\n );\n domYesBtn.setAttribute(\n 'onclick',\n `MPW.govVote('${cProposal.Hash}', 1);`\n );\n voteBtn = domNoBtn.outerHTML + domYesBtn.outerHTML;\n }\n\n // Create extended row for mobile\n const mobileDomRow = domTable.insertRow();\n const mobileExtended = mobileDomRow.insertCell();\n mobileExtended.style = 'vertical-align: middle;';\n if (domTable.id == 'proposalsTableBody') {\n mobileExtended.id = `governMob${i}`;\n } else if (domTable.id == 'proposalsContestedTableBody') {\n mobileExtended.id = `governMobCon${i}`;\n }\n mobileExtended.colSpan = '2';\n mobileExtended.classList.add('text-left');\n mobileExtended.classList.add('d-none');\n mobileExtended.classList.add('for-mobile');\n mobileExtended.innerHTML = `\n
\n
\n
${translation.govTablePayment}\n
\n
\n ${sanitizeHTML(\n parseInt(cProposal.MonthlyPayment).toLocaleString(\n 'en-gb',\n ',',\n '.'\n )\n )} ${\n cChainParams.current.TICKER\n } ${strProposalCurrency}\n \n ${sanitizeHTML(\n cProposal['RemainingPaymentCount']\n )} ${translation.proposalPaymentsRemaining} ${sanitizeHTML(\n parseInt(cProposal.TotalPayment).toLocaleString('en-gb', ',', '.')\n )} ${cChainParams.current.TICKER} ${\n translation.proposalPaymentTotal\n }\n
\n
\n
\n
\n
\n
${translation.govTableVotes}\n
\n
\n ${parseFloat(nLocalPercent).toLocaleString(\n 'en-gb',\n { minimumFractionDigits: 0, maximumFractionDigits: 1 },\n ',',\n '.'\n )}%\n
${sanitizeHTML(\n Yeas\n )}
/\n
${sanitizeHTML(\n Nays\n )}
\n
\n
\n
\n
\n
\n
${translation.govTableVote}\n
\n
\n ${voteBtn}\n
\n
`;\n\n i++;\n }\n\n // Show allocated budget\n if (domTable.id == 'proposalsTableBody') {\n const strAlloc = sanitizeHTML(\n totalAllocatedAmount.toLocaleString('en-gb')\n );\n doms.domAllocatedGovernanceBudget.innerHTML = strAlloc;\n doms.domAllocatedGovernanceBudget2.innerHTML = strAlloc;\n\n // Update allocated budget in user's currency\n const nCurrencyValue = totalAllocatedAmount * nPrice;\n const { nValue } = optimiseCurrencyLocale(nCurrencyValue);\n const strAllocCurrency =\n nValue.toLocaleString('en-gb', cLocale) +\n ' ' +\n strCurrency.toUpperCase() +\n '';\n doms.domAllocatedGovernanceBudgetValue.innerHTML = strAllocCurrency;\n doms.domAllocatedGovernanceBudgetValue2.innerHTML = strAllocCurrency;\n }\n}\n\nexport async function updateMasternodeTab() {\n //TODO: IN A FUTURE ADD MULTI-MASTERNODE SUPPORT BY SAVING MNs with which you logged in the past.\n // Ensure a wallet is loaded\n doms.domMnTextErrors.innerHTML = '';\n doms.domAccessMasternode.style.display = 'none';\n doms.domCreateMasternode.style.display = 'none';\n doms.domMnDashboard.style.display = 'none';\n\n if (!wallet.isLoaded()) {\n doms.domMnTextErrors.innerHTML =\n 'Please ' +\n ((await hasEncryptedWallet()) ? 'unlock' : 'import') +\n ' your COLLATERAL WALLET first.';\n return;\n }\n\n if (!mempool.getConfirmed().length) {\n doms.domMnTextErrors.innerHTML =\n 'Your wallet is empty or still loading, re-open the tab in a few seconds!';\n return;\n }\n\n const database = await Database.getInstance();\n\n let cMasternode = await database.getMasternode();\n // If the collateral is missing (spent, or switched wallet) then remove the current MN\n if (cMasternode) {\n if (\n !mempool\n .getConfirmed()\n .find((utxo) => isMasternodeUTXO(utxo, cMasternode))\n ) {\n database.removeMasternode();\n cMasternode = null;\n }\n }\n\n doms.domControlMasternode.style.display = cMasternode ? 'block' : 'none';\n\n // first case: the wallet is not HD and it is not hardware, so in case the wallet has collateral the user can check its status and do simple stuff like voting\n if (!wallet.isHD()) {\n doms.domMnAccessMasternodeText.innerHTML =\n doms.masternodeLegacyAccessText;\n doms.domMnTxId.style.display = 'none';\n // Find the first UTXO matching the expected collateral size\n const cCollaUTXO = mempool\n .getConfirmed()\n .find(\n (cUTXO) => cUTXO.sats === cChainParams.current.collateralInSats\n );\n const balance = getBalance(false);\n if (cCollaUTXO) {\n if (cMasternode) {\n await refreshMasternodeData(cMasternode);\n doms.domMnDashboard.style.display = '';\n } else {\n doms.domMnTxId.style.display = 'none';\n doms.domAccessMasternode.style.display = 'block';\n }\n } else if (balance < cChainParams.current.collateralInSats) {\n // The user needs more funds\n doms.domMnTextErrors.innerHTML =\n 'You need ' +\n (cChainParams.current.collateralInSats - balance) / COIN +\n ' more ' +\n cChainParams.current.TICKER +\n ' to create a Masternode!';\n } else {\n // The user has the funds, but not an exact collateral, prompt for them to create one\n doms.domCreateMasternode.style.display = 'block';\n doms.domMnTxId.style.display = 'none';\n doms.domMnTxId.innerHTML = '';\n }\n } else {\n doms.domMnTxId.style.display = 'none';\n doms.domMnTxId.innerHTML = '';\n doms.domMnAccessMasternodeText.innerHTML = doms.masternodeHDAccessText;\n\n // First UTXO for each address in HD\n const mapCollateralAddresses = new Map();\n\n // Aggregate all valid Masternode collaterals into a map of Address <--> Collateral\n for (const cUTXO of mempool.getConfirmed()) {\n if (cUTXO.sats !== cChainParams.current.collateralInSats) continue;\n mapCollateralAddresses.set(cUTXO.path, cUTXO);\n }\n const fHasCollateral = mapCollateralAddresses.size > 0;\n\n // If there's no loaded MN, but valid collaterals, display the configuration screen\n if (!cMasternode && fHasCollateral) {\n doms.domMnTxId.style.display = 'block';\n doms.domAccessMasternode.style.display = 'block';\n\n for (const [key] of mapCollateralAddresses) {\n const option = document.createElement('option');\n option.value = key;\n option.innerText = await wallet.getAddress(key);\n doms.domMnTxId.appendChild(option);\n }\n }\n\n // If there's no collateral found, display the creation UI\n if (!fHasCollateral) doms.domCreateMasternode.style.display = 'block';\n\n // If we have a collateral and a loaded Masternode, display the Dashboard\n if (fHasCollateral && cMasternode) {\n // Refresh the display\n refreshMasternodeData(cMasternode);\n doms.domMnDashboard.style.display = '';\n }\n }\n}\n\nasync function refreshMasternodeData(cMasternode, fAlert = false) {\n const cMasternodeData = await cMasternode.getFullData();\n if (debug) {\n console.log('---- NEW MASTERNODE DATA (Debug Mode) ----');\n console.log(cMasternodeData);\n console.log('---- END MASTERNODE DATA (Debug Mode) ----');\n }\n\n // If we have MN data available, update the dashboard\n if (cMasternodeData && cMasternodeData.status !== 'MISSING') {\n doms.domMnTextErrors.innerHTML = '';\n doms.domMnProtocol.innerText = `(${sanitizeHTML(\n cMasternodeData.version\n )})`;\n doms.domMnStatus.innerText = sanitizeHTML(cMasternodeData.status);\n doms.domMnNetType.innerText = sanitizeHTML(\n cMasternodeData.network.toUpperCase()\n );\n doms.domMnNetIP.innerText = cMasternode.addr;\n doms.domMnLastSeen.innerText = new Date(\n cMasternodeData.lastseen * 1000\n ).toLocaleTimeString();\n }\n\n if (cMasternodeData.status === 'MISSING') {\n doms.domMnTextErrors.innerHTML =\n 'Masternode is currently OFFLINE';\n if (!wallet.isViewOnly()) {\n createAlert('warning', ALERTS.MN_OFFLINE_STARTING, 6000);\n // try to start the masternode\n const started = await cMasternode.start();\n if (started) {\n doms.domMnTextErrors.innerHTML = ALERTS.MN_STARTED;\n createAlert('success', ALERTS.MN_STARTED_ONLINE_SOON, 6000);\n const database = await Database.getInstance();\n await database.addMasternode(cMasternode);\n } else {\n doms.domMnTextErrors.innerHTML = ALERTS.MN_START_FAILED;\n createAlert('warning', ALERTS.MN_START_FAILED, 6000);\n }\n }\n } else if (\n cMasternodeData.status === 'ENABLED' ||\n cMasternodeData.status === 'PRE_ENABLED'\n ) {\n if (fAlert)\n createAlert(\n 'success',\n `${ALERTS.MN_STATUS_IS} ${sanitizeHTML(\n cMasternodeData.status\n )} `,\n 6000\n );\n const database = await Database.getInstance();\n await database.addMasternode(cMasternode);\n } else if (cMasternodeData.status === 'REMOVED') {\n const state = cMasternodeData.status;\n doms.domMnTextErrors.innerHTML = tr(ALERTS.MN_STATE, [\n { state: state },\n ]);\n if (fAlert)\n createAlert(\n 'warning',\n tr(ALERTS.MN_STATE, [{ state: state }]),\n 6000\n );\n } else {\n // connection problem\n doms.domMnTextErrors.innerHTML = ALERTS.MN_CANT_CONNECT;\n if (fAlert) createAlert('warning', ALERTS.MN_CANT_CONNECT, 6000);\n }\n\n // Return the data in case the caller needs additional context\n return cMasternodeData;\n}\n\nexport async function createProposal() {\n // Must have a wallet\n if (!wallet.isLoaded()) {\n return createAlert('warning', ALERTS.PROPOSAL_IMPORT_FIRST, 4500);\n }\n // Wallet must be encrypted\n if (!(await hasEncryptedWallet())) {\n return createAlert(\n 'warning',\n tr(translation.popupProposalEncryptFirst, [\n { button: translation.secureYourWallet },\n ]),\n 4500\n );\n }\n // Wallet must be unlocked\n if (\n wallet.isViewOnly() &&\n !(await restoreWallet(translation.walletUnlockProposal))\n ) {\n return;\n }\n // Must have enough funds\n if (getBalance() * COIN < cChainParams.current.proposalFee) {\n return createAlert('warning', ALERTS.PROPOSAL_NOT_ENOUGH_FUNDS, 4500);\n }\n\n // Create the popup, wait for the user to confirm or cancel\n const fConfirmed = await confirmPopup({\n title: `${translation.popupCreateProposal} (${\n translation.popupCreateProposalCost\n } ${cChainParams.current.proposalFee / COIN} ${\n cChainParams.current.TICKER\n })`,\n html: `
\n
\n
\n
\n
`,\n });\n\n // If the user cancelled, then we return\n if (!fConfirmed) return;\n\n const strTitle = document.getElementById('proposalTitle').value.trim();\n const strUrl = document.getElementById('proposalUrl').value.trim();\n const numCycles = parseInt(\n document.getElementById('proposalCycles').value.trim()\n );\n const numPayment = parseInt(\n document.getElementById('proposalPayment').value.trim()\n );\n\n // If Advanced Mode is enabled and an address is given, use the provided address, otherwise, generate a new one\n const strAddress =\n document.getElementById('proposalAddress').value.trim() ||\n (await wallet.getNewAddress())[0];\n const nextSuperblock = await Masternode.getNextSuperblock();\n const proposal = {\n name: strTitle,\n url: strUrl,\n nPayments: numCycles,\n start: nextSuperblock,\n address: strAddress,\n monthlyPayment: numPayment * COIN,\n };\n\n const isValid = Masternode.isValidProposal(proposal);\n if (!isValid.ok) {\n createAlert(\n 'warning',\n `${ALERTS.PROPOSAL_INVALID_ERROR} ${isValid.err}`,\n 7500\n );\n return;\n }\n\n const hash = Masternode.createProposalHash(proposal);\n const { ok, txid } = await createAndSendTransaction({\n address: hash,\n amount: cChainParams.current.proposalFee,\n isProposal: true,\n });\n if (ok) {\n proposal.txid = txid;\n const database = await Database.getInstance();\n\n // Fetch our Account, add the proposal to it\n const account = await database.getAccount();\n account.localProposals.push(proposal);\n\n // Update the DB\n await database.updateAccount(account);\n createAlert('success', translation.PROPOSAL_CREATED, 10000);\n updateGovernanceTab();\n }\n}\n\nexport async function refreshChainData() {\n const cNet = getNetwork();\n // If in offline mode: don't sync ANY data or connect to the internet\n if (!cNet.enabled)\n return console.warn(\n 'Offline mode active: For your security, the wallet will avoid ALL internet requests.'\n );\n if (!wallet.isLoaded()) return;\n\n // Fetch block count\n await cNet.getBlockCount();\n}\n\n// A safety mechanism enabled if the user attempts to leave without encrypting/saving their keys\nexport const beforeUnloadListener = (evt) => {\n evt.preventDefault();\n // Disable Save your wallet warning on unload\n createAlert('warning', ALERTS.SAVE_WALLET_PLEASE, 10000);\n // Most browsers ignore this nowadays, but still, keep it 'just incase'\n return (evt.returnValue = translation.BACKUP_OR_ENCRYPT_WALLET);\n};\n\n/**\n * @typedef {Object} SettingsDOM - An object that contains the DOM elements for settings pages.\n * @property {HTMLElement} btn - The button to switch to this setting type.\n * @property {HTMLElement} section - The container for this setting type.\n */\n\n/**\n * Returns a list of all pages and their DOM elements.\n *\n * This must be a function, since, the DOM elements are `undefined` until\n * after the startup sequence.\n *\n * Types are inferred.\n */\nfunction getSettingsPages() {\n return {\n /** @type {SettingsDOM} */\n wallet: {\n btn: doms.domWalletSettingsBtn,\n section: doms.domWalletSettings,\n },\n /** @type {SettingsDOM} */\n display: {\n btn: doms.domDisplaySettingsBtn,\n section: doms.domDisplaySettings,\n },\n };\n}\n\n/**\n * Switch between screens in the settings menu\n * @param {string} page - The name of the setting page to switch to\n */\nexport function switchSettings(page) {\n const SETTINGS = getSettingsPages();\n const { btn, section } = SETTINGS[page];\n\n Object.values(SETTINGS).forEach(({ section, btn }) => {\n // Set the slider to the proper location\n if (page == 'display') {\n doms.domDisplayDecimalsSlider.oninput = function () {\n doms.domDisplayDecimalsSliderDisplay.innerHTML = this.value;\n //let val = ((((doms.domDisplayDecimalsSlider.offsetWidth - 24) / 9) ) * parseInt(this.value));\n\n //doms.domDisplayDecimalsSliderDisplay.style.marginLeft = (val) + 'px';\n };\n\n // Triggers the input event\n setTimeout(\n () =>\n doms.domDisplayDecimalsSlider.dispatchEvent(\n new Event('input')\n ),\n 10\n );\n }\n // Hide all settings sections\n section.classList.add('d-none');\n // Make all buttons inactive\n btn.classList.remove('active');\n });\n\n // Show selected section and make its button active\n section.classList.remove('d-none');\n btn.classList.add('active');\n}\n\nfunction errorHandler(e) {\n const message = `${translation.unhandledException}
${sanitizeHTML(\n e.message || e.reason\n )}`;\n try {\n createAlert('warning', message);\n } catch (_) {\n // Something as gone wrong, so we fall back to the default alert\n // This can happen on early errors for example\n alert(message);\n }\n}\n\n// This code is ran in the vanity gen worker as well!\n// In which case, window would be not defined.\n// `if (window)` wouldn't work either because\n// window is not defined as opposed to undefined\ntry {\n window.addEventListener('error', errorHandler);\n window.addEventListener('unhandledrejection', errorHandler);\n} catch (_) {}\n","import {\n doms,\n getBalance,\n getStakingBalance,\n guiUpdateImportInput,\n mempool,\n refreshChainData,\n setDisplayForAllWalletOptions,\n updateEncryptionGUI,\n updateGovernanceTab,\n activityDashboard,\n stakingDashboard,\n} from './global.js';\nimport { wallet, hasEncryptedWallet, importWallet } from './wallet.js';\nimport { cChainParams } from './chain_params.js';\nimport { setNetwork, ExplorerNetwork, getNetwork } from './network.js';\nimport { confirmPopup, createAlert, isEmpty } from './misc.js';\nimport {\n switchTranslation,\n ALERTS,\n translation,\n arrActiveLangs,\n tr,\n} from './i18n.js';\nimport { CoinGecko, refreshPriceDisplay } from './prices.js';\nimport { Database } from './database.js';\nimport { getEventEmitter } from './event_bus.js';\n\n// --- Default Settings\n/** A mode that emits verbose console info for internal MPW operations */\nexport let debug = false;\n/**\n * The user-selected display currency from market-aggregator sites\n * @type {string}\n */\nexport let strCurrency = 'usd';\n/**\n * The global market data source\n * @type {CoinGecko}\n */\nexport let cMarket = new CoinGecko();\n/** The user-selected explorer, used for most of MPW's data synchronisation */\nexport let cExplorer = cChainParams.current.Explorers[0];\n/** The user-selected MPW node, used for alternative blockchain data */\nexport let cNode = cChainParams.current.Nodes[0];\n/** A mode which allows MPW to automatically select it's data sources */\nexport let fAutoSwitch = true;\n/** The decimals to display for the wallet balance */\nexport let nDisplayDecimals = 2;\n/** A mode which configures MPW towards Advanced users, with low-level feature access and less restrictions (Potentially dangerous) */\nexport let fAdvancedMode = false;\n\nlet transparencyReport;\n\nexport class Settings {\n /**\n * @type {String} analytics level\n */\n analytics;\n /**\n * @type {String} Explorer url to use\n */\n explorer;\n /**\n * @type {String} Node url to use\n */\n node;\n /**\n * @type {Boolean} The Auto-Switch mode state\n */\n autoswitch;\n /**\n * @type {String} The user's active Cold Staking address\n */\n coldAddress;\n /**\n * @type {String} translation to use\n */\n translation;\n /**\n * @type {String} Currency to display\n */\n displayCurrency;\n /**\n * @type {number} The decimals to display for the wallet balance\n */\n displayDecimals;\n /**\n * @type {boolean} Whether Advanced Mode is enabled or disabled\n */\n advancedMode;\n constructor({\n analytics,\n explorer,\n node,\n autoswitch = true,\n translation = '',\n displayCurrency = 'usd',\n displayDecimals = nDisplayDecimals,\n advancedMode = false,\n coldAddress = '',\n } = {}) {\n this.analytics = analytics;\n this.explorer = explorer;\n this.node = node;\n this.autoswitch = autoswitch;\n this.translation = translation;\n this.displayCurrency = displayCurrency;\n this.displayDecimals = displayDecimals;\n this.advancedMode = advancedMode;\n // DEPRECATED: Read-only below here, for migration only\n this.coldAddress = coldAddress;\n }\n}\n\n// A list of statistic keys and their descriptions\nexport let STATS = {\n // Stat key // Description of the stat, it's data, and it's purpose\n hit: 'A ping indicating an app load, no unique data is sent.',\n time_to_sync: 'The time in seconds it took for MPW to last synchronise.',\n transaction:\n 'A ping indicating a Tx, no unique data is sent, but may be inferred from on-chain time.',\n};\n\nexport const cStatKeys = Object.keys(STATS);\n\n// A list of Analytics 'levels' at which the user may set depending on their privacy preferences\n// NOTE: When changing Level Names, ensure the i18n system is updated to support them too\nlet arrAnalytics = [\n // Statistic level // Allowed statistics\n { name: 'Disabled', stats: [] },\n { name: 'Minimal', stats: [STATS.hit, STATS.time_to_sync] },\n {\n name: 'Balanced',\n stats: [STATS.hit, STATS.time_to_sync, STATS.transaction],\n },\n];\n\nexport let cAnalyticsLevel = arrAnalytics[2];\n\n// Users need not look below here.\n// ------------------------------\n// Global Keystore / Wallet Information\n\n// --- DOM Cache\nexport async function start() {\n //TRANSLATIONS\n //to make translations work we need to change it so that we just enable or disable the visibility of the text\n doms.domTestnet.style.display = cChainParams.current.isTestnet\n ? ''\n : 'none';\n doms.domDebug.style.display = debug ? '' : 'none';\n\n // Hook up the 'currency' select UI\n document.getElementById('currency').onchange = function (evt) {\n setCurrency(evt.target.value);\n };\n\n // Hook up the 'display decimals' slider UI\n doms.domDisplayDecimalsSlider.onchange = function (evt) {\n setDecimals(Number(evt.target.value));\n };\n\n // Hook up the 'explorer' select UI\n document.getElementById('explorer').onchange = function (evt) {\n setExplorer(\n cChainParams.current.Explorers.find(\n (a) => a.url === evt.target.value\n )\n );\n };\n\n // Hook up the 'translation' select UI\n document.getElementById('translation').onchange = function (evt) {\n setTranslation(evt.target.value);\n };\n\n // Hook up the 'analytics' select UI\n document.getElementById('analytics').onchange = function (evt) {\n setAnalytics(arrAnalytics.find((a) => a.name === evt.target.value));\n };\n\n await Promise.all([\n fillExplorerSelect(),\n fillNodeSelect(),\n fillTranslationSelect(),\n ]);\n\n // Fetch price data, then fetch chain data\n if (getNetwork().enabled) {\n refreshPriceDisplay().finally(refreshChainData);\n }\n\n const database = await Database.getInstance();\n\n // Fetch settings from Database\n const {\n analytics: strSettingAnalytics,\n autoswitch,\n displayCurrency,\n displayDecimals,\n advancedMode,\n // DEPRECATED: Below here are entries that are read-only due to being moved to a different location in the DB\n coldAddress,\n } = await database.getSettings();\n\n // Cold Staking: As of v1.2.1 this was moved to the Account class, if any exists here, we'll migrate it then wipe it\n // Note: We also only migrate Mainnet addresses, to keep the migration logic simple\n if (\n coldAddress &&\n coldAddress.startsWith(cChainParams.main.STAKING_PREFIX)\n ) {\n const cAccount = await database.getAccount();\n // Ensure an account exists (it is possible that a Cold Address was set without a wallet being encrypted)\n if (cAccount) {\n // We'll add the Cold Address to the account\n cAccount.coldAddress = coldAddress;\n // Save the changes\n await database.updateAccount(cAccount);\n // And wipe the old setting\n await database.setSettings({ coldAddress: '' });\n }\n }\n\n // Set any Toggles to their default or DB state\n // Network Auto-Switch\n fAutoSwitch = autoswitch;\n doms.domAutoSwitchToggle.checked = fAutoSwitch;\n\n // Advanced Mode\n fAdvancedMode = advancedMode;\n doms.domAdvancedModeToggler.checked = fAdvancedMode;\n await configureAdvancedMode();\n\n // Set the display currency\n strCurrency = doms.domCurrencySelect.value = displayCurrency;\n\n // Set the display decimals\n nDisplayDecimals = displayDecimals;\n doms.domDisplayDecimalsSlider.value = nDisplayDecimals;\n\n // Apply translations to the transparency report\n STATS = {\n // Stat key // Description of the stat, it's data, and it's purpose\n hit: translation.hit,\n time_to_sync: translation.time_to_sync,\n transaction: translation.transaction,\n };\n transparencyReport = translation.transparencyReport;\n arrAnalytics = [\n // Statistic level // Allowed statistics\n { name: 'Disabled', stats: [] },\n { name: 'Minimal', stats: [STATS.hit, STATS.time_to_sync] },\n {\n name: 'Balanced',\n stats: [STATS.hit, STATS.time_to_sync, STATS.transaction],\n },\n ];\n\n // Initialise status icons as their default variables\n doms.domNetwork.innerHTML =\n '';\n\n // Honour the \"Do Not Track\" header by default\n if (!strSettingAnalytics && navigator.doNotTrack === '1') {\n // Disabled\n setAnalytics(arrAnalytics[0], true);\n doms.domAnalyticsDescriptor.innerHTML =\n '
Analytics disabled to honour \"Do Not Track\" browser setting, you may manually enable if desired, though!
';\n } else {\n // Load from storage, or use defaults\n setAnalytics(\n (cAnalyticsLevel =\n arrAnalytics.find((a) => a.name === strSettingAnalytics) ||\n cAnalyticsLevel),\n true\n );\n }\n\n // Add each analytics level into the UI selector\n fillAnalyticSelect();\n}\n// --- Settings Functions\nexport async function setExplorer(explorer, fSilent = false) {\n const database = await Database.getInstance();\n database.setSettings({ explorer: explorer.url });\n cExplorer = explorer;\n\n // Enable networking + notify if allowed\n const network = new ExplorerNetwork(cExplorer.url, wallet);\n setNetwork(network);\n\n activityDashboard.reset();\n stakingDashboard.reset();\n\n // Update the selector UI\n doms.domExplorerSelect.value = cExplorer.url;\n\n if (!fSilent)\n createAlert(\n 'success',\n tr(ALERTS.SWITCHED_EXPLORERS, [{ explorerName: cExplorer.name }]),\n 2250\n );\n}\n\nasync function setNode(node, fSilent = false) {\n cNode = node;\n const database = await Database.getInstance();\n database.setSettings({ node: node.url });\n\n // Enable networking + notify if allowed\n getNetwork().enable();\n if (!fSilent)\n createAlert(\n 'success',\n tr(ALERTS.SWITCHED_NODE, [{ node: cNode.name }]),\n 2250\n );\n}\n\n//TRANSLATION\n/**\n * Switches the translation and sets the translation preference to database\n * @param {string} strLang\n */\nexport async function setTranslation(strLang) {\n switchTranslation(strLang);\n const database = await Database.getInstance();\n database.setSettings({ translation: strLang });\n doms.domTranslationSelect.value = strLang;\n}\n\n/**\n * Sets and saves the display currency setting in runtime and database\n * @param {string} currency - The currency string name\n */\nasync function setCurrency(currency) {\n strCurrency = currency;\n const database = await Database.getInstance();\n database.setSettings({ displayCurrency: strCurrency });\n // Update the UI to reflect the new currency\n getEventEmitter().emit('balance-update');\n getStakingBalance(true);\n}\n\n/**\n * Sets and saves the display decimals setting in runtime and database\n * @param {number} decimals - The decimals to set for the display\n */\nasync function setDecimals(decimals) {\n nDisplayDecimals = decimals;\n const database = await Database.getInstance();\n database.setSettings({ displayDecimals: nDisplayDecimals });\n // Update the UI to reflect the new decimals\n getEventEmitter().emit('balance-update');\n getStakingBalance(true);\n}\n\n/**\n * Fills the translation dropbox on the settings page\n */\nasync function fillTranslationSelect() {\n while (doms.domTranslationSelect.options.length > 0) {\n doms.domTranslationSelect.remove(0);\n }\n\n // Add each language into the UI selector\n for (const cLang of arrActiveLangs) {\n const opt = document.createElement('option');\n opt.innerHTML = `${cLang.emoji} ${cLang.code.toUpperCase()}`;\n opt.value = cLang.code;\n doms.domTranslationSelect.appendChild(opt);\n }\n\n const database = await Database.getInstance();\n const { translation: strLang } = await database.getSettings();\n // And update the UI to reflect them (default to English if none)\n doms.domTranslationSelect.value = strLang;\n}\n\n/**\n * Fills the display currency dropbox on the settings page\n */\nexport async function fillCurrencySelect() {\n const arrCurrencies = await cMarket.getCurrencies();\n\n // Only update if we have a currency list\n if (!isEmpty(arrCurrencies)) {\n while (doms.domCurrencySelect.options.length > 0) {\n doms.domCurrencySelect.remove(0);\n }\n\n // Add each data source currency into the UI selector\n for (const currency of arrCurrencies) {\n const opt = document.createElement('option');\n opt.innerHTML = currency.toUpperCase();\n opt.value = currency;\n doms.domCurrencySelect.appendChild(opt);\n }\n }\n\n const database = await Database.getInstance();\n const { displayCurrency } = await database.getSettings();\n\n // And update the UI to reflect them\n strCurrency = doms.domCurrencySelect.value = displayCurrency;\n}\n\n/**\n * Fills the Analytics Settings UI\n */\nexport function fillAnalyticSelect() {\n const domAnalyticsSelect = document.getElementById('analytics');\n domAnalyticsSelect.innerHTML = '';\n for (const analLevel of arrAnalytics) {\n const opt = document.createElement('option');\n // Apply translation to the display HTML\n opt.value = analLevel.name;\n opt.innerHTML = translation['analytic' + analLevel.name];\n domAnalyticsSelect.appendChild(opt);\n }\n}\n\nasync function setAnalytics(level, fSilent = false) {\n cAnalyticsLevel = level;\n const database = await Database.getInstance();\n await database.setSettings({ analytics: level.name });\n\n // For total transparency, we'll 'describe' the various analytic keys of this chosen level\n let strDesc = '
--- ' + transparencyReport + ' ---

',\n i = 0;\n const nLongestKeyLen = cStatKeys.reduce((prev, e) =>\n prev.length >= e.length ? prev : e\n ).length;\n for (i; i < cAnalyticsLevel.stats.length; i++) {\n const cStat = cAnalyticsLevel.stats[i];\n // This formats Stat keys into { $key $(padding) $description }\n strDesc +=\n cStatKeys\n .find((a) => STATS[a] === cStat)\n .padEnd(nLongestKeyLen, ' ') +\n ': ' +\n cStat +\n '
';\n }\n\n // Set display + notify if allowed\n doms.domAnalyticsDescriptor.innerHTML =\n cAnalyticsLevel.name === arrAnalytics[0].name\n ? ''\n : '
' +\n              strDesc +\n              '
';\n if (!fSilent)\n createAlert(\n 'success',\n tr(ALERTS.SWITCHED_ANALYTICS, [\n { level: translation['analytic' + cAnalyticsLevel.name] },\n ]),\n 2250\n );\n}\n\n/**\n * Toggle between Mainnet and Testnet\n */\nexport async function toggleTestnet() {\n const cNextNetwork = cChainParams.current.isTestnet\n ? cChainParams.main\n : cChainParams.testnet;\n\n // If the current wallet is not saved, we'll ask the user for confirmation, since they'll lose their wallet if they switch with an unsaved wallet!\n if (wallet.isLoaded() && !(await hasEncryptedWallet())) {\n const fContinue = await confirmPopup({\n title: tr(translation.netSwitchUnsavedWarningTitle, [\n { network: cChainParams.current.name },\n ]),\n html: `\n ${tr(translation.netSwitchUnsavedWarningSubtitle, [\n { network: cChainParams.current.name },\n ])}\n
\n ${tr(translation.netSwitchUnsavedWarningSubtext, [\n { network: cNextNetwork.name },\n ])}\n
\n
\n ${\n translation.netSwitchUnsavedWarningConfirmation\n }\n `,\n });\n\n if (!fContinue) {\n // Kick back the \"toggle\" switch\n doms.domTestnetToggler.checked = cChainParams.current.isTestnet;\n return;\n }\n }\n\n // Update current chain config\n cChainParams.current = cNextNetwork;\n\n // Update UI and static tickers\n doms.domTestnet.style.display = cChainParams.current.isTestnet\n ? ''\n : 'none';\n doms.domGuiBalanceStakingTicker.innerText = cChainParams.current.TICKER;\n doms.domPrefixNetwork.innerText =\n cChainParams.current.PUBKEY_PREFIX.join(' or ');\n\n // Update testnet toggle in settings\n doms.domTestnetToggler.checked = cChainParams.current.isTestnet;\n\n // Check if the new network has an Account\n const cNewDB = await Database.getInstance();\n const cNewAccount = await cNewDB.getAccount();\n if (cNewAccount?.publicKey) {\n // Import the new wallet (overwriting the existing in-memory wallet)\n await importWallet({ newWif: cNewAccount.publicKey });\n } else {\n // Nuke the Master Key\n wallet.setMasterKey(null);\n\n // Hide all Dashboard info, kick the user back to the \"Getting Started\" area\n doms.domGenKeyWarning.style.display = 'none';\n doms.domGuiWallet.style.display = 'none';\n doms.domWipeWallet.hidden = true;\n doms.domRestoreWallet.hidden = true;\n\n // Set the \"Wallet Options\" display CSS to it's Default\n setDisplayForAllWalletOptions('');\n\n // Reset the \"Vanity\" and \"Import\" flows\n doms.domPrefix.value = '';\n doms.domPrefix.style.display = 'none';\n\n // Show \"Access Wallet\" button\n doms.domImportWallet.style.display = 'none';\n doms.domPrivKey.style.opacity = '0';\n doms.domAccessWallet.style.display = '';\n doms.domAccessWalletBtn.style.display = '';\n\n // Hide \"Import Wallet\" so the user has to follow the `accessOrImportWallet()` flow\n doms.domImportWallet.style.display = 'none';\n }\n\n mempool.UTXOs = [];\n\n getEventEmitter().emit('balance-update');\n getStakingBalance(true);\n await updateEncryptionGUI(wallet.isLoaded());\n await fillExplorerSelect();\n await fillNodeSelect();\n await updateGovernanceTab();\n activityDashboard.reset();\n stakingDashboard.reset();\n}\n\nexport function toggleDebug() {\n debug = !debug;\n doms.domDebug.style.display = debug ? '' : 'none';\n}\n\n/**\n * Toggle the Auto-Switch mode at runtime and in DB\n */\nexport async function toggleAutoSwitch() {\n fAutoSwitch = !fAutoSwitch;\n\n // Update the setting in the DB\n const database = await Database.getInstance();\n await database.setSettings({ autoswitch: fAutoSwitch });\n}\n\nasync function fillExplorerSelect() {\n cExplorer = cChainParams.current.Explorers[0];\n\n while (doms.domExplorerSelect.options.length > 0) {\n doms.domExplorerSelect.remove(0);\n }\n\n // Add each trusted explorer into the UI selector\n for (const explorer of cChainParams.current.Explorers) {\n const opt = document.createElement('option');\n opt.value = explorer.url;\n opt.innerHTML =\n explorer.name + ' (' + explorer.url.replace('https://', '') + ')';\n doms.domExplorerSelect.appendChild(opt);\n }\n\n // Fetch settings from Database\n const database = await Database.getInstance();\n const { explorer: strSettingExplorer } = await database.getSettings();\n\n // For any that exist: load them, or use the defaults\n await setExplorer(\n cChainParams.current.Explorers.find(\n (a) => a.url === strSettingExplorer\n ) || cExplorer,\n true\n );\n\n // And update the UI to reflect them\n doms.domExplorerSelect.value = cExplorer.url;\n}\n\nasync function fillNodeSelect() {\n cNode = cChainParams.current.Nodes[0];\n\n while (doms.domNodeSelect.options.length > 0) {\n doms.domNodeSelect.remove(0);\n }\n\n // Add each trusted node into the UI selector\n for (const node of cChainParams.current.Nodes) {\n const opt = document.createElement('option');\n opt.value = node.url;\n opt.innerHTML =\n node.name + ' (' + node.url.replace('https://', '') + ')';\n doms.domNodeSelect.appendChild(opt);\n }\n\n // Fetch settings from Database\n const database = await Database.getInstance();\n const { node: strSettingNode } = await database.getSettings();\n\n // For any that exist: load them, or use the defaults\n setNode(\n cChainParams.current.Nodes.find((a) => a.url === strSettingNode) ||\n cNode,\n true\n );\n\n // And update the UI to reflect them\n doms.domNodeSelect.value = cNode.url;\n}\n\n/**\n * Toggle Advanced Mode at runtime and in DB\n */\nexport async function toggleAdvancedMode() {\n fAdvancedMode = !fAdvancedMode;\n\n // Configure the app accordingly\n await configureAdvancedMode();\n\n // Update the setting in the DB\n const database = await Database.getInstance();\n await database.setSettings({ advancedMode: fAdvancedMode });\n}\n\n/**\n * Configure the app functionality and UI for the current mode\n */\nasync function configureAdvancedMode() {\n // Re-render the Import Input UI\n await guiUpdateImportInput();\n\n // Hide or Show the \"Mnemonic Passphrase\" in the Seed Creation modal, and reset it's input\n doms.domMnemonicModalPassphrase.value = '';\n doms.domMnemonicModalPassphrase.hidden = !fAdvancedMode;\n\n // Hide or Show the \"Owner Address\" configuration for Staking, and reset it's input\n doms.domStakeOwnerAddress.value = '';\n doms.domStakeOwnerAddressContainer.hidden = !fAdvancedMode;\n}\n","import { cNode, cExplorer } from './settings.js';\nimport { cChainParams, COIN } from './chain_params.js';\nimport { wallet } from './wallet.js';\nimport { parseWIF, deriveAddress } from './encoding.js';\nimport { cHardwareWallet } from './ledger.js';\nimport { dSHA256, bytesToHex, hexToBytes } from './utils.js';\nimport { Buffer } from 'buffer';\nimport { Address6 } from 'ip-address';\nimport * as nobleSecp256k1 from '@noble/secp256k1';\nimport { OP } from './script.js';\nimport bs58 from 'bs58';\nimport base32 from 'base32';\nimport { isStandardAddress } from './misc.js';\n\n/**\n * Construct a Masternode\n * @param {string} [masternode.walletPrivateKeyPath] - BIP39 path pointing to the private key holding the collateral. Optional if not HD\n * @param {string} masternode.mnPrivateKey - Masternode private key. Must be uncompressed WIF\n * @param {string} masternode.collateralTxId - Must be a UTXO pointing to the collateral\n * @param {number} masternode.outidx - The output id of the collateral starting from 0\n * @param {string} masternode.addr - IPV4 address in the form `ip:port`\n */\nexport default class Masternode {\n constructor({\n walletPrivateKeyPath,\n mnPrivateKey,\n collateralTxId,\n outidx,\n addr,\n } = {}) {\n this.walletPrivateKeyPath = walletPrivateKeyPath;\n this.mnPrivateKey = mnPrivateKey;\n this.collateralTxId = collateralTxId;\n this.outidx = outidx;\n this.addr = addr;\n }\n /**\n * @type {[string, number]} array of vote hash and corresponding vote for the current session\n */\n static sessionVotes = [];\n\n async _getWalletPrivateKey() {\n return await wallet\n .getMasterKey()\n .getPrivateKey(this.walletPrivateKeyPath);\n }\n\n /**\n @return {Promise} The object containing masternode information for this masternode\n */\n async getFullData() {\n const strURL = `${cNode.url}/listmasternodes?params=${this.collateralTxId}`;\n try {\n const cMasternodes = (await (await fetch(strURL)).json()).filter(\n (m) => m.outidx === this.outidx\n );\n if (cMasternodes.length > 0) {\n return cMasternodes[0];\n } else {\n return { status: 'MISSING' };\n }\n } catch (e) {\n //this is the unfortunate state in which the node is not reachable\n console.error(e);\n return 'EXPLORER_DOWN';\n }\n }\n\n /**\n @return {Promise} The status of this masternode.\n */\n async getStatus() {\n const cMasternode = await this.getFullData();\n return cMasternode ? cMasternode.status : 'MISSING';\n }\n\n /**\n * @param {string} ip\n * @param {number} port\n * @returns {string} hex representation of the IP + port pair\n */\n static _decodeIpAddress(ip, port) {\n /**\n * @type {Array?}\n */\n let bytes;\n if (ip.endsWith('.onion')) {\n const onionBytes = base32\n .decode(ip.slice(0, -6))\n .split('')\n .map((c) => c.charCodeAt(0));\n switch (onionBytes.length) {\n case 10:\n bytes = [0xfd, 0x87, 0xd8, 0x7e, 0xeb, 0x43, ...onionBytes];\n break;\n case 35:\n bytes = [0x04, 32, ...onionBytes.slice(0, 32)];\n break;\n default:\n throw new Error('Invalid onion address');\n }\n } else {\n const address = ip.includes('.')\n ? Address6.fromAddress4(ip)\n : new Address6(ip);\n bytes = address.toUnsignedByteArray();\n }\n const res =\n bytesToHex([\n ...new Array(Math.max(16 - bytes.length, 0)).fill(0),\n ...bytes,\n ]) + bytesToHex(Masternode._numToBytes(port, 2, false));\n return res;\n }\n\n static _numToBytes(number, numBytes = 8, littleEndian = true) {\n const bytes = [];\n for (let i = 0; i < numBytes; i++) {\n bytes.push((number / 2 ** (8 * i)) & 0xff);\n }\n return littleEndian ? bytes : bytes.reverse();\n }\n\n /**\n * @param {Object} message - message to encode\n * @param {string} message.vin.txid - transaction id of the collateral\n * @param {number} message.vin.idx - output id of the collateral starting from 0\n * @param {string} message.blockHash - latest blockhash\n * @param {number} message.sigTime - current time in seconds since UNIX epoch\n * @return {Array} Returns the unsigned ping message. It needs to be signed with the MN private key\n */\n static getPingSignature({ vin, blockHash, sigTime }) {\n const ping = [\n ...hexToBytes(vin.txid).reverse(),\n ...Masternode._numToBytes(vin.idx, 4, true),\n // Should be tx sequence, but 0xffffff is fine\n ...[0, 255, 255, 255, 255],\n ...hexToBytes(blockHash).reverse(),\n ...Masternode._numToBytes(sigTime, 8, true),\n ];\n return dSHA256(ping);\n }\n\n /**\n * @param {Object} message - Message to encode\n * @param {string} message.walletPrivateKey - private key of the collateral\n * @param {string} message.addr - Masternode ipv4 with port\n * @param {string} message.mnPrivateKey - private key of masternode\n * @param {number} message.sigTime - current time in seconds since UNIX epoch\n * @return {string} The message to be signed with the collateral private key.\n * it needs to be padded with \"\\x18DarkNet Signed Message:\\n\" + Message length + Message\n * Then hashed two times with SHA256\n */\n static getToSign({ publicKey, addr, mnPrivateKey, sigTime }) {\n let ip, port;\n if (addr.includes('.')) {\n // IPv4\n [ip, port] = addr.split(':');\n } else {\n // IPv6\n [ip, port] = addr.slice(1).split(']');\n port = port.slice(1);\n }\n\n const mnPublicKey = hexToBytes(\n deriveAddress({\n pkBytes: parseWIF(mnPrivateKey, true),\n output: 'UNCOMPRESSED_HEX',\n })\n );\n\n const pkt = [\n ...Masternode._numToBytes(1, 4, true), // Message version\n ...hexToBytes(Masternode._decodeIpAddress(ip, port)), // Encoded ip + port\n ...Masternode._numToBytes(sigTime, 8, true),\n ...Masternode._numToBytes(publicKey.length, 1, true), // Collateral public key length\n ...publicKey,\n ...Masternode._numToBytes(mnPublicKey.length, 1, true), // Masternode public key length\n ...mnPublicKey,\n ...Masternode._numToBytes(\n cChainParams.current.PROTOCOL_VERSION,\n 4,\n true\n ), // Protocol version\n ];\n return bytesToHex(dSHA256(pkt).reverse());\n }\n\n /**\n * @return {Promise} The last block hash\n */\n static async getLastBlockHash() {\n const status = await (await fetch(`${cExplorer.url}/api/`)).json();\n return status.backend.bestBlockHash;\n }\n\n /**\n * @return {Promise} The signed message signed with the collateral private key\n */\n async getSignedMessage(sigTime) {\n const toSign = Masternode.getToSign({\n addr: this.addr,\n publicKey: await this.getWalletPublicKey(),\n mnPrivateKey: this.mnPrivateKey,\n sigTime,\n });\n\n if (wallet.isHardwareWallet()) {\n const { r, s, v } = await cHardwareWallet.signMessage(\n this.walletPrivateKeyPath,\n bytesToHex(toSign)\n );\n return [v + 31, ...hexToBytes(r), ...hexToBytes(s)];\n } else {\n const padding = '\\x18DarkNet Signed Message:\\n'\n .split('')\n .map((c) => c.charCodeAt(0));\n const walletPrivateKey = await this._getWalletPrivateKey();\n\n const message = toSign.split('').map((c) => c.charCodeAt(0));\n const hash = dSHA256(\n padding.concat(message.length).concat(message)\n );\n const [signature, v] = await nobleSecp256k1.sign(\n hash,\n parseWIF(walletPrivateKey, true),\n { der: false, recovered: true }\n );\n return [v + 31, ...signature];\n }\n }\n /**\n * @return {Promise} The signed ping message signed with the masternode private key\n */\n async getSignedPingMessage(sigTime, blockHash) {\n const toSign = Masternode.getPingSignature({\n vin: {\n txid: this.collateralTxId,\n idx: this.outidx,\n },\n blockHash,\n sigTime,\n });\n const [signature, v] = await nobleSecp256k1.sign(\n toSign,\n parseWIF(this.mnPrivateKey, true),\n { der: false, recovered: true }\n );\n return [v + 27, ...signature];\n }\n\n async getWalletPublicKey() {\n if (wallet.isHardwareWallet()) {\n return hexToBytes(\n await wallet\n .getMasterKey()\n .getPublicKey(this.walletPrivateKeyPath)\n );\n } else {\n const walletPrivateKey = await this._getWalletPrivateKey();\n return hexToBytes(\n deriveAddress({\n pkBytes: parseWIF(walletPrivateKey, true),\n output: 'COMPRESSED_HEX',\n })\n );\n }\n }\n\n /**\n * Get the message encoded to hex used to start a masternode\n * It uses to two signatures: `getPingSignature()` which is signed\n * With the masternode private key, and `getToSign()` which is signed with\n * The collateral private key\n * @return {Promise} The message used to start a masternode.\n */\n async broadcastMessageToHex() {\n const sigTime = Math.round(Date.now() / 1000);\n const blockHash = await Masternode.getLastBlockHash();\n let ip, port;\n if (this.addr.includes('.')) {\n // IPv4\n [ip, port] = this.addr.split(':');\n } else {\n // IPv6\n [ip, port] = this.addr.slice(1).split(']');\n port = port.slice(1);\n }\n const walletPublicKey = await this.getWalletPublicKey();\n\n const mnPublicKey = hexToBytes(\n deriveAddress({\n pkBytes: parseWIF(this.mnPrivateKey, true),\n output: 'UNCOMPRESSED_HEX',\n compress: false,\n })\n );\n\n const sigBytes = await this.getSignedMessage(sigTime);\n const sigPingBytes = await this.getSignedPingMessage(\n sigTime,\n blockHash\n );\n\n const message = [\n ...hexToBytes(this.collateralTxId).reverse(),\n ...Masternode._numToBytes(this.outidx, 4, true),\n ...Masternode._numToBytes(0, 1, true), // Message version\n ...Masternode._numToBytes(0xffffffff, 4, true),\n ...hexToBytes(Masternode._decodeIpAddress(ip, port)),\n ...Masternode._numToBytes(walletPublicKey.length, 1, true),\n ...walletPublicKey,\n ...Masternode._numToBytes(mnPublicKey.length, 1, true),\n ...mnPublicKey,\n ...Masternode._numToBytes(sigBytes.length, 1, true),\n ...sigBytes,\n ...Masternode._numToBytes(sigTime, 8, true),\n ...Masternode._numToBytes(\n cChainParams.current.PROTOCOL_VERSION,\n 4,\n true\n ),\n ...hexToBytes(this.collateralTxId).reverse(),\n ...Masternode._numToBytes(this.outidx, 4, true),\n ...Masternode._numToBytes(0, 1, true),\n ...Masternode._numToBytes(0xffffffff, 4, true),\n ...hexToBytes(blockHash).reverse(),\n ...Masternode._numToBytes(sigTime, 8, true),\n ...Masternode._numToBytes(sigPingBytes.length, 1, true),\n ...sigPingBytes,\n ...Masternode._numToBytes(1, 4, true),\n ...Masternode._numToBytes(1, 4, true),\n ];\n return bytesToHex(message);\n }\n\n /**\n * Start the masternode\n * @return {Promise} Whether or not the message was relayed successfully. This does not necessarely mean\n * starting was successful, but only that the node was able to decode the broadcast.\n */\n async start() {\n const message = await this.broadcastMessageToHex();\n const url = `${cNode.url}/relaymasternodebroadcast?params=${message}`;\n const response = await (await fetch(url)).text();\n return response.includes('Masternode broadcast sent');\n }\n\n /**\n *\n * @param {object} options\n * @param {bool} options.fAllowFinished - Pass `true` to stop filtering proposals if finished\n * @return {Promise} A list of currently active proposal\n */\n static async getProposals({ fAllowFinished = false } = {}) {\n const url = `${cNode.url}/getbudgetinfo`;\n let arrProposals = await (await fetch(url)).json();\n\n // Apply optional filters\n if (!fAllowFinished) {\n arrProposals = arrProposals.filter(\n (a) => a.RemainingPaymentCount > 0\n );\n }\n return arrProposals;\n }\n\n /**\n * @param {string} hash - the hash of the proposal to vote\n * @param {number} voteCode - the vote code. \"Yes\" is 1, \"No\" is 2\n * @param {number} sigTime - The current time in seconds since UNIX epoch\n * @return {Promise} The signed message used to vote\n */\n async getSignedVoteMessage(hash, voteCode, sigTime) {\n const msg = [\n ...hexToBytes(this.collateralTxId).reverse(),\n ...Masternode._numToBytes(this.outidx, 4, true),\n // Should be tx sequence, but 0xffffff is fine\n ...[0, 255, 255, 255, 255],\n ...hexToBytes(hash).reverse(),\n ...Masternode._numToBytes(voteCode, 4, true),\n ...Masternode._numToBytes(sigTime, 8, true),\n ];\n\n const [signature, v] = await nobleSecp256k1.sign(\n dSHA256(msg),\n parseWIF(this.mnPrivateKey, true),\n { der: false, recovered: true }\n );\n return Buffer.from([v + 27, ...signature]).toString('base64');\n }\n /**\n * @param {string} proposalName - the name of the proposal you want to get the vote of\n * @param {string} hash - the hash of the proposal you want to get the vote of\n * @return {Promise} Vote code \"Yes\" is 1, \"No\" is 2\n */\n async getVote(proposalName, hash) {\n //See if you already voted the proposal in the current session\n const index = Masternode.sessionVotes.findIndex(\n ([vHash]) => vHash === hash\n );\n if (index !== -1) {\n //Found it! return the vote\n return Masternode.sessionVotes[index][1];\n }\n //Haven't voted yet, fetch the result from Duddino's node\n const filterString = `.[] | select(.mnId==\"`;\n const filter =\n `${encodeURI(filterString)}` +\n `${this.collateralTxId}-${this.outidx}\")`;\n const url = `${cNode.url}/getbudgetvotes?params=${proposalName}&filter=${filter}`;\n try {\n const { Vote: vote } = await (await fetch(url)).json();\n return vote === 'YES' ? 1 : 2;\n } catch (e) {\n //Cannot parse JSON! This means that you did not vote hence return null\n return null;\n }\n }\n /**\n * Stores a vote for the current session\n * @param {string} hash - the hash of the proposal to vote\n * @param {number} voteCode - the vote code. \"Yes\" is 1, \"No\" is 2\n */\n storeVote(hash, voteCode) {\n const newVote = [hash, voteCode];\n const index = Masternode.sessionVotes.findIndex(\n ([vHash]) => vHash === hash\n );\n if (index !== -1) {\n Masternode.sessionVotes[index] = newVote;\n } else {\n Masternode.sessionVotes.push(newVote);\n }\n }\n /**\n * @param {string} hash - the hash of the proposal to vote\n * @param {number} voteCode - the vote code. \"Yes\" is 1, \"No\" is 2\n * @return {Promise} The response from the node\n */\n async vote(hash, voteCode) {\n const sigTime = Math.round(Date.now() / 1000);\n const signature = await this.getSignedVoteMessage(\n hash,\n voteCode,\n sigTime\n );\n const url = `${cNode.url}/mnbudgetrawvote?params=${\n this.collateralTxId\n },${this.outidx},${hash},${\n voteCode === 1 ? 'yes' : 'no'\n },${sigTime},${encodeURI(signature).replaceAll('+', '%2b')}`;\n const text = await (await fetch(url)).text();\n return text;\n }\n\n /**\n * Create proposal hash\n * @param {Object} options\n * @param {String} options.name - Name of the proposal\n * @param {String} options.url - Url of the proposal\n * @param {Number} options.nPayments - Number of cycles this proposal is gonna last\n * @param {Number} options.start - Superblock of when the proposal is going to start\n * @param {String} options.address - Base58 encoded PIVX address\n * @param {Number} options.monthlyPayment - Payment amount per cycle in satoshi\n * @returns {String} hex hash of the proposal\n */\n static createProposalHash({\n name,\n url,\n nPayments,\n start,\n address,\n monthlyPayment,\n }) {\n const end =\n start + (cChainParams.current.budgetCycleBlocks + 1) * nPayments;\n const addressBytes = bs58.decode(address);\n const scriptBytes = [\n OP.DUP,\n OP.HASH160,\n addressBytes.length - 5,\n ...addressBytes.slice(1, addressBytes.length - 4),\n OP.EQUALVERIFY,\n OP.CHECKSIG,\n ];\n const msg = [\n name.length,\n ...name.split('').map((c) => c.charCodeAt(0)),\n url.length,\n ...url.split('').map((c) => c.charCodeAt(0)),\n ...Masternode._numToBytes(start, 4, true),\n ...Masternode._numToBytes(end, 4, true),\n ...Masternode._numToBytes(monthlyPayment, 8, true),\n scriptBytes.length,\n ...scriptBytes,\n ];\n return bytesToHex(dSHA256(new Uint8Array(msg)));\n }\n\n /**\n * Finalize the proposal\n * @param {Object} options\n * @param {String} options.name - Name of the proposal\n * @param {String} options.url - Url of the proposal\n * @param {Number} options.nPayments - Number of cycles this proposal is gonna last\n * @param {Number} options.start - Superblock of when the proposal is going to start\n * @param {String} options.address - Base58 encoded PIVX address\n * @param {Number} options.monthlyPayment - Payment amount per cycle in satoshi\n * @param {String} options.txid - Transaction id of the proposal fee\n * @returns {Promise<{ ok: boolean, err: string | undefined, hash: string | undefined }>} The Vote Hash, if the finalization happened without errors\n */\n static async finalizeProposal({\n name,\n url,\n nPayments,\n start,\n address,\n monthlyPayment,\n txid,\n }) {\n try {\n const res = await (\n await fetch(\n `${cNode.url}/submitbudget?params=${encodeURI(\n name\n )},${encodeURI(url)},${nPayments},${start},${encodeURI(\n address\n )},${monthlyPayment / COIN},${txid}`\n )\n ).text();\n\n if (/^\"[a-f0-9]\"$/ && res.length == 64 + 2) {\n return { ok: true, hash: res };\n } else if (\n res.includes('is unconfirmed') ||\n res.includes('requires at least')\n ) {\n return { ok: false, err: 'unconfirmed' };\n } else if (\n res.includes('invalid budget proposal') ||\n res.includes('Invalid block start')\n ) {\n return { ok: false, err: 'invalid' };\n } else {\n return { ok: false, err: 'other' };\n }\n } catch (e) {\n console.error(e);\n return { ok: false, err: e };\n }\n }\n\n static async getNextSuperblock() {\n return parseInt(\n await (await fetch(`${cNode.url}/getnextsuperblock`)).text()\n );\n }\n\n /**\n * Fetches the masternode count object, containing each status and network.\n * @returns {Promise<{total:number, stable:number, enabled:number, inqueue:number, ipv4:number, ipv6:number, onion:number}>} - The masternode count object\n */\n static async getMasternodeCount() {\n return await (await fetch(`${cNode.url}/getmasternodecount`)).json();\n }\n\n /**\n * @param {Object} options\n * @param {String} options.name - Name of the proposal\n * @param {String} options.url - Url of the proposal\n * @param {Number} options.nPayments - Number of cycles this proposal is gonna last\n * @param {Number} options.start - Superblock of when the proposal is going to start\n * @param {String} options.address - Base58 encoded PIVX address\n * @param {Number} options.monthlyPayment - Payment amount per cycle in satoshi\n * @returns {boolean} If the proposal is valid\n */\n static isValidProposal({\n name,\n url,\n nPayments,\n _start,\n address,\n monthlyPayment,\n }) {\n const isSafeStr = /^[a-z0-9 .,;\\-_/:?@()]+$/i;\n if (name.length > 20) {\n return { ok: false, err: 'name_length' };\n }\n\n if (!isSafeStr.test(name)) {\n return { ok: false, err: 'invalid_name' };\n }\n\n if (url.length > 64) {\n return { ok: false, err: 'url_length' };\n }\n\n if (!isSafeStr.test(url)) {\n return { ok: false, err: 'invalid_url' };\n }\n\n if (\n !/^(https?):\\/\\/[^\\s/$.?#][^\\s]*[^\\s/.]\\.[^\\s/.][^\\s]*[^\\s.]$/.test(\n url\n )\n ) {\n return { ok: false, err: 'invalid_url' };\n }\n\n if (\n nPayments < 1 ||\n nPayments > cChainParams.current.maxPaymentCycles\n ) {\n return { ok: false, err: 'invalid_payment_count' };\n }\n\n if (\n monthlyPayment < 10 * COIN ||\n monthlyPayment * nPayments > cChainParams.current.maxPayment\n ) {\n return { ok: false, err: 'invalid_monthly_payment' };\n }\n if (!isStandardAddress(address)) {\n return { ok: false, err: 'invalid_address' };\n }\n\n return { ok: true };\n }\n}\n","import { cChainParams, COIN } from './chain_params.js';\nimport { Database } from './database.js';\nimport { doms, getBalance, restoreWallet, sweepAddress } from './global.js';\nimport {\n arrayToCSV,\n createAlert,\n downloadBlob,\n getAlphaNumericRand,\n} from './misc.js';\nimport { ALERTS, translation, tr } from './i18n.js';\nimport { getNetwork } from './network.js';\nimport { scanQRCode } from './scanner.js';\nimport { createAndSendTransaction } from './transactions.js';\nimport { wallet } from './wallet.js';\nimport { LegacyMasterKey } from './masterkey.js';\nimport { deriveAddress } from './encoding.js';\n\n/** The fee in Sats to use for Creating or Redeeming PIVX Promos */\nexport const PROMO_FEE = 10000;\n\n/**\n * The global storage for temporary Promo Code wallets, this is used for sweeping funds\n * @type {PromoWallet}\n */\nexport let cPromoWallet = null;\n\nexport class PromoWallet {\n /**\n * @param {object} data - An object containing the PromoWallet data\n * @param {string} data.code - The human-readable Promo Code\n * @param {string} data.address - The public key associated with the Promo Code\n * @param {Uint8Array} data.pkBytes - The private key bytes derived from the Promo Code\n * @param {Date|number} data.time - The Date or timestamp the code was created\n * @param {Array} data.utxos - UTXOs associated with the Promo Code\n */\n constructor({ code, address, pkBytes, utxos, time }) {\n /** @type {string} The human-readable Promo Code */\n this.code = code;\n /** @type {string} The public key associated with the Promo Code */\n this.address = address;\n /** @type {Uint8Array} The private key bytes derived from the Promo Code */\n this.pkBytes = pkBytes;\n /** @type {Array} UTXOs associated with the Promo Code */\n this.utxos = utxos;\n /** @type {Date|number} The Date or timestamp the code was created */\n this.time = time instanceof Date ? time : new Date(time);\n }\n\n /** A flag to show if this UTXO has successfully synced UTXOs previously */\n fSynced = false;\n\n /** A lock to prevent this Promo from synchronisation races */\n fLock = false;\n\n /**\n * Synchronise UTXOs and return the balance of the Promo Code\n * @param {boolean} - Whether to use UTXO Cache, or sync from network\n * @returns {Promise} - The Promo Wallet balance in sats\n */\n async getBalance(fCacheOnly = false) {\n // Refresh our UTXO set\n if (!fCacheOnly) {\n await this.getUTXOs();\n }\n\n // Return the sum of the set\n return this.utxos.reduce((a, b) => a + b.sats, 0);\n }\n\n /**\n * Synchronise UTXOs and return them\n * @param {boolean} - Whether to sync simple UTXOs or full UTXOs\n * @returns {Promise>}\n */\n async getUTXOs(fFull = false) {\n // For shallow syncs, don't allow racing: but Full syncs are allowed to bypass for Tx creation\n if (!fFull && this.fLock) return this.utxos;\n this.fLock = true;\n\n // If we don't have it, derive the public key from the promo code's WIF\n if (!this.address) {\n this.address = deriveAddress({ pkBytes: this.pkBytes });\n }\n\n // Check for UTXOs on the explorer\n const arrSimpleUTXOs = await getNetwork().getUTXOs(this.address);\n\n // Either format the simple UTXOs, or additionally sync the full UTXOs with scripts\n this.utxos = [];\n for (const cUTXO of arrSimpleUTXOs) {\n if (fFull) {\n this.utxos.push(await getNetwork().getUTXOFullInfo(cUTXO));\n } else {\n this.utxos.push({\n id: cUTXO.txid,\n sats: parseInt(cUTXO.value),\n vout: cUTXO.vout,\n });\n }\n }\n\n // Unlock, mark as synced and return the UTXO set\n this.fLock = false;\n this.fSynced = true;\n return this.utxos;\n }\n}\n\n/**\n * The mode of the Promo system: Redeem when true - Create when false.\n */\nlet fPromoRedeem = true;\n\n/**\n * Sets the mode of the PIVX Promos UI\n * @param {boolean} fMode - `true` to redeem, `false` to create\n */\nexport async function setPromoMode(fMode) {\n fPromoRedeem = fMode;\n\n // Modify the UI to match the mode\n if (fPromoRedeem) {\n // Swap the buttons\n doms.domRedeemCodeModeRedeemBtn.style.opacity = '0.5';\n doms.domRedeemCodeModeRedeemBtn.style.cursor = 'default';\n doms.domRedeemCodeModeCreateBtn.style.opacity = '0.8';\n doms.domRedeemCodeModeCreateBtn.style.cursor = 'pointer';\n\n // Show the redeem box, hide create box\n doms.domRedeemCodeUse.style.display = '';\n doms.domRedeemCodeCreate.style.display = 'none';\n\n // Set the title and confirm button\n doms.domRedeemTitle.innerText = 'Redeem Code';\n doms.domRedeemCodeConfirmBtn.innerText = 'Redeem';\n\n // Hide table\n doms.domPromoTable.classList.add('d-none');\n\n // Show smooth table animation\n setTimeout(() => {\n doms.domPromoTable.style.maxHeight = '0px';\n }, 100);\n } else {\n // Swap the buttons\n doms.domRedeemCodeModeRedeemBtn.style.opacity = '0.8';\n doms.domRedeemCodeModeRedeemBtn.style.cursor = 'pointer';\n doms.domRedeemCodeModeCreateBtn.style.opacity = '0.5';\n doms.domRedeemCodeModeCreateBtn.style.cursor = 'default';\n\n // Show the redeem box, hide create box\n doms.domRedeemCodeUse.style.display = 'none';\n doms.domRedeemCodeCreate.style.display = '';\n\n // Set the title and confirm button\n doms.domRedeemTitle.innerText = 'Create Code';\n doms.domRedeemCodeConfirmBtn.innerText = 'Create';\n\n // Render saved codes\n const cCodes = await renderSavedPromos();\n\n // Show animation when promo creation thread has 1 or more items\n if (arrPromoCreationThreads.length || cCodes.codes) {\n // Refresh the Promo UI\n await updatePromoCreationTick();\n\n // Show table\n doms.domRedeemCodeCreatePendingList.innerHTML = cCodes.html;\n doms.domPromoTable.classList.remove('d-none');\n\n // Show smooth table animation\n setTimeout(() => {\n doms.domPromoTable.style.maxHeight = 'min-content';\n }, 100);\n }\n }\n}\n\n/**\n * The GUI handler function for hitting the promo modal 'Confirm' button\n */\nexport function promoConfirm() {\n if (fPromoRedeem) {\n redeemPromoCode(doms.domRedeemCodeInput.value);\n } else {\n // Show table\n doms.domPromoTable.classList.remove('d-none');\n\n // Show smooth table animation\n setTimeout(() => {\n doms.domPromoTable.style.maxHeight = 'min-content';\n }, 100);\n\n createPromoCode(\n doms.domRedeemCodeCreateInput.value,\n Number(doms.domRedeemCodeCreateAmountInput.value)\n );\n }\n}\n\n/**\n * A list of promo creation threads, each thread works on a unique code\n * @type {Array}\n */\nconst arrPromoCreationThreads = [];\n\n/**\n * A lock for updating promo-creation related UI and threads\n */\nlet fPromoIntervalStarted = false;\n\n/**\n * Create a new 'PIVX Promos' code with a webworker\n * @param {string} strCode - The Promo Code to create\n * @param {number} nAmount - The Promo Code amount in coins\n * @param {boolean} fAddRandomness - Whether to append Randomness to the code\n */\nexport async function createPromoCode(strCode, nAmount, fAddRandomness = true) {\n // Determine if we're adding randomness - and if so, if it's appended entropy or full randomness\n const strFinalCode = fAddRandomness\n ? strCode\n ? strCode + '-' + getAlphaNumericRand(5).toUpperCase()\n : getAlphaNumericRand(10).toUpperCase()\n : strCode;\n\n // Ensure the amount is sane\n const min = 0.01;\n if (nAmount < min) {\n return createAlert(\n 'warning',\n tr(ALERTS.PROMO_MIN, [\n { min },\n { ticker: cChainParams.current.TICKER },\n ])\n );\n }\n\n // Ensure there's no more than half the device's cores used\n if (arrPromoCreationThreads.length >= navigator.hardwareConcurrency)\n return createAlert(\n 'warning',\n tr(ALERTS.PROMO_MAX_QUANTITY, [\n { quantity: navigator.hardwareConcurrency },\n ]),\n 4000\n );\n\n // Ensure the user has enough balance (Code amount + Redeem fee + Blockchain fee buffer)\n const nReservedBalance = arrPromoCreationThreads.reduce(\n (a, b) => a + b.amount * COIN,\n 0\n );\n if (getBalance() - nReservedBalance < nAmount * COIN + PROMO_FEE * 2) {\n return createAlert(\n 'warning',\n tr(ALERTS.PROMO_NOT_ENOUGH, [\n { ticker: cChainParams.current.TICKER },\n ]),\n 4000\n );\n }\n\n // Ensure the user doesn't create the same code twice\n const db = await Database.getInstance();\n const arrCodes = (await db.getAllPromos()).concat(arrPromoCreationThreads);\n if (arrCodes.some((a) => a.code === strFinalCode)) {\n return createAlert('warning', ALERTS.PROMO_ALREADY_CREATED, 3000);\n }\n\n // Create a new thread\n const cThread = {\n code: strFinalCode,\n amount: nAmount,\n thread: new Worker(new URL('./promos_worker.js', import.meta.url)),\n txid: '',\n update: function (evt) {\n if (evt.data.type === 'progress') {\n this.progress = evt.data.res.progress;\n // If the State HTML is available, render it!\n const cElement = document.getElementById('c' + this.code);\n if (cElement) {\n cElement.innerText = this.progress;\n }\n } else {\n this.key = evt.data.res.bytes;\n }\n },\n end_state: '',\n };\n\n // Inject the promo code in to the thread context\n cThread.thread.code = strFinalCode;\n\n // Setup it's internal update function\n cThread.thread.onmessage = cThread.update;\n\n // Start the thread\n cThread.thread.postMessage(strFinalCode);\n\n // Push to the global threads list\n arrPromoCreationThreads.push(cThread);\n\n // Refresh the promo UI\n await updatePromoCreationTick();\n}\n\nexport async function deletePromoCode(strCode) {\n // Delete any ongoing threads\n const nThread = arrPromoCreationThreads.findIndex(\n (a) => a.code === strCode\n );\n if (nThread >= 0) {\n // Terminate the Web Worker\n arrPromoCreationThreads[nThread].thread.terminate();\n // Remove the thread from memory\n arrPromoCreationThreads.splice(nThread, 1);\n }\n\n // Delete the database entry, if it exists\n const db = await Database.getInstance();\n await db.removePromo(strCode);\n\n // And splice from post-creation memory too, if it exists\n const nMemIndex = arrPromoCodes.findIndex(\n (cCode) => cCode.code === strCode\n );\n if (nMemIndex >= 0) {\n arrPromoCodes.splice(nMemIndex, 1);\n }\n\n // Re-render promos\n await updatePromoCreationTick();\n}\n\n/**\n * A pair of code quantity and HTML\n * @typedef {Object} RenderedPromoPair\n * @property {number} codes - The number of codes returned in the response.\n * @property {string} html - The HTML string returned in the response.\n */\n\n/** An in-memory representation of all created Promo Wallets\n * @type {Array}\n */\nlet arrPromoCodes = [];\n\n/**\n * Render locally-saved Promo Codes in the created list\n * @type {Promise} - The code count and HTML pair\n */\nexport async function renderSavedPromos() {\n // Begin rendering our list of codes\n let strHTML = '';\n\n // Finished or 'Saved' codes are hoisted to the top, static\n const db = await Database.getInstance();\n const arrCodes = await db.getAllPromos();\n\n // Render each code; sorted by Newest First, Oldest Last.\n for (const cDiskCode of arrCodes.sort((a, b) => b.time - a.time)) {\n // Move on-disk promos to a memory representation for quick state computation\n let cCode = arrPromoCodes.find((code) => code.code === cDiskCode.code);\n if (!cCode) {\n // Push this disk promo to memory\n cCode = cDiskCode;\n arrPromoCodes.push(cCode);\n }\n\n // Sync only the balance of the code (not full data)\n cCode.getUTXOs(false);\n const nBal = (await cCode.getBalance(true)) / COIN;\n\n // A code younger than ~3 minutes without a balance will just say 'confirming', since Blockbook does not return a balance for NEW codes\n const fNew = cCode.time.getTime() > Date.now() - 60000 * 3;\n\n // If this code is allowed to be deleted or not\n const fCannotDelete = !cCode.fSynced || fNew || nBal > 0;\n\n // Status calculation (defaults to 'fNew' condition)\n let strStatus = 'Confirming...';\n if (!fNew) {\n if (cCode.fSynced) {\n strStatus = nBal > 0 ? 'Unclaimed' : 'Claimed';\n } else {\n strStatus = 'Syncing';\n }\n }\n strHTML += `\n \n ${\n fCannotDelete\n ? ''\n : ''\n }\n \n ${\n cCode.code\n }\n ${\n fNew || !cCode.fSynced\n ? '...'\n : nBal + ' ' + cChainParams.current.TICKER\n }\n ${strStatus}\n \n `;\n }\n\n // Return how many codes were rendered\n return { codes: arrCodes.length, html: strHTML };\n}\n\n/** Export and download all PIVX Promos data in to a CSV format */\nexport async function promosToCSV() {\n const arrCSV = [\n // Titles\n ['Promo Code', 'PIV (Remaining)', 'Funding Address'],\n // Content\n ];\n\n // Push each code in to the CSV\n for (const cCode of arrPromoCodes) {\n arrCSV.push([\n cCode.code,\n (await cCode.getBalance(true)) / COIN,\n cCode.address,\n ]);\n }\n\n // Encode it\n const cCSV = arrayToCSV(arrCSV);\n\n // Download it\n downloadBlob(cCSV, 'promos.csv', 'text/csv;charset=utf-8;');\n}\n\n/**\n * Handle the Promo Workers, Code Rendering, and update or prompt the UI appropriately\n * @param {boolean} fRecursive - Whether this call is self-initiated or not\n */\nexport async function updatePromoCreationTick(fRecursive = false) {\n // Begin rendering our list of codes\n const cSavedCodes = await renderSavedPromos();\n let strHTML = cSavedCodes.html;\n\n // Loop all threads, displaying their progress\n for (const cThread of arrPromoCreationThreads) {\n // Check if the code is derived, if so, fill it with it's balance\n if (cThread.thread.key && !cThread.end_state) {\n const strAddress = deriveAddress({ pkBytes: cThread.thread.key });\n\n // Ensure the wallet is unlocked\n if (wallet.isViewOnly()) {\n $('#redeemCodeModal').modal('hide');\n if (await restoreWallet(translation.walletUnlockPromo)) {\n // Unlocked! Re-show the promo UI and continue\n $('#redeemCodeModal').modal('show');\n } else {\n // Failed to unlock, so just mark as cancelled\n cThread.end_state = 'Cancelled';\n $('#redeemCodeModal').modal('show');\n }\n }\n\n // Send the fill transaction if unlocked\n if (!wallet.isViewOnly()) {\n const res = await createAndSendTransaction({\n address: strAddress,\n amount: cThread.amount * COIN + 10000,\n }).catch((_) => {\n // Failed to create this code - mark it as errored\n cThread.end_state = 'Errored';\n });\n if (res && res.ok) {\n cThread.txid = res.txid;\n cThread.end_state = 'Done';\n } else {\n // If it looks like it was purposefully cancelled, then mark it as such\n cThread.end_state = 'Cancelled';\n }\n }\n }\n\n // The 'state' is either a percentage to completion, the TXID, or an arbitrary state (error, etc)\n let strState = '';\n if (cThread.txid) {\n // Complete state\n strState = 'Confirming...';\n } else if (cThread.end_state) {\n // Errored state (failed to broadcast, etc)\n strState = cThread.end_state;\n } else {\n // Display progress\n strState =\n '' +\n (cThread.thread.progress || 0) +\n '%';\n }\n\n // Render the table row\n strHTML =\n `\n \n \n ${cThread.code}\n ${cThread.amount} ${cChainParams.current.TICKER}\n ${strState}\n \n ` + strHTML;\n }\n\n // Render the compiled HTML\n doms.domRedeemCodeCreatePendingList.innerHTML = strHTML;\n\n const db = await Database.getInstance();\n for (const cThread of arrPromoCreationThreads) {\n if (cThread.end_state === 'Done') {\n // Convert to PromoWallet\n const cPromo = new PromoWallet({\n code: cThread.code,\n address: deriveAddress({ pkBytes: cThread.thread.key }),\n pkBytes: cThread.thread.key,\n // For storage, UTXOs are not necessary, so are left empty\n utxos: [],\n time: Date.now(),\n });\n\n // Save to DB\n await db.addPromo(cPromo);\n\n // Terminate and destroy the thread\n cThread.thread.terminate();\n arrPromoCreationThreads.splice(\n arrPromoCreationThreads.findIndex(\n (a) => a.code === cThread.code\n ),\n 1\n );\n }\n }\n\n // After the update completes, await another update in one second\n if (!fPromoIntervalStarted || fRecursive) {\n fPromoIntervalStarted = true;\n setTimeout(() => updatePromoCreationTick(true), 1000);\n }\n}\n\n/**\n * A sweep wrapper that handles the Promo UI after the sweep completes\n */\nexport async function sweepPromoCode() {\n // Only allow clicking if there's a promo code loaded in memory\n if (!cPromoWallet) return false;\n\n // Convert the Promo Wallet in to a LegacyMasterkey\n const cSweepMasterkey = new LegacyMasterKey({\n pkBytes: cPromoWallet.pkBytes,\n });\n\n // Perform sweep\n const strTXID = await sweepAddress(\n await cPromoWallet.getUTXOs(true),\n cSweepMasterkey,\n PROMO_FEE\n );\n\n // Display the promo redeem results, then schedule a reset of the UI\n if (strTXID) {\n // Coins were redeemed!\n const nAmt = ((await cPromoWallet.getBalance(true)) - PROMO_FEE) / COIN;\n doms.domRedeemCodeETA.innerHTML =\n '

You redeemed ' +\n nAmt.toLocaleString('en-GB') +\n ' ' +\n cChainParams.current.TICKER +\n '!';\n resetRedeemPromo(15);\n } else {\n // Most likely; this TX was claimed very recently and a mempool conflict occurred\n doms.domRedeemCodeETA.innerHTML =\n '

Oops, this code was valid, but someone may have claimed it seconds earlier!';\n doms.domRedeemCodeGiftIcon.classList.remove('fa-gift');\n doms.domRedeemCodeGiftIcon.classList.remove('fa-solid');\n doms.domRedeemCodeGiftIcon.classList.add('fa-face-frown');\n doms.domRedeemCodeGiftIcon.classList.add('fa-regular');\n resetRedeemPromo(7.5);\n }\n}\n\n/**\n * Resets the 'Redeem' promo code system back to it's default state\n * @param {number} nSeconds - The seconds to wait until the full reset\n */\nexport function resetRedeemPromo(nSeconds = 5) {\n // Nuke the in-memory Promo Wallet\n cPromoWallet = null;\n\n // Reset Promo UI\n doms.domRedeemCodeInput.value = '';\n doms.domRedeemCodeGiftIcon.classList.remove('ptr');\n doms.domRedeemCodeGiftIcon.classList.remove('fa-shake');\n\n // After the specified seconds, reset the UI fully, and wipe the Promo Wallet\n setTimeout(() => {\n doms.domRedeemCodeETA.innerHTML = '';\n doms.domRedeemCodeInputBox.style.display = '';\n doms.domRedeemCodeGiftIconBox.style.display = 'none';\n doms.domRedeemCodeGiftIcon.classList.add('fa-gift');\n doms.domRedeemCodeGiftIcon.classList.add('fa-solid');\n doms.domRedeemCodeGiftIcon.classList.remove('fa-face-frown');\n doms.domRedeemCodeGiftIcon.classList.remove('fa-regular');\n doms.domRedeemCodeConfirmBtn.style.display = '';\n }, nSeconds * 1000);\n}\n\n/**\n * @type {Worker?} - The thread used for the PIVX Promos redeem process\n */\nexport let promoThread = null;\n\n/**\n * Derive a 'PIVX Promos' code with a webworker\n * @param {string} strCode - The Promo Code to derive\n */\nexport async function redeemPromoCode(strCode) {\n // Ensure a Promo Code is not already being redeemed\n if (promoThread) return;\n\n // Create a new thread\n promoThread = new Worker(new URL('./promos_worker.js', import.meta.url));\n\n // Hide unnecessary UI components\n doms.domRedeemCodeInputBox.style.display = 'none';\n doms.domRedeemCodeConfirmBtn.style.display = 'none';\n\n // Display Progress data and Redeem Animations\n doms.domRedeemCodeETA.style.display = '';\n doms.domRedeemCodeGiftIconBox.style.display = '';\n doms.domRedeemCodeGiftIcon.classList.add('fa-bounce');\n\n // Listen for and report derivation progress\n promoThread.onmessage = async (evt) => {\n if (evt.data.type === 'progress') {\n doms.domRedeemCodeProgress.style.display = '';\n doms.domRedeemCodeETA.innerHTML =\n '

' +\n evt.data.res.eta.toFixed(0) +\n 's remaining to unwrap...

' +\n evt.data.res.progress +\n '%';\n doms.domRedeemCodeProgress.value = evt.data.res.progress;\n } else {\n // The finished key!\n promoThread.terminate();\n promoThread = null;\n\n // Pause animations and finish 'unwrapping' by checking the derived Promo Key for a balance\n doms.domRedeemCodeGiftIcon.classList.remove('fa-bounce');\n doms.domRedeemCodeProgress.style.display = 'none';\n doms.domRedeemCodeETA.innerHTML = '

Final checks...';\n\n // Prepare the global Promo Wallet\n cPromoWallet = new PromoWallet({\n code: strCode,\n address: '',\n pkBytes: evt.data.res.bytes,\n utxos: [],\n time: 0,\n });\n\n // Derive the Public Key and synchronise UTXOs from the network\n const nBalance = await cPromoWallet.getBalance();\n\n // Display if the code is Valid (has coins) or is empty\n if (nBalance > 0) {\n doms.domRedeemCodeGiftIcon.classList.add('fa-shake');\n doms.domRedeemCodeETA.innerHTML =\n '

This code is verified! Tap the gift to open it!';\n doms.domRedeemCodeGiftIcon.classList.add('ptr');\n } else {\n doms.domRedeemCodeETA.innerHTML =\n '

This code had no balance!';\n doms.domRedeemCodeGiftIcon.classList.remove('fa-gift');\n doms.domRedeemCodeGiftIcon.classList.remove('fa-solid');\n doms.domRedeemCodeGiftIcon.classList.add('fa-face-frown');\n doms.domRedeemCodeGiftIcon.classList.add('fa-regular');\n resetRedeemPromo();\n }\n }\n };\n\n // Send our 'Promo Code' to be derived on a separate thread, allowing a faster and non-blocking derivation\n promoThread.postMessage(strCode);\n}\n\n/**\n * Prompt a QR scan for a PIVX Promos code\n */\nexport async function openPromoQRScanner() {\n const cScan = await scanQRCode();\n\n if (!cScan || !cScan.data) return;\n\n // Enter the scanned code in to the redeem box\n doms.domRedeemCodeInput.value = cScan.data;\n}\n","import { openDB, IDBPDatabase } from 'idb';\nimport Masternode from './masternode.js';\nimport { Settings } from './settings.js';\nimport { cChainParams } from './chain_params.js';\nimport {\n confirmPopup,\n sanitizeHTML,\n createAlert,\n isSameType,\n isEmpty,\n} from './misc.js';\nimport { PromoWallet } from './promos.js';\nimport { ALERTS, translation } from './i18n.js';\nimport { Account } from './accounts.js';\n\n/** The current version of the DB - increasing this will prompt the Upgrade process for clients with an older version */\nexport const DB_VERSION = 2;\n\n/**\n *\n */\nexport class Database {\n /**\n * Current Database Version.\n * Version 1 = Add index DB (PR #[FILL])\n * @type{Number}\n */\n static version = 1;\n\n /**\n * @type{IDBPDatabase}\n */\n #db;\n\n constructor({ db }) {\n this.#db = db;\n }\n\n close() {\n this.#db.close();\n this.#db = null;\n }\n\n /**\n * Add masternode to the database\n * @param {Masternode} masternode\n * @param {Masterkey} _masterKey - Masterkey associated to the masternode. Currently unused\n */\n async addMasternode(masternode, _masterKey) {\n const store = this.#db\n .transaction('masternodes', 'readwrite')\n .objectStore('masternodes');\n // For now the key is 'masternode' since we don't support multiple masternodes\n await store.put(masternode, 'masternode');\n }\n /**\n * Removes a masternode\n * @param {Masterkey} _masterKey - Masterkey associated to the masternode. Currently unused\n */\n async removeMasternode(_masterKey) {\n const store = this.#db\n .transaction('masternodes', 'readwrite')\n .objectStore('masternodes');\n await store.delete('masternode');\n }\n\n /**\n * Add Promo Code to the database for tracking and management\n * @param {PromoWallet} promo\n */\n async addPromo(promo) {\n const store = this.#db\n .transaction('promos', 'readwrite')\n .objectStore('promos');\n // The plaintext code is our key, since codes are unique and deterministic anyway\n await store.put(promo, promo.code);\n }\n /**\n * Removes a Promo Code from the Promo management system\n * @param {string} promo - the promo code to remove\n */\n async removePromo(promo) {\n const store = this.#db\n .transaction('promos', 'readwrite')\n .objectStore('promos');\n await store.delete(promo);\n }\n\n /**\n * Adds an account to the database\n *\n * This will also apply missing Account keys from the Account class automatically, and check high-level type safety.\n * @param {Account} account - The Account to add\n */\n async addAccount(account) {\n // Critical: Ensure the input is an Account instance\n if (!(account instanceof Account)) {\n console.error(\n '---- addAccount() called with invalid input, input dump below ----'\n );\n console.error(account);\n console.error('---- end of account dump ----');\n createAlert(\n 'warning',\n 'Account Creation Error
Logs were dumped in your Browser Console
Please submit these privately to PIVX Labs Developers!'\n );\n return false;\n }\n\n // Create an empty DB Account\n const cDBAccount = new Account();\n\n // We'll overlay the `account` keys atop the `DB Account` keys:\n // Note: Since the Account constructor defaults all properties to type-safe defaults, we can already assume `cDBAccount` is safe.\n // Note: Since `addAccount` could be called with *anything*, we must apply the same type-safety on it's input.\n for (const strKey of Object.keys(cDBAccount)) {\n // Ensure the Type is correct for the Key against the Account class\n if (!isSameType(account[strKey], cDBAccount[strKey])) {\n console.error(\n 'DB: addAccount() key \"' +\n strKey +\n '\" does NOT match the correct class type, likely data mismatch, please report!'\n );\n continue;\n }\n\n // Overlay the 'new' keys on top of the DB keys\n cDBAccount[strKey] = account[strKey];\n }\n\n const store = this.#db\n .transaction('accounts', 'readwrite')\n .objectStore('accounts');\n\n // Check this account isn't already added (by pubkey once multi-account)\n if (await store.get('account'))\n return console.error(\n 'DB: Ran addAccount() when account already exists!'\n );\n\n // When the account system is going to be added, the key is gonna be the publicKey\n await store.put(cDBAccount, 'account');\n }\n\n /**\n * Update specified keys for an Account in the DB.\n *\n * This will also apply new Account keys from MPW updates automatically, and check high-level type safety.\n *\n * ---\n *\n * To allow \"deleting/clearing/resetting\" keys, for example, when removing Proposals or Contacts, toggle `allowDeletion`.\n *\n * **Do NOT toggle unless otherwise necessary**, to avoid overwriting keys from code errors or misuse.\n * @param {Account} account - The Account to update, with new data inside\n * @param {boolean} allowDeletion - Allow setting keys to an \"empty\" state (`\"\"`, `[]`, `{}`)\n */\n async updateAccount(account, allowDeletion = false) {\n // Critical: Ensure the input is an Account instance\n if (!(account instanceof Account)) {\n console.error(\n '---- updateAccount() called with invalid input, input dump below ----'\n );\n console.error(account);\n console.error('---- end of account dump ----');\n createAlert(\n 'warning',\n 'DB Update Error
Your wallet is safe, logs were dumped in your Browser Console
Please submit these privately to PIVX Labs Developers!'\n );\n return false;\n }\n\n // Fetch the DB account\n const cDBAccount = await this.getAccount();\n\n // If none exists; we should throw an error, as there's no reason for MPW to call `updateAccount` before an account was added using `addAccount`\n // Note: This is mainly to force \"good standards\" in which we don't lazily use `updateAccount` to create NEW accounts.\n if (!cDBAccount) {\n console.error(\n '---- updateAccount() called without an account existing, input dump below ----'\n );\n console.error(account);\n console.error('---- end of input dump ----');\n createAlert(\n 'warning',\n 'DB Update Error
Logs were dumped in your Browser Console
Please submit these privately to PIVX Labs Developers!'\n );\n return false;\n }\n\n // We'll overlay the `account` keys atop the `DB Account` keys:\n // Note: Since `getAccount` already checks type-safety, we can already assume `cDBAccount` is safe.\n // Note: Since `updateAccount` could be called with *anything*, we must apply the same type-safety on it's input.\n for (const strKey of Object.keys(cDBAccount)) {\n // Ensure the Type is correct for the Key against the Account class\n if (!isSameType(account[strKey], cDBAccount[strKey])) {\n console.error(\n 'DB: updateAccount() key \"' +\n strKey +\n '\" does NOT match the correct class type, likely data mismatch, please report!'\n );\n continue;\n }\n\n // Ensure the 'updated' key (which may not exist) is NOT a default or EMPTY value\n // Note: this can be overriden manually when erasing data such as Contacts, Local Proposals, etc.\n if (!allowDeletion && isEmpty(account[strKey])) continue;\n\n // Overlay the 'new' keys on top of the DB keys\n cDBAccount[strKey] = account[strKey];\n }\n\n const store = this.#db\n .transaction('accounts', 'readwrite')\n .objectStore('accounts');\n // When the account system is going to be added, the key is gonna be the publicKey\n await store.put(cDBAccount, 'account');\n }\n\n /**\n * Removes an account from the database\n * @param {Object} o\n * @param {String} o.publicKey - Public key associated to the account.\n */\n async removeAccount({ publicKey }) {\n const store = this.#db\n .transaction('accounts', 'readwrite')\n .objectStore('accounts');\n // When the account system is going to be added, the key is gonna be the publicKey\n await store.delete('account');\n }\n\n /**\n * Gets an account from the database.\n *\n * This also will apply new keys from MPW updates automatically, and check high-level type safety.\n * @returns {Promise}\n */\n async getAccount() {\n const store = this.#db\n .transaction('accounts', 'readonly')\n .objectStore('accounts');\n const cDBAccount = await store.get('account');\n\n // If there's no DB Account, we'll return null early\n if (!cDBAccount) return null;\n\n // We'll generate an Account Class for up-to-date keys, then layer the 'new' type-checked properties on it one-by-one\n const cAccount = new Account();\n for (const strKey of Object.keys(cAccount)) {\n // If the key is missing: this is fine, `cAccount` will auto-fill it with the default blank Account Class type and value\n if (!Object.prototype.hasOwnProperty.call(cDBAccount, strKey))\n continue;\n\n // Ensure the Type is correct for the Key against the Account class (with instanceof to also check Class validity)\n if (!isSameType(cDBAccount[strKey], cAccount[strKey])) {\n console.error(\n 'DB: getAccount() key \"' +\n strKey +\n '\" does NOT match the correct class type, likely bad data saved, please report!'\n );\n continue;\n }\n\n // Overlay the 'DB' keys on top of the Class Instance keys\n cAccount[strKey] = cDBAccount[strKey];\n }\n\n // Return the Account Class\n return cAccount;\n }\n\n /**\n * @returns {Promise} the masternode stored in the db\n */\n async getMasternode(_masterKey) {\n const store = this.#db\n .transaction('masternodes', 'readonly')\n .objectStore('masternodes');\n return new Masternode(await store.get('masternode'));\n }\n\n /**\n * @returns {Promise>} all Promo Codes stored in the db\n */\n async getAllPromos() {\n const store = this.#db\n .transaction('promos', 'readonly')\n .objectStore('promos');\n // Convert all promo objects in to their Class and return them as a new array\n return (await store.getAll()).map((promo) => new PromoWallet(promo));\n }\n\n /**\n * @returns {Promise}\n */\n async getSettings() {\n const store = this.#db\n .transaction('settings', 'readonly')\n .objectStore('settings');\n return new Settings(await store.get('settings'));\n }\n\n /**\n * @param {Settings} settings - settings to use\n * @returns {Promise}\n */\n async setSettings(settings) {\n const oldSettings = await this.getSettings();\n const store = this.#db\n .transaction('settings', 'readwrite')\n .objectStore('settings');\n await store.put(\n {\n ...oldSettings,\n ...settings,\n },\n 'settings'\n );\n }\n\n /**\n * Migrates from local storage\n * @param {IDBPDatabase} db\n */\n async #migrateLocalStorage() {\n if (localStorage.length === 0) return;\n const settings = new Settings({\n analytics: localStorage.analytics,\n explorer: localStorage.explorer,\n node: localStorage.node,\n translation: localStorage.translation,\n displayCurrency: localStorage.displayCurrency,\n });\n await this.setSettings(settings);\n\n if (localStorage.masternode) {\n try {\n const masternode = JSON.parse(localStorage.masternode);\n await this.addMasternode(masternode);\n } catch (e) {\n console.error(e);\n createAlert('warning', ALERTS.MIGRATION_MASTERNODE_FAILURE);\n }\n }\n\n if (localStorage.encwif || localStorage.publicKey) {\n try {\n const localProposals = JSON.parse(\n localStorage.localProposals || '[]'\n );\n\n // Update and format the old Account data\n const cAccount = new Account({\n publicKey: localStorage.publicKey,\n encWif: localStorage.encwif,\n localProposals: localProposals,\n });\n\n // Migrate the old Account data to the new DB\n await this.addAccount(cAccount);\n } catch (e) {\n console.error(e);\n createAlert('warning', ALERTS.MIGRATION_ACCOUNT_FAILURE);\n if (localStorage.encwif) {\n await confirmPopup({\n title: translation.MIGRATION_ACCOUNT_FAILURE_TITLE,\n html: `${\n translation.MIGRATION_ACCOUNT_FAILURE_HTML\n } ${sanitizeHTML(\n localStorage.encwif\n )} `,\n });\n }\n }\n }\n }\n\n static async create(name) {\n let migrate = false;\n const database = new Database({ db: null });\n const db = await openDB(`MPW-${name}`, DB_VERSION, {\n upgrade: (db, oldVersion) => {\n console.log(\n 'DB: Upgrading from ' + oldVersion + ' to ' + DB_VERSION\n );\n if (oldVersion == 0) {\n db.createObjectStore('masternodes');\n db.createObjectStore('accounts');\n db.createObjectStore('settings');\n migrate = true;\n }\n\n // The introduction of PIVXPromos (safely added during {\n // Another instance is waiting to upgrade, and we're preventing it\n // Close the database and refresh the page\n // (This would only happen if the user opened another window after MPW got an update)\n database.close();\n alert('New update received!');\n window.location.reload();\n },\n });\n database.#db = db;\n if (migrate) {\n database.#migrateLocalStorage();\n }\n return database;\n }\n\n /**\n * Map name->instnace\n * @type{Map}\n */\n static #instances = new Map();\n\n /**\n * @return {Promise} the default database instance\n */\n static async getInstance() {\n const name = cChainParams.current.name;\n const instance = this.#instances.get(name);\n if (!instance || !instance.#db) {\n this.#instances.set(name, await Database.create(name));\n }\n\n return this.#instances.get(name);\n }\n}\n","import { translation_template } from '../locale/template/translation.js';\nimport { Database } from './database.js';\nimport { fillAnalyticSelect, setTranslation } from './settings.js';\nimport { updateEncryptionGUI } from './global.js';\nimport { wallet } from './wallet.js';\nimport { getNetwork } from './network.js';\nimport { cReceiveType, guiToggleReceiveType } from './contacts-book.js';\nimport { reactive } from 'vue';\n\n/**\n * @type {translation_template}\n */\nexport const ALERTS = {};\n\n/**\n * @type {translation_template}\n */\nexport const translation = reactive({});\n\n/**\n * @param {string} code\n * @returns {Promise}\n */\nasync function getLanguage(code) {\n return (await import(`../locale/${code}/translation.js`)).default;\n}\n\n/**\n * Takes the language name and sets the translation settings based on the language file\n * @param {string} langName\n */\nexport async function switchTranslation(langName) {\n if (arrActiveLangs.find((lang) => lang.code === langName)) {\n // Load every 'active' key of the language, otherwise, we'll default the key to the EN file\n const arrNewLang = await getLanguage(langName);\n for (const strKey of Object.keys(arrNewLang)) {\n // Skip empty and/or missing i18n keys, defaulting them to EN\n if (!arrNewLang[strKey]) {\n // It's fine if we import a language multiple times\n // Webpack will fetch it once from the server\n translation[strKey] = (await getLanguage('en'))[strKey];\n continue;\n }\n\n // Apply the new i18n value to our runtime i18n sheet\n translation[strKey] = arrNewLang[strKey];\n }\n\n // Translate static`data-i18n` tags\n translateStaticHTML(translation);\n\n // Translate any dynamic elements necessary\n const cNet = getNetwork();\n if (wallet.isLoaded() && cNet) {\n updateEncryptionGUI();\n }\n loadAlerts();\n fillAnalyticSelect();\n if (wallet.isLoaded()) {\n guiToggleReceiveType(cReceiveType);\n }\n return true;\n } else {\n console.log(\n 'i18n: The language (' +\n langName +\n \") is not supported yet, if you'd like to contribute translations (for rewards!) contact us on GitHub or Discord!\"\n );\n switchTranslation('en');\n return false;\n }\n}\n\n/**\n * Takes an i18n string that includes `{x}` and replaces that based on what is in the array of objects\n * @param {string} message\n * @param {Array} variables\n * @returns a string with the variables implemented in the string\n *\n * @example\n * //returns \"test this\"\n * tr(\"test {x}\" [x: \"this\"])\n */\nexport function tr(message, variables) {\n variables.forEach((element) => {\n message = message.replaceAll(\n '{' + Object.keys(element)[0] + '}',\n Object.values(element)[0]\n );\n });\n return message;\n}\n\n/**\n * Translates all static HTML based on the `data-i18n` tag\n * @param {Array} i18nLangs\n */\nexport function translateStaticHTML(i18nLangs) {\n if (!i18nLangs) return;\n\n document.querySelectorAll('[data-i18n]').forEach(function (element) {\n if (!i18nLangs[element.dataset.i18n]) return;\n\n if (element.dataset.i18n_target) {\n element[element.dataset.i18n_target] =\n i18nLangs[element.dataset.i18n];\n } else {\n switch (element.tagName.toLowerCase()) {\n case 'input':\n case 'textarea':\n element.placeholder = i18nLangs[element.dataset.i18n];\n break;\n default:\n element.innerHTML = i18nLangs[element.dataset.i18n];\n break;\n }\n }\n });\n loadAlerts();\n}\n\n/**\n * Translates the alerts by loading the data into the ALERTS object\n */\nexport function loadAlerts() {\n // Alerts are designated by a special 'ALERTS' entry in each translation file\n let fFoundAlerts = false;\n for (const [alert_key, alert_translation] of Object.entries(translation)) {\n if (fFoundAlerts) {\n ALERTS[alert_key] = alert_translation;\n }\n // Skip all entries until we find the ALERTS flag\n if (alert_key === 'ALERTS') fFoundAlerts = true;\n }\n}\nfunction parseUserAgentLang(strUA, arrLangsWithSubset) {\n if (arrLangsWithSubset.some((strLang) => strUA.includes(strLang))) {\n // Split the lang in to 'primary' and 'subset', only use the primary lang\n return strUA.substring(0, 2);\n }\n // Otherwise, just use the full language spec\n return strUA;\n}\n\nexport const arrActiveLangs = [\n { code: 'en', emoji: '🇬🇧' },\n { code: 'fr', emoji: '🇫🇷' },\n { code: 'de', emoji: '🇩🇪' },\n { code: 'it', emoji: '🇮🇹' },\n { code: 'pt-pt', emoji: '🇵🇹' },\n { code: 'pt-br', emoji: '🇧🇷' },\n { code: 'es-mx', emoji: '🇲🇽' },\n { code: 'ph', emoji: '🇵🇭' },\n { code: 'uwu', emoji: '🐈' },\n];\n\nexport async function start() {\n // We use this function to parse the UA lang in a safer way: for example, there's multiple `en` definitions\n // ... but we shouldn't duplicate the language files, we can instead cut the affix (US, GB) and simply use 'en'.\n // ... This logic may apply to other languages with such subsets as well, so take care of them here!\n const arrLangsWithSubset = ['en', 'fr', 'de'];\n\n const localeLang =\n window?.navigator?.userLanguage || window?.navigator?.language;\n const strLang = localeLang\n ? parseUserAgentLang(localeLang.toLowerCase(), arrLangsWithSubset)\n : undefined;\n\n const database = await Database.getInstance();\n const { translation: localTranslation } = await database.getSettings();\n\n // Check if set in local storage\n if (localTranslation !== '') {\n setTranslation(localTranslation);\n } else {\n // Check if we support the user's browser locale\n if (arrActiveLangs.find((lang) => lang.code === strLang)) {\n setTranslation(strLang);\n } else {\n // Default to EN if the locale isn't supported yet\n console.log(\n 'i18n: Your language (' +\n strLang +\n \") is not supported yet, if you'd like to contribute translations (for rewards!) contact us on GitHub or Discord!\"\n );\n setTranslation('en');\n }\n }\n translateStaticHTML(translation);\n}\n","import { sha256 } from '@noble/hashes/sha256';\nimport { hexToBytes, bytesToHex, dSHA256 } from './utils.js';\nimport * as nobleSecp256k1 from '@noble/secp256k1';\nimport { ripemd160 } from '@noble/hashes/ripemd160';\nimport { cChainParams, PRIVKEY_BYTE_LENGTH } from './chain_params.js';\nimport {\n pubKeyHashNetworkLen,\n writeToUint8,\n getSafeRand,\n pubPrebaseLen,\n} from './misc.js';\n\nimport bs58 from 'bs58';\n\n/**\n * Compress an uncompressed Public Key in byte form\n * @param {Array | Uint8Array} pubKeyBytes - The uncompressed public key bytes\n * @returns {Array} The compressed public key bytes\n */\nexport function compressPublicKey(pubKeyBytes) {\n if (pubKeyBytes.length != 65)\n throw new Error('Attempting to compress an invalid uncompressed key');\n const x = pubKeyBytes.slice(1, 33);\n const y = pubKeyBytes.slice(33);\n\n // Compressed key is [key_parity + 2, x]\n return [y[31] % 2 === 0 ? 2 : 3, ...x];\n}\n\n/**\n * Network encode 32 bytes for a private key\n * @param {Uint8Array} pkBytes - 32 Bytes\n * @returns {Uint8Array} - The network-encoded Private Key bytes\n */\nexport function encodePrivkeyBytes(pkBytes) {\n const pkNetBytes = new Uint8Array(pkBytes.length + 2);\n pkNetBytes[0] = cChainParams.current.SECRET_KEY; // Private key prefix (1 byte)\n writeToUint8(pkNetBytes, pkBytes, 1); // Private key bytes (32 bytes)\n pkNetBytes[pkNetBytes.length - 1] = 1; // Leading digit (1 byte)\n return pkNetBytes;\n}\n\n/**\n * Generate a new private key OR encode an existing private key from raw bytes\n * @param {Uint8Array} pkBytesToEncode - Bytes to encode as a coin private key\n * @returns {PrivateKey} - The private key\n */\nexport function generateOrEncodePrivkey(pkBytesToEncode) {\n // Private Key Generation\n const pkBytes = pkBytesToEncode || getSafeRand();\n\n // Network Encoding\n const pkNetBytes = encodePrivkeyBytes(pkBytes);\n\n // Double SHA-256 hash\n const shaObj = dSHA256(pkNetBytes);\n\n // WIF Checksum\n const checksum = shaObj.slice(0, 4);\n const keyWithChecksum = new Uint8Array(34 + checksum.length);\n writeToUint8(keyWithChecksum, pkNetBytes, 0);\n writeToUint8(keyWithChecksum, checksum, 34);\n\n // Return both the raw bytes and the WIF format\n return { pkBytes, strWIF: bs58.encode(keyWithChecksum) };\n}\n\n/**\n * Derive a Secp256k1 network-encoded public key (coin address) from raw private or public key bytes\n * @param {Object} options - The object to deconstruct\n * @param {String} [options.publicKey] - The hex encoded public key. Can be both compressed or uncompressed\n * @param {Array | Uint8Array} [options.pkBytes] - An array of bytes containing the private key\n * @param {\"ENCODED\" | \"UNCOMPRESSED_HEX\" | \"COMPRESSED_HEX\"} options.output - Output\n * @return {String} the public key with the specified encoding\n */\nexport function deriveAddress({ pkBytes, publicKey, output = 'ENCODED' }) {\n if (!pkBytes && !publicKey) return null;\n const compress = output !== 'UNCOMPRESSED_HEX';\n // Public Key Derivation\n let pubKeyBytes = publicKey\n ? hexToBytes(publicKey)\n : nobleSecp256k1.getPublicKey(pkBytes, compress);\n\n if (output === 'UNCOMPRESSED_HEX') {\n if (pubKeyBytes.length !== 65) {\n // It's actually possible, but it's probably not something that we'll need\n throw new Error(\"Can't uncompress an already compressed key\");\n }\n return bytesToHex(pubKeyBytes);\n }\n\n if (pubKeyBytes.length === 65) {\n pubKeyBytes = compressPublicKey(pubKeyBytes);\n }\n\n if (pubKeyBytes.length != 33) {\n throw new Error('Invalid public key');\n }\n\n if (output === 'COMPRESSED_HEX') {\n return bytesToHex(pubKeyBytes);\n }\n\n // First pubkey SHA-256 hash\n const pubKeyHashing = sha256(new Uint8Array(pubKeyBytes));\n\n // RIPEMD160 hash\n const pubKeyHashRipemd160 = ripemd160(pubKeyHashing);\n\n // Network Encoding\n const pubKeyHashNetwork = new Uint8Array(pubKeyHashNetworkLen);\n pubKeyHashNetwork[0] = cChainParams.current.PUBKEY_ADDRESS;\n writeToUint8(pubKeyHashNetwork, pubKeyHashRipemd160, 1);\n\n // Double SHA-256 hash\n const pubKeyHashingSF = dSHA256(pubKeyHashNetwork);\n\n // Checksum\n const checksumPubKey = pubKeyHashingSF.slice(0, 4);\n\n // Public key pre-base58\n const pubKeyPreBase = new Uint8Array(pubPrebaseLen);\n writeToUint8(pubKeyPreBase, pubKeyHashNetwork, 0);\n writeToUint8(pubKeyPreBase, checksumPubKey, pubKeyHashNetworkLen);\n\n // Encode as Base58 human-readable network address\n return bs58.encode(pubKeyPreBase);\n}\n\n// Verify the integrity of a WIF private key, optionally parsing and returning the key payload\nexport function verifyWIF(\n strWIF = '',\n fParseBytes = false,\n skipVerification = false\n) {\n // Convert from Base58\n const bWIF = bs58.decode(strWIF);\n\n if (!skipVerification) {\n // Verify the byte length\n if (bWIF.byteLength !== PRIVKEY_BYTE_LENGTH) {\n throw Error(\n 'Private key length (' +\n bWIF.byteLength +\n ') is invalid, should be ' +\n PRIVKEY_BYTE_LENGTH +\n '!'\n );\n }\n\n // Verify the network byte\n if (bWIF[0] !== cChainParams.current.SECRET_KEY) {\n // Find the network it's trying to use, if any\n const cNetwork = Object.keys(cChainParams)\n .filter((strNet) => strNet !== 'current')\n .map((strNet) => cChainParams[strNet])\n .find((cNet) => cNet.SECRET_KEY === bWIF[0]);\n // Give a specific alert based on the byte properties\n throw Error(\n cNetwork\n ? 'This private key is for ' +\n (cNetwork.isTestnet ? 'Testnet' : 'Mainnet') +\n ', wrong network!'\n : 'This private key belongs to another coin, or is corrupted.'\n );\n }\n\n // Perform SHA256d hash of the WIF bytes\n const shaHash = dSHA256(bWIF.slice(0, 34));\n\n // Verify checksum (comparison by String since JS hates comparing object-like primitives)\n const bChecksumWIF = bWIF.slice(bWIF.byteLength - 4);\n const bChecksum = shaHash.slice(0, 4);\n if (bChecksumWIF.join('') !== bChecksum.join('')) {\n throw Error(\n 'Private key checksum is invalid, key may be modified, mis-typed, or corrupt.'\n );\n }\n }\n\n return fParseBytes ? Uint8Array.from(bWIF.slice(1, 33)) : true;\n}\n\n// A convenient alias to verifyWIF that returns the raw byte payload\nexport function parseWIF(strWIF, skipVerification = false) {\n return verifyWIF(strWIF, true, skipVerification);\n}\n","import { deriveAddress } from './encoding.js';\nimport { getSafeRand } from './misc.js';\n\nonmessage = function (_evt) {\n while (true) {\n const cKeypair = {};\n cKeypair.priv = getSafeRand();\n\n cKeypair.pub = deriveAddress({ pkBytes: cKeypair.priv });\n postMessage(cKeypair);\n }\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// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n// the startup function\n__webpack_require__.x = () => {\n\t// Load entry module and return exports\n\t// This entry module depends on other loaded chunks and execution need to be delayed\n\tvar __webpack_exports__ = __webpack_require__.O(undefined, [621,350], () => (__webpack_require__(57119)))\n\t__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n\treturn __webpack_exports__;\n};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((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 and sibling chunks for the entrypoint\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"./\" + chunkId + \".mpw.js\";\n};","// This function allow to reference async chunks and sibling chunks for the entrypoint\n__webpack_require__.miniCssF = (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__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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 = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && !scriptUrl) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = self.location + \"\";\n\n// object to store loaded chunks\n// \"1\" means \"already loaded\"\nvar installedChunks = {\n\t326: 1\n};\n\n// importScripts chunk loading\nvar installChunk = (data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\tfor(var moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) runtime(__webpack_require__);\n\twhile(chunkIds.length)\n\t\tinstalledChunks[chunkIds.pop()] = 1;\n\tparentChunkLoadingFunction(data);\n};\n__webpack_require__.f.i = (chunkId, promises) => {\n\t// \"1\" is the signal for \"already loaded\"\n\tif(!installedChunks[chunkId]) {\n\t\tif(true) { // all chunks have JS\n\t\t\timportScripts(__webpack_require__.p + __webpack_require__.u(chunkId));\n\t\t}\n\t}\n};\n\nvar chunkLoadingGlobal = self[\"webpackChunkMPW\"] = self[\"webpackChunkMPW\"] || [];\nvar parentChunkLoadingFunction = chunkLoadingGlobal.push.bind(chunkLoadingGlobal);\nchunkLoadingGlobal.push = installChunk;\n\n// no HMR\n\n// no HMR manifest","// run startup\nvar __webpack_exports__ = __webpack_require__.x();\n"],"names":["deferred","leafPrototypes","getProto","next","map","webpackAsyncContext","req","__webpack_require__","o","Promise","resolve","then","e","Error","code","ids","id","all","slice","keys","Object","module","exports","amount","staking","wallet","display","activity","yes","no","navDashboard","navStake","navMasternode","navGovernance","navSettings","footerBuiltWithPivxLabs","loading","loadingTitle","dashboardTitle","dCardOneTitle","dCardOneSubTitle","dCardOneDesc","dCardOneButton","dCardTwoTitle","dCardTwoSubTitle","dCardTwoDesc","dCardTwoButton","dCardThreeTitle","dCardThreeSubTitle","dCardThreeDesc","dCardThreeButton","dCardFourTitle","dCardFourSubTitle","dCardFourDesc","dCardFourButtonI","dCardFourButtonA","vanityPrefixNote","vanityPrefixInput","thisIsYourSeed","writeDownSeed","doNotShareWarning","doNotShare","digitalStoreNotAdvised","optionalPassphrase","writtenDown","importSeedValid","importSeedError","importSeedErrorSize","importSeedErrorTypo","importSeedErrorSkip","gettingStarted","secureYourWallet","unlockWallet","lockWallet","encryptWallet","encryptPasswordCurrent","encryptPasswordFirst","encryptPasswordSecond","encrypt","changePassword","balanceBreakdown","viewOnExplorer","export","refreshAddress","redeemOrCreateCode","address","receivingAddress","sendAmountCoinsMax","paymentRequestMessage","send","receive","contacts","name","username","addressOrXPub","back","chooseAContact","createContact","encryptFirstForContacts","shareContactURL","setupYourContact","receiveWithContact","onlyShareContactPrivately","changeTo","contact","xpub","addContactTitle","addContactSubtext","addContactWarning","editContactTitle","newName","removeContactTitle","removeContactSubtext","removeContactNote","privateKey","viewPrivateKey","privateWarning1","privateWarning2","viewKey","pivxPromos","redeemInput","createName","createAmount","stake","stakeUnstake","ownerAddress","rewardHistory","loadMore","mnControlYour","mnSubtext","govSubtext","govMonthlyBudget","govAllocBudget","govNextPayout","govTableStatus","govTableName","govTablePayment","govTableVotes","govTableVote","contestedProposalsDesc","settingsCurrency","priceProvidedBy","settingsDecimals","settingsExplorer","settingsLanguage","settingsPivxNode","settingsAutoSelectNet","settingsAnalytics","settingsToggleDebug","settingsToggleTestnet","settingsToggleAdvancedMode","settingsToggleAdvancedModeSubtext","netSwitchUnsavedWarningTitle","netSwitchUnsavedWarningSubtitle","netSwitchUnsavedWarningSubtext","netSwitchUnsavedWarningConfirmation","transparencyReport","hit","time_to_sync","transaction","analyticDisabled","analyticMinimal","analyticBalanced","MIGRATION_ACCOUNT_FAILURE_TITLE","MIGRATION_ACCOUNT_FAILURE_HTML","ID","time","description","activityBlockReward","activitySentTo","activitySelf","activityShieldedAddress","activityReceivedFrom","activityDelegatedTo","activityUndelegated","activityUnknown","password","walletUnlock","walletPassword","walletUnlockCreateMN","walletUnlockMNStart","walletUnlockProposal","walletUnlockPromo","walletUnlockTx","walletUnlockStake","walletUnlockUnstake","changelogTitle","popupSetColdAddr","popupCurrentAddress","popupColdStakeNote","popupExample","popupWalletLock","popupWalletWipe","popupWalletLockNote","popupWalletWipeNote","popupSeedPhraseBad","popupSeedPhraseBadNote","popupCreateProposal","popupCreateProposalCost","popupProposalName","popupProposalAddress","popupProposalDuration","popupProposalPerCycle","popupProposalEncryptFirst","popupProposalVoteHash","popupProposalFinalisedNote","popupProposalFinalisedSignoff","popupHardwareAddrCheck","proposalFinalisationConfirming","proposalFinalisationRemaining","proposalFinalisationExpired","proposalFinalisationReady","proposalPassing","proposalFailing","proposalTooYoung","proposalFunded","proposalNotFunded","proposalPaymentsRemaining","proposalPaymentTotal","proposalNetYes","popupConfirm","popupClose","popupCancel","chartPublicAvailable","timeDays","timeHours","timeMinutes","timeSeconds","unhandledException","ALERTS","INTERNAL_ERROR","FAILED_TO_IMPORT","FAILED_TO_IMPORT_HARDWARE","UNSUPPORTED_CHARACTER","UNSUPPORTED_WEBWORKERS","INVALID_ADDRESS","TESTNET_ENCRYPTION_DISABLED","PASSWORD_TOO_SMALL","PASSWORD_DOESNT_MATCH","NEW_PASSWORD_SUCCESS","INCORRECT_PASSWORD","INVALID_AMOUNT","TX_SENT","TX_FAILED","QR_SCANNER_BAD_RECEIVER","VALIDATE_AMOUNT_LOW","VALIDATE_AMOUNT_DECIMAL","SUCCESS_STAKING_ADDR","STAKE_ADDR_SET","STAKE_ADDR_BAD","CONFIRM_UNSTAKE_H_WALLET","CONFIRM_TRANSACTION_H_WALLET","SUCCESS_STAKING_ADDR_SET","STAKE_NOT_SEND","BAD_ADDR_LENGTH","BAD_ADDR_PREFIX","SENT_NOTHING","MORE_THEN_8_DECIMALS","SAVE_WALLET_PLEASE","BACKUP_OR_ENCRYPT_WALLET","NO_CAMERAS","STAKING_LEDGER_NO_SUPPORT","CONNECTION_FAILED","MN_NOT_ENABLED","VOTE_SUBMITTED","VOTED_ALREADY","VOTE_SIG_BAD","MN_CREATED_WAIT_CONFS","MN_ACCESS_BEFORE_VOTE","MN_OFFLINE_STARTING","MN_STARTED","MN_RESTARTED","MN_STARTED_ONLINE_SOON","MN_START_FAILED","MN_RESTART_FAILED","MN_DESTROYED","MN_STATUS_IS","MN_STATE","MN_BAD_IP","MN_NOT_ENOUGH_COLLAT","MN_ENOUGH_BUT_NO_COLLAT","MN_COLLAT_NOT_SUITABLE","MN_CANT_CONNECT","CONTACTS_ENCRYPT_FIRST","CONTACTS_NAME_REQUIRED","CONTACTS_NAME_TOO_LONG","CONTACTS_CANNOT_ADD_YOURSELF","CONTACTS_ALREADY_EXISTS","CONTACTS_NAME_ALREADY_EXISTS","CONTACTS_EDIT_NAME_ALREADY_EXISTS","CONTACTS_KEY_ALREADY_EXISTS","CONTACTS_NOT_A_CONTACT_QR","CONTACTS_ADDED","CONTACTS_YOU_HAVE_NONE","SWITCHED_EXPLORERS","SWITCHED_NODE","SWITCHED_ANALYTICS","SWITCHED_SYNC","UNABLE_SWITCH_TESTNET","WALLET_OFFLINE_AUTOMATIC","WALLET_UNLOCK_IMPORT","WALLET_FIREFOX_UNSUPPORTED","WALLET_HARDWARE_WALLET","WALLET_CONFIRM_L","WALLET_NO_HARDWARE","WALLET_HARDWARE_CONNECTION_LOST","WALLET_HARDWARE_UDEV","WALLET_HARDWARE_NO_ACCESS","WALLET_HARDWARE_BUSY","WALLET_HARDWARE_ERROR","CONFIRM_POPUP_VOTE","CONFIRM_POPUP_VOTE_HTML","CONFIRM_POPUP_TRANSACTION","CONFIRM_POPUP_MN_P_KEY","CONFIRM_POPUP_MN_P_KEY_HTML","CONFIRM_POPUP_VERIFY_ADDR","MIGRATION_MASTERNODE_FAILURE","MIGRATION_ACCOUNT_FAILURE","APP_INSTALLED","str","Buffer","from","bytes","toString","buff","Uint8Array","current","main","collateralInSats","isTestnet","TICKER","PUBKEY_PREFIX","STAKING_PREFIX","PUBKEY_ADDRESS","SECRET_KEY","BIP44_TYPE","BIP44_TYPE_LEDGER","PROTOCOL_VERSION","MASTERNODE_PORT","Explorers","url","Nodes","Consensus","UPGRADE_V6_0","undefined","budgetCycleBlocks","proposalFee","proposalFeeConfirmRequirement","maxPaymentCycles","maxPayment","defaultColdStakingAddress","testnet","eventEmitter","EventEmitter","_network","constructor","path","sats","script","vin","vout","height","status","isDelegate","isReward","this","equalsUTXO","cUTXO","UTXOs","subscribeToNetwork","static","getUTXO","out","find","removeWithDelay","nBlocks","ms","res","_","setTimeout","removeUTXO","isAlreadyStored","some","getUTXOsByState","nState","filter","removeFromState","cNewUTXO","arrPendingUTXOs","addUTXO","newUTXO","updateUTXO","length","cStakeInput","txid","push","emit","assert","utxo","PENDING","CONFIRMED","autoRemoveUTXO","REMOVED","error","autoRemoveUTXOs","arrUTXOs","getConfirmed","getStandardUTXOs","getDelegatedUTXOs","getBalance","reduce","a","b","isValidUTXO","cachedBlockCount","getDelegatedBalance","on","async","utxos","getUTXOFullInfo","Map","enc","TextEncoder","data","strPassword","strPass","window","prompt","secretData","salt","crypto","getRandomValues","iv","passwordKey","getPasswordKey","aesKey","deriveKey","encryptedContent","subtle","encode","encryptedContentArr","byteLength","set","btoa","String","fromCharCode","apply","buff_to_base64","log","encryptData","TextDecoder","importKey","keyUsage","iterations","hash","accountData","publicKey","encWif","localProposals","coldAddress","getContactBy","pubkey","label","renderContacts","account","fPrompt","strHTML","i","cContact","strPubkey","icon","cPrompt","_reject","handleClick","event","target","endsWith","nIndex","match","strName","document","getElementById","innerText","button","removeEventListener","removeRemainingListeners","addEventListener","once","title","html","resolvePromise","purpleModal","textLeft","noPadding","maxHeight","domContactsTable","innerHTML","guiRenderContacts","cDB","getInstance","cAccount","getAccount","guiRenderReceiveModal","cReceiveType","RECEIVE_TYPES","CONTACT","getKeyToExport","strContactURI","strURL","location","origin","pathname","strHexName","encodeURIComponent","localContactToURI","domModalQrLabel","domModalQR","domQR","createQR","firstChild","style","width","classList","add","value","strAddress","getCurrentAddress","ADDRESS","strXPub","getXPub","guiRenderCurrentReceiveModal","nForceType","nTypeMax","isHD","strNextType","XPUB","domModalQrReceiveTypeBtn","getNameOrAddress","nAccount","getMasterKey","getColdStakingAddress","wipePrivateData","isViewOnly","hasWalletUnlocked","fIncludeNetwork","enabled","isLoaded","unlock","setMasterKey","mk","setWallet","getAddress","nReceiving","getDerivationPath","derivationPath","split","join","getxpub","strEncWIF","keyToBackup","domGenKeyWarning","database","updateAccount","addAccount","capture","getNewAddress","last","lastWallet","isHardwareWallet","isOwnAddress","has","get","updateGUI","verify","confAddress","createAddressConfirmation","verifyAddress","FALSE","PUSHDATA1","PUSHDATA2","PUSHDATA4","RESERVED","TRUE","NOP","VER","IF","NOTIF","VERIF","VERNOTIF","ELSE","ENDIF","VERIFY","RETURN","TOALTSTACK","FROMALTSTACK","IFDUP","DEPTH","DROP","DUP","NIP","OVER","PICK","ROLL","ROT","SWAP","TUCK","CAT","SUBSTR","LEFT","RIGHT","SIZE","INVERT","AND","OR","XOR","EQUAL","EQUALVERIFY","RESERVED1","RESERVED2","NEGATE","ABS","NOT","ADD","SUB","MUL","DIV","MOD","LSHIFT","RSHIFT","BOOLAND","BOOLOR","NUMEQUAL","NUMEQUALVERIFY","NUMNOTEQUAL","LESSTHAN","GREATERTHAN","LESSTHANOREQUAL","GREATERTHANOREQUAL","MIN","MAX","WITHIN","RIPEMD160","SHA1","SHA256","HASH160","HASH256","CODESEPARATOR","CHECKSIG","CHECKSIGVERIFY","CHECKMULTISIG","CHECKMULTISIGVERIFY","NOP1","NOP2","CHECKLOCKTIMEVERIFY","NOP3","NOP4","NOP5","NOP6","NOP7","NOP8","NOP9","NOP10","ZEROCOINMINT","ZEROCOINSPEND","ZEROCOINPUBLICSPEND","CHECKCOLDSTAKEVERIFY_LOF","CHECKCOLDSTAKEVERIFY","INVALIDOPCODE","freeze","MarketSource","cData","strEndpoint","ensureCacheExists","fetch","json","warn","txs","txCount","updating","isHistorySynced","rewardsText","ticker","explorerUrl","strUrl","txMap","colour","content","update","fNewOnly","sync","cNet","arrTXs","arrTxHistory","syncTxHistoryChunk","props","rewards","arrStakes","type","nRewards","parseTXs","newTxs","dateOptions","year","month","day","timeOptions","hour","minute","hour12","prevDateString","prevTimestamp","cTx","dateTime","Date","strDate","now","toLocaleTimeString","toLocaleDateString","fConfirmed","blockHeight","formattedAmt","Math","round","toFixed","fSendToSelf","strAddr","receivers","concat","senders","where","r","s","who","shieldedOutputs","arrExternalAddresses","addr","Set","substring","replace","date","confirmed","reset","getTxCount","register","chartWalletBreakdown","renderWalletBreakdown","domModalWalletBreakdown","arrBreakdown","balance","masternode","getMasternode","UTXO","isMnUTXO","forEach","getWalletDataset","image","Image","src","default","logo_plugin","beforeDraw","chart","ctx","top","left","chartArea","x","y","globalAlpha","drawImage","domWalletBreakdownCanvas","labels","datasets","plugins","options","backgroundColor","radius","cutout","animation","duration","legend","color","font","size","interval","setInterval","generateWalletBreakdown","price","displayDecimals","currency","balanceStr","strBal","beautifyNumber","balanceValue","nValue","cLocale","optimiseCurrencyLocale","toLocaleString","toUpperCase","getPrice","nDisplayDecimals","isHdWallet","getBlockCount","Activity","mount","WalletBalance","exportHidden","updateTicker","domGuiStakingValueCurrency","domSendAmountValueCurrency","domSendAmountCoinsTicker","domStakeAmountValueCurrency","domStakeAmountCoinsTicker","domUnstakeAmountValueCurrency","domUnstakeAmountCoinsTicker","nAmount","Intl","supportedValuesOf","includes","currencyDisplay","maximumFractionDigits","minimumFractionDigits","nBalance","domAvailToDelegate","nLen","domGuiBalanceStaking","domAvailToUndelegate","domValue","fCold","nPrice","nCurrencyValue","updatePriceDisplay","domGuiStakingValue","openExplorer","open","cExplorer","dom","ani","element","contains","remove","domBlackBack","toggleExportUI","domExportPrivateKey","cMasternode","collateralTxId","outidx","evt","preventDefault","returnValue","errorHandler","message","reason","alert","super","strCurrency","market_data","current_price","getCurrencies","cNode","Settings","analytics","explorer","node","autoswitch","translation","displayCurrency","advancedMode","walletPrivateKeyPath","mnPrivateKey","_getWalletPrivateKey","getPrivateKey","getFullData","cMasternodes","m","getStatus","_decodeIpAddress","ip","port","onionBytes","base32","c","charCodeAt","fromAddress4","toUnsignedByteArray","Array","max","fill","_numToBytes","number","numBytes","littleEndian","reverse","getPingSignature","blockHash","sigTime","idx","getToSign","mnPublicKey","pkBytes","output","getLastBlockHash","backend","bestBlockHash","getSignedMessage","toSign","getWalletPublicKey","v","signMessage","padding","walletPrivateKey","signature","der","recovered","getSignedPingMessage","getPublicKey","broadcastMessageToHex","walletPublicKey","compress","sigBytes","sigPingBytes","start","text","getProposals","fAllowFinished","arrProposals","RemainingPaymentCount","getSignedVoteMessage","voteCode","msg","getVote","proposalName","index","sessionVotes","findIndex","vHash","encodeURI","Vote","vote","storeVote","newVote","replaceAll","createProposalHash","nPayments","monthlyPayment","end","addressBytes","scriptBytes","finalizeProposal","ok","err","getNextSuperblock","parseInt","getMasternodeCount","isValidProposal","_start","isSafeStr","test","PromoWallet","fSynced","fLock","fCacheOnly","getUTXOs","fFull","arrSimpleUTXOs","db","close","addMasternode","_masterKey","store","objectStore","put","removeMasternode","delete","addPromo","promo","removePromo","cDBAccount","strKey","isSameType","allowDeletion","removeAccount","prototype","hasOwnProperty","call","getAllPromos","getAll","getSettings","setSettings","settings","oldSettings","localStorage","JSON","parse","encwif","create","migrate","upgrade","oldVersion","createObjectStore","blocking","reload","instance","variables","values","pubKeyHashNetworkLen","pubPrebaseLen","nSize","arr","pos","arrLen","strERR","timeout","domAlert","createElement","typeIcon","opacity","zIndex","destroy","clearTimeout","timer","domAlertPos","appendChild","hideConfirm","domConfirmModalHeader","domConfirmModalTitle","domConfirmModalButtons","setProperty","modal","keyboard","domConfirmModalConfirmButton","domConfirmModalCancelButton","domConfirmModalContent","domConfirmModalMain","domConfirmModalDialog","domElement","children","focus","onclick","strData","domImg","cQR","qrcode","addData","make","createImgTag","borderRadius","startsWith","strNumber","strDecFontSize","arrNumParts","strFontSize","getPrototypeOf","val","isArray","pubKeyBytes","compressPublicKey","pubKeyHashing","pubKeyHashRipemd160","ripemd160","pubKeyHashNetwork","checksumPubKey","pubKeyPreBase","strWIF","skipVerification","fParseBytes","bWIF","cNetwork","strNet","shaHash","bChecksumWIF","bChecksum","verifyWIF","onmessage","_evt","cKeypair","priv","pub","postMessage","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","__webpack_exports__","O","result","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","every","key","splice","n","getter","__esModule","d","obj","t","mode","ns","def","indexOf","getOwnPropertyNames","definition","defineProperty","enumerable","f","chunkId","promises","u","miniCssF","g","globalThis","Function","prop","Symbol","toStringTag","nmd","paths","scriptUrl","importScripts","currentScript","scripts","getElementsByTagName","p","self","installedChunks","chunkLoadingGlobal","parentChunkLoadingFunction","bind","moreModules","runtime","pop"],"sourceRoot":""} \ No newline at end of file diff --git a/328.mpw.js b/328.mpw.js new file mode 100644 index 000000000..1a0c5fe88 --- /dev/null +++ b/328.mpw.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkMPW=self.webpackChunkMPW||[]).push([[328],{16328:a=>{a.exports=JSON.parse('{"amount":"Halaga","staking":"Staking","wallet":"Wallet","display":"Display","activity":"Aktibidad","yes":"Oo","no":"Hindi","navDashboard":"Dashboard","navStake":"Stake","navMasternode":"Masternode","navGovernance":"Pamamahala","navSettings":"Settings","footerBuiltWithPivxLabs":"Binuo nang may 💜 ng PIVX Labs 🇵🇭","loading":"Loading","loadingTitle":"My PIVX wallet ay","dashboardTitle":"Dashboard","dCardOneTitle":"Gumawa ng","dCardOneSubTitle":"Bagong wallet","dCardOneDesc":"Gumawa ng bagong PIVX wallet, ito\'y nag aalok ng pinaka-ligtas na backup at mga paraang pang seguridad","dCardOneButton":"Gumawa ng Bagong Wallet","dCardTwoTitle":"Gumawa ng bagong","dCardTwoSubTitle":"Vanity Wallet","dCardTwoDesc":"Gumawa ng wallet na may custom prefix, ito ay maaaring tumagal ng mga ilang oras!","dCardTwoButton":"Gumawa ng Vanity Wallet","dCardThreeTitle":"I-access ang iyong","dCardThreeSubTitle":"Hardware Wallet","dCardThreeDesc":"Gamitin ang iyong Ledger Hardware Wallet na pamilyar sa interface ng MPW","dCardThreeButton":"I-access ang aking Ledger","dCardFourTitle":"Pumunta sa","dCardFourSubTitle":"Aking Wallet","dCardFourDesc":"I-import ang iyong PIVX wallet gamit ang Private Key, xpriv, o Seed Phrase","dCardFourButtonI":"I-import ang Wallet","dCardFourButtonA":"I-access ang aking Wallet","vanityPrefixNote":"Tandaan: Ang mga address ay laging naguumpisa sa:","vanityPrefixInput":"Prefix ng Address","thisIsYourSeed":"Ito ang iyong seed phrase:","writeDownSeed":"Isulat ito kahit saan. Makikita mo lang ito ng isang beses!","doNotShareWarning":"Sino man ang may kopya nito ay pwedeng i-access lahat ng iyong mga pondo","doNotShare":"WAG mo itong ibibigay kahit kanino","digitalStoreNotAdvised":"Ito ay HINDI payo upang itago ito digitally","optionalPassphrase":"Optional Passphrase (BIP39)","writtenDown":"Isinulat ko na ang aking seed phrase","importSeedValid":"Ang Seed Phrase ay wasto!","importSeedError":"Ang Seed Phrase ay hindi wasto!","importSeedErrorSize":"Ang Seed Phrase dapat ay 12 o 24 na mga salita ang haba!","importSeedErrorTypo":"Ang Seed Phrase ay naglalaman ng mga error sa pag-type! Suriin itong mabuti sa iyong input","importSeedErrorSkip":"Ang Seed Phrase ay lumalabas na hindi wasto, ngunit ang babala ay nilaktawan ng user","gettingStarted":"Magsimula","secureYourWallet":"I-secure ang iyong wallet","unlockWallet":"Buksan ang Wallet","lockWallet":"Isara ang wallet","encryptWallet":"Encrypt wallet","encryptPasswordCurrent":"Kasalukuyang Password","encryptPasswordFirst":"Ilagay ang Password","encryptPasswordSecond":"Ilagay ulit ang Password","encrypt":"Encrypt","changePassword":"Mag palit ng Password","balanceBreakdown":"Kabuoang Balanse","viewOnExplorer":"Tignan sa Explorer","export":"Export","refreshAddress":"Refresh address","redeemOrCreateCode":"I-redeem o Gumawa ng Code","address":"Address","receivingAddress":"Address ng tatangap","sendAmountCoinsMax":"MAX","paymentRequestMessage":"Description (galing sa merchant)","send":"Ipadala","receive":"Tumanggap","contacts":"Mga Contact","name":"Pangalan","username":"Username","addressOrXPub":"Address o XPub","back":"Bumalik","chooseAContact":"Pumili ng Contact","createContact":"Lumikha ng Contact","encryptFirstForContacts":"Sa sandaling mapindot mo ang \\"{button}\\" sa Dashboard, maaari kang lumikha ng Contact upang gawing mas madali ang pagtanggap ng PIV!","shareContactURL":"Magbahagi ng Contact URL","setupYourContact":"I-set up ang iyong Contact","receiveWithContact":"Tumanggap gamit ang simpleng Contact na nakabase sa username","onlyShareContactPrivately":"Pinakamabuting ibahagi ang iyong contact sa mga pinagkakatiwalaang tao (pamilya, kaibigan)","changeTo":"Baguhin sa","contact":"Contact","xpub":"XPub","addContactTitle":"Idagdag si {strName} sa mga Contact","addContactSubtext":"Kapag naidagdag na, maaari ka ng makapag padala ng transaksyon sa {strName} sa pamamagitan ng kanilang pangalan (kahit alin sa pagta-type o pag-click), wala nang mga address, maganda at madali. ","addContactWarning":"Siguraduhin na ito ay tunay na \\"{strName}\\", Wag tumanggap ng mga Contact request galing sa mga hindi kilalang pinagmulan! ","editContactTitle":"Baguhin ang \\"{strName}\\" Contact","newName":"Bagong Pangalan","removeContactTitle":"Tanggalin si {strName}?","removeContactSubtext":"Sigurado na ba ang hiling mo na tanggalin si {strName} sa iyong mga Contact?","removeContactNote":"Maaari mong maidagdag ang mga ito kahit anong oras sa hinaharap","privateKey":"Private Key","viewPrivateKey":"Tignan ang Private Key?","privateWarning1":"Siguraduhing walang nakakakita ng iyong screen","privateWarning2":"Sino man ang may hawak ng key na ito ay pwedeng nakawin ang ng iyong pondo","viewKey":"View key","pivxPromos":"ay isang desentralisadong sistema para sa gift code na nag kakahalaga ng PIV","redeemInput":"Ipasok and iyong \'PIVX Promos\'code","createName":"Promo Name","createAmount":"Halaga ng Promo","stake":"Stake","stakeUnstake":"Unstake","ownerAddress":"(Optional) May-ari ng Address","rewardHistory":"History ng iyong Reward","loadMore":"Load more","mnControlYour":"Kontrolin ang iyong","mnSubtext":"Ikaw ay makakagawa at makaka access ng isa o higit pang masternodes mula sa tab na ito ","govSubtext":"Maaari mong makita ang mga proposals sa tab na ito at kung meron kang masternode,maaari kang maging parte ng DAO at bumoto!","govMonthlyBudget":"Buwanang Budget","govAllocBudget":"Nakalaang Budget","govNextPayout":"Susunod na Treasury Payout","govTableStatus":"Status","govTableName":"Pangalan","govTablePayment":"Kabayaran","govTableVotes":"Mga Boto","govTableVote":"Boto","contestedProposalsDesc":"Ito ang mga proposals na nakatanggap ng pinaka madaming downvote,na nagmumukang spam o isang highly contestable proposal.","settingsCurrency":"Pumili ng display currency:","priceProvidedBy":"Datos ng presyo na ibinigay ng","settingsDecimals":"Balance Decimals:","settingsExplorer":"Pumili ng explorer:","settingsLanguage":"Pumili ng Wika:","settingsPivxNode":"Pumili ng PIVX node:","settingsAutoSelectNet":"Automatikong pagpili ng Explorers at Nodes","settingsAnalytics":"Pumili ng iyong analytics contribution level:","settingsToggleDebug":"Debug Mode","settingsToggleTestnet":"Testnet Mode","settingsToggleAdvancedMode":"Advance Mode","settingsToggleAdvancedModeSubtext":"Ito ay nagbubukas ng mas malalim na functionality at pagpapasadya ngunit napapalaki at maaaring mapanganib sa mga user na wala pang karanasan!","netSwitchUnsavedWarningTitle":"Ang iyong {network} wallet ay hind na-save!","netSwitchUnsavedWarningSubtitle":"Ang iyong {network} account ay nanganganib!","netSwitchUnsavedWarningSubtext":"Kung ikaw ay mag papalit ng {network} bago mo ito i-save, mawawalan ka ng account!","netSwitchUnsavedWarningConfirmation":"Sigurado ka na ba talaga dito?","transparencyReport":"Transparency Report","hit":"Ang ping na nagpapahiwatig ng pag load ng app, walang unique na data ang naipadala.","time_to_sync":"Ang bawat segundo sa oras na tumatagal upang muling mag synchronize sa MPW.","transaction":"Ang ping na nag papahiwating ng isang TX, walang unique na data ang naipadala, pero maaari itong inferred mula sa oras ng on-chain.","analyticDisabled":"Disabled","analyticMinimal":"Minimal","analyticBalanced":"Balanced","MIGRATION_ACCOUNT_FAILURE_TITLE":"Nabigong marecover ang account","MIGRATION_ACCOUNT_FAILURE_HTML":"May mali sa pag recover ng iyong account. Pakiusap i-reimport ang iyong wallet gamit ang mga sumusunod na key:","ID":"ID","time":"Oras","description":"Description","activityBlockReward":"Block Reward","activitySentTo":"Naipadala sa {r}","activitySelf":"sarili","activityShieldedAddress":"Shielded address","activityDelegatedTo":"Delegated to {r}","activityUndelegated":"Undeligated","activityUnknown":"Unknown Tx","password":"Password","walletUnlock":"Buksan ang iyong wallet","walletPassword":"Wallet password","walletUnlockCreateMN":"Buksan upang makagawa ng iyong Masternode!","walletUnlockMNStart":"Buksan para maumpisahan ang iyong Masternode!","walletUnlockProposal":"Buksan para makagawa ng proposal!","walletUnlockPromo":"Buksan para i-finalize ang iyong promo code!","walletUnlockTx":"Buksan upang i-send ang iyong transaksyon!","walletUnlockStake":"Buksan upang i-stake ang iyong","walletUnlockUnstake":"Buksan upang i-unstake ang iyong","changelogTitle":"Anong bago sa","popupSetColdAddr":"I-set ang iyong Cold Staking Address","popupCurrentAddress":"Kasalukuyang Address:","popupColdStakeNote":"Ang Cold Address stakes coins sa iyong ngalan, ay hindi makakagastos ng coins, kaya mas ligtas itong gumamit ng stranger\'s cold address!","popupExample":"Halimbawa","popupWalletLock":"Gusto mo bang i-lock ang iyong wallet?","popupWalletWipe":"Gusto mo bang burahin lahat ng pribadong data sa iyong wallet?","popupWalletLockNote":"Kailangan mong i-enter ang iyong password upang ma access ang iyong pondo","popupWalletWipeNote":"Maaari mong hindi ma access ang iyong pondo kung hindi mo na back up ang iyong private key or seed phrase","popupSeedPhraseBad":"Unexpected Seed Phrase","popupSeedPhraseBadNote":"Ang seed phrase na ito ay pwedeng hindi wasto o hindi ito generated ng MPW.
Gusto mo bang tumuloy?","popupCreateProposal":"Gumawa ng Proposal","popupCreateProposalCost":"Gastos","popupProposalAddress":"Address ng Proposal (Optional)","popupProposalDuration":"Duration in cycles","popupProposalPerCycle":"per cycles","popupProposalEncryptFirst":"Kailangan mong pindutin ang \\"{button}\\" bago ka gumawa ng proposals!","popupProposalVoteHash":"Vote Hash:","popupProposalFinalisedNote":"Binabati kita sa paglulunsad ng iyong proposal!
Ang mga may-ari ng Masternode ay pwedeng gumamit ng Vote Hash upang bumoto mula sa mga wallet maliban sa MPW, kaya siguraduhin idagdag ito sa iyong forum post, kung naaangkop!","popupProposalFinalisedSignoff":"Nawa\'y ang mabuting kapalaran ay sumasaiyo sa iyong paglalakbay sa DAO. PIVian!","popupHardwareAddrCheck":"Pakiusap kumpirmahin na ito ang address na nakikita mo sa iyong","proposalFinalisationConfirming":"Kinukumpirma...","proposalFinalisationRemaining":"natitira","proposalFinalisationExpired":"Proposal expired","proposalFinalisationReady":"Handa ng ipasa","proposalPassing":"PASSING","proposalFailing":"FAILING","proposalTooYoung":"TOO YOUNG","proposalFunded":"FUNDED","proposalNotFunded":"NOT FUNDED","proposalPaymentsRemaining":"installment(s) remaining
of","proposalPaymentTotal":"Total","proposalNetYes":"Net Yes","popupConfirm":"Kumpirmahin","popupClose":"Isara","popupCancel":"Kanselahin","chartPublicAvailable":"Public Available","timeDays":"Mga araw","timeHours":"Mga oras","timeMinutes":"Mga minuto","timeSeconds":"Mga segundo","unhandledException":"Unhandled exception.","syncStatusHistoryProgress":"","syncStatusStarting":"","syncStatusFinished":"","contestedProposalsTitle":"","accountDeleted":"","activityReceivedWith":"","popupProposalName":"","ALERTS":{"INTERNAL_ERROR":"Internal error, Pakiusap uliting muli","FAILED_TO_IMPORT":"Nabigong mag import! Ang password na ito ay hindi wasto","UNSUPPORTED_CHARACTER":"Ang karakter na ito ‘{char}’ay hindi supportado sa mga address! (Not Base58 compatible)","UNSUPPORTED_WEBWORKERS":"Hindi supportado ng browser na ito ang Web Workers (multi-threaded JS)sa kasamaang palad ay hindi ka makakagawa ng Vanity wallets!","INVALID_ADDRESS":"Ang PIVX address na ito ay hindi wasto!
{address}","TESTNET_ENCRYPTION_DISABLED":"Ang Testnet Mode ay bukas na!
Wallet encryption disabled","PASSWORD_TOO_SMALL":"Ang password ay medyo maiksi!
Kahit papaano gumamit ng{MIN_PASS_LENGHT} mga karakter.","PASSWORD_DOESNT_MATCH":"Hindi tumugma ang iyong password!","NEW_PASSWORD_SUCCESS":"Ikaw ay ligtas! 🔐
Magandang bagay, Armoured PIVian!","INCORRECT_PASSWORD":"Mali ang iyong password","INVALID_AMOUNT":"Ang halaga ay hindi wasto!
","TX_SENT":"Ang transaksyon ay naipadala!","TX_FAILED":"Nabigo ang Transaksyon","QR_SCANNER_BAD_RECEIVER":"ay hindi wastong tanggapan ng bayad ","VALIDATE_AMOUNT_LOW":"
Ang pinakamababang halaga ay {minimumAmount} {coinTicker}!","VALIDATE_AMOUNT_DECIMAL":"{coinDecimal} Ang limitasyon sa decimal ay lumagpas","SUCCESS_STAKING_ADDR":"Nakatakda na ang Staking address!
Pumunta ka na ngayon at mag unstake","STAKE_ADDR_SET":"Nakatakda na ang Cold Address!
Gagamitin ang address na to sa mga susunod na stakes","STAKE_ADDR_BAD":"Ang Cold Staking address ay hindi wasto!","CONFIRM_UNSTAKE_H_WALLET":"Kumpirmahin ang iyong unstake
Kumpirmahin ang TX sa iyong {strHardwareName}","CONFIRM_TRANSACTION_H_WALLET":"Kumpirmahin ang iyong transaksyon
Kumpirmahin ang TX sa iyong {strHardwareName}","SUCCESS_STAKING_ADDR_SET":"Nakatakda na ang staking address!
Pumunta ka na ngayon at mag stake","STAKE_NOT_SEND":"Dito, gamitin mo angStake screen, hindi ang screen sa pagdala","BAD_ADDR_LENGTH":"Hindi wasto ang PIVX address!
Bad lenght({addressLength})","BAD_ADDR_PREFIX":"Hindi wasto ang PIVX address!
Bad prefix{address} (Ito ay dapat nag sisimula sa{addressPrefix})","SENT_NOTHING":"Hindi ka pwedeng magpadala ng \'wala\'!","MORE_THEN_8_DECIMALS":"Lumagpas na sa 8 decimal ang limitasyon","SAVE_WALLET_PLEASE":"I-save ang iyong wallet!
Dashboard ➜ I-secure ang iyong wallet","BACKUP_OR_ENCRYPT_WALLET":"Pakiusap i-ENCRYPT at/o i-BACKUP ang iyong keys bago umalis, o mawawala mo ang mga ito!","NO_CAMERAS":"Ang device na ito ay walang camera!","STAKING_LEDGER_NO_SUPPORT":"Ang ledger ay hindi suportado para sa Cold Staking","CONNECTION_FAILED":"Nabigong i-synchronize! Pakiusap ulitin itong muli.
Maaari mo itong i-konektang muli via the Settings. ","MN_NOT_ENABLED":"Ang iyong masternode ay hindi pa gumagana!","VOTE_SUBMITTED":"Naipasa na ang iyong Boto!","VOTED_ALREADY":"Ikaw ay bumoto na sa proposal na ito! Pakiusap maghintay ng 1 oras","VOTE_SIG_BAD":"Ang signature ay nabigong i-verify, Pakiusap suriin mo ang private key ng iyong masternode\'s","MN_CREATED_WAIT_CONFS":"Nagawa na ang Masternode!
\'Mag antay ng 15 na kumpirmasyon upang mag patuloy","MN_ACCESS_BEFORE_VOTE":"I-access ang iyong Masternode bago bumoto!","MN_OFFLINE_STARTING":"Ang iyong Masternode ay offline, Ito ay susubukan naming simulan","MN_STARTED":"Nagsimula na ang Masternode!","MN_RESTARTED":"Na-restart na ang Masternode!","MN_STARTED_ONLINE_SOON":"Nagsimula na ang Masternode!
Malapit itong mag online","MN_START_FAILED":"Nagsimula na ang Masternode!","MN_RESTART_FAILED":"Na-restart na ang Masternode!","MN_DESTROYED":"Nasira ang Masternode!
Ang iyong coins ay pwede nang magastos.","MN_STATUS_IS":"Ang kalagayan ng iyong Masternode ay","MN_STATE":"Ang iyong masternode ay nasa {state} kalagayan","MN_BAD_IP":"Ang IP address ay hindi wasto!","MN_BAD_PRIVKEY":"","MN_NOT_ENOUGH_COLLAT":"Kailangan mo ng {amount} pang {ticker} upang makagawa ng Masternode!","MN_ENOUGH_BUT_NO_COLLAT":"Ikaw ay may sapat na balanse para sa iyong Masternode, subalit walang wastong collateral UTXO ng {amount} {ticker}","MN_COLLAT_NOT_SUITABLE":"Ang UTXO na ito ay hindi angkop para sa Masternode","MN_CANT_CONNECT":"Hindi maka-konekta sa RPC node!","CONTACTS_ENCRYPT_FIRST":"Kailangan mong pindutin ang \\"{button}\\" bago mo magamit ang mga Contact","CONTACTS_NAME_REQUIRED":"Kailangan ng pangalan!","CONTACTS_NAME_TOO_LONG":"Ang pangalan na ito ay masyadong mahaba!","CONTACTS_CANNOT_ADD_YOURSELF":"Hindi mo maaaring maidagdag ang iyong sarili bilang Contact!","CONTACTS_ALREADY_EXISTS":"Mayroon na ang Contact na ito!
Na i-save mo na ang contact na ito","CONTACTS_NAME_ALREADY_EXISTS":"Mayroon na ang Contact na ito!
Maaari itong isang phishing attempt, mag ingat!","CONTACTS_EDIT_NAME_ALREADY_EXISTS":"Mayroon na ang Contact na ito!
Natawagan na ang Contact na ito \\"{strNewName}\\"!","CONTACTS_KEY_ALREADY_EXISTS":"Mayroon na ang Contact na ito, ngunit sa ibang pangalan!
Mayroon kang {newName} bilang {oldName} sa iyong mga contact","CONTACTS_NOT_A_CONTACT_QR":"Ito ay hindi isang Contact QR! ","CONTACTS_ADDED":"Naidagdag na ang bagong Contact!
{strName} ay naidagdag na, mabuhay!","CONTACTS_YOU_HAVE_NONE":"Ikaw ay walang mga contact","SWITCHED_EXPLORERS":"Nagpalit ng explorer!Ang gamit ngayon ay {explorerName}","SWITCHED_NODE":"Nagpalit ng node!Ang gamit ngayon ay {node}","SWITCHED_ANALYTICS":"Nagpalit ng analytics level!
Ngayon {level}","SWITCHED_SYNC":"Nagpalit ng sync mode!
Ang gamit ngayon ay {sync} sync","UNABLE_SWITCH_TESTNET":"Hindi makapag palit sa Testnet Mode!

Nakapag load na ang wallet","WALLET_OFFLINE_AUTOMATIC":"Aktibo ang Offline Mode!
Pakiusap wag paganahin ang Offline Mode para sa automatikong transaksyon","WALLET_UNLOCK_IMPORT":"Pakiusap {unlock} ang iyong wallet bago magpadala ng transaksyon!","WALLET_FIREFOX_UNSUPPORTED":" Hindi ito supportado ng Firefox!
Sa kasamaang palad, hindi supportado ng Firefox ang mga hardware wallet","WALLET_HARDWARE_WALLET":"Handa na ang Hardware wallet!
Pakiusap panatilihin mo na ang {hardwareWallet} ay naka plugged in, naka bukas, at nasa PIVX app ","WALLET_CONFIRM_L":"Kumpirmahin ang import sa iyong Ledger","WALLET_NO_HARDWARE":"Walang pwedeng magamit na device
Hindi makahanap ng hardware wallet; pakiusap i-plug in ito at buksan!","WALLET_HARDWARE_UDEV":"Tinanggihan ng OS ang pag-access Dinagdag mo ba ang mga panuntunan sa udev?","WALLET_HARDWARE_NO_ACCESS":"Tinanggihan ng OS ang pag-access Pakiusap tignan ang settings ng iyong Operating System.","WALLET_HARDWARE_CONNECTION_LOST":"Nawala ang koneksyon sa {hardwareWallet}
Parang ang {hardwareWalletProductionName} ay na-unplug sa kalagitnaan ng operasyon, oops!","WALLET_HARDWARE_BUSY":"{hardwareWallet} ay naghihintay
Pakiusap buksan ang iyong {hardwareWalletProductionName} o tapusin ang kasalukuyang prompt","WALLET_HARDWARE_ERROR":"{hardwareWallet}
{error}","CONFIRM_POPUP_VOTE":"Kumpirmahin ang boto","CONFIRM_POPUP_VOTE_HTML":"Ikaw ba ay sigurado? Ito ay tatagal n 60 minuto upang mapalitan ang iyong boto","CONFIRM_POPUP_TRANSACTION":"Kumpirmahin ang iyong transakyon","CONFIRM_POPUP_MN_P_KEY":"Ang iyong Masternode Private Key","CONFIRM_POPUP_MN_P_KEY_HTML":"
Itago ang private key at kopyahin at kopyahin ito sa iyong VPS config
","CONFIRM_POPUP_VERIFY_ADDR":"I-verify ang iyong address","MIGRATION_MASTERNODE_FAILURE":"Nabigong marecover ang iyong masternode. Pakiusap i-reimport ito.","MIGRATION_ACCOUNT_FAILURE":"Nabigong marecover ang iyong account. Pakiusap i-reimport ito.","APP_INSTALLED":"App Installed!","FAILED_TO_IMPORT_HARDWARE":"","PROPOSAL_FINALISED":"","PROPOSAL_UNCONFIRMED":"","PROPOSAL_EXPIRED":"","PROPOSAL_FINALISE_FAIL":"","PROPOSAL_IMPORT_FIRST":"","PROPOSAL_NOT_ENOUGH_FUNDS":"","PROPOSAL_INVALID_ERROR":"","PROPOSAL_CREATED":"","PROMO_MIN":"","PROMO_MAX_QUANTITY":"","PROMO_NOT_ENOUGH":"","PROMO_ALREADY_CREATED":"","CONFIRM_POPUP_DELETE_ACCOUNT":"","CONFIRM_POPUP_DELETE_ACCOUNT_TITLE":"","WALLET_NOT_SYNCED":""}}')}}]); \ No newline at end of file diff --git a/350.mpw.js b/350.mpw.js deleted file mode 100644 index 974bf8279..000000000 --- a/350.mpw.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! For license information please see 350.mpw.js.LICENSE.txt */ -(self.webpackChunkMPW=self.webpackChunkMPW||[]).push([[350],{33940:(t,e,r)=>{"use strict";r.d(e,{Z:()=>a});var n=r(69397),i=r(48764).Buffer;function o(t){const e=i.alloc(2);return e.writeUInt16BE(t,0),e}const s={data:i.alloc(0),dataLength:0,sequence:0},a=(t,e)=>({makeBlocks(r){let n=i.concat([o(r.length),r]);const s=e-5,a=Math.ceil(n.length/s);n=i.concat([n,i.alloc(a*s-n.length+1).fill(0)]);const u=[];for(let e=0;ea&&(o=o.slice(0,a)),{data:o,dataLength:a,sequence:u}},getReducedResult(t){if(t&&t.dataLength===t.data.length)return t.data}})},14347:(t,e,r)=>{"use strict";r.d(e,{An:()=>u,Ht:()=>c});var n,i=r(81249),o=r.n(i);!function(t){t.blue="blue",t.nanoS="nanoS",t.nanoSP="nanoSP",t.nanoX="nanoX",t.stax="stax"}(n||(n={}));const s={[n.blue]:{id:n.blue,productName:"Ledger Blue",productIdMM:0,legacyUsbProductId:0,usbOnly:!0,memorySize:491520,masks:[822083584,822149120],getBlockSize:t=>4096},[n.nanoS]:{id:n.nanoS,productName:"Ledger Nano S",productIdMM:16,legacyUsbProductId:1,usbOnly:!0,memorySize:327680,masks:[823132160],getBlockSize:t=>{var e;return o().lt(null!==(e=o().coerce(t))&&void 0!==e?e:"","2.0.0")?4096:2048}},[n.nanoSP]:{id:n.nanoSP,productName:"Ledger Nano S Plus",productIdMM:80,legacyUsbProductId:5,usbOnly:!0,memorySize:1572864,masks:[856686592],getBlockSize:t=>32},[n.nanoX]:{id:n.nanoX,productName:"Ledger Nano X",productIdMM:64,legacyUsbProductId:4,usbOnly:!1,memorySize:2097152,masks:[855638016],getBlockSize:t=>4096,bluetoothSpec:[{serviceUuid:"13d63400-2c97-0004-0000-4c6564676572",notifyUuid:"13d63400-2c97-0004-0001-4c6564676572",writeUuid:"13d63400-2c97-0004-0002-4c6564676572",writeCmdUuid:"13d63400-2c97-0004-0003-4c6564676572"}]},[n.stax]:{id:n.stax,productName:"Ledger Stax",productIdMM:96,legacyUsbProductId:6,usbOnly:!1,memorySize:1572864,masks:[857735168],getBlockSize:t=>32,bluetoothSpec:[{serviceUuid:"13d63400-2c97-6004-0000-4c6564676572",notifyUuid:"13d63400-2c97-6004-0001-4c6564676572",writeUuid:"13d63400-2c97-6004-0002-4c6564676572",writeCmdUuid:"13d63400-2c97-6004-0003-4c6564676572"}]}},a=(n.blue,n.nanoS,n.nanoSP,n.nanoX,n.stax,Object.values(s)),u=11415,c=t=>{const e=a.find((e=>e.legacyUsbProductId===t));if(e)return e;const r=t>>8;return a.find((t=>t.productIdMM===r))},l=[],h={};for(const t in s){const e=s[t],{bluetoothSpec:r}=e;if(r)for(let t=0;t{"use strict";r.d(e,{Qd:()=>o,el:()=>s}),r(25108);const n={},i={},o=(t,e)=>{i[t]=e},s=t=>{class e extends Error{constructor(r,n,i){if(super(r||t,i),Object.setPrototypeOf(this,e.prototype),this.name=t,n)for(const t in n)this[t]=n[t];if(i&&"object"==typeof i&&"cause"in i&&!("cause"in this)){const t=i.cause;this.cause=t,"stack"in t&&(this.stack=this.stack+"\nCAUSE: "+t.stack)}}}return n[t]=e,e}},69397:(t,e,r)=>{"use strict";r.d(e,{$u:()=>u,FB:()=>a,PS:()=>f,WC:()=>p,qX:()=>o,rZ:()=>d,um:()=>l,vs:()=>s,wp:()=>c});var n=r(83478);(0,n.el)("AccountNameRequired"),(0,n.el)("AccountNotSupported"),(0,n.el)("AmountRequired"),(0,n.el)("BluetoothRequired"),(0,n.el)("BtcUnmatchedApp"),(0,n.el)("CantOpenDevice"),(0,n.el)("CashAddrNotSupported"),(0,n.el)("ClaimRewardsFeesWarning"),(0,n.el)("CurrencyNotSupported"),(0,n.el)("DeviceAppVerifyNotSupported"),(0,n.el)("DeviceGenuineSocketEarlyClose"),(0,n.el)("DeviceNotGenuine"),(0,n.el)("DeviceOnDashboardExpected"),(0,n.el)("DeviceOnDashboardUnexpected"),(0,n.el)("DeviceInOSUExpected"),(0,n.el)("DeviceHalted"),(0,n.el)("DeviceNameInvalid"),(0,n.el)("DeviceSocketFail"),(0,n.el)("DeviceSocketNoBulkStatus");const i=(0,n.el)("LockedDeviceError"),o=((0,n.el)("UnresponsiveDeviceError"),(0,n.el)("DisconnectedDevice")),s=(0,n.el)("DisconnectedDeviceDuringOperation"),a=((0,n.el)("DeviceExtractOnboardingStateError"),(0,n.el)("DeviceOnboardingStatePollingError"),(0,n.el)("EnpointConfig"),(0,n.el)("EthAppPleaseEnableContractData"),(0,n.el)("FeeEstimationFailed"),(0,n.el)("FirmwareNotRecognized"),(0,n.el)("HardResetFail"),(0,n.el)("InvalidXRPTag"),(0,n.el)("InvalidAddress"),(0,n.el)("InvalidNonce"),(0,n.el)("InvalidAddressBecauseDestinationIsAlsoSource"),(0,n.el)("LatestMCUInstalledError"),(0,n.el)("UnknownMCU"),(0,n.el)("LedgerAPIError"),(0,n.el)("LedgerAPIErrorWithMessage"),(0,n.el)("LedgerAPINotAvailable"),(0,n.el)("ManagerAppAlreadyInstalled"),(0,n.el)("ManagerAppRelyOnBTC"),(0,n.el)("ManagerAppDepInstallRequired"),(0,n.el)("ManagerAppDepUninstallRequired"),(0,n.el)("ManagerDeviceLocked"),(0,n.el)("ManagerFirmwareNotEnoughSpace"),(0,n.el)("ManagerNotEnoughSpace"),(0,n.el)("ManagerUninstallBTCDep"),(0,n.el)("NetworkDown"),(0,n.el)("NoAddressesFound"),(0,n.el)("NotEnoughBalance"),(0,n.el)("NotEnoughBalanceToDelegate"),(0,n.el)("NotEnoughBalanceInParentAccount"),(0,n.el)("NotEnoughSpendableBalance"),(0,n.el)("NotEnoughBalanceBecauseDestinationNotCreated"),(0,n.el)("NoAccessToCamera"),(0,n.el)("NotEnoughGas"),(0,n.el)("NotEnoughGasSwap"),(0,n.el)("NotSupportedLegacyAddress"),(0,n.el)("GasLessThanEstimate"),(0,n.el)("PriorityFeeTooLow"),(0,n.el)("PriorityFeeTooHigh"),(0,n.el)("PriorityFeeHigherThanMaxFee"),(0,n.el)("MaxFeeTooLow"),(0,n.el)("PasswordsDontMatch"),(0,n.el)("PasswordIncorrect"),(0,n.el)("RecommendSubAccountsToEmpty"),(0,n.el)("RecommendUndelegation"),(0,n.el)("TimeoutTagged"),(0,n.el)("UnexpectedBootloader"),(0,n.el)("MCUNotGenuineToDashboard"),(0,n.el)("RecipientRequired"),(0,n.el)("UnavailableTezosOriginatedAccountReceive"),(0,n.el)("UnavailableTezosOriginatedAccountSend"),(0,n.el)("UpdateFetchFileFail"),(0,n.el)("UpdateIncorrectHash"),(0,n.el)("UpdateIncorrectSig"),(0,n.el)("UpdateYourApp"),(0,n.el)("UserRefusedDeviceNameChange"),(0,n.el)("UserRefusedAddress"),(0,n.el)("UserRefusedFirmwareUpdate"),(0,n.el)("UserRefusedAllowManager"),(0,n.el)("UserRefusedOnDevice"),(0,n.el)("TransportOpenUserCancelled")),u=(0,n.el)("TransportInterfaceNotAvailable"),c=(0,n.el)("TransportRaceCondition"),l=(0,n.el)("TransportWebUSBGestureRequired");var h;(0,n.el)("TransactionHasBeenValidatedError"),(0,n.el)("DeviceShouldStayInApp"),(0,n.el)("WebsocketConnectionError"),(0,n.el)("WebsocketConnectionFailed"),(0,n.el)("WrongDeviceForAccount"),(0,n.el)("WrongAppForCurrency"),(0,n.el)("ETHAddressNonEIP"),(0,n.el)("CantScanQRCode"),(0,n.el)("FeeNotLoaded"),(0,n.el)("FeeRequired"),(0,n.el)("FeeTooHigh"),(0,n.el)("PendingOperation"),(0,n.el)("SyncError"),(0,n.el)("PairingFailed"),(0,n.el)("PeerRemovedPairing"),(0,n.el)("GenuineCheckFailed"),(0,n.el)("LedgerAPI4xx"),(0,n.el)("LedgerAPI5xx"),(0,n.el)("FirmwareOrAppUpdateRequired"),(0,n.el)("OpReturnSizeLimit"),(0,n.el)("DustLimit"),(0,n.el)("LanguageNotFound"),(0,n.el)("NoDBPathGiven"),(0,n.el)("DBWrongPassword"),(0,n.el)("DBNotReset"),function(t){t.Unknown="Unknown",t.LocationServicesDisabled="LocationServicesDisabled",t.LocationServicesUnauthorized="LocationServicesUnauthorized",t.BluetoothScanStartFailed="BluetoothScanStartFailed"}(h||(h={}));class f extends Error{constructor(t,e){const r="TransportError";super(t||r),this.name=r,this.message=t,this.stack=new Error(t).stack,this.id=e}}(0,n.Qd)("TransportError",(t=>new f(t.message,t.id)));const p={ACCESS_CONDITION_NOT_FULFILLED:38916,ALGORITHM_NOT_SUPPORTED:38020,CLA_NOT_SUPPORTED:28160,CODE_BLOCKED:38976,CODE_NOT_INITIALIZED:38914,COMMAND_INCOMPATIBLE_FILE_STRUCTURE:27009,CONDITIONS_OF_USE_NOT_SATISFIED:27013,CONTRADICTION_INVALIDATION:38928,CONTRADICTION_SECRET_CODE_STATUS:38920,CUSTOM_IMAGE_BOOTLOADER:26159,CUSTOM_IMAGE_EMPTY:26158,FILE_ALREADY_EXISTS:27273,FILE_NOT_FOUND:37892,GP_AUTH_FAILED:25344,HALTED:28586,INCONSISTENT_FILE:37896,INCORRECT_DATA:27264,INCORRECT_LENGTH:26368,INCORRECT_P1_P2:27392,INS_NOT_SUPPORTED:27904,DEVICE_NOT_ONBOARDED:27911,DEVICE_NOT_ONBOARDED_2:26129,INVALID_KCV:38021,INVALID_OFFSET:37890,LICENSING:28482,LOCKED_DEVICE:21781,MAX_VALUE_REACHED:38992,MEMORY_PROBLEM:37440,MISSING_CRITICAL_PARAMETER:26624,NO_EF_SELECTED:37888,NOT_ENOUGH_MEMORY_SPACE:27268,OK:36864,PIN_REMAINING_ATTEMPTS:25536,REFERENCED_DATA_NOT_FOUND:27272,SECURITY_STATUS_NOT_SATISFIED:27010,TECHNICAL_PROBLEM:28416,UNKNOWN_APDU:27906,USER_REFUSED_ON_DEVICE:21761,NOT_ENOUGH_SPACE:20738};function d(t){const e=Object.keys(p).find((e=>p[e]===t))||"UNKNOWN_ERROR",r=`Ledger device: ${function(t){switch(t){case 26368:return"Incorrect length";case 26624:return"Missing critical parameter";case 27010:return"Security not satisfied (dongle locked or have invalid access rights)";case 27013:return"Condition of use not satisfied (denied by the user?)";case 27264:return"Invalid data received";case 27392:return"Invalid parameter received";case 21781:return"Locked device"}if(28416<=t&&t<=28671)return"Internal error, please report"}(t)||e} (0x${t.toString(16)})`;if(t===p.LOCKED_DEVICE)throw new i(r);this.name="TransportStatusError",this.message=r,this.stack=new Error(r).stack,this.statusCode=t,this.statusText=e}d.prototype=new Error,(0,n.Qd)("TransportStatusError",(t=>new d(t.statusCode)))},2099:(t,e,r)=>{"use strict";var n=r(21112),i=r(45288),o=r(97351),s=r(56976),a=r(40307),u=r(63971),c=r(70334),l=r(85066),h=r(41039),f=r(38565),p=r(25108);!function(){function t(t){var e=t.transport,r=t.scrambleKey,o=void 0===r?"BTC":r,s=t.currency,u=void 0===s?"bitcoin":s;this._transport=e,this._transport.decorateAppAPIMethods(this,["getWalletXpub","getWalletPublicKey","signP2SHTransaction","signMessage","createPaymentTransaction","getTrustedInput","getTrustedInputBIP143"],o),this._impl="bitcoin"===u||"bitcoin_testnet"===u?new n.Z(new a.C(this._transport)):new i.Z(this._transport)}t.prototype.getWalletXpub=function(t){return this.changeImplIfNecessary().then((function(e){return e.getWalletXpub(t)}))},t.prototype.getWalletPublicKey=function(t,e){var r;return arguments.length>2||"boolean"==typeof e?(p.warn("btc.getWalletPublicKey deprecated signature used. Please switch to getWalletPublicKey(path, { format, verify })"),r={verify:!!e,format:arguments[2]?"p2sh":"legacy"}):r=e||{},this.changeImplIfNecessary().then((function(e){return e.getWalletPublicKey(t,r)}))},t.prototype.signMessage=function(t,e){return(0,h.l)(this._transport,{path:t,messageHex:e})},t.prototype.createPaymentTransaction=function(t){if(arguments.length>1)throw new Error("@ledgerhq/hw-app-btc: createPaymentTransaction multi argument signature is deprecated. please switch to named parameters.");return this.changeImplIfNecessary().then((function(e){return e.createPaymentTransaction(t)}))},t.prototype.signP2SHTransaction=function(t){return(0,l.s)(this._transport,t)},t.prototype.splitTransaction=function(t,e,r,n,i){return void 0===e&&(e=!1),void 0===r&&(r=!1),void 0===n&&(n=!1),void 0===i&&(i=[]),(0,c.o)(t,e,r,n,i)},t.prototype.serializeTransactionOutputs=function(t){return(0,u.H)(t)},t.prototype.getTrustedInput=function(t,e,r){return void 0===r&&(r=[]),(0,o.Z)(this._transport,t,e,r)},t.prototype.getTrustedInputBIP143=function(t,e,r){return void 0===r&&(r=[]),(0,s.i)(this._transport,t,e,r)},t.prototype.changeImplIfNecessary=function(){return t=this,e=void 0,o=function(){return function(t,e){var r,n,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(r)throw new TypeError("Generator is already executing.");for(;s;)try{if(r=1,n&&(i=2&o[0]?n.return:o[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,o[1])).done)return i;switch(n=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,n=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!((i=(i=s.trys).length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]{"use strict";r.d(e,{Z:()=>y});var n=r(17656),i=r(95892),o=r(70166),s=r(9520),a=r(61995),u=r(8911),c=r(95543),l=r(11021),h=r(22218),f=r(63971),p=r(48764).Buffer,d=function(t,e,r,n){return new(r||(r=Promise))((function(i,o){function s(t){try{u(n.next(t))}catch(t){o(t)}}function a(t){try{u(n.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(s,a)}u((n=n.apply(t,e||[])).next())}))},g=function(t,e){var r,n,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(r)throw new TypeError("Generator is already executing.");for(;s;)try{if(r=1,n&&(i=2&o[0]?n.return:o[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,o[1])).done)return i;switch(n=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,n=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!((i=(i=s.trys).length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=e},i=function(t){return void 0===t||t=3&&r.length<=5&&[44+e,49+e,84+e,86+e].some((function(t){return t==r[0]}))&&[0+e,1+e].some((function(t){return t==r[1]}))&&n(r[2])&&s(r[3])&&i(r[4]))||!!(r.length>=4&&r.length<=6&&48+e==r[0]&&[0+e,1+e].some((function(t){return t==r[1]}))&&n(r[2])&&n(r[3])&&s(r[4])&&i(r[5]))}(t))throw Error("non-standard path: ".concat(t));return s=(0,o.Tq)(t),[4,this.client.getExtendedPubkey(!1,s)];case 1:return a=h.sent(),u=null!==(r=null==e?void 0:e.verify)&&void 0!==r&&r,[4,this.getWalletAddress(s,m(null!==(n=null==e?void 0:e.format)&&void 0!==n?n:"legacy"),u)];case 2:return c=h.sent(),l=(0,o.UF)(a),[2,{publicKey:p.from((0,i.pointCompress)(l.pubkey,!1)).toString("hex"),bitcoinAddress:c,chainCode:l.chaincode.toString("hex")}]}}))}))},t.prototype.getWalletAddress=function(t,e,r){return d(this,void 0,void 0,(function(){var n,i,s,a,c;return g(this,(function(l){switch(l.label){case 0:return(n=(0,o.kr)(t)).length+2!=t.length?[2,""]:[4,this.client.getExtendedPubkey(!1,n)];case 1:return i=l.sent(),[4,this.client.getMasterFingerprint()];case 2:return s=l.sent(),a=new u.x(e,(0,u.T)(s,n,i)),c=t.slice(-2,t.length),[2,this.client.getWalletAddress(a,p.alloc(32,0),c[0],c[1],r)]}}))}))},t.prototype.createPaymentTransaction=function(t){return d(this,void 0,void 0,(function(){var e,r,n,i,f,d,y,m,v,b,w,_,E,x,S,T,I,k,A,O,P,C,N;return g(this,(function(g){switch(g.label){case 0:if(0==(e=t.inputs.length))throw Error("No inputs");return r=new h.W2,[4,this.client.getMasterFingerprint()];case 1:n=g.sent(),i=function(t,e,r){return t.additionals.includes("bech32m")?new a.Sq(e,r):t.additionals.includes("bech32")?new a.Vi(e,r):t.segwit?new a.TU(e,r):new a.xc(e,r)}(t,r,n),null!=t.lockTime&&r.setGlobalFallbackLocktime(t.lockTime),r.setGlobalInputCount(e),r.setGlobalPsbtVersion(2),r.setGlobalTxVersion(2),f=0,d=function(){t.onDeviceStreaming&&t.onDeviceStreaming({total:2*e,index:f,progress:++f/(2*e)})},y="",m=[],S=0,g.label=2;case 2:return S{"use strict";r.d(e,{Z:()=>y});var n=r(87294),i=r.n(n),o=r(79785),s=r.n(o),a=r(89072),u=r.n(a),c=r(90392),l=r(85713),h=r(70166),f=r(48764).Buffer,p=function(){return p=Object.assign||function(t){for(var e,r=1,n=arguments.length;r0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]1)throw new Error("@ledgerhq/hw-app-btc: createPaymentTransaction multi argument signature is deprecated. please switch to named parameters.");return(0,c._)(this.transport,t)},t}();function m(t){var e=f.allocUnsafe(4);return e.writeUInt32BE(t,0),e}var v=function(t){return f.concat([f.from([2+(1&t[64])]),t.slice(1,33)])};function b(t){return u()("sha256").update(t).digest()}},70166:(t,e,r)=>{"use strict";r.d(e,{Ff:()=>u,MR:()=>l,Tq:()=>h,UF:()=>p,kr:()=>d,oG:()=>f,wE:()=>c});var n=r(30246),i=r.n(n),o=r(58334),s=r.n(o),a=r(48764).Buffer;function u(t){var e=a.alloc(1+4*t.length);return e[0]=t.length,t.forEach((function(t,r){e.writeUInt32BE(t,1+4*r)})),e}function c(t){return u(t?h(t):[])}function l(t){return i().fromPathArray(t).toString()}function h(t){return i().fromString(t).toPathArray()}function f(t){var e=s().decode(t);return e.slice(e.length-33)}function p(t){var e=s().decode(t);return{chaincode:e.slice(13,45),pubkey:e.slice(e.length-33),version:e.readUInt32BE(0)}}function d(t){for(var e=t.length-1;e>=0;e--)if(t[e]>=2147483648)return t.slice(0,e+1);return[]}},9520:(t,e,r)=>{"use strict";r.d(e,{P1:()=>s,h$:()=>a,hB:()=>c,vS:()=>u});var n=r(57795),i=r.n(n),o=r(48764).Buffer;function s(t){if(t>Number.MAX_SAFE_INTEGER)throw new Error("Can't convert numbers > MAX_SAFE_INT");for(var e=o.alloc(8,0),r=0;r MAX_SAFE_INT");if(t[6]>31)throw new Error("Can't encode numbers > MAX_SAFE_INT");for(var r=t.length-1;r>=0;r--)e=256*e+t[r];return e}var u=function(){function t(){this.bufs=[]}return t.prototype.write=function(t,e){var r=o.alloc(t);e(r),this.bufs.push(r)},t.prototype.writeUInt8=function(t){this.write(1,(function(e){return e.writeUInt8(t,0)}))},t.prototype.writeInt32=function(t){this.write(4,(function(e){return e.writeInt32LE(t,0)}))},t.prototype.writeUInt32=function(t){this.write(4,(function(e){return e.writeUInt32LE(t,0)}))},t.prototype.writeUInt64=function(t){var e=s(t);this.writeSlice(e)},t.prototype.writeVarInt=function(t){this.bufs.push(i().encode(t))},t.prototype.writeSlice=function(t){this.bufs.push(o.from(t))},t.prototype.writeVarSlice=function(t){this.writeVarInt(t.length),this.writeSlice(t)},t.prototype.buffer=function(){return o.concat(this.bufs)},t}(),c=function(){function t(t,e){void 0===e&&(e=0),this.buffer=t,this.offset=e}return t.prototype.available=function(){return this.buffer.length-this.offset},t.prototype.readUInt8=function(){var t=this.buffer.readUInt8(this.offset);return this.offset++,t},t.prototype.readInt32=function(){var t=this.buffer.readInt32LE(this.offset);return this.offset+=4,t},t.prototype.readUInt32=function(){var t=this.buffer.readUInt32LE(this.offset);return this.offset+=4,t},t.prototype.readUInt64=function(){return a(this.readSlice(8))},t.prototype.readVarInt=function(){var t=i().decode(this.buffer,this.offset);return this.offset+=i().decode.bytes,t},t.prototype.readSlice=function(t){if(this.buffer.length{"use strict";r.d(e,{L:()=>i});var n=r(48764).Buffer;function i(t){var e=0!=(1&t[64])?3:2,r=n.alloc(1);return r[0]=e,n.concat([r,t.slice(1,33)])}},98331:(t,e,r)=>{"use strict";r.d(e,{K1:()=>n,Ln:()=>o,WE:()=>s,X_:()=>h,ZM:()=>l,df:()=>a,eQ:()=>i,fC:()=>f,h0:()=>c,jK:()=>p,lf:()=>u});var n=50,i=1,o=0,s=4294967295,a=1,u=118,c=169,l=20,h=135,f=136,p=172},90392:(t,e,r)=>{"use strict";r.d(e,{_:()=>E});var n=r(28716),i=r(94117),o=r(85713),s=r(97351),a=r(22195),u=r(63971),c=r(56976),l=r(38035),h=r(40888),f=r(6906),p=r(38565),d=r(98331),g=r(88020),y=r(48764).Buffer,m=function(){return m=Object.assign||function(t){for(var e,r=1,n=arguments.length;r0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")},_={lockTime:d.Ln,sigHashType:d.df,segwit:!1,additionals:[],onDeviceStreaming:function(t){},onDeviceSignatureGranted:function(){},onDeviceSignatureRequested:function(){}};function E(t,e){return v(this,void 0,void 0,(function(){var r,v,E,x,S,T,I,k,A,O,P,C,N,M,B,R,D,L,U,H,$,j,F,V,W,K,q,G,z,X,Y,J,Z,Q,tt,et,rt,nt,it,ot,st,at,ut,ct,lt,ht,ft,pt,dt,gt,yt,mt,vt,bt,wt,_t,Et,xt,St,Tt,It,kt;return b(this,(function(b){switch(b.label){case 0:if(r=m(m({},_),e),v=r.inputs,E=r.associatedKeysets,x=r.changePath,S=r.outputScriptHex,T=r.lockTime,I=r.sigHashType,k=r.segwit,A=r.initialTimestamp,O=r.additionals,P=r.expiryHeight,C=r.onDeviceStreaming,N=r.onDeviceSignatureGranted,M=r.onDeviceSignatureRequested,void 0!==(B=r.useTrustedInputForSegwit))return[3,4];b.label=1;case 1:return b.trys.push([1,3,,4]),[4,(0,p.m)(t)];case 2:return R=b.sent(),B=(0,g.l)(R),[3,4];case 3:if(27904!==(D=b.sent()).statusCode)throw D;return B=!1,[3,4];case 4:L=function(t,e){var r=v.length;if(!(r<3)){var n=r*t+e,i=2*r;C({progress:n/i,total:i,index:n})}},U=O.includes("decred"),H=O.includes("zcash"),$=O.includes("stealthcoin"),j=Date.now(),F=O.includes("sapling"),V=k&&O.includes("bech32"),W=k||!!O&&(O.includes("abc")||O.includes("gold")||O.includes("bip143"))||!!P&&!U,(K=y.alloc(4)).writeUInt32LE(T,0),q=y.alloc(0),G=y.alloc(0),z=y.alloc(4),P&&!U?z.writeUInt32LE(H?2147483653:F?2147483652:2147483651,0):$?z.writeUInt32LE(2,0):z.writeUInt32LE(1,0),X=[],Y=[],J=[],Z=[],Q=!0,tt=!1,et={inputs:[],version:z,timestamp:y.alloc(0)},rt=W&&!B?c.i:s.Z,nt=y.from(S,"hex"),L(0,0),b.label=5;case 5:b.trys.push([5,11,12,13]),it=w(v),ot=it.next(),b.label=6;case 6:return ot.done?[3,10]:(pt=ot.value,tt?[3,8]:[4,rt(t,pt[1],pt[0],O)]);case 7:st=b.sent(),(0,n.c)("hw","got trustedInput="+st),(at=y.alloc(4)).writeUInt32LE(pt.length>=4&&"number"==typeof pt[3]?pt[3]:d.WE,0),X.push({trustedInput:!0,value:y.from(st,"hex"),sequence:at}),b.label=8;case 8:ut=pt[0].outputs,ct=pt[1],ut&&ct<=ut.length-1&&Y.push(ut[ct]),P&&!U?(et.nVersionGroupId=y.from(H?[10,39,167,38]:F?[133,32,47,137]:[112,130,196,3]),et.nExpiryHeight=P,et.extraData=y.from(F?[0,0,0,0,0,0,0,0,0,0,0]:[0])):U&&(et.nExpiryHeight=P),b.label=9;case 9:return ot=it.next(),[3,6];case 10:return[3,13];case 11:return lt=b.sent(),It={error:lt},[3,13];case 12:try{ot&&!ot.done&&(kt=it.return)&&kt.call(it)}finally{if(It)throw It.error}return[7];case 13:if(et.inputs=v.map((function(t,e){var r=y.alloc(4);return r.writeUInt32LE(t.length>=4&&"number"==typeof t[3]?t[3]:d.WE,0),{script:H?Y[e].script:q,prevout:G,sequence:r}})),tt)return[3,18];ht=[],xt=0,b.label=14;case 14:return xt=3&&"string"==typeof pt[2]?y.from(pt[2],"hex"):k?y.concat([y.from([d.lf,d.h0,d.ZM]),(0,i.C)(Z[xt]),y.from([d.fC,d.jK])]):Y[xt].script,gt=Object.assign({},et),yt=W?[X[xt]]:X,W?gt.inputs=[m(m({},gt.inputs[xt]),{script:dt})]:gt.inputs[xt].script=dt,[4,(0,a.L)(t,!W&&Q,gt,yt,W,!!P&&!U,O,B)]):[3,34];case 27:return b.sent(),W?[3,31]:tt||!x?[3,29]:[4,(0,f.P)(t,x)];case 28:b.sent(),b.label=29;case 29:return[4,(0,f.B)(t,nt,O)];case 30:b.sent(),b.label=31;case 31:return Q&&(N(),L(1,0)),[4,(0,h.O)(t,E[xt],T,I,P,O)];case 32:mt=b.sent(),L(1,xt+1),J.push(mt),et.inputs[xt].script=q,Q&&(Q=!1),b.label=33;case 33:return xt++,[3,26];case 34:for(xt=0;xt{"use strict";function n(t){var e="TX";return e+=" version "+t.version.toString("hex"),t.locktime&&(e+=" locktime "+t.locktime.toString("hex")),t.witness&&(e+=" witness "+t.witness.toString("hex")),t.timestamp&&(e+=" timestamp "+t.timestamp.toString("hex")),t.nVersionGroupId&&(e+=" nVersionGroupId "+t.nVersionGroupId.toString("hex")),t.nExpiryHeight&&(e+=" nExpiryHeight "+t.nExpiryHeight.toString("hex")),t.extraData&&(e+=" extraData "+t.extraData.toString("hex")),t.inputs.forEach((function(t,r){var n=t.prevout,i=t.script,o=t.sequence;e+="\ninput ".concat(r,":"),e+=" prevout ".concat(n.toString("hex")),e+=" script ".concat(i.toString("hex")),e+=" sequence ".concat(o.toString("hex"))})),(t.outputs||[]).forEach((function(t,r){var n=t.amount,i=t.script;e+="\noutput ".concat(r,":"),e+=" amount ".concat(n.toString("hex")),e+=" script ".concat(i.toString("hex"))})),e}r.d(e,{D:()=>n}),r(25108)},6906:(t,e,r)=>{"use strict";r.d(e,{B:()=>u,P:()=>a});var n=r(70166),i=r(98331),o=function(t,e,r,n){return new(r||(r=Promise))((function(i,o){function s(t){try{u(n.next(t))}catch(t){o(t)}}function a(t){try{u(n.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(s,a)}u((n=n.apply(t,e||[])).next())}))},s=function(t,e){var r,n,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(r)throw new TypeError("Generator is already executing.");for(;s;)try{if(r=1,n&&(i=2&o[0]?n.return:o[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,o[1])).done)return i;switch(n=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,n=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!((i=(i=s.trys).length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=e.length?e.length-n:i.K1,u=n+a===e.length?128:0,c=e.slice(n,n+a),[4,t.send(224,74,u,0,c)]):[3,3];case 2:return s.sent(),n+=a,[3,1];case 3:return[2]}}))}))}},38565:(t,e,r)=>{"use strict";r.d(e,{V:()=>u,m:()=>a});var n=r(41143),i=r.n(n),o=function(t,e,r,n){return new(r||(r=Promise))((function(i,o){function s(t){try{u(n.next(t))}catch(t){o(t)}}function a(t){try{u(n.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(s,a)}u((n=n.apply(t,e||[])).next())}))},s=function(t,e){var r,n,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(r)throw new TypeError("Generator is already executing.");for(;s;)try{if(r=1,n&&(i=2&o[0]?n.return:o[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,o[1])).done)return i;switch(n=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,n=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!((i=(i=s.trys).length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]{"use strict";r.d(e,{Z:()=>f});var n=r(41143),i=r.n(n),o=r(98331),s=r(13458),a=r(48764).Buffer,u=function(t,e,r,n){return new(r||(r=Promise))((function(i,o){function s(t){try{u(n.next(t))}catch(t){o(t)}}function a(t){try{u(n.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(s,a)}u((n=n.apply(t,e||[])).next())}))},c=function(t,e){var r,n,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(r)throw new TypeError("Generator is already executing.");for(;s;)try{if(r=1,n&&(i=2&o[0]?n.return:o[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,o[1])).done)return i;switch(n=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,n=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!((i=(i=s.trys).length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};function h(t,e,r){return u(this,void 0,void 0,(function(){var n,i,o,s;return c(this,(function(u){switch(u.label){case 0:return i=!1,"number"==typeof r?(i=!0,(o=a.alloc(4)).writeUInt32BE(r,0),n=a.concat([o,e],e.length+4)):n=e,[4,t.send(224,66,i?0:128,0,n)];case 1:return[2,(s=u.sent()).slice(0,s.length-2).toString("hex")]}}))}))}function f(t,e,r,n){return void 0===n&&(n=[]),u(this,void 0,void 0,(function(){var f,p,d,g,y,m,v,b,w,_,E,x,S,T,I,k,A,O,P,C,N,M,B,R,D,L,U,H,$=this;return c(this,(function(j){switch(j.label){case 0:if(f=r.version,p=r.inputs,d=r.outputs,g=r.locktime,y=r.nExpiryHeight,m=r.extraData,!d||!g)throw new Error("getTrustedInput: locktime & outputs is expected");return v=n.includes("decred"),b=n.includes("stealthcoin"),w=function(e,r){return u($,void 0,void 0,(function(){var n,i,s,u,f,p,d,g,y,m,v;return c(this,(function(c){switch(c.label){case 0:for(n=r||a.alloc(0),i=[],s=0;s!==e.length;)u=e.length-s>o.K1?o.K1:e.length-s,s+u!==e.length?i.push(e.slice(s,s+u)):i.push(a.concat([e.slice(s,s+u),n])),s+=u;0===e.length&&i.push(n),c.label=1;case 1:c.trys.push([1,6,7,8]),p=l(i),d=p.next(),c.label=2;case 2:return d.done?[3,5]:(g=d.value,[4,h(t,g)]);case 3:f=c.sent(),c.label=4;case 4:return d=p.next(),[3,2];case 5:return[3,8];case 6:return y=c.sent(),m={error:y},[3,8];case 7:try{d&&!d.done&&(v=p.return)&&v.call(p)}finally{if(m)throw m.error}return[7];case 8:return[2,f]}}))}))},_=function(e){return h(t,e)},[4,h(t,a.concat([r.version,r.timestamp||a.alloc(0),r.nVersionGroupId||a.alloc(0),(0,s.l)(p.length)]),e)];case 1:j.sent(),j.label=2;case 2:j.trys.push([2,8,9,10]),E=l(p),x=E.next(),j.label=3;case 3:return x.done?[3,7]:(S=x.value,T=b&&0===a.compare(f,a.from([2,0,0,0])),I=v?S.tree||a.from([0]):a.alloc(0),B=a.concat([S.prevout,I,T?a.from([0]):(0,s.l)(S.script.length)]),[4,h(t,B)]);case 4:return j.sent(),[4,v?_(a.concat([S.script,S.sequence])):T?_(S.sequence):w(S.script,S.sequence)];case 5:j.sent(),j.label=6;case 6:return x=E.next(),[3,3];case 7:return[3,10];case 8:return k=j.sent(),D={error:k},[3,10];case 9:try{x&&!x.done&&(L=E.return)&&L.call(E)}finally{if(D)throw D.error}return[7];case 10:return[4,h(t,(0,s.l)(d.length))];case 11:j.sent(),j.label=12;case 12:j.trys.push([12,17,18,19]),A=l(d),O=A.next(),j.label=13;case 13:return O.done?[3,16]:(P=O.value,B=a.concat([P.amount,v?a.from([0,0]):a.alloc(0),(0,s.l)(P.script.length),P.script]),[4,h(t,B)]);case 14:j.sent(),j.label=15;case 15:return O=A.next(),[3,13];case 16:return[3,19];case 17:return C=j.sent(),U={error:C},[3,19];case 18:try{O&&!O.done&&(H=A.return)&&H.call(A)}finally{if(U)throw U.error}return[7];case 19:return N=[],y&&y.length>0&&N.push(y),m&&m.length>0&&N.push(m),N.length&&(B=a.concat(N),M=v?B:a.concat([(0,s.l)(B.length),B])),[4,w(a.concat([g,M||a.alloc(0)]))];case 20:return R=j.sent(),i()(R,"missing result in processScriptBlocks"),[2,R]}}))}))}},56976:(t,e,r)=>{"use strict";r.d(e,{i:()=>a});var n=r(89072),i=r.n(n),o=r(63971),s=r(48764).Buffer;function a(t,e,r,n){if(void 0===n&&(n=[]),!r)throw new Error("getTrustedInputBIP143: missing tx");if(n.includes("decred"))throw new Error("Decred does not implement BIP143");var a=i()("sha256").update(i()("sha256").update((0,o.D)(r,!0)).digest()).digest(),u=s.alloc(4);u.writeUInt32LE(e,0);var c=r.outputs,l=r.locktime;if(!c||!l)throw new Error("getTrustedInputBIP143: locktime & outputs is expected");if(!c[e])throw new Error("getTrustedInputBIP143: wrong index");return(a=s.concat([a,u,c[e].amount])).toString("hex")}},85713:(t,e,r)=>{"use strict";r.d(e,{O:()=>u});var n=r(70166),i=function(){return i=Object.assign||function(t){for(var e,r=1,n=arguments.length;r0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]{"use strict";r.d(e,{C:()=>a});var n=r(79785),i=r.n(n),o=r(89072),s=r.n(o);function a(t){return(new(i())).update(s()("sha256").update(t).digest()).digest()}},61995:(t,e,r)=>{"use strict";r.d(e,{Sq:()=>p,TU:()=>d,Vi:()=>g,xc:()=>f});var n,i=r(17656),o=r(95892),s=r(9520),a=r(98331),u=r(94117),c=r(48764).Buffer,l=(n=function(t,e){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])},n(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function r(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}),h=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return l(e,t),e.prototype.spendingCondition=function(t){if(1!=t.length)throw new Error("Expected single key, got "+t.length);return this.singleKeyCondition(t[0])},e.prototype.setInput=function(t,e,r,n,i){if(1!=n.length)throw new Error("Expected single key, got "+n.length);if(1!=i.length)throw new Error("Expected single path, got "+i.length);this.setSingleKeyInput(t,e,r,n[0],i[0])},e.prototype.setOwnOutput=function(t,e,r,n){if(1!=r.length)throw new Error("Expected single key, got "+r.length);if(1!=n.length)throw new Error("Expected single path, got "+n.length);this.setSingleKeyOutput(t,e,r[0],n[0])},e}((function(t,e){this.psbt=t,this.masterFp=e})),f=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return l(e,t),e.prototype.singleKeyCondition=function(t){var e=new s.vS,r=(0,u.C)(t);return e.writeSlice(c.from([a.lf,a.h0,a.ZM])),e.writeSlice(r),e.writeSlice(c.from([a.fC,a.jK])),{scriptPubKey:e.buffer()}},e.prototype.setSingleKeyInput=function(t,e,r,n,i){if(!e)throw new Error("Full input base transaction required");this.psbt.setInputNonWitnessUtxo(t,e),this.psbt.setInputBip32Derivation(t,n,this.masterFp,i)},e.prototype.setSingleKeyOutput=function(t,e,r,n){this.psbt.setOutputBip32Derivation(t,r,this.masterFp,n)},e.prototype.getDescriptorTemplate=function(){return"pkh(@0)"},e}(h),p=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return l(e,t),e.prototype.singleKeyCondition=function(t){var e=t.slice(1),r=new s.vS,n=this.getTaprootOutputKey(e);return r.writeSlice(c.from([81,32])),r.writeSlice(n),{scriptPubKey:r.buffer()}},e.prototype.setSingleKeyInput=function(t,e,r,n,i){var o=n.slice(1);this.psbt.setInputTapBip32Derivation(t,o,[],this.masterFp,i),this.psbt.setInputWitnessUtxo(t,r.amount,r.cond.scriptPubKey)},e.prototype.setSingleKeyOutput=function(t,e,r,n){var i=r.slice(1);this.psbt.setOutputTapBip32Derivation(t,i,[],this.masterFp,n)},e.prototype.getDescriptorTemplate=function(){return"tr(@0)"},e.prototype.hashTapTweak=function(t){var e=i.eL.sha256(c.from("TapTweak","utf-8"));return i.eL.sha256(c.concat([e,e,t]))},e.prototype.getTaprootOutputKey=function(t){if(32!=t.length)throw new Error("Expected 32 byte pubkey. Got "+t.length);var e=c.concat([c.from([2]),t]),r=this.hashTapTweak(t);return c.from((0,o.pointAddScalar)(e,r)).slice(1)},e}(h),d=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return l(e,t),e.prototype.singleKeyCondition=function(t){var e=new s.vS,r=this.createRedeemScript(t),n=(0,u.C)(r);return e.writeSlice(c.from([a.h0,a.ZM])),e.writeSlice(n),e.writeUInt8(a.X_),{scriptPubKey:e.buffer(),redeemScript:r}},e.prototype.setSingleKeyInput=function(t,e,r,n,i){if(!e)throw new Error("Full input base transaction required");this.psbt.setInputNonWitnessUtxo(t,e),this.psbt.setInputBip32Derivation(t,n,this.masterFp,i);var o=r.cond.redeemScript,s=this.createRedeemScript(n);if(o&&!s.equals(o))throw new Error("User-supplied redeemScript ".concat(o.toString("hex")," doesn't\n match expected ").concat(s.toString("hex")," for input ").concat(t));this.psbt.setInputRedeemScript(t,s),this.psbt.setInputWitnessUtxo(t,r.amount,r.cond.scriptPubKey)},e.prototype.setSingleKeyOutput=function(t,e,r,n){this.psbt.setOutputRedeemScript(t,e.redeemScript),this.psbt.setOutputBip32Derivation(t,r,this.masterFp,n)},e.prototype.getDescriptorTemplate=function(){return"sh(wpkh(@0))"},e.prototype.createRedeemScript=function(t){var e=(0,u.C)(t);return c.concat([c.from("0014","hex"),e])},e}(h),g=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return l(e,t),e.prototype.singleKeyCondition=function(t){var e=new s.vS,r=(0,u.C)(t);return e.writeSlice(c.from([0,a.ZM])),e.writeSlice(r),{scriptPubKey:e.buffer()}},e.prototype.setSingleKeyInput=function(t,e,r,n,i){if(!e)throw new Error("Full input base transaction required");this.psbt.setInputNonWitnessUtxo(t,e),this.psbt.setInputBip32Derivation(t,n,this.masterFp,i),this.psbt.setInputWitnessUtxo(t,r.amount,r.cond.scriptPubKey)},e.prototype.setSingleKeyOutput=function(t,e,r,n){this.psbt.setOutputBip32Derivation(t,r,this.masterFp,n)},e.prototype.getDescriptorTemplate=function(){return"wpkh(@0)"},e}(h)},40307:(t,e,r)=>{"use strict";r.d(e,{C:()=>d});var n,i,o=r(70166),s=r(22883),a=r(54651),u=r(13458),c=r(34273),l=r(48764).Buffer,h=function(t,e,r,n){return new(r||(r=Promise))((function(i,o){function s(t){try{u(n.next(t))}catch(t){o(t)}}function a(t){try{u(n.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(s,a)}u((n=n.apply(t,e||[])).next())}))},f=function(t,e){var r,n,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(r)throw new TypeError("Generator is already executing.");for(;s;)try{if(r=1,n&&(i=2&o[0]?n.return:o[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,o[1])).done)return i;switch(n=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,n=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!((i=(i=s.trys).length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};!function(t){t[t.GET_PUBKEY=0]="GET_PUBKEY",t[t.REGISTER_WALLET=2]="REGISTER_WALLET",t[t.GET_WALLET_ADDRESS=3]="GET_WALLET_ADDRESS",t[t.SIGN_PSBT=4]="SIGN_PSBT",t[t.GET_MASTER_FINGERPRINT=5]="GET_MASTER_FINGERPRINT"}(n||(n={})),function(t){t[t.CONTINUE_INTERRUPTED=1]="CONTINUE_INTERRUPTED"}(i||(i={}));var d=function(){function t(t){this.transport=t}return t.prototype.makeRequest=function(t,e,r){return h(this,void 0,void 0,(function(){var n,o,s;return f(this,(function(a){switch(a.label){case 0:return[4,this.transport.send(225,t,0,0,e,[36864,57344])];case 1:n=a.sent(),a.label=2;case 2:if(57344!==n.readUInt16BE(n.length-2))return[3,4];if(!r)throw new Error("Unexpected SW_INTERRUPTED_EXECUTION");return o=n.slice(0,-2),s=r.execute(o),[4,this.transport.send(248,i.CONTINUE_INTERRUPTED,0,0,s,[36864,57344])];case 3:return n=a.sent(),[3,2];case 4:return[2,n.slice(0,-2)]}}))}))},t.prototype.getExtendedPubkey=function(t,e){return h(this,void 0,void 0,(function(){return f(this,(function(r){switch(r.label){case 0:if(e.length>6)throw new Error("Path too long. At most 6 levels allowed.");return[4,this.makeRequest(n.GET_PUBKEY,l.concat([l.from(t?[1]:[0]),(0,o.Ff)(e)]))];case 1:return[2,r.sent().toString("ascii")]}}))}))},t.prototype.getWalletAddress=function(t,e,r,i,o){return h(this,void 0,void 0,(function(){var s,u;return f(this,(function(c){switch(c.label){case 0:if(0!==r&&1!==r)throw new Error("Change can only be 0 or 1");if(i<0||!Number.isInteger(i))throw new Error("Invalid address index");if(null!=e&&32!=e.length)throw new Error("Invalid HMAC length");return(s=new a.rK((function(){}))).addKnownList(t.keys.map((function(t){return l.from(t,"ascii")}))),s.addKnownPreimage(t.serialize()),(u=l.alloc(4)).writeUInt32BE(i,0),[4,this.makeRequest(n.GET_WALLET_ADDRESS,l.concat([l.from(o?[1]:[0]),t.getWalletId(),e||l.alloc(32,0),l.from([r]),u]),s)];case 1:return[2,c.sent().toString("ascii")]}}))}))},t.prototype.signPsbt=function(t,e,r,i){return h(this,void 0,void 0,(function(){var o,h,d,g,y,m,v,b,w,_,E,x,S,T,I,k,A,O,P,C;return f(this,(function(f){switch(f.label){case 0:if(o=new s.q(t),null!=r&&32!=r.length)throw new Error("Invalid HMAC length");(h=new a.rK(i)).addKnownList(e.keys.map((function(t){return l.from(t,"ascii")}))),h.addKnownPreimage(e.serialize()),h.addKnownMapping(o.globalMerkleMap);try{for(d=p(o.inputMerkleMaps),g=d.next();!g.done;g=d.next())v=g.value,h.addKnownMapping(v)}catch(t){I={error:t}}finally{try{g&&!g.done&&(k=d.return)&&k.call(d)}finally{if(I)throw I.error}}try{for(y=p(o.outputMerkleMaps),m=y.next();!m.done;m=y.next())v=m.value,h.addKnownMapping(v)}catch(t){A={error:t}}finally{try{m&&!m.done&&(O=y.return)&&O.call(y)}finally{if(A)throw A.error}}return h.addKnownList(o.inputMapCommitments),b=new c.z(o.inputMapCommitments.map((function(t){return(0,c.J)(t)}))).getRoot(),h.addKnownList(o.outputMapCommitments),w=new c.z(o.outputMapCommitments.map((function(t){return(0,c.J)(t)}))).getRoot(),[4,this.makeRequest(n.SIGN_PSBT,l.concat([o.getGlobalKeysValuesRoot(),(0,u.l)(o.getGlobalInputCount()),b,(0,u.l)(o.getGlobalOutputCount()),w,e.getWalletId(),r||l.alloc(32,0)]),h)];case 1:f.sent(),_=h.getYielded(),E=new Map;try{for(x=p(_),S=x.next();!S.done;S=x.next())T=S.value,E.set(T[0],T.slice(1))}catch(t){P={error:t}}finally{try{S&&!S.done&&(C=x.return)&&C.call(x)}finally{if(P)throw P.error}}return[2,E]}}))}))},t.prototype.getMasterFingerprint=function(){return h(this,void 0,void 0,(function(){return f(this,(function(t){return[2,this.makeRequest(n.GET_MASTER_FINGERPRINT,l.from([]))]}))}))},t}()},54651:(t,e,r)=>{"use strict";r.d(e,{rK:()=>w});var n,i,o=r(17656),s=r(9520),a=r(13458),u=r(34273),c=r(48764).Buffer,l=(n=function(t,e){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])},n(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function r(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}),h=function(t,e){var r="function"==typeof Symbol&&t[Symbol.iterator];if(!r)return t;var n,i,o=r.call(t),s=[];try{for(;(void 0===e||e-- >0)&&!(n=o.next()).done;)s.push(n.value)}catch(t){i={error:t}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return s},f=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,o=e.length;i=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};!function(t){t[t.YIELD=16]="YIELD",t[t.GET_PREIMAGE=64]="GET_PREIMAGE",t[t.GET_MERKLE_LEAF_PROOF=65]="GET_MERKLE_LEAF_PROOF",t[t.GET_MERKLE_LEAF_INDEX=66]="GET_MERKLE_LEAF_INDEX",t[t.GET_MORE_ELEMENTS=160]="GET_MORE_ELEMENTS"}(i||(i={}));var d=function(){},g=function(t){function e(e,r){var n=t.call(this)||this;return n.progressCallback=r,n.code=i.YIELD,n.results=e,n}return l(e,t),e.prototype.execute=function(t){return this.results.push(c.from(t.subarray(1))),this.progressCallback(),c.from("")},e}(d),y=function(t){function e(e,r){var n=t.call(this)||this;return n.code=i.GET_PREIMAGE,n.known_preimages=e,n.queue=r,n}return l(e,t),e.prototype.execute=function(t){var e=c.from(t.subarray(1));if(33!=e.length)throw new Error("Invalid request, unexpected trailing data");if(0!=e[0])throw new Error("Unsupported request, the first byte should be 0");for(var r=c.alloc(32),n=0;n<32;n++)r[n]=e[1+n];var i=r.toString("hex"),o=this.known_preimages.get(i);if(null!=o){var s=(0,a.l)(o.length),u=255-s.length-1,l=Math.min(u,o.length);if(l=n||u.size()!=n)throw Error("Invalid index or tree size.");if(0!=this.queue.length)throw Error("This command should not execute when the queue is not empty.");var l=u.getProof(i),p=Math.min(Math.floor(221/32),l.length),d=l.length-p;return d>0&&(e=this.queue).push.apply(e,f([],h(l.slice(-d)),!1)),c.concat(f([u.getLeafHash(i),c.from([l.length]),c.from([p])],h(l.slice(0,p)),!1))},e}(d),v=function(t){function e(e){var r=t.call(this)||this;return r.code=i.GET_MERKLE_LEAF_INDEX,r.known_trees=e,r}return l(e,t),e.prototype.execute=function(t){var e=c.from(t.subarray(1));if(64!=e.length)throw new Error("Invalid request, unexpected trailing data");for(var r=c.alloc(32),n=0;n<32;n++)r[n]=e.readUInt8(n);var i=r.toString("hex"),o=c.alloc(32);for(n=0;n<32;n++)o[n]=e.readUInt8(32+n);var s=o.toString("hex"),u=this.known_trees.get(i);if(!u)throw Error("Requested Merkle leaf index for unknown root: ".concat(i));var l=0,h=0;for(n=0;n{"use strict";r.d(e,{q:()=>l});var n,i=r(94351),o=r(22218),s=r(48764).Buffer,a=(n=function(t,e){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])},n(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function r(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}),u=function(t,e){var r="function"==typeof Symbol&&t[Symbol.iterator];if(!r)return t;var n,i,o=r.call(t),s=[];try{for(;(void 0===e||e-- >0)&&!(n=o.next()).done;)s.push(n.value)}catch(t){i={error:t}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return s},c=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,o=e.length;i{"use strict";r.d(e,{J:()=>u,z:()=>a});var n=r(17656),i=r(48764).Buffer,o=function(t,e){var r="function"==typeof Symbol&&t[Symbol.iterator];if(!r)return t;var n,i,o=r.call(t),s=[];try{for(;(void 0===e||e-- >0)&&!(n=o.next()).done;)s.push(n.value)}catch(t){i={error:t}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return s},s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,o=e.length;i=this.leaves.length)throw Error("Index out of bounds");return l(this.leafNodes[t])},t.prototype.calculateRoot=function(t){var e=t.length;if(0==e)return{root:new c(void 0,void 0,i.alloc(32,0)),leaves:[]};if(1==e){var r=new c(void 0,void 0,t[0]);return{root:r,leaves:[r]}}var n=function(t){if(t<2)throw Error("Expected n >= 2");return function(t){return 0==(t&t-1)}(t)?t/2:1<{"use strict";r.d(e,{N:()=>s});var n=r(13458),i=r(34273),o=r(48764).Buffer,s=function(){function t(t,e){if(t.length!=e.length)throw new Error("keys and values should have the same length");for(var r=0;r=t[r+1].toString("hex"))throw new Error("keys must be in strictly increasing order");this.keys=t,this.keysTree=new i.z(t.map((function(t){return(0,i.J)(t)}))),this.values=e,this.valuesTree=new i.z(e.map((function(t){return(0,i.J)(t)})))}return t.prototype.commitment=function(){return o.concat([(0,n.l)(this.keys.length),this.keysTree.getRoot(),this.valuesTree.getRoot()])},t}()},8911:(t,e,r)=>{"use strict";r.d(e,{T:()=>c,x:()=>u});var n=r(17656),i=r(70166),o=r(9520),s=r(34273),a=r(48764).Buffer,u=function(){function t(t,e){this.descriptorTemplate=t,this.keys=[e]}return t.prototype.getWalletId=function(){return n.eL.sha256(this.serialize())},t.prototype.serialize=function(){var t=this.keys.map((function(t){return a.from(t,"ascii")})),e=new s.z(t.map((function(t){return(0,s.J)(t)}))),r=new o.vS;return r.writeUInt8(1),r.writeUInt8(0),r.writeVarSlice(a.from(this.descriptorTemplate,"ascii")),r.writeVarInt(this.keys.length),r.writeSlice(e.getRoot()),r.buffer()},t}();function c(t,e,r){var n=(0,i.MR)(e);return"[".concat(t.toString("hex")).concat(n.substring(1),"]").concat(r,"/**")}},95543:(t,e,r)=>{"use strict";r.d(e,{K:()=>o});var n=r(9520),i=r(48764).Buffer;function o(t){var e,r,o=new n.vS;o.writeUInt32(t.getGlobalTxVersion());var s=!!t.getInputWitnessUtxo(0);s&&o.writeSlice(i.from([0,1]));var a=t.getGlobalInputCount();o.writeVarInt(a);for(var u=new n.vS,c=0;c{"use strict";r.d(e,{x:()=>s});var n=r(9520),i=r(22218),o=r(48764).Buffer;function s(t){for(var e=t.getGlobalInputCount(),r=0;r0){if(o.length>1)throw Error("Expected exactly one signature, got ".concat(o.length));if(s)throw Error("Both taproot and non-taproot signatures present.");var c=!!t.getInputWitnessUtxo(r),l=t.getInputRedeemScript(r),h=!!l;if(!(d=t.getInputPartialSig(r,o[0])))throw new Error("Expected partial signature for input "+r);if(c){if((g=new n.vS).writeVarInt(2),g.writeVarInt(d.length),g.writeSlice(d),g.writeVarInt(o[0].length),g.writeSlice(o[0]),t.setInputFinalScriptwitness(r,g.buffer()),h){if(!l||0==l.length)throw new Error("Expected non-empty redeemscript. Can't finalize intput "+r);var f=new n.vS;f.writeUInt8(l.length),f.writeSlice(l),t.setInputFinalScriptsig(r,f.buffer())}}else{var p=new n.vS;u(p,d),u(p,o[0]),t.setInputFinalScriptsig(r,p.buffer())}}else{var d,g;if(!(d=t.getInputTapKeySig(r)))throw Error("No taproot signature found");if(64!=d.length&&65!=d.length)throw Error("Unexpected length of schnorr signature.");(g=new n.vS).writeVarInt(1),g.writeVarSlice(d),t.setInputFinalScriptwitness(r,g.buffer())}a(t,r)}}function a(t,e){var r=[i.sG.BIP32_DERIVATION,i.sG.PARTIAL_SIG,i.sG.TAP_BIP32_DERIVATION,i.sG.TAP_KEY_SIG],n=!!t.getInputWitnessUtxo(e),o=!!t.getInputNonWitnessUtxo(e);n&&o&&r.push(i.sG.NON_WITNESS_UTXO),t.deleteInputEntries(e,r)}function u(t,e){if(e.length<=75)t.writeUInt8(e.length);else if(e.length<=256)t.writeUInt8(76),t.writeUInt8(e.length);else if(e.length<=65536){t.writeUInt8(77);var r=o.alloc(2);r.writeUInt16LE(e.length,0),t.writeSlice(r)}t.writeSlice(e)}},22218:(t,e,r)=>{"use strict";r.d(e,{W2:()=>p,sG:()=>o});var n,i,o,s,a=r(9520),u=r(48764).Buffer,c=(n=function(t,e){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])},n(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function r(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}),l=function(){return l=Object.assign||function(t){for(var e,r=1,n=arguments.length;r{"use strict";r.d(e,{D:()=>s,H:()=>o});var n=r(13458),i=r(48764).Buffer;function o(t){var e=t.outputs,r=i.alloc(0);return void 0!==e&&(r=i.concat([r,(0,n.l)(e.length)]),e.forEach((function(t){r=i.concat([r,t.amount,(0,n.l)(t.script.length),t.script])}))),r}function s(t,e,r,s){void 0===s&&(s=[]);var a=s.includes("decred"),u=s.includes("zcash"),c=s.includes("bech32"),l=i.alloc(0),h=void 0!==t.witness&&!e;t.inputs.forEach((function(t){l=a||c?i.concat([l,t.prevout,i.from([0]),t.sequence]):i.concat([l,t.prevout,(0,n.l)(t.script.length),t.script,t.sequence])}));var f=o(t);return void 0!==t.outputs&&void 0!==t.locktime&&(f=i.concat([f,h&&t.witness||i.alloc(0),t.locktime,t.nExpiryHeight||i.alloc(0),t.extraData||i.alloc(0)])),u?i.concat([t.version,t.nVersionGroupId||i.alloc(0),i.from([180,208,214,194]),t.locktime||i.from([0,0,0,0]),t.nExpiryHeight||i.from([0,0,0,0]),h?i.from("0001","hex"):i.alloc(0),(0,n.l)(t.inputs.length),l,f]):i.concat([t.version,r||i.alloc(0),t.nVersionGroupId||i.alloc(0),h?i.from("0001","hex"):i.alloc(0),(0,n.l)(t.inputs.length),l,f])}},88020:(t,e,r)=>{"use strict";r.d(e,{l:()=>o});var n=r(81249),i=r.n(n);function o(t){var e=t.version,r=t.name;return"Decred"!==r&&("Exchange"===r||i().gte(e,"1.4.0"))}},41039:(t,e,r)=>{"use strict";r.d(e,{l:()=>c});var n=r(30246),i=r.n(n),o=r(98331),s=r(48764).Buffer,a=function(t,e,r,n){return new(r||(r=Promise))((function(i,o){function s(t){try{u(n.next(t))}catch(t){o(t)}}function a(t){try{u(n.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(s,a)}u((n=n.apply(t,e||[])).next())}))},u=function(t,e){var r,n,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(r)throw new TypeError("Generator is already executing.");for(;s;)try{if(r=1,n&&(i=2&o[0]?n.return:o[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,o[1])).done)return i;switch(n=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,n=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!((i=(i=s.trys).length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]a.length?a.length-c:r,i=s.alloc(0===c?1+4*e.length+2+n:n),0===c?(i[0]=e.length,e.forEach((function(t,e){i.writeUInt32BE(t,1+4*e)})),i.writeUInt16BE(a.length,1+4*e.length),a.copy(i,1+4*e.length+2,c,c+n)):a.copy(i,0,c,c+n),[4,t.send(224,78,0,0===c?1:128,i)];case 1:return u.sent(),c+=n,[2]}}))},g.label=1;case 1:return c===a.length?[3,3]:[5,l()];case 2:return g.sent(),[3,1];case 3:return[4,t.send(224,78,128,0,s.from([0]))];case 4:return h=g.sent(),f=h[0]-48,0===(p=h.slice(4,4+h[3]))[0]&&(p=p.slice(1)),p=p.toString("hex"),c=4+h[3]+2,0===(d=h.slice(c,c+h[c-1]))[0]&&(d=d.slice(1)),d=d.toString("hex"),[2,{v:f,r:p,s:d}]}}))}))}},85066:(t,e,r)=>{"use strict";r.d(e,{s:()=>g});var n=r(97351),i=r(22195),o=r(56976),s=r(40888),a=r(6906),u=r(98331),c=r(48764).Buffer,l=function(){return l=Object.assign||function(t){for(var e,r=1,n=arguments.length;r0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")},d={lockTime:u.Ln,sigHashType:u.df,segwit:!1,transactionVersion:u.eQ};function g(t,e){return h(this,void 0,void 0,(function(){var r,h,g,y,m,v,b,w,_,E,x,S,T,I,k,A,O,P,C,N,M,B,R,D,L,U,H,$,j,F,V,W,K,q;return f(this,(function(f){switch(f.label){case 0:r=l(l({},d),e),h=r.inputs,g=r.associatedKeysets,y=r.outputScriptHex,m=r.lockTime,v=r.sigHashType,b=r.segwit,w=r.transactionVersion,_=c.alloc(0),E=c.alloc(0),(x=c.alloc(4)).writeUInt32LE(w,0),S=[],T=[],I=[],k=!0,A=!1,O={inputs:[],version:x},P=b?o.i:n.Z,C=c.from(y,"hex"),f.label=1;case 1:f.trys.push([1,7,8,9]),N=p(h),M=N.next(),f.label=2;case 2:return M.done?[3,6]:($=M.value,A?[3,4]:[4,P(t,$[1],$[0])]);case 3:B=f.sent(),(U=c.alloc(4)).writeUInt32LE($.length>=4&&"number"==typeof $[3]?$[3]:u.WE,0),S.push({trustedInput:!1,value:b?c.from(B,"hex"):c.from(B,"hex").slice(4,40),sequence:U}),f.label=4;case 4:R=$[0].outputs,D=$[1],R&&D<=R.length-1&&T.push(R[D]),f.label=5;case 5:return M=N.next(),[3,2];case 6:return[3,9];case 7:return L=f.sent(),K={error:L},[3,9];case 8:try{M&&!M.done&&(q=N.return)&&q.call(N)}finally{if(K)throw K.error}return[7];case 9:for(H=0;H=4&&"number"==typeof h[H][3]?h[H][3]:u.WE,0),O.inputs.push({script:_,prevout:E,sequence:U});return b?[4,(0,i.L)(t,!0,O,S,!0)]:[3,12];case 10:return f.sent(),[4,(0,a.B)(t,C)];case 11:f.sent(),f.label=12;case 12:H=0,f.label=13;case 13:return H=3&&"string"==typeof $[2]?c.from($[2],"hex"):T[H].script,F=Object.assign({},O),V=b?[S[H]]:S,b?F.inputs=[l(l({},F.inputs[H]),{script:j})]:F.inputs[H].script=j,[4,(0,i.L)(t,!b&&k,F,V,b)]):[3,19];case 14:return f.sent(),b?[3,16]:[4,(0,a.B)(t,C)];case 15:f.sent(),f.label=16;case 16:return[4,(0,s.O)(t,g[H],m,v)];case 17:W=f.sent(),I.push(b?W.toString("hex"):W.slice(0,W.length-1).toString("hex")),O.inputs[H].script=_,k&&(k=!1),f.label=18;case 18:return H++,[3,13];case 19:return[2,I]}}))}))}},40888:(t,e,r)=>{"use strict";r.d(e,{O:()=>o});var n=r(70166),i=r(48764).Buffer;function o(t,e,r,o,s,a){void 0===a&&(a=[]);var u=a.includes("decred"),c=(0,n.wE)(e),l=i.alloc(4);l.writeUInt32BE(r,0);var h=u?i.concat([c,l,s||i.from([0,0,0,0]),i.from([o])]):i.concat([c,i.from([0]),l,i.from([o])]);return s&&!u&&(h=i.concat([h,s])),t.send(224,72,0,0,h).then((function(t){return t.length>0?(t[0]=48,t.slice(0,t.length-2)):t}))}},70334:(t,e,r)=>{"use strict";r.d(e,{o:()=>a});var n=r(28716),i=r(13458),o=r(93255),s=r(48764).Buffer;function a(t,e,r,a,u){void 0===e&&(e=!1),void 0===r&&(r=!1),void 0===a&&(a=!1),void 0===u&&(u=[]);var c,l,h=[],f=[],p=!1,d=0,g=s.alloc(0),y=s.alloc(0),m=s.alloc(0),v=s.alloc(0),b=u.includes("decred"),w=u.includes("zencash"),_=u.includes("zcash"),E=s.from(t,"hex"),x=E.slice(d,d+4),S=x.equals(s.from([3,0,0,128]))||x.equals(s.from([4,0,0,128]))||x.equals(s.from([5,0,0,128])),T=_&&x.equals(s.from([5,0,0,128]));d+=4,r||!e||0!==E[d]||0===E[d+1]||w||(d+=2,p=!0),r&&(g=E.slice(d,4+d),d+=4),S&&(m=E.slice(d,4+d),d+=4),T&&(l=E.slice(d+4,d+8),y=E.slice(d+8,d+12),d+=12);var I=(0,i.v)(E,d),k=I[0];d+=I[1];for(var A=0;A{"use strict";r.d(e,{L:()=>l});var n=r(13458),i=r(98331),o=r(48764).Buffer,s=function(t,e,r,n){return new(r||(r=Promise))((function(i,o){function s(t){try{u(n.next(t))}catch(t){o(t)}}function a(t){try{u(n.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(s,a)}u((n=n.apply(t,e||[])).next())}))},a=function(t,e){var r,n,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(r)throw new TypeError("Generator is already executing.");for(;s;)try{if(r=1,n&&(i=2&o[0]?n.return:o[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,o[1])).done)return i;switch(n=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,n=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!((i=(i=s.trys).length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};function c(t,e,r,n,i,o,s){void 0===i&&(i=!1),void 0===o&&(o=!1),void 0===s&&(s=[]);var a=s.includes("cashaddr")?3:i?s.includes("sapling")?5:o?4:2:0;return t.send(224,68,r?0:128,e?a:128,n)}function l(t,e,r,l,h,f,p,d){return void 0===h&&(h=!1),void 0===f&&(f=!1),void 0===p&&(p=[]),void 0===d&&(d=!1),s(this,void 0,void 0,(function(){var s,g,y,m,v,b,w,_,E,x,S,T,I,k,A,O,P,C,N,M;return a(this,(function(a){switch(a.label){case 0:return s=o.concat([r.version,r.timestamp||o.alloc(0),r.nVersionGroupId||o.alloc(0),(0,n.l)(r.inputs.length)]),[4,c(t,e,!0,s,h,f,p)];case 1:a.sent(),g=0,y=p.includes("decred"),a.label=2;case 2:a.trys.push([2,15,16,17]),m=u(r.inputs),v=m.next(),a.label=3;case 3:return v.done?[3,14]:(b=v.value,void 0,_=l[g].value,w=h?d&&l[g].trustedInput?o.from([1,_.length]):o.from([2]):l[g].trustedInput?o.from([1,l[g].value.length]):o.from([0]),s=o.concat([w,_,y?o.from([0]):o.alloc(0),(0,n.l)(b.script.length)]),[4,c(t,e,!1,s,h,f,p)]);case 4:if(a.sent(),E=[],x=0,0===b.script.length)E.push(b.sequence);else for(;x!==b.script.length;)S=b.script.length-x>i.K1?i.K1:b.script.length-x,x+S!==b.script.length?E.push(b.script.slice(x,x+S)):E.push(o.concat([b.script.slice(x,x+S),b.sequence])),x+=S;a.label=5;case 5:a.trys.push([5,10,11,12]),N=void 0,T=u(E),I=T.next(),a.label=6;case 6:return I.done?[3,9]:(k=I.value,[4,c(t,e,!1,k,h,f,p)]);case 7:a.sent(),a.label=8;case 8:return I=T.next(),[3,6];case 9:return[3,12];case 10:return A=a.sent(),N={error:A},[3,12];case 11:try{I&&!I.done&&(M=T.return)&&M.call(T)}finally{if(N)throw N.error}return[7];case 12:g++,a.label=13;case 13:return v=m.next(),[3,3];case 14:return[3,17];case 15:return O=a.sent(),P={error:O},[3,17];case 16:try{v&&!v.done&&(C=m.return)&&C.call(m)}finally{if(P)throw P.error}return[7];case 17:return[2]}}))}))}},13458:(t,e,r)=>{"use strict";r.d(e,{l:()=>o,v:()=>i});var n=r(48764).Buffer;function i(t,e){if(t[e]<253)return[t[e],1];if(253===t[e])return[(t[e+2]<<8)+t[e+1],3];if(254===t[e])return[(t[e+4]<<24)+(t[e+3]<<16)+(t[e+2]<<8)+t[e+1],5];throw new Error("getVarint called with unexpected parameters")}function o(t){if(t<253){var e=n.alloc(1);return e[0]=t,e}if(t<=65535){var r=n.alloc(3);return r[0]=253,r[1]=255&t,r[2]=t>>8&255,r}var i=n.alloc(5);return i[0]=254,i[1]=255&t,i[2]=t>>8&255,i[3]=t>>16&255,i[4]=t>>24&255,i}},14371:(t,e,r)=>{"use strict";var n=r(89509).Buffer;t.exports=function(t){if(t.length>=255)throw new TypeError("Alphabet too long");for(var e=new Uint8Array(256),r=0;r>>0,l=new Uint8Array(s);t[r];){var h=e[t.charCodeAt(r)];if(255===h)return;for(var f=0,p=s-1;(0!==h||f>>0,l[p]=h%256>>>0,h=h/256>>>0;if(0!==h)throw new Error("Non-zero carry");o=f,r++}for(var d=s-o;d!==s&&0===l[d];)d++;var g=n.allocUnsafe(i+(s-d));g.fill(0,0,i);for(var y=i;d!==s;)g[y++]=l[d++];return g}return{encode:function(e){if((Array.isArray(e)||e instanceof Uint8Array)&&(e=n.from(e)),!n.isBuffer(e))throw new TypeError("Expected Buffer");if(0===e.length)return"";for(var r=0,i=0,o=0,s=e.length;o!==s&&0===e[o];)o++,r++;for(var c=(s-o)*l+1>>>0,h=new Uint8Array(c);o!==s;){for(var f=e[o],p=0,d=c-1;(0!==f||p>>0,h[d]=f%a>>>0,f=f/a>>>0;if(0!==f)throw new Error("Non-zero carry");i=p,o++}for(var g=c-i;g!==c&&0===h[g];)g++;for(var y=u.repeat(r);g{var n=r(14371);t.exports=n("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz")},27578:(t,e,r)=>{"use strict";var n=r(27590),i=r(33940),o=r(14347),s=r(28716),a=r(69397),u=r(83835),c=r(48764).Buffer,l=r(25108),h=function(t,e,r,n){return new(r||(r=Promise))((function(i,o){function s(t){try{u(n.next(t))}catch(t){o(t)}}function a(t){try{u(n.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(s,a)}u((n=n.apply(t,e||[])).next())}))};class f extends n.ZP{constructor(t,e){super(),this.channel=Math.floor(65535*Math.random()),this.packetSize=64,this._disconnectEmitted=!1,this._emitDisconnect=t=>{this._disconnectEmitted||(this._disconnectEmitted=!0,this.emit("disconnect",t))},this.device=t,this.interfaceNumber=e,this.deviceModel=(0,o.Ht)(t.productId)}static request(){return h(this,void 0,void 0,(function*(){const t=yield(0,u.PC)();return f.open(t)}))}static openConnected(){return h(this,void 0,void 0,(function*(){const t=yield(0,u.yz)();return 0===t.length?null:f.open(t[0])}))}static open(t){return h(this,void 0,void 0,(function*(){yield t.open(),null===t.configuration&&(yield t.selectConfiguration(1)),yield p(t);const e=t.configurations[0].interfaces.find((({alternates:t})=>t.some((t=>255===t.interfaceClass))));if(!e)throw new a.$u("No WebUSB interface found for your Ledger device. Please upgrade firmware or contact techsupport.");const r=e.interfaceNumber;try{yield t.claimInterface(r)}catch(e){throw yield t.close(),new a.$u(e.message)}const n=new f(t,r),i=e=>{t===e.device&&(navigator.usb.removeEventListener("disconnect",i),n._emitDisconnect(new a.qX))};return navigator.usb.addEventListener("disconnect",i),n}))}close(){return h(this,void 0,void 0,(function*(){yield this.exchangeBusyPromise,yield this.device.releaseInterface(this.interfaceNumber),yield p(this.device),yield this.device.close()}))}exchange(t){return h(this,void 0,void 0,(function*(){return yield this.exchangeAtomicImpl((()=>h(this,void 0,void 0,(function*(){const{channel:e,packetSize:r}=this;(0,s.c)("apdu","=> "+t.toString("hex"));const n=(0,i.Z)(e,r),o=n.makeBlocks(t);for(let t=0;t{if(t&&t.message&&t.message.includes("disconnected"))throw this._emitDisconnect(t),new a.vs(t.message);throw t}))}))}setScrambleKey(){}}function p(t){return h(this,void 0,void 0,(function*(){try{yield t.reset()}catch(t){l.warn(t)}}))}f.isSupported=u.Gb,f.list=u.yz,f.listen=t=>{let e=!1;return(0,u.DC)().then((r=>{if(!e){const e=(0,o.Ht)(r.productId);t.next({type:"add",descriptor:r,deviceModel:e}),t.complete()}}),(e=>{window.DOMException&&e instanceof window.DOMException&&18===e.code?t.error(new a.um(e.message)):t.error(new a.FB(e.message))})),{unsubscribe:function(){e=!0}}}},83835:(t,e,r)=>{"use strict";r.d(e,{DC:()=>u,Gb:()=>c,PC:()=>s,yz:()=>a});var n=r(14347),i=function(t,e,r,n){return new(r||(r=Promise))((function(i,o){function s(t){try{u(n.next(t))}catch(t){o(t)}}function a(t){try{u(n.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(s,a)}u((n=n.apply(t,e||[])).next())}))};const o=[{vendorId:n.An}];function s(){return i(this,void 0,void 0,(function*(){return yield navigator.usb.requestDevice({filters:o})}))}function a(){return i(this,void 0,void 0,(function*(){return(yield navigator.usb.getDevices()).filter((t=>t.vendorId===n.An))}))}function u(){return i(this,void 0,void 0,(function*(){const t=yield a();return t.length>0?t[0]:s()}))}const c=()=>Promise.resolve(!!navigator&&!!navigator.usb&&"function"==typeof navigator.usb.getDevices)},27590:(t,e,r)=>{"use strict";r.d(e,{ZP:()=>l});var n=r(17187),i=r.n(n),o=r(69397),s=r(48764).Buffer,a=r(25108),u=function(t,e,r,n){return new(r||(r=Promise))((function(i,o){function s(t){try{u(n.next(t))}catch(t){o(t)}}function a(t){try{u(n.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(s,a)}u((n=n.apply(t,e||[])).next())}))};class c{constructor(){this.exchangeTimeout=3e4,this.unresponsiveTimeout=15e3,this.deviceModel=null,this._events=new(i()),this.send=(t,e,r,n,i=s.alloc(0),a=[o.WC.OK])=>u(this,void 0,void 0,(function*(){if(i.length>=256)throw new o.PS("data.length exceed 256 bytes limit. Got: "+i.length,"DataLengthTooBig");const u=yield this.exchange(s.concat([s.from([t,e,r,n]),s.from([i.length]),i])),c=u.readUInt16BE(u.length-2);if(!a.some((t=>t===c)))throw new o.rZ(c);return u})),this.exchangeAtomicImpl=t=>u(this,void 0,void 0,(function*(){if(this.exchangeBusyPromise)throw new o.wp("An action was already pending on the Ledger device. Please deny or reconnect.");let e;const r=new Promise((t=>{e=t}));this.exchangeBusyPromise=r;let n=!1;const i=setTimeout((()=>{n=!0,this.emit("unresponsive")}),this.unresponsiveTimeout);try{const e=yield t();return n&&this.emit("responsive"),e}finally{clearTimeout(i),e&&e(),this.exchangeBusyPromise=null}})),this._appAPIlock=null}exchange(t){throw new Error("exchange not implemented")}exchangeBulk(t,e){let r=!1;return(()=>u(this,void 0,void 0,(function*(){if(!r)for(const n of t){const t=yield this.exchange(n);if(r)return;const i=t.readUInt16BE(t.length-2);if(i!==o.WC.OK)throw new o.rZ(i);e.next(t)}})))().then((()=>!r&&e.complete()),(t=>!r&&e.error(t))),{unsubscribe:()=>{r=!0}}}setScrambleKey(t){}close(){return Promise.resolve()}on(t,e){this._events.on(t,e)}off(t,e){this._events.removeListener(t,e)}emit(t,...e){this._events.emit(t,...e)}setDebugMode(){a.warn("setDebugMode is deprecated. use @ledgerhq/logs instead. No logs are emitted in this anymore.")}setExchangeTimeout(t){this.exchangeTimeout=t}setExchangeUnresponsiveTimeout(t){this.unresponsiveTimeout=t}static create(t=3e3,e){return new Promise(((r,n)=>{let i=!1;const s=this.listen({next:e=>{i=!0,s&&s.unsubscribe(),a&&clearTimeout(a),this.open(e.descriptor,t).then(r,n)},error:t=>{a&&clearTimeout(a),n(t)},complete:()=>{a&&clearTimeout(a),i||n(new o.PS(this.ErrorMessage_NoDeviceFound,"NoDeviceFound"))}}),a=e?setTimeout((()=>{s.unsubscribe(),n(new o.PS(this.ErrorMessage_ListenTimeout,"ListenTimeout"))}),e):null}))}decorateAppAPIMethods(t,e,r){for(const n of e)t[n]=this.decorateAppAPIMethod(n,t[n],t,r)}decorateAppAPIMethod(t,e,r,n){return(...i)=>u(this,void 0,void 0,(function*(){const{_appAPIlock:s}=this;if(s)return Promise.reject(new o.PS("Ledger Device is busy (lock "+s+")","TransportLocked"));try{return this._appAPIlock=t,this.setScrambleKey(n),yield e.apply(r,i)}finally{this._appAPIlock=null}}))}}c.ErrorMessage_ListenTimeout="No Ledger device found (timeout)",c.ErrorMessage_NoDeviceFound="No Ledger device found";const l=c},28716:(t,e,r)=>{"use strict";r.d(e,{c:()=>s});var n=r(25108),i=0,o=[],s=function(t,e,r){var s={type:t,id:String(++i),date:new Date};e&&(s.message=e),r&&(s.data=r),function(t){for(var e=0;e{"use strict";function r(t){if(!Number.isSafeInteger(t)||t<0)throw new Error(`Wrong positive integer: ${t}`)}function n(t){if("boolean"!=typeof t)throw new Error(`Expected boolean, not ${t}`)}function i(t,...e){if(!(t instanceof Uint8Array))throw new Error("Expected Uint8Array");if(e.length>0&&!e.includes(t.length))throw new Error(`Expected Uint8Array of length ${e}, not of length=${t.length}`)}function o(t){if("function"!=typeof t||"function"!=typeof t.create)throw new Error("Hash should be wrapped by utils.wrapConstructor");r(t.outputLen),r(t.blockLen)}function s(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function a(t,e){i(t);const r=e.outputLen;if(t.length{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SHA2=void 0;const n=r(27320),i=r(98089);class o extends i.Hash{constructor(t,e,r,n){super(),this.blockLen=t,this.outputLen=e,this.padOffset=r,this.isLE=n,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=(0,i.createView)(this.buffer)}update(t){(0,n.exists)(this);const{view:e,buffer:r,blockLen:o}=this,s=(t=(0,i.toBytes)(t)).length;for(let n=0;no-a&&(this.process(r,0),a=0);for(let t=a;t>i&o),a=Number(r&o),u=n?4:0,c=n?0:4;t.setUint32(e+u,s,n),t.setUint32(e+c,a,n)}(r,o-8,BigInt(8*this.length),s),this.process(r,0);const u=(0,i.createView)(t),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const l=c/4,h=this.get();if(l>h.length)throw new Error("_sha2: outputLen bigger than state");for(let t=0;t{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.add5L=e.add5H=e.add4H=e.add4L=e.add3H=e.add3L=e.add=e.rotlBL=e.rotlBH=e.rotlSL=e.rotlSH=e.rotr32L=e.rotr32H=e.rotrBL=e.rotrBH=e.rotrSL=e.rotrSH=e.shrSL=e.shrSH=e.toBig=e.split=e.fromBig=void 0;const r=BigInt(2**32-1),n=BigInt(32);function i(t,e=!1){return e?{h:Number(t&r),l:Number(t>>n&r)}:{h:0|Number(t>>n&r),l:0|Number(t&r)}}function o(t,e=!1){let r=new Uint32Array(t.length),n=new Uint32Array(t.length);for(let o=0;oBigInt(t>>>0)<>>0);e.toBig=s;const a=(t,e,r)=>t>>>r;e.shrSH=a;const u=(t,e,r)=>t<<32-r|e>>>r;e.shrSL=u;const c=(t,e,r)=>t>>>r|e<<32-r;e.rotrSH=c;const l=(t,e,r)=>t<<32-r|e>>>r;e.rotrSL=l;const h=(t,e,r)=>t<<64-r|e>>>r-32;e.rotrBH=h;const f=(t,e,r)=>t>>>r-32|e<<64-r;e.rotrBL=f;const p=(t,e)=>e;e.rotr32H=p;const d=(t,e)=>t;e.rotr32L=d;const g=(t,e,r)=>t<>>32-r;e.rotlSH=g;const y=(t,e,r)=>e<>>32-r;e.rotlSL=y;const m=(t,e,r)=>e<>>64-r;e.rotlBH=m;const v=(t,e,r)=>t<>>64-r;function b(t,e,r,n){const i=(e>>>0)+(n>>>0);return{h:t+r+(i/2**32|0)|0,l:0|i}}e.rotlBL=v,e.add=b;const w=(t,e,r)=>(t>>>0)+(e>>>0)+(r>>>0);e.add3L=w;const _=(t,e,r,n)=>e+r+n+(t/2**32|0)|0;e.add3H=_;const E=(t,e,r,n)=>(t>>>0)+(e>>>0)+(r>>>0)+(n>>>0);e.add4L=E;const x=(t,e,r,n,i)=>e+r+n+i+(t/2**32|0)|0;e.add4H=x;const S=(t,e,r,n,i)=>(t>>>0)+(e>>>0)+(r>>>0)+(n>>>0)+(i>>>0);e.add5L=S;const T=(t,e,r,n,i,o)=>e+r+n+i+o+(t/2**32|0)|0;e.add5H=T;const I={fromBig:i,split:o,toBig:s,shrSH:a,shrSL:u,rotrSH:c,rotrSL:l,rotrBH:h,rotrBL:f,rotr32H:p,rotr32L:d,rotlSH:g,rotlSL:y,rotlBH:m,rotlBL:v,add:b,add3L:w,add3H:_,add4L:E,add4H:x,add5H:T,add5L:S};e.default=I},31945:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.crypto=void 0,e.crypto="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0},79569:(t,e,r)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.hmac=e.HMAC=void 0;const n=r(27320),i=r(98089);class o extends i.Hash{constructor(t,e){super(),this.finished=!1,this.destroyed=!1,(0,n.hash)(t);const r=(0,i.toBytes)(e);if(this.iHash=t.create(),"function"!=typeof this.iHash.update)throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const o=this.blockLen,s=new Uint8Array(o);s.set(r.length>o?t.create().update(r).digest():r);for(let t=0;tnew o(t,e).update(r).digest(),e.hmac.create=(t,e)=>new o(t,e)},29023:(t,e,r)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.pbkdf2Async=e.pbkdf2=void 0;const n=r(27320),i=r(79569),o=r(98089);function s(t,e,r,s){(0,n.hash)(t);const a=(0,o.checkOpts)({dkLen:32,asyncTick:10},s),{c:u,dkLen:c,asyncTick:l}=a;if((0,n.number)(u),(0,n.number)(c),(0,n.number)(l),u<1)throw new Error("PBKDF2: iterations (c) should be >= 1");const h=(0,o.toBytes)(e),f=(0,o.toBytes)(r),p=new Uint8Array(c),d=i.hmac.create(t,h),g=d._cloneInto().update(f);return{c:u,dkLen:c,asyncTick:l,DK:p,PRF:d,PRFSalt:g}}function a(t,e,r,n,i){return t.destroy(),e.destroy(),n&&n.destroy(),i.fill(0),r}e.pbkdf2=function(t,e,r,n){const{c:i,dkLen:u,DK:c,PRF:l,PRFSalt:h}=s(t,e,r,n);let f;const p=new Uint8Array(4),d=(0,o.createView)(p),g=new Uint8Array(l.outputLen);for(let t=1,e=0;e{h._cloneInto(p).update(y).digestInto(y);for(let t=0;t{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.sha224=e.sha256=void 0;const n=r(27505),i=r(98089),o=(t,e,r)=>t&e^t&r^e&r,s=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),a=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),u=new Uint32Array(64);class c extends n.SHA2{constructor(){super(64,32,8,!1),this.A=0|a[0],this.B=0|a[1],this.C=0|a[2],this.D=0|a[3],this.E=0|a[4],this.F=0|a[5],this.G=0|a[6],this.H=0|a[7]}get(){const{A:t,B:e,C:r,D:n,E:i,F:o,G:s,H:a}=this;return[t,e,r,n,i,o,s,a]}set(t,e,r,n,i,o,s,a){this.A=0|t,this.B=0|e,this.C=0|r,this.D=0|n,this.E=0|i,this.F=0|o,this.G=0|s,this.H=0|a}process(t,e){for(let r=0;r<16;r++,e+=4)u[r]=t.getUint32(e,!1);for(let t=16;t<64;t++){const e=u[t-15],r=u[t-2],n=(0,i.rotr)(e,7)^(0,i.rotr)(e,18)^e>>>3,o=(0,i.rotr)(r,17)^(0,i.rotr)(r,19)^r>>>10;u[t]=o+u[t-7]+n+u[t-16]|0}let{A:r,B:n,C:a,D:c,E:l,F:h,G:f,H:p}=this;for(let t=0;t<64;t++){const e=p+((0,i.rotr)(l,6)^(0,i.rotr)(l,11)^(0,i.rotr)(l,25))+((d=l)&h^~d&f)+s[t]+u[t]|0,g=((0,i.rotr)(r,2)^(0,i.rotr)(r,13)^(0,i.rotr)(r,22))+o(r,n,a)|0;p=f,f=h,h=l,l=c+e|0,c=a,a=n,n=r,r=e+g|0}var d;r=r+this.A|0,n=n+this.B|0,a=a+this.C|0,c=c+this.D|0,l=l+this.E|0,h=h+this.F|0,f=f+this.G|0,p=p+this.H|0,this.set(r,n,a,c,l,h,f,p)}roundClean(){u.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}class l extends c{constructor(){super(),this.A=-1056596264,this.B=914150663,this.C=812702999,this.D=-150054599,this.E=-4191439,this.F=1750603025,this.G=1694076839,this.H=-1090891868,this.outputLen=28}}e.sha256=(0,i.wrapConstructor)((()=>new c)),e.sha224=(0,i.wrapConstructor)((()=>new l))},86262:(t,e,r)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.sha384=e.sha512_256=e.sha512_224=e.sha512=e.SHA512=void 0;const n=r(27505),i=r(6873),o=r(98089),[s,a]=(()=>i.default.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map((t=>BigInt(t)))))(),u=new Uint32Array(80),c=new Uint32Array(80);class l extends n.SHA2{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){const{Ah:t,Al:e,Bh:r,Bl:n,Ch:i,Cl:o,Dh:s,Dl:a,Eh:u,El:c,Fh:l,Fl:h,Gh:f,Gl:p,Hh:d,Hl:g}=this;return[t,e,r,n,i,o,s,a,u,c,l,h,f,p,d,g]}set(t,e,r,n,i,o,s,a,u,c,l,h,f,p,d,g){this.Ah=0|t,this.Al=0|e,this.Bh=0|r,this.Bl=0|n,this.Ch=0|i,this.Cl=0|o,this.Dh=0|s,this.Dl=0|a,this.Eh=0|u,this.El=0|c,this.Fh=0|l,this.Fl=0|h,this.Gh=0|f,this.Gl=0|p,this.Hh=0|d,this.Hl=0|g}process(t,e){for(let r=0;r<16;r++,e+=4)u[r]=t.getUint32(e),c[r]=t.getUint32(e+=4);for(let t=16;t<80;t++){const e=0|u[t-15],r=0|c[t-15],n=i.default.rotrSH(e,r,1)^i.default.rotrSH(e,r,8)^i.default.shrSH(e,r,7),o=i.default.rotrSL(e,r,1)^i.default.rotrSL(e,r,8)^i.default.shrSL(e,r,7),s=0|u[t-2],a=0|c[t-2],l=i.default.rotrSH(s,a,19)^i.default.rotrBH(s,a,61)^i.default.shrSH(s,a,6),h=i.default.rotrSL(s,a,19)^i.default.rotrBL(s,a,61)^i.default.shrSL(s,a,6),f=i.default.add4L(o,h,c[t-7],c[t-16]),p=i.default.add4H(f,n,l,u[t-7],u[t-16]);u[t]=0|p,c[t]=0|f}let{Ah:r,Al:n,Bh:o,Bl:l,Ch:h,Cl:f,Dh:p,Dl:d,Eh:g,El:y,Fh:m,Fl:v,Gh:b,Gl:w,Hh:_,Hl:E}=this;for(let t=0;t<80;t++){const e=i.default.rotrSH(g,y,14)^i.default.rotrSH(g,y,18)^i.default.rotrBH(g,y,41),x=i.default.rotrSL(g,y,14)^i.default.rotrSL(g,y,18)^i.default.rotrBL(g,y,41),S=g&m^~g&b,T=y&v^~y&w,I=i.default.add5L(E,x,T,a[t],c[t]),k=i.default.add5H(I,_,e,S,s[t],u[t]),A=0|I,O=i.default.rotrSH(r,n,28)^i.default.rotrBH(r,n,34)^i.default.rotrBH(r,n,39),P=i.default.rotrSL(r,n,28)^i.default.rotrBL(r,n,34)^i.default.rotrBL(r,n,39),C=r&o^r&h^o&h,N=n&l^n&f^l&f;_=0|b,E=0|w,b=0|m,w=0|v,m=0|g,v=0|y,({h:g,l:y}=i.default.add(0|p,0|d,0|k,0|A)),p=0|h,d=0|f,h=0|o,f=0|l,o=0|r,l=0|n;const M=i.default.add3L(A,P,N);r=i.default.add3H(M,k,O,C),n=0|M}({h:r,l:n}=i.default.add(0|this.Ah,0|this.Al,0|r,0|n)),({h:o,l}=i.default.add(0|this.Bh,0|this.Bl,0|o,0|l)),({h,l:f}=i.default.add(0|this.Ch,0|this.Cl,0|h,0|f)),({h:p,l:d}=i.default.add(0|this.Dh,0|this.Dl,0|p,0|d)),({h:g,l:y}=i.default.add(0|this.Eh,0|this.El,0|g,0|y)),({h:m,l:v}=i.default.add(0|this.Fh,0|this.Fl,0|m,0|v)),({h:b,l:w}=i.default.add(0|this.Gh,0|this.Gl,0|b,0|w)),({h:_,l:E}=i.default.add(0|this.Hh,0|this.Hl,0|_,0|E)),this.set(r,n,o,l,h,f,p,d,g,y,m,v,b,w,_,E)}roundClean(){u.fill(0),c.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}e.SHA512=l;class h extends l{constructor(){super(),this.Ah=-1942145080,this.Al=424955298,this.Bh=1944164710,this.Bl=-1982016298,this.Ch=502970286,this.Cl=855612546,this.Dh=1738396948,this.Dl=1479516111,this.Eh=258812777,this.El=2077511080,this.Fh=2011393907,this.Fl=79989058,this.Gh=1067287976,this.Gl=1780299464,this.Hh=286451373,this.Hl=-1848208735,this.outputLen=28}}class f extends l{constructor(){super(),this.Ah=573645204,this.Al=-64227540,this.Bh=-1621794909,this.Bl=-934517566,this.Ch=596883563,this.Cl=1867755857,this.Dh=-1774684391,this.Dl=1497426621,this.Eh=-1775747358,this.El=-1467023389,this.Fh=-1101128155,this.Fl=1401305490,this.Gh=721525244,this.Gl=746961066,this.Hh=246885852,this.Hl=-2117784414,this.outputLen=32}}class p extends l{constructor(){super(),this.Ah=-876896931,this.Al=-1056596264,this.Bh=1654270250,this.Bl=914150663,this.Ch=-1856437926,this.Cl=812702999,this.Dh=355462360,this.Dl=-150054599,this.Eh=1731405415,this.El=-4191439,this.Fh=-1900787065,this.Fl=1750603025,this.Gh=-619958771,this.Gl=1694076839,this.Hh=1203062813,this.Hl=-1090891868,this.outputLen=48}}e.sha512=(0,o.wrapConstructor)((()=>new l)),e.sha512_224=(0,o.wrapConstructor)((()=>new h)),e.sha512_256=(0,o.wrapConstructor)((()=>new f)),e.sha384=(0,o.wrapConstructor)((()=>new p))},98089:(t,e,r)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.randomBytes=e.wrapXOFConstructorWithOpts=e.wrapConstructorWithOpts=e.wrapConstructor=e.checkOpts=e.Hash=e.concatBytes=e.toBytes=e.utf8ToBytes=e.asyncLoop=e.nextTick=e.hexToBytes=e.bytesToHex=e.isLE=e.rotr=e.createView=e.u32=e.u8=void 0;const n=r(31945),i=t=>t instanceof Uint8Array;if(e.u8=t=>new Uint8Array(t.buffer,t.byteOffset,t.byteLength),e.u32=t=>new Uint32Array(t.buffer,t.byteOffset,Math.floor(t.byteLength/4)),e.createView=t=>new DataView(t.buffer,t.byteOffset,t.byteLength),e.rotr=(t,e)=>t<<32-e|t>>>e,e.isLE=68===new Uint8Array(new Uint32Array([287454020]).buffer)[0],!e.isLE)throw new Error("Non little-endian hardware is not supported");const o=Array.from({length:256},((t,e)=>e.toString(16).padStart(2,"0")));function s(t){if("string"!=typeof t)throw new Error("utf8ToBytes expected string, got "+typeof t);return new Uint8Array((new TextEncoder).encode(t))}function a(t){if("string"==typeof t&&(t=s(t)),!i(t))throw new Error("expected Uint8Array, got "+typeof t);return t}e.bytesToHex=function(t){if(!i(t))throw new Error("Uint8Array expected");let e="";for(let r=0;r{},e.asyncLoop=async function(t,r,n){let i=Date.now();for(let o=0;o=0&&tt+e.length),0));let r=0;return t.forEach((t=>{if(!i(t))throw new Error("Uint8Array expected");e.set(t,r),r+=t.length})),e},e.Hash=class{clone(){return this._cloneInto()}};const u={}.toString;e.checkOpts=function(t,e){if(void 0!==e&&"[object Object]"!==u.call(e))throw new Error("Options should be object or undefined");return Object.assign(t,e)},e.wrapConstructor=function(t){const e=e=>t().update(a(e)).digest(),r=t();return e.outputLen=r.outputLen,e.blockLen=r.blockLen,e.create=()=>t(),e},e.wrapConstructorWithOpts=function(t){const e=(e,r)=>t(r).update(a(e)).digest(),r=t({});return e.outputLen=r.outputLen,e.blockLen=r.blockLen,e.create=e=>t(e),e},e.wrapXOFConstructorWithOpts=function(t){const e=(e,r)=>t(r).update(a(e)).digest(),r=t({});return e.outputLen=r.outputLen,e.blockLen=r.blockLen,e.create=e=>t(e),e},e.randomBytes=function(t=32){if(n.crypto&&"function"==typeof n.crypto.getRandomValues)return n.crypto.getRandomValues(new Uint8Array(t));throw new Error("crypto.getRandomValues must be defined")}},2262:(t,e,r)=>{"use strict";r.d(e,{Bj:()=>o,Fl:()=>Rt,IU:()=>Et,Jd:()=>_,PG:()=>vt,SU:()=>Ct,Um:()=>gt,WL:()=>Mt,X$:()=>T,X3:()=>_t,Xl:()=>xt,dq:()=>At,iH:()=>Ot,j:()=>x,lk:()=>E,nZ:()=>s,qj:()=>dt,qq:()=>m,yT:()=>wt});var n=r(3577);let i;r(25108);class o{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=i,!t&&i&&(this.index=(i.scopes||(i.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const e=i;try{return i=this,t()}finally{i=e}}}on(){i=this}off(){i=this.parent}stop(t){if(this._active){let e,r;for(e=0,r=this.effects.length;e{const e=new Set(t);return e.w=0,e.n=0,e},u=t=>(t.w&f)>0,c=t=>(t.n&f)>0,l=new WeakMap;let h=0,f=1;const p=30;let d;const g=Symbol(""),y=Symbol("");class m{constructor(t,e=null,r){this.fn=t,this.scheduler=e,this.active=!0,this.deps=[],this.parent=void 0,function(t,e=i){e&&e.active&&e.effects.push(t)}(this,r)}run(){if(!this.active)return this.fn();let t=d,e=b;for(;t;){if(t===this)return;t=t.parent}try{return this.parent=d,d=this,b=!0,f=1<<++h,h<=p?(({deps:t})=>{if(t.length)for(let e=0;e{const{deps:e}=t;if(e.length){let r=0;for(let n=0;n{("length"===r||r>=t)&&c.push(e)}))}else switch(void 0!==r&&c.push(u.get(r)),e){case"add":(0,n.kJ)(t)?(0,n.S0)(r)&&c.push(u.get("length")):(c.push(u.get(g)),(0,n._N)(t)&&c.push(u.get(y)));break;case"delete":(0,n.kJ)(t)||(c.push(u.get(g)),(0,n._N)(t)&&c.push(u.get(y)));break;case"set":(0,n._N)(t)&&c.push(u.get(g))}if(1===c.length)c[0]&&I(c[0]);else{const t=[];for(const e of c)e&&t.push(...e);I(a(t))}}function I(t,e){const r=(0,n.kJ)(t)?t:[...t];for(const t of r)t.computed&&k(t);for(const t of r)t.computed||k(t)}function k(t,e){(t!==d||t.allowRecurse)&&(t.scheduler?t.scheduler():t.run())}const A=(0,n.fY)("__proto__,__v_isRef,__isVue"),O=new Set(Object.getOwnPropertyNames(Symbol).filter((t=>"arguments"!==t&&"caller"!==t)).map((t=>Symbol[t])).filter(n.yk)),P=D(),C=D(!1,!0),N=D(!0),M=B();function B(){const t={};return["includes","indexOf","lastIndexOf"].forEach((e=>{t[e]=function(...t){const r=Et(this);for(let t=0,e=this.length;t{t[e]=function(...t){_();const r=Et(this)[e].apply(this,t);return E(),r}})),t}function R(t){const e=Et(this);return x(e,0,t),e.hasOwnProperty(t)}function D(t=!1,e=!1){return function(r,i,o){if("__v_isReactive"===i)return!t;if("__v_isReadonly"===i)return t;if("__v_isShallow"===i)return e;if("__v_raw"===i&&o===(t?e?pt:ft:e?ht:lt).get(r))return r;const s=(0,n.kJ)(r);if(!t){if(s&&(0,n.RI)(M,i))return Reflect.get(M,i,o);if("hasOwnProperty"===i)return R}const a=Reflect.get(r,i,o);return((0,n.yk)(i)?O.has(i):A(i))?a:(t||x(r,0,i),e?a:At(a)?s&&(0,n.S0)(i)?a:a.value:(0,n.Kn)(a)?t?yt(a):dt(a):a)}}const L=H(),U=H(!0);function H(t=!1){return function(e,r,i,o){let s=e[r];if(bt(s)&&At(s)&&!At(i))return!1;if(!t&&(wt(i)||bt(i)||(s=Et(s),i=Et(i)),!(0,n.kJ)(e)&&At(s)&&!At(i)))return s.value=i,!0;const a=(0,n.kJ)(e)&&(0,n.S0)(r)?Number(r)!0,deleteProperty:(t,e)=>!0},F=(0,n.l7)({},$,{get:C,set:U}),V=t=>t,W=t=>Reflect.getPrototypeOf(t);function K(t,e,r=!1,n=!1){const i=Et(t=t.__v_raw),o=Et(e);r||(e!==o&&x(i,0,e),x(i,0,o));const{has:s}=W(i),a=n?V:r?Tt:St;return s.call(i,e)?a(t.get(e)):s.call(i,o)?a(t.get(o)):void(t!==i&&t.get(e))}function q(t,e=!1){const r=this.__v_raw,n=Et(r),i=Et(t);return e||(t!==i&&x(n,0,t),x(n,0,i)),t===i?r.has(t):r.has(t)||r.has(i)}function G(t,e=!1){return t=t.__v_raw,!e&&x(Et(t),0,g),Reflect.get(t,"size",t)}function z(t){t=Et(t);const e=Et(this);return W(e).has.call(e,t)||(e.add(t),T(e,"add",t,t)),this}function X(t,e){e=Et(e);const r=Et(this),{has:i,get:o}=W(r);let s=i.call(r,t);s||(t=Et(t),s=i.call(r,t));const a=o.call(r,t);return r.set(t,e),s?(0,n.aU)(e,a)&&T(r,"set",t,e):T(r,"add",t,e),this}function Y(t){const e=Et(this),{has:r,get:n}=W(e);let i=r.call(e,t);i||(t=Et(t),i=r.call(e,t)),n&&n.call(e,t);const o=e.delete(t);return i&&T(e,"delete",t,void 0),o}function J(){const t=Et(this),e=0!==t.size,r=t.clear();return e&&T(t,"clear",void 0,void 0),r}function Z(t,e){return function(r,n){const i=this,o=i.__v_raw,s=Et(o),a=e?V:t?Tt:St;return!t&&x(s,0,g),o.forEach(((t,e)=>r.call(n,a(t),a(e),i)))}}function Q(t,e,r){return function(...i){const o=this.__v_raw,s=Et(o),a=(0,n._N)(s),u="entries"===t||t===Symbol.iterator&&a,c="keys"===t&&a,l=o[t](...i),h=r?V:e?Tt:St;return!e&&x(s,0,c?y:g),{next(){const{value:t,done:e}=l.next();return e?{value:t,done:e}:{value:u?[h(t[0]),h(t[1])]:h(t),done:e}},[Symbol.iterator](){return this}}}}function tt(t){return function(...e){return"delete"!==t&&this}}function et(){const t={get(t){return K(this,t)},get size(){return G(this)},has:q,add:z,set:X,delete:Y,clear:J,forEach:Z(!1,!1)},e={get(t){return K(this,t,!1,!0)},get size(){return G(this)},has:q,add:z,set:X,delete:Y,clear:J,forEach:Z(!1,!0)},r={get(t){return K(this,t,!0)},get size(){return G(this,!0)},has(t){return q.call(this,t,!0)},add:tt("add"),set:tt("set"),delete:tt("delete"),clear:tt("clear"),forEach:Z(!0,!1)},n={get(t){return K(this,t,!0,!0)},get size(){return G(this,!0)},has(t){return q.call(this,t,!0)},add:tt("add"),set:tt("set"),delete:tt("delete"),clear:tt("clear"),forEach:Z(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach((i=>{t[i]=Q(i,!1,!1),r[i]=Q(i,!0,!1),e[i]=Q(i,!1,!0),n[i]=Q(i,!0,!0)})),[t,r,e,n]}const[rt,nt,it,ot]=et();function st(t,e){const r=e?t?ot:it:t?nt:rt;return(e,i,o)=>"__v_isReactive"===i?!t:"__v_isReadonly"===i?t:"__v_raw"===i?e:Reflect.get((0,n.RI)(r,i)&&i in e?r:e,i,o)}const at={get:st(!1,!1)},ut={get:st(!1,!0)},ct={get:st(!0,!1)},lt=new WeakMap,ht=new WeakMap,ft=new WeakMap,pt=new WeakMap;function dt(t){return bt(t)?t:mt(t,!1,$,at,lt)}function gt(t){return mt(t,!1,F,ut,ht)}function yt(t){return mt(t,!0,j,ct,ft)}function mt(t,e,r,i,o){if(!(0,n.Kn)(t))return t;if(t.__v_raw&&(!e||!t.__v_isReactive))return t;const s=o.get(t);if(s)return s;const a=(u=t).__v_skip||!Object.isExtensible(u)?0:function(t){switch(t){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((0,n.W7)(u));var u;if(0===a)return t;const c=new Proxy(t,2===a?i:r);return o.set(t,c),c}function vt(t){return bt(t)?vt(t.__v_raw):!(!t||!t.__v_isReactive)}function bt(t){return!(!t||!t.__v_isReadonly)}function wt(t){return!(!t||!t.__v_isShallow)}function _t(t){return vt(t)||bt(t)}function Et(t){const e=t&&t.__v_raw;return e?Et(e):t}function xt(t){return(0,n.Nj)(t,"__v_skip",!0),t}const St=t=>(0,n.Kn)(t)?dt(t):t,Tt=t=>(0,n.Kn)(t)?yt(t):t;function It(t){b&&d&&S((t=Et(t)).dep||(t.dep=a()))}function kt(t,e){const r=(t=Et(t)).dep;r&&I(r)}function At(t){return!(!t||!0!==t.__v_isRef)}function Ot(t){return r=!1,At(e=t)?e:new Pt(e,r);var e,r}class Pt{constructor(t,e){this.__v_isShallow=e,this.dep=void 0,this.__v_isRef=!0,this._rawValue=e?t:Et(t),this._value=e?t:St(t)}get value(){return It(this),this._value}set value(t){const e=this.__v_isShallow||wt(t)||bt(t);t=e?t:Et(t),(0,n.aU)(t,this._rawValue)&&(this._rawValue=t,this._value=e?t:St(t),kt(this))}}function Ct(t){return At(t)?t.value:t}const Nt={get:(t,e,r)=>Ct(Reflect.get(t,e,r)),set:(t,e,r,n)=>{const i=t[e];return At(i)&&!At(r)?(i.value=r,!0):Reflect.set(t,e,r,n)}};function Mt(t){return vt(t)?t:new Proxy(t,Nt)}class Bt{constructor(t,e,r,n){this._setter=e,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this._dirty=!0,this.effect=new m(t,(()=>{this._dirty||(this._dirty=!0,kt(this))})),this.effect.computed=this,this.effect.active=this._cacheable=!n,this.__v_isReadonly=r}get value(){const t=Et(this);return It(t),!t._dirty&&t._cacheable||(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}function Rt(t,e,r=!1){let i,o;const s=(0,n.mf)(t);return s?(i=t,o=n.dG):(i=t.get,o=t.set),new Bt(i,o,s||!o,r)}},66252:(t,e,r)=>{"use strict";r.d(e,{$d:()=>a,FN:()=>pe,Fl:()=>Ie,HY:()=>Ht,Ko:()=>nt,P$:()=>V,Q6:()=>X,U2:()=>K,Uk:()=>ie,Us:()=>Dt,Wm:()=>re,Y8:()=>$,YP:()=>L,_:()=>ee,h:()=>ke,iD:()=>Xt,ic:()=>tt,kq:()=>oe,nJ:()=>F,nK:()=>z,wg:()=>Kt});var n=r(2262),i=r(3577),o=r(25108);function s(t,e,r,n){let i;try{i=n?t(...n):t()}catch(t){u(t,e,r)}return i}function a(t,e,r,n){if((0,i.mf)(t)){const o=s(t,e,r,n);return o&&(0,i.tI)(o)&&o.catch((t=>{u(t,e,r)})),o}const o=[];for(let i=0;i>>1;x(h[n])x(t)-x(e))),g=0;gnull==t.id?1/0:t.id,S=(t,e)=>{const r=x(t)-x(e);if(0===r){if(t.pre&&!e.pre)return-1;if(e.pre&&!t.pre)return 1}return r};function T(t){l=!1,c=!0,h.sort(S),i.dG;try{for(f=0;f(0,i.HD)(t)?t.trim():t))),e&&(o=r.map(i.h5))}let c,l=n[c=(0,i.hR)(e)]||n[c=(0,i.hR)((0,i._A)(e))];!l&&s&&(l=n[c=(0,i.hR)((0,i.rs)(e))]),l&&a(l,t,6,o);const h=n[c+"Once"];if(h){if(t.emitted){if(t.emitted[c])return}else t.emitted={};t.emitted[c]=!0,a(h,t,6,o)}}function k(t,e,r=!1){const n=e.emitsCache,o=n.get(t);if(void 0!==o)return o;const s=t.emits;let a={};return s?((0,i.kJ)(s)?s.forEach((t=>a[t]=null)):(0,i.l7)(a,s),(0,i.Kn)(t)&&n.set(t,a),a):((0,i.Kn)(t)&&n.set(t,null),null)}function A(t,e){return!(!t||!(0,i.F7)(e))&&(e=e.slice(2).replace(/Once$/,""),(0,i.RI)(t,e[0].toLowerCase()+e.slice(1))||(0,i.RI)(t,(0,i.rs)(e))||(0,i.RI)(t,e))}let O=null,P=null;function C(t){const e=O;return O=t,P=t&&t.type.__scopeId||null,e}function N(t){const{type:e,vnode:r,proxy:n,withProxy:o,props:s,propsOptions:[a],slots:c,attrs:l,emit:h,render:f,renderCache:p,data:d,setupState:g,ctx:y,inheritAttrs:m}=t;let v,b;const w=C(t);try{if(4&r.shapeFlag){const t=o||n;v=se(f.call(t,t,p,s,g,d,y)),b=l}else{const t=e;v=se(t.length>1?t(s,{attrs:l,slots:c,emit:h}):t(s,null)),b=e.props?l:M(l)}}catch(e){Vt.length=0,u(e,t,1),v=re(jt)}let _=v;if(b&&!1!==m){const t=Object.keys(b),{shapeFlag:e}=_;t.length&&7&e&&(a&&t.some(i.tR)&&(b=B(b,a)),_=ne(_,b))}return r.dirs&&(_=ne(_),_.dirs=_.dirs?_.dirs.concat(r.dirs):r.dirs),r.transition&&(_.transition=r.transition),v=_,C(w),v}const M=t=>{let e;for(const r in t)("class"===r||"style"===r||(0,i.F7)(r))&&((e||(e={}))[r]=t[r]);return e},B=(t,e)=>{const r={};for(const n in t)(0,i.tR)(n)&&n.slice(9)in e||(r[n]=t[n]);return r};function R(t,e,r){const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!0;for(let i=0;it.value,g=(0,n.yT)(t)):(0,n.PG)(t)?(p=()=>t,o=!0):(0,i.kJ)(t)?(y=!0,g=t.some((t=>(0,n.PG)(t)||(0,n.yT)(t))),p=()=>t.map((t=>(0,n.dq)(t)?t.value:(0,n.PG)(t)?U(t):(0,i.mf)(t)?s(t,f,2):void 0))):p=(0,i.mf)(t)?e?()=>s(t,f,2):()=>{if(!f||!f.isUnmounted)return d&&d(),a(t,f,3,[v])}:i.dG,e&&o){const t=p;p=()=>U(t())}let m,v=t=>{d=x.onStop=()=>{s(t,f,4)}};if(Ee){if(v=i.dG,e?r&&a(e,f,3,[p(),y?[]:void 0,v]):p(),"sync"!==u)return i.dG;{const t=Oe();m=t.__watcherHandles||(t.__watcherHandles=[])}}let w=y?new Array(t.length).fill(D):D;const _=()=>{if(x.active)if(e){const t=x.run();(o||g||(y?t.some(((t,e)=>(0,i.aU)(t,w[e]))):(0,i.aU)(t,w)))&&(d&&d(),a(e,f,3,[t,w===D?void 0:y&&w[0]===D?[]:w,v]),w=t)}else x.run()};let E;_.allowRecurse=!!e,"sync"===u?E=_:"post"===u?E=()=>Rt(_,f&&f.suspense):(_.pre=!0,f&&(_.id=f.uid),E=()=>b(_));const x=new n.qq(p,E);e?r?_():w=x.run():"post"===u?Rt(x.run.bind(x),f&&f.suspense):x.run();const S=()=>{x.stop(),f&&f.scope&&(0,i.Od)(f.scope.effects,x)};return m&&m.push(S),S}(t,e,r)}function U(t,e){if(!(0,i.Kn)(t)||t.__v_skip)return t;if((e=e||new Set).has(t))return t;if(e.add(t),(0,n.dq)(t))U(t.value,e);else if((0,i.kJ)(t))for(let r=0;r{U(t,e)}));else if((0,i.PO)(t))for(const r in t)U(t[r],e);return t}function H(t,e,r,i){const o=t.dirs,s=e&&e.dirs;for(let u=0;u{t.isMounted=!0})),et((()=>{t.isUnmounting=!0})),t}const j=[Function,Array],F={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:j,onEnter:j,onAfterEnter:j,onEnterCancelled:j,onBeforeLeave:j,onLeave:j,onAfterLeave:j,onLeaveCancelled:j,onBeforeAppear:j,onAppear:j,onAfterAppear:j,onAppearCancelled:j},V={name:"BaseTransition",props:F,setup(t,{slots:e}){const r=pe(),i=$();let o;return()=>{const s=e.default&&X(e.default(),!0);if(!s||!s.length)return;let a=s[0];if(s.length>1){let t=!1;for(const e of s)if(e.type!==jt){a=e,t=!0;break}}const u=(0,n.IU)(t),{mode:c}=u;if(i.isLeaving)return q(a);const l=G(a);if(!l)return q(a);const h=K(l,u,i,r);z(l,h);const f=r.subTree,p=f&&G(f);let d=!1;const{getTransitionKey:g}=l.type;if(g){const t=g();void 0===o?o=t:t!==o&&(o=t,d=!0)}if(p&&p.type!==jt&&(!Jt(l,p)||d)){const t=K(p,u,i,r);if(z(p,t),"out-in"===c)return i.isLeaving=!0,t.afterLeave=()=>{i.isLeaving=!1,!1!==r.update.active&&r.update()},q(a);"in-out"===c&&l.type!==jt&&(t.delayLeave=(t,e,r)=>{W(i,p)[String(p.key)]=p,t._leaveCb=()=>{e(),t._leaveCb=void 0,delete h.delayedLeave},h.delayedLeave=r})}return a}}};function W(t,e){const{leavingVNodes:r}=t;let n=r.get(e.type);return n||(n=Object.create(null),r.set(e.type,n)),n}function K(t,e,r,n){const{appear:o,mode:s,persisted:u=!1,onBeforeEnter:c,onEnter:l,onAfterEnter:h,onEnterCancelled:f,onBeforeLeave:p,onLeave:d,onAfterLeave:g,onLeaveCancelled:y,onBeforeAppear:m,onAppear:v,onAfterAppear:b,onAppearCancelled:w}=e,_=String(t.key),E=W(r,t),x=(t,e)=>{t&&a(t,n,9,e)},S=(t,e)=>{const r=e[1];x(t,e),(0,i.kJ)(t)?t.every((t=>t.length<=1))&&r():t.length<=1&&r()},T={mode:s,persisted:u,beforeEnter(e){let n=c;if(!r.isMounted){if(!o)return;n=m||c}e._leaveCb&&e._leaveCb(!0);const i=E[_];i&&Jt(t,i)&&i.el._leaveCb&&i.el._leaveCb(),x(n,[e])},enter(t){let e=l,n=h,i=f;if(!r.isMounted){if(!o)return;e=v||l,n=b||h,i=w||f}let s=!1;const a=t._enterCb=e=>{s||(s=!0,x(e?i:n,[t]),T.delayedLeave&&T.delayedLeave(),t._enterCb=void 0)};e?S(e,[t,a]):a()},leave(e,n){const i=String(t.key);if(e._enterCb&&e._enterCb(!0),r.isUnmounting)return n();x(p,[e]);let o=!1;const s=e._leaveCb=r=>{o||(o=!0,n(),x(r?y:g,[e]),e._leaveCb=void 0,E[i]===t&&delete E[i])};E[i]=t,d?S(d,[e,s]):s()},clone:t=>K(t,e,r,n)};return T}function q(t){if(J(t))return(t=ne(t)).children=null,t}function G(t){return J(t)?t.children?t.children[0]:void 0:t}function z(t,e){6&t.shapeFlag&&t.component?z(t.component.subTree,e):128&t.shapeFlag?(t.ssContent.transition=e.clone(t.ssContent),t.ssFallback.transition=e.clone(t.ssFallback)):t.transition=e}function X(t,e=!1,r){let n=[],i=0;for(let o=0;o1)for(let t=0;t!!t.type.__asyncLoader,J=t=>t.type.__isKeepAlive;RegExp,RegExp;const Z=t=>(e,r=fe)=>(!Ee||"sp"===t)&&function(t,e,r=fe,i=!1){if(r){const o=r[t]||(r[t]=[]),s=e.__weh||(e.__weh=(...i)=>{if(r.isUnmounted)return;(0,n.Jd)(),me(r);const o=a(e,r,t,i);return ve(),(0,n.lk)(),o});return i?o.unshift(s):o.push(s),s}}(t,((...t)=>e(...t)),r),Q=(Z("bm"),Z("m")),tt=(Z("bu"),Z("u")),et=Z("bum");Z("um"),Z("sp"),Z("rtg"),Z("rtc");const rt=Symbol.for("v-ndc");function nt(t,e,r,n){let o;const s=r&&r[n];if((0,i.kJ)(t)||(0,i.HD)(t)){o=new Array(t.length);for(let r=0,n=t.length;re(t,r,void 0,s&&s[r])));else{const r=Object.keys(t);o=new Array(r.length);for(let n=0,i=r.length;nt?be(t)?Te(t)||t.proxy:it(t.parent):null,ot=(0,i.l7)(Object.create(null),{$:t=>t,$el:t=>t.vnode.el,$data:t=>t.data,$props:t=>t.props,$attrs:t=>t.attrs,$slots:t=>t.slots,$refs:t=>t.refs,$parent:t=>it(t.parent),$root:t=>it(t.root),$emit:t=>t.emit,$options:t=>t.type,$forceUpdate:t=>t.f||(t.f=()=>b(t.update)),$nextTick:t=>t.n||(t.n=v.bind(t.proxy)),$watch:t=>i.dG}),st=(t,e)=>t!==i.kT&&!t.__isScriptSetup&&(0,i.RI)(t,e),at={get({_:t},e){const{ctx:r,setupState:o,data:s,props:a,accessCache:u,type:c,appContext:l}=t;let h;if("$"!==e[0]){const n=u[e];if(void 0!==n)switch(n){case 1:return o[e];case 2:return s[e];case 4:return r[e];case 3:return a[e]}else{if(st(o,e))return u[e]=1,o[e];if(s!==i.kT&&(0,i.RI)(s,e))return u[e]=2,s[e];if((h=t.propsOptions[0])&&(0,i.RI)(h,e))return u[e]=3,a[e];if(r!==i.kT&&(0,i.RI)(r,e))return u[e]=4,r[e];u[e]=0}}const f=ot[e];let p,d;return f?("$attrs"===e&&(0,n.j)(t,"get",e),f(t)):(p=c.__cssModules)&&(p=p[e])?p:r!==i.kT&&(0,i.RI)(r,e)?(u[e]=4,r[e]):(d=l.config.globalProperties,(0,i.RI)(d,e)?d[e]:void 0)},set({_:t},e,r){const{data:n,setupState:o,ctx:s}=t;return st(o,e)?(o[e]=r,!0):n!==i.kT&&(0,i.RI)(n,e)?(n[e]=r,!0):!((0,i.RI)(t.props,e)||"$"===e[0]&&e.slice(1)in t||(s[e]=r,0))},has({_:{data:t,setupState:e,accessCache:r,ctx:n,appContext:o,propsOptions:s}},a){let u;return!!r[a]||t!==i.kT&&(0,i.RI)(t,a)||st(e,a)||(u=s[0])&&(0,i.RI)(u,a)||(0,i.RI)(n,a)||(0,i.RI)(ot,a)||(0,i.RI)(o.config.globalProperties,a)},defineProperty(t,e,r){return null!=r.get?t._.accessCache[e]=0:(0,i.RI)(r,"value")&&this.set(t,e,r.value,null),Reflect.defineProperty(t,e,r)}};function ut(t){return(0,i.kJ)(t)?t.reduce(((t,e)=>(t[e]=null,t)),{}):t}function ct(t,e,r,n=!1){const{mixins:i,extends:o}=e;o&&ct(t,o,r,!0),i&&i.forEach((e=>ct(t,e,r,!0)));for(const i in e)if(n&&"expose"===i);else{const n=lt[i]||r&&r[i];t[i]=n?n(t[i],e[i]):e[i]}return t}const lt={data:ht,props:gt,emits:gt,methods:dt,computed:dt,beforeCreate:pt,created:pt,beforeMount:pt,mounted:pt,beforeUpdate:pt,updated:pt,beforeDestroy:pt,beforeUnmount:pt,destroyed:pt,unmounted:pt,activated:pt,deactivated:pt,errorCaptured:pt,serverPrefetch:pt,components:dt,directives:dt,watch:function(t,e){if(!t)return e;if(!e)return t;const r=(0,i.l7)(Object.create(null),t);for(const n in e)r[n]=pt(t[n],e[n]);return r},provide:ht,inject:function(t,e){return dt(ft(t),ft(e))}};function ht(t,e){return e?t?function(){return(0,i.l7)((0,i.mf)(t)?t.call(this,this):t,(0,i.mf)(e)?e.call(this,this):e)}:e:t}function ft(t){if((0,i.kJ)(t)){const e={};for(let r=0;r(s.has(t)||(t&&(0,i.mf)(t.install)?(s.add(t),t.install(u,...e)):(0,i.mf)(t)&&(s.add(t),t(u,...e))),u),mixin:t=>u,component:(t,e)=>e?(o.components[t]=e,u):o.components[t],directive:(t,e)=>e?(o.directives[t]=e,u):o.directives[t],mount(i,s,c){if(!a){const l=re(r,n);return l.appContext=o,s&&e?e(l,i):t(l,i,c),a=!0,u._container=i,i.__vue_app__=u,Te(l.component)||l.component.proxy}},unmount(){a&&(t(null,u._container),delete u._container.__vue_app__)},provide:(t,e)=>(o.provides[t]=e,u),runWithContext(t){bt=u;try{return t()}finally{bt=null}}};return u}}let bt=null;function wt(t,e,r,o){const[s,a]=t.propsOptions;let u,c=!1;if(e)for(let n in e){if((0,i.Gg)(n))continue;const l=e[n];let h;s&&(0,i.RI)(s,h=(0,i._A)(n))?a&&a.includes(h)?(u||(u={}))[h]=l:r[h]=l:A(t.emitsOptions,n)||n in o&&l===o[n]||(o[n]=l,c=!0)}if(a){const e=(0,n.IU)(r),o=u||i.kT;for(let n=0;n-1,n[1]=r<0||t-1||(0,i.RI)(n,"default"))&&u.push(e)}}}const c=[a,u];return(0,i.Kn)(t)&&n.set(t,c),c}function xt(t){return"$"!==t[0]}function St(t){const e=t&&t.toString().match(/^\s*(function|class) (\w+)/);return e?e[2]:null===t?"null":""}function Tt(t,e){return St(t)===St(e)}function It(t,e){return(0,i.kJ)(e)?e.findIndex((e=>Tt(e,t))):(0,i.mf)(e)&&Tt(e,t)?0:-1}const kt=t=>"_"===t[0]||"$stable"===t,At=t=>(0,i.kJ)(t)?t.map(se):[se(t)],Ot=(t,e,r)=>{if(e._n)return e;const n=function(t,e=O,r){if(!e)return t;if(t._n)return t;const n=(...r)=>{n._d&&Gt(-1);const i=C(e);let o;try{o=t(...r)}finally{C(i),n._d&&Gt(1)}return o};return n._n=!0,n._c=!0,n._d=!0,n}(((...t)=>At(e(...t))),r);return n._c=!1,n},Pt=(t,e,r)=>{const n=t._ctx;for(const r in t){if(kt(r))continue;const o=t[r];if((0,i.mf)(o))e[r]=Ot(0,o,n);else if(null!=o){const t=At(o);e[r]=()=>t}}},Ct=(t,e)=>{const r=At(e);t.slots.default=()=>r},Nt=(t,e)=>{if(32&t.vnode.shapeFlag){const r=e._;r?(t.slots=(0,n.IU)(e),(0,i.Nj)(e,"_",r)):Pt(e,t.slots={})}else t.slots={},e&&Ct(t,e);(0,i.Nj)(t.slots,Zt,1)},Mt=(t,e,r)=>{const{vnode:n,slots:o}=t;let s=!0,a=i.kT;if(32&n.shapeFlag){const t=e._;t?r&&1===t?s=!1:((0,i.l7)(o,e),r||1!==t||delete o._):(s=!e.$stable,Pt(e,o)),a=e}else e&&(Ct(t,e),a={default:1});if(s)for(const t in o)kt(t)||t in a||delete o[t]};function Bt(t,e,r,o,a=!1){if((0,i.kJ)(t))return void t.forEach(((t,n)=>Bt(t,e&&((0,i.kJ)(e)?e[n]:e),r,o,a)));if(Y(o)&&!a)return;const u=4&o.shapeFlag?Te(o.component)||o.component.proxy:o.el,c=a?null:u,{i:l,r:h}=t,f=e&&e.r,p=l.refs===i.kT?l.refs={}:l.refs,d=l.setupState;if(null!=f&&f!==h&&((0,i.HD)(f)?(p[f]=null,(0,i.RI)(d,f)&&(d[f]=null)):(0,n.dq)(f)&&(f.value=null)),(0,i.mf)(h))s(h,l,12,[c,p]);else{const e=(0,i.HD)(h),o=(0,n.dq)(h);if(e||o){const n=()=>{if(t.f){const r=e?(0,i.RI)(d,h)?d[h]:p[h]:h.value;a?(0,i.kJ)(r)&&(0,i.Od)(r,u):(0,i.kJ)(r)?r.includes(u)||r.push(u):e?(p[h]=[u],(0,i.RI)(d,h)&&(d[h]=p[h])):(h.value=[u],t.k&&(p[t.k]=h.value))}else e?(p[h]=c,(0,i.RI)(d,h)&&(d[h]=c)):o&&(h.value=c,t.k&&(p[t.k]=c))};c?(n.id=-1,Rt(n,r)):n()}}}const Rt=function(t,e){var r;e&&e.pendingBranch?(0,i.kJ)(t)?e.effects.push(...t):e.effects.push(t):(r=t,(0,i.kJ)(r)?p.push(...r):d&&d.includes(r,r.allowRecurse?g+1:g)||p.push(r),w())};function Dt(t){return function(t,e){(0,i.E9)().__VUE__=!0;const{insert:r,remove:o,patchProp:a,createElement:c,createText:l,createComment:p,setText:d,setElementText:g,parentNode:y,nextSibling:m,setScopeId:v=i.dG,insertStaticContent:w}=t,x=(t,e,r,n=null,i=null,o=null,s=!1,a=null,u=!!e.dynamicChildren)=>{if(t===e)return;t&&!Jt(t,e)&&(n=it(t),Q(t,i,o,!0),t=null),-2===e.patchFlag&&(u=!1,e.dynamicChildren=null);const{type:c,ref:l,shapeFlag:h}=e;switch(c){case $t:S(t,e,r,n);break;case jt:T(t,e,r,n);break;case Ft:null==t&&O(e,r,n,s);break;case Ht:j(t,e,r,n,i,o,s,a,u);break;default:1&h?C(t,e,r,n,i,o,s,a,u):6&h?F(t,e,r,n,i,o,s,a,u):(64&h||128&h)&&c.process(t,e,r,n,i,o,s,a,u,st)}null!=l&&i&&Bt(l,t&&t.ref,o,e||t,!e)},S=(t,e,n,i)=>{if(null==t)r(e.el=l(e.children),n,i);else{const r=e.el=t.el;e.children!==t.children&&d(r,e.children)}},T=(t,e,n,i)=>{null==t?r(e.el=p(e.children||""),n,i):e.el=t.el},O=(t,e,r,n)=>{[t.el,t.anchor]=w(t.children,e,r,n,t.el,t.anchor)},P=({el:t,anchor:e})=>{let r;for(;t&&t!==e;)r=m(t),o(t),t=r;o(e)},C=(t,e,r,n,i,o,s,a,u)=>{s=s||"svg"===e.type,null==t?M(e,r,n,i,o,s,a,u):L(t,e,i,o,s,a,u)},M=(t,e,n,o,s,u,l,h)=>{let f,p;const{type:d,props:y,shapeFlag:m,transition:v,dirs:b}=t;if(f=t.el=c(t.type,u,y&&y.is,y),8&m?g(f,t.children):16&m&&D(t.children,f,null,o,s,u&&"foreignObject"!==d,l,h),b&&H(t,null,o,"created"),B(f,t,t.scopeId,l,o),y){for(const e in y)"value"===e||(0,i.Gg)(e)||a(f,e,null,y[e],u,t.children,o,s,nt);"value"in y&&a(f,"value",null,y.value),(p=y.onVnodeBeforeMount)&&ce(p,o,t)}b&&H(t,null,o,"beforeMount");const w=(!s||s&&!s.pendingBranch)&&v&&!v.persisted;w&&v.beforeEnter(f),r(f,e,n),((p=y&&y.onVnodeMounted)||w||b)&&Rt((()=>{p&&ce(p,o,t),w&&v.enter(f),b&&H(t,null,o,"mounted")}),s)},B=(t,e,r,n,i)=>{if(r&&v(t,r),n)for(let e=0;e{for(let c=u;c{const c=e.el=t.el;let{patchFlag:l,dynamicChildren:h,dirs:f}=e;l|=16&t.patchFlag;const p=t.props||i.kT,d=e.props||i.kT;let y;r&&Lt(r,!1),(y=d.onVnodeBeforeUpdate)&&ce(y,r,e,t),f&&H(e,t,r,"beforeUpdate"),r&&Lt(r,!0);const m=o&&"foreignObject"!==e.type;if(h?U(t.dynamicChildren,h,c,r,n,m,s):u||G(t,e,c,null,r,n,m,s,!1),l>0){if(16&l)$(c,e,p,d,r,n,o);else if(2&l&&p.class!==d.class&&a(c,"class",null,d.class,o),4&l&&a(c,"style",p.style,d.style,o),8&l){const i=e.dynamicProps;for(let e=0;e{y&&ce(y,r,e,t),f&&H(e,t,r,"updated")}),n)},U=(t,e,r,n,i,o,s)=>{for(let a=0;a{if(r!==n){if(r!==i.kT)for(const c in r)(0,i.Gg)(c)||c in n||a(t,c,r[c],null,u,e.children,o,s,nt);for(const c in n){if((0,i.Gg)(c))continue;const l=n[c],h=r[c];l!==h&&"value"!==c&&a(t,c,h,l,u,e.children,o,s,nt)}"value"in n&&a(t,"value",r.value,n.value)}},j=(t,e,n,i,o,s,a,u,c)=>{const h=e.el=t?t.el:l(""),f=e.anchor=t?t.anchor:l("");let{patchFlag:p,dynamicChildren:d,slotScopeIds:g}=e;g&&(u=u?u.concat(g):g),null==t?(r(h,n,i),r(f,n,i),D(e.children,n,f,o,s,a,u,c)):p>0&&64&p&&d&&t.dynamicChildren?(U(t.dynamicChildren,d,n,o,s,a,u),(null!=e.key||o&&e===o.subTree)&&Ut(t,e,!0)):G(t,e,n,f,o,s,a,u,c)},F=(t,e,r,n,i,o,s,a,u)=>{e.slotScopeIds=a,null==t?512&e.shapeFlag?i.ctx.activate(e,r,n,s,u):V(e,r,n,i,o,s,u):W(t,e,u)},V=(t,e,r,o,a,c,l)=>{const h=t.component=function(t,e,r){const o=t.type,s=(e?e.appContext:t.appContext)||le,a={uid:he++,vnode:t,type:o,parent:e,appContext:s,root:null,next:null,subTree:null,effect:null,update:null,scope:new n.Bj(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:e?e.provides:Object.create(s.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Et(o,s),emitsOptions:k(o,s),emit:null,emitted:null,propsDefaults:i.kT,inheritAttrs:o.inheritAttrs,ctx:i.kT,data:i.kT,props:i.kT,attrs:i.kT,slots:i.kT,refs:i.kT,setupState:i.kT,setupContext:null,attrsProxy:null,slotsProxy:null,suspense:r,suspenseId:r?r.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return a.ctx={_:a},a.root=e?e.root:a,a.emit=I.bind(null,a),t.ce&&t.ce(a),a}(t,o,a);if(J(t)&&(h.ctx.renderer=st),function(t,e=!1){Ee=e;const{props:r,children:o}=t.vnode,a=be(t);!function(t,e,r,o=!1){const s={},a={};(0,i.Nj)(a,Zt,1),t.propsDefaults=Object.create(null),wt(t,e,s,a);for(const e in t.propsOptions[0])e in s||(s[e]=void 0);r?t.props=o?s:(0,n.Um)(s):t.type.props?t.props=s:t.props=a,t.attrs=a}(t,r,a,e),Nt(t,o);const c=a?function(t,e){const r=t.type;t.accessCache=Object.create(null),t.proxy=(0,n.Xl)(new Proxy(t.ctx,at));const{setup:o}=r;if(o){const r=t.setupContext=o.length>1?function(t){const e=e=>{t.exposed=e||{}};return{get attrs(){return function(t){return t.attrsProxy||(t.attrsProxy=new Proxy(t.attrs,{get:(e,r)=>((0,n.j)(t,"get","$attrs"),e[r])}))}(t)},slots:t.slots,emit:t.emit,expose:e}}(t):null;me(t),(0,n.Jd)();const a=s(o,t,0,[t.props,r]);if((0,n.lk)(),ve(),(0,i.tI)(a)){if(a.then(ve,ve),e)return a.then((r=>{xe(t,r,e)})).catch((e=>{u(e,t,0)}));t.asyncDep=a}else xe(t,a,e)}else Se(t,e)}(t,e):void 0;Ee=!1}(h),h.asyncDep){if(a&&a.registerDep(h,K),!t.el){const t=h.subTree=re(jt);T(null,t,e,r)}}else K(h,t,e,r,a,c,l)},W=(t,e,r)=>{const n=e.component=t.component;if(function(t,e,r){const{props:n,children:i,component:o}=t,{props:s,children:a,patchFlag:u}=e,c=o.emitsOptions;if(e.dirs||e.transition)return!0;if(!(r&&u>=0))return!(!i&&!a||a&&a.$stable)||n!==s&&(n?!s||R(n,s,c):!!s);if(1024&u)return!0;if(16&u)return n?R(n,s,c):!!s;if(8&u){const t=e.dynamicProps;for(let e=0;ef&&h.splice(e,1)}(n.update),n.update()}else e.el=t.el,n.vnode=e},K=(t,e,r,o,s,a,u)=>{const c=t.effect=new n.qq((()=>{if(t.isMounted){let e,{next:r,bu:n,u:o,parent:c,vnode:l}=t,h=r;Lt(t,!1),r?(r.el=l.el,q(t,r,u)):r=l,n&&(0,i.ir)(n),(e=r.props&&r.props.onVnodeBeforeUpdate)&&ce(e,c,r,l),Lt(t,!0);const f=N(t),p=t.subTree;t.subTree=f,x(p,f,y(p.el),it(p),t,s,a),r.el=f.el,null===h&&function({vnode:t,parent:e},r){for(;e&&e.subTree===t;)(t=e.vnode).el=r,e=e.parent}(t,f.el),o&&Rt(o,s),(e=r.props&&r.props.onVnodeUpdated)&&Rt((()=>ce(e,c,r,l)),s)}else{let n;const{el:u,props:c}=e,{bm:l,m:h,parent:f}=t,p=Y(e);if(Lt(t,!1),l&&(0,i.ir)(l),!p&&(n=c&&c.onVnodeBeforeMount)&&ce(n,f,e),Lt(t,!0),u&&ct){const r=()=>{t.subTree=N(t),ct(u,t.subTree,t,s,null)};p?e.type.__asyncLoader().then((()=>!t.isUnmounted&&r())):r()}else{const n=t.subTree=N(t);x(null,n,r,o,t,s,a),e.el=n.el}if(h&&Rt(h,s),!p&&(n=c&&c.onVnodeMounted)){const t=e;Rt((()=>ce(n,f,t)),s)}(256&e.shapeFlag||f&&Y(f.vnode)&&256&f.vnode.shapeFlag)&&t.a&&Rt(t.a,s),t.isMounted=!0,e=r=o=null}}),(()=>b(l)),t.scope),l=t.update=()=>c.run();l.id=t.uid,Lt(t,!0),l()},q=(t,e,r)=>{e.component=t;const o=t.vnode.props;t.vnode=e,t.next=null,function(t,e,r,o){const{props:s,attrs:a,vnode:{patchFlag:u}}=t,c=(0,n.IU)(s),[l]=t.propsOptions;let h=!1;if(!(o||u>0)||16&u){let n;wt(t,e,s,a)&&(h=!0);for(const o in c)e&&((0,i.RI)(e,o)||(n=(0,i.rs)(o))!==o&&(0,i.RI)(e,n))||(l?!r||void 0===r[o]&&void 0===r[n]||(s[o]=_t(l,c,o,void 0,t,!0)):delete s[o]);if(a!==c)for(const t in a)e&&(0,i.RI)(e,t)||(delete a[t],h=!0)}else if(8&u){const r=t.vnode.dynamicProps;for(let n=0;n{const c=t&&t.children,l=t?t.shapeFlag:0,h=e.children,{patchFlag:f,shapeFlag:p}=e;if(f>0){if(128&f)return void X(c,h,r,n,i,o,s,a,u);if(256&f)return void z(c,h,r,n,i,o,s,a,u)}8&p?(16&l&&nt(c,i,o),h!==c&&g(r,h)):16&l?16&p?X(c,h,r,n,i,o,s,a,u):nt(c,i,o,!0):(8&l&&g(r,""),16&p&&D(h,r,n,i,o,s,a,u))},z=(t,e,r,n,o,s,a,u,c)=>{t=t||i.Z6,e=e||i.Z6;const l=t.length,h=e.length,f=Math.min(l,h);let p;for(p=0;ph?nt(t,o,s,!0,!1,f):D(e,r,n,o,s,a,u,c,f)},X=(t,e,r,n,o,s,a,u,c)=>{let l=0;const h=e.length;let f=t.length-1,p=h-1;for(;l<=f&&l<=p;){const n=t[l],i=e[l]=c?ae(e[l]):se(e[l]);if(!Jt(n,i))break;x(n,i,r,null,o,s,a,u,c),l++}for(;l<=f&&l<=p;){const n=t[f],i=e[p]=c?ae(e[p]):se(e[p]);if(!Jt(n,i))break;x(n,i,r,null,o,s,a,u,c),f--,p--}if(l>f){if(l<=p){const t=p+1,i=tp)for(;l<=f;)Q(t[l],o,s,!0),l++;else{const d=l,g=l,y=new Map;for(l=g;l<=p;l++){const t=e[l]=c?ae(e[l]):se(e[l]);null!=t.key&&y.set(t.key,l)}let m,v=0;const b=p-g+1;let w=!1,_=0;const E=new Array(b);for(l=0;l=b){Q(n,o,s,!0);continue}let i;if(null!=n.key)i=y.get(n.key);else for(m=g;m<=p;m++)if(0===E[m-g]&&Jt(n,e[m])){i=m;break}void 0===i?Q(n,o,s,!0):(E[i-g]=l+1,i>=_?_=i:w=!0,x(n,e[i],r,null,o,s,a,u,c),v++)}const S=w?function(t){const e=t.slice(),r=[0];let n,i,o,s,a;const u=t.length;for(n=0;n>1,t[r[a]]0&&(e[n]=r[o-1]),r[o]=n)}}for(o=r.length,s=r[o-1];o-- >0;)r[o]=s,s=e[s];return r}(E):i.Z6;for(m=S.length-1,l=b-1;l>=0;l--){const t=g+l,i=e[t],f=t+1{const{el:s,type:a,transition:u,children:c,shapeFlag:l}=t;if(6&l)Z(t.component.subTree,e,n,i);else if(128&l)t.suspense.move(e,n,i);else if(64&l)a.move(t,e,n,st);else if(a!==Ht)if(a!==Ft)if(2!==i&&1&l&&u)if(0===i)u.beforeEnter(s),r(s,e,n),Rt((()=>u.enter(s)),o);else{const{leave:t,delayLeave:i,afterLeave:o}=u,a=()=>r(s,e,n),c=()=>{t(s,(()=>{a(),o&&o()}))};i?i(s,a,c):c()}else r(s,e,n);else(({el:t,anchor:e},n,i)=>{let o;for(;t&&t!==e;)o=m(t),r(t,n,i),t=o;r(e,n,i)})(t,e,n);else{r(s,e,n);for(let t=0;t{const{type:o,props:s,ref:a,children:u,dynamicChildren:c,shapeFlag:l,patchFlag:h,dirs:f}=t;if(null!=a&&Bt(a,null,r,t,!0),256&l)return void e.ctx.deactivate(t);const p=1&l&&f,d=!Y(t);let g;if(d&&(g=s&&s.onVnodeBeforeUnmount)&&ce(g,e,t),6&l)rt(t.component,r,n);else{if(128&l)return void t.suspense.unmount(r,n);p&&H(t,null,e,"beforeUnmount"),64&l?t.type.remove(t,e,r,i,st,n):c&&(o!==Ht||h>0&&64&h)?nt(c,e,r,!1,!0):(o===Ht&&384&h||!i&&16&l)&&nt(u,e,r),n&&tt(t)}(d&&(g=s&&s.onVnodeUnmounted)||p)&&Rt((()=>{g&&ce(g,e,t),p&&H(t,null,e,"unmounted")}),r)},tt=t=>{const{type:e,el:r,anchor:n,transition:i}=t;if(e===Ht)return void et(r,n);if(e===Ft)return void P(t);const s=()=>{o(r),i&&!i.persisted&&i.afterLeave&&i.afterLeave()};if(1&t.shapeFlag&&i&&!i.persisted){const{leave:e,delayLeave:n}=i,o=()=>e(r,s);n?n(t.el,s,o):o()}else s()},et=(t,e)=>{let r;for(;t!==e;)r=m(t),o(t),t=r;o(e)},rt=(t,e,r)=>{const{bum:n,scope:o,update:s,subTree:a,um:u}=t;n&&(0,i.ir)(n),o.stop(),s&&(s.active=!1,Q(a,t,e,r)),u&&Rt(u,e),Rt((()=>{t.isUnmounted=!0}),e),e&&e.pendingBranch&&!e.isUnmounted&&t.asyncDep&&!t.asyncResolved&&t.suspenseId===e.pendingId&&(e.deps--,0===e.deps&&e.resolve())},nt=(t,e,r,n=!1,i=!1,o=0)=>{for(let s=o;s6&t.shapeFlag?it(t.component.subTree):128&t.shapeFlag?t.suspense.next():m(t.anchor||t.el),ot=(t,e,r)=>{null==t?e._vnode&&Q(e._vnode,null,null,!0):x(e._vnode||null,t,e,null,null,null,r),_(),E(),e._vnode=t},st={p:x,um:Q,m:Z,r:tt,mt:V,mc:D,pc:G,pbc:U,n:it,o:t};let ut,ct;return e&&([ut,ct]=e(st)),{render:ot,hydrate:ut,createApp:vt(ot,ut)}}(t)}function Lt({effect:t,update:e},r){t.allowRecurse=e.allowRecurse=r}function Ut(t,e,r=!1){const n=t.children,o=e.children;if((0,i.kJ)(n)&&(0,i.kJ)(o))for(let t=0;t0?Wt||i.Z6:null,Vt.pop(),Wt=Vt[Vt.length-1]||null,qt>0&&Wt&&Wt.push(t),t}function Xt(t,e,r,n,i,o){return zt(ee(t,e,r,n,i,o,!0))}function Yt(t){return!!t&&!0===t.__v_isVNode}function Jt(t,e){return t.type===e.type&&t.key===e.key}const Zt="__vInternal",Qt=({key:t})=>null!=t?t:null,te=({ref:t,ref_key:e,ref_for:r})=>("number"==typeof t&&(t=""+t),null!=t?(0,i.HD)(t)||(0,n.dq)(t)||(0,i.mf)(t)?{i:O,r:t,k:e,f:!!r}:t:null);function ee(t,e=null,r=null,n=0,o=null,s=(t===Ht?0:1),a=!1,u=!1){const c={__v_isVNode:!0,__v_skip:!0,type:t,props:e,key:e&&Qt(e),ref:e&&te(e),scopeId:P,slotScopeIds:null,children:r,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:n,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:O};return u?(ue(c,r),128&s&&t.normalize(c)):r&&(c.shapeFlag|=(0,i.HD)(r)?8:16),qt>0&&!a&&Wt&&(c.patchFlag>0||6&s)&&32!==c.patchFlag&&Wt.push(c),c}const re=function(t,e=null,r=null,o=0,s=null,a=!1){if(t&&t!==rt||(t=jt),Yt(t)){const n=ne(t,e,!0);return r&&ue(n,r),qt>0&&!a&&Wt&&(6&n.shapeFlag?Wt[Wt.indexOf(t)]=n:Wt.push(n)),n.patchFlag|=-2,n}if(u=t,(0,i.mf)(u)&&"__vccOpts"in u&&(t=t.__vccOpts),e){e=function(t){return t?(0,n.X3)(t)||Zt in t?(0,i.l7)({},t):t:null}(e);let{class:t,style:r}=e;t&&!(0,i.HD)(t)&&(e.class=(0,i.C_)(t)),(0,i.Kn)(r)&&((0,n.X3)(r)&&!(0,i.kJ)(r)&&(r=(0,i.l7)({},r)),e.style=(0,i.j5)(r))}var u;return ee(t,e,r,o,s,(0,i.HD)(t)?1:(t=>t.__isSuspense)(t)?128:(t=>t.__isTeleport)(t)?64:(0,i.Kn)(t)?4:(0,i.mf)(t)?2:0,a,!0)};function ne(t,e,r=!1){const{props:n,ref:o,patchFlag:s,children:a}=t,u=e?function(...t){const e={};for(let r=0;rfe||O;let de,ge,ye="__VUE_INSTANCE_SETTERS__";(ge=(0,i.E9)()[ye])||(ge=(0,i.E9)()[ye]=[]),ge.push((t=>fe=t)),de=t=>{ge.length>1?ge.forEach((e=>e(t))):ge[0](t)};const me=t=>{de(t),t.scope.on()},ve=()=>{fe&&fe.scope.off(),de(null)};function be(t){return 4&t.vnode.shapeFlag}let we,_e,Ee=!1;function xe(t,e,r){(0,i.mf)(e)?t.type.__ssrInlineRender?t.ssrRender=e:t.render=e:(0,i.Kn)(e)&&(t.setupState=(0,n.WL)(e)),Se(t,r)}function Se(t,e,r){const n=t.type;if(!t.render){if(!e&&we&&!n.render){const e=n.template||function(t){const e=t.type,{mixins:r,extends:n}=e,{mixins:o,optionsCache:s,config:{optionMergeStrategies:a}}=t.appContext,u=s.get(e);let c;return u?c=u:o.length||r||n?(c={},o.length&&o.forEach((t=>ct(c,t,a,!0))),ct(c,e,a)):c=e,(0,i.Kn)(e)&&s.set(e,c),c}(t).template;if(e){const{isCustomElement:r,compilerOptions:o}=t.appContext.config,{delimiters:s,compilerOptions:a}=n,u=(0,i.l7)((0,i.l7)({isCustomElement:r,delimiters:s},o),a);n.render=we(e,u)}}t.render=n.render||i.dG,_e&&_e(t)}}function Te(t){if(t.exposed)return t.exposeProxy||(t.exposeProxy=new Proxy((0,n.WL)((0,n.Xl)(t.exposed)),{get:(e,r)=>r in e?e[r]:r in ot?ot[r](t):void 0,has:(t,e)=>e in t||e in ot}))}const Ie=(t,e)=>(0,n.Fl)(t,e,Ee);function ke(t,e,r){const n=arguments.length;return 2===n?(0,i.Kn)(e)&&!(0,i.kJ)(e)?Yt(e)?re(t,null,[e]):re(t,e):re(t,null,e):(n>3?r=Array.prototype.slice.call(arguments,2):3===n&&Yt(r)&&(r=[r]),re(t,e,r))}const Ae=Symbol.for("v-scx"),Oe=()=>function(t,e,r=!1){const n=fe||O;if(n||bt){const o=n?null==n.parent?n.vnode.appContext&&n.vnode.appContext.provides:n.parent.provides:bt._context.provides;if(o&&t in o)return o[t];if(arguments.length>1)return r&&(0,i.mf)(e)?e.call(n&&n.proxy):e}}(Ae),Pe="3.3.4"},49963:(t,e,r)=>{"use strict";r.d(e,{ri:()=>B});var n=r(3577),i=r(66252);r(2262);const o="undefined"!=typeof document?document:null,s=o&&o.createElement("template"),a={insert:(t,e,r)=>{e.insertBefore(t,r||null)},remove:t=>{const e=t.parentNode;e&&e.removeChild(t)},createElement:(t,e,r,n)=>{const i=e?o.createElementNS("http://www.w3.org/2000/svg",t):o.createElement(t,r?{is:r}:void 0);return"select"===t&&n&&null!=n.multiple&&i.setAttribute("multiple",n.multiple),i},createText:t=>o.createTextNode(t),createComment:t=>o.createComment(t),setText:(t,e)=>{t.nodeValue=e},setElementText:(t,e)=>{t.textContent=e},parentNode:t=>t.parentNode,nextSibling:t=>t.nextSibling,querySelector:t=>o.querySelector(t),setScopeId(t,e){t.setAttribute(e,"")},insertStaticContent(t,e,r,n,i,o){const a=r?r.previousSibling:e.lastChild;if(i&&(i===o||i.nextSibling))for(;e.insertBefore(i.cloneNode(!0),r),i!==o&&(i=i.nextSibling););else{s.innerHTML=n?`${t}`:t;const i=s.content;if(n){const t=i.firstChild;for(;t.firstChild;)i.appendChild(t.firstChild);i.removeChild(t)}e.insertBefore(i,r)}return[a?a.nextSibling:e.firstChild,r?r.previousSibling:e.lastChild]}},u=/\s*!important$/;function c(t,e,r){if((0,n.kJ)(r))r.forEach((r=>c(t,e,r)));else if(null==r&&(r=""),e.startsWith("--"))t.setProperty(e,r);else{const i=function(t,e){const r=h[e];if(r)return r;let i=(0,n._A)(e);if("filter"!==i&&i in t)return h[e]=i;i=(0,n.kC)(i);for(let r=0;rd||(g.then((()=>d=0)),d=Date.now()),m=/^on[a-z]/;"undefined"!=typeof HTMLElement&&HTMLElement;const v="transition",b="animation",w=(t,{slots:e})=>(0,i.h)(i.P$,function(t){const e={};for(const r in t)r in _||(e[r]=t[r]);if(!1===t.css)return e;const{name:r="v",type:i,duration:o,enterFromClass:s=`${r}-enter-from`,enterActiveClass:a=`${r}-enter-active`,enterToClass:u=`${r}-enter-to`,appearFromClass:c=s,appearActiveClass:l=a,appearToClass:h=u,leaveFromClass:f=`${r}-leave-from`,leaveActiveClass:p=`${r}-leave-active`,leaveToClass:d=`${r}-leave-to`}=t,g=function(t){if(null==t)return null;if((0,n.Kn)(t))return[S(t.enter),S(t.leave)];{const e=S(t);return[e,e]}}(o),y=g&&g[0],m=g&&g[1],{onBeforeEnter:v,onEnter:b,onEnterCancelled:w,onLeave:A,onLeaveCancelled:P,onBeforeAppear:C=v,onAppear:N=b,onAppearCancelled:M=w}=e,B=(t,e,r)=>{I(t,e?h:u),I(t,e?l:a),r&&r()},R=(t,e)=>{t._isLeaving=!1,I(t,f),I(t,d),I(t,p),e&&e()},D=t=>(e,r)=>{const n=t?N:b,o=()=>B(e,t,r);E(n,[e,o]),k((()=>{I(e,t?c:s),T(e,t?h:u),x(n)||O(e,i,y,o)}))};return(0,n.l7)(e,{onBeforeEnter(t){E(v,[t]),T(t,s),T(t,a)},onBeforeAppear(t){E(C,[t]),T(t,c),T(t,l)},onEnter:D(!1),onAppear:D(!0),onLeave(t,e){t._isLeaving=!0;const r=()=>R(t,e);T(t,f),document.body.offsetHeight,T(t,p),k((()=>{t._isLeaving&&(I(t,f),T(t,d),x(A)||O(t,i,m,r))})),E(A,[t,r])},onEnterCancelled(t){B(t,!1),E(w,[t])},onAppearCancelled(t){B(t,!0),E(M,[t])},onLeaveCancelled(t){R(t),E(P,[t])}})}(t),e);w.displayName="Transition";const _={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},E=(w.props=(0,n.l7)({},i.nJ,_),(t,e=[])=>{(0,n.kJ)(t)?t.forEach((t=>t(...e))):t&&t(...e)}),x=t=>!!t&&((0,n.kJ)(t)?t.some((t=>t.length>1)):t.length>1);function S(t){return(0,n.He)(t)}function T(t,e){e.split(/\s+/).forEach((e=>e&&t.classList.add(e))),(t._vtc||(t._vtc=new Set)).add(e)}function I(t,e){e.split(/\s+/).forEach((e=>e&&t.classList.remove(e)));const{_vtc:r}=t;r&&(r.delete(e),r.size||(t._vtc=void 0))}function k(t){requestAnimationFrame((()=>{requestAnimationFrame(t)}))}let A=0;function O(t,e,r,n){const i=t._endId=++A,o=()=>{i===t._endId&&n()};if(r)return setTimeout(o,r);const{type:s,timeout:a,propCount:u}=function(t,e){const r=window.getComputedStyle(t),n=t=>(r[t]||"").split(", "),i=n(`${v}Delay`),o=n(`${v}Duration`),s=P(i,o),a=n(`${b}Delay`),u=n(`${b}Duration`),c=P(a,u);let l=null,h=0,f=0;return e===v?s>0&&(l=v,h=s,f=o.length):e===b?c>0&&(l=b,h=c,f=u.length):(h=Math.max(s,c),l=h>0?s>c?v:b:null,f=l?l===v?o.length:u.length:0),{type:l,timeout:h,propCount:f,hasTransform:l===v&&/\b(transform|all)(,|$)/.test(n(`${v}Property`).toString())}}(t,e);if(!s)return n();const c=s+"end";let l=0;const h=()=>{t.removeEventListener(c,f),o()},f=e=>{e.target===t&&++l>=u&&h()};setTimeout((()=>{lC(e)+C(t[r]))))}function C(t){return 1e3*Number(t.slice(0,-1).replace(",","."))}const N=(0,n.l7)({patchProp:(t,e,r,o,s=!1,a,u,l,h)=>{"class"===e?function(t,e,r){const n=t._vtc;n&&(e=(e?[e,...n]:[...n]).join(" ")),null==e?t.removeAttribute("class"):r?t.setAttribute("class",e):t.className=e}(t,o,s):"style"===e?function(t,e,r){const i=t.style,o=(0,n.HD)(r);if(r&&!o){if(e&&!(0,n.HD)(e))for(const t in e)null==r[t]&&c(i,t,"");for(const t in r)c(i,t,r[t])}else{const n=i.display;o?e!==r&&(i.cssText=r):e&&t.removeAttribute("style"),"_vod"in t&&(i.display=n)}}(t,r,o):(0,n.F7)(e)?(0,n.tR)(e)||function(t,e,r,o,s=null){const a=t._vei||(t._vei={}),u=a[e];if(o&&u)u.value=o;else{const[r,c]=function(t){let e;if(p.test(t)){let r;for(e={};r=t.match(p);)t=t.slice(0,t.length-r[0].length),e[r[0].toLowerCase()]=!0}return[":"===t[2]?t.slice(3):(0,n.rs)(t.slice(2)),e]}(e);if(o){const u=a[e]=function(t,e){const r=t=>{if(t._vts){if(t._vts<=r.attached)return}else t._vts=Date.now();(0,i.$d)(function(t,e){if((0,n.kJ)(e)){const r=t.stopImmediatePropagation;return t.stopImmediatePropagation=()=>{r.call(t),t._stopped=!0},e.map((t=>e=>!e._stopped&&t&&t(e)))}return e}(t,r.value),e,5,[t])};return r.value=t,r.attached=y(),r}(o,s);!function(t,e,r,n){t.addEventListener(e,r,n)}(t,r,u,c)}else u&&(function(t,e,r,n){t.removeEventListener(e,r,n)}(t,r,u,c),a[e]=void 0)}}(t,e,0,o,u):("."===e[0]?(e=e.slice(1),1):"^"===e[0]?(e=e.slice(1),0):function(t,e,r,i){return i?"innerHTML"===e||"textContent"===e||!!(e in t&&m.test(e)&&(0,n.mf)(r)):"spellcheck"!==e&&"draggable"!==e&&"translate"!==e&&("form"!==e&&(("list"!==e||"INPUT"!==t.tagName)&&(("type"!==e||"TEXTAREA"!==t.tagName)&&((!m.test(e)||!(0,n.HD)(r))&&e in t))))}(t,e,o,s))?function(t,e,r,i,o,s,a){if("innerHTML"===e||"textContent"===e)return i&&a(i,o,s),void(t[e]=null==r?"":r);const u=t.tagName;if("value"===e&&"PROGRESS"!==u&&!u.includes("-")){t._value=r;const n=null==r?"":r;return("OPTION"===u?t.getAttribute("value"):t.value)!==n&&(t.value=n),void(null==r&&t.removeAttribute(e))}let c=!1;if(""===r||null==r){const i=typeof t[e];"boolean"===i?r=(0,n.yA)(r):null==r&&"string"===i?(r="",c=!0):"number"===i&&(r=0,c=!0)}try{t[e]=r}catch(t){}c&&t.removeAttribute(e)}(t,e,o,a,u,l,h):("true-value"===e?t._trueValue=o:"false-value"===e&&(t._falseValue=o),function(t,e,r,i,o){if(i&&e.startsWith("xlink:"))null==r?t.removeAttributeNS(f,e.slice(6,e.length)):t.setAttributeNS(f,e,r);else{const i=(0,n.Pq)(e);null==r||i&&!(0,n.yA)(r)?t.removeAttribute(e):t.setAttribute(e,i?"":r)}}(t,e,o,s))}},a);let M;const B=(...t)=>{const e=(M||(M=(0,i.Us)(N))).createApp(...t),{mount:r}=e;return e.mount=t=>{const i=function(t){if((0,n.HD)(t))return document.querySelector(t);return t}(t);if(!i)return;const o=e._component;(0,n.mf)(o)||o.render||o.template||(o.template=i.innerHTML),i.innerHTML="";const s=r(i,!1,i instanceof SVGElement);return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),s},e}},3577:(t,e,r)=>{"use strict";function n(t,e){const r=Object.create(null),n=t.split(",");for(let t=0;t!!r[t.toLowerCase()]:t=>!!r[t]}r.d(e,{C_:()=>J,DM:()=>m,E9:()=>W,F7:()=>c,Gg:()=>P,HD:()=>_,He:()=>F,Kj:()=>b,Kn:()=>x,NO:()=>a,Nj:()=>$,Od:()=>f,PO:()=>A,Pq:()=>Z,RI:()=>d,S0:()=>O,W7:()=>k,WV:()=>tt,Z6:()=>o,_A:()=>M,_N:()=>y,aU:()=>U,dG:()=>s,e1:()=>K,fY:()=>n,h5:()=>j,hR:()=>L,hq:()=>et,ir:()=>H,j5:()=>q,kC:()=>D,kJ:()=>g,kT:()=>i,l7:()=>h,mf:()=>w,rs:()=>R,tI:()=>S,tR:()=>l,yA:()=>Q,yk:()=>E,zw:()=>rt}),r(25108);const i={},o=[],s=()=>{},a=()=>!1,u=/^on[^a-z]/,c=t=>u.test(t),l=t=>t.startsWith("onUpdate:"),h=Object.assign,f=(t,e)=>{const r=t.indexOf(e);r>-1&&t.splice(r,1)},p=Object.prototype.hasOwnProperty,d=(t,e)=>p.call(t,e),g=Array.isArray,y=t=>"[object Map]"===I(t),m=t=>"[object Set]"===I(t),v=t=>"[object Date]"===I(t),b=t=>"[object RegExp]"===I(t),w=t=>"function"==typeof t,_=t=>"string"==typeof t,E=t=>"symbol"==typeof t,x=t=>null!==t&&"object"==typeof t,S=t=>x(t)&&w(t.then)&&w(t.catch),T=Object.prototype.toString,I=t=>T.call(t),k=t=>I(t).slice(8,-1),A=t=>"[object Object]"===I(t),O=t=>_(t)&&"NaN"!==t&&"-"!==t[0]&&""+parseInt(t,10)===t,P=n(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),C=t=>{const e=Object.create(null);return r=>e[r]||(e[r]=t(r))},N=/-(\w)/g,M=C((t=>t.replace(N,((t,e)=>e?e.toUpperCase():"")))),B=/\B([A-Z])/g,R=C((t=>t.replace(B,"-$1").toLowerCase())),D=C((t=>t.charAt(0).toUpperCase()+t.slice(1))),L=C((t=>t?`on${D(t)}`:"")),U=(t,e)=>!Object.is(t,e),H=(t,e)=>{for(let r=0;r{Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value:r})},j=t=>{const e=parseFloat(t);return isNaN(e)?t:e},F=t=>{const e=_(t)?Number(t):NaN;return isNaN(e)?t:e};let V;const W=()=>V||(V="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==r.g?r.g:{}),K=n("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console");function q(t){if(g(t)){const e={};for(let r=0;r{if(t){const r=t.split(z);r.length>1&&(e[r[0].trim()]=r[1].trim())}})),e}function J(t){let e="";if(_(t))e=t;else if(g(t))for(let r=0;rtt(t,e)))}const rt=t=>_(t)?t:null==t?"":g(t)||x(t)&&(t.toString===T||!w(t.toString))?JSON.stringify(t,nt,2):String(t),nt=(t,e)=>e&&e.__v_isRef?nt(t,e.value):y(e)?{[`Map(${e.size})`]:[...e.entries()].reduce(((t,[e,r])=>(t[`${e} =>`]=r,t)),{})}:m(e)?{[`Set(${e.size})`]:[...e.values()]}:!x(e)||g(e)||A(e)?e:String(e)},58162:t=>{"use strict";t.exports=function(t){if(t.length>=255)throw new TypeError("Alphabet too long");for(var e=new Uint8Array(256),r=0;r>>0,c=new Uint8Array(o);t[r];){var l=e[t.charCodeAt(r)];if(255===l)return;for(var h=0,f=o-1;(0!==l||h>>0,c[f]=l%256>>>0,l=l/256>>>0;if(0!==l)throw new Error("Non-zero carry");i=h,r++}for(var p=o-i;p!==o&&0===c[p];)p++;for(var d=new Uint8Array(n+(o-p)),g=n;p!==o;)d[g++]=c[p++];return d}return{encode:function(e){if(e instanceof Uint8Array||(ArrayBuffer.isView(e)?e=new Uint8Array(e.buffer,e.byteOffset,e.byteLength):Array.isArray(e)&&(e=Uint8Array.from(e))),!(e instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===e.length)return"";for(var r=0,n=0,i=0,o=e.length;i!==o&&0===e[i];)i++,r++;for(var u=(o-i)*c+1>>>0,l=new Uint8Array(u);i!==o;){for(var h=e[i],f=0,p=u-1;(0!==h||f>>0,l[p]=h%s>>>0,h=h/s>>>0;if(0!==h)throw new Error("Non-zero carry");n=f,i++}for(var d=u-n;d!==u&&0===l[d];)d++;for(var g=a.repeat(r);d{var n=r(48764).Buffer,i=r(34155);!function(){var e,o,s="0123456789abcdefghjkmnpqrtuvwxyz",a={o:0,i:1,l:1,s:5},u=function(){for(var t={},e=0;e>-t:e=r<3?(t-=8,1):(t<4&&(this.output+=s[e>>3],t+=5),0)},this.finish=function(r){var n=this.output+(t<0?s[e>>3]:"")+(r?"$":"");return this.output="",n}}function l(){var t=0,e=0;this.output="",this.readChar=function(r){"string"!=typeof r&&"number"==typeof r&&(r=String.fromCharCode(r)),r=r.toLowerCase();var n=u()[r];void 0!==n&&(e|=(n<<=3)>>>t,(t+=5)>=8&&(this.output+=String.fromCharCode(e),e=(t-=8)>0?n<<5-t&255:0))},this.finish=function(e){var r=this.output+(t<0?s[bits>>3]:"")+(e?"$":"");return this.output="",r}}function h(t){return(new c).update(t,!0)}function f(t,i){void 0===e&&(e=r(55835));var o,s=e.createHash("sha1");if(s.digest=(o=s.digest,function(){return h(o.call(this,"binary"))}),i){if("string"==typeof t||n.isBuffer(t))try{return i(null,f(t))}catch(t){return i(t,null)}return"function"==(t.on,!1)?i({message:"Not a stream!"}):(t.on("data",(function(t){s.update(t)})),void t.on("end",(function(){i(null,s.digest())})))}return t?s.update(t).digest():s}c.prototype.update=function(t,e){for(var r=0;r{"use strict";const r="qpzry9x8gf2tvdw0s3jn54khce6mua7l",n={};for(let t=0;t<32;t++){const e=r.charAt(t);n[e]=t}function i(t){const e=t>>25;return(33554431&t)<<5^996825010&-(e>>0&1)^642813549&-(e>>1&1)^513874426&-(e>>2&1)^1027748829&-(e>>3&1)^705979059&-(e>>4&1)}function o(t){let e=1;for(let r=0;r126)return"Invalid prefix ("+t+")";e=i(e)^n>>5}e=i(e);for(let r=0;r=r;)o-=r,a.push(i>>o&s);if(n)o>0&&a.push(i<=e)return"Excess padding";if(i<r)return"Exceeds length limit";const s=t.toLowerCase(),a=t.toUpperCase();if(t!==s&&t!==a)return"Mixed-case string "+t;const u=(t=s).lastIndexOf("1");if(-1===u)return"No separator character for "+t;if(0===u)return"Missing prefix for "+t;const c=t.slice(0,u),l=t.slice(u+1);if(l.length<6)return"Data too short";let h=o(c);if("string"==typeof h)return h;const f=[];for(let t=0;t=l.length||f.push(r)}return h!==e?"Invalid checksum for "+t:{prefix:c,words:f}}return e="bech32"===t?1:734539939,{decodeUnsafe:function(t,e){const r=s(t,e);if("object"==typeof r)return r},decode:function(t,e){const r=s(t,e);if("object"==typeof r)return r;throw new Error(r)},encode:function(t,n,s){if(s=s||90,t.length+7+n.length>s)throw new TypeError("Exceeds length limit");let a=o(t=t.toLowerCase());if("string"==typeof a)throw new Error(a);let u=t+"1";for(let t=0;t>5!=0)throw new Error("Non 5-bit word");a=i(a)^e,u+=r.charAt(e)}for(let t=0;t<6;++t)a=i(a);a^=e;for(let t=0;t<6;++t)u+=r.charAt(a>>5*(5-t)&31);return u},toWords:a,fromWordsUnsafe:u,fromWords:c}}l("bech32"),l("bech32m")},51409:(t,e)=>{!function(t){"use strict";var e={};function r(t,n,o){if(o!==e)return t instanceof r?t:void 0===t?i:r.parse(t);for(t=t||[];t.length&&!t[t.length-1];)--t.length;this._d=t,this._s=t.length?n||1:0}r._construct=function(t,n){return new r(t,n,e)};var n=1e7;r.base=n,r.base_log10=7;var i=new r([],0,e);r.ZERO=i;var o=new r([1],1,e);r.ONE=o;var s=new r(o._d,-1,e);r.M_ONE=s,r._0=i,r._1=o,r.small=[i,o,new r([2],1,e),new r([3],1,e),new r([4],1,e),new r([5],1,e),new r([6],1,e),new r([7],1,e),new r([8],1,e),new r([9],1,e),new r([10],1,e),new r([11],1,e),new r([12],1,e),new r([13],1,e),new r([14],1,e),new r([15],1,e),new r([16],1,e),new r([17],1,e),new r([18],1,e),new r([19],1,e),new r([20],1,e),new r([21],1,e),new r([22],1,e),new r([23],1,e),new r([24],1,e),new r([25],1,e),new r([26],1,e),new r([27],1,e),new r([28],1,e),new r([29],1,e),new r([30],1,e),new r([31],1,e),new r([32],1,e),new r([33],1,e),new r([34],1,e),new r([35],1,e),new r([36],1,e)],r.digits="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(""),r.prototype.toString=function(t){if((t=+t||10)<2||t>36)throw new Error("illegal radix "+t+".");if(0===this._s)return"0";if(10===t){var e=this._s<0?"-":"";e+=this._d[this._d.length-1].toString();for(var n=this._d.length-2;n>=0;n--){for(var i=this._d[n].toString();i.length<7;)i="0"+i;e+=i}return e}var o=r.digits;t=r.small[t];for(var s,a=this._s,u=this.abs(),c=[];0!==u._s;){var l=u.divRem(t);u=l[0],s=l[1],c.push(o[s.valueOf()])}return(a<0?"-":"")+c.reverse().join("")},r.radixRegex=[/^$/,/^$/,/^[01]*$/,/^[012]*$/,/^[0-3]*$/,/^[0-4]*$/,/^[0-5]*$/,/^[0-6]*$/,/^[0-7]*$/,/^[0-8]*$/,/^[0-9]*$/,/^[0-9aA]*$/,/^[0-9abAB]*$/,/^[0-9abcABC]*$/,/^[0-9a-dA-D]*$/,/^[0-9a-eA-E]*$/,/^[0-9a-fA-F]*$/,/^[0-9a-gA-G]*$/,/^[0-9a-hA-H]*$/,/^[0-9a-iA-I]*$/,/^[0-9a-jA-J]*$/,/^[0-9a-kA-K]*$/,/^[0-9a-lA-L]*$/,/^[0-9a-mA-M]*$/,/^[0-9a-nA-N]*$/,/^[0-9a-oA-O]*$/,/^[0-9a-pA-P]*$/,/^[0-9a-qA-Q]*$/,/^[0-9a-rA-R]*$/,/^[0-9a-sA-S]*$/,/^[0-9a-tA-T]*$/,/^[0-9a-uA-U]*$/,/^[0-9a-vA-V]*$/,/^[0-9a-wA-W]*$/,/^[0-9a-xA-X]*$/,/^[0-9a-yA-Y]*$/,/^[0-9a-zA-Z]*$/],r.parse=function(t,n){t=t.toString(),void 0!==n&&10!=+n||(t=t.replace(/\s*[*xX]\s*10\s*(\^|\*\*)\s*/,"e").replace(/^([+\-])?(\d+)\.?(\d*)[eE]([+\-]?\d+)$/,(function(t,e,r,n,i){var o=(i=+i)<0,s=r.length+i;t=(o?r:n).length,i=(i=Math.abs(i))>=t?i-t+o:0;var a=new Array(i+1).join("0"),u=r+n;return(e||"")+(o?u=a+u:u+=a).substr(0,s+=o?a.length:0)+(s36)throw new Error("Illegal radix "+n+".");if(n=+n,!r.radixRegex[n].test(u))throw new Error("Bad digit for radix "+n);if(0===(u=u.replace(/^0+/,"").split("")).length)return i;if(s="-"===s?-1:1,10==n){for(var c=[];u.length>=7;)c.push(parseInt(u.splice(u.length-r.base_log10,r.base_log10).join(""),10));return c.push(parseInt(u.join(""),10)),new r(c,s,e)}c=i,n=r.small[n];for(var l=r.small,h=0;ha&&(o=s,a=u),f=l;h&&fn)return 1;for(var i=this._d,o=t._d,s=e-1;s>=0;s--)if(i[s]!==o[s])return i[s]=t._d.length,a=(s?this:t)._d,u=(s?t:this)._d,c=a.length,l=u.length,h=c+l,f=new Array(h);for(o=0;o=n?[o%n|0,o/n|0]:[o],1,e);if(2===t)return this.add(this);if(this.isUnit())return new r([t],1,e);for(var s=this._d,a=s.length,u=a+1,c=new Array(u),l=0;lc._d.length&&(y=(y+1)*n),a=Math.ceil(y/m)}do{var v=c.multiplySingleDigit(a);if(v.compareAbs(p)<=0)break;a--}while(a);if(f.push(a),a){var b=p.subtract(v);p._d=b._d.slice(),0===p._d.length&&(p._s=0)}}return[new r(f.reverse(),u,e),new r(p._d,this._s,e)]},r.prototype.divRemSmall=function(t){var o;if(0==(t=+t))throw new Error("Divide by zero");var s=t<0?-1:1,a=this._s*s;if((t=Math.abs(t))<1||t>=n)throw new Error("Argument out of range");if(0===this._s)return[i,i];if(1===t||-1===t)return[1===a?this.abs():new r(this._d,a,e),i];if(1===this._d.length){var u=new r([this._d[0]/t|0],1,e);return o=new r([this._d[0]%t|0],1,e),a<0&&(u=u.negate()),this._s<0&&(o=o.negate()),[u,o]}for(var c,l=this._d.slice(),h=new Array(l.length),f=0,p=0,d=0;l.length;)(f=f*n+l[l.length-1])0},r.prototype.isNegative=function(){return this._s<0},r.prototype.isZero=function(){return 0===this._s},r.prototype.exp10=function(t){if(0==(t=+t))return this;if(Math.abs(t)>Number(a))throw new Error("exponent too large in BigInteger.exp10");if(t>0){for(var n=new r(this._d.slice(),this._s,e);t>=7;t-=7)n._d.unshift(0);return 0==t?n:(n._s=1,n=n.multiplySingleDigit(Math.pow(10,t)),this._s<0?n.negate():n)}if(-t>=7*this._d.length)return i;for(n=new r(this._d.slice(),this._s,e),t=-t;t>=7;t-=7)n._d.shift();return 0==t?n:n.divRemSmall(Math.pow(10,t))[0]},r.prototype.pow=function(t){if(this.isUnit())return this._s>0||r(t).isOdd()?this:this.negate();if(0===(t=r(t))._s)return o;if(t._s<0){if(0===this._s)throw new Error("Divide by zero");return i}if(0===this._s)return i;if(t.isUnit())return this;if(t.compareAbs(a)>0)throw new Error("exponent too large in BigInteger.pow");for(var e=this,n=o,s=r.small[2];t.isPositive();){if(t.isOdd()&&(n=n.multiply(e),t.isUnit()))return n;e=e.square(),t=t.quotient(s)}return n},r.prototype.modPow=function(t,e){for(var n=o,i=this;t.isPositive();)t.isOdd()&&(n=n.multiply(i).remainder(e)),(t=t.quotient(r.small[2])).isPositive()&&(i=i.square().remainder(e));return n},r.prototype.log=function(){switch(this._s){case 0:return-1/0;case-1:return NaN}var t=this._d.length;if(7*t<30)return Math.log(this.valueOf());var i=Math.ceil(30/7),o=this._d.slice(t-i);return Math.log(new r(o,1,e).valueOf())+(t-i)*Math.log(n)},r.prototype.valueOf=function(){return parseInt(this.toString(),10)},r.prototype.toJSValue=function(){return parseInt(this.toString(),10)};var a=r(2147483647);r.MAX_EXP=a,function(){function t(t){return function(e){return t.call(r(e))}}function e(t){return function(e,n){return t.call(r(e),r(n))}}function n(t){return function(e,n,i){return t.call(r(e),r(n),r(i))}}!function(){var i,o,s="toJSValue,isEven,isOdd,sign,isZero,isNegative,abs,isUnit,square,negate,isPositive,toString,next,prev,log".split(","),a="compare,remainder,divRem,subtract,add,quotient,divide,multiply,pow,compareAbs".split(","),u=["modPow"];for(i=0;i{"use strict";Object.defineProperty(e,"__esModule",{value:!0});const n=r(36574);function i(t,e,r){return n=>{if(t.has(n))return;const i=r.filter((t=>t.key.toString("hex")===n))[0];e.push(i),t.add(n)}}function o(t){return t.globalMap.unsignedTx}function s(t){const e=new Set;return t.forEach((t=>{const r=t.key.toString("hex");if(e.has(r))throw new Error("Combine: KeyValue Map keys should be unique");e.add(r)})),e}e.combine=function(t){const e=t[0],r=n.psbtToKeyVals(e),a=t.slice(1);if(0===a.length)throw new Error("Combine: Nothing to combine");const u=o(e);if(void 0===u)throw new Error("Combine: Self missing transaction");const c=s(r.globalKeyVals),l=r.inputKeyVals.map(s),h=r.outputKeyVals.map(s);for(const t of a){const e=o(t);if(void 0===e||!e.toBuffer().equals(u.toBuffer()))throw new Error("Combine: One of the Psbts does not have the same transaction.");const a=n.psbtToKeyVals(t);s(a.globalKeyVals).forEach(i(c,r.globalKeyVals,a.globalKeyVals)),a.inputKeyVals.map(s).forEach(((t,e)=>t.forEach(i(l[e],r.inputKeyVals[e],a.inputKeyVals[e])))),a.outputKeyVals.map(s).forEach(((t,e)=>t.forEach(i(h[e],r.outputKeyVals[e],a.outputKeyVals[e]))))}return n.psbtFromKeyVals(u,{globalMapKeyVals:r.globalKeyVals,inputKeyVals:r.inputKeyVals,outputKeyVals:r.outputKeyVals})}},44041:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0});const i=r(1847);e.decode=function(t){if(t.key[0]!==i.GlobalTypes.GLOBAL_XPUB)throw new Error("Decode Error: could not decode globalXpub with key 0x"+t.key.toString("hex"));if(79!==t.key.length||![2,3].includes(t.key[46]))throw new Error("Decode Error: globalXpub has invalid extended pubkey in key 0x"+t.key.toString("hex"));if(t.value.length/4%1!=0)throw new Error("Decode Error: Global GLOBAL_XPUB value length should be multiple of 4");const e=t.key.slice(1),r={masterFingerprint:t.value.slice(0,4),extendedPubkey:e,path:"m"};for(const e of(n=t.value.length/4-1,[...Array(n).keys()])){const n=t.value.readUInt32LE(4*e+4),i=!!(2147483648&n),o=2147483647&n;r.path+="/"+o.toString(10)+(i?"'":"")}var n;return r},e.encode=function(t){const e=n.from([i.GlobalTypes.GLOBAL_XPUB]),r=n.concat([e,t.extendedPubkey]),o=t.path.split("/"),s=n.allocUnsafe(4*o.length);t.masterFingerprint.copy(s,0);let a=4;return o.slice(1).forEach((t=>{const e="'"===t.slice(-1);let r=2147483647&parseInt(e?t.slice(0,-1):t,10);e&&(r+=2147483648),s.writeUInt32LE(r,a),a+=4})),{key:r,value:s}},e.expected="{ masterFingerprint: Buffer; extendedPubkey: Buffer; path: string; }",e.check=function(t){const e=t.extendedPubkey,r=t.masterFingerprint,i=t.path;return n.isBuffer(e)&&78===e.length&&[2,3].indexOf(e[45])>-1&&n.isBuffer(r)&&4===r.length&&"string"==typeof i&&!!i.match(/^m(\/\d+'?)*$/)},e.canAddToArray=function(t,e,r){const n=e.extendedPubkey.toString("hex");return!r.has(n)&&(r.add(n),0===t.filter((t=>t.extendedPubkey.equals(e.extendedPubkey))).length)}},74480:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0});const i=r(1847);e.encode=function(t){return{key:n.from([i.GlobalTypes.UNSIGNED_TX]),value:t.toBuffer()}}},71528:(t,e,r)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});const n=r(1847),i=r(44041),o=r(74480),s=r(20859),a=r(8248),u=r(70537),c=r(61511),l=r(65896),h=r(91243),f=r(3530),p=r(49265),d=r(23934),g=r(50602),y=r(82954),m=r(6036),v=r(44799),b=r(99595),w=r(9705),_=r(17196),E=r(29375),x=r(66327),S={unsignedTx:o,globalXpub:i,checkPubkey:b.makeChecker([])};e.globals=S;const T={nonWitnessUtxo:u,partialSig:c,sighashType:h,finalScriptSig:s,finalScriptWitness:a,porCommitment:l,witnessUtxo:y,bip32Derivation:v.makeConverter(n.InputTypes.BIP32_DERIVATION),redeemScript:w.makeConverter(n.InputTypes.REDEEM_SCRIPT),witnessScript:x.makeConverter(n.InputTypes.WITNESS_SCRIPT),checkPubkey:b.makeChecker([n.InputTypes.PARTIAL_SIG,n.InputTypes.BIP32_DERIVATION]),tapKeySig:f,tapScriptSig:g,tapLeafScript:p,tapBip32Derivation:_.makeConverter(n.InputTypes.TAP_BIP32_DERIVATION),tapInternalKey:E.makeConverter(n.InputTypes.TAP_INTERNAL_KEY),tapMerkleRoot:d};e.inputs=T;const I={bip32Derivation:v.makeConverter(n.OutputTypes.BIP32_DERIVATION),redeemScript:w.makeConverter(n.OutputTypes.REDEEM_SCRIPT),witnessScript:x.makeConverter(n.OutputTypes.WITNESS_SCRIPT),checkPubkey:b.makeChecker([n.OutputTypes.BIP32_DERIVATION]),tapBip32Derivation:_.makeConverter(n.OutputTypes.TAP_BIP32_DERIVATION),tapTree:m,tapInternalKey:E.makeConverter(n.OutputTypes.TAP_INTERNAL_KEY)};e.outputs=I},20859:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0});const i=r(1847);e.decode=function(t){if(t.key[0]!==i.InputTypes.FINAL_SCRIPTSIG)throw new Error("Decode Error: could not decode finalScriptSig with key 0x"+t.key.toString("hex"));return t.value},e.encode=function(t){return{key:n.from([i.InputTypes.FINAL_SCRIPTSIG]),value:t}},e.expected="Buffer",e.check=function(t){return n.isBuffer(t)},e.canAdd=function(t,e){return!!t&&!!e&&void 0===t.finalScriptSig}},8248:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0});const i=r(1847);e.decode=function(t){if(t.key[0]!==i.InputTypes.FINAL_SCRIPTWITNESS)throw new Error("Decode Error: could not decode finalScriptWitness with key 0x"+t.key.toString("hex"));return t.value},e.encode=function(t){return{key:n.from([i.InputTypes.FINAL_SCRIPTWITNESS]),value:t}},e.expected="Buffer",e.check=function(t){return n.isBuffer(t)},e.canAdd=function(t,e){return!!t&&!!e&&void 0===t.finalScriptWitness}},70537:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0});const i=r(1847);e.decode=function(t){if(t.key[0]!==i.InputTypes.NON_WITNESS_UTXO)throw new Error("Decode Error: could not decode nonWitnessUtxo with key 0x"+t.key.toString("hex"));return t.value},e.encode=function(t){return{key:n.from([i.InputTypes.NON_WITNESS_UTXO]),value:t}},e.expected="Buffer",e.check=function(t){return n.isBuffer(t)},e.canAdd=function(t,e){return!!t&&!!e&&void 0===t.nonWitnessUtxo}},61511:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0});const i=r(1847);e.decode=function(t){if(t.key[0]!==i.InputTypes.PARTIAL_SIG)throw new Error("Decode Error: could not decode partialSig with key 0x"+t.key.toString("hex"));if(34!==t.key.length&&66!==t.key.length||![2,3,4].includes(t.key[1]))throw new Error("Decode Error: partialSig has invalid pubkey in key 0x"+t.key.toString("hex"));return{pubkey:t.key.slice(1),signature:t.value}},e.encode=function(t){const e=n.from([i.InputTypes.PARTIAL_SIG]);return{key:n.concat([e,t.pubkey]),value:t.signature}},e.expected="{ pubkey: Buffer; signature: Buffer; }",e.check=function(t){return n.isBuffer(t.pubkey)&&n.isBuffer(t.signature)&&[33,65].includes(t.pubkey.length)&&[2,3,4].includes(t.pubkey[0])&&function(t){if(!n.isBuffer(t)||t.length<9)return!1;if(48!==t[0])return!1;if(t.length!==t[1]+3)return!1;if(2!==t[2])return!1;const e=t[3];if(e>33||e<1)return!1;if(2!==t[3+e+1])return!1;const r=t[3+e+2];return!(r>33||r<1)&&t.length===3+e+2+r+2}(t.signature)},e.canAddToArray=function(t,e,r){const n=e.pubkey.toString("hex");return!r.has(n)&&(r.add(n),0===t.filter((t=>t.pubkey.equals(e.pubkey))).length)}},65896:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0});const i=r(1847);e.decode=function(t){if(t.key[0]!==i.InputTypes.POR_COMMITMENT)throw new Error("Decode Error: could not decode porCommitment with key 0x"+t.key.toString("hex"));return t.value.toString("utf8")},e.encode=function(t){return{key:n.from([i.InputTypes.POR_COMMITMENT]),value:n.from(t,"utf8")}},e.expected="string",e.check=function(t){return"string"==typeof t},e.canAdd=function(t,e){return!!t&&!!e&&void 0===t.porCommitment}},91243:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0});const i=r(1847);e.decode=function(t){if(t.key[0]!==i.InputTypes.SIGHASH_TYPE)throw new Error("Decode Error: could not decode sighashType with key 0x"+t.key.toString("hex"));return t.value.readUInt32LE(0)},e.encode=function(t){const e=n.from([i.InputTypes.SIGHASH_TYPE]),r=n.allocUnsafe(4);return r.writeUInt32LE(t,0),{key:e,value:r}},e.expected="number",e.check=function(t){return"number"==typeof t},e.canAdd=function(t,e){return!!t&&!!e&&void 0===t.sighashType}},3530:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0});const i=r(1847);function o(t){return n.isBuffer(t)&&(64===t.length||65===t.length)}e.decode=function(t){if(t.key[0]!==i.InputTypes.TAP_KEY_SIG||1!==t.key.length)throw new Error("Decode Error: could not decode tapKeySig with key 0x"+t.key.toString("hex"));if(!o(t.value))throw new Error("Decode Error: tapKeySig not a valid 64-65-byte BIP340 signature");return t.value},e.encode=function(t){return{key:n.from([i.InputTypes.TAP_KEY_SIG]),value:t}},e.expected="Buffer",e.check=o,e.canAdd=function(t,e){return!!t&&!!e&&void 0===t.tapKeySig}},49265:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0});const i=r(1847);e.decode=function(t){if(t.key[0]!==i.InputTypes.TAP_LEAF_SCRIPT)throw new Error("Decode Error: could not decode tapLeafScript with key 0x"+t.key.toString("hex"));if((t.key.length-2)%32!=0)throw new Error("Decode Error: tapLeafScript has invalid control block in key 0x"+t.key.toString("hex"));const e=t.value[t.value.length-1];if((254&t.key[1])!==e)throw new Error("Decode Error: tapLeafScript bad leaf version in key 0x"+t.key.toString("hex"));const r=t.value.slice(0,-1);return{controlBlock:t.key.slice(1),script:r,leafVersion:e}},e.encode=function(t){const e=n.from([i.InputTypes.TAP_LEAF_SCRIPT]),r=n.from([t.leafVersion]);return{key:n.concat([e,t.controlBlock]),value:n.concat([t.script,r])}},e.expected="{ controlBlock: Buffer; leafVersion: number, script: Buffer; }",e.check=function(t){return n.isBuffer(t.controlBlock)&&(t.controlBlock.length-1)%32==0&&(254&t.controlBlock[0])===t.leafVersion&&n.isBuffer(t.script)},e.canAddToArray=function(t,e,r){const n=e.controlBlock.toString("hex");return!r.has(n)&&(r.add(n),0===t.filter((t=>t.controlBlock.equals(e.controlBlock))).length)}},23934:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0});const i=r(1847);function o(t){return n.isBuffer(t)&&32===t.length}e.decode=function(t){if(t.key[0]!==i.InputTypes.TAP_MERKLE_ROOT||1!==t.key.length)throw new Error("Decode Error: could not decode tapMerkleRoot with key 0x"+t.key.toString("hex"));if(!o(t.value))throw new Error("Decode Error: tapMerkleRoot not a 32-byte hash");return t.value},e.encode=function(t){return{key:n.from([i.InputTypes.TAP_MERKLE_ROOT]),value:t}},e.expected="Buffer",e.check=o,e.canAdd=function(t,e){return!!t&&!!e&&void 0===t.tapMerkleRoot}},50602:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0});const i=r(1847);e.decode=function(t){if(t.key[0]!==i.InputTypes.TAP_SCRIPT_SIG)throw new Error("Decode Error: could not decode tapScriptSig with key 0x"+t.key.toString("hex"));if(65!==t.key.length)throw new Error("Decode Error: tapScriptSig has invalid key 0x"+t.key.toString("hex"));if(64!==t.value.length&&65!==t.value.length)throw new Error("Decode Error: tapScriptSig has invalid signature in key 0x"+t.key.toString("hex"));return{pubkey:t.key.slice(1,33),leafHash:t.key.slice(33),signature:t.value}},e.encode=function(t){const e=n.from([i.InputTypes.TAP_SCRIPT_SIG]);return{key:n.concat([e,t.pubkey,t.leafHash]),value:t.signature}},e.expected="{ pubkey: Buffer; leafHash: Buffer; signature: Buffer; }",e.check=function(t){return n.isBuffer(t.pubkey)&&n.isBuffer(t.leafHash)&&n.isBuffer(t.signature)&&32===t.pubkey.length&&32===t.leafHash.length&&(64===t.signature.length||65===t.signature.length)},e.canAddToArray=function(t,e,r){const n=e.pubkey.toString("hex")+e.leafHash.toString("hex");return!r.has(n)&&(r.add(n),0===t.filter((t=>t.pubkey.equals(e.pubkey)&&t.leafHash.equals(e.leafHash))).length)}},82954:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0});const i=r(1847),o=r(19254),s=r(3493);e.decode=function(t){if(t.key[0]!==i.InputTypes.WITNESS_UTXO)throw new Error("Decode Error: could not decode witnessUtxo with key 0x"+t.key.toString("hex"));const e=o.readUInt64LE(t.value,0);let r=8;const n=s.decode(t.value,r);r+=s.encodingLength(n);const a=t.value.slice(r);if(a.length!==n)throw new Error("Decode Error: WITNESS_UTXO script is not proper length");return{script:a,value:e}},e.encode=function(t){const{script:e,value:r}=t,a=s.encodingLength(e.length),u=n.allocUnsafe(8+a+e.length);return o.writeUInt64LE(u,r,0),s.encode(e.length,u,8),e.copy(u,8+a),{key:n.from([i.InputTypes.WITNESS_UTXO]),value:u}},e.expected="{ script: Buffer; value: number; }",e.check=function(t){return n.isBuffer(t.script)&&"number"==typeof t.value},e.canAdd=function(t,e){return!!t&&!!e&&void 0===t.witnessUtxo}},6036:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0});const i=r(1847),o=r(3493);e.decode=function(t){if(t.key[0]!==i.OutputTypes.TAP_TREE||1!==t.key.length)throw new Error("Decode Error: could not decode tapTree with key 0x"+t.key.toString("hex"));let e=0;const r=[];for(;e[n.of(t.depth,t.leafVersion),o.encode(t.script.length),t.script])));return{key:e,value:n.concat(r)}},e.expected="{ leaves: [{ depth: number; leafVersion: number, script: Buffer; }] }",e.check=function(t){return Array.isArray(t.leaves)&&t.leaves.every((t=>t.depth>=0&&t.depth<=128&&(254&t.leafVersion)===t.leafVersion&&n.isBuffer(t.script)))},e.canAdd=function(t,e){return!!t&&!!e&&void 0===t.tapTree}},44799:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0});const i=t=>33===t.length&&[2,3].includes(t[0])||65===t.length&&4===t[0];e.makeConverter=function(t,e=i){return{decode:function(r){if(r.key[0]!==t)throw new Error("Decode Error: could not decode bip32Derivation with key 0x"+r.key.toString("hex"));const n=r.key.slice(1);if(!e(n))throw new Error("Decode Error: bip32Derivation has invalid pubkey in key 0x"+r.key.toString("hex"));if(r.value.length/4%1!=0)throw new Error("Decode Error: Input BIP32_DERIVATION value length should be multiple of 4");const i={masterFingerprint:r.value.slice(0,4),pubkey:n,path:"m"};for(const t of(o=r.value.length/4-1,[...Array(o).keys()])){const e=r.value.readUInt32LE(4*t+4),n=!!(2147483648&e),o=2147483647&e;i.path+="/"+o.toString(10)+(n?"'":"")}var o;return i},encode:function(e){const r=n.from([t]),i=n.concat([r,e.pubkey]),o=e.path.split("/"),s=n.allocUnsafe(4*o.length);e.masterFingerprint.copy(s,0);let a=4;return o.slice(1).forEach((t=>{const e="'"===t.slice(-1);let r=2147483647&parseInt(e?t.slice(0,-1):t,10);e&&(r+=2147483648),s.writeUInt32LE(r,a),a+=4})),{key:i,value:s}},check:function(t){return n.isBuffer(t.pubkey)&&n.isBuffer(t.masterFingerprint)&&"string"==typeof t.path&&e(t.pubkey)&&4===t.masterFingerprint.length},expected:"{ masterFingerprint: Buffer; pubkey: Buffer; path: string; }",canAddToArray:function(t,e,r){const n=e.pubkey.toString("hex");return!r.has(n)&&(r.add(n),0===t.filter((t=>t.pubkey.equals(e.pubkey))).length)}}}},99595:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.makeChecker=function(t){return function(e){let r;if(t.includes(e.key[0])&&(r=e.key.slice(1),33!==r.length&&65!==r.length||![2,3,4].includes(r[0])))throw new Error("Format Error: invalid pubkey in key 0x"+e.key.toString("hex"));return r}}},9705:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0}),e.makeConverter=function(t){return{decode:function(e){if(e.key[0]!==t)throw new Error("Decode Error: could not decode redeemScript with key 0x"+e.key.toString("hex"));return e.value},encode:function(e){return{key:n.from([t]),value:e}},check:function(t){return n.isBuffer(t)},expected:"Buffer",canAdd:function(t,e){return!!t&&!!e&&void 0===t.redeemScript}}}},17196:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0});const i=r(3493),o=r(44799),s=t=>32===t.length;e.makeConverter=function(t){const e=o.makeConverter(t,s);return{decode:function(t){const r=i.decode(t.value),n=i.encodingLength(r),o=e.decode({key:t.key,value:t.value.slice(n+32*r)}),s=new Array(r);for(let e=0,i=n;en.isBuffer(t)&&32===t.length))&&e.check(t)},expected:"{ masterFingerprint: Buffer; pubkey: Buffer; path: string; leafHashes: Buffer[]; }",canAddToArray:e.canAddToArray}}},29375:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0}),e.makeConverter=function(t){return{decode:function(e){if(e.key[0]!==t||1!==e.key.length)throw new Error("Decode Error: could not decode tapInternalKey with key 0x"+e.key.toString("hex"));if(32!==e.value.length)throw new Error("Decode Error: tapInternalKey not a 32-byte x-only pubkey");return e.value},encode:function(e){return{key:n.from([t]),value:e}},check:function(t){return n.isBuffer(t)&&32===t.length},expected:"Buffer",canAdd:function(t,e){return!!t&&!!e&&void 0===t.tapInternalKey}}}},66327:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0}),e.makeConverter=function(t){return{decode:function(e){if(e.key[0]!==t)throw new Error("Decode Error: could not decode witnessScript with key 0x"+e.key.toString("hex"));return e.value},encode:function(e){return{key:n.from([t]),value:e}},check:function(t){return n.isBuffer(t)},expected:"Buffer",canAdd:function(t,e){return!!t&&!!e&&void 0===t.witnessScript}}}},19254:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0});const i=r(3493);function o(t){const e=t.key.length,r=t.value.length,o=i.encodingLength(e),s=i.encodingLength(r),a=n.allocUnsafe(o+e+s+r);return i.encode(e,a,0),t.key.copy(a,o),i.encode(r,a,o+e),t.value.copy(a,o+e+s),a}function s(t,e){if("number"!=typeof t)throw new Error("cannot write a non-number as a number");if(t<0)throw new Error("specified a negative value for writing an unsigned value");if(t>e)throw new Error("RangeError: value out of range");if(Math.floor(t)!==t)throw new Error("value has a fractional component")}e.range=t=>[...Array(t).keys()],e.reverseBuffer=function(t){if(t.length<1)return t;let e=t.length-1,r=0;for(let n=0;n{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0});const i=9007199254740991;function o(t){if(t<0||t>i||t%1!=0)throw new RangeError("value out of range")}function s(t){return o(t),t<253?1:t<=65535?3:t<=4294967295?5:9}e.encode=function t(e,r,i){if(o(e),r||(r=n.allocUnsafe(s(e))),!n.isBuffer(r))throw new TypeError("buffer must be a Buffer instance");return i||(i=0),e<253?(r.writeUInt8(e,i),Object.assign(t,{bytes:1})):e<=65535?(r.writeUInt8(253,i),r.writeUInt16LE(e,i+1),Object.assign(t,{bytes:3})):e<=4294967295?(r.writeUInt8(254,i),r.writeUInt32LE(e,i+1),Object.assign(t,{bytes:5})):(r.writeUInt8(255,i),r.writeUInt32LE(e>>>0,i+1),r.writeUInt32LE(e/4294967296|0,i+5),Object.assign(t,{bytes:9})),r},e.decode=function t(e,r){if(!n.isBuffer(e))throw new TypeError("buffer must be a Buffer instance");r||(r=0);const i=e.readUInt8(r);if(i<253)return Object.assign(t,{bytes:1}),i;if(253===i)return Object.assign(t,{bytes:3}),e.readUInt16LE(r+1);if(254===i)return Object.assign(t,{bytes:5}),e.readUInt32LE(r+1);{Object.assign(t,{bytes:9});const n=e.readUInt32LE(r+1),i=4294967296*e.readUInt32LE(r+5)+n;return o(i),i}},e.encodingLength=s},12974:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0});const i=r(71528),o=r(19254),s=r(3493),a=r(1847);function u(t,e,r){if(!e.equals(n.from([r])))throw new Error(`Format Error: Invalid ${t} key: ${e.toString("hex")}`)}function c(t,{globalMapKeyVals:e,inputKeyVals:r,outputKeyVals:n}){const s={unsignedTx:t};let c=0;for(const t of e)switch(t.key[0]){case a.GlobalTypes.UNSIGNED_TX:if(u("global",t.key,a.GlobalTypes.UNSIGNED_TX),c>0)throw new Error("Format Error: GlobalMap has multiple UNSIGNED_TX");c++;break;case a.GlobalTypes.GLOBAL_XPUB:void 0===s.globalXpub&&(s.globalXpub=[]),s.globalXpub.push(i.globals.globalXpub.decode(t));break;default:s.unknownKeyVals||(s.unknownKeyVals=[]),s.unknownKeyVals.push(t)}const l=r.length,h=n.length,f=[],p=[];for(const t of o.range(l)){const e={};for(const n of r[t])switch(i.inputs.checkPubkey(n),n.key[0]){case a.InputTypes.NON_WITNESS_UTXO:if(u("input",n.key,a.InputTypes.NON_WITNESS_UTXO),void 0!==e.nonWitnessUtxo)throw new Error("Format Error: Input has multiple NON_WITNESS_UTXO");e.nonWitnessUtxo=i.inputs.nonWitnessUtxo.decode(n);break;case a.InputTypes.WITNESS_UTXO:if(u("input",n.key,a.InputTypes.WITNESS_UTXO),void 0!==e.witnessUtxo)throw new Error("Format Error: Input has multiple WITNESS_UTXO");e.witnessUtxo=i.inputs.witnessUtxo.decode(n);break;case a.InputTypes.PARTIAL_SIG:void 0===e.partialSig&&(e.partialSig=[]),e.partialSig.push(i.inputs.partialSig.decode(n));break;case a.InputTypes.SIGHASH_TYPE:if(u("input",n.key,a.InputTypes.SIGHASH_TYPE),void 0!==e.sighashType)throw new Error("Format Error: Input has multiple SIGHASH_TYPE");e.sighashType=i.inputs.sighashType.decode(n);break;case a.InputTypes.REDEEM_SCRIPT:if(u("input",n.key,a.InputTypes.REDEEM_SCRIPT),void 0!==e.redeemScript)throw new Error("Format Error: Input has multiple REDEEM_SCRIPT");e.redeemScript=i.inputs.redeemScript.decode(n);break;case a.InputTypes.WITNESS_SCRIPT:if(u("input",n.key,a.InputTypes.WITNESS_SCRIPT),void 0!==e.witnessScript)throw new Error("Format Error: Input has multiple WITNESS_SCRIPT");e.witnessScript=i.inputs.witnessScript.decode(n);break;case a.InputTypes.BIP32_DERIVATION:void 0===e.bip32Derivation&&(e.bip32Derivation=[]),e.bip32Derivation.push(i.inputs.bip32Derivation.decode(n));break;case a.InputTypes.FINAL_SCRIPTSIG:u("input",n.key,a.InputTypes.FINAL_SCRIPTSIG),e.finalScriptSig=i.inputs.finalScriptSig.decode(n);break;case a.InputTypes.FINAL_SCRIPTWITNESS:u("input",n.key,a.InputTypes.FINAL_SCRIPTWITNESS),e.finalScriptWitness=i.inputs.finalScriptWitness.decode(n);break;case a.InputTypes.POR_COMMITMENT:u("input",n.key,a.InputTypes.POR_COMMITMENT),e.porCommitment=i.inputs.porCommitment.decode(n);break;case a.InputTypes.TAP_KEY_SIG:u("input",n.key,a.InputTypes.TAP_KEY_SIG),e.tapKeySig=i.inputs.tapKeySig.decode(n);break;case a.InputTypes.TAP_SCRIPT_SIG:void 0===e.tapScriptSig&&(e.tapScriptSig=[]),e.tapScriptSig.push(i.inputs.tapScriptSig.decode(n));break;case a.InputTypes.TAP_LEAF_SCRIPT:void 0===e.tapLeafScript&&(e.tapLeafScript=[]),e.tapLeafScript.push(i.inputs.tapLeafScript.decode(n));break;case a.InputTypes.TAP_BIP32_DERIVATION:void 0===e.tapBip32Derivation&&(e.tapBip32Derivation=[]),e.tapBip32Derivation.push(i.inputs.tapBip32Derivation.decode(n));break;case a.InputTypes.TAP_INTERNAL_KEY:u("input",n.key,a.InputTypes.TAP_INTERNAL_KEY),e.tapInternalKey=i.inputs.tapInternalKey.decode(n);break;case a.InputTypes.TAP_MERKLE_ROOT:u("input",n.key,a.InputTypes.TAP_MERKLE_ROOT),e.tapMerkleRoot=i.inputs.tapMerkleRoot.decode(n);break;default:e.unknownKeyVals||(e.unknownKeyVals=[]),e.unknownKeyVals.push(n)}f.push(e)}for(const t of o.range(h)){const e={};for(const r of n[t])switch(i.outputs.checkPubkey(r),r.key[0]){case a.OutputTypes.REDEEM_SCRIPT:if(u("output",r.key,a.OutputTypes.REDEEM_SCRIPT),void 0!==e.redeemScript)throw new Error("Format Error: Output has multiple REDEEM_SCRIPT");e.redeemScript=i.outputs.redeemScript.decode(r);break;case a.OutputTypes.WITNESS_SCRIPT:if(u("output",r.key,a.OutputTypes.WITNESS_SCRIPT),void 0!==e.witnessScript)throw new Error("Format Error: Output has multiple WITNESS_SCRIPT");e.witnessScript=i.outputs.witnessScript.decode(r);break;case a.OutputTypes.BIP32_DERIVATION:void 0===e.bip32Derivation&&(e.bip32Derivation=[]),e.bip32Derivation.push(i.outputs.bip32Derivation.decode(r));break;case a.OutputTypes.TAP_INTERNAL_KEY:u("output",r.key,a.OutputTypes.TAP_INTERNAL_KEY),e.tapInternalKey=i.outputs.tapInternalKey.decode(r);break;case a.OutputTypes.TAP_TREE:u("output",r.key,a.OutputTypes.TAP_TREE),e.tapTree=i.outputs.tapTree.decode(r);break;case a.OutputTypes.TAP_BIP32_DERIVATION:void 0===e.tapBip32Derivation&&(e.tapBip32Derivation=[]),e.tapBip32Derivation.push(i.outputs.tapBip32Derivation.decode(r));break;default:e.unknownKeyVals||(e.unknownKeyVals=[]),e.unknownKeyVals.push(r)}p.push(e)}return{globalMap:s,inputs:f,outputs:p}}e.psbtFromBuffer=function(t,e){let r=0;function n(){const e=s.decode(t,r);r+=s.encodingLength(e);const n=t.slice(r,r+e);return r+=e,n}function i(){return{key:n(),value:n()}}function u(){if(r>=t.length)throw new Error("Format Error: Unexpected End of PSBT");const e=0===t.readUInt8(r);return e&&r++,e}if(1886610036!==function(){const e=t.readUInt32BE(r);return r+=4,e}())throw new Error("Format Error: Invalid Magic Number");if(255!==function(){const e=t.readUInt8(r);return r+=1,e}())throw new Error("Format Error: Magic Number must be followed by 0xff separator");const l=[],h={};for(;!u();){const t=i(),e=t.key.toString("hex");if(h[e])throw new Error("Format Error: Keys must be unique for global keymap: key "+e);h[e]=1,l.push(t)}const f=l.filter((t=>t.key[0]===a.GlobalTypes.UNSIGNED_TX));if(1!==f.length)throw new Error("Format Error: Only one UNSIGNED_TX allowed");const p=e(f[0].value),{inputCount:d,outputCount:g}=p.getInputOutputCounts(),y=[],m=[];for(const t of o.range(d)){const e={},r=[];for(;!u();){const n=i(),o=n.key.toString("hex");if(e[o])throw new Error("Format Error: Keys must be unique for each input: input index "+t+" key "+o);e[o]=1,r.push(n)}y.push(r)}for(const t of o.range(g)){const e={},r=[];for(;!u();){const n=i(),o=n.key.toString("hex");if(e[o])throw new Error("Format Error: Keys must be unique for each output: output index "+t+" key "+o);e[o]=1,r.push(n)}m.push(r)}return c(p,{globalMapKeyVals:l,inputKeyVals:y,outputKeyVals:m})},e.checkKeyBuffer=u,e.psbtFromKeyVals=c},36574:(t,e,r)=>{"use strict";function n(t){for(var r in t)e.hasOwnProperty(r)||(e[r]=t[r])}Object.defineProperty(e,"__esModule",{value:!0}),n(r(12974)),n(r(15312))},15312:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0});const i=r(71528),o=r(19254);e.psbtToBuffer=function({globalMap:t,inputs:e,outputs:r}){const{globalKeyVals:i,inputKeyVals:s,outputKeyVals:a}=u({globalMap:t,inputs:e,outputs:r}),c=o.keyValsToBuffer(i),l=t=>0===t.length?[n.from([0])]:t.map(o.keyValsToBuffer),h=l(s),f=l(a),p=n.allocUnsafe(5);return p.writeUIntBE(482972169471,0,5),n.concat([p,c].concat(h,f))};const s=(t,e)=>t.key.compare(e.key);function a(t,e){const r=new Set,n=Object.entries(t).reduce(((t,[n,i])=>{if("unknownKeyVals"===n)return t;const o=e[n];if(void 0===o)return t;const s=(Array.isArray(i)?i:[i]).map(o.encode);return s.map((t=>t.key.toString("hex"))).forEach((t=>{if(r.has(t))throw new Error("Serialize Error: Duplicate key: "+t);r.add(t)})),t.concat(s)}),[]),i=t.unknownKeyVals?t.unknownKeyVals.filter((t=>!r.has(t.key.toString("hex")))):[];return n.concat(i).sort(s)}function u({globalMap:t,inputs:e,outputs:r}){return{globalKeyVals:a(t,i.globals),inputKeyVals:e.map((t=>a(t,i.inputs))),outputKeyVals:r.map((t=>a(t,i.outputs)))}}e.psbtToKeyVals=u},95011:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0});const i=r(82190),o=r(36574),s=r(1847),a=r(96403);e.Psbt=class{constructor(t){this.inputs=[],this.outputs=[],this.globalMap={unsignedTx:t}}static fromBase64(t,e){const r=n.from(t,"base64");return this.fromBuffer(r,e)}static fromHex(t,e){const r=n.from(t,"hex");return this.fromBuffer(r,e)}static fromBuffer(t,e){const r=o.psbtFromBuffer(t,e),n=new this(r.globalMap.unsignedTx);return Object.assign(n,r),n}toBase64(){return this.toBuffer().toString("base64")}toHex(){return this.toBuffer().toString("hex")}toBuffer(){return o.psbtToBuffer(this)}updateGlobal(t){return a.updateGlobal(t,this.globalMap),this}updateInput(t,e){const r=a.checkForInput(this.inputs,t);return a.updateInput(e,r),this}updateOutput(t,e){const r=a.checkForOutput(this.outputs,t);return a.updateOutput(e,r),this}addUnknownKeyValToGlobal(t){return a.checkHasKey(t,this.globalMap.unknownKeyVals,a.getEnumLength(s.GlobalTypes)),this.globalMap.unknownKeyVals||(this.globalMap.unknownKeyVals=[]),this.globalMap.unknownKeyVals.push(t),this}addUnknownKeyValToInput(t,e){const r=a.checkForInput(this.inputs,t);return a.checkHasKey(e,r.unknownKeyVals,a.getEnumLength(s.InputTypes)),r.unknownKeyVals||(r.unknownKeyVals=[]),r.unknownKeyVals.push(e),this}addUnknownKeyValToOutput(t,e){const r=a.checkForOutput(this.outputs,t);return a.checkHasKey(e,r.unknownKeyVals,a.getEnumLength(s.OutputTypes)),r.unknownKeyVals||(r.unknownKeyVals=[]),r.unknownKeyVals.push(e),this}addInput(t){this.globalMap.unsignedTx.addInput(t),this.inputs.push({unknownKeyVals:[]});const e=t.unknownKeyVals||[],r=this.inputs.length-1;if(!Array.isArray(e))throw new Error("unknownKeyVals must be an Array");return e.forEach((t=>this.addUnknownKeyValToInput(r,t))),a.addInputAttributes(this.inputs,t),this}addOutput(t){this.globalMap.unsignedTx.addOutput(t),this.outputs.push({unknownKeyVals:[]});const e=t.unknownKeyVals||[],r=this.outputs.length-1;if(!Array.isArray(e))throw new Error("unknownKeyVals must be an Array");return e.forEach((t=>this.addUnknownKeyValToOutput(r,t))),a.addOutputAttributes(this.outputs,t),this}clearFinalizedInput(t){const e=a.checkForInput(this.inputs,t);a.inputCheckUncleanFinalized(t,e);for(const t of Object.keys(e))["witnessUtxo","nonWitnessUtxo","finalScriptSig","finalScriptWitness","unknownKeyVals"].includes(t)||delete e[t];return this}combine(...t){const e=i.combine([this].concat(t));return Object.assign(this,e),this}getTransaction(){return this.globalMap.unsignedTx.toBuffer()}}},1847:(t,e)=>{"use strict";var r,n,i;Object.defineProperty(e,"__esModule",{value:!0}),(i=e.GlobalTypes||(e.GlobalTypes={}))[i.UNSIGNED_TX=0]="UNSIGNED_TX",i[i.GLOBAL_XPUB=1]="GLOBAL_XPUB",e.GLOBAL_TYPE_NAMES=["unsignedTx","globalXpub"],(n=e.InputTypes||(e.InputTypes={}))[n.NON_WITNESS_UTXO=0]="NON_WITNESS_UTXO",n[n.WITNESS_UTXO=1]="WITNESS_UTXO",n[n.PARTIAL_SIG=2]="PARTIAL_SIG",n[n.SIGHASH_TYPE=3]="SIGHASH_TYPE",n[n.REDEEM_SCRIPT=4]="REDEEM_SCRIPT",n[n.WITNESS_SCRIPT=5]="WITNESS_SCRIPT",n[n.BIP32_DERIVATION=6]="BIP32_DERIVATION",n[n.FINAL_SCRIPTSIG=7]="FINAL_SCRIPTSIG",n[n.FINAL_SCRIPTWITNESS=8]="FINAL_SCRIPTWITNESS",n[n.POR_COMMITMENT=9]="POR_COMMITMENT",n[n.TAP_KEY_SIG=19]="TAP_KEY_SIG",n[n.TAP_SCRIPT_SIG=20]="TAP_SCRIPT_SIG",n[n.TAP_LEAF_SCRIPT=21]="TAP_LEAF_SCRIPT",n[n.TAP_BIP32_DERIVATION=22]="TAP_BIP32_DERIVATION",n[n.TAP_INTERNAL_KEY=23]="TAP_INTERNAL_KEY",n[n.TAP_MERKLE_ROOT=24]="TAP_MERKLE_ROOT",e.INPUT_TYPE_NAMES=["nonWitnessUtxo","witnessUtxo","partialSig","sighashType","redeemScript","witnessScript","bip32Derivation","finalScriptSig","finalScriptWitness","porCommitment","tapKeySig","tapScriptSig","tapLeafScript","tapBip32Derivation","tapInternalKey","tapMerkleRoot"],(r=e.OutputTypes||(e.OutputTypes={}))[r.REDEEM_SCRIPT=0]="REDEEM_SCRIPT",r[r.WITNESS_SCRIPT=1]="WITNESS_SCRIPT",r[r.BIP32_DERIVATION=2]="BIP32_DERIVATION",r[r.TAP_INTERNAL_KEY=5]="TAP_INTERNAL_KEY",r[r.TAP_TREE=6]="TAP_TREE",r[r.TAP_BIP32_DERIVATION=7]="TAP_BIP32_DERIVATION",e.OUTPUT_TYPE_NAMES=["redeemScript","witnessScript","bip32Derivation","tapInternalKey","tapTree","tapBip32Derivation"]},96403:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0});const i=r(71528);function o(t,e){const r=t[e];if(void 0===r)throw new Error(`No input #${e}`);return r}function s(t,e){const r=t[e];if(void 0===r)throw new Error(`No output #${e}`);return r}function a(t,e,r,n){throw new Error(`Data for ${t} key ${e} is incorrect: Expected ${r} and got ${JSON.stringify(n)}`)}function u(t){return(e,r)=>{for(const n of Object.keys(e)){const o=e[n],{canAdd:s,canAddToArray:u,check:c,expected:l}=i[t+"s"][n]||{};if(c)if(u){if(!Array.isArray(o)||r[n]&&!Array.isArray(r[n]))throw new Error(`Key type ${n} must be an array`);o.every(c)||a(t,n,l,o);const e=r[n]||[],i=new Set;if(!o.every((t=>u(e,t,i))))throw new Error("Can not add duplicate data to array");r[n]=e.concat(o)}else{if(c(o)||a(t,n,l,o),!s(r,o))throw new Error(`Can not add duplicate data to ${t}`);r[n]=o}}}}e.checkForInput=o,e.checkForOutput=s,e.checkHasKey=function(t,e,r){if(t.key[0]e.key.equals(t.key))).length)throw new Error(`Duplicate Key: ${t.key.toString("hex")}`)},e.getEnumLength=function(t){let e=0;return Object.keys(t).forEach((t=>{Number(isNaN(Number(t)))&&e++})),e},e.inputCheckUncleanFinalized=function(t,e){let r=!1;if(e.nonWitnessUtxo||e.witnessUtxo){const t=!!e.redeemScript,n=!!e.witnessScript,i=!t||!!e.finalScriptSig,o=!n||!!e.finalScriptWitness,s=!!e.finalScriptSig||!!e.finalScriptWitness;r=i&&o&&s}if(!1===r)throw new Error(`Input #${t} has too much or too little data to clean`)},e.updateGlobal=u("global"),e.updateInput=u("input"),e.updateOutput=u("output"),e.addInputAttributes=function(t,r){const n=o(t,t.length-1);e.updateInput(r,n)},e.addOutputAttributes=function(t,r){const n=s(t,t.length-1);e.updateOutput(r,n)},e.defaultVersionSetter=function(t,e){if(!n.isBuffer(e)||e.length<4)throw new Error("Set Version: Invalid Transaction");return e.writeUInt32LE(t,0),e},e.defaultLocktimeSetter=function(t,e){if(!n.isBuffer(e)||e.length<4)throw new Error("Set Locktime: Invalid Transaction");return e.writeUInt32LE(t,e.length-4),e}},30246:t=>{const e=2147483648;var r=function(t){if(!Array.isArray(t))throw new Error("Input must be an Array");if(0===t.length)throw new Error("Path must contain at least one level");for(var e=0;e=e)throw new Error("Invalid child index");if("h"===a[2]||"H"===a[2]||"'"===a[2])o[s]+=e;else if(0!=a[2].length)throw new Error("Invalid modifier")}return new r(o)},r.prototype.toPathArray=function(){return this.path},r.prototype.toString=function(t,r){for(var n=new Array(this.path.length),i=0;i"},t.exports=r},84090:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0});const i=r(56903),o=r(58334),s=r(95892),a=r(2401),u=r(37174),c=a.BufferN(32),l=a.compile({wif:a.UInt8,bip32:{public:a.UInt32,private:a.UInt32}}),h={messagePrefix:"Bitcoin Signed Message:\n",bech32:"bc",bip32:{public:76067358,private:76066276},pubKeyHash:0,scriptHash:5,wif:128},f=2147483648,p=Math.pow(2,31)-1;function d(t){return a.String(t)&&null!==t.match(/^(m\/)?(\d+'?\/)*\d+'?$/)}function g(t){return a.UInt32(t)&&t<=p}class y{constructor(t,e,r,n,i=0,o=0,s=0){this.__D=t,this.__Q=e,this.chainCode=r,this.network=n,this.__DEPTH=i,this.__INDEX=o,this.__PARENT_FINGERPRINT=s,a(l,n),this.lowR=!1}get depth(){return this.__DEPTH}get index(){return this.__INDEX}get parentFingerprint(){return this.__PARENT_FINGERPRINT}get publicKey(){return void 0===this.__Q&&(this.__Q=s.pointFromScalar(this.__D,!0)),this.__Q}get privateKey(){return this.__D}get identifier(){return i.hash160(this.publicKey)}get fingerprint(){return this.identifier.slice(0,4)}get compressed(){return!0}isNeutered(){return void 0===this.__D}neutered(){return b(this.publicKey,this.chainCode,this.network,this.depth,this.index,this.parentFingerprint)}toBase58(){const t=this.network,e=this.isNeutered()?t.bip32.public:t.bip32.private,r=n.allocUnsafe(78);return r.writeUInt32BE(e,0),r.writeUInt8(this.depth,4),r.writeUInt32BE(this.parentFingerprint,5),r.writeUInt32BE(this.index,9),this.chainCode.copy(r,13),this.isNeutered()?this.publicKey.copy(r,45):(r.writeUInt8(0,45),this.privateKey.copy(r,46)),o.encode(r)}toWIF(){if(!this.privateKey)throw new TypeError("Missing private key");return u.encode(this.network.wif,this.privateKey,!0)}derive(t){a(a.UInt32,t);const e=t>=f,r=n.allocUnsafe(37);if(e){if(this.isNeutered())throw new TypeError("Missing private key for hardened child key");r[0]=0,this.privateKey.copy(r,1),r.writeUInt32BE(t,33)}else this.publicKey.copy(r,0),r.writeUInt32BE(t,33);const o=i.hmacSHA512(this.chainCode,r),u=o.slice(0,32),c=o.slice(32);if(!s.isPrivate(u))return this.derive(t+1);let l;if(this.isNeutered()){const e=s.pointAddScalar(this.publicKey,u,!0);if(null===e)return this.derive(t+1);l=b(e,c,this.network,this.depth+1,t,this.fingerprint.readUInt32BE(0))}else{const e=s.privateAdd(this.privateKey,u);if(null==e)return this.derive(t+1);l=v(e,c,this.network,this.depth+1,t,this.fingerprint.readUInt32BE(0))}return l}deriveHardened(t){return a(g,t),this.derive(t+f)}derivePath(t){a(d,t);let e=t.split("/");if("m"===e[0]){if(this.parentFingerprint)throw new TypeError("Expected master, got child");e=e.slice(1)}return e.reduce(((t,e)=>{let r;return"'"===e.slice(-1)?(r=parseInt(e.slice(0,-1),10),t.deriveHardened(r)):(r=parseInt(e,10),t.derive(r))}),this)}sign(t,e){if(!this.privateKey)throw new Error("Missing private key");if(void 0===e&&(e=this.lowR),!1===e)return s.sign(t,this.privateKey);{let e=s.sign(t,this.privateKey);const r=n.alloc(32,0);let i=0;for(;e[0]>127;)i++,r.writeUIntLE(i,0,6),e=s.signWithEntropy(t,this.privateKey,r);return e}}verify(t,e){return s.verify(t,this.publicKey,e)}}function m(t,e,r){return v(t,e,r)}function v(t,e,r,n,i,o){if(a({privateKey:c,chainCode:c},{privateKey:t,chainCode:e}),r=r||h,!s.isPrivate(t))throw new TypeError("Private key not in range [1, n)");return new y(t,void 0,e,r,n,i,o)}function b(t,e,r,n,i,o){if(a({publicKey:a.BufferN(33),chainCode:c},{publicKey:t,chainCode:e}),r=r||h,!s.isPoint(t))throw new TypeError("Point is not on the curve");return new y(void 0,t,e,r,n,i,o)}e.fromBase58=function(t,e){const r=o.decode(t);if(78!==r.length)throw new TypeError("Invalid buffer length");e=e||h;const n=r.readUInt32BE(0);if(n!==e.bip32.private&&n!==e.bip32.public)throw new TypeError("Invalid network version");const i=r[4],s=r.readUInt32BE(5);if(0===i&&0!==s)throw new TypeError("Invalid parent fingerprint");const a=r.readUInt32BE(9);if(0===i&&0!==a)throw new TypeError("Invalid index");const u=r.slice(13,45);let c;if(n===e.bip32.private){if(0!==r.readUInt8(45))throw new TypeError("Invalid private key");c=v(r.slice(46,78),u,e,i,a,s)}else c=b(r.slice(45,78),u,e,i,a,s);return c},e.fromPrivateKey=m,e.fromPublicKey=function(t,e,r){return b(t,e,r)},e.fromSeed=function(t,e){if(a(a.Buffer,t),t.length<16)throw new TypeError("Seed should be at least 128 bits");if(t.length>64)throw new TypeError("Seed should be at most 512 bits");e=e||h;const r=i.hmacSHA512(n.from("Bitcoin seed","utf8"),t);return m(r.slice(0,32),r.slice(32),e)}},56903:(t,e,r)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});const n=r(23482),i=r(58355);e.hash160=function(t){const e=n("sha256").update(t).digest();try{return n("rmd160").update(e).digest()}catch(t){return n("ripemd160").update(e).digest()}},e.hmacSHA512=function(t,e){return i("sha512",t).update(e).digest()}},37786:(t,e,r)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=r(84090);e.fromSeed=n.fromSeed,e.fromBase58=n.fromBase58,e.fromPublicKey=n.fromPublicKey,e.fromPrivateKey=n.fromPrivateKey},42314:(t,e,r)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});const n={};let i;e.wordlists=n,e._default=i;try{e._default=i=r(Object(function(){var t=new Error("Cannot find module './wordlists/czech.json'");throw t.code="MODULE_NOT_FOUND",t}())),n.czech=i}catch(t){}try{e._default=i=r(Object(function(){var t=new Error("Cannot find module './wordlists/chinese_simplified.json'");throw t.code="MODULE_NOT_FOUND",t}())),n.chinese_simplified=i}catch(t){}try{e._default=i=r(Object(function(){var t=new Error("Cannot find module './wordlists/chinese_traditional.json'");throw t.code="MODULE_NOT_FOUND",t}())),n.chinese_traditional=i}catch(t){}try{e._default=i=r(Object(function(){var t=new Error("Cannot find module './wordlists/korean.json'");throw t.code="MODULE_NOT_FOUND",t}())),n.korean=i}catch(t){}try{e._default=i=r(Object(function(){var t=new Error("Cannot find module './wordlists/french.json'");throw t.code="MODULE_NOT_FOUND",t}())),n.french=i}catch(t){}try{e._default=i=r(Object(function(){var t=new Error("Cannot find module './wordlists/italian.json'");throw t.code="MODULE_NOT_FOUND",t}())),n.italian=i}catch(t){}try{e._default=i=r(Object(function(){var t=new Error("Cannot find module './wordlists/spanish.json'");throw t.code="MODULE_NOT_FOUND",t}())),n.spanish=i}catch(t){}try{e._default=i=r(Object(function(){var t=new Error("Cannot find module './wordlists/japanese.json'");throw t.code="MODULE_NOT_FOUND",t}())),n.japanese=i,n.JA=i}catch(t){}try{e._default=i=r(Object(function(){var t=new Error("Cannot find module './wordlists/portuguese.json'");throw t.code="MODULE_NOT_FOUND",t}())),n.portuguese=i}catch(t){}try{e._default=i=r(24573),n.english=i,n.EN=i}catch(t){}},2153:(t,e,r)=>{"use strict";r(48764).Buffer;r(23061),r(86262),r(29023),r(98089);r(42314)._default;r(42314).wordlists},93027:(t,e,r)=>{var n=r(89509).Buffer;t.exports={check:function(t){if(t.length<8)return!1;if(t.length>72)return!1;if(48!==t[0])return!1;if(t[1]!==t.length-2)return!1;if(2!==t[2])return!1;var e=t[3];if(0===e)return!1;if(5+e>=t.length)return!1;if(2!==t[4+e])return!1;var r=t[5+e];return!(0===r||6+e+r!==t.length||128&t[4]||e>1&&0===t[4]&&!(128&t[5])||128&t[e+6]||r>1&&0===t[e+6]&&!(128&t[e+7]))},decode:function(t){if(t.length<8)throw new Error("DER sequence length is too short");if(t.length>72)throw new Error("DER sequence length is too long");if(48!==t[0])throw new Error("Expected DER sequence");if(t[1]!==t.length-2)throw new Error("DER sequence length is invalid");if(2!==t[2])throw new Error("Expected DER integer");var e=t[3];if(0===e)throw new Error("R length is zero");if(5+e>=t.length)throw new Error("R length is too long");if(2!==t[4+e])throw new Error("Expected DER integer (2)");var r=t[5+e];if(0===r)throw new Error("S length is zero");if(6+e+r!==t.length)throw new Error("S length is invalid");if(128&t[4])throw new Error("R value is negative");if(e>1&&0===t[4]&&!(128&t[5]))throw new Error("R value excessively padded");if(128&t[e+6])throw new Error("S value is negative");if(r>1&&0===t[e+6]&&!(128&t[e+7]))throw new Error("S value excessively padded");return{r:t.slice(4,4+e),s:t.slice(6+e)}},encode:function(t,e){var r=t.length,i=e.length;if(0===r)throw new Error("R length is zero");if(0===i)throw new Error("S length is zero");if(r>33)throw new Error("R length is too long");if(i>33)throw new Error("S length is too long");if(128&t[0])throw new Error("R value is negative");if(128&e[0])throw new Error("S value is negative");if(r>1&&0===t[0]&&!(128&t[1]))throw new Error("R value excessively padded");if(i>1&&0===e[0]&&!(128&e[1]))throw new Error("S value excessively padded");var o=n.allocUnsafe(6+r+i);return o[0]=48,o[1]=o.length-2,o[2]=2,o[3]=t.length,t.copy(o,4),o[4+r]=2,o[5+r]=e.length,e.copy(o,6+r),o}}},42920:(t,e,r)=>{var n=r(39991),i={};for(var o in n)i[n[o]]=o;t.exports=i},72033:t=>{"use strict";for(var e="qpzry9x8gf2tvdw0s3jn54khce6mua7l",r={},n=0;n<32;n++){var i=e.charAt(n);if(void 0!==r[i])throw new TypeError(i+" is ambiguous");r[i]=n}function o(t){var e=t>>25;return(33554431&t)<<5^996825010&-(e>>0&1)^642813549&-(e>>1&1)^513874426&-(e>>2&1)^1027748829&-(e>>3&1)^705979059&-(e>>4&1)}function s(t){for(var e=1,r=0;r126)return"Invalid prefix ("+t+")";e=o(e)^n>>5}for(e=o(e),r=0;re)return"Exceeds length limit";var n=t.toLowerCase(),i=t.toUpperCase();if(t!==n&&t!==i)return"Mixed-case string "+t;var a=(t=n).lastIndexOf("1");if(-1===a)return"No separator character for "+t;if(0===a)return"Missing prefix for "+t;var u=t.slice(0,a),c=t.slice(a+1);if(c.length<6)return"Data too short";var l=s(u);if("string"==typeof l)return l;for(var h=[],f=0;f=c.length||h.push(d)}return 1!==l?"Invalid checksum for "+t:{prefix:u,words:h}}function u(t,e,r,n){for(var i=0,o=0,s=(1<=r;)o-=r,a.push(i>>o&s);if(n)o>0&&a.push(i<=e)return"Excess padding";if(i<n)throw new TypeError("Exceeds length limit");var i=s(t=t.toLowerCase());if("string"==typeof i)throw new Error(i);for(var a=t+"1",u=0;u>5!=0)throw new Error("Non 5-bit word");i=o(i)^c,a+=e.charAt(c)}for(u=0;u<6;++u)i=o(i);for(i^=1,u=0;u<6;++u)a+=e.charAt(i>>5*(5-u)&31);return a},toWordsUnsafe:function(t){var e=u(t,8,5,!0);if(Array.isArray(e))return e},toWords:function(t){var e=u(t,8,5,!0);if(Array.isArray(e))return e;throw new Error(e)},fromWordsUnsafe:function(t){var e=u(t,5,8,!1);if(Array.isArray(e))return e},fromWords:function(t){var e=u(t,5,8,!1);if(Array.isArray(e))return e;throw new Error(e)}}},95488:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0});const i=r(74378),o=r(84972),s=r(73357),a=r(41838),u=r(72033),c=r(58334),l=r(2401);function h(t){const e=c.decode(t);if(e.length<21)throw new TypeError(t+" is too short");if(e.length>21)throw new TypeError(t+" is too long");return{version:e.readUInt8(0),hash:e.slice(1)}}function f(t){const e=u.decode(t),r=u.fromWords(e.words.slice(1));return{version:e.words[0],prefix:e.prefix,data:n.from(r)}}e.fromBase58Check=h,e.fromBech32=f,e.toBase58Check=function(t,e){l(a.tuple(a.Hash160bit,a.UInt8),arguments);const r=n.allocUnsafe(21);return r.writeUInt8(e,0),t.copy(r,1),c.encode(r)},e.toBech32=function(t,e,r){const n=u.toWords(t);return n.unshift(e),u.encode(r,n)},e.fromOutputScript=function(t,e){e=e||i.bitcoin;try{return o.p2pkh({output:t,network:e}).address}catch(t){}try{return o.p2sh({output:t,network:e}).address}catch(t){}try{return o.p2wpkh({output:t,network:e}).address}catch(t){}try{return o.p2wsh({output:t,network:e}).address}catch(t){}throw new Error(s.toASM(t)+" has no matching Address")},e.toOutputScript=function(t,e){let r,n;e=e||i.bitcoin;try{r=h(t)}catch(t){}if(r){if(r.version===e.pubKeyHash)return o.p2pkh({hash:r.hash}).output;if(r.version===e.scriptHash)return o.p2sh({hash:r.hash}).output}else{try{n=f(t)}catch(t){}if(n){if(n.prefix!==e.bech32)throw new Error(t+" has an invalid prefix");if(0===n.version){if(20===n.data.length)return o.p2wpkh({hash:n.data}).output;if(32===n.data.length)return o.p2wsh({hash:n.data}).output}}}throw new Error(t+" has no matching Script")}},87949:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0});const i=r(9357),o=r(5525),s=r(82737),a=r(41838),u=r(63673),c=r(2401),l=r(57795),h=new TypeError("Cannot compute merkle root for zero transactions"),f=new TypeError("Cannot compute witness commit for non-segwit block");class p{constructor(){this.version=1,this.prevHash=void 0,this.merkleRoot=void 0,this.timestamp=0,this.witnessCommit=void 0,this.bits=0,this.nonce=0,this.transactions=void 0}static fromBuffer(t){if(t.length<80)throw new Error("Buffer too small (< 80 bytes)");const e=new i.BufferReader(t),r=new p;if(r.version=e.readInt32(),r.prevHash=e.readSlice(32),r.merkleRoot=e.readSlice(32),r.timestamp=e.readUInt32(),r.bits=e.readUInt32(),r.nonce=e.readUInt32(),80===t.length)return r;const n=()=>{const t=s.Transaction.fromBuffer(e.buffer.slice(e.offset),!0);return e.offset+=t.byteLength(),t},o=e.readVarInt();r.transactions=[];for(let t=0;t>24)-3,r=8388607&t,i=n.alloc(32,0);return i.writeUIntBE(r,29-e,3),i}static calculateMerkleRoot(t,e){if(c([{getHash:a.Function}],t),0===t.length)throw h;if(e&&!d(t))throw f;const r=t.map((t=>t.getHash(e))),i=u(r,o.hash256);return e?o.hash256(n.concat([i,t[0].ins[0].witness[0]])):i}getWitnessCommit(){if(!d(this.transactions))return null;const t=this.transactions[0].outs.filter((t=>t.script.slice(0,6).equals(n.from("6a24aa21a9ed","hex")))).map((t=>t.script.slice(6,38)));if(0===t.length)return null;const e=t[t.length-1];return e instanceof n&&32===e.length?e:null}hasWitnessCommit(){return this.witnessCommit instanceof n&&32===this.witnessCommit.length||null!==this.getWitnessCommit()}hasWitness(){return(t=this.transactions)instanceof Array&&t.some((t=>"object"==typeof t&&t.ins instanceof Array&&t.ins.some((t=>"object"==typeof t&&t.witness instanceof Array&&t.witness.length>0))));var t}weight(){return 3*this.byteLength(!1,!1)+this.byteLength(!1,!0)}byteLength(t,e=!0){return t||!this.transactions?80:80+l.encodingLength(this.transactions.length)+this.transactions.reduce(((t,r)=>t+r.byteLength(e)),0)}getHash(){return o.hash256(this.toBuffer(!0))}getId(){return i.reverseBuffer(this.getHash()).toString("hex")}getUTCDate(){const t=new Date(0);return t.setUTCSeconds(this.timestamp),t}toBuffer(t){const e=n.allocUnsafe(this.byteLength(t)),r=new i.BufferWriter(e);return r.writeInt32(this.version),r.writeSlice(this.prevHash),r.writeSlice(this.merkleRoot),r.writeUInt32(this.timestamp),r.writeUInt32(this.bits),r.writeUInt32(this.nonce),t||!this.transactions||(l.encode(this.transactions.length,e,r.offset),r.offset+=l.encode.bytes,this.transactions.forEach((t=>{const n=t.byteLength();t.toBuffer(e,r.offset),r.offset+=n}))),e}toHex(t){return this.toBuffer(t).toString("hex")}checkTxRoots(){const t=this.hasWitnessCommit();return!(!t&&this.hasWitness())&&this.__checkMerkleRoot()&&(!t||this.__checkWitnessCommit())}checkProofOfWork(){const t=i.reverseBuffer(this.getHash()),e=p.calculateTarget(this.bits);return t.compare(e)<=0}__checkMerkleRoot(){if(!this.transactions)throw h;const t=p.calculateMerkleRoot(this.transactions);return 0===this.merkleRoot.compare(t)}__checkWitnessCommit(){if(!this.transactions)throw h;if(!this.hasWitnessCommit())throw f;const t=p.calculateMerkleRoot(this.transactions,!0);return 0===this.witnessCommit.compare(t)}}function d(t){return t instanceof Array&&t[0]&&t[0].ins&&t[0].ins instanceof Array&&t[0].ins[0]&&t[0].ins[0].witness&&t[0].ins[0].witness instanceof Array&&t[0].ins[0].witness.length>0}e.Block=p},9357:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0});const i=r(41838),o=r(2401),s=r(57795);function a(t,e){if("number"!=typeof t)throw new Error("cannot write a non-number as a number");if(t<0)throw new Error("specified a negative value for writing an unsigned value");if(t>e)throw new Error("RangeError: value out of range");if(Math.floor(t)!==t)throw new Error("value has a fractional component")}function u(t,e){const r=t.readUInt32LE(e);let n=t.readUInt32LE(e+4);return n*=4294967296,a(n+r,9007199254740991),n+r}function c(t,e,r){return a(e,9007199254740991),t.writeInt32LE(-1&e,r),t.writeUInt32LE(Math.floor(e/4294967296),r+4),r+8}e.readUInt64LE=u,e.writeUInt64LE=c,e.reverseBuffer=function(t){if(t.length<1)return t;let e=t.length-1,r=0;for(let n=0;nthis.writeVarSlice(t)))}},e.BufferReader=class{constructor(t,e=0){this.buffer=t,this.offset=e,o(i.tuple(i.Buffer,i.UInt32),[t,e])}readUInt8(){const t=this.buffer.readUInt8(this.offset);return this.offset++,t}readInt32(){const t=this.buffer.readInt32LE(this.offset);return this.offset+=4,t}readUInt32(){const t=this.buffer.readUInt32LE(this.offset);return this.offset+=4,t}readUInt64(){const t=u(this.buffer,this.offset);return this.offset+=8,t}readVarInt(){const t=s.decode(this.buffer,this.offset);return this.offset+=s.decode.bytes,t}readSlice(t){if(this.buffer.length{"use strict";Object.defineProperty(e,"__esModule",{value:!0});const n=r(73357),i=r(18800),o=r(32334),s=r(7114),a=r(43645),u=r(16484),c=r(59920),l=r(78529),h=r(92476),f={P2MS:"multisig",NONSTANDARD:"nonstandard",NULLDATA:"nulldata",P2PK:"pubkey",P2PKH:"pubkeyhash",P2SH:"scripthash",P2WPKH:"witnesspubkeyhash",P2WSH:"witnessscripthash",WITNESS_COMMITMENT:"witnesscommitment"};e.types=f,e.output=function(t){if(l.output.check(t))return f.P2WPKH;if(h.output.check(t))return f.P2WSH;if(a.output.check(t))return f.P2PKH;if(u.output.check(t))return f.P2SH;const e=n.decompile(t);if(!e)throw new TypeError("Invalid script");return i.output.check(e)?f.P2MS:s.output.check(e)?f.P2PK:c.output.check(e)?f.WITNESS_COMMITMENT:o.output.check(e)?f.NULLDATA:f.NONSTANDARD},e.input=function(t,e){const r=n.decompile(t);if(!r)throw new TypeError("Invalid script");return a.input.check(r)?f.P2PKH:u.input.check(r,e)?f.P2SH:i.input.check(r,e)?f.P2MS:s.input.check(r)?f.P2PK:f.NONSTANDARD},e.witness=function(t,e){const r=n.decompile(t);if(!r)throw new TypeError("Invalid script");return l.input.check(r)?f.P2WPKH:h.input.check(r,e)?f.P2WSH:f.NONSTANDARD}},5525:(t,e,r)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});const n=r(23482);function i(t){try{return n("rmd160").update(t).digest()}catch(e){return n("ripemd160").update(t).digest()}}function o(t){return n("sha256").update(t).digest()}e.ripemd160=i,e.sha1=function(t){return n("sha1").update(t).digest()},e.sha256=o,e.hash160=function(t){return i(o(t))},e.hash256=function(t){return o(o(t))}},44018:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0});const i=r(74378),o=r(41838),s=r(95892),a=r(61798),u=r(2401),c=r(37174),l=u.maybe(u.compile({compressed:o.maybe(o.Boolean),network:o.maybe(o.Network)}));class h{constructor(t,e,r){this.__D=t,this.__Q=e,this.lowR=!1,void 0===r&&(r={}),this.compressed=void 0===r.compressed||r.compressed,this.network=r.network||i.bitcoin,void 0!==e&&(this.__Q=s.pointCompress(e,this.compressed))}get privateKey(){return this.__D}get publicKey(){return this.__Q||(this.__Q=s.pointFromScalar(this.__D,this.compressed)),this.__Q}toWIF(){if(!this.__D)throw new Error("Missing private key");return c.encode(this.network.wif,this.__D,this.compressed)}sign(t,e){if(!this.__D)throw new Error("Missing private key");if(void 0===e&&(e=this.lowR),!1===e)return s.sign(t,this.__D);{let e=s.sign(t,this.__D);const r=n.alloc(32,0);let i=0;for(;e[0]>127;)i++,r.writeUIntLE(i,0,6),e=s.signWithEntropy(t,this.__D,r);return e}}verify(t,e){return s.verify(t,this.publicKey,e)}}function f(t,e){if(u(o.Buffer256bit,t),!s.isPrivate(t))throw new TypeError("Private key not in range [1, n)");return u(l,e),new h(t,void 0,e)}e.fromPrivateKey=f,e.fromPublicKey=function(t,e){return u(s.isPoint,t),u(l,e),new h(void 0,t,e)},e.fromWIF=function(t,e){const r=c.decode(t),n=r.version;if(o.Array(e)){if(!(e=e.filter((t=>n===t.wif)).pop()))throw new Error("Unknown network version")}else if(e=e||i.bitcoin,n!==e.wif)throw new Error("Invalid network version");return f(r.privateKey,{compressed:r.compressed,network:e})},e.makeRandom=function(t){u(l,t),void 0===t&&(t={});const e=t.rng||a;let r;do{r=e(32),u(o.Buffer256bit,r)}while(!s.isPrivate(r));return f(r,t)}},17656:(t,e,r)=>{"use strict";r(37786),r(95488);const n=r(5525);e.eL=n,r(44018),r(74378),r(84972),r(73357),r(87949).Block,r(99930).Psbt,r(73357).OPS,r(82737).Transaction,r(31473).TransactionBuilder},74378:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.bitcoin={messagePrefix:"Bitcoin Signed Message:\n",bech32:"bc",bip32:{public:76067358,private:76066276},pubKeyHash:0,scriptHash:5,wif:128},e.regtest={messagePrefix:"Bitcoin Signed Message:\n",bech32:"bcrt",bip32:{public:70617039,private:70615956},pubKeyHash:111,scriptHash:196,wif:239},e.testnet={messagePrefix:"Bitcoin Signed Message:\n",bech32:"tb",bip32:{public:70617039,private:70615956},pubKeyHash:111,scriptHash:196,wif:239}},36648:(t,e,r)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});const n=r(74378),i=r(73357),o=r(52691),s=r(2401),a=i.OPS;e.p2data=function(t,e){if(!t.data&&!t.output)throw new TypeError("Not enough data");e=Object.assign({validate:!0},e||{}),s({network:s.maybe(s.Object),output:s.maybe(s.Buffer),data:s.maybe(s.arrayOf(s.Buffer))},t);const r={name:"embed",network:t.network||n.bitcoin};if(o.prop(r,"output",(()=>{if(t.data)return i.compile([a.OP_RETURN].concat(t.data))})),o.prop(r,"data",(()=>{if(t.output)return i.decompile(t.output).slice(1)})),e.validate&&t.output){const e=i.decompile(t.output);if(e[0]!==a.OP_RETURN)throw new TypeError("Output is invalid");if(!e.slice(1).every(s.Buffer))throw new TypeError("Output is invalid");if(t.data&&!function(t,e){return t.length===e.length&&t.every(((t,r)=>t.equals(e[r])))}(t.data,r.data))throw new TypeError("Data mismatch")}return Object.assign(r,t)}},84972:(t,e,r)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});const n=r(36648);e.embed=n.p2data;const i=r(98793);e.p2ms=i.p2ms;const o=r(97759);e.p2pk=o.p2pk;const s=r(44483);e.p2pkh=s.p2pkh;const a=r(21160);e.p2sh=a.p2sh;const u=r(18810);e.p2wpkh=u.p2wpkh;const c=r(82401);e.p2wsh=c.p2wsh},52691:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.prop=function(t,e,r){Object.defineProperty(t,e,{configurable:!0,enumerable:!0,get(){const t=r.call(this);return this[e]=t,t},set(t){Object.defineProperty(this,e,{configurable:!0,enumerable:!0,value:t,writable:!0})}})},e.value=function(t){let e;return()=>(void 0!==e||(e=t()),e)}},98793:(t,e,r)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});const n=r(74378),i=r(73357),o=r(52691),s=i.OPS,a=r(2401),u=r(95892),c=s.OP_RESERVED;function l(t,e){return t.length===e.length&&t.every(((t,r)=>t.equals(e[r])))}e.p2ms=function(t,e){if(!(t.input||t.output||t.pubkeys&&void 0!==t.m||t.signatures))throw new TypeError("Not enough data");function r(t){return i.isCanonicalScriptSignature(t)||void 0!==(e.allowIncomplete&&t===s.OP_0)}e=Object.assign({validate:!0},e||{}),a({network:a.maybe(a.Object),m:a.maybe(a.Number),n:a.maybe(a.Number),output:a.maybe(a.Buffer),pubkeys:a.maybe(a.arrayOf(u.isPoint)),signatures:a.maybe(a.arrayOf(r)),input:a.maybe(a.Buffer)},t);const h={network:t.network||n.bitcoin};let f=[],p=!1;function d(t){p||(p=!0,f=i.decompile(t),h.m=f[0]-c,h.n=f[f.length-2]-c,h.pubkeys=f.slice(1,-2))}if(o.prop(h,"output",(()=>{if(t.m&&h.n&&t.pubkeys)return i.compile([].concat(c+t.m,t.pubkeys,c+h.n,s.OP_CHECKMULTISIG))})),o.prop(h,"m",(()=>{if(h.output)return d(h.output),h.m})),o.prop(h,"n",(()=>{if(h.pubkeys)return h.pubkeys.length})),o.prop(h,"pubkeys",(()=>{if(t.output)return d(t.output),h.pubkeys})),o.prop(h,"signatures",(()=>{if(t.input)return i.decompile(t.input).slice(1)})),o.prop(h,"input",(()=>{if(t.signatures)return i.compile([s.OP_0].concat(t.signatures))})),o.prop(h,"witness",(()=>{if(h.input)return[]})),o.prop(h,"name",(()=>{if(h.m&&h.n)return`p2ms(${h.m} of ${h.n})`})),e.validate){if(t.output){if(d(t.output),!a.Number(f[0]))throw new TypeError("Output is invalid");if(!a.Number(f[f.length-2]))throw new TypeError("Output is invalid");if(f[f.length-1]!==s.OP_CHECKMULTISIG)throw new TypeError("Output is invalid");if(h.m<=0||h.n>16||h.m>h.n||h.n!==f.length-3)throw new TypeError("Output is invalid");if(!h.pubkeys.every((t=>u.isPoint(t))))throw new TypeError("Output is invalid");if(void 0!==t.m&&t.m!==h.m)throw new TypeError("m mismatch");if(void 0!==t.n&&t.n!==h.n)throw new TypeError("n mismatch");if(t.pubkeys&&!l(t.pubkeys,h.pubkeys))throw new TypeError("Pubkeys mismatch")}if(t.pubkeys){if(void 0!==t.n&&t.n!==t.pubkeys.length)throw new TypeError("Pubkey count mismatch");if(h.n=t.pubkeys.length,h.nh.m)throw new TypeError("Too many signatures provided")}if(t.input){if(t.input[0]!==s.OP_0)throw new TypeError("Input is invalid");if(0===h.signatures.length||!h.signatures.every(r))throw new TypeError("Input has invalid signature(s)");if(t.signatures&&!l(t.signatures,h.signatures))throw new TypeError("Signature mismatch");if(void 0!==t.m&&t.m!==t.signatures.length)throw new TypeError("Signature count mismatch")}}return Object.assign(h,t)}},97759:(t,e,r)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});const n=r(74378),i=r(73357),o=r(52691),s=r(2401),a=i.OPS,u=r(95892);e.p2pk=function(t,e){if(!(t.input||t.output||t.pubkey||t.input||t.signature))throw new TypeError("Not enough data");e=Object.assign({validate:!0},e||{}),s({network:s.maybe(s.Object),output:s.maybe(s.Buffer),pubkey:s.maybe(u.isPoint),signature:s.maybe(i.isCanonicalScriptSignature),input:s.maybe(s.Buffer)},t);const r=o.value((()=>i.decompile(t.input))),c={name:"p2pk",network:t.network||n.bitcoin};if(o.prop(c,"output",(()=>{if(t.pubkey)return i.compile([t.pubkey,a.OP_CHECKSIG])})),o.prop(c,"pubkey",(()=>{if(t.output)return t.output.slice(1,-1)})),o.prop(c,"signature",(()=>{if(t.input)return r()[0]})),o.prop(c,"input",(()=>{if(t.signature)return i.compile([t.signature])})),o.prop(c,"witness",(()=>{if(c.input)return[]})),e.validate){if(t.output){if(t.output[t.output.length-1]!==a.OP_CHECKSIG)throw new TypeError("Output is invalid");if(!u.isPoint(c.pubkey))throw new TypeError("Output pubkey is invalid");if(t.pubkey&&!t.pubkey.equals(c.pubkey))throw new TypeError("Pubkey mismatch")}if(t.signature&&t.input&&!t.input.equals(c.input))throw new TypeError("Signature mismatch");if(t.input){if(1!==r().length)throw new TypeError("Input is invalid");if(!i.isCanonicalScriptSignature(c.signature))throw new TypeError("Input has invalid signature")}}return Object.assign(c,t)}},44483:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0});const i=r(5525),o=r(74378),s=r(73357),a=r(52691),u=r(2401),c=s.OPS,l=r(95892),h=r(58334);e.p2pkh=function(t,e){if(!(t.address||t.hash||t.output||t.pubkey||t.input))throw new TypeError("Not enough data");e=Object.assign({validate:!0},e||{}),u({network:u.maybe(u.Object),address:u.maybe(u.String),hash:u.maybe(u.BufferN(20)),output:u.maybe(u.BufferN(25)),pubkey:u.maybe(l.isPoint),signature:u.maybe(s.isCanonicalScriptSignature),input:u.maybe(u.Buffer)},t);const r=a.value((()=>{const e=h.decode(t.address);return{version:e.readUInt8(0),hash:e.slice(1)}})),f=a.value((()=>s.decompile(t.input))),p=t.network||o.bitcoin,d={name:"p2pkh",network:p};if(a.prop(d,"address",(()=>{if(!d.hash)return;const t=n.allocUnsafe(21);return t.writeUInt8(p.pubKeyHash,0),d.hash.copy(t,1),h.encode(t)})),a.prop(d,"hash",(()=>t.output?t.output.slice(3,23):t.address?r().hash:t.pubkey||d.pubkey?i.hash160(t.pubkey||d.pubkey):void 0)),a.prop(d,"output",(()=>{if(d.hash)return s.compile([c.OP_DUP,c.OP_HASH160,d.hash,c.OP_EQUALVERIFY,c.OP_CHECKSIG])})),a.prop(d,"pubkey",(()=>{if(t.input)return f()[1]})),a.prop(d,"signature",(()=>{if(t.input)return f()[0]})),a.prop(d,"input",(()=>{if(t.pubkey&&t.signature)return s.compile([t.signature,t.pubkey])})),a.prop(d,"witness",(()=>{if(d.input)return[]})),e.validate){let e=n.from([]);if(t.address){if(r().version!==p.pubKeyHash)throw new TypeError("Invalid version or Network mismatch");if(20!==r().hash.length)throw new TypeError("Invalid address");e=r().hash}if(t.hash){if(e.length>0&&!e.equals(t.hash))throw new TypeError("Hash mismatch");e=t.hash}if(t.output){if(25!==t.output.length||t.output[0]!==c.OP_DUP||t.output[1]!==c.OP_HASH160||20!==t.output[2]||t.output[23]!==c.OP_EQUALVERIFY||t.output[24]!==c.OP_CHECKSIG)throw new TypeError("Output is invalid");const r=t.output.slice(3,23);if(e.length>0&&!e.equals(r))throw new TypeError("Hash mismatch");e=r}if(t.pubkey){const r=i.hash160(t.pubkey);if(e.length>0&&!e.equals(r))throw new TypeError("Hash mismatch");e=r}if(t.input){const r=f();if(2!==r.length)throw new TypeError("Input is invalid");if(!s.isCanonicalScriptSignature(r[0]))throw new TypeError("Input has invalid signature");if(!l.isPoint(r[1]))throw new TypeError("Input has invalid pubkey");if(t.signature&&!t.signature.equals(r[0]))throw new TypeError("Signature mismatch");if(t.pubkey&&!t.pubkey.equals(r[1]))throw new TypeError("Pubkey mismatch");const n=i.hash160(r[1]);if(e.length>0&&!e.equals(n))throw new TypeError("Hash mismatch")}}return Object.assign(d,t)}},21160:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0});const i=r(5525),o=r(74378),s=r(73357),a=r(52691),u=r(2401),c=s.OPS,l=r(58334);e.p2sh=function(t,e){if(!(t.address||t.hash||t.output||t.redeem||t.input))throw new TypeError("Not enough data");e=Object.assign({validate:!0},e||{}),u({network:u.maybe(u.Object),address:u.maybe(u.String),hash:u.maybe(u.BufferN(20)),output:u.maybe(u.BufferN(23)),redeem:u.maybe({network:u.maybe(u.Object),output:u.maybe(u.Buffer),input:u.maybe(u.Buffer),witness:u.maybe(u.arrayOf(u.Buffer))}),input:u.maybe(u.Buffer),witness:u.maybe(u.arrayOf(u.Buffer))},t);let r=t.network;r||(r=t.redeem&&t.redeem.network||o.bitcoin);const h={network:r},f=a.value((()=>{const e=l.decode(t.address);return{version:e.readUInt8(0),hash:e.slice(1)}})),p=a.value((()=>s.decompile(t.input))),d=a.value((()=>{const e=p();return{network:r,output:e[e.length-1],input:s.compile(e.slice(0,-1)),witness:t.witness||[]}}));if(a.prop(h,"address",(()=>{if(!h.hash)return;const t=n.allocUnsafe(21);return t.writeUInt8(h.network.scriptHash,0),h.hash.copy(t,1),l.encode(t)})),a.prop(h,"hash",(()=>t.output?t.output.slice(2,22):t.address?f().hash:h.redeem&&h.redeem.output?i.hash160(h.redeem.output):void 0)),a.prop(h,"output",(()=>{if(h.hash)return s.compile([c.OP_HASH160,h.hash,c.OP_EQUAL])})),a.prop(h,"redeem",(()=>{if(t.input)return d()})),a.prop(h,"input",(()=>{if(t.redeem&&t.redeem.input&&t.redeem.output)return s.compile([].concat(s.decompile(t.redeem.input),t.redeem.output))})),a.prop(h,"witness",(()=>h.redeem&&h.redeem.witness?h.redeem.witness:h.input?[]:void 0)),a.prop(h,"name",(()=>{const t=["p2sh"];return void 0!==h.redeem&&t.push(h.redeem.name),t.join("-")})),e.validate){let e=n.from([]);if(t.address){if(f().version!==r.scriptHash)throw new TypeError("Invalid version or Network mismatch");if(20!==f().hash.length)throw new TypeError("Invalid address");e=f().hash}if(t.hash){if(e.length>0&&!e.equals(t.hash))throw new TypeError("Hash mismatch");e=t.hash}if(t.output){if(23!==t.output.length||t.output[0]!==c.OP_HASH160||20!==t.output[1]||t.output[22]!==c.OP_EQUAL)throw new TypeError("Output is invalid");const r=t.output.slice(2,22);if(e.length>0&&!e.equals(r))throw new TypeError("Hash mismatch");e=r}const o=t=>{if(t.output){const r=s.decompile(t.output);if(!r||r.length<1)throw new TypeError("Redeem.output too short");const n=i.hash160(t.output);if(e.length>0&&!e.equals(n))throw new TypeError("Hash mismatch");e=n}if(t.input){const e=t.input.length>0,r=t.witness&&t.witness.length>0;if(!e&&!r)throw new TypeError("Empty input");if(e&&r)throw new TypeError("Input and witness provided");if(e){const e=s.decompile(t.input);if(!s.isPushOnly(e))throw new TypeError("Non push-only scriptSig")}}};if(t.input){const t=p();if(!t||t.length<1)throw new TypeError("Input too short");if(!n.isBuffer(d().output))throw new TypeError("Input is invalid");o(d())}if(t.redeem){if(t.redeem.network&&t.redeem.network!==r)throw new TypeError("Network mismatch");if(t.input){const e=d();if(t.redeem.output&&!t.redeem.output.equals(e.output))throw new TypeError("Redeem.output mismatch");if(t.redeem.input&&!t.redeem.input.equals(e.input))throw new TypeError("Redeem.input mismatch")}o(t.redeem)}if(t.witness&&t.redeem&&t.redeem.witness&&!function(t,e){return t.length===e.length&&t.every(((t,r)=>t.equals(e[r])))}(t.redeem.witness,t.witness))throw new TypeError("Witness and redeem.witness mismatch")}return Object.assign(h,t)}},18810:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0});const i=r(5525),o=r(74378),s=r(73357),a=r(52691),u=r(2401),c=s.OPS,l=r(95892),h=r(72033),f=n.alloc(0);e.p2wpkh=function(t,e){if(!(t.address||t.hash||t.output||t.pubkey||t.witness))throw new TypeError("Not enough data");e=Object.assign({validate:!0},e||{}),u({address:u.maybe(u.String),hash:u.maybe(u.BufferN(20)),input:u.maybe(u.BufferN(0)),network:u.maybe(u.Object),output:u.maybe(u.BufferN(22)),pubkey:u.maybe(l.isPoint),signature:u.maybe(s.isCanonicalScriptSignature),witness:u.maybe(u.arrayOf(u.Buffer))},t);const r=a.value((()=>{const e=h.decode(t.address),r=e.words.shift(),i=h.fromWords(e.words);return{version:r,prefix:e.prefix,data:n.from(i)}})),p=t.network||o.bitcoin,d={name:"p2wpkh",network:p};if(a.prop(d,"address",(()=>{if(!d.hash)return;const t=h.toWords(d.hash);return t.unshift(0),h.encode(p.bech32,t)})),a.prop(d,"hash",(()=>t.output?t.output.slice(2,22):t.address?r().data:t.pubkey||d.pubkey?i.hash160(t.pubkey||d.pubkey):void 0)),a.prop(d,"output",(()=>{if(d.hash)return s.compile([c.OP_0,d.hash])})),a.prop(d,"pubkey",(()=>t.pubkey?t.pubkey:t.witness?t.witness[1]:void 0)),a.prop(d,"signature",(()=>{if(t.witness)return t.witness[0]})),a.prop(d,"input",(()=>{if(d.witness)return f})),a.prop(d,"witness",(()=>{if(t.pubkey&&t.signature)return[t.signature,t.pubkey]})),e.validate){let e=n.from([]);if(t.address){if(p&&p.bech32!==r().prefix)throw new TypeError("Invalid prefix or Network mismatch");if(0!==r().version)throw new TypeError("Invalid address version");if(20!==r().data.length)throw new TypeError("Invalid address data");e=r().data}if(t.hash){if(e.length>0&&!e.equals(t.hash))throw new TypeError("Hash mismatch");e=t.hash}if(t.output){if(22!==t.output.length||t.output[0]!==c.OP_0||20!==t.output[1])throw new TypeError("Output is invalid");if(e.length>0&&!e.equals(t.output.slice(2)))throw new TypeError("Hash mismatch");e=t.output.slice(2)}if(t.pubkey){const r=i.hash160(t.pubkey);if(e.length>0&&!e.equals(r))throw new TypeError("Hash mismatch");if(e=r,!l.isPoint(t.pubkey)||33!==t.pubkey.length)throw new TypeError("Invalid pubkey for p2wpkh")}if(t.witness){if(2!==t.witness.length)throw new TypeError("Witness is invalid");if(!s.isCanonicalScriptSignature(t.witness[0]))throw new TypeError("Witness has invalid signature");if(!l.isPoint(t.witness[1])||33!==t.witness[1].length)throw new TypeError("Witness has invalid pubkey");if(t.signature&&!t.signature.equals(t.witness[0]))throw new TypeError("Signature mismatch");if(t.pubkey&&!t.pubkey.equals(t.witness[1]))throw new TypeError("Pubkey mismatch");const r=i.hash160(t.witness[1]);if(e.length>0&&!e.equals(r))throw new TypeError("Hash mismatch")}}return Object.assign(d,t)}},82401:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0});const i=r(5525),o=r(74378),s=r(73357),a=r(52691),u=r(2401),c=s.OPS,l=r(95892),h=r(72033),f=n.alloc(0);function p(t){return!(!n.isBuffer(t)||65!==t.length||4!==t[0]||!l.isPoint(t))}e.p2wsh=function(t,e){if(!(t.address||t.hash||t.output||t.redeem||t.witness))throw new TypeError("Not enough data");e=Object.assign({validate:!0},e||{}),u({network:u.maybe(u.Object),address:u.maybe(u.String),hash:u.maybe(u.BufferN(32)),output:u.maybe(u.BufferN(34)),redeem:u.maybe({input:u.maybe(u.Buffer),network:u.maybe(u.Object),output:u.maybe(u.Buffer),witness:u.maybe(u.arrayOf(u.Buffer))}),input:u.maybe(u.BufferN(0)),witness:u.maybe(u.arrayOf(u.Buffer))},t);const r=a.value((()=>{const e=h.decode(t.address),r=e.words.shift(),i=h.fromWords(e.words);return{version:r,prefix:e.prefix,data:n.from(i)}})),l=a.value((()=>s.decompile(t.redeem.input)));let d=t.network;d||(d=t.redeem&&t.redeem.network||o.bitcoin);const g={network:d};if(a.prop(g,"address",(()=>{if(!g.hash)return;const t=h.toWords(g.hash);return t.unshift(0),h.encode(d.bech32,t)})),a.prop(g,"hash",(()=>t.output?t.output.slice(2):t.address?r().data:g.redeem&&g.redeem.output?i.sha256(g.redeem.output):void 0)),a.prop(g,"output",(()=>{if(g.hash)return s.compile([c.OP_0,g.hash])})),a.prop(g,"redeem",(()=>{if(t.witness)return{output:t.witness[t.witness.length-1],input:f,witness:t.witness.slice(0,-1)}})),a.prop(g,"input",(()=>{if(g.witness)return f})),a.prop(g,"witness",(()=>{if(t.redeem&&t.redeem.input&&t.redeem.input.length>0&&t.redeem.output&&t.redeem.output.length>0){const e=s.toStack(l());return g.redeem=Object.assign({witness:e},t.redeem),g.redeem.input=f,[].concat(e,t.redeem.output)}if(t.redeem&&t.redeem.output&&t.redeem.witness)return[].concat(t.redeem.witness,t.redeem.output)})),a.prop(g,"name",(()=>{const t=["p2wsh"];return void 0!==g.redeem&&t.push(g.redeem.name),t.join("-")})),e.validate){let e=n.from([]);if(t.address){if(r().prefix!==d.bech32)throw new TypeError("Invalid prefix or Network mismatch");if(0!==r().version)throw new TypeError("Invalid address version");if(32!==r().data.length)throw new TypeError("Invalid address data");e=r().data}if(t.hash){if(e.length>0&&!e.equals(t.hash))throw new TypeError("Hash mismatch");e=t.hash}if(t.output){if(34!==t.output.length||t.output[0]!==c.OP_0||32!==t.output[1])throw new TypeError("Output is invalid");const r=t.output.slice(2);if(e.length>0&&!e.equals(r))throw new TypeError("Hash mismatch");e=r}if(t.redeem){if(t.redeem.network&&t.redeem.network!==d)throw new TypeError("Network mismatch");if(t.redeem.input&&t.redeem.input.length>0&&t.redeem.witness&&t.redeem.witness.length>0)throw new TypeError("Ambiguous witness source");if(t.redeem.output){if(0===s.decompile(t.redeem.output).length)throw new TypeError("Redeem.output is invalid");const r=i.sha256(t.redeem.output);if(e.length>0&&!e.equals(r))throw new TypeError("Hash mismatch");e=r}if(t.redeem.input&&!s.isPushOnly(l()))throw new TypeError("Non push-only scriptSig");if(t.witness&&t.redeem.witness&&!function(t,e){return t.length===e.length&&t.every(((t,r)=>t.equals(e[r])))}(t.witness,t.redeem.witness))throw new TypeError("Witness and redeem.witness mismatch");if(t.redeem.input&&l().some(p)||t.redeem.output&&(s.decompile(t.redeem.output)||[]).some(p))throw new TypeError("redeem.input or redeem.output contains uncompressed pubkey")}if(t.witness&&t.witness.length>0){const e=t.witness[t.witness.length-1];if(t.redeem&&t.redeem.output&&!t.redeem.output.equals(e))throw new TypeError("Witness and redeem.output mismatch");if(t.witness.some(p)||(s.decompile(e)||[]).some(p))throw new TypeError("Witness contains uncompressed pubkey")}}return Object.assign(g,t)}},99930:(t,e,r)=>{"use strict";var n=r(48764).Buffer,i=r(25108);Object.defineProperty(e,"__esModule",{value:!0});const o=r(95011),s=r(3493),a=r(96403),u=r(95488),c=r(9357),l=r(5525),h=r(44018),f=r(74378),p=r(84972),d=r(73357),g=r(82737),y={network:f.bitcoin,maximumFeeRate:5e3};class m{constructor(t={},e=new o.Psbt(new b)){this.data=e,this.opts=Object.assign({},y,t),this.__CACHE={__NON_WITNESS_UTXO_TX_CACHE:[],__NON_WITNESS_UTXO_BUF_CACHE:[],__TX_IN_CACHE:{},__TX:this.data.globalMap.unsignedTx.tx,__UNSAFE_SIGN_NONSEGWIT:!1},0===this.data.inputs.length&&this.setVersion(2);const r=(t,e,r,n)=>Object.defineProperty(t,e,{enumerable:r,writable:n});r(this,"__CACHE",!1,!0),r(this,"opts",!1,!0)}static fromBase64(t,e={}){const r=n.from(t,"base64");return this.fromBuffer(r,e)}static fromHex(t,e={}){const r=n.from(t,"hex");return this.fromBuffer(r,e)}static fromBuffer(t,e={}){const r=o.Psbt.fromBuffer(t,v),n=new m(e,r);var i,s;return i=n.__CACHE.__TX,s=n.__CACHE,i.ins.forEach((t=>{B(s,t)})),n}get inputCount(){return this.data.inputs.length}get version(){return this.__CACHE.__TX.version}set version(t){this.setVersion(t)}get locktime(){return this.__CACHE.__TX.locktime}set locktime(t){this.setLocktime(t)}get txInputs(){return this.__CACHE.__TX.ins.map((t=>({hash:c.cloneBuffer(t.hash),index:t.index,sequence:t.sequence})))}get txOutputs(){return this.__CACHE.__TX.outs.map((t=>{let e;try{e=u.fromOutputScript(t.script,this.opts.network)}catch(t){}return{script:c.cloneBuffer(t.script),value:t.value,address:e}}))}combine(...t){return this.data.combine(...t.map((t=>t.data))),this}clone(){const t=m.fromBuffer(this.data.toBuffer());return t.opts=JSON.parse(JSON.stringify(this.opts)),t}setMaximumFeeRate(t){C(t),this.opts.maximumFeeRate=t}setVersion(t){C(t),N(this.data.inputs,"setVersion");const e=this.__CACHE;return e.__TX.version=t,e.__EXTRACTED_TX=void 0,this}setLocktime(t){C(t),N(this.data.inputs,"setLocktime");const e=this.__CACHE;return e.__TX.locktime=t,e.__EXTRACTED_TX=void 0,this}setInputSequence(t,e){C(e),N(this.data.inputs,"setInputSequence");const r=this.__CACHE;if(r.__TX.ins.length<=t)throw new Error("Input index too high");return r.__TX.ins[t].sequence=e,r.__EXTRACTED_TX=void 0,this}addInputs(t){return t.forEach((t=>this.addInput(t))),this}addInput(t){if(arguments.length>1||!t||void 0===t.hash||void 0===t.index)throw new Error("Invalid arguments for Psbt.addInput. Requires single object with at least [hash] and [index]");N(this.data.inputs,"addInput"),t.witnessScript&&Y(t.witnessScript);const e=this.__CACHE;this.data.addInput(t),B(e,e.__TX.ins[e.__TX.ins.length-1]);const r=this.data.inputs.length-1,n=this.data.inputs[r];return n.nonWitnessUtxo&&W(this.__CACHE,n,r),e.__FEE=void 0,e.__FEE_RATE=void 0,e.__EXTRACTED_TX=void 0,this}addOutputs(t){return t.forEach((t=>this.addOutput(t))),this}addOutput(t){if(arguments.length>1||!t||void 0===t.value||void 0===t.address&&void 0===t.script)throw new Error("Invalid arguments for Psbt.addOutput. Requires single object with at least [script or address] and [value]");N(this.data.inputs,"addOutput");const{address:e}=t;if("string"==typeof e){const{network:r}=this.opts,n=u.toOutputScript(e,r);t=Object.assign(t,{script:n})}const r=this.__CACHE;return this.data.addOutput(t),r.__FEE=void 0,r.__FEE_RATE=void 0,r.__EXTRACTED_TX=void 0,this}extractTransaction(t){if(!this.data.inputs.every(E))throw new Error("Not finalized");const e=this.__CACHE;if(t||function(t,e,r){const n=e.__FEE_RATE||t.getFeeRate(),i=e.__EXTRACTED_TX.virtualSize(),o=n*i;if(n>=r.maximumFeeRate)throw new Error(`Warning: You are paying around ${(o/1e8).toFixed(8)} in fees, which is ${n} satoshi per byte for a transaction with a VSize of ${i} bytes (segwit counted as 0.25 byte per byte). Use setMaximumFeeRate method to raise your threshold, or pass true to the first arg of extractTransaction.`)}(this,e,this.opts),e.__EXTRACTED_TX)return e.__EXTRACTED_TX;const r=e.__TX.clone();return K(this.data.inputs,r,e,!0),r}getFeeRate(){return U("__FEE_RATE","fee rate",this.data.inputs,this.__CACHE)}getFee(){return U("__FEE","fee",this.data.inputs,this.__CACHE)}finalizeAllInputs(){return a.checkForInput(this.data.inputs,0),Q(this.data.inputs.length).forEach((t=>this.finalizeInput(t))),this}finalizeInput(t,e=H){const r=a.checkForInput(this.data.inputs,t),{script:n,isP2SH:i,isP2WSH:o,isSegwit:s}=function(t,e,r){const n=r.__TX,i={script:null,isSegwit:!1,isP2SH:!1,isP2WSH:!1};if(i.isP2SH=!!e.redeemScript,i.isP2WSH=!!e.witnessScript,e.witnessScript)i.script=e.witnessScript;else if(e.redeemScript)i.script=e.redeemScript;else if(e.nonWitnessUtxo){const o=q(r,e,t),s=n.ins[t].index;i.script=o.outs[s].script}else e.witnessUtxo&&(i.script=e.witnessUtxo.script);return(e.witnessScript||k(i.script))&&(i.isSegwit=!0),i}(t,r,this.__CACHE);if(!n)throw new Error(`No script found for input #${t}`);!function(t){if(!t.sighashType||!t.partialSig)return;const{partialSig:e,sighashType:r}=t;e.forEach((t=>{const{hashType:e}=d.signature.decode(t.signature);if(r!==e)throw new Error("Signature sighash does not match input sighash type")}))}(r);const{finalScriptSig:u,finalScriptWitness:c}=e(t,r,n,s,i,o);if(u&&this.data.updateInput(t,{finalScriptSig:u}),c&&this.data.updateInput(t,{finalScriptWitness:c}),!u&&!c)throw new Error(`Unknown error finalizing input #${t}`);return this.data.clearFinalizedInput(t),this}getInputType(t){const e=a.checkForInput(this.data.inputs,t),r=X(G(t,e,this.__CACHE),t,"input",e.redeemScript||function(t){if(!t)return;const e=d.decompile(t);if(!e)return;const r=e[e.length-1];var i;if(n.isBuffer(r)&&!z(r)&&(i=r,!d.isCanonicalScriptSignature(i))&&d.decompile(r))return r}(e.finalScriptSig),e.witnessScript||function(t){if(!t)return;const e=V(t),r=e[e.length-1];return!z(r)&&d.decompile(r)?r:void 0}(e.finalScriptWitness));return("raw"===r.type?"":r.type+"-")+Z(r.meaningfulScript)}inputHasPubkey(t,e){return function(t,e,r,n){const i=G(r,e,n),{meaningfulScript:o}=X(i,r,"input",e.redeemScript,e.witnessScript);return J(t,o)}(e,a.checkForInput(this.data.inputs,t),t,this.__CACHE)}inputHasHDKey(t,e){const r=a.checkForInput(this.data.inputs,t),n=P(e);return!!r.bip32Derivation&&r.bip32Derivation.some(n)}outputHasPubkey(t,e){return function(t,e,r,n){const i=n.__TX.outs[r].script,{meaningfulScript:o}=X(i,r,"output",e.redeemScript,e.witnessScript);return J(t,o)}(e,a.checkForOutput(this.data.outputs,t),t,this.__CACHE)}outputHasHDKey(t,e){const r=a.checkForOutput(this.data.outputs,t),n=P(e);return!!r.bip32Derivation&&r.bip32Derivation.some(n)}validateSignaturesOfAllInputs(){return a.checkForInput(this.data.inputs,0),Q(this.data.inputs.length).map((t=>this.validateSignaturesOfInput(t))).reduce(((t,e)=>!0===e&&t),!0)}validateSignaturesOfInput(t,e){const r=this.data.inputs[t],n=(r||{}).partialSig;if(!r||!n||n.length<1)throw new Error("No signatures to validate");const i=e?n.filter((t=>t.pubkey.equals(e))):n;if(i.length<1)throw new Error("No signatures for this pubkey");const o=[];let s,a,u;for(const e of i){const n=d.signature.decode(e.signature),{hash:i,script:c}=u!==n.hashType?j(t,Object.assign({},r,{sighashType:n.hashType}),this.__CACHE,!0):{hash:s,script:a};u=n.hashType,s=i,a=c,M(e.pubkey,c,"verify");const l=h.fromPublicKey(e.pubkey);o.push(l.verify(i,n.signature))}return o.every((t=>!0===t))}signAllInputsHD(t,e=[g.Transaction.SIGHASH_ALL]){if(!t||!t.publicKey||!t.fingerprint)throw new Error("Need HDSigner to sign input");const r=[];for(const n of Q(this.data.inputs.length))try{this.signInputHD(n,t,e),r.push(!0)}catch(t){r.push(!1)}if(r.every((t=>!1===t)))throw new Error("No inputs were signed");return this}signAllInputsHDAsync(t,e=[g.Transaction.SIGHASH_ALL]){return new Promise(((r,n)=>{if(!t||!t.publicKey||!t.fingerprint)return n(new Error("Need HDSigner to sign input"));const i=[],o=[];for(const r of Q(this.data.inputs.length))o.push(this.signInputHDAsync(r,t,e).then((()=>{i.push(!0)}),(()=>{i.push(!1)})));return Promise.all(o).then((()=>{if(i.every((t=>!1===t)))return n(new Error("No inputs were signed"));r()}))}))}signInputHD(t,e,r=[g.Transaction.SIGHASH_ALL]){if(!e||!e.publicKey||!e.fingerprint)throw new Error("Need HDSigner to sign input");return F(t,this.data.inputs,e).forEach((e=>this.signInput(t,e,r))),this}signInputHDAsync(t,e,r=[g.Transaction.SIGHASH_ALL]){return new Promise(((n,i)=>{if(!e||!e.publicKey||!e.fingerprint)return i(new Error("Need HDSigner to sign input"));const o=F(t,this.data.inputs,e).map((e=>this.signInputAsync(t,e,r)));return Promise.all(o).then((()=>{n()})).catch(i)}))}signAllInputs(t,e=[g.Transaction.SIGHASH_ALL]){if(!t||!t.publicKey)throw new Error("Need Signer to sign input");const r=[];for(const n of Q(this.data.inputs.length))try{this.signInput(n,t,e),r.push(!0)}catch(t){r.push(!1)}if(r.every((t=>!1===t)))throw new Error("No inputs were signed");return this}signAllInputsAsync(t,e=[g.Transaction.SIGHASH_ALL]){return new Promise(((r,n)=>{if(!t||!t.publicKey)return n(new Error("Need Signer to sign input"));const i=[],o=[];for(const[r]of this.data.inputs.entries())o.push(this.signInputAsync(r,t,e).then((()=>{i.push(!0)}),(()=>{i.push(!1)})));return Promise.all(o).then((()=>{if(i.every((t=>!1===t)))return n(new Error("No inputs were signed"));r()}))}))}signInput(t,e,r=[g.Transaction.SIGHASH_ALL]){if(!e||!e.publicKey)throw new Error("Need Signer to sign input");const{hash:n,sighashType:i}=$(this.data.inputs,t,e.publicKey,this.__CACHE,r),o=[{pubkey:e.publicKey,signature:d.signature.encode(e.sign(n),i)}];return this.data.updateInput(t,{partialSig:o}),this}signInputAsync(t,e,r=[g.Transaction.SIGHASH_ALL]){return Promise.resolve().then((()=>{if(!e||!e.publicKey)throw new Error("Need Signer to sign input");const{hash:n,sighashType:i}=$(this.data.inputs,t,e.publicKey,this.__CACHE,r);return Promise.resolve(e.sign(n)).then((r=>{const n=[{pubkey:e.publicKey,signature:d.signature.encode(r,i)}];this.data.updateInput(t,{partialSig:n})}))}))}toBuffer(){return w(this.__CACHE),this.data.toBuffer()}toHex(){return w(this.__CACHE),this.data.toHex()}toBase64(){return w(this.__CACHE),this.data.toBase64()}updateGlobal(t){return this.data.updateGlobal(t),this}updateInput(t,e){return e.witnessScript&&Y(e.witnessScript),this.data.updateInput(t,e),e.nonWitnessUtxo&&W(this.__CACHE,this.data.inputs[t],t),this}updateOutput(t,e){return this.data.updateOutput(t,e),this}addUnknownKeyValToGlobal(t){return this.data.addUnknownKeyValToGlobal(t),this}addUnknownKeyValToInput(t,e){return this.data.addUnknownKeyValToInput(t,e),this}addUnknownKeyValToOutput(t,e){return this.data.addUnknownKeyValToOutput(t,e),this}clearFinalizedInput(t){return this.data.clearFinalizedInput(t),this}}e.Psbt=m;const v=t=>new b(t);class b{constructor(t=n.from([2,0,0,0,0,0,0,0,0,0])){this.tx=g.Transaction.fromBuffer(t),function(t){if(!t.ins.every((t=>t.script&&0===t.script.length&&t.witness&&0===t.witness.length)))throw new Error("Format Error: Transaction ScriptSigs are not empty")}(this.tx),Object.defineProperty(this,"tx",{enumerable:!1,writable:!0})}getInputOutputCounts(){return{inputCount:this.tx.ins.length,outputCount:this.tx.outs.length}}addInput(t){if(void 0===t.hash||void 0===t.index||!n.isBuffer(t.hash)&&"string"!=typeof t.hash||"number"!=typeof t.index)throw new Error("Error adding input.");const e="string"==typeof t.hash?c.reverseBuffer(n.from(t.hash,"hex")):t.hash;this.tx.addInput(e,t.index,t.sequence)}addOutput(t){if(void 0===t.script||void 0===t.value||!n.isBuffer(t.script)||"number"!=typeof t.value)throw new Error("Error adding output.");this.tx.addOutput(t.script,t.value)}toBuffer(){return this.tx.toBuffer()}}function w(t){if(!1!==t.__UNSAFE_SIGN_NONSEGWIT)throw new Error("Not BIP174 compliant, can not export")}function _(t,e,r){if(!e)return!1;let n;if(n=r?r.map((t=>{const r=h.fromPublicKey(t,{compressed:!0}).publicKey;return e.find((t=>t.pubkey.equals(r)))})).filter((t=>!!t)):e,n.length>t)throw new Error("Too many signatures");return n.length===t}function E(t){return!!t.finalScriptSig||!!t.finalScriptWitness}function x(t){return e=>{try{return t({output:e}),!0}catch(t){return!1}}}const S=x(p.p2ms),T=x(p.p2pk),I=x(p.p2pkh),k=x(p.p2wpkh),A=x(p.p2wsh),O=x(p.p2sh);function P(t){return e=>!!e.masterFingerprint.equals(t.fingerprint)&&!!t.derivePath(e.path).publicKey.equals(e.pubkey)}function C(t){if("number"!=typeof t||t!==Math.floor(t)||t>4294967295||t<0)throw new Error("Invalid 32 bit integer")}function N(t,e){t.forEach((t=>{let r=!1,i=[];if(0===(t.partialSig||[]).length){if(!t.finalScriptSig&&!t.finalScriptWitness)return;i=function(t){const e=t.finalScriptSig&&d.decompile(t.finalScriptSig)||[],r=t.finalScriptWitness&&d.decompile(t.finalScriptWitness)||[];return e.concat(r).filter((t=>n.isBuffer(t)&&d.isCanonicalScriptSignature(t))).map((t=>({signature:t})))}(t)}else i=t.partialSig;if(i.forEach((t=>{const{hashType:n}=d.signature.decode(t.signature),i=[];switch(n&g.Transaction.SIGHASH_ANYONECANPAY&&i.push("addInput"),31&n){case g.Transaction.SIGHASH_ALL:break;case g.Transaction.SIGHASH_SINGLE:case g.Transaction.SIGHASH_NONE:i.push("addOutput"),i.push("setInputSequence")}-1===i.indexOf(e)&&(r=!0)})),r)throw new Error("Can not modify transaction, signatures exist.")}))}function M(t,e,r){if(!J(t,e))throw new Error(`Can not ${r} for this input with the key ${t.toString("hex")}`)}function B(t,e){const r=c.reverseBuffer(n.from(e.hash)).toString("hex")+":"+e.index;if(t.__TX_IN_CACHE[r])throw new Error("Duplicate input detected.");t.__TX_IN_CACHE[r]=1}function R(t,e){return(r,n,i,o)=>{const s=t({redeem:{output:i}}).output;if(!n.equals(s))throw new Error(`${e} for ${o} #${r} doesn't match the scriptPubKey in the prevout`)}}const D=R(p.p2sh,"Redeem script"),L=R(p.p2wsh,"Witness script");function U(t,e,r,n){if(!r.every(E))throw new Error(`PSBT must be finalized to calculate ${e}`);if("__FEE_RATE"===t&&n.__FEE_RATE)return n.__FEE_RATE;if("__FEE"===t&&n.__FEE)return n.__FEE;let i,o=!0;return n.__EXTRACTED_TX?(i=n.__EXTRACTED_TX,o=!1):i=n.__TX.clone(),K(r,i,n,o),"__FEE_RATE"===t?n.__FEE_RATE:"__FEE"===t?n.__FEE:void 0}function H(t,e,r,i,o,a){const u=Z(r);if(!function(t,e,r){switch(r){case"pubkey":case"pubkeyhash":case"witnesspubkeyhash":return _(1,t.partialSig);case"multisig":const r=p.p2ms({output:e});return _(r.m,t.partialSig,r.pubkeys);default:return!1}}(e,r,u))throw new Error(`Can not finalize input #${t}`);return function(t,e,r,i,o,a){let u,c;const l=function(t,e,r){let n;switch(e){case"multisig":const e=function(t,e){return p.p2ms({output:t}).pubkeys.map((t=>(e.filter((e=>e.pubkey.equals(t)))[0]||{}).signature)).filter((t=>!!t))}(t,r);n=p.p2ms({output:t,signatures:e});break;case"pubkey":n=p.p2pk({output:t,signature:r[0].signature});break;case"pubkeyhash":n=p.p2pkh({output:t,pubkey:r[0].pubkey,signature:r[0].signature});break;case"witnesspubkeyhash":n=p.p2wpkh({output:t,pubkey:r[0].pubkey,signature:r[0].signature})}return n}(t,e,r),h=a?p.p2wsh({redeem:l}):null,f=o?p.p2sh({redeem:h||l}):null;return i?(c=function(t){let e=n.allocUnsafe(0);function r(t){const r=e.length,i=s.encodingLength(t);e=n.concat([e,n.allocUnsafe(i)]),s.encode(t,e,r)}function i(t){r(t.length),function(t){e=n.concat([e,n.from(t)])}(t)}var o;return r((o=t).length),o.forEach(i),e}(h?h.witness:l.witness),f&&(u=f.input)):u=f?f.input:l.input,{finalScriptSig:u,finalScriptWitness:c}}(r,u,e.partialSig,i,o,a)}function $(t,e,r,n,i){const o=a.checkForInput(t,e),{hash:s,sighashType:u,script:c}=j(e,o,n,!1,i);return M(r,c,"sign"),{hash:s,sighashType:u}}function j(t,e,r,n,o){const s=r.__TX,a=e.sighashType||g.Transaction.SIGHASH_ALL;if(o&&o.indexOf(a)<0){const t=function(t){let e=t&g.Transaction.SIGHASH_ANYONECANPAY?"SIGHASH_ANYONECANPAY | ":"";switch(31&t){case g.Transaction.SIGHASH_ALL:e+="SIGHASH_ALL";break;case g.Transaction.SIGHASH_SINGLE:e+="SIGHASH_SINGLE";break;case g.Transaction.SIGHASH_NONE:e+="SIGHASH_NONE"}return e}(a);throw new Error(`Sighash type is not allowed. Retry the sign method passing the sighashTypes array of whitelisted types. Sighash type: ${t}`)}let u,c;if(e.nonWitnessUtxo){const n=q(r,e,t),i=s.ins[t].hash,o=n.getHash();if(!i.equals(o))throw new Error(`Non-witness UTXO hash for input #${t} doesn't match the hash specified in the prevout`);const a=s.ins[t].index;c=n.outs[a]}else{if(!e.witnessUtxo)throw new Error("Need a Utxo input item for signing");c=e.witnessUtxo}const{meaningfulScript:l,type:h}=X(c.script,t,"input",e.redeemScript,e.witnessScript);if(["p2sh-p2wsh","p2wsh"].indexOf(h)>=0)u=s.hashForWitnessV0(t,l,c.value,a);else if(k(l)){const e=p.p2pkh({hash:l.slice(2)}).output;u=s.hashForWitnessV0(t,e,c.value,a)}else{if(void 0===e.nonWitnessUtxo&&!1===r.__UNSAFE_SIGN_NONSEGWIT)throw new Error(`Input #${t} has witnessUtxo but non-segwit script: ${l.toString("hex")}`);n||!1===r.__UNSAFE_SIGN_NONSEGWIT||i.warn("Warning: Signing non-segwit inputs without the full parent transaction means there is a chance that a miner could feed you incorrect information to trick you into paying large fees. This behavior is the same as the old TransactionBuilder class when signing non-segwit scripts. You are not able to export this Psbt with toBuffer|toBase64|toHex since it is not BIP174 compliant.\n*********************\nPROCEED WITH CAUTION!\n*********************"),u=s.hashForSignature(t,l,a)}return{script:l,sighashType:a,hash:u}}function F(t,e,r){const n=a.checkForInput(e,t);if(!n.bip32Derivation||0===n.bip32Derivation.length)throw new Error("Need bip32Derivation to sign with HD");const i=n.bip32Derivation.map((t=>t.masterFingerprint.equals(r.fingerprint)?t:void 0)).filter((t=>!!t));if(0===i.length)throw new Error("Need one bip32Derivation masterFingerprint to match the HDSigner fingerprint");return i.map((t=>{const e=r.derivePath(t.path);if(!t.pubkey.equals(e.publicKey))throw new Error("pubkey did not match bip32Derivation");return e}))}function V(t){let e=0;function r(){const r=s.decode(t,e);return e+=s.decode.bytes,r}return function(){const n=r(),i=[];for(let s=0;s{if(n&&t.finalScriptSig&&(e.ins[o].script=t.finalScriptSig),n&&t.finalScriptWitness&&(e.ins[o].witness=V(t.finalScriptWitness)),t.witnessUtxo)i+=t.witnessUtxo.value;else if(t.nonWitnessUtxo){const n=q(r,t,o),s=e.ins[o].index,a=n.outs[s];i+=a.value}}));const o=e.outs.reduce(((t,e)=>t+e.value),0),s=i-o;if(s<0)throw new Error("Outputs are spending more than Inputs");const a=e.virtualSize();r.__FEE=s,r.__EXTRACTED_TX=e,r.__FEE_RATE=Math.floor(s/a)}function q(t,e,r){const n=t.__NON_WITNESS_UTXO_TX_CACHE;return n[r]||W(t,e,r),n[r]}function G(t,e,r){if(void 0!==e.witnessUtxo)return e.witnessUtxo.script;if(void 0!==e.nonWitnessUtxo)return q(r,e,t).outs[r.__TX.ins[t].index].script;throw new Error("Can't find pubkey in input without Utxo data")}function z(t){return 33===t.length&&d.isCanonicalPubKey(t)}function X(t,e,r,n,i){const o=O(t),s=o&&n&&A(n),a=A(t);if(o&&void 0===n)throw new Error("scriptPubkey is P2SH but redeemScript missing");if((a||s)&&void 0===i)throw new Error("scriptPubkey or redeemScript is P2WSH but witnessScript missing");let u;return s?(u=i,D(e,t,n,r),L(e,n,i,r),Y(u)):a?(u=i,L(e,t,i,r),Y(u)):o?(u=n,D(e,t,n,r)):u=t,{meaningfulScript:u,type:s?"p2sh-p2wsh":o?"p2sh":a?"p2wsh":"raw"}}function Y(t){if(k(t)||O(t))throw new Error("P2WPKH or P2SH can not be contained within P2WSH")}function J(t,e){const r=l.hash160(t),n=d.decompile(e);if(null===n)throw new Error("Unknown script error");return n.some((e=>"number"!=typeof e&&(e.equals(t)||e.equals(r))))}function Z(t){return k(t)?"witnesspubkeyhash":I(t)?"pubkeyhash":S(t)?"multisig":T(t)?"pubkey":"nonstandard"}function Q(t){return[...Array(t).keys()]}},73357:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0});const i=r(45815),o=r(24362),s=r(41838),a=r(93027),u=r(95892),c=r(13565),l=r(2401);e.OPS=r(39991);const h=r(42920),f=e.OPS.OP_RESERVED;function p(t){return s.Buffer(t)||function(t){return s.Number(t)&&(t===e.OPS.OP_0||t>=e.OPS.OP_1&&t<=e.OPS.OP_16||t===e.OPS.OP_1NEGATE)}(t)}function d(t){return s.Array(t)&&t.every(p)}function g(t){return 0===t.length?e.OPS.OP_0:1===t.length?t[0]>=1&&t[0]<=16?f+t[0]:129===t[0]?e.OPS.OP_1NEGATE:void 0:void 0}function y(t){return n.isBuffer(t)}function m(t){return n.isBuffer(t)}function v(t){if(y(t))return t;l(s.Array,t);const e=t.reduce(((t,e)=>m(e)?1===e.length&&void 0!==g(e)?t+1:t+c.encodingLength(e.length)+e.length:t+1),0),r=n.allocUnsafe(e);let i=0;if(t.forEach((t=>{if(m(t)){const e=g(t);if(void 0!==e)return r.writeUInt8(e,i),void(i+=1);i+=c.encode(r,t.length,i),t.copy(r,i),i+=t.length}else r.writeUInt8(t,i),i+=1})),i!==r.length)throw new Error("Could not decode chunks");return r}function b(t){if(r=t,s.Array(r))return t;var r;l(s.Buffer,t);const n=[];let i=0;for(;ie.OPS.OP_0&&r<=e.OPS.OP_PUSHDATA4){const e=c.decode(t,i);if(null===e)return null;if(i+=e.size,i+e.number>t.length)return null;const r=t.slice(i,i+e.number);i+=e.number;const o=g(r);void 0!==o?n.push(o):n.push(r)}else n.push(r),i+=1}return n}function w(t){const e=-129&t;return e>0&&e<4}e.isPushOnly=d,e.compile=v,e.decompile=b,e.toASM=function(t){return y(t)&&(t=b(t)),t.map((t=>{if(m(t)){const e=g(t);if(void 0===e)return t.toString("hex");t=e}return h[t]})).join(" ")},e.fromASM=function(t){return l(s.String,t),v(t.split(" ").map((t=>void 0!==e.OPS[t]?e.OPS[t]:(l(s.Hex,t),n.from(t,"hex")))))},e.toStack=function(t){return t=b(t),l(d,t),t.map((t=>m(t)?t:t===e.OPS.OP_0?n.allocUnsafe(0):i.encode(t-f)))},e.isCanonicalPubKey=function(t){return u.isPoint(t)},e.isDefinedHashType=w,e.isCanonicalScriptSignature=function(t){return!!n.isBuffer(t)&&!!w(t[t.length-1])&&a.check(t.slice(0,-1))},e.number=i,e.signature=o},45815:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0}),e.decode=function(t,e,r){e=e||4,r=void 0===r||r;const n=t.length;if(0===n)return 0;if(n>e)throw new TypeError("Script number overflow");if(r&&0==(127&t[n-1])&&(n<=1||0==(128&t[n-2])))throw new Error("Non-minimally encoded script number");if(5===n){const e=t.readUInt32LE(0),r=t.readUInt8(4);return 128&r?-(4294967296*(-129&r)+e):4294967296*r+e}let i=0;for(let e=0;e2147483647?5:i>8388607?4:i>32767?3:i>127?2:i>0?1:0;var i;const o=n.allocUnsafe(r),s=t<0;for(let t=0;t>=8;return 128&o[r-1]?o.writeUInt8(s?128:0,r-1):s&&(o[r-1]|=128),o}},24362:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0});const i=r(41838),o=r(93027),s=r(2401),a=n.alloc(1,0);function u(t){let e=0;for(;0===t[e];)++e;return e===t.length?a:128&(t=t.slice(e))[0]?n.concat([a,t],1+t.length):t}function c(t){0===t[0]&&(t=t.slice(1));const e=n.alloc(32,0),r=Math.max(0,32-t.length);return t.copy(e,r),e}e.decode=function(t){const e=t.readUInt8(t.length-1),r=-129&e;if(r<=0||r>=4)throw new Error("Invalid hashType "+e);const i=o.decode(t.slice(0,-1)),s=c(i.r),a=c(i.s);return{signature:n.concat([s,a],64),hashType:e}},e.encode=function(t,e){s({signature:i.BufferN(64),hashType:i.UInt8},{signature:t,hashType:e});const r=-129&e;if(r<=0||r>=4)throw new Error("Invalid hashType "+e);const a=n.allocUnsafe(1);a.writeUInt8(e,0);const c=u(t.slice(0,32)),l=u(t.slice(32,64));return n.concat([o.encode(c,l),a])}},18800:(t,e,r)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});const n=r(28036);e.input=n;const i=r(35810);e.output=i},28036:(t,e,r)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});const n=r(73357),i=r(73357);function o(t){return t===i.OPS.OP_0||n.isCanonicalScriptSignature(t)}function s(t,e){const r=n.decompile(t);return!(r.length<2)&&r[0]===i.OPS.OP_0&&(e?r.slice(1).every(o):r.slice(1).every(n.isCanonicalScriptSignature))}e.check=s,s.toJSON=()=>"multisig input"},35810:(t,e,r)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});const n=r(73357),i=r(73357),o=r(41838),s=i.OPS.OP_RESERVED;function a(t,e){const r=n.decompile(t);if(r.length<4)return!1;if(r[r.length-1]!==i.OPS.OP_CHECKMULTISIG)return!1;if(!o.Number(r[0]))return!1;if(!o.Number(r[r.length-2]))return!1;const a=r[0]-s,u=r[r.length-2]-s;return!(a<=0)&&(!(u>16)&&(!(a>u)&&(u===r.length-3&&(!!e||r.slice(1,-2).every(n.isCanonicalPubKey)))))}e.check=a,a.toJSON=()=>"multi-sig output"},32334:(t,e,r)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});const n=r(73357),i=n.OPS;function o(t){const e=n.compile(t);return e.length>1&&e[0]===i.OP_RETURN}e.check=o,o.toJSON=()=>"null data output";const s={check:o};e.output=s},7114:(t,e,r)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});const n=r(98334);e.input=n;const i=r(93202);e.output=i},98334:(t,e,r)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});const n=r(73357);function i(t){const e=n.decompile(t);return 1===e.length&&n.isCanonicalScriptSignature(e[0])}e.check=i,i.toJSON=()=>"pubKey input"},93202:(t,e,r)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});const n=r(73357),i=r(73357);function o(t){const e=n.decompile(t);return 2===e.length&&n.isCanonicalPubKey(e[0])&&e[1]===i.OPS.OP_CHECKSIG}e.check=o,o.toJSON=()=>"pubKey output"},43645:(t,e,r)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});const n=r(93797);e.input=n;const i=r(41382);e.output=i},93797:(t,e,r)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});const n=r(73357);function i(t){const e=n.decompile(t);return 2===e.length&&n.isCanonicalScriptSignature(e[0])&&n.isCanonicalPubKey(e[1])}e.check=i,i.toJSON=()=>"pubKeyHash input"},41382:(t,e,r)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});const n=r(73357),i=r(73357);function o(t){const e=n.compile(t);return 25===e.length&&e[0]===i.OPS.OP_DUP&&e[1]===i.OPS.OP_HASH160&&20===e[2]&&e[23]===i.OPS.OP_EQUALVERIFY&&e[24]===i.OPS.OP_CHECKSIG}e.check=o,o.toJSON=()=>"pubKeyHash output"},16484:(t,e,r)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});const n=r(90904);e.input=n;const i=r(60897);e.output=i},90904:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0});const i=r(73357),o=r(18800),s=r(7114),a=r(43645),u=r(25876),c=r(15112);function l(t,e){const r=i.decompile(t);if(r.length<1)return!1;const l=r[r.length-1];if(!n.isBuffer(l))return!1;const h=i.decompile(i.compile(r.slice(0,-1))),f=i.decompile(l);return!!f&&!!i.isPushOnly(h)&&(1===r.length?c.check(f)||u.check(f):!(!a.input.check(h)||!a.output.check(f))||!(!o.input.check(h,e)||!o.output.check(f))||!(!s.input.check(h)||!s.output.check(f)))}e.check=l,l.toJSON=()=>"scriptHash input"},60897:(t,e,r)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});const n=r(73357),i=r(73357);function o(t){const e=n.compile(t);return 23===e.length&&e[0]===i.OPS.OP_HASH160&&20===e[1]&&e[22]===i.OPS.OP_EQUAL}e.check=o,o.toJSON=()=>"scriptHash output"},59920:(t,e,r)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});const n=r(55704);e.output=n},55704:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0});const i=r(73357),o=r(73357),s=r(41838),a=r(2401),u=n.from("aa21a9ed","hex");function c(t){const e=i.compile(t);return e.length>37&&e[0]===o.OPS.OP_RETURN&&36===e[1]&&e.slice(2,6).equals(u)}e.check=c,c.toJSON=()=>"Witness commitment output",e.encode=function(t){a(s.Hash256bit,t);const e=n.allocUnsafe(36);return u.copy(e,0),t.copy(e,4),i.compile([o.OPS.OP_RETURN,e])},e.decode=function(t){return a(c,t),i.decompile(t)[1].slice(4,36)}},78529:(t,e,r)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});const n=r(45764);e.input=n;const i=r(25876);e.output=i},45764:(t,e,r)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});const n=r(73357);function i(t){const e=n.decompile(t);return 2===e.length&&n.isCanonicalScriptSignature(e[0])&&(r=e[1],n.isCanonicalPubKey(r)&&33===r.length);var r}e.check=i,i.toJSON=()=>"witnessPubKeyHash input"},25876:(t,e,r)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});const n=r(73357),i=r(73357);function o(t){const e=n.compile(t);return 22===e.length&&e[0]===i.OPS.OP_0&&20===e[1]}e.check=o,o.toJSON=()=>"Witness pubKeyHash output"},92476:(t,e,r)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});const n=r(15114);e.input=n;const i=r(15112);e.output=i},15114:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0});const i=r(73357),o=r(2401),s=r(18800),a=r(7114),u=r(43645);function c(t,e){if(o(o.Array,t),t.length<1)return!1;const r=t[t.length-1];if(!n.isBuffer(r))return!1;const c=i.decompile(r);if(!c||0===c.length)return!1;const l=i.compile(t.slice(0,-1));return!(!u.input.check(l)||!u.output.check(c))||!(!s.input.check(l,e)||!s.output.check(c))||!(!a.input.check(l)||!a.output.check(c))}e.check=c,c.toJSON=()=>"witnessScriptHash input"},15112:(t,e,r)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});const n=r(73357),i=r(73357);function o(t){const e=n.compile(t);return 34===e.length&&e[0]===i.OPS.OP_0&&32===e[1]}e.check=o,o.toJSON=()=>"Witness scriptHash output"},82737:(t,e,r)=>{"use strict";var n=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0});const i=r(9357),o=r(5525),s=r(73357),a=r(73357),u=r(41838),c=r(2401),l=r(57795);function h(t){const e=t.length;return l.encodingLength(e)+e}const f=n.allocUnsafe(0),p=[],d=n.from("0000000000000000000000000000000000000000000000000000000000000000","hex"),g=n.from("0000000000000000000000000000000000000000000000000000000000000001","hex"),y=n.from("ffffffffffffffff","hex"),m={script:f,valueBuffer:y};class v{constructor(){this.version=1,this.locktime=0,this.ins=[],this.outs=[]}static fromBuffer(t,e){const r=new i.BufferReader(t),n=new v;n.version=r.readInt32();const o=r.readUInt8(),s=r.readUInt8();let a=!1;o===v.ADVANCED_TRANSACTION_MARKER&&s===v.ADVANCED_TRANSACTION_FLAG?a=!0:r.offset-=2;const u=r.readVarInt();for(let t=0;t0!==t.witness.length))}weight(){return 3*this.byteLength(!1)+this.byteLength(!0)}virtualSize(){return Math.ceil(this.weight()/4)}byteLength(t=!0){const e=t&&this.hasWitnesses();return(e?10:8)+l.encodingLength(this.ins.length)+l.encodingLength(this.outs.length)+this.ins.reduce(((t,e)=>t+40+h(e.script)),0)+this.outs.reduce(((t,e)=>t+8+h(e.script)),0)+(e?this.ins.reduce(((t,e)=>t+function(t){const e=t.length;return l.encodingLength(e)+t.reduce(((t,e)=>t+h(e)),0)}(e.witness)),0):0)}clone(){const t=new v;return t.version=this.version,t.locktime=this.locktime,t.ins=this.ins.map((t=>({hash:t.hash,index:t.index,script:t.script,sequence:t.sequence,witness:t.witness}))),t.outs=this.outs.map((t=>({script:t.script,value:t.value}))),t}hashForSignature(t,e,r){if(c(u.tuple(u.UInt32,u.Buffer,u.Number),arguments),t>=this.ins.length)return g;const i=s.compile(s.decompile(e).filter((t=>t!==a.OPS.OP_CODESEPARATOR))),l=this.clone();if((31&r)===v.SIGHASH_NONE)l.outs=[],l.ins.forEach(((e,r)=>{r!==t&&(e.sequence=0)}));else if((31&r)===v.SIGHASH_SINGLE){if(t>=this.outs.length)return g;l.outs.length=t+1;for(let e=0;e{r!==t&&(e.sequence=0)}))}r&v.SIGHASH_ANYONECANPAY?(l.ins=[l.ins[t]],l.ins[0].script=i):(l.ins.forEach((t=>{t.script=f})),l.ins[t].script=i);const h=n.allocUnsafe(l.byteLength(!1)+4);return h.writeInt32LE(r,h.length-4),l.__toBuffer(h,0,!1),o.hash256(h)}hashForWitnessV0(t,e,r,s){c(u.tuple(u.UInt32,u.Buffer,u.Satoshi,u.UInt32),arguments);let a,l=n.from([]),f=d,p=d,g=d;if(s&v.SIGHASH_ANYONECANPAY||(l=n.allocUnsafe(36*this.ins.length),a=new i.BufferWriter(l,0),this.ins.forEach((t=>{a.writeSlice(t.hash),a.writeUInt32(t.index)})),p=o.hash256(l)),s&v.SIGHASH_ANYONECANPAY||(31&s)===v.SIGHASH_SINGLE||(31&s)===v.SIGHASH_NONE||(l=n.allocUnsafe(4*this.ins.length),a=new i.BufferWriter(l,0),this.ins.forEach((t=>{a.writeUInt32(t.sequence)})),g=o.hash256(l)),(31&s)!==v.SIGHASH_SINGLE&&(31&s)!==v.SIGHASH_NONE){const t=this.outs.reduce(((t,e)=>t+8+h(e.script)),0);l=n.allocUnsafe(t),a=new i.BufferWriter(l,0),this.outs.forEach((t=>{a.writeUInt64(t.value),a.writeVarSlice(t.script)})),f=o.hash256(l)}else if((31&s)===v.SIGHASH_SINGLE&&t{o.writeSlice(t.hash),o.writeUInt32(t.index),o.writeVarSlice(t.script),o.writeUInt32(t.sequence)})),o.writeVarInt(this.outs.length),this.outs.forEach((t=>{void 0!==t.value?o.writeUInt64(t.value):o.writeSlice(t.valueBuffer),o.writeVarSlice(t.script)})),s&&this.ins.forEach((t=>{o.writeVector(t.witness)})),o.writeUInt32(this.locktime),void 0!==e?t.slice(e,o.offset):t}}v.DEFAULT_SEQUENCE=4294967295,v.SIGHASH_ALL=1,v.SIGHASH_NONE=2,v.SIGHASH_SINGLE=3,v.SIGHASH_ANYONECANPAY=128,v.ADVANCED_TRANSACTION_MARKER=0,v.ADVANCED_TRANSACTION_FLAG=1,e.Transaction=v},31473:(t,e,r)=>{"use strict";var n=r(25108),i=r(48764).Buffer;Object.defineProperty(e,"__esModule",{value:!0});const o=r(95488),s=r(9357),a=r(47129),u=r(5525),c=r(44018),l=r(74378),h=r(84972),f=r(73357),p=r(73357),d=r(82737),g=r(41838),y=r(2401),m=a.types,v=new Set(["p2pkh","p2pk","p2wpkh","p2ms","p2sh-p2pkh","p2sh-p2pk","p2sh-p2wpkh","p2sh-p2ms","p2wsh-p2pkh","p2wsh-p2pk","p2wsh-p2ms","p2sh-p2wsh-p2pkh","p2sh-p2wsh-p2pk","p2sh-p2wsh-p2ms"]);function b(t,e,r){try{y(t,e)}catch(t){throw new Error(r)}}class w{constructor(t=l.bitcoin,e=2500){this.network=t,this.maximumFeeRate=e,this.__PREV_TX_SET={},this.__INPUTS=[],this.__TX=new d.Transaction,this.__TX.version=2,this.__USE_LOW_R=!1,n.warn("Deprecation Warning: TransactionBuilder will be removed in the future. (v6.x.x or later) Please use the Psbt class instead. Examples of usage are available in the transactions-psbt.js integration test file on our Github. A high level explanation is available in the psbt.ts and psbt.js files as well.")}static fromTransaction(t,e){const r=new w(e);return r.setVersion(t.version),r.setLockTime(t.locktime),t.outs.forEach((t=>{r.addOutput(t.script,t.value)})),t.ins.forEach((t=>{r.__addInputUnsafe(t.hash,t.index,{sequence:t.sequence,script:t.script,witness:t.witness})})),r.__INPUTS.forEach(((e,r)=>{!function(t,e,r){if(t.redeemScriptType!==m.P2MS||!t.redeemScript)return;if(t.pubkeys.length===t.signatures.length)return;const n=t.signatures.concat();t.signatures=t.pubkeys.map((i=>{const o=c.fromPublicKey(i);let s;return n.some(((i,a)=>{if(!i)return!1;const u=f.signature.decode(i),c=e.hashForSignature(r,t.redeemScript,u.hashType);return!!o.verify(c,u.signature)&&(n[a]=void 0,s=i,!0)})),s}))}(e,t,r)})),r}setLowR(t){return y(y.maybe(y.Boolean),t),void 0===t&&(t=!0),this.__USE_LOW_R=t,t}setLockTime(t){if(y(g.UInt32,t),this.__INPUTS.some((t=>!!t.signatures&&t.signatures.some((t=>void 0!==t)))))throw new Error("No, this would invalidate signatures");this.__TX.locktime=t}setVersion(t){y(g.UInt32,t),this.__TX.version=t}addInput(t,e,r,n){if(!this.__canModifyInputs())throw new Error("No, this would invalidate signatures");let o;if("string"==typeof(a=t)||a instanceof String)t=s.reverseBuffer(i.from(t,"hex"));else if(function(t){return t instanceof d.Transaction}(t)){const r=t.outs[e];n=r.script,o=r.value,t=t.getHash(!1)}var a;return this.__addInputUnsafe(t,e,{sequence:r,prevOutScript:n,value:o})}addOutput(t,e){if(!this.__canModifyOutputs())throw new Error("No, this would invalidate signatures");return"string"==typeof t&&(t=o.toOutputScript(t,this.network)),this.__TX.addOutput(t,e)}build(){return this.__build(!1)}buildIncomplete(){return this.__build(!0)}sign(t,e,r,i,o,s){!function({input:t,ourPubKey:e,keyPair:r,signatureHash:n,hashType:i,useLowR:o}){let s=!1;for(const[a,u]of t.pubkeys.entries()){if(!e.equals(u))continue;if(t.signatures[a])throw new Error("Signature already exists");if(33!==e.length&&t.hasWitness)throw new Error("BIP143 rejects uncompressed public keys in P2WPKH or P2WSH");const c=r.sign(n,o);t.signatures[a]=f.signature.encode(c,i),s=!0}if(!s)throw new Error("Key pair cannot sign for this input")}(function(t,e,r,i,o,s,a,u,c,l,p){let w;if("number"==typeof o)n.warn("DEPRECATED: TransactionBuilder sign method arguments will change in v6, please use the TxbSignArg interface"),w=o;else{if("object"!=typeof o)throw new TypeError("TransactionBuilder sign first arg must be TxbSignArg or number");!function(t,e){if(!v.has(e.prevOutScriptType))throw new TypeError(`Unknown prevOutScriptType "${e.prevOutScriptType}"`);b(y.Number,e.vin,"sign must include vin parameter as Number (input index)"),b(g.Signer,e.keyPair,"sign must include keyPair parameter as Signer interface"),b(y.maybe(y.Number),e.hashType,"sign hashType parameter must be a number");const r=(t[e.vin]||[]).prevOutType,n=e.prevOutScriptType;switch(n){case"p2pkh":if(r&&"pubkeyhash"!==r)throw new TypeError(`input #${e.vin} is not of type p2pkh: ${r}`);b(y.value(void 0),e.witnessScript,`${n} requires NO witnessScript`),b(y.value(void 0),e.redeemScript,`${n} requires NO redeemScript`),b(y.value(void 0),e.witnessValue,`${n} requires NO witnessValue`);break;case"p2pk":if(r&&"pubkey"!==r)throw new TypeError(`input #${e.vin} is not of type p2pk: ${r}`);b(y.value(void 0),e.witnessScript,`${n} requires NO witnessScript`),b(y.value(void 0),e.redeemScript,`${n} requires NO redeemScript`),b(y.value(void 0),e.witnessValue,`${n} requires NO witnessValue`);break;case"p2wpkh":if(r&&"witnesspubkeyhash"!==r)throw new TypeError(`input #${e.vin} is not of type p2wpkh: ${r}`);b(y.value(void 0),e.witnessScript,`${n} requires NO witnessScript`),b(y.value(void 0),e.redeemScript,`${n} requires NO redeemScript`),b(g.Satoshi,e.witnessValue,`${n} requires witnessValue`);break;case"p2ms":if(r&&"multisig"!==r)throw new TypeError(`input #${e.vin} is not of type p2ms: ${r}`);b(y.value(void 0),e.witnessScript,`${n} requires NO witnessScript`),b(y.value(void 0),e.redeemScript,`${n} requires NO redeemScript`),b(y.value(void 0),e.witnessValue,`${n} requires NO witnessValue`);break;case"p2sh-p2wpkh":if(r&&"scripthash"!==r)throw new TypeError(`input #${e.vin} is not of type p2sh-p2wpkh: ${r}`);b(y.value(void 0),e.witnessScript,`${n} requires NO witnessScript`),b(y.Buffer,e.redeemScript,`${n} requires redeemScript`),b(g.Satoshi,e.witnessValue,`${n} requires witnessValue`);break;case"p2sh-p2ms":case"p2sh-p2pk":case"p2sh-p2pkh":if(r&&"scripthash"!==r)throw new TypeError(`input #${e.vin} is not of type ${n}: ${r}`);b(y.value(void 0),e.witnessScript,`${n} requires NO witnessScript`),b(y.Buffer,e.redeemScript,`${n} requires redeemScript`),b(y.value(void 0),e.witnessValue,`${n} requires NO witnessValue`);break;case"p2wsh-p2ms":case"p2wsh-p2pk":case"p2wsh-p2pkh":if(r&&"witnessscripthash"!==r)throw new TypeError(`input #${e.vin} is not of type ${n}: ${r}`);b(y.Buffer,e.witnessScript,`${n} requires witnessScript`),b(y.value(void 0),e.redeemScript,`${n} requires NO redeemScript`),b(g.Satoshi,e.witnessValue,`${n} requires witnessValue`);break;case"p2sh-p2wsh-p2ms":case"p2sh-p2wsh-p2pk":case"p2sh-p2wsh-p2pkh":if(r&&"scripthash"!==r)throw new TypeError(`input #${e.vin} is not of type ${n}: ${r}`);b(y.Buffer,e.witnessScript,`${n} requires witnessScript`),b(y.Buffer,e.redeemScript,`${n} requires witnessScript`),b(g.Satoshi,e.witnessValue,`${n} requires witnessScript`)}}(e,o),({vin:w,keyPair:s,redeemScript:a,hashType:u,witnessValue:c,witnessScript:l}=o)}if(void 0===s)throw new Error("sign requires keypair");if(s.network&&s.network!==t)throw new TypeError("Inconsistent network");if(!e[w])throw new Error("No input at index: "+w);if(r(u=u||d.Transaction.SIGHASH_ALL))throw new Error("Transaction needs outputs");const _=e[w];if(void 0!==_.redeemScript&&a&&!_.redeemScript.equals(a))throw new Error("Inconsistent redeemScript");const x=s.publicKey||s.getPublicKey&&s.getPublicKey();if(!S(_)){if(void 0!==c){if(void 0!==_.value&&_.value!==c)throw new Error("Input did not match witnessValue");y(g.Satoshi,c),_.value=c}if(!S(_)){const t=function(t,e,r,n){if(r&&n){const i=h.p2wsh({redeem:{output:n}}),o=h.p2wsh({output:r}),s=h.p2sh({redeem:{output:r}}),a=h.p2sh({redeem:i});if(!i.hash.equals(o.hash))throw new Error("Witness script inconsistent with prevOutScript");if(!s.hash.equals(a.hash))throw new Error("Redeem script inconsistent with prevOutScript");const u=E(i.redeem.output,e);if(!u.pubkeys)throw new Error(u.type+" not supported as witnessScript ("+f.toASM(n)+")");t.signatures&&t.signatures.some((t=>void 0!==t))&&(u.signatures=t.signatures);const c=n;if(u.type===m.P2WPKH)throw new Error("P2SH(P2WSH(P2WPKH)) is a consensus failure");return{redeemScript:r,redeemScriptType:m.P2WSH,witnessScript:n,witnessScriptType:u.type,prevOutType:m.P2SH,prevOutScript:s.output,hasWitness:!0,signScript:c,signType:u.type,pubkeys:u.pubkeys,signatures:u.signatures,maxSignatures:u.maxSignatures}}if(r){const n=h.p2sh({redeem:{output:r}});if(t.prevOutScript){let e;try{e=h.p2sh({output:t.prevOutScript})}catch(t){throw new Error("PrevOutScript must be P2SH")}if(!n.hash.equals(e.hash))throw new Error("Redeem script inconsistent with prevOutScript")}const i=E(n.redeem.output,e);if(!i.pubkeys)throw new Error(i.type+" not supported as redeemScript ("+f.toASM(r)+")");t.signatures&&t.signatures.some((t=>void 0!==t))&&(i.signatures=t.signatures);let o=r;return i.type===m.P2WPKH&&(o=h.p2pkh({pubkey:i.pubkeys[0]}).output),{redeemScript:r,redeemScriptType:i.type,prevOutType:m.P2SH,prevOutScript:n.output,hasWitness:i.type===m.P2WPKH,signScript:o,signType:i.type,pubkeys:i.pubkeys,signatures:i.signatures,maxSignatures:i.maxSignatures}}if(n){const r=h.p2wsh({redeem:{output:n}});if(t.prevOutScript){const e=h.p2wsh({output:t.prevOutScript});if(!r.hash.equals(e.hash))throw new Error("Witness script inconsistent with prevOutScript")}const i=E(r.redeem.output,e);if(!i.pubkeys)throw new Error(i.type+" not supported as witnessScript ("+f.toASM(n)+")");t.signatures&&t.signatures.some((t=>void 0!==t))&&(i.signatures=t.signatures);const o=n;if(i.type===m.P2WPKH)throw new Error("P2WSH(P2WPKH) is a consensus failure");return{witnessScript:n,witnessScriptType:i.type,prevOutType:m.P2WSH,prevOutScript:r.output,hasWitness:!0,signScript:o,signType:i.type,pubkeys:i.pubkeys,signatures:i.signatures,maxSignatures:i.maxSignatures}}if(t.prevOutType&&t.prevOutScript){if(t.prevOutType===m.P2SH)throw new Error("PrevOutScript is "+t.prevOutType+", requires redeemScript");if(t.prevOutType===m.P2WSH)throw new Error("PrevOutScript is "+t.prevOutType+", requires witnessScript");if(!t.prevOutScript)throw new Error("PrevOutScript is missing");const r=E(t.prevOutScript,e);if(!r.pubkeys)throw new Error(r.type+" not supported ("+f.toASM(t.prevOutScript)+")");t.signatures&&t.signatures.some((t=>void 0!==t))&&(r.signatures=t.signatures);let n=t.prevOutScript;return r.type===m.P2WPKH&&(n=h.p2pkh({pubkey:r.pubkeys[0]}).output),{prevOutType:r.type,prevOutScript:t.prevOutScript,hasWitness:r.type===m.P2WPKH,signScript:n,signType:r.type,pubkeys:r.pubkeys,signatures:r.signatures,maxSignatures:r.maxSignatures}}const i=h.p2pkh({pubkey:e}).output;return{prevOutType:m.P2PKH,prevOutScript:i,hasWitness:!1,signScript:i,signType:m.P2PKH,pubkeys:[e],signatures:[void 0]}}(_,x,a,l);Object.assign(_,t)}if(!S(_))throw Error(_.prevOutType+" not supported")}let T;return T=_.hasWitness?i.hashForWitnessV0(w,_.signScript,_.value,u):i.hashForSignature(w,_.signScript,u),{input:_,ourPubKey:x,keyPair:s,signatureHash:T,hashType:u,useLowR:!!p}}(this.network,this.__INPUTS,this.__needsOutputs.bind(this),this.__TX,t,e,r,i,o,s,this.__USE_LOW_R))}__addInputUnsafe(t,e,r){if(d.Transaction.isCoinbaseHash(t))throw new Error("coinbase inputs not supported");const n=t.toString("hex")+":"+e;if(void 0!==this.__PREV_TX_SET[n])throw new Error("Duplicate TxOut: "+n);let i={};if(void 0!==r.script&&(i=_(r.script,r.witness||[])),void 0!==r.value&&(i.value=r.value),!i.prevOutScript&&r.prevOutScript){let t;if(!i.pubkeys&&!i.signatures){const e=E(r.prevOutScript);e.pubkeys&&(i.pubkeys=e.pubkeys,i.signatures=e.signatures),t=e.type}i.prevOutScript=r.prevOutScript,i.prevOutType=t||a.output(r.prevOutScript)}const o=this.__TX.addInput(t,e,r.sequence,r.scriptSig);return this.__INPUTS[o]=i,this.__PREV_TX_SET[n]=!0,o}__build(t){if(!t){if(!this.__TX.ins.length)throw new Error("Transaction has no inputs");if(!this.__TX.outs.length)throw new Error("Transaction has no outputs")}const e=this.__TX.clone();if(this.__INPUTS.forEach(((r,n)=>{if(!r.prevOutType&&!t)throw new Error("Transaction is not complete");const i=x(r.prevOutType,r,t);if(i)e.setInputScript(n,i.input),e.setWitness(n,i.witness);else{if(!t&&r.prevOutType===m.NONSTANDARD)throw new Error("Unknown input type");if(!t)throw new Error("Not enough information")}})),!t&&this.__overMaximumFees(e.virtualSize()))throw new Error("Transaction has absurd fees");return e}__canModifyInputs(){return this.__INPUTS.every((t=>!t.signatures||t.signatures.every((t=>!t||0!=(T(t)&d.Transaction.SIGHASH_ANYONECANPAY)))))}__needsOutputs(t){return t===d.Transaction.SIGHASH_ALL?0===this.__TX.outs.length:0===this.__TX.outs.length&&this.__INPUTS.some((t=>!!t.signatures&&t.signatures.some((t=>!!t&&!(T(t)&d.Transaction.SIGHASH_NONE)))))}__canModifyOutputs(){const t=this.__TX.ins.length,e=this.__TX.outs.length;return this.__INPUTS.every((r=>void 0===r.signatures||r.signatures.every((r=>{if(!r)return!0;const n=31&T(r);return n===d.Transaction.SIGHASH_NONE||n===d.Transaction.SIGHASH_SINGLE&&t<=e}))))}__overMaximumFees(t){return(this.__INPUTS.reduce(((t,e)=>t+(e.value>>>0)),0)-this.__TX.outs.reduce(((t,e)=>t+e.value),0))/t>this.maximumFeeRate}}function _(t,e,r,n){if(0===t.length&&0===e.length)return{};if(!r){let n=a.input(t,!0),i=a.witness(e,!0);n===m.NONSTANDARD&&(n=void 0),i===m.NONSTANDARD&&(i=void 0),r=n||i}switch(r){case m.P2WPKH:{const{output:t,pubkey:r,signature:n}=h.p2wpkh({witness:e});return{prevOutScript:t,prevOutType:m.P2WPKH,pubkeys:[r],signatures:[n]}}case m.P2PKH:{const{output:e,pubkey:r,signature:n}=h.p2pkh({input:t});return{prevOutScript:e,prevOutType:m.P2PKH,pubkeys:[r],signatures:[n]}}case m.P2PK:{const{signature:e}=h.p2pk({input:t});return{prevOutType:m.P2PK,pubkeys:[void 0],signatures:[e]}}case m.P2MS:{const{m:e,pubkeys:r,signatures:i}=h.p2ms({input:t,output:n},{allowIncomplete:!0});return{prevOutType:m.P2MS,pubkeys:r,signatures:i,maxSignatures:e}}}if(r===m.P2SH){const{output:r,redeem:n}=h.p2sh({input:t,witness:e}),i=a.output(n.output),o=_(n.input,n.witness,i,n.output);return o.prevOutType?{prevOutScript:r,prevOutType:m.P2SH,redeemScript:n.output,redeemScriptType:o.prevOutType,witnessScript:o.witnessScript,witnessScriptType:o.witnessScriptType,pubkeys:o.pubkeys,signatures:o.signatures}:{}}if(r===m.P2WSH){const{output:r,redeem:n}=h.p2wsh({input:t,witness:e}),i=a.output(n.output);let o;return o=i===m.P2WPKH?_(n.input,n.witness,i):_(f.compile(n.witness),[],i,n.output),o.prevOutType?{prevOutScript:r,prevOutType:m.P2WSH,witnessScript:n.output,witnessScriptType:o.prevOutType,pubkeys:o.pubkeys,signatures:o.signatures}:{}}return{prevOutType:m.NONSTANDARD,prevOutScript:t}}function E(t,e){y(g.Buffer,t);const r=a.output(t);switch(r){case m.P2PKH:{if(!e)return{type:r};const n=h.p2pkh({output:t}).hash,i=u.hash160(e);return n.equals(i)?{type:r,pubkeys:[e],signatures:[void 0]}:{type:r}}case m.P2WPKH:{if(!e)return{type:r};const n=h.p2wpkh({output:t}).hash,i=u.hash160(e);return n.equals(i)?{type:r,pubkeys:[e],signatures:[void 0]}:{type:r}}case m.P2PK:return{type:r,pubkeys:[h.p2pk({output:t}).pubkey],signatures:[void 0]};case m.P2MS:{const e=h.p2ms({output:t});return{type:r,pubkeys:e.pubkeys,signatures:e.pubkeys.map((()=>{})),maxSignatures:e.m}}}return{type:r}}function x(t,e,r){const n=e.pubkeys||[];let i=e.signatures||[];switch(t){case m.P2PKH:if(0===n.length)break;if(0===i.length)break;return h.p2pkh({pubkey:n[0],signature:i[0]});case m.P2WPKH:if(0===n.length)break;if(0===i.length)break;return h.p2wpkh({pubkey:n[0],signature:i[0]});case m.P2PK:if(0===n.length)break;if(0===i.length)break;return h.p2pk({signature:i[0]});case m.P2MS:{const t=e.maxSignatures;i=r?i.map((t=>t||p.OPS.OP_0)):i.filter((t=>t));const o=!r||t===i.length;return h.p2ms({m:t,pubkeys:n,signatures:i},{allowIncomplete:r,validate:o})}case m.P2SH:{const t=x(e.redeemScriptType,e,r);if(!t)return;return h.p2sh({redeem:{output:t.output||e.redeemScript,input:t.input,witness:t.witness}})}case m.P2WSH:{const t=x(e.witnessScriptType,e,r);if(!t)return;return h.p2wsh({redeem:{output:e.witnessScript,input:t.input,witness:t.witness}})}}}function S(t){return void 0!==t.signScript&&void 0!==t.signType&&void 0!==t.pubkeys&&void 0!==t.signatures&&t.signatures.length===t.pubkeys.length&&t.pubkeys.length>0&&(!1===t.hasWitness||void 0!==t.value)}function T(t){return t.readUInt8(t.length-1)}e.TransactionBuilder=w},41838:(t,e,r)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});const n=r(2401),i=Math.pow(2,31)-1;function o(t){return n.String(t)&&!!t.match(/^(m\/)?(\d+'?\/)*\d+'?$/)}e.UInt31=function(t){return n.UInt32(t)&&t<=i},e.BIP32Path=o,o.toJSON=()=>"BIP32 derivation path",e.Signer=function(t){return(n.Buffer(t.publicKey)||"function"==typeof t.getPublicKey)&&"function"==typeof t.sign},e.Satoshi=function(t){return n.UInt53(t)&&t<=21e14},e.ECPoint=n.quacksLike("Point"),e.Network=n.compile({messagePrefix:n.oneOf(n.Buffer,n.String),bip32:{public:n.UInt32,private:n.UInt32},pubKeyHash:n.UInt8,scriptHash:n.UInt8,wif:n.UInt8}),e.Buffer256bit=n.BufferN(32),e.Hash160bit=n.BufferN(20),e.Hash256bit=n.BufferN(32),e.Number=n.Number,e.Array=n.Array,e.Boolean=n.Boolean,e.String=n.String,e.Buffer=n.Buffer,e.Hex=n.Hex,e.maybe=n.maybe,e.tuple=n.tuple,e.UInt8=n.UInt8,e.UInt32=n.UInt32,e.Function=n.Function,e.BufferN=n.BufferN,e.Null=n.Null,e.oneOf=n.oneOf},77191:(t,e,r)=>{const n=r(58162);t.exports=n("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz")},53310:(t,e,r)=>{"use strict";var n=r(91518),i=r(89509).Buffer;t.exports=function(t){function e(e){var r=e.slice(0,-4),n=e.slice(-4),i=t(r);if(!(n[0]^i[0]|n[1]^i[1]|n[2]^i[2]|n[3]^i[3]))return r}return{encode:function(e){var r=t(e);return n.encode(i.concat([e,r],e.length+4))},decode:function(t){var r=e(n.decode(t));if(!r)throw new Error("Invalid checksum");return r},decodeUnsafe:function(t){var r=n.decodeUnsafe(t);if(r)return e(r)}}}},58334:(t,e,r)=>{"use strict";var n=r(23482),i=r(53310);t.exports=i((function(t){var e=n("sha256").update(t).digest();return n("sha256").update(e).digest()}))},32179:(t,e,r)=>{"use strict";var n=r(89509).Buffer;t.exports=function(t){if(t.length>=255)throw new TypeError("Alphabet too long");for(var e=new Uint8Array(256),r=0;r>>0,l=new Uint8Array(s);t[r];){var h=e[t.charCodeAt(r)];if(255===h)return;for(var f=0,p=s-1;(0!==h||f>>0,l[p]=h%256>>>0,h=h/256>>>0;if(0!==h)throw new Error("Non-zero carry");o=f,r++}for(var d=s-o;d!==s&&0===l[d];)d++;var g=n.allocUnsafe(i+(s-d));g.fill(0,0,i);for(var y=i;d!==s;)g[y++]=l[d++];return g}return{encode:function(e){if((Array.isArray(e)||e instanceof Uint8Array)&&(e=n.from(e)),!n.isBuffer(e))throw new TypeError("Expected Buffer");if(0===e.length)return"";for(var r=0,i=0,o=0,s=e.length;o!==s&&0===e[o];)o++,r++;for(var c=(s-o)*l+1>>>0,h=new Uint8Array(c);o!==s;){for(var f=e[o],p=0,d=c-1;(0!==f||p>>0,h[d]=f%a>>>0,f=f/a>>>0;if(0!==f)throw new Error("Non-zero carry");i=p,o++}for(var g=c-i;g!==c&&0===h[g];)g++;for(var y=u.repeat(r);g{var n=r(32179);t.exports=n("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz")},48764:(t,e,r)=>{"use strict";var n=r(25108);const i=r(79742),o=r(80645),s="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=c,e.SlowBuffer=function(t){return+t!=t&&(t=0),c.alloc(+t)},e.INSPECT_MAX_BYTES=50;const a=2147483647;function u(t){if(t>a)throw new RangeError('The value "'+t+'" is invalid for option "size"');const e=new Uint8Array(t);return Object.setPrototypeOf(e,c.prototype),e}function c(t,e,r){if("number"==typeof t){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return f(t)}return l(t,e,r)}function l(t,e,r){if("string"==typeof t)return function(t,e){if("string"==typeof e&&""!==e||(e="utf8"),!c.isEncoding(e))throw new TypeError("Unknown encoding: "+e);const r=0|y(t,e);let n=u(r);const i=n.write(t,e);return i!==r&&(n=n.slice(0,i)),n}(t,e);if(ArrayBuffer.isView(t))return function(t){if(Y(t,Uint8Array)){const e=new Uint8Array(t);return d(e.buffer,e.byteOffset,e.byteLength)}return p(t)}(t);if(null==t)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(Y(t,ArrayBuffer)||t&&Y(t.buffer,ArrayBuffer))return d(t,e,r);if("undefined"!=typeof SharedArrayBuffer&&(Y(t,SharedArrayBuffer)||t&&Y(t.buffer,SharedArrayBuffer)))return d(t,e,r);if("number"==typeof t)throw new TypeError('The "value" argument must not be of type number. Received type number');const n=t.valueOf&&t.valueOf();if(null!=n&&n!==t)return c.from(n,e,r);const i=function(t){if(c.isBuffer(t)){const e=0|g(t.length),r=u(e);return 0===r.length||t.copy(r,0,0,e),r}return void 0!==t.length?"number"!=typeof t.length||J(t.length)?u(0):p(t):"Buffer"===t.type&&Array.isArray(t.data)?p(t.data):void 0}(t);if(i)return i;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof t[Symbol.toPrimitive])return c.from(t[Symbol.toPrimitive]("string"),e,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t)}function h(t){if("number"!=typeof t)throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function f(t){return h(t),u(t<0?0:0|g(t))}function p(t){const e=t.length<0?0:0|g(t.length),r=u(e);for(let n=0;n=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return 0|t}function y(t,e){if(c.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||Y(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);const r=t.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;let i=!1;for(;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return G(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return z(t).length;default:if(i)return n?-1:G(t).length;e=(""+e).toLowerCase(),i=!0}}function m(t,e,r){let n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return C(this,e,r);case"utf8":case"utf-8":return k(this,e,r);case"ascii":return O(this,e,r);case"latin1":case"binary":return P(this,e,r);case"base64":return I(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return N(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function v(t,e,r){const n=t[e];t[e]=t[r],t[r]=n}function b(t,e,r,n,i){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),J(r=+r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof e&&(e=c.from(e,n)),c.isBuffer(e))return 0===e.length?-1:w(t,e,r,n,i);if("number"==typeof e)return e&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):w(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function w(t,e,r,n,i){let o,s=1,a=t.length,u=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;s=2,a/=2,u/=2,r/=2}function c(t,e){return 1===s?t[e]:t.readUInt16BE(e*s)}if(i){let n=-1;for(o=r;oa&&(r=a-u),o=r;o>=0;o--){let r=!0;for(let n=0;ni&&(n=i):n=i;const o=e.length;let s;for(n>o/2&&(n=o/2),s=0;s>8,i=r%256,o.push(i),o.push(n);return o}(e,t.length-r),t,r,n)}function I(t,e,r){return 0===e&&r===t.length?i.fromByteArray(t):i.fromByteArray(t.slice(e,r))}function k(t,e,r){r=Math.min(t.length,r);const n=[];let i=e;for(;i239?4:e>223?3:e>191?2:1;if(i+s<=r){let r,n,a,u;switch(s){case 1:e<128&&(o=e);break;case 2:r=t[i+1],128==(192&r)&&(u=(31&e)<<6|63&r,u>127&&(o=u));break;case 3:r=t[i+1],n=t[i+2],128==(192&r)&&128==(192&n)&&(u=(15&e)<<12|(63&r)<<6|63&n,u>2047&&(u<55296||u>57343)&&(o=u));break;case 4:r=t[i+1],n=t[i+2],a=t[i+3],128==(192&r)&&128==(192&n)&&128==(192&a)&&(u=(15&e)<<18|(63&r)<<12|(63&n)<<6|63&a,u>65535&&u<1114112&&(o=u))}}null===o?(o=65533,s=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|1023&o),n.push(o),i+=s}return function(t){const e=t.length;if(e<=A)return String.fromCharCode.apply(String,t);let r="",n=0;for(;nn.length?(c.isBuffer(e)||(e=c.from(e)),e.copy(n,i)):Uint8Array.prototype.set.call(n,e,i);else{if(!c.isBuffer(e))throw new TypeError('"list" argument must be an Array of Buffers');e.copy(n,i)}i+=e.length}return n},c.byteLength=y,c.prototype._isBuffer=!0,c.prototype.swap16=function(){const t=this.length;if(t%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let e=0;er&&(t+=" ... "),""},s&&(c.prototype[s]=c.prototype.inspect),c.prototype.compare=function(t,e,r,n,i){if(Y(t,Uint8Array)&&(t=c.from(t,t.offset,t.byteLength)),!c.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(this===t)return 0;let o=(i>>>=0)-(n>>>=0),s=(r>>>=0)-(e>>>=0);const a=Math.min(o,s),u=this.slice(n,i),l=t.slice(e,r);for(let t=0;t>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}const i=this.length-e;if((void 0===r||r>i)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");let o=!1;for(;;)switch(n){case"hex":return _(this,t,e,r);case"utf8":case"utf-8":return E(this,t,e,r);case"ascii":case"latin1":case"binary":return x(this,t,e,r);case"base64":return S(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return T(this,t,e,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const A=4096;function O(t,e,r){let n="";r=Math.min(t.length,r);for(let i=e;in)&&(r=n);let i="";for(let n=e;nr)throw new RangeError("Trying to access beyond buffer length")}function B(t,e,r,n,i,o){if(!c.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}function R(t,e,r,n,i){V(e,n,i,t,r,7);let o=Number(e&BigInt(4294967295));t[r++]=o,o>>=8,t[r++]=o,o>>=8,t[r++]=o,o>>=8,t[r++]=o;let s=Number(e>>BigInt(32)&BigInt(4294967295));return t[r++]=s,s>>=8,t[r++]=s,s>>=8,t[r++]=s,s>>=8,t[r++]=s,r}function D(t,e,r,n,i){V(e,n,i,t,r,7);let o=Number(e&BigInt(4294967295));t[r+7]=o,o>>=8,t[r+6]=o,o>>=8,t[r+5]=o,o>>=8,t[r+4]=o;let s=Number(e>>BigInt(32)&BigInt(4294967295));return t[r+3]=s,s>>=8,t[r+2]=s,s>>=8,t[r+1]=s,s>>=8,t[r]=s,r+8}function L(t,e,r,n,i,o){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function U(t,e,r,n,i){return e=+e,r>>>=0,i||L(t,0,r,4),o.write(t,e,r,n,23,4),r+4}function H(t,e,r,n,i){return e=+e,r>>>=0,i||L(t,0,r,8),o.write(t,e,r,n,52,8),r+8}c.prototype.slice=function(t,e){const r=this.length;(t=~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),(e=void 0===e?r:~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),e>>=0,e>>>=0,r||M(t,e,this.length);let n=this[t],i=1,o=0;for(;++o>>=0,e>>>=0,r||M(t,e,this.length);let n=this[t+--e],i=1;for(;e>0&&(i*=256);)n+=this[t+--e]*i;return n},c.prototype.readUint8=c.prototype.readUInt8=function(t,e){return t>>>=0,e||M(t,1,this.length),this[t]},c.prototype.readUint16LE=c.prototype.readUInt16LE=function(t,e){return t>>>=0,e||M(t,2,this.length),this[t]|this[t+1]<<8},c.prototype.readUint16BE=c.prototype.readUInt16BE=function(t,e){return t>>>=0,e||M(t,2,this.length),this[t]<<8|this[t+1]},c.prototype.readUint32LE=c.prototype.readUInt32LE=function(t,e){return t>>>=0,e||M(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},c.prototype.readUint32BE=c.prototype.readUInt32BE=function(t,e){return t>>>=0,e||M(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},c.prototype.readBigUInt64LE=Q((function(t){W(t>>>=0,"offset");const e=this[t],r=this[t+7];void 0!==e&&void 0!==r||K(t,this.length-8);const n=e+256*this[++t]+65536*this[++t]+this[++t]*2**24,i=this[++t]+256*this[++t]+65536*this[++t]+r*2**24;return BigInt(n)+(BigInt(i)<>>=0,"offset");const e=this[t],r=this[t+7];void 0!==e&&void 0!==r||K(t,this.length-8);const n=e*2**24+65536*this[++t]+256*this[++t]+this[++t],i=this[++t]*2**24+65536*this[++t]+256*this[++t]+r;return(BigInt(n)<>>=0,e>>>=0,r||M(t,e,this.length);let n=this[t],i=1,o=0;for(;++o=i&&(n-=Math.pow(2,8*e)),n},c.prototype.readIntBE=function(t,e,r){t>>>=0,e>>>=0,r||M(t,e,this.length);let n=e,i=1,o=this[t+--n];for(;n>0&&(i*=256);)o+=this[t+--n]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*e)),o},c.prototype.readInt8=function(t,e){return t>>>=0,e||M(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},c.prototype.readInt16LE=function(t,e){t>>>=0,e||M(t,2,this.length);const r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},c.prototype.readInt16BE=function(t,e){t>>>=0,e||M(t,2,this.length);const r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},c.prototype.readInt32LE=function(t,e){return t>>>=0,e||M(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},c.prototype.readInt32BE=function(t,e){return t>>>=0,e||M(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},c.prototype.readBigInt64LE=Q((function(t){W(t>>>=0,"offset");const e=this[t],r=this[t+7];void 0!==e&&void 0!==r||K(t,this.length-8);const n=this[t+4]+256*this[t+5]+65536*this[t+6]+(r<<24);return(BigInt(n)<>>=0,"offset");const e=this[t],r=this[t+7];void 0!==e&&void 0!==r||K(t,this.length-8);const n=(e<<24)+65536*this[++t]+256*this[++t]+this[++t];return(BigInt(n)<>>=0,e||M(t,4,this.length),o.read(this,t,!0,23,4)},c.prototype.readFloatBE=function(t,e){return t>>>=0,e||M(t,4,this.length),o.read(this,t,!1,23,4)},c.prototype.readDoubleLE=function(t,e){return t>>>=0,e||M(t,8,this.length),o.read(this,t,!0,52,8)},c.prototype.readDoubleBE=function(t,e){return t>>>=0,e||M(t,8,this.length),o.read(this,t,!1,52,8)},c.prototype.writeUintLE=c.prototype.writeUIntLE=function(t,e,r,n){t=+t,e>>>=0,r>>>=0,n||B(this,t,e,r,Math.pow(2,8*r)-1,0);let i=1,o=0;for(this[e]=255&t;++o>>=0,r>>>=0,n||B(this,t,e,r,Math.pow(2,8*r)-1,0);let i=r-1,o=1;for(this[e+i]=255&t;--i>=0&&(o*=256);)this[e+i]=t/o&255;return e+r},c.prototype.writeUint8=c.prototype.writeUInt8=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,1,255,0),this[e]=255&t,e+1},c.prototype.writeUint16LE=c.prototype.writeUInt16LE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},c.prototype.writeUint16BE=c.prototype.writeUInt16BE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},c.prototype.writeUint32LE=c.prototype.writeUInt32LE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},c.prototype.writeUint32BE=c.prototype.writeUInt32BE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},c.prototype.writeBigUInt64LE=Q((function(t,e=0){return R(this,t,e,BigInt(0),BigInt("0xffffffffffffffff"))})),c.prototype.writeBigUInt64BE=Q((function(t,e=0){return D(this,t,e,BigInt(0),BigInt("0xffffffffffffffff"))})),c.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e>>>=0,!n){const n=Math.pow(2,8*r-1);B(this,t,e,r,n-1,-n)}let i=0,o=1,s=0;for(this[e]=255&t;++i>0)-s&255;return e+r},c.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e>>>=0,!n){const n=Math.pow(2,8*r-1);B(this,t,e,r,n-1,-n)}let i=r-1,o=1,s=0;for(this[e+i]=255&t;--i>=0&&(o*=256);)t<0&&0===s&&0!==this[e+i+1]&&(s=1),this[e+i]=(t/o>>0)-s&255;return e+r},c.prototype.writeInt8=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},c.prototype.writeInt16LE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},c.prototype.writeInt16BE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},c.prototype.writeInt32LE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},c.prototype.writeInt32BE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},c.prototype.writeBigInt64LE=Q((function(t,e=0){return R(this,t,e,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),c.prototype.writeBigInt64BE=Q((function(t,e=0){return D(this,t,e,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),c.prototype.writeFloatLE=function(t,e,r){return U(this,t,e,!0,r)},c.prototype.writeFloatBE=function(t,e,r){return U(this,t,e,!1,r)},c.prototype.writeDoubleLE=function(t,e,r){return H(this,t,e,!0,r)},c.prototype.writeDoubleBE=function(t,e,r){return H(this,t,e,!1,r)},c.prototype.copy=function(t,e,r,n){if(!c.isBuffer(t))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"==typeof t)for(i=e;i=n+4;r-=3)e=`_${t.slice(r-3,r)}${e}`;return`${t.slice(0,r)}${e}`}function V(t,e,r,n,i,o){if(t>r||t3?0===e||e===BigInt(0)?`>= 0${n} and < 2${n} ** ${8*(o+1)}${n}`:`>= -(2${n} ** ${8*(o+1)-1}${n}) and < 2 ** ${8*(o+1)-1}${n}`:`>= ${e}${n} and <= ${r}${n}`,new $.ERR_OUT_OF_RANGE("value",i,t)}!function(t,e,r){W(e,"offset"),void 0!==t[e]&&void 0!==t[e+r]||K(e,t.length-(r+1))}(n,i,o)}function W(t,e){if("number"!=typeof t)throw new $.ERR_INVALID_ARG_TYPE(e,"number",t)}function K(t,e,r){if(Math.floor(t)!==t)throw W(t,r),new $.ERR_OUT_OF_RANGE(r||"offset","an integer",t);if(e<0)throw new $.ERR_BUFFER_OUT_OF_BOUNDS;throw new $.ERR_OUT_OF_RANGE(r||"offset",`>= ${r?1:0} and <= ${e}`,t)}j("ERR_BUFFER_OUT_OF_BOUNDS",(function(t){return t?`${t} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),j("ERR_INVALID_ARG_TYPE",(function(t,e){return`The "${t}" argument must be of type number. Received type ${typeof e}`}),TypeError),j("ERR_OUT_OF_RANGE",(function(t,e,r){let n=`The value of "${t}" is out of range.`,i=r;return Number.isInteger(r)&&Math.abs(r)>2**32?i=F(String(r)):"bigint"==typeof r&&(i=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(i=F(i)),i+="n"),n+=` It must be ${e}. Received ${i}`,n}),RangeError);const q=/[^+/0-9A-Za-z-_]/g;function G(t,e){let r;e=e||1/0;const n=t.length;let i=null;const o=[];for(let s=0;s55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(e-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function z(t){return i.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace(q,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function X(t,e,r,n){let i;for(i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}function Y(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function J(t){return t!=t}const Z=function(){const t="0123456789abcdef",e=new Array(256);for(let r=0;r<16;++r){const n=16*r;for(let i=0;i<16;++i)e[n+i]=t[r]+t[i]}return e}();function Q(t){return"undefined"==typeof BigInt?tt:t}function tt(){throw new Error("BigInt not supported")}},76393:(t,e,r)=>{var n=r(48764).Buffer,i=r(86266),o=r(13550);t.exports=function(t){return new a(t)};var s={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};function a(t){this.curveType=s[t],this.curveType||(this.curveType={name:t}),this.curve=new i.ec(this.curveType.name),this.keys=void 0}function u(t,e,r){Array.isArray(t)||(t=t.toArray());var i=new n(t);if(r&&i.length{var n=r(48764).Buffer;const i=r(60677),o=r(58334),{sha256:s,ripemd160:a}=r(33715),u=76067358,c=({networkVersion:t=u,depth:e,childNumber:r,chainCode:c,publicKey:l})=>{i(t,i.number.label("networkVersion")),i(e,i.number.label("depth")),i(r,i.number.label("childNumber")),i(c,i.string.label("chainCode")),i(l,i.string.label("publicKey"));const h=(t=>{const e=(r=t=n.from(t,"hex"),a().update(s().update(r).digest()).digest());var r;return(e[0]<<24|e[1]<<16|e[2]<<8|e[3])>>>0})(l=(t=>t.startsWith("02")||t.startsWith("03")?t:(parseInt(t.slice(-2),16)%2==0?"02":"03")+t.slice(2,66))(l)),f=n.from([t.toString(16).padStart(8,"0"),e.toString(16).padStart(2,"0"),h.toString(16).padStart(8,"0"),r.toString(16).padStart(8,"0"),c,l].join(""),"hex");return o.encode(f)};c.mainnet=u,c.testnet=70617039,t.exports=c},55835:(t,e,r)=>{"use strict";e.randomBytes=e.rng=e.pseudoRandomBytes=e.prng=r(61798),e.createHash=e.Hash=r(23482),e.createHmac=e.Hmac=r(58355);var n=r(56042),i=Object.keys(n),o=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(i);e.getHashes=function(){return o};var s=r(25632);e.pbkdf2=s.pbkdf2,e.pbkdf2Sync=s.pbkdf2Sync;var a=r(53614);e.Cipher=a.Cipher,e.createCipher=a.createCipher,e.Cipheriv=a.Cipheriv,e.createCipheriv=a.createCipheriv,e.Decipher=a.Decipher,e.createDecipher=a.createDecipher,e.Decipheriv=a.Decipheriv,e.createDecipheriv=a.createDecipheriv,e.getCiphers=a.getCiphers,e.listCiphers=a.listCiphers;var u=r(62607);e.DiffieHellmanGroup=u.DiffieHellmanGroup,e.createDiffieHellmanGroup=u.createDiffieHellmanGroup,e.getDiffieHellman=u.getDiffieHellman,e.createDiffieHellman=u.createDiffieHellman,e.DiffieHellman=u.DiffieHellman;var c=r(64743);e.createSign=c.createSign,e.Sign=c.Sign,e.createVerify=c.createVerify,e.Verify=c.Verify,e.createECDH=r(76393);var l=r(7900);e.publicEncrypt=l.publicEncrypt,e.privateEncrypt=l.privateEncrypt,e.publicDecrypt=l.publicDecrypt,e.privateDecrypt=l.privateDecrypt;var h=r(77963);e.randomFill=h.randomFill,e.randomFillSync=h.randomFillSync,e.createCredentials=function(){throw new Error(["sorry, createCredentials is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join("\n"))},e.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}},49840:(t,e,r)=>{var n=r(69282),i=r(89509).Buffer,o=r(55835),s=r(58334),a=r(79785),u=r(17221),c=i.from("Bitcoin seed","utf8"),l=2147483648,h={private:76066276,public:76067358};function f(t){this.versions=t||h,this.depth=0,this.index=0,this._privateKey=null,this._publicKey=null,this.chainCode=null,this._fingerprint=0,this.parentFingerprint=0}function p(t,e){t._publicKey=i.from(e),t._identifier=g(e),t._fingerprint=t._identifier.slice(0,4).readUInt32BE(0),t._privateKey=null}function d(t,e,r){var n=i.allocUnsafe(78);n.writeUInt32BE(e,0),n.writeUInt8(t.depth,4);var o=t.depth?t.parentFingerprint:0;return n.writeUInt32BE(o,5),n.writeUInt32BE(t.index,9),t.chainCode.copy(n,13),r.copy(n,45),n}function g(t){var e=o.createHash("sha256").update(t).digest();return(new a).update(e).digest()}Object.defineProperty(f.prototype,"fingerprint",{get:function(){return this._fingerprint}}),Object.defineProperty(f.prototype,"identifier",{get:function(){return this._identifier}}),Object.defineProperty(f.prototype,"pubKeyHash",{get:function(){return this.identifier}}),Object.defineProperty(f.prototype,"privateKey",{get:function(){return this._privateKey},set:function(t){n.equal(t.length,32,"Private key must be 32 bytes."),n(!0===u.privateKeyVerify(t),"Invalid private key"),this._privateKey=t,this._publicKey=i.from(u.publicKeyCreate(t,!0)),this._identifier=g(this.publicKey),this._fingerprint=this._identifier.slice(0,4).readUInt32BE(0)}}),Object.defineProperty(f.prototype,"publicKey",{get:function(){return this._publicKey},set:function(t){n(33===t.length||65===t.length,"Public key must be 33 or 65 bytes."),n(!0===u.publicKeyVerify(t),"Invalid public key"),p(this,65===t.length?u.publicKeyConvert(t,!0):t)}}),Object.defineProperty(f.prototype,"privateExtendedKey",{get:function(){return this._privateKey?s.encode(d(this,this.versions.private,i.concat([i.alloc(1,0),this.privateKey]))):null}}),Object.defineProperty(f.prototype,"publicExtendedKey",{get:function(){return s.encode(d(this,this.versions.public,this.publicKey))}}),f.prototype.derive=function(t){if("m"===t||"M"===t||"m'"===t||"M'"===t)return this;var e=t.split("/"),r=this;return e.forEach((function(t,e){if(0!==e){var i=t.length>1&&"'"===t[t.length-1],o=parseInt(t,10);n(o=l,s=i.allocUnsafe(4);if(s.writeUInt32BE(t,0),r){n(this.privateKey,"Could not derive hardened child key");var a=this.privateKey,c=i.alloc(1,0);a=i.concat([c,a]),e=i.concat([a,s])}else e=i.concat([this.publicKey,s]);var h=o.createHmac("sha512",this.chainCode).update(e).digest(),p=h.slice(0,32),d=h.slice(32),g=new f(this.versions);if(this.privateKey)try{g.privateKey=i.from(u.privateKeyTweakAdd(i.from(this.privateKey),p))}catch(e){return this.deriveChild(t+1)}else try{g.publicKey=i.from(u.publicKeyTweakAdd(i.from(this.publicKey),p,!0))}catch(e){return this.deriveChild(t+1)}return g.chainCode=d,g.depth=this.depth+1,g.parentFingerprint=this.fingerprint,g.index=t,g},f.prototype.sign=function(t){return i.from(u.ecdsaSign(Uint8Array.from(t),Uint8Array.from(this.privateKey)).signature)},f.prototype.verify=function(t,e){return u.ecdsaVerify(Uint8Array.from(e),Uint8Array.from(t),Uint8Array.from(this.publicKey))},f.prototype.wipePrivateData=function(){return this._privateKey&&o.randomBytes(this._privateKey.length).copy(this._privateKey),this._privateKey=null,this},f.prototype.toJSON=function(){return{xpriv:this.privateExtendedKey,xpub:this.publicExtendedKey}},f.fromMasterSeed=function(t,e){var r=o.createHmac("sha512",c).update(t).digest(),n=r.slice(0,32),i=r.slice(32),s=new f(e);return s.chainCode=i,s.privateKey=n,s},f.fromExtendedKey=function(t,e,r){r=r||!1;var i=new f(e=e||h),o=s.decode(t),a=o.readUInt32BE(0);n(a===e.private||a===e.public,"Version mismatch: does not match private or public"),i.depth=o.readUInt8(4),i.parentFingerprint=o.readUInt32BE(5),i.index=o.readUInt32BE(9),i.chainCode=o.slice(13,45);var u=o.slice(45);return 0===u.readUInt8(0)?(n(a===e.private,"Version mismatch: version does not match private"),i.privateKey=u.slice(1)):(n(a===e.public,"Version mismatch: version does not match public"),r?p(i,u):i.publicKey=u),i},f.fromJSON=function(t){return f.fromExtendedKey(t.xpriv)},f.HARDENED_OFFSET=l,t.exports=f},41143:t=>{"use strict";t.exports=function(t,e,r,n,i,o,s,a){if(!t){var u;if(void 0===e)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[r,n,i,o,s,a],l=0;(u=new Error(e.replace(/%s/g,(function(){return c[l++]})))).name="Invariant Violation"}throw u.framesToPop=1,u}}},91555:(t,e,r)=>{"use strict";r.d(e,{S5:()=>n.S}),r(27154);var n=r(42776);r(93034)},36244:(t,e,r)=>{"use strict";r.d(e,{U:()=>n});class n extends Error{constructor(t,e){super(t),this.name="AddressError",null!==e&&(this.parseMessage=e)}}},35263:(t,e,r)=>{"use strict";function n(t){return!(this.subnetMaski,Q:()=>n})},27154:(t,e,r)=>{"use strict";r.d(e,{g:()=>u});var n=r(35263),i=r(38281),o=r(36244),s=r(36077),a=r(8975);class u{constructor(t){this.groups=i.bW,this.parsedAddress=[],this.parsedSubnet="",this.subnet="/32",this.subnetMask=32,this.v4=!0,this.isCorrect=n.N(i.iO),this.isInSubnet=n.Q,this.address=t;const e=i.XF.exec(t);if(e){if(this.parsedSubnet=e[0].replace("/",""),this.subnetMask=parseInt(this.parsedSubnet,10),this.subnet=`/${this.subnetMask}`,this.subnetMask<0||this.subnetMask>i.iO)throw new o.U("Invalid subnet mask.");t=t.replace(i.XF,"")}this.addressMinusSuffix=t,this.parsedAddress=this.parse(t)}static isValid(t){try{return new u(t),!0}catch(t){return!1}}parse(t){const e=t.split(".");if(!t.match(i.x$))throw new o.U("Invalid IPv4 address.");return e}correctForm(){return this.parsedAddress.map((t=>parseInt(t,10))).join(".")}static fromHex(t){const e=t.replace(/:/g,"").padStart(8,"0"),r=[];let n;for(n=0;n<8;n+=2){const t=e.slice(n,n+2);r.push(parseInt(t,16))}return new u(r.join("."))}static fromInteger(t){return u.fromHex(t.toString(16))}static fromArpa(t){const e=t.replace(/(\.in-addr\.arpa)?\.$/,"").split(".").reverse().join(".");return new u(e)}toHex(){return this.parsedAddress.map((t=>(0,a.sprintf)("%02x",parseInt(t,10)))).join(":")}toArray(){return this.parsedAddress.map((t=>parseInt(t,10)))}toGroup6(){const t=[];let e;for(e=0;e(0,a.sprintf)("%02x",parseInt(t,10)))).join(""),16)}_startAddress(){return new s.BigInteger(this.mask()+"0".repeat(i.iO-this.subnetMask),2)}startAddress(){return u.fromBigInteger(this._startAddress())}startAddressExclusive(){const t=new s.BigInteger("1");return u.fromBigInteger(this._startAddress().add(t))}_endAddress(){return new s.BigInteger(this.mask()+"1".repeat(i.iO-this.subnetMask),2)}endAddress(){return u.fromBigInteger(this._endAddress())}endAddressExclusive(){const t=new s.BigInteger("1");return u.fromBigInteger(this._endAddress().subtract(t))}static fromBigInteger(t){return u.fromInteger(parseInt(t.toString(),10))}mask(t){return void 0===t&&(t=this.subnetMask),this.getBitsBase2(0,t)}getBitsBase2(t,e){return this.binaryZeroPad().slice(t,e)}reverseForm(t){t||(t={});const e=this.correctForm().split(".").reverse().join(".");return t.omitSuffix?e:(0,a.sprintf)("%s.in-addr.arpa.",e)}isMulticast(){return this.isInSubnet(new u("224.0.0.0/4"))}binaryZeroPad(){return this.bigInteger().toString(2).padStart(i.iO,"0")}groupForV6(){const t=this.parsedAddress;return this.address.replace(i.x$,(0,a.sprintf)('%s.%s',t.slice(0,2).join("."),t.slice(2,4).join(".")))}}},42776:(t,e,r)=>{"use strict";r.d(e,{S:()=>y});var n=r(35263),i=r(38281),o=r(76205),s=r(93034),a=r(27154),u=r(52494),c=r(36244),l=r(36077),h=r(8975);function f(t){if(!t)throw new Error("Assertion failed.")}function p(t){return(t=t.replace(/^(0{1,})([1-9]+)$/,'$1$2')).replace(/^(0{1,})(0)$/,'$1$2')}function d(t){return(0,h.sprintf)("%04x",parseInt(t,16))}function g(t){return 255&t}class y{constructor(t,e){this.addressMinusSuffix="",this.parsedSubnet="",this.subnet="/128",this.subnetMask=128,this.v4=!1,this.zone="",this.isInSubnet=n.Q,this.isCorrect=n.N(o.iO),this.groups=void 0===e?o.bW:e,this.address=t;const r=o.XF.exec(t);if(r){if(this.parsedSubnet=r[0].replace("/",""),this.subnetMask=parseInt(this.parsedSubnet,10),this.subnet=`/${this.subnetMask}`,Number.isNaN(this.subnetMask)||this.subnetMask<0||this.subnetMask>o.iO)throw new c.U("Invalid subnet mask.");t=t.replace(o.XF,"")}else if(/\//.test(t))throw new c.U("Invalid subnet mask.");const i=o.VT.exec(t);i&&(this.zone=i[0],t=t.replace(o.VT,"")),this.addressMinusSuffix=t,this.parsedAddress=this.parse(this.addressMinusSuffix)}static isValid(t){try{return new y(t),!0}catch(t){return!1}}static fromBigInteger(t){const e=t.toString(16).padStart(32,"0"),r=[];let n;for(n=0;n65536)&&(n=null)):n=null,{address:new y(e),port:n}}static fromAddress4(t){const e=new a.g(t),r=o.iO-(i.iO-e.subnetMask);return new y(`::ffff:${e.correctForm()}/${r}`)}static fromArpa(t){let e=t.replace(/(\.ip6\.arpa)?\.$/,"");if(63!==e.length)throw new c.U("Invalid 'ip6.arpa' form.");const r=e.split(".").reverse();for(let t=7;t>0;t--){const e=4*t;r.splice(e,0,":")}return e=r.join(""),new y(e)}microsoftTranscription(){return(0,h.sprintf)("%s.ipv6-literal.net",this.correctForm().replace(/:/g,"-"))}mask(t=this.subnetMask){return this.getBitsBase2(0,t)}possibleSubnets(t=128){const e=o.iO-this.subnetMask-Math.abs(t-o.iO);return e<0?"0":function(t){const e=/(\d+)(\d{3})/;for(;e.test(t);)t=t.replace(e,"$1,$2");return t}(new l.BigInteger("2",10).pow(e).toString(10))}_startAddress(){return new l.BigInteger(this.mask()+"0".repeat(o.iO-this.subnetMask),2)}startAddress(){return y.fromBigInteger(this._startAddress())}startAddressExclusive(){const t=new l.BigInteger("1");return y.fromBigInteger(this._startAddress().add(t))}_endAddress(){return new l.BigInteger(this.mask()+"1".repeat(o.iO-this.subnetMask),2)}endAddress(){return y.fromBigInteger(this._endAddress())}endAddressExclusive(){const t=new l.BigInteger("1");return y.fromBigInteger(this._endAddress().subtract(t))}getScope(){let t=o.QF[this.getBits(12,16).intValue()];return"Global unicast"===this.getType()&&"Link local"!==t&&(t="Global"),t||"Unknown"}getType(){for(const t of Object.keys(o.vK))if(this.isInSubnet(new y(t)))return o.vK[t];return"Global unicast"}getBits(t,e){return new l.BigInteger(this.getBitsBase2(t,e),2)}getBitsBase2(t,e){return this.binaryZeroPad().slice(t,e)}getBitsBase16(t,e){const r=e-t;if(r%4!=0)throw new Error("Length of bits to retrieve must be divisible by four");return this.getBits(t,e).toString(16).padStart(r/4,"0")}getBitsPastSubnet(){return this.getBitsBase2(this.subnetMask,o.iO)}reverseForm(t){t||(t={});const e=Math.floor(this.subnetMask/4),r=this.canonicalForm().replace(/:/g,"").split("").slice(0,e).reverse().join(".");return e>0?t.omitSuffix?r:(0,h.sprintf)("%s.ip6.arpa.",r):t.omitSuffix?"":"ip6.arpa."}correctForm(){let t,e=[],r=0;const n=[];for(t=0;t0&&(r>1&&n.push([t-r,t-1]),r=0)}r>1&&n.push([this.parsedAddress.length-r,this.parsedAddress.length-1]);const i=n.map((t=>t[1]-t[0]+1));if(n.length>0){const t=i.indexOf(Math.max(...i));e=function(t,e){const r=[],n=[];let i;for(i=0;ie[1]&&n.push(t[i]);return r.concat(["compact"]).concat(n)}(this.parsedAddress,n[t])}else e=this.parsedAddress;for(t=0;t1?"s":"",e.join("")),t.replace(o.Qq,'$1'));const r=t.match(o.ss);if(r)throw new c.U((0,h.sprintf)("Address failed regex: %s",r.join("")),t.replace(o.ss,'$1'));let n=[];const i=t.split("::");if(2===i.length){let t=i[0].split(":"),e=i[1].split(":");1===t.length&&""===t[0]&&(t=[]),1===e.length&&""===e[0]&&(e=[]);const r=this.groups-(t.length+e.length);if(!r)throw new c.U("Error parsing groups");this.elidedGroups=r,this.elisionBegin=t.length,this.elisionEnd=t.length+this.elidedGroups,n=n.concat(t);for(let t=0;t(0,h.sprintf)("%x",parseInt(t,16)))),n.length!==this.groups)throw new c.U("Incorrect number of groups found");return n}canonicalForm(){return this.parsedAddress.map(d).join(":")}decimal(){return this.parsedAddress.map((t=>(0,h.sprintf)("%05d",parseInt(t,16)))).join(":")}bigInteger(){return new l.BigInteger(this.parsedAddress.map(d).join(""),16)}to4(){const t=this.binaryZeroPad().split("");return a.g.fromHex(new l.BigInteger(t.slice(96,128).join(""),2).toString(16))}to4in6(){const t=this.to4(),e=new y(this.parsedAddress.slice(0,6).join(":"),6).correctForm();let r="";return/:$/.test(e)||(r=":"),e+r+t.address}inspectTeredo(){const t=this.getBitsBase16(0,32),e=this.getBits(80,96).xor(new l.BigInteger("ffff",16)).toString(),r=a.g.fromHex(this.getBitsBase16(32,64)),n=a.g.fromHex(this.getBits(96,128).xor(new l.BigInteger("ffffffff",16)).toString(16)),i=this.getBits(64,80),o=this.getBitsBase2(64,80),s=i.testBit(15),u=i.testBit(14),c=i.testBit(8),f=i.testBit(9),p=new l.BigInteger(o.slice(2,6)+o.slice(8,16),2).toString(10);return{prefix:(0,h.sprintf)("%s:%s",t.slice(0,4),t.slice(4,8)),server4:r.address,client4:n.address,flags:o,coneNat:s,microsoft:{reserved:u,universalLocal:f,groupIndividual:c,nonce:p},udpPort:e}}inspect6to4(){const t=this.getBitsBase16(0,16),e=a.g.fromHex(this.getBitsBase16(16,48));return{prefix:(0,h.sprintf)("%s",t.slice(0,4)),gateway:e.address}}to6to4(){if(!this.is4())return null;const t=["2002",this.getBitsBase16(96,112),this.getBitsBase16(112,128),"","/16"].join(":");return new y(t)}toByteArray(){const t=this.bigInteger().toByteArray();return 17===t.length&&0===t[0]?t.slice(1):t}toUnsignedByteArray(){return this.toByteArray().map(g)}static fromByteArray(t){return this.fromUnsignedByteArray(t.map(g))}static fromUnsignedByteArray(t){const e=new l.BigInteger("256",10);let r=new l.BigInteger("0",10),n=new l.BigInteger("1",10);for(let i=t.length-1;i>=0;i--)r=r.add(n.multiply(new l.BigInteger(t[i].toString(10),10))),n=n.multiply(e);return y.fromBigInteger(r)}isCanonical(){return this.addressMinusSuffix===this.canonicalForm()}isLinkLocal(){return"1111111010000000000000000000000000000000000000000000000000000000"===this.getBitsBase2(0,64)}isMulticast(){return"Multicast"===this.getType()}is4(){return this.v4}isTeredo(){return this.isInSubnet(new y("2001::/32"))}is6to4(){return this.isInSubnet(new y("2002::/16"))}isLoopback(){return"Loopback"===this.getType()}href(t){return t=void 0===t?"":(0,h.sprintf)(":%s",t),(0,h.sprintf)("http://[%s]%s/",this.correctForm(),t)}link(t){t||(t={}),void 0===t.className&&(t.className=""),void 0===t.prefix&&(t.prefix="/#address="),void 0===t.v4&&(t.v4=!1);let e=this.correctForm;return t.v4&&(e=this.to4in6),t.className?(0,h.sprintf)('%2$s',t.prefix,e.call(this),t.className):(0,h.sprintf)('%2$s',t.prefix,e.call(this))}group(){if(0===this.elidedGroups)return s.simpleGroup(this.address).join(":");f("number"==typeof this.elidedGroups),f("number"==typeof this.elisionBegin);const t=[],[e,r]=this.address.split("::");e.length?t.push(...s.simpleGroup(e)):t.push("");const n=["hover-group"];for(let t=this.elisionBegin;t',n.join(" "))),r.length?t.push(...s.simpleGroup(r,this.elisionEnd)):t.push(""),this.is4()&&(f(this.address4 instanceof a.g),t.pop(),t.push(this.address4.groupForV6())),t.join(":")}regularExpressionString(t=!1){let e=[];const r=new y(this.correctForm());if(0===r.elidedGroups)e.push((0,u.$p)(r.parsedAddress));else if(r.elidedGroups===o.bW)e.push((0,u.dA)(o.bW));else{const t=r.address.split("::");t[0].length&&e.push((0,u.$p)(t[0].split(":"))),f("number"==typeof r.elidedGroups),e.push((0,u.dA)(r.elidedGroups,0!==t[0].length,0!==t[1].length)),t[1].length&&e.push((0,u.$p)(t[1].split(":"))),e=[e.join(":")]}return t||(e=["(?=^|",u.R8,"|[^\\w\\:])(",...e,")(?=[^\\w\\:]|",u.R8,"|$)"]),e.join("")}regularExpression(t=!1){return new RegExp(this.regularExpressionString(t),"i")}}},38281:(t,e,r)=>{"use strict";r.d(e,{XF:()=>s,bW:()=>i,iO:()=>n,x$:()=>o});const n=32,i=4,o=/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/g,s=/\/\d{1,2}$/},76205:(t,e,r)=>{"use strict";r.d(e,{Cn:()=>f,QF:()=>o,Qq:()=>a,VT:()=>l,XF:()=>c,bW:()=>i,iO:()=>n,ss:()=>u,vK:()=>s,yc:()=>h});const n=128,i=8,o={0:"Reserved",1:"Interface local",2:"Link local",4:"Admin local",5:"Site local",8:"Organization local",14:"Global",15:"Reserved"},s={"ff01::1/128":"Multicast (All nodes on this interface)","ff01::2/128":"Multicast (All routers on this interface)","ff02::1/128":"Multicast (All nodes on this link)","ff02::2/128":"Multicast (All routers on this link)","ff05::2/128":"Multicast (All routers in this site)","ff02::5/128":"Multicast (OSPFv3 AllSPF routers)","ff02::6/128":"Multicast (OSPFv3 AllDR routers)","ff02::9/128":"Multicast (RIP routers)","ff02::a/128":"Multicast (EIGRP routers)","ff02::d/128":"Multicast (PIM routers)","ff02::16/128":"Multicast (MLDv2 reports)","ff01::fb/128":"Multicast (mDNSv6)","ff02::fb/128":"Multicast (mDNSv6)","ff05::fb/128":"Multicast (mDNSv6)","ff02::1:2/128":"Multicast (All DHCP servers and relay agents on this link)","ff05::1:2/128":"Multicast (All DHCP servers and relay agents in this site)","ff02::1:3/128":"Multicast (All DHCP servers on this link)","ff05::1:3/128":"Multicast (All DHCP servers in this site)","::/128":"Unspecified","::1/128":"Loopback","ff00::/8":"Multicast","fe80::/10":"Link-local unicast"},a=/([^0-9a-f:/%])/gi,u=/([0-9a-f]{5,}|:{3,}|[^:]:$|^:[^:]|\/$)/gi,c=/\/\d{1,3}(?=%|$)/,l=/%.*$/,h=new RegExp(/^\[{0,1}([0-9a-f:]+)\]{0,1}/),f=new RegExp(/\[([0-9a-f:]+)\]:([0-9]{1,5})/)},93034:(t,e,r)=>{"use strict";r.r(e),r.d(e,{simpleGroup:()=>u,spanAll:()=>o,spanAllZeroes:()=>i,spanLeadingZeroes:()=>a});var n=r(8975);function i(t){return t.replace(/(0+)/g,'$1')}function o(t,e=0){return t.split("").map(((t,r)=>(0,n.sprintf)('%s',t,r+e,i(t)))).join("")}function s(t){return t.replace(/^(0+)/,'$1')}function a(t){return t.split(":").map((t=>s(t))).join(":")}function u(t,e=0){return t.split(":").map(((t,r)=>/group-v4/.test(t)?t:(0,n.sprintf)('%s',r+e,s(t))))}},52494:(t,e,r)=>{"use strict";r.d(e,{$p:()=>u,R8:()=>a,dA:()=>c});var n=r(76205),i=r(8975);function o(t){return(0,i.sprintf)("(%s)",t.join("|"))}function s(t){return t.length<4?(0,i.sprintf)("0{0,%d}%s",4-t.length,t):t}const a="[^A-Fa-f0-9:]";function u(t){const e=[];t.forEach(((t,r)=>{0===parseInt(t,16)&&e.push(r)}));const r=e.map((e=>t.map(((t,r)=>{if(r===e){const e=0===r||r===n.bW-1?":":"";return o([s(t),e])}return s(t)})).join(":")));return r.push(t.map(s).join(":")),o(r)}function c(t,e,r){const n=e?"":":",s=r?"":":",a=[];e||r||a.push("::"),e&&r&&a.push(""),(r&&!e||!r&&e)&&a.push(":"),a.push((0,i.sprintf)("%s(:0{1,4}){1,%d}",n,t-1)),a.push((0,i.sprintf)("(0{1,4}:){1,%d}%s",t-1,s)),a.push((0,i.sprintf)("(0{1,4}:){%d}0{1,4}",t-1));for(let e=1;e0&&e-1 in t)}function k(t,e){return t.nodeName&&t.nodeName.toLowerCase()===e.toLowerCase()}T.fn=T.prototype={jquery:x,constructor:T,length:0,toArray:function(){return a.call(this)},get:function(t){return null==t?a.call(this):t<0?this[t+this.length]:this[t]},pushStack:function(t){var e=T.merge(this.constructor(),t);return e.prevObject=this,e},each:function(t){return T.each(this,t)},map:function(t){return this.pushStack(T.map(this,(function(e,r){return t.call(e,r,e)})))},slice:function(){return this.pushStack(a.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(T.grep(this,(function(t,e){return(e+1)%2})))},odd:function(){return this.pushStack(T.grep(this,(function(t,e){return e%2})))},eq:function(t){var e=this.length,r=+t+(t<0?e:0);return this.pushStack(r>=0&&r+~]|"+C+")"+C+"*"),j=new RegExp(C+"|>"),F=new RegExp(L),V=new RegExp("^"+M+"$"),W={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M+"|[*])"),ATTR:new RegExp("^"+B),PSEUDO:new RegExp("^"+L),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+C+"*(even|odd|(([+-]|)(\\d*)n|)"+C+"*(?:([+-]|)"+C+"*(\\d+)|))"+C+"*\\)|)","i"),bool:new RegExp("^(?:"+I+")$","i"),needsContext:new RegExp("^"+C+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+C+"*((?:-\\d)?\\d*)"+C+"*\\)|)(?=[^-]|$)","i")},K=/^(?:input|select|textarea|button)$/i,q=/^h\d$/i,G=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,z=/[+~]/,X=new RegExp("\\\\[\\da-fA-F]{1,6}"+C+"?|\\\\([^\\r\\n\\f])","g"),Y=function(t,e){var r="0x"+t.slice(1)-65536;return e||(r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320))},J=function(){ut()},Z=ft((function(t){return!0===t.disabled&&k(t,"fieldset")}),{dir:"parentNode",next:"legend"});try{g.apply(o=a.call(R.childNodes),R.childNodes),o[R.childNodes.length].nodeType}catch(t){g={apply:function(t,e){D.apply(t,a.call(e))},call:function(t){D.apply(t,a.call(arguments,1))}}}function Q(t,e,r,n){var i,o,s,a,c,l,p,d=e&&e.ownerDocument,v=e?e.nodeType:9;if(r=r||[],"string"!=typeof t||!t||1!==v&&9!==v&&11!==v)return r;if(!n&&(ut(e),e=e||u,h)){if(11!==v&&(c=G.exec(t)))if(i=c[1]){if(9===v){if(!(s=e.getElementById(i)))return r;if(s.id===i)return g.call(r,s),r}else if(d&&(s=d.getElementById(i))&&Q.contains(e,s)&&s.id===i)return g.call(r,s),r}else{if(c[2])return g.apply(r,e.getElementsByTagName(t)),r;if((i=c[3])&&e.getElementsByClassName)return g.apply(r,e.getElementsByClassName(i)),r}if(!(x[t+" "]||f&&f.test(t))){if(p=t,d=e,1===v&&(j.test(t)||$.test(t))){for((d=z.test(t)&&at(e.parentNode)||e)==e&&y.scope||((a=e.getAttribute("id"))?a=T.escapeSelector(a):e.setAttribute("id",a=m)),o=(l=lt(t)).length;o--;)l[o]=(a?"#"+a:":scope")+" "+ht(l[o]);p=l.join(",")}try{return g.apply(r,d.querySelectorAll(p)),r}catch(e){x(t,!0)}finally{a===m&&e.removeAttribute("id")}}}return vt(t.replace(N,"$1"),e,r,n)}function tt(){var t=[];return function r(n,i){return t.push(n+" ")>e.cacheLength&&delete r[t.shift()],r[n+" "]=i}}function et(t){return t[m]=!0,t}function rt(t){var e=u.createElement("fieldset");try{return!!t(e)}catch(t){return!1}finally{e.parentNode&&e.parentNode.removeChild(e),e=null}}function nt(t){return function(e){return k(e,"input")&&e.type===t}}function it(t){return function(e){return(k(e,"input")||k(e,"button"))&&e.type===t}}function ot(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&Z(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function st(t){return et((function(e){return e=+e,et((function(r,n){for(var i,o=t([],r.length,e),s=o.length;s--;)r[i=o[s]]&&(r[i]=!(n[i]=r[i]))}))}))}function at(t){return t&&void 0!==t.getElementsByTagName&&t}function ut(t){var r,n=t?t.ownerDocument||t:R;return n!=u&&9===n.nodeType&&n.documentElement?(c=(u=n).documentElement,h=!T.isXMLDoc(u),d=c.matches||c.webkitMatchesSelector||c.msMatchesSelector,c.msMatchesSelector&&R!=u&&(r=u.defaultView)&&r.top!==r&&r.addEventListener("unload",J),y.getById=rt((function(t){return c.appendChild(t).id=T.expando,!u.getElementsByName||!u.getElementsByName(T.expando).length})),y.disconnectedMatch=rt((function(t){return d.call(t,"*")})),y.scope=rt((function(){return u.querySelectorAll(":scope")})),y.cssHas=rt((function(){try{return u.querySelector(":has(*,:jqfake)"),!1}catch(t){return!0}})),y.getById?(e.filter.ID=function(t){var e=t.replace(X,Y);return function(t){return t.getAttribute("id")===e}},e.find.ID=function(t,e){if(void 0!==e.getElementById&&h){var r=e.getElementById(t);return r?[r]:[]}}):(e.filter.ID=function(t){var e=t.replace(X,Y);return function(t){var r=void 0!==t.getAttributeNode&&t.getAttributeNode("id");return r&&r.value===e}},e.find.ID=function(t,e){if(void 0!==e.getElementById&&h){var r,n,i,o=e.getElementById(t);if(o){if((r=o.getAttributeNode("id"))&&r.value===t)return[o];for(i=e.getElementsByName(t),n=0;o=i[n++];)if((r=o.getAttributeNode("id"))&&r.value===t)return[o]}return[]}}),e.find.TAG=function(t,e){return void 0!==e.getElementsByTagName?e.getElementsByTagName(t):e.querySelectorAll(t)},e.find.CLASS=function(t,e){if(void 0!==e.getElementsByClassName&&h)return e.getElementsByClassName(t)},f=[],rt((function(t){var e;c.appendChild(t).innerHTML="",t.querySelectorAll("[selected]").length||f.push("\\["+C+"*(?:value|"+I+")"),t.querySelectorAll("[id~="+m+"-]").length||f.push("~="),t.querySelectorAll("a#"+m+"+*").length||f.push(".#.+[+~]"),t.querySelectorAll(":checked").length||f.push(":checked"),(e=u.createElement("input")).setAttribute("type","hidden"),t.appendChild(e).setAttribute("name","D"),c.appendChild(t).disabled=!0,2!==t.querySelectorAll(":disabled").length&&f.push(":enabled",":disabled"),(e=u.createElement("input")).setAttribute("name",""),t.appendChild(e),t.querySelectorAll("[name='']").length||f.push("\\["+C+"*name"+C+"*="+C+"*(?:''|\"\")")})),y.cssHas||f.push(":has"),f=f.length&&new RegExp(f.join("|")),S=function(t,e){if(t===e)return s=!0,0;var r=!t.compareDocumentPosition-!e.compareDocumentPosition;return r||(1&(r=(t.ownerDocument||t)==(e.ownerDocument||e)?t.compareDocumentPosition(e):1)||!y.sortDetached&&e.compareDocumentPosition(t)===r?t===u||t.ownerDocument==R&&Q.contains(R,t)?-1:e===u||e.ownerDocument==R&&Q.contains(R,e)?1:i?l.call(i,t)-l.call(i,e):0:4&r?-1:1)},u):u}for(t in Q.matches=function(t,e){return Q(t,null,null,e)},Q.matchesSelector=function(t,e){if(ut(t),h&&!x[e+" "]&&(!f||!f.test(e)))try{var r=d.call(t,e);if(r||y.disconnectedMatch||t.document&&11!==t.document.nodeType)return r}catch(t){x(e,!0)}return Q(e,u,null,[t]).length>0},Q.contains=function(t,e){return(t.ownerDocument||t)!=u&&ut(t),T.contains(t,e)},Q.attr=function(t,r){(t.ownerDocument||t)!=u&&ut(t);var n=e.attrHandle[r.toLowerCase()],i=n&&p.call(e.attrHandle,r.toLowerCase())?n(t,r,!h):void 0;return void 0!==i?i:t.getAttribute(r)},Q.error=function(t){throw new Error("Syntax error, unrecognized expression: "+t)},T.uniqueSort=function(t){var e,r=[],n=0,o=0;if(s=!y.sortStable,i=!y.sortStable&&a.call(t,0),O.call(t,S),s){for(;e=t[o++];)e===t[o]&&(n=r.push(o));for(;n--;)P.call(t,r[n],1)}return i=null,t},T.fn.uniqueSort=function(){return this.pushStack(T.uniqueSort(a.apply(this)))},e=T.expr={cacheLength:50,createPseudo:et,match:W,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(t){return t[1]=t[1].replace(X,Y),t[3]=(t[3]||t[4]||t[5]||"").replace(X,Y),"~="===t[2]&&(t[3]=" "+t[3]+" "),t.slice(0,4)},CHILD:function(t){return t[1]=t[1].toLowerCase(),"nth"===t[1].slice(0,3)?(t[3]||Q.error(t[0]),t[4]=+(t[4]?t[5]+(t[6]||1):2*("even"===t[3]||"odd"===t[3])),t[5]=+(t[7]+t[8]||"odd"===t[3])):t[3]&&Q.error(t[0]),t},PSEUDO:function(t){var e,r=!t[6]&&t[2];return W.CHILD.test(t[0])?null:(t[3]?t[2]=t[4]||t[5]||"":r&&F.test(r)&&(e=lt(r,!0))&&(e=r.indexOf(")",r.length-e)-r.length)&&(t[0]=t[0].slice(0,e),t[2]=r.slice(0,e)),t.slice(0,3))}},filter:{TAG:function(t){var e=t.replace(X,Y).toLowerCase();return"*"===t?function(){return!0}:function(t){return k(t,e)}},CLASS:function(t){var e=w[t+" "];return e||(e=new RegExp("(^|"+C+")"+t+"("+C+"|$)"))&&w(t,(function(t){return e.test("string"==typeof t.className&&t.className||void 0!==t.getAttribute&&t.getAttribute("class")||"")}))},ATTR:function(t,e,r){return function(n){var i=Q.attr(n,t);return null==i?"!="===e:!e||(i+="","="===e?i===r:"!="===e?i!==r:"^="===e?r&&0===i.indexOf(r):"*="===e?r&&i.indexOf(r)>-1:"$="===e?r&&i.slice(-r.length)===r:"~="===e?(" "+i.replace(U," ")+" ").indexOf(r)>-1:"|="===e&&(i===r||i.slice(0,r.length+1)===r+"-"))}},CHILD:function(t,e,r,n,i){var o="nth"!==t.slice(0,3),s="last"!==t.slice(-4),a="of-type"===e;return 1===n&&0===i?function(t){return!!t.parentNode}:function(e,r,u){var c,l,h,f,p,d=o!==s?"nextSibling":"previousSibling",g=e.parentNode,y=a&&e.nodeName.toLowerCase(),b=!u&&!a,w=!1;if(g){if(o){for(;d;){for(h=e;h=h[d];)if(a?k(h,y):1===h.nodeType)return!1;p=d="only"===t&&!p&&"nextSibling"}return!0}if(p=[s?g.firstChild:g.lastChild],s&&b){for(w=(f=(c=(l=g[m]||(g[m]={}))[t]||[])[0]===v&&c[1])&&c[2],h=f&&g.childNodes[f];h=++f&&h&&h[d]||(w=f=0)||p.pop();)if(1===h.nodeType&&++w&&h===e){l[t]=[v,f,w];break}}else if(b&&(w=f=(c=(l=e[m]||(e[m]={}))[t]||[])[0]===v&&c[1]),!1===w)for(;(h=++f&&h&&h[d]||(w=f=0)||p.pop())&&(!(a?k(h,y):1===h.nodeType)||!++w||(b&&((l=h[m]||(h[m]={}))[t]=[v,w]),h!==e)););return(w-=i)===n||w%n==0&&w/n>=0}}},PSEUDO:function(t,r){var n,i=e.pseudos[t]||e.setFilters[t.toLowerCase()]||Q.error("unsupported pseudo: "+t);return i[m]?i(r):i.length>1?(n=[t,t,"",r],e.setFilters.hasOwnProperty(t.toLowerCase())?et((function(t,e){for(var n,o=i(t,r),s=o.length;s--;)t[n=l.call(t,o[s])]=!(e[n]=o[s])})):function(t){return i(t,0,n)}):i}},pseudos:{not:et((function(t){var e=[],r=[],n=mt(t.replace(N,"$1"));return n[m]?et((function(t,e,r,i){for(var o,s=n(t,null,i,[]),a=t.length;a--;)(o=s[a])&&(t[a]=!(e[a]=o))})):function(t,i,o){return e[0]=t,n(e,null,o,r),e[0]=null,!r.pop()}})),has:et((function(t){return function(e){return Q(t,e).length>0}})),contains:et((function(t){return t=t.replace(X,Y),function(e){return(e.textContent||T.text(e)).indexOf(t)>-1}})),lang:et((function(t){return V.test(t||"")||Q.error("unsupported lang: "+t),t=t.replace(X,Y).toLowerCase(),function(e){var r;do{if(r=h?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(r=r.toLowerCase())===t||0===r.indexOf(t+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}})),target:function(t){var e=n.location&&n.location.hash;return e&&e.slice(1)===t.id},root:function(t){return t===c},focus:function(t){return t===function(){try{return u.activeElement}catch(t){}}()&&u.hasFocus()&&!!(t.type||t.href||~t.tabIndex)},enabled:ot(!1),disabled:ot(!0),checked:function(t){return k(t,"input")&&!!t.checked||k(t,"option")&&!!t.selected},selected:function(t){return t.parentNode&&t.parentNode.selectedIndex,!0===t.selected},empty:function(t){for(t=t.firstChild;t;t=t.nextSibling)if(t.nodeType<6)return!1;return!0},parent:function(t){return!e.pseudos.empty(t)},header:function(t){return q.test(t.nodeName)},input:function(t){return K.test(t.nodeName)},button:function(t){return k(t,"input")&&"button"===t.type||k(t,"button")},text:function(t){var e;return k(t,"input")&&"text"===t.type&&(null==(e=t.getAttribute("type"))||"text"===e.toLowerCase())},first:st((function(){return[0]})),last:st((function(t,e){return[e-1]})),eq:st((function(t,e,r){return[r<0?r+e:r]})),even:st((function(t,e){for(var r=0;re?e:r;--n>=0;)t.push(n);return t})),gt:st((function(t,e,r){for(var n=r<0?r+e:r;++n1?function(e,r,n){for(var i=t.length;i--;)if(!t[i](e,r,n))return!1;return!0}:t[0]}function dt(t,e,r,n,i){for(var o,s=[],a=0,u=t.length,c=null!=e;a-1&&(o[c]=!(s[c]=f))}}else p=dt(p===s?p.splice(m,p.length):p),i?i(null,s,p,u):g.apply(s,p)}))}function yt(t){for(var n,i,o,s=t.length,a=e.relative[t[0].type],u=a||e.relative[" "],c=a?1:0,h=ft((function(t){return t===n}),u,!0),f=ft((function(t){return l.call(n,t)>-1}),u,!0),p=[function(t,e,i){var o=!a&&(i||e!=r)||((n=e).nodeType?h(t,e,i):f(t,e,i));return n=null,o}];c1&&pt(p),c>1&&ht(t.slice(0,c-1).concat({value:" "===t[c-2].type?"*":""})).replace(N,"$1"),i,c0,o=t.length>0,s=function(s,a,c,l,f){var p,d,y,m=0,b="0",w=s&&[],_=[],E=r,x=s||o&&e.find.TAG("*",f),S=v+=null==E?1:Math.random()||.1,I=x.length;for(f&&(r=a==u||a||f);b!==I&&null!=(p=x[b]);b++){if(o&&p){for(d=0,a||p.ownerDocument==u||(ut(p),c=!h);y=t[d++];)if(y(p,a||u,c)){g.call(l,p);break}f&&(v=S)}i&&((p=!y&&p)&&m--,s&&w.push(p))}if(m+=b,i&&b!==m){for(d=0;y=n[d++];)y(w,_,a,c);if(s){if(m>0)for(;b--;)w[b]||_[b]||(_[b]=A.call(l));_=dt(_)}g.apply(l,_),f&&!s&&_.length>0&&m+n.length>1&&T.uniqueSort(l)}return f&&(v=S,r=E),w};return i?et(s):s}(s,o)),a.selector=t}return a}function vt(t,r,n,i){var o,s,a,u,c,l="function"==typeof t&&t,f=!i&<(t=l.selector||t);if(n=n||[],1===f.length){if((s=f[0]=f[0].slice(0)).length>2&&"ID"===(a=s[0]).type&&9===r.nodeType&&h&&e.relative[s[1].type]){if(!(r=(e.find.ID(a.matches[0].replace(X,Y),r)||[])[0]))return n;l&&(r=r.parentNode),t=t.slice(s.shift().value.length)}for(o=W.needsContext.test(t)?0:s.length;o--&&(a=s[o],!e.relative[u=a.type]);)if((c=e.find[u])&&(i=c(a.matches[0].replace(X,Y),z.test(s[0].type)&&at(r.parentNode)||r))){if(s.splice(o,1),!(t=i.length&&ht(s)))return g.apply(n,i),n;break}}return(l||mt(t,f))(i,r,!h,n,!r||z.test(t)&&at(r.parentNode)||r),n}ct.prototype=e.filters=e.pseudos,e.setFilters=new ct,y.sortStable=m.split("").sort(S).join("")===m,ut(),y.sortDetached=rt((function(t){return 1&t.compareDocumentPosition(u.createElement("fieldset"))})),T.find=Q,T.expr[":"]=T.expr.pseudos,T.unique=T.uniqueSort,Q.compile=mt,Q.select=vt,Q.setDocument=ut,Q.tokenize=lt,Q.escape=T.escapeSelector,Q.getText=T.text,Q.isXML=T.isXMLDoc,Q.selectors=T.expr,Q.support=T.support,Q.uniqueSort=T.uniqueSort}();var L=function(t,e,r){for(var n=[],i=void 0!==r;(t=t[e])&&9!==t.nodeType;)if(1===t.nodeType){if(i&&T(t).is(r))break;n.push(t)}return n},U=function(t,e){for(var r=[];t;t=t.nextSibling)1===t.nodeType&&t!==e&&r.push(t);return r},H=T.expr.match.needsContext,$=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(t,e,r){return m(e)?T.grep(t,(function(t,n){return!!e.call(t,n,t)!==r})):e.nodeType?T.grep(t,(function(t){return t===e!==r})):"string"!=typeof e?T.grep(t,(function(t){return l.call(e,t)>-1!==r})):T.filter(e,t,r)}T.filter=function(t,e,r){var n=e[0];return r&&(t=":not("+t+")"),1===e.length&&1===n.nodeType?T.find.matchesSelector(n,t)?[n]:[]:T.find.matches(t,T.grep(e,(function(t){return 1===t.nodeType})))},T.fn.extend({find:function(t){var e,r,n=this.length,i=this;if("string"!=typeof t)return this.pushStack(T(t).filter((function(){for(e=0;e1?T.uniqueSort(r):r},filter:function(t){return this.pushStack(j(this,t||[],!1))},not:function(t){return this.pushStack(j(this,t||[],!0))},is:function(t){return!!j(this,"string"==typeof t&&H.test(t)?T(t):t||[],!1).length}});var F,V=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(T.fn.init=function(t,e,r){var n,i;if(!t)return this;if(r=r||F,"string"==typeof t){if(!(n="<"===t[0]&&">"===t[t.length-1]&&t.length>=3?[null,t,null]:V.exec(t))||!n[1]&&e)return!e||e.jquery?(e||r).find(t):this.constructor(e).find(t);if(n[1]){if(e=e instanceof T?e[0]:e,T.merge(this,T.parseHTML(n[1],e&&e.nodeType?e.ownerDocument||e:b,!0)),$.test(n[1])&&T.isPlainObject(e))for(n in e)m(this[n])?this[n](e[n]):this.attr(n,e[n]);return this}return(i=b.getElementById(n[2]))&&(this[0]=i,this.length=1),this}return t.nodeType?(this[0]=t,this.length=1,this):m(t)?void 0!==r.ready?r.ready(t):t(T):T.makeArray(t,this)}).prototype=T.fn,F=T(b);var W=/^(?:parents|prev(?:Until|All))/,K={children:!0,contents:!0,next:!0,prev:!0};function q(t,e){for(;(t=t[e])&&1!==t.nodeType;);return t}T.fn.extend({has:function(t){var e=T(t,this),r=e.length;return this.filter((function(){for(var t=0;t-1:1===r.nodeType&&T.find.matchesSelector(r,t))){o.push(r);break}return this.pushStack(o.length>1?T.uniqueSort(o):o)},index:function(t){return t?"string"==typeof t?l.call(T(t),this[0]):l.call(this,t.jquery?t[0]:t):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(t,e){return this.pushStack(T.uniqueSort(T.merge(this.get(),T(t,e))))},addBack:function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}}),T.each({parent:function(t){var e=t.parentNode;return e&&11!==e.nodeType?e:null},parents:function(t){return L(t,"parentNode")},parentsUntil:function(t,e,r){return L(t,"parentNode",r)},next:function(t){return q(t,"nextSibling")},prev:function(t){return q(t,"previousSibling")},nextAll:function(t){return L(t,"nextSibling")},prevAll:function(t){return L(t,"previousSibling")},nextUntil:function(t,e,r){return L(t,"nextSibling",r)},prevUntil:function(t,e,r){return L(t,"previousSibling",r)},siblings:function(t){return U((t.parentNode||{}).firstChild,t)},children:function(t){return U(t.firstChild)},contents:function(t){return null!=t.contentDocument&&s(t.contentDocument)?t.contentDocument:(k(t,"template")&&(t=t.content||t),T.merge([],t.childNodes))}},(function(t,e){T.fn[t]=function(r,n){var i=T.map(this,e,r);return"Until"!==t.slice(-5)&&(n=r),n&&"string"==typeof n&&(i=T.filter(n,i)),this.length>1&&(K[t]||T.uniqueSort(i),W.test(t)&&i.reverse()),this.pushStack(i)}}));var G=/[^\x20\t\r\n\f]+/g;function z(t){return t}function X(t){throw t}function Y(t,e,r,n){var i;try{t&&m(i=t.promise)?i.call(t).done(e).fail(r):t&&m(i=t.then)?i.call(t,e,r):e.apply(void 0,[t].slice(n))}catch(t){r.apply(void 0,[t])}}T.Callbacks=function(t){t="string"==typeof t?function(t){var e={};return T.each(t.match(G)||[],(function(t,r){e[r]=!0})),e}(t):T.extend({},t);var e,r,n,i,o=[],s=[],a=-1,u=function(){for(i=i||t.once,n=e=!0;s.length;a=-1)for(r=s.shift();++a-1;)o.splice(r,1),r<=a&&a--})),this},has:function(t){return t?T.inArray(t,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=s=[],o=r="",this},disabled:function(){return!o},lock:function(){return i=s=[],r||e||(o=r=""),this},locked:function(){return!!i},fireWith:function(t,r){return i||(r=[t,(r=r||[]).slice?r.slice():r],s.push(r),e||u()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!n}};return c},T.extend({Deferred:function(t){var e=[["notify","progress",T.Callbacks("memory"),T.Callbacks("memory"),2],["resolve","done",T.Callbacks("once memory"),T.Callbacks("once memory"),0,"resolved"],["reject","fail",T.Callbacks("once memory"),T.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},catch:function(t){return i.then(null,t)},pipe:function(){var t=arguments;return T.Deferred((function(r){T.each(e,(function(e,n){var i=m(t[n[4]])&&t[n[4]];o[n[1]]((function(){var t=i&&i.apply(this,arguments);t&&m(t.promise)?t.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[n[0]+"With"](this,i?[t]:arguments)}))})),t=null})).promise()},then:function(t,r,i){var o=0;function s(t,e,r,i){return function(){var a=this,u=arguments,c=function(){var n,c;if(!(t=o&&(r!==X&&(a=void 0,u=[n]),e.rejectWith(a,u))}};t?l():(T.Deferred.getErrorHook?l.error=T.Deferred.getErrorHook():T.Deferred.getStackHook&&(l.error=T.Deferred.getStackHook()),n.setTimeout(l))}}return T.Deferred((function(n){e[0][3].add(s(0,n,m(i)?i:z,n.notifyWith)),e[1][3].add(s(0,n,m(t)?t:z)),e[2][3].add(s(0,n,m(r)?r:X))})).promise()},promise:function(t){return null!=t?T.extend(t,i):i}},o={};return T.each(e,(function(t,n){var s=n[2],a=n[5];i[n[1]]=s.add,a&&s.add((function(){r=a}),e[3-t][2].disable,e[3-t][3].disable,e[0][2].lock,e[0][3].lock),s.add(n[3].fire),o[n[0]]=function(){return o[n[0]+"With"](this===o?void 0:this,arguments),this},o[n[0]+"With"]=s.fireWith})),i.promise(o),t&&t.call(o,o),o},when:function(t){var e=arguments.length,r=e,n=Array(r),i=a.call(arguments),o=T.Deferred(),s=function(t){return function(r){n[t]=this,i[t]=arguments.length>1?a.call(arguments):r,--e||o.resolveWith(n,i)}};if(e<=1&&(Y(t,o.done(s(r)).resolve,o.reject,!e),"pending"===o.state()||m(i[r]&&i[r].then)))return o.then();for(;r--;)Y(i[r],s(r),o.reject);return o.promise()}});var J=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;T.Deferred.exceptionHook=function(t,e){n.console&&n.console.warn&&t&&J.test(t.name)&&n.console.warn("jQuery.Deferred exception: "+t.message,t.stack,e)},T.readyException=function(t){n.setTimeout((function(){throw t}))};var Z=T.Deferred();function Q(){b.removeEventListener("DOMContentLoaded",Q),n.removeEventListener("load",Q),T.ready()}T.fn.ready=function(t){return Z.then(t).catch((function(t){T.readyException(t)})),this},T.extend({isReady:!1,readyWait:1,ready:function(t){(!0===t?--T.readyWait:T.isReady)||(T.isReady=!0,!0!==t&&--T.readyWait>0||Z.resolveWith(b,[T]))}}),T.ready.then=Z.then,"complete"===b.readyState||"loading"!==b.readyState&&!b.documentElement.doScroll?n.setTimeout(T.ready):(b.addEventListener("DOMContentLoaded",Q),n.addEventListener("load",Q));var tt=function(t,e,r,n,i,o,s){var a=0,u=t.length,c=null==r;if("object"===E(r))for(a in i=!0,r)tt(t,e,a,r[a],!0,o,s);else if(void 0!==n&&(i=!0,m(n)||(s=!0),c&&(s?(e.call(t,n),e=null):(c=e,e=function(t,e,r){return c.call(T(t),r)})),e))for(;a1,null,!0)},removeData:function(t){return this.each((function(){ut.remove(this,t)}))}}),T.extend({queue:function(t,e,r){var n;if(t)return e=(e||"fx")+"queue",n=at.get(t,e),r&&(!n||Array.isArray(r)?n=at.access(t,e,T.makeArray(r)):n.push(r)),n||[]},dequeue:function(t,e){e=e||"fx";var r=T.queue(t,e),n=r.length,i=r.shift(),o=T._queueHooks(t,e);"inprogress"===i&&(i=r.shift(),n--),i&&("fx"===e&&r.unshift("inprogress"),delete o.stop,i.call(t,(function(){T.dequeue(t,e)}),o)),!n&&o&&o.empty.fire()},_queueHooks:function(t,e){var r=e+"queueHooks";return at.get(t,r)||at.access(t,r,{empty:T.Callbacks("once memory").add((function(){at.remove(t,[e+"queue",r])}))})}}),T.fn.extend({queue:function(t,e){var r=2;return"string"!=typeof t&&(e=t,t="fx",r--),arguments.length\x20\t\r\n\f]*)/i,kt=/^$|^module$|\/(?:java|ecma)script/i;xt=b.createDocumentFragment().appendChild(b.createElement("div")),(St=b.createElement("input")).setAttribute("type","radio"),St.setAttribute("checked","checked"),St.setAttribute("name","t"),xt.appendChild(St),y.checkClone=xt.cloneNode(!0).cloneNode(!0).lastChild.checked,xt.innerHTML="",y.noCloneChecked=!!xt.cloneNode(!0).lastChild.defaultValue,xt.innerHTML="",y.option=!!xt.lastChild;var At={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function Ot(t,e){var r;return r=void 0!==t.getElementsByTagName?t.getElementsByTagName(e||"*"):void 0!==t.querySelectorAll?t.querySelectorAll(e||"*"):[],void 0===e||e&&k(t,e)?T.merge([t],r):r}function Pt(t,e){for(var r=0,n=t.length;r",""]);var Ct=/<|&#?\w+;/;function Nt(t,e,r,n,i){for(var o,s,a,u,c,l,h=e.createDocumentFragment(),f=[],p=0,d=t.length;p-1)i&&i.push(o);else if(c=yt(o),s=Ot(h.appendChild(o),"script"),c&&Pt(s),r)for(l=0;o=s[l++];)kt.test(o.type||"")&&r.push(o);return h}var Mt=/^([^.]*)(?:\.(.+)|)/;function Bt(){return!0}function Rt(){return!1}function Dt(t,e,r,n,i,o){var s,a;if("object"==typeof e){for(a in"string"!=typeof r&&(n=n||r,r=void 0),e)Dt(t,a,r,n,e[a],o);return t}if(null==n&&null==i?(i=r,n=r=void 0):null==i&&("string"==typeof r?(i=n,n=void 0):(i=n,n=r,r=void 0)),!1===i)i=Rt;else if(!i)return t;return 1===o&&(s=i,i=function(t){return T().off(t),s.apply(this,arguments)},i.guid=s.guid||(s.guid=T.guid++)),t.each((function(){T.event.add(this,e,i,n,r)}))}function Lt(t,e,r){r?(at.set(t,e,!1),T.event.add(t,e,{namespace:!1,handler:function(t){var r,n=at.get(this,e);if(1&t.isTrigger&&this[e]){if(n)(T.event.special[e]||{}).delegateType&&t.stopPropagation();else if(n=a.call(arguments),at.set(this,e,n),this[e](),r=at.get(this,e),at.set(this,e,!1),n!==r)return t.stopImmediatePropagation(),t.preventDefault(),r}else n&&(at.set(this,e,T.event.trigger(n[0],n.slice(1),this)),t.stopPropagation(),t.isImmediatePropagationStopped=Bt)}})):void 0===at.get(t,e)&&T.event.add(t,e,Bt)}T.event={global:{},add:function(t,e,r,n,i){var o,s,a,u,c,l,h,f,p,d,g,y=at.get(t);if(ot(t))for(r.handler&&(r=(o=r).handler,i=o.selector),i&&T.find.matchesSelector(gt,i),r.guid||(r.guid=T.guid++),(u=y.events)||(u=y.events=Object.create(null)),(s=y.handle)||(s=y.handle=function(e){return void 0!==T&&T.event.triggered!==e.type?T.event.dispatch.apply(t,arguments):void 0}),c=(e=(e||"").match(G)||[""]).length;c--;)p=g=(a=Mt.exec(e[c])||[])[1],d=(a[2]||"").split(".").sort(),p&&(h=T.event.special[p]||{},p=(i?h.delegateType:h.bindType)||p,h=T.event.special[p]||{},l=T.extend({type:p,origType:g,data:n,handler:r,guid:r.guid,selector:i,needsContext:i&&T.expr.match.needsContext.test(i),namespace:d.join(".")},o),(f=u[p])||((f=u[p]=[]).delegateCount=0,h.setup&&!1!==h.setup.call(t,n,d,s)||t.addEventListener&&t.addEventListener(p,s)),h.add&&(h.add.call(t,l),l.handler.guid||(l.handler.guid=r.guid)),i?f.splice(f.delegateCount++,0,l):f.push(l),T.event.global[p]=!0)},remove:function(t,e,r,n,i){var o,s,a,u,c,l,h,f,p,d,g,y=at.hasData(t)&&at.get(t);if(y&&(u=y.events)){for(c=(e=(e||"").match(G)||[""]).length;c--;)if(p=g=(a=Mt.exec(e[c])||[])[1],d=(a[2]||"").split(".").sort(),p){for(h=T.event.special[p]||{},f=u[p=(n?h.delegateType:h.bindType)||p]||[],a=a[2]&&new RegExp("(^|\\.)"+d.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=o=f.length;o--;)l=f[o],!i&&g!==l.origType||r&&r.guid!==l.guid||a&&!a.test(l.namespace)||n&&n!==l.selector&&("**"!==n||!l.selector)||(f.splice(o,1),l.selector&&f.delegateCount--,h.remove&&h.remove.call(t,l));s&&!f.length&&(h.teardown&&!1!==h.teardown.call(t,d,y.handle)||T.removeEvent(t,p,y.handle),delete u[p])}else for(p in u)T.event.remove(t,p+e[c],r,n,!0);T.isEmptyObject(u)&&at.remove(t,"handle events")}},dispatch:function(t){var e,r,n,i,o,s,a=new Array(arguments.length),u=T.event.fix(t),c=(at.get(this,"events")||Object.create(null))[u.type]||[],l=T.event.special[u.type]||{};for(a[0]=u,e=1;e=1))for(;c!==this;c=c.parentNode||this)if(1===c.nodeType&&("click"!==t.type||!0!==c.disabled)){for(o=[],s={},r=0;r-1:T.find(i,this,null,[c]).length),s[i]&&o.push(n);o.length&&a.push({elem:c,handlers:o})}return c=this,u\s*$/g;function jt(t,e){return k(t,"table")&&k(11!==e.nodeType?e:e.firstChild,"tr")&&T(t).children("tbody")[0]||t}function Ft(t){return t.type=(null!==t.getAttribute("type"))+"/"+t.type,t}function Vt(t){return"true/"===(t.type||"").slice(0,5)?t.type=t.type.slice(5):t.removeAttribute("type"),t}function Wt(t,e){var r,n,i,o,s,a;if(1===e.nodeType){if(at.hasData(t)&&(a=at.get(t).events))for(i in at.remove(e,"handle events"),a)for(r=0,n=a[i].length;r1&&"string"==typeof d&&!y.checkClone&&Ht.test(d))return t.each((function(i){var o=t.eq(i);g&&(e[0]=d.call(this,i,o.html())),qt(o,e,r,n)}));if(f&&(o=(i=Nt(e,t[0].ownerDocument,!1,t,n)).firstChild,1===i.childNodes.length&&(i=o),o||n)){for(a=(s=T.map(Ot(i,"script"),Ft)).length;h0&&Pt(s,!u&&Ot(t,"script")),a},cleanData:function(t){for(var e,r,n,i=T.event.special,o=0;void 0!==(r=t[o]);o++)if(ot(r)){if(e=r[at.expando]){if(e.events)for(n in e.events)i[n]?T.event.remove(r,n):T.removeEvent(r,n,e.handle);r[at.expando]=void 0}r[ut.expando]&&(r[ut.expando]=void 0)}}}),T.fn.extend({detach:function(t){return Gt(this,t,!0)},remove:function(t){return Gt(this,t)},text:function(t){return tt(this,(function(t){return void 0===t?T.text(this):this.empty().each((function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=t)}))}),null,t,arguments.length)},append:function(){return qt(this,arguments,(function(t){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||jt(this,t).appendChild(t)}))},prepend:function(){return qt(this,arguments,(function(t){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var e=jt(this,t);e.insertBefore(t,e.firstChild)}}))},before:function(){return qt(this,arguments,(function(t){this.parentNode&&this.parentNode.insertBefore(t,this)}))},after:function(){return qt(this,arguments,(function(t){this.parentNode&&this.parentNode.insertBefore(t,this.nextSibling)}))},empty:function(){for(var t,e=0;null!=(t=this[e]);e++)1===t.nodeType&&(T.cleanData(Ot(t,!1)),t.textContent="");return this},clone:function(t,e){return t=null!=t&&t,e=null==e?t:e,this.map((function(){return T.clone(this,t,e)}))},html:function(t){return tt(this,(function(t){var e=this[0]||{},r=0,n=this.length;if(void 0===t&&1===e.nodeType)return e.innerHTML;if("string"==typeof t&&!Ut.test(t)&&!At[(It.exec(t)||["",""])[1].toLowerCase()]){t=T.htmlPrefilter(t);try{for(;r=0&&(u+=Math.max(0,Math.ceil(t["offset"+e[0].toUpperCase()+e.slice(1)]-o-u-a-.5))||0),u+c}function le(t,e,r){var n=Yt(t),i=(!y.boxSizingReliable()||r)&&"border-box"===T.css(t,"boxSizing",!1,n),o=i,s=Qt(t,e,n),a="offset"+e[0].toUpperCase()+e.slice(1);if(zt.test(s)){if(!r)return s;s="auto"}return(!y.boxSizingReliable()&&i||!y.reliableTrDimensions()&&k(t,"tr")||"auto"===s||!parseFloat(s)&&"inline"===T.css(t,"display",!1,n))&&t.getClientRects().length&&(i="border-box"===T.css(t,"boxSizing",!1,n),(o=a in t)&&(s=t[a])),(s=parseFloat(s)||0)+ce(t,e,r||(i?"border":"content"),o,n,s)+"px"}function he(t,e,r,n,i){return new he.prototype.init(t,e,r,n,i)}T.extend({cssHooks:{opacity:{get:function(t,e){if(e){var r=Qt(t,"opacity");return""===r?"1":r}}}},cssNumber:{animationIterationCount:!0,aspectRatio:!0,borderImageSlice:!0,columnCount:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,scale:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeMiterlimit:!0,strokeOpacity:!0},cssProps:{},style:function(t,e,r,n){if(t&&3!==t.nodeType&&8!==t.nodeType&&t.style){var i,o,s,a=it(e),u=Xt.test(e),c=t.style;if(u||(e=ie(a)),s=T.cssHooks[e]||T.cssHooks[a],void 0===r)return s&&"get"in s&&void 0!==(i=s.get(t,!1,n))?i:c[e];"string"==(o=typeof r)&&(i=pt.exec(r))&&i[1]&&(r=bt(t,e,i),o="number"),null!=r&&r==r&&("number"!==o||u||(r+=i&&i[3]||(T.cssNumber[a]?"":"px")),y.clearCloneStyle||""!==r||0!==e.indexOf("background")||(c[e]="inherit"),s&&"set"in s&&void 0===(r=s.set(t,r,n))||(u?c.setProperty(e,r):c[e]=r))}},css:function(t,e,r,n){var i,o,s,a=it(e);return Xt.test(e)||(e=ie(a)),(s=T.cssHooks[e]||T.cssHooks[a])&&"get"in s&&(i=s.get(t,!0,r)),void 0===i&&(i=Qt(t,e,n)),"normal"===i&&e in ae&&(i=ae[e]),""===r||r?(o=parseFloat(i),!0===r||isFinite(o)?o||0:i):i}}),T.each(["height","width"],(function(t,e){T.cssHooks[e]={get:function(t,r,n){if(r)return!oe.test(T.css(t,"display"))||t.getClientRects().length&&t.getBoundingClientRect().width?le(t,e,n):Jt(t,se,(function(){return le(t,e,n)}))},set:function(t,r,n){var i,o=Yt(t),s=!y.scrollboxSize()&&"absolute"===o.position,a=(s||n)&&"border-box"===T.css(t,"boxSizing",!1,o),u=n?ce(t,e,n,a,o):0;return a&&s&&(u-=Math.ceil(t["offset"+e[0].toUpperCase()+e.slice(1)]-parseFloat(o[e])-ce(t,e,"border",!1,o)-.5)),u&&(i=pt.exec(r))&&"px"!==(i[3]||"px")&&(t.style[e]=r,r=T.css(t,e)),ue(0,r,u)}}})),T.cssHooks.marginLeft=te(y.reliableMarginLeft,(function(t,e){if(e)return(parseFloat(Qt(t,"marginLeft"))||t.getBoundingClientRect().left-Jt(t,{marginLeft:0},(function(){return t.getBoundingClientRect().left})))+"px"})),T.each({margin:"",padding:"",border:"Width"},(function(t,e){T.cssHooks[t+e]={expand:function(r){for(var n=0,i={},o="string"==typeof r?r.split(" "):[r];n<4;n++)i[t+dt[n]+e]=o[n]||o[n-2]||o[0];return i}},"margin"!==t&&(T.cssHooks[t+e].set=ue)})),T.fn.extend({css:function(t,e){return tt(this,(function(t,e,r){var n,i,o={},s=0;if(Array.isArray(e)){for(n=Yt(t),i=e.length;s1)}}),T.Tween=he,he.prototype={constructor:he,init:function(t,e,r,n,i,o){this.elem=t,this.prop=r,this.easing=i||T.easing._default,this.options=e,this.start=this.now=this.cur(),this.end=n,this.unit=o||(T.cssNumber[r]?"":"px")},cur:function(){var t=he.propHooks[this.prop];return t&&t.get?t.get(this):he.propHooks._default.get(this)},run:function(t){var e,r=he.propHooks[this.prop];return this.options.duration?this.pos=e=T.easing[this.easing](t,this.options.duration*t,0,1,this.options.duration):this.pos=e=t,this.now=(this.end-this.start)*e+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),r&&r.set?r.set(this):he.propHooks._default.set(this),this}},he.prototype.init.prototype=he.prototype,he.propHooks={_default:{get:function(t){var e;return 1!==t.elem.nodeType||null!=t.elem[t.prop]&&null==t.elem.style[t.prop]?t.elem[t.prop]:(e=T.css(t.elem,t.prop,""))&&"auto"!==e?e:0},set:function(t){T.fx.step[t.prop]?T.fx.step[t.prop](t):1!==t.elem.nodeType||!T.cssHooks[t.prop]&&null==t.elem.style[ie(t.prop)]?t.elem[t.prop]=t.now:T.style(t.elem,t.prop,t.now+t.unit)}}},he.propHooks.scrollTop=he.propHooks.scrollLeft={set:function(t){t.elem.nodeType&&t.elem.parentNode&&(t.elem[t.prop]=t.now)}},T.easing={linear:function(t){return t},swing:function(t){return.5-Math.cos(t*Math.PI)/2},_default:"swing"},T.fx=he.prototype.init,T.fx.step={};var fe,pe,de=/^(?:toggle|show|hide)$/,ge=/queueHooks$/;function ye(){pe&&(!1===b.hidden&&n.requestAnimationFrame?n.requestAnimationFrame(ye):n.setTimeout(ye,T.fx.interval),T.fx.tick())}function me(){return n.setTimeout((function(){fe=void 0})),fe=Date.now()}function ve(t,e){var r,n=0,i={height:t};for(e=e?1:0;n<4;n+=2-e)i["margin"+(r=dt[n])]=i["padding"+r]=t;return e&&(i.opacity=i.width=t),i}function be(t,e,r){for(var n,i=(we.tweeners[e]||[]).concat(we.tweeners["*"]),o=0,s=i.length;o1)},removeAttr:function(t){return this.each((function(){T.removeAttr(this,t)}))}}),T.extend({attr:function(t,e,r){var n,i,o=t.nodeType;if(3!==o&&8!==o&&2!==o)return void 0===t.getAttribute?T.prop(t,e,r):(1===o&&T.isXMLDoc(t)||(i=T.attrHooks[e.toLowerCase()]||(T.expr.match.bool.test(e)?_e:void 0)),void 0!==r?null===r?void T.removeAttr(t,e):i&&"set"in i&&void 0!==(n=i.set(t,r,e))?n:(t.setAttribute(e,r+""),r):i&&"get"in i&&null!==(n=i.get(t,e))?n:null==(n=T.find.attr(t,e))?void 0:n)},attrHooks:{type:{set:function(t,e){if(!y.radioValue&&"radio"===e&&k(t,"input")){var r=t.value;return t.setAttribute("type",e),r&&(t.value=r),e}}}},removeAttr:function(t,e){var r,n=0,i=e&&e.match(G);if(i&&1===t.nodeType)for(;r=i[n++];)t.removeAttribute(r)}}),_e={set:function(t,e,r){return!1===e?T.removeAttr(t,r):t.setAttribute(r,r),r}},T.each(T.expr.match.bool.source.match(/\w+/g),(function(t,e){var r=Ee[e]||T.find.attr;Ee[e]=function(t,e,n){var i,o,s=e.toLowerCase();return n||(o=Ee[s],Ee[s]=i,i=null!=r(t,e,n)?s:null,Ee[s]=o),i}}));var xe=/^(?:input|select|textarea|button)$/i,Se=/^(?:a|area)$/i;function Te(t){return(t.match(G)||[]).join(" ")}function Ie(t){return t.getAttribute&&t.getAttribute("class")||""}function ke(t){return Array.isArray(t)?t:"string"==typeof t&&t.match(G)||[]}T.fn.extend({prop:function(t,e){return tt(this,T.prop,t,e,arguments.length>1)},removeProp:function(t){return this.each((function(){delete this[T.propFix[t]||t]}))}}),T.extend({prop:function(t,e,r){var n,i,o=t.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&T.isXMLDoc(t)||(e=T.propFix[e]||e,i=T.propHooks[e]),void 0!==r?i&&"set"in i&&void 0!==(n=i.set(t,r,e))?n:t[e]=r:i&&"get"in i&&null!==(n=i.get(t,e))?n:t[e]},propHooks:{tabIndex:{get:function(t){var e=T.find.attr(t,"tabindex");return e?parseInt(e,10):xe.test(t.nodeName)||Se.test(t.nodeName)&&t.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),y.optSelected||(T.propHooks.selected={get:function(t){var e=t.parentNode;return e&&e.parentNode&&e.parentNode.selectedIndex,null},set:function(t){var e=t.parentNode;e&&(e.selectedIndex,e.parentNode&&e.parentNode.selectedIndex)}}),T.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],(function(){T.propFix[this.toLowerCase()]=this})),T.fn.extend({addClass:function(t){var e,r,n,i,o,s;return m(t)?this.each((function(e){T(this).addClass(t.call(this,e,Ie(this)))})):(e=ke(t)).length?this.each((function(){if(n=Ie(this),r=1===this.nodeType&&" "+Te(n)+" "){for(o=0;o-1;)r=r.replace(" "+i+" "," ");s=Te(r),n!==s&&this.setAttribute("class",s)}})):this:this.attr("class","")},toggleClass:function(t,e){var r,n,i,o,s=typeof t,a="string"===s||Array.isArray(t);return m(t)?this.each((function(r){T(this).toggleClass(t.call(this,r,Ie(this),e),e)})):"boolean"==typeof e&&a?e?this.addClass(t):this.removeClass(t):(r=ke(t),this.each((function(){if(a)for(o=T(this),i=0;i-1)return!0;return!1}});var Ae=/\r/g;T.fn.extend({val:function(t){var e,r,n,i=this[0];return arguments.length?(n=m(t),this.each((function(r){var i;1===this.nodeType&&(null==(i=n?t.call(this,r,T(this).val()):t)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=T.map(i,(function(t){return null==t?"":t+""}))),(e=T.valHooks[this.type]||T.valHooks[this.nodeName.toLowerCase()])&&"set"in e&&void 0!==e.set(this,i,"value")||(this.value=i))}))):i?(e=T.valHooks[i.type]||T.valHooks[i.nodeName.toLowerCase()])&&"get"in e&&void 0!==(r=e.get(i,"value"))?r:"string"==typeof(r=i.value)?r.replace(Ae,""):null==r?"":r:void 0}}),T.extend({valHooks:{option:{get:function(t){var e=T.find.attr(t,"value");return null!=e?e:Te(T.text(t))}},select:{get:function(t){var e,r,n,i=t.options,o=t.selectedIndex,s="select-one"===t.type,a=s?null:[],u=s?o+1:i.length;for(n=o<0?u:s?o:0;n-1)&&(r=!0);return r||(t.selectedIndex=-1),o}}}}),T.each(["radio","checkbox"],(function(){T.valHooks[this]={set:function(t,e){if(Array.isArray(e))return t.checked=T.inArray(T(t).val(),e)>-1}},y.checkOn||(T.valHooks[this].get=function(t){return null===t.getAttribute("value")?"on":t.value})}));var Oe=n.location,Pe={guid:Date.now()},Ce=/\?/;T.parseXML=function(t){var e,r;if(!t||"string"!=typeof t)return null;try{e=(new n.DOMParser).parseFromString(t,"text/xml")}catch(t){}return r=e&&e.getElementsByTagName("parsererror")[0],e&&!r||T.error("Invalid XML: "+(r?T.map(r.childNodes,(function(t){return t.textContent})).join("\n"):t)),e};var Ne=/^(?:focusinfocus|focusoutblur)$/,Me=function(t){t.stopPropagation()};T.extend(T.event,{trigger:function(t,e,r,i){var o,s,a,u,c,l,h,f,d=[r||b],g=p.call(t,"type")?t.type:t,y=p.call(t,"namespace")?t.namespace.split("."):[];if(s=f=a=r=r||b,3!==r.nodeType&&8!==r.nodeType&&!Ne.test(g+T.event.triggered)&&(g.indexOf(".")>-1&&(y=g.split("."),g=y.shift(),y.sort()),c=g.indexOf(":")<0&&"on"+g,(t=t[T.expando]?t:new T.Event(g,"object"==typeof t&&t)).isTrigger=i?2:3,t.namespace=y.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+y.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=r),e=null==e?[t]:T.makeArray(e,[t]),h=T.event.special[g]||{},i||!h.trigger||!1!==h.trigger.apply(r,e))){if(!i&&!h.noBubble&&!v(r)){for(u=h.delegateType||g,Ne.test(u+g)||(s=s.parentNode);s;s=s.parentNode)d.push(s),a=s;a===(r.ownerDocument||b)&&d.push(a.defaultView||a.parentWindow||n)}for(o=0;(s=d[o++])&&!t.isPropagationStopped();)f=s,t.type=o>1?u:h.bindType||g,(l=(at.get(s,"events")||Object.create(null))[t.type]&&at.get(s,"handle"))&&l.apply(s,e),(l=c&&s[c])&&l.apply&&ot(s)&&(t.result=l.apply(s,e),!1===t.result&&t.preventDefault());return t.type=g,i||t.isDefaultPrevented()||h._default&&!1!==h._default.apply(d.pop(),e)||!ot(r)||c&&m(r[g])&&!v(r)&&((a=r[c])&&(r[c]=null),T.event.triggered=g,t.isPropagationStopped()&&f.addEventListener(g,Me),r[g](),t.isPropagationStopped()&&f.removeEventListener(g,Me),T.event.triggered=void 0,a&&(r[c]=a)),t.result}},simulate:function(t,e,r){var n=T.extend(new T.Event,r,{type:t,isSimulated:!0});T.event.trigger(n,null,e)}}),T.fn.extend({trigger:function(t,e){return this.each((function(){T.event.trigger(t,e,this)}))},triggerHandler:function(t,e){var r=this[0];if(r)return T.event.trigger(t,e,r,!0)}});var Be=/\[\]$/,Re=/\r?\n/g,De=/^(?:submit|button|image|reset|file)$/i,Le=/^(?:input|select|textarea|keygen)/i;function Ue(t,e,r,n){var i;if(Array.isArray(e))T.each(e,(function(e,i){r||Be.test(t)?n(t,i):Ue(t+"["+("object"==typeof i&&null!=i?e:"")+"]",i,r,n)}));else if(r||"object"!==E(e))n(t,e);else for(i in e)Ue(t+"["+i+"]",e[i],r,n)}T.param=function(t,e){var r,n=[],i=function(t,e){var r=m(e)?e():e;n[n.length]=encodeURIComponent(t)+"="+encodeURIComponent(null==r?"":r)};if(null==t)return"";if(Array.isArray(t)||t.jquery&&!T.isPlainObject(t))T.each(t,(function(){i(this.name,this.value)}));else for(r in t)Ue(r,t[r],e,i);return n.join("&")},T.fn.extend({serialize:function(){return T.param(this.serializeArray())},serializeArray:function(){return this.map((function(){var t=T.prop(this,"elements");return t?T.makeArray(t):this})).filter((function(){var t=this.type;return this.name&&!T(this).is(":disabled")&&Le.test(this.nodeName)&&!De.test(t)&&(this.checked||!Tt.test(t))})).map((function(t,e){var r=T(this).val();return null==r?null:Array.isArray(r)?T.map(r,(function(t){return{name:e.name,value:t.replace(Re,"\r\n")}})):{name:e.name,value:r.replace(Re,"\r\n")}})).get()}});var He=/%20/g,$e=/#.*$/,je=/([?&])_=[^&]*/,Fe=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ve=/^(?:GET|HEAD)$/,We=/^\/\//,Ke={},qe={},Ge="*/".concat("*"),ze=b.createElement("a");function Xe(t){return function(e,r){"string"!=typeof e&&(r=e,e="*");var n,i=0,o=e.toLowerCase().match(G)||[];if(m(r))for(;n=o[i++];)"+"===n[0]?(n=n.slice(1)||"*",(t[n]=t[n]||[]).unshift(r)):(t[n]=t[n]||[]).push(r)}}function Ye(t,e,r,n){var i={},o=t===qe;function s(a){var u;return i[a]=!0,T.each(t[a]||[],(function(t,a){var c=a(e,r,n);return"string"!=typeof c||o||i[c]?o?!(u=c):void 0:(e.dataTypes.unshift(c),s(c),!1)})),u}return s(e.dataTypes[0])||!i["*"]&&s("*")}function Je(t,e){var r,n,i=T.ajaxSettings.flatOptions||{};for(r in e)void 0!==e[r]&&((i[r]?t:n||(n={}))[r]=e[r]);return n&&T.extend(!0,t,n),t}ze.href=Oe.href,T.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Oe.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Oe.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Ge,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":T.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(t,e){return e?Je(Je(t,T.ajaxSettings),e):Je(T.ajaxSettings,t)},ajaxPrefilter:Xe(Ke),ajaxTransport:Xe(qe),ajax:function(t,e){"object"==typeof t&&(e=t,t=void 0),e=e||{};var r,i,o,s,a,u,c,l,h,f,p=T.ajaxSetup({},e),d=p.context||p,g=p.context&&(d.nodeType||d.jquery)?T(d):T.event,y=T.Deferred(),m=T.Callbacks("once memory"),v=p.statusCode||{},w={},_={},E="canceled",x={readyState:0,getResponseHeader:function(t){var e;if(c){if(!s)for(s={};e=Fe.exec(o);)s[e[1].toLowerCase()+" "]=(s[e[1].toLowerCase()+" "]||[]).concat(e[2]);e=s[t.toLowerCase()+" "]}return null==e?null:e.join(", ")},getAllResponseHeaders:function(){return c?o:null},setRequestHeader:function(t,e){return null==c&&(t=_[t.toLowerCase()]=_[t.toLowerCase()]||t,w[t]=e),this},overrideMimeType:function(t){return null==c&&(p.mimeType=t),this},statusCode:function(t){var e;if(t)if(c)x.always(t[x.status]);else for(e in t)v[e]=[v[e],t[e]];return this},abort:function(t){var e=t||E;return r&&r.abort(e),S(0,e),this}};if(y.promise(x),p.url=((t||p.url||Oe.href)+"").replace(We,Oe.protocol+"//"),p.type=e.method||e.type||p.method||p.type,p.dataTypes=(p.dataType||"*").toLowerCase().match(G)||[""],null==p.crossDomain){u=b.createElement("a");try{u.href=p.url,u.href=u.href,p.crossDomain=ze.protocol+"//"+ze.host!=u.protocol+"//"+u.host}catch(t){p.crossDomain=!0}}if(p.data&&p.processData&&"string"!=typeof p.data&&(p.data=T.param(p.data,p.traditional)),Ye(Ke,p,e,x),c)return x;for(h in(l=T.event&&p.global)&&0==T.active++&&T.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Ve.test(p.type),i=p.url.replace($e,""),p.hasContent?p.data&&p.processData&&0===(p.contentType||"").indexOf("application/x-www-form-urlencoded")&&(p.data=p.data.replace(He,"+")):(f=p.url.slice(i.length),p.data&&(p.processData||"string"==typeof p.data)&&(i+=(Ce.test(i)?"&":"?")+p.data,delete p.data),!1===p.cache&&(i=i.replace(je,"$1"),f=(Ce.test(i)?"&":"?")+"_="+Pe.guid+++f),p.url=i+f),p.ifModified&&(T.lastModified[i]&&x.setRequestHeader("If-Modified-Since",T.lastModified[i]),T.etag[i]&&x.setRequestHeader("If-None-Match",T.etag[i])),(p.data&&p.hasContent&&!1!==p.contentType||e.contentType)&&x.setRequestHeader("Content-Type",p.contentType),x.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Ge+"; q=0.01":""):p.accepts["*"]),p.headers)x.setRequestHeader(h,p.headers[h]);if(p.beforeSend&&(!1===p.beforeSend.call(d,x,p)||c))return x.abort();if(E="abort",m.add(p.complete),x.done(p.success),x.fail(p.error),r=Ye(qe,p,e,x)){if(x.readyState=1,l&&g.trigger("ajaxSend",[x,p]),c)return x;p.async&&p.timeout>0&&(a=n.setTimeout((function(){x.abort("timeout")}),p.timeout));try{c=!1,r.send(w,S)}catch(t){if(c)throw t;S(-1,t)}}else S(-1,"No Transport");function S(t,e,s,u){var h,f,b,w,_,E=e;c||(c=!0,a&&n.clearTimeout(a),r=void 0,o=u||"",x.readyState=t>0?4:0,h=t>=200&&t<300||304===t,s&&(w=function(t,e,r){for(var n,i,o,s,a=t.contents,u=t.dataTypes;"*"===u[0];)u.shift(),void 0===n&&(n=t.mimeType||e.getResponseHeader("Content-Type"));if(n)for(i in a)if(a[i]&&a[i].test(n)){u.unshift(i);break}if(u[0]in r)o=u[0];else{for(i in r){if(!u[0]||t.converters[i+" "+u[0]]){o=i;break}s||(s=i)}o=o||s}if(o)return o!==u[0]&&u.unshift(o),r[o]}(p,x,s)),!h&&T.inArray("script",p.dataTypes)>-1&&T.inArray("json",p.dataTypes)<0&&(p.converters["text script"]=function(){}),w=function(t,e,r,n){var i,o,s,a,u,c={},l=t.dataTypes.slice();if(l[1])for(s in t.converters)c[s.toLowerCase()]=t.converters[s];for(o=l.shift();o;)if(t.responseFields[o]&&(r[t.responseFields[o]]=e),!u&&n&&t.dataFilter&&(e=t.dataFilter(e,t.dataType)),u=o,o=l.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(s=c[u+" "+o]||c["* "+o]))for(i in c)if((a=i.split(" "))[1]===o&&(s=c[u+" "+a[0]]||c["* "+a[0]])){!0===s?s=c[i]:!0!==c[i]&&(o=a[0],l.unshift(a[1]));break}if(!0!==s)if(s&&t.throws)e=s(e);else try{e=s(e)}catch(t){return{state:"parsererror",error:s?t:"No conversion from "+u+" to "+o}}}return{state:"success",data:e}}(p,w,x,h),h?(p.ifModified&&((_=x.getResponseHeader("Last-Modified"))&&(T.lastModified[i]=_),(_=x.getResponseHeader("etag"))&&(T.etag[i]=_)),204===t||"HEAD"===p.type?E="nocontent":304===t?E="notmodified":(E=w.state,f=w.data,h=!(b=w.error))):(b=E,!t&&E||(E="error",t<0&&(t=0))),x.status=t,x.statusText=(e||E)+"",h?y.resolveWith(d,[f,E,x]):y.rejectWith(d,[x,E,b]),x.statusCode(v),v=void 0,l&&g.trigger(h?"ajaxSuccess":"ajaxError",[x,p,h?f:b]),m.fireWith(d,[x,E]),l&&(g.trigger("ajaxComplete",[x,p]),--T.active||T.event.trigger("ajaxStop")))}return x},getJSON:function(t,e,r){return T.get(t,e,r,"json")},getScript:function(t,e){return T.get(t,void 0,e,"script")}}),T.each(["get","post"],(function(t,e){T[e]=function(t,r,n,i){return m(r)&&(i=i||n,n=r,r=void 0),T.ajax(T.extend({url:t,type:e,dataType:i,data:r,success:n},T.isPlainObject(t)&&t))}})),T.ajaxPrefilter((function(t){var e;for(e in t.headers)"content-type"===e.toLowerCase()&&(t.contentType=t.headers[e]||"")})),T._evalUrl=function(t,e,r){return T.ajax({url:t,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(t){T.globalEval(t,e,r)}})},T.fn.extend({wrapAll:function(t){var e;return this[0]&&(m(t)&&(t=t.call(this[0])),e=T(t,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&e.insertBefore(this[0]),e.map((function(){for(var t=this;t.firstElementChild;)t=t.firstElementChild;return t})).append(this)),this},wrapInner:function(t){return m(t)?this.each((function(e){T(this).wrapInner(t.call(this,e))})):this.each((function(){var e=T(this),r=e.contents();r.length?r.wrapAll(t):e.append(t)}))},wrap:function(t){var e=m(t);return this.each((function(r){T(this).wrapAll(e?t.call(this,r):t)}))},unwrap:function(t){return this.parent(t).not("body").each((function(){T(this).replaceWith(this.childNodes)})),this}}),T.expr.pseudos.hidden=function(t){return!T.expr.pseudos.visible(t)},T.expr.pseudos.visible=function(t){return!!(t.offsetWidth||t.offsetHeight||t.getClientRects().length)},T.ajaxSettings.xhr=function(){try{return new n.XMLHttpRequest}catch(t){}};var Ze={0:200,1223:204},Qe=T.ajaxSettings.xhr();y.cors=!!Qe&&"withCredentials"in Qe,y.ajax=Qe=!!Qe,T.ajaxTransport((function(t){var e,r;if(y.cors||Qe&&!t.crossDomain)return{send:function(i,o){var s,a=t.xhr();if(a.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(s in t.xhrFields)a[s]=t.xhrFields[s];for(s in t.mimeType&&a.overrideMimeType&&a.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest"),i)a.setRequestHeader(s,i[s]);e=function(t){return function(){e&&(e=r=a.onload=a.onerror=a.onabort=a.ontimeout=a.onreadystatechange=null,"abort"===t?a.abort():"error"===t?"number"!=typeof a.status?o(0,"error"):o(a.status,a.statusText):o(Ze[a.status]||a.status,a.statusText,"text"!==(a.responseType||"text")||"string"!=typeof a.responseText?{binary:a.response}:{text:a.responseText},a.getAllResponseHeaders()))}},a.onload=e(),r=a.onerror=a.ontimeout=e("error"),void 0!==a.onabort?a.onabort=r:a.onreadystatechange=function(){4===a.readyState&&n.setTimeout((function(){e&&r()}))},e=e("abort");try{a.send(t.hasContent&&t.data||null)}catch(t){if(e)throw t}},abort:function(){e&&e()}}})),T.ajaxPrefilter((function(t){t.crossDomain&&(t.contents.script=!1)})),T.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(t){return T.globalEval(t),t}}}),T.ajaxPrefilter("script",(function(t){void 0===t.cache&&(t.cache=!1),t.crossDomain&&(t.type="GET")})),T.ajaxTransport("script",(function(t){var e,r;if(t.crossDomain||t.scriptAttrs)return{send:function(n,i){e=T("


My PIVX Wallet is
Loading

Create a
New Wallet

Create a new PIVX wallet, offering the most secure backup & security methods.


Create a new
Vanity Wallet

Create a wallet with a custom prefix, this can take a long time!

Note: addresses will always start with: D

Access your
Ledger Wallet

Use your Ledger Hardware wallet with MPW's familiar interface.


Go to
My Wallet

Import a PIVX wallet using a Private Key, xpriv, or Seed Phrase.



Staking
0 PIV
$- USD
Stake
Unstake
Unstake

MAX
PIV
USD
Stake

MAX
PIV
USD

Governance

From this tab you can check the proposals and, if you have a masternode, be a part of the DAO and vote!

Monthly Budget
- PIV
-
Budget Allocated
- PIV
-
Next Treasury Payout
Budget Allocated
- PIV
-
STATUSNAMEPAYMENTVOTESVOTE


Contested Proposals

These are proposals that received an overwhelming amount of downvotes, making it likely spam or a highly contestable proposal.


STATUSNAMEPAYMENTVOTESVOTE

Control your

Masternode

From this tab you can create and access one or more masternodes



Status

Last Seen


  • Wallet
  • Display
Wallet







Change Password



This unlocks deeper functionality and customisation, but may be overwhelming and potentially dangerous for unexperienced users!

Display

Price data provided by CoinGecko


(-)


\ No newline at end of file +My PIVX Wallet

My PIVX Wallet is
Loading

Staking
0 PIV
$- USD
Stake
Unstake
Unstake

MAX
PIV
USD
Stake

MAX
PIV
USD

Governance

From this tab you can check the proposals and, if you have a masternode, be a part of the DAO and vote!

Monthly Budget
- PIV
-
Budget Allocated
- PIV
-
Next Treasury Payout
Budget Allocated
- PIV
-
STATUSNAMEPAYMENTVOTESVOTE


Contested Proposals

These are proposals that received an overwhelming amount of downvotes, making it likely spam or a highly contestable proposal.


STATUSNAMEPAYMENTVOTESVOTE

Control your

Masternode

From this tab you can create and access one or more masternodes



Status

Last Seen


  • Wallet
  • Display
Wallet







Change Password

Delete Wallet



This unlocks deeper functionality and customisation, but may be overwhelming and potentially dangerous for unexperienced users!

Display

Price data provided by CoinGecko


(-)



\ No newline at end of file diff --git a/main.css b/main.css index 28e2f4bb4..e78d19c52 100644 --- a/main.css +++ b/main.css @@ -9,5 +9,5 @@ * Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) * Copyright 2023 Fonticons, Inc. - */.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-classic,.fa-regular,.fa-sharp,.fa-solid,.fab,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-classic,.fa-regular,.fa-solid,.far,.fas{font-family:Font Awesome\ 6 Free}.fa-brands,.fab{font-family:Font Awesome\ 6 Brands}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);line-height:inherit;position:absolute;text-align:center;width:var(--fa-li-width,2em)}.fa-border{border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);border-radius:var(--fa-border-radius,.1em);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-transition-delay:0s;transition-delay:0s;-webkit-transition-duration:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}24%,8%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}24%,8%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,none));transform:rotate(var(--fa-rotate-angle,none))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)}.fa-0:before{content:"\30"}.fa-1:before{content:"\31"}.fa-2:before{content:"\32"}.fa-3:before{content:"\33"}.fa-4:before{content:"\34"}.fa-5:before{content:"\35"}.fa-6:before{content:"\36"}.fa-7:before{content:"\37"}.fa-8:before{content:"\38"}.fa-9:before{content:"\39"}.fa-fill-drip:before{content:"\f576"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:"\f138"}.fa-at:before{content:"\40"}.fa-trash-alt:before,.fa-trash-can:before{content:"\f2ed"}.fa-text-height:before{content:"\f034"}.fa-user-times:before,.fa-user-xmark:before{content:"\f235"}.fa-stethoscope:before{content:"\f0f1"}.fa-comment-alt:before,.fa-message:before{content:"\f27a"}.fa-info:before{content:"\f129"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-explosion:before{content:"\e4e9"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:"\f15c"}.fa-wave-square:before{content:"\f83e"}.fa-ring:before{content:"\f70b"}.fa-building-un:before{content:"\e4d9"}.fa-dice-three:before{content:"\f527"}.fa-calendar-alt:before,.fa-calendar-days:before{content:"\f073"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-volleyball-ball:before,.fa-volleyball:before{content:"\f45f"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-circle-minus:before,.fa-minus-circle:before{content:"\f056"}.fa-door-open:before{content:"\f52b"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:"\f2f5"}.fa-atom:before{content:"\f5d2"}.fa-soap:before{content:"\e06e"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:"\f86d"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:"\f539"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-pump-medical:before{content:"\e06a"}.fa-fingerprint:before{content:"\f577"}.fa-hand-point-right:before{content:"\f0a4"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:"\f689"}.fa-forward-step:before,.fa-step-forward:before{content:"\f051"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:"\f5b8"}.fa-flag-checkered:before{content:"\f11e"}.fa-football-ball:before,.fa-football:before{content:"\f44e"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-crop:before{content:"\f125"}.fa-angle-double-down:before,.fa-angles-down:before{content:"\f103"}.fa-users-rectangle:before{content:"\e594"}.fa-people-roof:before{content:"\e537"}.fa-people-line:before{content:"\e534"}.fa-beer-mug-empty:before,.fa-beer:before{content:"\f0fc"}.fa-diagram-predecessor:before{content:"\e477"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:"\f176"}.fa-burn:before,.fa-fire-flame-simple:before{content:"\f46a"}.fa-male:before,.fa-person:before{content:"\f183"}.fa-laptop:before{content:"\f109"}.fa-file-csv:before{content:"\f6dd"}.fa-menorah:before{content:"\f676"}.fa-truck-plane:before{content:"\e58f"}.fa-record-vinyl:before{content:"\f8d9"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:"\f587"}.fa-bong:before{content:"\f55c"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f2e5"}.fa-jar-wheat:before{content:"\e517"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:"\f674"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-circle-h:before,.fa-hospital-symbol:before{content:"\f47e"}.fa-pager:before{content:"\f815"}.fa-address-book:before,.fa-contact-book:before{content:"\f2b9"}.fa-strikethrough:before{content:"\f0cc"}.fa-k:before{content:"\4b"}.fa-landmark-flag:before{content:"\e51c"}.fa-pencil-alt:before,.fa-pencil:before{content:"\f303"}.fa-backward:before{content:"\f04a"}.fa-caret-right:before{content:"\f0da"}.fa-comments:before{content:"\f086"}.fa-file-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-code-pull-request:before{content:"\e13c"}.fa-clipboard-list:before{content:"\f46d"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:"\f4de"}.fa-user-check:before{content:"\f4fc"}.fa-vial-virus:before{content:"\e597"}.fa-sheet-plastic:before{content:"\e571"}.fa-blog:before{content:"\f781"}.fa-user-ninja:before{content:"\f504"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-scroll-torah:before,.fa-torah:before{content:"\f6a0"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:"\f458"}.fa-toggle-off:before{content:"\f204"}.fa-archive:before,.fa-box-archive:before{content:"\f187"}.fa-person-drowning:before{content:"\e545"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:"\f58a"}.fa-spray-can:before{content:"\f5bd"}.fa-truck-monster:before{content:"\f63b"}.fa-w:before{content:"\57"}.fa-earth-africa:before,.fa-globe-africa:before{content:"\f57c"}.fa-rainbow:before{content:"\f75b"}.fa-circle-notch:before{content:"\f1ce"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:"\f3fa"}.fa-paw:before{content:"\f1b0"}.fa-cloud:before{content:"\f0c2"}.fa-trowel-bricks:before{content:"\e58a"}.fa-face-flushed:before,.fa-flushed:before{content:"\f579"}.fa-hospital-user:before{content:"\f80d"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-binoculars:before{content:"\f1e5"}.fa-microphone-slash:before{content:"\f131"}.fa-box-tissue:before{content:"\e05b"}.fa-motorcycle:before{content:"\f21c"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:"\f562"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:"\f5ae"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:"\e068"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:"\f152"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-toilets-portable:before{content:"\e584"}.fa-hockey-puck:before{content:"\f453"}.fa-table:before{content:"\f0ce"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:"\f566"}.fa-users-slash:before{content:"\e073"}.fa-clover:before{content:"\e139"}.fa-mail-reply:before,.fa-reply:before{content:"\f3e5"}.fa-star-and-crescent:before{content:"\f699"}.fa-house-fire:before{content:"\e50c"}.fa-minus-square:before,.fa-square-minus:before{content:"\f146"}.fa-helicopter:before{content:"\f533"}.fa-compass:before{content:"\f14e"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:"\f150"}.fa-file-circle-question:before{content:"\e4ef"}.fa-laptop-code:before{content:"\f5fc"}.fa-swatchbook:before{content:"\f5c3"}.fa-prescription-bottle:before{content:"\f485"}.fa-bars:before,.fa-navicon:before{content:"\f0c9"}.fa-people-group:before{content:"\e533"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-heart-broken:before,.fa-heart-crack:before{content:"\f7a9"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:"\f360"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:"\f597"}.fa-film:before{content:"\f008"}.fa-ruler-horizontal:before{content:"\f547"}.fa-people-robbery:before{content:"\e536"}.fa-lightbulb:before{content:"\f0eb"}.fa-caret-left:before{content:"\f0d9"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:"\f06a"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:"\f08b"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:"\f13a"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:"\f13e"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:"\f58f"}.fa-sitemap:before{content:"\f0e8"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:"\f4b9"}.fa-memory:before{content:"\f538"}.fa-road-spikes:before{content:"\e568"}.fa-fire-burner:before{content:"\e4f1"}.fa-flag:before{content:"\f024"}.fa-hanukiah:before{content:"\f6e6"}.fa-feather:before{content:"\f52d"}.fa-volume-down:before,.fa-volume-low:before{content:"\f027"}.fa-comment-slash:before{content:"\f4b3"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-compress:before{content:"\f066"}.fa-wheat-alt:before,.fa-wheat-awn:before{content:"\e2cd"}.fa-ankh:before{content:"\f644"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-asterisk:before{content:"\2a"}.fa-check-square:before,.fa-square-check:before{content:"\f14a"}.fa-peseta-sign:before{content:"\e221"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-ghost:before{content:"\f6e2"}.fa-list-squares:before,.fa-list:before{content:"\f03a"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:"\f87b"}.fa-cart-plus:before{content:"\f217"}.fa-gamepad:before{content:"\f11b"}.fa-circle-dot:before,.fa-dot-circle:before{content:"\f192"}.fa-dizzy:before,.fa-face-dizzy:before{content:"\f567"}.fa-egg:before{content:"\f7fb"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-campground:before{content:"\f6bb"}.fa-folder-plus:before{content:"\f65e"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:"\f1e3"}.fa-paint-brush:before,.fa-paintbrush:before{content:"\f1fc"}.fa-lock:before{content:"\f023"}.fa-gas-pump:before{content:"\f52f"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:"\f593"}.fa-map-location:before,.fa-map-marked:before{content:"\f59f"}.fa-house-flood-water:before{content:"\e50e"}.fa-tree:before{content:"\f1bb"}.fa-bridge-lock:before{content:"\e4cc"}.fa-sack-dollar:before{content:"\f81d"}.fa-edit:before,.fa-pen-to-square:before{content:"\f044"}.fa-car-side:before{content:"\f5e4"}.fa-share-alt:before,.fa-share-nodes:before{content:"\f1e0"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-microscope:before{content:"\f610"}.fa-sink:before{content:"\e06d"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:"\f290"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-mitten:before{content:"\f7b5"}.fa-person-rays:before{content:"\e54d"}.fa-users:before{content:"\f0c0"}.fa-eye-slash:before{content:"\f070"}.fa-flask-vial:before{content:"\e4f3"}.fa-hand-paper:before,.fa-hand:before{content:"\f256"}.fa-om:before{content:"\f679"}.fa-worm:before{content:"\e599"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-plug:before{content:"\f1e6"}.fa-chevron-up:before{content:"\f077"}.fa-hand-spock:before{content:"\f259"}.fa-stopwatch:before{content:"\f2f2"}.fa-face-kiss:before,.fa-kiss:before{content:"\f596"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:"\f589"}.fa-chess-bishop:before{content:"\f43a"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:"\f58c"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-road-circle-check:before{content:"\e564"}.fa-dice-five:before{content:"\f523"}.fa-rss-square:before,.fa-square-rss:before{content:"\f143"}.fa-land-mine-on:before{content:"\e51b"}.fa-i-cursor:before{content:"\f246"}.fa-stamp:before{content:"\f5bf"}.fa-stairs:before{content:"\e289"}.fa-i:before{content:"\49"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:"\f6f2"}.fa-pills:before{content:"\f484"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:"\f581"}.fa-tooth:before{content:"\f5c9"}.fa-v:before{content:"\56"}.fa-bangladeshi-taka-sign:before{content:"\e2e6"}.fa-bicycle:before{content:"\f206"}.fa-rod-asclepius:before,.fa-rod-snake:before,.fa-staff-aesculapius:before,.fa-staff-snake:before{content:"\e579"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-ambulance:before,.fa-truck-medical:before{content:"\f0f9"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-snowman:before{content:"\f7d0"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-road-barrier:before{content:"\e562"}.fa-school:before{content:"\f549"}.fa-igloo:before{content:"\f7ae"}.fa-joint:before{content:"\f595"}.fa-angle-right:before{content:"\f105"}.fa-horse:before{content:"\f6f0"}.fa-q:before{content:"\51"}.fa-g:before{content:"\47"}.fa-notes-medical:before{content:"\f481"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-dong-sign:before{content:"\e169"}.fa-capsules:before{content:"\f46b"}.fa-poo-bolt:before,.fa-poo-storm:before{content:"\f75a"}.fa-face-frown-open:before,.fa-frown-open:before{content:"\f57a"}.fa-hand-point-up:before{content:"\f0a6"}.fa-money-bill:before{content:"\f0d6"}.fa-bookmark:before{content:"\f02e"}.fa-align-justify:before{content:"\f039"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-helmet-un:before{content:"\e503"}.fa-bullseye:before{content:"\f140"}.fa-bacon:before{content:"\f7e5"}.fa-hand-point-down:before{content:"\f0a7"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-folder-blank:before,.fa-folder:before{content:"\f07b"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:"\f478"}.fa-radiation:before{content:"\f7b9"}.fa-chart-simple:before{content:"\e473"}.fa-mars-stroke:before{content:"\f229"}.fa-vial:before{content:"\f492"}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:"\f624"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-e:before{content:"\45"}.fa-pen-alt:before,.fa-pen-clip:before{content:"\f305"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-user:before{content:"\f007"}.fa-school-circle-check:before{content:"\e56b"}.fa-dumpster:before{content:"\f793"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:"\f5b6"}.fa-building-user:before{content:"\e4da"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:"\f191"}.fa-highlighter:before{content:"\f591"}.fa-key:before{content:"\f084"}.fa-bullhorn:before{content:"\f0a1"}.fa-globe:before{content:"\f0ac"}.fa-synagogue:before{content:"\f69b"}.fa-person-half-dress:before{content:"\e548"}.fa-road-bridge:before{content:"\e563"}.fa-location-arrow:before{content:"\f124"}.fa-c:before{content:"\43"}.fa-tablet-button:before{content:"\f10a"}.fa-building-lock:before{content:"\e4d6"}.fa-pizza-slice:before{content:"\f818"}.fa-money-bill-wave:before{content:"\f53a"}.fa-area-chart:before,.fa-chart-area:before{content:"\f1fe"}.fa-house-flag:before{content:"\e50d"}.fa-person-circle-minus:before{content:"\e540"}.fa-ban:before,.fa-cancel:before{content:"\f05e"}.fa-camera-rotate:before{content:"\e0d8"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-star:before{content:"\f005"}.fa-repeat:before{content:"\f363"}.fa-cross:before{content:"\f654"}.fa-box:before{content:"\f466"}.fa-venus-mars:before{content:"\f228"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:"\f245"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:"\f31e"}.fa-charging-station:before{content:"\f5e7"}.fa-shapes:before,.fa-triangle-circle-square:before{content:"\f61f"}.fa-random:before,.fa-shuffle:before{content:"\f074"}.fa-person-running:before,.fa-running:before{content:"\f70c"}.fa-mobile-retro:before{content:"\e527"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-spider:before{content:"\f717"}.fa-hands-bound:before{content:"\e4f9"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-x-ray:before{content:"\f497"}.fa-spell-check:before{content:"\f891"}.fa-slash:before{content:"\f715"}.fa-computer-mouse:before,.fa-mouse:before{content:"\f8cc"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:"\f090"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:"\e070"}.fa-server:before{content:"\f233"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-shop-lock:before{content:"\e4a5"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-blender-phone:before{content:"\f6b6"}.fa-building-wheat:before{content:"\e4db"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:"\f2f6"}.fa-venus:before{content:"\f221"}.fa-passport:before{content:"\f5ab"}.fa-heart-pulse:before,.fa-heartbeat:before{content:"\f21e"}.fa-people-carry-box:before,.fa-people-carry:before{content:"\f4ce"}.fa-temperature-high:before{content:"\f769"}.fa-microchip:before{content:"\f2db"}.fa-crown:before{content:"\f521"}.fa-weight-hanging:before{content:"\f5cd"}.fa-xmarks-lines:before{content:"\e59a"}.fa-file-prescription:before{content:"\f572"}.fa-weight-scale:before,.fa-weight:before{content:"\f496"}.fa-user-friends:before,.fa-user-group:before{content:"\f500"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-chess-knight:before{content:"\f441"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:"\f59b"}.fa-wheelchair:before{content:"\f193"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:"\f0aa"}.fa-toggle-on:before{content:"\f205"}.fa-person-walking:before,.fa-walking:before{content:"\f554"}.fa-l:before{content:"\4c"}.fa-fire:before{content:"\f06d"}.fa-bed-pulse:before,.fa-procedures:before{content:"\f487"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:"\f197"}.fa-face-laugh:before,.fa-laugh:before{content:"\f599"}.fa-folder-open:before{content:"\f07c"}.fa-heart-circle-plus:before{content:"\e500"}.fa-code-fork:before{content:"\e13b"}.fa-city:before{content:"\f64f"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:"\f3c9"}.fa-pepper-hot:before{content:"\f816"}.fa-unlock:before{content:"\f09c"}.fa-colon-sign:before{content:"\e140"}.fa-headset:before{content:"\f590"}.fa-store-slash:before{content:"\e071"}.fa-road-circle-xmark:before{content:"\e566"}.fa-user-minus:before{content:"\f503"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:"\f22a"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:"\f79f"}.fa-clipboard:before{content:"\f328"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-file-arrow-up:before,.fa-file-upload:before{content:"\f574"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:"\f1eb"}.fa-bath:before,.fa-bathtub:before{content:"\f2cd"}.fa-underline:before{content:"\f0cd"}.fa-user-edit:before,.fa-user-pen:before{content:"\f4ff"}.fa-signature:before{content:"\f5b7"}.fa-stroopwafel:before{content:"\f551"}.fa-bold:before{content:"\f032"}.fa-anchor-lock:before{content:"\e4ad"}.fa-building-ngo:before{content:"\e4d7"}.fa-manat-sign:before{content:"\e1d5"}.fa-not-equal:before{content:"\f53e"}.fa-border-style:before,.fa-border-top-left:before{content:"\f853"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:"\f5a0"}.fa-jedi:before{content:"\f669"}.fa-poll:before,.fa-square-poll-vertical:before{content:"\f681"}.fa-mug-hot:before{content:"\f7b6"}.fa-battery-car:before,.fa-car-battery:before{content:"\f5df"}.fa-gift:before{content:"\f06b"}.fa-dice-two:before{content:"\f528"}.fa-chess-queen:before{content:"\f445"}.fa-glasses:before{content:"\f530"}.fa-chess-board:before{content:"\f43c"}.fa-building-circle-check:before{content:"\e4d2"}.fa-person-chalkboard:before{content:"\e53d"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:"\f22b"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:"\f255"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:"\f151"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-bar-chart:before,.fa-chart-bar:before{content:"\f080"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:"\e05e"}.fa-less-than-equal:before{content:"\f537"}.fa-train:before{content:"\f238"}.fa-eye-low-vision:before,.fa-low-vision:before{content:"\f2a8"}.fa-crow:before{content:"\f520"}.fa-sailboat:before{content:"\e445"}.fa-window-restore:before{content:"\f2d2"}.fa-plus-square:before,.fa-square-plus:before{content:"\f0fe"}.fa-torii-gate:before{content:"\f6a1"}.fa-frog:before{content:"\f52e"}.fa-bucket:before{content:"\e4cf"}.fa-image:before{content:"\f03e"}.fa-microphone:before{content:"\f130"}.fa-cow:before{content:"\f6c8"}.fa-caret-up:before{content:"\f0d8"}.fa-screwdriver:before{content:"\f54a"}.fa-folder-closed:before{content:"\e185"}.fa-house-tsunami:before{content:"\e515"}.fa-square-nfi:before{content:"\e576"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:"\f57b"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:"\f2ea"}.fa-columns:before,.fa-table-columns:before{content:"\f0db"}.fa-lemon:before{content:"\f094"}.fa-head-side-mask:before{content:"\e063"}.fa-handshake:before{content:"\f2b5"}.fa-gem:before{content:"\f3a5"}.fa-dolly-box:before,.fa-dolly:before{content:"\f472"}.fa-smoking:before{content:"\f48d"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:"\f78c"}.fa-monument:before{content:"\f5a6"}.fa-snowplow:before{content:"\f7d2"}.fa-angle-double-right:before,.fa-angles-right:before{content:"\f101"}.fa-cannabis:before{content:"\f55f"}.fa-circle-play:before,.fa-play-circle:before{content:"\f144"}.fa-tablets:before{content:"\f490"}.fa-ethernet:before{content:"\f796"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:"\f153"}.fa-chair:before{content:"\f6c0"}.fa-check-circle:before,.fa-circle-check:before{content:"\f058"}.fa-circle-stop:before,.fa-stop-circle:before{content:"\f28d"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:"\f568"}.fa-plate-wheat:before{content:"\e55a"}.fa-icicles:before{content:"\f7ad"}.fa-person-shelter:before{content:"\e54f"}.fa-neuter:before{content:"\f22c"}.fa-id-badge:before{content:"\f2c1"}.fa-marker:before{content:"\f5a1"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:"\f59a"}.fa-helicopter-symbol:before{content:"\e502"}.fa-universal-access:before{content:"\f29a"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:"\f139"}.fa-lari-sign:before{content:"\e1c8"}.fa-volcano:before{content:"\f770"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:"\f154"}.fa-viruses:before{content:"\e076"}.fa-square-person-confined:before{content:"\e577"}.fa-user-tie:before{content:"\f508"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:"\f175"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-certificate:before{content:"\f0a3"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-suitcase:before{content:"\f0f2"}.fa-person-skating:before,.fa-skating:before{content:"\f7c5"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:"\f662"}.fa-camera-retro:before{content:"\f083"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:"\f0ab"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:"\f56f"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:"\f14c"}.fa-box-open:before{content:"\f49e"}.fa-scroll:before{content:"\f70e"}.fa-spa:before{content:"\f5bb"}.fa-location-pin-lock:before{content:"\e51f"}.fa-pause:before{content:"\f04c"}.fa-hill-avalanche:before{content:"\e507"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-bomb:before{content:"\f1e2"}.fa-registered:before{content:"\f25d"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:"\f2bb"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-subscript:before{content:"\f12c"}.fa-diamond-turn-right:before,.fa-directions:before{content:"\f5eb"}.fa-burst:before{content:"\e4dc"}.fa-house-laptop:before,.fa-laptop-house:before{content:"\e066"}.fa-face-tired:before,.fa-tired:before{content:"\f5c8"}.fa-money-bills:before{content:"\e1f3"}.fa-smog:before{content:"\f75f"}.fa-crutch:before{content:"\f7f7"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:"\f0ee"}.fa-palette:before{content:"\f53f"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-vest:before{content:"\e085"}.fa-ferry:before{content:"\e4ea"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-seedling:before,.fa-sprout:before{content:"\f4d8"}.fa-arrows-alt-h:before,.fa-left-right:before{content:"\f337"}.fa-boxes-packing:before{content:"\e4c7"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:"\f0a8"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-bowl-food:before{content:"\e4c6"}.fa-candy-cane:before{content:"\f786"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-cloud-bolt:before,.fa-thunderstorm:before{content:"\f76c"}.fa-remove-format:before,.fa-text-slash:before{content:"\f87d"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:"\f4da"}.fa-file-word:before{content:"\f1c2"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:"\f07e"}.fa-house-lock:before{content:"\e510"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:"\f0ed"}.fa-children:before{content:"\e4e1"}.fa-blackboard:before,.fa-chalkboard:before{content:"\f51b"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:"\f4fa"}.fa-envelope-open:before{content:"\f2b6"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:"\e05f"}.fa-mattress-pillow:before{content:"\e525"}.fa-guarani-sign:before{content:"\e19a"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-fire-extinguisher:before{content:"\f134"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-greater-than-equal:before{content:"\f532"}.fa-shield-alt:before,.fa-shield-halved:before{content:"\f3ed"}.fa-atlas:before,.fa-book-atlas:before{content:"\f558"}.fa-virus:before{content:"\e074"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-layer-group:before{content:"\f5fd"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-archway:before{content:"\f557"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:"\f6f1"}.fa-file-archive:before,.fa-file-zipper:before{content:"\f1c6"}.fa-square:before{content:"\f0c8"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:"\f000"}.fa-couch:before{content:"\f4b8"}.fa-cedi-sign:before{content:"\e0df"}.fa-italic:before{content:"\f033"}.fa-church:before{content:"\f51d"}.fa-comments-dollar:before{content:"\f653"}.fa-democrat:before{content:"\f747"}.fa-z:before{content:"\5a"}.fa-person-skiing:before,.fa-skiing:before{content:"\f7c9"}.fa-road-lock:before{content:"\e567"}.fa-a:before{content:"\41"}.fa-temperature-arrow-down:before,.fa-temperature-down:before{content:"\e03f"}.fa-feather-alt:before,.fa-feather-pointed:before{content:"\f56b"}.fa-p:before{content:"\50"}.fa-snowflake:before{content:"\f2dc"}.fa-newspaper:before{content:"\f1ea"}.fa-ad:before,.fa-rectangle-ad:before{content:"\f641"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:"\f0a9"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-locust:before{content:"\e520"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:"\f0cb"}.fa-person-dress-burst:before{content:"\e544"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:"\f53d"}.fa-vector-square:before{content:"\f5cb"}.fa-bread-slice:before{content:"\f7ec"}.fa-language:before{content:"\f1ab"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:"\f598"}.fa-filter:before{content:"\f0b0"}.fa-question:before{content:"\3f"}.fa-file-signature:before{content:"\f573"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:"\f0b2"}.fa-house-chimney-user:before{content:"\e065"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-puzzle-piece:before{content:"\f12e"}.fa-money-check:before{content:"\f53c"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:"\f5c0"}.fa-code:before{content:"\f121"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:"\f7a0"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:"\f08e"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:"\f159"}.fa-virus-covid:before{content:"\e4a8"}.fa-austral-sign:before{content:"\e0a9"}.fa-f:before{content:"\46"}.fa-leaf:before{content:"\f06c"}.fa-road:before{content:"\f018"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-person-circle-plus:before{content:"\e541"}.fa-chart-pie:before,.fa-pie-chart:before{content:"\f200"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-sack-xmark:before{content:"\e56a"}.fa-file-excel:before{content:"\f1c3"}.fa-file-contract:before{content:"\f56c"}.fa-fish-fins:before{content:"\e4f2"}.fa-building-flag:before{content:"\e4d5"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:"\f582"}.fa-object-ungroup:before{content:"\f248"}.fa-poop:before{content:"\f619"}.fa-location-pin:before,.fa-map-marker:before{content:"\f041"}.fa-kaaba:before{content:"\f66b"}.fa-toilet-paper:before{content:"\f71e"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:"\f807"}.fa-eject:before{content:"\f052"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:"\f35a"}.fa-plane-circle-check:before{content:"\e555"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-object-group:before{content:"\f247"}.fa-chart-line:before,.fa-line-chart:before{content:"\f201"}.fa-mask-ventilator:before{content:"\e524"}.fa-arrow-right:before{content:"\f061"}.fa-map-signs:before,.fa-signs-post:before{content:"\f277"}.fa-cash-register:before{content:"\f788"}.fa-person-circle-question:before{content:"\e542"}.fa-h:before{content:"\48"}.fa-tarp:before{content:"\e57b"}.fa-screwdriver-wrench:before,.fa-tools:before{content:"\f7d9"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-heart:before{content:"\f004"}.fa-mars-and-venus:before{content:"\f224"}.fa-home-user:before,.fa-house-user:before{content:"\e1b0"}.fa-dumpster-fire:before{content:"\f794"}.fa-house-crack:before{content:"\e3b1"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:"\f561"}.fa-face-surprise:before,.fa-surprise:before{content:"\f5c2"}.fa-bottle-water:before{content:"\e4c5"}.fa-circle-pause:before,.fa-pause-circle:before{content:"\f28b"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-apple-alt:before,.fa-apple-whole:before{content:"\f5d1"}.fa-kitchen-set:before{content:"\e51a"}.fa-r:before{content:"\52"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-cube:before{content:"\f1b2"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-shield-dog:before{content:"\e573"}.fa-solar-panel:before{content:"\f5ba"}.fa-lock-open:before{content:"\f3c1"}.fa-elevator:before{content:"\e16d"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:"\f682"}.fa-circle:before{content:"\f111"}.fa-backward-fast:before,.fa-fast-backward:before{content:"\f049"}.fa-recycle:before{content:"\f1b8"}.fa-user-astronaut:before{content:"\f4fb"}.fa-plane-slash:before{content:"\e069"}.fa-trademark:before{content:"\f25c"}.fa-basketball-ball:before,.fa-basketball:before{content:"\f434"}.fa-satellite-dish:before{content:"\f7c0"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:"\f35b"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:"\f3cd"}.fa-volume-high:before,.fa-volume-up:before{content:"\f028"}.fa-users-rays:before{content:"\e593"}.fa-wallet:before{content:"\f555"}.fa-clipboard-check:before{content:"\f46c"}.fa-file-audio:before{content:"\f1c7"}.fa-burger:before,.fa-hamburger:before{content:"\f805"}.fa-wrench:before{content:"\f0ad"}.fa-bugs:before{content:"\e4d0"}.fa-rupee-sign:before,.fa-rupee:before{content:"\f156"}.fa-file-image:before{content:"\f1c5"}.fa-circle-question:before,.fa-question-circle:before{content:"\f059"}.fa-plane-departure:before{content:"\f5b0"}.fa-handshake-slash:before{content:"\e060"}.fa-book-bookmark:before{content:"\e0bb"}.fa-code-branch:before{content:"\f126"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-bridge:before{content:"\e4c8"}.fa-phone-alt:before,.fa-phone-flip:before{content:"\f879"}.fa-truck-front:before{content:"\e2b7"}.fa-cat:before{content:"\f6be"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-truck-field:before{content:"\e58d"}.fa-route:before{content:"\f4d7"}.fa-clipboard-question:before{content:"\e4e3"}.fa-panorama:before{content:"\e209"}.fa-comment-medical:before{content:"\f7f5"}.fa-teeth-open:before{content:"\f62f"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-tags:before{content:"\f02c"}.fa-wine-glass:before{content:"\f4e3"}.fa-fast-forward:before,.fa-forward-fast:before{content:"\f050"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:"\f5a4"}.fa-parking:before,.fa-square-parking:before{content:"\f540"}.fa-house-signal:before{content:"\e012"}.fa-bars-progress:before,.fa-tasks-alt:before{content:"\f828"}.fa-faucet-drip:before{content:"\e006"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:"\f474"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:"\f54d"}.fa-terminal:before{content:"\f120"}.fa-mobile-button:before{content:"\f10b"}.fa-house-medical-flag:before{content:"\e514"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:"\f291"}.fa-tape:before{content:"\f4db"}.fa-bus-alt:before,.fa-bus-simple:before{content:"\f55e"}.fa-eye:before{content:"\f06e"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:"\f5b3"}.fa-audio-description:before{content:"\f29e"}.fa-person-military-to-person:before{content:"\e54c"}.fa-file-shield:before{content:"\e4f0"}.fa-user-slash:before{content:"\f506"}.fa-pen:before{content:"\f304"}.fa-tower-observation:before{content:"\e586"}.fa-file-code:before{content:"\f1c9"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:"\f012"}.fa-bus:before{content:"\f207"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-home-lg:before,.fa-house-chimney:before{content:"\e3af"}.fa-window-maximize:before{content:"\f2d0"}.fa-face-frown:before,.fa-frown:before{content:"\f119"}.fa-prescription:before{content:"\f5b1"}.fa-shop:before,.fa-store-alt:before{content:"\f54f"}.fa-floppy-disk:before,.fa-save:before{content:"\f0c7"}.fa-vihara:before{content:"\f6a7"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:"\f515"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-comment-dots:before,.fa-commenting:before{content:"\f4ad"}.fa-plant-wilt:before{content:"\e5aa"}.fa-diamond:before{content:"\f219"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:"\f585"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:"\f4c0"}.fa-bacterium:before{content:"\e05a"}.fa-hand-pointer:before{content:"\f25a"}.fa-drum-steelpan:before{content:"\f56a"}.fa-hand-scissors:before{content:"\f257"}.fa-hands-praying:before,.fa-praying-hands:before{content:"\f684"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:"\f01e"}.fa-biohazard:before{content:"\f780"}.fa-location-crosshairs:before,.fa-location:before{content:"\f601"}.fa-mars-double:before{content:"\f227"}.fa-child-dress:before{content:"\e59c"}.fa-users-between-lines:before{content:"\e591"}.fa-lungs-virus:before{content:"\e067"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:"\f588"}.fa-phone:before{content:"\f095"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:"\f273"}.fa-child-reaching:before{content:"\e59d"}.fa-head-side-virus:before{content:"\e064"}.fa-user-cog:before,.fa-user-gear:before{content:"\f4fe"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-door-closed:before{content:"\f52a"}.fa-shield-virus:before{content:"\e06c"}.fa-dice-six:before{content:"\f526"}.fa-mosquito-net:before{content:"\e52c"}.fa-bridge-water:before{content:"\e4ce"}.fa-person-booth:before{content:"\f756"}.fa-text-width:before{content:"\f035"}.fa-hat-wizard:before{content:"\f6e8"}.fa-pen-fancy:before{content:"\f5ac"}.fa-digging:before,.fa-person-digging:before{content:"\f85e"}.fa-trash:before{content:"\f1f8"}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:"\f629"}.fa-book-medical:before{content:"\f7e6"}.fa-poo:before{content:"\f2fe"}.fa-quote-right-alt:before,.fa-quote-right:before{content:"\f10e"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:"\f553"}.fa-cubes:before{content:"\f1b3"}.fa-divide:before{content:"\f529"}.fa-tenge-sign:before,.fa-tenge:before{content:"\f7d7"}.fa-headphones:before{content:"\f025"}.fa-hands-holding:before{content:"\f4c2"}.fa-hands-clapping:before{content:"\e1a8"}.fa-republican:before{content:"\f75e"}.fa-arrow-left:before{content:"\f060"}.fa-person-circle-xmark:before{content:"\e543"}.fa-ruler:before{content:"\f545"}.fa-align-left:before{content:"\f036"}.fa-dice-d6:before{content:"\f6d1"}.fa-restroom:before{content:"\f7bd"}.fa-j:before{content:"\4a"}.fa-users-viewfinder:before{content:"\e595"}.fa-file-video:before{content:"\f1c8"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:"\f35d"}.fa-table-cells:before,.fa-th:before{content:"\f00a"}.fa-file-pdf:before{content:"\f1c1"}.fa-bible:before,.fa-book-bible:before{content:"\f647"}.fa-o:before{content:"\4f"}.fa-medkit:before,.fa-suitcase-medical:before{content:"\f0fa"}.fa-user-secret:before{content:"\f21b"}.fa-otter:before{content:"\f700"}.fa-female:before,.fa-person-dress:before{content:"\f182"}.fa-comment-dollar:before{content:"\f651"}.fa-briefcase-clock:before,.fa-business-time:before{content:"\f64a"}.fa-table-cells-large:before,.fa-th-large:before{content:"\f009"}.fa-book-tanakh:before,.fa-tanakh:before{content:"\f827"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-clipboard-user:before{content:"\f7f3"}.fa-child:before{content:"\f1ae"}.fa-lira-sign:before{content:"\f195"}.fa-satellite:before{content:"\f7bf"}.fa-plane-lock:before{content:"\e558"}.fa-tag:before{content:"\f02b"}.fa-comment:before{content:"\f075"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:"\f1fd"}.fa-envelope:before{content:"\f0e0"}.fa-angle-double-up:before,.fa-angles-up:before{content:"\f102"}.fa-paperclip:before{content:"\f0c6"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-ribbon:before{content:"\f4d6"}.fa-lungs:before{content:"\f604"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-border-none:before{content:"\f850"}.fa-circle-nodes:before{content:"\e4e2"}.fa-parachute-box:before{content:"\f4cd"}.fa-indent:before{content:"\f03c"}.fa-truck-field-un:before{content:"\e58e"}.fa-hourglass-empty:before,.fa-hourglass:before{content:"\f254"}.fa-mountain:before{content:"\f6fc"}.fa-user-doctor:before,.fa-user-md:before{content:"\f0f0"}.fa-circle-info:before,.fa-info-circle:before{content:"\f05a"}.fa-cloud-meatball:before{content:"\f73b"}.fa-camera-alt:before,.fa-camera:before{content:"\f030"}.fa-square-virus:before{content:"\e578"}.fa-meteor:before{content:"\f753"}.fa-car-on:before{content:"\e4dd"}.fa-sleigh:before{content:"\f7cc"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:"\f4c1"}.fa-water:before{content:"\f773"}.fa-calendar-check:before{content:"\f274"}.fa-braille:before{content:"\f2a1"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:"\f486"}.fa-landmark:before{content:"\f66f"}.fa-truck:before{content:"\f0d1"}.fa-crosshairs:before{content:"\f05b"}.fa-person-cane:before{content:"\e53c"}.fa-tent:before{content:"\e57d"}.fa-vest-patches:before{content:"\e086"}.fa-check-double:before{content:"\f560"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-cookie:before{content:"\f563"}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-hard-drive:before,.fa-hdd:before{content:"\f0a0"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:"\f586"}.fa-dumbbell:before{content:"\f44b"}.fa-list-alt:before,.fa-rectangle-list:before{content:"\f022"}.fa-tarp-droplet:before{content:"\e57c"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:"\f7ca"}.fa-calendar-plus:before{content:"\f271"}.fa-plane-arrival:before{content:"\f5af"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:"\f359"}.fa-subway:before,.fa-train-subway:before{content:"\f239"}.fa-chart-gantt:before{content:"\e0e4"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:"\e1bc"}.fa-crop-alt:before,.fa-crop-simple:before{content:"\f565"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:"\f3d1"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-dna:before{content:"\f471"}.fa-virus-slash:before{content:"\e075"}.fa-minus:before,.fa-subtract:before{content:"\f068"}.fa-chess:before{content:"\f439"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:"\f177"}.fa-plug-circle-check:before{content:"\e55c"}.fa-street-view:before{content:"\f21d"}.fa-franc-sign:before{content:"\e18f"}.fa-volume-off:before{content:"\f026"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-droplet-slash:before,.fa-tint-slash:before{content:"\f5c7"}.fa-mosque:before{content:"\f678"}.fa-mosquito:before{content:"\e52b"}.fa-star-of-david:before{content:"\f69a"}.fa-person-military-rifle:before{content:"\e54b"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:"\f07a"}.fa-vials:before{content:"\f493"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-place-of-worship:before{content:"\f67f"}.fa-grip-vertical:before{content:"\f58e"}.fa-arrow-turn-up:before,.fa-level-up:before{content:"\f148"}.fa-u:before{content:"\55"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:"\f698"}.fa-clock-four:before,.fa-clock:before{content:"\f017"}.fa-backward-step:before,.fa-step-backward:before{content:"\f048"}.fa-pallet:before{content:"\f482"}.fa-faucet:before{content:"\e005"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-s:before{content:"\53"}.fa-timeline:before{content:"\e29c"}.fa-keyboard:before{content:"\f11c"}.fa-caret-down:before{content:"\f0d7"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:"\f7f2"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-mobile-android-alt:before,.fa-mobile-screen:before{content:"\f3cf"}.fa-plane-up:before{content:"\e22d"}.fa-piggy-bank:before{content:"\f4d3"}.fa-battery-3:before,.fa-battery-half:before{content:"\f242"}.fa-mountain-city:before{content:"\e52e"}.fa-coins:before{content:"\f51e"}.fa-khanda:before{content:"\f66d"}.fa-sliders-h:before,.fa-sliders:before{content:"\f1de"}.fa-folder-tree:before{content:"\f802"}.fa-network-wired:before{content:"\f6ff"}.fa-map-pin:before{content:"\f276"}.fa-hamsa:before{content:"\f665"}.fa-cent-sign:before{content:"\e3f5"}.fa-flask:before{content:"\f0c3"}.fa-person-pregnant:before{content:"\e31e"}.fa-wand-sparkles:before{content:"\f72b"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:"\f142"}.fa-ticket:before{content:"\f145"}.fa-power-off:before{content:"\f011"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:"\f30b"}.fa-flag-usa:before{content:"\f74d"}.fa-laptop-file:before{content:"\e51d"}.fa-teletype:before,.fa-tty:before{content:"\f1e4"}.fa-diagram-next:before{content:"\e476"}.fa-person-rifle:before{content:"\e54e"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-closed-captioning:before{content:"\f20a"}.fa-hiking:before,.fa-person-hiking:before{content:"\f6ec"}.fa-venus-double:before{content:"\f226"}.fa-images:before{content:"\f302"}.fa-calculator:before{content:"\f1ec"}.fa-people-pulling:before{content:"\e535"}.fa-n:before{content:"\4e"}.fa-cable-car:before,.fa-tram:before{content:"\f7da"}.fa-cloud-rain:before{content:"\f73d"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-ship:before{content:"\f21a"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-download:before{content:"\f019"}.fa-face-grin:before,.fa-grin:before{content:"\f580"}.fa-backspace:before,.fa-delete-left:before{content:"\f55a"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:"\f1fb"}.fa-file-circle-check:before{content:"\e5a0"}.fa-forward:before{content:"\f04e"}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:"\f3ce"}.fa-face-meh:before,.fa-meh:before{content:"\f11a"}.fa-align-center:before{content:"\f037"}.fa-book-dead:before,.fa-book-skull:before{content:"\f6b7"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:"\f015"}.fa-calendar-week:before{content:"\f784"}.fa-laptop-medical:before{content:"\f812"}.fa-b:before{content:"\42"}.fa-file-medical:before{content:"\f477"}.fa-dice-one:before{content:"\f525"}.fa-kiwi-bird:before{content:"\f535"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:"\f0ec"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:"\f2f9"}.fa-cutlery:before,.fa-utensils:before{content:"\f2e7"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:"\f161"}.fa-mill-sign:before{content:"\e1ed"}.fa-bowl-rice:before{content:"\e2eb"}.fa-skull:before{content:"\f54c"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:"\f519"}.fa-truck-pickup:before{content:"\f63c"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:"\f30c"}.fa-stop:before{content:"\f04d"}.fa-code-merge:before{content:"\f387"}.fa-upload:before{content:"\f093"}.fa-hurricane:before{content:"\f751"}.fa-mound:before{content:"\e52d"}.fa-toilet-portable:before{content:"\e583"}.fa-compact-disc:before{content:"\f51f"}.fa-file-arrow-down:before,.fa-file-download:before{content:"\f56d"}.fa-caravan:before{content:"\f8ff"}.fa-shield-cat:before{content:"\e572"}.fa-bolt:before,.fa-zap:before{content:"\f0e7"}.fa-glass-water:before{content:"\e4f4"}.fa-oil-well:before{content:"\e532"}.fa-vault:before{content:"\e2c5"}.fa-mars:before{content:"\f222"}.fa-toilet:before{content:"\f7d8"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:"\f158"}.fa-sun:before{content:"\f185"}.fa-guitar:before{content:"\f7a6"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:"\f59c"}.fa-horse-head:before{content:"\f7ab"}.fa-bore-hole:before{content:"\e4c3"}.fa-industry:before{content:"\f275"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:"\f358"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-florin-sign:before{content:"\e184"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:"\f884"}.fa-less-than:before{content:"\3c"}.fa-angle-down:before{content:"\f107"}.fa-car-tunnel:before{content:"\e4de"}.fa-head-side-cough:before{content:"\e061"}.fa-grip-lines:before{content:"\f7a4"}.fa-thumbs-down:before{content:"\f165"}.fa-user-lock:before{content:"\f502"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:"\f178"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:"\f141"}.fa-chess-pawn:before{content:"\f443"}.fa-first-aid:before,.fa-kit-medical:before{content:"\f479"}.fa-person-through-window:before{content:"\e5a9"}.fa-toolbox:before{content:"\f552"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-bug:before{content:"\f188"}.fa-credit-card-alt:before,.fa-credit-card:before{content:"\f09d"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-book-open-reader:before,.fa-book-reader:before{content:"\f5da"}.fa-mountain-sun:before{content:"\e52f"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-dice-d20:before{content:"\f6cf"}.fa-truck-droplet:before{content:"\e58c"}.fa-file-circle-xmark:before{content:"\e5a1"}.fa-temperature-arrow-up:before,.fa-temperature-up:before{content:"\e040"}.fa-medal:before{content:"\f5a2"}.fa-bed:before{content:"\f236"}.fa-h-square:before,.fa-square-h:before{content:"\f0fd"}.fa-podcast:before{content:"\f2ce"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-bell:before{content:"\f0f3"}.fa-superscript:before{content:"\f12b"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-star-of-life:before{content:"\f621"}.fa-phone-slash:before{content:"\f3dd"}.fa-paint-roller:before{content:"\f5aa"}.fa-hands-helping:before,.fa-handshake-angle:before{content:"\f4c4"}.fa-location-dot:before,.fa-map-marker-alt:before{content:"\f3c5"}.fa-file:before{content:"\f15b"}.fa-greater-than:before{content:"\3e"}.fa-person-swimming:before,.fa-swimmer:before{content:"\f5c4"}.fa-arrow-down:before{content:"\f063"}.fa-droplet:before,.fa-tint:before{content:"\f043"}.fa-eraser:before{content:"\f12d"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:"\f57d"}.fa-person-burst:before{content:"\e53b"}.fa-dove:before{content:"\f4ba"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-socks:before{content:"\f696"}.fa-inbox:before{content:"\f01c"}.fa-section:before{content:"\e447"}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:"\f625"}.fa-envelope-open-text:before{content:"\f658"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:"\f0f8"}.fa-wine-bottle:before{content:"\f72f"}.fa-chess-rook:before{content:"\f447"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:"\f550"}.fa-dharmachakra:before{content:"\f655"}.fa-hotdog:before{content:"\f80f"}.fa-blind:before,.fa-person-walking-with-cane:before{content:"\f29d"}.fa-drum:before{content:"\f569"}.fa-ice-cream:before{content:"\f810"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-fax:before{content:"\f1ac"}.fa-paragraph:before{content:"\f1dd"}.fa-check-to-slot:before,.fa-vote-yea:before{content:"\f772"}.fa-star-half:before{content:"\f089"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:"\f468"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:"\f2a2"}.fa-tree-city:before{content:"\e587"}.fa-play:before{content:"\f04b"}.fa-font:before{content:"\f031"}.fa-rupiah-sign:before{content:"\e23d"}.fa-magnifying-glass:before,.fa-search:before{content:"\f002"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:"\f45d"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:"\f470"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:"\f82a"}.fa-naira-sign:before{content:"\e1f6"}.fa-cart-arrow-down:before{content:"\f218"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-file-edit:before,.fa-file-pen:before{content:"\f31c"}.fa-receipt:before{content:"\f543"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:"\f14b"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-chevron-down:before{content:"\f078"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-skull-crossbones:before{content:"\f714"}.fa-code-compare:before{content:"\e13a"}.fa-list-dots:before,.fa-list-ul:before{content:"\f0ca"}.fa-school-lock:before{content:"\e56f"}.fa-tower-cell:before{content:"\e585"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:"\f309"}.fa-ranking-star:before{content:"\e561"}.fa-chess-king:before{content:"\f43f"}.fa-person-harassing:before{content:"\e549"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-landmark-alt:before,.fa-landmark-dome:before{content:"\f752"}.fa-arrow-up:before{content:"\f062"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:"\f26c"}.fa-shrimp:before{content:"\e448"}.fa-list-check:before,.fa-tasks:before{content:"\f0ae"}.fa-jug-detergent:before{content:"\e519"}.fa-circle-user:before,.fa-user-circle:before{content:"\f2bd"}.fa-user-shield:before{content:"\f505"}.fa-wind:before{content:"\f72e"}.fa-car-burst:before,.fa-car-crash:before{content:"\f5e1"}.fa-y:before{content:"\59"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:"\f7ce"}.fa-shipping-fast:before,.fa-truck-fast:before{content:"\f48b"}.fa-fish:before{content:"\f578"}.fa-user-graduate:before{content:"\f501"}.fa-adjust:before,.fa-circle-half-stroke:before{content:"\f042"}.fa-clapperboard:before{content:"\e131"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:"\f7ba"}.fa-baseball-ball:before,.fa-baseball:before{content:"\f433"}.fa-jet-fighter-up:before{content:"\e518"}.fa-diagram-project:before,.fa-project-diagram:before{content:"\f542"}.fa-copy:before{content:"\f0c5"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:"\f6a9"}.fa-hand-sparkles:before{content:"\e05d"}.fa-grip-horizontal:before,.fa-grip:before{content:"\f58d"}.fa-share-from-square:before,.fa-share-square:before{content:"\f14d"}.fa-child-combatant:before,.fa-child-rifle:before{content:"\e4e0"}.fa-gun:before{content:"\e19b"}.fa-phone-square:before,.fa-square-phone:before{content:"\f098"}.fa-add:before,.fa-plus:before{content:"\2b"}.fa-expand:before{content:"\f065"}.fa-computer:before{content:"\e4e5"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:"\f00d"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:"\f047"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:"\f51c"}.fa-peso-sign:before{content:"\e222"}.fa-building-shield:before{content:"\e4d8"}.fa-baby:before{content:"\f77c"}.fa-users-line:before{content:"\e592"}.fa-quote-left-alt:before,.fa-quote-left:before{content:"\f10d"}.fa-tractor:before{content:"\f722"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:"\f829"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-lines-leaning:before{content:"\e51e"}.fa-ruler-combined:before{content:"\f546"}.fa-copyright:before{content:"\f1f9"}.fa-equals:before{content:"\3d"}.fa-blender:before{content:"\f517"}.fa-teeth:before{content:"\f62e"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:"\f20b"}.fa-map:before{content:"\f279"}.fa-rocket:before{content:"\f135"}.fa-photo-film:before,.fa-photo-video:before{content:"\f87c"}.fa-folder-minus:before{content:"\f65d"}.fa-store:before{content:"\f54e"}.fa-arrow-trend-up:before{content:"\e098"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-sign-hanging:before,.fa-sign:before{content:"\f4d9"}.fa-bezier-curve:before{content:"\f55b"}.fa-bell-slash:before{content:"\f1f6"}.fa-tablet-android:before,.fa-tablet:before{content:"\f3fb"}.fa-school-flag:before{content:"\e56e"}.fa-fill:before{content:"\f575"}.fa-angle-up:before{content:"\f106"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-holly-berry:before{content:"\f7aa"}.fa-chevron-left:before{content:"\f053"}.fa-bacteria:before{content:"\e059"}.fa-hand-lizard:before{content:"\f258"}.fa-notdef:before{content:"\e1fe"}.fa-disease:before{content:"\f7fa"}.fa-briefcase-medical:before{content:"\f469"}.fa-genderless:before{content:"\f22d"}.fa-chevron-right:before{content:"\f054"}.fa-retweet:before{content:"\f079"}.fa-car-alt:before,.fa-car-rear:before{content:"\f5de"}.fa-pump-soap:before{content:"\e06b"}.fa-video-slash:before{content:"\f4e2"}.fa-battery-2:before,.fa-battery-quarter:before{content:"\f243"}.fa-radio:before{content:"\f8d7"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:"\f77d"}.fa-traffic-light:before{content:"\f637"}.fa-thermometer:before{content:"\f491"}.fa-vr-cardboard:before{content:"\f729"}.fa-hand-middle-finger:before{content:"\f806"}.fa-percent:before,.fa-percentage:before{content:"\25"}.fa-truck-moving:before{content:"\f4df"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-display:before{content:"\e163"}.fa-face-smile:before,.fa-smile:before{content:"\f118"}.fa-thumb-tack:before,.fa-thumbtack:before{content:"\f08d"}.fa-trophy:before{content:"\f091"}.fa-person-praying:before,.fa-pray:before{content:"\f683"}.fa-hammer:before{content:"\f6e3"}.fa-hand-peace:before{content:"\f25b"}.fa-rotate:before,.fa-sync-alt:before{content:"\f2f1"}.fa-spinner:before{content:"\f110"}.fa-robot:before{content:"\f544"}.fa-peace:before{content:"\f67c"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-warehouse:before{content:"\f494"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-splotch:before{content:"\f5bc"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:"\f584"}.fa-dice-four:before{content:"\f524"}.fa-sim-card:before{content:"\f7c4"}.fa-transgender-alt:before,.fa-transgender:before{content:"\f225"}.fa-mercury:before{content:"\f223"}.fa-arrow-turn-down:before,.fa-level-down:before{content:"\f149"}.fa-person-falling-burst:before{content:"\e547"}.fa-award:before{content:"\f559"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:"\f3ff"}.fa-building:before{content:"\f1ad"}.fa-angle-double-left:before,.fa-angles-left:before{content:"\f100"}.fa-qrcode:before{content:"\f029"}.fa-clock-rotate-left:before,.fa-history:before{content:"\f1da"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:"\f583"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:"\f56e"}.fa-shield-blank:before,.fa-shield:before{content:"\f132"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:"\f885"}.fa-house-medical:before{content:"\e3b2"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:"\f450"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:"\f137"}.fa-house-chimney-window:before{content:"\e00d"}.fa-pen-nib:before{content:"\f5ad"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-tents:before{content:"\e582"}.fa-magic:before,.fa-wand-magic:before{content:"\f0d0"}.fa-dog:before{content:"\f6d3"}.fa-carrot:before{content:"\f787"}.fa-moon:before{content:"\f186"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:"\f5ce"}.fa-cheese:before{content:"\f7ef"}.fa-yin-yang:before{content:"\f6ad"}.fa-music:before{content:"\f001"}.fa-code-commit:before{content:"\f386"}.fa-temperature-low:before{content:"\f76b"}.fa-biking:before,.fa-person-biking:before{content:"\f84a"}.fa-broom:before{content:"\f51a"}.fa-shield-heart:before{content:"\e574"}.fa-gopuram:before{content:"\f664"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:"\e47b"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:"\f2d3"}.fa-hashtag:before{content:"\23"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-oil-can:before{content:"\f613"}.fa-t:before{content:"\54"}.fa-hippo:before{content:"\f6ed"}.fa-chart-column:before{content:"\e0e3"}.fa-infinity:before{content:"\f534"}.fa-vial-circle-check:before{content:"\e596"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-voicemail:before{content:"\f897"}.fa-fan:before{content:"\f863"}.fa-person-walking-luggage:before{content:"\e554"}.fa-arrows-alt-v:before,.fa-up-down:before{content:"\f338"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-calendar:before{content:"\f133"}.fa-trailer:before{content:"\e041"}.fa-bahai:before,.fa-haykal:before{content:"\f666"}.fa-sd-card:before{content:"\f7c2"}.fa-dragon:before{content:"\f6d5"}.fa-shoe-prints:before{content:"\f54b"}.fa-circle-plus:before,.fa-plus-circle:before{content:"\f055"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:"\f58b"}.fa-hand-holding:before{content:"\f4bd"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:"\f127"}.fa-clone:before{content:"\f24d"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:"\f7e4"}.fa-tornado:before{content:"\f76f"}.fa-file-circle-plus:before{content:"\e494"}.fa-book-quran:before,.fa-quran:before{content:"\f687"}.fa-anchor:before{content:"\f13d"}.fa-border-all:before{content:"\f84c"}.fa-angry:before,.fa-face-angry:before{content:"\f556"}.fa-cookie-bite:before{content:"\f564"}.fa-arrow-trend-down:before{content:"\e097"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-draw-polygon:before{content:"\f5ee"}.fa-balance-scale:before,.fa-scale-balanced:before{content:"\f24e"}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:"\f62a"}.fa-shower:before{content:"\f2cc"}.fa-desktop-alt:before,.fa-desktop:before{content:"\f390"}.fa-m:before{content:"\4d"}.fa-table-list:before,.fa-th-list:before{content:"\f00b"}.fa-comment-sms:before,.fa-sms:before{content:"\f7cd"}.fa-book:before{content:"\f02d"}.fa-user-plus:before{content:"\f234"}.fa-check:before{content:"\f00c"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-house-circle-check:before{content:"\e509"}.fa-angle-left:before{content:"\f104"}.fa-diagram-successor:before{content:"\e47a"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-fist-raised:before,.fa-hand-fist:before{content:"\f6de"}.fa-cloud-moon:before{content:"\f6c3"}.fa-briefcase:before{content:"\f0b1"}.fa-person-falling:before{content:"\e546"}.fa-image-portrait:before,.fa-portrait:before{content:"\f3e0"}.fa-user-tag:before{content:"\f507"}.fa-rug:before{content:"\e569"}.fa-earth-europe:before,.fa-globe-europe:before{content:"\f7a2"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:"\f59d"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:"\f410"}.fa-baht-sign:before{content:"\e0ac"}.fa-book-open:before{content:"\f518"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:"\f66a"}.fa-handcuffs:before{content:"\e4f8"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:"\f071"}.fa-database:before{content:"\f1c0"}.fa-arrow-turn-right:before,.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-mask-face:before{content:"\e1d7"}.fa-hill-rockslide:before{content:"\e508"}.fa-exchange-alt:before,.fa-right-left:before{content:"\f362"}.fa-paper-plane:before{content:"\f1d8"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-dungeon:before{content:"\f6d9"}.fa-align-right:before{content:"\f038"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-life-ring:before{content:"\f1cd"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-calendar-day:before{content:"\f783"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:"\f5c5"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:"\f07d"}.fa-face-grimace:before,.fa-grimace:before{content:"\f57f"}.fa-wheelchair-alt:before,.fa-wheelchair-move:before{content:"\e2ce"}.fa-level-down-alt:before,.fa-turn-down:before{content:"\f3be"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-envelope-square:before,.fa-square-envelope:before{content:"\f199"}.fa-dice:before{content:"\f522"}.fa-bowling-ball:before{content:"\f436"}.fa-brain:before{content:"\f5dc"}.fa-band-aid:before,.fa-bandage:before{content:"\f462"}.fa-calendar-minus:before{content:"\f272"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:"\f057"}.fa-gifts:before{content:"\f79c"}.fa-hotel:before{content:"\f594"}.fa-earth-asia:before,.fa-globe-asia:before{content:"\f57e"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:"\f47f"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:"\f00e"}.fa-thumbs-up:before{content:"\f164"}.fa-user-clock:before{content:"\f4fd"}.fa-allergies:before,.fa-hand-dots:before{content:"\f461"}.fa-file-invoice:before{content:"\f570"}.fa-window-minimize:before{content:"\f2d1"}.fa-coffee:before,.fa-mug-saucer:before{content:"\f0f4"}.fa-brush:before{content:"\f55d"}.fa-mask:before{content:"\f6fa"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:"\f010"}.fa-ruler-vertical:before{content:"\f548"}.fa-user-alt:before,.fa-user-large:before{content:"\f406"}.fa-train-tram:before{content:"\e5b4"}.fa-user-nurse:before{content:"\f82f"}.fa-syringe:before{content:"\f48e"}.fa-cloud-sun:before{content:"\f6c4"}.fa-stopwatch-20:before{content:"\e06f"}.fa-square-full:before{content:"\f45c"}.fa-magnet:before{content:"\f076"}.fa-jar:before{content:"\e516"}.fa-note-sticky:before,.fa-sticky-note:before{content:"\f249"}.fa-bug-slash:before{content:"\e490"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-bone:before{content:"\f5d7"}.fa-user-injured:before{content:"\f728"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:"\f5b4"}.fa-plane:before{content:"\f072"}.fa-tent-arrows-down:before{content:"\e581"}.fa-exclamation:before{content:"\21"}.fa-arrows-spin:before{content:"\e4bb"}.fa-print:before{content:"\f02f"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:"\e2bb"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"\24"}.fa-x:before{content:"\58"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:"\f688"}.fa-users-cog:before,.fa-users-gear:before{content:"\f509"}.fa-person-military-pointing:before{content:"\e54a"}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:"\f19c"}.fa-umbrella:before{content:"\f0e9"}.fa-trowel:before{content:"\e589"}.fa-d:before{content:"\44"}.fa-stapler:before{content:"\e5af"}.fa-masks-theater:before,.fa-theater-masks:before{content:"\f630"}.fa-kip-sign:before{content:"\e1c4"}.fa-hand-point-left:before{content:"\f0a5"}.fa-handshake-alt:before,.fa-handshake-simple:before{content:"\f4c6"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:"\f0fb"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:"\f1e1"}.fa-barcode:before{content:"\f02a"}.fa-plus-minus:before{content:"\e43c"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-person-circle-check:before{content:"\e53e"}.fa-level-up-alt:before,.fa-turn-up:before{content:"\f3bf"}.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}:host,:root{--fa-style-family-brands:"Font Awesome 6 Brands";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-display:block;font-family:Font Awesome\ 6 Brands;font-style:normal;font-weight:400;src:url(878f31251d960bd6266f.woff2) format("woff2"),url(016b4a6cdced82ab3aa1.ttf) format("truetype")}.fa-brands,.fab{font-weight:400}.fa-monero:before{content:"\f3d0"}.fa-hooli:before{content:"\f427"}.fa-yelp:before{content:"\f1e9"}.fa-cc-visa:before{content:"\f1f0"}.fa-lastfm:before{content:"\f202"}.fa-shopware:before{content:"\f5b5"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-aws:before{content:"\f375"}.fa-redhat:before{content:"\f7bc"}.fa-yoast:before{content:"\f2b1"}.fa-cloudflare:before{content:"\e07d"}.fa-ups:before{content:"\f7e0"}.fa-wpexplorer:before{content:"\f2de"}.fa-dyalog:before{content:"\f399"}.fa-bity:before{content:"\f37a"}.fa-stackpath:before{content:"\f842"}.fa-buysellads:before{content:"\f20d"}.fa-first-order:before{content:"\f2b0"}.fa-modx:before{content:"\f285"}.fa-guilded:before{content:"\e07e"}.fa-vnv:before{content:"\f40b"}.fa-js-square:before,.fa-square-js:before{content:"\f3b9"}.fa-microsoft:before{content:"\f3ca"}.fa-qq:before{content:"\f1d6"}.fa-orcid:before{content:"\f8d2"}.fa-java:before{content:"\f4e4"}.fa-invision:before{content:"\f7b0"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-centercode:before{content:"\f380"}.fa-glide-g:before{content:"\f2a6"}.fa-drupal:before{content:"\f1a9"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-unity:before{content:"\e049"}.fa-whmcs:before{content:"\f40d"}.fa-rocketchat:before{content:"\f3e8"}.fa-vk:before{content:"\f189"}.fa-untappd:before{content:"\f405"}.fa-mailchimp:before{content:"\f59e"}.fa-css3-alt:before{content:"\f38b"}.fa-reddit-square:before,.fa-square-reddit:before{content:"\f1a2"}.fa-vimeo-v:before{content:"\f27d"}.fa-contao:before{content:"\f26d"}.fa-square-font-awesome:before{content:"\e5ad"}.fa-deskpro:before{content:"\f38f"}.fa-sistrix:before{content:"\f3ee"}.fa-instagram-square:before,.fa-square-instagram:before{content:"\e055"}.fa-battle-net:before{content:"\f835"}.fa-the-red-yeti:before{content:"\f69d"}.fa-hacker-news-square:before,.fa-square-hacker-news:before{content:"\f3af"}.fa-edge:before{content:"\f282"}.fa-threads:before{content:"\e618"}.fa-napster:before{content:"\f3d2"}.fa-snapchat-square:before,.fa-square-snapchat:before{content:"\f2ad"}.fa-google-plus-g:before{content:"\f0d5"}.fa-artstation:before{content:"\f77a"}.fa-markdown:before{content:"\f60f"}.fa-sourcetree:before{content:"\f7d3"}.fa-google-plus:before{content:"\f2b3"}.fa-diaspora:before{content:"\f791"}.fa-foursquare:before{content:"\f180"}.fa-stack-overflow:before{content:"\f16c"}.fa-github-alt:before{content:"\f113"}.fa-phoenix-squadron:before{content:"\f511"}.fa-pagelines:before{content:"\f18c"}.fa-algolia:before{content:"\f36c"}.fa-red-river:before{content:"\f3e3"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-safari:before{content:"\f267"}.fa-google:before{content:"\f1a0"}.fa-font-awesome-alt:before,.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-atlassian:before{content:"\f77b"}.fa-linkedin-in:before{content:"\f0e1"}.fa-digital-ocean:before{content:"\f391"}.fa-nimblr:before{content:"\f5a8"}.fa-chromecast:before{content:"\f838"}.fa-evernote:before{content:"\f839"}.fa-hacker-news:before{content:"\f1d4"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-adversal:before{content:"\f36a"}.fa-creative-commons:before{content:"\f25e"}.fa-watchman-monitoring:before{content:"\e087"}.fa-fonticons:before{content:"\f280"}.fa-weixin:before{content:"\f1d7"}.fa-shirtsinbulk:before{content:"\f214"}.fa-codepen:before{content:"\f1cb"}.fa-git-alt:before{content:"\f841"}.fa-lyft:before{content:"\f3c3"}.fa-rev:before{content:"\f5b2"}.fa-windows:before{content:"\f17a"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-square-viadeo:before,.fa-viadeo-square:before{content:"\f2aa"}.fa-meetup:before{content:"\f2e0"}.fa-centos:before{content:"\f789"}.fa-adn:before{content:"\f170"}.fa-cloudsmith:before{content:"\f384"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-dribbble-square:before,.fa-square-dribbble:before{content:"\f397"}.fa-codiepie:before{content:"\f284"}.fa-node:before{content:"\f419"}.fa-mix:before{content:"\f3cb"}.fa-steam:before{content:"\f1b6"}.fa-cc-apple-pay:before{content:"\f416"}.fa-scribd:before{content:"\f28a"}.fa-debian:before{content:"\e60b"}.fa-openid:before{content:"\f19b"}.fa-instalod:before{content:"\e081"}.fa-expeditedssl:before{content:"\f23e"}.fa-sellcast:before{content:"\f2da"}.fa-square-twitter:before,.fa-twitter-square:before{content:"\f081"}.fa-r-project:before{content:"\f4f7"}.fa-delicious:before{content:"\f1a5"}.fa-freebsd:before{content:"\f3a4"}.fa-vuejs:before{content:"\f41f"}.fa-accusoft:before{content:"\f369"}.fa-ioxhost:before{content:"\f208"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-app-store:before{content:"\f36f"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-itunes-note:before{content:"\f3b5"}.fa-golang:before{content:"\e40f"}.fa-kickstarter:before{content:"\f3bb"}.fa-grav:before{content:"\f2d6"}.fa-weibo:before{content:"\f18a"}.fa-uncharted:before{content:"\e084"}.fa-firstdraft:before{content:"\f3a1"}.fa-square-youtube:before,.fa-youtube-square:before{content:"\f431"}.fa-wikipedia-w:before{content:"\f266"}.fa-rendact:before,.fa-wpressr:before{content:"\f3e4"}.fa-angellist:before{content:"\f209"}.fa-galactic-republic:before{content:"\f50c"}.fa-nfc-directional:before{content:"\e530"}.fa-skype:before{content:"\f17e"}.fa-joget:before{content:"\f3b7"}.fa-fedora:before{content:"\f798"}.fa-stripe-s:before{content:"\f42a"}.fa-meta:before{content:"\e49b"}.fa-laravel:before{content:"\f3bd"}.fa-hotjar:before{content:"\f3b1"}.fa-bluetooth-b:before{content:"\f294"}.fa-sticker-mule:before{content:"\f3f7"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-hips:before{content:"\f452"}.fa-behance:before{content:"\f1b4"}.fa-reddit:before{content:"\f1a1"}.fa-discord:before{content:"\f392"}.fa-chrome:before{content:"\f268"}.fa-app-store-ios:before{content:"\f370"}.fa-cc-discover:before{content:"\f1f2"}.fa-wpbeginner:before{content:"\f297"}.fa-confluence:before{content:"\f78d"}.fa-mdb:before{content:"\f8ca"}.fa-dochub:before{content:"\f394"}.fa-accessible-icon:before{content:"\f368"}.fa-ebay:before{content:"\f4f4"}.fa-amazon:before{content:"\f270"}.fa-unsplash:before{content:"\e07c"}.fa-yarn:before{content:"\f7e3"}.fa-square-steam:before,.fa-steam-square:before{content:"\f1b7"}.fa-500px:before{content:"\f26e"}.fa-square-vimeo:before,.fa-vimeo-square:before{content:"\f194"}.fa-asymmetrik:before{content:"\f372"}.fa-font-awesome-flag:before,.fa-font-awesome-logo-full:before,.fa-font-awesome:before{content:"\f2b4"}.fa-gratipay:before{content:"\f184"}.fa-apple:before{content:"\f179"}.fa-hive:before{content:"\e07f"}.fa-gitkraken:before{content:"\f3a6"}.fa-keybase:before{content:"\f4f5"}.fa-apple-pay:before{content:"\f415"}.fa-padlet:before{content:"\e4a0"}.fa-amazon-pay:before{content:"\f42c"}.fa-github-square:before,.fa-square-github:before{content:"\f092"}.fa-stumbleupon:before{content:"\f1a4"}.fa-fedex:before{content:"\f797"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-shopify:before{content:"\e057"}.fa-neos:before{content:"\f612"}.fa-square-threads:before{content:"\e619"}.fa-hackerrank:before{content:"\f5f7"}.fa-researchgate:before{content:"\f4f8"}.fa-swift:before{content:"\f8e1"}.fa-angular:before{content:"\f420"}.fa-speakap:before{content:"\f3f3"}.fa-angrycreative:before{content:"\f36e"}.fa-y-combinator:before{content:"\f23b"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-gitlab-square:before,.fa-square-gitlab:before{content:"\e5ae"}.fa-studiovinari:before{content:"\f3f8"}.fa-pied-piper:before{content:"\f2ae"}.fa-wordpress:before{content:"\f19a"}.fa-product-hunt:before{content:"\f288"}.fa-firefox:before{content:"\f269"}.fa-linode:before{content:"\f2b8"}.fa-goodreads:before{content:"\f3a8"}.fa-odnoklassniki-square:before,.fa-square-odnoklassniki:before{content:"\f264"}.fa-jsfiddle:before{content:"\f1cc"}.fa-sith:before{content:"\f512"}.fa-themeisle:before{content:"\f2b2"}.fa-page4:before{content:"\f3d7"}.fa-hashnode:before{content:"\e499"}.fa-react:before{content:"\f41b"}.fa-cc-paypal:before{content:"\f1f4"}.fa-squarespace:before{content:"\f5be"}.fa-cc-stripe:before{content:"\f1f5"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-bitcoin:before{content:"\f379"}.fa-keycdn:before{content:"\f3ba"}.fa-opera:before{content:"\f26a"}.fa-itch-io:before{content:"\f83a"}.fa-umbraco:before{content:"\f8e8"}.fa-galactic-senate:before{content:"\f50d"}.fa-ubuntu:before{content:"\f7df"}.fa-draft2digital:before{content:"\f396"}.fa-stripe:before{content:"\f429"}.fa-houzz:before{content:"\f27c"}.fa-gg:before{content:"\f260"}.fa-dhl:before{content:"\f790"}.fa-pinterest-square:before,.fa-square-pinterest:before{content:"\f0d3"}.fa-xing:before{content:"\f168"}.fa-blackberry:before{content:"\f37b"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-playstation:before{content:"\f3df"}.fa-quinscape:before{content:"\f459"}.fa-less:before{content:"\f41d"}.fa-blogger-b:before{content:"\f37d"}.fa-opencart:before{content:"\f23d"}.fa-vine:before{content:"\f1ca"}.fa-paypal:before{content:"\f1ed"}.fa-gitlab:before{content:"\f296"}.fa-typo3:before{content:"\f42b"}.fa-reddit-alien:before{content:"\f281"}.fa-yahoo:before{content:"\f19e"}.fa-dailymotion:before{content:"\e052"}.fa-affiliatetheme:before{content:"\f36b"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-bootstrap:before{content:"\f836"}.fa-odnoklassniki:before{content:"\f263"}.fa-nfc-symbol:before{content:"\e531"}.fa-ethereum:before{content:"\f42e"}.fa-speaker-deck:before{content:"\f83c"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-patreon:before{content:"\f3d9"}.fa-avianex:before{content:"\f374"}.fa-ello:before{content:"\f5f1"}.fa-gofore:before{content:"\f3a7"}.fa-bimobject:before{content:"\f378"}.fa-facebook-f:before{content:"\f39e"}.fa-google-plus-square:before,.fa-square-google-plus:before{content:"\f0d4"}.fa-mandalorian:before{content:"\f50f"}.fa-first-order-alt:before{content:"\f50a"}.fa-osi:before{content:"\f41a"}.fa-google-wallet:before{content:"\f1ee"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-periscope:before{content:"\f3da"}.fa-fulcrum:before{content:"\f50b"}.fa-cloudscale:before{content:"\f383"}.fa-forumbee:before{content:"\f211"}.fa-mizuni:before{content:"\f3cc"}.fa-schlix:before{content:"\f3ea"}.fa-square-xing:before,.fa-xing-square:before{content:"\f169"}.fa-bandcamp:before{content:"\f2d5"}.fa-wpforms:before{content:"\f298"}.fa-cloudversify:before{content:"\f385"}.fa-usps:before{content:"\f7e1"}.fa-megaport:before{content:"\f5a3"}.fa-magento:before{content:"\f3c4"}.fa-spotify:before{content:"\f1bc"}.fa-optin-monster:before{content:"\f23c"}.fa-fly:before{content:"\f417"}.fa-aviato:before{content:"\f421"}.fa-itunes:before{content:"\f3b4"}.fa-cuttlefish:before{content:"\f38c"}.fa-blogger:before{content:"\f37c"}.fa-flickr:before{content:"\f16e"}.fa-viber:before{content:"\f409"}.fa-soundcloud:before{content:"\f1be"}.fa-digg:before{content:"\f1a6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-symfony:before{content:"\f83d"}.fa-maxcdn:before{content:"\f136"}.fa-etsy:before{content:"\f2d7"}.fa-facebook-messenger:before{content:"\f39f"}.fa-audible:before{content:"\f373"}.fa-think-peaks:before{content:"\f731"}.fa-bilibili:before{content:"\e3d9"}.fa-erlang:before{content:"\f39d"}.fa-x-twitter:before{content:"\e61b"}.fa-cotton-bureau:before{content:"\f89e"}.fa-dashcube:before{content:"\f210"}.fa-42-group:before,.fa-innosoft:before{content:"\e080"}.fa-stack-exchange:before{content:"\f18d"}.fa-elementor:before{content:"\f430"}.fa-pied-piper-square:before,.fa-square-pied-piper:before{content:"\e01e"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-palfed:before{content:"\f3d8"}.fa-superpowers:before{content:"\f2dd"}.fa-resolving:before{content:"\f3e7"}.fa-xbox:before{content:"\f412"}.fa-searchengin:before{content:"\f3eb"}.fa-tiktok:before{content:"\e07b"}.fa-facebook-square:before,.fa-square-facebook:before{content:"\f082"}.fa-renren:before{content:"\f18b"}.fa-linux:before{content:"\f17c"}.fa-glide:before{content:"\f2a5"}.fa-linkedin:before{content:"\f08c"}.fa-hubspot:before{content:"\f3b2"}.fa-deploydog:before{content:"\f38e"}.fa-twitch:before{content:"\f1e8"}.fa-ravelry:before{content:"\f2d9"}.fa-mixer:before{content:"\e056"}.fa-lastfm-square:before,.fa-square-lastfm:before{content:"\f203"}.fa-vimeo:before{content:"\f40a"}.fa-mendeley:before{content:"\f7b3"}.fa-uniregistry:before{content:"\f404"}.fa-figma:before{content:"\f799"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-dropbox:before{content:"\f16b"}.fa-instagram:before{content:"\f16d"}.fa-cmplid:before{content:"\e360"}.fa-facebook:before{content:"\f09a"}.fa-gripfire:before{content:"\f3ac"}.fa-jedi-order:before{content:"\f50e"}.fa-uikit:before{content:"\f403"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-phabricator:before{content:"\f3db"}.fa-ussunnah:before{content:"\f407"}.fa-earlybirds:before{content:"\f39a"}.fa-trade-federation:before{content:"\f513"}.fa-autoprefixer:before{content:"\f41c"}.fa-whatsapp:before{content:"\f232"}.fa-slideshare:before{content:"\f1e7"}.fa-google-play:before{content:"\f3ab"}.fa-viadeo:before{content:"\f2a9"}.fa-line:before{content:"\f3c0"}.fa-google-drive:before{content:"\f3aa"}.fa-servicestack:before{content:"\f3ec"}.fa-simplybuilt:before{content:"\f215"}.fa-bitbucket:before{content:"\f171"}.fa-imdb:before{content:"\f2d8"}.fa-deezer:before{content:"\e077"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-jira:before{content:"\f7b1"}.fa-docker:before{content:"\f395"}.fa-screenpal:before{content:"\e570"}.fa-bluetooth:before{content:"\f293"}.fa-gitter:before{content:"\f426"}.fa-d-and-d:before{content:"\f38d"}.fa-microblog:before{content:"\e01a"}.fa-cc-diners-club:before{content:"\f24c"}.fa-gg-circle:before{content:"\f261"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-yandex:before{content:"\f413"}.fa-readme:before{content:"\f4d5"}.fa-html5:before{content:"\f13b"}.fa-sellsy:before{content:"\f213"}.fa-sass:before{content:"\f41e"}.fa-wirsindhandwerk:before,.fa-wsh:before{content:"\e2d0"}.fa-buromobelexperte:before{content:"\f37f"}.fa-salesforce:before{content:"\f83b"}.fa-octopus-deploy:before{content:"\e082"}.fa-medapps:before{content:"\f3c6"}.fa-ns8:before{content:"\f3d5"}.fa-pinterest-p:before{content:"\f231"}.fa-apper:before{content:"\f371"}.fa-fort-awesome:before{content:"\f286"}.fa-waze:before{content:"\f83f"}.fa-cc-jcb:before{content:"\f24b"}.fa-snapchat-ghost:before,.fa-snapchat:before{content:"\f2ab"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-rust:before{content:"\e07a"}.fa-wix:before{content:"\f5cf"}.fa-behance-square:before,.fa-square-behance:before{content:"\f1b5"}.fa-supple:before{content:"\f3f9"}.fa-rebel:before{content:"\f1d0"}.fa-css3:before{content:"\f13c"}.fa-staylinked:before{content:"\f3f5"}.fa-kaggle:before{content:"\f5fa"}.fa-space-awesome:before{content:"\e5ac"}.fa-deviantart:before{content:"\f1bd"}.fa-cpanel:before{content:"\f388"}.fa-goodreads-g:before{content:"\f3a9"}.fa-git-square:before,.fa-square-git:before{content:"\f1d2"}.fa-square-tumblr:before,.fa-tumblr-square:before{content:"\f174"}.fa-trello:before{content:"\f181"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-get-pocket:before{content:"\f265"}.fa-perbyte:before{content:"\e083"}.fa-grunt:before{content:"\f3ad"}.fa-weebly:before{content:"\f5cc"}.fa-connectdevelop:before{content:"\f20e"}.fa-leanpub:before{content:"\f212"}.fa-black-tie:before{content:"\f27e"}.fa-themeco:before{content:"\f5c6"}.fa-python:before{content:"\f3e2"}.fa-android:before{content:"\f17b"}.fa-bots:before{content:"\e340"}.fa-free-code-camp:before{content:"\f2c5"}.fa-hornbill:before{content:"\f592"}.fa-js:before{content:"\f3b8"}.fa-ideal:before{content:"\e013"}.fa-git:before{content:"\f1d3"}.fa-dev:before{content:"\f6cc"}.fa-sketch:before{content:"\f7c6"}.fa-yandex-international:before{content:"\f414"}.fa-cc-amex:before{content:"\f1f3"}.fa-uber:before{content:"\f402"}.fa-github:before{content:"\f09b"}.fa-php:before{content:"\f457"}.fa-alipay:before{content:"\f642"}.fa-youtube:before{content:"\f167"}.fa-skyatlas:before{content:"\f216"}.fa-firefox-browser:before{content:"\e007"}.fa-replyd:before{content:"\f3e6"}.fa-suse:before{content:"\f7d6"}.fa-jenkins:before{content:"\f3b6"}.fa-twitter:before{content:"\f099"}.fa-rockrms:before{content:"\f3e9"}.fa-pinterest:before{content:"\f0d2"}.fa-buffer:before{content:"\f837"}.fa-npm:before{content:"\f3d4"}.fa-yammer:before{content:"\f840"}.fa-btc:before{content:"\f15a"}.fa-dribbble:before{content:"\f17d"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-internet-explorer:before{content:"\f26b"}.fa-stubber:before{content:"\e5c7"}.fa-telegram-plane:before,.fa-telegram:before{content:"\f2c6"}.fa-old-republic:before{content:"\f510"}.fa-odysee:before{content:"\e5c6"}.fa-square-whatsapp:before,.fa-whatsapp-square:before{content:"\f40c"}.fa-node-js:before{content:"\f3d3"}.fa-edge-legacy:before{content:"\e078"}.fa-slack-hash:before,.fa-slack:before{content:"\f198"}.fa-medrt:before{content:"\f3c8"}.fa-usb:before{content:"\f287"}.fa-tumblr:before{content:"\f173"}.fa-vaadin:before{content:"\f408"}.fa-quora:before{content:"\f2c4"}.fa-square-x-twitter:before{content:"\e61a"}.fa-reacteurope:before{content:"\f75d"}.fa-medium-m:before,.fa-medium:before{content:"\f23a"}.fa-amilia:before{content:"\f36d"}.fa-mixcloud:before{content:"\f289"}.fa-flipboard:before{content:"\f44d"}.fa-viacoin:before{content:"\f237"}.fa-critical-role:before{content:"\f6c9"}.fa-sitrox:before{content:"\e44a"}.fa-discourse:before{content:"\f393"}.fa-joomla:before{content:"\f1aa"}.fa-mastodon:before{content:"\f4f6"}.fa-airbnb:before{content:"\f834"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-buy-n-large:before{content:"\f8a6"}.fa-gulp:before{content:"\f3ae"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-strava:before{content:"\f428"}.fa-ember:before{content:"\f423"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-teamspeak:before{content:"\f4f9"}.fa-pushed:before{content:"\f3e1"}.fa-wordpress-simple:before{content:"\f411"}.fa-nutritionix:before{content:"\f3d6"}.fa-wodu:before{content:"\e088"}.fa-google-pay:before{content:"\e079"}.fa-intercom:before{content:"\f7af"}.fa-zhihu:before{content:"\f63f"}.fa-korvue:before{content:"\f42f"}.fa-pix:before{content:"\e43a"}.fa-steam-symbol:before{content:"\f3f6"}:host,:root{--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-display:block;font-family:Font Awesome\ 6 Free;font-style:normal;font-weight:400;src:url(b041b1fa4fe241b23445.woff2) format("woff2"),url(50701fbb8177c2dde530.ttf) format("truetype")}.fa-regular,.far{font-weight:400}:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-display:block;font-family:Font Awesome\ 6 Free;font-style:normal;font-weight:900;src:url(b6879d41b0852f01ed5b.woff2) format("woff2"),url(d75e3fd1eb12e9bd6655.ttf) format("truetype")}.fa-solid,.fas{font-weight:900}@font-face{font-display:block;font-family:Font Awesome\ 5 Brands;font-weight:400;src:url(878f31251d960bd6266f.woff2) format("woff2"),url(016b4a6cdced82ab3aa1.ttf) format("truetype")}@font-face{font-display:block;font-family:Font Awesome\ 5 Free;font-weight:900;src:url(b6879d41b0852f01ed5b.woff2) format("woff2"),url(d75e3fd1eb12e9bd6655.ttf) format("truetype")}@font-face{font-display:block;font-family:Font Awesome\ 5 Free;font-weight:400;src:url(b041b1fa4fe241b23445.woff2) format("woff2"),url(50701fbb8177c2dde530.ttf) format("truetype")}@font-face{font-display:block;font-family:FontAwesome;src:url(b6879d41b0852f01ed5b.woff2) format("woff2"),url(d75e3fd1eb12e9bd6655.ttf) format("truetype")}@font-face{font-display:block;font-family:FontAwesome;src:url(878f31251d960bd6266f.woff2) format("woff2"),url(016b4a6cdced82ab3aa1.ttf) format("truetype")}@font-face{font-display:block;font-family:FontAwesome;src:url(b041b1fa4fe241b23445.woff2) format("woff2"),url(50701fbb8177c2dde530.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-display:block;font-family:FontAwesome;src:url(1bac2991f3dbfa237aec.woff2) format("woff2"),url(c6a0c95b0a95c4553700.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a}html{font-family:Chivo,sans-serif}a,button,h1,h2,h3,h4,h5,h6,input,label,li,p,span{font-family:Montserrat,sans-serif!important}body{background-color:#150c25;color:#f2f8fa}pre{background-color:#00000047;border-radius:10px;color:inherit;display:block;font-size:87.5%;margin-bottom:10px;margin-top:10px;padding:15px}input,textarea{background-color:#fff;border:2px solid #fff;border-radius:9px;font-family:monospace!important;font-size:14px;height:43px;margin-bottom:14px;padding-left:12px;padding-right:12px;transition:all .125s ease-in-out;width:100%}input[type=number]{-moz-appearance:textfield}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}#privateKey,button{text-align:center}button{background-color:#380c6a;border:1px solid #7300ff;border-radius:15px;color:hsla(0,0%,100%,.65);font-size:16px;margin:1px;outline:0;padding:12px 25px;transition:all .2s ease-in-out}progress{border:none;border-radius:6px;color:#7300ff}progress[value]::-webkit-progress-value{background-image:-webkit-linear-gradient(top,hsla(0,0%,100%,.25),rgba(0,0,0,.25)),-webkit-linear-gradient(left,#380c6a,#7300ff);background-size:35px 20px,100% 100%,100% 100%;border-radius:6px}progress[value]::-moz-progress-bar{background-image:-moz-linear-gradient(top,hsla(0,0%,100%,.25),rgba(0,0,0,.25)),-moz-linear-gradient(left,#380c6a,#7300ff);background-size:35px 20px,100% 100%,100% 100%;border-radius:6px}.hide-element{height:0;opacity:0;width:0}.fa-tiny-margin{margin-top:4px}.ptr{cursor:pointer;transition:all .175s ease-in-out}.ptr:hover{opacity:.8}.fa-stacked-ptr{cursor:pointer;margin-right:15px}.nav-logo{display:inline;vertical-align:middle;width:150px}.nav-link{font-size:16px;font-weight:500}.navButton{color:#999}.navButton:hover{color:#334758!important}.small-dark-bg{background-color:#2c0044;border-radius:20px}.alert-danger{background-color:#ffabb361;border-color:#ba0014}.nav-link{color:#fff!important}.nav-link:hover{color:hsla(0,0%,100%,.75)!important}.minor-notif-subtext{opacity:.5;padding:10px 5px 30px;text-align:center}.changelog{text-align:left}.changelog p{font-family:monospace!important;margin-bottom:0;opacity:.75}.changelog h3{border-left:5px solid #763acf;padding-left:5px}.large-box{background:rgba(43,9,80,.55);border:1px solid #6222ab;border-radius:8px;margin:5px}.large-box:hover{background:linear-gradient(217deg,rgba(51,0,153,.1),rgba(34,0,102,.3) 70.71%);border-color:#763acf}#qrModal.modal{width:auto}#qrModal.modal,#qrReaderModal.modal{left:50%;top:50%;transform:translate(-50%,-50%)}#qrReaderModal.modal{z-index:1100}#qrReaderStream{height:100%;width:100%}.scan-region-highlight-svg{stroke:#6800ff!important;filter:drop-shadow(0 0 3px rgb(122,31,255))}.modal{color:#000}.modal-label{font-family:monospace;font-size:small;position:relative;top:20px}.auto-fit{height:auto;width:100%}@keyframes disco{0%{filter:hue-rotate(0deg)}to{filter:hue-rotate(1turn)}}.discoFilter{animation-duration:2s;animation-iteration-count:infinite;animation-name:disco;animation-play-state:running;animation-timing-function:linear}.reload{cursor:pointer;font-family:Lucida Sans Unicode;margin-left:10px}.reload i{animation-duration:.75s;animation-iteration-count:infinite;animation-name:spinner;animation-play-state:paused;animation-timing-function:linear;font-size:21px;height:21px;width:21px}.playAnim{animation-play-state:running!important}@keyframes spinner{0%{transform:translateZ(0) rotate(0deg)}to{transform:translateZ(0) rotate(1turn)}}.noselect{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.innerShadow{-webkit-box-shadow:inset 0 2px 2px hsla(0,0%,100%,.25),inset 0 -1px 8px rgba(0,0,0,.6);box-shadow:inset 0 2px 2px hsla(0,0%,100%,.25),inset 0 -1px 8px rgba(0,0,0,.6)}.seed-phrase{background-color:#00000014;border-radius:8px;color:#8e21ff;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;margin:10px;padding:10px}.mono{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.modal-footer{display:block!important}.inline-address{background-color:#00000014;border-radius:8px;color:#8e21ff;display:inline;font-family:mono;margin:10px;padding:3px}#page-container{min-height:calc(100vh - 75px);position:relative}#content-wrap{margin-top:75px;padding-bottom:4rem}@media (max-width:768px){#content-wrap{margin-top:40px}#page-container{min-height:calc(100vh - 40px)}}.rm-pd{padding:15px 15px 40px}.max-width{width:100%}.tab{background-color:#000;border:1px solid #080808;overflow:hidden}.tab button{background-color:inherit;border:none;color:#ecd3af;cursor:pointer;float:left;font-size:17px;outline:none;padding:14px 16px;transition:.3s}.tab button:hover{background-color:#334758!important}.tab button.active{background-color:#b088ff!important}.active{color:#b088ff!important}.tabcontent{border-radius:8px;display:none;font-family:sans-serif}#Transaction.tabcontent{padding-bottom:100px}.frame{background:#2b0950bf;display:block;margin:0 auto}#guiWallet{width:100%}#bcg-wallet-box{background:linear-gradient(90deg,rgba(77,77,77,.5),rgba(115,0,255,.3));border:1px solid #4b1282;border-radius:8px;box-shadow:2px 2px 15px 2px #4b1271;display:block;height:87%;margin:0 0 280px;width:100%}#headline-balance{display:block;height:150px;width:100%}#window-icon-piv{display:inline-block;height:150px;padding:30px 50px;width:auto}#piv-ring{background-image:url(1f711aafe8419ae192fe.svg);background-size:cover;border-radius:50%;border-style:solid;border-width:3px;display:inline-block;height:65px;width:65px}#number-piv{display:inline-block;height:60px;padding:15px 10px 15px 60px;vertical-align:top;width:auto}#guiBalanceBox{display:inline-block;font-size:x-large}#balance-box{background:linear-gradient(90deg,hsla(0,0%,48%,.5),rgba(115,0,255,.4));display:block!important;height:125px;margin:20px auto 0!important;width:95%}#bal-title{float:right;padding:45px 50px}#big-frame-address{display:block;height:auto;margin:0 auto;padding-top:40px;width:90%}#address-box{height:380px;padding:30px 25px}#address-box.large-box{background:linear-gradient(54deg,rgba(43,9,80,.45),rgba(43,9,80,.02));margin:0 auto;width:96%!important}#title-address-box{margin:0!important;padding:10px 20px 0 30px;width:30%}#box-info-address{display:inline-block;padding-top:40px;width:69%}#address-info{display:inline-block;padding:0 0 20px 40px;width:75%}#guiAddress{display:inline-block;font-family:monospace;font-size:16px;font-weight:300;line-break:anywhere;width:100%;word-break:break-all}#guiQRButton{font-size:large;padding:10px 0;width:auto}#guiQRButton,#ring{display:inline-block}#ring{padding:10px 10px 20px 50px}#identicon{background-color:#fff;border:3px solid #fff;border-radius:1000px}.mobile-pubkey{display:none!important}#box-info-address{vertical-align:top}#pubkey-padd{display:inline-block;height:auto;width:30%}#pubkey-box.col-md-4{clear:both;display:block!important;float:none;max-width:100%;padding:0 0 20px}#pubkey-box{display:block;margin:0;text-align:center;width:100%!important}#PrivateCipheredQR img,#PrivateQR img,#PublicQR img{height:95px!important;width:95px!important}#PrivateCipheredTxt,#PrivateTxt{color:#000;font-size:12px!important;line-height:20px;text-align:center}.margin-padded-qr{margin-bottom:10px;padding:5px 10px 10px}.add-frame{background:rgba(72,2,125,.6);border:1px solid #a366ff;border-radius:8px;display:block;height:800px!important;margin:0 auto;padding:5px;width:85%!important}#stake-title{cursor:default;display:inline-block;margin:0}#StakingTab{margin:20px 0 100px;padding:10px 10px 30px}.staking-banner-bottom{display:flex;flex-wrap:wrap;justify-content:space-evenly;min-height:200px;width:100%}.staking-rewards-header{font-size:large;height:15%;overflow:hidden}.staking-rewards-list{font-size:large;height:85%;overflow:auto}#staking-rectangle{border-bottom:1px solid #a366ff;display:block;height:100px;max-width:100%!important;position:relative}#pivx-price-box{float:left;height:100px;width:240px}#icon-box-piv{display:inline-block;height:80px;margin:0!important;padding:20px 15px 40px 35px;width:80px}#piv-price-amount{float:right;margin:0!important;padding:30px}#guiBalanceBoxStaking{display:inline-block;font-size:x-large;margin:0}#staking-box{float:right!important;height:100px;padding:30px 30px 30px 20px;width:220px}.staking-piv-icon{background-image:url(1f711aafe8419ae192fe.svg);background-size:cover;border-radius:1000px;border-style:solid;border-width:3px;display:inline-block;height:55px;width:55px}.stake-box{height:220px;margin-left:auto!important;margin-right:auto!important;margin:30px 5px 10px;text-align:center}.stake-balances{margin-bottom:.75rem;margin-top:1rem;padding:5px}.stake-input{color:#000;font-size:16px!important;line-height:20px;text-align:center}#foot{backdrop-filter:blur(4px);background-color:#2b09508c;border-top:1px solid #521186;bottom:0;display:block;left:0;padding:10px;position:fixed;width:100%}.footer{color:#fff;padding:0;text-align:center;width:100%}.footer a{color:#fff;font-weight:700}#dcfooter{display:inline}.navbarSpecial{background:linear-gradient(90deg,#2c0b4c 12.5%,#500f83,#2c0b4c);border-bottom:1px solid #521186;min-height:77px;position:fixed;width:100%}.pivx-button-small{font:13px Montserrat,sans-serif!important;font-family:Montserrat,sans-serif;padding:8px 18px}.pivx-button-big,.pivx-button-small{background-image:linear-gradient(183deg,#9621ff,#7d21ff);-webkit-border-radius:35px;-moz-border-radius:35px;-ms-border-radius:35px;border-radius:35px;-webkit-box-shadow:3px 3px 25px 2px rgba(26,14,42,.5);-moz-box-shadow:3px 3px 25px 2px rgba(26,14,42,.5);box-shadow:3px 3px 25px 2px rgba(26,14,42,.5);color:#fffeff;display:inline-block;height:auto;letter-spacing:.025em;line-height:1.25em;margin:5px;outline:none;position:relative;text-transform:uppercase;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;z-index:1}.pivx-button-big{font:15px Montserrat,sans-serif!important;font-family:Montserrat,sans-serif;padding:14px 30px}.pivx-button-big-no-gov{background-image:linear-gradient(183deg,#b31010,#a10e0e);border-color:#850c0c;pointer-events:none}.pivx-button-big-yes-gov{background-image:linear-gradient(183deg,#27823f,#237639);border-color:#1f6130;pointer-events:none}.pivx-button-big:before{background-image:linear-gradient(183deg,#8e1fef,#741cef);bottom:0;content:"";left:0;opacity:0;position:absolute;right:0;top:0;transition:all .2s ease-in-out;z-index:-1}.pivx-button-big:before,.pivx-button-medium{-webkit-border-radius:35px;-moz-border-radius:35px;-ms-border-radius:35px;border-radius:35px}.pivx-button-medium{background-image:linear-gradient(183deg,#9621ff,#7d21ff);-webkit-box-shadow:3px 3px 25px 2px rgba(26,14,42,.5);-moz-box-shadow:3px 3px 25px 2px rgba(26,14,42,.5);box-shadow:3px 3px 25px 2px rgba(26,14,42,.5);color:#fffeff;display:inline-block;height:auto;line-height:1.25em;font:13px Montserrat,sans-serif!important;font-family:Montserrat,sans-serif;letter-spacing:.025em;margin:5px;outline:none;padding:8px 16px;position:relative;text-transform:uppercase;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;z-index:1}.pivx-button-medium::hover{background-image:linear-gradient(183deg,#8e1fef,#741cef);-webkit-border-radius:35px;-moz-border-radius:35px;-ms-border-radius:35px;border-radius:35px;bottom:0;content:"";left:0;opacity:0;position:absolute;right:0;top:0;transition:all .2s ease-in-out;z-index:-1}.pivx-button-big:hover:before{opacity:1}.button-padd{display:inline-block;height:auto;padding:15px 10px;width:auto}.home-hero{background:radial-gradient(45vw 80% at 90% 40%,rgba(162,50,255,.3),rgba(44,11,76,0) 95%),linear-gradient(90deg,rgba(44,11,76,.9),rgba(80,15,131,.5) 60%,rgba(44,11,76,.9)),linear-gradient(35deg,rgba(44,11,76,.3),rgba(80,15,131,.3) 37%,rgba(44,11,76,.3) 0,rgba(80,15,131,.3) 76%,rgba(44,11,76,.3) 0,rgba(80,15,131,.3)),linear-gradient(90deg,#2c0b4c,#500f83 60%,#2c0b4c)}.title-section{margin-bottom:20px}.warning-message{background-color:#9021fe;display:none;margin-bottom:15px;padding-bottom:20px;padding-top:20px}.warning-message p{margin-bottom:0}.warning-message a{background-color:transparent;color:#fff;font-weight:700;text-decoration:none}.alert-danger{background-color:#4b1282;border-color:#8300ff;color:#fff}.pivx-bold-title{font-size:calc(37.88235px + .70588vw)}.pivx-bold-title,.pivx-bold-title-smaller{font-family:Montserrat,sans-serif;font-weight:700;line-height:1.35em}.pivx-bold-title-smaller{font-size:38px}.pivx-bold-title span,.pivx-bold-title-smaller span{display:block;font-size:.6em;font-weight:300;line-height:1.2em}.center-text{text-align:center}.pivx-feature-father{margin-top:90px}.pivx-feature-interior{background:linear-gradient(90deg,#2b1542,#230f3c);border-radius:10px;padding:25px;text-align:center}.pivx-feature-interior h4{font-size:24px;font-weight:600;margin-top:19px}.pivx-feature-interior h5{font-size:16px;font-weight:300!important;line-height:1.75em;opacity:.65;padding:.7rem 0 1.25rem}.feature-icon{margin-top:-90px;min-height:150px;text-align:center;width:100%!important}.feature-icon img{height:auto;width:146px}.smaller-feature{width:100px!important}.features-section{margin-top:0}.buttoni-icon{display:inline-block;padding:0 12px 0 0;-webkit-transition:all .2s ease-out;-moz-transition:all .2s ease-out;-o-transition:all .2s ease-out;transition:all .2s ease-out;vertical-align:top}.buttoni-icon svg{fill:#fffeff;display:block;height:24px;margin:0;max-height:24px;width:auto}.buttoni-text{display:inline-block;padding:1px 0 0;vertical-align:top}.buttoni-arrow{display:inline-block;padding:4px 0 4px 10px;-webkit-transition:all .2s ease-out;-moz-transition:all .2s ease-out;-o-transition:all .2s ease-out;transition:all .2s ease-out;vertical-align:top!important}.buttoni-arrow svg{fill:#fffeff;display:block;height:auto;margin:0;width:15px}.purple-icon-link{color:#9621ff}.purple-icon-link,.white-icon-link{font-weight:500;padding:0;text-transform:uppercase}.black-link .link-icon.link-icon-suffix,.dark-link .link-icon.link-icon-suffix,.faded-link .link-icon.link-icon-suffix,.gray-link .link-icon.link-icon-suffix,.light-link .link-icon.link-icon-suffix,.pink-link .link-icon.link-icon-suffix,.purple-icon-link .link-icon.link-icon-suffix,.purple-link .link-icon.link-icon-suffix,.shaded-link .link-icon.link-icon-suffix,.white-icon-link .link-icon.link-icon-suffix,.white-link .link-icon.link-icon-suffix,a .link-icon.link-icon-suffix{float:right;margin-top:2px;padding:0 0 0 .6rem;-webkit-transition:padding-left .14s ease-out;-moz-transition:padding-left .14s ease-out;-o-transition:padding-left .14s ease-out;transition:padding-left .14s ease-out}.black-link .link-icon svg,.dark-link .link-icon svg,.faded-link .link-icon svg,.gray-link .link-icon svg,.light-link .link-icon svg,.pink-link .link-icon svg,.purple-icon-link .link-icon svg,.purple-link .link-icon svg,.shaded-link .link-icon svg,.white-icon-link .link-icon svg,.white-link .link-icon svg,a .link-icon svg{fill:#cac9d2;display:block;height:auto;width:19px}.black-link,.dark-link,.faded-link,.gray-link,.light-link,.pink-link,.purple-icon-link,.purple-link,.shaded-link,.white-icon-link,.white-link,a{background:none;border:none;display:inline-block;outline:none;text-decoration:none!important;vertical-align:top}.dashboard-item{background:rgba(43,9,80,.75);border-radius:6px;float:left;margin-bottom:15px;padding:40px;text-align:center}.send-eligibility-section .container .column-padded-around .coinstat-icon,.supply-control-section .container .column-padded-around .coinstat-icon{margin-bottom:.5rem}.coinstat-icon,.coinstat-icon svg,.masternodes-requirements-section .masternode-requirement-icon,.masternodes-requirements-section .masternode-requirement-icon svg,.setup-icon,.setup-icon svg{margin:0 auto}.coinstat-icon,.feature-icon,.masternodes-requirements-section .masternode-requirement-icon,.setup-icon{display:block;height:75px;padding:0;width:75px}.coinstat-icon svg,.feature-icon svg,.masternodes-requirements-section .masternode-requirement-icon svg,.setup-icon svg{fill:#9621ff;display:block;max-height:75px;padding:0;width:75px}.dashboard-title{margin-top:15px}.badge{margin-bottom:13px}.private-key-area{background:#521685;border:none;color:#fff;font-size:14px!important;height:29px!important;padding-bottom:4px;padding-top:4px;resize:none}.export-key{overflow-x:scroll;overflow-y:hidden;padding-bottom:36px;white-space:nowrap;width:100%}#sendNotice{margin:10px 0 20px}#communication{color:#fff;opacity:.6;padding:15px 5px 70px}#signed-raw{padding:10px 0 5px}.bold-trans{font-size:20px!important;font-weight:600!important;padding:15px 0!important}#submit-button.pivx-button-big{padding:14px 90px;width:auto!important}@media screen and (max-width:1200px){.button-padd .pivx-button-big{display:inline-block!important;margin:0;padding:15px 13px;width:100%!important}}@media screen and (max-width:1199px){#genKeyWarning .pivx-button-big{margin-top:20px}#PrivateCipheredQR img,#PrivateQR img,#PublicQR img{height:90px!important;width:90px!important}#box-info-address{width:64%}#address-info{width:60%}#pubkey-padd{width:33%}}@media screen and (min-width:1025px){#PrivateCipheredTxt,#PrivateTxt,#PublicTxt{font-size:25px}}@media screen and (max-width:1024px){#PrivateCipheredTxt,#PrivateTxt{font-size:18px}#PublicTxt{font-size:25px}#Settings .pivx-button-big{margin:8px 2px}}@media screen and (max-width:1000px){#guiBalanceBoxStaking{display:inline-block;width:100%}.stake-box.large-box.col-md-4{display:inline-block!important;margin:30px 10px!important;padding:10px;width:50%!important}.add-frame{width:100%!important}.stake-box .button-padd{padding:15px 6px}.stake-box .button-padd .pivx-button-big{padding:15px 22px 15px 27px}.stake-box .button-padd .buttoni-icon{display:none}.button-padd .buttoni-arrow{padding-left:5px;padding-right:0}}@media screen and (max-width:992px){#big-frame-address{padding-top:20px}#genKeyWarning div{max-width:100%!important}#genKeyWarning p{padding-bottom:15px;width:100%!important}#genKeyWarning .pivx-button-big{clear:both;display:block!important;float:none;margin:0 auto}#bcg-wallet-box{height:98%}#address-box.large-box{background:none;height:260px}#box-info-address{display:block;padding-top:20px;width:100%}#address-info{width:69%}.margin-padded-qr{margin-bottom:10px;padding:10px}#pubkey-padd{padding-top:60px;width:auto}#pubkey-box,#pubkey-padd{display:block}#pubkey-box .pivx-button-big{width:230px!important}#PrivateCipheredQR img,#PrivateQR img,#PublicQR img{height:75px!important;width:75px!important}.intro-page .col-md-11{padding-bottom:35px;width:100%!important}}@media screen and (max-width:770px){#pivx-price-box{width:200px}#piv-price-amount{padding:30px 15px 30px 35px}#icon-box-piv{margin:0!important;padding:20px 10px 30px 15px}#staking-box{padding:30px 5px 30px 20px;width:190px}}@media screen and (max-width:768px){#PrivateCipheredTxt,#PrivateTxt{font-size:17px}#PublicTxt{font-size:25px}.dashboard-item{padding-left:5%;padding-right:5%}#balance-box{height:120px;width:92%}#guiBalanceBox{margin:0}#address-box.large-box{background:none;height:240px}#address-info{width:65%}#pubkey-box{padding-top:40px}#pubkey-box .pivx-button-big{width:225px!important}}@media screen and (max-width:767px){table td{max-width:130px}table td a{width:100%}table td a code{max-width:100%;min-width:30px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#genKeyWarning .pivx-button-big{padding:13px 20px}#piv-ring{display:none}#window-icon-piv{padding:30px 0 30px 30px}#ring{padding:0 5px 20px 50px}#identicon{height:60px;width:60px}.add-frame{height:1000px!important}.stake-box.large-box.col-md-4{padding:10px 20px;width:85%!important}.modal-dialog{margin:0;max-width:100%}.modal-content{height:100%}.modal-body{overflow-y:auto}}@media screen and (max-width:600px){.buttoni-arrow,.buttoni-icon{display:none}#PrivateCipheredTxt,#PrivateTxt{font-size:13px}#PublicTxt{font-size:17px}#staking-box{padding:30px 5px 30px 35px}#stake-title{font-size:25px}#submit-button.pivx-button-big{margin-top:20px;padding:14px 85px 14px 100px}#address-info{width:55%}}@media screen and (max-width:550px){#bcg-wallet-box{height:100%}#ring{padding:5px 5px 30px 40px;vertical-align:top}#bal-title{padding:45px 40px 45px 20px}#window-icon-piv{padding:30px 0}#address-box.large-box{border-color:#763acf;height:250px;padding-top:20px}#title-address-box{padding:10px 20px 0;width:auto}#box-info-address{padding-top:25px}#address-info{width:59%}#info{margin-bottom:35px}}@media screen and (max-width:535px){#pubkey-box .pivx-button-big{width:200px!important}}@media screen and (max-width:510px){#pubkey-box .pivx-button-big{padding:12px 10px}#icon-box-piv{display:none}#pivx-price-box{width:130px}}@media screen and (max-width:480px){#PrivateCipheredTxt,#PrivateTxt{font-size:8px}#PublicTxt{font-size:13px}#pivx-price-box{width:auto}#number-piv{padding:15px 5px 15px 40px}#ring{padding:5px 5px 30px 30px}#pubkey-padd{padding-top:40px}}@media screen and (max-width:420px){.max-width{width:98%}#Transaction.tabcontent{padding:10px 15px 110px}#submit-button.pivx-button-big{display:block;height:auto;margin:0 auto}.buttoni-arrow{display:none}#navbarToggler{left:290px;position:sticky}#piv-ring{display:none!important}#guiBalanceBox{font-size:18px!important}#balance-box h3{font-size:20px}#identicon{height:55px;width:55px}#pubkey-box .pivx-button-big{padding:11px 10px}#pubkey-box.col-md-4{padding-top:20px}}@media screen and (max-width:393px){#piv-price-amount{padding:30px 15px}#address-box.large-box{height:255px;padding-top:15px}#title-address-box{padding:18px 20px 0 15px}#ring{padding:5px 5px 30px 20px}#address-info{padding-left:15px}#pubkey-padd{padding-top:30px}}@media screen and (max-width:380px){#navbarToggler{left:180px}#staking-box{height:auto;padding:30px 10px 35px;width:auto}#number-piv{padding:15px 5px 15px 35px}#bal-title{padding:45px 30px 45px 10px}#balance-box h3{font-size:24px}#pubkey-box .pivx-button-big{padding:11px 10px}}@media screen and (max-width:360px){#address-info{padding-left:35px;width:90%}#guiQRButton{padding:15px 10px}#piv-price-amount{padding:30px 5px 30px 20px}#bal-title{padding:47px 25px 47px 10px}#balance-box h3{font-size:22px}#pubkey-box .pivx-button-big{width:150px!important}#staking-box{padding:35px 10px}#stake-title{font-size:22px!important;height:auto}}@media screen and (max-width:332px){#balance-box{height:140px;width:92%}#window-icon-piv{height:auto;padding:5px 10px}#bal-title{clear:both;float:none;padding:10px 10px 10px 50px}}@media screen and (max-width:320px){#navbarToggler{font-size:14px}.feature-icon img{height:auto;width:115px!important}.feature-icon .smaller-feature{height:auto;width:80px!important}#piv-price-amount{padding:30px 5px 30px 10px}#staking-box{padding:35px 5px}.pivx-button-big{font-size:14px!important}#submit-button.pivx-button-big{padding:14px 50px!important}}@media screen and (max-width:300px){#navbarToggler{font-size:12px;left:80px!important}#page-container{min-height:900px;min-width:280px}.container{padding-left:5px;padding-right:5px}.row{margin-left:1px;margin-right:1px}.features-section .col-md-6{clear:both!important;display:block!important;float:none!important;margin:100px 20px 50px auto;width:220px}.pivx-feature-interior{padding:15px 8px;width:100%!important}.pivx-bold-title{font-size:calc(32px + 1vw)}.add-frame{height:750px!important}.stake-box.large-box.col-md-4{margin:30px 10px 10px!important}#piv-price-amount{padding:30px 60px;text-align:center!important}#staking-box{border-bottom:1px solid #a366ff;padding:30px 20px;text-align:center;width:100%}#guiBalanceBoxStaking,#stake-title{font-weight:600}.stake-box .button-padd .pivx-button-big{padding:14px 18px}}.alertPositioning{bottom:0;display:flex;flex-direction:column;position:fixed;right:15px;z-index:2000}.alertpop{background-color:#282828b5;border-radius:5px;color:#fff;margin-bottom:15px;opacity:0;padding:20px;right:0;transition:opacity .3s ease-in-out}.alertpop.success{background-color:#0de69694}.alertpop.info{background-color:#2196f37d}.alertpop.warning{background-color:#d94a2982}.alertpop:hover{cursor:pointer}.height-100{height:100%}.dashboard-display{align-content:center;display:flex;flex-wrap:wrap;justify-content:center}.textbox-opacity-trans{opacity:0}.bounce-ani{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0)}40%{-webkit-transform:translateY(-20px)}60%{-webkit-transform:translateY(-10px)}}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-20px)}60%{transform:translateY(-10px)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce}.no-antialias{-ms-interpolation-mode:nearest-neighbor;image-rendering:optimizeSpeed;image-rendering:-moz-crisp-edges;image-rendering:-o-crisp-edges;image-rendering:-webkit-optimize-contrast;image-rendering:pixelated;image-rendering:optimize-contrast}.wallet-code{background-color:rgba(0,0,0,.14);border-radius:5px;display:block;margin-bottom:1px;padding:6px 9px;width:100%}.exportPrivateKey{font-weight:700}.pubPrivKey{background-color:rgba(0,0,0,.25);border-radius:6px;color:#ede3f7;display:block;font-weight:900;margin-top:4px;padding:8px 12px}.newBtn-red-outline{background-color:#fff;border:2px solid #ffdede;border-radius:8px;color:#ff8071;font-size:14px;padding:6px 10px}.newBtn-red-outline:hover{background-color:#fff7f6;border:2px solid #ffdede;color:#ff8071}.newBtn-red-outline:focus{border:2px solid #f9bbbb;box-shadow:0 0 0 .2rem #f9bbbb40}.newBtn-purple-outline{background-color:#fff;border:2px solid #d3bcf1;border-radius:8px;color:#ad78f3;font-size:14px;padding:6px 10px}.newBtn-purple-outline:hover{background-color:#f1e9fb;border:2px solid #d3bcf1;box-shadow:none;color:#ad78f3}.newBtn-purple-outline:focus{border:2px solid #cba7fa;box-shadow:0 0 0 .2rem #cba7fa40}.navbar-nav .nav-item span{cursor:pointer;margin-left:5px;margin-right:5px;transition:all .2s ease-in-out}.modal-content .modal-footer,.modal-content .modal-header{border:0}.dcWallet-balances{backdrop-filter:blur(4px);background-color:hsla(0,0%,100%,.12);border-radius:13px;border-bottom-left-radius:25px;border-bottom-right-radius:25px;max-width:310px;padding:3px 0 0}.dcWallet-balances .lessBot{margin-bottom:-20px}.dcWallet-balances .lessTop{margin-top:-28px}.dcWallet-balances .dcWallet-pivxBalance{font-size:38px}.dcWallet-balances .dcWallet-pivxTicker{font-size:17px}.dcWallet-balances .dcWallet-usdBalance{display:block;margin-top:-9px}.dcWallet-balances .dcWallet-usdValue{color:#cecece;font-size:13px}.dcWallet-activityLbl{display:block;font-size:20px;font-weight:700;margin-bottom:10px}.dcWallet-activity{backdrop-filter:blur(4px);background-color:hsla(0,0%,100%,.12);border-radius:10px;padding:14px 16px}.dcWallet-svgIconPurple{display:inline-block;margin-top:-20px;position:relative;top:6px}.dcWallet-svgIconPurple svg{fill:#f2e2ff;display:block;height:21px;margin:0;max-height:21px;width:auto}.dcWallet-warningMessage{background-color:hsla(0,0%,100%,.12);background:radial-gradient(45vw 80% at 90% 40%,rgb(223 185 255/5%),rgba(44,11,76,0) 95%),linear-gradient(52deg,rgba(43,11,76,0),#500f8300 60%,rgba(44,11,76,0)),linear-gradient(35deg,rgba(153,114,192,.28),rgba(171,133,201,.15) 37%,rgba(80,32,126,.45) 0,rgba(102,45,147,.25) 76%,rgba(61,19,102,.22) 0,rgba(124,37,193,.34)),linear-gradient(90deg,rgba(44,11,76,.12),#500f8300 60%,#2c0b4c00);border-radius:10px;cursor:pointer;display:flex;line-height:18px;margin-bottom:15px;max-width:310px;padding:8px 12px;text-align:left}.dcWallet-warningMessage .shieldLogo{padding-right:12px;padding-top:1px}.dcWallet-warningMessage .shieldLogo .shieldBackground{background-color:rgba(0,0,0,.18);border-radius:10px;height:35px;width:35px}.dcWallet-warningMessage .lockUnlock{align-content:center;display:flex;flex-wrap:wrap}.dcWallet-topRightMenu{cursor:pointer;font-size:18px;transition:all .2s ease-in-out;width:27px}.dcWallet-topRightMenu .btn-group{margin-right:6px;margin-top:8px}.dcWallet-topRightMenu:hover{color:#dcdcdc}.dcWallet-topRightMenu .dropdown-move{transform:translate3d(12px,26px,0)}.dcWallet-topRightMenu .dropdown-move .dropdown-menu{backdrop-filter:blur(5px);background-color:rgba(88,37,131,.95);border:1px solid #9552cb}.dcWallet-topRightMenu .dropdown-move .dropdown-menu .dropdown-item{color:#fff;transition:all .2s ease-in-out}.dcWallet-topRightMenu .dropdown-move .dropdown-menu .dropdown-item:hover{background-color:#ffffff1a}@media (max-width:768px){.modal-full{height:-webkit-fill-available}.modal-full .modal-content{height:100%}}.exportKeysModalColor{backdrop-filter:blur(5px);background-color:#410970c7;color:#fff}.exportKeysModalColor h3{color:#d5adff!important}.dcWallet-privateKeyDiv{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;width:100%}.dcWallet-privateKeyDiv img{width:110px}.dcWallet-privateKeyDiv code{background-color:#00000033;border-radius:12px;padding:10px 15px;text-align:center;transition:all .2s ease-in-out;width:85%}.dcWallet-privateKeyDiv .blurred{color:transparent;text-shadow:0 0 8px #e83e8c}.dcWallet-privateKeyDiv h3{margin-bottom:10px}.dcWallet-privateKeyDiv .span1{color:#b9b9b9;display:block;font-size:15px;font-weight:700;margin-bottom:2px}.dcWallet-privateKeyDiv .span2{-webkit-text-fill-color:transparent;background:-webkit-linear-gradient(0deg,#8b4dfa,#f51e72);-webkit-background-clip:text;display:block;font-size:15px;font-weight:700;margin-bottom:30px}.dcWallet-topLeftMenu{font-size:18px;transition:all .2s ease-in-out;width:27px}.textboxTransparency{background-color:hsla(0,0%,100%,.15);color:#fff;transition:all .2s ease-in-out}.textboxTransparency::placeholder{color:#d3d3d3}input{outline-color:#b4b4b4}.dcWallet-btn-left{border-radius:24px;border-bottom-right-radius:7px;border-top-left-radius:7px}.dcWallet-btn-left,.dcWallet-btn-right{background-color:#ffffff29;background-image:linear-gradient(183deg,#9621ff,#7d21ff);cursor:pointer;height:43px;margin-top:17px;padding-top:9px;width:100px}.dcWallet-btn-right{border-radius:24px;border-bottom-left-radius:7px;border-top-right-radius:7px}.blackBack{background-color:#000;height:100vh;left:0;opacity:.5;position:fixed;top:0;transition:all .15s ease-in-out;width:100vw;z-index:1040}.blackBackHide{opacity:0!important}.transferMenu{background-color:#5d2f83c9;border-top-left-radius:10px;border-top-right-radius:10px;bottom:0;left:15px;min-height:155px;position:fixed;transition:.4s;width:calc(100% - 30px);z-index:1050}@media (min-width:768px){.transferMenu{left:calc(50% - 155px)!important;width:310px!important}}.transferExit{position:absolute;right:15px}.transferAnimation{transform:translate3d(0,390px,0)}.transferMenu .transferHeader{display:flex;padding:9px 12px}.transferMenu .transferHeader .transferHeaderText{width:100%}.transferItem{cursor:pointer;display:flex;margin:9px 12px}.transferItem .transferIcon{margin-right:10px}.transferItem .transferText{font-size:15px;line-height:17px}.transferItem .transferText span{color:#dbdbdb;font-size:11px}.transferMenu .transferBody{font-size:15px;padding:9px 12px}.transferMenu .transferBody .feeButton{background-color:#ffffff00;border:1px solid #ffffff1f;border-radius:8px;cursor:pointer;font-size:13px;padding:5px 0;transition:all .125s ease-in-out}.transferMenu .transferBody .feeButtonSelected{background-color:#ffffff0f}.transferMenu .transferBody .pasteAddress i{cursor:pointer;transition:all .125s ease-in-out}.transferMenu .transferBody .pasteAddress i:hover{color:#9621ff9c}.abcd{backdrop-filter:blur(4px);background-color:hsla(0,0%,100%,.12);border-radius:10px;padding:14px 16px}.btn-group-input{border-bottom-right-radius:0;border-top-right-radius:0;-ms-flex:1 1 auto;flex:1 1 auto;margin-bottom:0;min-width:0;position:relative;width:1%}.input-group-text{background-color:#fff;border:0;border-bottom-right-radius:8px;border-top-right-radius:8px;font-size:13px}.cur-pointer{cursor:pointer}.stakingTx{color:#fff;font-size:14px}.stakingTx thead tr th{border-top:0;border-color:#ffffff5c}.stakingTx tbody tr td{border-top:1px solid #ffffff1f}.stakingTx tbody tr{transition:all .125s ease-in-out}.stakingTx tbody tr:hover{background-color:#ffffff1a}.badge-purple{background-color:#9552cf!important;border-radius:4px;padding:5px 7px 4px}.pr-10px{padding-right:10px!important}.table-mobile-scroll{display:block;overflow-x:auto;white-space:nowrap}@media (max-width:767.98px){.tx1{width:64px}.tx2{width:900px}.tx3{width:69px}.tx4{width:40px}}@media (min-width:767.98px){.tx1{width:190px}.tx2{width:900px}.txcode code{width:max-content}.tx3{width:900px}.tx4{width:300px}}.closeCross{color:#fff;font-size:20px}.dropdown{z-index:10}.scrollTable{display:flex;flex-flow:column;max-height:500px;overflow-y:scroll}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:#e7e7e7;border-radius:10px}::-webkit-scrollbar-thumb{background:#797979;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#696969}@media (min-width:768px){.max-w-600{max-width:600px}}.table-promo{max-height:0;transition:all .5s ease-in-out}select.form-control{border:1px solid hsla(0,0%,100%,.22)}select.form-control,select.form-control:focus{background-color:hsla(0,0%,100%,.18);color:#fff}select.form-control:focus{border:1px solid hsla(0,0%,100%,.4);box-shadow:0 0 0 .2rem hsla(0,0%,100%,.22)}select.form-control option{background-color:#734596}.settingsMenu{background-color:rgba(132,101,159,.14);border-radius:9px;list-style:none;margin-bottom:0;padding-left:0}.settingsMenu li{border-radius:9px;margin-top:1px;padding-bottom:9px;padding-left:11px;padding-top:9px;transition:all .125s ease-in-out}.settingsMenu li:hover{background-color:rgba(132,101,159,.35);color:#fff!important;cursor:pointer}.settingsMenu .active{background-color:rgba(132,101,159,.19);color:#d1b1ed!important}.settingsContent{background-color:rgba(132,101,159,.14);border-radius:9px;font-size:15px;padding:13px 17px 20px}.settingsContent .header-title{display:block;font-size:17px;font-weight:600;margin-bottom:12px}.settingsContent hr{background-color:rgba(132,101,159,.37);margin-left:-17px;margin-right:-17px;margin-top:11px}.custom-switch{padding-left:55px}.custom-switch .custom-control-label{padding-top:3px}.custom-switch .custom-control-label:before{border-radius:100px;height:22px;left:-55px;width:45px}.custom-switch .custom-control-label:after{height:18px;left:-53px;width:18px}.custom-switch .custom-control-input:checked~.custom-control-label:after{-webkit-transform:translateX(22px);transform:translateX(22px)}.custom-control-input:checked~.custom-control-label:before{background-color:#9169b5;border-color:#9169b5;color:#fff}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#9169b575}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem #9169b575}#analyticsDescriptor{margin-bottom:27px}#foot{z-index:200}.flipdown.flipdown__theme-dark{font-family:sans-serif;font-weight:700}.flipdown.flipdown__theme-dark .rotor-group-heading:before{color:#cac9d2;font-size:13px}.flipdown.flipdown__theme-dark .rotor-group:nth-child(n+2):nth-child(-n+3):after,.flipdown.flipdown__theme-dark .rotor-group:nth-child(n+2):nth-child(-n+3):before{background-color:#31125f}.flipdown.flipdown__theme-dark .rotor,.flipdown.flipdown__theme-dark .rotor-leaf-front,.flipdown.flipdown__theme-dark .rotor-top{background-color:#31125f;color:#fff}.flipdown.flipdown__theme-dark .rotor-bottom,.flipdown.flipdown__theme-dark .rotor-leaf-rear{background-color:#461989;color:#efefef}.flipdown.flipdown__theme-dark .rotor:after{border-top:1px solid #31125f}.flipdown{margin-top:7px;overflow:visible}.flipdown .rotor-group{float:left;padding-right:30px;position:relative}.flipdown .rotor-group:last-child{padding-right:0}.flipdown .rotor-group-heading:before{display:block;height:30px;line-height:30px;text-align:center}.flipdown .rotor-group:first-child .rotor-group-heading:before,.flipdown .rotor-group:nth-child(2) .rotor-group-heading:before,.flipdown .rotor-group:nth-child(3) .rotor-group-heading:before,.flipdown .rotor-group:nth-child(4) .rotor-group-heading:before{content:attr(data-before)}.flipdown .rotor-group:nth-child(n+2):nth-child(-n+3):before{border-radius:50%;bottom:20px;content:"";height:10px;left:85px;position:absolute;width:10px}.flipdown .rotor-group:nth-child(n+2):nth-child(-n+3):after{border-radius:50%;bottom:35px;content:"";height:10px;left:85px;position:absolute;width:10px}.flipdown .rotor{border-radius:4px;float:left;font-size:48px;height:60px;margin:0 5px 0 0;perspective:200px;position:relative;text-align:center;width:35px}.flipdown .rotor:last-child{margin-right:0}.flipdown .rotor-bottom,.flipdown .rotor-top{height:30px;overflow:hidden;position:absolute;width:35px}.flipdown .rotor-leaf{height:60px;position:absolute;transform-style:preserve-3d;transition:transform 0s;width:35px;z-index:1}.flipdown .rotor-leaf.flipped{transform:rotateX(-180deg);transition:all .5s ease-in-out}.flipdown .rotor-leaf-front,.flipdown .rotor-leaf-rear{backface-visibility:hidden;-webkit-backface-visibility:hidden;height:30px;margin:0;overflow:hidden;position:absolute;transform:rotateX(0deg);width:35px}.flipdown .rotor-leaf-front{border-radius:4px 4px 0 0;line-height:60px}.flipdown .rotor-leaf-rear{border-radius:0 0 4px 4px;line-height:0px;transform:rotateX(-180deg)}.flipdown .rotor-top{border-radius:4px 4px 0 0;line-height:60px}.flipdown .rotor-bottom{border-radius:0 0 4px 4px;bottom:0;line-height:0px}.flipdown .rotor:after{border-radius:0 0 4px 4px;bottom:0;content:"";height:30px;left:0;position:absolute;width:35px;z-index:2}@media (max-width:550px){.flipdown{height:70px;width:312px}.flipdown .rotor{font-size:2.2rem;margin-right:3px}.flipdown .rotor,.flipdown .rotor-bottom,.flipdown .rotor-leaf,.flipdown .rotor-leaf-front,.flipdown .rotor-leaf-rear,.flipdown .rotor-top,.flipdown .rotor:after{width:30px}.flipdown .rotor-group{padding-right:20px}.flipdown .rotor-group:last-child{padding-right:0}.flipdown .rotor-group-heading:before{font-size:.8rem;height:20px;line-height:20px}.flipdown .rotor-group:nth-child(n+2):nth-child(-n+3):after,.flipdown .rotor-group:nth-child(n+2):nth-child(-n+3):before{left:69px}.flipdown .rotor-group:nth-child(n+2):nth-child(-n+3):before{bottom:13px;height:8px;width:8px}.flipdown .rotor-group:nth-child(n+2):nth-child(-n+3):after{bottom:29px;height:8px;width:8px}.flipdown .rotor-leaf-front,.flipdown .rotor-top{line-height:50px}.flipdown .rotor,.flipdown .rotor-leaf{height:50px}.flipdown .rotor-bottom,.flipdown .rotor-leaf-front,.flipdown .rotor-leaf-rear,.flipdown .rotor-top,.flipdown .rotor:after{height:25px}}.governLink:hover{cursor:pointer;text-decoration:underline!important}.governInstallments{color:#d1d1d1;display:block;font-size:13px;line-height:17px}.governMarked{color:#9d57ff;font-weight:700}.governValues{display:block;line-height:18px;margin-bottom:8px}.governFiatSize{font-size:12px}.governLinkIco{color:#bdbdbd;font-size:11px;margin-left:3px}.governBudgetCard{font-size:15px}.governBudgetCard,.governPayoutTime{align-items:center;display:flex;flex-direction:column;font-weight:700;justify-content:center}.governTable thead tr td{background-color:#00000024;border-top:0;font-size:13px}.governTable .btlr-7p{border-top-left-radius:7px}.governTable .btrr-7p{border-top-right-radius:7px}.governTable .bblr-7p{border-bottom-left-radius:7px}.governTable .bbrr-7p{border-bottom-right-radius:7px}.governTable tbody tr td{border-top:1px solid #a7a7a72b}.governTable tbody tr:nth-child(2n),.governTable tbody tr:nth-child(4n-1){background-color:#0000000f!important}.governTable tbody tr{transition:all .125s ease-in-out}.governTable tbody tr:hover{background-color:#ffffff0a!important}.votesYes{color:#5bd376}.votesNo{color:#df4b6c}.governTable .votesBg{background-color:#00000021;border-radius:5px;padding:3px 6px}.governTable .governStatusCol{background-color:#00000017}.governTable .governStatusCol .governArrow{background-color:#00000045;border-radius:50%;height:25px;left:-11px;margin-top:-49px;position:absolute;width:25px}.governTable .governStatusCol .governArrow i{position:relative;top:1px}.governMobDot{background-color:#8d60e6;border-radius:50%;display:inline-block;height:11px;margin-left:17px;margin-right:6px;width:11px}.governHr{border-top:1px solid #a7a7a72b}.governAdd{height:31px;margin-top:6px;padding:7px 10px;position:absolute;right:0;width:31px}.fs-13{font-size:13px}.fw-600{font-weight:600}@media (min-width:992px){.for-mobile{display:none!important}}@media (max-width:992px){.for-desktop{display:none!important}.governPayoutTime{padding-top:26px}}.notifyWrapper{align-items:stretch;background-color:#320044;border:1px solid #9f00f9;border-radius:5px;cursor:pointer;display:inline-flex;margin-bottom:15px;opacity:1;opacity:0;transition:all .25s ease-in-out;z-index:999999}.notifyWrapper .notifyIcon{align-items:center;border-bottom-left-radius:5px;border-top-left-radius:5px;display:flex;margin-bottom:-1px;margin-left:-1px;margin-top:-1px;padding:20px 11px}.notifyWrapper .notify-warning{background-color:#630808;border-bottom:1px solid red;border-left:1px solid red;border-top:1px solid red}.notifyWrapper .notify-info{background-color:#084363;border-bottom:1px solid #0095ff;border-left:1px solid #0095ff;border-top:1px solid #0095ff}.notifyWrapper .notify-success{background-color:#1c6308;border-bottom:1px solid #1aff00;border-left:1px solid #1aff00;border-top:1px solid #1aff00}.notifyWrapper .notifyText{padding:14px 17px 14px 11px}.sliderStyle .arrow{display:none}.tooltip.sliderStyle{top:-10px!important}.sliderStyle .tooltip-inner{background-color:#ffffffb3;border-radius:25%;color:#000;font-weight:500;height:30px;width:30px}.slider{-webkit-appearance:none;background:hsla(0,0%,100%,.22);border-color:hsla(0,0%,100%,0);border-radius:7.5px;height:15px;opacity:.7;outline:none;-webkit-transition:.2s;transition:opacity .2s}.slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#b988e1;border-radius:50%;cursor:pointer;height:25px;width:25px}.slider::-moz-range-thumb{background:#b988e1;border-radius:50%;cursor:pointer;height:25px;width:25px}.sliderContainer{padding-left:12px;padding-right:12px;position:relative;width:100%}.slider{width:100%}@media (min-width:768px){.sliderDisplay{display:none}.max-w-450{max-width:450px}}.contactsList .contactItem{transition:all .25s ease-in-out}.contactsList .contactItem:hover{background-color:#0000001c!important}.contactsList .contactItem:nth-child(odd){background-color:#00000017}.contactsList .contactItem:nth-child(2n){background-color:#00000033}.contactsList .addContact .contactAddr input,.contactsList .addContact .contactName input,.contactsList .addContactBtn,.contactsList .qrContactBtn{background-color:#f2f2f233;border:1px solid #f2f2f224;color:#fff}.contactsList .addContact .contactAddr input::placeholder,.contactsList .addContact .contactName input::placeholder{color:#ddd}.contactsList .addContact .contactName input{border-bottom-right-radius:0;border-top-right-radius:0}.contactsList .addContact .contactAddr input{border-left:none;border-radius:0;border-right:none}.contactsList .addContactBtn{border-radius:0;border-right:none}.contactsList .addContactBtn,.contactsList .qrContactBtn{align-items:center;cursor:pointer;display:flex;font-weight:700;height:43px;padding:0 10px;transition:all .125s ease-in-out;width:fit-content}.contactsList .qrContactBtn{border-radius:7px;border-bottom-left-radius:0;border-top-left-radius:0}.contactsList .addContactBtn:hover,.contactsList .qrContactBtn:hover{background-color:#f2f2f24d}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:100;src:url(27998569b81a20746cf2.woff2) format("woff2"),url(56e0fc273d981655cc14.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:100;src:url(c86852180ac4b7a6ed59.woff2) format("woff2"),url(56e0fc273d981655cc14.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:100;src:url(5ed8791b8c9f4f2080cd.woff2) format("woff2"),url(56e0fc273d981655cc14.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:100;src:url(a71ddaa36e5629f98995.woff2) format("woff2"),url(56e0fc273d981655cc14.woff) format("woff");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:100;src:url(9cf8cf64790df859f528.woff2) format("woff2"),url(56e0fc273d981655cc14.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:100;src:url(c359bb76c53aab22d515.woff2) format("woff2"),url(8e1a9dd3df3d1d8624b4.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:100;src:url(9c8f46673c190d0cf2a5.woff2) format("woff2"),url(8e1a9dd3df3d1d8624b4.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:100;src:url(6fcf88d2df89c4b98588.woff2) format("woff2"),url(8e1a9dd3df3d1d8624b4.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:100;src:url(b58a4aedc4a07d1e8756.woff2) format("woff2"),url(8e1a9dd3df3d1d8624b4.woff) format("woff");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:100;src:url(168ed41f3a9a2ccc82e0.woff2) format("woff2"),url(8e1a9dd3df3d1d8624b4.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:200;src:url(629889be0dd868db61bf.woff2) format("woff2"),url(148509ae63c7112ce456.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:200;src:url(5aea48d147db169be57b.woff2) format("woff2"),url(148509ae63c7112ce456.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:200;src:url(53a7cc25b682af41f112.woff2) format("woff2"),url(148509ae63c7112ce456.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:200;src:url(2c66dd0a8c4ccb43c561.woff2) format("woff2"),url(148509ae63c7112ce456.woff) format("woff");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:200;src:url(4c484a7aa358bf3b2303.woff2) format("woff2"),url(148509ae63c7112ce456.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:200;src:url(a64d7848f30887c44880.woff2) format("woff2"),url(559047c13f0284d6133e.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:200;src:url(54e1baae78c8f888cc3a.woff2) format("woff2"),url(559047c13f0284d6133e.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:200;src:url(b401bba51085677f5eee.woff2) format("woff2"),url(559047c13f0284d6133e.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:200;src:url(fe748aafb2b26f77a8a7.woff2) format("woff2"),url(559047c13f0284d6133e.woff) format("woff");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:200;src:url(3ebf4198ade6d0eaab1e.woff2) format("woff2"),url(559047c13f0284d6133e.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:300;src:url(cf707a42896b30180f0a.woff2) format("woff2"),url(633e0c487de58429940b.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:300;src:url(de3cdfbab4c8ba298c96.woff2) format("woff2"),url(633e0c487de58429940b.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:300;src:url(1e6e5a7e763650cce1fe.woff2) format("woff2"),url(633e0c487de58429940b.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:300;src:url(592ab0c0119b0fa04bad.woff2) format("woff2"),url(633e0c487de58429940b.woff) format("woff");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:300;src:url(00e3a55fbf617671d0e8.woff2) format("woff2"),url(633e0c487de58429940b.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:300;src:url(6091a5d41e290c8af528.woff2) format("woff2"),url(cb25782d576cc4b35601.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:300;src:url(8a381d078cd679f5a017.woff2) format("woff2"),url(cb25782d576cc4b35601.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:300;src:url(260b5062c37e2f23cb52.woff2) format("woff2"),url(cb25782d576cc4b35601.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:300;src:url(7f5dee6c782fd4ff0e9c.woff2) format("woff2"),url(cb25782d576cc4b35601.woff) format("woff");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:300;src:url(0cc3e06704117dcfc367.woff2) format("woff2"),url(cb25782d576cc4b35601.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:400;src:url(0289d4b194cd4d018fcf.woff2) format("woff2"),url(34a6726ff4d909a17b08.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:400;src:url(ba4c0e505f18e8ddf91a.woff2) format("woff2"),url(34a6726ff4d909a17b08.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:400;src:url(a01c234a9a7ef8ea3532.woff2) format("woff2"),url(34a6726ff4d909a17b08.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:400;src:url(27878f4d618fa6e9797f.woff2) format("woff2"),url(34a6726ff4d909a17b08.woff) format("woff");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:400;src:url(254f9287f488a9ca67f4.woff2) format("woff2"),url(34a6726ff4d909a17b08.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:500;src:url(24afad584092edad40a1.woff2) format("woff2"),url(42f2c2a6c45059a714b8.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:500;src:url(0c7ca7c8d7721ce49572.woff2) format("woff2"),url(42f2c2a6c45059a714b8.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:500;src:url(c32e860515e3eba5ffdc.woff2) format("woff2"),url(42f2c2a6c45059a714b8.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:500;src:url(60b588ab00709260d7c9.woff2) format("woff2"),url(42f2c2a6c45059a714b8.woff) format("woff");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:500;src:url(51b6167887dc3cd01cf6.woff2) format("woff2"),url(42f2c2a6c45059a714b8.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(55f256ccdce4bc180e81.woff2) format("woff2"),url(124bdbbc44b5aae423df.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(b62b244b7a2132b30f78.woff2) format("woff2"),url(124bdbbc44b5aae423df.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(0f3d20baf3dff383f36b.woff2) format("woff2"),url(124bdbbc44b5aae423df.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(55783c8fab145f4cf828.woff2) format("woff2"),url(124bdbbc44b5aae423df.woff) format("woff");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(38a674fae449557fef97.woff2) format("woff2"),url(124bdbbc44b5aae423df.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:600;src:url(bc92575d9ddbf605f1d3.woff2) format("woff2"),url(efbb2f5be07bd083c9f3.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:600;src:url(68ad2848ff35d1c0b498.woff2) format("woff2"),url(efbb2f5be07bd083c9f3.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:600;src:url(e5032bde61bf0b5d2a5a.woff2) format("woff2"),url(efbb2f5be07bd083c9f3.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:600;src:url(6d4247a3ac739e0c0e04.woff2) format("woff2"),url(efbb2f5be07bd083c9f3.woff) format("woff");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:600;src:url(f9b917e1802b7cd4c052.woff2) format("woff2"),url(efbb2f5be07bd083c9f3.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(7f425c0c93b84e24ba81.woff2) format("woff2"),url(3e143051a8039d6b6e99.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(4375539f9fe1079b0147.woff2) format("woff2"),url(3e143051a8039d6b6e99.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(702a2b926210a7b44461.woff2) format("woff2"),url(3e143051a8039d6b6e99.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(c1ee6391abae116fa667.woff2) format("woff2"),url(3e143051a8039d6b6e99.woff) format("woff");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(5d6df38dd70f631c488b.woff2) format("woff2"),url(3e143051a8039d6b6e99.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:700;src:url(d6d90c6ab8cf9930d75f.woff2) format("woff2"),url(4bb1280291f08a525e7f.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:700;src:url(098bcd6be203952a9580.woff2) format("woff2"),url(4bb1280291f08a525e7f.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:700;src:url(351c896b7d6d56c4dd73.woff2) format("woff2"),url(4bb1280291f08a525e7f.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:700;src:url(725c15cca3de8225f6f1.woff2) format("woff2"),url(4bb1280291f08a525e7f.woff) format("woff");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:700;src:url(c1a0fe30f871ee0a4360.woff2) format("woff2"),url(4bb1280291f08a525e7f.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(a113ef18975312602ee1.woff2) format("woff2"),url(168d5b114e5a6d216802.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(2a599b68747a45fad239.woff2) format("woff2"),url(168d5b114e5a6d216802.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(810d24ff481f2abee5c1.woff2) format("woff2"),url(168d5b114e5a6d216802.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(ed2b8a3421aea40bea12.woff2) format("woff2"),url(168d5b114e5a6d216802.woff) format("woff");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(56c09b9a46af6a54eeb3.woff2) format("woff2"),url(168d5b114e5a6d216802.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:800;src:url(15c1cb3502677851c5d9.woff2) format("woff2"),url(e1992bf2fe453f84e620.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:800;src:url(e942ef51e18d5c461671.woff2) format("woff2"),url(e1992bf2fe453f84e620.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:800;src:url(737cba91555de151cbe2.woff2) format("woff2"),url(e1992bf2fe453f84e620.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:800;src:url(139eea3d284ec604a7b5.woff2) format("woff2"),url(e1992bf2fe453f84e620.woff) format("woff");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:800;src:url(f5bc3262f406062ad4b6.woff2) format("woff2"),url(e1992bf2fe453f84e620.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:800;src:url(10b01ab29a6a21c3f049.woff2) format("woff2"),url(72fb25071956ef0f805d.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:800;src:url(2cf61b4c0dca2091552b.woff2) format("woff2"),url(72fb25071956ef0f805d.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:800;src:url(3de218788a2b8c7b9d93.woff2) format("woff2"),url(72fb25071956ef0f805d.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:800;src:url(5ad97e326368799b3090.woff2) format("woff2"),url(72fb25071956ef0f805d.woff) format("woff");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:800;src:url(1d6a43e98bd10cc3f86d.woff2) format("woff2"),url(72fb25071956ef0f805d.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:900;src:url(3150bbc236a381b921ec.woff2) format("woff2"),url(3eb0ef2d15133a54747c.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:900;src:url(b410b92c27fe847392dd.woff2) format("woff2"),url(3eb0ef2d15133a54747c.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:900;src:url(884427e759e80630df60.woff2) format("woff2"),url(3eb0ef2d15133a54747c.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:900;src:url(b26412326d89fba48df1.woff2) format("woff2"),url(3eb0ef2d15133a54747c.woff) format("woff");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:900;src:url(76082cfc7d10d8361406.woff2) format("woff2"),url(3eb0ef2d15133a54747c.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:900;src:url(c8055647630424261893.woff2) format("woff2"),url(c12aacf45bd513b1ddc8.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:900;src:url(7950a5546709115a713d.woff2) format("woff2"),url(c12aacf45bd513b1ddc8.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:900;src:url(82410d13778f770e4358.woff2) format("woff2"),url(c12aacf45bd513b1ddc8.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:900;src:url(bebe3a92b87fb76666af.woff2) format("woff2"),url(c12aacf45bd513b1ddc8.woff) format("woff");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:900;src:url(0224a085141ad2d60479.woff2) format("woff2"),url(c12aacf45bd513b1ddc8.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:100;src:url(c86852180ac4b7a6ed59.woff2) format("woff2"),url(849954c14e208edbfdc6.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:200;src:url(5aea48d147db169be57b.woff2) format("woff2"),url(1086f8ddbc9214a64500.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:300;src:url(de3cdfbab4c8ba298c96.woff2) format("woff2"),url(6824465878b1c26bdb3e.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:400;src:url(ba4c0e505f18e8ddf91a.woff2) format("woff2"),url(db65557bfe9b0e6e2feb.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:500;src:url(0c7ca7c8d7721ce49572.woff2) format("woff2"),url(be46a58455ac26aae1be.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:600;src:url(68ad2848ff35d1c0b498.woff2) format("woff2"),url(206dc2381dac4c698dc5.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:700;src:url(098bcd6be203952a9580.woff2) format("woff2"),url(c146c245c0bfd38de5a4.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:800;src:url(e942ef51e18d5c461671.woff2) format("woff2"),url(e7059dcb441a1f09aaa3.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:900;src:url(b410b92c27fe847392dd.woff2) format("woff2"),url(b1c2eb8a279272055039.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:100;src:url(27998569b81a20746cf2.woff2) format("woff2"),url(d23be76ae6d71c29a722.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:200;src:url(629889be0dd868db61bf.woff2) format("woff2"),url(cc1c11d92326ee3fd559.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:300;src:url(cf707a42896b30180f0a.woff2) format("woff2"),url(7a6dcc2accd99a36e13a.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:400;src:url(0289d4b194cd4d018fcf.woff2) format("woff2"),url(4980d4b8e3b9f3ee0fc1.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:500;src:url(24afad584092edad40a1.woff2) format("woff2"),url(f7d2a38005b76d0f4c56.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:600;src:url(bc92575d9ddbf605f1d3.woff2) format("woff2"),url(0f2d034a9225ed8d68c3.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:700;src:url(d6d90c6ab8cf9930d75f.woff2) format("woff2"),url(aad724ec8d0c2aa33612.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:800;src:url(15c1cb3502677851c5d9.woff2) format("woff2"),url(0c8fc4673ba1e6192d0c.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:900;src:url(3150bbc236a381b921ec.woff2) format("woff2"),url(c97bb8aab0f2f1d3ad30.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:100;src:url(c359bb76c53aab22d515.woff2) format("woff2"),url(6702562e6a0a03c51b79.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:200;src:url(a64d7848f30887c44880.woff2) format("woff2"),url(d2d3c40afd1a67406590.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:300;src:url(6091a5d41e290c8af528.woff2) format("woff2"),url(4a407e7c9e95257f6b32.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:400;src:url(bbf9e820a2563aac0d8b.woff2) format("woff2"),url(6c3bf9a0af0d39b5e97b.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(55f256ccdce4bc180e81.woff2) format("woff2"),url(8cfdd5a43122c65c8daa.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(7f425c0c93b84e24ba81.woff2) format("woff2"),url(dd68939be2f24d0a3b01.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(a113ef18975312602ee1.woff2) format("woff2"),url(c4bf96bf6b720a470659.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:800;src:url(10b01ab29a6a21c3f049.woff2) format("woff2"),url(5346d1dddfba8bf132e3.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:900;src:url(c8055647630424261893.woff2) format("woff2"),url(927401ec79b4a67e56d6.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:100;src:url(9c8f46673c190d0cf2a5.woff2) format("woff2"),url(77c1ed271750e7fbe81f.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:200;src:url(54e1baae78c8f888cc3a.woff2) format("woff2"),url(9005bb91d9c7e212471e.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:300;src:url(8a381d078cd679f5a017.woff2) format("woff2"),url(5449a472689940c31677.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:400;src:url(e5c5c19c23e370a342c8.woff2) format("woff2"),url(275156bc88fb38e6094d.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(b62b244b7a2132b30f78.woff2) format("woff2"),url(f5df14caad6129be5955.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(4375539f9fe1079b0147.woff2) format("woff2"),url(4edd74c91c8986a260a8.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(2a599b68747a45fad239.woff2) format("woff2"),url(5730e71aefae2c2f6a30.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:800;src:url(2cf61b4c0dca2091552b.woff2) format("woff2"),url(b73809da141159c1194b.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:900;src:url(7950a5546709115a713d.woff2) format("woff2"),url(dae70fc1490619fcb41f.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:400;src:url(bbf9e820a2563aac0d8b.woff2) format("woff2"),url(327fab0afc997a2d9b16.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:400;src:url(e5c5c19c23e370a342c8.woff2) format("woff2"),url(327fab0afc997a2d9b16.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:400;src:url(8f3f4c99eb0eeb5990f1.woff2) format("woff2"),url(327fab0afc997a2d9b16.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:400;src:url(0204ec08a4b574088f02.woff2) format("woff2"),url(327fab0afc997a2d9b16.woff) format("woff");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:400;src:url(acb6629fe45c43ad5d8b.woff2) format("woff2"),url(327fab0afc997a2d9b16.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:100;src:url(9cf8cf64790df859f528.woff2) format("woff2"),url(6a0760f91631eeec2cb6.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:200;src:url(4c484a7aa358bf3b2303.woff2) format("woff2"),url(a4fcc415895cbff7bceb.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:300;src:url(00e3a55fbf617671d0e8.woff2) format("woff2"),url(a4c1ee12652e484e7e51.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:400;src:url(254f9287f488a9ca67f4.woff2) format("woff2"),url(cf8a0bcaff094377bccb.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:500;src:url(51b6167887dc3cd01cf6.woff2) format("woff2"),url(54fde1337614e2adc532.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:600;src:url(f9b917e1802b7cd4c052.woff2) format("woff2"),url(46c1ab29d01c6b8c9b50.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:700;src:url(c1a0fe30f871ee0a4360.woff2) format("woff2"),url(1cb90845622a65b0ff9b.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:800;src:url(f5bc3262f406062ad4b6.woff2) format("woff2"),url(fae096afdb6d87a466c2.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:900;src:url(76082cfc7d10d8361406.woff2) format("woff2"),url(300c098ceccf4e59e315.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:100;src:url(a71ddaa36e5629f98995.woff2) format("woff2"),url(49d308587a81444dbbc7.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:200;src:url(2c66dd0a8c4ccb43c561.woff2) format("woff2"),url(d8c32ef4a32209726d88.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:300;src:url(592ab0c0119b0fa04bad.woff2) format("woff2"),url(afc2938efbab8dfc5eee.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:400;src:url(27878f4d618fa6e9797f.woff2) format("woff2"),url(80cff074ea166c8f3b75.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:500;src:url(60b588ab00709260d7c9.woff2) format("woff2"),url(542341b28217dbe266ec.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:600;src:url(6d4247a3ac739e0c0e04.woff2) format("woff2"),url(4277d4e09ccb64d6d6e4.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:700;src:url(725c15cca3de8225f6f1.woff2) format("woff2"),url(9d9b32f9e6101346f0a3.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:800;src:url(139eea3d284ec604a7b5.woff2) format("woff2"),url(a2e591df72e6db61203f.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:900;src:url(b26412326d89fba48df1.woff2) format("woff2"),url(c008ef69d04d64da5228.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:100;src:url(b58a4aedc4a07d1e8756.woff2) format("woff2"),url(566dc743abc28b5792b7.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:200;src:url(fe748aafb2b26f77a8a7.woff2) format("woff2"),url(7b1c8c14657602659630.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:300;src:url(7f5dee6c782fd4ff0e9c.woff2) format("woff2"),url(4fe16cb4a32fefd09a71.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:400;src:url(0204ec08a4b574088f02.woff2) format("woff2"),url(c9d988cae9be266b5ef1.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(55783c8fab145f4cf828.woff2) format("woff2"),url(0a95025fa2b6e76ac417.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(c1ee6391abae116fa667.woff2) format("woff2"),url(e160daa84a7652d079ca.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(ed2b8a3421aea40bea12.woff2) format("woff2"),url(3a4e5abb7e41e6a396cb.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:800;src:url(5ad97e326368799b3090.woff2) format("woff2"),url(a5c0141aee5832354351.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:900;src:url(bebe3a92b87fb76666af.woff2) format("woff2"),url(4c24850c1a55208bcefc.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:100;src:url(168ed41f3a9a2ccc82e0.woff2) format("woff2"),url(227ba1a79db09d612863.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:200;src:url(3ebf4198ade6d0eaab1e.woff2) format("woff2"),url(ff1e70d7ba01db85201b.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:300;src:url(0cc3e06704117dcfc367.woff2) format("woff2"),url(546a8d3d3ae778117481.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:400;src:url(acb6629fe45c43ad5d8b.woff2) format("woff2"),url(281179d375517d9c131b.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(38a674fae449557fef97.woff2) format("woff2"),url(62a04d3d3d6d38ba2a92.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(5d6df38dd70f631c488b.woff2) format("woff2"),url(e5f115311730acb7c305.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(56c09b9a46af6a54eeb3.woff2) format("woff2"),url(fb5068a547276441355d.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:800;src:url(1d6a43e98bd10cc3f86d.woff2) format("woff2"),url(5d71387e7b31e17b93c7.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:900;src:url(0224a085141ad2d60479.woff2) format("woff2"),url(309923ab7ba30c01d1a7.woff) format("woff")}@font-face{font-display:swap;font-family:MontserratVariable;font-style:italic;font-weight:100 900;src:url(f086a65675a94b42e258.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:MontserratVariable;font-style:italic;font-weight:100 900;src:url(1a024583a0c3883932dd.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:MontserratVariable;font-style:italic;font-weight:100 900;src:url(6c4be5f2c0103aae5121.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:MontserratVariable;font-style:italic;font-weight:100 900;src:url(4724902c2612871e26cf.woff2) format("woff2");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:MontserratVariable;font-style:italic;font-weight:100 900;src:url(7df0568de4b0319d45c5.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:MontserratVariable;font-style:normal;font-weight:100 900;src:url(f41a9bc7688bda1e8450.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:MontserratVariable;font-style:normal;font-weight:100 900;src:url(639b3c91831427d83cd3.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:MontserratVariable;font-style:normal;font-weight:100 900;src:url(b66f2d18f66f15c3ac56.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:MontserratVariable;font-style:normal;font-weight:100 900;src:url(9f73369162c4382215d4.woff2) format("woff2");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:MontserratVariable;font-style:normal;font-weight:100 900;src:url(05f01253eba3626ef33d.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:100;src:url(5ed8791b8c9f4f2080cd.woff2) format("woff2"),url(4e33be81d6544c291663.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:200;src:url(53a7cc25b682af41f112.woff2) format("woff2"),url(f73a9ac17b3b631f330c.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:300;src:url(1e6e5a7e763650cce1fe.woff2) format("woff2"),url(b7af7c392162b21d6b13.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:400;src:url(a01c234a9a7ef8ea3532.woff2) format("woff2"),url(bda1beea83eac06cef2e.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:500;src:url(c32e860515e3eba5ffdc.woff2) format("woff2"),url(938ff44782dcdc5c4d93.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:600;src:url(e5032bde61bf0b5d2a5a.woff2) format("woff2"),url(fa2e49c40fb09cce0304.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:700;src:url(351c896b7d6d56c4dd73.woff2) format("woff2"),url(c69dbcc9618ec3530d82.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:800;src:url(737cba91555de151cbe2.woff2) format("woff2"),url(ab3afc95eb2f3f2f33c1.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:900;src:url(884427e759e80630df60.woff2) format("woff2"),url(bcf433901301a3a4b994.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:100;src:url(6fcf88d2df89c4b98588.woff2) format("woff2"),url(708daa31926d779eccd7.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:200;src:url(b401bba51085677f5eee.woff2) format("woff2"),url(c561d615ef89bf1b3a92.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:300;src:url(260b5062c37e2f23cb52.woff2) format("woff2"),url(62dcfe56329804461de5.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:400;src:url(8f3f4c99eb0eeb5990f1.woff2) format("woff2"),url(60b3795172c9d0e39d3e.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(0f3d20baf3dff383f36b.woff2) format("woff2"),url(3f6d2f99b8db6a567d93.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(702a2b926210a7b44461.woff2) format("woff2"),url(17ae4214edb06f860036.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(810d24ff481f2abee5c1.woff2) format("woff2"),url(1c5e39f909b1fac4ffe0.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:800;src:url(3de218788a2b8c7b9d93.woff2) format("woff2"),url(fafd66833bf97e1ef520.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:900;src:url(82410d13778f770e4358.woff2) format("woff2"),url(bea25575417bfceb0ee4.woff) format("woff")} + */.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-classic,.fa-regular,.fa-sharp,.fa-solid,.fab,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-classic,.fa-regular,.fa-solid,.far,.fas{font-family:Font Awesome\ 6 Free}.fa-brands,.fab{font-family:Font Awesome\ 6 Brands}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);line-height:inherit;position:absolute;text-align:center;width:var(--fa-li-width,2em)}.fa-border{border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);border-radius:var(--fa-border-radius,.1em);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-transition-delay:0s;transition-delay:0s;-webkit-transition-duration:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}24%,8%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}24%,8%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,none));transform:rotate(var(--fa-rotate-angle,none))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)}.fa-0:before{content:"\30"}.fa-1:before{content:"\31"}.fa-2:before{content:"\32"}.fa-3:before{content:"\33"}.fa-4:before{content:"\34"}.fa-5:before{content:"\35"}.fa-6:before{content:"\36"}.fa-7:before{content:"\37"}.fa-8:before{content:"\38"}.fa-9:before{content:"\39"}.fa-fill-drip:before{content:"\f576"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:"\f138"}.fa-at:before{content:"\40"}.fa-trash-alt:before,.fa-trash-can:before{content:"\f2ed"}.fa-text-height:before{content:"\f034"}.fa-user-times:before,.fa-user-xmark:before{content:"\f235"}.fa-stethoscope:before{content:"\f0f1"}.fa-comment-alt:before,.fa-message:before{content:"\f27a"}.fa-info:before{content:"\f129"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-explosion:before{content:"\e4e9"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:"\f15c"}.fa-wave-square:before{content:"\f83e"}.fa-ring:before{content:"\f70b"}.fa-building-un:before{content:"\e4d9"}.fa-dice-three:before{content:"\f527"}.fa-calendar-alt:before,.fa-calendar-days:before{content:"\f073"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-volleyball-ball:before,.fa-volleyball:before{content:"\f45f"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-circle-minus:before,.fa-minus-circle:before{content:"\f056"}.fa-door-open:before{content:"\f52b"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:"\f2f5"}.fa-atom:before{content:"\f5d2"}.fa-soap:before{content:"\e06e"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:"\f86d"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:"\f539"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-pump-medical:before{content:"\e06a"}.fa-fingerprint:before{content:"\f577"}.fa-hand-point-right:before{content:"\f0a4"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:"\f689"}.fa-forward-step:before,.fa-step-forward:before{content:"\f051"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:"\f5b8"}.fa-flag-checkered:before{content:"\f11e"}.fa-football-ball:before,.fa-football:before{content:"\f44e"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-crop:before{content:"\f125"}.fa-angle-double-down:before,.fa-angles-down:before{content:"\f103"}.fa-users-rectangle:before{content:"\e594"}.fa-people-roof:before{content:"\e537"}.fa-people-line:before{content:"\e534"}.fa-beer-mug-empty:before,.fa-beer:before{content:"\f0fc"}.fa-diagram-predecessor:before{content:"\e477"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:"\f176"}.fa-burn:before,.fa-fire-flame-simple:before{content:"\f46a"}.fa-male:before,.fa-person:before{content:"\f183"}.fa-laptop:before{content:"\f109"}.fa-file-csv:before{content:"\f6dd"}.fa-menorah:before{content:"\f676"}.fa-truck-plane:before{content:"\e58f"}.fa-record-vinyl:before{content:"\f8d9"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:"\f587"}.fa-bong:before{content:"\f55c"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f2e5"}.fa-jar-wheat:before{content:"\e517"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:"\f674"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-circle-h:before,.fa-hospital-symbol:before{content:"\f47e"}.fa-pager:before{content:"\f815"}.fa-address-book:before,.fa-contact-book:before{content:"\f2b9"}.fa-strikethrough:before{content:"\f0cc"}.fa-k:before{content:"\4b"}.fa-landmark-flag:before{content:"\e51c"}.fa-pencil-alt:before,.fa-pencil:before{content:"\f303"}.fa-backward:before{content:"\f04a"}.fa-caret-right:before{content:"\f0da"}.fa-comments:before{content:"\f086"}.fa-file-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-code-pull-request:before{content:"\e13c"}.fa-clipboard-list:before{content:"\f46d"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:"\f4de"}.fa-user-check:before{content:"\f4fc"}.fa-vial-virus:before{content:"\e597"}.fa-sheet-plastic:before{content:"\e571"}.fa-blog:before{content:"\f781"}.fa-user-ninja:before{content:"\f504"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-scroll-torah:before,.fa-torah:before{content:"\f6a0"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:"\f458"}.fa-toggle-off:before{content:"\f204"}.fa-archive:before,.fa-box-archive:before{content:"\f187"}.fa-person-drowning:before{content:"\e545"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:"\f58a"}.fa-spray-can:before{content:"\f5bd"}.fa-truck-monster:before{content:"\f63b"}.fa-w:before{content:"\57"}.fa-earth-africa:before,.fa-globe-africa:before{content:"\f57c"}.fa-rainbow:before{content:"\f75b"}.fa-circle-notch:before{content:"\f1ce"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:"\f3fa"}.fa-paw:before{content:"\f1b0"}.fa-cloud:before{content:"\f0c2"}.fa-trowel-bricks:before{content:"\e58a"}.fa-face-flushed:before,.fa-flushed:before{content:"\f579"}.fa-hospital-user:before{content:"\f80d"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-binoculars:before{content:"\f1e5"}.fa-microphone-slash:before{content:"\f131"}.fa-box-tissue:before{content:"\e05b"}.fa-motorcycle:before{content:"\f21c"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:"\f562"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:"\f5ae"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:"\e068"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:"\f152"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-toilets-portable:before{content:"\e584"}.fa-hockey-puck:before{content:"\f453"}.fa-table:before{content:"\f0ce"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:"\f566"}.fa-users-slash:before{content:"\e073"}.fa-clover:before{content:"\e139"}.fa-mail-reply:before,.fa-reply:before{content:"\f3e5"}.fa-star-and-crescent:before{content:"\f699"}.fa-house-fire:before{content:"\e50c"}.fa-minus-square:before,.fa-square-minus:before{content:"\f146"}.fa-helicopter:before{content:"\f533"}.fa-compass:before{content:"\f14e"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:"\f150"}.fa-file-circle-question:before{content:"\e4ef"}.fa-laptop-code:before{content:"\f5fc"}.fa-swatchbook:before{content:"\f5c3"}.fa-prescription-bottle:before{content:"\f485"}.fa-bars:before,.fa-navicon:before{content:"\f0c9"}.fa-people-group:before{content:"\e533"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-heart-broken:before,.fa-heart-crack:before{content:"\f7a9"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:"\f360"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:"\f597"}.fa-film:before{content:"\f008"}.fa-ruler-horizontal:before{content:"\f547"}.fa-people-robbery:before{content:"\e536"}.fa-lightbulb:before{content:"\f0eb"}.fa-caret-left:before{content:"\f0d9"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:"\f06a"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:"\f08b"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:"\f13a"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:"\f13e"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:"\f58f"}.fa-sitemap:before{content:"\f0e8"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:"\f4b9"}.fa-memory:before{content:"\f538"}.fa-road-spikes:before{content:"\e568"}.fa-fire-burner:before{content:"\e4f1"}.fa-flag:before{content:"\f024"}.fa-hanukiah:before{content:"\f6e6"}.fa-feather:before{content:"\f52d"}.fa-volume-down:before,.fa-volume-low:before{content:"\f027"}.fa-comment-slash:before{content:"\f4b3"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-compress:before{content:"\f066"}.fa-wheat-alt:before,.fa-wheat-awn:before{content:"\e2cd"}.fa-ankh:before{content:"\f644"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-asterisk:before{content:"\2a"}.fa-check-square:before,.fa-square-check:before{content:"\f14a"}.fa-peseta-sign:before{content:"\e221"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-ghost:before{content:"\f6e2"}.fa-list-squares:before,.fa-list:before{content:"\f03a"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:"\f87b"}.fa-cart-plus:before{content:"\f217"}.fa-gamepad:before{content:"\f11b"}.fa-circle-dot:before,.fa-dot-circle:before{content:"\f192"}.fa-dizzy:before,.fa-face-dizzy:before{content:"\f567"}.fa-egg:before{content:"\f7fb"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-campground:before{content:"\f6bb"}.fa-folder-plus:before{content:"\f65e"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:"\f1e3"}.fa-paint-brush:before,.fa-paintbrush:before{content:"\f1fc"}.fa-lock:before{content:"\f023"}.fa-gas-pump:before{content:"\f52f"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:"\f593"}.fa-map-location:before,.fa-map-marked:before{content:"\f59f"}.fa-house-flood-water:before{content:"\e50e"}.fa-tree:before{content:"\f1bb"}.fa-bridge-lock:before{content:"\e4cc"}.fa-sack-dollar:before{content:"\f81d"}.fa-edit:before,.fa-pen-to-square:before{content:"\f044"}.fa-car-side:before{content:"\f5e4"}.fa-share-alt:before,.fa-share-nodes:before{content:"\f1e0"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-microscope:before{content:"\f610"}.fa-sink:before{content:"\e06d"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:"\f290"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-mitten:before{content:"\f7b5"}.fa-person-rays:before{content:"\e54d"}.fa-users:before{content:"\f0c0"}.fa-eye-slash:before{content:"\f070"}.fa-flask-vial:before{content:"\e4f3"}.fa-hand-paper:before,.fa-hand:before{content:"\f256"}.fa-om:before{content:"\f679"}.fa-worm:before{content:"\e599"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-plug:before{content:"\f1e6"}.fa-chevron-up:before{content:"\f077"}.fa-hand-spock:before{content:"\f259"}.fa-stopwatch:before{content:"\f2f2"}.fa-face-kiss:before,.fa-kiss:before{content:"\f596"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:"\f589"}.fa-chess-bishop:before{content:"\f43a"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:"\f58c"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-road-circle-check:before{content:"\e564"}.fa-dice-five:before{content:"\f523"}.fa-rss-square:before,.fa-square-rss:before{content:"\f143"}.fa-land-mine-on:before{content:"\e51b"}.fa-i-cursor:before{content:"\f246"}.fa-stamp:before{content:"\f5bf"}.fa-stairs:before{content:"\e289"}.fa-i:before{content:"\49"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:"\f6f2"}.fa-pills:before{content:"\f484"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:"\f581"}.fa-tooth:before{content:"\f5c9"}.fa-v:before{content:"\56"}.fa-bangladeshi-taka-sign:before{content:"\e2e6"}.fa-bicycle:before{content:"\f206"}.fa-rod-asclepius:before,.fa-rod-snake:before,.fa-staff-aesculapius:before,.fa-staff-snake:before{content:"\e579"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-ambulance:before,.fa-truck-medical:before{content:"\f0f9"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-snowman:before{content:"\f7d0"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-road-barrier:before{content:"\e562"}.fa-school:before{content:"\f549"}.fa-igloo:before{content:"\f7ae"}.fa-joint:before{content:"\f595"}.fa-angle-right:before{content:"\f105"}.fa-horse:before{content:"\f6f0"}.fa-q:before{content:"\51"}.fa-g:before{content:"\47"}.fa-notes-medical:before{content:"\f481"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-dong-sign:before{content:"\e169"}.fa-capsules:before{content:"\f46b"}.fa-poo-bolt:before,.fa-poo-storm:before{content:"\f75a"}.fa-face-frown-open:before,.fa-frown-open:before{content:"\f57a"}.fa-hand-point-up:before{content:"\f0a6"}.fa-money-bill:before{content:"\f0d6"}.fa-bookmark:before{content:"\f02e"}.fa-align-justify:before{content:"\f039"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-helmet-un:before{content:"\e503"}.fa-bullseye:before{content:"\f140"}.fa-bacon:before{content:"\f7e5"}.fa-hand-point-down:before{content:"\f0a7"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-folder-blank:before,.fa-folder:before{content:"\f07b"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:"\f478"}.fa-radiation:before{content:"\f7b9"}.fa-chart-simple:before{content:"\e473"}.fa-mars-stroke:before{content:"\f229"}.fa-vial:before{content:"\f492"}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:"\f624"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-e:before{content:"\45"}.fa-pen-alt:before,.fa-pen-clip:before{content:"\f305"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-user:before{content:"\f007"}.fa-school-circle-check:before{content:"\e56b"}.fa-dumpster:before{content:"\f793"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:"\f5b6"}.fa-building-user:before{content:"\e4da"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:"\f191"}.fa-highlighter:before{content:"\f591"}.fa-key:before{content:"\f084"}.fa-bullhorn:before{content:"\f0a1"}.fa-globe:before{content:"\f0ac"}.fa-synagogue:before{content:"\f69b"}.fa-person-half-dress:before{content:"\e548"}.fa-road-bridge:before{content:"\e563"}.fa-location-arrow:before{content:"\f124"}.fa-c:before{content:"\43"}.fa-tablet-button:before{content:"\f10a"}.fa-building-lock:before{content:"\e4d6"}.fa-pizza-slice:before{content:"\f818"}.fa-money-bill-wave:before{content:"\f53a"}.fa-area-chart:before,.fa-chart-area:before{content:"\f1fe"}.fa-house-flag:before{content:"\e50d"}.fa-person-circle-minus:before{content:"\e540"}.fa-ban:before,.fa-cancel:before{content:"\f05e"}.fa-camera-rotate:before{content:"\e0d8"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-star:before{content:"\f005"}.fa-repeat:before{content:"\f363"}.fa-cross:before{content:"\f654"}.fa-box:before{content:"\f466"}.fa-venus-mars:before{content:"\f228"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:"\f245"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:"\f31e"}.fa-charging-station:before{content:"\f5e7"}.fa-shapes:before,.fa-triangle-circle-square:before{content:"\f61f"}.fa-random:before,.fa-shuffle:before{content:"\f074"}.fa-person-running:before,.fa-running:before{content:"\f70c"}.fa-mobile-retro:before{content:"\e527"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-spider:before{content:"\f717"}.fa-hands-bound:before{content:"\e4f9"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-x-ray:before{content:"\f497"}.fa-spell-check:before{content:"\f891"}.fa-slash:before{content:"\f715"}.fa-computer-mouse:before,.fa-mouse:before{content:"\f8cc"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:"\f090"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:"\e070"}.fa-server:before{content:"\f233"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-shop-lock:before{content:"\e4a5"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-blender-phone:before{content:"\f6b6"}.fa-building-wheat:before{content:"\e4db"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:"\f2f6"}.fa-venus:before{content:"\f221"}.fa-passport:before{content:"\f5ab"}.fa-heart-pulse:before,.fa-heartbeat:before{content:"\f21e"}.fa-people-carry-box:before,.fa-people-carry:before{content:"\f4ce"}.fa-temperature-high:before{content:"\f769"}.fa-microchip:before{content:"\f2db"}.fa-crown:before{content:"\f521"}.fa-weight-hanging:before{content:"\f5cd"}.fa-xmarks-lines:before{content:"\e59a"}.fa-file-prescription:before{content:"\f572"}.fa-weight-scale:before,.fa-weight:before{content:"\f496"}.fa-user-friends:before,.fa-user-group:before{content:"\f500"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-chess-knight:before{content:"\f441"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:"\f59b"}.fa-wheelchair:before{content:"\f193"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:"\f0aa"}.fa-toggle-on:before{content:"\f205"}.fa-person-walking:before,.fa-walking:before{content:"\f554"}.fa-l:before{content:"\4c"}.fa-fire:before{content:"\f06d"}.fa-bed-pulse:before,.fa-procedures:before{content:"\f487"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:"\f197"}.fa-face-laugh:before,.fa-laugh:before{content:"\f599"}.fa-folder-open:before{content:"\f07c"}.fa-heart-circle-plus:before{content:"\e500"}.fa-code-fork:before{content:"\e13b"}.fa-city:before{content:"\f64f"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:"\f3c9"}.fa-pepper-hot:before{content:"\f816"}.fa-unlock:before{content:"\f09c"}.fa-colon-sign:before{content:"\e140"}.fa-headset:before{content:"\f590"}.fa-store-slash:before{content:"\e071"}.fa-road-circle-xmark:before{content:"\e566"}.fa-user-minus:before{content:"\f503"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:"\f22a"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:"\f79f"}.fa-clipboard:before{content:"\f328"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-file-arrow-up:before,.fa-file-upload:before{content:"\f574"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:"\f1eb"}.fa-bath:before,.fa-bathtub:before{content:"\f2cd"}.fa-underline:before{content:"\f0cd"}.fa-user-edit:before,.fa-user-pen:before{content:"\f4ff"}.fa-signature:before{content:"\f5b7"}.fa-stroopwafel:before{content:"\f551"}.fa-bold:before{content:"\f032"}.fa-anchor-lock:before{content:"\e4ad"}.fa-building-ngo:before{content:"\e4d7"}.fa-manat-sign:before{content:"\e1d5"}.fa-not-equal:before{content:"\f53e"}.fa-border-style:before,.fa-border-top-left:before{content:"\f853"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:"\f5a0"}.fa-jedi:before{content:"\f669"}.fa-poll:before,.fa-square-poll-vertical:before{content:"\f681"}.fa-mug-hot:before{content:"\f7b6"}.fa-battery-car:before,.fa-car-battery:before{content:"\f5df"}.fa-gift:before{content:"\f06b"}.fa-dice-two:before{content:"\f528"}.fa-chess-queen:before{content:"\f445"}.fa-glasses:before{content:"\f530"}.fa-chess-board:before{content:"\f43c"}.fa-building-circle-check:before{content:"\e4d2"}.fa-person-chalkboard:before{content:"\e53d"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:"\f22b"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:"\f255"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:"\f151"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-bar-chart:before,.fa-chart-bar:before{content:"\f080"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:"\e05e"}.fa-less-than-equal:before{content:"\f537"}.fa-train:before{content:"\f238"}.fa-eye-low-vision:before,.fa-low-vision:before{content:"\f2a8"}.fa-crow:before{content:"\f520"}.fa-sailboat:before{content:"\e445"}.fa-window-restore:before{content:"\f2d2"}.fa-plus-square:before,.fa-square-plus:before{content:"\f0fe"}.fa-torii-gate:before{content:"\f6a1"}.fa-frog:before{content:"\f52e"}.fa-bucket:before{content:"\e4cf"}.fa-image:before{content:"\f03e"}.fa-microphone:before{content:"\f130"}.fa-cow:before{content:"\f6c8"}.fa-caret-up:before{content:"\f0d8"}.fa-screwdriver:before{content:"\f54a"}.fa-folder-closed:before{content:"\e185"}.fa-house-tsunami:before{content:"\e515"}.fa-square-nfi:before{content:"\e576"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:"\f57b"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:"\f2ea"}.fa-columns:before,.fa-table-columns:before{content:"\f0db"}.fa-lemon:before{content:"\f094"}.fa-head-side-mask:before{content:"\e063"}.fa-handshake:before{content:"\f2b5"}.fa-gem:before{content:"\f3a5"}.fa-dolly-box:before,.fa-dolly:before{content:"\f472"}.fa-smoking:before{content:"\f48d"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:"\f78c"}.fa-monument:before{content:"\f5a6"}.fa-snowplow:before{content:"\f7d2"}.fa-angle-double-right:before,.fa-angles-right:before{content:"\f101"}.fa-cannabis:before{content:"\f55f"}.fa-circle-play:before,.fa-play-circle:before{content:"\f144"}.fa-tablets:before{content:"\f490"}.fa-ethernet:before{content:"\f796"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:"\f153"}.fa-chair:before{content:"\f6c0"}.fa-check-circle:before,.fa-circle-check:before{content:"\f058"}.fa-circle-stop:before,.fa-stop-circle:before{content:"\f28d"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:"\f568"}.fa-plate-wheat:before{content:"\e55a"}.fa-icicles:before{content:"\f7ad"}.fa-person-shelter:before{content:"\e54f"}.fa-neuter:before{content:"\f22c"}.fa-id-badge:before{content:"\f2c1"}.fa-marker:before{content:"\f5a1"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:"\f59a"}.fa-helicopter-symbol:before{content:"\e502"}.fa-universal-access:before{content:"\f29a"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:"\f139"}.fa-lari-sign:before{content:"\e1c8"}.fa-volcano:before{content:"\f770"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:"\f154"}.fa-viruses:before{content:"\e076"}.fa-square-person-confined:before{content:"\e577"}.fa-user-tie:before{content:"\f508"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:"\f175"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-certificate:before{content:"\f0a3"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-suitcase:before{content:"\f0f2"}.fa-person-skating:before,.fa-skating:before{content:"\f7c5"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:"\f662"}.fa-camera-retro:before{content:"\f083"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:"\f0ab"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:"\f56f"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:"\f14c"}.fa-box-open:before{content:"\f49e"}.fa-scroll:before{content:"\f70e"}.fa-spa:before{content:"\f5bb"}.fa-location-pin-lock:before{content:"\e51f"}.fa-pause:before{content:"\f04c"}.fa-hill-avalanche:before{content:"\e507"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-bomb:before{content:"\f1e2"}.fa-registered:before{content:"\f25d"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:"\f2bb"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-subscript:before{content:"\f12c"}.fa-diamond-turn-right:before,.fa-directions:before{content:"\f5eb"}.fa-burst:before{content:"\e4dc"}.fa-house-laptop:before,.fa-laptop-house:before{content:"\e066"}.fa-face-tired:before,.fa-tired:before{content:"\f5c8"}.fa-money-bills:before{content:"\e1f3"}.fa-smog:before{content:"\f75f"}.fa-crutch:before{content:"\f7f7"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:"\f0ee"}.fa-palette:before{content:"\f53f"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-vest:before{content:"\e085"}.fa-ferry:before{content:"\e4ea"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-seedling:before,.fa-sprout:before{content:"\f4d8"}.fa-arrows-alt-h:before,.fa-left-right:before{content:"\f337"}.fa-boxes-packing:before{content:"\e4c7"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:"\f0a8"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-bowl-food:before{content:"\e4c6"}.fa-candy-cane:before{content:"\f786"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-cloud-bolt:before,.fa-thunderstorm:before{content:"\f76c"}.fa-remove-format:before,.fa-text-slash:before{content:"\f87d"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:"\f4da"}.fa-file-word:before{content:"\f1c2"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:"\f07e"}.fa-house-lock:before{content:"\e510"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:"\f0ed"}.fa-children:before{content:"\e4e1"}.fa-blackboard:before,.fa-chalkboard:before{content:"\f51b"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:"\f4fa"}.fa-envelope-open:before{content:"\f2b6"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:"\e05f"}.fa-mattress-pillow:before{content:"\e525"}.fa-guarani-sign:before{content:"\e19a"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-fire-extinguisher:before{content:"\f134"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-greater-than-equal:before{content:"\f532"}.fa-shield-alt:before,.fa-shield-halved:before{content:"\f3ed"}.fa-atlas:before,.fa-book-atlas:before{content:"\f558"}.fa-virus:before{content:"\e074"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-layer-group:before{content:"\f5fd"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-archway:before{content:"\f557"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:"\f6f1"}.fa-file-archive:before,.fa-file-zipper:before{content:"\f1c6"}.fa-square:before{content:"\f0c8"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:"\f000"}.fa-couch:before{content:"\f4b8"}.fa-cedi-sign:before{content:"\e0df"}.fa-italic:before{content:"\f033"}.fa-church:before{content:"\f51d"}.fa-comments-dollar:before{content:"\f653"}.fa-democrat:before{content:"\f747"}.fa-z:before{content:"\5a"}.fa-person-skiing:before,.fa-skiing:before{content:"\f7c9"}.fa-road-lock:before{content:"\e567"}.fa-a:before{content:"\41"}.fa-temperature-arrow-down:before,.fa-temperature-down:before{content:"\e03f"}.fa-feather-alt:before,.fa-feather-pointed:before{content:"\f56b"}.fa-p:before{content:"\50"}.fa-snowflake:before{content:"\f2dc"}.fa-newspaper:before{content:"\f1ea"}.fa-ad:before,.fa-rectangle-ad:before{content:"\f641"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:"\f0a9"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-locust:before{content:"\e520"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:"\f0cb"}.fa-person-dress-burst:before{content:"\e544"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:"\f53d"}.fa-vector-square:before{content:"\f5cb"}.fa-bread-slice:before{content:"\f7ec"}.fa-language:before{content:"\f1ab"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:"\f598"}.fa-filter:before{content:"\f0b0"}.fa-question:before{content:"\3f"}.fa-file-signature:before{content:"\f573"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:"\f0b2"}.fa-house-chimney-user:before{content:"\e065"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-puzzle-piece:before{content:"\f12e"}.fa-money-check:before{content:"\f53c"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:"\f5c0"}.fa-code:before{content:"\f121"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:"\f7a0"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:"\f08e"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:"\f159"}.fa-virus-covid:before{content:"\e4a8"}.fa-austral-sign:before{content:"\e0a9"}.fa-f:before{content:"\46"}.fa-leaf:before{content:"\f06c"}.fa-road:before{content:"\f018"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-person-circle-plus:before{content:"\e541"}.fa-chart-pie:before,.fa-pie-chart:before{content:"\f200"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-sack-xmark:before{content:"\e56a"}.fa-file-excel:before{content:"\f1c3"}.fa-file-contract:before{content:"\f56c"}.fa-fish-fins:before{content:"\e4f2"}.fa-building-flag:before{content:"\e4d5"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:"\f582"}.fa-object-ungroup:before{content:"\f248"}.fa-poop:before{content:"\f619"}.fa-location-pin:before,.fa-map-marker:before{content:"\f041"}.fa-kaaba:before{content:"\f66b"}.fa-toilet-paper:before{content:"\f71e"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:"\f807"}.fa-eject:before{content:"\f052"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:"\f35a"}.fa-plane-circle-check:before{content:"\e555"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-object-group:before{content:"\f247"}.fa-chart-line:before,.fa-line-chart:before{content:"\f201"}.fa-mask-ventilator:before{content:"\e524"}.fa-arrow-right:before{content:"\f061"}.fa-map-signs:before,.fa-signs-post:before{content:"\f277"}.fa-cash-register:before{content:"\f788"}.fa-person-circle-question:before{content:"\e542"}.fa-h:before{content:"\48"}.fa-tarp:before{content:"\e57b"}.fa-screwdriver-wrench:before,.fa-tools:before{content:"\f7d9"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-heart:before{content:"\f004"}.fa-mars-and-venus:before{content:"\f224"}.fa-home-user:before,.fa-house-user:before{content:"\e1b0"}.fa-dumpster-fire:before{content:"\f794"}.fa-house-crack:before{content:"\e3b1"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:"\f561"}.fa-face-surprise:before,.fa-surprise:before{content:"\f5c2"}.fa-bottle-water:before{content:"\e4c5"}.fa-circle-pause:before,.fa-pause-circle:before{content:"\f28b"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-apple-alt:before,.fa-apple-whole:before{content:"\f5d1"}.fa-kitchen-set:before{content:"\e51a"}.fa-r:before{content:"\52"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-cube:before{content:"\f1b2"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-shield-dog:before{content:"\e573"}.fa-solar-panel:before{content:"\f5ba"}.fa-lock-open:before{content:"\f3c1"}.fa-elevator:before{content:"\e16d"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:"\f682"}.fa-circle:before{content:"\f111"}.fa-backward-fast:before,.fa-fast-backward:before{content:"\f049"}.fa-recycle:before{content:"\f1b8"}.fa-user-astronaut:before{content:"\f4fb"}.fa-plane-slash:before{content:"\e069"}.fa-trademark:before{content:"\f25c"}.fa-basketball-ball:before,.fa-basketball:before{content:"\f434"}.fa-satellite-dish:before{content:"\f7c0"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:"\f35b"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:"\f3cd"}.fa-volume-high:before,.fa-volume-up:before{content:"\f028"}.fa-users-rays:before{content:"\e593"}.fa-wallet:before{content:"\f555"}.fa-clipboard-check:before{content:"\f46c"}.fa-file-audio:before{content:"\f1c7"}.fa-burger:before,.fa-hamburger:before{content:"\f805"}.fa-wrench:before{content:"\f0ad"}.fa-bugs:before{content:"\e4d0"}.fa-rupee-sign:before,.fa-rupee:before{content:"\f156"}.fa-file-image:before{content:"\f1c5"}.fa-circle-question:before,.fa-question-circle:before{content:"\f059"}.fa-plane-departure:before{content:"\f5b0"}.fa-handshake-slash:before{content:"\e060"}.fa-book-bookmark:before{content:"\e0bb"}.fa-code-branch:before{content:"\f126"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-bridge:before{content:"\e4c8"}.fa-phone-alt:before,.fa-phone-flip:before{content:"\f879"}.fa-truck-front:before{content:"\e2b7"}.fa-cat:before{content:"\f6be"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-truck-field:before{content:"\e58d"}.fa-route:before{content:"\f4d7"}.fa-clipboard-question:before{content:"\e4e3"}.fa-panorama:before{content:"\e209"}.fa-comment-medical:before{content:"\f7f5"}.fa-teeth-open:before{content:"\f62f"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-tags:before{content:"\f02c"}.fa-wine-glass:before{content:"\f4e3"}.fa-fast-forward:before,.fa-forward-fast:before{content:"\f050"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:"\f5a4"}.fa-parking:before,.fa-square-parking:before{content:"\f540"}.fa-house-signal:before{content:"\e012"}.fa-bars-progress:before,.fa-tasks-alt:before{content:"\f828"}.fa-faucet-drip:before{content:"\e006"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:"\f474"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:"\f54d"}.fa-terminal:before{content:"\f120"}.fa-mobile-button:before{content:"\f10b"}.fa-house-medical-flag:before{content:"\e514"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:"\f291"}.fa-tape:before{content:"\f4db"}.fa-bus-alt:before,.fa-bus-simple:before{content:"\f55e"}.fa-eye:before{content:"\f06e"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:"\f5b3"}.fa-audio-description:before{content:"\f29e"}.fa-person-military-to-person:before{content:"\e54c"}.fa-file-shield:before{content:"\e4f0"}.fa-user-slash:before{content:"\f506"}.fa-pen:before{content:"\f304"}.fa-tower-observation:before{content:"\e586"}.fa-file-code:before{content:"\f1c9"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:"\f012"}.fa-bus:before{content:"\f207"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-home-lg:before,.fa-house-chimney:before{content:"\e3af"}.fa-window-maximize:before{content:"\f2d0"}.fa-face-frown:before,.fa-frown:before{content:"\f119"}.fa-prescription:before{content:"\f5b1"}.fa-shop:before,.fa-store-alt:before{content:"\f54f"}.fa-floppy-disk:before,.fa-save:before{content:"\f0c7"}.fa-vihara:before{content:"\f6a7"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:"\f515"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-comment-dots:before,.fa-commenting:before{content:"\f4ad"}.fa-plant-wilt:before{content:"\e5aa"}.fa-diamond:before{content:"\f219"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:"\f585"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:"\f4c0"}.fa-bacterium:before{content:"\e05a"}.fa-hand-pointer:before{content:"\f25a"}.fa-drum-steelpan:before{content:"\f56a"}.fa-hand-scissors:before{content:"\f257"}.fa-hands-praying:before,.fa-praying-hands:before{content:"\f684"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:"\f01e"}.fa-biohazard:before{content:"\f780"}.fa-location-crosshairs:before,.fa-location:before{content:"\f601"}.fa-mars-double:before{content:"\f227"}.fa-child-dress:before{content:"\e59c"}.fa-users-between-lines:before{content:"\e591"}.fa-lungs-virus:before{content:"\e067"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:"\f588"}.fa-phone:before{content:"\f095"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:"\f273"}.fa-child-reaching:before{content:"\e59d"}.fa-head-side-virus:before{content:"\e064"}.fa-user-cog:before,.fa-user-gear:before{content:"\f4fe"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-door-closed:before{content:"\f52a"}.fa-shield-virus:before{content:"\e06c"}.fa-dice-six:before{content:"\f526"}.fa-mosquito-net:before{content:"\e52c"}.fa-bridge-water:before{content:"\e4ce"}.fa-person-booth:before{content:"\f756"}.fa-text-width:before{content:"\f035"}.fa-hat-wizard:before{content:"\f6e8"}.fa-pen-fancy:before{content:"\f5ac"}.fa-digging:before,.fa-person-digging:before{content:"\f85e"}.fa-trash:before{content:"\f1f8"}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:"\f629"}.fa-book-medical:before{content:"\f7e6"}.fa-poo:before{content:"\f2fe"}.fa-quote-right-alt:before,.fa-quote-right:before{content:"\f10e"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:"\f553"}.fa-cubes:before{content:"\f1b3"}.fa-divide:before{content:"\f529"}.fa-tenge-sign:before,.fa-tenge:before{content:"\f7d7"}.fa-headphones:before{content:"\f025"}.fa-hands-holding:before{content:"\f4c2"}.fa-hands-clapping:before{content:"\e1a8"}.fa-republican:before{content:"\f75e"}.fa-arrow-left:before{content:"\f060"}.fa-person-circle-xmark:before{content:"\e543"}.fa-ruler:before{content:"\f545"}.fa-align-left:before{content:"\f036"}.fa-dice-d6:before{content:"\f6d1"}.fa-restroom:before{content:"\f7bd"}.fa-j:before{content:"\4a"}.fa-users-viewfinder:before{content:"\e595"}.fa-file-video:before{content:"\f1c8"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:"\f35d"}.fa-table-cells:before,.fa-th:before{content:"\f00a"}.fa-file-pdf:before{content:"\f1c1"}.fa-bible:before,.fa-book-bible:before{content:"\f647"}.fa-o:before{content:"\4f"}.fa-medkit:before,.fa-suitcase-medical:before{content:"\f0fa"}.fa-user-secret:before{content:"\f21b"}.fa-otter:before{content:"\f700"}.fa-female:before,.fa-person-dress:before{content:"\f182"}.fa-comment-dollar:before{content:"\f651"}.fa-briefcase-clock:before,.fa-business-time:before{content:"\f64a"}.fa-table-cells-large:before,.fa-th-large:before{content:"\f009"}.fa-book-tanakh:before,.fa-tanakh:before{content:"\f827"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-clipboard-user:before{content:"\f7f3"}.fa-child:before{content:"\f1ae"}.fa-lira-sign:before{content:"\f195"}.fa-satellite:before{content:"\f7bf"}.fa-plane-lock:before{content:"\e558"}.fa-tag:before{content:"\f02b"}.fa-comment:before{content:"\f075"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:"\f1fd"}.fa-envelope:before{content:"\f0e0"}.fa-angle-double-up:before,.fa-angles-up:before{content:"\f102"}.fa-paperclip:before{content:"\f0c6"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-ribbon:before{content:"\f4d6"}.fa-lungs:before{content:"\f604"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-border-none:before{content:"\f850"}.fa-circle-nodes:before{content:"\e4e2"}.fa-parachute-box:before{content:"\f4cd"}.fa-indent:before{content:"\f03c"}.fa-truck-field-un:before{content:"\e58e"}.fa-hourglass-empty:before,.fa-hourglass:before{content:"\f254"}.fa-mountain:before{content:"\f6fc"}.fa-user-doctor:before,.fa-user-md:before{content:"\f0f0"}.fa-circle-info:before,.fa-info-circle:before{content:"\f05a"}.fa-cloud-meatball:before{content:"\f73b"}.fa-camera-alt:before,.fa-camera:before{content:"\f030"}.fa-square-virus:before{content:"\e578"}.fa-meteor:before{content:"\f753"}.fa-car-on:before{content:"\e4dd"}.fa-sleigh:before{content:"\f7cc"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:"\f4c1"}.fa-water:before{content:"\f773"}.fa-calendar-check:before{content:"\f274"}.fa-braille:before{content:"\f2a1"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:"\f486"}.fa-landmark:before{content:"\f66f"}.fa-truck:before{content:"\f0d1"}.fa-crosshairs:before{content:"\f05b"}.fa-person-cane:before{content:"\e53c"}.fa-tent:before{content:"\e57d"}.fa-vest-patches:before{content:"\e086"}.fa-check-double:before{content:"\f560"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-cookie:before{content:"\f563"}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-hard-drive:before,.fa-hdd:before{content:"\f0a0"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:"\f586"}.fa-dumbbell:before{content:"\f44b"}.fa-list-alt:before,.fa-rectangle-list:before{content:"\f022"}.fa-tarp-droplet:before{content:"\e57c"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:"\f7ca"}.fa-calendar-plus:before{content:"\f271"}.fa-plane-arrival:before{content:"\f5af"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:"\f359"}.fa-subway:before,.fa-train-subway:before{content:"\f239"}.fa-chart-gantt:before{content:"\e0e4"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:"\e1bc"}.fa-crop-alt:before,.fa-crop-simple:before{content:"\f565"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:"\f3d1"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-dna:before{content:"\f471"}.fa-virus-slash:before{content:"\e075"}.fa-minus:before,.fa-subtract:before{content:"\f068"}.fa-chess:before{content:"\f439"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:"\f177"}.fa-plug-circle-check:before{content:"\e55c"}.fa-street-view:before{content:"\f21d"}.fa-franc-sign:before{content:"\e18f"}.fa-volume-off:before{content:"\f026"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-droplet-slash:before,.fa-tint-slash:before{content:"\f5c7"}.fa-mosque:before{content:"\f678"}.fa-mosquito:before{content:"\e52b"}.fa-star-of-david:before{content:"\f69a"}.fa-person-military-rifle:before{content:"\e54b"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:"\f07a"}.fa-vials:before{content:"\f493"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-place-of-worship:before{content:"\f67f"}.fa-grip-vertical:before{content:"\f58e"}.fa-arrow-turn-up:before,.fa-level-up:before{content:"\f148"}.fa-u:before{content:"\55"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:"\f698"}.fa-clock-four:before,.fa-clock:before{content:"\f017"}.fa-backward-step:before,.fa-step-backward:before{content:"\f048"}.fa-pallet:before{content:"\f482"}.fa-faucet:before{content:"\e005"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-s:before{content:"\53"}.fa-timeline:before{content:"\e29c"}.fa-keyboard:before{content:"\f11c"}.fa-caret-down:before{content:"\f0d7"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:"\f7f2"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-mobile-android-alt:before,.fa-mobile-screen:before{content:"\f3cf"}.fa-plane-up:before{content:"\e22d"}.fa-piggy-bank:before{content:"\f4d3"}.fa-battery-3:before,.fa-battery-half:before{content:"\f242"}.fa-mountain-city:before{content:"\e52e"}.fa-coins:before{content:"\f51e"}.fa-khanda:before{content:"\f66d"}.fa-sliders-h:before,.fa-sliders:before{content:"\f1de"}.fa-folder-tree:before{content:"\f802"}.fa-network-wired:before{content:"\f6ff"}.fa-map-pin:before{content:"\f276"}.fa-hamsa:before{content:"\f665"}.fa-cent-sign:before{content:"\e3f5"}.fa-flask:before{content:"\f0c3"}.fa-person-pregnant:before{content:"\e31e"}.fa-wand-sparkles:before{content:"\f72b"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:"\f142"}.fa-ticket:before{content:"\f145"}.fa-power-off:before{content:"\f011"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:"\f30b"}.fa-flag-usa:before{content:"\f74d"}.fa-laptop-file:before{content:"\e51d"}.fa-teletype:before,.fa-tty:before{content:"\f1e4"}.fa-diagram-next:before{content:"\e476"}.fa-person-rifle:before{content:"\e54e"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-closed-captioning:before{content:"\f20a"}.fa-hiking:before,.fa-person-hiking:before{content:"\f6ec"}.fa-venus-double:before{content:"\f226"}.fa-images:before{content:"\f302"}.fa-calculator:before{content:"\f1ec"}.fa-people-pulling:before{content:"\e535"}.fa-n:before{content:"\4e"}.fa-cable-car:before,.fa-tram:before{content:"\f7da"}.fa-cloud-rain:before{content:"\f73d"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-ship:before{content:"\f21a"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-download:before{content:"\f019"}.fa-face-grin:before,.fa-grin:before{content:"\f580"}.fa-backspace:before,.fa-delete-left:before{content:"\f55a"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:"\f1fb"}.fa-file-circle-check:before{content:"\e5a0"}.fa-forward:before{content:"\f04e"}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:"\f3ce"}.fa-face-meh:before,.fa-meh:before{content:"\f11a"}.fa-align-center:before{content:"\f037"}.fa-book-dead:before,.fa-book-skull:before{content:"\f6b7"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:"\f015"}.fa-calendar-week:before{content:"\f784"}.fa-laptop-medical:before{content:"\f812"}.fa-b:before{content:"\42"}.fa-file-medical:before{content:"\f477"}.fa-dice-one:before{content:"\f525"}.fa-kiwi-bird:before{content:"\f535"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:"\f0ec"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:"\f2f9"}.fa-cutlery:before,.fa-utensils:before{content:"\f2e7"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:"\f161"}.fa-mill-sign:before{content:"\e1ed"}.fa-bowl-rice:before{content:"\e2eb"}.fa-skull:before{content:"\f54c"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:"\f519"}.fa-truck-pickup:before{content:"\f63c"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:"\f30c"}.fa-stop:before{content:"\f04d"}.fa-code-merge:before{content:"\f387"}.fa-upload:before{content:"\f093"}.fa-hurricane:before{content:"\f751"}.fa-mound:before{content:"\e52d"}.fa-toilet-portable:before{content:"\e583"}.fa-compact-disc:before{content:"\f51f"}.fa-file-arrow-down:before,.fa-file-download:before{content:"\f56d"}.fa-caravan:before{content:"\f8ff"}.fa-shield-cat:before{content:"\e572"}.fa-bolt:before,.fa-zap:before{content:"\f0e7"}.fa-glass-water:before{content:"\e4f4"}.fa-oil-well:before{content:"\e532"}.fa-vault:before{content:"\e2c5"}.fa-mars:before{content:"\f222"}.fa-toilet:before{content:"\f7d8"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:"\f158"}.fa-sun:before{content:"\f185"}.fa-guitar:before{content:"\f7a6"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:"\f59c"}.fa-horse-head:before{content:"\f7ab"}.fa-bore-hole:before{content:"\e4c3"}.fa-industry:before{content:"\f275"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:"\f358"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-florin-sign:before{content:"\e184"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:"\f884"}.fa-less-than:before{content:"\3c"}.fa-angle-down:before{content:"\f107"}.fa-car-tunnel:before{content:"\e4de"}.fa-head-side-cough:before{content:"\e061"}.fa-grip-lines:before{content:"\f7a4"}.fa-thumbs-down:before{content:"\f165"}.fa-user-lock:before{content:"\f502"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:"\f178"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:"\f141"}.fa-chess-pawn:before{content:"\f443"}.fa-first-aid:before,.fa-kit-medical:before{content:"\f479"}.fa-person-through-window:before{content:"\e5a9"}.fa-toolbox:before{content:"\f552"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-bug:before{content:"\f188"}.fa-credit-card-alt:before,.fa-credit-card:before{content:"\f09d"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-book-open-reader:before,.fa-book-reader:before{content:"\f5da"}.fa-mountain-sun:before{content:"\e52f"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-dice-d20:before{content:"\f6cf"}.fa-truck-droplet:before{content:"\e58c"}.fa-file-circle-xmark:before{content:"\e5a1"}.fa-temperature-arrow-up:before,.fa-temperature-up:before{content:"\e040"}.fa-medal:before{content:"\f5a2"}.fa-bed:before{content:"\f236"}.fa-h-square:before,.fa-square-h:before{content:"\f0fd"}.fa-podcast:before{content:"\f2ce"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-bell:before{content:"\f0f3"}.fa-superscript:before{content:"\f12b"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-star-of-life:before{content:"\f621"}.fa-phone-slash:before{content:"\f3dd"}.fa-paint-roller:before{content:"\f5aa"}.fa-hands-helping:before,.fa-handshake-angle:before{content:"\f4c4"}.fa-location-dot:before,.fa-map-marker-alt:before{content:"\f3c5"}.fa-file:before{content:"\f15b"}.fa-greater-than:before{content:"\3e"}.fa-person-swimming:before,.fa-swimmer:before{content:"\f5c4"}.fa-arrow-down:before{content:"\f063"}.fa-droplet:before,.fa-tint:before{content:"\f043"}.fa-eraser:before{content:"\f12d"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:"\f57d"}.fa-person-burst:before{content:"\e53b"}.fa-dove:before{content:"\f4ba"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-socks:before{content:"\f696"}.fa-inbox:before{content:"\f01c"}.fa-section:before{content:"\e447"}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:"\f625"}.fa-envelope-open-text:before{content:"\f658"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:"\f0f8"}.fa-wine-bottle:before{content:"\f72f"}.fa-chess-rook:before{content:"\f447"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:"\f550"}.fa-dharmachakra:before{content:"\f655"}.fa-hotdog:before{content:"\f80f"}.fa-blind:before,.fa-person-walking-with-cane:before{content:"\f29d"}.fa-drum:before{content:"\f569"}.fa-ice-cream:before{content:"\f810"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-fax:before{content:"\f1ac"}.fa-paragraph:before{content:"\f1dd"}.fa-check-to-slot:before,.fa-vote-yea:before{content:"\f772"}.fa-star-half:before{content:"\f089"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:"\f468"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:"\f2a2"}.fa-tree-city:before{content:"\e587"}.fa-play:before{content:"\f04b"}.fa-font:before{content:"\f031"}.fa-rupiah-sign:before{content:"\e23d"}.fa-magnifying-glass:before,.fa-search:before{content:"\f002"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:"\f45d"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:"\f470"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:"\f82a"}.fa-naira-sign:before{content:"\e1f6"}.fa-cart-arrow-down:before{content:"\f218"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-file-edit:before,.fa-file-pen:before{content:"\f31c"}.fa-receipt:before{content:"\f543"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:"\f14b"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-chevron-down:before{content:"\f078"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-skull-crossbones:before{content:"\f714"}.fa-code-compare:before{content:"\e13a"}.fa-list-dots:before,.fa-list-ul:before{content:"\f0ca"}.fa-school-lock:before{content:"\e56f"}.fa-tower-cell:before{content:"\e585"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:"\f309"}.fa-ranking-star:before{content:"\e561"}.fa-chess-king:before{content:"\f43f"}.fa-person-harassing:before{content:"\e549"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-landmark-alt:before,.fa-landmark-dome:before{content:"\f752"}.fa-arrow-up:before{content:"\f062"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:"\f26c"}.fa-shrimp:before{content:"\e448"}.fa-list-check:before,.fa-tasks:before{content:"\f0ae"}.fa-jug-detergent:before{content:"\e519"}.fa-circle-user:before,.fa-user-circle:before{content:"\f2bd"}.fa-user-shield:before{content:"\f505"}.fa-wind:before{content:"\f72e"}.fa-car-burst:before,.fa-car-crash:before{content:"\f5e1"}.fa-y:before{content:"\59"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:"\f7ce"}.fa-shipping-fast:before,.fa-truck-fast:before{content:"\f48b"}.fa-fish:before{content:"\f578"}.fa-user-graduate:before{content:"\f501"}.fa-adjust:before,.fa-circle-half-stroke:before{content:"\f042"}.fa-clapperboard:before{content:"\e131"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:"\f7ba"}.fa-baseball-ball:before,.fa-baseball:before{content:"\f433"}.fa-jet-fighter-up:before{content:"\e518"}.fa-diagram-project:before,.fa-project-diagram:before{content:"\f542"}.fa-copy:before{content:"\f0c5"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:"\f6a9"}.fa-hand-sparkles:before{content:"\e05d"}.fa-grip-horizontal:before,.fa-grip:before{content:"\f58d"}.fa-share-from-square:before,.fa-share-square:before{content:"\f14d"}.fa-child-combatant:before,.fa-child-rifle:before{content:"\e4e0"}.fa-gun:before{content:"\e19b"}.fa-phone-square:before,.fa-square-phone:before{content:"\f098"}.fa-add:before,.fa-plus:before{content:"\2b"}.fa-expand:before{content:"\f065"}.fa-computer:before{content:"\e4e5"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:"\f00d"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:"\f047"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:"\f51c"}.fa-peso-sign:before{content:"\e222"}.fa-building-shield:before{content:"\e4d8"}.fa-baby:before{content:"\f77c"}.fa-users-line:before{content:"\e592"}.fa-quote-left-alt:before,.fa-quote-left:before{content:"\f10d"}.fa-tractor:before{content:"\f722"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:"\f829"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-lines-leaning:before{content:"\e51e"}.fa-ruler-combined:before{content:"\f546"}.fa-copyright:before{content:"\f1f9"}.fa-equals:before{content:"\3d"}.fa-blender:before{content:"\f517"}.fa-teeth:before{content:"\f62e"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:"\f20b"}.fa-map:before{content:"\f279"}.fa-rocket:before{content:"\f135"}.fa-photo-film:before,.fa-photo-video:before{content:"\f87c"}.fa-folder-minus:before{content:"\f65d"}.fa-store:before{content:"\f54e"}.fa-arrow-trend-up:before{content:"\e098"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-sign-hanging:before,.fa-sign:before{content:"\f4d9"}.fa-bezier-curve:before{content:"\f55b"}.fa-bell-slash:before{content:"\f1f6"}.fa-tablet-android:before,.fa-tablet:before{content:"\f3fb"}.fa-school-flag:before{content:"\e56e"}.fa-fill:before{content:"\f575"}.fa-angle-up:before{content:"\f106"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-holly-berry:before{content:"\f7aa"}.fa-chevron-left:before{content:"\f053"}.fa-bacteria:before{content:"\e059"}.fa-hand-lizard:before{content:"\f258"}.fa-notdef:before{content:"\e1fe"}.fa-disease:before{content:"\f7fa"}.fa-briefcase-medical:before{content:"\f469"}.fa-genderless:before{content:"\f22d"}.fa-chevron-right:before{content:"\f054"}.fa-retweet:before{content:"\f079"}.fa-car-alt:before,.fa-car-rear:before{content:"\f5de"}.fa-pump-soap:before{content:"\e06b"}.fa-video-slash:before{content:"\f4e2"}.fa-battery-2:before,.fa-battery-quarter:before{content:"\f243"}.fa-radio:before{content:"\f8d7"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:"\f77d"}.fa-traffic-light:before{content:"\f637"}.fa-thermometer:before{content:"\f491"}.fa-vr-cardboard:before{content:"\f729"}.fa-hand-middle-finger:before{content:"\f806"}.fa-percent:before,.fa-percentage:before{content:"\25"}.fa-truck-moving:before{content:"\f4df"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-display:before{content:"\e163"}.fa-face-smile:before,.fa-smile:before{content:"\f118"}.fa-thumb-tack:before,.fa-thumbtack:before{content:"\f08d"}.fa-trophy:before{content:"\f091"}.fa-person-praying:before,.fa-pray:before{content:"\f683"}.fa-hammer:before{content:"\f6e3"}.fa-hand-peace:before{content:"\f25b"}.fa-rotate:before,.fa-sync-alt:before{content:"\f2f1"}.fa-spinner:before{content:"\f110"}.fa-robot:before{content:"\f544"}.fa-peace:before{content:"\f67c"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-warehouse:before{content:"\f494"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-splotch:before{content:"\f5bc"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:"\f584"}.fa-dice-four:before{content:"\f524"}.fa-sim-card:before{content:"\f7c4"}.fa-transgender-alt:before,.fa-transgender:before{content:"\f225"}.fa-mercury:before{content:"\f223"}.fa-arrow-turn-down:before,.fa-level-down:before{content:"\f149"}.fa-person-falling-burst:before{content:"\e547"}.fa-award:before{content:"\f559"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:"\f3ff"}.fa-building:before{content:"\f1ad"}.fa-angle-double-left:before,.fa-angles-left:before{content:"\f100"}.fa-qrcode:before{content:"\f029"}.fa-clock-rotate-left:before,.fa-history:before{content:"\f1da"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:"\f583"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:"\f56e"}.fa-shield-blank:before,.fa-shield:before{content:"\f132"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:"\f885"}.fa-house-medical:before{content:"\e3b2"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:"\f450"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:"\f137"}.fa-house-chimney-window:before{content:"\e00d"}.fa-pen-nib:before{content:"\f5ad"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-tents:before{content:"\e582"}.fa-magic:before,.fa-wand-magic:before{content:"\f0d0"}.fa-dog:before{content:"\f6d3"}.fa-carrot:before{content:"\f787"}.fa-moon:before{content:"\f186"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:"\f5ce"}.fa-cheese:before{content:"\f7ef"}.fa-yin-yang:before{content:"\f6ad"}.fa-music:before{content:"\f001"}.fa-code-commit:before{content:"\f386"}.fa-temperature-low:before{content:"\f76b"}.fa-biking:before,.fa-person-biking:before{content:"\f84a"}.fa-broom:before{content:"\f51a"}.fa-shield-heart:before{content:"\e574"}.fa-gopuram:before{content:"\f664"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:"\e47b"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:"\f2d3"}.fa-hashtag:before{content:"\23"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-oil-can:before{content:"\f613"}.fa-t:before{content:"\54"}.fa-hippo:before{content:"\f6ed"}.fa-chart-column:before{content:"\e0e3"}.fa-infinity:before{content:"\f534"}.fa-vial-circle-check:before{content:"\e596"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-voicemail:before{content:"\f897"}.fa-fan:before{content:"\f863"}.fa-person-walking-luggage:before{content:"\e554"}.fa-arrows-alt-v:before,.fa-up-down:before{content:"\f338"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-calendar:before{content:"\f133"}.fa-trailer:before{content:"\e041"}.fa-bahai:before,.fa-haykal:before{content:"\f666"}.fa-sd-card:before{content:"\f7c2"}.fa-dragon:before{content:"\f6d5"}.fa-shoe-prints:before{content:"\f54b"}.fa-circle-plus:before,.fa-plus-circle:before{content:"\f055"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:"\f58b"}.fa-hand-holding:before{content:"\f4bd"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:"\f127"}.fa-clone:before{content:"\f24d"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:"\f7e4"}.fa-tornado:before{content:"\f76f"}.fa-file-circle-plus:before{content:"\e494"}.fa-book-quran:before,.fa-quran:before{content:"\f687"}.fa-anchor:before{content:"\f13d"}.fa-border-all:before{content:"\f84c"}.fa-angry:before,.fa-face-angry:before{content:"\f556"}.fa-cookie-bite:before{content:"\f564"}.fa-arrow-trend-down:before{content:"\e097"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-draw-polygon:before{content:"\f5ee"}.fa-balance-scale:before,.fa-scale-balanced:before{content:"\f24e"}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:"\f62a"}.fa-shower:before{content:"\f2cc"}.fa-desktop-alt:before,.fa-desktop:before{content:"\f390"}.fa-m:before{content:"\4d"}.fa-table-list:before,.fa-th-list:before{content:"\f00b"}.fa-comment-sms:before,.fa-sms:before{content:"\f7cd"}.fa-book:before{content:"\f02d"}.fa-user-plus:before{content:"\f234"}.fa-check:before{content:"\f00c"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-house-circle-check:before{content:"\e509"}.fa-angle-left:before{content:"\f104"}.fa-diagram-successor:before{content:"\e47a"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-fist-raised:before,.fa-hand-fist:before{content:"\f6de"}.fa-cloud-moon:before{content:"\f6c3"}.fa-briefcase:before{content:"\f0b1"}.fa-person-falling:before{content:"\e546"}.fa-image-portrait:before,.fa-portrait:before{content:"\f3e0"}.fa-user-tag:before{content:"\f507"}.fa-rug:before{content:"\e569"}.fa-earth-europe:before,.fa-globe-europe:before{content:"\f7a2"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:"\f59d"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:"\f410"}.fa-baht-sign:before{content:"\e0ac"}.fa-book-open:before{content:"\f518"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:"\f66a"}.fa-handcuffs:before{content:"\e4f8"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:"\f071"}.fa-database:before{content:"\f1c0"}.fa-arrow-turn-right:before,.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-mask-face:before{content:"\e1d7"}.fa-hill-rockslide:before{content:"\e508"}.fa-exchange-alt:before,.fa-right-left:before{content:"\f362"}.fa-paper-plane:before{content:"\f1d8"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-dungeon:before{content:"\f6d9"}.fa-align-right:before{content:"\f038"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-life-ring:before{content:"\f1cd"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-calendar-day:before{content:"\f783"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:"\f5c5"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:"\f07d"}.fa-face-grimace:before,.fa-grimace:before{content:"\f57f"}.fa-wheelchair-alt:before,.fa-wheelchair-move:before{content:"\e2ce"}.fa-level-down-alt:before,.fa-turn-down:before{content:"\f3be"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-envelope-square:before,.fa-square-envelope:before{content:"\f199"}.fa-dice:before{content:"\f522"}.fa-bowling-ball:before{content:"\f436"}.fa-brain:before{content:"\f5dc"}.fa-band-aid:before,.fa-bandage:before{content:"\f462"}.fa-calendar-minus:before{content:"\f272"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:"\f057"}.fa-gifts:before{content:"\f79c"}.fa-hotel:before{content:"\f594"}.fa-earth-asia:before,.fa-globe-asia:before{content:"\f57e"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:"\f47f"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:"\f00e"}.fa-thumbs-up:before{content:"\f164"}.fa-user-clock:before{content:"\f4fd"}.fa-allergies:before,.fa-hand-dots:before{content:"\f461"}.fa-file-invoice:before{content:"\f570"}.fa-window-minimize:before{content:"\f2d1"}.fa-coffee:before,.fa-mug-saucer:before{content:"\f0f4"}.fa-brush:before{content:"\f55d"}.fa-mask:before{content:"\f6fa"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:"\f010"}.fa-ruler-vertical:before{content:"\f548"}.fa-user-alt:before,.fa-user-large:before{content:"\f406"}.fa-train-tram:before{content:"\e5b4"}.fa-user-nurse:before{content:"\f82f"}.fa-syringe:before{content:"\f48e"}.fa-cloud-sun:before{content:"\f6c4"}.fa-stopwatch-20:before{content:"\e06f"}.fa-square-full:before{content:"\f45c"}.fa-magnet:before{content:"\f076"}.fa-jar:before{content:"\e516"}.fa-note-sticky:before,.fa-sticky-note:before{content:"\f249"}.fa-bug-slash:before{content:"\e490"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-bone:before{content:"\f5d7"}.fa-user-injured:before{content:"\f728"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:"\f5b4"}.fa-plane:before{content:"\f072"}.fa-tent-arrows-down:before{content:"\e581"}.fa-exclamation:before{content:"\21"}.fa-arrows-spin:before{content:"\e4bb"}.fa-print:before{content:"\f02f"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:"\e2bb"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"\24"}.fa-x:before{content:"\58"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:"\f688"}.fa-users-cog:before,.fa-users-gear:before{content:"\f509"}.fa-person-military-pointing:before{content:"\e54a"}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:"\f19c"}.fa-umbrella:before{content:"\f0e9"}.fa-trowel:before{content:"\e589"}.fa-d:before{content:"\44"}.fa-stapler:before{content:"\e5af"}.fa-masks-theater:before,.fa-theater-masks:before{content:"\f630"}.fa-kip-sign:before{content:"\e1c4"}.fa-hand-point-left:before{content:"\f0a5"}.fa-handshake-alt:before,.fa-handshake-simple:before{content:"\f4c6"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:"\f0fb"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:"\f1e1"}.fa-barcode:before{content:"\f02a"}.fa-plus-minus:before{content:"\e43c"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-person-circle-check:before{content:"\e53e"}.fa-level-up-alt:before,.fa-turn-up:before{content:"\f3bf"}.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}:host,:root{--fa-style-family-brands:"Font Awesome 6 Brands";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-display:block;font-family:Font Awesome\ 6 Brands;font-style:normal;font-weight:400;src:url(878f31251d960bd6266f.woff2) format("woff2"),url(016b4a6cdced82ab3aa1.ttf) format("truetype")}.fa-brands,.fab{font-weight:400}.fa-monero:before{content:"\f3d0"}.fa-hooli:before{content:"\f427"}.fa-yelp:before{content:"\f1e9"}.fa-cc-visa:before{content:"\f1f0"}.fa-lastfm:before{content:"\f202"}.fa-shopware:before{content:"\f5b5"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-aws:before{content:"\f375"}.fa-redhat:before{content:"\f7bc"}.fa-yoast:before{content:"\f2b1"}.fa-cloudflare:before{content:"\e07d"}.fa-ups:before{content:"\f7e0"}.fa-wpexplorer:before{content:"\f2de"}.fa-dyalog:before{content:"\f399"}.fa-bity:before{content:"\f37a"}.fa-stackpath:before{content:"\f842"}.fa-buysellads:before{content:"\f20d"}.fa-first-order:before{content:"\f2b0"}.fa-modx:before{content:"\f285"}.fa-guilded:before{content:"\e07e"}.fa-vnv:before{content:"\f40b"}.fa-js-square:before,.fa-square-js:before{content:"\f3b9"}.fa-microsoft:before{content:"\f3ca"}.fa-qq:before{content:"\f1d6"}.fa-orcid:before{content:"\f8d2"}.fa-java:before{content:"\f4e4"}.fa-invision:before{content:"\f7b0"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-centercode:before{content:"\f380"}.fa-glide-g:before{content:"\f2a6"}.fa-drupal:before{content:"\f1a9"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-unity:before{content:"\e049"}.fa-whmcs:before{content:"\f40d"}.fa-rocketchat:before{content:"\f3e8"}.fa-vk:before{content:"\f189"}.fa-untappd:before{content:"\f405"}.fa-mailchimp:before{content:"\f59e"}.fa-css3-alt:before{content:"\f38b"}.fa-reddit-square:before,.fa-square-reddit:before{content:"\f1a2"}.fa-vimeo-v:before{content:"\f27d"}.fa-contao:before{content:"\f26d"}.fa-square-font-awesome:before{content:"\e5ad"}.fa-deskpro:before{content:"\f38f"}.fa-sistrix:before{content:"\f3ee"}.fa-instagram-square:before,.fa-square-instagram:before{content:"\e055"}.fa-battle-net:before{content:"\f835"}.fa-the-red-yeti:before{content:"\f69d"}.fa-hacker-news-square:before,.fa-square-hacker-news:before{content:"\f3af"}.fa-edge:before{content:"\f282"}.fa-threads:before{content:"\e618"}.fa-napster:before{content:"\f3d2"}.fa-snapchat-square:before,.fa-square-snapchat:before{content:"\f2ad"}.fa-google-plus-g:before{content:"\f0d5"}.fa-artstation:before{content:"\f77a"}.fa-markdown:before{content:"\f60f"}.fa-sourcetree:before{content:"\f7d3"}.fa-google-plus:before{content:"\f2b3"}.fa-diaspora:before{content:"\f791"}.fa-foursquare:before{content:"\f180"}.fa-stack-overflow:before{content:"\f16c"}.fa-github-alt:before{content:"\f113"}.fa-phoenix-squadron:before{content:"\f511"}.fa-pagelines:before{content:"\f18c"}.fa-algolia:before{content:"\f36c"}.fa-red-river:before{content:"\f3e3"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-safari:before{content:"\f267"}.fa-google:before{content:"\f1a0"}.fa-font-awesome-alt:before,.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-atlassian:before{content:"\f77b"}.fa-linkedin-in:before{content:"\f0e1"}.fa-digital-ocean:before{content:"\f391"}.fa-nimblr:before{content:"\f5a8"}.fa-chromecast:before{content:"\f838"}.fa-evernote:before{content:"\f839"}.fa-hacker-news:before{content:"\f1d4"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-adversal:before{content:"\f36a"}.fa-creative-commons:before{content:"\f25e"}.fa-watchman-monitoring:before{content:"\e087"}.fa-fonticons:before{content:"\f280"}.fa-weixin:before{content:"\f1d7"}.fa-shirtsinbulk:before{content:"\f214"}.fa-codepen:before{content:"\f1cb"}.fa-git-alt:before{content:"\f841"}.fa-lyft:before{content:"\f3c3"}.fa-rev:before{content:"\f5b2"}.fa-windows:before{content:"\f17a"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-square-viadeo:before,.fa-viadeo-square:before{content:"\f2aa"}.fa-meetup:before{content:"\f2e0"}.fa-centos:before{content:"\f789"}.fa-adn:before{content:"\f170"}.fa-cloudsmith:before{content:"\f384"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-dribbble-square:before,.fa-square-dribbble:before{content:"\f397"}.fa-codiepie:before{content:"\f284"}.fa-node:before{content:"\f419"}.fa-mix:before{content:"\f3cb"}.fa-steam:before{content:"\f1b6"}.fa-cc-apple-pay:before{content:"\f416"}.fa-scribd:before{content:"\f28a"}.fa-debian:before{content:"\e60b"}.fa-openid:before{content:"\f19b"}.fa-instalod:before{content:"\e081"}.fa-expeditedssl:before{content:"\f23e"}.fa-sellcast:before{content:"\f2da"}.fa-square-twitter:before,.fa-twitter-square:before{content:"\f081"}.fa-r-project:before{content:"\f4f7"}.fa-delicious:before{content:"\f1a5"}.fa-freebsd:before{content:"\f3a4"}.fa-vuejs:before{content:"\f41f"}.fa-accusoft:before{content:"\f369"}.fa-ioxhost:before{content:"\f208"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-app-store:before{content:"\f36f"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-itunes-note:before{content:"\f3b5"}.fa-golang:before{content:"\e40f"}.fa-kickstarter:before{content:"\f3bb"}.fa-grav:before{content:"\f2d6"}.fa-weibo:before{content:"\f18a"}.fa-uncharted:before{content:"\e084"}.fa-firstdraft:before{content:"\f3a1"}.fa-square-youtube:before,.fa-youtube-square:before{content:"\f431"}.fa-wikipedia-w:before{content:"\f266"}.fa-rendact:before,.fa-wpressr:before{content:"\f3e4"}.fa-angellist:before{content:"\f209"}.fa-galactic-republic:before{content:"\f50c"}.fa-nfc-directional:before{content:"\e530"}.fa-skype:before{content:"\f17e"}.fa-joget:before{content:"\f3b7"}.fa-fedora:before{content:"\f798"}.fa-stripe-s:before{content:"\f42a"}.fa-meta:before{content:"\e49b"}.fa-laravel:before{content:"\f3bd"}.fa-hotjar:before{content:"\f3b1"}.fa-bluetooth-b:before{content:"\f294"}.fa-sticker-mule:before{content:"\f3f7"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-hips:before{content:"\f452"}.fa-behance:before{content:"\f1b4"}.fa-reddit:before{content:"\f1a1"}.fa-discord:before{content:"\f392"}.fa-chrome:before{content:"\f268"}.fa-app-store-ios:before{content:"\f370"}.fa-cc-discover:before{content:"\f1f2"}.fa-wpbeginner:before{content:"\f297"}.fa-confluence:before{content:"\f78d"}.fa-mdb:before{content:"\f8ca"}.fa-dochub:before{content:"\f394"}.fa-accessible-icon:before{content:"\f368"}.fa-ebay:before{content:"\f4f4"}.fa-amazon:before{content:"\f270"}.fa-unsplash:before{content:"\e07c"}.fa-yarn:before{content:"\f7e3"}.fa-square-steam:before,.fa-steam-square:before{content:"\f1b7"}.fa-500px:before{content:"\f26e"}.fa-square-vimeo:before,.fa-vimeo-square:before{content:"\f194"}.fa-asymmetrik:before{content:"\f372"}.fa-font-awesome-flag:before,.fa-font-awesome-logo-full:before,.fa-font-awesome:before{content:"\f2b4"}.fa-gratipay:before{content:"\f184"}.fa-apple:before{content:"\f179"}.fa-hive:before{content:"\e07f"}.fa-gitkraken:before{content:"\f3a6"}.fa-keybase:before{content:"\f4f5"}.fa-apple-pay:before{content:"\f415"}.fa-padlet:before{content:"\e4a0"}.fa-amazon-pay:before{content:"\f42c"}.fa-github-square:before,.fa-square-github:before{content:"\f092"}.fa-stumbleupon:before{content:"\f1a4"}.fa-fedex:before{content:"\f797"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-shopify:before{content:"\e057"}.fa-neos:before{content:"\f612"}.fa-square-threads:before{content:"\e619"}.fa-hackerrank:before{content:"\f5f7"}.fa-researchgate:before{content:"\f4f8"}.fa-swift:before{content:"\f8e1"}.fa-angular:before{content:"\f420"}.fa-speakap:before{content:"\f3f3"}.fa-angrycreative:before{content:"\f36e"}.fa-y-combinator:before{content:"\f23b"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-gitlab-square:before,.fa-square-gitlab:before{content:"\e5ae"}.fa-studiovinari:before{content:"\f3f8"}.fa-pied-piper:before{content:"\f2ae"}.fa-wordpress:before{content:"\f19a"}.fa-product-hunt:before{content:"\f288"}.fa-firefox:before{content:"\f269"}.fa-linode:before{content:"\f2b8"}.fa-goodreads:before{content:"\f3a8"}.fa-odnoklassniki-square:before,.fa-square-odnoklassniki:before{content:"\f264"}.fa-jsfiddle:before{content:"\f1cc"}.fa-sith:before{content:"\f512"}.fa-themeisle:before{content:"\f2b2"}.fa-page4:before{content:"\f3d7"}.fa-hashnode:before{content:"\e499"}.fa-react:before{content:"\f41b"}.fa-cc-paypal:before{content:"\f1f4"}.fa-squarespace:before{content:"\f5be"}.fa-cc-stripe:before{content:"\f1f5"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-bitcoin:before{content:"\f379"}.fa-keycdn:before{content:"\f3ba"}.fa-opera:before{content:"\f26a"}.fa-itch-io:before{content:"\f83a"}.fa-umbraco:before{content:"\f8e8"}.fa-galactic-senate:before{content:"\f50d"}.fa-ubuntu:before{content:"\f7df"}.fa-draft2digital:before{content:"\f396"}.fa-stripe:before{content:"\f429"}.fa-houzz:before{content:"\f27c"}.fa-gg:before{content:"\f260"}.fa-dhl:before{content:"\f790"}.fa-pinterest-square:before,.fa-square-pinterest:before{content:"\f0d3"}.fa-xing:before{content:"\f168"}.fa-blackberry:before{content:"\f37b"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-playstation:before{content:"\f3df"}.fa-quinscape:before{content:"\f459"}.fa-less:before{content:"\f41d"}.fa-blogger-b:before{content:"\f37d"}.fa-opencart:before{content:"\f23d"}.fa-vine:before{content:"\f1ca"}.fa-paypal:before{content:"\f1ed"}.fa-gitlab:before{content:"\f296"}.fa-typo3:before{content:"\f42b"}.fa-reddit-alien:before{content:"\f281"}.fa-yahoo:before{content:"\f19e"}.fa-dailymotion:before{content:"\e052"}.fa-affiliatetheme:before{content:"\f36b"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-bootstrap:before{content:"\f836"}.fa-odnoklassniki:before{content:"\f263"}.fa-nfc-symbol:before{content:"\e531"}.fa-ethereum:before{content:"\f42e"}.fa-speaker-deck:before{content:"\f83c"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-patreon:before{content:"\f3d9"}.fa-avianex:before{content:"\f374"}.fa-ello:before{content:"\f5f1"}.fa-gofore:before{content:"\f3a7"}.fa-bimobject:before{content:"\f378"}.fa-facebook-f:before{content:"\f39e"}.fa-google-plus-square:before,.fa-square-google-plus:before{content:"\f0d4"}.fa-mandalorian:before{content:"\f50f"}.fa-first-order-alt:before{content:"\f50a"}.fa-osi:before{content:"\f41a"}.fa-google-wallet:before{content:"\f1ee"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-periscope:before{content:"\f3da"}.fa-fulcrum:before{content:"\f50b"}.fa-cloudscale:before{content:"\f383"}.fa-forumbee:before{content:"\f211"}.fa-mizuni:before{content:"\f3cc"}.fa-schlix:before{content:"\f3ea"}.fa-square-xing:before,.fa-xing-square:before{content:"\f169"}.fa-bandcamp:before{content:"\f2d5"}.fa-wpforms:before{content:"\f298"}.fa-cloudversify:before{content:"\f385"}.fa-usps:before{content:"\f7e1"}.fa-megaport:before{content:"\f5a3"}.fa-magento:before{content:"\f3c4"}.fa-spotify:before{content:"\f1bc"}.fa-optin-monster:before{content:"\f23c"}.fa-fly:before{content:"\f417"}.fa-aviato:before{content:"\f421"}.fa-itunes:before{content:"\f3b4"}.fa-cuttlefish:before{content:"\f38c"}.fa-blogger:before{content:"\f37c"}.fa-flickr:before{content:"\f16e"}.fa-viber:before{content:"\f409"}.fa-soundcloud:before{content:"\f1be"}.fa-digg:before{content:"\f1a6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-symfony:before{content:"\f83d"}.fa-maxcdn:before{content:"\f136"}.fa-etsy:before{content:"\f2d7"}.fa-facebook-messenger:before{content:"\f39f"}.fa-audible:before{content:"\f373"}.fa-think-peaks:before{content:"\f731"}.fa-bilibili:before{content:"\e3d9"}.fa-erlang:before{content:"\f39d"}.fa-x-twitter:before{content:"\e61b"}.fa-cotton-bureau:before{content:"\f89e"}.fa-dashcube:before{content:"\f210"}.fa-42-group:before,.fa-innosoft:before{content:"\e080"}.fa-stack-exchange:before{content:"\f18d"}.fa-elementor:before{content:"\f430"}.fa-pied-piper-square:before,.fa-square-pied-piper:before{content:"\e01e"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-palfed:before{content:"\f3d8"}.fa-superpowers:before{content:"\f2dd"}.fa-resolving:before{content:"\f3e7"}.fa-xbox:before{content:"\f412"}.fa-searchengin:before{content:"\f3eb"}.fa-tiktok:before{content:"\e07b"}.fa-facebook-square:before,.fa-square-facebook:before{content:"\f082"}.fa-renren:before{content:"\f18b"}.fa-linux:before{content:"\f17c"}.fa-glide:before{content:"\f2a5"}.fa-linkedin:before{content:"\f08c"}.fa-hubspot:before{content:"\f3b2"}.fa-deploydog:before{content:"\f38e"}.fa-twitch:before{content:"\f1e8"}.fa-ravelry:before{content:"\f2d9"}.fa-mixer:before{content:"\e056"}.fa-lastfm-square:before,.fa-square-lastfm:before{content:"\f203"}.fa-vimeo:before{content:"\f40a"}.fa-mendeley:before{content:"\f7b3"}.fa-uniregistry:before{content:"\f404"}.fa-figma:before{content:"\f799"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-dropbox:before{content:"\f16b"}.fa-instagram:before{content:"\f16d"}.fa-cmplid:before{content:"\e360"}.fa-facebook:before{content:"\f09a"}.fa-gripfire:before{content:"\f3ac"}.fa-jedi-order:before{content:"\f50e"}.fa-uikit:before{content:"\f403"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-phabricator:before{content:"\f3db"}.fa-ussunnah:before{content:"\f407"}.fa-earlybirds:before{content:"\f39a"}.fa-trade-federation:before{content:"\f513"}.fa-autoprefixer:before{content:"\f41c"}.fa-whatsapp:before{content:"\f232"}.fa-slideshare:before{content:"\f1e7"}.fa-google-play:before{content:"\f3ab"}.fa-viadeo:before{content:"\f2a9"}.fa-line:before{content:"\f3c0"}.fa-google-drive:before{content:"\f3aa"}.fa-servicestack:before{content:"\f3ec"}.fa-simplybuilt:before{content:"\f215"}.fa-bitbucket:before{content:"\f171"}.fa-imdb:before{content:"\f2d8"}.fa-deezer:before{content:"\e077"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-jira:before{content:"\f7b1"}.fa-docker:before{content:"\f395"}.fa-screenpal:before{content:"\e570"}.fa-bluetooth:before{content:"\f293"}.fa-gitter:before{content:"\f426"}.fa-d-and-d:before{content:"\f38d"}.fa-microblog:before{content:"\e01a"}.fa-cc-diners-club:before{content:"\f24c"}.fa-gg-circle:before{content:"\f261"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-yandex:before{content:"\f413"}.fa-readme:before{content:"\f4d5"}.fa-html5:before{content:"\f13b"}.fa-sellsy:before{content:"\f213"}.fa-sass:before{content:"\f41e"}.fa-wirsindhandwerk:before,.fa-wsh:before{content:"\e2d0"}.fa-buromobelexperte:before{content:"\f37f"}.fa-salesforce:before{content:"\f83b"}.fa-octopus-deploy:before{content:"\e082"}.fa-medapps:before{content:"\f3c6"}.fa-ns8:before{content:"\f3d5"}.fa-pinterest-p:before{content:"\f231"}.fa-apper:before{content:"\f371"}.fa-fort-awesome:before{content:"\f286"}.fa-waze:before{content:"\f83f"}.fa-cc-jcb:before{content:"\f24b"}.fa-snapchat-ghost:before,.fa-snapchat:before{content:"\f2ab"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-rust:before{content:"\e07a"}.fa-wix:before{content:"\f5cf"}.fa-behance-square:before,.fa-square-behance:before{content:"\f1b5"}.fa-supple:before{content:"\f3f9"}.fa-rebel:before{content:"\f1d0"}.fa-css3:before{content:"\f13c"}.fa-staylinked:before{content:"\f3f5"}.fa-kaggle:before{content:"\f5fa"}.fa-space-awesome:before{content:"\e5ac"}.fa-deviantart:before{content:"\f1bd"}.fa-cpanel:before{content:"\f388"}.fa-goodreads-g:before{content:"\f3a9"}.fa-git-square:before,.fa-square-git:before{content:"\f1d2"}.fa-square-tumblr:before,.fa-tumblr-square:before{content:"\f174"}.fa-trello:before{content:"\f181"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-get-pocket:before{content:"\f265"}.fa-perbyte:before{content:"\e083"}.fa-grunt:before{content:"\f3ad"}.fa-weebly:before{content:"\f5cc"}.fa-connectdevelop:before{content:"\f20e"}.fa-leanpub:before{content:"\f212"}.fa-black-tie:before{content:"\f27e"}.fa-themeco:before{content:"\f5c6"}.fa-python:before{content:"\f3e2"}.fa-android:before{content:"\f17b"}.fa-bots:before{content:"\e340"}.fa-free-code-camp:before{content:"\f2c5"}.fa-hornbill:before{content:"\f592"}.fa-js:before{content:"\f3b8"}.fa-ideal:before{content:"\e013"}.fa-git:before{content:"\f1d3"}.fa-dev:before{content:"\f6cc"}.fa-sketch:before{content:"\f7c6"}.fa-yandex-international:before{content:"\f414"}.fa-cc-amex:before{content:"\f1f3"}.fa-uber:before{content:"\f402"}.fa-github:before{content:"\f09b"}.fa-php:before{content:"\f457"}.fa-alipay:before{content:"\f642"}.fa-youtube:before{content:"\f167"}.fa-skyatlas:before{content:"\f216"}.fa-firefox-browser:before{content:"\e007"}.fa-replyd:before{content:"\f3e6"}.fa-suse:before{content:"\f7d6"}.fa-jenkins:before{content:"\f3b6"}.fa-twitter:before{content:"\f099"}.fa-rockrms:before{content:"\f3e9"}.fa-pinterest:before{content:"\f0d2"}.fa-buffer:before{content:"\f837"}.fa-npm:before{content:"\f3d4"}.fa-yammer:before{content:"\f840"}.fa-btc:before{content:"\f15a"}.fa-dribbble:before{content:"\f17d"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-internet-explorer:before{content:"\f26b"}.fa-stubber:before{content:"\e5c7"}.fa-telegram-plane:before,.fa-telegram:before{content:"\f2c6"}.fa-old-republic:before{content:"\f510"}.fa-odysee:before{content:"\e5c6"}.fa-square-whatsapp:before,.fa-whatsapp-square:before{content:"\f40c"}.fa-node-js:before{content:"\f3d3"}.fa-edge-legacy:before{content:"\e078"}.fa-slack-hash:before,.fa-slack:before{content:"\f198"}.fa-medrt:before{content:"\f3c8"}.fa-usb:before{content:"\f287"}.fa-tumblr:before{content:"\f173"}.fa-vaadin:before{content:"\f408"}.fa-quora:before{content:"\f2c4"}.fa-square-x-twitter:before{content:"\e61a"}.fa-reacteurope:before{content:"\f75d"}.fa-medium-m:before,.fa-medium:before{content:"\f23a"}.fa-amilia:before{content:"\f36d"}.fa-mixcloud:before{content:"\f289"}.fa-flipboard:before{content:"\f44d"}.fa-viacoin:before{content:"\f237"}.fa-critical-role:before{content:"\f6c9"}.fa-sitrox:before{content:"\e44a"}.fa-discourse:before{content:"\f393"}.fa-joomla:before{content:"\f1aa"}.fa-mastodon:before{content:"\f4f6"}.fa-airbnb:before{content:"\f834"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-buy-n-large:before{content:"\f8a6"}.fa-gulp:before{content:"\f3ae"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-strava:before{content:"\f428"}.fa-ember:before{content:"\f423"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-teamspeak:before{content:"\f4f9"}.fa-pushed:before{content:"\f3e1"}.fa-wordpress-simple:before{content:"\f411"}.fa-nutritionix:before{content:"\f3d6"}.fa-wodu:before{content:"\e088"}.fa-google-pay:before{content:"\e079"}.fa-intercom:before{content:"\f7af"}.fa-zhihu:before{content:"\f63f"}.fa-korvue:before{content:"\f42f"}.fa-pix:before{content:"\e43a"}.fa-steam-symbol:before{content:"\f3f6"}:host,:root{--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-display:block;font-family:Font Awesome\ 6 Free;font-style:normal;font-weight:400;src:url(b041b1fa4fe241b23445.woff2) format("woff2"),url(50701fbb8177c2dde530.ttf) format("truetype")}.fa-regular,.far{font-weight:400}:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-display:block;font-family:Font Awesome\ 6 Free;font-style:normal;font-weight:900;src:url(b6879d41b0852f01ed5b.woff2) format("woff2"),url(d75e3fd1eb12e9bd6655.ttf) format("truetype")}.fa-solid,.fas{font-weight:900}@font-face{font-display:block;font-family:Font Awesome\ 5 Brands;font-weight:400;src:url(878f31251d960bd6266f.woff2) format("woff2"),url(016b4a6cdced82ab3aa1.ttf) format("truetype")}@font-face{font-display:block;font-family:Font Awesome\ 5 Free;font-weight:900;src:url(b6879d41b0852f01ed5b.woff2) format("woff2"),url(d75e3fd1eb12e9bd6655.ttf) format("truetype")}@font-face{font-display:block;font-family:Font Awesome\ 5 Free;font-weight:400;src:url(b041b1fa4fe241b23445.woff2) format("woff2"),url(50701fbb8177c2dde530.ttf) format("truetype")}@font-face{font-display:block;font-family:FontAwesome;src:url(b6879d41b0852f01ed5b.woff2) format("woff2"),url(d75e3fd1eb12e9bd6655.ttf) format("truetype")}@font-face{font-display:block;font-family:FontAwesome;src:url(878f31251d960bd6266f.woff2) format("woff2"),url(016b4a6cdced82ab3aa1.ttf) format("truetype")}@font-face{font-display:block;font-family:FontAwesome;src:url(b041b1fa4fe241b23445.woff2) format("woff2"),url(50701fbb8177c2dde530.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-display:block;font-family:FontAwesome;src:url(1bac2991f3dbfa237aec.woff2) format("woff2"),url(c6a0c95b0a95c4553700.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a}html{font-family:Chivo,sans-serif}a,button,h1,h2,h3,h4,h5,h6,input,label,li,p,span{font-family:Montserrat,sans-serif!important}body{background-color:#150c25;color:#f2f8fa}pre{background-color:#00000047;border-radius:10px;color:inherit;display:block;font-size:87.5%;margin-bottom:10px;margin-top:10px;padding:15px}input,textarea{background-color:#fff;border:2px solid #fff;border-radius:9px;font-family:monospace!important;font-size:14px;height:43px;margin-bottom:14px;padding-left:12px;padding-right:12px;transition:all .125s ease-in-out;width:100%}input[type=number]{-moz-appearance:textfield}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}#privateKey,button{text-align:center}button{background-color:#380c6a;border:1px solid #7300ff;border-radius:15px;color:hsla(0,0%,100%,.65);font-size:16px;margin:1px;outline:0;padding:12px 25px;transition:all .2s ease-in-out}progress{border:none;border-radius:6px;color:#7300ff}progress[value]::-webkit-progress-value{background-image:-webkit-linear-gradient(top,hsla(0,0%,100%,.25),rgba(0,0,0,.25)),-webkit-linear-gradient(left,#380c6a,#7300ff);background-size:35px 20px,100% 100%,100% 100%;border-radius:6px}progress[value]::-moz-progress-bar{background-image:-moz-linear-gradient(top,hsla(0,0%,100%,.25),rgba(0,0,0,.25)),-moz-linear-gradient(left,#380c6a,#7300ff);background-size:35px 20px,100% 100%,100% 100%;border-radius:6px}.hide-element{height:0;opacity:0;width:0}.fa-tiny-margin{margin-top:4px}.ptr{cursor:pointer;transition:all .175s ease-in-out}.ptr:hover{opacity:.8}.fa-stacked-ptr{cursor:pointer;margin-right:15px}.nav-logo{display:inline;vertical-align:middle;width:150px}.nav-link{font-size:16px;font-weight:500}.navButton{color:#999}.navButton:hover{color:#334758!important}.small-dark-bg{background-color:#2c0044;border-radius:20px}.alert-danger{background-color:#ffabb361;border-color:#ba0014}.nav-link{color:#fff!important}.nav-link:hover{color:hsla(0,0%,100%,.75)!important}.minor-notif-subtext{opacity:.5;padding:10px 5px 30px;text-align:center}.changelog{text-align:left}.changelog p{font-family:monospace!important;margin-bottom:0;opacity:.75}.changelog h3{border-left:5px solid #763acf;padding-left:5px}.large-box{background:rgba(43,9,80,.55);border:1px solid #6222ab;border-radius:8px;margin:5px}.large-box:hover{background:linear-gradient(217deg,rgba(51,0,153,.1),rgba(34,0,102,.3) 70.71%);border-color:#763acf}#qrModal.modal{width:auto}#qrModal.modal,#qrReaderModal.modal{left:50%;top:50%;transform:translate(-50%,-50%)}#qrReaderModal.modal{z-index:1100}#qrReaderStream{height:100%;width:100%}.scan-region-highlight-svg{stroke:#6800ff!important;filter:drop-shadow(0 0 3px rgb(122,31,255))}.modal{color:#000}.modal-label{font-family:monospace;font-size:small;position:relative;top:20px}.auto-fit{height:auto;width:100%}@keyframes disco{0%{filter:hue-rotate(0deg)}to{filter:hue-rotate(1turn)}}.discoFilter{animation-duration:2s;animation-iteration-count:infinite;animation-name:disco;animation-play-state:running;animation-timing-function:linear}.reload{cursor:pointer;font-family:Lucida Sans Unicode;margin-left:10px}.reload i{animation-duration:.75s;animation-iteration-count:infinite;animation-name:spinner;animation-play-state:paused;animation-timing-function:linear;font-size:21px;height:21px;width:21px}.playAnim{animation-play-state:running!important}@keyframes spinner{0%{transform:translateZ(0) rotate(0deg)}to{transform:translateZ(0) rotate(1turn)}}.noselect{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.innerShadow{-webkit-box-shadow:inset 0 2px 2px hsla(0,0%,100%,.25),inset 0 -1px 8px rgba(0,0,0,.6);box-shadow:inset 0 2px 2px hsla(0,0%,100%,.25),inset 0 -1px 8px rgba(0,0,0,.6)}.seed-phrase{background-color:#00000014;border-radius:8px;color:#8e21ff;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;margin:10px;padding:10px}.mono{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.modal-footer{display:block!important}.inline-address{background-color:#00000014;border-radius:8px;color:#8e21ff;display:inline;font-family:mono;margin:10px;padding:3px}#page-container{min-height:calc(100vh - 75px);position:relative}#content-wrap{margin-top:75px;padding-bottom:4rem}@media (max-width:768px){#content-wrap{margin-top:40px}#page-container{min-height:calc(100vh - 40px)}}.rm-pd{padding:15px 15px 40px}.max-width{width:100%}.tab{background-color:#000;border:1px solid #080808;overflow:hidden}.tab button{background-color:inherit;border:none;color:#ecd3af;cursor:pointer;float:left;font-size:17px;outline:none;padding:14px 16px;transition:.3s}.tab button:hover{background-color:#334758!important}.tab button.active{background-color:#b088ff!important}.active{color:#b088ff!important}.tabcontent{border-radius:8px;display:none;font-family:sans-serif}#Transaction.tabcontent{padding-bottom:100px}.frame{background:#2b0950bf;display:block;margin:0 auto}#guiWallet{width:100%}#bcg-wallet-box{background:linear-gradient(90deg,rgba(77,77,77,.5),rgba(115,0,255,.3));border:1px solid #4b1282;border-radius:8px;box-shadow:2px 2px 15px 2px #4b1271;display:block;height:87%;margin:0 0 280px;width:100%}#headline-balance{display:block;height:150px;width:100%}#window-icon-piv{display:inline-block;height:150px;padding:30px 50px;width:auto}#piv-ring{background-image:url("/%3C?xml%20version=%221.0%22%20encoding=%22utf-8%22?%3E%3C!--%20Generator:%20Adobe%20Illustrator%2015.0.0,%20SVG%20Export%20Plug-In%20.%20SVG%20Version:%206.00%20Build%200)%20%20--%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-/W3C/DTD%20SVG%201.1/EN%22%20%22http:/www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd%22%3E%3Csvg%20version=%221.1%22%20id=%22Layer_1%22%20xmlns=%22http:/www.w3.org/2000/svg%22%20xmlns:xlink=%22http:/www.w3.org/1999/xlink%22%20x=%220px%22%20y=%220px%22%20width=%22220px%22%20height=%22220px%22%20viewBox=%220%200%20220%20220%22%20enable-background=%22new%200%200%20220%20220%22%20xml:space=%22preserve%22%3E%3Cpath%20fill=%22#FFFFFF%22%20d=%22M110,14.266c-52.873,0-95.734,42.862-95.734,95.734c0,52.873,42.862,95.734,95.734,95.734c52.873,0,95.734-42.861,95.734-95.734C205.734,57.127,162.873,14.266,110,14.266z%20M110,197.839c-48.511,0-87.838-39.326-87.838-87.839c0-48.511,39.327-87.838,87.838-87.838c48.513,0,87.839,39.327,87.839,87.838C197.839,158.513,158.513,197.839,110,197.839z%22/%3E%3Cpath%20fill=%22#2A1B42%22%20d=%22M180.639,159.374c-66.3,0-121.609-47.055-134.355-109.589C31.436,65.491,22.328,86.681,22.328,110c0,48.42,39.252,87.672,87.672,87.672c30.117,0,56.685-15.188,72.469-38.321C181.858,159.358,181.251,159.374,180.639,159.374z%22/%3E%3Cpath%20fill=%22#4D3077%22%20d=%22M180.983,159.531c0.458,0,0.914-0.01,1.372-0.018c9.66-14.09,15.316-31.14,15.316-49.514c0-48.419-39.252-87.672-87.672-87.672c-25.176,0-47.871,10.616-63.86,27.611C59.127,112.509,114.562,159.531,180.983,159.531z%22/%3E%3Cpath%20fill=%22#FFFFFF%22%20d=%22M115.302,93.254c2.868-0.005,5.191-2.336,5.191-5.203c0-2.873-2.329-5.203-5.202-5.203l-40.258-0.012c-0.405,0-0.739,0.328-0.739,0.739c0,1.436,0,4.47,0,4.494c0,2.789,2.193,5.077,4.94,5.238C79.259,93.302,115.298,93.254,115.302,93.254z%22/%3E%3Cpath%20fill=%22#FFFFFF%22%20d=%22M125.196,52.4L125.196,52.4c-0.309-0.006-42.636-0.012-42.636-0.012c-0.405,0-0.738,0.328-0.738,0.739c0,1.437,0,4.47,0,4.494c0,2.79,2.192,5.078,4.94,5.239c0.03,0,36.217-0.083,36.217-0.083l0,0c1.348,0,2.599,0.06,2.599,0.06c13.344,0.649,23.97,11.723,23.97,25.228c0,13.636-10.83,24.691-24.364,25.132v-0.006c-0.352,0.012-38.125-0.011-38.125-0.011c-0.262,0-0.512,0.017-0.763,0.053c-2.396,0.352-4.255,2.331-4.428,4.78v51.485c0,0.405,0.328,0.738,0.739,0.738c1.437,0,4.471,0,4.494,0c2.789,0,5.078-2.192,5.238-4.939c0-0.02,0.018-40.938,0.018-40.938c0-0.012,0-0.023,0-0.03c0.018-0.356,0.322-0.637,0.679-0.637c0.007,0,32.916-0.023,32.916-0.023c2.831-0.127,5.577-0.585,8.2-1.336c14.947-4.266,25.889-17.951,25.889-34.262C160.062,68.629,144.53,52.847,125.196,52.4z%22/%3E%3ClinearGradient%20id=%22SVGID_1_%22%20gradientUnits=%22userSpaceOnUse%22%20x1=%222.75%22%20y1=%22110%22%20x2=%22110%22%20y2=%22110%22%3E%3Cstop%20%20offset=%220%22%20style=%22stop-color:#2A1B42%22/%3E%3Cstop%20%20offset=%221%22%20style=%22stop-color:#4D3077%22/%3E%3C/linearGradient%3E%3Cpath%20fill=%22url(#SVGID_1_)%22%20d=%22M110,205.734c-52.873,0-95.734-42.861-95.734-95.734c0-52.873,42.862-95.734,95.734-95.734V2.75C50.768,2.75,2.75,50.768,2.75,110c0,59.233,48.018,107.25,107.25,107.25V205.734z%22/%3E%3ClinearGradient%20id=%22SVGID_2_%22%20gradientUnits=%22userSpaceOnUse%22%20x1=%22110%22%20y1=%22110%22%20x2=%22217.25%22%20y2=%22110%22%3E%3Cstop%20%20offset=%220%22%20style=%22stop-color:#4D3077%22/%3E%3Cstop%20%20offset=%221%22%20style=%22stop-color:#662F90%22/%3E%3C/linearGradient%3E%3Cpath%20fill=%22url(#SVGID_2_)%22%20d=%22M110,2.75v11.516c52.873,0,95.734,42.862,95.734,95.734c0,52.873-42.861,95.734-95.734,95.734v11.516c59.233,0,107.25-48.017,107.25-107.25C217.25,50.768,169.233,2.75,110,2.75z%22/%3E%3C/svg%3E");background-size:cover;border-radius:50%;border-style:solid;border-width:3px;display:inline-block;height:65px;width:65px}#number-piv{display:inline-block;height:60px;padding:15px 10px 15px 60px;vertical-align:top;width:auto}#guiBalanceBox{display:inline-block;font-size:x-large}#balance-box{background:linear-gradient(90deg,hsla(0,0%,48%,.5),rgba(115,0,255,.4));display:block!important;height:125px;margin:20px auto 0!important;width:95%}#bal-title{float:right;padding:45px 50px}#big-frame-address{display:block;height:auto;margin:0 auto;padding-top:40px;width:90%}#address-box{height:380px;padding:30px 25px}#address-box.large-box{background:linear-gradient(54deg,rgba(43,9,80,.45),rgba(43,9,80,.02));margin:0 auto;width:96%!important}#title-address-box{margin:0!important;padding:10px 20px 0 30px;width:30%}#box-info-address{display:inline-block;padding-top:40px;width:69%}#address-info{display:inline-block;padding:0 0 20px 40px;width:75%}#guiAddress{display:inline-block;font-family:monospace;font-size:16px;font-weight:300;line-break:anywhere;width:100%;word-break:break-all}#guiQRButton{font-size:large;padding:10px 0;width:auto}#guiQRButton,#ring{display:inline-block}#ring{padding:10px 10px 20px 50px}#identicon{background-color:#fff;border:3px solid #fff;border-radius:1000px}.mobile-pubkey{display:none!important}#box-info-address{vertical-align:top}#pubkey-padd{display:inline-block;height:auto;width:30%}#pubkey-box.col-md-4{clear:both;display:block!important;float:none;max-width:100%;padding:0 0 20px}#pubkey-box{display:block;margin:0;text-align:center;width:100%!important}#PrivateCipheredQR img,#PrivateQR img,#PublicQR img{height:95px!important;width:95px!important}#PrivateCipheredTxt,#PrivateTxt{color:#000;font-size:12px!important;line-height:20px;text-align:center}.margin-padded-qr{margin-bottom:10px;padding:5px 10px 10px}.add-frame{background:rgba(72,2,125,.6);border:1px solid #a366ff;border-radius:8px;display:block;height:800px!important;margin:0 auto;padding:5px;width:85%!important}#stake-title{cursor:default;display:inline-block;margin:0}#StakingTab{margin:20px 0 100px;padding:10px 10px 30px}.staking-banner-bottom{display:flex;flex-wrap:wrap;justify-content:space-evenly;min-height:200px;width:100%}.staking-rewards-header{font-size:large;height:15%;overflow:hidden}.staking-rewards-list{font-size:large;height:85%;overflow:auto}#staking-rectangle{border-bottom:1px solid #a366ff;display:block;height:100px;max-width:100%!important;position:relative}#pivx-price-box{float:left;height:100px;width:240px}#icon-box-piv{display:inline-block;height:80px;margin:0!important;padding:20px 15px 40px 35px;width:80px}#piv-price-amount{float:right;margin:0!important;padding:30px}#guiBalanceBoxStaking{display:inline-block;font-size:x-large;margin:0}#staking-box{float:right!important;height:100px;padding:30px 30px 30px 20px;width:220px}.staking-piv-icon{background-image:url("/%3C?xml%20version=%221.0%22%20encoding=%22utf-8%22?%3E%3C!--%20Generator:%20Adobe%20Illustrator%2015.0.0,%20SVG%20Export%20Plug-In%20.%20SVG%20Version:%206.00%20Build%200)%20%20--%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-/W3C/DTD%20SVG%201.1/EN%22%20%22http:/www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd%22%3E%3Csvg%20version=%221.1%22%20id=%22Layer_1%22%20xmlns=%22http:/www.w3.org/2000/svg%22%20xmlns:xlink=%22http:/www.w3.org/1999/xlink%22%20x=%220px%22%20y=%220px%22%20width=%22220px%22%20height=%22220px%22%20viewBox=%220%200%20220%20220%22%20enable-background=%22new%200%200%20220%20220%22%20xml:space=%22preserve%22%3E%3Cpath%20fill=%22#FFFFFF%22%20d=%22M110,14.266c-52.873,0-95.734,42.862-95.734,95.734c0,52.873,42.862,95.734,95.734,95.734c52.873,0,95.734-42.861,95.734-95.734C205.734,57.127,162.873,14.266,110,14.266z%20M110,197.839c-48.511,0-87.838-39.326-87.838-87.839c0-48.511,39.327-87.838,87.838-87.838c48.513,0,87.839,39.327,87.839,87.838C197.839,158.513,158.513,197.839,110,197.839z%22/%3E%3Cpath%20fill=%22#2A1B42%22%20d=%22M180.639,159.374c-66.3,0-121.609-47.055-134.355-109.589C31.436,65.491,22.328,86.681,22.328,110c0,48.42,39.252,87.672,87.672,87.672c30.117,0,56.685-15.188,72.469-38.321C181.858,159.358,181.251,159.374,180.639,159.374z%22/%3E%3Cpath%20fill=%22#4D3077%22%20d=%22M180.983,159.531c0.458,0,0.914-0.01,1.372-0.018c9.66-14.09,15.316-31.14,15.316-49.514c0-48.419-39.252-87.672-87.672-87.672c-25.176,0-47.871,10.616-63.86,27.611C59.127,112.509,114.562,159.531,180.983,159.531z%22/%3E%3Cpath%20fill=%22#FFFFFF%22%20d=%22M115.302,93.254c2.868-0.005,5.191-2.336,5.191-5.203c0-2.873-2.329-5.203-5.202-5.203l-40.258-0.012c-0.405,0-0.739,0.328-0.739,0.739c0,1.436,0,4.47,0,4.494c0,2.789,2.193,5.077,4.94,5.238C79.259,93.302,115.298,93.254,115.302,93.254z%22/%3E%3Cpath%20fill=%22#FFFFFF%22%20d=%22M125.196,52.4L125.196,52.4c-0.309-0.006-42.636-0.012-42.636-0.012c-0.405,0-0.738,0.328-0.738,0.739c0,1.437,0,4.47,0,4.494c0,2.79,2.192,5.078,4.94,5.239c0.03,0,36.217-0.083,36.217-0.083l0,0c1.348,0,2.599,0.06,2.599,0.06c13.344,0.649,23.97,11.723,23.97,25.228c0,13.636-10.83,24.691-24.364,25.132v-0.006c-0.352,0.012-38.125-0.011-38.125-0.011c-0.262,0-0.512,0.017-0.763,0.053c-2.396,0.352-4.255,2.331-4.428,4.78v51.485c0,0.405,0.328,0.738,0.739,0.738c1.437,0,4.471,0,4.494,0c2.789,0,5.078-2.192,5.238-4.939c0-0.02,0.018-40.938,0.018-40.938c0-0.012,0-0.023,0-0.03c0.018-0.356,0.322-0.637,0.679-0.637c0.007,0,32.916-0.023,32.916-0.023c2.831-0.127,5.577-0.585,8.2-1.336c14.947-4.266,25.889-17.951,25.889-34.262C160.062,68.629,144.53,52.847,125.196,52.4z%22/%3E%3ClinearGradient%20id=%22SVGID_1_%22%20gradientUnits=%22userSpaceOnUse%22%20x1=%222.75%22%20y1=%22110%22%20x2=%22110%22%20y2=%22110%22%3E%3Cstop%20%20offset=%220%22%20style=%22stop-color:#2A1B42%22/%3E%3Cstop%20%20offset=%221%22%20style=%22stop-color:#4D3077%22/%3E%3C/linearGradient%3E%3Cpath%20fill=%22url(#SVGID_1_)%22%20d=%22M110,205.734c-52.873,0-95.734-42.861-95.734-95.734c0-52.873,42.862-95.734,95.734-95.734V2.75C50.768,2.75,2.75,50.768,2.75,110c0,59.233,48.018,107.25,107.25,107.25V205.734z%22/%3E%3ClinearGradient%20id=%22SVGID_2_%22%20gradientUnits=%22userSpaceOnUse%22%20x1=%22110%22%20y1=%22110%22%20x2=%22217.25%22%20y2=%22110%22%3E%3Cstop%20%20offset=%220%22%20style=%22stop-color:#4D3077%22/%3E%3Cstop%20%20offset=%221%22%20style=%22stop-color:#662F90%22/%3E%3C/linearGradient%3E%3Cpath%20fill=%22url(#SVGID_2_)%22%20d=%22M110,2.75v11.516c52.873,0,95.734,42.862,95.734,95.734c0,52.873-42.861,95.734-95.734,95.734v11.516c59.233,0,107.25-48.017,107.25-107.25C217.25,50.768,169.233,2.75,110,2.75z%22/%3E%3C/svg%3E");background-size:cover;border-radius:1000px;border-style:solid;border-width:3px;display:inline-block;height:55px;width:55px}.stake-box{height:220px;margin-left:auto!important;margin-right:auto!important;margin:30px 5px 10px;text-align:center}.stake-balances{margin-bottom:.75rem;margin-top:1rem;padding:5px}.stake-input{color:#000;font-size:16px!important;line-height:20px;text-align:center}#foot{backdrop-filter:blur(4px);background-color:#2b09508c;border-top:1px solid #521186;bottom:0;display:block;left:0;padding:10px;position:fixed;width:100%}.footer{color:#fff;padding:0;text-align:center;width:100%}.footer a{color:#fff;font-weight:700}#dcfooter{display:inline}.navbarSpecial{background:linear-gradient(90deg,#2c0b4c 12.5%,#500f83,#2c0b4c);border-bottom:1px solid #521186;min-height:77px;position:fixed;width:100%}.pivx-button-small{font:13px Montserrat,sans-serif!important;font-family:Montserrat,sans-serif;padding:8px 18px}.pivx-button-big,.pivx-button-small{background-image:linear-gradient(183deg,#9621ff,#7d21ff);-webkit-border-radius:35px;-moz-border-radius:35px;-ms-border-radius:35px;border-radius:35px;-webkit-box-shadow:3px 3px 25px 2px rgba(26,14,42,.5);-moz-box-shadow:3px 3px 25px 2px rgba(26,14,42,.5);box-shadow:3px 3px 25px 2px rgba(26,14,42,.5);color:#fffeff;display:inline-block;height:auto;letter-spacing:.025em;line-height:1.25em;margin:5px;outline:none;position:relative;text-transform:uppercase;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;z-index:1}.pivx-button-big{font:15px Montserrat,sans-serif!important;font-family:Montserrat,sans-serif;padding:14px 30px}.pivx-button-big-no-gov{background-image:linear-gradient(183deg,#b31010,#a10e0e);border-color:#850c0c;pointer-events:none}.pivx-button-big-yes-gov{background-image:linear-gradient(183deg,#27823f,#237639);border-color:#1f6130;pointer-events:none}.pivx-button-big:before{background-image:linear-gradient(183deg,#8e1fef,#741cef);bottom:0;content:"";left:0;opacity:0;position:absolute;right:0;top:0;transition:all .2s ease-in-out;z-index:-1}.pivx-button-big:before,.pivx-button-medium{-webkit-border-radius:35px;-moz-border-radius:35px;-ms-border-radius:35px;border-radius:35px}.pivx-button-medium{background-image:linear-gradient(183deg,#9621ff,#7d21ff);-webkit-box-shadow:3px 3px 25px 2px rgba(26,14,42,.5);-moz-box-shadow:3px 3px 25px 2px rgba(26,14,42,.5);box-shadow:3px 3px 25px 2px rgba(26,14,42,.5);color:#fffeff;display:inline-block;height:auto;line-height:1.25em;font:13px Montserrat,sans-serif!important;font-family:Montserrat,sans-serif;letter-spacing:.025em;margin:5px;outline:none;padding:8px 16px;position:relative;text-transform:uppercase;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;z-index:1}.pivx-button-medium::hover{background-image:linear-gradient(183deg,#8e1fef,#741cef);-webkit-border-radius:35px;-moz-border-radius:35px;-ms-border-radius:35px;border-radius:35px;bottom:0;content:"";left:0;opacity:0;position:absolute;right:0;top:0;transition:all .2s ease-in-out;z-index:-1}.pivx-button-big:hover:before{opacity:1}.button-padd{display:inline-block;height:auto;padding:15px 10px;width:auto}.home-hero{background:radial-gradient(45vw 80% at 90% 40%,rgba(162,50,255,.3),rgba(44,11,76,0) 95%),linear-gradient(90deg,rgba(44,11,76,.9),rgba(80,15,131,.5) 60%,rgba(44,11,76,.9)),linear-gradient(35deg,rgba(44,11,76,.3),rgba(80,15,131,.3) 37%,rgba(44,11,76,.3) 0,rgba(80,15,131,.3) 76%,rgba(44,11,76,.3) 0,rgba(80,15,131,.3)),linear-gradient(90deg,#2c0b4c,#500f83 60%,#2c0b4c)}.title-section{margin-bottom:20px}.warning-message{background-color:#9021fe;display:none;margin-bottom:15px;padding-bottom:20px;padding-top:20px}.warning-message p{margin-bottom:0}.warning-message a{background-color:transparent;color:#fff;font-weight:700;text-decoration:none}.alert-danger{background-color:#4b1282;border-color:#8300ff;color:#fff}.pivx-bold-title{font-size:calc(37.88235px + .70588vw)}.pivx-bold-title,.pivx-bold-title-smaller{font-family:Montserrat,sans-serif;font-weight:700;line-height:1.35em}.pivx-bold-title-smaller{font-size:38px}.pivx-bold-title span,.pivx-bold-title-smaller span{display:block;font-size:.6em;font-weight:300;line-height:1.2em}.center-text{text-align:center}.pivx-feature-father{margin-top:90px}.pivx-feature-interior{background:linear-gradient(90deg,#2b1542,#230f3c);border-radius:10px;padding:25px;text-align:center}.pivx-feature-interior h4{font-size:24px;font-weight:600;margin-top:19px}.pivx-feature-interior h5{font-size:16px;font-weight:300!important;line-height:1.75em;opacity:.65;padding:.7rem 0 1.25rem}.feature-icon{margin-top:-90px;min-height:150px;text-align:center;width:100%!important}.feature-icon img{height:auto;width:146px}.smaller-feature{width:100px!important}.features-section{margin-top:0}.buttoni-icon{display:inline-block;padding:0 12px 0 0;-webkit-transition:all .2s ease-out;-moz-transition:all .2s ease-out;-o-transition:all .2s ease-out;transition:all .2s ease-out;vertical-align:top}.buttoni-icon svg{fill:#fffeff;display:block;height:24px;margin:0;max-height:24px;width:auto}.buttoni-text{display:inline-block;padding:1px 0 0;vertical-align:top}.buttoni-arrow{display:inline-block;padding:4px 0 4px 10px;-webkit-transition:all .2s ease-out;-moz-transition:all .2s ease-out;-o-transition:all .2s ease-out;transition:all .2s ease-out;vertical-align:top!important}.buttoni-arrow svg{fill:#fffeff;display:block;height:auto;margin:0;width:15px}.purple-icon-link{color:#9621ff}.purple-icon-link,.white-icon-link{font-weight:500;padding:0;text-transform:uppercase}.black-link .link-icon.link-icon-suffix,.dark-link .link-icon.link-icon-suffix,.faded-link .link-icon.link-icon-suffix,.gray-link .link-icon.link-icon-suffix,.light-link .link-icon.link-icon-suffix,.pink-link .link-icon.link-icon-suffix,.purple-icon-link .link-icon.link-icon-suffix,.purple-link .link-icon.link-icon-suffix,.shaded-link .link-icon.link-icon-suffix,.white-icon-link .link-icon.link-icon-suffix,.white-link .link-icon.link-icon-suffix,a .link-icon.link-icon-suffix{float:right;margin-top:2px;padding:0 0 0 .6rem;-webkit-transition:padding-left .14s ease-out;-moz-transition:padding-left .14s ease-out;-o-transition:padding-left .14s ease-out;transition:padding-left .14s ease-out}.black-link .link-icon svg,.dark-link .link-icon svg,.faded-link .link-icon svg,.gray-link .link-icon svg,.light-link .link-icon svg,.pink-link .link-icon svg,.purple-icon-link .link-icon svg,.purple-link .link-icon svg,.shaded-link .link-icon svg,.white-icon-link .link-icon svg,.white-link .link-icon svg,a .link-icon svg{fill:#cac9d2;display:block;height:auto;width:19px}.black-link,.dark-link,.faded-link,.gray-link,.light-link,.pink-link,.purple-icon-link,.purple-link,.shaded-link,.white-icon-link,.white-link,a{background:none;border:none;display:inline-block;outline:none;text-decoration:none!important;vertical-align:top}.dashboard-item{background:rgba(43,9,80,.75);border-radius:6px;float:left;margin-bottom:15px;padding:40px;text-align:center}.send-eligibility-section .container .column-padded-around .coinstat-icon,.supply-control-section .container .column-padded-around .coinstat-icon{margin-bottom:.5rem}.coinstat-icon,.coinstat-icon svg,.masternodes-requirements-section .masternode-requirement-icon,.masternodes-requirements-section .masternode-requirement-icon svg,.setup-icon,.setup-icon svg{margin:0 auto}.coinstat-icon,.feature-icon,.masternodes-requirements-section .masternode-requirement-icon,.setup-icon{display:block;height:75px;padding:0;width:75px}.coinstat-icon svg,.feature-icon svg,.masternodes-requirements-section .masternode-requirement-icon svg,.setup-icon svg{fill:#9621ff;display:block;max-height:75px;padding:0;width:75px}.dashboard-title{margin-top:15px}.badge{margin-bottom:13px}.private-key-area{background:#521685;border:none;color:#fff;font-size:14px!important;height:29px!important;padding-bottom:4px;padding-top:4px;resize:none}.export-key{overflow-x:scroll;overflow-y:hidden;padding-bottom:36px;white-space:nowrap;width:100%}#sendNotice{margin:10px 0 20px}#communication{color:#fff;opacity:.6;padding:15px 5px 70px}#signed-raw{padding:10px 0 5px}.bold-trans{font-size:20px!important;font-weight:600!important;padding:15px 0!important}#submit-button.pivx-button-big{padding:14px 90px;width:auto!important}@media screen and (max-width:1200px){.button-padd .pivx-button-big{display:inline-block!important;margin:0;padding:15px 13px;width:100%!important}}@media screen and (max-width:1199px){#genKeyWarning .pivx-button-big{margin-top:20px}#PrivateCipheredQR img,#PrivateQR img,#PublicQR img{height:90px!important;width:90px!important}#box-info-address{width:64%}#address-info{width:60%}#pubkey-padd{width:33%}}@media screen and (min-width:1025px){#PrivateCipheredTxt,#PrivateTxt,#PublicTxt{font-size:25px}}@media screen and (max-width:1024px){#PrivateCipheredTxt,#PrivateTxt{font-size:18px}#PublicTxt{font-size:25px}#Settings .pivx-button-big{margin:8px 2px}}@media screen and (max-width:1000px){#guiBalanceBoxStaking{display:inline-block;width:100%}.stake-box.large-box.col-md-4{display:inline-block!important;margin:30px 10px!important;padding:10px;width:50%!important}.add-frame{width:100%!important}.stake-box .button-padd{padding:15px 6px}.stake-box .button-padd .pivx-button-big{padding:15px 22px 15px 27px}.stake-box .button-padd .buttoni-icon{display:none}.button-padd .buttoni-arrow{padding-left:5px;padding-right:0}}@media screen and (max-width:992px){#big-frame-address{padding-top:20px}#genKeyWarning div{max-width:100%!important}#genKeyWarning p{padding-bottom:15px;width:100%!important}#genKeyWarning .pivx-button-big{clear:both;display:block!important;float:none;margin:0 auto}#bcg-wallet-box{height:98%}#address-box.large-box{background:none;height:260px}#box-info-address{display:block;padding-top:20px;width:100%}#address-info{width:69%}.margin-padded-qr{margin-bottom:10px;padding:10px}#pubkey-padd{padding-top:60px;width:auto}#pubkey-box,#pubkey-padd{display:block}#pubkey-box .pivx-button-big{width:230px!important}#PrivateCipheredQR img,#PrivateQR img,#PublicQR img{height:75px!important;width:75px!important}.intro-page .col-md-11{padding-bottom:35px;width:100%!important}}@media screen and (max-width:770px){#pivx-price-box{width:200px}#piv-price-amount{padding:30px 15px 30px 35px}#icon-box-piv{margin:0!important;padding:20px 10px 30px 15px}#staking-box{padding:30px 5px 30px 20px;width:190px}}@media screen and (max-width:768px){#PrivateCipheredTxt,#PrivateTxt{font-size:17px}#PublicTxt{font-size:25px}.dashboard-item{padding-left:5%;padding-right:5%}#balance-box{height:120px;width:92%}#guiBalanceBox{margin:0}#address-box.large-box{background:none;height:240px}#address-info{width:65%}#pubkey-box{padding-top:40px}#pubkey-box .pivx-button-big{width:225px!important}}@media screen and (max-width:767px){table td{max-width:130px}table td a{width:100%}table td a code{max-width:100%;min-width:30px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#genKeyWarning .pivx-button-big{padding:13px 20px}#piv-ring{display:none}#window-icon-piv{padding:30px 0 30px 30px}#ring{padding:0 5px 20px 50px}#identicon{height:60px;width:60px}.add-frame{height:1000px!important}.stake-box.large-box.col-md-4{padding:10px 20px;width:85%!important}.modal-dialog{margin:0;max-width:100%}.modal-content{height:100%}.modal-body{overflow-y:auto}}@media screen and (max-width:600px){.buttoni-arrow,.buttoni-icon{display:none}#PrivateCipheredTxt,#PrivateTxt{font-size:13px}#PublicTxt{font-size:17px}#staking-box{padding:30px 5px 30px 35px}#stake-title{font-size:25px}#submit-button.pivx-button-big{margin-top:20px;padding:14px 85px 14px 100px}#address-info{width:55%}}@media screen and (max-width:550px){#bcg-wallet-box{height:100%}#ring{padding:5px 5px 30px 40px;vertical-align:top}#bal-title{padding:45px 40px 45px 20px}#window-icon-piv{padding:30px 0}#address-box.large-box{border-color:#763acf;height:250px;padding-top:20px}#title-address-box{padding:10px 20px 0;width:auto}#box-info-address{padding-top:25px}#address-info{width:59%}#info{margin-bottom:35px}}@media screen and (max-width:535px){#pubkey-box .pivx-button-big{width:200px!important}}@media screen and (max-width:510px){#pubkey-box .pivx-button-big{padding:12px 10px}#icon-box-piv{display:none}#pivx-price-box{width:130px}}@media screen and (max-width:480px){#PrivateCipheredTxt,#PrivateTxt{font-size:8px}#PublicTxt{font-size:13px}#pivx-price-box{width:auto}#number-piv{padding:15px 5px 15px 40px}#ring{padding:5px 5px 30px 30px}#pubkey-padd{padding-top:40px}}@media screen and (max-width:420px){.max-width{width:98%}#Transaction.tabcontent{padding:10px 15px 110px}#submit-button.pivx-button-big{display:block;height:auto;margin:0 auto}.buttoni-arrow{display:none}#navbarToggler{left:290px;position:sticky}#piv-ring{display:none!important}#guiBalanceBox{font-size:18px!important}#balance-box h3{font-size:20px}#identicon{height:55px;width:55px}#pubkey-box .pivx-button-big{padding:11px 10px}#pubkey-box.col-md-4{padding-top:20px}}@media screen and (max-width:393px){#piv-price-amount{padding:30px 15px}#address-box.large-box{height:255px;padding-top:15px}#title-address-box{padding:18px 20px 0 15px}#ring{padding:5px 5px 30px 20px}#address-info{padding-left:15px}#pubkey-padd{padding-top:30px}}@media screen and (max-width:380px){#navbarToggler{left:180px}#staking-box{height:auto;padding:30px 10px 35px;width:auto}#number-piv{padding:15px 5px 15px 35px}#bal-title{padding:45px 30px 45px 10px}#balance-box h3{font-size:24px}#pubkey-box .pivx-button-big{padding:11px 10px}}@media screen and (max-width:360px){#address-info{padding-left:35px;width:90%}#guiQRButton{padding:15px 10px}#piv-price-amount{padding:30px 5px 30px 20px}#bal-title{padding:47px 25px 47px 10px}#balance-box h3{font-size:22px}#pubkey-box .pivx-button-big{width:150px!important}#staking-box{padding:35px 10px}#stake-title{font-size:22px!important;height:auto}}@media screen and (max-width:332px){#balance-box{height:140px;width:92%}#window-icon-piv{height:auto;padding:5px 10px}#bal-title{clear:both;float:none;padding:10px 10px 10px 50px}}@media screen and (max-width:320px){#navbarToggler{font-size:14px}.feature-icon img{height:auto;width:115px!important}.feature-icon .smaller-feature{height:auto;width:80px!important}#piv-price-amount{padding:30px 5px 30px 10px}#staking-box{padding:35px 5px}.pivx-button-big{font-size:14px!important}#submit-button.pivx-button-big{padding:14px 50px!important}}@media screen and (max-width:300px){#navbarToggler{font-size:12px;left:80px!important}#page-container{min-height:900px;min-width:280px}.container{padding-left:5px;padding-right:5px}.row{margin-left:1px;margin-right:1px}.features-section .col-md-6{clear:both!important;display:block!important;float:none!important;margin:100px 20px 50px auto;width:220px}.pivx-feature-interior{padding:15px 8px;width:100%!important}.pivx-bold-title{font-size:calc(32px + 1vw)}.add-frame{height:750px!important}.stake-box.large-box.col-md-4{margin:30px 10px 10px!important}#piv-price-amount{padding:30px 60px;text-align:center!important}#staking-box{border-bottom:1px solid #a366ff;padding:30px 20px;text-align:center;width:100%}#guiBalanceBoxStaking,#stake-title{font-weight:600}.stake-box .button-padd .pivx-button-big{padding:14px 18px}}.alertPositioning{bottom:0;display:flex;flex-direction:column;position:fixed;right:15px;z-index:2000}.alertpop{background-color:#282828b5;border-radius:5px;color:#fff;margin-bottom:15px;opacity:0;padding:20px;right:0;transition:opacity .3s ease-in-out}.alertpop.success{background-color:#0de69694}.alertpop.info{background-color:#2196f37d}.alertpop.warning{background-color:#d94a2982}.alertpop:hover{cursor:pointer}.height-100{height:100%}.dashboard-display{align-content:center;display:flex;flex-wrap:wrap;justify-content:center}.textbox-opacity-trans{opacity:0}.bounce-ani{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes bounce{0%,20%,50%,80%,to{-webkit-transform:translateY(0)}40%{-webkit-transform:translateY(-20px)}60%{-webkit-transform:translateY(-10px)}}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-20px)}60%{transform:translateY(-10px)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce}.no-antialias{-ms-interpolation-mode:nearest-neighbor;image-rendering:optimizeSpeed;image-rendering:-moz-crisp-edges;image-rendering:-o-crisp-edges;image-rendering:-webkit-optimize-contrast;image-rendering:pixelated;image-rendering:optimize-contrast}.wallet-code{background-color:rgba(0,0,0,.14);border-radius:5px;display:block;margin-bottom:1px;padding:6px 9px;width:100%}.exportPrivateKey{font-weight:700}.pubPrivKey{background-color:rgba(0,0,0,.25);border-radius:6px;color:#ede3f7;display:block;font-weight:900;margin-top:4px;padding:8px 12px}.newBtn-red-outline{background-color:#fff;border:2px solid #ffdede;border-radius:8px;color:#ff8071;font-size:14px;padding:6px 10px}.newBtn-red-outline:hover{background-color:#fff7f6;border:2px solid #ffdede;color:#ff8071}.newBtn-red-outline:focus{border:2px solid #f9bbbb;box-shadow:0 0 0 .2rem #f9bbbb40}.newBtn-purple-outline{background-color:#fff;border:2px solid #d3bcf1;border-radius:8px;color:#ad78f3;font-size:14px;padding:6px 10px}.newBtn-purple-outline:hover{background-color:#f1e9fb;border:2px solid #d3bcf1;box-shadow:none;color:#ad78f3}.newBtn-purple-outline:focus{border:2px solid #cba7fa;box-shadow:0 0 0 .2rem #cba7fa40}.navbar-nav .nav-item span{cursor:pointer;margin-left:5px;margin-right:5px;transition:all .2s ease-in-out}.modal-content .modal-footer,.modal-content .modal-header{border:0}.dcWallet-balances{backdrop-filter:blur(4px);background-color:hsla(0,0%,100%,.12);border-radius:13px;border-bottom-left-radius:25px;border-bottom-right-radius:25px;max-width:310px;padding:3px 0 0}.dcWallet-balances .lessBot{margin-bottom:-20px}.dcWallet-balances .lessTop{margin-top:-28px}.dcWallet-balances .dcWallet-pivxBalance{font-size:38px}.dcWallet-balances .dcWallet-pivxTicker{font-size:17px}.dcWallet-balances .dcWallet-usdBalance{display:block;margin-top:-9px}.dcWallet-balances .dcWallet-usdValue{color:#cecece;font-size:13px}.dcWallet-activityLbl{display:block;font-size:20px;font-weight:700;margin-bottom:10px}.dcWallet-activity{backdrop-filter:blur(4px);background-color:hsla(0,0%,100%,.12);border-radius:10px;padding:14px 16px}.dcWallet-svgIconPurple{display:inline-block;margin-top:-20px;position:relative;top:6px}.dcWallet-svgIconPurple svg{fill:#f2e2ff;display:block;height:21px;margin:0;max-height:21px;width:auto}.dcWallet-warningMessage{background-color:hsla(0,0%,100%,.12);background:radial-gradient(45vw 80% at 90% 40%,rgb(223 185 255/5%),rgba(44,11,76,0) 95%),linear-gradient(52deg,rgba(43,11,76,0),#500f8300 60%,rgba(44,11,76,0)),linear-gradient(35deg,rgba(153,114,192,.28),rgba(171,133,201,.15) 37%,rgba(80,32,126,.45) 0,rgba(102,45,147,.25) 76%,rgba(61,19,102,.22) 0,rgba(124,37,193,.34)),linear-gradient(90deg,rgba(44,11,76,.12),#500f8300 60%,#2c0b4c00);border-radius:10px;cursor:pointer;display:flex;line-height:18px;margin-bottom:15px;max-width:310px;padding:8px 12px;text-align:left}.dcWallet-warningMessage .shieldLogo{padding-right:12px;padding-top:1px}.dcWallet-warningMessage .shieldLogo .shieldBackground{background-color:rgba(0,0,0,.18);border-radius:10px;height:35px;width:35px}.dcWallet-warningMessage .lockUnlock{align-content:center;display:flex;flex-wrap:wrap}.dcWallet-topRightMenu{cursor:pointer;font-size:18px;transition:all .2s ease-in-out;width:27px}.dcWallet-topRightMenu .btn-group{margin-right:6px;margin-top:8px}.dcWallet-topRightMenu:hover{color:#dcdcdc}.dcWallet-topRightMenu .dropdown-move{transform:translate3d(12px,26px,0)}.dcWallet-topRightMenu .dropdown-move .dropdown-menu{backdrop-filter:blur(5px);background-color:rgba(88,37,131,.95);border:1px solid #9552cb}.dcWallet-topRightMenu .dropdown-move .dropdown-menu .dropdown-item{color:#fff;transition:all .2s ease-in-out}.dcWallet-topRightMenu .dropdown-move .dropdown-menu .dropdown-item:hover{background-color:#ffffff1a}@media (max-width:768px){.modal-full{height:-webkit-fill-available}.modal-full .modal-content{height:100%}}.exportKeysModalColor{backdrop-filter:blur(5px);background-color:#410970c7;color:#fff}.exportKeysModalColor h3{color:#d5adff!important}.dcWallet-privateKeyDiv{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;width:100%}.dcWallet-privateKeyDiv img{width:110px}.dcWallet-privateKeyDiv code{background-color:#00000033;border-radius:12px;padding:10px 15px;text-align:center;transition:all .2s ease-in-out;width:85%}.dcWallet-privateKeyDiv .blurred{color:transparent;text-shadow:0 0 8px #e83e8c}.dcWallet-privateKeyDiv h3{margin-bottom:10px}.dcWallet-privateKeyDiv .span1{color:#b9b9b9;display:block;font-size:15px;font-weight:700;margin-bottom:2px}.dcWallet-privateKeyDiv .span2{-webkit-text-fill-color:transparent;background:-webkit-linear-gradient(0deg,#8b4dfa,#f51e72);-webkit-background-clip:text;display:block;font-size:15px;font-weight:700;margin-bottom:30px}.dcWallet-topLeftMenu{font-size:18px;transition:all .2s ease-in-out;width:27px}.textboxTransparency{background-color:hsla(0,0%,100%,.15);color:#fff;transition:all .2s ease-in-out}.textboxTransparency::placeholder{color:#d3d3d3}input{outline-color:#b4b4b4}.dcWallet-btn-left{border-radius:24px;border-bottom-right-radius:7px;border-top-left-radius:7px}.dcWallet-btn-left,.dcWallet-btn-right{background-color:#ffffff29;background-image:linear-gradient(183deg,#9621ff,#7d21ff);cursor:pointer;height:43px;margin-top:17px;padding-top:9px;width:100px}.dcWallet-btn-right{border-radius:24px;border-bottom-left-radius:7px;border-top-right-radius:7px}.blackBack{background-color:#000;height:100vh;left:0;opacity:.5;position:fixed;top:0;transition:all .15s ease-in-out;width:100vw;z-index:1040}.blackBackHide{opacity:0!important}.abcd{backdrop-filter:blur(4px);background-color:hsla(0,0%,100%,.12);border-radius:10px;padding:14px 16px}.btn-group-input{border-bottom-right-radius:0;border-top-right-radius:0;-ms-flex:1 1 auto;flex:1 1 auto;margin-bottom:0;min-width:0;position:relative;width:1%}.input-group-text{background-color:#fff;border:0;border-bottom-right-radius:8px;border-top-right-radius:8px;font-size:13px}.cur-pointer{cursor:pointer}.stakingTx{color:#fff;font-size:14px}.stakingTx thead tr th{border-top:0;border-color:#ffffff5c}.stakingTx tbody tr td{border-top:1px solid #ffffff1f}.stakingTx tbody tr{transition:all .125s ease-in-out}.stakingTx tbody tr:hover{background-color:#ffffff1a}.badge-purple{background-color:#9552cf!important;border-radius:4px;padding:5px 7px 4px}.pr-10px{padding-right:10px!important}.table-mobile-scroll{display:block;overflow-x:auto;white-space:nowrap}@media (max-width:767.98px){.tx1{width:64px}.tx2{width:900px}.tx3{width:69px}.tx4{width:40px}}@media (min-width:767.98px){.tx1{width:190px}.tx2{width:900px}.txcode code{width:max-content}.tx3{width:900px}.tx4{width:300px}}.closeCross{color:#fff;font-size:20px}.dropdown{z-index:10}.scrollTable{display:flex;flex-flow:column;max-height:500px;overflow-y:scroll}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:#e7e7e7;border-radius:10px}::-webkit-scrollbar-thumb{background:#797979;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#696969}@media (min-width:768px){.max-w-600{max-width:600px}}.table-promo{max-height:0;transition:all .5s ease-in-out}select.form-control{border:1px solid hsla(0,0%,100%,.22)}select.form-control,select.form-control:focus{background-color:hsla(0,0%,100%,.18);color:#fff}select.form-control:focus{border:1px solid hsla(0,0%,100%,.4);box-shadow:0 0 0 .2rem hsla(0,0%,100%,.22)}select.form-control option{background-color:#734596}.settingsMenu{background-color:rgba(132,101,159,.14);border-radius:9px;list-style:none;margin-bottom:0;padding-left:0}.settingsMenu li{border-radius:9px;margin-top:1px;padding-bottom:9px;padding-left:11px;padding-top:9px;transition:all .125s ease-in-out}.settingsMenu li:hover{background-color:rgba(132,101,159,.35);color:#fff!important;cursor:pointer}.settingsMenu .active{background-color:rgba(132,101,159,.19);color:#d1b1ed!important}.settingsContent{background-color:rgba(132,101,159,.14);border-radius:9px;font-size:15px;padding:13px 17px 20px}.settingsContent .header-title{display:block;font-size:17px;font-weight:600;margin-bottom:12px}.settingsContent hr{background-color:rgba(132,101,159,.37);margin-left:-17px;margin-right:-17px;margin-top:11px}.custom-switch{padding-left:55px}.custom-switch .custom-control-label{padding-top:3px}.custom-switch .custom-control-label:before{border-radius:100px;height:22px;left:-55px;width:45px}.custom-switch .custom-control-label:after{height:18px;left:-53px;width:18px}.custom-switch .custom-control-input:checked~.custom-control-label:after{-webkit-transform:translateX(22px);transform:translateX(22px)}.custom-control-input:checked~.custom-control-label:before{background-color:#9169b5;border-color:#9169b5;color:#fff}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#9169b575}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem #9169b575}#analyticsDescriptor{margin-bottom:27px}#foot{z-index:200}.flipdown.flipdown__theme-dark{font-family:sans-serif;font-weight:700}.flipdown.flipdown__theme-dark .rotor-group-heading:before{color:#cac9d2;font-size:13px}.flipdown.flipdown__theme-dark .rotor-group:nth-child(n+2):nth-child(-n+3):after,.flipdown.flipdown__theme-dark .rotor-group:nth-child(n+2):nth-child(-n+3):before{background-color:#31125f}.flipdown.flipdown__theme-dark .rotor,.flipdown.flipdown__theme-dark .rotor-leaf-front,.flipdown.flipdown__theme-dark .rotor-top{background-color:#31125f;color:#fff}.flipdown.flipdown__theme-dark .rotor-bottom,.flipdown.flipdown__theme-dark .rotor-leaf-rear{background-color:#461989;color:#efefef}.flipdown.flipdown__theme-dark .rotor:after{border-top:1px solid #31125f}.flipdown{margin-top:7px;overflow:visible}.flipdown .rotor-group{float:left;padding-right:30px;position:relative}.flipdown .rotor-group:last-child{padding-right:0}.flipdown .rotor-group-heading:before{display:block;height:30px;line-height:30px;text-align:center}.flipdown .rotor-group:first-child .rotor-group-heading:before,.flipdown .rotor-group:nth-child(2) .rotor-group-heading:before,.flipdown .rotor-group:nth-child(3) .rotor-group-heading:before,.flipdown .rotor-group:nth-child(4) .rotor-group-heading:before{content:attr(data-before)}.flipdown .rotor-group:nth-child(n+2):nth-child(-n+3):before{border-radius:50%;bottom:20px;content:"";height:10px;left:85px;position:absolute;width:10px}.flipdown .rotor-group:nth-child(n+2):nth-child(-n+3):after{border-radius:50%;bottom:35px;content:"";height:10px;left:85px;position:absolute;width:10px}.flipdown .rotor{border-radius:4px;float:left;font-size:48px;height:60px;margin:0 5px 0 0;perspective:200px;position:relative;text-align:center;width:35px}.flipdown .rotor:last-child{margin-right:0}.flipdown .rotor-bottom,.flipdown .rotor-top{height:30px;overflow:hidden;position:absolute;width:35px}.flipdown .rotor-leaf{height:60px;position:absolute;transform-style:preserve-3d;transition:transform 0s;width:35px;z-index:1}.flipdown .rotor-leaf.flipped{transform:rotateX(-180deg);transition:all .5s ease-in-out}.flipdown .rotor-leaf-front,.flipdown .rotor-leaf-rear{backface-visibility:hidden;-webkit-backface-visibility:hidden;height:30px;margin:0;overflow:hidden;position:absolute;transform:rotateX(0deg);width:35px}.flipdown .rotor-leaf-front{border-radius:4px 4px 0 0;line-height:60px}.flipdown .rotor-leaf-rear{border-radius:0 0 4px 4px;line-height:0px;transform:rotateX(-180deg)}.flipdown .rotor-top{border-radius:4px 4px 0 0;line-height:60px}.flipdown .rotor-bottom{border-radius:0 0 4px 4px;bottom:0;line-height:0px}.flipdown .rotor:after{border-radius:0 0 4px 4px;bottom:0;content:"";height:30px;left:0;position:absolute;width:35px;z-index:2}@media (max-width:550px){.flipdown{height:70px;width:312px}.flipdown .rotor{font-size:2.2rem;margin-right:3px}.flipdown .rotor,.flipdown .rotor-bottom,.flipdown .rotor-leaf,.flipdown .rotor-leaf-front,.flipdown .rotor-leaf-rear,.flipdown .rotor-top,.flipdown .rotor:after{width:30px}.flipdown .rotor-group{padding-right:20px}.flipdown .rotor-group:last-child{padding-right:0}.flipdown .rotor-group-heading:before{font-size:.8rem;height:20px;line-height:20px}.flipdown .rotor-group:nth-child(n+2):nth-child(-n+3):after,.flipdown .rotor-group:nth-child(n+2):nth-child(-n+3):before{left:69px}.flipdown .rotor-group:nth-child(n+2):nth-child(-n+3):before{bottom:13px;height:8px;width:8px}.flipdown .rotor-group:nth-child(n+2):nth-child(-n+3):after{bottom:29px;height:8px;width:8px}.flipdown .rotor-leaf-front,.flipdown .rotor-top{line-height:50px}.flipdown .rotor,.flipdown .rotor-leaf{height:50px}.flipdown .rotor-bottom,.flipdown .rotor-leaf-front,.flipdown .rotor-leaf-rear,.flipdown .rotor-top,.flipdown .rotor:after{height:25px}}.governLink:hover{cursor:pointer;text-decoration:underline!important}.governInstallments{color:#d1d1d1;display:block;font-size:13px;line-height:17px}.governMarked{color:#9d57ff;font-weight:700}.governValues{display:block;line-height:18px;margin-bottom:8px}.governFiatSize{font-size:12px}.governLinkIco{color:#bdbdbd;font-size:11px;margin-left:3px}.governBudgetCard{font-size:15px}.governBudgetCard,.governPayoutTime{align-items:center;display:flex;flex-direction:column;font-weight:700;justify-content:center}.governTable thead tr td{background-color:#00000024;border-top:0;font-size:13px}.governTable .btlr-7p{border-top-left-radius:7px}.governTable .btrr-7p{border-top-right-radius:7px}.governTable .bblr-7p{border-bottom-left-radius:7px}.governTable .bbrr-7p{border-bottom-right-radius:7px}.governTable tbody tr td{border-top:1px solid #a7a7a72b}.governTable tbody tr:nth-child(2n),.governTable tbody tr:nth-child(4n-1){background-color:#0000000f!important}.governTable tbody tr{transition:all .125s ease-in-out}.governTable tbody tr:hover{background-color:#ffffff0a!important}.votesYes{color:#5bd376}.votesNo{color:#df4b6c}.governTable .votesBg{background-color:#00000021;border-radius:5px;padding:3px 6px}.governTable .governStatusCol{background-color:#00000017}.governTable .governStatusCol .governArrow{background-color:#00000045;border-radius:50%;height:25px;left:-11px;margin-top:-49px;position:absolute;width:25px}.governTable .governStatusCol .governArrow i{position:relative;top:1px}.governMobDot{background-color:#8d60e6;border-radius:50%;display:inline-block;height:11px;margin-left:17px;margin-right:6px;width:11px}.governHr{border-top:1px solid #a7a7a72b}.governAdd{height:31px;margin-top:6px;padding:7px 10px;position:absolute;right:0;width:31px}.fs-13{font-size:13px}.fw-600{font-weight:600}@media (min-width:992px){.for-mobile{display:none!important}}@media (max-width:992px){.for-desktop{display:none!important}.governPayoutTime{padding-top:26px}}.notifyWrapper{align-items:stretch;background-color:#320044;border:1px solid #9f00f9;border-radius:5px;cursor:pointer;display:inline-flex;margin-bottom:15px;opacity:1;opacity:0;transition:all .25s ease-in-out;z-index:999999}.notifyWrapper .notifyIcon{align-items:center;border-bottom-left-radius:5px;border-top-left-radius:5px;display:flex;margin-bottom:-1px;margin-left:-1px;margin-top:-1px;padding:20px 11px}.notifyWrapper .notify-warning{background-color:#630808;border-bottom:1px solid red;border-left:1px solid red;border-top:1px solid red}.notifyWrapper .notify-info{background-color:#084363;border-bottom:1px solid #0095ff;border-left:1px solid #0095ff;border-top:1px solid #0095ff}.notifyWrapper .notify-success{background-color:#1c6308;border-bottom:1px solid #1aff00;border-left:1px solid #1aff00;border-top:1px solid #1aff00}.notifyWrapper .notifyText{padding:14px 17px 14px 11px}.sliderStyle .arrow{display:none}.tooltip.sliderStyle{top:-10px!important}.sliderStyle .tooltip-inner{background-color:#ffffffb3;border-radius:25%;color:#000;font-weight:500;height:30px;width:30px}.slider{-webkit-appearance:none;background:hsla(0,0%,100%,.22);border-color:hsla(0,0%,100%,0);border-radius:7.5px;height:15px;opacity:.7;outline:none;-webkit-transition:.2s;transition:opacity .2s}.slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#b988e1;border-radius:50%;cursor:pointer;height:25px;width:25px}.slider::-moz-range-thumb{background:#b988e1;border-radius:50%;cursor:pointer;height:25px;width:25px}.sliderContainer{padding-left:12px;padding-right:12px;position:relative;width:100%}.slider{width:100%}@media (min-width:768px){.sliderDisplay{display:none}.max-w-450{max-width:450px}}.contactsList .contactItem{transition:all .25s ease-in-out}.contactsList .contactItem:hover{background-color:#0000001c!important}.contactsList .contactItem:nth-child(odd){background-color:#00000017}.contactsList .contactItem:nth-child(2n){background-color:#00000033}.contactsList .addContact .contactAddr input,.contactsList .addContact .contactName input,.contactsList .addContactBtn,.contactsList .qrContactBtn{background-color:#f2f2f233;border:1px solid #f2f2f224;color:#fff}.contactsList .addContact .contactAddr input::placeholder,.contactsList .addContact .contactName input::placeholder{color:#ddd}.contactsList .addContact .contactName input{border-bottom-right-radius:0;border-top-right-radius:0}.contactsList .addContact .contactAddr input{border-left:none;border-radius:0;border-right:none}.contactsList .addContactBtn{border-radius:0;border-right:none}.contactsList .addContactBtn,.contactsList .qrContactBtn{align-items:center;cursor:pointer;display:flex;font-weight:700;height:43px;padding:0 10px;transition:all .125s ease-in-out;width:fit-content}.contactsList .qrContactBtn{border-radius:7px;border-bottom-left-radius:0;border-top-left-radius:0}.contactsList .addContactBtn:hover,.contactsList .qrContactBtn:hover{background-color:#f2f2f24d}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:100;src:url(27998569b81a20746cf2.woff2) format("woff2"),url(56e0fc273d981655cc14.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:100;src:url(c86852180ac4b7a6ed59.woff2) format("woff2"),url(56e0fc273d981655cc14.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:100;src:url(5ed8791b8c9f4f2080cd.woff2) format("woff2"),url(56e0fc273d981655cc14.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:100;src:url(a71ddaa36e5629f98995.woff2) format("woff2"),url(56e0fc273d981655cc14.woff) format("woff");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:100;src:url(9cf8cf64790df859f528.woff2) format("woff2"),url(56e0fc273d981655cc14.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:100;src:url(c359bb76c53aab22d515.woff2) format("woff2"),url(8e1a9dd3df3d1d8624b4.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:100;src:url(9c8f46673c190d0cf2a5.woff2) format("woff2"),url(8e1a9dd3df3d1d8624b4.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:100;src:url(6fcf88d2df89c4b98588.woff2) format("woff2"),url(8e1a9dd3df3d1d8624b4.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:100;src:url(b58a4aedc4a07d1e8756.woff2) format("woff2"),url(8e1a9dd3df3d1d8624b4.woff) format("woff");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:100;src:url(168ed41f3a9a2ccc82e0.woff2) format("woff2"),url(8e1a9dd3df3d1d8624b4.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:200;src:url(629889be0dd868db61bf.woff2) format("woff2"),url(148509ae63c7112ce456.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:200;src:url(5aea48d147db169be57b.woff2) format("woff2"),url(148509ae63c7112ce456.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:200;src:url(53a7cc25b682af41f112.woff2) format("woff2"),url(148509ae63c7112ce456.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:200;src:url(2c66dd0a8c4ccb43c561.woff2) format("woff2"),url(148509ae63c7112ce456.woff) format("woff");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:200;src:url(4c484a7aa358bf3b2303.woff2) format("woff2"),url(148509ae63c7112ce456.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:200;src:url(a64d7848f30887c44880.woff2) format("woff2"),url(559047c13f0284d6133e.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:200;src:url(54e1baae78c8f888cc3a.woff2) format("woff2"),url(559047c13f0284d6133e.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:200;src:url(b401bba51085677f5eee.woff2) format("woff2"),url(559047c13f0284d6133e.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:200;src:url(fe748aafb2b26f77a8a7.woff2) format("woff2"),url(559047c13f0284d6133e.woff) format("woff");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:200;src:url(3ebf4198ade6d0eaab1e.woff2) format("woff2"),url(559047c13f0284d6133e.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:300;src:url(cf707a42896b30180f0a.woff2) format("woff2"),url(633e0c487de58429940b.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:300;src:url(de3cdfbab4c8ba298c96.woff2) format("woff2"),url(633e0c487de58429940b.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:300;src:url(1e6e5a7e763650cce1fe.woff2) format("woff2"),url(633e0c487de58429940b.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:300;src:url(592ab0c0119b0fa04bad.woff2) format("woff2"),url(633e0c487de58429940b.woff) format("woff");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:300;src:url(00e3a55fbf617671d0e8.woff2) format("woff2"),url(633e0c487de58429940b.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:300;src:url(6091a5d41e290c8af528.woff2) format("woff2"),url(cb25782d576cc4b35601.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:300;src:url(8a381d078cd679f5a017.woff2) format("woff2"),url(cb25782d576cc4b35601.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:300;src:url(260b5062c37e2f23cb52.woff2) format("woff2"),url(cb25782d576cc4b35601.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:300;src:url(7f5dee6c782fd4ff0e9c.woff2) format("woff2"),url(cb25782d576cc4b35601.woff) format("woff");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:300;src:url(0cc3e06704117dcfc367.woff2) format("woff2"),url(cb25782d576cc4b35601.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:400;src:url(0289d4b194cd4d018fcf.woff2) format("woff2"),url(34a6726ff4d909a17b08.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:400;src:url(ba4c0e505f18e8ddf91a.woff2) format("woff2"),url(34a6726ff4d909a17b08.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:400;src:url(a01c234a9a7ef8ea3532.woff2) format("woff2"),url(34a6726ff4d909a17b08.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:400;src:url(27878f4d618fa6e9797f.woff2) format("woff2"),url(34a6726ff4d909a17b08.woff) format("woff");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:400;src:url(254f9287f488a9ca67f4.woff2) format("woff2"),url(34a6726ff4d909a17b08.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:500;src:url(24afad584092edad40a1.woff2) format("woff2"),url(42f2c2a6c45059a714b8.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:500;src:url(0c7ca7c8d7721ce49572.woff2) format("woff2"),url(42f2c2a6c45059a714b8.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:500;src:url(c32e860515e3eba5ffdc.woff2) format("woff2"),url(42f2c2a6c45059a714b8.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:500;src:url(60b588ab00709260d7c9.woff2) format("woff2"),url(42f2c2a6c45059a714b8.woff) format("woff");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:500;src:url(51b6167887dc3cd01cf6.woff2) format("woff2"),url(42f2c2a6c45059a714b8.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(55f256ccdce4bc180e81.woff2) format("woff2"),url(124bdbbc44b5aae423df.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(b62b244b7a2132b30f78.woff2) format("woff2"),url(124bdbbc44b5aae423df.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(0f3d20baf3dff383f36b.woff2) format("woff2"),url(124bdbbc44b5aae423df.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(55783c8fab145f4cf828.woff2) format("woff2"),url(124bdbbc44b5aae423df.woff) format("woff");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(38a674fae449557fef97.woff2) format("woff2"),url(124bdbbc44b5aae423df.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:600;src:url(bc92575d9ddbf605f1d3.woff2) format("woff2"),url(efbb2f5be07bd083c9f3.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:600;src:url(68ad2848ff35d1c0b498.woff2) format("woff2"),url(efbb2f5be07bd083c9f3.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:600;src:url(e5032bde61bf0b5d2a5a.woff2) format("woff2"),url(efbb2f5be07bd083c9f3.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:600;src:url(6d4247a3ac739e0c0e04.woff2) format("woff2"),url(efbb2f5be07bd083c9f3.woff) format("woff");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:600;src:url(f9b917e1802b7cd4c052.woff2) format("woff2"),url(efbb2f5be07bd083c9f3.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(7f425c0c93b84e24ba81.woff2) format("woff2"),url(3e143051a8039d6b6e99.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(4375539f9fe1079b0147.woff2) format("woff2"),url(3e143051a8039d6b6e99.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(702a2b926210a7b44461.woff2) format("woff2"),url(3e143051a8039d6b6e99.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(c1ee6391abae116fa667.woff2) format("woff2"),url(3e143051a8039d6b6e99.woff) format("woff");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(5d6df38dd70f631c488b.woff2) format("woff2"),url(3e143051a8039d6b6e99.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:700;src:url(d6d90c6ab8cf9930d75f.woff2) format("woff2"),url(4bb1280291f08a525e7f.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:700;src:url(098bcd6be203952a9580.woff2) format("woff2"),url(4bb1280291f08a525e7f.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:700;src:url(351c896b7d6d56c4dd73.woff2) format("woff2"),url(4bb1280291f08a525e7f.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:700;src:url(725c15cca3de8225f6f1.woff2) format("woff2"),url(4bb1280291f08a525e7f.woff) format("woff");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:700;src:url(c1a0fe30f871ee0a4360.woff2) format("woff2"),url(4bb1280291f08a525e7f.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(a113ef18975312602ee1.woff2) format("woff2"),url(168d5b114e5a6d216802.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(2a599b68747a45fad239.woff2) format("woff2"),url(168d5b114e5a6d216802.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(810d24ff481f2abee5c1.woff2) format("woff2"),url(168d5b114e5a6d216802.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(ed2b8a3421aea40bea12.woff2) format("woff2"),url(168d5b114e5a6d216802.woff) format("woff");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(56c09b9a46af6a54eeb3.woff2) format("woff2"),url(168d5b114e5a6d216802.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:800;src:url(15c1cb3502677851c5d9.woff2) format("woff2"),url(e1992bf2fe453f84e620.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:800;src:url(e942ef51e18d5c461671.woff2) format("woff2"),url(e1992bf2fe453f84e620.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:800;src:url(737cba91555de151cbe2.woff2) format("woff2"),url(e1992bf2fe453f84e620.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:800;src:url(139eea3d284ec604a7b5.woff2) format("woff2"),url(e1992bf2fe453f84e620.woff) format("woff");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:800;src:url(f5bc3262f406062ad4b6.woff2) format("woff2"),url(e1992bf2fe453f84e620.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:800;src:url(10b01ab29a6a21c3f049.woff2) format("woff2"),url(72fb25071956ef0f805d.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:800;src:url(2cf61b4c0dca2091552b.woff2) format("woff2"),url(72fb25071956ef0f805d.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:800;src:url(3de218788a2b8c7b9d93.woff2) format("woff2"),url(72fb25071956ef0f805d.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:800;src:url(5ad97e326368799b3090.woff2) format("woff2"),url(72fb25071956ef0f805d.woff) format("woff");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:800;src:url(1d6a43e98bd10cc3f86d.woff2) format("woff2"),url(72fb25071956ef0f805d.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:900;src:url(3150bbc236a381b921ec.woff2) format("woff2"),url(3eb0ef2d15133a54747c.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:900;src:url(b410b92c27fe847392dd.woff2) format("woff2"),url(3eb0ef2d15133a54747c.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:900;src:url(884427e759e80630df60.woff2) format("woff2"),url(3eb0ef2d15133a54747c.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:900;src:url(b26412326d89fba48df1.woff2) format("woff2"),url(3eb0ef2d15133a54747c.woff) format("woff");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:900;src:url(76082cfc7d10d8361406.woff2) format("woff2"),url(3eb0ef2d15133a54747c.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:900;src:url(c8055647630424261893.woff2) format("woff2"),url(c12aacf45bd513b1ddc8.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:900;src:url(7950a5546709115a713d.woff2) format("woff2"),url(c12aacf45bd513b1ddc8.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:900;src:url(82410d13778f770e4358.woff2) format("woff2"),url(c12aacf45bd513b1ddc8.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:900;src:url(bebe3a92b87fb76666af.woff2) format("woff2"),url(c12aacf45bd513b1ddc8.woff) format("woff");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:900;src:url(0224a085141ad2d60479.woff2) format("woff2"),url(c12aacf45bd513b1ddc8.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:100;src:url(c86852180ac4b7a6ed59.woff2) format("woff2"),url(849954c14e208edbfdc6.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:200;src:url(5aea48d147db169be57b.woff2) format("woff2"),url(1086f8ddbc9214a64500.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:300;src:url(de3cdfbab4c8ba298c96.woff2) format("woff2"),url(6824465878b1c26bdb3e.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:400;src:url(ba4c0e505f18e8ddf91a.woff2) format("woff2"),url(db65557bfe9b0e6e2feb.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:500;src:url(0c7ca7c8d7721ce49572.woff2) format("woff2"),url(be46a58455ac26aae1be.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:600;src:url(68ad2848ff35d1c0b498.woff2) format("woff2"),url(206dc2381dac4c698dc5.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:700;src:url(098bcd6be203952a9580.woff2) format("woff2"),url(c146c245c0bfd38de5a4.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:800;src:url(e942ef51e18d5c461671.woff2) format("woff2"),url(e7059dcb441a1f09aaa3.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:900;src:url(b410b92c27fe847392dd.woff2) format("woff2"),url(b1c2eb8a279272055039.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:100;src:url(27998569b81a20746cf2.woff2) format("woff2"),url(d23be76ae6d71c29a722.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:200;src:url(629889be0dd868db61bf.woff2) format("woff2"),url(cc1c11d92326ee3fd559.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:300;src:url(cf707a42896b30180f0a.woff2) format("woff2"),url(7a6dcc2accd99a36e13a.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:400;src:url(0289d4b194cd4d018fcf.woff2) format("woff2"),url(4980d4b8e3b9f3ee0fc1.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:500;src:url(24afad584092edad40a1.woff2) format("woff2"),url(f7d2a38005b76d0f4c56.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:600;src:url(bc92575d9ddbf605f1d3.woff2) format("woff2"),url(0f2d034a9225ed8d68c3.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:700;src:url(d6d90c6ab8cf9930d75f.woff2) format("woff2"),url(aad724ec8d0c2aa33612.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:800;src:url(15c1cb3502677851c5d9.woff2) format("woff2"),url(0c8fc4673ba1e6192d0c.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:900;src:url(3150bbc236a381b921ec.woff2) format("woff2"),url(c97bb8aab0f2f1d3ad30.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:100;src:url(c359bb76c53aab22d515.woff2) format("woff2"),url(6702562e6a0a03c51b79.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:200;src:url(a64d7848f30887c44880.woff2) format("woff2"),url(d2d3c40afd1a67406590.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:300;src:url(6091a5d41e290c8af528.woff2) format("woff2"),url(4a407e7c9e95257f6b32.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:400;src:url(bbf9e820a2563aac0d8b.woff2) format("woff2"),url(6c3bf9a0af0d39b5e97b.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(55f256ccdce4bc180e81.woff2) format("woff2"),url(8cfdd5a43122c65c8daa.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(7f425c0c93b84e24ba81.woff2) format("woff2"),url(dd68939be2f24d0a3b01.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(a113ef18975312602ee1.woff2) format("woff2"),url(c4bf96bf6b720a470659.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:800;src:url(10b01ab29a6a21c3f049.woff2) format("woff2"),url(5346d1dddfba8bf132e3.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:900;src:url(c8055647630424261893.woff2) format("woff2"),url(927401ec79b4a67e56d6.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:100;src:url(9c8f46673c190d0cf2a5.woff2) format("woff2"),url(77c1ed271750e7fbe81f.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:200;src:url(54e1baae78c8f888cc3a.woff2) format("woff2"),url(9005bb91d9c7e212471e.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:300;src:url(8a381d078cd679f5a017.woff2) format("woff2"),url(5449a472689940c31677.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:400;src:url(e5c5c19c23e370a342c8.woff2) format("woff2"),url(275156bc88fb38e6094d.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(b62b244b7a2132b30f78.woff2) format("woff2"),url(f5df14caad6129be5955.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(4375539f9fe1079b0147.woff2) format("woff2"),url(4edd74c91c8986a260a8.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(2a599b68747a45fad239.woff2) format("woff2"),url(5730e71aefae2c2f6a30.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:800;src:url(2cf61b4c0dca2091552b.woff2) format("woff2"),url(b73809da141159c1194b.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:900;src:url(7950a5546709115a713d.woff2) format("woff2"),url(dae70fc1490619fcb41f.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:400;src:url(bbf9e820a2563aac0d8b.woff2) format("woff2"),url(327fab0afc997a2d9b16.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:400;src:url(e5c5c19c23e370a342c8.woff2) format("woff2"),url(327fab0afc997a2d9b16.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:400;src:url(8f3f4c99eb0eeb5990f1.woff2) format("woff2"),url(327fab0afc997a2d9b16.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:400;src:url(0204ec08a4b574088f02.woff2) format("woff2"),url(327fab0afc997a2d9b16.woff) format("woff");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:400;src:url(acb6629fe45c43ad5d8b.woff2) format("woff2"),url(327fab0afc997a2d9b16.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:100;src:url(9cf8cf64790df859f528.woff2) format("woff2"),url(6a0760f91631eeec2cb6.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:200;src:url(4c484a7aa358bf3b2303.woff2) format("woff2"),url(a4fcc415895cbff7bceb.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:300;src:url(00e3a55fbf617671d0e8.woff2) format("woff2"),url(a4c1ee12652e484e7e51.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:400;src:url(254f9287f488a9ca67f4.woff2) format("woff2"),url(cf8a0bcaff094377bccb.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:500;src:url(51b6167887dc3cd01cf6.woff2) format("woff2"),url(54fde1337614e2adc532.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:600;src:url(f9b917e1802b7cd4c052.woff2) format("woff2"),url(46c1ab29d01c6b8c9b50.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:700;src:url(c1a0fe30f871ee0a4360.woff2) format("woff2"),url(1cb90845622a65b0ff9b.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:800;src:url(f5bc3262f406062ad4b6.woff2) format("woff2"),url(fae096afdb6d87a466c2.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:900;src:url(76082cfc7d10d8361406.woff2) format("woff2"),url(300c098ceccf4e59e315.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:100;src:url(a71ddaa36e5629f98995.woff2) format("woff2"),url(49d308587a81444dbbc7.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:200;src:url(2c66dd0a8c4ccb43c561.woff2) format("woff2"),url(d8c32ef4a32209726d88.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:300;src:url(592ab0c0119b0fa04bad.woff2) format("woff2"),url(afc2938efbab8dfc5eee.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:400;src:url(27878f4d618fa6e9797f.woff2) format("woff2"),url(80cff074ea166c8f3b75.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:500;src:url(60b588ab00709260d7c9.woff2) format("woff2"),url(542341b28217dbe266ec.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:600;src:url(6d4247a3ac739e0c0e04.woff2) format("woff2"),url(4277d4e09ccb64d6d6e4.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:700;src:url(725c15cca3de8225f6f1.woff2) format("woff2"),url(9d9b32f9e6101346f0a3.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:800;src:url(139eea3d284ec604a7b5.woff2) format("woff2"),url(a2e591df72e6db61203f.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:900;src:url(b26412326d89fba48df1.woff2) format("woff2"),url(c008ef69d04d64da5228.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:100;src:url(b58a4aedc4a07d1e8756.woff2) format("woff2"),url(566dc743abc28b5792b7.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:200;src:url(fe748aafb2b26f77a8a7.woff2) format("woff2"),url(7b1c8c14657602659630.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:300;src:url(7f5dee6c782fd4ff0e9c.woff2) format("woff2"),url(4fe16cb4a32fefd09a71.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:400;src:url(0204ec08a4b574088f02.woff2) format("woff2"),url(c9d988cae9be266b5ef1.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(55783c8fab145f4cf828.woff2) format("woff2"),url(0a95025fa2b6e76ac417.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(c1ee6391abae116fa667.woff2) format("woff2"),url(e160daa84a7652d079ca.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(ed2b8a3421aea40bea12.woff2) format("woff2"),url(3a4e5abb7e41e6a396cb.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:800;src:url(5ad97e326368799b3090.woff2) format("woff2"),url(a5c0141aee5832354351.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:900;src:url(bebe3a92b87fb76666af.woff2) format("woff2"),url(4c24850c1a55208bcefc.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:100;src:url(168ed41f3a9a2ccc82e0.woff2) format("woff2"),url(227ba1a79db09d612863.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:200;src:url(3ebf4198ade6d0eaab1e.woff2) format("woff2"),url(ff1e70d7ba01db85201b.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:300;src:url(0cc3e06704117dcfc367.woff2) format("woff2"),url(546a8d3d3ae778117481.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:400;src:url(acb6629fe45c43ad5d8b.woff2) format("woff2"),url(281179d375517d9c131b.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(38a674fae449557fef97.woff2) format("woff2"),url(62a04d3d3d6d38ba2a92.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(5d6df38dd70f631c488b.woff2) format("woff2"),url(e5f115311730acb7c305.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(56c09b9a46af6a54eeb3.woff2) format("woff2"),url(fb5068a547276441355d.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:800;src:url(1d6a43e98bd10cc3f86d.woff2) format("woff2"),url(5d71387e7b31e17b93c7.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:900;src:url(0224a085141ad2d60479.woff2) format("woff2"),url(309923ab7ba30c01d1a7.woff) format("woff")}@font-face{font-display:swap;font-family:MontserratVariable;font-style:italic;font-weight:100 900;src:url(f086a65675a94b42e258.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:MontserratVariable;font-style:italic;font-weight:100 900;src:url(1a024583a0c3883932dd.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:MontserratVariable;font-style:italic;font-weight:100 900;src:url(6c4be5f2c0103aae5121.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:MontserratVariable;font-style:italic;font-weight:100 900;src:url(4724902c2612871e26cf.woff2) format("woff2");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:MontserratVariable;font-style:italic;font-weight:100 900;src:url(7df0568de4b0319d45c5.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:MontserratVariable;font-style:normal;font-weight:100 900;src:url(f41a9bc7688bda1e8450.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:MontserratVariable;font-style:normal;font-weight:100 900;src:url(639b3c91831427d83cd3.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:MontserratVariable;font-style:normal;font-weight:100 900;src:url(b66f2d18f66f15c3ac56.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:MontserratVariable;font-style:normal;font-weight:100 900;src:url(9f73369162c4382215d4.woff2) format("woff2");unicode-range:u+0100-024f,u+0259,u+1e??,u+2020,u+20a0-20ab,u+20ad-20cf,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:MontserratVariable;font-style:normal;font-weight:100 900;src:url(05f01253eba3626ef33d.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:100;src:url(5ed8791b8c9f4f2080cd.woff2) format("woff2"),url(4e33be81d6544c291663.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:200;src:url(53a7cc25b682af41f112.woff2) format("woff2"),url(f73a9ac17b3b631f330c.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:300;src:url(1e6e5a7e763650cce1fe.woff2) format("woff2"),url(b7af7c392162b21d6b13.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:400;src:url(a01c234a9a7ef8ea3532.woff2) format("woff2"),url(bda1beea83eac06cef2e.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:500;src:url(c32e860515e3eba5ffdc.woff2) format("woff2"),url(938ff44782dcdc5c4d93.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:600;src:url(e5032bde61bf0b5d2a5a.woff2) format("woff2"),url(fa2e49c40fb09cce0304.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:700;src:url(351c896b7d6d56c4dd73.woff2) format("woff2"),url(c69dbcc9618ec3530d82.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:800;src:url(737cba91555de151cbe2.woff2) format("woff2"),url(ab3afc95eb2f3f2f33c1.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:900;src:url(884427e759e80630df60.woff2) format("woff2"),url(bcf433901301a3a4b994.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:100;src:url(6fcf88d2df89c4b98588.woff2) format("woff2"),url(708daa31926d779eccd7.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:200;src:url(b401bba51085677f5eee.woff2) format("woff2"),url(c561d615ef89bf1b3a92.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:300;src:url(260b5062c37e2f23cb52.woff2) format("woff2"),url(62dcfe56329804461de5.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:400;src:url(8f3f4c99eb0eeb5990f1.woff2) format("woff2"),url(60b3795172c9d0e39d3e.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(0f3d20baf3dff383f36b.woff2) format("woff2"),url(3f6d2f99b8db6a567d93.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(702a2b926210a7b44461.woff2) format("woff2"),url(17ae4214edb06f860036.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(810d24ff481f2abee5c1.woff2) format("woff2"),url(1c5e39f909b1fac4ffe0.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:800;src:url(3de218788a2b8c7b9d93.woff2) format("woff2"),url(fafd66833bf97e1ef520.woff) format("woff")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:900;src:url(82410d13778f770e4358.woff2) format("woff2"),url(bea25575417bfceb0ee4.woff) format("woff")}.v-enter-active,.v-leave-active{transition:opacity .3s ease}.v-enter-from,.v-leave-to{opacity:0}.modal-mask{background-color:rgba(0,0,0,.5);display:flex;height:100%;left:0;position:fixed;top:0;transition:opacity .3s ease;width:100%;z-index:9998}.modal-enter-from,.modal-leave-to{opacity:0}.modal-enter-from .modal-container,.modal-leave-to .modal-container{-webkit-transform:scale(1.1);transform:scale(1.1)}.black-text,input,input:focus,select,textarea,textarea:focus{color:#000}.transferMenu{background-color:#5d2f83c9;border-top-left-radius:10px;border-top-right-radius:10px;bottom:0;left:15px;min-height:155px;position:fixed;transition:.4s;width:calc(100% - 30px);z-index:1050}@media (min-width:768px){.transferMenu{left:calc(50% - 155px)!important;width:310px!important}}.transferExit{position:absolute;right:15px}.transferAnimation{transform:translate3d(0,390px,0)}.transferMenu .transferHeader{display:flex;padding:9px 12px}.transferMenu .transferHeader .transferHeaderText{width:100%}.transferItem{cursor:pointer;display:flex;margin:9px 12px}.transferItem .transferIcon{margin-right:10px}.transferItem .transferText{font-size:15px;line-height:17px}.transferItem .transferText span{color:#dbdbdb;font-size:11px}.transferMenu .transferBody{font-size:15px;padding:9px 12px}.transferMenu .transferBody .feeButton{background-color:#ffffff00;border:1px solid #ffffff1f;border-radius:8px;cursor:pointer;font-size:13px;padding:5px 0;transition:all .125s ease-in-out}.transferMenu .transferBody .feeButtonSelected{background-color:#ffffff0f}.transferMenu .transferBody .pasteAddress i{cursor:pointer;transition:all .125s ease-in-out}.transferMenu .transferBody .pasteAddress i:hover{color:#9621ff9c}.transferMenu-enter-from,.transferMenu-leave-to{transform:translateY(200%)}.transferMenu-enter-active .transferMenu-leave-active{transition:all .3 ease}.v-mask{background-color:rgba(0,0,0,.5);display:flex;height:100%;left:0;position:fixed;top:0;transition:opacity .3s ease;width:100%;z-index:1050} /*# sourceMappingURL=main.css.map*/ \ No newline at end of file diff --git a/main.css.map b/main.css.map index a0bd2ee47..3ba99f68c 100644 --- a/main.css.map +++ b/main.css.map @@ -1 +1 @@ -{"version":3,"file":"main.css","mappings":"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SQ,SFbR,2CAIA,qBESQ,SFbR,+BAIA,eEeI,cAAwB,0BAExB,aAAuB,0BAGrB,UAAwB,wBAAxB,UAAwB,wBAAxB,UAAwB,wBAAxB,UAAwB,wBAAxB,UAAwB,wBAAxB,UAAwB,wBAAxB,UAAwB,wBAAxB,UAAwB,wBAAxB,UAAwB,wBAAxB,UAAwB,wBAAxB,WAAwB,0BAAxB,WAAwB,0BAAxB,WAAwB,0BAOpB,WFhBV,qBEgBU,WFhBV,sBEgBU,WFhBV,eEgBU,WFhBV,sBEgBU,WFhBV,sBEgBU,WFhBV,eEgBU,WFhBV,sBEgBU,WFhBV,sBEgBU,WFhBV,eEgBU,YFhBV,sBEgBU,YFhBV,sBCKE,0BC3BE,QACE,0BACA,oBADA,YACA,YACA,eAKE,kBFwBN,+BACA,eEzBM,kBFwBN,6BACA,cEzBM,kBFwBN,2CACA,qBEzBM,kBFwBN,6BACA,cEzBM,kBFwBN,6BACA,cEzBM,kBFwBN,2CACA,qBEnBE,cFCJ,+BACA,CACA,eADA,UEIQ,WFbR,yCAIA,oBESQ,WFbR,2CAIA,qBESQ,WFbR,6BAIA,cESQ,WFbR,2CAIA,qBESQ,WFbR,2CAIA,qBESQ,WFbR,6BAIA,cESQ,WFbR,2CAIA,qBESQ,WFbR,2CAIA,qBESQ,WFbR,6BAIA,cESQ,YFbR,2CAIA,qBESQ,YFbR,2CAIA,qBESQ,YFbR,+BAIA,eEeI,iBAAwB,0BAExB,gBAAuB,0BAGrB,aAAwB,wBAAxB,aAAwB,wBAAxB,aAAwB,wBAAxB,aAAwB,wBAAxB,aAAwB,wBAAxB,aAAwB,wBAAxB,aAAwB,wBAAxB,aAAwB,wBAAxB,aAAwB,wBAAxB,aAAwB,wBAAxB,cAAwB,0BAAxB,cAAwB,0BAAxB,cAAwB,0BAOpB,cFhBV,aEgBU,cFhBV,qBEgBU,cFhBV,sBEgBU,cFhBV,eEgBU,cFhBV,sBEgBU,cFhBV,sBEgBU,cFhBV,eEgBU,cFhBV,sBEgBU,cFhBV,sBEgBU,cFhBV,eEgBU,eFhBV,sBEgBU,eFhBV,sBCKE,2BC3BE,QACE,0BACA,oBADA,YACA,YACA,eAKE,kBFwBN,+BACA,eEzBM,kBFwBN,6BACA,cEzBM,kBFwBN,2CACA,qBEzBM,kBFwBN,6BACA,cEzBM,kBFwBN,6BACA,cEzBM,kBFwBN,2CACA,qBEnBE,cFCJ,+BACA,CACA,eADA,UEIQ,WFbR,yCAIA,oBESQ,WFbR,2CAIA,qBESQ,WFbR,6BAIA,cESQ,WFbR,2CAIA,qBESQ,WFbR,2CAIA,qBESQ,WFbR,6BAIA,cESQ,WFbR,2CAIA,qBESQ,WFbR,2CAIA,qBESQ,WFbR,6BAIA,cESQ,YFbR,2CAIA,qBESQ,YFbR,2CAIA,qBESQ,YFbR,+BAIA,eEeI,iBAAwB,0BAExB,gBAAuB,0BAGrB,aAAwB,wBAAxB,aAAwB,wBAAxB,aAAwB,wBAAxB,aAAwB,wBAAxB,aAAwB,wBAAxB,aAAwB,wBAAxB,aAAwB,wBAAxB,aAAwB,wBAAxB,aAAwB,wBAAxB,aAAwB,wBAAxB,cAAwB,0BAAxB,cAAwB,0BAAxB,cAAwB,0BAOpB,cFhBV,aEgBU,cFhBV,qBEgBU,cFhBV,sBEgBU,cFhBV,eEgBU,cFhBV,sBEgBU,cFhBV,sBEgBU,cFhBV,eEgBU,cFhBV,sBEgBU,cFhBV,sBEgBU,cFhBV,eEgBU,eFhBV,sBEgBU,eFhBV,sBCKE,2BC3BE,QACE,0BACA,oBADA,YACA,YACA,eAKE,kBFwBN,+BACA,eEzBM,kBFwBN,6BACA,cEzBM,kBFwBN,2CACA,qBEzBM,kBFwBN,6BACA,cEzBM,kBFwBN,6BACA,cEzBM,kBFwBN,2CACA,qBEnBE,cFCJ,+BACA,CACA,eADA,UEIQ,WFbR,yCAIA,oBESQ,WFbR,2CAIA,qBESQ,WFbR,6BAIA,cESQ,WFbR,2CAIA,qBESQ,WFbR,2CAIA,qBESQ,WFbR,6BAIA,cESQ,WFbR,2CAIA,qBESQ,WFbR,2CAIA,qBESQ,WFbR,6BAIA,cESQ,YFbR,2CAIA,qBESQ,YFbR,2CAIA,qBESQ,YFbR,+BAIA,eEeI,iBAAwB,0BAExB,gBAAuB,0BAGrB,aAAwB,wBAAxB,aAAwB,wBAAxB,aAAwB,wBAAxB,aAAwB,wBAAxB,aAAwB,wBAAxB,aAAwB,wBAAxB,aAAwB,wBAAxB,aAAwB,wBAAxB,aAAwB,wBAAxB,aAAwB,wBAAxB,cAAwB,0BAAxB,cAAwB,0BAAxB,cAAwB,0BAOpB,cFhBV,aEgBU,cFhBV,qBEgBU,cFhBV,sBEgBU,cFhBV,eEgBU,cFhBV,sBEgBU,cFhBV,sBEgBU,cFhBV,eEgBU,cFhBV,sBEgBU,cFhBV,sBEgBU,cFhBV,eEgBU,eFhBV,sBEgBU,eFhBV,sBCKE,4BC3BE,QACE,0BACA,oBADA,YACA,YACA,eAKE,kBFwBN,+BACA,eEzBM,kBFwBN,6BACA,cEzBM,kBFwBN,2CACA,qBEzBM,kBFwBN,6BACA,cEzBM,kBFwBN,6BACA,cEzBM,kBFwBN,2CACA,qBEnBE,cFCJ,+BACA,CACA,eADA,UEIQ,WFbR,yCAIA,oBESQ,WFbR,2CAIA,qBESQ,WFbR,6BAIA,cESQ,WFbR,2CAIA,qBESQ,WFbR,2CAIA,qBESQ,WFbR,6BAIA,cESQ,WFbR,2CAIA,qBESQ,WFbR,2CAIA,qBESQ,WFbR,6BAIA,cESQ,YFbR,2CAIA,qBESQ,YFbR,2CAIA,qBESQ,YFbR,+BAIA,eEeI,iBAAwB,0BAExB,gBAAuB,0BAGrB,aAAwB,wBAAxB,aAAwB,wBAAxB,aAAwB,wBAAxB,aAAwB,wBAAxB,aAAwB,wBAAxB,aAAwB,wBAAxB,aAAwB,wBAAxB,aAAwB,wBAAxB,aAAwB,wBAAxB,aAAwB,wBAAxB,cAAwB,0BAAxB,cAAwB,0BAAxB,cAAwB,0BAOpB,cFhBV,aEgBU,cFhBV,qBEgBU,cFhBV,sBEgBU,cFhBV,eEgBU,cFhBV,sBEgBU,cFhBV,sBEgBU,cFhBV,eEgBU,cFhBV,sBEgBU,cFhBV,sBEgBU,cFhBV,eEgBU,eFhBV,sBEgBU,eFhBV,sBGnDF,SAGE,cADA,kBACA,CAFA,Uf8nDF,qBernDI,6BAFA,cACA,mBATJ,iBAeI,gCADA,qBAdJ,oBAmBI,4Bf4nDJ,2BehnDI,aASJ,CfgnDA,sDe3mDI,wBfgnDJ,mDe1mDM,uBfinDN,oGevmDI,QAQJ,0CAEI,gCX/DF,6BW4EI,kCADA,aClFJ,oDAII,wBhBqrDN,wFgB7qDQ,oBZLN,CYYA,4GASQ,wBA5BR,0DAII,wBhB2sDN,gGgBnsDQ,oBZLN,CYYA,kHASQ,wBA5BR,oDAII,wBhBiuDN,wFgBztDQ,oBZLN,CYYA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","sources":["webpack://MPW/./node_modules/bootstrap/scss/bootstrap.scss","webpack://MPW/./node_modules/bootstrap/scss/_root.scss","webpack://MPW/./node_modules/bootstrap/dist/css/dist/css/bootstrap.css","webpack://MPW/./node_modules/bootstrap/scss/_reboot.scss","webpack://MPW/./node_modules/bootstrap/scss/vendor/_rfs.scss","webpack://MPW/./node_modules/bootstrap/dist/css/bootstrap.css","webpack://MPW/./node_modules/bootstrap/scss/mixins/_hover.scss","webpack://MPW/./node_modules/bootstrap/scss/_type.scss","webpack://MPW/./node_modules/bootstrap/scss/mixins/_lists.scss","webpack://MPW/./node_modules/bootstrap/scss/_images.scss","webpack://MPW/./node_modules/bootstrap/scss/mixins/_image.scss","webpack://MPW/./node_modules/bootstrap/scss/mixins/_border-radius.scss","webpack://MPW/./node_modules/bootstrap/scss/_code.scss","webpack://MPW/./node_modules/bootstrap/scss/_grid.scss","webpack://MPW/./node_modules/bootstrap/scss/mixins/_grid.scss","webpack://MPW/./node_modules/bootstrap/scss/mixins/_breakpoints.scss","webpack://MPW/./node_modules/bootstrap/scss/mixins/_grid-framework.scss","webpack://MPW/./node_modules/bootstrap/scss/_tables.scss","webpack://MPW/./node_modules/bootstrap/scss/mixins/_table-row.scss","webpack://MPW/./node_modules/bootstrap/scss/_forms.scss","webpack://MPW/./node_modules/bootstrap/scss/mixins/_transition.scss","webpack://MPW/./node_modules/bootstrap/scss/mixins/_forms.scss","webpack://MPW/./node_modules/bootstrap/scss/_buttons.scss","webpack://MPW/./node_modules/bootstrap/scss/mixins/_buttons.scss","webpack://MPW/./node_modules/bootstrap/scss/mixins/_gradients.scss","webpack://MPW/./node_modules/bootstrap/scss/_transitions.scss","webpack://MPW/./node_modules/bootstrap/scss/mixins/_caret.scss","webpack://MPW/./node_modules/bootstrap/scss/_dropdown.scss","webpack://MPW/./node_modules/bootstrap/scss/mixins/_nav-divider.scss","webpack://MPW/./node_modules/bootstrap/scss/_button-group.scss","webpack://MPW/./node_modules/bootstrap/scss/_input-group.scss","webpack://MPW/./node_modules/bootstrap/scss/_custom-forms.scss","webpack://MPW/./node_modules/bootstrap/scss/_nav.scss","webpack://MPW/./node_modules/bootstrap/scss/_navbar.scss","webpack://MPW/./node_modules/bootstrap/scss/_card.scss","webpack://MPW/./node_modules/bootstrap/scss/_breadcrumb.scss","webpack://MPW/./node_modules/bootstrap/scss/_pagination.scss","webpack://MPW/./node_modules/bootstrap/scss/mixins/_pagination.scss","webpack://MPW/./node_modules/bootstrap/scss/_badge.scss","webpack://MPW/./node_modules/bootstrap/scss/mixins/_badge.scss","webpack://MPW/./node_modules/bootstrap/scss/_jumbotron.scss","webpack://MPW/./node_modules/bootstrap/scss/_alert.scss","webpack://MPW/./node_modules/bootstrap/scss/mixins/_alert.scss","webpack://MPW/./node_modules/bootstrap/scss/_progress.scss","webpack://MPW/./node_modules/bootstrap/scss/_media.scss","webpack://MPW/./node_modules/bootstrap/scss/_list-group.scss","webpack://MPW/./node_modules/bootstrap/scss/mixins/_list-group.scss","webpack://MPW/./node_modules/bootstrap/scss/_close.scss","webpack://MPW/./node_modules/bootstrap/scss/_toasts.scss","webpack://MPW/./node_modules/bootstrap/scss/_modal.scss","webpack://MPW/./node_modules/bootstrap/scss/_tooltip.scss","webpack://MPW/./node_modules/bootstrap/scss/mixins/_reset-text.scss","webpack://MPW/./node_modules/bootstrap/scss/_popover.scss","webpack://MPW/./node_modules/bootstrap/scss/_carousel.scss","webpack://MPW/./node_modules/bootstrap/scss/mixins/_clearfix.scss","webpack://MPW/./node_modules/bootstrap/scss/_spinners.scss","webpack://MPW/./node_modules/bootstrap/scss/utilities/_align.scss","webpack://MPW/./node_modules/bootstrap/scss/mixins/_background-variant.scss","webpack://MPW/./node_modules/bootstrap/scss/utilities/_background.scss","webpack://MPW/./node_modules/bootstrap/scss/utilities/_borders.scss","webpack://MPW/./node_modules/bootstrap/scss/utilities/_display.scss","webpack://MPW/./node_modules/bootstrap/scss/utilities/_embed.scss","webpack://MPW/./node_modules/bootstrap/scss/utilities/_flex.scss","webpack://MPW/./node_modules/bootstrap/scss/utilities/_float.scss","webpack://MPW/./node_modules/bootstrap/scss/utilities/_interactions.scss","webpack://MPW/./node_modules/bootstrap/scss/utilities/_overflow.scss","webpack://MPW/./node_modules/bootstrap/scss/utilities/_position.scss","webpack://MPW/./node_modules/bootstrap/scss/mixins/_screen-reader.scss","webpack://MPW/./node_modules/bootstrap/scss/utilities/_shadows.scss","webpack://MPW/./node_modules/bootstrap/scss/utilities/_sizing.scss","webpack://MPW/./node_modules/bootstrap/scss/utilities/_spacing.scss","webpack://MPW/./node_modules/bootstrap/scss/utilities/_stretched-link.scss","webpack://MPW/./node_modules/bootstrap/scss/utilities/_text.scss","webpack://MPW/./node_modules/bootstrap/scss/mixins/_text-truncate.scss","webpack://MPW/./node_modules/bootstrap/scss/mixins/_text-emphasis.scss","webpack://MPW/./node_modules/bootstrap/scss/mixins/_text-hide.scss","webpack://MPW/./node_modules/bootstrap/scss/utilities/_visibility.scss","webpack://MPW/./node_modules/bootstrap/scss/_print.scss","webpack://MPW/./node_modules/@fontsource/chivo/900.css","webpack://MPW/./node_modules/@fortawesome/fontawesome-free/css/all.min.css","webpack://MPW/./assets/style/style.css","webpack://MPW/./node_modules/@fontsource/montserrat/100-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/100.css","webpack://MPW/./node_modules/@fontsource/montserrat/200-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/200.css","webpack://MPW/./node_modules/@fontsource/montserrat/300-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/300.css","webpack://MPW/./node_modules/@fontsource/montserrat/400-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/500-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/500.css","webpack://MPW/./node_modules/@fontsource/montserrat/600-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/600.css","webpack://MPW/./node_modules/@fontsource/montserrat/700-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/700.css","webpack://MPW/./node_modules/@fontsource/montserrat/800-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/800.css","webpack://MPW/./node_modules/@fontsource/montserrat/900-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/900.css","webpack://MPW/./node_modules/@fontsource/montserrat/cyrillic-100-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/cyrillic-200-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/cyrillic-300-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/cyrillic-400-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/cyrillic-500-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/cyrillic-600-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/cyrillic-700-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/cyrillic-800-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/cyrillic-900-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/cyrillic-ext-100-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/cyrillic-ext-200-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/cyrillic-ext-300-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/cyrillic-ext-400-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/cyrillic-ext-500-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/cyrillic-ext-600-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/cyrillic-ext-700-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/cyrillic-ext-800-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/cyrillic-ext-900-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/cyrillic-ext.css","webpack://MPW/./node_modules/@fontsource/montserrat/cyrillic.css","webpack://MPW/./node_modules/@fontsource/montserrat/index.css","webpack://MPW/./node_modules/@fontsource/montserrat/latin-100-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/latin-200-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/latin-300-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/latin-400-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/latin-500-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/latin-600-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/latin-700-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/latin-800-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/latin-900-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/latin-ext-100-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/latin-ext-200-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/latin-ext-300-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/latin-ext-400-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/latin-ext-500-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/latin-ext-600-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/latin-ext-700-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/latin-ext-800-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/latin-ext-900-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/latin-ext.css","webpack://MPW/./node_modules/@fontsource/montserrat/latin.css","webpack://MPW/./node_modules/@fontsource/montserrat/variable-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/variable.css","webpack://MPW/./node_modules/@fontsource/montserrat/vietnamese-100-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/vietnamese-200-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/vietnamese-300-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/vietnamese-400-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/vietnamese-500-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/vietnamese-600-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/vietnamese-700-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/vietnamese-800-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/vietnamese-900-italic.css","webpack://MPW/./node_modules/@fontsource/montserrat/vietnamese.css"],"sourcesContent":["/*!\n * Bootstrap v4.6.2 (https://getbootstrap.com/)\n * Copyright 2011-2022 The Bootstrap Authors\n * Copyright 2011-2022 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"root\";\n@import \"reboot\";\n@import \"type\";\n@import \"images\";\n@import \"code\";\n@import \"grid\";\n@import \"tables\";\n@import \"forms\";\n@import \"buttons\";\n@import \"transitions\";\n@import \"dropdown\";\n@import \"button-group\";\n@import \"input-group\";\n@import \"custom-forms\";\n@import \"nav\";\n@import \"navbar\";\n@import \"card\";\n@import \"breadcrumb\";\n@import \"pagination\";\n@import \"badge\";\n@import \"jumbotron\";\n@import \"alert\";\n@import \"progress\";\n@import \"media\";\n@import \"list-group\";\n@import \"close\";\n@import \"toasts\";\n@import \"modal\";\n@import \"tooltip\";\n@import \"popover\";\n@import \"carousel\";\n@import \"spinners\";\n@import \"utilities\";\n@import \"print\";\n",":root {\n // Custom variable values only support SassScript inside `#{}`.\n @each $color, $value in $colors {\n --#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$color}: #{$value};\n }\n\n @each $bp, $value in $grid-breakpoints {\n --breakpoint-#{$bp}: #{$value};\n }\n\n // Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --font-family-sans-serif: #{inspect($font-family-sans-serif)};\n --font-family-monospace: #{inspect($font-family-monospace)};\n}\n","/*!\n * Bootstrap v4.6.2 (https://getbootstrap.com/)\n * Copyright 2011-2022 The Bootstrap Authors\n * Copyright 2011-2022 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #007bff;\n --secondary: #6c757d;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", \"Liberation Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", \"Liberation Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n -webkit-text-decoration-skip-ink: none;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([class]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n -ms-overflow-style: scrollbar;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n text-align: -webkit-match-parent;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus:not(:focus-visible) {\n outline: 0;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\n[role=\"button\"] {\n cursor: pointer;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n}\n\nh3, .h3 {\n font-size: 1.75rem;\n}\n\nh4, .h4 {\n font-size: 1.5rem;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n font-size: 0.875em;\n font-weight: 400;\n}\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 0.875em;\n color: #6c757d;\n}\n\n.blockquote-footer::before {\n content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 90%;\n color: #6c757d;\n}\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-wrap: break-word;\n}\n\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\n\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n}\n\npre {\n display: block;\n font-size: 87.5%;\n color: #212529;\n}\n\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n\n.container,\n.container-fluid,\n.container-sm,\n.container-md,\n.container-lg,\n.container-xl {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container, .container-sm {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container, .container-sm, .container-md {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container, .container-sm, .container-md, .container-lg {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container, .container-sm, .container-md, .container-lg, .container-xl {\n max-width: 1140px;\n }\n}\n\n.row {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.row-cols-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.row-cols-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.row-cols-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.row-cols-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.row-cols-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n}\n\n.row-cols-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n -ms-flex-order: -1;\n order: -1;\n}\n\n.order-last {\n -ms-flex-order: 13;\n order: 13;\n}\n\n.order-0 {\n -ms-flex-order: 0;\n order: 0;\n}\n\n.order-1 {\n -ms-flex-order: 1;\n order: 1;\n}\n\n.order-2 {\n -ms-flex-order: 2;\n order: 2;\n}\n\n.order-3 {\n -ms-flex-order: 3;\n order: 3;\n}\n\n.order-4 {\n -ms-flex-order: 4;\n order: 4;\n}\n\n.order-5 {\n -ms-flex-order: 5;\n order: 5;\n}\n\n.order-6 {\n -ms-flex-order: 6;\n order: 6;\n}\n\n.order-7 {\n -ms-flex-order: 7;\n order: 7;\n}\n\n.order-8 {\n -ms-flex-order: 8;\n order: 8;\n}\n\n.order-9 {\n -ms-flex-order: 9;\n order: 9;\n}\n\n.order-10 {\n -ms-flex-order: 10;\n order: 10;\n}\n\n.order-11 {\n -ms-flex-order: 11;\n order: 11;\n}\n\n.order-12 {\n -ms-flex-order: 12;\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-sm-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-sm-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-sm-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-sm-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-sm-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-sm-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-sm-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-sm-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-sm-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-sm-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-sm-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-sm-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-sm-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-sm-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-sm-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-sm-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-sm-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-sm-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-sm-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-sm-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-md-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-md-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-md-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-md-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-md-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-md-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-md-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-md-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-md-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-md-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-md-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-md-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-md-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-md-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-md-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-md-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-md-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-md-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-md-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-md-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-lg-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-lg-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-lg-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-lg-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-lg-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-lg-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-lg-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-lg-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-lg-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-lg-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-lg-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-lg-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-lg-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-lg-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-lg-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-lg-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-lg-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-lg-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-lg-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-lg-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-xl-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-xl-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-xl-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-xl-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-xl-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-xl-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-xl-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-xl-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-xl-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-xl-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-xl-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-xl-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-xl-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-xl-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-xl-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-xl-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-xl-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-xl-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-xl-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-xl-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #212529;\n}\n\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n\n.table-bordered {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n color: #212529;\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n color: #fff;\n background-color: #343a40;\n border-color: #454d55;\n}\n\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.table-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #454d55;\n}\n\n.table-dark.table-bordered {\n border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n border: 0;\n}\n\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::-webkit-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::-moz-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:-ms-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::-ms-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n\ninput[type=\"date\"].form-control,\ninput[type=\"time\"].form-control,\ninput[type=\"datetime-local\"].form-control,\ninput[type=\"month\"].form-control {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\nselect.form-control:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: 0.375rem 0;\n margin-bottom: 0;\n font-size: 1rem;\n line-height: 1.5;\n color: #212529;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n height: auto;\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n\n.form-row {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n\n.form-check-input[disabled] ~ .form-check-label,\n.form-check-input:disabled ~ .form-check-label {\n color: #6c757d;\n}\n\n.form-check-label {\n margin-bottom: 0;\n}\n\n.form-check-inline {\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-align: center;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 0.875em;\n color: #28a745;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.form-row > .col > .valid-tooltip,\n.form-row > [class*=\"col-\"] > .valid-tooltip {\n left: 5px;\n}\n\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #28a745;\n padding-right: calc(1.5em + 0.75rem) !important;\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated select.form-control:valid, select.form-control.is-valid {\n padding-right: 3rem !important;\n background-position: right 1.5rem center;\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #28a745;\n padding-right: calc(0.75em + 2.3125rem) !important;\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") right 0.75rem center/8px 10px no-repeat, #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat;\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: #34ce57;\n background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 0.875em;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.form-row > .col > .invalid-tooltip,\n.form-row > [class*=\"col-\"] > .invalid-tooltip {\n left: 5px;\n}\n\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #dc3545;\n padding-right: calc(1.5em + 0.75rem) !important;\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated select.form-control:invalid, select.form-control.is-invalid {\n padding-right: 3rem !important;\n background-position: right 1.5rem center;\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #dc3545;\n padding-right: calc(0.75em + 2.3125rem) !important;\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") right 0.75rem center/8px 10px no-repeat, #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat;\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: #e4606d;\n background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.form-inline .form-check {\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .form-inline label {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n -ms-flex-align: center;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto;\n }\n .form-inline .form-check {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n color: #212529;\n text-align: center;\n vertical-align: middle;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n\n.btn:hover {\n color: #212529;\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\n\n.btn:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0062cc;\n border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #545b62;\n border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #1e7e34;\n border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #117a8b;\n border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: #d39e00;\n border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #bd2130;\n border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n font-weight: 400;\n color: #007bff;\n text-decoration: none;\n}\n\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n\n.collapsing.width {\n width: 0;\n height: auto;\n transition: width 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .collapsing.width {\n transition: none;\n }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n}\n\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-sm-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 768px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-md-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 992px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-lg-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 1200px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xl-right {\n right: 0;\n left: auto;\n }\n}\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #e9ecef;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #adb5bd;\n pointer-events: none;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: -ms-inline-flexbox;\n display: inline-flex;\n vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-toolbar {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-align: start;\n align-items: flex-start;\n -ms-flex-pack: center;\n justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n\n.input-group {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: stretch;\n align-items: stretch;\n width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n width: 1%;\n min-width: 0;\n margin-bottom: 0;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n}\n\n.input-group > .custom-file .custom-file-input:focus {\n z-index: 4;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group:not(.has-validation) > .form-control:not(:last-child),\n.input-group:not(.has-validation) > .custom-select:not(:last-child),\n.input-group:not(.has-validation) > .custom-file:not(:last-child) .custom-file-label,\n.input-group:not(.has-validation) > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group.has-validation > .form-control:nth-last-child(n + 3),\n.input-group.has-validation > .custom-select:nth-last-child(n + 3),\n.input-group.has-validation > .custom-file:nth-last-child(n + 3) .custom-file-label,\n.input-group.has-validation > .custom-file:nth-last-child(n + 3) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n display: -ms-flexbox;\n display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n z-index: 3;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-append {\n margin-left: -1px;\n}\n\n.input-group-text {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .btn,\n.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .input-group-text,\n.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .btn,\n.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.custom-control {\n position: relative;\n z-index: 1;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n -webkit-print-color-adjust: exact;\n color-adjust: exact;\n print-color-adjust: exact;\n}\n\n.custom-control-inline {\n display: -ms-inline-flexbox;\n display: inline-flex;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n left: 0;\n z-index: -1;\n width: 1rem;\n height: 1.25rem;\n opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: #b3d7ff;\n border-color: #b3d7ff;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {\n color: #6c757d;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top;\n}\n\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n background-color: #fff;\n border: 1px solid #adb5bd;\n}\n\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background: 50% / 50% 50% no-repeat;\n}\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n padding-left: 2.25rem;\n}\n\n.custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem;\n}\n\n.custom-switch .custom-control-label::after {\n top: calc(0.25rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none;\n }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fff;\n -webkit-transform: translateX(0.75rem);\n transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") right 0.75rem center/8px 10px no-repeat;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\n.custom-select:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n display: none;\n}\n\n.custom-select:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem;\n}\n\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem;\n}\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n overflow: hidden;\n opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n border-color: #80bdff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input[disabled] ~ .custom-file-label,\n.custom-file-input:disabled ~ .custom-file-label {\n background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n overflow: hidden;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n width: 100%;\n height: 1.4rem;\n padding: 0;\n background-color: transparent;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\n.custom-range:focus {\n outline: 0;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-focus-outer {\n border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n -webkit-appearance: none;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n -webkit-transition: none;\n transition: none;\n }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n -moz-appearance: none;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n -moz-transition: none;\n transition: none;\n }\n}\n\n.custom-range::-moz-range-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n -ms-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n -ms-transition: none;\n transition: none;\n }\n}\n\n.custom-range::-ms-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem;\n}\n\n.custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n .custom-file-label,\n .custom-select {\n transition: none;\n }\n}\n\n.nav {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n\n.nav-link.disabled {\n color: #6c757d;\n pointer-events: none;\n cursor: default;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-link {\n margin-bottom: -1px;\n background-color: transparent;\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n isolation: isolate;\n border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n background: none;\n border: 0;\n border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n\n.nav-fill > .nav-link,\n.nav-fill .nav-item {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified > .nav-link,\n.nav-justified .nav-item {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n text-align: center;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: justify;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n\n.navbar .container,\n.navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: justify;\n justify-content: space-between;\n}\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n\n.navbar-nav {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n -ms-flex-preferred-size: 100%;\n flex-basis: 100%;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: 50% / 100% 100% no-repeat;\n}\n\n.navbar-nav-scroll {\n max-height: 75vh;\n overflow-y: auto;\n}\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-sm .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-md .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-lg .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-xl .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n}\n\n.navbar-expand {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-nav-scroll {\n overflow: visible;\n}\n\n.navbar-expand .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n\n.card > .list-group {\n border-top: inherit;\n border-bottom: inherit;\n}\n\n.card > .list-group:first-child {\n border-top-width: 0;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card > .list-group:last-child {\n border-bottom-width: 0;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card > .card-header + .list-group,\n.card > .list-group + .card-footer {\n border-top: 0;\n}\n\n.card-body {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n min-height: 1px;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n border-radius: calc(0.25rem - 1px);\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n -ms-flex-negative: 0;\n flex-shrink: 0;\n width: 100%;\n}\n\n.card-img,\n.card-img-top {\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img,\n.card-img-bottom {\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n -ms-flex: 1 0 0%;\n flex: 1 0 0%;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n }\n .card-group > .card {\n -ms-flex: 1 0 0%;\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n -webkit-column-count: 3;\n -moz-column-count: 3;\n column-count: 3;\n -webkit-column-gap: 1.25rem;\n -moz-column-gap: 1.25rem;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n\n.accordion {\n overflow-anchor: none;\n}\n\n.accordion > .card {\n overflow: hidden;\n}\n\n.accordion > .card:not(:last-of-type) {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.accordion > .card > .card-header {\n border-radius: 0;\n margin-bottom: -1px;\n}\n\n.breadcrumb {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n float: left;\n padding-right: 0.5rem;\n color: #6c757d;\n content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n\n.breadcrumb-item.active {\n color: #6c757d;\n}\n\n.pagination {\n display: -ms-flexbox;\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n z-index: 2;\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.page-link:focus {\n z-index: 3;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n z-index: 3;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .badge {\n transition: none;\n }\n}\n\na.badge:hover, a.badge:focus {\n text-decoration: none;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n\n.badge-primary {\n color: #fff;\n background-color: #007bff;\n}\n\na.badge-primary:hover, a.badge-primary:focus {\n color: #fff;\n background-color: #0062cc;\n}\n\na.badge-primary:focus, a.badge-primary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.badge-secondary {\n color: #fff;\n background-color: #6c757d;\n}\n\na.badge-secondary:hover, a.badge-secondary:focus {\n color: #fff;\n background-color: #545b62;\n}\n\na.badge-secondary:focus, a.badge-secondary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\n\na.badge-success:hover, a.badge-success:focus {\n color: #fff;\n background-color: #1e7e34;\n}\n\na.badge-success:focus, a.badge-success.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\na.badge-info:hover, a.badge-info:focus {\n color: #fff;\n background-color: #117a8b;\n}\n\na.badge-info:focus, a.badge-info.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.badge-warning {\n color: #212529;\n background-color: #ffc107;\n}\n\na.badge-warning:hover, a.badge-warning:focus {\n color: #212529;\n background-color: #d39e00;\n}\n\na.badge-warning:focus, a.badge-warning.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\na.badge-danger:hover, a.badge-danger:focus {\n color: #fff;\n background-color: #bd2130;\n}\n\na.badge-danger:focus, a.badge-danger.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.badge-light {\n color: #212529;\n background-color: #f8f9fa;\n}\n\na.badge-light:hover, a.badge-light:focus {\n color: #212529;\n background-color: #dae0e5;\n}\n\na.badge-light:focus, a.badge-light.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\n\na.badge-dark:hover, a.badge-dark:focus {\n color: #fff;\n background-color: #1d2124;\n}\n\na.badge-dark:focus, a.badge-dark.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary hr {\n border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n color: #002752;\n}\n\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n color: #202326;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success hr {\n border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n color: #0b2e13;\n}\n\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info hr {\n border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n color: #062c33;\n}\n\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning hr {\n border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n color: #533f03;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n color: #491217;\n}\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light hr {\n border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n color: #686868;\n}\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n color: #040505;\n}\n\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n.progress {\n display: -ms-flexbox;\n display: flex;\n height: 1rem;\n overflow: hidden;\n line-height: 0;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-pack: center;\n justify-content: center;\n overflow: hidden;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n -webkit-animation: 1s linear infinite progress-bar-stripes;\n animation: 1s linear infinite progress-bar-stripes;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n -webkit-animation: none;\n animation: none;\n }\n}\n\n.media {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: start;\n align-items: flex-start;\n}\n\n.media-body {\n -ms-flex: 1;\n flex: 1;\n}\n\n.list-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n border-radius: 0.25rem;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n border-top-left-radius: inherit;\n border-top-right-radius: inherit;\n}\n\n.list-group-item:last-child {\n border-bottom-right-radius: inherit;\n border-bottom-left-radius: inherit;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff;\n}\n\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.list-group-item + .list-group-item {\n border-top-width: 0;\n}\n\n.list-group-item + .list-group-item.active {\n margin-top: -1px;\n border-top-width: 1px;\n}\n\n.list-group-horizontal {\n -ms-flex-direction: row;\n flex-direction: row;\n}\n\n.list-group-horizontal > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n}\n\n.list-group-horizontal > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n}\n\n.list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n}\n\n.list-group-horizontal > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n}\n\n.list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n}\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .list-group-horizontal-sm > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-sm > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-sm > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-sm > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-sm > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .list-group-horizontal-md > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-md > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-md > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-md > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-md > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .list-group-horizontal-lg > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-lg > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-lg > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-lg > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-lg > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .list-group-horizontal-xl > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xl > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-xl > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-xl > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-xl > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n.list-group-flush {\n border-radius: 0;\n}\n\n.list-group-flush > .list-group-item {\n border-width: 0 0 1px;\n}\n\n.list-group-flush > .list-group-item:last-child {\n border-bottom-width: 0;\n}\n\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #004085;\n background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n\n.list-group-item-secondary {\n color: #383d41;\n background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #383d41;\n background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #383d41;\n border-color: #383d41;\n}\n\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #155724;\n background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0c5460;\n background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #856404;\n background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #721c24;\n background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5;\n}\n\n.close:hover {\n color: #000;\n text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: .75;\n}\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n}\n\na.close.disabled {\n pointer-events: none;\n}\n\n.toast {\n -ms-flex-preferred-size: 350px;\n flex-basis: 350px;\n max-width: 350px;\n font-size: 0.875rem;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n opacity: 0;\n border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n opacity: 1;\n}\n\n.toast.show {\n display: block;\n opacity: 1;\n}\n\n.toast.hide {\n display: none;\n}\n\n.toast-header {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n padding: 0.25rem 0.75rem;\n color: #6c757d;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.toast-body {\n padding: 0.75rem;\n}\n\n.modal-open {\n overflow: hidden;\n}\n\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n transition: -webkit-transform 0.3s ease-out;\n transition: transform 0.3s ease-out;\n transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;\n -webkit-transform: translate(0, -50px);\n transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n\n.modal.show .modal-dialog {\n -webkit-transform: none;\n transform: none;\n}\n\n.modal.modal-static .modal-dialog {\n -webkit-transform: scale(1.02);\n transform: scale(1.02);\n}\n\n.modal-dialog-scrollable {\n display: -ms-flexbox;\n display: flex;\n max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n -ms-flex-negative: 0;\n flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n\n.modal-dialog-centered {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n height: -webkit-min-content;\n height: -moz-min-content;\n height: min-content;\n content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-pack: center;\n justify-content: center;\n height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n content: none;\n}\n\n.modal-content {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n\n.modal-backdrop.fade {\n opacity: 0;\n}\n\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: start;\n align-items: flex-start;\n -ms-flex-pack: justify;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #dee2e6;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: end;\n justify-content: flex-end;\n padding: 0.75rem;\n border-top: 1px solid #dee2e6;\n border-bottom-right-radius: calc(0.3rem - 1px);\n border-bottom-left-radius: calc(0.3rem - 1px);\n}\n\n.modal-footer > * {\n margin: 0.25rem;\n}\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem);\n }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem);\n }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem);\n }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem);\n height: -webkit-min-content;\n height: -moz-min-content;\n height: min-content;\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n\n@media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px;\n }\n}\n\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px;\n }\n}\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", \"Liberation Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n white-space: normal;\n word-spacing: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n\n.tooltip.show {\n opacity: 0.9;\n}\n\n.tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", \"Liberation Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n white-space: normal;\n word-spacing: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n\n.popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 0.5rem;\n}\n\n.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=\"top\"] > .arrow {\n bottom: calc(-0.5rem - 1px);\n}\n\n.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 0.5rem;\n}\n\n.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=\"right\"] > .arrow {\n left: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 0.5rem;\n}\n\n.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow {\n top: calc(-0.5rem - 1px);\n}\n\n.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 0.5rem;\n}\n\n.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=\"left\"] > .arrow {\n right: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #212529;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n -ms-touch-action: pan-y;\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-inner::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n transition: -webkit-transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n -webkit-transform: translateX(100%);\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n -webkit-transform: translateX(-100%);\n transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n -webkit-transform: none;\n transform: none;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n transition: opacity 0s 0.6s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-right {\n transition: none;\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n width: 15%;\n padding: 0;\n color: #fff;\n text-align: center;\n background: none;\n border: 0;\n opacity: 0.5;\n transition: opacity 0.15s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none;\n }\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: 50% / 100% 100% no-repeat;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n\n.carousel-indicators li {\n box-sizing: content-box;\n -ms-flex: 0 1 auto;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: .5;\n transition: opacity 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-indicators li {\n transition: none;\n }\n}\n\n.carousel-indicators .active {\n opacity: 1;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n\n@-webkit-keyframes spinner-border {\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes spinner-border {\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: -0.125em;\n border: 0.25em solid currentcolor;\n border-right-color: transparent;\n border-radius: 50%;\n -webkit-animation: .75s linear infinite spinner-border;\n animation: .75s linear infinite spinner-border;\n}\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em;\n}\n\n@-webkit-keyframes spinner-grow {\n 0% {\n -webkit-transform: scale(0);\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n@keyframes spinner-grow {\n 0% {\n -webkit-transform: scale(0);\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: -0.125em;\n background-color: currentcolor;\n border-radius: 50%;\n opacity: 0;\n -webkit-animation: .75s linear infinite spinner-grow;\n animation: .75s linear infinite spinner-grow;\n}\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .spinner-border,\n .spinner-grow {\n -webkit-animation-duration: 1.5s;\n animation-duration: 1.5s;\n }\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.bg-primary {\n background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #0062cc !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #545b62 !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #1e7e34 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #117a8b !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #d39e00 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #bd2130 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded-sm {\n border-radius: 0.2rem !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: 50rem !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n}\n\n.d-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-md-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-print-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.embed-responsive-21by9::before {\n padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n\n.flex-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n}\n\n.flex-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n}\n\n.justify-content-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n}\n\n.align-items-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n}\n\n.align-items-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n}\n\n.align-items-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n}\n\n.align-items-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n}\n\n.align-content-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n}\n\n.align-content-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n}\n\n.align-content-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n}\n\n.align-content-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n}\n\n.align-content-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n}\n\n.align-self-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n}\n\n.align-self-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n}\n\n.align-self-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n}\n\n.align-self-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n}\n\n.align-self-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-sm-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-sm-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-sm-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-sm-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-sm-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-sm-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-sm-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-sm-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-md-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-md-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-md-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-md-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-md-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-md-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-md-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-md-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-md-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-md-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-md-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-md-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-md-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-md-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-md-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-md-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-lg-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-lg-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-lg-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-lg-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-lg-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-lg-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-lg-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-lg-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-xl-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-xl-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-xl-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-xl-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-xl-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-xl-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-xl-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-xl-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n .float-sm-right {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n}\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n .float-md-right {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n}\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n .float-lg-right {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n}\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n .float-xl-right {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n}\n\n.user-select-all {\n -webkit-user-select: all !important;\n -moz-user-select: all !important;\n user-select: all !important;\n}\n\n.user-select-auto {\n -webkit-user-select: auto !important;\n -moz-user-select: auto !important;\n -ms-user-select: auto !important;\n user-select: auto !important;\n}\n\n.user-select-none {\n -webkit-user-select: none !important;\n -moz-user-select: none !important;\n -ms-user-select: none !important;\n user-select: none !important;\n}\n\n.overflow-auto {\n overflow: auto !important;\n}\n\n.overflow-hidden {\n overflow: hidden !important;\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: -webkit-sticky !important;\n position: sticky !important;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n@supports ((position: -webkit-sticky) or (position: sticky)) {\n .sticky-top {\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n}\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.min-vw-100 {\n min-width: 100vw !important;\n}\n\n.min-vh-100 {\n min-height: 100vh !important;\n}\n\n.vw-100 {\n width: 100vw !important;\n}\n\n.vh-100 {\n height: 100vh !important;\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: \"\";\n background-color: rgba(0, 0, 0, 0);\n}\n\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-wrap {\n white-space: normal !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n .text-sm-right {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n .text-md-right {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n .text-lg-right {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n .text-xl-right {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n font-weight: lighter !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n font-weight: bolder !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: #0056b3 !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #494f54 !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: #19692c !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: #0f6674 !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: #ba8b00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: #a71d2a !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: #cbd3da !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: #121416 !important;\n}\n\n.text-body {\n color: #212529 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n.text-decoration-none {\n text-decoration: none !important;\n}\n\n.text-break {\n word-break: break-word !important;\n word-wrap: break-word !important;\n}\n\n.text-reset {\n color: inherit !important;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n a:not(.btn) {\n text-decoration: underline;\n }\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n @page {\n size: a3;\n }\n body {\n min-width: 992px !important;\n }\n .container {\n min-width: 992px !important;\n }\n .navbar {\n display: none;\n }\n .badge {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important;\n }\n .table-dark {\n color: inherit;\n }\n .table-dark th,\n .table-dark td,\n .table-dark thead th,\n .table-dark tbody + tbody {\n border-color: #dee2e6;\n }\n .table .thead-dark th {\n color: inherit;\n border-color: #dee2e6;\n }\n}\n/*# sourceMappingURL=bootstrap.css.map */","// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -webkit-tap-highlight-color: rgba($black, 0); // 5\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\n// TODO: remove in v5\n// stylelint-disable-next-line selector-list-comma-newline-after\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use\n// the `inherit` value on things like `` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Future-proof rule: in browsers that support :focus-visible, suppress the focus outline\n// on elements that programmatically receive focus but wouldn't normally show a visible\n// focus outline. In general, this would mean that the outline is only applied if the\n// interaction that led to the element receiving programmatic focus was a keyboard interaction,\n// or the browser has somehow determined that the user is primarily a keyboard user and/or\n// wants focus outlines to always be presented.\n//\n// See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible\n// and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `

`-`

` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n @include font-size(75%);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover() {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none;\n\n @include hover() {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n // Disable auto-hiding scrollbar in IE & legacy Edge to avoid overlap,\n // making it impossible to interact with the content\n -ms-overflow-style: scrollbar;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\n// 1. Removes font-weight bold by inheriting\n// 2. Matches default `` alignment by inheriting `text-align`.\n// 3. Fix alignment for Safari\n\nth {\n font-weight: $table-th-font-weight; // 1\n text-align: inherit; // 2\n text-align: -webkit-match-parent; // 3\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 0;\n}\n\n// Explicitly remove focus outline in Chromium when it shouldn't be\n// visible (e.g. as result of mouse click or touch tap). It already\n// should be doing this automatically, but seems to currently be\n// confused and applies its very visible two-tone outline anyway.\n\nbutton:focus:not(:focus-visible) {\n outline: 0;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Set the cursor for non-`