diff --git a/bin/lamassu-send-coins b/bin/lamassu-send-coins
index 6021d030..b8869d9a 100755
--- a/bin/lamassu-send-coins
+++ b/bin/lamassu-send-coins
@@ -3,7 +3,7 @@
const settingsLoader = require('../lib/new-settings-loader')
const configManager = require('../lib/new-config-manager')
const wallet = require('../lib/wallet')
-const { utils: coinUtils } = require('lamassu-coins')
+const { utils: coinUtils } = require('@lamassu/coins')
const BN = require('../lib/bn')
const inquirer = require('inquirer')
const ticker = require('../lib/ticker')
diff --git a/bin/lamassu-update-wallet-nodes b/bin/lamassu-update-wallet-nodes
index c648ba4b..f5f42d3a 100644
--- a/bin/lamassu-update-wallet-nodes
+++ b/bin/lamassu-update-wallet-nodes
@@ -2,7 +2,7 @@
const _ = require('lodash/fp')
const common = require('../lib/blockchain/common')
-const { utils: coinUtils } = require('lamassu-coins')
+const { utils: coinUtils } = require('@lamassu/coins')
const cryptos = coinUtils.cryptoCurrencies()
diff --git a/lib/admin/funding.js b/lib/admin/funding.js
index 81a51ea1..a448cf6a 100644
--- a/lib/admin/funding.js
+++ b/lib/admin/funding.js
@@ -4,7 +4,7 @@ const settingsLoader = require('./settings-loader')
const configManager = require('./config-manager')
const wallet = require('../wallet')
const ticker = require('../ticker')
-const { utils: coinUtils } = require('lamassu-coins')
+const { utils: coinUtils } = require('@lamassu/coins')
const machineLoader = require('../machine-loader')
module.exports = {getFunding}
diff --git a/lib/blockchain/bitcoin.js b/lib/blockchain/bitcoin.js
index d36bd946..a1bfb22b 100644
--- a/lib/blockchain/bitcoin.js
+++ b/lib/blockchain/bitcoin.js
@@ -1,6 +1,6 @@
const path = require('path')
-const { utils: coinUtils } = require('lamassu-coins')
+const { utils: coinUtils } = require('@lamassu/coins')
const common = require('./common')
diff --git a/lib/blockchain/bitcoincash.js b/lib/blockchain/bitcoincash.js
index 5fbbd4bd..37dac4f3 100644
--- a/lib/blockchain/bitcoincash.js
+++ b/lib/blockchain/bitcoincash.js
@@ -1,6 +1,6 @@
const path = require('path')
-const { utils: coinUtils } = require('lamassu-coins')
+const { utils: coinUtils } = require('@lamassu/coins')
const common = require('./common')
diff --git a/lib/blockchain/dash.js b/lib/blockchain/dash.js
index f63f39b5..e688326f 100644
--- a/lib/blockchain/dash.js
+++ b/lib/blockchain/dash.js
@@ -1,6 +1,6 @@
const path = require('path')
-const { utils: coinUtils } = require('lamassu-coins')
+const { utils: coinUtils } = require('@lamassu/coins')
const common = require('./common')
diff --git a/lib/blockchain/ethereum.js b/lib/blockchain/ethereum.js
index bdef942a..dd39468a 100644
--- a/lib/blockchain/ethereum.js
+++ b/lib/blockchain/ethereum.js
@@ -1,4 +1,4 @@
-const { utils: coinUtils } = require('lamassu-coins')
+const { utils: coinUtils } = require('@lamassu/coins')
const common = require('./common')
diff --git a/lib/blockchain/install.js b/lib/blockchain/install.js
index 5f2cb436..88d8906a 100644
--- a/lib/blockchain/install.js
+++ b/lib/blockchain/install.js
@@ -7,7 +7,7 @@ const makeDir = require('make-dir')
const inquirer = require('inquirer')
const _ = require('lodash/fp')
-const { utils: coinUtils } = require('lamassu-coins')
+const { utils: coinUtils } = require('@lamassu/coins')
const options = require('../options')
const settingsLoader = require('../new-settings-loader')
const wallet = require('../wallet')
diff --git a/lib/blockchain/litecoin.js b/lib/blockchain/litecoin.js
index ead1f2f3..41b09967 100644
--- a/lib/blockchain/litecoin.js
+++ b/lib/blockchain/litecoin.js
@@ -1,6 +1,6 @@
const path = require('path')
-const { utils: coinUtils } = require('lamassu-coins')
+const { utils: coinUtils } = require('@lamassu/coins')
const common = require('./common')
diff --git a/lib/blockchain/monero.js b/lib/blockchain/monero.js
index 2c529fa5..447b2722 100644
--- a/lib/blockchain/monero.js
+++ b/lib/blockchain/monero.js
@@ -1,6 +1,6 @@
const path = require('path')
-const { utils } = require('lamassu-coins')
+const { utils } = require('@lamassu/coins')
const common = require('./common')
diff --git a/lib/blockchain/zcash.js b/lib/blockchain/zcash.js
index 24fbabea..52dfd496 100644
--- a/lib/blockchain/zcash.js
+++ b/lib/blockchain/zcash.js
@@ -1,6 +1,6 @@
const path = require('path')
-const { utils: coinUtils } = require('lamassu-coins')
+const { utils: coinUtils } = require('@lamassu/coins')
const common = require('./common')
diff --git a/lib/commission-math.js b/lib/commission-math.js
index fe77b922..c29a6af9 100644
--- a/lib/commission-math.js
+++ b/lib/commission-math.js
@@ -1,6 +1,6 @@
const BN = require('./bn')
const configManager = require('./new-config-manager')
-const { utils: coinUtils } = require('lamassu-coins')
+const { utils: coinUtils } = require('@lamassu/coins')
function truncateCrypto (cryptoAtoms, cryptoCode) {
const DECIMAL_PLACES = 6
diff --git a/lib/config-migration.js b/lib/config-migration.js
index 6befaaf8..b6f16e10 100644
--- a/lib/config-migration.js
+++ b/lib/config-migration.js
@@ -1,6 +1,6 @@
const _ = require('lodash/fp')
const uuid = require('uuid')
-const { COINS } = require('lamassu-coins')
+const { COINS } = require('@lamassu/coins')
const { scopedValue } = require('./admin/config-manager')
const GLOBAL = 'global'
diff --git a/lib/new-admin/config/accounts.js b/lib/new-admin/config/accounts.js
index c6a17b88..53b81b13 100644
--- a/lib/new-admin/config/accounts.js
+++ b/lib/new-admin/config/accounts.js
@@ -1,4 +1,4 @@
-const { COINS, ALL_CRYPTOS } = require('lamassu-coins')
+const { COINS, ALL_CRYPTOS } = require('@lamassu/coins')
const _ = require('lodash/fp')
const { ALL } = require('../../plugins/common/ccxt')
diff --git a/lib/new-admin/config/index.js b/lib/new-admin/config/index.js
index 144db3c2..bb87e0c4 100644
--- a/lib/new-admin/config/index.js
+++ b/lib/new-admin/config/index.js
@@ -1,6 +1,6 @@
const _ = require('lodash/fp')
-const { CRYPTO_CURRENCIES } = require('lamassu-coins')
+const { CRYPTO_CURRENCIES } = require('@lamassu/coins')
const { ACCOUNT_LIST: accounts } = require('./accounts')
const countries = require('../../../data/countries.json')
diff --git a/lib/new-admin/services/funding.js b/lib/new-admin/services/funding.js
index 2e07e9ab..5b425d82 100644
--- a/lib/new-admin/services/funding.js
+++ b/lib/new-admin/services/funding.js
@@ -5,7 +5,7 @@ const configManager = require('../../new-config-manager')
const wallet = require('../../wallet')
const ticker = require('../../ticker')
const txBatching = require('../../tx-batching')
-const { utils: coinUtils } = require('lamassu-coins')
+const { utils: coinUtils } = require('@lamassu/coins')
function computeCrypto (cryptoCode, _balance) {
const cryptoRec = coinUtils.getCryptoCurrency(cryptoCode)
diff --git a/lib/new-admin/services/transactions.js b/lib/new-admin/services/transactions.js
index cf4df340..5da959e8 100644
--- a/lib/new-admin/services/transactions.js
+++ b/lib/new-admin/services/transactions.js
@@ -3,7 +3,7 @@ const pgp = require('pg-promise')()
const db = require('../../db')
const BN = require('../../bn')
-const { utils: coinUtils } = require('lamassu-coins')
+const { utils: coinUtils } = require('@lamassu/coins')
const machineLoader = require('../../machine-loader')
const tx = require('../../tx')
const cashInTx = require('../../cash-in/cash-in-tx')
diff --git a/lib/notifier/utils.js b/lib/notifier/utils.js
index 4f71c5ec..edcea3df 100644
--- a/lib/notifier/utils.js
+++ b/lib/notifier/utils.js
@@ -1,6 +1,6 @@
const _ = require('lodash/fp')
const crypto = require('crypto')
-const { utils: coinUtils } = require('lamassu-coins')
+const { utils: coinUtils } = require('@lamassu/coins')
const numeral = require('numeral')
const prettyMs = require('pretty-ms')
diff --git a/lib/plugins.js b/lib/plugins.js
index 7603bbb4..8a11ebfc 100644
--- a/lib/plugins.js
+++ b/lib/plugins.js
@@ -30,7 +30,7 @@ const { CASSETTE_MAX_CAPACITY, CASH_OUT_DISPENSE_READY, CONFIRMATION_CODE } = re
const notifier = require('./notifier')
-const { utils: coinUtils } = require('lamassu-coins')
+const { utils: coinUtils } = require('@lamassu/coins')
const mapValuesWithKey = _.mapValues.convert({
cap: false
diff --git a/lib/plugins/common/ccxt.js b/lib/plugins/common/ccxt.js
index 9cb0824a..322e8313 100644
--- a/lib/plugins/common/ccxt.js
+++ b/lib/plugins/common/ccxt.js
@@ -1,4 +1,4 @@
-const { COINS } = require('lamassu-coins')
+const { COINS } = require('@lamassu/coins')
const _ = require('lodash/fp')
const kraken = require('../exchange/kraken')
diff --git a/lib/plugins/common/json-rpc.js b/lib/plugins/common/json-rpc.js
index 463dc2fa..33174591 100644
--- a/lib/plugins/common/json-rpc.js
+++ b/lib/plugins/common/json-rpc.js
@@ -4,7 +4,7 @@ const uuid = require('uuid')
const fs = require('fs')
const _ = require('lodash/fp')
const request = require('request-promise')
-const { utils: coinUtils } = require('lamassu-coins')
+const { utils: coinUtils } = require('@lamassu/coins')
const options = require('../../options')
diff --git a/lib/plugins/exchange/binanceus.js b/lib/plugins/exchange/binanceus.js
index 78df0263..1804b1d7 100644
--- a/lib/plugins/exchange/binanceus.js
+++ b/lib/plugins/exchange/binanceus.js
@@ -1,4 +1,4 @@
-const { COINS } = require('lamassu-coins')
+const { COINS } = require('@lamassu/coins')
const _ = require('lodash/fp')
const { ORDER_TYPES } = require('./consts')
diff --git a/lib/plugins/exchange/bitstamp.js b/lib/plugins/exchange/bitstamp.js
index 102ae6aa..f325f447 100644
--- a/lib/plugins/exchange/bitstamp.js
+++ b/lib/plugins/exchange/bitstamp.js
@@ -1,4 +1,4 @@
-const { COINS } = require('lamassu-coins')
+const { COINS } = require('@lamassu/coins')
const _ = require('lodash/fp')
const { ORDER_TYPES } = require('./consts')
diff --git a/lib/plugins/exchange/ccxt.js b/lib/plugins/exchange/ccxt.js
index a0f5904e..2211b9c0 100644
--- a/lib/plugins/exchange/ccxt.js
+++ b/lib/plugins/exchange/ccxt.js
@@ -1,4 +1,4 @@
-const { toUnit } = require('lamassu-coins')
+const { toUnit } = require('@lamassu/coins')
const _ = require('lodash/fp')
const ccxt = require('ccxt')
diff --git a/lib/plugins/exchange/cex.js b/lib/plugins/exchange/cex.js
index 8405996b..52f6ad71 100644
--- a/lib/plugins/exchange/cex.js
+++ b/lib/plugins/exchange/cex.js
@@ -1,4 +1,4 @@
-const { COINS } = require('lamassu-coins')
+const { COINS } = require('@lamassu/coins')
const _ = require('lodash/fp')
const { ORDER_TYPES } = require('./consts')
diff --git a/lib/plugins/exchange/ftx.js b/lib/plugins/exchange/ftx.js
index a8cf8df3..c085ef96 100644
--- a/lib/plugins/exchange/ftx.js
+++ b/lib/plugins/exchange/ftx.js
@@ -1,4 +1,4 @@
-const { COINS } = require('lamassu-coins')
+const { COINS } = require('@lamassu/coins')
const _ = require('lodash/fp')
const { ORDER_TYPES } = require('./consts')
diff --git a/lib/plugins/exchange/itbit.js b/lib/plugins/exchange/itbit.js
index 59d0e77d..dcaa3d83 100644
--- a/lib/plugins/exchange/itbit.js
+++ b/lib/plugins/exchange/itbit.js
@@ -1,7 +1,7 @@
const _ = require('lodash/fp')
const { ORDER_TYPES } = require('./consts')
-const { COINS } = require('lamassu-coins')
+const { COINS } = require('@lamassu/coins')
const ORDER_TYPE = ORDER_TYPES.LIMIT
const { BTC, ETH, USDT } = COINS
diff --git a/lib/plugins/exchange/kraken.js b/lib/plugins/exchange/kraken.js
index 4be14bba..55eea444 100644
--- a/lib/plugins/exchange/kraken.js
+++ b/lib/plugins/exchange/kraken.js
@@ -1,7 +1,7 @@
const _ = require('lodash/fp')
const { ORDER_TYPES } = require('./consts')
-const { COINS } = require('lamassu-coins')
+const { COINS } = require('@lamassu/coins')
const ORDER_TYPE = ORDER_TYPES.MARKET
const { BTC, BCH, DASH, ETH, LTC, ZEC, USDT, XMR } = COINS
diff --git a/lib/plugins/ticker/bitpay.js b/lib/plugins/ticker/bitpay.js
index fcec2379..f352131c 100644
--- a/lib/plugins/ticker/bitpay.js
+++ b/lib/plugins/ticker/bitpay.js
@@ -1,5 +1,5 @@
const axios = require('axios')
-const { COINS } = require('lamassu-coins')
+const { COINS } = require('@lamassu/coins')
const BN = require('../../bn')
const { BTC, BCH } = COINS
diff --git a/lib/plugins/wallet/bitcoincashd/bitcoincashd.js b/lib/plugins/wallet/bitcoincashd/bitcoincashd.js
index 76d23295..857da1d0 100644
--- a/lib/plugins/wallet/bitcoincashd/bitcoincashd.js
+++ b/lib/plugins/wallet/bitcoincashd/bitcoincashd.js
@@ -3,7 +3,7 @@ const jsonRpc = require('../../common/json-rpc')
const BN = require('../../../bn')
const E = require('../../../error')
-const { utils: coinUtils } = require('lamassu-coins')
+const { utils: coinUtils } = require('@lamassu/coins')
const cryptoRec = coinUtils.getCryptoCurrency('BCH')
const unitScale = cryptoRec.unitScale
diff --git a/lib/plugins/wallet/bitcoind/bitcoind.js b/lib/plugins/wallet/bitcoind/bitcoind.js
index 963a4d03..cd9b1df0 100644
--- a/lib/plugins/wallet/bitcoind/bitcoind.js
+++ b/lib/plugins/wallet/bitcoind/bitcoind.js
@@ -4,7 +4,7 @@ const jsonRpc = require('../../common/json-rpc')
const BN = require('../../../bn')
const E = require('../../../error')
const logger = require('../../../logger')
-const { utils: coinUtils } = require('lamassu-coins')
+const { utils: coinUtils } = require('@lamassu/coins')
const cryptoRec = coinUtils.getCryptoCurrency('BTC')
const unitScale = cryptoRec.unitScale
diff --git a/lib/plugins/wallet/dashd/dashd.js b/lib/plugins/wallet/dashd/dashd.js
index 439b1fdd..4d759e0d 100644
--- a/lib/plugins/wallet/dashd/dashd.js
+++ b/lib/plugins/wallet/dashd/dashd.js
@@ -1,7 +1,7 @@
const _ = require('lodash/fp')
const jsonRpc = require('../../common/json-rpc')
-const { utils: coinUtils } = require('lamassu-coins')
+const { utils: coinUtils } = require('@lamassu/coins')
const BN = require('../../../bn')
const E = require('../../../error')
diff --git a/lib/plugins/wallet/geth/base.js b/lib/plugins/wallet/geth/base.js
index a4abd4a6..48e0c4b4 100644
--- a/lib/plugins/wallet/geth/base.js
+++ b/lib/plugins/wallet/geth/base.js
@@ -5,7 +5,7 @@ const web3 = new Web3()
const hdkey = require('ethereumjs-wallet/hdkey')
const Tx = require('ethereumjs-tx')
const util = require('ethereumjs-util')
-const coins = require('lamassu-coins')
+const coins = require('@lamassu/coins')
const pify = require('pify')
const BN = require('../../../bn')
const ABI = require('../../tokens')
diff --git a/lib/plugins/wallet/geth/geth.js b/lib/plugins/wallet/geth/geth.js
index 40a44726..53266d90 100644
--- a/lib/plugins/wallet/geth/geth.js
+++ b/lib/plugins/wallet/geth/geth.js
@@ -1,6 +1,6 @@
const base = require('./base')
-const { utils: coinUtils } = require('lamassu-coins')
+const { utils: coinUtils } = require('@lamassu/coins')
const cryptoRec = coinUtils.getCryptoCurrency('ETH')
const defaultPort = cryptoRec.defaultPort
diff --git a/lib/plugins/wallet/litecoind/litecoind.js b/lib/plugins/wallet/litecoind/litecoind.js
index df92edeb..ab25d626 100644
--- a/lib/plugins/wallet/litecoind/litecoind.js
+++ b/lib/plugins/wallet/litecoind/litecoind.js
@@ -1,7 +1,7 @@
const _ = require('lodash/fp')
const jsonRpc = require('../../common/json-rpc')
-const { utils: coinUtils } = require('lamassu-coins')
+const { utils: coinUtils } = require('@lamassu/coins')
const BN = require('../../../bn')
const E = require('../../../error')
diff --git a/lib/plugins/wallet/lnd/lnd.js b/lib/plugins/wallet/lnd/lnd.js
index 79bd0f3e..8f7d3e72 100644
--- a/lib/plugins/wallet/lnd/lnd.js
+++ b/lib/plugins/wallet/lnd/lnd.js
@@ -2,7 +2,7 @@ const lnd = require('lnd-async')
const BN = require('../../../bn')
const E = require('../../../error')
-const { utils: coinUtils } = require('lamassu-coins')
+const { utils: coinUtils } = require('@lamassu/coins')
const options = require('../../../options')
const _ = require('lodash/fp')
diff --git a/lib/plugins/wallet/mock-wallet/mock-wallet.js b/lib/plugins/wallet/mock-wallet/mock-wallet.js
index 5f566446..6d163cf8 100644
--- a/lib/plugins/wallet/mock-wallet/mock-wallet.js
+++ b/lib/plugins/wallet/mock-wallet/mock-wallet.js
@@ -2,7 +2,7 @@ const _ = require('lodash/fp')
const BN = require('../../../bn')
const E = require('../../../error')
-const { utils: coinUtils } = require('lamassu-coins')
+const { utils: coinUtils } = require('@lamassu/coins')
const NAME = 'FakeWallet'
diff --git a/lib/plugins/wallet/monerod/monerod.js b/lib/plugins/wallet/monerod/monerod.js
index 3d070dee..971fda29 100644
--- a/lib/plugins/wallet/monerod/monerod.js
+++ b/lib/plugins/wallet/monerod/monerod.js
@@ -3,7 +3,7 @@ const path = require('path')
const _ = require('lodash/fp')
const jsonRpc = require('../../common/json-rpc')
-const { COINS, utils } = require('lamassu-coins')
+const { COINS, utils } = require('@lamassu/coins')
const BN = require('../../../bn')
const E = require('../../../error')
diff --git a/lib/plugins/wallet/zcashd/zcashd.js b/lib/plugins/wallet/zcashd/zcashd.js
index e5683cd8..26762d4f 100644
--- a/lib/plugins/wallet/zcashd/zcashd.js
+++ b/lib/plugins/wallet/zcashd/zcashd.js
@@ -2,7 +2,7 @@ const _ = require('lodash/fp')
const pRetry = require('p-retry')
const jsonRpc = require('../../common/json-rpc')
-const { utils: coinUtils } = require('lamassu-coins')
+const { utils: coinUtils } = require('@lamassu/coins')
const BN = require('../../../bn')
const E = require('../../../error')
diff --git a/lib/sms.js b/lib/sms.js
index 424df961..f395e58d 100644
--- a/lib/sms.js
+++ b/lib/sms.js
@@ -3,7 +3,7 @@ const dateFormat = require('dateformat')
const ph = require('./plugin-helper')
const argv = require('minimist')(process.argv.slice(2))
-const { utils: coinUtils } = require('lamassu-coins')
+const { utils: coinUtils } = require('@lamassu/coins')
const _ = require('lodash/fp')
const smsNotices = require('./sms-notices')
diff --git a/migrations/1623975493095-add-crypto-units-to-config.js b/migrations/1623975493095-add-crypto-units-to-config.js
index 4453485b..95d87c07 100644
--- a/migrations/1623975493095-add-crypto-units-to-config.js
+++ b/migrations/1623975493095-add-crypto-units-to-config.js
@@ -1,6 +1,6 @@
const { migrationSaveConfig, loadLatest } = require('../lib/new-settings-loader')
const { getCryptosFromWalletNamespace } = require('../lib/new-config-manager.js')
-const { utils: coinUtils } = require('lamassu-coins')
+const { utils: coinUtils } = require('@lamassu/coins')
const _ = require('lodash/fp')
exports.up = function (next) {
diff --git a/new-lamassu-admin/package-lock.json b/new-lamassu-admin/package-lock.json
index 99d52c11..b2019ab5 100644
--- a/new-lamassu-admin/package-lock.json
+++ b/new-lamassu-admin/package-lock.json
@@ -4393,6 +4393,31 @@
}
}
},
+ "@lamassu/coins": {
+ "version": "1.0.0-beta.2",
+ "resolved": "https://registry.npmjs.org/@lamassu/coins/-/coins-1.0.0-beta.2.tgz",
+ "integrity": "sha512-ueed1wHVLKJW5fSihZlFix5Fr+ZPisRxtqZgw+AdHSmWSD70+iCqHDFLIW7ACSUhXLL6SRTrDms2WAoWu4lB+w==",
+ "requires": {
+ "bech32": "2.0.0",
+ "big-integer": "^1.6.48",
+ "bignumber.js": "^9.0.0",
+ "bitcoinjs-lib": "4.0.3",
+ "bitcore-lib-cash": "^8.25.25",
+ "bs58check": "^2.0.2",
+ "cashaddrjs": "~0.2.8",
+ "crypto-js": "^3.1.9-1",
+ "ethereumjs-icap": "^0.3.1",
+ "keccak256": "^1.0.2",
+ "lodash": "^4.17.10"
+ },
+ "dependencies": {
+ "bech32": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz",
+ "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg=="
+ }
+ }
+ },
"@material-ui/core": {
"version": "4.11.0",
"resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.11.0.tgz",
@@ -8287,6 +8312,11 @@
"resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz",
"integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w=="
},
+ "bigi": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/bigi/-/bigi-1.4.2.tgz",
+ "integrity": "sha1-nGZalfiLiwj8Bc/XMfVhhZ1yWCU="
+ },
"bignumber.js": {
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz",
@@ -8306,6 +8336,18 @@
"file-uri-to-path": "1.0.0"
}
},
+ "bip-schnorr": {
+ "version": "0.6.4",
+ "resolved": "https://registry.npmjs.org/bip-schnorr/-/bip-schnorr-0.6.4.tgz",
+ "integrity": "sha512-dNKw7Lea8B0wMIN4OjEmOk/Z5qUGqoPDY0P2QttLqGk1hmDPytLWW8PR5Pb6Vxy6CprcdEgfJpOjUu+ONQveyg==",
+ "requires": {
+ "bigi": "^1.4.2",
+ "ecurve": "^1.0.6",
+ "js-sha256": "^0.9.0",
+ "randombytes": "^2.1.0",
+ "safe-buffer": "^5.2.1"
+ }
+ },
"bip32": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/bip32/-/bip32-1.0.4.tgz",
@@ -8354,6 +8396,54 @@
"wif": "^2.0.1"
}
},
+ "bitcore-lib": {
+ "version": "8.25.25",
+ "resolved": "https://registry.npmjs.org/bitcore-lib/-/bitcore-lib-8.25.25.tgz",
+ "integrity": "sha512-H6qNCVl4M8/MglXhvc04mmeus1d6nrmqTJGQ+xezJLvL7hs7R3dyBPtOqSP3YSw0iq/GWspMd8f5OOlyXVipJQ==",
+ "requires": {
+ "bech32": "=2.0.0",
+ "bip-schnorr": "=0.6.4",
+ "bn.js": "=4.11.8",
+ "bs58": "^4.0.1",
+ "buffer-compare": "=1.1.1",
+ "elliptic": "^6.5.3",
+ "inherits": "=2.0.1",
+ "lodash": "^4.17.20"
+ },
+ "dependencies": {
+ "bech32": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz",
+ "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg=="
+ },
+ "inherits": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
+ }
+ }
+ },
+ "bitcore-lib-cash": {
+ "version": "8.25.25",
+ "resolved": "https://registry.npmjs.org/bitcore-lib-cash/-/bitcore-lib-cash-8.25.25.tgz",
+ "integrity": "sha512-p/KEBlCKNTTxOZFJLt/bA1b7pQ1JFapHkoWL8mSLxfz9wTK4ScN74zpbBwhG+O7dk7XMo8iRrKigvanmkce35g==",
+ "requires": {
+ "bitcore-lib": "^8.25.25",
+ "bn.js": "=4.11.8",
+ "bs58": "^4.0.1",
+ "buffer-compare": "=1.1.1",
+ "elliptic": "^6.5.3",
+ "inherits": "=2.0.1",
+ "lodash": "^4.17.20"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
+ }
+ }
+ },
"bluebird": {
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz",
@@ -8765,6 +8855,11 @@
}
}
},
+ "buffer-compare": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-compare/-/buffer-compare-1.1.1.tgz",
+ "integrity": "sha1-W+e+hTr4kZjR9N3AkNHWakiu9ZY="
+ },
"buffer-from": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
@@ -11068,6 +11163,15 @@
"safer-buffer": "^2.1.0"
}
},
+ "ecurve": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/ecurve/-/ecurve-1.0.6.tgz",
+ "integrity": "sha512-/BzEjNfiSuB7jIWKcS/z8FK9jNjmEWvUV2YZ4RLSmcDtP7Lq0m6FvDuSnJpBlDpGRpfRQeTLGLBI8H+kEv0r+w==",
+ "requires": {
+ "bigi": "^1.1.0",
+ "safe-buffer": "^5.0.1"
+ }
+ },
"ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
@@ -16891,6 +16995,11 @@
"resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz",
"integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ=="
},
+ "js-sha256": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz",
+ "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA=="
+ },
"js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -17263,29 +17372,6 @@
"integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
"dev": true
},
- "lamassu-coins": {
- "version": "git+https://github.com/lamassu/lamassu-coins.git#f80395e4bab0fccc860de166c97e981ca3ae66a6",
- "from": "git+https://github.com/lamassu/lamassu-coins.git",
- "requires": {
- "bech32": "2.0.0",
- "big-integer": "^1.6.48",
- "bignumber.js": "^9.0.0",
- "bitcoinjs-lib": "4.0.3",
- "bs58check": "^2.0.2",
- "cashaddrjs": "~0.2.8",
- "crypto-js": "^3.1.9-1",
- "ethereumjs-icap": "^0.3.1",
- "keccak256": "^1.0.2",
- "lodash": "^4.17.10"
- },
- "dependencies": {
- "bech32": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz",
- "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg=="
- }
- }
- },
"language-subtag-registry": {
"version": "0.3.21",
"resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz",
diff --git a/new-lamassu-admin/package.json b/new-lamassu-admin/package.json
index aa4c0382..cdefcd0f 100644
--- a/new-lamassu-admin/package.json
+++ b/new-lamassu-admin/package.json
@@ -31,7 +31,7 @@
"graphql-tag": "^2.10.3",
"jss-plugin-extend": "^10.0.0",
"jszip": "^3.6.0",
- "lamassu-coins": "git+https://github.com/lamassu/lamassu-coins.git",
+ "@lamassu/coins": "1.0.0-beta.2",
"libphonenumber-js": "^1.7.50",
"match-sorter": "^4.2.0",
"pretty-ms": "^2.1.0",
diff --git a/new-lamassu-admin/src/pages/Blacklist/Blacklist.js b/new-lamassu-admin/src/pages/Blacklist/Blacklist.js
index b4c53047..e0ac4f42 100644
--- a/new-lamassu-admin/src/pages/Blacklist/Blacklist.js
+++ b/new-lamassu-admin/src/pages/Blacklist/Blacklist.js
@@ -1,9 +1,9 @@
import { useQuery, useMutation } from '@apollo/react-hooks'
+import { utils as coinUtils } from '@lamassu/coins'
import { Box, Dialog, DialogContent, DialogActions } from '@material-ui/core'
import Grid from '@material-ui/core/Grid'
import { makeStyles } from '@material-ui/core/styles'
import gql from 'graphql-tag'
-import { utils as coinUtils } from 'lamassu-coins'
import * as R from 'ramda'
import React, { useState } from 'react'
diff --git a/new-lamassu-admin/src/pages/Customers/components/TransactionsList.js b/new-lamassu-admin/src/pages/Customers/components/TransactionsList.js
index ea8d765e..b2f9e9e2 100644
--- a/new-lamassu-admin/src/pages/Customers/components/TransactionsList.js
+++ b/new-lamassu-admin/src/pages/Customers/components/TransactionsList.js
@@ -1,7 +1,7 @@
+import { utils as coinUtils } from '@lamassu/coins'
import { makeStyles, Box } from '@material-ui/core'
import BigNumber from 'bignumber.js'
import classnames from 'classnames'
-import { utils as coinUtils } from 'lamassu-coins'
import * as R from 'ramda'
import React from 'react'
diff --git a/new-lamassu-admin/src/pages/Funding.js b/new-lamassu-admin/src/pages/Funding.js
index 57880205..cf59519f 100644
--- a/new-lamassu-admin/src/pages/Funding.js
+++ b/new-lamassu-admin/src/pages/Funding.js
@@ -1,10 +1,10 @@
import { useQuery } from '@apollo/react-hooks'
+import { utils as coinUtils } from '@lamassu/coins'
import { makeStyles } from '@material-ui/core/styles'
import BigNumber from 'bignumber.js'
import classnames from 'classnames'
import { format } from 'date-fns/fp'
import gql from 'graphql-tag'
-import { utils as coinUtils } from 'lamassu-coins'
import QRCode from 'qrcode.react'
import * as R from 'ramda'
import React, { useState } from 'react'
diff --git a/new-lamassu-admin/src/pages/Machines/MachineComponents/Transactions/Transactions.js b/new-lamassu-admin/src/pages/Machines/MachineComponents/Transactions/Transactions.js
index 0b25d575..9b1bac05 100644
--- a/new-lamassu-admin/src/pages/Machines/MachineComponents/Transactions/Transactions.js
+++ b/new-lamassu-admin/src/pages/Machines/MachineComponents/Transactions/Transactions.js
@@ -1,8 +1,8 @@
import { useQuery, useLazyQuery } from '@apollo/react-hooks'
+import { utils as coinUtils } from '@lamassu/coins'
import { makeStyles } from '@material-ui/core'
import BigNumber from 'bignumber.js'
import gql from 'graphql-tag'
-import { utils as coinUtils } from 'lamassu-coins'
import * as R from 'ramda'
import React, { useEffect, useState } from 'react'
diff --git a/new-lamassu-admin/src/pages/Transactions/DetailsCard.js b/new-lamassu-admin/src/pages/Transactions/DetailsCard.js
index a0a242f6..5322a306 100644
--- a/new-lamassu-admin/src/pages/Transactions/DetailsCard.js
+++ b/new-lamassu-admin/src/pages/Transactions/DetailsCard.js
@@ -1,4 +1,5 @@
import { useLazyQuery, useMutation } from '@apollo/react-hooks'
+import { utils as coinUtils } from '@lamassu/coins'
import { makeStyles, Box } from '@material-ui/core'
import BigNumber from 'bignumber.js'
import classNames from 'classnames'
@@ -6,7 +7,6 @@ import { add, differenceInYears, format, sub, parse } from 'date-fns/fp'
import FileSaver from 'file-saver'
import gql from 'graphql-tag'
import JSZip from 'jszip'
-import { utils as coinUtils } from 'lamassu-coins'
import * as R from 'ramda'
import React, { memo, useState } from 'react'
diff --git a/new-lamassu-admin/src/pages/Transactions/Transactions.js b/new-lamassu-admin/src/pages/Transactions/Transactions.js
index aae656e5..d8ba5c6b 100644
--- a/new-lamassu-admin/src/pages/Transactions/Transactions.js
+++ b/new-lamassu-admin/src/pages/Transactions/Transactions.js
@@ -1,8 +1,8 @@
import { useQuery } from '@apollo/react-hooks'
+import { utils as coinUtils } from '@lamassu/coins'
import { makeStyles } from '@material-ui/core'
import BigNumber from 'bignumber.js'
import gql from 'graphql-tag'
-import { utils as coinUtils } from 'lamassu-coins'
import * as R from 'ramda'
import React, { useEffect, useState } from 'react'
import { useHistory } from 'react-router-dom'
diff --git a/new-lamassu-admin/src/pages/Wallet/AdvancedWallet.js b/new-lamassu-admin/src/pages/Wallet/AdvancedWallet.js
index 9bed8466..d8ec32e8 100644
--- a/new-lamassu-admin/src/pages/Wallet/AdvancedWallet.js
+++ b/new-lamassu-admin/src/pages/Wallet/AdvancedWallet.js
@@ -1,6 +1,6 @@
import { useQuery, useMutation } from '@apollo/react-hooks'
+import { utils as coinUtils } from '@lamassu/coins'
import gql from 'graphql-tag'
-import { utils as coinUtils } from 'lamassu-coins'
import * as R from 'ramda'
import React, { useState } from 'react'
diff --git a/new-lamassu-admin/src/pages/Wallet/Wizard.js b/new-lamassu-admin/src/pages/Wallet/Wizard.js
index 44a13191..4787f8db 100644
--- a/new-lamassu-admin/src/pages/Wallet/Wizard.js
+++ b/new-lamassu-admin/src/pages/Wallet/Wizard.js
@@ -1,4 +1,4 @@
-import { utils as coinUtils } from 'lamassu-coins'
+import { utils as coinUtils } from '@lamassu/coins'
import * as R from 'ramda'
import React, { useState } from 'react'
import * as Yup from 'yup'
diff --git a/new-lamassu-admin/src/pages/Wizard/components/Wallet/AllSet.js b/new-lamassu-admin/src/pages/Wizard/components/Wallet/AllSet.js
index 50f8e4d8..f2653ffd 100644
--- a/new-lamassu-admin/src/pages/Wizard/components/Wallet/AllSet.js
+++ b/new-lamassu-admin/src/pages/Wizard/components/Wallet/AllSet.js
@@ -1,7 +1,7 @@
import { useQuery, useMutation } from '@apollo/react-hooks'
+import { utils as coinUtils } from '@lamassu/coins'
import { makeStyles } from '@material-ui/core'
import gql from 'graphql-tag'
-import { utils as coinUtils } from 'lamassu-coins'
import * as R from 'ramda'
import React, { useState } from 'react'
diff --git a/package-lock.json b/package-lock.json
index 5092830b..7e40ef8a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "lamassu-server",
- "version": "7.6.0-beta.0",
+ "version": "8.0.0-beta.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -3212,6 +3212,86 @@
"resolved": "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz",
"integrity": "sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg=="
},
+ "@lamassu/coins": {
+ "version": "1.0.0-beta.2",
+ "resolved": "https://registry.npmjs.org/@lamassu/coins/-/coins-1.0.0-beta.2.tgz",
+ "integrity": "sha512-ueed1wHVLKJW5fSihZlFix5Fr+ZPisRxtqZgw+AdHSmWSD70+iCqHDFLIW7ACSUhXLL6SRTrDms2WAoWu4lB+w==",
+ "requires": {
+ "bech32": "2.0.0",
+ "big-integer": "^1.6.48",
+ "bignumber.js": "^9.0.0",
+ "bitcoinjs-lib": "4.0.3",
+ "bitcore-lib-cash": "^8.25.25",
+ "bs58check": "^2.0.2",
+ "cashaddrjs": "~0.2.8",
+ "crypto-js": "^3.1.9-1",
+ "ethereumjs-icap": "^0.3.1",
+ "keccak256": "^1.0.2",
+ "lodash": "^4.17.10"
+ },
+ "dependencies": {
+ "bech32": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz",
+ "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg=="
+ },
+ "big-integer": {
+ "version": "1.6.51",
+ "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz",
+ "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg=="
+ },
+ "bip32": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/bip32/-/bip32-1.0.4.tgz",
+ "integrity": "sha512-8T21eLWylZETolyqCPgia+MNp+kY37zFr7PTFDTPObHeNi9JlfG4qGIh8WzerIJidtwoK+NsWq2I5i66YfHoIw==",
+ "requires": {
+ "bs58check": "^2.1.1",
+ "create-hash": "^1.2.0",
+ "create-hmac": "^1.1.7",
+ "tiny-secp256k1": "^1.0.0",
+ "typeforce": "^1.11.5",
+ "wif": "^2.0.6"
+ }
+ },
+ "bitcoinjs-lib": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-4.0.3.tgz",
+ "integrity": "sha512-cb5t55MYUpwQi095J+u6eyltgIU7lbhZfC6+annstncDhfH4cyctW5jmU/tac7NonZZFYH7DktWnDxUm9AWWDQ==",
+ "requires": {
+ "bech32": "^1.1.2",
+ "bip32": "^1.0.0",
+ "bip66": "^1.1.0",
+ "bitcoin-ops": "^1.4.0",
+ "bs58check": "^2.0.0",
+ "create-hash": "^1.1.0",
+ "create-hmac": "^1.1.3",
+ "merkle-lib": "^2.0.10",
+ "pushdata-bitcoin": "^1.0.1",
+ "randombytes": "^2.0.1",
+ "safe-buffer": "^5.1.1",
+ "tiny-secp256k1": "^1.0.0",
+ "typeforce": "^1.11.3",
+ "varuint-bitcoin": "^1.0.4",
+ "wif": "^2.0.1"
+ },
+ "dependencies": {
+ "bech32": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz",
+ "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ=="
+ }
+ }
+ },
+ "cashaddrjs": {
+ "version": "0.2.9",
+ "resolved": "https://registry.npmjs.org/cashaddrjs/-/cashaddrjs-0.2.9.tgz",
+ "integrity": "sha512-DhJF4iAH0/RM3UjHDHKRxzs09YGL9px+oTyizzydanhC7jTyM2aJ+aLKA96vZGTTWayvvr2iDF2l13lpqXiRFg==",
+ "requires": {
+ "big-integer": "^1.6.34"
+ }
+ }
+ }
+ },
"@ledgerhq/cryptoassets": {
"version": "5.53.0",
"resolved": "https://registry.npmjs.org/@ledgerhq/cryptoassets/-/cryptoassets-5.53.0.tgz",
@@ -6226,6 +6306,18 @@
"file-uri-to-path": "1.0.0"
}
},
+ "bip-schnorr": {
+ "version": "0.6.4",
+ "resolved": "https://registry.npmjs.org/bip-schnorr/-/bip-schnorr-0.6.4.tgz",
+ "integrity": "sha512-dNKw7Lea8B0wMIN4OjEmOk/Z5qUGqoPDY0P2QttLqGk1hmDPytLWW8PR5Pb6Vxy6CprcdEgfJpOjUu+ONQveyg==",
+ "requires": {
+ "bigi": "^1.4.2",
+ "ecurve": "^1.0.6",
+ "js-sha256": "^0.9.0",
+ "randombytes": "^2.1.0",
+ "safe-buffer": "^5.2.1"
+ }
+ },
"bip32": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/bip32/-/bip32-2.0.5.tgz",
@@ -6332,6 +6424,54 @@
}
}
},
+ "bitcore-lib": {
+ "version": "8.25.25",
+ "resolved": "https://registry.npmjs.org/bitcore-lib/-/bitcore-lib-8.25.25.tgz",
+ "integrity": "sha512-H6qNCVl4M8/MglXhvc04mmeus1d6nrmqTJGQ+xezJLvL7hs7R3dyBPtOqSP3YSw0iq/GWspMd8f5OOlyXVipJQ==",
+ "requires": {
+ "bech32": "=2.0.0",
+ "bip-schnorr": "=0.6.4",
+ "bn.js": "=4.11.8",
+ "bs58": "^4.0.1",
+ "buffer-compare": "=1.1.1",
+ "elliptic": "^6.5.3",
+ "inherits": "=2.0.1",
+ "lodash": "^4.17.20"
+ },
+ "dependencies": {
+ "bech32": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz",
+ "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg=="
+ },
+ "inherits": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
+ }
+ }
+ },
+ "bitcore-lib-cash": {
+ "version": "8.25.25",
+ "resolved": "https://registry.npmjs.org/bitcore-lib-cash/-/bitcore-lib-cash-8.25.25.tgz",
+ "integrity": "sha512-p/KEBlCKNTTxOZFJLt/bA1b7pQ1JFapHkoWL8mSLxfz9wTK4ScN74zpbBwhG+O7dk7XMo8iRrKigvanmkce35g==",
+ "requires": {
+ "bitcore-lib": "^8.25.25",
+ "bn.js": "=4.11.8",
+ "bs58": "^4.0.1",
+ "buffer-compare": "=1.1.1",
+ "elliptic": "^6.5.3",
+ "inherits": "=2.0.1",
+ "lodash": "^4.17.20"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
+ }
+ }
+ },
"bitgo": {
"version": "11.15.0",
"resolved": "https://registry.npmjs.org/bitgo/-/bitgo-11.15.0.tgz",
@@ -7052,6 +7192,11 @@
"resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
"integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg=="
},
+ "buffer-compare": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-compare/-/buffer-compare-1.1.1.tgz",
+ "integrity": "sha1-W+e+hTr4kZjR9N3AkNHWakiu9ZY="
+ },
"buffer-crc32": {
"version": "0.2.13",
"resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
@@ -14282,6 +14427,11 @@
"resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.6.1.tgz",
"integrity": "sha512-Frdq2+tRRGLQUIQOgsIGSCd1VePCS2fsddTG5dTCqR0JHgltXWfsxnY0gIXPoMeRmdom6Oyq+UMOFg5suduOjQ=="
},
+ "js-sha256": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz",
+ "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA=="
+ },
"js-sha3": {
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz",
@@ -14655,84 +14805,6 @@
"integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
"dev": true
},
- "lamassu-coins": {
- "version": "git+https://github.com/lamassu/lamassu-coins.git#de843fb210ad8adfa29a0441796125fcb0ab3b67",
- "from": "git+https://github.com/lamassu/lamassu-coins.git",
- "requires": {
- "bech32": "2.0.0",
- "big-integer": "^1.6.48",
- "bignumber.js": "^9.0.0",
- "bitcoinjs-lib": "4.0.3",
- "bs58check": "^2.0.2",
- "cashaddrjs": "~0.2.8",
- "crypto-js": "^3.1.9-1",
- "ethereumjs-icap": "^0.3.1",
- "keccak256": "^1.0.2",
- "lodash": "^4.17.10"
- },
- "dependencies": {
- "bech32": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz",
- "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg=="
- },
- "big-integer": {
- "version": "1.6.51",
- "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz",
- "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg=="
- },
- "bip32": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/bip32/-/bip32-1.0.4.tgz",
- "integrity": "sha512-8T21eLWylZETolyqCPgia+MNp+kY37zFr7PTFDTPObHeNi9JlfG4qGIh8WzerIJidtwoK+NsWq2I5i66YfHoIw==",
- "requires": {
- "bs58check": "^2.1.1",
- "create-hash": "^1.2.0",
- "create-hmac": "^1.1.7",
- "tiny-secp256k1": "^1.0.0",
- "typeforce": "^1.11.5",
- "wif": "^2.0.6"
- }
- },
- "bitcoinjs-lib": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-4.0.3.tgz",
- "integrity": "sha512-cb5t55MYUpwQi095J+u6eyltgIU7lbhZfC6+annstncDhfH4cyctW5jmU/tac7NonZZFYH7DktWnDxUm9AWWDQ==",
- "requires": {
- "bech32": "^1.1.2",
- "bip32": "^1.0.0",
- "bip66": "^1.1.0",
- "bitcoin-ops": "^1.4.0",
- "bs58check": "^2.0.0",
- "create-hash": "^1.1.0",
- "create-hmac": "^1.1.3",
- "merkle-lib": "^2.0.10",
- "pushdata-bitcoin": "^1.0.1",
- "randombytes": "^2.0.1",
- "safe-buffer": "^5.1.1",
- "tiny-secp256k1": "^1.0.0",
- "typeforce": "^1.11.3",
- "varuint-bitcoin": "^1.0.4",
- "wif": "^2.0.1"
- },
- "dependencies": {
- "bech32": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz",
- "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ=="
- }
- }
- },
- "cashaddrjs": {
- "version": "0.2.9",
- "resolved": "https://registry.npmjs.org/cashaddrjs/-/cashaddrjs-0.2.9.tgz",
- "integrity": "sha512-DhJF4iAH0/RM3UjHDHKRxzs09YGL9px+oTyizzydanhC7jTyM2aJ+aLKA96vZGTTWayvvr2iDF2l13lpqXiRFg==",
- "requires": {
- "big-integer": "^1.6.34"
- }
- }
- }
- },
"latest-version": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz",
diff --git a/package.json b/package.json
index fa8b5391..f8795919 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
"name": "lamassu-server",
"description": "bitcoin atm client server protocol module",
"keywords": [],
- "version": "7.6.0-beta.0",
+ "version": "8.0.0-beta.0",
"license": "Unlicense",
"author": "Lamassu (https://lamassu.is)",
"dependencies": {
@@ -45,7 +45,7 @@
"helmet": "^3.8.1",
"inquirer": "^5.2.0",
"json2csv": "^5.0.3",
- "lamassu-coins": "git+https://github.com/lamassu/lamassu-coins.git",
+ "@lamassu/coins": "1.0.0-beta.2",
"libphonenumber-js": "^1.7.38",
"lnd-async": "^1.8.0",
"lodash": "^4.17.10",
diff --git a/public/static/js/main.473b3df4.chunk.js.map b/public/static/js/main.473b3df4.chunk.js.map
index a88e39b1..d8ee9edc 100644
--- a/public/static/js/main.473b3df4.chunk.js.map
+++ b/public/static/js/main.473b3df4.chunk.js.map
@@ -1 +1 @@
-{"version":3,"sources":["AppContext.js","styling/variables.js","components/typography/styles.js","components/buttons/ActionButton.styles.js","components/buttons/ActionButton.js","components/typography/index.js","styling/icons/menu/notification-zodiac.svg","styling/icons/stage/spring/empty.svg","styling/icons/stage/zodiac/empty.svg","styling/icons/stage/zodiac/full.svg","components/NotificationCenter/NotificationCenter.styles.js","styling/icons/action/wrench/zodiac.svg","styling/icons/arrow/transaction.svg","styling/icons/warning-icon/tomato.svg","components/NotificationCenter/NotificationRow.js","components/NotificationCenter/NotificationCenter.js","components/NotificationCenter/index.js","components/Title.js","styling/icons/button/add/zodiac.svg","components/buttons/AddButton.js","components/buttons/Button.styles.js","components/buttons/Button.js","components/buttons/BaseButton.styles.js","components/buttons/FeatureButton.js","components/Popper.js","components/buttons/IDButton.js","components/buttons/IconButton.js","components/buttons/Link.styles.js","components/buttons/Link.js","components/buttons/SimpleButton.js","styling/icons/button/cancel/white.svg","components/buttons/SubpageButton.styles.js","components/buttons/SubpageButton.js","styling/icons/action/external link/white.svg","styling/icons/action/external link/zodiac.svg","components/buttons/SupportLinkButton.js","styling/helpers.js","components/inputs/base/TextInput.styles.js","components/inputs/base/TextInput.js","components/inputs/base/Autocomplete.js","styling/icons/warning-icon/comet.svg","components/inputs/base/Checkbox.js","components/inputs/base/CodeInput.styles.js","components/inputs/base/CodeInput.js","components/inputs/base/Dropdown.js","components/inputs/base/NumberInput.js","components/inputs/base/RadioGroup.js","components/inputs/base/SecretInput.js","components/inputs/base/Switch.js","components/inputs/base/ToggleButtonGroup.js","components/inputs/formik/Autocomplete.js","components/Chip.js","utils/number.js","components/inputs/cashbox/Cashbox.styles.js","components/inputs/cashbox/Cashbox.js","components/inputs/formik/CashCassetteInput.js","components/inputs/formik/Checkbox.js","components/inputs/formik/Dropdown.js","components/inputs/formik/NumberInput.js","components/inputs/formik/RadioGroup.js","components/inputs/formik/SecretInput.js","components/inputs/formik/TextInput.js","styling/icons/stage/zodiac/complete.svg","styling/icons/stage/zodiac/current.svg","components/layout/Sidebar.styles.js","components/layout/Sidebar.js","styling/icons/ID/photo/zodiac.svg","styling/icons/action/close/zodiac.svg","styling/icons/stage/spring/complete.svg","pages/AddMachine/styles.js","pages/AddMachine/AddMachine.js","pages/AddMachine/index.js","styling/icons/button/add/white.svg","styling/icons/menu/logo.svg","styling/icons/menu/notification.svg","components/layout/Header.styles.js","components/layout/Header.js","components/ErrorMessage.js","components/layout/TitleSection.styles.js","components/layout/TitleSection.js","pages/Authentication/shared.styles.js","pages/Authentication/states.js","pages/Authentication/Input2FAState.js","pages/Authentication/InputFIDOState.js","pages/Authentication/LoginState.js","pages/Authentication/Setup2FAState.js","pages/Authentication/LoginCard.js","pages/Authentication/Login.js","pages/Authentication/Register.js","pages/Authentication/Reset2FA.js","pages/Authentication/ResetPassword.js","styling/icons/direction/cash-in.svg","styling/icons/direction/cash-out.svg","pages/Dashboard/Dashboard.styles.js","utils/config.js","pages/Dashboard/Footer/Footer.styles.js","pages/Dashboard/Footer/Footer.js","pages/Dashboard/Footer/index.js","styling/icons/table/empty-table.svg","components/table/EmptyTable.js","components/table/Table.js","components/table/TableBody.js","components/table/TableCell.js","components/table/TableHead.js","components/table/TableHeader.js","components/table/TableRow.js","styling/icons/dashboard/down.svg","styling/icons/dashboard/equal.svg","styling/icons/dashboard/up.svg","utils/timezone-list.js","utils/timezones.js","pages/Dashboard/SystemPerformance/Graphs/PercentageChart.js","pages/Dashboard/SystemPerformance/Graphs/RefLineChart.js","utils/time.js","pages/Dashboard/SystemPerformance/Graphs/RefScatterplot.js","pages/Dashboard/SystemPerformance/InfoWithLabel.js","pages/Dashboard/SystemPerformance/SystemPerformance.styles.js","pages/Dashboard/SystemPerformance/Nav.js","pages/Dashboard/SystemPerformance/SystemPerformance.js","pages/Dashboard/SystemPerformance/index.js","pages/Dashboard/LeftSide.js","components/CollapsibleCard.js","pages/Dashboard/Alerts/Alerts.styles.js","styling/icons/cassettes/cashbox-empty.svg","styling/icons/month arrows/right.svg","pages/Dashboard/Alerts/AlertsTable.js","pages/Dashboard/Alerts/Alerts.js","pages/Dashboard/Alerts/index.js","components/Status.js","pages/Dashboard/SystemStatus/MachinesTable.styles.js","pages/Dashboard/SystemStatus/MachinesTable.js","pages/Dashboard/SystemStatus/SystemStatus.js","pages/Dashboard/SystemStatus/index.js","pages/Dashboard/RightSide.js","pages/Dashboard/Dashboard.js","pages/Dashboard/index.js","components/PromptWhenDirty.js","components/fake-table/Table.styles.js","components/fake-table/Table.js","components/editableTable/Context.js","utils/sanctuary.js","utils/string.js","components/editableTable/Header.js","components/DeleteDialog.js","styling/icons/action/arrow/regular.svg","components/inputs/base/Select.styles.js","components/inputs/base/Select.js","styling/icons/action/delete/disabled.svg","styling/icons/action/delete/enabled.svg","styling/icons/action/edit/disabled.svg","styling/icons/action/edit/enabled.svg","styling/icons/stripes.svg","components/editableTable/Row.styles.js","components/editableTable/Row.js","components/editableTable/Table.styles.js","components/editableTable/Table.js","components/editableTable/NamespacedTable.js","components/Modal.js","utils/constants.js","styling/icons/cassettes/both-filled.svg","pages/Maintenance/Wizard/WizardSplash.js","styling/icons/stage/spring/current.svg","components/Stepper.js","styling/icons/action/help/zodiac.svg","components/Tooltip.js","styling/icons/cassettes/acceptor-left.svg","styling/icons/cassettes/dispenser-1.svg","styling/icons/cassettes/dispenser-2.svg","styling/icons/cassettes/tejo/3-cassettes/3-cassettes-open-1-left.svg","styling/icons/cassettes/tejo/3-cassettes/3-cassettes-open-2-left.svg","styling/icons/cassettes/tejo/3-cassettes/3-cassettes-open-3-left.svg","styling/icons/cassettes/tejo/4-cassettes/4-cassettes-open-1-left.svg","styling/icons/cassettes/tejo/4-cassettes/4-cassettes-open-2-left.svg","styling/icons/cassettes/tejo/4-cassettes/4-cassettes-open-3-left.svg","styling/icons/cassettes/tejo/4-cassettes/4-cassettes-open-4-left.svg","pages/Maintenance/Wizard/WizardStep.js","pages/Maintenance/Wizard/Wizard.js","pages/Machines/MachineComponents/Cassettes/Cassettes.styles.js","pages/Machines/MachineComponents/Cassettes/Cassettes.js","pages/Machines/MachineComponents/Cassettes/index.js","pages/Machines/MachineComponents/Commissions/helper.js","pages/Machines/MachineComponents/Commissions/Commissions.js","pages/Machines/MachineComponents/Commissions/index.js","utils/machine.js","pages/Machines/Machines.styles.js","pages/Machines/MachineComponents/Details.js","components/ConfirmDialog.js","styling/icons/button/edit/white.svg","styling/icons/button/edit/zodiac.svg","styling/icons/button/reboot/white.svg","styling/icons/button/reboot/zodiac.svg","styling/icons/button/shut down/white.svg","styling/icons/button/shut down/zodiac.svg","styling/icons/button/unpair/white.svg","styling/icons/button/unpair/zodiac.svg","components/machineActions/MachineActions.styles.js","components/machineActions/MachineActions.js","styling/icons/action/copy/copy.svg","pages/Logs.styles.js","pages/Transactions/Transactions.styles.js","pages/Transactions/CopyToClipboard.js","pages/Machines/MachineComponents/Overview.js","styling/icons/ID/card/white.svg","styling/icons/ID/card/zodiac.svg","styling/icons/ID/phone/white.svg","styling/icons/ID/phone/zodiac.svg","styling/icons/ID/photo/white.svg","styling/icons/button/cancel/zodiac.svg","styling/icons/button/download/white.svg","styling/icons/button/download/zodiac.svg","utils/apollo.js","pages/Transactions/DetailsCard.styles.js","pages/Transactions/helper.js","pages/Transactions/DetailsCard.js","components/tables/DataTable.styles.js","styling/icons/action/expand/closed.svg","styling/icons/action/expand/open.svg","pages/Machines/MachineComponents/Transactions/DataTable.js","pages/Machines/MachineComponents/Transactions/Transactions.js","pages/Machines/MachineComponents/Transactions/index.js","pages/Machines/Machines.js","pages/Machines/index.js","utils/bill-denominations.js","utils/bill-options.js","pages/Commissions/helper.js","pages/Locales/helper.js","pages/Wallet/helper.js","components/Subtitle.js","components/layout/Section.js","components/layout/Section.styles.js","pages/Wizard/components/Commissions.js","pages/Wizard/components/Locales.js","components/InfoMessage.js","pages/Services/FormRenderer.js","pages/Services/schemas/helper.js","pages/Services/schemas/twilio.js","pages/Wizard/components/Wallet/Shared.styles.js","pages/Wizard/components/Twilio.js","pages/Wizard/components/Wallet/AllSet.js","pages/Services/schemas/binanceus.js","pages/Services/schemas/bitgo.js","pages/Services/schemas/bitstamp.js","pages/Services/schemas/blockcypher.js","pages/Services/schemas/cex.js","pages/Services/schemas/ciphertrace.js","pages/Services/schemas/ftx.js","pages/Services/schemas/infura.js","pages/Services/schemas/itbit.js","pages/Services/schemas/kraken.js","pages/Services/schemas/mailgun.js","pages/Services/schemas/index.js","pages/Wizard/components/Wallet/Blockcypher.js","pages/Wizard/components/Wallet/ChooseCoin.js","pages/Wizard/components/Wallet/getItems.js","pages/Wizard/components/Wallet/ChooseExchange.js","pages/Wizard/components/Wallet/ChooseTicker.js","pages/Services/schemas/singlebitgo.js","pages/Wizard/components/Wallet/ChooseWallet.js","pages/Wizard/components/Wallet/Wallet.js","pages/Wizard/components/Welcome.js","pages/Wizard/helper.js","pages/Wizard/components/Footer.js","pages/Wizard/Wizard.js","pages/Wizard/index.js","routing/utils.js","routing/PrivateRoute.js","routing/PublicRoute.js","pages/Analytics/Analytics.styles.js","pages/Analytics/components/LegendEntry.js","pages/Analytics/components/tooltips/GraphTooltip.styles.js","pages/Analytics/components/tooltips/GraphTooltip.js","pages/Analytics/graphs/HourOfDayBarGraph.js","pages/Analytics/graphs/OverTimeDotGraph.js","pages/Analytics/graphs/TopMachinesBarGraph.js","pages/Analytics/graphs/Graph.js","pages/Analytics/components/wrappers/HourOfDayWrapper.js","pages/Analytics/components/wrappers/OverTimeWrapper.js","pages/Analytics/components/wrappers/TopMachinesWrapper.js","pages/Analytics/Analytics.js","pages/Blacklist/Blacklist.styles.js","pages/Blacklist/BlacklistModal.js","components/tables/DataTable.js","pages/Blacklist/BlacklistTable.js","pages/Blacklist/Blacklist.js","pages/Blacklist/index.js","pages/Cashout/WizardSplash.js","styling/icons/cassettes/cashout-cassette-1.svg","styling/icons/cassettes/cashout-cassette-2.svg","pages/Cashout/WizardStep.styles.js","pages/Cashout/WizardStep.js","pages/Cashout/helper.js","pages/Cashout/Wizard.js","pages/Cashout/Cashout.js","pages/Cashout/index.js","styling/icons/circle buttons/listing-view/white.svg","styling/icons/circle buttons/listing-view/zodiac.svg","styling/icons/status/spring2.svg","pages/Commissions/components/CommissionsDetails.js","pages/Commissions/components/CommissionsList.js","pages/Commissions/Commissions.js","pages/Commissions/index.js","styling/icons/button/authorize/white.svg","styling/icons/button/authorize/zodiac.svg","pages/Customers/components/propertyCard/PropertyCard.styles.js","pages/Customers/components/propertyCard/PropertyCard.js","styling/icons/button/block/white.svg","styling/icons/button/block/zodiac.svg","styling/icons/button/data/white.svg","styling/icons/button/data/zodiac.svg","styling/icons/circle buttons/search/white.svg","styling/icons/circle buttons/search/zodiac.svg","components/ImagePopper.js","components/ImagePopper.styles.js","styling/icons/ID/card/comet.svg","styling/icons/ID/phone/comet.svg","styling/icons/ID/photo/crossed-camera.svg","styling/icons/action/edit/comet.svg","styling/icons/circle buttons/customer-list-view/white.svg","styling/icons/circle buttons/customer-list-view/zodiac.svg","styling/icons/circle buttons/overview/white.svg","styling/icons/circle buttons/overview/zodiac.svg","pages/Customers/CustomerData.styles.js","pages/Customers/helper.js","pages/Customers/Wizard.js","pages/Customers/CustomersList.styles.js","components/InformativeDialog.js","pages/Customers/components/PhotosCard.styles.js","styling/icons/arrow/carousel-left-arrow.svg","styling/icons/arrow/carousel-right-arrow.svg","components/Carousel.js","pages/Customers/components/PhotosCarousel.styles.js","pages/Customers/components/PhotosCarousel.js","pages/Customers/components/PhotosCard.js","pages/Customers/components/CustomerDetails.js","styling/icons/customer-nav/data/comet.svg","styling/icons/customer-nav/data/white.svg","styling/icons/customer-nav/note/comet.svg","styling/icons/customer-nav/note/white.svg","styling/icons/customer-nav/overview/comet.svg","styling/icons/customer-nav/overview/white.svg","styling/icons/customer-nav/photos/comet.svg","styling/icons/customer-nav/photos/white.svg","pages/Customers/components/CustomerSidebar.styles.js","pages/Customers/components/CustomerSidebar.js","styling/icons/action/delete/white.svg","styling/icons/action/edit/white.svg","styling/icons/button/replace/white.svg","styling/icons/circle buttons/save/white.svg","pages/Customers/components/EditableCard.styles.js","pages/Customers/components/EditableCard.js","utils/nullCheck.js","pages/Customers/components/Field.js","pages/Customers/components/TransactionsList.js","styling/icons/button/photo/zodiac-resized.svg","styling/icons/button/upload-file/zodiac-resized.svg","pages/Customers/components/Upload.js","pages/Customers/CustomerData.js","pages/Customers/CustomerNotes.styles.js","pages/Customers/components/notes/NoteCard.styles.js","pages/Customers/components/notes/NewNoteCard.js","pages/Customers/components/notes/NewNoteModal.styles.js","pages/Customers/components/notes/NewNoteModal.js","pages/Customers/components/notes/NoteCard.js","styling/icons/circle buttons/save/zodiac.svg","pages/Customers/components/notes/NoteEdit.js","pages/Customers/CustomerNotes.js","styling/icons/ID/photo/comet.svg","pages/Customers/CustomerPhotos.styles.js","pages/Customers/CustomerPhotos.js","pages/Customers/CustomerProfile.styles.js","pages/Customers/CustomerProfile.js","components/SearchBox.styles.js","components/SearchBox.js","styling/icons/button/filter/white.svg","styling/icons/button/filter/zodiac.svg","components/SearchFilter.styles.js","components/SearchFilter.js","pages/Customers/CustomersList.js","pages/Customers/components/CreateCustomerModal.js","pages/Customers/Customers.js","components/TableLabel.js","pages/Funding.styles.js","pages/Funding.js","styling/logos/icon-bitcoin-colour.svg","styling/logos/icon-bitcoincash-colour.svg","styling/logos/icon-dash-colour.svg","styling/logos/icon-ethereum-colour.svg","styling/logos/icon-litecoin-colour.svg","styling/logos/icon-monero-colour.svg","styling/logos/icon-tether-colour.svg","styling/logos/icon-zcash-colour.svg","pages/Wallet/WizardSplash.js","pages/Wallet/WizardStep.styles.js","pages/Wallet/WizardStep.js","pages/Wallet/Wizard.js","pages/Locales/Locales.js","pages/Locales/Locales.styles.js","pages/Locales/index.js","pages/LoyaltyPanel/IndividualDiscount.styles.js","pages/LoyaltyPanel/IndividualDiscountModal.js","pages/LoyaltyPanel/IndividualDiscounts.js","pages/LoyaltyPanel/PromoCodes.styles.js","pages/LoyaltyPanel/PromoCodesModal.js","pages/LoyaltyPanel/PromoCodes.js","styling/icons/arrow/download_logs.svg","styling/icons/arrow/month_change.svg","styling/icons/arrow/month_change_right.svg","components/date-range-picker/Tile.js","components/date-range-picker/Calendar.js","components/date-range-picker/DateRangePicker.js","components/LogsDownloaderPopper.js","pages/MachineLogs.js","styling/icons/circle buttons/history/white.svg","styling/icons/circle buttons/history/zodiac.svg","pages/Maintenance/CashCassettes.styles.js","pages/Maintenance/CashCassettesFooter.styles.js","pages/Maintenance/CashCassettesFooter.js","pages/Maintenance/CashboxHistory.js","pages/Maintenance/CashCassettes.js","styling/icons/status/pumpkin.svg","styling/icons/status/tomato.svg","pages/Maintenance/MachineDetailsCard.styles.js","pages/Maintenance/MachineDetailsCard.js","pages/Maintenance/MachineStatus.js","pages/Notifications/NotificationsContext.js","pages/Notifications/components/EditHeader.js","pages/Notifications/components/EditHeader.styles.js","pages/Notifications/components/EditableNumber.js","pages/Notifications/components/EditableNumber.styles.js","pages/Notifications/components/SingleFieldEditableNumber.js","pages/Notifications/sections/CryptoBalanceAlerts.js","pages/Notifications/sections/CryptoBalanceAlerts.styles.js","pages/Notifications/sections/CryptoBalanceOverrides.js","pages/Notifications/sections/FiatBalanceAlerts.styles.js","pages/Notifications/sections/FiatBalanceAlerts.js","pages/Notifications/sections/FiatBalanceOverrides.js","pages/Notifications/sections/Setup.js","pages/Notifications/sections/TransactionAlerts.js","pages/Notifications/Notifications.js","styling/icons/table/false.svg","styling/icons/table/true.svg","components/booleanPropertiesTable/BooleanPropertiesTable.styles.js","components/booleanPropertiesTable/BooleanPropertiesTable.js","pages/OperatorInfo/OperatorInfo.styles.js","pages/OperatorInfo/CoinATMRadar.js","pages/OperatorInfo/ContactInfo.js","pages/OperatorInfo/ReceiptPrinting.js","styling/icons/menu/logo-white.svg","pages/OperatorInfo/SMSNotices/SMSNotices.styles.js","styling/icons/button/retry/white.svg","styling/icons/button/retry/zodiac.svg","pages/OperatorInfo/SMSNotices/SMSNoticesModal.js","pages/OperatorInfo/SMSNotices/SMSNotices.js","pages/OperatorInfo/TermsConditions.js","components/Uptime.js","pages/ServerLogs.js","components/single-row-table/SingleRowTable.styles.js","components/single-row-table/SingleRowTable.js","pages/Services/Services.js","pages/SessionManagement/SessionManagement.js","styling/icons/month arrows/right_white.svg","pages/Transactions/Transactions.js","styling/icons/circle buttons/filter/white.svg","styling/icons/circle buttons/filter/zodiac.svg","styling/icons/circle buttons/settings/white.svg","styling/icons/circle buttons/settings/zodiac.svg","pages/Triggers/CustomInfoRequests/DetailsCard.js","components/inputs/formik/ToggleButtonGroup.js","styling/icons/compliance/keyboard.svg","styling/icons/compliance/keypad.svg","styling/icons/compliance/list.svg","pages/Triggers/CustomInfoRequests/Forms/ChooseType.js","pages/Triggers/CustomInfoRequests/Forms/NameOfRequirement.js","pages/Triggers/CustomInfoRequests/Forms/Screen1Information.js","pages/Triggers/CustomInfoRequests/Forms/Screen2Information.js","pages/Triggers/CustomInfoRequests/Forms/TypeFields/formStyles.styles.js","pages/Triggers/CustomInfoRequests/Forms/TypeFields/ChoiceList.js","pages/Triggers/CustomInfoRequests/Forms/TypeFields/NumericalEntry.js","pages/Triggers/CustomInfoRequests/Forms/TypeFields/TextEntry.js","pages/Triggers/CustomInfoRequests/Forms/TypeFields/index.js","styling/icons/compliance/custom-requirement.svg","pages/Triggers/CustomInfoRequests/WizardSplash.js","pages/Triggers/CustomInfoRequests/Wizard.js","pages/Triggers/CustomInfoRequests/CustomInfoRequests.js","pages/Triggers/CustomInfoRequests/CustomInfoRequests.styles.js","pages/Triggers/CustomInfoRequests/index.js","pages/Triggers/Triggers.styles.js","pages/Triggers/helper.js","pages/Triggers/Wizard.js","pages/Triggers/TriggerView.js","pages/Triggers/components/helper.js","pages/Triggers/components/AdvancedTriggers.js","pages/Triggers/Triggers.js","pages/Triggers/index.js","styling/icons/button/key/white.svg","styling/icons/button/key/zodiac.svg","styling/icons/button/lock/white.svg","styling/icons/button/lock/zodiac.svg","styling/icons/button/user-role/white.svg","styling/icons/button/user-role/zodiac.svg","pages/UserManagement/UserManagement.styles.js","pages/UserManagement/modals/Input2FAModal.js","pages/UserManagement/modals/ChangeRoleModal.js","utils/urlResolver.js","pages/UserManagement/modals/CreateUserModal.js","pages/UserManagement/modals/EnableUserModal.js","pages/UserManagement/modals/FIDOModal.js","pages/UserManagement/modals/Reset2FAModal.js","pages/UserManagement/modals/ResetPasswordModal.js","pages/UserManagement/UserManagement.js","pages/Wallet/AdvancedWallet.js","pages/Wallet/Wallet.js","pages/Wallet/Wallet.styles.js","routing/lamassu.routes.js","pages/ATMWallet/ATMWallet.styles.js","pages/Accounting/Accounting.styles.js","pages/ATMWallet/ATMWallet.js","pages/Assets/Assets.styles.js","pages/Accounting/Accounting.js","pages/Assets/Assets.js","routing/routes.js","styling/global/index.js","styling/global/fonts.js","styling/theme.js","App.js","serviceWorker.js","index.js"],"names":["React","createContext","comet","spring2","spring3","spring4","zircon","zircon2","java","neon","white","tomato","mistyRose","primaryColor","secondaryColor","secondaryColorDark","secondaryColorDarker","backgroundColor","subheaderColor","subheaderDarkColor","disabledColor","disabledColor2","fontColor","offColor","offDarkColor","offDarkerColor","placeholderColor","errorColor","offErrorColor","mainWidth","linkPrimaryColor","fontPrimary","fontSecondary","fontMonospaced","fontSize1","fontSize2","fontSize3","fontSize4","fontSize5","smallestFontSize","inputFontSizeSm","inputFontSize","inputFontSizeLg","inputFontWeight","inputFontFamily","tableHeaderHeight","spacer","tableCellHeight","tableDoubleHeaderHeight","tableHeaderColor","tableErrorColor","tableSuccessColor","base","lineHeight","color","h1","extend","fontSize","fontFamily","fontWeight","h2","h3","h4","h5","p","tl1","tl2","info1","info2","info3","mono","monoBold","monoSmall","inputFont","regularLabel","label1","label2","label3","confirmationCode","inline","display","noMargin","margin","colors","color1","color2","color3","actionButton","typographyStyles","cursor","border","height","outline","borderRadius","padding","alignItems","primary","secondary","spring","actionButtonIcon","paddingRight","svg","width","actionButtonIconActive","useStyles","makeStyles","styles","ActionButton","memo","className","Icon","InverseIcon","children","props","classes","classNames","classnames","H1","H2","H3","H4","H5","P","pBuilder","Info1","Info2","Info3","Mono","TL1","TL2","Label1","Label2","Label3","elementClass","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","id","stroke","strokeWidth","fill","fillRule","transform","d","strokeLinejoin","SvgNotificationZodiac","_ref","svgRef","title","titleId","viewBox","xmlns","xmlnsXlink","ref","ForwardRef","cx","cy","r","SvgEmpty","SvgFull","container","right","boxShadow","header","justifyContent","headerText","marginTop","marginLeft","actionButtons","notificationIcon","buttonCoords","xOffset","position","top","y","left","x","background","textShadow","clearAllButton","notificationsList","maxHeight","overflowY","overflowX","zIndex","notificationRow","flexDirection","marginBottom","paddingTop","marginRight","notificationContent","unread","notificationRowIcon","alignSelf","readIconWrapper","flexGrow","unreadIcon","readIcon","notificationTitle","notificationBody","notificationSubtitle","stripes","opacity","hasUnread","strokeLinecap","SvgZodiac","x1","y1","x2","y2","points","SvgTransaction","rx","SvgTomato","types","transaction","icon","highValueTransaction","fiatBalance","cryptoBalance","compliance","error","NotificationRow","type","message","detail","deviceName","created","read","valid","toggleClear","typeDisplay","R","age","prettyMs","Date","getTime","compact","verbose","iconClass","onClick","GET_NOTIFICATIONS","gql","TOGGLE_CLEAR_NOTIFICATION","CLEAR_ALL_NOTIFICATIONS","NotificationCenter","close","hasUnreadProp","popperRef","refetchHasUnreadHeader","useQuery","pollInterval","data","loading","useState","setXoffset","showingUnread","setShowingUnread","machines","notifications","setHasUnread","useMutation","onError","console","refetchQueries","toggleClearNotification","clearAllNotifications","useEffect","current","getBoundingClientRect","hasUnreadNotifications","ShowUnreadIcon","ClearAllIconInverse","ClearAllIcon","map","n","deviceId","variables","Title","button","SimpleButton","pickSize","size","wrapper","shadowSize","isGrey","buttonClassName","baseButton","baseButtonStyles","featureButton","buttonIcon","overflow","buttonIconActive","FeatureButton","Popover","bgColor","arrowSize","arrowRef","setArrowRef","popover","arrow","arrowBottom","borderLeft","borderRight","borderBottom","content","bottom","borderColor","transformOrigin","arrowTop","borderTop","arrowRight","arrowLeft","root","arrowClasses","placement","modifiers","flip","enabled","preventOverflow","boundariesElement","offset","element","computeStyle","gpuAcceleration","disablePortal","Paper","idButton","closed","open","popoverContent","IDButton","name","popoverWidth","popoverClassname","anchorEl","setAnchorEl","Boolean","undefined","iconClassNames","handleClose","ClickAwayListener","onClickAway","aria-describedby","event","currentTarget","onClose","label","flex","IconButton","disableRipple","fade","link","textDecoration","noColor","action","Link","submit","SvgWhite","normalButton","activeButton","buttonIconActiveLeft","buttonIconActiveRight","subpageButtonStyles","SubpageButton","toggle","forceDisable","active","setActive","isActive","newActiveState","actionButtonLink","SupportLinkButton","rel","href","LinkIcon","InverseLinkIcon","bySize","bold","textAlign","underline","borderBottomColor","TextInput","isPasswordFilled","onChange","onBlur","value","suffix","InputProps","isTextFilled","filled","inputClasses","TextField","Autocomplete","optionsLimit","limit","options","valueProp","multiple","labelProp","outsideValue","shouldStayOpen","fullWidth","autoFocus","mapFromValue","it","mapToValue","valueArray","evt","rValue","getOptionLabel","forcePopupIcon","filterOptions","array","inputValue","input","sort","filter","slice","Math","max","openOnFocus","autoHighlight","disableClearable","ChipProps","onDelete","clearOnEscape","getOptionSelected","renderInput","params","SvgComet","checked","checkBoxLabel","whiteSpace","CheckboxInput","settings","disabledMessage","rightSideLabel","Checkbox","style","checkedIcon","focus","useTypographyStyles","CodeInput","numInputs","inputStyle","containerStyle","typographyClasses","separator","focusStyle","errorStyle","hasErrored","isInputNum","Dropdown","FormControl","InputLabel","Select","autoWidth","labelId","option","index","MenuItem","NumberInput","decimalPlaces","customInput","decimalScale","onValueChange","values","floatValue","paddingLeft","subtitle","RadioGroup","labelClassName","radioClassName","idx","Fragment","FormControlLabel","disabled","code","control","Radio","SecretInput","onFocus","focused","setFocused","InputLabelProps","shrink","placeholder","theme","spacing","switchBase","palette","common","thumb","track","transition","transitions","create","focusVisible","SwitchInput","Switch","focusVisibleClassName","noTextTransform","textTransform","buttonTextContent","paragraph","ToggleButtonGroup","orientation","exclusive","ToggleButton","aria-label","description","AutocompleteFormik","setOpen","field","form","touched","errors","setFieldValue","setFieldTouched","useFormikContext","initialValues","innerOptions","onChangeHandler","item","onOpen","reason","LsChip","Chip","withStyles","isValidNumber","Number","NaN","transformNumber","numberToFiatAmount","toLocaleString","maximumFractionDigits","cashOut","empty","full","zodiac","cashIn","colorPicker","applyColorVariant","isLow","cashboxStyles","cashbox","fiatBalanceAlertCashbox","emptyPart","percent","fullPart","gridStyles","row","innerRow","col2","noMarginText","chip","cashboxClasses","gridClasses","Cashbox","emptyPartClassName","applyFiatBalanceAlertsStyling","omitInnerPercentage","ltHalf","showCashBox","toFixed","CashIn","currency","notes","total","CashOut","capacity","denomination","editingMode","threshold","col","cashCassette","CashCassetteInput","inputClassName","setNotes","e","RadioGroupFormik","ariaLabel","resetError","NumberInputFormik","SecretInputFormik","TextInputFormik","SvgComplete","SvgCurrent","breakpoint","sidebarColor","sidebar","minWidth","linkWrapper","activeLink","customRenderLink","customRenderActiveLink","itemText","itemTextActive","itemTextPast","stepperPath","stepperPast","Sidebar","displayName","isSelected","itemRender","Stepper","step","steps","past","future","enableBackground","xmlSpace","dialog","minHeight","contentDiv","headerDiv","contentWrapper","nameTitle","qrTitle","qrCodeWrapper","qrTextInfoWrapper","qrTextWrapper","textWrapper","qrTextIcon","qrText","successMessageWrapper","successMessage","successMessageIcon","errorMessage","qrCodeImageWrapper","qrCodeScanMessage","SAVE_CONFIG","GET_MACHINES","getSize","validationSchema","Yup","shape","required","test","context","machineNames","includes","component","nextStep","setQrCode","setName","onCompleted","createPairingTotem","log","register","validateOnBlur","validateOnChange","validate","validateSync","onSubmit","Button","qrCode","count","onPaired","timeout","useRef","clearTimeout","addedMachine","find","m","hasNewMachine","setTimeout","fgColor","includeMargin","qrCodeBorder","AddMachine","setStep","Component","Dialog","fullScreen","aria-labelledby","DialogContent","SvgIcon","renderStepper","xlinkHref","SvgLogo","SvgNotification","headerHeight","subheaderHeight","headerContainer","maxWidth","nav","ul","li","listStyle","forceSize","visibility","addMachine","subheader","subheaderUl","subheaderLi","subheaderLink","activeSubheaderLink","logo","logoLink","actionButtonsContainer","popper","HAS_UNREAD","Subheader","user","prev","setPrev","role","allowedRoles","to","pathname","route","state","activeClassName","match","notNil","Header","tree","notifButtonCoords","setNotifButtonCoords","refetch","startPolling","stopPolling","notifCenterButtonRef","history","useHistory","document","querySelector","classList","remove","popperOpen","push","whiteLink","forcesize","AddIcon","AddIconReverse","coords","add","Popper","machine","ErrorMessage","titleWrapper","titleAndButtonsContainer","subpageButton","buttonText","TitleSection","labels","buttons","appendix","appendixRight","inverseIcon","text","Box","rememberMeWrapper","checkbox","footer","twofaFooter","fidoLoginButtonWrapper","loginButton","welcomeBackground","backgroundSize","info","infoWrapper","secretWrapper","secretLabel","secret","hiddenSecret","confirm2FAInput","confirmPassword","enterButton","STATES","INPUT_2FA","GET_USER_DATA","Input2FAState","dispatch","setUserData","useContext","AppContext","invalidToken","setInvalidToken","useLazyQuery","userData","getUserData","queryError","input2FA","headers","base64","encode","clientField","mutationError","handleSubmit","twoFAField","username","password","passwordField","rememberMe","rememberMeField","payload","shouldAutoFocus","localClient","email","localRememberMe","InputFIDOState","strategy","GENERATE_ASSERTION","VALIDATE_ASSERTION","localClientField","setLocalClientField","localRememberMeField","setLocalRememberMeField","invalidUsername","setInvalidUsername","validateAssertion","domain","window","location","hostname","generateAssertionOptions","startAssertion","then","res","assertionResponse","catch","err","assertionOptions","assertionQueryError","getErrorMsg","formikErrors","formikTouched","client","onKeyUp","inputLabel","LOGIN","LoginState","login","loginMutationError","submitLogin","a","loginResponse","FIDOMutationError","userDataQueryError","SETUP_2FA","GET_2FA_SECRET","Setup2FAState","setSecret","otpauth","setOtpauth","isShowing","setShowing","twoFAConfirmation","setTwoFAConfirmation","queryOptions","get2FASecret","mutationOptions","codeConfirmation","success","setup2FA","AUTHENTICATION_STRATEGY","initialState","loginState","reducer","LoginCard","useReducer","elevation","renderState","Login","Grid","direction","justify","QueryParams","URLSearchParams","useLocation","search","VALIDATE_REGISTER_LINK","REGISTER","min","oneOf","result","Register","token","get","identifier","validateRegisterLink","fromAuthRegister","VALIDATE_RESET_2FA_LINK","RESET_2FA","userID","Reset2FA","validateReset2FALink","user_id","reset2FA","VALIDATE_RESET_PASSWORD_LINK","RESET_PASSWORD","val","ResetPassword","setUserID","isLoading","setLoading","wasSuccessful","setSuccess","validateResetPasswordLink","resetPassword","newPassword","SvgCashIn","SvgCashOut","headerLabels","emptyMachinesRoot","card","wordWrap","upperButtonLabel","alertsCard","centerLabel","systemStatusCard","expandedCard","shrunkCard","displayFlex","emptyMachinesContent","namespaces","mapKeys","fn","obj","filterByKey","stripl","q","str","fromNamespace","config","stripped","filtered","toNamespace","headerLabel","txOutMargin","tickerLabel","footer1","content1","GET_DATA","BigNumber","ROUNDING_MODE","ROUND_HALF_UP","Footer","withCommissions","wallets","cryptoCurrencies","accountsConfig","localeFiatCurrency","footerContainer1","tickerCode","tickerIdx","tickerName","cashInNoCommission","parseFloat","cashOutNoCommission","avgOfAskBid","toFormat","xs","renderFooterItem","filterUnits","dx","dy","in","stdDeviation","maskContentUnits","maskUnits","mask","fillOpacity","strokeDasharray","SvgEmptyTable","emptyTable","EmptyTable","table","tableLayout","borderCollapse","borderSpacing","Table","TableBody","td","alignRight","TableCell","colspan","rightAlign","colSpan","TableHead","th","TableHeaderCell","tr","lg","sm","TableRow","classnamesObj","SvgDown","SvgEqual","SvgUp","timezones","short","long","GMT","timezoneList","pairs","acc","isNegative","getTimezoneOffset","duration","intervalToDuration","start","end","abs","hours","minimumIntegerDigits","useGrouping","minutes","prefix","buildTzLabels","toUtc","date","browserTimezone","Intl","DateTimeFormat","resolvedOptions","timeZone","zonedTimeToUtc","toTimezone","timezone","utcToZonedTime","formatDate","pattern","newDate","format","formatDateNonUtc","percentageBox","inColor","outColor","other","inWidth","outWidth","PercentageChart","buildPercentageView","percentageClasses","transactionProfit","tx","cashInFee","commissionPercentage","fiat","mockPoint","offsetMs","profit","toISOString","formatDay","substring","formatHour","currentProfit","timeFrameMS","Day","Week","Month","RefLineChart","realData","previousTimeData","previousProfit","timeFrame","drawGraph","useCallback","d3","method","aggregatedTX","mockPoint1","now","massageData","zeroProfit","attr","append","selectAll","enter","g","xDomain","t","yDomain","range","line","area","y0","datum","MINUTE","DAY","WEEK","MONTH","Graph","GRAPH_HEIGHT","GRAPH_WIDTH","GRAPH_MARGIN","useMemo","NOW","periodDomains","dataPoints","freq","tick","every","labelFormat","filterDay","getUTCHours","getUTCDate","getPastAndCurrentDayLabels","currentDate","currentDateDay","currentDateWeekday","getUTCDay","currentDateMonth","getUTCMonth","previousDate","setUTCDate","previousDateDay","previousDateWeekday","previousDateMonth","daysOfWeek","Array","from","_","days","startOfWeek","months","startOfYear","previous","buildTicks","roundDate","ceil","valueOf","stepDate","toNumber","nice","buildBackground","buildXAxis","ticks","tickFormat","select","buildYAxis","buildGrid","join","scale","node","getBBox","formatTicksText","formatText","formatTicks","drawData","setTime","txClass","drawChart","InfoWithLabel","newHighlightedLabel","navButton","navContainer","percentUp","percentDown","percentNeutral","profitContainer","profitLabel","directionIcon","emptyTransactions","commissionProfitTitle","graphHeader","labelWrapper","txGraphContainer","commissionsGraphContainer","verticalLine","ranges","Nav","handleSetRange","showPicker","clickedItem","setClickedItem","innerText","getFiats","mapToFee","getDateSecondsAgo","seconds","startDate","sub","SystemPerformance","selectedRange","setSelectedRange","excludeTestingCustomers","fiatLocale","fiatCurrency","isInRangeAndNoError","getLastTimePeriod","isAfter","convertFiatToLocale","fiatCode","itemRate","fiatRates","multiplier","rate","transactionsToShow","transactions","transactionsLastTimePeriod","getProfit","cashInFees","commissionFees","getDirectionPercent","totalLength","round","percentChange","thisTimePeriodProfit","previousTimePeriodProfit","eq","minus","times","div","getPercentChange","locale_fiatCurrency","commissionGraphContainer","LeftSide","cardState","freeze","DEFAULT","SHRUNK","EXPANDED","CollapsibleCard","shrunkComponent","alertsTableContainer","expandedAlertsTableContainer","noAlertsLabel","listItemText","linkIcon","SvgCashboxEmpty","SvgRight","icons","links","AlertsTable","numToRender","alerts","alertsToRender","alertMessage","alert","List","dense","ListItem","GET_ALERTS","Alerts","onReset","onExpand","showAllItems","alertsLength","alertsTableContainerClasses","disableFocusRipple","warning","neutral","backgroundColors","Status","status","MainStatus","statuses","mainStatus","s","plus","clickableRow","buttonLabel","statusHeader","tableBody","machinesTableContainer","expandedMachinesTableContainer","machineNameWrapper","machineRedirectIcon","GET_CONFIG","StyledCell","HeaderCell","MachinesTable","fillingPercentageSettings","getPercent","makePercentageText","cassetteIdx","percentageThreshold","redirect","selectedMachine","maxNumberOfCassettes","numberOfCassettes","TableContainer","align","SystemStatus","cardState_","machinesTableContainerClasses","serverVersion","Infinity","ShrunkCard","buttonName","onUnshrink","RightSide","systemStatusSize","setSystemStatusSize","alertsSize","setAlertsSize","Dashboard","PROMPT_DEFAULT_MESSAGE","PromptWhenDirty","formik","hasChanges","dirty","submitCount","onbeforeunload","confirmExit","when","doubleHeader","thDoubleLevel","verticalAlign","cellDoubleLevel","tdHeader","trError","trAdding","mainContent","cardContentRoot","actionCol","errorContent","THead","TDoubleLevelHead","TBody","Td","Th","ThDoubleLevel","Tr","shouldShowError","newRow","cardClasses","Card","CardContent","S","sanctuary","checkTypes","process","env","toFirstLower","compose","joinWith","toLower","toFirstUpper","toUpper","onlyFirstToUpper","splitOnUpper","splitOn","startCase","singularOrPlural","amount","singularStr","pluralStr","parseInt","orderedBySpan","TableCtx","elements","enableEdit","enableEditText","editWidth","enableDelete","deleteWidth","enableToggle","toggleWidth","orderedBy","DEFAULT_COL_SIZE","mapElement","orderClasses","cloneHeader","spanChild","attachOrderedByToComplexHeader","toSHeader","noSHeader","groupSecondHeader","innerElements","HeaderElement","titleSection","actions","closeButton","DialogTitle","DeleteDialog","onConfirmed","onDismissed","confirmationMessage","split","DialogActions","SvgRegular","WIDTH","selectedItem","listStyleType","selectFiltered","items","useSelect","onSelectedItemChange","isOpen","getToggleButtonProps","getLabelProps","getMenuProps","getItemProps","selectClassNames","defaultAsFilter","default","SvgDisabled","SvgEnabled","patternUnits","patternTransform","SvgStripes","saveButton","lastOfGroup","extraPadding","extraPaddingRight","withSuffix","ActionCol","editing","submitForm","resetForm","onEdit","disableRowEdit","onToggle","forceAdd","clearError","actionColSize","disableEdit","deleteDialog","setDeleteDialog","editButton","ECol","bypassField","editable","editingAlign","SuffixComponent","textStyle","isHidden","view","toString","inputProps","isEditing","isEditable","isField","innerProps","ERow","rowSize","stripeWhen","toStripe","noStripe","groupStriped","extraPaddingIndex","extraPaddingRightIndex","elementToFocusIndex","findIndex","touchedErrors","hasErrors","addLink","outerHeader","getWidth","ETable","titleLg","save","externalError","enableCreate","outerEditWidth","disableAdd","setEditing","shouldOverrideEdit","editOverride","groupBy","sortBy","createText","tbodyWrapperClass","editingId","setEditingId","adding","setAdding","saving","setSaving","setError","innerSave","cast","list","addField","widthIfEditNull","ACTION_COL_SIZE","showButtonOnEmpty","canAdd","showTable","innerData","ctxValue","Provider","AddButton","v4","nextElement","canGroup","groupFunction","isLastOfGroup","enableReinitialize","NamespacedTable","modal","infoPanelWrapper","infoPanelHeight","panelContent","small","xl","Modal","infoPanel","secondaryModal","closeOnEscape","closeOnBackdropClick","TitleCase","closeSize","CURRENCY_MAX","MANUAL","IP_CHECK_REGEX","modalContent","splashTitle","warningInfo","warningIcon","warningText","flexBasis","machineName","WizardSplash","onContinue","alt","src","filledCassettes","stages","stage","separatorSpring","separatorZodiac","separatorSpringEmpty","separatorZodiacEmpty","currentStep","Error","separatorClasses","separatorEmptyClasses","transparentButton","usePopperHandler","helpPopperAnchorEl","setHelpPopperAnchorEl","helpPopperOpen","handleOpenHelpPopper","handleCloseHelpPopper","HoverableTooltip","parentElements","handler","onMouseEnter","onMouseLeave","paddingBottom","titleDiv","stepImage","horizontalAlign","centerAlignment","lineAlignment","formWrapper","float","cashboxBills","cassetteCashbox","cassetteFormTitle","cassetteFormTitleContent","smBottomMargin","fiatTotal","cassetesArtworks","cassetteOne","cassetteTwo","tejo3CassetteOne","tejo3CassetteTwo","tejo3CassetteThree","tejo4CassetteOne","tejo4CassetteTwo","tejo4CassetteThree","tejo4CassetteFour","WizardStep","cashoutSettings","cassetteCapacity","lastStep","stepOneRadioOptions","cassetteField","originalCassetteCount","cassetteDenomination","cassetteCount","cassetteTotal","getPercentage","wasCashboxEmptied","schema","CASSETTE_FIELDS","MAX_NUMBER_OF_CASSETTES","Wizard","locale","setState","isLastStep","buildCassetteObj","cassetteInput","defaultToZero","newConfig","cassettes","makeCassetteSteps","positive","integer","cashoutRequired","widthsByNumberOfCassettes","2","cassette","cassetteGraph","3","4","ValidationSchema","cassette1","cassette2","cassette3","cassette4","SET_CASSETTE_BILLS","Cassettes","refetchData","bills","wizard","setWizard","cashout","getCashoutSettings","isCashOutDisabled","stripe","setCassetteBills","onSave","cashInAndOutHeaderStyle","cashInHeader","cashOutHeader","overrides","getOverridesFields","Commissions","SCREEN_KEY","saveConfig","machineCommissions","commissions","fixedFee","minimumTx","isId","generalOverrides","overrideInfo","o","machineOverrides","getMachineCommissions","modelPrettifier","douro1","sintra","gaia","tejo","grid","rowItem","detailItem","breadcrumbsContainer","breadcrumbLink","detailsMargin","sidebarContainer","contentContainer","Details","pairedAt","model","version","dialogContent","dialogTitle","dialogActions","ConfirmDialog","toBeConfirmed","saveButtonAlwaysEnabled","initialValue","setValue","isOnErrorState","htmlFor","machineActionsStyles","inlineChip","marginInlineEnd","stack","flexWrap","mr","MACHINE_ACTION","MACHINE","MachineActions","onActionSuccess","command","setAction","preflightOptions","setPreflightOptions","setErrorMessage","warningMessage","fetchMachineEvents","loadingEvents","machineAction","confirmDialogOpen","machineStatusPreflight","actionToDo","machineEventsLazy","machineState","JSON","parse","latestEvent","note","getState","EditIcon","EditReversedIcon","UnpairIcon","UnpairReversedIcon","RebootIcon","RebootReversedIcon","ShutdownIcon","ShutdownReversedIcon","newName","SvgCopy","tableWrapper","dateColumn","levelColumn","fillColumn","shareButton","shareIcon","buttonsWrapper","cpcStyles","address","lineBreak","buttonWrapper","detailsRowStyles","idCardDataCard","labelStyles","mainStyles","baseStyles","overflowTd","textOverflow","flexWrapper","customerLinkIcon","flexRow","machineRedirectContainer","CopyToClipboard","buttonClassname","wrapperClassname","handleClick","Overview","responseTime","lastPing","formatDistance","addSuffix","downloadSpeed","copyToClipboard","URI","uploadLink","createUploadLink","credentials","uri","uploadLinkALT","setRole","ApolloClient","ApolloLink","graphQLErrors","networkError","forEach","locations","path","extensions","operation","forward","response","getContext","clientName","cache","InMemoryCache","defaultOptions","watchQuery","fetchPolicy","errorPolicy","query","mutate","getClient","secondRow","lastRow","txIcon","clipboardPopover","availableIds","exchangeRate","commission","downloadRawLogs","cancelTransaction","transactionId","sessionId","chipLabel","otherActionsGroup","addressHeader","walletScore","getStatus","hasError","dispense","expired","getCashOutStatus","operatorCompleted","batchError","sendConfirmed","batched","getCashInStatus","getStatusDetails","TX_SUMMARY","CANCEL_CASH_OUT_TRANSACTION","CANCEL_CASH_IN_TRANSACTION","getCryptoAmount","coinUtils","toUnit","cryptoAtoms","cryptoCode","formatAddress","formatCryptoAddress","replace","Label","DetailsRow","isCashIn","zip","JSZip","createCsv","fetchSummary","crypto","tickerPrice","rawTickerPrice","fee","calcCashInProfit","calcCashOutProfit","getCommission","displayExRate","discount","parseDateString","customer","customerIdCardData","firstName","lastName","dateOfBirth","differenceInYears","country","idCardNumber","documentNumber","idCardExpirationDate","expirationDate","until","logs","zipFilename","filesNames","file","generateAsync","FileSaver","saveAs","errorElements","walletScoreEl","customerPhone","PhoneIdIcon","PhoneIdInverseIcon","customerIdCardPhotoPath","CardIdIcon","CardIdInverseIcon","idCardPhoto","customerFrontCameraPath","CamIdIcon","CamIdInverseIcon","toAddress","txHash","CancelIcon","CancelInverseIcon","Download","DownloadInverseIcon","txId","next","expandButton","rowWrapper","expanded","before","after","pointer","body","SvgClosed","SvgOpen","Row","expandRow","expWidth","expandable","hasPointer","trClasses","DataTable","initialExpanded","emptyText","extraHeight","setExpanded","coreWidth","CellMeasurerCache","defaultHeight","fixedWidth","rowRenderer","parent","columnIndex","rowIndex","disableWidth","disableHeight","rowCount","rowHeight","overscanRowCount","deferredMeasurementCache","GET_TRANSACTIONS","Transactions","setExtraHeight","clickedId","setClickedId","getTx","txResponse","txLoading","configData","configLoading","splice","customerName","formatCustomerName","GET_INFO","Machines","reload","machineID","Breadcrumbs","transactionsItem","lastIndexOf","getMachineID","billFilters","batch","denomiations","AUD","5","10","20","50","100","BBD","CAD","CHF","200","1000","DKK","500","EUR","GBP","HKD","HUF","2000","5000","10000","20000","ILS","JMD","JPY","KZT","MXN","MYR","1","NZD","PHP","PLN","SGD","TWD","UAH","USD","VND","50000","100000","200000","500000","ZAR","getBillOptions","ALL_MACHINES","ALL_COINS","getView","compare","attribute","displayCodeArray","onCryptoChange","curr","hasAllCoins","hadAllCoins","mainFields","auxData","auxElements","getData","machineData","concat","rawCryptos","cryptoData","percentMax","getSchema","denominations","highestBill","getOverridesSchema","rawData","nullable","alreadyUsed","getCrypto","getMachineId","filteredOverrides","originalValue","originalCryptos","originalMachineId","getAlreadyUsed","isAllMachines","isAllCoins","createError","repeated","codes","machineView","defaults","overridesDefaults","getOrder","createCommissions","isDefault","getListCommissionsSchema","getTextStyle","commissionsList","getListCommissionsFields","greenText","getFields","names","allFields","overridenMachines","override","suggestionFilter","countryData","currencyData","languageData","timezonesData","findSuggestion","configureCoin","LocaleSchema","languages","OverridesSchema","localeDefaults","editDisabled","filterClass","class","filterCoins","cryptos","WalletSchema","ticker","wallet","exchange","zeroConf","zeroConfLimit","AdvancedWalletSchema","cryptoUnits","feeMultiplier","allowTransactionBatching","cryptoCurrency","OverridesDefaults","viewFeeMultiplier","feeOptions","cryptoUnitsDefaultOptions","getCryptoUnitsOptions","getCryptoCurrency","units","getAdvancedWalletElementsOverrides","coinSuggestions","ite","getElements","accounts","widthAdjust","viewCryptoCurrency","getDisplayName","getOptions","extraMarginTop","Subtitle","section","sectionHeader","sectionTitle","Section","useCommissionStyles","autoComplete","doContinue","Locales","getConfiguredCoins","InfoMessage","FormRenderer","buttonClass","emptySecretFields","elem","secretTest","leadingZerosTest","face","getValidationSchema","account","accountSid","authToken","fromNumber","radioGroup","radioLabel","mdForm","infoMessage","formButton","SAVE_ACCOUNTS","Twilio","selected","setSelected","saveAccounts","titleClasses","twilio","AllSet","currentData","coin","defaultCryptoUnit","adjustedData","isValidSync","withCoin","apiKey","privateKey","isDefined","buildTestValidation","passphrase","is","BTCWalletId","BTCWalletPassphrase","LTCWalletId","LTCWalletPassphrase","ZECWalletId","ZECWalletPassphrase","BCHWalletId","BCHWalletPassphrase","DASHWalletId","DASHWalletPassphrase","environment","matches","clientId","requirement","confidenceFactor","CheckboxFormik","authorizationValue","scoreThreshold","apiSecret","endpoint","userId","walletId","clientKey","clientSecret","fromEmail","toEmail","bitgo","bitstamp","blockcypher","infura","itbit","kraken","mailgun","binanceus","cex","ftx","ciphertrace","Blockcypher","addData","ChooseCoin","filterConfig","sameClass","contains","getItems","fConfig","unfilled","isConfigurable","ChooseExchange","exchanges","ChooseTicker","tickers","singleBitgo","ChooseWallet","saveWallet","Wallet","setData","mySteps","welcome","getStarted","Welcome","getWizardStep","coins","hasValidWallet","hasValidLocale","CommissionsSchema","hasValidCommissions","STEPS","exImage","Locale","drawer","smallWrapper","fullExample","setFullExample","wrapperClassNames","Drawer","anchor","variant","paperAnchorDockedBottom","blurred","pointerEvents","setWizardTested","footerExp","setFooterExp","wizardStep","shouldGoBack","goBack","isWelcome","isLoggedIn","ROLES","PrivateRoute","rest","PublicRoute","restricted","render","overviewLegend","legendEntry","dropdownsOverviewWrapper","borderWidth","dropdowns","overview","overviewFieldWrapper","overviewGrowth","growthPercentage","growth","decline","graphHeaderWrapper","graphHeaderLeft","graphHeaderRight","graphLegend","machineSelector","cashInIcon","cashOutIcon","topMachinesRadio","LegendEntry","IconElement","IconComponent","dotOtWrapper","dotOtTransactionAmount","dotOtTransactionVolume","dotOtTransactionClasses","GraphTooltip","dateInterval","period","representing","formattedDateInterval","volume","setSelectionCoords","setSelectionData","setSelectionDateInterval","BAR_MARGIN","getTickIntervals","interval","setUTCHours","filterByHourInterval","lowerBound","upperBound","tzCreated","txClassByHourInterval","startOfDay","rangeRound","groupedByDateInterval","groupedByTxClass","tickSize","buildVerticalLines","xValue","intervals","buildHoverableEventRects","on","__data__","endDate","filteredData","rectXCoords","xCoord","baseVal","yCoord","buildEventRects","drawCashIn","drawCashOut","selectedDay","day","week","month","buildAreas","getAreaInterval","breakpoints","limits","fullBreakpoints","clone","getAreaIntervalByX","areas","flattenIntervals","getDateIntervalByX","buildAvg","BAR_PADDING","machinesClone","filledMachines","txByDevice","devicesByVolume","b","topMachines","txClassVolumeByDevice","v","paddingInner","tickPadding","buildXAxis2","positionXAxisLabels","widthPerEntry","positionXAxis2Labels","domainIndex","paddedXValue","bandwidth","GraphWrapper","selectionCoords","selectionDateInterval","selectionData","OverTimeDotGraph","TopMachinesBarGraph","HourOfDayBarGraph","getGraph","dayOptions","HourOfDayBarGraphHeader","handleMachineChange","graphType","setGraphType","setSelectedDay","legend","txsPerWeekday","getDay","sunday","monday","tuesday","wednesday","thursday","friday","saturday","OverTimeDotGraphHeader","average","TopMachinesBarGraphHeader","MACHINE_OPTIONS","REPRESENTING_OPTIONS","PERIOD_OPTIONS","TIME_OPTIONS","OverviewEntry","oldValue","growthRate","growthClasses","overviewEntry","Analytics","subDays","endOfToday","configResponse","setRepresenting","setPeriod","setMachine","rates","locale_timezone","localeRate","dispensed","machineOptions","machineTxs","timeInterval","txs","avgAmount","txVolume","UpIcon","DownIcon","EqualIcon","OverTimeWrapper","TopMachinesWrapper","HourOfDayWrapper","getGraphInfo","modalTitle","deleteButton","addressRow","cancelButton","BlackListModal","selectedCoin","addToBlacklist","errorMsg","trim","startsWith","handleAddToBlacklist","BTC","ETH","LTC","DASH","ZEC","BCH","USDT","XMR","clear","registerChild","BlacklistTable","handleDeleteEntry","toBeDeleted","setToBeDeleted","dataToShow","groupByCode","DELETE_ROW","GET_BLACKLIST","ADD_ROW","PaperWalletDialog","onDissmised","PaperProps","Blacklist","blacklistResponse","showModal","setShowModal","setErrorMsg","confirmDialog","setConfirmDialog","deleteEntry","addEntry","blacklistData","availableCurrencies","formattedData","complianceConfig","rejectAddressReuse","enablePaperWalletOnly","addressReuseSave","rawConfig","validateAddress","parseUrl","duplicateKeyError","some","confirm","mb","innerContent","titleDecorator","edit","bill","billInput","picker","thirdStepHeader","disclaimer","disclaimerIcon","DenominationsSchema","cassetteProps","LAST_STEP","assert","fudgeFactor","switchLabel","Cashout","fudgeFactorActive","namespaced","ry","SvgSpring2","CommissionsDetails","saveOverrides","isEditingDefault","setEditingDefault","isEditingOverrides","setEditingOverrides","commissionOverrides","orderedCommissionsOverrides","SHOW_ALL","ORDER_OPTIONS","headerLine","getElement","CommissionsList","localeConfig","machineFilter","setMachineFilter","coinFilter","setCoinFilter","orderProp","setOrderProp","machinesCoinsTuples","machineCoins","specificOverride","machineOverride","coinOverride","getCommissions","tableData","prop","sortCommissionsBy","filterCommissions","listViewButton","showMachines","setShowMachines","ListingViewIcon","ReverseListingViewIcon","iconClassName","cryptoOverriden","sameMachine","filterMachine","removeCoin","commissions_overrides","propertyCardStyles","label1Pending","label1Rejected","label1Accepted","cardActionButton","propertyCardTopRow","propertyCardBottomRow","propertyCard","boxSizing","rowSpaceBetween","flexFlow","columnSpaceBetween","OVERRIDE_PENDING","OVERRIDE_AUTHORIZED","OVERRIDE_REJECTED","image","objectFit","popupImage","popupWidth","popupHeight","ImagePopper","popperAnchorEl","setPopperAnchorEl","Image","ZoomIcon","ZoomIconInverse","SvgCrossedCamera","editIcon","cardIcon","viewIcons","radio","specialLabel","specialGrid","gridTemplateColumns","CUSTOM","REQUIREMENT","getAuthorizedStatus","triggers","customRequests","fields","fieldsWithPathSuffix","isManualField","fieldName","triggerName","manualOverrides","automation","pendingFieldStatus","uuid","request","iter","infoRequestId","customInfoRequests","regularFieldValue","rejectedFieldStatus","authorizedOverride","isSuspended","daysSuspended","getFormattedPhone","phone","phoneNumber","parsePhoneNumberFromString","formatInternational","getName","idData","entryOptions","dataOptions","requirementOptions","customUploadOptions","entryTypeSchema","entryType","dataType","customFileSchema","customImageSchema","customTextSchema","ManualDataEntry","selectedValues","customInfoRequirementOptions","typeOfEntrySelected","dataTypeSelected","requirementSelected","displayRequirements","isCustomInfoRequirement","updatedRequirementOptions","requirementName","requirementElements","customElements","upload","saveType","displayCustomOptions","displayRequirementOptions","customerDataElements","idCardData","usSsn","frontCamera","customerDataSchemas","isValid","gender","custom","customInfoRequirement","formatDates","addPhotoDir","photoDir","standardizeKeys","pair","filterByPhotoAvailable","formatPhotosData","stepper","infoTitle","infoCurrentText","blankSpace","dropdownField","addCustomerData","addPhoto","setSelectedValues","formatCustomerData","stepOptions","getStep","newPhoto","photoType","column","textInput","fontStretch","fontStyle","letterSpacing","txClassIconLeft","txClassIconRight","photo","img","txSummaryValue","txSummaryLabel","idIcon","txTableSpacing","InformativeDialog","objectPosition","circle","SvgCarouselLeftArrow","SvgCarouselRightArrow","imgWrapper","imgInner","Carousel","photosData","slidePhoto","PrevIcon","NextIcon","navButtonsProps","navButtonsWrapperProps","autoPlay","indicators","navButtonsAlwaysVisible","activeIndex","firstRow","PhotosCarousel","currentIndex","setCurrentIndex","isFaceCustomerPhoto","PhotosCard","photosDialog","setPhotosDialog","singlePhoto","ButtonBase","CustomerDetails","idNumber","mt","CustomerSidebar","sideBarOptions","OverviewIcon","OverviewReversedIcon","CustomerDataIcon","CustomerDataReversedIcon","NoteIcon","NoteReversedIcon","Photos","PhotosReversedIcon","headerWrapper","editingWrapper","editingButtons","cardHeader","cardTitle","fieldStyles","notEditing","readOnlyLabel","readOnlyValue","fieldUseStyles","EditableField","ReadOnlyField","EditableCard","authorize","hasImage","reject","titleIcon","retrieveAdditionalData","deleteEditedData","hasAdditionalData","setInput","label1ClassNames","authorized","DataIcon","DataReversedIcon","ReplaceReversedIcon","click","accept","fileInput","files","SaveReversedIcon","CancelReversedIcon","AuthorizeIcon","BlockIcon","ifNotNull","valueIfNotNull","TransactionsList","LastTxIcon","lastTxClass","TxOutIcon","TxInIcon","hasData","tableSpacingClasses","summaryElements","totalTxs","totalSpent","lastTxFiatCode","lastActive","lastTxFiat","tableElements","SvgZodiacResized","box","borderStyle","inputContent","uploadContent","board","Upload","isImage","onDrop","acceptedData","preview","URL","createObjectURL","useDropzone","getRootProps","getInputProps","Photo","show","photoWrapper","RetrieveDataDialog","setRetrieve","CustomerData","updateCustomer","replacePhoto","editCustomer","updateCustomRequest","authorizeCustomRequest","updateCustomEntry","listView","retrieve","rawExpirationDate","rawDob","sanctions","sanctionsDisplay","sortByName","customFields","customRequirements","smsData","isEven","getVisibleCards","isAvailable","smsDataElements","smsDataSchema","additionalData","cards","idCardDataOverride","phoneOverride","subscriberInfo","sanctionsOverride","frontCameraOverride","frontCameraPath","idCardPhotoOverride","idCardPhotoPath","usSsnOverride","customInfoRequest","customRequest","customerData","customerId","info_request_id","fieldId","editableCard","visibleCards","notesChipList","noteCardWrapper","flexShrink","noteCardChip","newNoteCard","noteCardHeader","noteCardTitle","noteCardContent","lineClamp","boxOrient","editCardChip","editCardHeader","editCardActions","editNotesContent","NewNoteCard","setOpenModal","NewNoteModal","autofocus","multiline","rows","formatContent","fragments","NoteCard","deleteNote","deleteIcon","stopPropagation","noteId","NoteEdit","cancel","formRef","formatDurationWithOptions","delimited","lastEditedAt","CancelIconInverse","SaveIcon","SaveIconInverse","newContent","oldContent","innerRef","CustomerNotes","createNote","editNote","openModal","customerNotes","handleModalClose","photosChipList","borderTopLeftRadius","borderTopRightRadius","photoCardChip","PhotoCard","setPhotoClickIndex","CustomerPhotos","photoClickedIndex","orderedPhotosData","labelLink","breadcrumbs","actionLabel","customerDetails","actionBar","panels","rightSidePanel","leftSidePanel","userStatusAction","GET_CUSTOMER","SET_CUSTOMER","EDIT_CUSTOMER","REPLACE_CUSTOMER_PHOTO","DELETE_EDITED_CUSTOMER","SET_AUTHORIZED_REQUEST","SET_CUSTOMER_CUSTOM_INFO_REQUEST","CREATE_NOTE","DELETE_NOTE","EDIT_NOTE","ENABLE_TEST_CUSTOMER","DISABLE_TEST_CUSTOMER","SET_CUSTOM_ENTRY","EDIT_CUSTOM_ENTRY","GET_ACTIVE_CUSTOM_REQUESTS","CustomerProfile","showCompliance","setShowCompliance","useParams","customerResponse","getCustomer","customerLoading","activeCustomRequests","onlyEnabled","setCustomEntry","editCustomEntry","replaceCustomerPhoto","editCustomerData","deleteCustomerEditedData","setCustomer","setCustomerCustomInfoRequest","enableTestCustomer","disableTestCustomer","customerInput","customerEdit","rawTransactions","sortedTransactions","blocked","isCustomerData","isOverview","isNotes","isPhotos","frontCameraData","txPhotosData","isAnonymous","AuthorizeReversedIcon","suspendedUntil","BlockReversedIcon","searchBoxBorderRadius","popupBorderRadiusFocus","hoverColor","autocomplete","popup","itemLabel","itemType","inputWithPopup","iconButton","SearchBox","filters","inputPlaceholder","popupOpen","setPopupOpen","innerOnChange","renderOption","filterSelectedOptions","PaperComponent","InputBase","startAdornment","chipStyles","deleteWrapper","entries","chips","useChipStyles","SearchFilter","onFilterDelete","deleteAllFilters","chipClasses","f","ReverseFilterIcon","FilterIcon","CustomersList","hasLastTx","lastIcon","pnUtilInstance","PhoneNumberUtil","getInstance","formatPhoneNumber","countryCodes","numberStr","matchedCountry","number","parseAndKeepRawInput","matchedNumber","PhoneNumberFormat","E164","CreateCustomerModal","possibleCountries","validMap","GET_CUSTOMER_FILTERS","GET_CUSTOMERS","CREATE_CUSTOMER","useBaseStyles","getFiltersObj","Customers","filteredCustomers","setFilteredCustomers","setVariables","setFilters","showCreationModal","setShowCreationModal","customersResponse","filtersResponse","loadingFilters","createNewCustomer","customRequirementsData","customersData","filtersObject","newFilters","colorIndicator","TableLabel","main","firstSide","secondSide","coinTotal","leftSpacer","topSpacer","addressWrapper","itemWrapper","inactiveItem","firstItem","totalPending","totalTitle","tableLabel","pending","sizes","GET_FUNDING","sumReducer","formatNumber","getConfirmedTotal","fiatConfirmedBalance","reduce","Funding","viewHistory","fundingHistory","cryptoAmount","balance","fiatValue","performedBy","fundingResponse","funding","pendingTotal","fiatPending","signIfPositive","num","itemClass","wrapperClass","confirmedBalance","fundingAddress","fundingAddressUrl","SvgIconBitcoinColour","SvgIconBitcoincashColour","SvgIconDashColour","SvgIconEthereumColour","preserveAspectRatio","SvgIconLitecoinColour","SvgIconMoneroColour","SvgIconTetherColour","SvgIconZcashColour","Logo","BitcoinLogo","BitcoinCashLogo","DashLogo","EthereumLogo","LitecoinLogo","ZCashLogo","TetherLogo","MoneroLogo","getLogo","setupNew","isNew","iError","innerError","stepSchema","getValue","innerContinue","subtitleClass","removeDeprecated","deprecated","accountsToSave","zeroConfs","stepConfig","stepAccount","newAccounts","configToSave","getStepData","rightAligned","rightLink","FiatCurrencyChangeAlert","onChangeFunction","setOnChangeFunction","dataToSave","setDataToSave","localeOverrides","onChangeCoin","userAccounts","identification","customerAutocomplete","discountRateWrapper","discountInput","IndividualDiscountModal","creationError","addDiscount","customers","handleAddDiscount","discountInputField","GET_INDIVIDUAL_DISCOUNTS","DELETE_DISCOUNT","CREATE_DISCOUNT","IndividualDiscounts","toggleModal","discountResponse","discountLoading","createDiscount","deleteDiscount","discountId","individualDiscounts","tableWidth","modalLabel1","modalLabel2Wrapper","PromoCodesModal","addCode","handleAddCode","modalLabel2","DEFAULT_ERROR_MSG","GET_PROMO_CODES","DELETE_CODE","CREATE_CODE","PromoCodes","codeResponse","deleteCode","createCode","codeId","promoCodes","duplicateCodeError","SvgDownloadLogs","SvgMonthChange","SvgMonthChangeRight","between","Tile","isLowerBound","isUpperBound","isBetween","isDisabled","rangeClasses","buttonWrapperClasses","buttonClasses","navbar","Calendar","minDate","maxDate","handleSelect","currentDisplayedMonth","setCurrentDisplayedMonth","weekdays","monthdays","lastMonth","lastMonthRange","startOfMonth","reverse","lastMonthDays","lastDayOfMonth","thisMonthRange","getDaysInMonth","monthLength","thisMonthDays","nextMonth","nextMonthRange","nextMonthDays","getRow","currentMonth","prevMonth","isSameMonth","differenceInMonths","handleNavPrev","handleNavNext","isSameDay","DateRangePicker","onRangeChange","setFrom","setTo","differenceInDays","set","milliseconds","dateContainerStyles","monthWeekDayContainer","bigNumber","monthYear","weekDay","dateContainerUseStyles","DateContainer","popoverHeader","radioButtonsContainer","radioButtons","dateRangePickerShowing","dateRangePickerHidden","download","dateContainerWrapper","arrowContainer","ALL","RANGE","ADVANCED","SIMPLIFIED","LogsDownloaderPopover","args","getLogs","simplified","selectedRadio","setSelectedRadio","selectedAdvancedRadio","setSelectedAdvancedRadio","setRange","createLogsFile","fetchLogs","dateRangePickerClasses","handleRangeChange","formatDateFile","blob","Blob","radioButtonOptions","advancedRadioButtonOptions","downloadLogs","GET_MACHINE_LOGS_CSV","GET_MACHINE_LOGS","Logs","saveMessage","setSaveMessage","machineResponse","machinesLoading","skip","logsResponse","logsLoading","TableHeader","machineLogs","timestamp","logLevel","tBody","descriptions","cashboxReset","selection","footerLabel","footerContent","footerContainer","iconLabel","valueDisplay","CashCassettesFooter","currencyCode","deviceIds","totalInCassettes","cassette1Denomination","cassette2Denomination","cassette3Denomination","cassette4Denomination","totalInCashBox","GET_BATCHES","operationType","operationTypeWrapper","saveAndCancel","CashboxHistory","batchesData","batchesLoading","batches","getOperationRender","ret","customBillCount","GET_MACHINES_AND_CONFIG","CashCassettes","showHistory","setShowHistory","editingSchema","setEditingSchema","dataLoading","machineId","setMachineId","saveCashboxOption","cashboxResetSave","handleRadioButtons","HistoryIcon","ReverseHistoryIcon","SvgPumpkin","machineDetailsStyles","useLStyles","useMDStyles","Container","Item","MachineDetailsRow","packetLoss","MachineStatus","addedMachineId","machinesResponse","expandedIndex","fieldWrapper","valueWrapper","decoration","EditableNumber","displayValue","SingleFieldEditableNumber","NotificationsCtx","LOW_BALANCE_KEY","HIGH_BALANCE_KEY","cryptoBalanceAlerts","cryptoBalanceAlertsForm","cryptoBalanceAlertsSecondForm","vertSeparator","CryptoBalanceAlerts","fieldWidth","CRYPTOCURRENCY_KEY","NAME","CryptoBalanceOverrides","setupValues","cryptoBalanceOverrides","overridenCryptos","suggestions","newOverrides","gridTemplateRows","gridColumnGap","gridRowGap","cashboxLabel","cashboxEmptyPart","FiatBalance","fillingPercentageCassette1","fillingPercentageCassette2","fiatBalanceCassette3","fiatBalanceCassette4","fillingPercentageCassette3","fillingPercentageCassette4","CASSETTE_1_KEY","CASSETTE_2_KEY","CASSETTE_3_KEY","CASSETTE_4_KEY","MACHINE_KEY","CASSETTE_LIST","FiatBalanceOverrides","fiatBalanceOverrides","cashoutConfig","picked","security","namespace","shouldUpperCase","rawSave","Cell","wizardTable","Setup","TransactionAlerts","Notifications","displaySetup","displayTransactionAlerts","displayFiatAlerts","displayCryptoAlerts","displayOverrides","displayTitle","setSection","editingKey","setEditingKey","contextValue","FiatBalanceAlerts","SvgFalse","SvgTrue","booleanPropertiesTableStyles","booleanPropertiesTableWrapper","tableRow","leftTableCell","rightTableCell","BooleanCell","BooleanPropertiesTable","forcedEditing","schemaValidation","toBoolean","global","switchRow","switch","formErrorMsg","CoinATMRadar","coinAtmRadarConfig","Field","contactUseStyles","ContactInfo","website","companyNumber","findField","findValue","displayTextValue","ReceiptPrinting","receiptPrintingConfig","sms","SvgLogoWhite","smsPreview","smsPreviewContainer","smsPreviewIcon","smsPreviewContent","chipButtons","resetToDefault","messageWithTooltip","PREFILL","smsCode","validator","cashOutDispenseReady","smsReceipt","CHIPS","obligatory","DEFAULT_MESSAGES","SMSNoticesModal","messageName","DefaultIcon","DefaultIconReverse","GET_SMS_NOTICES","EDIT_SMS_NOTICE","ENABLE_SMS_NOTICE","DISABLE_SMS_NOTICE","multiReplace","re","RegExp","matched","toLowerCase","TOOLTIPS","SMSPreview","SMSNotices","selectedSMS","setSelectedSMS","previewOpen","setPreviewOpen","previewCoords","setPreviewCoords","messagesData","messagesLoading","msg","editMessage","enableMessage","disableMessage","allowToggle","innerHeight","useFieldStyles","notEditingSingleLine","notEditingMultiline","rowsMax","useTermsConditionsStyles","TermsConditions","termsAndConditions","formData","showOnScreen","addDelayOnScreen","delay","acceptButtonText","cancelButtonText","running","notRunning","uptimeContainer","Uptime","time","uptime","floor","localStyles","serverTableWrapper","logsStyles","headerLine2","GET_CSV","GET_SERVER_DATA","tableEl","setLogLevel","processStates","getLogLevels","serverLogs","scrollTo","head","SingleRowTable","SAVE_ACCOUNT","Services","saveAccount","faceElements","schemas","isEnabled","updateSettings","filterBySecretComponent","mapToCode","passwordFields","getAccounts","GET_SESSIONS","DELETE_SESSION","SessionManagement","tknResponse","sessionsLoading","deleteSession","sess","ua","parser","browser","os","ip","ipAddress","expire","sid","SvgRightWhite","NUM_LOG_RESULTS","GET_TRANSACTIONS_CSV","GET_TRANSACTION_FILTERS","filtersLoading","txData","transactionsLoading","txList","getCustomerDisplayName","errorLabel","halfWidth","DetailsCard","screen1","label1Display","constraintType","screen2","getScreen2Data","choiceList","choice","numDigits","ToggleButtonGroupFormik","enforceValueSet","SvgKeyboard","SvgKeypad","SvgList","MakeIcon","IconSvg","inputType","defaultValues","ChooseType","Keypad","Keyboard","NameOfRequirement","screen1Title","screen1Text","Screen1Information","screen2Title","screen2Text","ScreenInformation","radioSubtitle","numberField","nonEmptyStr","ChoiceList","choiceListRef","listChoices","choiceListError","showErrorColor","scrollToBottom","scrollIntoView","AddIconInverse","preventDefault","NumericalEntry","isLength","allowNegative","TextEntry","getLabelInputs","inputLength","inputLabel1","inputLabel2","else","notRequired","ctx","TypeFields","getForm","_ref15","_ref16","_ref17","_ref18","_ref19","_ref20","_ref21","_ref22","_ref23","_ref24","_ref25","_ref26","_ref27","_ref28","_ref29","_ref30","_ref31","_ref32","_ref33","_ref34","_ref35","_ref36","_ref37","_ref38","_ref39","_ref40","_ref41","_ref42","_ref43","_ref44","_ref45","_ref46","_ref47","_ref48","_ref49","_ref50","_ref51","_ref52","_ref53","_ref54","_ref55","_ref56","_ref57","SvgCustomRequirement","formatValues","isChoiceList","choices","hasInputLength","resObj","chooseNotNull","toBeEdited","nameOfReqSchema","screen1InfoSchema","chooseTypeSchema","screen2InfoSchema","Screen2Information","typeFieldsValidationSchema","showScreen2","editingValues","makeEditingValues","wizardTitle","nameOfReqDefaults","screen1InfoDefaults","screen2InfoDefaults","chooseTypeDefaults","typeFieldsDefaults","m0","mb10","centerItems","alignWithTitleSection","inputTypeDisplay","numerical","constraintTypeDisplay","none","selectOne","selectMultiple","spaceSeparation","EDIT_ROW","REMOVE_ROW","CustomInfoRequests","showWizard","toggleWizard","setToBeEdited","setHasError","editEntry","removeEntry","handleSave","tableRadioGroup","tableRadioLabel","directionName","thresholdWrapper","thresholdTitle","thresholdContentWrapper","thresholdField","space","lastSpace","suspensionDays","limitedInput","daysInput","triggerType","thresholdDays","Schema","txAmount","txVelocity","consecutiveDays","requirementValidator","typeSchema","typeOptions","Type","setTouched","handleChange","typeClass","containsType","isThresholdCurrencyEnabled","isTransactionAmountEnabled","isThresholdDaysEnabled","isConsecutiveDaysEnabled","hasAmountError","hasDaysError","triggerTypeError","thresholdClass","requirementSchema","otherwise","customInfoRequestId","hasRequirementError","hasCustomRequirementError","Requirement","isSuspend","isCustom","titleClass","requirements","customReqIdMatches","customReqId","RequirementInput","customRequestId","RequirementView","DisplayThreshold","isEdit","Threshold","ThresholdDays","ThresholdInput","ThresholdView","triggerOrder","toServer","getText","getTypeText","getRequirementText","orUnderline","blankSpaceEl","InfoPanel","liveValues","oldText","newText","GetValues","setValues","setLiveValues","createErrorMessage","TriggerView","toSave","buildAdvancedRequirementOptions","displayRequirement","defaultSchema","expirationTime","getOverrides","GET_CUSTOM_REQUESTS","AdvancedTriggersSettings","customInfoReqData","customInfoLoading","enabledCustomInfoRequests","requirementsData","requirementsDefaults","requirementsOverrides","triggersConfig","Triggers","wizardType","subMenu","setSubMenu","fromServer","titleSectionWidth","setBlur","shouldBlur","wizardName","SettingsIcon","ReverseSettingsIcon","CustomInfoIcon","ReverseCustomInfoIcon","AdvancedTriggers","codeContainer","loginWrapper","roleSwitch","actionButtonWrapper","gap","CONFIRM_2FA","Input2FAModal","setConfirmation","twoFACode","setTwoFACode","invalidCode","setInvalidCode","confirm2FA","CHANGE_USER_ROLE","ChangeRoleModal","requiresConfirmation","changeUserRole","confirmation","showRoleModal","newRole","url","urlResolver","CREATE_USER","radioOptions","CreateUserModal","usernameField","setUsernameField","createUserURL","setCreateUserURL","createRegisterToken","queryParams","createUser","showCreateUserModal","ENABLE_USER","DISABLE_USER","EnableUserModal","enableUser","enableError","disableUser","disableError","showEnableUserModal","showFIDOModal","CREATE_RESET_2FA_TOKEN","Reset2FAModal","reset2FAUrl","setReset2FAUrl","createReset2FAToken","showReset2FAModal","CREATE_RESET_PASSWORD_TOKEN","ResetPasswordModal","resetPasswordUrl","setResetPasswordUrl","createResetPasswordToken","showResetPasswordModal","GET_USERS","GENERATE_ATTESTATION","VALIDATE_ATTESTATION","roleMapper","superuser","Users","userResponse","userInfo","setUserInfo","validateAttestation","generateAttestationOptions","startAttestation","attestationResponse","u","KeyIcon","WhiteKeyIcon","LockIcon","WhiteLockIcon","UserRoleIcon","WhiteUserRoleIcon","FIDOModal","AdvancedWallet","AdvancedWalletSettings","AdvancedWalletSettingsOverrides","inialValues","advancedSettings","setAdvancedSettings","getLamassuRoutes","MachineLogs","ServerLogs","WalletSettings","CoinAtmRadar","UserManagement","numberOfChips","totalAssetWrapper","totalAssetFieldWrapper","fieldHeader","fieldValue","fieldCurrency","walletChipList","walletChipWrapper","walletChip","walletHeader","zecLogo","bchLogo","hedgedText","walletValueWrapper","walletValue","walletChipTitle","tableTitle","asset","totalRow","leftSide","rightSide","cellStyling","mappedRoutes","parentRoutes","leafRoutes","flattened","Routes","wizardTested","Transition","Slide","Fade","transitionProps","exact","mountOnEnter","unmountOnExit","Page","matchPath","html","scrollbarGutter","createMuiTheme","typography","body1","MuiButtonBase","light","dark","MuiRadio","colorSecondary","MuiAutocomplete","noOptions","paper","listbox","tag","MuiChip","MuiInput","MuiInputLabel","font","MuiFormLabel","MuiListItem","MuiToggleButton","borderTopColor","MuiToggleButtonGroup","groupedVertical","borderBottomRightRadius","borderBottomLeftRadius","jss","plugins","extendJss","jssPreset","contentWithSidebar","contentWithoutSidebar","Main","hasSidebar","getParent","is404","contentClassName","App","StylesProvider","CssBaseline","Promise","resolve","ReactDOM","StrictMode","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"ocAEeA,MAAMC,gB,0ICKfC,EAAQ,UAGRC,EAAU,UACVC,EAAU,UACVC,EAAU,UACVC,EAAS,UACTC,EAAU,UAGVC,EAAO,UACPC,EAAO,UAMPC,EAAQ,UAGRC,EAAS,UAGTC,EAAY,UAKZC,EAhCS,UAkCTC,GAjCS,UAkCTC,GAAqBZ,EACrBa,GAAuBX,EAGvBY,GAnBQ,UAoBRC,GAAiBZ,EACjBa,GAAqBZ,EACrBa,GAxBO,UAyBPC,GAxBW,UAyBXC,GAAYT,EACZU,GAAWrB,EACXsB,GAzCS,UA0CTC,GAzCS,UA0CTC,GAAmBxB,EACnByB,GAAahB,EAGbiB,GAAgBhB,EAKhBiB,GAAY,KAGZC,GAAmBhB,GAInBiB,GAAc,OACdC,GAAgB,YAChBC,GAAiB,SAEnBC,GAAY,GACZC,GAAY,GACZC,GAAY,GACZC,GAAY,GACZC,GAAY,GAUhB,IAAMC,GAAmBD,GACnBE,GAAkBH,GAClBI,GAAgBL,GAChBM,GAAkBR,GAClBS,GAAkB,IAElBC,GAAkBZ,GAWpBa,GAAoBC,GACpBC,GAAkBD,GAOtB,IAAME,GAA8C,EAApBH,GAK1BI,GAAmBpC,EAInBqC,GAAkBtC,EAClBuC,GAAoB/C,EC3GpBgD,GAAO,CACXC,WAAY,OACZC,MAAOhC,IAGM,IACbiC,GAAI,CACFC,OAAQJ,GACRK,SAAUvB,GACVwB,WAAY3B,GACZ4B,WAAY,KAEdC,GAAI,CACFJ,OAAQJ,GACRK,SAAUtB,GACVuB,WAAY3B,GACZ4B,WAAY,KAEdE,GAAI,CACFL,OAAQJ,GACRK,SAAUpB,GACVqB,WAAY3B,GACZ4B,WAAY,KAEdG,GAAI,CACFN,OAAQJ,GACRK,SAAUpB,GACVqB,WAAY3B,GACZ4B,WAAY,KAEdI,GAAI,CACFP,OAAQJ,GACRK,SAAUrB,GACVsB,WAAY3B,GACZ4B,WAAY,KAEdK,EAAG,CACDR,OAAQJ,GACRK,SAAUpB,GACVqB,WAAY1B,GACZ2B,WAAY,KAEdM,IAAK,CACHT,OAAQJ,GACRK,SAAUtB,GACVuB,WAAY1B,GACZ2B,WAAY,KAEdO,IAAK,CACHV,OAAQJ,GACRK,SAAUpB,GACVqB,WAAY1B,GACZ2B,WAAY,KAEdQ,MAAO,CACLX,OAAQJ,GACRK,SAAUvB,GACVwB,WAAY1B,GACZ2B,WAAY,KAEdS,MAAO,CACLZ,OAAQJ,GACRK,SAAUrB,GACVsB,WAAY1B,GACZ2B,WAAY,KAEdU,MAAO,CACLb,OAAQJ,GACRK,SAAUrB,GACVsB,WAAY1B,GACZ2B,WAAY,KAEdW,KAAM,CACJd,OAAQJ,GACRK,SAAUpB,GACVqB,WAAYzB,GACZ0B,WAAY,KAEdY,SAAU,CACRZ,WAAY,KAEda,UAAW,CACTf,SAAUnB,IAEZmC,UAAW,CACThB,SAAUtB,GACVuB,WAAY1B,GACZ2B,WAAY,IACZN,WAAY,OACZC,MAAOhC,IAEToD,aAAc,CACZjB,SAAUpB,GACVqB,WAAY1B,GACZ2B,WAAY,IACZN,WAAY,QAEdsB,OAAQ,CACNlB,SAAUnB,GACVoB,WAAY1B,GACZ2B,WAAY,IACZL,MAAOhC,IAETsD,OAAQ,CACNnB,SAAUnB,GACVoB,WAAY1B,GACZ2B,WAAY,IACZL,MAAOhC,IAETuD,OAAQ,CACNpB,SAAUpB,GACVqB,WAAY1B,GACZ2B,WAAY,IACZL,MAAOhC,IAETwD,iBAAkB,CAChBtB,OAAQJ,GACRK,SDtCsB,GCuCtBC,WAAY1B,GACZ2B,WAAY,KAEdoB,OAAQ,CACNC,QAAS,UAEXC,SAAU,CACRC,OAAQ,ICxHNC,GAAS,SAACC,EAAQC,EAAQC,GAC9B,MAAO,CACLrE,gBAAiBmE,EACjB,UAAW,CACTnE,gBAAiBoE,GAEnB,WAAY,CACVpE,gBAAiBqE,KAKR,IACbC,aAAc,CACZ/B,OAhBUgC,GAANxB,EAiBJyB,OAAQ,UACRC,OAAQ,OACRC,OAAQ,GACRC,QAAS,EACTC,aAAc,EACdC,QAAS,QACTd,QAAS,OACTe,WAAY,UAEdC,QAAS,CACPxC,OAAQ2B,GAAOjE,GAAgBC,GAAoBI,IACnD,WAAY,CACV+B,MAAO5C,EACP,sBAAuB,CACrBsE,QAAS,QAEX,4BAA6B,CAC3BA,QAAS,SAGb,4BAA6B,CAC3BA,QAAS,SAGbiB,UAAW,CACTzC,OAAQ2B,GAAO5D,GAAUC,GAAcC,IACvC6B,MAAO5C,EACP,WAAY,CACV,sBAAuB,CACrBsE,QAAS,QAEX,4BAA6B,CAC3BA,QAAS,SAGb,sBAAuB,CACrBA,QAAS,QAEX,4BAA6B,CAC3BA,QAAS,SAGbkB,OAAQ,CACN1C,OAAQ2B,GAAOpE,GAAoBD,GAAgBE,IACnDsC,MAAO5C,EACP,WAAY,CACV,sBAAuB,CACrBsE,QAAS,QAEX,4BAA6B,CAC3BA,QAAS,SAGb,sBAAuB,CACrBA,QAAS,QAEX,4BAA6B,CAC3BA,QAAS,SAGbrE,OAAQ,CACN6C,OAAQ2B,GFlEI,UEkEmBxD,GFjEnB,WEkEZ2B,MAAO5C,EACP,WAAY,CACV,sBAAuB,CACrBsE,QAAS,QAEX,4BAA6B,CAC3BA,QAAS,SAGb,sBAAuB,CACrBA,QAAS,QAEX,4BAA6B,CAC3BA,QAAS,SAGbmB,iBAAkB,CAChBnB,QAAS,OACToB,aAAc,EACd,UAAW,CACTC,IAAK,CACHC,MAAO,GACPX,OAAQ,MAIdY,uBAAwB,I,QCnHpBC,GAAYC,YAAWC,IAmCdC,GAjCMC,gBACnB,YAAkE,IAAD,EAA9DC,EAA8D,EAA9DA,UAAWC,EAAmD,EAAnDA,KAAMC,EAA6C,EAA7CA,YAAazD,EAAgC,EAAhCA,MAAO0D,EAAyB,EAAzBA,SAAaC,EAAY,qEACzDC,EAAUV,KACVW,GAAU,mBACbD,EAAQ3B,cAAe,GADV,cAEb2B,EAAQlB,QAAoB,YAAV1C,GAFL,cAGb4D,EAAQjB,UAAsB,cAAV3C,GAHP,cAIb4D,EAAQhB,OAAmB,WAAV5C,GAJJ,cAKb4D,EAAQvG,OAAmB,WAAV2C,GALJ,GAQhB,OACE,kDAAQuD,UAAWO,IAAWD,EAAYN,IAAgBI,GAA1D,cACGH,GACC,sBAAKD,UAAWK,EAAQf,iBAAxB,SACE,eAACW,EAAD,MAGHC,GACC,sBACEF,UAAWO,IACTF,EAAQf,iBACRe,EAAQX,wBAHZ,SAKE,eAACQ,EAAD,MAGHC,GAAY,+BAAMA,WC7BrBR,GAAYC,YAAWC,IAE7B,SAASW,GAAT,GAA0D,IAAD,EAA3CL,EAA2C,EAA3CA,SAAU/B,EAAiC,EAAjCA,SAAU4B,EAAuB,EAAvBA,UAAcI,EAAS,mDACjDC,EAAUV,KACVW,GAAU,mBACbD,EAAQ3D,IAAK,GADA,cAEb2D,EAAQjC,SAAWA,GAFN,cAGb4B,IAAcA,GAHD,GAMhB,OACE,6CAAIA,UAAWO,IAAWD,IAAiBF,GAA3C,aACGD,KAKP,SAASM,GAAT,GAA0D,IAAD,EAA3CN,EAA2C,EAA3CA,SAAU/B,EAAiC,EAAjCA,SAAU4B,EAAuB,EAAvBA,UAAcI,EAAS,mDACjDC,EAAUV,KACVW,GAAU,mBACbD,EAAQtD,IAAK,GADA,cAEbsD,EAAQjC,SAAWA,GAFN,cAGb4B,IAAcA,GAHD,GAMhB,OACE,6CAAIA,UAAWO,IAAWD,IAAiBF,GAA3C,aACGD,KAKP,SAASO,GAAT,GAA0D,IAAD,EAA3CP,EAA2C,EAA3CA,SAAU/B,EAAiC,EAAjCA,SAAU4B,EAAuB,EAAvBA,UAAcI,EAAS,mDACjDC,EAAUV,KACVW,GAAU,mBACbD,EAAQrD,IAAK,GADA,cAEbqD,EAAQjC,SAAWA,GAFN,cAGb4B,IAAcA,GAHD,GAMhB,OACE,6CAAIA,UAAWO,IAAWD,IAAiBF,GAA3C,aACGD,KAKP,SAASQ,GAAT,GAA0D,IAAD,EAA3CR,EAA2C,EAA3CA,SAAU/B,EAAiC,EAAjCA,SAAU4B,EAAuB,EAAvBA,UAAcI,EAAS,mDACjDC,EAAUV,KACVW,GAAU,mBACbD,EAAQpD,IAAK,GADA,cAEboD,EAAQjC,SAAWA,GAFN,cAGb4B,IAAcA,GAHD,GAMhB,OACE,6CAAIA,UAAWO,IAAWD,IAAiBF,GAA3C,aACGD,KAKP,SAASS,GAAT,GAA0D,IAAD,EAA3CT,EAA2C,EAA3CA,SAAU/B,EAAiC,EAAjCA,SAAU4B,EAAuB,EAAvBA,UAAcI,EAAS,mDACjDC,EAAUV,KACVW,GAAU,mBACbD,EAAQnD,IAAK,GADA,cAEbmD,EAAQjC,SAAWA,GAFN,cAGb4B,IAAcA,GAHD,GAMhB,OACE,6CAAIA,UAAWO,IAAWD,IAAiBF,GAA3C,aACGD,KAKP,IAAMU,GAAIC,GAAS,KACbC,GAAQD,GAAS,SACjBE,GAAQF,GAAS,SACjBG,GAAQH,GAAS,SACjBI,GAAOJ,GAAS,QAChBK,GAAML,GAAS,OACfM,GAAMN,GAAS,OACfO,GAASP,GAAS,UAClBQ,GAASR,GAAS,UAClBS,GAAST,GAAS,UAExB,SAASA,GAASU,GAChB,OAAO,YAA0D,IAAD,EAAtDtD,EAAsD,EAAtDA,OAAQE,EAA8C,EAA9CA,SAAU4B,EAAoC,EAApCA,UAAWG,EAAyB,EAAzBA,SAAaC,EAAY,4DACxDC,EAAUV,KACVW,GAAU,mBACbN,IAAcA,GADD,cAEbK,EAAQmB,GAAgBA,GAFX,cAGbnB,EAAQnC,OAASA,GAHJ,cAIbmC,EAAQjC,SAAWA,GAJN,GAMhB,OACE,4CAAG4B,UAAWO,IAAWD,IAAiBF,GAA1C,aACGD,MCzGT,SAASsB,KAA2Q,OAA9PA,GAAWC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAASS,GAAyBP,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxMgB,CAA8BZ,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,UACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,uBACJK,UAAW,sCACXJ,OAAQ,UACRC,YAAa,GACC,gBAAoB,IAAK,CACvCF,GAAI,yBACJK,UAAW,qCACG,gBAAoB,OAAQ,CAC1CC,EAAG,uIACHN,GAAI,aACW,gBAAoB,OAAQ,CAC3CM,EAAG,yUACHN,GAAI,WACJO,eAAgB,aAGlB,SAASC,GAAsBC,EAAMC,GACnC,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQmC,GAAyBkB,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAOhC,GAAS,CACtDhC,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAIM,GAA0B,aAAiBT,IAChC,ICpDf,SAAS,KAA2Q,OAA9P,GAAW9B,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,0BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,SAAU,CAC5CJ,GAAI,cACJC,OAAQ,UACRC,YAAa,EACbG,UAAW,qFACXa,GAAI,EACJC,GAAI,EACJC,EAAG,KAGL,SAASC,GAASZ,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiBU,IAChC,IC7Cf,SAAS,KAA2Q,OAA9P,GAAW3C,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,0BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,SAAU,CAC5CJ,GAAI,cACJC,OAAQ,UACRI,UAAW,qFACXa,GAAI,EACJC,GAAI,EACJC,EAAG,KAGL,SAAS,GAASX,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB,IAChC,IC5Cf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,yBACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,SAAU,CAC5CJ,GAAI,cACJG,KAAM,UACNe,GAAI,EACJC,GAAI,EACJC,EAAG,IACY,gBAAoB,SAAU,CAC7CpB,GAAI,cACJC,OAAQ,UACRC,YAAa,EACbG,UAAW,qFACXa,GAAI,EACJC,GAAI,EACJC,EAAG,KAGL,SAASE,GAAQb,EAAMC,GACrB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiBW,IC4FhCzE,ID3FA,IC1CA,CACb0E,UAAW,CACT,6CAA8C,CAC5C9E,MAAO,QAETA,MAAO,OACPX,OAAQ,QACR0F,MAAO,EACPpK,gBAAiBP,EACjB4K,UAAW,kCAEbC,OAAQ,CACNvG,QAAS,OACTwG,eAAgB,iBAElBC,WAAY,CACVC,UAAW5I,GACX6I,WAAY7I,IAEd8I,cAAe,CACb5G,QAAS,OACT2G,WAAY7I,GACZ6C,OAAQ,GAEVkG,iBAAkB,gBAAGC,EAAH,EAAGA,aAAcC,EAAjB,EAAiBA,QAAjB,MAAgC,CAChDC,SAAU,WACVC,IAAKH,EAAeA,EAAaI,EAAI,EACrCC,KAAML,EAAeA,EAAaM,EAAIL,EAAU,EAChDtG,OAAQ,UACR4G,WAAY,cACZf,UAAW,0BACX5F,OAAQ,wBACR4G,WAAY,0BACZ1G,QAAS,SAEX2G,eAAgB,CACdb,WAAW,GACXC,WTaW,ESZX1K,gBAAiBX,GAEnBkM,kBAAmB,CACjB7G,OAAQ,OACR8G,UAAW,QACXf,UAAW5I,GACX6I,WAAY,EACZe,UAAW,OACXC,UAAW,SACX1L,gBAAiBP,EACjBkM,OAAQ,IAEVC,gBAAiB,CACf7H,QAAS,OACT8H,cAAe,MACftB,eAAgB,aAChBQ,SAAU,WACVe,aAAcjK,EACdkK,WAAYlK,GACZ,oBAAqB,CACnBmK,YAAa,IAEf,QAAS,CACPA,YAAa,IAEf,mBAAoB,CAClBA,YAAa,IAGjBC,oBAAqB,CACnBlI,QAAS,OACT8H,cAAe,SACftB,eAAgB,SAChBlF,MAAO,KAET6G,OAAQ,CACNlM,gBAAiBb,GAEnBgN,oBAAqB,CACnBC,UAAW,SACX,QAAS,CACP1B,WAAY7I,KAGhBwK,gBAAiB,CACfC,SAAU,GAEZC,WAAY,CACV9B,UAAW,EACXpF,MAAO,OACPX,OAAQ,OACR1E,gBAAiBH,GACjB+E,aAAc,MACdJ,OAAQ,UACRmH,OAAQ,GAEVa,SAAU,CACR9B,WT7CW,ES8CXD,UAAW,EACXpF,MAAO,OACPX,OAAQ,OACRD,OAAQ,CAAC,CAAC,EAAG,QAASxF,IACtB2F,aAAc,MACdJ,OAAQ,UACRmH,OAAQ,GAEVc,kBAAmB,CACjBxI,OAAQ,EACR5B,MAAOpD,GAETyN,iBAAkB,CAChBzI,OAAQ,GAEV0I,qBAAsB,CACpB1I,OAAQ,EACR6H,aT/DW,ESgEXzJ,MAAOpD,GAET2N,QAAS,CACP7B,SAAU,WACVrG,OAAQ,OACRsG,IAAK,MACL6B,QAAS,OAEXC,UAAW,CACT/B,SAAU,WACVC,IAAK,EACLE,KAAM,GACN7F,MAAO,MACPX,OAAQ,MACR1E,gBAAiBH,GACjB+E,aAAc,S,qBC1IlB,SAAS,KAA2Q,OAA9P,GAAW0C,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,8BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,IAAK,CACvCP,GAAI,oCACJK,UAAW,uCACXJ,OAAQ,WACM,gBAAoB,IAAK,CACvCD,GAAI,UACJK,UAAW,oCACG,gBAAoB,IAAK,CACvCL,GAAI,uBACJK,UAAW,oCACG,gBAAoB,OAAQ,CAC1CC,EAAG,kqBACHN,GAAI,iBAGN,SAASoE,GAAU3D,EAAMC,GACvB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiByD,IAChC,IClDf,SAAS,KAA2Q,OAA9P,GAAW1F,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,8BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,IAAK,CACvCP,GAAI,kDACJK,UAAW,uCACXJ,OAAQ,WACM,gBAAoB,IAAK,CACvCD,GAAI,UACJK,UAAW,oCACG,gBAAoB,IAAK,CACvCL,GAAI,UACJK,UAAW,oCACG,gBAAoB,IAAK,CACvCL,GAAI,WACU,gBAAoB,OAAQ,CAC1CqE,GAAI,EACJC,GAAI,EACJC,GAAI,GACJC,GAAI,EACJxE,GAAI,WACW,gBAAoB,WAAY,CAC/CA,GAAI,SACJyE,OAAQ,oBACQ,gBAAoB,IAAK,CACzCzE,GAAI,UACJK,UAAW,8GACG,gBAAoB,OAAQ,CAC1CgE,GAAI,EACJC,GAAI,EACJC,GAAI,GACJC,GAAI,EACJxE,GAAI,gBACW,gBAAoB,WAAY,CAC/CA,GAAI,cACJyE,OAAQ,wBAGV,SAASC,GAAejE,EAAMC,GAC5B,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiB+D,IAChC,ICtEf,SAAS,KAA2Q,OAA9P,GAAWhG,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,UACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,4BACU,gBAAoB,OAAQ,CAC1CA,GAAI,YACJC,OAAQ,UACRC,YAAa,EACbqC,EAAG,EACHF,EAAG,EACH5F,MAAO,GACPX,OAAQ,GACR6I,GAAI,KACW,gBAAoB,OAAQ,CAC3CrE,EAAG,8MACHN,GAAI,IACJG,KAAM,UACNC,SAAU,cAGZ,SAASwE,GAAUnE,EAAMC,GACvB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,I,SAAI,GAA0B,aAAiBiE,ICxCzCjI,IDyCS,ICzCGC,YAAWC,KAEvBgI,GAAQ,CACZC,YAAa,CACX3J,QAAS,eACT4J,KAAM,eAAC,GAAD,CAAajJ,OAAQ,GAAIW,MAAO,MAExCuI,qBAAsB,CACpB7J,QAAS,eACT4J,KAAM,eAAC,GAAD,CAAajJ,OAAQ,GAAIW,MAAO,MAExCwI,YAAa,CACX9J,QAAS,cACT4J,KAAM,eAAC,GAAD,CAAQjJ,OAAQ,GAAIW,MAAO,MAEnCyI,cAAe,CACb/J,QAAS,cACT4J,KAAM,eAAC,GAAD,CAAQjJ,OAAQ,GAAIW,MAAO,MAEnC0I,WAAY,CACVhK,QAAS,aACT4J,KAAM,eAAC,GAAD,CAAajJ,OAAQ,GAAIW,MAAO,MAExC2I,MAAO,CAAEjK,QAAS,QAAS4J,KAAM,eAAC,GAAD,CAAajJ,OAAQ,GAAIW,MAAO,OA6DpD4I,GA1DS,SAAC,GAUlB,IAAD,MATJrF,EASI,EATJA,GACAsF,EAQI,EARJA,KAEAC,GAMI,EAPJC,OAOI,EANJD,SACAE,EAKI,EALJA,WACAC,EAII,EAJJA,QACAC,EAGI,EAHJA,KACAC,EAEI,EAFJA,MACAC,EACI,EADJA,YAEMxI,EAAUV,KAEVmJ,EAAW,UAAGC,IAAO,CAACT,EAAM,WAAdS,CAA0BlB,WAA7B,QAAuC,KAClDE,EAAI,UAAGgB,IAAO,CAACT,EAAM,QAAdS,CAAuBlB,WAA1B,QACR,eAAC,GAAD,CAAQ/I,OAAQ,GAAIW,MAAO,KAEvBuJ,EAAMC,MAAS,IAAIC,MAAOC,UAAY,IAAID,KAAKR,GAASS,UAAW,CACvEC,SAAS,EACTC,SAAS,IAELxC,EACJiC,GAAeL,EAAf,UACOK,EADP,cACwBL,GACpB,WAACK,GAAeL,EACbA,EACAK,GAEHQ,GAAS,mBACZjJ,EAAQuG,SAAW+B,GADP,cAEZtI,EAAQsG,YAAcgC,GAFV,GAIf,OACE,uBACE3I,UAAWO,IACTF,EAAQ2F,iBACP2C,GAAQC,EAAQvI,EAAQiG,OAAS,IAHtC,UAKE,sBAAKtG,UAAWK,EAAQkG,oBAAxB,SACE,+BAAMwB,MAER,uBAAK/H,UAAWK,EAAQgG,oBAAxB,UACE,eAAC/E,GAAD,CAAQtB,UAAWK,EAAQwG,kBAA3B,SACGA,IAEH,eAACzF,GAAD,CAAKpB,UAAWK,EAAQyG,iBAAxB,SAA2CyB,IAC3C,eAAClH,GAAD,CAAQrB,UAAWK,EAAQ0G,qBAA3B,SAAkDiC,OAEpD,sBAAKhJ,UAAWK,EAAQoG,gBAAxB,SACE,sBACE8C,QAAS,kBAAMV,EAAY7F,IAC3BhD,UAAWO,IAAW+I,WCzE1B3J,GAAYC,YAAWC,IAEvB2J,GAAoBC,IAAH,qQAmBjBC,GAA4BD,IAAH,sLASzBE,GAA0BF,IAAH,qHC7CdG,GDqDY,SAAC,GAMrB,IAAD,IALJC,EAKI,EALJA,MACAC,EAII,EAJJA,cACA7E,EAGI,EAHJA,aACA8E,EAEI,EAFJA,UACAC,EACI,EADJA,uBACI,EACsBC,YAAST,GAAmB,CACpDU,aAAc,MADRC,EADJ,EACIA,KAAMC,EADV,EACUA,QADV,EAI0BC,mBAAS,KAJnC,mBAIGnF,EAJH,KAIYoF,EAJZ,OAMsCD,oBAAS,GAN/C,mBAMGE,EANH,KAMkBC,EANlB,KAOEnK,EAAUV,GAAU,CAAEsF,eAAcC,YACpCuF,EAAW1B,IACfA,IAAMA,IAAO,SACbA,IAAUA,IAAO,aAFFA,CAAA,UAGfA,IAAO,CAAC,YAARA,CAAqBoB,UAHN,QAGe,IAC1BO,EAAa,UAAG3B,IAAO,CAAC,iBAARA,CAA0BoB,UAA7B,QAAsC,GAZrD,EAa8BE,mBAASP,GAbvC,mBAaG5C,EAbH,KAacyD,EAbd,OAe8BC,YAAYlB,GAA2B,CACvEmB,QAAS,kBAAMC,QAAQ1C,MAAM,sCAC7B2C,eAAgB,iBAAM,CAAC,uBAFlBC,EAfH,sBAmB4BJ,YAAYjB,GAAyB,CACnEkB,QAAS,kBAAMC,QAAQ1C,MAAM,2CAC7B2C,eAAgB,iBAAM,CAAC,uBAFlBE,EAnBH,oBAwBJC,qBAAU,WACRZ,EAAWP,EAAUoB,QAAQC,wBAAwB7F,GACjD4E,GAAQA,EAAKkB,yBAA2BnE,IAC1C8C,IACAW,GAAczD,MAEf,CAAC6C,EAAWI,EAAMjD,EAAW8C,IA6BhC,OACE,qCACE,uBAAKhK,UAAWK,EAAQkE,UAAxB,UACE,uBAAKvE,UAAWK,EAAQqE,OAAxB,UACE,eAAC9D,GAAD,CAAIZ,UAAWK,EAAQuE,WAAvB,2BACA,0BAAQ2E,QAASM,EAAO7J,UAAWK,EAAQ2E,iBAA3C,UACE,eAAC,GAAD,IACCkC,GAAa,sBAAKlH,UAAWK,EAAQ6G,kBAG1C,uBAAKlH,UAAWK,EAAQ0E,cAAxB,UACGmC,GACC,eAAC,GAAD,CACEzK,MAAM,UACNwD,KAAMqL,GACNpL,YAAaqL,GACbvL,UAAWK,EAAQqF,eACnB6D,QAAS,kBAAMiB,GAAkBD,IALnC,SAMGA,EAAgB,WAAa,gBAGjCrD,GACC,eAAC,GAAD,CACEzK,MAAM,UACNwD,KAAMuL,GACNtL,YAAaqL,GACbvL,UAAWK,EAAQqF,eACnB6D,QAAS0B,EALX,iCAUJ,sBAAKjL,UAAWK,EAAQsF,kBAAxB,UACIyE,IA1DLG,GAAkBrD,EAEf6B,IAASA,IAAS,QAAQ,GAA1BA,CAAkC2B,GADlCA,GAEqBe,KAAI,SAAAC,GAC7B,OACE,eAAC,GAAD,CAEE1I,GAAI0I,EAAE1I,GACNsF,KAAMoD,EAAEpD,KACRE,OAAQkD,EAAElD,OACVD,QAASmD,EAAEnD,QACXE,WAAYgC,EAASiB,EAAElD,OAAOmD,UAC9BjD,QAASgD,EAAEhD,QACXC,KAAM+C,EAAE/C,KACRC,MAAO8C,EAAE9C,MACTC,YAAa,kBACXmC,EAAwB,CACtBY,UAAW,CAAE5I,GAAI0I,EAAE1I,GAAI2F,MAAO+C,EAAE/C,UAX/B+C,EAAE1I,e,kGE7FXrD,GAAYC,YAAW,CAC3B+D,MAAO,CACLkB,UAAW5I,GACXiK,aAAcjK,MASH4P,GALD9L,gBAAK,YAAmB,IAAhBI,EAAe,EAAfA,SACdE,EAAUV,KAChB,OAAO,eAACa,GAAD,CAAIR,UAAWK,EAAQsD,MAAvB,SAA+BxD,OChBxC,SAAS,KAA2Q,OAA9P,GAAWuB,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,yBACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,OAAQ,CAC1CD,EAAG,gQACHN,GAAI,WACJC,OAAQ,YACO,gBAAoB,OAAQ,CAC3CoE,GAAI,EACJC,GAAI,WACJC,GAAI,EACJC,GAAI,WACJxE,GAAI,WACJC,OAAQ,YACO,gBAAoB,OAAQ,CAC3CoE,GAAI,WACJC,GAAI,EACJC,GAAI,WACJC,GAAI,EACJxE,GAAI,WACJC,OAAQ,aAGV,SAAS,GAAUQ,EAAMC,GACvB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB,IC9CzC9D,ID+CS,IC/CA,CACbiM,OAAQ,CACNnP,OAJUgC,GAANxB,EAKJ0B,OAAQ,OACRzE,gBAAiBX,EACjBmF,OAAQ,UACRG,QAAS,EACTZ,QAAS,OACTwG,eAAgB,SAChBzF,WAAY,SACZO,MAAO,IACPX,OAAQ,GACRrC,MAAOhC,GACP,UAAW,CACTL,gBAAiBV,GAEnB,WAAY,CACVU,gBAAiBf,EACjBoD,MAAO5C,EACP,YAAa,CACXoJ,OAAQpJ,IAGZ,QAAS,CACPuM,YAAa,MAKbzG,GAAYC,YAAWC,IAadkM,GAXMhM,gBAAK,YAAwC,IAArCC,EAAoC,EAApCA,UAAWG,EAAyB,EAAzBA,SAAaC,EAAY,wCACzDC,EAAUV,KAEhB,OACE,kDAAQK,UAAWO,IAAWF,EAAQyL,OAAQ9L,IAAgBI,GAA9D,cACE,eAAC,GAAD,IACCD,SClCCzD,GAAWiC,GAAXjC,GAAIM,GAAO2B,GAAP3B,GAENgP,GAAW,SAAAC,GACf,OAAQA,GACN,IAAK,KACH,OAAOhQ,GACT,IAAK,KACH,OAAOA,GACT,IAAK,KACL,QACE,OAAOA,KAIE,IACbiQ,QAAS,YAAe,IAAZD,EAAW,EAAXA,KACJnN,EAASkN,GAASC,GAExB,MAAO,CAAEnN,OAAQA,EADEA,EAAS,GACW,IAEzCgN,OAAQ,YAAgC,IAA7BG,EAA4B,EAA5BA,KAAM7R,EAAsB,EAAtBA,gBACT0E,EAASkN,GAASC,GAClBE,EAAsB,OAATF,EAAgB,EAAInN,EAAS,GAE1CsN,EAA6B,SAApBhS,EAEf,MAAO,CACLuC,OAAiB,OAATsP,EAAgBvP,GAAKM,GAC7B6B,OAAQ,OACRpC,MAAO5C,EACP+E,OAAQ,UACR9B,WAAY,IACZiC,QAAS,EACT3E,gBAAiBgS,EAASzR,GAAeV,GACzC,aAAc,CACZG,gBAAiBG,GACjBkK,UAAW,OACX,UAAW,CACTrK,gBAAiBG,GACjBkK,UAAW,QAEb,WAAY,CACVI,UAAW,IAGfsH,aACArN,SACAG,QAAQ,KAAD,OAxBgB,OAATgN,EAAgB,GAAKnN,EAAS,EAwBrC,MACPE,aAAcF,EAAS,EACvB2F,UAAU,KAAD,OAAO0H,EAAP,cAAuBC,EAAS1R,GAAWR,IACpD,UAAW,CACTE,gBAAiBgS,EAAS1R,GAAWR,GACrCuK,UAAU,KAAD,OAAO0H,EAAP,cACPC,EAASxR,GAAiBT,KAG9B,WAAY,CACV0K,UAAWsH,EAAa,EACxB/R,gBAAiBgS,EAASzR,GAAeT,GACzCuK,UAAU,KAAD,OAAO0H,EAAa,EAApB,cACPC,EAASxR,GAAiBT,QCnE9BwF,GAAYC,YAAWC,IAwBdC,GAtBMC,gBACnB,YAOO,IAAD,IANJkM,YAMI,MANG,KAMH,EALJ9L,EAKI,EALJA,SACAH,EAII,EAJJA,UACAqM,EAGI,EAHJA,gBACAjS,EAEI,EAFJA,gBACGgG,EACC,mFACEC,EAAUV,GAAU,CAAEsM,OAAM7R,oBAClC,OACE,sBAAK4F,UAAWO,IAAWP,EAAWK,EAAQ6L,SAA9C,SACE,iDACElM,UAAWO,IAAW8L,EAAiBhM,EAAQyL,SAC3C1L,GAFN,aAGGD,UCdL7B,GAAS,SAACC,EAAQC,EAAQC,GAC9B,MAAO,CACLrE,gBAAiBmE,EACjB,UAAW,CACTnE,gBAAiBoE,GAEnB,WAAY,CACVpE,gBAAiBqE,KAOR,IACb6N,WAAY,CACV3P,OAAQ2B,GAAOjE,GAAgBC,GAAoBI,IACnDkE,OAAQ,UACRC,OAAQ,OACRE,QAAS,EACTD,OARiB,GASjBrC,MAAOhC,GACP,WAAY,CACVgC,MAAO5C,IAGXsF,QAAS,CACPxC,OAAQ2B,GAAOjE,GAAgBC,GAAoBI,IACnD,WAAY,CACV+B,MAAO5C,EACP,gBAAiB,CACfsE,QAAS,QAEX,sBAAuB,CACrBA,QAAS,UAGb,sBAAuB,CACrBA,QAAS,SAGbiB,UAAW,CACTzC,OAAQ2B,GAAO5D,GAAUC,GAAcd,GACvC4C,MAAO5C,EACP,WAAY,CACV4C,MAAOhC,GACP,gBAAiB,CACf0D,QAAS,QAEX,sBAAuB,CACrBA,QAAS,SAGb,gBAAiB,CACfA,QAAS,QAEX,sBAAuB,CACrBA,QAAS,UC5DPmO,GAAwBC,GAAxBD,WAAYnN,GAAYoN,GAAZpN,QAEdU,GAAS,CACb2M,cAAe,CACb7P,OAAQ2P,GACR7M,MAAO6M,GAAWxN,OAClBE,aAAcsN,GAAWxN,OAAS,EAClCX,QAAS,OACTc,QAAS,GAEXE,WACAsN,WAAY,CACVpO,OAAQ,OACR,QAAS,CACPoB,MAAO,GACPX,OAAQ,GACR4N,SAAU,UACV,MAAO,CACLxJ,YAAa,OAInByJ,iBAAkB,IAGdhN,GAAYC,YAAWC,IAiCd+M,GA/BO7M,gBACpB,YAA2D,IAAD,EAAvDC,EAAuD,EAAvDA,UAAWC,EAA4C,EAA5CA,KAAMC,EAAsC,EAAtCA,YAAaC,EAAyB,EAAzBA,SAAaC,EAAY,6DAClDC,EAAUV,KAEVW,GAAU,mBACbD,EAAQmM,eAAgB,GADX,cAEbnM,EAAQlB,SAAU,GAFL,GAKhB,OACE,kDAAQa,UAAWO,IAAWD,EAAYN,IAAgBI,GAA1D,cACGH,GACC,sBAAKD,UAAWK,EAAQoM,WAAxB,SACE,eAACxM,EAAD,MAGHC,GACC,sBACEF,UAAWO,IACTF,EAAQoM,WACRpM,EAAQsM,kBAHZ,SAKE,eAACzM,EAAD,MAGHC,S,oBC8FM0M,GAjJC,SAAC,GAMV,IAAD,EALJ1M,EAKI,EALJA,SAKI,IAJJ2M,eAII,MAJMjT,EAIN,MAHJkT,iBAGI,MAHQ,EAGR,EAFJ/M,EAEI,EAFJA,UACGI,EACC,gEAC4BiK,mBAAS,MADrC,mBACG2C,EADH,KACaC,EADb,KAGEpN,EAAS,CACbqN,QAAS,CACPnH,OAAQ,IACR3L,gBAAiB0S,EACjB9N,aAAc,GAEhBmO,MAAO,CACLhI,SAAU,WACVvI,SAAUmQ,EACVtN,MAAO,MACPX,OAAQ,OAEVsO,YAAa,CACXhI,IAAK,EACL3F,MAAO,EACPX,OAAQ,EACRuO,WAAY,CAAC,CAAC,MAAO,QAAS,gBAC9BC,YAAa,CAAC,CAAC,MAAO,QAAS,gBAC/BC,aAAc,CAAC,CAAC,MAAO,QAAST,IAChCjI,UAAW,SACX,UAAW,CACTkB,QAAS,GACTyH,QAAS,KACTrI,SAAU,WACV1F,MAAmB,EAAZsN,EACPjO,OAAoB,EAAZiO,EACRjI,WAAY,EACZ2I,OAAQ,EACRrI,IAAK,kBACLE,KAAM,EACNzG,OAAQ,iBACR6O,YAAa,oCACbC,gBAAiB,MACjBtK,UAAW,gBACXoB,UACE,uGAGNmJ,SAAU,CACRH,OAAQ,EACRhO,MAAO,EACPX,OAAQ,EACRuO,WAAY,CAAC,CAAC,MAAO,QAAS,gBAC9BC,YAAa,CAAC,CAAC,MAAO,QAAS,gBAC/BO,UAAW,CAAC,CAAC,MAAO,QAASf,IAC7B5G,aAAc,SACd,UAAW,CACTH,QAAS,GACTyH,QAAS,KACTrI,SAAU,WACV1F,MAAmB,EAAZsN,EACPjO,OAAoB,EAAZiO,EACRjI,WAAY,EACZ2I,OAAQ,EACRrI,MAAmB,EAAZ2H,EAAgB,GACvBzH,KAAM,EACNzG,OAAQ,iBACR6O,YAAa,oCACbC,gBAAiB,MACjBtK,UAAW,gBACXoB,UACE,uGAGNqJ,WAAY,CACVxI,KAAM,EACN7F,MAAO,EACPX,OAAQ,EACR+O,UAAW,CAAC,CAAC,MAAO,QAAS,gBAC7BN,aAAc,CAAC,CAAC,MAAO,QAAS,gBAChCD,YAAa,CAAC,CAAC,MAAO,QAASR,IAC/BhI,WAAY,UAEdiJ,UAAW,CACTvJ,MAAO,EACP/E,MAAO,EACPX,OAAQ,EACR+O,UAAW,CAAC,CAAC,MAAO,QAAS,gBAC7BN,aAAc,CAAC,CAAC,MAAO,QAAS,gBAChCF,WAAY,CAAC,CAAC,MAAO,QAASP,IAC9B1G,YAAa,UAEf4H,KAAM,CACJ5T,gBAAiB0S,IAMfzM,EAFYT,YAAWC,EAEbF,GAEVsO,GAAY,mBACf5N,EAAQ8M,OAAQ,GADD,cAEf9M,EAAQ+M,YAAkC,WAApBhN,EAAM8N,WAFb,cAGf7N,EAAQuN,SAA+B,QAApBxN,EAAM8N,WAHV,cAIf7N,EAAQyN,WAAiC,UAApB1N,EAAM8N,WAJZ,cAKf7N,EAAQ0N,UAAgC,SAApB3N,EAAM8N,WALX,GAQZC,EAAYpF,KAAQ3I,EAAM+N,UAAW,CACzCC,KAAM,CACJC,SAAS,GAEXC,gBAAiB,CACfD,SAAS,EACTE,kBAAmB,gBAErBC,OAAQ,CACNH,SAAS,EACTG,OAAQ,SAEVrB,MAAO,CACLkB,SAAS,EACTI,QAASzB,GAEX0B,aAAc,CACZC,iBAAiB,KAIrB,OACE,qCACE,eAAC,IAAD,yBACEC,eAAe,EACfT,UAAWA,EACXnO,UAAWK,EAAQ6M,SACf9M,GAJN,aAKE,gBAACyO,GAAA,EAAD,CAAO7O,UAAWO,IAAWF,EAAQ2N,KAAMhO,GAA3C,UACE,uBAAMA,UAAWO,IAAW0N,GAAejK,IAAKiJ,IAC/C9M,WCpIH5C,GAAUoB,GAAVpB,MAEFe,GAAS,SAACC,EAAQC,EAAQC,GAC9B,MAAO,CACLrE,gBAAiBmE,EACjB,UAAW,CACTnE,gBAAiBoE,GAEnB,WAAY,CACVpE,gBAAiBqE,KAKjBoB,GAAS,CACbiP,SAAU,CACRrP,MAAO,GACPX,OAAQ,GACRX,QAAS,OACTa,aAAc,EACdC,QAAS,EACTJ,OAAQ,OACRD,OAAQ,WAEV6N,WAAY,CACVpO,OAAQ,OACR7B,WAAY,EACZ,QAAS,CACPkQ,SAAU,YAGdqC,OAAQ,CACNpS,OAAQ2B,GAAOjE,GAAgBC,GAAoBI,KAErDsU,KAAM,CACJrS,OAAQ2B,GAAO5D,GAAUA,GAAUA,KAErCuU,eAAgB,CACdtS,OAAQY,GACR0B,QAAS,EACTd,QAAS,OACTwG,eAAgB,SAChBzF,WAAY,SACZF,aAAc,EACd,QAAS,CACP4G,UAAW,OAKXjG,GAAYC,YAAWC,IA4EdqP,GA1EEnP,gBACf,YASO,IAAD,EARJoP,EAQI,EARJA,KACAnP,EAOI,EAPJA,UACAC,EAMI,EANJA,KACAC,EAKI,EALJA,YAEAC,GAGI,EAJJiP,aAII,EAHJjP,UACAkP,EAEI,EAFJA,iBACGjP,EACC,wGAC4BiK,mBAAS,MADrC,mBACGiF,EADH,KACaC,EADb,KAGElP,EAAUV,KAEVqP,EAAOQ,QAAQF,GACftM,EAAKgM,EAAI,wBAAoBG,QAASM,EAEtCnP,GAAU,mBACbD,EAAQyO,UAAW,GADN,cAEbzO,EAAQlB,SAAU,GAFL,cAGbkB,EAAQ2O,KAAOA,GAHF,cAIb3O,EAAQ0O,QAAUC,GAJL,GAOVU,EAAc,eACjBrP,EAAQoM,YAAa,GAOlBkD,EAAc,WAClBJ,EAAY,OAGd,OACE,uCACE,eAACK,EAAA,EAAD,CAAmBC,YAAaF,EAAhC,SACE,kDACEG,mBAAkB9M,EAClBuG,QAbY,SAAAwG,GAClBR,EAAYD,EAAW,KAAOS,EAAMC,gBAa9BhQ,UAAWO,IAAWD,EAAYN,IAC9BI,GAJN,cAKGH,IAAS+O,GACR,sBAAKhP,UAAWO,IAAWmP,GAA3B,SACE,eAACzP,EAAD,MAGHC,GAAe8O,GACd,sBAAKhP,UAAWO,IAAWmP,GAA3B,SACE,eAACxP,EAAD,YAKR,eAAC,GAAD,CACEF,UAAWqP,EACXrM,GAAIA,EACJgM,KAAMA,EACNM,SAAUA,EACVW,QAASN,EACT5C,UAAW,EACXmB,UAAU,MAPZ,SAQE,sBAAKlO,UAAWK,EAAQ4O,eAAxB,SACE,+BAAM9O,cC9HZN,GAAS,CACbqQ,MAAO,gBAAGjE,EAAH,EAAGA,KAAH,MAAe,CACpBxM,MAAOwM,EACPnN,OAAQmN,IAEV+B,KAAM,CACJ,QAAS,CACPmC,KAAM,GAER,UAAW,CACT/V,gBAAiB,WAEnB,eAAgB,CACd6I,OAAQ5J,GAEV,kBAAmB,CACjB4J,OAAQ5J,GAEV,eAAgB,CACd4J,OAAQ5J,KAKRsG,GAAYC,YAAWC,IAgBduQ,GAdI,SAAC,GAA2C,IAAzCnE,EAAwC,EAAxCA,KAAM9L,EAAkC,EAAlCA,SAAUoJ,EAAwB,EAAxBA,QAAYnJ,EAAY,6CACtDC,EAAUV,GAAU,CAAEsM,SAC5B,OACE,eAAC,KAAD,2BACM7L,GADN,IAEE6L,KAAK,QACL5L,QAAS,CAAE2N,KAAM3N,EAAQ2N,KAAMkC,MAAO7P,EAAQ6P,OAC9CG,eAAa,EACb9G,QAASA,EALX,SAMGpJ,M,UC5BD1D,GAAQ,SAAAA,GAAK,MAAK,CACtBgI,UAAU,oBAAD,OAAsB6L,gBAAK7T,EAAO,KAC3C,UAAW,CACTgI,UAAW,OACXrK,gBAAiBkW,gBAAK7T,EAAO,OAIlB,IACb8T,KAAM,CACJ5T,OAZWgC,GAAP1B,GAaJuT,eAAgB,OAChB3R,OAAQ,OACRzE,gBAAiB,cACjBwE,OAAQ,UACRK,QAAS,IACTH,OAAQ,QAEVK,QAAS,CACPxC,OAAQF,GAAMxB,KAEhBmE,UAAW,CACTzC,OAAQF,G1B8Be3C,W0B7BvB,UAAW,CACT2C,MAAO5C,IAGX4W,QAAS,CACP9T,OAAQF,GAAM5C,IAEhB6W,OAAQ,CACN/T,OAAQF,GAAMxB,IACdwB,MAAOhD,ICtCLkG,GAAYC,YAAWC,IAwBd8Q,GAtBF5Q,gBACX,YAAmE,IAAD,EAA/D6Q,EAA+D,EAA/DA,OAAQ5Q,EAAuD,EAAvDA,UAAWG,EAA4C,EAA5CA,SAA4C,IAAlC1D,aAAkC,MAA1B,UAA0B,EAAZ2D,EAAY,yDAC1DC,EAAUV,KACVW,GAAU,mBACbD,EAAQkQ,MAAO,GADF,cAEblQ,EAAQlB,QAAoB,YAAV1C,GAFL,cAGb4D,EAAQjB,UAAsB,cAAV3C,GAHP,cAIb4D,EAAQoQ,QAAoB,YAAVhU,GAJL,cAKb4D,EAAQqQ,OAAmB,WAAVjU,GALJ,GAQhB,OACE,iDACE6L,KAAMsI,EAAS,SAAW,SAC1B5Q,UAAWO,IAAWD,EAAYN,IAC9BI,GAHN,aAIGD,QClBDmM,GAAwBC,GAAxBD,WAAYnN,GAAYoN,GAAZpN,QAEdU,GAAS,CACbiM,OAAQ,CACNnP,OAAQ2P,GACRtN,aAAcsN,GAAWxN,OAAS,EAClCC,QAAS,EACTE,QAAS,UAEXE,WACAsN,WAAY,CACV5H,UAAW,EACXuB,YAAa,EACb,QAAS,CACP3G,MAAO,GACPX,OAAQ,GACR4N,SAAU,YAGdC,iBAAkB,IAGF/M,YAAWC,IC5B7B,SAAS,KAA2Q,OAA9P,GAAW6B,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,2BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,IAAK,CACvCP,GAAI,UACJK,UAAW,gCACXJ,OAAQ,WACM,gBAAoB,OAAQ,CAC1CoE,GAAI,GACJC,GAAI,EACJC,GAAI,EACJC,GAAI,GACJxE,GAAI,aACW,gBAAoB,OAAQ,CAC3CqE,GAAI,EACJC,GAAI,EACJC,GAAI,GACJC,GAAI,GACJxE,GAAI,eAGN,SAAS6N,GAASpN,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiBkN,ICnDvCvE,IDoDO,ICpDQC,GAAfD,YAEO,IACbR,OAAQ,CACNnP,OAAQ2P,GACRrN,QAAS,EACTxC,MAAO5C,EACPmF,aAAcsN,GAAWxN,OAAS,GAEpCgS,aAAc,CACZrR,MAAO6M,GAAWxN,QAEpBiS,aAAc,CACZ5S,QAAS,OACT8H,cAAe,MACf/G,WAAY,SACZ9E,gBAAiBM,GACjBoC,WAAY,OACZmC,QAAS,QACT,UAAW,CACT7E,gBAAiBM,KAGrB+R,WAAY,CACVhN,MAAO,GACPX,OAAQ,GACR4N,SAAU,UACV,MAAO,CACLxJ,YAAa,MAGjB8N,qBAAsB,CACpB5K,YAAa,GACbtB,WAAY,GAEdmM,sBAAuB,CACrB7K,YAAa,EACbtB,WAAY,IAEdjL,MAAO,CACL4C,MAAO5C,IClCL8F,GAAYC,YAAWsR,IAyDdC,GAvDOpR,gBACpB,YAOO,IAAD,EANJC,EAMI,EANJA,UACAC,EAKI,EALJA,KACAC,EAII,EAJJA,YACAkR,EAGI,EAHJA,OAGI,IAFJC,oBAEI,SADJlR,EACI,EADJA,SACI,EACwBkK,oBAAS,GADjC,mBACGiH,EADH,KACWC,EADX,KAEEC,GAAWH,GAAuBC,EAClCjR,EAAUV,KACVW,GAAU,mBACbD,EAAQyL,QAAS,GADJ,cAEbzL,EAAQyQ,cAAgBU,GAFX,cAGbnR,EAAQ0Q,aAAeS,GAHV,GAMVV,EAAe,eAAC7Q,EAAD,CAAMD,UAAWK,EAAQoM,aAExCsE,EACJ,uCACE,eAAC7Q,EAAD,CACEF,UAAWO,IACTF,EAAQoM,WACRpM,EAAQ2Q,wBAGZ,eAACrQ,GAAD,CAAIX,UAAWK,EAAQxG,MAAvB,SAA+BsG,IAC/B,eAAC,GAAD,CACEH,UAAWO,IACTF,EAAQoM,WACRpM,EAAQ4Q,4BAahB,OACE,yBACEjR,UAAWO,IAAWD,EAAYN,GAClCuJ,QAVgB,WAClB8H,GAAe,EACf,IAAMI,GAAkBD,EACxBJ,EAAOK,GACPF,EAAUE,IAIV,SAGGD,EAAWT,EAAeD,OC5DnC,SAAS,KAA2Q,OAA9P,GAAWpP,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,kCACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,WAAY,CAC9CP,GAAI,WACJC,OAAQ,UACRC,YAAa,EACbuE,OAAQ,0DACO,gBAAoB,WAAY,CAC/CzE,GAAI,WACJC,OAAQ,UACRC,YAAa,EACbuE,OAAQ,sCACO,gBAAoB,OAAQ,CAC3CJ,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,EACJxE,GAAI,WACJC,OAAQ,UACRC,YAAa,KAGf,SAAS,GAASO,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB,IAChC,ICzDf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,mCACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,IAAK,CACvCP,GAAI,UACJK,UAAW,gCACXJ,OAAQ,UACRC,YAAa,GACC,gBAAoB,WAAY,CAC9CF,GAAI,WACJyE,OAAQ,0DACO,gBAAoB,WAAY,CAC/CzE,GAAI,WACJyE,OAAQ,sCACO,gBAAoB,OAAQ,CAC3CJ,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,EACJxE,GAAI,eAGN,SAAS,GAAUS,EAAMC,GACvB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB,IC/CzChE,IDgDS,IChDGC,YAAW,CAC3BlB,aAAc,CACZwH,aAAcjK,IAEhByV,iBAAkB,CAChBlB,eAAgB,OAChB/T,MAAOzC,MAuBI2X,GAnBW,SAAC,GAAqB,IAAnBpB,EAAkB,EAAlBA,KAAML,EAAY,EAAZA,MAC3B7P,EAAUV,KAChB,OACE,oBACEK,UAAWK,EAAQqR,iBACnB9P,OAAO,SACPgQ,IAAI,sBACJC,KAAMtB,EAJR,SAKE,eAAC,GAAD,CACEvQ,UAAWK,EAAQ3B,aACnBjC,MAAM,UACNwD,KAAM6R,GACN5R,YAAa6R,GAJf,SAKG7B,O,0FCrBH8B,GAAS,SAAA/F,GACb,OAAQA,GACN,IAAK,KACH,MAAO,CAAErP,SAAUjB,IACrB,IAAK,KACH,MAAO,CAAEiB,SAAUf,GAAiBiB,WnC2Ed,KmC1ExB,QACE,MAAO,CAAEF,SAAUhB,MAInBqW,GAAO,CACXnV,WnCoE0B,KoCvFb,IACbmP,KAAM,gBAAGA,EAAH,EAAGA,KAAH,oBACJpH,UAAoB,OAAToH,EAAgB,EAAI,GAC5B+F,GAAO/F,KAEZgG,QACAjE,KAAM,kBAA2B,CAC/BvO,MADI,EAAGA,MAEP,UAAW,CACTyS,UAHE,EAAUA,aAMhBC,UAAW,CACT,WAAY,CACVC,kBAAmBnY,IAErB,qCAAsC,CACpCmY,kBAAmBnY,MCZnB0F,GAAYC,YAAWC,IAkDdwS,GAhDGtS,gBAChB,YAgBO,IAfLoP,EAeI,EAfJA,KACAmD,EAcI,EAdJA,iBACAC,EAaI,EAbJA,SACAC,EAYI,EAZJA,OACAC,EAWI,EAXJA,MACArK,EAUI,EAVJA,MAEA8J,GAQI,EATJQ,OASI,EARJR,WACAzS,EAOI,EAPJA,MAEAwM,EAKI,EALJA,KACAgG,EAII,EAJJA,KACAjS,EAGI,EAHJA,UACA2S,EAEI,EAFJA,WACGvS,EACC,mJACEC,EAAUV,GAAU,CAAEuS,YAAWzS,QAAOwM,SACxC2G,GAAgBxK,IAAUW,IAAQ0J,KAAW1J,KAAU0J,GACvDI,EAASP,GAAoBM,EAC7BE,EAAY,eACfzS,EAAQ4R,KAAOA,GAGlB,OACE,eAACc,GAAA,EAAD,aACE/P,GAAImM,EACJoD,SAAUA,EACVC,OAAQA,EACRpK,MAAOA,EACPqK,MAAOA,EACPpS,QAAS,CAAE2N,KAAM3N,EAAQ2N,MACzBhO,UAAWA,EACX2S,WAAU,aACR3S,UAAWO,IAAWuS,GACtBzS,QAAS,CACP2N,KAAM3N,EAAQ4L,KACdkG,UAAWU,EAASxS,EAAQ8R,UAAY,OAEvCQ,IAEDvS,OCiDG4S,GA9FM,SAAC,GAiBhB,EAhBJC,aAgBK,IAfLC,EAeI,EAfJA,MACAC,EAcI,EAdJA,QACAjD,EAaI,EAbJA,MACAkD,EAYI,EAZJA,UACAC,EAWI,EAXJA,SACAd,EAUI,EAVJA,SACAe,EASI,EATJA,UAEOC,GAOH,EARJC,eAQI,EAPJf,OACArK,EAMI,EANJA,MACAqL,EAKI,EALJA,UACAvB,EAII,EAJJA,UACAjG,EAGI,EAHJA,KACAyH,EAEI,EAFJA,UACGtT,EACC,oLACEuT,EAAe,SAAAR,GAAO,OAAI,SAAAS,GAAE,OAAI7K,KAAOA,IAASqK,EAAWQ,GAA3B7K,CAAgCoK,KAChEU,EAAa9K,IAAOqK,GAYpBX,EATCW,GAEaC,EACdtK,IAAM4K,EAAaR,IACnBQ,EAAaR,IAEAI,GANMA,EAkBnBO,EAAa,WACjB,OAAI/K,IAAQ0J,GAAe,GACpBY,EAAWZ,EAAQ,CAACA,IAkB7B,OACE,eAAC,KAAD,yBACEU,QAASA,EACTE,SAAUA,EACVZ,MAAOA,EACPF,SAhCkB,SAACwB,EAAKtB,GAC1B,IAAKW,EAAW,OAAOb,EAASwB,EAAKtB,GAErC,IAAMuB,EAASX,EAAWtK,IAAM8K,EAAN9K,CAAkB0J,GAASoB,EAAWpB,GAChEF,EAASwB,EAAKC,IA6BZC,eAAgBlL,IAAO,CAACuK,IACxBY,gBAAgB,EAChBC,cAlBkB,SAACC,EAAD,OAAUC,EAAV,EAAUA,WAAV,OACpBtL,KACEA,KAAUsL,GAAcP,IAAe,GAP5B,SAACM,EAAOE,GACrB,OAAKA,EACEC,aAAKH,EAAOE,EAAO,CAAE5R,KAAM,CAAC0Q,EAAWE,KAD3Bc,EAOjBI,CAAOJ,EAAOC,IACdI,MACA,EACA1L,UAAY0G,EAAZ1G,CAAuBmK,IACrBwB,KAAKC,IAAIzB,EAAOnK,KAAUsL,GAAcP,IAAa/R,OAAS,KAYhE6S,aAAW,EACXC,eAAa,EACbC,kBAAgB,EAChBC,UAAW,CAAEC,SAAU,MACvBC,eAAa,EACbC,kBAAmBnM,KAAUqK,IACzBhT,GAdN,IAeE+U,YAAa,SAAAC,GACX,OACE,eAAC,GAAD,2BACMA,GADN,IAEE1B,UAAWA,EACXxD,MAAOA,EACPuC,MAAOc,EACPnL,MAAOA,EACP6D,KAAMA,EACNwH,UAAWA,EACXvB,UAAWA,U,oDC7FvB,SAAS,KAA2Q,OAA9P,GAAWxQ,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,UACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,2BACU,gBAAoB,OAAQ,CAC1CA,GAAI,YACJC,OAAQ,UACRC,YAAa,EACbqC,EAAG,EACHF,EAAG,EACH5F,MAAO,GACPX,OAAQ,GACR6I,GAAI,KACW,gBAAoB,OAAQ,CAC3CrE,EAAG,8MACHN,GAAI,IACJG,KAAM,UACNC,SAAU,cAGZ,SAASiS,GAAS5R,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB0R,ICrCzC1V,IDsCS,ICtCGC,YAAW,CAC3BoO,KAAM,CACJvR,MAAOxC,GACP,YAAa,CACXwC,MAAOxC,KAGXqb,QAAS,GACTC,cAAe,CACbpX,QAAS,QAEX+N,QAAS,CACP/N,QAAS,OACTe,WAAY,SACZ,UAAW,CACTkH,YAAa,KAGjBmC,QAAS,CACPpK,QAAS,OACTe,WAAY,SACZzC,MAAO/B,GACP2D,OAAQ,EACRmX,WAAY,mBA2CDC,GAvCO,SAAC,GAAmD,IAAjDtG,EAAgD,EAAhDA,KAAMoD,EAA0C,EAA1CA,SAAUE,EAAgC,EAAhCA,MAAOiD,EAAyB,EAAzBA,SAAatV,EAAY,sDAC/DiO,EAAoDqH,EAApDrH,QAAS6B,EAA2CwF,EAA3CxF,MAAOyF,EAAoCD,EAApCC,gBAAiBC,EAAmBF,EAAnBE,eACnCvV,EAAUV,KAEhB,OACE,qCACG0O,EACC,uBAAKrO,UAAWK,EAAQkV,cAAxB,WACIK,GAAkB,eAACtU,GAAD,UAAS4O,IAC7B,eAAC2F,GAAA,EAAD,aACE7S,GAAImM,EACJ9O,QAAS,CACP2N,KAAM3N,EAAQ2N,KACdsH,QAASjV,EAAQiV,SAEnB/C,SAAUA,EACVE,MAAOA,EACP6C,QAAS7C,EACT1K,KACE,eAAC,KAAD,CACE+N,MAAO,CAAEhR,WAAY,EAAGlI,SAAUrB,MAGtCwa,YAAa,eAAC,KAAD,CAAcD,MAAO,CAAElZ,SAAUtB,MAC9C+U,eAAa,GACTjQ,IAELwV,GAAkB,eAACtU,GAAD,UAAS4O,OAG9B,uBAAKlQ,UAAWK,EAAQ6L,QAAxB,UACE,eAAC,GAAD,IACA,eAACjL,GAAD,CAAOjB,UAAWK,EAAQkI,QAA1B,SAAoCoN,U,qBChD/B9V,GAxBA,CACbyU,MAAO,CACL7U,MAAO,oBACPX,OAAQ,OACRD,OAAQ,YACR6O,YAAajU,EACbuF,aAAc,OAEhBgX,MAAO,CACLnX,OAAQ,YACR6O,YAAa1T,EACbgF,aAAc,MACd,UAAW,CACTD,QAAS,SAGbqJ,MAAO,CACLsF,YAAa5S,IAEfyJ,UAAW,CACTI,eAAgB,iBCbdhF,GAAYC,YAAWC,IACvBoW,GAAsBrW,YAAWjB,IAqCxBuX,GAnCG,SAAC,GASZ,IARL/G,EAQI,EARJA,KACAsD,EAOI,EAPJA,MACAF,EAMI,EANJA,SACA4D,EAKI,EALJA,UACA/N,EAII,EAJJA,MACAgO,EAGI,EAHJA,WACAC,EAEI,EAFJA,eACGjW,EACC,6FACEC,EAAUV,KACV2W,EAAoBL,KAE1B,OACE,eAAC,KAAD,aACEjT,GAAImM,EACJsD,MAAOA,EACPF,SAAUA,EACV4D,UAAWA,EACXI,UAAW,sCACXF,eAAgB9V,IAAW8V,EAAgBhW,EAAQkE,WACnD6R,WAAY7V,IACV6V,EACA/V,EAAQiU,MACRgC,EAAkBrY,kBAEpBuY,WAAYnW,EAAQ2V,MACpBS,WAAYpW,EAAQ+H,MACpBsO,WAAYtO,EACZuO,YAAY,GACRvW,K,wCCfKwW,GApBE,SAAC,GAA0D,IAAxD1G,EAAuD,EAAvDA,MAAOf,EAAgD,EAAhDA,KAAMgE,EAA0C,EAA1CA,QAASZ,EAAiC,EAAjCA,SAAUE,EAAuB,EAAvBA,MAAOzS,EAAgB,EAAhBA,UACzD,OACE,gBAAC6W,GAAA,EAAD,CAAa7W,UAAWO,IAAWP,GAAnC,UACE,eAAC8W,GAAA,EAAD,UAAa5G,IACb,eAAC6G,GAAA,EAAD,CACEC,WAAW,EACXC,QAAS/G,EACTlN,GAAImM,EACJsD,MAAOA,EACPF,SAAUA,EALZ,SAMGY,EAAQ1H,KAAI,SAACyL,EAAQC,GAAT,OACX,eAACC,GAAA,EAAD,CAAsB3E,MAAOyE,EAAOzE,MAApC,SACGyE,EAAO/Y,SADKgZ,Y,UCmCVE,GAhDKtX,gBAClB,YAgBO,IAfLoP,EAeI,EAfJA,KACAoD,EAcI,EAdJA,SACAC,EAaI,EAbJA,OACAC,EAYI,EAZJA,MACArK,EAWI,EAXJA,MACAsK,EAUI,EAVJA,OACAR,EASI,EATJA,UACAzS,EAQI,EARJA,MAEAwM,EAMI,EANJA,KACAgG,EAKI,EALJA,KACAjS,EAII,EAJJA,UACAsX,EAGI,EAHJA,cAEGlX,GACC,EAFJuS,WAEI,iJACJ,OACE,eAAC,KAAD,aACExD,KAAMA,EACNoD,SAAUA,EACVC,OAAQA,EACRC,MAAOA,EACPrK,MAAOA,EACPsK,OAAQA,EACRR,UAAWA,EACXzS,MAAOA,EAEPwM,KAAMA,EACNgG,KAAMA,EACNjS,UAAWA,EACXuX,YAAalF,GACbmF,aAAcF,EACdG,cAAe,SAAAC,GACbnF,EAAS,CACP3Q,OAAQ,CACNoB,GAAImM,EACJsD,MAAOiF,EAAOC,gBAIhBvX,O,8BCpCNP,GAAS,CACbqQ,MAAO,CACLpR,OAAQ,GACRtC,WAAY,OACZ6B,OAAQ,CAAC,CAAC,EAAG,EAAG,EAAG,IACnBuZ,YAAa,GAEfC,SAAU,CACRhT,WAAY,EACZC,WAAY,GACZrI,MAAO/B,KAILiF,GAAYC,YAAWC,IA0CdiY,GAxCI,SAAC,GASb,IARL3I,EAQI,EARJA,KACAe,EAOI,EAPJA,MACAuC,EAMI,EANJA,MACAU,EAKI,EALJA,QACAZ,EAII,EAJJA,SACAvS,EAGI,EAHJA,UACA+X,EAEI,EAFJA,eACAC,EACI,EADJA,eAEM3X,EAAUV,KAChB,OACE,uCACGuQ,GAAS,eAAC7O,GAAD,CAAQrB,UAAWK,EAAQ6P,MAA3B,SAAmCA,IAC7C,eAAC,KAAD,CACEf,KAAMA,EACNsD,MAAOA,EACPF,SAAUA,EACVvS,UAAWO,IAAWP,GAJxB,SAKGmT,EAAQ1H,KAAI,SAACyL,EAAQe,GAAT,OACX,eAAC,IAAMC,SAAP,UACE,iCACE,eAACC,GAAA,EAAD,CACEC,SAAUlB,EAAOkB,SACjB3F,MAAOyE,EAAOmB,KACdC,QAAS,eAACC,GAAA,EAAD,CAAOvY,UAAWgY,IAC3B9H,MAAOgH,EAAO/Y,QACd6B,UAAWO,IAAWwX,KAEvBb,EAAOW,UACN,eAACxW,GAAD,CAAQrB,UAAWK,EAAQwX,SAA3B,SAAsCX,EAAOW,eAV9BI,YCbhBO,GA9BKzY,gBAClB,YAA6D,IAA1D0S,EAAyD,EAAzDA,MAAOgG,EAAkD,EAAlDA,QAASnG,EAAyC,EAAzCA,iBAAkBE,EAAuB,EAAvBA,OAAWpS,EAAY,iEAC5BiK,oBAAS,GADmB,mBACnDqO,EADmD,KAC1CC,EAD0C,KAa1D,OACE,eAAC,GAAD,2BACMvY,GADN,IAEEkI,KAAK,WACLmQ,QAdiB,SAAA1I,GACnB4I,GAAW,GACXF,GAAWA,EAAQ1I,IAajByC,OAVgB,SAAAzC,GAClB4I,GAAW,GACXnG,GAAUA,EAAOzC,IASfuC,iBAAkBA,EAClBG,MAAOA,EACPE,WAAY,CAAEF,MAAOA,GACrBmG,gBAAiB,CAAEC,OAAQvG,GAAoBG,GAASiG,GACxDI,YAAaxG,EArBG,8DAqB8B,S,UCjBhD3S,GAAYC,aAAW,SAAAmZ,GAAK,MAAK,CACrC/K,KAAM,CACJvO,MAAO,GACPX,OAAQ,GACRG,QAAS,EACTZ,OAAQ0a,EAAMC,QAAQ,IAExBC,WAAY,CACVha,QAAS,EACT,aAAc,CACZxC,MAAOjC,GACP,aAAc,CACZJ,gBAAiBG,GACjB0M,QAAS,IAGb,YAAa,CACX5D,UAAW,kBACX5G,MAAOsc,EAAMG,QAAQC,OAAOtf,MAC5B,aAAc,CACZ4C,MAAOjC,IAET,aAAc,CACZJ,gBAAiBH,GACjBgN,QAAS,EACTpI,OAAQ,SAGZ,wBAAyB,CACvBA,OAAQ,iBACR4F,UAAW,+BAGf2U,MAAO,CACL3Z,MAAO,GACPX,OAAQ,IAEVua,MAAO,CACLra,aAAc,GACdH,OAAQ,OACRzE,gBAAiBM,GACjBuM,QAAS,EACTqS,WAAYP,EAAMQ,YAAYC,OAAO,CAAC,mBAAoB,YAE5DpB,SAAU,GACV9C,QAAS,GACTmE,aAAc,OAsBDC,GAnBK3Z,gBAAK,YAAmB,IAAbK,EAAY,oBACnCC,EAAUV,KAChB,OACE,eAACga,GAAA,EAAD,aACEC,sBAAuBvZ,EAAQoZ,aAC/BpJ,eAAa,EACbhQ,QAAS,CACP2N,KAAM3N,EAAQ2N,KACdiL,WAAY5Y,EAAQ4Y,WACpBG,MAAO/Y,EAAQ+Y,MACfC,MAAOhZ,EAAQgZ,MACf/D,QAASjV,EAAQiV,QACjB8C,SAAU/X,EAAQ+X,WAEhBhY,O,oBCnEJP,GAAS,CACbga,gBAAiB,CACfC,cAAe,QAEjB3J,KAAM,CACJhS,QAAS,OACTe,WAAY,SACZyF,eAAgB,QAChBlF,MAAO,MACPiN,SAAU,SACV9G,UAAW,IAEbmU,kBAAmB,CACjBjV,WAAY,GACZgV,cAAe,OACf5H,UAAW,QAEbpG,OAAQ,CACN1R,gBAAiBA,GACjB8L,aAAc,IAEhB8T,UAAW,CACTvd,MAAOpD,EACPwL,WAAY,KAIVlF,GAAYC,YAAWC,IAwCdoa,GAvCW,SAAC,GAQpB,IAPL9K,EAOI,EAPJA,KAOI,IANJ+K,mBAMI,MANU,WAMV,EALJzH,EAKI,EALJA,MAKI,IAJJ0H,iBAII,SAHJ5H,EAGI,EAHJA,SAGI,IAFJtG,YAEI,MAFG,QAEH,EADD7L,EACC,4EACEC,EAAUV,KAChB,OACE,eAAC,KAAD,CACEsM,KAAMA,EACNkD,KAAMA,EACN+K,YAAaA,EACbzH,MAAOA,EACP0H,UAAWA,EACX5H,SAAUA,EANZ,SAOGnS,EAAM+S,QAAQ1H,KAAI,SAAAyL,GACjB,OACE,eAACkD,GAAA,EAAD,CACEpa,UAAWK,EAAQyL,OACnB2G,MAAOyE,EAAOzE,MACd4H,aAAYnD,EAAOzE,MAHrB,SAKE,uBAAKzS,UAAWK,EAAQ8P,KAAxB,UACE,eAAC+G,EAAOnP,KAAR,IACA,uBAAK/H,UAAWK,EAAQ0Z,kBAAxB,UACE,eAACpZ,GAAD,UAAKuW,EAAOvT,QACZ,gBAAC9C,GAAD,CAAGb,UAAWK,EAAQ2Z,UAAtB,cAAmC9C,EAAOoD,sBALzCpD,EAAOzE,aCTT8H,GA5CY,SAAC,GAAqC,IAAnCpH,EAAkC,EAAlCA,QAASZ,EAAyB,EAAzBA,SAAanS,EAAY,wCACtCiK,oBAAS,GAD6B,mBACvD2E,EADuD,KACjDwL,EADiD,OAG9Bpa,EAAMqa,MAA9BtL,EAHsD,EAGtDA,KAAMqD,EAHgD,EAGhDA,OAAQC,EAHwC,EAGxCA,MAHwC,EAIFrS,EAAMsa,KAA1DC,EAJsD,EAItDA,QAASC,EAJ6C,EAI7CA,OAAQC,EAJqC,EAIrCA,cAAeC,EAJsB,EAItBA,gBAClC1S,KAAWuS,EAAQxL,KAASyL,EAAOzL,IALqB,EAM5B4L,eAA1BC,EANsD,EAMtDA,cAAetD,EANuC,EAMvCA,OAEjBuD,EACgB,aAApBlS,KAAOoK,GAA0BA,EAAQ6H,EAAetD,GAAUvE,EAO9D+H,EAAkB,SAAAzI,GAAK,OAAIoI,EAAc1L,EAAMsD,IAC/Ce,IAAmBpT,EAAMoT,eAE/B,OACE,eAAC,GAAD,aACErE,KAAMA,EACNoD,SAAU,SAACxC,EAAOoL,GAChB,GAAI5I,EAAU,OAAOA,EAASE,EAAO0I,EAAMD,GAC3CL,EAAc1L,EAAMgM,IAEtB3I,OAfgB,SAAAzC,GAClBZ,GAAQ2L,EAAgB3L,GAAM,GAC9BqD,GAAUA,EAAOzC,IAcf0C,MAAOA,EACPrK,MAAOA,EACP4G,KAAMA,EACNmE,QAAS8H,EACTG,OAAQ,WACN,IAAKhb,EAAMiT,SAAU,OAAOmH,GAAQ,GACpCA,GAAa,OAAL/H,QAAK,IAALA,OAAA,EAAAA,EAAO1Q,UAAW3B,EAAM8S,QAElCjD,QAAS,SAACF,EAAOsL,GAC0Bb,KAArChH,GAA6B,SAAX6H,MAGpBjb,K,mBChBJkb,GAASvb,gBAAK,gBAAGM,EAAH,EAAGA,QAAYD,EAAf,kCAClB,eAACmb,GAAA,EAAD,aAAMtP,KAAK,QAAQ5L,QAASA,GAAaD,OAG5Bob,iBArBA,SAAAzC,GAAK,MAAK,CACvB/K,KAAM,CACJ5T,gBAAiBC,GACjB2E,aAAc,EACdX,OAAQ0a,EAAMC,QAAQ,GAAK,KAC3Bla,OAAQ,IAEVoR,MAAO,CACLtT,SAAUlB,GACVe,MAAOhC,GACPqC,WAAYhB,GACZe,WAAYd,GACZwD,aAAc,EACdqY,YAAa,MAQF4D,CAAmBF,I,wCC/B5BG,GAAgB1S,KAAOA,KAAK2S,QAAS3S,KAAaA,KAAS4S,OAE3DC,GAAkB,SAAAnJ,GAAK,OAAKgJ,GAAchJ,GAASA,EAAQ,MAK3DoJ,GAAqB,SAAApJ,GAAK,OAC9BA,EAAMqJ,eAAe,QAAS,CAAEC,sBAAuB,KCRnDzd,GAAS,CACb0d,QAAS,CACPC,MAAOniB,EACPoiB,KAAMC,GAERC,OAAQ,CACNH,MAAOE,EACPD,KAAMpiB,IAIJuiB,GAAc,SAAC,GAA2C,IAAzCL,EAAwC,EAAxCA,QAASM,EAA+B,EAA/BA,kBAAmBC,EAAY,EAAZA,MACjD,OAAOje,GAAO0d,EAAU,UAAY,UAClCM,IAAsBC,EAAQ,OAAS,UAIrCC,GAAgB,CACpBC,QAAS,CACP/O,YAAa2O,GACbjiB,gBAAiBiiB,GACjBvd,OAAQ,IACRW,MAAO,gBAAGA,EAAH,EAAGA,MAAH,cAAeA,QAAf,IAAeA,IAAS,IAC/BZ,OAAQ,YACRqT,UAAW,MACX/T,QAAS,gBAEXue,wBAAyB,CACvBhP,YAAa2O,GACbjiB,gBAAiBiiB,GACjBvd,OAAQ,IACRW,MAAO,GACPZ,OAAQ,aAEV8d,UAAW,CACTviB,gBAAiB,QACjB0E,OAAQ,gBAAG8d,EAAH,EAAGA,QAAH,gBAAoB,IAAMA,EAA1B,MACRzX,SAAU,WACV,QAAS,CACP1I,MAAO4f,GACPle,QAAS,eACTgH,SAAU,WACV9G,OAAQ,EACRoP,OAAQ,EACRjJ,MAAO,IAGXqY,SAAU,CACRziB,gBAAiBiiB,GACjB,QAAS,CACP5f,MAAO,QACP0B,QAAS,YAKT2e,GAAa,CACjBC,IAAK,CACH5e,QAAS,QAEX6e,SAAU,CACR7e,QAAS,OACTwG,eAAgB,cAElBsY,KAAM,CACJnY,WAAY,IAEdoY,aAAc,CACZrY,UAAW,EACXqB,aAAc,GAEhBqK,KAAM,CACJ1L,UpDfW,GoDiBbsY,KAAM,CACJ9e,OAAQ,CAAC,CAAC,EAAG,EAAG,EAAG,MCnEjB+e,GAAiBxd,YAAW4c,IAC5Ba,GAAczd,YAAWkd,IAEzBQ,GAAU,SAAC,GAWV,IAAD,MAVJV,eAUI,MAVM,EAUN,MATJZ,eASI,SARJvc,EAQI,EARJA,MACAO,EAOI,EAPJA,UACAud,EAMI,EANJA,mBACAxF,EAKI,EALJA,eACAuE,EAII,EAJJA,kBACAkB,EAGI,EAHJA,8BACAC,EAEI,EAFJA,oBACAlB,EACI,EADJA,MAEMlc,EAAU+c,GAAe,CAC7BR,UACAZ,UACAvc,QACA6c,oBACAC,UAEImB,EAASd,GAAW,GAEpBe,GAAW,mBACdtd,EAAQqc,wBAA0Bc,GADpB,cAEdnd,EAAQoc,SAAWe,GAFL,GAKjB,OACE,uBAAKxd,UAAWO,IAAWP,EAAW2d,GAAtC,UACE,sBAAK3d,UAAWO,IAAWgd,EAAoBld,EAAQsc,WAAvD,UACIc,GAAuBC,GACvB,gBAACpc,GAAD,CAAQtB,UAAW+X,EAAnB,UAAoC6E,EAAQgB,QAAQ,GAApD,SAGJ,sBAAK5d,UAAWK,EAAQwc,SAAxB,UACIY,IAAwBC,GACxB,gBAACpc,GAAD,CAAQtB,UAAW+X,EAAnB,UAAoC6E,EAAQgB,QAAQ,GAApD,aASJC,GAAS,SAAC,GAAgC,IAA9BC,EAA6B,EAA7BA,SAAUC,EAAmB,EAAnBA,MAAOC,EAAY,EAAZA,MAC3B3d,EAAUgd,KAChB,OACE,qCACE,sBAAKrd,UAAWK,EAAQ0c,IAAxB,SACE,iCACE,sBAAK/c,UAAWK,EAAQ2c,SAAxB,SACE,gBAAChc,GAAD,CAAOhB,UAAWK,EAAQ6c,aAA1B,UAAyCa,EAAzC,cAEF,sBAAK/d,UAAWK,EAAQ2c,SAAxB,SACE,gBAAC3b,GAAD,CAAQrB,UAAWK,EAAQ6c,aAA3B,UACGc,EADH,IACWF,EAASzF,kBAS1B4F,GAAU,SAAC,GASV,IAAD,IARJC,gBAQI,MARO,IAQP,MAPJC,oBAOI,MAPW,EAOX,EANJL,EAMI,EANJA,SACAC,EAKI,EALJA,MACA/d,EAII,EAJJA,UAII,IAHJoe,mBAGI,SAFJC,EAEI,EAFJA,UACA5e,EACI,EADJA,MAEMmd,EAAW,IAAMmB,EAASG,EAC1B3B,EAAQK,EAAUyB,EAClBhe,EAAUgd,KAChB,OACE,qCACE,uBAAKrd,UAAWK,EAAQ0c,IAAxB,UACE,sBAAK/c,UAAWK,EAAQie,IAAxB,SACE,eAAC,GAAD,CACEte,UAAWA,EACX4c,QAASA,EACTZ,SAAO,EACPO,MAAOA,EACP9c,MAAOA,OAGT2e,GACA,uBAAKpe,UAAWK,EAAQ4c,KAAxB,UACE,uBAAKjd,UAAWK,EAAQ2c,SAAxB,UACE,eAAChc,GAAD,CAAOhB,UAAWK,EAAQ6c,aAA1B,SAAyCa,IACzC,eAAC,GAAD,CACE/d,UAAWK,EAAQ8c,KACnBjN,MAAK,UAAKiO,EAAL,YAAqBL,EAASzF,WAGvC,sBAAKrY,UAAWK,EAAQ2c,SAAxB,SACE,gBAAC3b,GAAD,CAAQrB,UAAWK,EAAQ6c,aAA3B,UACGrB,GAAmBkC,EAAQI,GAD9B,IAC8CL,EAASzF,mBC1G/D1Y,GAAYC,YAAW,CAC3BuQ,KAAM,CACJhS,QAAS,QAEXogB,aAAc,CACZzf,OAAQ,GACRsH,YAAa,MAqCFoY,GAjCWze,gBACxB,YAAoE,IAAjEuX,EAAgE,EAAhEA,cAAe7X,EAAiD,EAAjDA,MAAO4e,EAA0C,EAA1CA,UAAWI,EAA+B,EAA/BA,eAAmBre,EAAY,sEAC3DC,EAAUV,KADiD,EAEvBS,EAAMqa,MAAxCtL,EAFyD,EAEzDA,KAAMoD,EAFmD,EAEnDA,SAAUC,EAFyC,EAEzCA,OAAQC,EAFiC,EAEjCA,MAFiC,EAGrCrS,EAAMsa,KAA1BC,EAHyD,EAGzDA,QAASC,EAHgD,EAGhDA,OAHgD,EAIvCvQ,mBAASoI,GAJ8B,mBAI1DsL,EAJ0D,KAInDW,EAJmD,KAK3DtW,KAAWuS,EAAQxL,KAASyL,EAAOzL,IACzC,OACE,uBAAKnP,UAAWK,EAAQ8P,KAAxB,UACE,eAAC,GAAD,CACEnQ,UAAWM,IAAWD,EAAQke,aAAcE,GAC5CV,MAAOA,EACPK,aAAa,EACb3e,MAAOA,EACP4e,UAAWA,IAEb,eAAC,GAAD,aACElP,KAAMA,EACNoD,SAAU,SAAAoM,GAER,OADAD,EAASC,EAAE/c,OAAO6Q,OACXF,EAASoM,IAElBnM,OAAQA,EACRC,MAAOA,EACPrK,MAAOA,EACPkP,cAAeA,GACXlX,UCVCqV,GA7BO1V,gBACpB,YAOO,IANLmQ,EAMI,EANJA,MAMI,KALJgC,UAKI,EAJJuB,UAII,EAHJpF,gBAGI,aAFJsH,uBAEI,MAFc,GAEd,EADDvV,EACC,+EACqCA,EAAMqa,MAAvCtL,EADJ,EACIA,KAAMoD,EADV,EACUA,SADV,IACoBE,aADpB,SAGEiD,EAAW,CACfrH,QAASA,EACT6B,MAAOA,EACPyF,gBAAiBA,GAGnB,OACE,eAAC,GAAD,aACExG,KAAMA,EACNoD,SAAUA,EACVE,MAAOA,EACPiD,SAAUA,GACNtV,OCHGwe,GApBU7e,gBAAK,YAA0B,IAAvBmQ,EAAsB,EAAtBA,MAAU9P,EAAY,2BAC7BA,EAAMqa,MAAtBtL,EAD6C,EAC7CA,KAAMsD,EADuC,EACvCA,MACNoI,EAAkBza,EAAMsa,KAAxBG,cACR,OACE,eAAC,GAAD,aACE1L,KAAMA,EACNe,MAAOA,EACPuC,MAAOA,EACPU,QAAS/S,EAAM+S,QACf0L,UAAW1P,EACXoD,SAAU,SAAAoM,GACR9D,EAAc1L,EAAMwP,EAAE/c,OAAO6Q,OAC7BrS,EAAM0e,YAAc1e,EAAM0e,cAE5B9e,UAAWI,EAAMJ,WACbI,OCIK2e,GAnBWhf,gBAAK,YAAkC,IAA/BuX,EAA8B,EAA9BA,cAAkBlX,EAAY,mCACpBA,EAAMqa,MAAxCtL,EADsD,EACtDA,KAAMoD,EADgD,EAChDA,SAAUC,EADsC,EACtCA,OAAQC,EAD8B,EAC9BA,MAD8B,EAElCrS,EAAMsa,KAA1BC,EAFsD,EAEtDA,QAASC,EAF6C,EAE7CA,OAEXxS,KAAWuS,EAAQxL,KAASyL,EAAOzL,IAEzC,OACE,eAAC,GAAD,aACEA,KAAMA,EACNoD,SAAUA,EACVC,OAAQA,EACRC,MAAOA,EACPrK,MAAOA,EACPkP,cAAeA,GACXlX,OCMKwe,GApBU7e,gBAAK,YAA0B,IAAvBmQ,EAAsB,EAAtBA,MAAU9P,EAAY,2BACnBA,EAAMqa,MAAhCtL,EAD6C,EAC7CA,KAAMoD,EADuC,EACvCA,SAAUE,EAD6B,EAC7BA,MAExB,OACE,eAAC,GAAD,aACEtD,KAAMA,EACNe,MAAOA,EACPuC,MAAOA,EACPU,QAAS/S,EAAM+S,QACf0L,UAAW1P,EACXoD,SAAU,SAAAoM,GACRpM,EAASoM,GACTve,EAAM0e,YAAc1e,EAAM0e,cAE5B9e,UAAWI,EAAMJ,WACbI,OCIK4e,GAnBWjf,gBAAK,YAAqC,IAAlCuS,EAAiC,EAAjCA,iBAAqBlS,EAAY,sCACvBA,EAAMqa,MAAxCtL,EADyD,EACzDA,KAAMoD,EADmD,EACnDA,SAAUC,EADyC,EACzCA,OAAQC,EADiC,EACjCA,MADiC,EAErCrS,EAAMsa,KAA1BC,EAFyD,EAEzDA,QAASC,EAFgD,EAEhDA,OAEXxS,GAASkK,MAAuBqI,EAAQxL,KAASyL,EAAOzL,IAE9D,OACE,eAAC,GAAD,aACEA,KAAMA,EACNmD,iBAAkBA,EAClBC,SAAUA,EACVC,OAAQA,EACRC,MAAOA,EACPrK,MAAOA,GACHhI,OCIK6e,GAlBSlf,gBAAK,YAAmB,IAAbK,EAAY,sBACHA,EAAMqa,MAAxCtL,EADqC,EACrCA,KAAMoD,EAD+B,EAC/BA,SAAUC,EADqB,EACrBA,OAAQC,EADa,EACbA,MADa,EAEjBrS,EAAMsa,KAA1BC,EAFqC,EAErCA,QAASC,EAF4B,EAE5BA,OAEXxS,KAAWuS,EAAQxL,KAASyL,EAAOzL,IAEzC,OACE,eAAC,GAAD,aACEA,KAAMA,EACNoD,SAAUA,EACVC,OAAQA,EACRC,MAAOA,EACPrK,MAAOA,GACHhI,OCjBV,SAAS,KAA2Q,OAA9P,GAAWsB,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,6BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,SAAU,CAC5CJ,GAAI,OACJC,OAAQ,UACRI,UAAW,qFACXa,GAAI,EACJC,GAAI,EACJC,EAAG,IACY,gBAAoB,OAAQ,CAC3Cd,EAAG,geACHN,GAAI,OACJG,KAAM,aAGR,SAAS+b,GAAYzb,EAAMC,GACzB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiBub,IAChC,IChDf,SAAS,KAA2Q,OAA9P,GAAWxd,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,4BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,SAAU,CAC5CJ,GAAI,cACJG,KAAM,UACNe,GAAI,EACJC,GAAI,EACJC,EAAG,IACY,gBAAoB,SAAU,CAC7CpB,GAAI,cACJC,OAAQ,UACRC,YAAa,EACbG,UAAW,qFACXa,GAAI,EACJC,GAAI,EACJC,EAAG,KAGL,SAAS+a,GAAW1b,EAAMC,GACxB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,I3B3CkByb,G2B2Cd,GAA0B,aAAiBD,ICxCvC9hB,IDyCO,ICzCIsB,GAAXtB,KAAKF,GAAMwB,GAANxB,EAEPkiB,GAAe5lB,EAEN,IACb6lB,QAAQ,aACNnhB,QAAS,OACT/D,gBAAiBilB,GACjB5f,MAAO,IACPqF,YAAa,IACbL,UAAU,sBAAD,OAAwB4a,IACjCrgB,aAAc,aACdE,WAAY,WACZD,QAAShD,GACTgK,cAAe,W5BjBDmZ,GnC4FN,KmC5FgB,6CACYA,GADZ,M4BkBN,CAChB3f,MAAO,OACPqF,WAAY,EACZya,SAAU,IACV9a,UAAU,sBAAD,OAAwB4a,MAGrCG,YAAa,CACX5gB,OAAQ,WAEV2R,KAAM,CACJ5T,OAAQQ,GACRgI,SAAU,WACV1I,MAAO5B,GACPwD,OAAQ,mBACRO,OAAQ,UACR,iBAAkB,CAChBE,OAAQ,QAEV,UAAW,CACT0O,QAAS,KACTrP,QAAS,QACTqH,WAAYxL,EACZyF,MAAO,EACPX,OAAQ,EACRwG,KAAM,OACNR,WAAY,GACZ2I,QAAS,EACTtI,SAAU,WACVnG,aAAc,IACdsa,WAAY,iDAGhBmG,WAAY,CACV9iB,OAAQU,GACRZ,MAAOzC,EACP,WAAY,CACV8E,OAAQ,SAGZ4gB,iBAAkB,CAChB,iBAAkB,CAChB5gB,OAAQ,QAEV,UAAW,CACT2O,OAAQ,IAGZkS,uBAAwB,CACtB,WAAY,CACV7gB,OAAQ,SAGZqc,KAAM,CACJhW,SAAU,WACV9G,OAAQ,gBACRF,QAAS,QAEXyhB,SAAU,CACRjjB,OAAQQ,GACRV,MAAO5B,GACPuL,YAAa,IAEfyZ,eAAgB,CACdljB,OAAQU,GACRZ,MAAOzC,GAET8lB,aAAc,CACZrjB,MAAOzC,GAET+lB,YAAa,CACX5a,SAAU,WACVrG,OAAQ,GACRW,MAAO,EACPZ,OAAQ,CAAC,CAAC,EAAG,QAAShE,KACtB2J,MAAO,EACPY,IAAK,IAEP4a,YAAa,CACXnhB,OAAQ,CAAC,CAAC,EAAG,QAAS7E,MC7FpB2F,GAAYC,YAAWC,IAoCdogB,GAlCC,SAAC,GAQV,IAPL9V,EAOI,EAPJA,KACA+V,EAMI,EANJA,YACAC,EAKI,EALJA,WACA5W,EAII,EAJJA,QACApJ,EAGI,EAHJA,SACAigB,EAEI,EAFJA,WAEI,IADJhW,eACI,SACE/J,EAAUV,KAEhB,OACE,uBAAKK,UAAWK,EAAQif,QAAxB,UACGlV,GAAW,eAACvJ,GAAD,0BACVuJ,IAAD,OACCD,QADD,IACCA,OADD,EACCA,EAAMsB,KAAI,SAACmI,EAAIqE,GAAL,aACR,sBAAKjY,UAAWK,EAAQmf,YAAajW,QAAS,kBAAMA,EAAQqK,IAA5D,SACE,sBAEE5T,UAAWO,KAAU,mBAClBF,EAAQof,WAAaU,EAAWvM,IADd,cAElBvT,EAAQsf,uBAAyBS,GAAcD,EAAWvM,IAFxC,cAGlBvT,EAAQqf,iBAAmBU,GAHT,cAIlB/f,EAAQkQ,MAAO,GAJG,IAFvB,SAQG6P,EAAaA,EAAWxM,EAAIuM,EAAWvM,IAAOsM,EAAYtM,IAPtDqE,UAWX7N,GAAWjK,MAObkgB,GAAU,SAAC,GAA8B,IAAD,IAA3BC,EAA2B,EAA3BA,KAAM1M,EAAqB,EAArBA,GAAIqE,EAAiB,EAAjBA,IAAKsI,EAAY,EAAZA,MAC1BlgB,EAAUV,KACV2R,EAASgP,IAASrI,EAClBuI,EAAOvI,EAAMqI,EACbG,EAASxI,EAAMqI,EAErB,OACE,uBAAKtgB,UAAWK,EAAQ8a,KAAxB,UACE,uBACEnb,UAAWO,KAAU,mBAClBF,EAAQuf,UAAW,GADD,cAElBvf,EAAQwf,eAAiBvO,GAFP,cAGlBjR,EAAQyf,aAAeU,GAHL,IADvB,SAMG5M,EAAG1D,QAELoB,GAAU,eAAC,GAAD,IACVkP,GAAQ,eAAC,GAAD,IACRC,GAAU,eAAC,GAAD,IACVxI,EAAMsI,EAAMxe,OAAS,GACpB,sBACE/B,UAAWO,KAAU,mBAClBF,EAAQ0f,aAAc,GADJ,cAElB1f,EAAQ2f,YAAcQ,GAFJ,UCtE/B,SAAS,KAA2Q,OAA9P,GAAW9e,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,2BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,OAAQ,CAC1CD,EAAG,+NACHN,GAAI,WACJC,OAAQ,UACRC,YAAa,OAGf,SAAS,GAAUO,EAAMC,GACvB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,QAAkBqP,IAAV9L,EAAmC,gBAAoB,QAAS,CACzEX,GAAIY,GACH,4BAA8BD,EAAqB,gBAAoB,QAAS,CACjFX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiB,IAChC,IC5Cf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,QAAS,CACpD0G,KAAM,YACL,iEAEC,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDtF,GAAI,+BACJK,UAAW,kCACG,gBAAoB,IAAK,CACvCL,GAAI,QACU,gBAAoB,OAAQ,CAC1CA,GAAI,YACJhD,UAAW,MACXsD,EAAG,4SAGL,SAAS,GAAUG,EAAMC,GACvB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDT,GAAI,UACJc,MAAO,6BACPC,WAAY,+BACZwB,EAAG,MACHF,EAAG,MACHxB,QAAS,YACTiS,MAAO,CACL4K,iBAAkB,iBAEpBC,SAAU,WACV3c,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,GAAO,IAGlC,IAAI,GAA0B,aAAiB,IAChC,ICjDf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,6BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,SAAU,CAC5CJ,GAAI,OACJC,OAAQ,UACRC,YAAa,EACbG,UAAW,qFACXa,GAAI,EACJC,GAAI,EACJC,EAAG,IACY,gBAAoB,OAAQ,CAC3Cd,EAAG,geACHN,GAAI,OACJG,KAAM,aAGR,SAAS,GAAYM,EAAMC,GACzB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,I,MAAI,GAA0B,aAAiB,ICnCzCR,IDoCS,ICpCF,QACP8C,GAAgB,SAsIPpG,GApIA,CACb+gB,OAAQ,CACNxmB,mBACAqF,MAAO0D,GACP0d,UAAW1d,GACXhF,QAAS,OACT8H,iBACAhH,QAAS,GAEXiN,QAAS,CACPzM,MAAOzE,GACP8D,OAAQqE,GACR9E,OAAQ,SACR8R,KAAM,EACNhS,QAAS,OACT8H,kBAEF6a,WAAY,CACV3iB,QAAS,OACTgS,KAAM,EACNlK,cAAe,OAEjB8a,UAAW,CACT5iB,QAAS,OACTwG,eAAgB,gBAChBzF,WAAY,UAEd8hB,eAAgB,CACdlc,WAAY,IAEdgH,OAAQ,CACNjH,UAAW,IAEboc,UAAW,CACTpc,UAAW,GACXqB,aAAc,IAEhBgb,QAAS,CACPrc,UAAW,GACXqB,aAAc,IAEhBib,cAAe,CACbhjB,QAAS,QAEXijB,kBAAmB,CACjBjjB,QAAS,OACT8H,cAAe,OAEjBob,cAAe,CACb5hB,MAAO,IACPqF,WAAY,GACZ3G,QAAS,OACT8H,cAAe,UAEjBqb,YAAa,CACXnjB,QAAS,OACT8H,cAAe,UAEjBsb,WAAY,CACVnb,YAAa,IAEfob,OAAQ,CACN3c,UAAW,GAEbsW,KAAM,CACJhW,SAAU,WACV9G,OAAQ,gBACRF,QAAS,QAEXyhB,SAAU,CACRjjB,OA3EegC,GAANxB,EA4ETV,MAAO5B,GACPuL,YAAa,IAEfyZ,eAAgB,CACdljB,OAhFegC,GAAXtB,IAiFJZ,MAAOzC,GAET8lB,aAAc,CACZrjB,MAAOzC,GAET+lB,YAAa,CACX5a,SAAU,WACVrG,OAAQ,GACRW,MAAO,EACPZ,OAAQ,CAAC,CAAC,EAAG,QAAShE,KACtB2J,MAAO,EACPY,IAAK,IAEP4a,YAAa,CACXnhB,OAAQ,CAAC,CAAC,EAAG,QAAS7E,KAExBynB,sBAAuB,CACrBrnB,gBAAiBb,EACjB4E,QAAS,OACT8H,cAAe,MACfhH,QAAS,WACTD,aAAc,OAEhB0iB,eAAgB,CACdjlB,MAAOnD,EACP+E,OAAQ,WAEVsjB,mBAAoB,CAClBvb,YAAa,GACbF,aAAc,EACd/H,QAAS,OACT8H,cAAe,MACf/G,WAAY,UAEd0iB,aAAc,CACZnlB,MAAO3B,IAET+mB,mBAAoB,CAClB1jB,QAAS,OACT8H,cAAe,SACf7L,gBAAiB,QACjByE,OAAO,aAAD,OAAe7E,GACrBiF,QAAS,EACTD,aAAc,IAEhB8iB,kBAAmB,CACjB3jB,QAAS,OACT8H,cAAe,MACf/G,WAAY,SACZb,OAAQ,CAAC,CAAC,EAAG,EAAG,GAAI,KACpB,QAAS,CACPyG,WAAY,MCpHZid,GAActY,IAAH,yHAKXuY,GAAevY,IAAH,2FASZ9J,GAAYC,YAAWC,IAEvBoiB,GAAUlZ,IAAUA,KAAUA,KAAS,GAAI,CAAC,cAyE5CiS,GAAgB,CACpB7L,KAAM,IAGF+S,GAAmBC,OAAaC,MAAM,CAC1CjT,KAAMgT,OACHE,SAAS,6BACT1N,IAAI,IACJ2N,KACC,cACA,mCACA,SAAC7P,EAAO8P,GAAR,OAAqBA,EAAQpP,QAAQoP,QAAQC,aAAaC,SAAShQ,QA+DnE8N,GAAQ,CACZ,CACErQ,MAAO,eACPwS,UA9DyB,SAAC,GAA+C,IAA7CC,EAA4C,EAA5CA,SAAUtiB,EAAkC,EAAlCA,QAASuiB,EAAyB,EAAzBA,UAAWC,EAAc,EAAdA,QAAc,EACvDjY,YAAYmX,GAAa,CAC1Ce,YAAa,YAA6B,IAA1BC,EAAyB,EAAzBA,mBAIdH,EAAUG,GACVJ,KAEF9X,QAAS,SAAA8T,GAAC,OAAI7T,QAAQkY,IAAIrE,MARrBsE,EADmE,oBAYlE9Y,EAASF,YAAS+X,IAAlB7X,KACFqY,EAAezZ,IAAMA,IAAO,SAAa,OAAJoB,QAAI,IAAJA,OAAA,EAAAA,EAAMM,WAAY,IAY7D,OACE,uCACE,eAACzJ,GAAD,CAAOhB,UAAWK,EAAQ4gB,UAA1B,+CAGA,eAAC,KAAD,CACEiC,gBAAgB,EAChBC,kBAAkB,EAClBnI,cAAeA,GACfoI,SAnBsB,SAAA3Q,GAC1B,IACEyP,GAAiBmB,aAAa5Q,EAAO,CACnC8P,QAAS,CAAEC,aAAcA,KAE3B,MAAOpa,GACP,OAAOA,IAcLkb,SAAU,YAAe,IAAZnU,EAAW,EAAXA,KACX0T,EAAQ1T,GACR8T,EAAS,CAAErX,UAAW,CAAEuD,WAP5B,SASG,gBAAGyL,EAAH,EAAGA,OAAH,OACC,gBAAC,KAAD,CAAM5a,UAAWK,EAAQqa,KAAzB,UACE,+BACE,eAAC,KAAD,CACEvL,KAAK,OACLe,MAAM,qBACNwS,UAAWrQ,OAGduI,GAAU,eAAC/Z,GAAD,CAAGb,UAAWK,EAAQuhB,aAAtB,SAAqChH,EAAOrS,UACvD,sBAAKvI,UAAWK,EAAQyL,OAAxB,SACE,eAACyX,GAAD,CAAQjb,KAAK,SAAb,iCAcZ,CACE4H,MAAO,eACPwS,UAxJoB,SAAC,GAAgD,IAAD,EAA7CriB,EAA6C,EAA7CA,QAASmjB,EAAoC,EAApCA,OAAQrU,EAA4B,EAA5BA,KAAMsU,EAAsB,EAAtBA,MAAOC,EAAe,EAAfA,SACjDC,EAAUC,iBAAO,MAEfzZ,EAASF,YAAS+X,GAAc,CAAE9X,aAAc,MAAhDC,KAERe,qBAAU,WACR,OAAO,WACDyY,EAAQxY,SACV0Y,aAAaF,EAAQxY,YAGxB,IAEH,IAAM2Y,EAAY,OAAG3Z,QAAH,IAAGA,GAAH,UAAGA,EAAMM,gBAAT,aAAG,EAAgBsZ,MAAK,SAAAC,GAAC,OAAIA,EAAE7U,OAASA,KACpD8U,EAAgBhC,GAAQ9X,GAAQsZ,GAASK,EAQ/C,OAPIG,IACFN,EAAQxY,QAAU+Y,YAChB,kBAAMR,EAASI,KAfU,MAqB3B,uCACE,eAAC9iB,GAAD,CAAOhB,UAAWK,EAAQ6gB,QAA1B,kDAGA,uBAAKlhB,UAAWK,EAAQ8gB,cAAxB,UACE,uBAAKnhB,UAAWK,EAAQwhB,mBAAxB,UACE,eAAC,KAAD,CACE5V,KAAM,IACNkY,QAASnqB,EACToqB,eAAa,EACb3R,MAAO+Q,EACPxjB,UAAWK,EAAQgkB,eAErB,uBAAKrkB,UAAWK,EAAQyhB,kBAAxB,UACE,eAAC,GAAD,IACA,eAACjhB,GAAD,CAAGzC,UAAQ,EAAX,2CAGJ,uBAAK4B,UAAWK,EAAQghB,cAAxB,UACE,uBAAKrhB,UAAWK,EAAQ+gB,kBAAxB,UACE,sBAAKphB,UAAWK,EAAQkhB,WAAxB,SACE,eAAC,GAAD,MAEF,sBAAKvhB,UAAWK,EAAQihB,YAAxB,SACE,eAACzgB,GAAD,CAAGb,UAAWK,EAAQmhB,OAAtB,+NAQHyC,GACC,uBAAKjkB,UAAWK,EAAQohB,sBAAxB,UACE,sBAAKzhB,UAAWK,EAAQshB,mBAAxB,SACE,eAAC,GAAD,MAEF,eAAC3gB,GAAD,CAAOhB,UAAWK,EAAQqhB,eAA1B,kECvGC4C,GDoOIvkB,gBAAK,YAA0B,IAAvB8J,EAAsB,EAAtBA,MAAO6Z,EAAe,EAAfA,SAC1BrjB,EAAUV,KACRwK,EAASF,YAAS+X,IAAlB7X,KAFuC,EAGnBE,mBAAS,IAHU,mBAGxCmZ,EAHwC,KAGhCZ,EAHgC,OAIvBvY,mBAAS,IAJc,mBAIxC8E,EAJwC,KAIlC0T,EAJkC,OAKvBxY,mBAAS,GALc,mBAKxCiW,EALwC,KAKlCiE,EALkC,KAMzCd,EAAQxB,GAAQ9X,GAEhBqa,EAAYjE,GAAMD,GAAMoC,UAE9B,OACE,+BACE,eAAC+B,GAAA,EAAD,CACEC,YAAU,EACV1kB,UAAWK,EAAQugB,OACnB5R,MAAM,EACN2V,kBAAgB,oBAJlB,SAKE,eAACC,GAAA,EAAD,CAAe5kB,UAAWK,EAAQugB,OAAlC,SACE,uBAAK5gB,UAAWK,EAAQ6L,QAAxB,UACE,uBAAKlM,UAAWK,EAAQ0gB,UAAxB,UACE,eAAC,GAAD,0BACA,eAAC,KAAD,CAAY1Q,eAAe,EAAM9G,QAASM,EAA1C,SACE,eAACgb,GAAA,EAAD,CAASpoB,MAAM,QAAf,SACE,eAAC,GAAD,WAIN,uBAAKuD,UAAWK,EAAQygB,WAAxB,UACE,eAAC,GAAD,UACGP,GAAM9U,KAAI,SAACmI,EAAIqE,GAAL,OA1DL,SAACqI,EAAM1M,EAAIqE,EAAK5X,GAAa,IAAD,IAC1CiR,EAASgP,IAASrI,EAClBuI,EAAOvI,EAAMqI,EACbG,EAASxI,EAAMqI,EAErB,OACE,uBAAKtgB,UAAWK,EAAQ8a,KAAxB,UACE,uBACEnb,UAAWO,KAAU,mBAClBF,EAAQuf,UAAW,GADD,cAElBvf,EAAQwf,eAAiBvO,GAFP,cAGlBjR,EAAQyf,aAAeU,GAHL,IADvB,SAMG5M,EAAG1D,QAELoB,GAAU,eAAC,GAAD,IACVkP,GAAQ,eAAC,GAAD,IACRC,GAAU,eAAC,GAAD,IACVxI,EAAMsI,GAAMxe,OAAS,GACpB,sBACE/B,UAAWO,KAAU,mBAClBF,EAAQ0f,aAAc,GADJ,cAElB1f,EAAQ2f,YAAcQ,GAFJ,SAsCSsE,CAAcxE,EAAM1M,EAAIqE,EAAK5X,QAEvD,sBAAKL,UAAWK,EAAQ2gB,eAAxB,SACE,eAACwD,EAAD,CACEnkB,QAASA,EACTsiB,SAAU,kBAAM4B,EAAQ,IACxBd,MAAOA,EACPC,SAAUA,EACVF,OAAQA,EACRZ,UAAWA,EACXzT,KAAMA,EACN0T,QAASA,qBE9Q3B,SAAS,KAA2Q,OAA9P,GAAWnhB,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,wBACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,OAAQ,CAC1CD,EAAG,gQACHN,GAAI,WACJC,OAAQ,YACO,gBAAoB,OAAQ,CAC3CoE,GAAI,EACJC,GAAI,WACJC,GAAI,EACJC,GAAI,WACJxE,GAAI,WACJC,OAAQ,YACO,gBAAoB,OAAQ,CAC3CoE,GAAI,WACJC,GAAI,EACJC,GAAI,WACJC,GAAI,EACJxE,GAAI,WACJC,OAAQ,aAGV,SAAS,GAASQ,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB,IAChC,ICzDf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,OAAQ,KAAmB,gBAAoB,OAAQ,CAClG0B,EAAG,ikMACHN,GAAI,YAGF,GAAqB,gBAAoB,IAAK,CAChDA,GAAI,UACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,uBACJK,UAAW,sCACG,gBAAoB,IAAK,CACvCL,GAAI,oBACJK,UAAW,oCACG,gBAAoB,IAAK,CACvCL,GAAI,sBACU,gBAAoB,OAAQ,CAC1CA,GAAI,SACJG,KAAM,SACQ,gBAAoB,MAAO,CACzC4hB,UAAW,aACK,gBAAoB,MAAO,CAC3C/hB,GAAI,OACJG,KAAM,UACN4hB,UAAW,gBAGb,SAASC,GAAQvhB,EAAMC,GACrB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,GAAO,IAGlC,IAAI,GAA0B,aAAiBqhB,IAChC,IC3Df,SAAS,KAA2Q,OAA9P,GAAWtjB,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,UACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,uBACJK,UAAW,sCACXJ,OAAQ,UACRC,YAAa,GACC,gBAAoB,IAAK,CACvCF,GAAI,yBACJK,UAAW,qCACG,gBAAoB,OAAQ,CAC1CC,EAAG,uIACHN,GAAI,aACW,gBAAoB,OAAQ,CAC3CM,EAAG,yUACHN,GAAI,WACJO,eAAgB,aAGlB,SAAS0hB,GAAgBxhB,EAAMC,GAC7B,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiBshB,ICtCvC9nB,IDuCO,ICvCDwB,GAANxB,GAEJ+nB,GAAejpB,GACfkpB,GAAkBlpB,GAOtB,I,yDA8Je4D,GA9JA,CACbulB,gBAAiB,CACfjgB,SAAU,YAEZT,OAAQ,CACNtK,gBAAiBJ,EACjByC,MAAO5C,EACPiF,OAAQomB,GACR/mB,QAAS,QAEXqP,QAAS,CACP6X,SAAUrqB,GACVmV,KAAM,EACNhS,QAAS,OACTe,WAAY,SACZb,OAAQ,UAEVinB,IAAK,CACHnV,KAAM,EACNhS,QAAS,OACTe,WAAY,SACZyF,eAAgB,iBAElB4gB,GAAI,CACFpnB,QAAS,OACTyZ,YAAa3b,GACb6C,OAAQ7C,GACRoC,OAAQ,GAEVmnB,GAAI,CAGFC,UAAW,OACXhpB,MAAO5C,EACPwE,OAAQ,CAAC,CAACpC,GAAcA,GAAc,EAAGA,KACzC,UAAW,CACTQ,MAAO5C,GAET,iBAAkB,CAChB4F,MAAO,MACPqF,WAAY,QAEdK,SAAU,WACV,UAAW,CACTqI,QAAS,KACTrP,QAAS,QACTqH,WAAY3L,EACZ4F,MAAO,EACPX,OAAQ,EACRwG,KAAM,MACNR,WAAY,EACZ2I,QAAS,EACTtI,SAAU,WACVnG,aAAc,IACdsa,WAAY,CAAC,CAAC,MAAO,OAAQ,0CAGjC/I,KAAM,CACJ5T,OAAQQ,GACRqT,eAAgB,OAChB3R,OAAQ,OACRpC,MAAO5C,EACPO,gBAAiB,eAEnBsrB,UAAW,CACTvnB,QAAS,eACT+T,UAAW,SACX,UAAW,CACT/T,QAAS,QACTqP,QAAS,kBACT1Q,WAAY,IACZgC,OAAQ,EACR4N,SAAU,SACViZ,WAAY,WAGhBlG,WAAY,CACVhjB,MAAO5C,EACP,cAAe,CACb4F,MAAO,MACPqF,WAAY,SAGhB8gB,WAAY,CACV9gB,WAAY,QAEd+gB,UAAW,CACTzrB,gBAAiBC,GACjBoC,MAAO5C,EACPiF,OAAQqmB,GACRhnB,QAAS,QAEX2nB,YAAa,CACX3nB,QAAS,OACTyZ,YAAa,EACbvZ,OAAQ,GAEV0nB,YAAa,CACXN,UAAW,OACXxmB,QAAS,CAAC,CAAC,EAAGhD,KACd,gBAAiB,CACf2b,YAAa,IAGjBoO,cAAe,CACbrpB,OAAQQ,GACRqT,eAAgB,OAChB3R,OAAQ,OACRpC,MAAO5B,IAETorB,oBAAqB,CACnBxgB,WAAY,yBACZhJ,MAAOhC,IAETZ,MAAO,CACL4C,MAAO5C,GAETqsB,KAAM,CACJ/nB,QAAS,OACTe,WAAY,SACZ,UAAW,CACTkH,YAAa,KAGjB+f,SAAU,CACRvnB,OAAQ,WAEVwnB,uBAAwB,CACtBrgB,OAAQ,EACRZ,SAAU,WACVhH,QAAS,OACTwG,eAAgB,gBAChB4a,SAAU,IACVlc,UAAW,iBAEb2B,iBAAkB,CAChBH,UAAW5I,EACX2C,OAAQ,UACR4G,WAAY,cACZf,UAAW,0BACX5F,OAAQ,wBACR4G,WAAY,0BACZ1G,QAAS,QAEXmI,UAAW,CACT/B,SAAU,WACVC,IAAK,EACLE,KAAM,IACN7F,MAAO,MACPX,OAAQ,MACR1E,gBAAiBH,GACjB+E,aAAc,OAEhBqnB,OAAQ,CACNtgB,OAAQ,IC5JNpG,GAAYC,YAAWC,IAEvBymB,GAAa7c,IAAH,oFAMV8c,GAAY,SAAC,GAA6B,IAA3BpL,EAA0B,EAA1BA,KAAM9a,EAAoB,EAApBA,QAASmmB,EAAW,EAAXA,KAAW,EACrBnc,mBAAS,MADY,mBACtCoc,EADsC,KAChCC,EADgC,KAG7C,OACE,sBAAK1mB,UAAWK,EAAQwlB,UAAxB,SACE,sBAAK7lB,UAAWK,EAAQmN,QAAxB,SACE,+BACE,qBAAIxN,UAAWK,EAAQylB,YAAvB,SACG3K,EAAKhb,SAASsL,KAAI,SAACmI,EAAIqE,GACtB,OAAKlP,IAAWyd,EAAKG,KAAM/S,EAAGgT,cAE5B,qBAAc5mB,UAAWK,EAAQ0lB,YAAjC,SACE,eAAC,IAAD,CACEc,GAAI,CAAEC,SAAUlT,EAAGmT,MAAOC,MAAO,CAAEP,SACnCzmB,UAAWK,EAAQ2lB,cACnBiB,gBAAiB5mB,EAAQ4lB,oBACzBzU,SAAU,SAAA0V,GACR,QAAKA,IACLR,EAAQ9S,EAAGmT,QACJ,IAPX,SASGnT,EAAG1D,SAVC+H,GAFyC,2CAwB5DkP,GAASpe,IAAUA,IAAOA,KAkJjBqe,GAhJArnB,gBAAK,YAAqB,IAAlBsnB,EAAiB,EAAjBA,KAAMb,EAAW,EAAXA,KAAW,EACdnc,oBAAS,GADK,mBAC/B2E,EAD+B,KACzBwL,EADyB,OAENnQ,mBAAS,MAFH,mBAE/BiF,EAF+B,KAErBC,EAFqB,OAGYlF,mBAAS,CAAE9E,EAAG,EAAGF,EAAG,IAHhC,mBAG/BiiB,EAH+B,KAGZC,EAHY,OAIVld,qBAJU,mBAI/BiH,EAJ+B,KAIvBC,EAJuB,OAKJlH,oBAAS,GALL,mBAK/BnD,EAL+B,KAKpByD,EALoB,OAOeV,YAASqc,IAAtDnc,EAP8B,EAO9BA,KAAMqd,EAPwB,EAOxBA,QAASC,EAPe,EAOfA,aAAcC,EAPC,EAODA,YAC/BC,EAAuB/D,mBACvB7Z,EAAY6Z,mBACZgE,EAAUC,cACVxnB,EAAUV,KAEhBuL,qBAAU,WACR,cAAIf,QAAJ,IAAIA,OAAJ,EAAIA,EAAMkB,wBAA+BV,GAAa,GAElDwc,GAAM,OAAChd,QAAD,IAACA,OAAD,EAACA,EAAMkB,wBAAgCV,GAAa,QAA9D,IACC,CAACR,IAEJe,qBAAU,WAER,OADAuc,EAAa,KACNC,KAGT,IASM7X,EAAc,WAClBN,EAAY,MACZuY,SAASC,cAAc,SAASC,UAAUC,OAAO,yBACjDH,SAASC,cAAc,QAAQC,UAAUC,OAAO,0BAY5CC,EAAa1Y,QAAQF,GACrBtM,EAAKklB,EAAa,4BAAyBzY,EACjD,OACE,0BAAQzP,UAAWK,EAAQ+kB,gBAA3B,UACE,sBAAKplB,UAAWK,EAAQqE,OAAxB,SACE,uBAAK1E,UAAWK,EAAQmN,QAAxB,UACE,uBACEjE,QAAS,WACPgI,GAAU,GACVqW,EAAQO,KAAK,eAEfnoB,UAAWO,IAAWF,EAAQ6lB,KAAM7lB,EAAQ8lB,UAL9C,UAME,eAAC,GAAD,IACA,eAACxlB,GAAD,CAAIX,UAAWK,EAAQxG,MAAvB,8BAEF,sBAAKmG,UAAWK,EAAQilB,IAAxB,SACE,qBAAItlB,UAAWK,EAAQklB,GAAvB,SACG8B,EAAK5b,KAAI,SAACmI,EAAIqE,GACb,OAAKlP,IAAWyd,EAAKG,KAAM/S,EAAGgT,cAE5B,eAAC,IAAD,CAEEC,GAAIjT,EAAGmT,OAASnT,EAAGzT,SAAS,GAAG4mB,MAC/BvV,SAAU,SAAA0V,GACR,QAAKA,IACL3V,EAAUqC,IACH,IAET5T,UAAWO,IAAWF,EAAQkQ,KAAMlQ,EAAQ+nB,WAC5CnB,gBAAiB5mB,EAAQof,WAT3B,SAUE,qBAAIzf,UAAWK,EAAQmlB,GAAvB,SACE,uBAAMxlB,UAAWK,EAAQqlB,UAAW2C,UAAWzU,EAAG1D,MAAlD,SACG0D,EAAG1D,WAXH+H,GAH2C,sCAsB1D,uBAAKjY,UAAWK,EAAQ+lB,uBAAxB,UACE,eAAC,GAAD,CACE3pB,MAAM,YACNwD,KAAMqoB,GACNpoB,YAAaqoB,GACbhf,QAAS,kBAAMiR,GAAQ,IAJzB,yBAOA,eAAC5K,EAAA,EAAD,CAAmBC,YAAaA,EAAhC,SACE,uBAAK7L,IAAK2jB,EAAV,UACE,0BACEpe,QA5DI,SAAAwG,GAClB,IAAMyY,EAASb,EAAqBxc,QAAQC,wBAC5Cmc,EAAqB,CAAEhiB,EAAGijB,EAAOjjB,EAAGF,EAAGmjB,EAAOnjB,EAAI,IAElDkK,EAAYD,EAAW,KAAOS,EAAMC,eACpC8X,SAASC,cAAc,SAASC,UAAUS,IAAI,yBAC9CX,SAASC,cAAc,QAAQC,UAAUS,IAAI,0BAuD/BzoB,UAAWK,EAAQ2E,iBAFrB,UAGE,eAAC,GAAD,IACCkC,GAAa,sBAAKlH,UAAWK,EAAQ6G,eAExC,eAACwhB,EAAA,EAAD,CACE1kB,IAAK+F,EACL/G,GAAIA,EACJgM,KAAMkZ,EACN5Y,SAAUA,EACVtP,UAAWK,EAAQgmB,OACnBzX,eAAe,EACfV,UAAU,aACVC,UAAW,CACTK,OAAQ,CACNH,SAAS,EACTG,OAAQ,SAEVF,gBAAiB,CACfD,SAAS,EACTE,kBAAmB,WACnBtP,QAAS,IAhBf,SAmBE,eAAC,GAAD,CACE8K,UAAWA,EACX9E,aAAcqiB,EACdzd,MAAOgG,EACP/F,cAAe5C,EACf8C,uBAAwBwd,mBAQrClW,GAAUA,EAAOnR,UAChB,eAAC,GAAD,CAAWgb,KAAM7J,EAAQjR,QAASA,EAASmmB,KAAMA,IAElDxX,GAAQ,eAAC,GAAD,CAAYnF,MAAO,kBAAM2Q,GAAQ,IAAQkJ,SAnHrC,SAAAiF,GACfnO,GAAQ,GACRoN,EAAQO,KAAK,8BAA+B,CAAEnlB,GAAI2lB,EAAQhd,oB,UCjFxD9L,GAAS,CACbqM,QAAS,CACP/N,QAAS,OACTe,WAAY,SACZ,UAAW,CACTkH,YAAa,KAGjBmC,QAAS,CACPpK,QAAS,OACTe,WAAY,SACZzC,MAAO3B,GACPuD,OAAQ,EACRmX,WAAY,iBAIV7V,GAAYC,YAAWC,IAad+oB,GAXM,SAAC,GAAuC,IAArC5oB,EAAoC,EAApCA,UAAWG,EAAyB,EAAzBA,SAC3BE,GADoD,wCAC1CV,MAEhB,OACE,uBAAKK,UAAWO,IAAWF,EAAQ6L,QAASlM,GAA5C,UACE,eAAC,GAAD,IACA,eAACiB,GAAD,CAAOjB,UAAWK,EAAQkI,QAA1B,SAAoCpI,QChC3B,IACb0oB,aAAc,CACZ1qB,QAAS,OACTwG,eAAgB,gBAChBzF,WAAY,SACZ+G,cAAe,OAEjB6iB,yBAA0B,CACxB3qB,QAAS,OACTe,WAAY,UAEdkJ,MAAO,CACLtD,WAAY,IAEdikB,cAAe,CACbjkB,WAAY,IAEdkkB,WAAY,CACVvsB,MAAOrC,GACPyC,WAAY,OACZD,SAAU,IAEZmL,KAAM,CACJ3B,YAAa,GAEf8J,MAAO,CACL9J,YAAa,KCjBXzG,GAAYC,YAAWC,IAmDdopB,GAjDM,SAAC,GASf,IARLjpB,EAQI,EARJA,UACA2D,EAOI,EAPJA,MACAyE,EAMI,EANJA,MACA8gB,EAKI,EALJA,OAKI,IAJJC,eAII,MAJM,GAIN,EAHJhpB,EAGI,EAHJA,SACAipB,EAEI,EAFJA,SACAC,EACI,EADJA,cAEMhpB,EAAUV,KAChB,OACE,uBAAKK,UAAWO,IAAWF,EAAQwoB,aAAc7oB,GAAjD,UACE,uBAAKA,UAAWK,EAAQyoB,yBAAxB,UACE,eAAC,GAAD,UAAQnlB,MACLylB,GAAYA,EACdhhB,GACC,eAAC,GAAD,CAAcpI,UAAWK,EAAQ+H,MAAjC,4BAED+gB,EAAQpnB,OAAS,GAChB,qCACGonB,EAAQ1d,KAAI,SAACK,EAAQmM,GAAT,OACX,eAAC,GAAD,CAEEjY,UAAWK,EAAQ0oB,cACnB9oB,KAAM6L,EAAO/D,KACb7H,YAAa4L,EAAOwd,YACpBlY,OAAQtF,EAAOsF,OACfC,aAAcvF,EAAOuF,aANvB,SAOE,eAACtQ,GAAD,CAAOf,UAAWK,EAAQ2oB,WAA1B,SAAuCld,EAAOyd,QANzCtR,WAYf,gBAACuR,GAAA,EAAD,CAAKrrB,QAAQ,OAAO8H,cAAc,MAAM/G,WAAW,SAAnD,WACG,OAACgqB,QAAD,IAACA,IAAU,IAAIzd,KAAI,WAAkBwM,GAAlB,IAAGlQ,EAAH,EAAGA,KAAMmI,EAAT,EAASA,MAAT,OAClB,gBAACsZ,GAAA,EAAD,CAAerrB,QAAQ,OAAOe,WAAW,SAAzC,UACE,sBAAKc,UAAWK,EAAQ0H,KAAxB,SAA+BA,IAC/B,eAAC1G,GAAD,CAAQrB,UAAWK,EAAQ6P,MAA3B,SAAmCA,MAF3B+H,MAKXoR,KAEFlpB,M,yHCmDQN,GA1GA,CACb8D,MAAO,CACLwC,WAAY,GAEdmO,MAAO,CACLpO,aAAc,GACdrB,WAAY,IAEdqH,QAAS,CACPjN,QAAS,YACTQ,MAAO,IACPtB,QAAS,OACT8H,cAAe,UAEjB4iB,aAAc,CACZ1qB,QAAS,OACT8H,cAAe,MACf/G,WAAY,SACZgH,aAAc,IAEhBujB,kBAAmB,CACjB5kB,UAAW,GACX1G,QAAS,OACT8H,cAAe,OAEjB8B,KAAM,CACJ1E,UAAW,aACX+C,YAAa,IAEfsjB,SAAU,CACRrmB,UAAW,aACX+C,YAAa,EACbtB,YAAa,GAEf6kB,OAAQ,CACN9kB,UAAW,QAEb+kB,YAAa,CACX/kB,UAAW,OAEbglB,uBAAwB,CACtB3jB,aAAc,IAEhB4jB,YAAa,CACX3rB,QAAS,QACTsB,MAAO,QAETsqB,kBAAmB,CACjBvkB,WAAY,4DACZpL,gBAAiBA,GACjB4vB,eAAgB,QAChBlrB,OAAQ,QACRW,MAAO,QACP0F,SAAU,WACVG,KAAM,MACNd,MAAO,MACPM,WAAY,QACZsB,YAAa,QACbya,UAAW,SAEboJ,KAAM,CACJ/jB,aAAc,OAEhB3I,MAAO,CACL2U,UAAW,WAEbgY,YAAa,CACXhkB,aAAc,OAEhB0b,aAAc,CACZnlB,MAAO3B,IAETqmB,cAAe,CACbhjB,QAAS,OACTwG,eAAgB,SAChBuB,aAAc,OAEhBikB,cAAe,CACbhsB,QAAS,OACTwG,eAAgB,SAChBzF,WAAY,UAEdkrB,YAAa,CACXhkB,YAAa,IAEfikB,OAAQ,CACNjkB,YAAa,IAEfkkB,aAAc,CACZlkB,YAAa,GACboO,OAAQ,aAEV+V,gBAAiB,CACf1lB,UAAW,IAEb2lB,gBAAiB,CACf3lB,UAAW,IAEbuD,MAAO,CACL3L,MAAO3B,IAET2vB,YAAa,CACXtsB,QAAS,SCxGPusB,GACG,QADHA,GAEO,WAFPA,GAGO,WAHPA,GAIE,OCYF/qB,GAAYC,YAAWC,IAEvB8qB,GAAYlhB,IAAH,6RAgBTmhB,GAAgBnhB,IAAH,qGAiHJohB,GAvGO,SAAC,GAAyB,IAAvB7D,EAAsB,EAAtBA,MAAO8D,EAAe,EAAfA,SACxBzqB,EAAUV,KACVioB,EAAUC,cACRkD,EAAgBC,qBAAWC,GAA3BF,YAHqC,EAKL1gB,oBAAS,GALJ,mBAKtC6gB,EALsC,KAKxBC,EALwB,OAOAC,YAAaR,GAAe,CACvE9H,YAAa,YAAmB,IAAhBuI,EAAe,EAAfA,SACdN,EAAYM,GACZzD,EAAQO,KAAK,QAV4B,mBAOtCmD,EAPsC,KAOhBC,EAPgB,KAOvBnjB,MAPuB,EAcAwC,YAAY+f,GAAW,CAClE7H,YAAa,YACX,GADsC,EAAxB0I,SACD,CACX,IAAMrY,EAAU,CACdoP,QAAS,CACPkJ,QAAS,CACP,4BAA6BC,KAAOC,OAAO3E,EAAM4E,gBAIvD,OAAON,EAAYnY,GAErB,OAAOgY,GAAgB,MA1BkB,mBActCK,EAdsC,KAcnBK,EAdmB,KAc1BzjB,MA0Bb0jB,EAAe,WACnB,GAAgC,IAA5B9E,EAAM+E,WAAWhqB,OAArB,CAKA,IAAMoR,EAAU,CACdvH,UAAW,CACTogB,SAAUhF,EAAM4E,YAChBK,SAAUjF,EAAMkF,cAChB7T,KAAM2O,EAAM+E,WACZI,WAAYnF,EAAMoF,iBAEpB7J,QAAS,CACPkJ,QAAS,CACP,4BAA6BC,KAAOC,OAAO3E,EAAM4E,gBAKvDJ,EAASrY,QAlBPgY,GAAgB,IA8BdvJ,EARA2J,EAAmB,wBACS,IAA5BvE,EAAM+E,WAAWhqB,QAAgBmpB,EAC5B,qCACLW,GAAiBX,EACZ,qCACF,KAKT,OACE,uCACE,eAAC/pB,GAAD,CAAKnB,UAAWK,EAAQ4pB,KAAxB,uDAIA,eAAC,KAAD,CAAQ3G,SAAU,aAAUtI,cAAe,GAA3C,SACE,gBAAC,KAAD,WACE,eAAC,GAAD,CACE7L,KAAK,MACLsD,MAAOuU,EAAM+E,WACbxZ,SAvDc,SAAAE,GACtBqY,EAAS,CACPxiB,KAAMoiB,GACN2B,QAAS,CACPN,WAAYtZ,KAGhB0Y,GAAgB,IAiDRhV,UAAW,EACX/N,MAAO8iB,EACPoB,iBAAe,IAEjB,yBAAQ/iB,QAASuiB,EAAc9rB,UAAWK,EAAQoqB,mBAGtD,uBAAKzqB,UAAWK,EAAQupB,YAAxB,UACGhI,GAAgB,eAAC/gB,GAAD,CAAGb,UAAWK,EAAQuhB,aAAtB,SAAqCA,IACtD,eAAC2B,GAAD,CAAQha,QAASuiB,EAAczf,gBAAiBhM,EAAQypB,YAAxD,0B,UC3HFnqB,GAAYC,YAAWC,IAEvB+qB,GAAgBnhB,IAAH,qGAUbyY,GAAmBC,OAAaC,MAAM,CAC1CmK,YAAapK,OACVE,SAAS,6BACTmK,MAAM,gDACTC,gBAAiBtK,SAGbnH,GAAgB,CACpBuR,YAAa,GACbE,iBAAiB,GAuLJC,GApLQ,SAAC,GAAyB,IAAvB1F,EAAsB,EAAtBA,MAAO2F,EAAe,EAAfA,SACzBC,EAAqBnjB,IAAH,8LAEP,YAAbkjB,EAAA,0BAGe,YAAbA,EAAA,4BAKAE,EAAqBpjB,IAAH,uYAGL,YAAbkjB,EAAA,0BAOe,YAAbA,EAAA,0BAQFtsB,EAAUV,KACVioB,EAAUC,cACRkD,EAAgBC,qBAAWC,GAA3BF,YA/BsC,EAiCE1gB,mBAAS,IAjCX,mBAiCvCyiB,EAjCuC,KAiCrBC,EAjCqB,OAkCU1iB,oBAAS,GAlCnB,mBAkCvC2iB,EAlCuC,KAkCjBC,EAlCiB,OAmCA5iB,oBAAS,GAnCT,mBAmCvC6iB,EAnCuC,KAmCtBC,EAnCsB,OAoCN9iB,oBAAS,GApCH,mBAoCvC6gB,EApCuC,KAoCzBC,EApCyB,OAsCQvgB,YACpDiiB,EACA,CACE/J,YAAa,YAAoC,EAAjCsK,kBACJ9B,IAAgBH,GAAgB,MA1CF,mBAsCvCiC,EAtCuC,KAsCXvB,EAtCW,KAsClBzjB,MAtCkB,EA+CagjB,YACzDwB,EACA,CACEhhB,UACe,YAAb+gB,EACI,CACEX,SAAUhF,EAAM4E,YAChBK,SAAUjF,EAAMkF,cAChBmB,OAAQC,OAAOC,SAASC,UAE1B,CACExB,SAAUc,EACVO,OAAQC,OAAOC,SAASC,UAEhC1K,YAAa,YAA4C,IAAf3P,EAAc,EAAxCsa,yBACdC,aAAeva,GACZwa,MAAK,SAAAC,GACJ,IAAMhiB,EACS,YAAb+gB,EACI,CACEX,SAAUhF,EAAM4E,YAChBK,SAAUjF,EAAMkF,cAChBC,WAAYnF,EAAMoF,gBAClByB,kBAAmBD,EACnBP,OAAQC,OAAOC,SAASC,UAE1B,CACExB,SAAUc,EACVX,WAAYa,EACZa,kBAAmBD,EACnBP,OAAQC,OAAOC,SAASC,UAEhCJ,EAAkB,CAChBxhB,iBAGHkiB,OAAM,SAAAC,GACLjjB,QAAQ1C,MAAM2lB,GACd5C,GAAgB,SArFoB,mBA+CvC6C,EA/CuC,KA+CZC,EA/CY,KA+CnB7lB,MA/CmB,EA2FDgjB,YAAaR,GAAe,CACvE9H,YAAa,YAAmB,IAAhBuI,EAAe,EAAfA,SACdN,EAAYM,GACZzD,EAAQO,KAAK,QA9F6B,mBA2FvCmD,EA3FuC,KA2FjBC,EA3FiB,KA2FxBnjB,MAOhB8lB,EAAc,SAACC,EAAcC,GACjC,OAAKD,GAAiBC,EAClBH,GAAuB1C,GAAcM,EAChC,wBACLsC,EAAaE,QAAUD,EAAcC,OAAeF,EAAaE,OACjEnB,EAAwB,iBACxBhC,EAAqB,qCAClB,KANqC,MAS9C,OACE,uCACgB,qBAAbyB,GACC,eAAC,KAAD,CACEzK,iBAAkBA,GAClBlH,cAAeA,GACfsI,SAAU,SAAA5L,GACRyV,GAAmB,GACnBJ,EAAoBrV,EAAO6U,aAC3BU,EAAwBvV,EAAO+U,iBAC/BuB,KAPJ,SASG,gBAAGpT,EAAH,EAAGA,OAAQD,EAAX,EAAWA,QAAX,OACC,gBAAC,KAAD,CAAM3X,GAAG,YAAT,UACE,eAAC,KAAD,CACEmM,KAAK,cACLe,MAAM,SACNjE,KAAK,KACLyW,UAAWrQ,GACXoB,WAAS,EACTC,WAAS,EACT1T,UAAWK,EAAQiU,MACnBlM,MAAO8lB,EAAYtT,EAAQD,GAC3B2T,QAAS,WACHpB,GAAiBC,GAAmB,MAG5C,uBAAKntB,UAAWK,EAAQopB,kBAAxB,UACE,eAAC,KAAD,CACEta,KAAK,kBACLnP,UAAWK,EAAQqpB,SACnBhH,UAAW7M,KAEb,eAACvU,GAAD,CAAQtB,UAAWK,EAAQkuB,WAA3B,kCAIF,uBAAKvuB,UAAWK,EAAQupB,YAAxB,UACGsE,EAAYtT,EAAQD,IACnB,eAAC9Z,GAAD,CAAGb,UAAWK,EAAQuhB,aAAtB,SACGsM,EAAYtT,EAAQD,KAGzB,eAAC4I,GAAD,CACEjb,KAAK,SACLoS,KAAK,YACLrO,gBAAiBhM,EAAQypB,YAH3B,+BAWI,YAAb6C,GACC,uCACE,eAAClsB,GAAD,CAAIT,UAAWK,EAAQ4pB,KAAvB,kEAGA,eAAC1G,GAAD,CACEjb,KAAK,SACLoS,KAAK,YACLnR,QAAS,kBAAMykB,KACf3hB,gBAAiBhM,EAAQypB,YAJ3B,6B,6BC9LJnqB,GAAYC,YAAWC,IAEvB2uB,GAAQ/kB,IAAH,oJAMLmjB,GAAqBnjB,IAAH,wIAMlBojB,GAAqBpjB,IAAH,mNASlBmhB,GAAgBnhB,IAAH,qGAUbyY,GAAmBC,OAAaC,MAAM,CAC1CoK,MAAOrK,OACJjS,MAAM,SACNmS,WACAmK,QACHP,SAAU9J,OAAaE,SAAS,8BAChC8J,WAAYhK,SAGRnH,GAAgB,CACpBwR,MAAO,GACPP,SAAU,GACVE,YAAY,GAGR+B,GAAc,SAACC,EAAcC,EAAevC,GAChD,OAAKsC,GAAiBC,EAClBvC,EAAsB,qCACtBsC,EAAa3B,OAAS4B,EAAc5B,MAAc2B,EAAa3B,MAC/D2B,EAAalC,UAAYmC,EAAcnC,SAClCkC,EAAalC,SACf,KALqC,MAkL/BwC,GA1KI,SAAC,GAAkC,EAAhCzH,MAAiC,IAA1B8D,EAAyB,EAAzBA,SAAU6B,EAAe,EAAfA,SAC/BtsB,EAAUV,KACVioB,EAAUC,cACRkD,EAAgBC,qBAAWC,GAA3BF,YAH4C,EAKLngB,YAAY4jB,IALP,mBAK7CE,EAL6C,KAK7BC,EAL6B,KAKpCvmB,MAEVwmB,EAAW,yCAAG,WAAO5C,EAAUC,EAAUE,GAA3B,oBAAA0C,EAAA,6DACZ1b,EAAU,CACdvH,UAAW,CACTogB,WACAC,YAEF1J,QAAS,CACPkJ,QAAS,CACP,4BAA6BC,KAAOC,OAAOK,MAR/B,SAYoB0C,EAAMvb,GAZ1B,oBAYJ2b,EAZI,EAYV3kB,MAEWukB,MAdD,0EAgBX5D,EAAS,CACdxiB,KAAMwmB,EAAcJ,MACpBrC,QAAS,CACPT,YAAaI,EACbE,cAAeD,EACfG,gBAAiBD,MArBH,2CAAH,0DAPmC,EAiCMvhB,YACxDiiB,GACA,CACE/J,YAAa,qBAAGsK,mBAA4C9B,OApCZ,mBAiC7C8B,EAjC6C,KAiCjB2B,EAjCiB,KAiCxB3mB,MAjCwB,EAwCOgjB,YACzDwB,GACA,CACE9J,YAAa,YAA4C,IAAf3P,EAAc,EAAxCsa,yBACdC,aAAeva,GACZwa,MAAK,SAAAC,GACJR,EAAkB,CAChBxhB,UAAW,CACTiiB,kBAAmBD,EACnBP,OAAQC,OAAOC,SAASC,eAI7BM,OAAM,SAAAC,GACLjjB,QAAQ1C,MAAM2lB,SAtD4B,mBAwC7CC,EAxC6C,KAwClBC,EAxCkB,KAwCzB7lB,MAxCyB,EA4DCgjB,YACnDR,GACA,CACE9H,YAAa,YAAmB,IAAhBuI,EAAe,EAAfA,SACdN,EAAYM,GACZzD,EAAQO,KAAK,QAjEiC,mBA4D7CmD,EA5D6C,KA4DvB0D,EA5DuB,KA4D9B5mB,MAUtB,OACE,eAAC,KAAD,CACE8Z,iBAAkBA,GAClBlH,cAAeA,GACfsI,SAAU,SAAA5L,GAAM,OACdkX,EAAYlX,EAAO8U,MAAO9U,EAAOuU,SAAUvU,EAAOyU,aAJtD,SAMG,gBAAGvR,EAAH,EAAGA,OAAQD,EAAX,EAAWA,QAAX,OACC,gBAAC,KAAD,CAAM3X,GAAG,aAAT,UACE,eAAC,KAAD,CACEmM,KAAK,QACLe,MAAM,QACNjE,KAAK,KACLyW,UAAWrQ,GACXoB,WAAS,EACTC,WAAS,EACT1T,UAAWK,EAAQiU,MACnBlM,MAAO8lB,GACLtT,EACAD,EACAgU,GACEI,GACAd,GACAe,KAGN,eAAC,KAAD,CACE7f,KAAK,WACLlD,KAAK,KACLyW,UAAWlK,GACXtI,MAAM,WACNuD,WAAS,EACTrL,MAAO8lB,GACLtT,EACAD,EACAgU,GACEI,GACAd,GACAe,KAGN,uBAAKhvB,UAAWK,EAAQopB,kBAAxB,UACE,eAAC,KAAD,CACEta,KAAK,aACLnP,UAAWK,EAAQqpB,SACnBhH,UAAW7M,KAEb,eAACtU,GAAD,mCAEF,uBAAKvB,UAAWK,EAAQspB,OAAxB,UACGuE,GACCtT,EACAD,EACAgU,GACEI,GACAd,GACAe,IAEF,eAACnuB,GAAD,CAAGb,UAAWK,EAAQuhB,aAAtB,SACGsM,GACCtT,EACAD,EACAgU,GACEI,GACAd,GACAe,KAIM,YAAbrC,GACC,eAACpJ,GAAD,CACEjb,KAAK,SACLiB,QAAS,WACP,MAAoB,qBAAbojB,EACHqB,EAAiB,CACfpiB,UAAW,CAAEyhB,OAAQC,OAAOC,SAASC,YAEvC1C,EAAS,CACPxiB,KAAM,OACN+jB,QAAS,MAGjBhgB,gBAAiBhM,EAAQypB,YACzB9pB,UAAWK,EAAQwpB,uBAbrB,mCAiBF,eAACtG,GAAD,CACEjb,KAAK,SACLoS,KAAK,aACLrO,gBAAiBhM,EAAQypB,YAH3B,6BCtNNmF,GAAYxlB,IAAH,iUAgBTylB,GAAiBzlB,IAAH,qMASdmhB,GAAgBnhB,IAAH,qGAUb9J,GAAYC,YAAWC,IAiJdsvB,GA/IO,SAAC,GAAyB,IAAvBnI,EAAsB,EAAtBA,MACjB3mB,GADuC,EAAfyqB,SACdnrB,MACVioB,EAAUC,cACRkD,EAAgBC,qBAAWC,GAA3BF,YAHqC,EAKjB1gB,mBAAS,MALQ,mBAKtCggB,EALsC,KAK9B+E,EAL8B,OAMf/kB,mBAAS,MANM,mBAMtCglB,EANsC,KAM7BC,EAN6B,OAObjlB,oBAAS,GAPI,mBAOtCklB,EAPsC,KAO3BC,EAP2B,OASLnlB,oBAAS,GATJ,mBAStC6gB,EATsC,KASxBC,EATwB,OAUK9gB,mBAAS,IAVd,mBAUtColB,EAVsC,KAUnBC,EAVmB,KAiBvCC,EAAe,CACnB/jB,UAAW,CAAEogB,SAAUhF,EAAM4E,YAAaK,SAAUjF,EAAMkF,eAC1D3J,QAAS,CACPkJ,QAAS,CACP,4BAA6BC,KAAOC,OAAO3E,EAAM4E,eAGrD9I,YAAa,YAAuB,IAApB8M,EAAmB,EAAnBA,aACdR,EAAUQ,EAAavF,QACvBiF,EAAWM,EAAaP,WAItBQ,EAAkB,CACtBjkB,UAAW,CACTogB,SAAUhF,EAAM4E,YAChBK,SAAUjF,EAAMkF,cAChBC,WAAYnF,EAAMoF,gBAClB0D,iBAAkBL,GAEpBlN,QAAS,CACPkJ,QAAS,CACP,4BAA6BC,KAAOC,OAAO3E,EAAM4E,gBAKxCL,EAAethB,YAASilB,GAAgBS,GAA/CvnB,MA5CqC,EA8CvBgjB,YAAaR,GAAe,CAChD9H,YAAa,YAAmB,IAAhBuI,EAAe,EAAfA,SACdN,EAAYM,GACZzD,EAAQO,KAAK,QAHVmD,EA9CsC,sBAqDA1gB,YAAYqkB,GAAW,CAClEnM,YAAa,YAA4B,IAAfiN,EAAc,EAAxBC,SACR7c,EAAU,CACdoP,QAAS,CACPkJ,QAAS,CACP,4BAA6BC,KAAOC,OAAO3E,EAAM4E,gBAIvDmE,EAAUzE,EAAYnY,GAAWgY,GAAgB,MA9DR,mBAqDtC6E,EArDsC,KAqDnBnE,EArDmB,KAqD1BzjB,MAab8lB,EAAc,WAClB,OAAIrC,GAAiBN,EAAmB,yBACP,IAA7BkE,EAAkB1tB,QAAgBmpB,EAC7B,qCACLA,EAAqB,qCAClB,MAGHY,EAAe,WACc,IAA7B2D,EAAkB1tB,OAItBiuB,EAASH,GAHP1E,GAAgB,IAMpB,OACEd,GACAgF,GACE,uCACE,uBAAKrvB,UAAWK,EAAQ6pB,YAAxB,UACE,eAAC3oB,GAAD,CAAQvB,UAAWK,EAAQ9C,MAA3B,2IAIA,eAACgE,GAAD,CAAQvB,UAAWK,EAAQ9C,MAA3B,kKAMF,sBAAKyC,UAAWK,EAAQ8gB,cAAxB,SACE,eAAC,KAAD,CAAQlV,KAAM,IAAKkY,QAASnqB,EAAcyY,MAAO4c,MAEnD,uBAAKrvB,UAAWK,EAAQ8pB,cAAxB,UACE,eAAC5oB,GAAD,CAAQvB,UAAWK,EAAQ+pB,YAA3B,0BACA,eAAC7oB,GAAD,CAAQvB,UAAWuvB,EAAYlvB,EAAQgqB,OAAShqB,EAAQiqB,aAAxD,SACGD,IAEH,eAAC,GAAD,CACEjS,UAAWiS,IAAWgF,EACtB5yB,MAAM,UACN8M,QAAS,WACPimB,GAAYD,IAJhB,SAMGA,EAAY,OAAS,YAG1B,sBAAKvvB,UAAWK,EAAQkqB,gBAAxB,SAEE,eAAC,KAAD,CAAQjH,SAAU,aAAUtI,cAAe,GAA3C,SACE,gBAAC,KAAD,WACE,eAAC,GAAD,CACE7L,KAAK,MACLsD,MAAOgd,EACPld,SA7GU,SAAAE,GACtBid,EAAqBjd,GACrB0Y,GAAgB,IA4GJhV,UAAW,EACX/N,MAAO8iB,EACPoB,iBAAe,IAEjB,yBAAQ/iB,QAASuiB,EAAc9rB,UAAWK,EAAQoqB,qBAIxD,uBAAKzqB,UAAWK,EAAQupB,YAAxB,UACGsE,KACC,eAACrtB,GAAD,CAAGb,UAAWK,EAAQuhB,aAAtB,SAAqCsM,MAEvC,eAAC3K,GAAD,CAAQha,QAASuiB,EAAczf,gBAAiBhM,EAAQypB,YAAxD,yBC7KJmG,GAA0B,UAE1BtwB,GAAYC,YAAWC,IAEvBqwB,GAAe,CACnBnE,WAAY,GACZH,YAAa,GACbM,cAAe,GACfE,iBAAiB,EACjB+D,WAAYzF,IAGR0F,GAAU,SAACpJ,EAAOtW,GAAY,IAC1BpI,EAAkBoI,EAAlBpI,KAAM+jB,EAAY3b,EAAZ2b,QACd,OAAO,uCAAKrF,GAAUqF,GAAtB,IAA+B8D,WAAY7nB,KA4C9B+nB,GAzCG,WAChB,IAAMhwB,EAAUV,KADM,EAGI2wB,qBAAWF,GAASF,IAHxB,mBAGflJ,EAHe,KAGR8D,EAHQ,KA4BtB,OACE,eAACjc,GAAA,EAAD,CAAO0hB,UAAW,EAAlB,SACE,uBAAKvwB,UAAWK,EAAQ6L,QAAxB,UACE,uBAAKlM,UAAWK,EAAQwoB,aAAxB,UACE,eAAC,GAAD,CAAM7oB,UAAWK,EAAQ0H,OACzB,eAACnH,GAAD,CAAIZ,UAAWK,EAAQsD,MAAvB,8BA5BY,WAClB,OAAQqjB,EAAMmJ,YACZ,KAAKzF,GACH,OACE,eAAC,GAAD,CACE1D,MAAOA,EACP8D,SAAUA,EACV6B,SAAUsD,KAGhB,KAAKvF,GACH,OAAO,eAAC,GAAD,CAAe1D,MAAOA,EAAO8D,SAAUA,IAChD,KAAKJ,GACH,OAAO,eAAC,GAAD,CAAe1D,MAAOA,EAAO8D,SAAUA,IAChD,KAAKJ,GACH,OACE,eAAC,GAAD,CAAgB1D,MAAOA,EAAO2F,SAAUsD,MAczCO,SC7DH7wB,GAAYC,YAAWC,IAoBd4wB,GAlBD,WACZ,IAAMpwB,EAAUV,KAEhB,OACE,eAAC+wB,EAAA,EAAD,CACEnsB,WAAS,EACTyU,QAAS,EACT2X,UAAU,SACVzxB,WAAW,SACX0xB,QAAQ,SACR5wB,UAAWK,EAAQ0pB,kBANrB,SAOE,eAAC2G,EAAA,EAAD,UACE,eAAC,GAAD,SCJFG,GAAc,kBAAM,IAAIC,gBAAgBC,cAAcC,SACtDrxB,GAAYC,YAAWC,IAEvBoxB,GAAyBxnB,IAAH,kKAStBynB,GAAWznB,IAAH,6QAiBRyY,GAAmBC,KAAW,CAClC8J,SAAU9J,OACPE,SAAS,0BACT8O,IAJuB,EAEhB,8CAFgB,EAEhB,gBAMV3G,gBAAiBrI,OACdE,SAAS,+BACT+O,MAAM,CAACjP,KAAQ,aAAc,0BAG5BnH,GAAgB,CACpBiR,SAAU,GACVzB,gBAAiB,IAGb0F,GAAe,CACnBlE,SAAU,KACVrF,KAAM,KACN0K,OAAQ,IAGJjB,GAAU,SAACpJ,EAAOtW,GAAY,IAC1BpI,EAAkBoI,EAAlBpI,KAAM+jB,EAAY3b,EAAZ2b,QACd,OAAO,uCAAKrF,GAAUqF,GAAtB,IAA+BgF,OAAQ/oB,KAGnC4lB,GAAc,SAClBC,EACAC,EACA7C,EACAM,GAEA,OAAKsC,GAAiBC,EAClB7C,GAAcM,EAAsB,wBACpCsC,EAAalC,UAAYmC,EAAcnC,SAClCkC,EAAalC,SAClBkC,EAAa3D,iBAAmB4D,EAAc5D,gBACzC2D,EAAa3D,gBACf,KANqC,MAmJ/B8G,GA1IE,WAAO,IAAD,EACfjxB,EAAUV,KACVioB,EAAUC,cACV0J,EAAQV,KAAcW,IAAI,KAC1BC,EAAU,UAAGZ,KAAcW,IAAI,aAArB,QAA8B,KAJzB,EAMKlB,qBAAWF,GAASF,IANzB,mBAMdlJ,EANc,KAMP8D,EANO,KAQf6E,EAAe,CACnBpN,QAAS,CACPkJ,QAAS,CACP,4BAA6BgG,IAGjC7lB,UAAW,CAAE2lB,MAAOA,GACpBzO,YAAa,YAAqC,IAAZmH,EAAW,EAAjCyH,qBACd,IAAKzH,EACH,OAAOa,EAAS,CACdxiB,KAAM,YAGVwiB,EAAS,CACPxiB,KAAM,UACN+jB,QAAS,CACPL,SAAU/B,EAAK+B,SACfrF,KAAMsD,EAAKtD,SAIjB9b,QAAS,kBACPigB,EAAS,CACPxiB,KAAM,cA/BS,EAmCkB2B,YACrCgnB,GACAtB,GAFapE,EAnCM,EAmCbnjB,MAAmBgC,EAnCN,EAmCMA,QAnCN,EAwCwBQ,YAAYsmB,GAAU,CACjEpO,YAAa,YAA2B,EAAxBG,UACD2E,EAAQO,KAAK,UAAW,CAAEwJ,kBAAkB,OA1CxC,mBAwCd1O,EAxCc,KAwCK4I,EAxCL,KAwCFzjB,MAMnB,OACE,eAACsoB,EAAA,EAAD,CACEnsB,WAAS,EACTyU,QAAS,EACT2X,UAAU,SACVzxB,WAAW,SACX0xB,QAAQ,SACR5wB,UAAWK,EAAQ0pB,kBANrB,SAOE,eAAC2G,EAAA,EAAD,UACE,+BACE,eAAC7hB,GAAA,EAAD,CAAO0hB,UAAW,EAAlB,SACE,uBAAKvwB,UAAWK,EAAQ6L,QAAxB,UACE,uBAAKlM,UAAWK,EAAQwoB,aAAxB,UACE,eAAC,GAAD,CAAM7oB,UAAWK,EAAQ0H,OACzB,eAACtH,GAAD,CAAIT,UAAWK,EAAQsD,MAAvB,+BAEAyG,GAA4B,YAAjB4c,EAAMqK,QACjB,eAAC,KAAD,CACEnP,iBAAkBA,GAClBlH,cAAeA,GACfsI,SAAU,SAAA5L,GACRuL,EAAS,CACPrX,UAAW,CACT2lB,MAAOA,EACPvF,SAAUhF,EAAMgF,SAChBC,SAAUvU,EAAOuU,SACjBtF,KAAMK,EAAML,SATpB,SAaG,gBAAG/L,EAAH,EAAGA,OAAQD,EAAX,EAAWA,QAAX,OACC,gBAAC,KAAD,CAAM3X,GAAG,gBAAT,UACE,eAAC,KAAD,CACEmM,KAAK,WACLe,MAAM,oBACNwD,WAAS,EACTgP,UAAWlK,GACXvM,KAAK,KACLwH,WAAS,EACTzT,UAAWK,EAAQiU,QAErB,eAAC,KAAD,CACEnF,KAAK,kBACLe,MAAM,wBACNwS,UAAWlK,GACXvM,KAAK,KACLwH,WAAS,IAEX,uBAAKzT,UAAWK,EAAQspB,OAAxB,UACGuE,GACCtT,EACAD,EACA4Q,EACAM,IAEA,eAAChrB,GAAD,CAAGb,UAAWK,EAAQuhB,aAAtB,SACGsM,GACCtT,EACAD,EACA4Q,EACAM,KAIN,eAACtI,GAAD,CACEjb,KAAK,SACLoS,KAAK,gBACLrO,gBAAiBhM,EAAQypB,YAH3B,4BAWR1f,GAA4B,YAAjB4c,EAAMqK,QACjB,uCACE,eAAC9vB,GAAD,+BACA,gBAACA,GAAD,mDACwC,IACtC,uDAFF,qDCnMZ5B,GAAYC,YAAWC,IAEvB+xB,GAA0BnoB,IAAH,kLAUvBooB,GAAYpoB,IAAH,oKAMTymB,GAAe,CACnB4B,OAAQ,KACRzH,OAAQ,KACRgF,QAAS,KACTgC,OAAQ,MAGJjB,GAAU,SAACpJ,EAAOtW,GAAY,IAC1BpI,EAAkBoI,EAAlBpI,KAAM+jB,EAAY3b,EAAZ2b,QACd,OAAO,uCAAKrF,GAAUqF,GAAtB,IAA+BgF,OAAQ/oB,KAwK1BypB,GArKE,WACf,IAAM1xB,EAAUV,KACVioB,EAAUC,cAEV0J,EADoB,IAAIT,gBAAgBC,cAAcC,QAChCQ,IAAI,KAJX,EAMWnnB,oBAAS,GANpB,mBAMdklB,EANc,KAMHC,EANG,OAOmBnlB,oBAAS,GAP5B,mBAOd6gB,EAPc,KAOAC,EAPA,OAQ6B9gB,mBAAS,IARtC,mBAQdolB,EARc,KAQKC,EARL,OAUKY,qBAAWF,GAASF,IAVzB,mBAUdlJ,EAVc,KAUP8D,EAVO,OAiBkB7gB,YAAS2nB,GAAyB,CACvEhmB,UAAW,CAAE2lB,MAAOA,GACpBzO,YAAa,YAAqC,IAAZmH,EAAW,EAAjC+H,qBAMZlH,EALGb,EAKM,CACP3hB,KAAM,UACN+jB,QAAS,CACPyF,OAAQ7H,EAAKgI,QACb5H,OAAQJ,EAAKI,OACbgF,QAASpF,EAAKoF,UATT,CACP/mB,KAAM,aAaZuC,QAAS,WACPigB,EAAS,CACPxiB,KAAM,eApBGijB,EAjBM,EAiBbnjB,MAAmBgC,EAjBN,EAiBMA,QAjBN,EA0CwBQ,YAAYinB,GAAW,CAClE/O,YAAa,YAA2B,EAAxBoP,SACJtK,EAAQO,KAAK,KAAOgD,GAAgB,MA5C7B,mBA0Cd+G,EA1Cc,KA0CKrG,EA1CL,KA0CFzjB,MAMb8lB,EAAc,WAClB,OAAI3C,EAAmB,wBACU,IAA7BkE,EAAkB1tB,QAAgBmpB,EAC7B,qCACLW,GAAiBX,EACZ,qCACF,MAGHY,EAAe,WACc,IAA7B2D,EAAkB1tB,OAItBmwB,EAAS,CACPtmB,UAAW,CACT2lB,MAAOA,EACPO,OAAQ9K,EAAM8K,OACdzZ,KAAMoX,KAPRtE,GAAgB,IAYpB,OACE,eAACuF,EAAA,EAAD,CACEnsB,WAAS,EACTyU,QAAS,EACT2X,UAAU,SACVzxB,WAAW,SACX0xB,QAAQ,SACR5wB,UAAWK,EAAQ0pB,kBANrB,SAOE,eAAC2G,EAAA,EAAD,UACE,+BACE,eAAC7hB,GAAA,EAAD,CAAO0hB,UAAW,EAAlB,SACE,uBAAKvwB,UAAWK,EAAQ6L,QAAxB,UACE,uBAAKlM,UAAWK,EAAQwoB,aAAxB,UACE,eAAC,GAAD,CAAM7oB,UAAWK,EAAQ0H,OACzB,eAACtH,GAAD,CAAIT,UAAWK,EAAQsD,MAAvB,+BAEAyG,GAA4B,YAAjB4c,EAAMqK,QACjB,uCACE,sBAAKrxB,UAAWK,EAAQ6pB,YAAxB,SACE,eAAC5oB,GAAD,CAAQtB,UAAWK,EAAQ9C,MAA3B,yLAMF,sBAAKyC,UAAWK,EAAQ8gB,cAAxB,SACE,eAAC,KAAD,CACElV,KAAM,IACNkY,QAASnqB,EACTyY,MAAOuU,EAAMqI,YAGjB,uBAAKrvB,UAAWK,EAAQ8pB,cAAxB,UACE,eAAC7oB,GAAD,CAAQtB,UAAWK,EAAQ+pB,YAA3B,0BAGA,eAAC9oB,GAAD,CACEtB,UACEuvB,EAAYlvB,EAAQgqB,OAAShqB,EAAQiqB,aAFzC,SAIGtD,EAAMqD,SAET,eAAC,GAAD,CACE5tB,MAAM,UACN8M,QAAS,WACPimB,GAAYD,IAHhB,SAKGA,EAAY,OAAS,YAG1B,sBAAKvvB,UAAWK,EAAQkqB,gBAAxB,SAEE,eAAC,KAAD,CAAQjH,SAAU,aAAUtI,cAAe,GAA3C,SACE,gBAAC,KAAD,WACE,eAAC,GAAD,CACE7L,KAAK,MACLsD,MAAOgd,EACPld,SApHA,SAAAE,GACtBid,EAAqBjd,GACrB0Y,GAAgB,IAmHMhV,UAAW,EACX/N,MAAO8iB,EACPoB,iBAAe,IAEjB,yBACE/iB,QAASuiB,EACT9rB,UAAWK,EAAQoqB,qBAK3B,uBAAKzqB,UAAWK,EAAQupB,YAAxB,UACGsE,KACC,eAACrtB,GAAD,CAAGb,UAAWK,EAAQuhB,aAAtB,SAAqCsM,MAEvC,eAAC3K,GAAD,CACEha,QAASuiB,EACTzf,gBAAiBhM,EAAQypB,YAF3B,yBAQJ1f,GAA4B,YAAjB4c,EAAMqK,QACjB,qCACE,eAAC9vB,GAAD,6CCzLZ5B,GAAYC,YAAWC,IAEvBsyB,GAA+B1oB,IAAH,0JAQ5B2oB,GAAiB3oB,IAAH,mMAMdyY,GAAmBC,OAAaC,MAAM,CAC1C6J,SAAU9J,OACPE,SAAS,8BACTC,KACC,MACA,oDACA,SAAA+P,GAAG,OAAIA,EAAItwB,QAAU,KAEzByoB,gBAAiBrI,OAAaiP,MAC5B,CAACjP,KAAQ,YAAa,MACtB,0BAIEnH,GAAgB,CACpBiR,SAAU,GACVzB,gBAAiB,IAGb0D,GAAc,SAACC,EAAcC,EAAevC,GAChD,OAAKsC,GAAiBC,EAClBvC,EAAsB,wBACtBsC,EAAalC,UAAYmC,EAAcnC,SAClCkC,EAAalC,SAClBkC,EAAa3D,iBAAmB4D,EAAc5D,gBACzC2D,EAAa3D,gBACf,KANqC,MAsH/B8H,GA7GO,WACpB,IAAMjyB,EAAUV,KACVioB,EAAUC,cAEV0J,EADoB,IAAIT,gBAAgBC,cAAcC,QAChCQ,IAAI,KAJN,EAKEnnB,mBAAS,MALX,mBAKnBynB,EALmB,KAKXS,EALW,OAMMloB,oBAAS,GANf,mBAMnBmoB,EANmB,KAMRC,EANQ,OAOUpoB,oBAAS,GAPnB,mBAOnBqoB,EAPmB,KAOJC,EAPI,KAS1B1oB,YAASkoB,GAA8B,CACrCvmB,UAAW,CAAE2lB,MAAOA,GACpBzO,YAAa,YAA0C,IAAZmH,EAAW,EAAtC2I,0BACdH,GAAW,GACNxI,GAGH0I,GAAW,GACXJ,EAAUtI,EAAKjnB,KAHf2vB,GAAW,IAMf9nB,QAAS,WACP4nB,GAAW,GACXE,GAAW,MAtBW,MA0BS/nB,YAAYwnB,GAAgB,CAC7DtP,YAAa,YAAgC,EAA7B+P,eACDjL,EAAQO,KAAK,QA5BJ,mBA0BnB0K,EA1BmB,KA0BFzqB,EA1BE,KA0BFA,MAMxB,OACE,eAACsoB,EAAA,EAAD,CACEnsB,WAAS,EACTyU,QAAS,EACT2X,UAAU,SACVzxB,WAAW,SACX0xB,QAAQ,SACR5wB,UAAWK,EAAQ0pB,kBANrB,SAOE,eAAC2G,EAAA,EAAD,UACE,+BACE,eAAC7hB,GAAA,EAAD,CAAO0hB,UAAW,EAAlB,SACE,uBAAKvwB,UAAWK,EAAQ6L,QAAxB,UACE,uBAAKlM,UAAWK,EAAQwoB,aAAxB,UACE,eAAC,GAAD,CAAM7oB,UAAWK,EAAQ0H,OACzB,eAACtH,GAAD,CAAIT,UAAWK,EAAQsD,MAAvB,+BAEA6uB,GAAaE,GACb,eAAC,KAAD,CACExQ,iBAAkBA,GAClBlH,cAAeA,GACfsI,SAAU,SAAA5L,GACRmb,EAAc,CACZjnB,UAAW,CACT2lB,MAAOA,EACPO,OAAQA,EACRgB,YAAapb,EAAO8S,oBAR5B,SAYG,gBAAG5P,EAAH,EAAGA,OAAQD,EAAX,EAAWA,QAAX,OACC,gBAAC,KAAD,CAAM3X,GAAG,iBAAT,UACE,eAAC,KAAD,CACEmM,KAAK,WACLuE,WAAS,EACTzH,KAAK,KACLyW,UAAWlK,GACXtI,MAAM,eACNuD,WAAS,EACTzT,UAAWK,EAAQiU,QAErB,eAAC,KAAD,CACEnF,KAAK,kBACLlD,KAAK,KACLyW,UAAWlK,GACXtI,MAAM,wBACNuD,WAAS,IAEX,uBAAKzT,UAAWK,EAAQspB,OAAxB,UACGuE,GAAYtT,EAAQD,EAASvS,IAC5B,eAACvH,GAAD,CAAGb,UAAWK,EAAQuhB,aAAtB,SACGsM,GAAYtT,EAAQD,EAASvS,KAGlC,eAACmb,GAAD,CACEjb,KAAK,SACLoS,KAAK,iBACLrO,gBAAiBhM,EAAQypB,YAH3B,4BAWR0I,IAAcE,GACd,qCACE,eAACnxB,GAAD,6CC/JlB,SAAS,KAA2Q,OAA9P,GAAWG,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,aACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,yBACJK,UAAW,iCACXF,KAAM,WACQ,gBAAoB,OAAQ,CAC1CG,EAAG,mbACHN,GAAI,aAGN,SAAS+vB,GAAUtvB,EAAMC,GACvB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiBovB,IAChC,IC5Cf,SAAS,KAA2Q,OAA9P,GAAWrxB,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,aACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,0BACJK,UAAW,iCACXF,KAAM,WACQ,gBAAoB,OAAQ,CAC1CG,EAAG,mbACHN,GAAI,SACJK,UAAW,kFAGb,SAAS2vB,GAAWvvB,EAAMC,GACxB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,I,GAAI,GAA0B,aAAiBqvB,IC2EhCnzB,ID1EA,IClCA,CACbozB,aAAc,CACZ90B,QAAS,OACT8H,cAAe,MACf,sBAAuB,CACrB9H,QAAS,OACTe,WAAY,SACZ4F,WAAY,GAEd,UAAW,CACT3G,QAAS,OACTe,WAAY,SACZ4F,WAAY,IAEd,qBAAsB,CACpB3G,QAAS,OACTe,WAAY,SACZ4F,WAAY,IAEd,iBAAkB,CAChBnI,OAtBagC,GAAXb,OAuBFgH,WAAY,IAGhBkJ,KAAM,CACJtH,SAAU,EACVvI,QAAS,OACT+H,aAAc,KAEhBgtB,kBAAmB,CACjBp0B,OAAQ,IACR1E,gBAAiBX,EACjBoF,OAAO,aAAD,OAAenF,IAEvBy5B,KAAM,CACJC,SAAU,aACV3uB,UAAW,gCACXzF,aAAc,GACdC,QAAS,GACT7E,gBAAiBP,EACjBsW,KAAM,EACN/J,YAAa,IAEf7B,UAAW,CACTpG,QAAS,OACTwG,eAAgB,iBAElBmH,OAAQ,CACNrP,MAAOzC,EACP6mB,UAAW,EACXtB,SAAU,EACVtgB,QAAS,EACT6a,cAAe,OACf,UAAW,CACT1f,gBAAiB,gBAGrBi5B,iBAAkB,CAChBnhB,UAAW,SACXhM,aAAc,EACdrB,UAAW,EACXC,W5FbW,G4FebwuB,WAAY,CACVptB,a5FhBW,G4FkBbjJ,GAAI,CACF4H,UAAW,GAEb0uB,YAAa,CACX1uB,UAAW,GACXqB,aAAc,GAEhBstB,iBAAkB,CAChBrjB,KAAM,EACNtL,U5F3BW,G4F6Bb4uB,aAAc,CACZtjB,KAAM,IAERujB,WAAY,CACVvjB,KAAM,IAERwjB,YAAa,CACXx1B,QAAS,OACT8H,cAAe,UAEjB/H,OAAQ,CACNC,QAAS,UAEXy1B,qBAAsB,CACpBz1B,QAAS,OACT8H,cAAe,SACfnH,OAAQ,OACR6F,eAAgB,SAChBzF,WAAY,SACZ,mBAAoB,CAClB2F,UAAW,GAEb,QAAS,CACPA,UAAW,KAGfnK,SAAU,CACR+B,MAAO9B,M,+ECjHLk5B,GACM,WADNA,GAGM,UAHNA,GAIK,UAJLA,GAKW,eALXA,GAMW,gBANXA,GAOI,SAPJA,GAQS,cARTA,GASK,UATLA,GAUY,eAVZA,GAWc,kBAXdA,GAYM,iBAGNC,GAAU/qB,MAAQ,SAACgrB,EAAIC,GAAL,OACtBjrB,KAAYA,IAAMA,KAAS,EAAGgrB,GAAKhrB,KAAUirB,QAGzCC,GAAclrB,MAAQ,SAACgrB,EAAIC,GAAL,OAC1BjrB,KAAYA,KAAS,SAAA6K,GAAE,OAAImgB,EAAGngB,EAAG,MAAK7K,KAAUirB,QAG5CE,GAASnrB,MAAQ,SAACorB,EAAGC,GAAJ,OACrBrrB,KAAaorB,EAAGC,GAAOA,EAAI3f,MAAM0f,EAAEpyB,QAAUqyB,KAMzCC,GAAgBtrB,MAAQ,SAAC9G,EAAKqyB,GAAN,OAC5BvrB,IAHe,SAAA9G,GAAG,OAAI6xB,GAAQI,GAAO,GAAD,OAAIjyB,EAAJ,OAG1BsyB,CAAStyB,GAJJ,SAAAA,GAAG,OAAIgyB,GAAYlrB,KAAA,UAAgB9G,EAAhB,OAITuyB,CAASvyB,GAAlC8G,CAAwCurB,MAGpCG,GAAc1rB,MAAQ,SAAC9G,EAAKqyB,GAAN,OAC1BR,IAAQ,SAAAlgB,GAAE,gBAAO3R,EAAP,YAAc2R,KAAxBkgB,CAA8BQ,MCYjBz0B,GA/CA,CACbqQ,MAAO,CACLzT,MAAO/B,IAETu4B,aAAc,CACZzd,WAAY,MACZrX,QAAS,OACT8H,cAAe,MACfpB,WAAY,IAEd6vB,YAAa,CACXv2B,QAAS,OACTe,WAAY,UAEdy1B,YAAa,CACX7vB,WAAY7I,IAEd24B,YAAa,CACXn4B,MAAO/B,GACPmK,WAAY,GAEdgwB,QAAS,CACPvvB,KAAM,EACNmI,OAAQ,EACRtI,SAAU,QACV1F,MAAO,QACPrF,gBAAiBP,EACjBqY,UAAW,OACXnM,OAAQ,EACRtB,UAAW,0CACXoc,UAAW5kB,GACXqd,WAAY,2BACZ,UAAW,CACTA,WAAY,0BACZuH,UAAW,MAGfiU,SAAU,CACRr1B,MAAO,KACPmG,UAAW,IACXxL,gBAAiBP,EACjBkM,OAAQ,EACR0H,Q9FeW,E8FdXpP,OAAQ,WC7BN02B,GAAWtrB,IAAH,qMAedurB,KAAUV,OAAO,CAAEW,cAAeD,KAAUE,gBAE5C,IAAMv1B,GAAYC,YAAWC,IChCds1B,GDiCA,WAAO,IAAD,UACXhrB,EAASF,YAAS8qB,IAAlB5qB,KAEFirB,EAAe,UAAGrsB,IAAO,CAAC,cAAe,mBAAvBA,CAA2CoB,UAA9C,QAAuD,GACtE9J,EAAUV,KACV20B,EAAM,UAAGvrB,IAAO,CAAC,UAARA,CAAmBoB,UAAtB,QAA+B,GAGrCkrB,GAFYtsB,KAAOqsB,GAAiBrzB,OAE1BsyB,GAAc,UAAdA,CAAyBC,IACnCgB,EAAgB,UAAGvsB,IAAO,CAAC,oBAARA,CAA6BoB,UAAhC,QAAyC,GACzDorB,EAAc,UAAGxsB,IAAO,CAAC,kBAARA,CAA2BoB,UAA9B,QAAuC,GACrDqrB,EAAkB,UAAGzsB,IAAO,CAAC,uBAARA,CAAgCurB,UAAnC,QAA8C,GAqDtE,OACE,sBAAKt0B,UAAWK,EAAQw0B,QAAxB,SACE,sBAAK70B,UAAWK,EAAQy0B,SAAxB,SACE,eAACpE,EAAA,EAAD,CAAMnsB,WAAS,EAAf,SACE,eAACmsB,EAAA,EAAD,CAAMnsB,WAAS,EAACvE,UAAWK,EAAQo1B,iBAAnC,SACG1sB,KAAOqsB,GAAiB3pB,KAAI,SAAAxJ,GAAG,OAxDjB,SAAAA,GACvB,IAAMgW,EAAMlP,KAAYA,IAAS,OAAQ9G,GAA7B8G,CAAmCusB,GACzCI,EAAaL,EAAQ,GAAD,OAAIpzB,EAAJ,YACpB0zB,EAAY5sB,KAAYA,IAAS,OAAQ2sB,GAA7B3sB,CAA0CwsB,GAEtDK,EAAaD,GAAa,EAAIJ,EAAeI,GAAWx3B,QAAU,GAElE03B,EAAqBC,WACzB/sB,IAAO,CAAC,cAAe,qBAAsB9G,EAAK,UAAlD8G,CAA6DoB,IAEzD4rB,EAAsBD,WAC1B/sB,IAAO,CAAC,cAAe,qBAAsB9G,EAAK,WAAlD8G,CAA8DoB,IAG1D6rB,EAAc,IAAIhB,MACrBa,EAAqBE,GAAuB,GAC7CE,SAAS,GACL7Z,EAAS,IAAI4Y,KACjBc,WACE/sB,IAAO,CAAC,cAAe,kBAAmB9G,EAAK,UAA/C8G,CAA0DoB,KAE5D8rB,SAAS,GACLja,EAAU,IAAIgZ,KAClBc,WACE/sB,IAAO,CAAC,cAAe,kBAAmB9G,EAAK,WAA/C8G,CAA2DoB,KAE7D8rB,SAAS,GAEX,OACE,gBAACvF,EAAA,EAAD,CAAgBvV,MAAI,EAAC+a,GAAI,EAAzB,UACE,eAAC50B,GAAD,CAAQtB,UAAWK,EAAQ6P,MAA3B,SACGolB,EAAiBrd,GAAK9Z,UAEzB,uBAAK6B,UAAWK,EAAQ4yB,aAAxB,UACE,uBAAKjzB,UAAWK,EAAQq0B,YAAxB,UACE,eAAC,GAAD,IACA,eAACpzB,GAAD,qBAAa8a,EAAb,YAAuBoZ,QAEzB,uBAAKx1B,UAAWO,IAAWF,EAAQq0B,YAAar0B,EAAQs0B,aAAxD,UACE,eAAC,GAAD,IACA,eAACrzB,GAAD,qBAAa0a,EAAb,YAAwBwZ,WAG5B,eAACl0B,GAAD,CACEtB,UACEK,EAAQu0B,YAFZ,mBAGQgB,EAHR,aAGuBI,EAHvB,YAGsCR,OAjB7BvzB,GA2B+Bk0B,CAAiBl0B,e,kDEvGjE,SAAS,KAA2Q,OAA9P,GAAWP,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAmB,gBAAoB,SAAU,CACpGoB,GAAI,WACJkB,GAAI,GACJC,GAAI,GACJC,EAAG,KACY,gBAAoB,OAAQ,CAC3CpB,GAAI,WACJuC,EAAG,GACHF,EAAG,GACH5F,MAAO,IACPX,OAAQ,IACR6I,GAAI,IACW,gBAAoB,SAAU,CAC7CpC,EAAG,SACHF,EAAG,SACH5F,MAAO,SACPX,OAAQ,SACRs3B,YAAa,oBACbpzB,GAAI,YACU,gBAAoB,WAAY,CAC9CqzB,GAAI,EACJC,GAAI,EACJC,GAAI,cACJlF,OAAQ,uBACO,gBAAoB,iBAAkB,CACrDmF,aAAc,EACdD,GAAI,qBACJlF,OAAQ,qBACO,gBAAoB,gBAAiB,CACpD3Z,OAAQ,kDACRpP,KAAM,SACNiuB,GAAI,sBACY,gBAAoB,OAAQ,CAC5CvzB,GAAI,SACJuC,EAAG,GACHF,EAAG,GACH5F,MAAO,GACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,SACJyzB,iBAAkB,iBAClBC,UAAW,oBACXnxB,EAAG,EACHF,EAAG,EACH5F,MAAO,GACPX,OAAQ,EACRqE,KAAM,SACQ,gBAAoB,MAAO,CACzC4hB,UAAW,aACK,gBAAoB,OAAQ,CAC5C/hB,GAAI,SACJuC,EAAG,GACHF,EAAG,GACH5F,MAAO,GACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,SACJyzB,iBAAkB,iBAClBC,UAAW,oBACXnxB,EAAG,EACHF,EAAG,EACH5F,MAAO,GACPX,OAAQ,EACRqE,KAAM,SACQ,gBAAoB,MAAO,CACzC4hB,UAAW,aACK,gBAAoB,OAAQ,CAC5C/hB,GAAI,SACJuC,EAAG,GACHF,EAAG,GACH5F,MAAO,GACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,UACJyzB,iBAAkB,iBAClBC,UAAW,oBACXnxB,EAAG,EACHF,EAAG,EACH5F,MAAO,GACPX,OAAQ,EACRqE,KAAM,SACQ,gBAAoB,MAAO,CACzC4hB,UAAW,aACK,gBAAoB,OAAQ,CAC5C/hB,GAAI,UACJuC,EAAG,GACHF,EAAG,IACH5F,MAAO,GACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,UACJyzB,iBAAkB,iBAClBC,UAAW,oBACXnxB,EAAG,EACHF,EAAG,EACH5F,MAAO,GACPX,OAAQ,EACRqE,KAAM,SACQ,gBAAoB,MAAO,CACzC4hB,UAAW,eAGT,GAAqB,gBAAoB,IAAK,CAChD/hB,GAAI,eACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,oCACJK,UAAW,uCACG,gBAAoB,IAAK,CACvCL,GAAI,UACJK,UAAW,qCACG,gBAAoB,IAAK,CACvCL,GAAI,aACU,gBAAoB,OAAQ,CAC1CA,GAAI,WACJG,KAAM,SACQ,gBAAoB,MAAO,CACzC4hB,UAAW,eACK,gBAAoB,MAAO,CAC3C/hB,GAAI,OACJG,KAAM,UACN4hB,UAAW,cACI,gBAAoB,IAAK,CACxC4R,KAAM,kBACQ,gBAAoB,MAAO,CACzCxzB,KAAM,QACNyzB,YAAa,EACbpiB,OAAQ,iBACRuQ,UAAW,cACI,gBAAoB,MAAO,CAC1C5hB,KAAM,UACNC,SAAU,UACV2hB,UAAW,gBACM,gBAAoB,MAAO,CAC5C/hB,GAAI,YACJC,OAAQ,UACR0zB,KAAM,eACNE,gBAAiB,EACjB9R,UAAW,YACI,gBAAoB,MAAO,CAC1C/hB,GAAI,iBACJC,OAAQ,UACR0zB,KAAM,eACNE,gBAAiB,EACjB9R,UAAW,YACI,gBAAoB,MAAO,CAC1C/hB,GAAI,mBACJC,OAAQ,UACR0zB,KAAM,gBACNE,gBAAiB,EACjB9R,UAAW,YACI,gBAAoB,MAAO,CAC1C/hB,GAAI,mBACJC,OAAQ,UACR0zB,KAAM,gBACNE,gBAAiB,EACjB9R,UAAW,aACI,gBAAoB,OAAQ,CAC3C/hB,GAAI,YACJG,KAAM,UACNoC,EAAG,GACHF,EAAG,GACH5F,MAAO,GACPX,OAAQ,EACR6I,GAAI,OAGN,SAASmvB,GAAcrzB,EAAMC,GAC3B,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,QACPX,OAAQ,QACR+E,QAAS,cACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiBmzB,ICvLzCn3B,IDwLS,ICxLGC,YAVH,CACbm3B,WAAY,CACVt3B,MAAO,OACPtB,QAAS,OACT8H,cAAe,SACf/G,WAAY,SACZ2F,UAAW,OAiBAmyB,GAXIj3B,gBAAK,YAA6B,IAA1BwI,EAAyB,EAAzBA,QAASvI,EAAgB,EAAhBA,UAC5BK,EAAUV,KAEhB,OACE,uBAAKK,UAAWM,IAAWN,EAAWK,EAAQ02B,YAA9C,UACE,eAAC,GAAD,IACA,eAACp2B,GAAD,UAAK4H,UCrBL5I,GAAYC,YAAW,CAC3Bq3B,MAAO,CAELC,YAAa,QACbC,eAAgB,WAChBC,cAAe,SAaJC,GATDt3B,gBAAK,YAAwC,IAArCC,EAAoC,EAApCA,UAAWG,EAAyB,EAAzBA,SAAaC,EAAY,wCAClDC,EAAUV,KAChB,OACE,kDAAWS,GAAX,IAAkBJ,UAAWO,IAAWF,EAAQ42B,MAAOj3B,GAAvD,SACGG,QCXQm3B,GAJGv3B,gBAAK,gBAAGI,EAAH,EAAGA,SAAaC,EAAhB,mCACrB,kDAAWA,GAAX,aAAmBD,QCGfR,GAAYC,YAAW,CAC3B23B,GAAI,CACFt4B,QAAS,CAAC,CAAC,EAAGhD,MAEhBu7B,WAAY,CACVtlB,UAAW,WAuBAulB,GAnBG13B,gBAChB,YAA6D,IAAD,EAAzD23B,EAAyD,EAAzDA,QAASC,EAAgD,EAAhDA,WAAY33B,EAAoC,EAApCA,UAAWG,EAAyB,EAAzBA,SAAaC,EAAY,+DACpDC,EAAUV,KACVE,GAAM,mBACTQ,EAAQk3B,IAAK,GADJ,cAETl3B,EAAQm3B,WAAaG,GAFZ,GAKZ,OACE,6CACEC,QAASF,EACT13B,UAAWO,IAAWV,EAAQG,IAC1BI,GAHN,aAIGD,QCtBM03B,GAJG93B,gBAAK,gBAAGI,EAAH,EAAGA,SAAaC,EAAhB,mCACrB,kDAAWA,GAAX,aAAmBD,QCSb9C,GAAQsB,GAARtB,IAEFsC,GAAYC,YAAW,CAC3Bk4B,GAAI,CACFn7B,OAAQU,GACRjD,gBAAiBgC,GACjB0C,OAAQ9C,GACRkW,UAAW,OACXzV,MAAO5C,EACPoF,QAAQ,KAAD,OAAOhD,GAAP,OAETu7B,WAAY,CACVtlB,UAAW,WAoBA6lB,GAhBSh4B,gBACtB,YAAoD,IAAD,EAAhD43B,EAAgD,EAAhDA,WAAYx3B,EAAoC,EAApCA,SAAUH,EAA0B,EAA1BA,UAAcI,EAAY,qDAC3CC,EAAUV,KACVE,GAAM,mBACTQ,EAAQy3B,IAAK,GADJ,cAETz3B,EAAQm3B,WAAaG,GAFZ,GAKZ,OACE,+CAAQv3B,GAAR,IAAeJ,UAAWO,IAAWV,EAAQG,GAA7C,SACGG,QCxBD5C,GAAaoB,GAAbpB,MAAOJ,GAAMwB,GAANxB,EAETwC,GAAYC,YAAW,CAC3Bo4B,GAAI,CACFr7B,OAAQQ,GACR8B,QAAS,EACTH,OAAQ5C,GACR9B,gBxGiGmBP,WwG/FrBo+B,GAAI,CACFt7B,OAAQY,GACRuB,OxGwFsB,IwGtFxBo5B,GAAI,CACFp5B,OxGoFsB,IwGlFxBsJ,MAAO,CACLhO,gBAAiBiC,IAEnB0zB,QAAS,CACP31B,gBAAiBkC,MAuBN67B,GAnBEp4B,gBACf,YAA6E,IAAD,EAAzEC,EAAyE,EAAzEA,UAAWG,EAA8D,EAA9DA,SAAUuE,EAAoD,EAApDA,OAAQ0D,EAA4C,EAA5CA,MAAO2nB,EAAqC,EAArCA,QAAqC,IAA5B9jB,YAA4B,MAArB,KAAqB,EAAZ7L,EAAY,0EACpEC,EAAUV,KACVy4B,GAAa,mBAChB/3B,EAAQ23B,IAAMtzB,GADE,cAEhBrE,EAAQ63B,IAAMxzB,GAAmB,OAATuH,GAFR,cAGhB5L,EAAQ43B,IAAMvzB,GAAmB,OAATuH,GAHR,cAIhB5L,EAAQ+H,MAAQA,GAJA,cAKhB/H,EAAQ0vB,QAAUA,GALF,GAQnB,OACE,6CAAI/vB,UAAWO,IAAW63B,EAAep4B,IAAgBI,GAAzD,aACGD,QCnDT,SAAS,KAA2Q,OAA9P,GAAWuB,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,uBACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,WACU,gBAAoB,SAAU,CAC5CA,GAAI,OACJG,KAAM,UACNe,GAAI,EACJC,GAAI,EACJC,EAAG,IACY,gBAAoB,IAAK,CACxCpB,GAAI,UACJK,UAAW,kHACXJ,OAAQ,WACM,gBAAoB,WAAY,CAC9CD,GAAI,SACJyE,OAAQ,2EACO,gBAAoB,OAAQ,CAC3CJ,GAAI,WACJC,GAAI,WACJC,IAAK,cACLC,GAAI,WACJxE,GAAI,cAGN,SAASq1B,GAAQ50B,EAAMC,GACrB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiB00B,IAChC,ICxDf,SAAS,KAA2Q,OAA9P,GAAW32B,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,wBACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,UACJG,KAAM,WACQ,gBAAoB,SAAU,CAC5CH,GAAI,OACJkB,GAAI,EACJC,GAAI,EACJC,EAAG,KACa,gBAAoB,IAAK,CACzCpB,GAAI,QACJK,UAAW,gCACXJ,OAAQ,UACRkE,cAAe,UACD,gBAAoB,OAAQ,CAC1CE,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJxE,GAAI,YACW,gBAAoB,OAAQ,CAC3CqE,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJxE,GAAI,cAGN,SAASs1B,GAAS70B,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiB20B,IAChC,IC5Df,SAAS,KAA2Q,OAA9P,GAAW52B,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,qBACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,WACU,gBAAoB,SAAU,CAC5CA,GAAI,OACJG,KAAM,UACNe,GAAI,EACJC,GAAI,EACJC,EAAG,IACY,gBAAoB,IAAK,CACxCpB,GAAI,UACJK,UAAW,iHACXJ,OAAQ,WACM,gBAAoB,WAAY,CAC9CD,GAAI,SACJyE,OAAQ,2EACO,gBAAoB,OAAQ,CAC3CJ,GAAI,WACJC,GAAI,WACJC,IAAK,cACLC,GAAI,WACJxE,GAAI,cAGN,SAASu1B,GAAM90B,EAAMC,GACnB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,IAGpB,I,GAAI,GAA0B,aAAiB40B,I,IAChC,I,kBCpDTC,GAAY,CAChB,iBAAkB,CAAEC,MAAO,MAAOC,KAAM,wBACxC,mBAAoB,CAAED,MAAO,OAAQC,KAAM,UAC3C,iBAAkB,CAAED,MAAO,OAAQC,KAAM,UACzC,gBAAiB,CAAED,MAAO,MAAOC,KAAM,iBACvC,iBAAkB,CAAED,MAAO,MAAOC,KAAM,iBACxC,oBAAqB,CAAED,MAAO,KAAMC,KAAM,+BAC1C,kBAAmB,CAAED,MAAO,MAAOC,KAAM,WACzC,kBAAmB,CAAED,MAAO,MAAOC,KAAM,gBACzC,iBAAkB,CAAED,MAAO,MAAOC,KAAM,gBACxC,sBAAuB,CACrBD,MAAO,MACPC,KAAM,uCAER,iBAAkB,CAAED,MAAO,MAAOC,KAAM,mBACxC,kBAAmB,CAAED,MAAO,MAAOC,KAAM,gBACzC,iBAAkB,CAAED,MAAO,MAAOC,KAAM,uBACxC,kBAAmB,CAAED,MAAO,MAAOC,KAAM,mBACzC,mBAAoB,CAAED,MAAO,OAAQC,KAAM,YAC3C,mBAAoB,CAAED,MAAO,OAAQC,KAAM,6BAC3C,oBAAqB,CAAED,MAAO,MAAOC,KAAM,YAC3C,kBAAmB,CAAED,MAAO,MAAOC,KAAM,WACzC,qBAAsB,CAAED,MAAO,MAAOC,KAAM,cAC5C,iCAAkC,CAChCD,MAAO,KACPC,KAAM,4BAER,kBAAmB,CAAED,MAAO,KAAMC,KAAM,aACxC,sBAAuB,CAAED,MAAO,MAAOC,KAAM,gBAC7C,kBAAmB,CAAED,MAAO,OAAQC,KAAM,UAC1C,sBAAuB,CAAED,MAAO,MAAOC,KAAM,sBAC7CC,IAAK,CAAEF,MAAO,MAAOC,KAAM,OAC3B,gBAAiB,CAAED,MAAO,MAAOC,KAAM,qBACvC,gBAAiB,CAAED,MAAO,MAAOC,KAAM,UACvC,gBAAiB,CAAED,MAAO,MAAOC,KAAM,UACvC,oBAAqB,CAAED,MAAO,MAAOC,KAAM,wBAC3C,kBAAmB,CAAED,MAAO,MAAOC,KAAM,kBACzC,kBAAmB,CACjBD,MAAO,MACPC,KAAM,qDAER,kBAAmB,CAAED,MAAO,MAAOC,KAAM,oCACzC,kBAAmB,CACjBD,MAAO,MACPC,KAAM,uCAER,mBAAoB,CAClBD,MAAO,MACPC,KAAM,oDAER,iBAAkB,CAAED,MAAO,MAAOC,KAAM,uBACxC,mBAAoB,CAAED,MAAO,MAAOC,KAAM,aAC1C,eAAgB,CAAED,MAAO,MAAOC,KAAM,SACtC,kBAAmB,CACjBD,MAAO,MACPC,KAAM,iDAER,gBAAiB,CAAED,MAAO,MAAOC,KAAM,2BACvC,iBAAkB,CAAED,MAAO,MAAOC,KAAM,aACxC,gBAAiB,CAAED,MAAO,MAAOC,KAAM,oBACvC,gBAAiB,CAAED,MAAO,MAAOC,KAAM,qCACvC,cAAe,CAAED,MAAO,MAAOC,KAAM,kBACrC,iBAAkB,CAAED,MAAO,MAAOC,KAAM,WACxC,eAAgB,CAAED,MAAO,MAAOC,KAAM,WACtC,cAAe,CAAED,MAAO,OAAQC,KAAM,UACtC,aAAc,CAAED,MAAO,MAAOC,KAAM,qBACpC,YAAa,CAAED,MAAO,MAAOC,KAAM,0BACnC,aAAc,CAAED,MAAO,MAAOC,KAAM,SACpC,qBAAsB,CAAED,MAAO,OAAQC,KAAM,gBAC7C,eAAgB,CAAED,MAAO,MAAOC,KAAM,gCACtC,eAAgB,CAAED,MAAO,MAAOC,KAAM,uCACtC,iBAAkB,CAAED,MAAO,KAAMC,KAAM,aACvC,aAAc,CAAED,MAAO,MAAOC,KAAM,iBACpC,eAAgB,CAAED,MAAO,MAAOC,KAAM,uBACtC,cAAe,CAAED,MAAO,OAAQC,KAAM,uBACtC,eAAgB,CAAED,MAAO,KAAMC,KAAM,kBACrC,eAAgB,CAAED,MAAO,MAAOC,KAAM,2BACtC,mBAAoB,CAAED,MAAO,OAAQC,KAAM,eAC3C,gBAAiB,CACfD,MAAO,MACPC,KAAM,6CAER,oBAAqB,CAAED,MAAO,MAAOC,KAAM,2BAC3C,cAAe,CAAED,MAAO,MAAOC,KAAM,UACrC,kBAAmB,CAAED,MAAO,OAAQC,KAAM,SAC1C,eAAgB,CAAED,MAAO,OAAQC,KAAM,wBACvC,aAAc,CAAED,MAAO,MAAOC,KAAM,SACpC,aAAc,CAAED,MAAO,MAAOC,KAAM,yBACpC,eAAgB,CAAED,MAAO,OAAQC,KAAM,WACvC,mBAAoB,CAAED,MAAO,OAAQC,KAAM,UAC3C,qBAAsB,CAAED,MAAO,OAAQC,KAAM,YAC7C,mBAAoB,CAAED,MAAO,OAAQC,KAAM,+BAC3C,qBAAsB,CAAED,MAAO,OAAQC,KAAM,YAC7C,mBAAoB,CAAED,MAAO,OAAQC,KAAM,UAC3C,mBAAoB,CAAED,MAAO,OAAQC,KAAM,eAC3C,eAAgB,CAAED,MAAO,OAAQC,KAAM,sBACvC,eAAgB,CACdD,MAAO,OACPC,KAAM,2CAER,iBAAkB,CAAED,MAAO,OAAQC,KAAM,+BACzC,eAAgB,CAAED,MAAO,MAAOC,KAAM,gBACtC,mBAAoB,CAAED,MAAO,OAAQC,KAAM,wBAC3C,oBAAqB,CAAED,MAAO,KAAMC,KAAM,eAoCtCxP,GAjCgB,SAAA0P,GACpB,IAAMC,EAAQ9vB,KAAU6vB,GACxB,OAAO7vB,MACL,SAAC+vB,EAAKrmB,GACJ,IAAMsmB,EAAaC,aAAkBvmB,EAAM,IAAM,EAC3CwmB,EAAWC,aAAmB,CAClCC,MAAO,EACPC,IAAK1kB,KAAK2kB,IAAIL,aAAkBvmB,EAAM,OAGlC6mB,EAAQL,EAASK,MAAMxd,eAAe,QAAS,CACnDyd,qBAAsB,EACtBC,aAAa,IAETC,EAAUR,EAASQ,QAAQ3d,eAAe,QAAS,CACvDyd,qBAAsB,EACtBC,aAAa,IAGTE,EAAM,cAAUX,EAAU,SAApB,OAAmCO,EAAnC,YAA4CG,EAA5C,KAOZ,OALAX,EAAI3Q,KAAK,CACPjY,MAAM,GAAD,OAAKwpB,EAAL,cAAiBjnB,EAAM,GAAGimB,MAC/BrgB,KAAM5F,EAAM,KAGPqmB,IAET,GACAD,GAIWc,CAAcnB,I,8BC5IvBoB,GAAQ,SAAAC,GACZ,IAAMC,EAAkBC,KAAKC,iBAAiBC,kBAAkBC,SAChE,OAAOC,aAAeL,EAAiBD,IAGnCO,GAAa,SAACP,EAAMQ,GACxB,IAAMP,EAAkBC,KAAKC,iBAAiBC,kBAAkBC,SAChE,OAAOI,aAAeD,EAAUF,aAAeL,EAAiBD,KAG5DU,GAAa,SAACV,EAAMQ,EAAUG,GAClC,IAAMV,EAAkBC,KAAKC,iBAAiBC,kBAAkBC,SAC1DO,EAAUH,aACdD,EACAF,aAAeL,EAAiBD,IAElC,OAAOa,aAAOF,EAASC,IAGnBE,GAAmB,SAACd,EAAMW,GAAP,OAAmBE,aAAOF,EAASX,ICftDh6B,GAAS,CACbqM,QAAS,CACP/N,QAAS,OACTW,OAAQ,KAEV87B,cAAe,CACb97B,OAAQ,IACRE,aAAc,EACdb,QAAS,OACTe,WAAY,SACZyF,eAAgB,SAChB6Q,WAAY,OAEdtF,MAAO,CACLzT,MAAO5C,GAETghC,QAAS,CACPzgC,gBAAiBT,GAEnBmhC,SAAU,CACR1gC,gBAAiBR,GAEnBmhC,MAAO,CACLxb,SAAU,MACVvgB,aAAc,GAEhBg8B,QAAS,CACPv7B,MAAO,SAAAgT,GAAK,gBAAOA,EAAP,MACZrM,YAAa,SAAAqM,GAAK,OAAe,MAAVA,EAAgB,EAAI,IAE7CwoB,SAAU,CACRx7B,MAAO,SAAAgT,GAAK,gBAAO,IAAMA,EAAb,QAIV9S,GAAYC,YAAWC,IAsCdq7B,GApCS,SAAC,GAAyB,IAAD,EAAtB9e,EAAsB,EAAtBA,OAAQJ,EAAc,EAAdA,QAC3BvJ,EAAQ2J,GAAsB,IAAZJ,EAAgBI,EAAS,GAC3C/b,EAAUV,GAAU8S,GAEpB0oB,EAAsB,SAAA1oB,GAC1B,KAAIA,GAAS,IACb,OAAO,gBAACpR,GAAD,CAAQrB,UAAWK,EAAQ6P,MAA3B,UAAmCuC,EAAnC,QAGH2oB,GAAiB,mBACpB/6B,EAAQu6B,eAAgB,GADJ,cAEpBv6B,EAAQ06B,MAAQtoB,EAAQ,GAAKA,EAAQ,GAFjB,GAKvB,OACE,uBAAKzS,UAAWK,EAAQ6L,QAAxB,UACE,sBACElM,UAAWO,IACT66B,EACA/6B,EAAQw6B,QACRx6B,EAAQ26B,SAJZ,SAMGG,EAAoB1oB,KAEvB,sBACEzS,UAAWO,IACT66B,EACA/6B,EAAQy6B,SACRz6B,EAAQ46B,UAJZ,SAMGE,EAAoB,IAAM1oB,S,uCCpE7B4oB,GAAoB,SAAAC,GACxB,IAAMC,EAAYD,EAAGC,UAAY7f,OAAOoa,WAAWwF,EAAGC,WAAa,EAGnE,OADE7f,OAAOoa,WAAWwF,EAAGE,sBAAwB9f,OAAOoa,WAAWwF,EAAGG,MAChDF,GAGhBG,GAAY,SAACJ,EAAIK,EAAUC,GAE/B,MAAO,CAAElzB,QADI,IAAIQ,KAAK,IAAIA,KAAKoyB,EAAG5yB,SAASS,UAAYwyB,GAAUE,cACzCD,WAIpBE,GAAY,SAAC,GAAD,IAAGpzB,EAAH,EAAGA,QAAH,OAChB,IAAIQ,KAAKR,GAASmzB,cAAcE,UAAU,EAAG,KACzCC,GAAa,SAAC,GAAD,IAAGtzB,EAAH,EAAGA,QAAH,OACjB,IAAIQ,KAAKR,GAASmzB,cAAcE,UAAU,EAAG,KAEzC3L,GAAU,SAAC0I,EAAKwC,GACpB,IAAMW,EAAgBnD,EAAI8C,QAAU,EACpC,OAAO,2BAAKN,GAAZ,IAAgBM,OAAQK,EAAgBZ,GAAkBC,MAGtDY,GAAc,CAClBC,IAAK,MACLC,KAAM,OACNC,MAAO,QA6KMC,GA1KM,SAAC,GAKf,IAJCC,EAIF,EAJJpyB,KACAqyB,EAGI,EAHJA,iBACAC,EAEI,EAFJA,eACAC,EACI,EADJA,UAEMh5B,EAASkgB,mBAET+Y,EAAYC,uBAAY,WAC5B,IAAMp9B,EAAMq9B,UAAUn5B,EAAOyH,SACvB9M,EAAgB,EAAhBA,EAA0B,EAA1BA,EAA8C,EAC9CoB,EAAQ,IAAMpB,EAAcA,EAC5BS,EAAS,IAAMT,EAFsB,EAFT,EAMd,WAElB,IAAMy+B,EAAuB,QAAdJ,EAAsBV,GAAaF,GAE5CiB,EAAeh0B,KAASA,KAAWqnB,GAAS,GAAI0M,EAAQP,IAE9D,IAAKQ,EAAah7B,SAAWy6B,EAAiBz6B,OAAQ,CACpD,IAAMi7B,EAAa,CAAEt0B,SAAS,IAAIQ,MAAO2yB,cAAeD,OAAQ,GAEhE,MAAO,CAAC,CAACoB,EADUtB,GAAUsB,GAAa,KAAS,KACjB,GAGpC,IAAKD,EAAah7B,QAAUy6B,EAAiBz6B,OAAQ,CACnD,IAAMi7B,EAAa,CACjBt0B,SAAS,IAAIQ,MAAO2yB,cACpBD,OAAQ,GAGV,MAAO,CAAC,CAACoB,EADUtB,GAAUsB,GAAad,GAAYQ,GAAY,KAChC,GAGpC,GAAIK,EAAah7B,SAAWy6B,EAAiBz6B,OAAQ,CACnD,IAAMi7B,EAAa,CACjBt0B,SAAS,IAAIQ,MAAO2yB,cACpBD,OAAQ,GAGV,MAAO,CAAC,CAACoB,EADUtB,GAAUsB,GAAad,GAAYQ,GAAY,KAChC,GAGpC,OAA4B,IAAxBK,EAAah7B,OACR,CACLgH,KACE,CACEL,QAAS,IAAIQ,KACXA,KAAK+zB,MAAQf,GAAYQ,IACzBb,cACFD,OAAQa,GAEVM,IAEF,GAIG,CAACA,GAAc,GAOGG,GA1DO,mBA0D3B/yB,EA1D2B,KA0DrBgzB,EA1DqB,KA6DlC39B,EAAI49B,KAAK,QAAS39B,GAGlBD,EACG69B,OAAO,QACPD,KAAK,IAAK,GACVA,KAAK,KAAM/+B,GACX++B,KAAK,QAAS39B,EAAQpB,EAAcA,GACpC++B,KAAK,SAAUt+B,EAAST,GACxB++B,KAAK,OAAQhjC,IACbgjC,KAAK,YAPR,oBAOkC,EAPlC,IAOuC/+B,EAPvC,MAUAmB,EACG69B,OAAO,kBACPD,KAAK,KAAM,iBACXA,KAAK,gBAAiB,kBACtBA,KAAK,KAAM,GACXA,KAAK,KAAM,GACXA,KAAK,KAAM,GACXA,KAAK,KAAM,QACXE,UAAU,QACVnzB,KAAK,CACJ,CAAEqE,OAAQ,KAAM/R,MAAOhD,GACvB,CAAE+U,OAAQ,MAAO/R,MAAOhD,GACxB,CAAE+U,OAAQ,OAAQ/R,MAAOrC,MAE1BmjC,QACAF,OAAO,QACPD,KAAK,UAAU,SAAS95B,GACvB,OAAOA,EAAEkL,UAEV4uB,KAAK,cAAc,SAAS95B,GAC3B,OAAOA,EAAE7G,SAGb,IAAM+gC,EAAIh+B,EACP69B,OAAO,KACPD,KAAK,YAFE,oBAEwB/+B,EAFxB,YAEuCA,EAFvC,MAIJo/B,EAAUZ,UAAU1yB,GAAM,SAAAuzB,GAAC,OAAIA,EAAEh1B,WACjCi1B,EAAUR,EAAa,CAAC,EAAG,IAAO,CAAC,EAAGN,OAAO1yB,GAAM,SAAAuzB,GAAC,OAAIA,EAAE9B,WAE1Dv2B,EAAIw3B,iBAGPe,MAAM,CAAC9+B,EAAQ,KACfuuB,OAAO,CAAC,EAAGsQ,EAAQ,KAChBp4B,EAAIs3B,eAEPxP,OAAO,CAAC,IAAInkB,KAAKu0B,EAAQ,IAAK,IAAIv0B,KAAKu0B,EAAQ,MAC/CG,MAAM,CAAC,EAAGn+B,IAEPo+B,EAAOhB,UAEVt3B,GAAE,SAASjC,GACV,OAAOiC,EAAE,IAAI2D,KAAK5F,EAAEoF,aAErBrD,GAAE,SAAS/B,GACV,OAAO+B,EAAE/B,EAAEs4B,WAGTkC,EAAOjB,UAEVt3B,GAAE,SAASjC,GACV,OAAOiC,EAAE,IAAI2D,KAAK5F,EAAEoF,aAErBq1B,GAAGj/B,GACHwI,IAAG,SAAShE,GACX,OAAO+B,EAAE/B,EAAEs4B,WAIf4B,EAAEH,OAAO,QACNW,MAAM7zB,GACNizB,KAAK,IAAKU,GACVV,KAAK,OAAQ,uBAEhBI,EAAEH,OAAO,QACNW,MAAM7zB,GACNizB,KAAK,IAAKS,GACVT,KAAK,OAAQ,QACbA,KAAK,eAAgB,KACrBA,KAAK,kBAAmB,SACxBA,KAAK,SAAUpjC,KACjB,CAACuiC,EAAUG,EAAWF,EAAkBC,IAU3C,OARAvxB,qBAAU,WAER2xB,UAAUn5B,EAAOyH,SACdmyB,UAAU,KACVrV,SACH0U,MACC,CAACA,EAAWJ,IAGb,qCACE,sBAAKv4B,IAAKN,O,8BCzMVu6B,GAAS,IAETC,GAAM,MACNC,GAAO,OACPC,GAAQ,OCgWCC,GApVD,SAAC,GAAmC,IAAD,EAAhCl0B,EAAgC,EAAhCA,KAAMuyB,EAA0B,EAA1BA,UAAWrC,EAAe,EAAfA,SAC1Br2B,EAAM4f,iBAAO,MAEb0a,EAAe,IACfC,EAAc,IACdC,EAAeC,mBACnB,iBAAO,CACLr5B,IAAK,GACLZ,MAAO,GACPiJ,OAAQ,GACRnI,KAAM,QAER,IAGIkJ,EAASwqB,aAAkBqB,GAC3BqE,EAAMx1B,KAAK+zB,MAAQzuB,EAEnBmwB,EAAgB,CACpBxC,IAAK,CAACuC,EAAMR,GAAKQ,GACjBtC,KAAM,CAACsC,EAAMP,GAAMO,GACnBrC,MAAO,CAACqC,EAAMN,GAAOM,IAGjBE,EAAaH,mBACjB,iBAAO,CACLtC,IAAK,CACH0C,KAAM,GACNve,KAAM,KACNwe,KAAMjC,WAAWkC,MAAM,GACvBC,YAAa,SAEf5C,KAAM,CACJyC,KAAM,EACNve,KAAM,MACNwe,KAAMjC,UAAUkC,MAAM,GACtBC,YAAa,SAEf3C,MAAO,CACLwC,KAAM,GACNve,KAAM,MACNwe,KAAMjC,UAAUkC,MAAM,GACtBC,YAAa,SAGjB,IAGIC,EAAYrC,uBAChB,SAAAr3B,GAAC,MAAmB,QAAdm3B,EAA0C,IAApBn3B,EAAE25B,cAAyC,IAAnB35B,EAAE45B,eACtD,CAACzC,IAGG0C,EAA6BxC,uBAAY,SAAAt5B,GAC7C,IAAM+7B,EAAc,IAAIn2B,KAAK5F,GACvBg8B,EAAiBD,EAAYF,aAC7BI,EAAqBF,EAAYG,YACjCC,EAAmBJ,EAAYK,cAE/BC,EAAe,IAAIz2B,KAAKm2B,EAAYl2B,WAC1Cw2B,EAAaC,WAAWN,EAAiB,GAEzC,IAAMO,EAAkBF,EAAaR,aAC/BW,EAAsBH,EAAaH,YACnCO,EAAoBJ,EAAaD,cAEjCM,EAAaC,MAAMC,KAAKD,MAAM,IAAIx0B,KAAI,SAAC00B,EAAGt+B,GAAJ,OAC1C64B,aAAO,MAAOjS,aAAI,CAAE2X,KAAMv+B,GAAKw+B,aAAY,IAAIn3B,WAG3Co3B,EAASL,MAAMC,KAAKD,MAAM,KAAKx0B,KAAI,SAAC00B,EAAGt+B,GAAJ,OACvC64B,aAAO,MAAOjS,aAAI,CAAE6X,OAAQz+B,GAAK0+B,aAAY,IAAIr3B,WAGnD,MAAO,CACLs3B,SACEf,IAAqBM,EACjBO,EAAOP,GADX,UAEOC,EAAWF,GAFlB,YAE0CD,GAC5C10B,QACEs0B,IAAqBM,EACjBO,EAAOb,GADX,UAEOO,EAAWT,GAFlB,YAEyCD,MAE5C,IAEGmB,EAAa7D,uBACjB,SAAAvP,GAQE,IAPA,IAAM5lB,EAAS,GAETi5B,EAAY,SAAAp9B,GAChB,IAAMgd,EAAOse,EAAWlC,GAAWpc,KACnC,OAAO,IAAIpX,KAAKwL,KAAKisB,KAAKr9B,EAAEs9B,UAAYtgB,GAAQA,IAGzCze,EAAI,EAAGA,GAAK+8B,EAAWlC,GAAWmC,KAAMh9B,IAAK,CACpD,IAAMg/B,EAAW,IAAI33B,KAAKw1B,EAAM78B,EAAI+8B,EAAWlC,GAAWpc,MACtDogB,EAAUG,GAAYxT,EAAO,KAC7BwT,EAAWxT,EAAO,IACtB5lB,EAAO0gB,KAAKuY,EAAUG,KAGxB,OAAOp5B,IAET,CAACi3B,EAAKE,EAAYlC,IAGdn3B,EAAIs3B,cAEPxP,OAAOsR,EAAcjC,IACrBkB,MAAM,CAACY,EAAal5B,KAAMi5B,EAAcC,EAAah6B,QAElDa,EAAIw3B,iBAEPxP,OAAO,CACN,EACgE,MAAhE,UAACwP,OAAO1yB,GAAM,SAAA7G,GAAC,OAAI,IAAI0xB,KAAU1xB,EAAEm4B,MAAMqF,qBAAzC,QAAwD,OAEzDC,OACAnD,MAAM,CAACU,EAAeE,EAAa/wB,OAAQ+wB,EAAap5B,MAErD47B,EAAkBpE,uBACtB,SAAAY,GACEA,EAAEH,OAAO,QACND,KAAK,IAAK,GACVA,KAAK,IAAKoB,EAAap5B,KACvBg4B,KAAK,QAASmB,GACdnB,KAAK,SAAUkB,EAAeE,EAAap5B,IAAMo5B,EAAa/wB,QAC9D2vB,KAAK,OAAQhjC,MAElB,CAACokC,IAGGyC,EAAarE,uBACjB,SAAAY,GAAC,OACCA,EACGJ,KACC,YAFJ,uBAGoBkB,EAAeE,EAAa/wB,OAHhD,MAKGrL,KACCy6B,cACct3B,GACX27B,MAAMtC,EAAWlC,GAAWoC,MAC5BqC,YAAW,SAAA79B,GACV,OAAOu5B,cAAc+B,EAAWlC,GAAWsC,YAApCnC,CACLv5B,EAAE6F,UAAY7F,EAAE01B,oBAAsBiF,QAI7C77B,MAAK,SAAAo7B,GAAC,OAAIA,EAAE4D,OAAO,WAAWnZ,cACnC,CAACuW,EAAcI,EAAYlC,EAAWn3B,IAGlC87B,EAAazE,uBACjB,SAAAY,GAAC,OACCA,EACGJ,KAAK,YADR,oBACkCoB,EAAal5B,KAD/C,SAEGlD,KAAKy6B,YAAYx3B,GAAG67B,MAAM,IAC1B9+B,MAAK,SAAAo7B,GAAC,OAAIA,EAAE4D,OAAO,WAAWnZ,YAC9BqV,UAAU,QACVF,KAAK,KAAM,cAChB,CAACoB,EAAcn5B,IAGXi8B,EAAY1E,uBAChB,SAAAY,GACEA,EAAEJ,KAAK,SAAU9iC,IACd8iC,KAAK,OAAQ9iC,IAEb8H,MAAK,SAAAo7B,GAAC,OACLA,EACGH,OAAO,KACPC,UAAU,QACVnzB,KAAKs2B,EAAWl7B,EAAE8nB,WAClBkU,KAAK,QACLnE,KAAK,MAAM,SAAA95B,GAAC,MAAI,GAAMiC,EAAEjC,MACxB85B,KAAK,MAAM,SAAA95B,GAAC,MAAI,GAAMiC,EAAEjC,MACxB85B,KAAK,KAAMoB,EAAap5B,KACxBg4B,KAAK,KAAMkB,EAAeE,EAAa/wB,QACvC2vB,KAAK,eAAgB,MAGzBh7B,MAAK,SAAAo7B,GAAC,OACLA,EACGH,OAAO,KACPC,UAAU,QACVnzB,KACC0yB,YACYx3B,GACTm8B,QACAN,MAAM,IAEVK,KAAK,QACLnE,KAAK,MAAM,SAAA95B,GAAC,MAAI,GAAM+B,EAAE/B,MACxB85B,KAAK,MAAM,SAAA95B,GAAC,MAAI,GAAM+B,EAAE/B,MACxB85B,KAAK,KAAMoB,EAAal5B,MACxB83B,KAAK,KAAMmB,EAAcC,EAAah6B,UAG1CpC,MAAK,SAAAo7B,GAAC,OACLA,EACGH,OAAO,KACPC,UAAU,QACVnzB,KAAKs2B,EAAWl7B,EAAE8nB,UAAU7Y,OAAOyqB,IACnCsC,KAAK,QACLnE,KAAK,QAAS,iBACdA,KAAK,MAAM,SAAA95B,GAAC,MAAI,GAAMiC,EAAEjC,MACxB85B,KAAK,MAAM,SAAA95B,GAAC,MAAI,GAAMiC,EAAEjC,MACxB85B,KAAK,KAAMoB,EAAap5B,IAAM,IAC9Bg4B,KAAK,KAAMkB,EAAeE,EAAa/wB,QACvC2vB,KAAK,eAAgB,GACrBmE,KAAK,WAGTn/B,MAAK,SAAAo7B,GAAM,IAAD,IACHjnB,EAAS,OAAGsmB,SAAH,IAAGA,IAAH,UAAGA,UACP,yBADI,iBAAG,EAEd4E,cAFW,aAAG,EAGdC,UAEJ,GAAKnrB,EAAL,CAEA,IAAM6I,EAAaqhB,EAAWl7B,EAAE8nB,UAAU7Y,OAAOyqB,GAE3C/V,EAASkW,EAA2BhgB,GAE1C,OAAOoe,EACJH,OAAO,QACPD,KAAK,IAAK7mB,EAAUhR,EAAI,GACxB63B,KAAK,IAAK7mB,EAAUlR,GACpB+3B,KAAK,cAAe,OACpBA,KAAK,KAAM,SACX7T,KAAKL,EAAOsX,cAGhBp+B,MAAK,SAAAo7B,GAAM,IAAD,IACHjnB,EAAS,OAAGsmB,SAAH,IAAGA,IAAH,UAAGA,UACP,yBADI,iBAAG,EAEd4E,cAFW,aAAG,EAGdC,UAEJ,GAAKnrB,EAAL,CAEA,IAAM6I,EAAaqhB,EAAWl7B,EAAE8nB,UAAU7Y,OAAOyqB,GAE3C/V,EAASkW,EAA2BhgB,GAE1C,OAAOoe,EACJH,OAAO,QACPD,KAAK,IAAK7mB,EAAUhR,EAAI,GACxB63B,KAAK,IAAK7mB,EAAUlR,GACpB+3B,KAAK,cAAe,SACpBA,KAAK,KAAM,SACX7T,KAAKL,EAAO/d,eAGrB,CAACqzB,EAAciC,EAAYrB,EAA4B75B,EAAGF,EAAG45B,IAGzD0C,EAAkB/E,uBACtB,kBACEC,aACa,cACV/mB,MAAM,SAAUpb,IAChBob,MAAM,OAAQpb,IACdob,MAAM,eAAgB,GACtBA,MAAM,cAAe3a,MAC1B,IAGIymC,EAAahF,uBACjB,kBACEC,aACa,QACV/mB,MAAM,SAAUpb,IAChBob,MAAM,OAAQpb,IACdob,MAAM,eAAgB,GACtBA,MAAM,cAAe3a,MAC1B,IAGI0mC,EAAcjF,uBAAY,WAC9BC,aAAa,cACV/mB,MAAM,SAAU,eAChBA,MAAM,OAAQ,iBAChB,IAEGgsB,EAAWlF,uBACf,SAAAY,GACEA,EAAEF,UAAU,UACTnzB,KAAKA,GACLo3B,KAAK,UACLnE,KAAK,MAAM,SAAA95B,GACV,IAAMoF,EAAU,IAAIQ,KAAK5F,EAAEoF,SAC3B,OAAOnD,EAAEmD,EAAQq5B,QAAQr5B,EAAQS,UAAYqF,OAE9C4uB,KAAK,MAAM,SAAA95B,GAAC,OAAI+B,EAAE,IAAI2vB,KAAU1xB,EAAEm4B,MAAMqF,eACxC1D,KAAK,QAAQ,SAAA95B,GAAC,MAAmB,WAAdA,EAAE0+B,QAAuBroC,EAAOC,KACnDwjC,KAAK,IAAK,OAEf,CAACjzB,EAAMqE,EAAQjJ,EAAGF,IAGd48B,EAAYrF,uBAAY,WAC5B,IAAMp9B,EAAMq9B,UACF74B,EAAImH,SACXiyB,KAAK,UAAW,CAAC,EAAG,EAAGmB,EAAaD,IAWvC,OATA9+B,EAAI69B,OAAO,KAAKj7B,KAAK4+B,GACrBxhC,EAAI69B,OAAO,KAAKj7B,KAAKk/B,GACrB9hC,EAAI69B,OAAO,KAAKj7B,KAAK6+B,GACrBzhC,EAAI69B,OAAO,KAAKj7B,KAAKi/B,GACrB7hC,EAAI69B,OAAO,KAAKj7B,KAAKu/B,GACrBniC,EAAI69B,OAAO,KAAKj7B,KAAKw/B,GACrBpiC,EAAI69B,OAAO,KAAKj7B,KAAKy/B,GACrBriC,EAAI69B,OAAO,KAAKj7B,KAAK0/B,GAEdtiC,EAAIiiC,SACV,CACDT,EACAM,EACAL,EACAI,EACAS,EACAF,EACAC,EACAF,IAUF,OAPAz2B,qBAAU,WACR2xB,UAAU74B,EAAImH,SACXmyB,UAAU,KACVrV,SACHga,MACC,CAACA,IAEG,sBAAKj+B,IAAKA,KCrVJk+B,GATO,SAAC,GAAqB,IAAnBjY,EAAkB,EAAlBA,KAAM/Z,EAAY,EAAZA,MAC7B,OACE,uCACE,eAACnP,GAAD,CAAO+U,MAAO,CAAE5P,aAAc,GAA9B,SAAoC+jB,IACpC,eAAC5oB,GAAD,CAAQyU,MAAO,CAAEzX,OAAQ,GAAzB,SAA+B6R,QCkJtBrQ,GA5IA,CACbgpB,aAAc,CACZ1qB,QAAS,OACTwG,eAAgB,gBAChBzF,WAAY,SACZ+G,cAAe,OAEjB6iB,yBAA0B,CACxB3qB,QAAS,QAEXiK,MAAO,CACLtD,WAAY,IAEdiD,KAAM,CACJ3B,YAAa,GAEfnJ,GAAI,CACFoB,OAAQ,EACR+H,YAAanK,IAEfiU,MAAO,CACLtR,OAAQ,UACRiiB,UAAW,EACXtB,SAAU,EACVtgB,QAAS,EACTxC,MAAO/B,GACPof,cAAe,OACfvM,aAAa,wBACbpP,QAAS,eACT3B,WAAY,IACZ,UAAW,CACTpC,gBAAiB,gBAGrB+nC,oBAAqB,CACnBvjC,OAAQ,UACRnC,MAAOzC,EACP8C,WAAY,IACZkC,aAAc,EACd6hB,UAAW,EACXtB,SAAU,EACVzF,cAAe,OACfvM,aAAa,aAAD,OAAevT,GAC3BmE,QAAS,eACT3B,WAAY,IACZ,UAAW,CACTpC,gBAAiB,gBAGrBgoC,UAAW,CACTt9B,WAAY,IAEdu9B,aAAc,CACZlkC,QAAS,QAEXmkC,UAAW,CACT1lC,SAAUrB,GACVsB,WAAY1B,GACZ2B,WAAY,IACZL,MAAOjD,EACPsF,OAAQ,IAEVyjC,YAAa,CACX3lC,SAAUrB,GACVsB,WAAY1B,GACZ2B,WAAY,IACZL,MAAO3C,EACPgF,OAAQ,IAEV0jC,eAAgB,CACd5lC,SAAUrB,GACVsB,WAAY1B,GACZ2B,WAAY,IACZL,MAAOpD,GAETopC,gBAAiB,CACftkC,QAAS,OACTwG,eAAgB,gBAChBtG,OAAQ,uBACR8G,SAAU,YAEZu9B,YAAa,CACX9lC,SAAUrB,GACVsB,WAAY1B,GACZ2B,WAAY,IACZL,MAAOhC,IAETkoC,cAAe,CACbljC,MAAO,GACPX,OAAQ,GACRoH,cAAe,EACfE,YAAa,GAEfw8B,kBAAmB,CACjBz8B,WAAY,IAEd08B,sBAAuB,CACrB38B,aAAc,IAEhB48B,YAAa,CACX3kC,QAAS,OACT8H,cAAe,MACf/G,WAAY,SACZyF,eAAgB,gBAChBuB,aAAc,IAEhB68B,aAAc,CACZ5kC,QAAS,OACT8H,cAAe,MACf/G,WAAY,SACZ,UAAW,CACTf,QAAS,OACT8H,cAAe,MACf/G,WAAY,SACZ4F,WAAY,GACZ,gBAAiB,CACfA,WAAY,GAEd,QAAS,CACPA,WAAY,KAIlBk+B,iBAAkB,CAChBlkC,OAAQ,IACR+F,UAAW,IAEbo+B,0BAA2B,CACzBnkC,OAAQ,IACR+F,UAAW,IAEbq+B,aAAc,CACZpkC,OAAQ,GACRW,MAAO,EACPrF,gBAAiBO,GACjBmK,WAAY,GACZsB,YAAa,KC5IXzG,GAAYC,YAAWC,IACvBsjC,GAAS,CAAC,QAAS,OAAQ,OAuClBC,GArCH,SAAC,GAAoC,IAAlCC,EAAiC,EAAjCA,eAAgBC,EAAiB,EAAjBA,WACvBjjC,EAAUV,KAD8B,EAER0K,mBAAS,OAFD,mBAEvCk5B,EAFuC,KAE1BC,EAF0B,KAIxCrjB,EAAapX,KAASw6B,GAM5B,OACE,uBAAKvjC,UAAWO,IAAWF,EAAQwoB,cAAnC,UACE,sBAAK7oB,UAAWK,EAAQyoB,yBAAxB,SACE,eAACnoB,GAAD,CAAIX,UAAWK,EAAQpD,GAAvB,SAA4B,yBAE7BqmC,GACC,sBAAKtjC,UAAWK,EAAQgiC,aAAxB,SACGc,GAAO13B,KAAI,SAACmI,EAAIqE,GACf,OACE,sBAEE1O,QAAS,SAAAoV,GAAC,OAhBJif,EAgBoBjf,EAAE/c,OAAO6hC,UAf/CD,EAAe5F,QACfyF,EAAezF,GAFG,IAAAA,GAiBN59B,UACEmgB,EAAWvM,GACPrT,IAAWF,EAAQ8hC,oBAAqB9hC,EAAQ+hC,WAChD7hC,IAAWF,EAAQ6P,MAAO7P,EAAQ+hC,WAN1C,SAQGxuB,GAPIqE,YCLrB+c,KAAUV,OAAO,CAAEW,cAAeD,KAAUE,gBAE5C,IAAMwO,GAAW36B,IAAMA,IAAO,SACxBpJ,GAAYC,YAAWC,IACvB8jC,GAAW56B,IAAMA,IAAO,cAExB66B,GAAoB,WAAoC,IAAnCC,EAAkC,uDAAxB,EAAGC,EAAqB,uDAAT,KAC5CjK,EAAOiK,EAAY,IAAI56B,KAAK46B,GAAa,IAAI56B,KACnD,OAAO66B,aAAI,CAAEF,QAASA,GAAWhK,IAG7BsJ,GAAS,CACbhH,IAAK,CACH72B,KAAMs+B,GAAkB,OAAe,IAAI16B,MAC3C1E,MAAOo/B,GAAkB,MAAW,IAAI16B,OAE1CkzB,KAAM,CACJ92B,KAAMs+B,GAAkB,QAAgB,IAAI16B,MAC5C1E,MAAOo/B,GAAkB,OAAe,IAAI16B,OAE9CmzB,MAAO,CACL/2B,KAAMs+B,GAAkB,OAAgB,IAAI16B,MAC5C1E,MAAOo/B,GAAkB,OAAgB,IAAI16B,QAI3C6rB,GAAWtrB,IAAH,mWAoBR2mB,GAAU,SAAC0I,EAAKllB,GAAN,OACbklB,EACCpd,OAAOoa,WAAWliB,EAAG4nB,sBAAwB9f,OAAOoa,WAAWliB,EAAG6nB,OC1EvDuI,GD4EW,WAAO,IAAD,QACxB3jC,EAAUV,KADc,EAEY0K,mBAAS,OAFrB,mBAEvB45B,EAFuB,KAERC,EAFQ,OAGJj6B,YAAS8qB,GAAU,CAC3CnpB,UAAW,CAAEu4B,yBAAyB,KADhCh6B,EAHsB,EAGtBA,KAAMC,EAHgB,EAGhBA,QAGRg6B,EAAa/P,GAAc,SAAdA,CAAA,OAAwBlqB,QAAxB,IAAwBA,OAAxB,EAAwBA,EAAMmqB,QAAQ+P,aACnDhK,EAAWhG,GAAc,SAAdA,CAAA,OAAwBlqB,QAAxB,IAAwBA,OAAxB,EAAwBA,EAAMmqB,QAAQ+F,SAEjDiK,EAAsB,SAAAC,GAAiB,OAAI,SAAA7G,GAC/C,OAAgB,OAAZA,EAAEt1B,QACDm8B,EAQS,OAAZ7G,EAAEt1B,OACFo8B,aAAQrB,GAAOc,GAAe3+B,KAAM80B,GAAWsD,EAAEh1B,QAAS2xB,KAC1DmK,aAAQpK,GAAWsD,EAAEh1B,QAAS2xB,GAAW8I,GAAOc,GAAez/B,OARjD,OAAZk5B,EAAEt1B,OACFo8B,aAAQrB,GAAOc,GAAez/B,MAAO41B,GAAWsD,EAAEh1B,QAAS2xB,KAC3DmK,aAAQpK,GAAWsD,EAAEh1B,QAAS2xB,GAAW,IAAInxB,SAU7Cu7B,EAAsB,SAAAtpB,GAC1B,GAAIA,EAAKupB,WAAaN,EAAY,OAAOjpB,EACzC,IAAMwpB,EAAW57B,KAAOA,IAAS,OAAQoS,EAAKupB,UAA7B37B,CAAwCoB,EAAKy6B,WAExDC,EADa97B,KAAOA,IAAS,OAAQq7B,GAAxBr7B,CAAqCoB,EAAKy6B,WAC/BE,KAAOH,EAASG,KAC9C,OAAO,2BAAK3pB,GAAZ,IAAkBsgB,KAAM3F,WAAW3a,EAAKsgB,MAAQoJ,KAG5CE,EAAqBh8B,IAAM07B,EAAN17B,CACzBA,IAASu7B,GAAoB,GAA7B,iBAAqCn6B,QAArC,IAAqCA,OAArC,EAAqCA,EAAM66B,oBAA3C,QAA2D,KAEvDC,EAA6Bl8B,IAAM07B,EAAN17B,CACjCA,IAASu7B,GAAoB,GAA7B,iBAAoCn6B,QAApC,IAAoCA,OAApC,EAAoCA,EAAM66B,oBAA1C,QAA0D,KAUtDE,EAAY,SAAAF,GAChB,IAAMG,EAAap8B,KAAM46B,GAASqB,IAC5BI,EAAiBr8B,KAASqnB,GAAS,EAAG4U,GAE5C,OAAO,IAAIhQ,KAAUoQ,EAAiBD,IAiBlCE,EAAsB,WAAO,IAAD,EACNt8B,KAAYA,IAAS,UAAW,UAAhCA,CACxBg8B,GAF8B,mBACzB3oB,EADyB,KACjBJ,EADiB,KAI1BspB,EAAclpB,EAAOra,OAASia,EAAQja,OAC5C,OAAoB,IAAhBujC,EACK,CAAElpB,OAAQ,EAAGJ,QAAS,GAGxB,CACLI,OAAQ1H,KAAK6wB,MAAOnpB,EAAOra,OAASujC,EAAe,KACnDtpB,QAAStH,KAAK6wB,MAAOvpB,EAAQja,OAASujC,EAAe,OAInDE,EA7BmB,WACvB,IAAMC,EAAuBP,EAAUH,GACjCW,EAA2BR,EAAUD,GAE3C,OAAIQ,EAAqBE,GAAGD,GAAkC,EAC1DA,EAAyBC,GAAG,GAAW,IAEpCF,EACJG,MAAMF,GACNG,MAAM,KACNC,IAAIJ,GACJ5E,WAkBiBiF,GAEhB3K,GAAiB,mBACpB/6B,EAAQkiC,YAAciD,EAAgB,GADlB,cAEpBnlC,EAAQiiC,UAAYkD,EAAgB,GAFhB,cAGpBnlC,EAAQmiC,eAAmC,IAAlBgD,GAHL,GAcvB,OACE,uCACE,eAAC,GAAD,CACElC,YAAal5B,IAAYrB,KAAUoB,EAAK66B,cACxC3B,eAAgBa,KAEhB95B,GAAWrB,KAAUoB,EAAK66B,eAC1B,eAAC,GAAD,CACEhlC,UAAWK,EAAQuiC,kBACnBr6B,QAAQ,4BAGV6B,IAAYrB,KAAUoB,EAAK66B,eAC3B,uCACE,gBAACtU,EAAA,EAAD,CAAMnsB,WAAS,EAACyU,QAAS,EAAzB,UACE,eAAC0X,EAAA,EAAD,CAAMvV,MAAI,EAAC+a,GAAI,EAAf,SACE,eAAC,GAAD,CACEjM,KA3ELlhB,KAASg8B,GA4EJ70B,MAAO,mBAGX,eAACwgB,EAAA,EAAD,CAAMvV,MAAI,EAAC+a,GAAI,EAAf,SACE,eAAC,GAAD,CACEjM,KA7EZ,IAAI+K,KAAUjsB,KAAM26B,GAASqB,KAAsB9O,SAAS,GA8EhD/lB,MAAK,iBAAK/F,QAAL,IAAKA,OAAL,EAAKA,EAAMmqB,OAAO0R,oBAAlB,kBAKX,eAACtV,EAAA,EAAD,CAAMnsB,WAAS,EAACvE,UAAWK,EAAQ2iC,iBAAnC,SACE,gBAACtS,EAAA,EAAD,CAAMvV,MAAI,EAAC+a,GAAI,GAAf,UACE,uBAAKl2B,UAAWK,EAAQyiC,YAAxB,UACE,eAACxhC,GAAD,CAAQlD,UAAQ,EAAhB,0BACA,uBAAK4B,UAAWK,EAAQ0iC,aAAxB,UACE,gBAACliC,GAAD,CAAGzC,UAAQ,EAAX,oBACGo6B,GAAU6B,GAAU5B,aADvB,QACgCD,GAAU6B,GAAU3B,KAAM,IAD1D,cAIA,uBAAM14B,UAAWK,EAAQ6iC,eACzB,iCACE,sBAAKzjC,MAAO,EAAGX,OAAQ,EAAvB,SACE,uBAAMW,MAAO,EAAGX,OAAQ,EAAG6I,GAAI,EAAGxE,KAAMxJ,MAE1C,eAAC0H,GAAD,CAAQjD,UAAQ,EAAhB,mBAEF,iCACE,sBAAKqB,MAAO,EAAGX,OAAQ,EAAvB,SACE,uBAAMW,MAAO,EAAGX,OAAQ,EAAG6I,GAAI,EAAGxE,KAAMvJ,MAE1C,eAACyH,GAAD,CAAQjD,UAAQ,EAAhB,0BAIN,eAAC,GAAD,CACEs+B,UAAWuH,EACX95B,KAAM46B,EACN1K,SAAUA,SAIhB,gBAAC3J,EAAA,EAAD,CAAMnsB,WAAS,EAACvE,UAAWK,EAAQ4lC,yBAAnC,UACE,gBAACvV,EAAA,EAAD,CAAMvV,MAAI,EAAC+a,GAAI,EAAf,UACE,eAAC50B,GAAD,CAAQlD,UAAQ,EAAC4B,UAAWK,EAAQwiC,sBAApC,qCAGA,uBAAK7iC,UAAWK,EAAQoiC,gBAAxB,UACE,sBAAKziC,UAAWK,EAAQqiC,YAAxB,mBACMwC,EAAUH,GAAoB9O,SAAS,GAD7C,mBAEI9rB,QAFJ,IAEIA,OAFJ,EAEIA,EAAMmqB,OAAO0R,uBAGjB,uBAAKhmC,UAAWO,IAAW66B,GAA3B,UA9EU,IAAlBoK,EACK,eAAC,GAAD,CAAoBxlC,UAAWK,EAAQsiC,gBAC5C6C,EAAgB,EACX,eAAC,GAAD,CAAexlC,UAAWK,EAAQsiC,gBACpC,eAAC,GAAD,CAAiB3iC,UAAWK,EAAQsiC,gBA0E/B,UAEM,IAAI3N,KAAUwQ,GAAevP,SAAS,GAF5C,WAKF,eAAC,GAAD,CACEyG,UAAWuH,EACX95B,KAAM46B,EACNvI,iBAAkByI,EAClBxI,eAAgByI,EAAUD,QAG9B,gBAACvU,EAAA,EAAD,CAAMvV,MAAI,EAAC+a,GAAI,EAAf,UACE,gBAACxF,EAAA,EAAD,CAAMnsB,WAAS,EAACvE,UAAWK,EAAQyiC,YAAnC,UACE,eAACxhC,GAAD,CAAQlD,UAAQ,EAAhB,uBACA,uBAAK4B,UAAWK,EAAQ0iC,aAAxB,UACE,iCACE,sBAAKtjC,MAAO,EAAGX,OAAQ,EAAvB,SACE,uBAAMW,MAAO,EAAGX,OAAQ,EAAG6I,GAAI,EAAGxE,KAAMxJ,MAE1C,eAAC0H,GAAD,CAAQjD,UAAQ,EAAhB,mBAEF,iCACE,sBAAKqB,MAAO,EAAGX,OAAQ,EAAvB,SACE,uBAAMW,MAAO,EAAGX,OAAQ,EAAG6I,GAAI,EAAGxE,KAAMvJ,MAE1C,eAACyH,GAAD,CAAQjD,UAAQ,EAAhB,0BAIN,eAACsyB,EAAA,EAAD,CAAMvV,MAAI,EAAC+a,IAAE,EAAb,SACE,eAAC,GAAD,CACE9Z,OAAQipB,IAAsBjpB,OAC9BJ,QAASqpB,IAAsBrpB,yBEjR3Crc,GAAYC,YAAWC,IAcdqmC,GAZE,WACf,IAAM7lC,EAAUV,KAEhB,OACE,eAAC+wB,EAAA,EAAD,CAAMvV,MAAI,EAAC+a,GAAI,GAAIl2B,UAAWK,EAAQszB,YAAtC,SACE,sBAAK3zB,UAAWK,EAAQ8yB,KAAxB,SACE,eAAC,GAAD,S,UCPFgT,GAAYzkC,OAAO0kC,OAAO,CAC9BC,QAAS,UACTC,OAAQ,SACRC,SAAU,aAGN1mC,GAAS,CACbszB,KAAM,CACJC,SAAU,aACV3uB,UAAW,gCACXzF,aAAc,GACdC,QAAS,GACT7E,gBAAiBP,IAIf8F,GAAYC,YAAWC,IAed2mC,GAbS,SAAC,GAAqD,IAAnDxmC,EAAkD,EAAlDA,UAAWgnB,EAAuC,EAAvCA,MAAOyf,EAAgC,EAAhCA,gBAAiBtmC,EAAe,EAAfA,SACtDE,EAAUV,KAChB,OACE,eAAC+wB,EAAA,EAAD,CAAMvV,MAAI,EAACnb,UAAWO,IAAWP,EAAWK,EAAQ8yB,MAApD,SACGnM,IAAUmf,GAAUG,OAASG,EAAkBtmC,KC0BvCN,GAtDA,CACb0E,UAAW,CACTpG,QAAS,OACTwG,eAAgB,iBAElB1H,GAAI,CACFoB,OAAQ,EACR6H,aAAc,IAEhBqtB,YAAa,CACXrtB,aAAc,EACdjH,QAAS,EACTiT,UAAW,UAEbmhB,iBAAkB,CAChBxuB,WAAY,EACZqB,aAAc,IAEhB4F,OAAQ,CACNrP,MAAOzC,EACP6K,UAAW,EACXgc,UAAW,EACXtB,SAAU,EACVtgB,QAAS,EACT6a,cAAe,OACf,UAAW,CACT1f,gBAAiB,gBAGrBssC,qBAAsB,CACpBroC,OAAQ,GAEVsoC,6BAA8B,CAC5BtoC,OAAQ,EACRuH,UAAW,KAEbghC,cAAe,CACbnqC,MAAOpD,EACPyL,YAAa,EACbhG,OAAQ,KAEVm4B,MAAO,CACLrxB,UAAW,IACXE,UAAW,SACXD,UAAW,QAEbghC,aAAc,CACZxoC,OAAQ,eAEVyoC,SAAU,CACRhiC,WAAY,OACZlG,OAAQ,Y,6BCrDZ,SAAS,KAA2Q,OAA9P,GAAW8C,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,YACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,wBACJK,UAAW,uCACG,gBAAoB,IAAK,CACvCL,GAAI,+BACJK,UAAW,qCACG,gBAAoB,IAAK,CACvCL,GAAI,UACJK,UAAW,kCACG,gBAAoB,UAAW,CAC7CL,GAAI,sBACJG,KAAM,UACNC,SAAU,UACVqE,OAAQ,0BACO,gBAAoB,OAAQ,CAC3CzE,GAAI,oBACJC,OAAQ,UACRC,YAAa,EACbqC,EAAG,EACHF,EAAG,EACH5F,MAAO,GACPX,OAAQ,SAGV,SAASioC,GAAgBtjC,EAAMC,GAC7B,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,QAAkBqP,IAAV9L,EAAmC,gBAAoB,QAAS,CACzEX,GAAIY,GACH,wCAA0CD,EAAqB,gBAAoB,QAAS,CAC7FX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiBojC,IAChC,IC3Df,SAAS,KAA2Q,OAA9P,GAAWrlC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAmB,gBAAoB,SAAU,CACpGoB,GAAI,eACJkB,GAAI,GACJC,GAAI,GACJC,EAAG,MAGD,GAAqB,gBAAoB,IAAK,CAChDpB,GAAI,UACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,gDACJK,UAAW,uCACG,gBAAoB,IAAK,CACvCL,GAAI,2BACJK,UAAW,4IACG,gBAAoB,OAAQ,CAC1CL,GAAI,SACJG,KAAM,SACQ,gBAAoB,MAAO,CACzC4hB,UAAW,mBACK,gBAAoB,MAAO,CAC3C/hB,GAAI,OACJG,KAAM,UACNC,SAAU,UACV2hB,UAAW,kBACI,gBAAoB,IAAK,CACxC/hB,GAAI,wBACJ2zB,KAAM,eACNxvB,cAAe,QACf5D,eAAgB,SACF,gBAAoB,IAAK,CACvCF,UAAW,gCACXL,GAAI,SACU,gBAAoB,IAAK,KAAmB,gBAAoB,WAAY,CAC1FA,GAAI,SACJC,OAAQ,UACRC,YAAa,EACbuE,OAAQ,6DACO,gBAAoB,OAAQ,CAC3CJ,GAAI,WACJC,GAAI,IACJC,GAAI,WACJC,GAAI,IACJxE,GAAI,SACJC,OAAQ,UACRC,YAAa,UAGf,SAAS8jC,GAASvjC,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,I,YAAI,GAA0B,aAAiBqjC,IChEzCrnC,IDiES,ICjEGC,YAAWC,KAEvBonC,GAAQ,CACZ7+B,MAAO,eAAC,GAAD,CAAa0N,MAAO,CAAEhX,OAAQ,GAAIW,MAAO,GAAI2G,YAAa,MACjE6B,YACE,eAAC,GAAD,CAAc6N,MAAO,CAAEhX,OAAQ,GAAIW,MAAO,GAAI2G,YAAa,OAIzD8gC,GAAQ,CACZ9+B,MAAO,8BACPH,YAAa,8BACbC,cAAe,wBAoCFi/B,GAjCK,SAAC,GAAuC,IAArCC,EAAoC,EAApCA,YAAaC,EAAuB,EAAvBA,OAAQ58B,EAAe,EAAfA,SACpCmd,EAAUC,cACVxnB,EAAUV,KACV2nC,EAAiBv+B,KAAQ,EAAGq+B,EAAaC,GAEzCE,EAAe,SAAAC,GACnB,IAAM77B,EAAW67B,EAAMh/B,OAAOmD,SAC9B,IAAKA,EAAU,MAAM,GAAN,OAAU67B,EAAMj/B,SAE/B,IAAME,EAAaM,KAAY,kBAAmB0B,EAASkB,IAC3D,MAAM,GAAN,OAAU67B,EAAMj/B,QAAhB,cAA6BE,IAG/B,OACE,eAACg/B,GAAA,EAAD,CAAMC,OAAK,EAAC1nC,UAAWK,EAAQ42B,MAA/B,SACGqQ,EAAe77B,KAAI,SAAC+7B,EAAOvvB,GAC1B,OACE,gBAAC0vB,GAAA,EAAD,WACGV,GAAMO,EAAMl/B,OACX,eAAC,GAAD,CAAQwN,MAAO,CAAEhX,OAAQ,GAAIW,MAAO,GAAI2G,YAAa,KAEvD,eAACvF,GAAD,CAAGb,UAAWK,EAAQwmC,aAAtB,SAAqCU,EAAaC,KAClD,eAAC,GAAD,CACExnC,UAAWK,EAAQymC,SACnBv9B,QAAS,kBAAMqe,EAAQO,KAAK+e,GAAMM,EAAMl/B,OAAS,mBAPtC2P,SC7BnB2vB,GAAan+B,IAAH,2NAkBV9J,GAAYC,YAAWC,IClCdgoC,GDoCA,SAAC,GAAiC,IAAD,MAA9BC,EAA8B,EAA9BA,QAASC,EAAqB,EAArBA,SAAU97B,EAAW,EAAXA,KAC7B5L,EAAUV,KACVqoC,EAAe/7B,IAASk6B,GAAUI,SAChCp8B,EAASF,YAAS29B,IAAlBz9B,KACFk9B,EAAM,UAAGt+B,IAAO,CAAC,UAARA,CAAmBoB,UAAtB,QAA+B,GACrCM,EAAW1B,IACfA,IAAMA,IAAO,SACbA,IAAUA,IAAO,aAFFA,CAAA,iBAGfoB,QAHe,IAGfA,OAHe,EAGfA,EAAMM,gBAHS,QAGG,IACdw9B,EAAeZ,EAAOtlC,OAEtBmmC,GAA2B,mBAC9B7nC,EAAQqmC,sBAAwBsB,GADF,cAE9B3nC,EAAQsmC,6BAA+BqB,GAFT,GAKjC,OACE,uCACE,uBAAKhoC,UAAWK,EAAQkE,UAAxB,UACE,eAAC5D,GAAD,CAAIX,UAAWK,EAAQpD,GAAvB,2BAAuCgrC,EAAvC,OACCD,GACC,eAAC3mC,GAAD,CAAQrB,UAAWK,EAAQgzB,iBAA3B,SACE,eAAC,KAAD,CACE9pB,QAASu+B,EACT77B,KAAK,QACLoE,eAAa,EACb83B,oBAAkB,EAClBnoC,UAAWK,EAAQyL,OALrB,SAMG,mBAKT,eAAC4kB,EAAA,EAAD,CACE1wB,UAAWO,IAAW2nC,GACtB3jC,WAAS,EACTyU,QAAS,EAHX,SAIE,gBAAC0X,EAAA,EAAD,CAAMvV,MAAI,EAAC+a,GAAI,GAAf,WACImR,EAAOtlC,QACP,eAACV,GAAD,CAAQrB,UAAWK,EAAQumC,cAA3B,6DAIF,eAAC,GAAD,CACEQ,YAAaY,EAAeX,EAAOtlC,OAlEzB,EAmEVslC,OAAQA,EACR58B,SAAUA,UAIdu9B,GAAgBC,EAxEF,GAyEd,eAACvX,EAAA,EAAD,CAAMvV,MAAI,EAAC+a,GAAI,GAAf,SACE,eAAC70B,GAAD,CAAQrB,UAAWK,EAAQkzB,YAA3B,SACE,eAAC,KAAD,CACEhqB,QAAS,kBAAMw+B,EAAS,WACxB97B,KAAK,QACLoE,eAAa,EACb83B,oBAAkB,EAClBnoC,UAAWK,EAAQyL,OALrB,6BAMgBu7B,EAAOtlC,OANvB,e,oGEvENzD,GAAS,CACb8J,MAAOtO,EACPsuC,Q/HUc,U+HTdrY,QAASv2B,GACT6uC,QAASruC,GAGLsuC,GAAmB,CACvBlgC,MAAOrO,EACPquC,Q/HIY,U+HHZrY,QAASx2B,EACT8uC,QAAS5uC,GAGLkG,GAAYC,YAAW,CAC3BoO,KAAM,CACJhP,aAAc/C,EACd4I,UAAW5I,EACXmK,YAAanK,EACbiK,aAAcjK,EACd6I,WAAY7I,EACZ6C,OAAQ7C,GACR7B,gBAAiB,gBAAGkO,EAAH,EAAGA,KAAH,OAAcggC,GAAiBhgC,KAElD4H,MAAO,CACLtT,SAAUlB,GACVoB,WAAYhB,GACZe,WAAYd,GACZwD,aAActD,EACd2b,YAAa3b,EACbQ,MAAO,gBAAG6L,EAAH,EAAGA,KAAH,OAAchK,GAAOgK,OAI1BigC,GAAS,SAAC,GAAgB,IAAdC,EAAa,EAAbA,OACVnoC,EAAUV,GAAU,CAAE2I,KAAMkgC,EAAOlgC,OACzC,OAAO,eAACiT,GAAA,EAAD,CAAMjT,KAAMkgC,EAAOlgC,KAAM4H,MAAOs4B,EAAOt4B,MAAO7P,QAASA,KAG1DooC,GAAa,SAAC,GAAkB,IAAhBC,EAAe,EAAfA,SACdC,EACJD,EAAS3kB,MAAK,SAAA6kB,GAAC,MAAe,UAAXA,EAAEtgC,SACrBogC,EAAS3kB,MAAK,SAAA6kB,GAAC,MAAe,YAAXA,EAAEtgC,SACrBogC,EAAS,GACLG,EAAO,CAAE34B,MAAM,IAAD,OAAMw4B,EAAS3mC,OAAS,GAAKuG,KAAMqgC,EAAWrgC,MAElE,OACE,iCACE,eAAC,GAAD,CAAQkgC,OAAQG,IACfD,EAAS3mC,OAAS,GAAK,eAAC,GAAD,CAAQymC,OAAQK,QCgC/BhpC,GA7FA,CACb0E,UAAW,CACTpG,QAAS,OACTwG,eAAgB,iBAElBuL,MAAO,CACL7R,OAAQ,EACR5B,MAAO/B,IAETqiB,IAAK,CACH3iB,gBAAiBA,GACjBmT,aAAc,QAEhBu7B,aAAc,CACZlqC,OAAQ,WAEV8F,OAAQ,CACNvG,QAAS,OACTe,WAAY,SACZsW,WAAY,OAEdpN,MAAO,CACL3L,MAAO3B,IAETgR,OAAQ,CACNrP,MAAOzC,EACP6mB,UAAW,EACXtB,SAAU,EACVtgB,QAAS,EACT6a,cAAe,OACf,UAAW,CACT1f,gBAAiB,eAEnB8L,cAAe,IAEjB6iC,YAAa,CACX5jC,SAAU,WACVsI,OAAQ,IACRvH,aAAc,GAEhBmtB,iBAAkB,CAChBnhB,UAAW,SACXhM,aAAc,EACdrB,UAAW,GAEbmkC,aAAc,CACZlkC,WAAY,GAEdmyB,MAAO,CACLrxB,UAAW,IACX,uBAAwB,CACtBnG,MAAO,GAET,6BAA8B,CAC5BrF,gBAAiBM,GACjBsE,aAAc,IAGlBiqC,UAAW,CACTv8B,SAAU,QAEZzP,GAAI,CACF4H,UAAW,GAEbxH,IAAK,CACHc,QAAS,UAEXL,OAAQ,CACNK,QAAS,UAEX+qC,uBAAwB,CACtBrkC,UAAW,GACX/F,OAAQ,KAEVqqC,+BAAgC,CAC9BtkC,UAAW,GACX/F,OAAQ,KAEVy0B,YAAa,CACXrtB,aAAc,EACdjH,QAAS,EACTiT,UAAW,UAEbk3B,mBAAoB,CAClBjrC,QAAS,OACT8H,cAAe,MACf/G,WAAY,UAEdmqC,oBAAqB,CACnBvkC,WAAY,KCtEVwkC,GAAa7/B,IAAH,oEAMV9J,GAAYC,YAAWC,IAEvB0pC,GAAa/tB,aAAW,CAC5BxN,KAAM,CACJT,aAAc,kBACdtO,QAAS,EACT2Y,YAAa,KAJE4D,CAMhBic,MAEG+R,GAAahuB,aAAW,CAC5BxN,KAAM,CACJT,aAAc,kBACdtO,QAAS,EACT2Y,YAAa,GACbxd,gBAAiB,UALFohB,CAOhBic,MAwHYgS,GAtHO,SAAC,GAAoC,IAAD,MAAjCh/B,gBAAiC,MAAtB,GAAsB,EAAlB28B,EAAkB,EAAlBA,YAChC/mC,EAAUV,KACVioB,EAAUC,cAER1d,EAASF,YAASq/B,IAAlBn/B,KACFu/B,EAA4BrV,GAChC,gBAD6C,UAE7CtrB,IAAO,CAAC,UAAWoB,UAF0B,QAEjB,IAGxBw/B,EAAa,SAAC5rB,GAA2B,IAApBG,EAAmB,uDAAR,IACpC,OAAOxJ,KAAK6wB,MAAOxnB,EAAQG,EAAY,MAGnC0rB,EAAqB,SAACC,EAAa9rB,GAA2B,IAApBG,EAAmB,uDAAR,IACnDtB,EAAU+sB,EAAW5rB,EAAOG,GAC5B4rB,EAAsB/gC,KAC1BA,IAAO,CAAC,4BAAD,OAA6B8gC,KACpC9gC,KA7CuB,IA2CGA,CAG1B2gC,GACF,OAAO9sB,EAAUktB,EACf,eAAC1oC,GAAD,CAAKpB,UAAWK,EAAQ+H,MAAxB,mBAAmCwU,EAAnC,OAEA,eAACxb,GAAD,oBAASwb,EAAT,QAIEmtB,EAAW,SAAC,GAAwB,IAAtB56B,EAAqB,EAArBA,KAAMxD,EAAe,EAAfA,SACxB,OAAOic,EAAQO,KAAR,oBAA0Bxc,GAAY,CAC3Cq+B,gBAAiB76B,KAIf86B,EAAuBv1B,KAAKC,IAAL,MAAAD,KAAI,YAC5B3L,KAAM,SAAA6K,GAAE,OAAIA,EAAGs2B,oBAAmBz/B,IADN,QAE/B,KAGF,OACE,eAAC0/B,GAAA,EAAD,CAAgBnqC,UAAWK,EAAQ42B,MAAnC,SACE,gBAAC,KAAD,WACE,eAAC,KAAD,UACE,gBAAC,KAAD,WACE,eAACuS,GAAD,UACE,sBAAKxpC,UAAWK,EAAQqE,OAAxB,SACE,eAACpD,GAAD,CAAQtB,UAAWK,EAAQ6P,MAA3B,0BAGJ,eAACs5B,GAAD,UACE,sBAAKxpC,UAAS,UAAKK,EAAQqE,OAAb,YAAuBrE,EAAQ2oC,cAA7C,SACE,eAAC1nC,GAAD,CAAQtB,UAAWK,EAAQ6P,MAA3B,wBAQHnH,KACC,SAAA6K,GAAE,OACA,eAAC41B,GAAD,UACE,uBAAKxpC,UAAWK,EAAQqE,OAAxB,UACE,eAAC,GAAD,IACA,gBAACpD,GAAD,CAAQtB,UAAWK,EAAQ6P,MAA3B,cAAoC0D,EAAK,YAI/C7K,KAAQA,KAAYkhC,SAI1B,eAAC,KAAD,UACGx/B,EAASgB,KAAI,SAACkd,EAAS1Q,GACtB,OAAIA,EAAMmvB,EAEN,gBAAC,KAAD,CACE79B,QAAS,kBAAMwgC,EAASphB,IACxB3oB,UAAWO,IAAWF,EAAQ0c,KAFhC,UAIE,eAACwsB,GAAD,CAAYa,MAAM,OAAlB,SACE,uBAAKpqC,UAAWK,EAAQ+oC,mBAAxB,UACE,eAAChoC,GAAD,UAAMunB,EAAQxZ,OACd,eAAC,GAAD,CACEnP,UAAWO,IACTF,EAAQgpC,oBACRhpC,EAAQyoC,cAEVv/B,QAAS,kBAAMwgC,EAASphB,WAI9B,eAAC4gB,GAAD,UACE,eAAC,GAAD,CAAQf,OAAQ7f,EAAQ+f,SAAS,OAElC3/B,KACC,SAAA6K,GAAE,OACA+U,EAAQuhB,mBAAqBt2B,EAC3B,eAAC21B,GAAD,CAAYa,MAAM,OAAlB,SACGR,EAAmBh2B,EAAI+U,EAAQ,WAAD,OAAY/U,OAG7C,eAAC21B,GAAD,CAAYa,MAAM,OAAlB,SACE,eAAChpC,GAAD,2BAGN2H,KAAQ,EAAGkhC,EAAuB,MA3B/BthB,EAAQhd,SAAWsM,GAgCvB,gBCjJbtY,GAAYC,YAAWC,IAKvBk1B,GAAWtrB,IAAH,4VCpBC4gC,GDoDM,SAAC,GAAiC,IAAD,IAA9BvC,EAA8B,EAA9BA,QAASC,EAAqB,EAArBA,SAAU97B,EAAW,EAAXA,KACnC5L,EAAUV,KADoC,EAE1BsK,YAAS8qB,IAA3B5qB,EAF4C,EAE5CA,KAAMC,EAFsC,EAEtCA,QAERK,EAAQ,UAAG1B,IAAO,CAAC,YAARA,CAAqBoB,UAAxB,QAAiC,GACzC69B,EAAe/7B,IAASq+B,GAAW/D,SAEnCgE,GAA6B,mBAChClqC,EAAQ6oC,wBAA0BlB,GADF,cAEhC3nC,EAAQ8oC,+BAAiCnB,GAFT,GAKnC,OACE,uCACE,uBAAKhoC,UAAWK,EAAQkE,UAAxB,UACE,eAAC5D,GAAD,CAAIX,UAAWK,EAAQpD,GAAvB,2BAA8C,IAC7C+qC,GACC,eAAC3mC,GAAD,CAAQrB,UAAWK,EAAQgzB,iBAA3B,SACE,eAAC,KAAD,CACE9pB,QAASu+B,EACT77B,KAAK,QACLoE,eAAa,EACb83B,oBAAkB,EAClBnoC,UAAWK,EAAQyL,OALrB,SAMG,oBAKP1B,GACA,uCACE,gBAACsmB,EAAA,EAAD,CAAMnsB,WAAS,EAACyU,QAAS,EAAzB,UASE,gBAAC0X,EAAA,EAAD,CAAMvV,MAAI,EAAC+a,GAAI,EAAf,UACE,eAAC90B,GAAD,CAAKpB,UAAWK,EAAQhD,IAAxB,gBAA8B8M,QAA9B,IAA8BA,OAA9B,EAA8BA,EAAMqgC,gBACpC,eAACnpC,GAAD,CAAQrB,UAAWK,EAAQvC,OAA3B,gCAEF,eAAC4yB,EAAA,EAAD,CAAMvV,MAAI,EAAC+a,GAAI,OAWjB,eAACxF,EAAA,EAAD,CACEnsB,WAAS,EACTyU,QAAS,EACThZ,UAAWO,IAAWgqC,GAHxB,SAIE,eAAC7Z,EAAA,EAAD,CAAMvV,MAAI,EAAC+a,GAAI,GAAf,SACE,eAAC,GAAD,CACEkR,YAAaY,EAAeyC,IA/FtB,EAgGNhgC,SAAUA,SAIdu9B,GAAgBv9B,EAAS1I,OApGf,GAqGV,eAAC2uB,EAAA,EAAD,CAAMvV,MAAI,EAAC+a,GAAI,GAAf,SACE,eAAC70B,GAAD,CAAQrB,UAAWK,EAAQkzB,YAA3B,SACE,eAAC,KAAD,CACEhqB,QAAS,kBAAMw+B,KACf97B,KAAK,QACLoE,eAAa,EACb83B,oBAAkB,EAClBnoC,UAAWK,EAAQyL,OALrB,6BAMgBrB,EAAS1I,OANzB,kBE7GVpC,GAAYC,YAAWC,IAEvB6qC,GAAa,SAAC,GAAuC,IAArC/mC,EAAoC,EAApCA,MAAOgnC,EAA6B,EAA7BA,WAAYC,EAAiB,EAAjBA,WACjCvqC,EAAUV,KAChB,OACE,uBAAKK,UAAWK,EAAQkE,UAAxB,UACE,eAAC5D,GAAD,CAAIX,UAAWK,EAAQpD,GAAvB,SAA4B0G,IAC5B,eAACtC,GAAD,CAAQrB,UAAWK,EAAQgzB,iBAA3B,SACE,eAAC,KAAD,CACE9pB,QAASqhC,EACT3+B,KAAK,QACLoE,eAAa,EACb83B,oBAAkB,EAClBnoC,UAAWK,EAAQyL,OALrB,SAMG6+B,UAwEIE,GAjEG,WAAO,IAAD,IAChBxqC,EAAUV,KADM,EAE0B0K,mBAAS87B,GAAUE,SAF7C,mBAEfyE,EAFe,KAEGC,EAFH,OAGc1gC,mBAAS87B,GAAUE,SAHjC,mBAGf2E,EAHe,KAGHC,EAHG,KAKhBnD,EAAU,WACdmD,EAAc9E,GAAUE,SACxB0E,EAAoB5E,GAAUE,UAEhC,OACE,eAAC3V,EAAA,EAAD,CAAMvV,MAAI,EAAC+a,GAAI,GAAIl2B,UAAWK,EAAQszB,YAAtC,SACE,sBAAK7d,MAAO,CAAE3F,KAAM,EAAGhS,QAAS,OAAQ8H,cAAe,UAAvD,SACE,uCACE,eAAC,GAAD,CACEjG,UAAWO,KAAU,mBAClBF,EAAQizB,WAAa0X,IAAe7E,GAAUG,QAD5B,cAElBjmC,EAAQqzB,WAAasX,IAAe7E,GAAUG,QAF5B,cAGlBjmC,EAAQozB,aAAeuX,IAAe7E,GAAUI,UAH9B,IAKrBvf,MAAOgkB,EACPvE,gBACE,eAAC,GAAD,CACE9iC,MAAO,SACPgnC,WAAY,cACZC,WAAY9C,IAXlB,SAcE,eAAC,GAAD,CACEC,SAAU,WACRkD,EAAc9E,GAAUI,UACxBwE,EAAoB5E,GAAUG,SAEhCwB,QAASA,EACT77B,KAAM++B,MAGV,eAAC,GAAD,CACEhrC,UAAWO,KAAU,mBAClBF,EAAQqzB,WAAaoX,IAAqB3E,GAAUG,QADlC,cAElBjmC,EAAQmzB,iBAAmBsX,IAAqB3E,GAAUG,QAFxC,cAGlBjmC,EAAQozB,aAAeuX,IAAe7E,GAAUI,UAH9B,IAKrBvf,MAAO8jB,EACPrE,gBACE,eAAC,GAAD,CACE9iC,MAAO,gBACPgnC,WAAY,gBACZC,WAAY9C,IAXlB,SAcE,eAAC,GAAD,CACEC,SAAU,WACRgD,EAAoB5E,GAAUI,UAC9B0E,EAAc9E,GAAUG,SAE1BwB,QAASA,EACT77B,KAAM6+B,cCtEdnrC,GAAYC,YAAWC,IAEvBk1B,GAAWtrB,IAAH,4GCrBCyhC,GD8BG,WAChB,IAAMtjB,EAAUC,cACVxnB,EAAUV,KAFM,EAGE0K,oBAAS,GAHX,mBAGf2E,EAHe,KAGTwL,EAHS,OAKIvQ,YAAS8qB,IAA3B5qB,EALc,EAKdA,KAOR,OAZsB,EAKRC,QAmEZ,+BA3DCrB,KAAUoB,EAAKM,UAiCd,uCACGuE,GACC,eAAC,GAAD,CAAYnF,MAAO,kBAAM2Q,GAAQ,IAAQkJ,SAzChC,SAAAiF,GACfnO,GAAQ,GACRoN,EAAQO,KAAK,8BAA+B,CAAEnlB,GAAI2lB,EAAQhd,cAyCtD,eAAC,GAAD,CAAchI,MAAM,YAApB,SACE,sBAAK3D,UAAWK,EAAQ4yB,aAAxB,SACE,kCACE,eAAC7xB,GAAD,CAAKpB,UAAWK,EAAQnC,OAAxB,gBAAiCiM,QAAjC,IAAiCA,OAAjC,EAAiCA,EAAMqgC,gBAAqB,IAC5D,eAACnpC,GAAD,CAAQrB,UAAWK,EAAQnC,OAA3B,oCAIN,sBAAK8B,UAAWK,EAAQ6yB,kBAAxB,SACE,uBAAKlzB,UAAWK,EAAQuzB,qBAAxB,UACE,eAACpzB,GAAD,CAAIR,UAAWK,EAAQ3F,SAAvB,4CACA,eAACsG,GAAD,CAAOhB,UAAWK,EAAQ3F,SAA1B,wFAIA,eAAC6oB,GAAD,CAAQha,QAAS,kBAAMiR,GAAQ,IAA/B,oCAGJ,eAAC,GAAD,OAtDF,uCACE,eAAC,GAAD,CAAc7W,MAAM,YAApB,SACE,uBAAK3D,UAAWK,EAAQ4yB,aAAxB,UACE,iCACE,eAAC,GAAD,IACA,+CAEF,iCACE,eAAC,GAAD,IACA,gDAEF,iCACE,sBAAKxzB,MAAO,GAAIX,OAAQ,GAAxB,SACE,uBAAMW,MAAO,GAAIX,OAAQ,GAAI6I,GAAI,EAAGxE,KAAMrI,OAE5C,4DAIN,sBAAKkF,UAAWK,EAAQ2N,KAAxB,SACE,gBAAC0iB,EAAA,EAAD,CAAMnsB,WAAS,EAAf,UACE,eAACmsB,EAAA,EAAD,CAAMnsB,WAAS,EAACosB,UAAU,SAASxV,MAAI,EAAC+a,GAAI,EAA5C,SACE,eAAC,GAAD,MAEF,eAACxF,EAAA,EAAD,CAAMnsB,WAAS,EAACosB,UAAU,SAASxV,MAAI,EAAC+a,GAAI,EAA5C,SACE,eAAC,GAAD,WAIN,eAAC,GAAD,Q,mIEtEFiV,GACJ,yEAsBaC,GApBS,SAAC,GAA0C,IAAD,IAAvC7iC,eAAuC,MAA7B4iC,GAA6B,EAC1DE,EAAStwB,eAETuwB,EAAaD,EAAOE,OAAgC,IAAvBF,EAAOG,YAE1CtgC,qBAAU,WAENoiB,OAAOme,eADLH,EACsBI,OAEAj8B,IAEzB,CAAC67B,IAEJ,IAAMI,EAAc,WAClB,OAAOP,IAGT,OAAO,eAAC,IAAD,CAAQQ,KAAML,EAAY/iC,QAASA,K,oBCVpClL,GAAmBsB,GAAnBtB,IAAQS,GAAWa,GAAXb,OAED,IACbmO,KAAM,gBAAGA,EAAH,EAAGA,KAAH,OAAc+F,GAAO/F,IAC3BgG,QACAvN,OAAQ,CACN/H,OAAQU,GACRjD,gBAAiBgC,GACjB0C,OAAQ9C,GACRkW,UAAW,OACXzV,MAAO5C,EACPsE,QAAS,OACTe,WAAY,UAEd0sC,aAAc,CACZjvC,OAAQU,GACRjD,gBAAiBgC,GACjB0C,OAAQ3C,GACRM,MAAO5C,EACPsE,QAAS,aAEX0tC,cAAe,kBAAgB,CAC7BpsC,MADa,EAAGA,MAEhBtB,QAAS,aACT,mBAAoB,CAClBE,OAAQ,CAAC,CAAC,EAAG,KACb1B,OAAQmB,GACRhB,WAAY,IACZqB,QAAS,OACTwG,eAAgB,SAChBzF,WAAY,SACZ9E,gBAAiBM,GACjB+B,MAAO5C,EACPmF,aAAc,CAAC,CAAC,EAAG,EAAG,EAAG,IACzBF,OAAQ,IAEV,kBAAmB,CACjBG,QAAS,CAAC,CAAC,EAAG,KACdd,QAAS,aACT2tC,cAAe,SACfhtC,OAAQ3C,GAA0B,MAGtC4vC,gBAAiB,CACf5tC,QAAS,OACTc,QAAS,CAAC,CAAC,EAAGhD,MAEhBs7B,GAAI,gBAAGrlB,EAAH,EAAGA,UAAH,MAA2B,CAC7BzS,MADE,EAAcA,MAEhBR,QAAS,CAAC,CAAC,EAAGhD,GAAY,EAAGA,KAC7BiW,cAEF85B,SAAU,CACRF,cAAe,SACf3tC,QAAS,aACTc,QAAS,CAAC,CAAC,EAAGhD,MAEhBgwC,QAAS,CACP7xC,gBAAiBiC,IAEnB6vC,SAAU,CACR9xC,gBAAiBkC,IAEnB6vC,YAAa,YAMX,MAAO,CACLhuC,QAAS,OACTe,WAAY,SACZ2hB,UARY,CACZqX,GAAI,GACJD,GAAI,IAHmB,EAAXhsB,OAKmB,KAQnCmgC,gBAAiB,CACf/tC,OAAQ,EACRY,QAAS,EACT,eAAgB,CACdA,QAAS,IAGbk0B,KAAM,CACJx2B,OApFuBgC,GAAdxB,EAqFT,WAAY,CACV2B,OAAQ,GAEVT,OAAQ,CAAC,CAAC,EAAG,EAAG,EAAG,IACnBoB,MAAO,OACPgF,UAAW,CAAC,CAAC,EAAG,EAAG,EAAG,EAAG,yBAE3B4nC,UAAW,CACTvnC,WAAY,QAEdwnC,aAAc,CACZrtC,QAAS,CAAC,CAAC,GAAI,EAAG,GAAI,KACtBxC,MAAO3B,KCrGL6E,GAAYC,YAAWC,IAEvBw3B,GAAQ,SAAC,GAAD,IAAGl3B,EAAH,EAAGA,SAAUH,EAAb,EAAaA,UAAcI,EAA3B,+CACZ,8CAAKJ,UAAWO,IAAWP,IAAgBI,GAA3C,aACGD,MAICosC,GAAQ,SAAC,GAA6B,IAA3BpsC,EAA0B,EAA1BA,SAAUH,EAAgB,EAAhBA,UACnBK,EAAUV,KAChB,OAAO,sBAAKK,UAAWO,IAAWP,EAAWK,EAAQqE,QAA9C,SAAwDvE,KAG3DqsC,GAAmB,SAAC,GAA6B,IAA3BrsC,EAA0B,EAA1BA,SAAUH,EAAgB,EAAhBA,UAC9BK,EAAUV,KAEhB,OACE,sBAAKK,UAAWO,IAAWP,EAAWK,EAAQurC,cAA9C,SACGzrC,KAKDssC,GAAQ,SAAC,GAA6B,IAA3BtsC,EAA0B,EAA1BA,SAAUH,EAAgB,EAAhBA,UACzB,OAAO,sBAAKA,UAAWO,IAAWP,GAA3B,SAAwCG,KAG3CusC,GAAK,SAAC,GASL,IAAD,EARJvsC,EAQI,EARJA,SACAuE,EAOI,EAPJA,OACA1E,EAMI,EANJA,UAMI,IALJP,aAKI,MALI,IAKJ,EAJJwM,EAII,EAJJA,KACAgG,EAGI,EAHJA,KACAC,EAEI,EAFJA,UACAxB,EACI,EADJA,OAEMrQ,EAAUV,GAAU,CAAEuS,YAAWzS,QAAOwM,SACxC3L,GAAU,mBACbD,EAAQk3B,IAAK,GADA,cAEbl3B,EAAQ2rC,SAAWtnC,GAFN,cAGbrE,EAAQgsC,UAAY37B,GAHP,cAIbrQ,EAAQ4L,MAAQvH,GAJH,cAKbrE,EAAQ4R,MAAQvN,GAAUuN,GALb,GAOhB,OAAO,sBAAKjS,UAAWO,IAAWP,EAAWM,GAAtC,SAAoDH,KAGvDwsC,GAAK,SAAC,GAA4B,IAA1BxsC,EAAyB,EAAzBA,SAAaC,EAAY,4BACrC,OACE,eAAC,GAAD,yBAAIsE,QAAM,GAAKtE,GAAf,aACGD,MAKDysC,GAAgB,SAAC,GAA2C,IAAzCjpC,EAAwC,EAAxCA,MAAOxD,EAAiC,EAAjCA,SAAUH,EAAuB,EAAvBA,UAAWP,EAAY,EAAZA,MAC7CY,EAAUV,GAAU,CAAEF,UAE5B,OACE,uBAAKO,UAAWO,IAAWP,EAAWK,EAAQwrC,eAA9C,UACE,+BAAMloC,IACN,+BAAMxD,QAKN0sC,GAAK,SAAC,GASL,IAAD,EARJtjC,EAQI,EARJA,QACAnB,EAOI,EAPJA,MACAwZ,EAMI,EANJA,aACAkrB,EAKI,EALJA,gBACA3sC,EAII,EAJJA,SACAH,EAGI,EAHJA,UACAiM,EAEI,EAFJA,KACA8gC,EACI,EADJA,OAEM1sC,EAAUV,GAAU,CAAEsM,SACtB+gC,EAAc,CAAEh/B,KAAM3N,EAAQ+rC,iBAC9B9rC,GAAU,mBACbD,EAAQ23B,IAAK,GADA,cAEb33B,EAAQ4rC,QAAU7jC,GAFL,cAGb/H,EAAQ8yB,MAAO,GAHF,cAIb9yB,EAAQ6rC,SAAWa,GAJN,0BAKd/sC,GALc,GAQhB,OACE,qCACE,eAACitC,GAAA,EAAD,CAAMjtC,UAAWO,IAAWD,EAAYN,GAAYuJ,QAASA,EAA7D,SACE,gBAAC2jC,GAAA,EAAD,CAAa7sC,QAAS2sC,EAAtB,UACE,sBAAKhtC,UAAWK,EAAQ8rC,YAAxB,SAAsChsC,IACrCiI,GAAS0kC,GACR,sBAAK9sC,UAAWK,EAAQisC,aAAxB,SAAuC1qB,YCrGpCzoB,OAAMC,gB,kDCcN+zC,GALLC,UAAiB,CACzBC,YANEC,EAOFC,IAAKH,SCADI,GAAeL,GAAEM,QAAQN,GAAEO,SAAS,IAArBP,CAA0BpkC,KAAS,EAAGokC,GAAEQ,UACvDC,GAAeT,GAAEM,QAAQN,GAAEO,SAAS,IAArBP,CAA0BpkC,KAAS,EAAGokC,GAAEU,UACvDC,GAAmBX,GAAEM,QAAQG,GAAVT,CAAwBA,GAAEQ,SAE7CI,GAAehlC,IACnBokC,GAAEa,QAAQ,KACVjlC,KAAU,WAAY,OACtBykC,IAEIS,GAAYllC,IAChBokC,GAAEO,SAAS,KACXP,GAAE1hC,IAAIqiC,IACNC,IAGIG,GAAmB,SAACC,EAAQC,EAAaC,GAAtB,OACF,IAArBC,SAASH,GAAgBC,EAAcC,GCRnC1uC,GAAYC,YANH,CACb2uC,cAAe,CACb/4B,WAAY,YAoHD4R,GA3FA,WACb,IAAM/mB,EAAUV,KADG,EAafqrB,qBAAWwjB,IAVbC,EAHiB,EAGjBA,SACAC,EAJiB,EAIjBA,WACAC,EALiB,EAKjBA,eACAC,EANiB,EAMjBA,UACAC,EAPiB,EAOjBA,aACAC,EARiB,EAQjBA,YACAC,EATiB,EASjBA,aACAC,EAViB,EAUjBA,YACAC,EAXiB,EAWjBA,UACAC,EAZiB,EAYjBA,iBAiBIC,EAAa,SAAC,EAElBl3B,GACI,IAAD,EAFD9I,EAEC,EAFDA,KAEC,IAFK1P,aAEL,MAFayvC,EAEb,EAF+BxqC,EAE/B,EAF+BA,OAAQwN,EAEvC,EAFuCA,UAGpCk9B,EAAe7uC,IAAW,eAC7BF,EAAQkuC,cACPxlC,IAAQrE,KAAYqE,IAAQkmC,IAAclmC,KAASoG,EAAM8/B,EAAU52B,QAkBvE,OACE,eAAC,GAAD,CAAI3T,QAAM,EAAWjF,MAAOA,EAAOyS,UAAWA,EAA9C,SACInJ,IAAQrE,GAGR,wBAAM1E,UAAWovC,EAAjB,UACGnB,GAAU9+B,GAAO,KAChBpG,IAAQkmC,IAAclmC,KAASoG,EAAM8/B,EAAU52B,OAAS,OAJ5D,+CAlBiC,SAAA3T,GACrC,IAAKqE,IAAQkmC,IAAclmC,KAASoG,EAAM8/B,EAAU52B,MAClD,IACE,IAAMg3B,EAActmC,KAAQrE,GACtBvE,EAAW4I,IAAO,CAAC,QAAS,YAAasmC,GACzCC,EAAYvmC,MAAO,SAAA6K,GAAE,OAAI7K,KAAS6K,EAAGtL,KAAM,UAASnI,GAE1D,OADAmvC,EAAUlvC,MAAMD,SAAW4I,KAAS,KAAMumC,EAAUlvC,MAAMD,UACnDkvC,EACP,MAAO1wB,GACP,OAAOja,EAGX,OAAOA,EAMA6qC,CAA+B7qC,UAAlC,QAA6CA,KAFjCuT,IAtDD,EAnBK,SAAAw2B,GAAa,IAAD,EACL1lC,KAAYA,KAAM,gBAAlBA,CAAmC0lC,GAD9B,mBAC7Be,EAD6B,KAClBC,EADkB,KAGpC,IAAKD,EAAUztC,OACb,MAAO,CAAC0sC,EAAUlC,IAGpB,IAAMp1B,EAAQpO,KAAUymC,EAAU,GAAIf,GAChChvC,EAAQsJ,IAAUA,KAAOA,IAAMA,IAAO,CAAC,WAA/BA,CAA2CymC,GAQzD,MAAO,CANezmC,KACpBoO,EACA,CAAE1X,QAAOgvC,SAAUe,EAAWrgC,KAAMqgC,EAAU,GAAG5D,cACjD6D,GAGqBjD,IAsEgBkD,CAAkBjB,GAnEtC,mBAmEZkB,EAnEY,KAmEGC,EAnEH,KAqEnB,OACE,gBAACA,EAAD,WACGD,EAAclkC,KAxDC,SAACmI,EAAIqE,GAAS,IACxBxY,EAA0BmU,EAA1BnU,MAAOgvC,EAAmB76B,EAAnB66B,SAAUt/B,EAASyE,EAATzE,KAEzB,OAAIs/B,GAAYA,EAAS1sC,OAErB,eAAC,GAAD,CAAyBtC,MAAOA,EAAOkE,MAAOwL,EAA9C,SACGs/B,EAAShjC,IAAI0jC,IADIl3B,GAMjBk3B,EAAWv7B,EAAIqE,MA8CnBy2B,GACC,eAAC,GAAD,CAAIhqC,QAAM,EAACjF,MAAOmvC,EAAW18B,UAAU,SAAvC,gBACGy8B,QADH,IACGA,IADH,SAIDE,GACC,eAAC,GAAD,CAAInqC,QAAM,EAACjF,MAAOqvC,EAAa58B,UAAU,SAAzC,oBAID68B,GACC,eAAC,GAAD,CAAIrqC,QAAM,EAACjF,MAAOuvC,EAAa98B,UAAU,SAAzC,wB,oBC9GFvS,GAAYC,YAAW,CAC3B4N,QAAS,CACP/N,MAAO,IACPR,QAAShD,GACTsD,aAActD,IAEhB4zC,aAAc,CACZ5wC,QAAShD,GACTsD,aAActD,GACdkC,QAAS,OACTwG,eAAgB,gBAChBtG,OAAQ,GAEVyxC,QAAS,CACP7wC,QAAShD,GACTkK,WAAYlK,IAEd0H,MAAO,CACLtF,OAAQ,GAEV0xC,YAAa,CACX9wC,QAAS,EACT4F,WAAY,KAIHmrC,GAAc,SAAC,GAAyB,IAAvB7vC,EAAsB,EAAtBA,SAAU0J,EAAY,EAAZA,MAChCxJ,EAAUV,KAChB,OACE,uBAAKK,UAAWK,EAAQwvC,aAAxB,UACG1vC,EACA0J,GACC,eAAC,GAAD,CACEoC,KAAM,GACNoO,aAAW,QACX9Q,QAASM,EACT7J,UAAWK,EAAQ0vC,YAJrB,SAKE,eAAC,GAAD,UAOGE,GAAe,SAAC,GAQtB,IAAD,IAPJtsC,aAOI,MAPI,iBAOJ,MANJqL,YAMI,SALJkhC,EAKI,EALJA,YACAC,EAII,EAJJA,YAII,IAHJh1B,YAGI,MAHG,OAGH,MAFJi1B,2BAEI,qDAF0Dj1B,EAE1D,WADJyG,oBACI,MADW,GACX,EACEvhB,EAAUV,KAEhB,OACE,gBAAC8kB,GAAA,EAAD,CAAQzV,KAAMA,EAAM2V,kBAAgB,oBAApC,UACE,eAAC,GAAD,CAAa9a,MAAO,kBAAMsmC,KAA1B,SACE,eAACxvC,GAAD,CAAIX,UAAWK,EAAQsD,MAAvB,SAA+BA,MAEhCie,GACC,eAAC,GAAD,UACE,eAAC,GAAD,UACGA,EAAayuB,MAAM,KAAK5kC,KAAI,SAAArD,GAAK,OAChC,uCACGA,EACD,kCAMV,eAACwc,GAAA,EAAD,CAAe5kB,UAAWK,EAAQmN,QAAlC,SACG4iC,GAAuB,eAACvvC,GAAD,UAAIuvC,MAE9B,eAACE,GAAA,EAAD,CAAetwC,UAAWK,EAAQyvC,QAAlC,SACE,eAACvsB,GAAD,CAAQha,QAAS2mC,EAAjB,2B,UC3FR,SAAS,KAA2Q,OAA9P,GAAWxuC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,OAAQ,KAAmB,gBAAoB,OAAQ,CAClGoB,GAAI,aACJM,EAAG,2fAGD,GAAqB,gBAAoB,IAAK,CAChDN,GAAI,aACJC,OAAQ,OACRC,YAAa,EACbE,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,6BACU,gBAAoB,OAAQ,CAC1CA,GAAI,SACJG,KAAM,SACQ,gBAAoB,MAAO,CACzC4hB,UAAW,aACK,gBAAoB,MAAO,CAC3C/hB,GAAI,OACJI,SAAU,UACV2hB,UAAW,kBAGb,SAASwrB,GAAW9sC,EAAMC,GACxB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,MACR+E,QAAS,WACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,GAAO,IAGlC,IAAI,GAA0B,aAAiB4sC,IChDvCpzC,IDiDO,ICjDOwB,GAAdxB,GAEFqzC,GAAQ,IAEC,IACbC,aAAc,CACZhxC,MAAO+wC,IACPryC,QAAS,QACTqX,WAAY,SACZ9I,SAAU,UAEZ00B,OAAQ,CACN3hC,MAAO+wC,GACPzqC,OAAQ,EACR,UAAW,CACTpJ,OAfgBgC,GAAXb,OAgBLrB,MAAO/B,GACPkd,YAAa,IAEf,WAAY,CACVjb,OAAQQ,GACRgI,SAAU,WACVtG,OAAQ,EACRzE,gBAAiBC,GACjBoF,MAAO+wC,GACPvxC,QAAS,CAAC,CAAC,EAAG,EAAG,EAAG,KACpBD,aAAc,GACdxC,WAAY,OACZ0V,UAAW,OACXzV,MAAO/B,GACPkE,OAAQ,UACRG,QAAS,UAEX,OAAQ,CACN6G,UAAW,QACXnG,MAAO+wC,GACP3qC,UAAW,OACXV,SAAU,WACV9G,OAAQ,EACRwP,UAAW,EACX5O,QAAS,EACTD,aAAc,CAAC,CAAC,EAAG,EAAG,EAAG,IACzB5E,gBAAiBC,GACjB0E,QAAS,SACT,OAAQ,CACNpC,OAAQQ,GACRuzC,cAAe,OACfzxC,QAAS,CAAC,CAAC,EAAG,KACdL,OAAQ,UACR,SAAU,CACRa,MAAO,OACPtB,QAAS,QACTuO,SAAU,SACV8I,WAAY,WAGhB,aAAc,CACZpb,gBAAiBM,GACjB+B,MAAO5C,IAGX,QAAS,CACPsL,SAAU,WACVC,IAAK,GACLZ,MAAO,GACPrB,KAAMzI,KAGVi2C,eAAgB,CACd,WAAY,CACVv2C,gBAAiBM,GACjB+B,MAAO5C,GAET,OAAQ,CACN,OAAQ,CACNO,gBAAiBM,GACjB+B,MAAO5C,GAET,aAAc,CACZO,gBAAiBC,GACjBoC,MAAO/B,KAGX,QAAS,CACPyI,KAAM,CAAC,CAACtJ,GAAQ,gBAGpBmV,KAAM,CACJ,WAAY,CACVhQ,aAAc,CAAC,CAAC,EAAG,EAAG,EAAG,OClFzBW,GAAYC,YAAWC,IA+CdkX,OA7Cf,YAAwD,IAAD,EAArC/W,EAAqC,EAArCA,UAAWkQ,EAA0B,EAA1BA,MAAO0gC,EAAmB,EAAnBA,MAAUxwC,EAAS,6CAC/CC,EAAUV,KADqC,EAUjDkxC,aAAU,CACZD,QACAH,aAAcrwC,EAAMqwC,aACpBK,qBAAsB,SAAA31B,GACpB/a,EAAM0wC,qBAAqB31B,EAAKs1B,iBAVlCM,EAJmD,EAInDA,OACAN,EALmD,EAKnDA,aACAO,EANmD,EAMnDA,qBACAC,EAPmD,EAOnDA,cACAC,EARmD,EAQnDA,aACAC,EATmD,EASnDA,aASIC,GAAgB,mBACnB/wC,EAAQ+gC,QAAS,GADE,cAEnB/gC,EAAQswC,iBAAiBvwC,EAAMixC,kBAE3BtoC,KAAS0nC,EAAcrwC,EAAMkxC,UAJd,cAKnBjxC,EAAQ2O,KAAO+hC,GALI,GAQtB,OACE,uBAAK/wC,UAAWO,IAAW6wC,EAAkBpxC,GAA7C,UACE,kDAAWixC,KAAX,aAA6B/gC,KAC7B,oDAAY8gC,KAAZ,cACE,uBAAMhxC,UAAWK,EAAQowC,aAAzB,SAAwCA,EAAatyC,UACrD,eAAC,GAAD,QAEF,+CAAQ+yC,KAAR,aACGH,GACCH,EAAMnlC,KAAI,WAAoB0L,GAApB,IAAGkB,EAAH,EAAGA,KAAMla,EAAT,EAASA,QAAT,OACR,+CAAgCgzC,EAAa,CAAE94B,OAAMlB,WAArD,aACE,gCAAOhZ,MADT,UAAYka,GAAZ,OAAmBlB,cChD/B,SAAS,KAA2Q,OAA9P,GAAWzV,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAmB,gBAAoB,OAAQ,CAClGoB,GAAI,IACJM,EAAG,mBAGD,GAAqB,gBAAoB,IAAK,CAChDH,KAAM,OACNC,SAAU,WACI,gBAAoB,OAAQ,CAC1CJ,GAAI,IACJG,KAAM,QACQ,gBAAoB,MAAO,CACzC4hB,UAAW,QACK,gBAAoB,OAAQ,CAC5C9hB,OAAQ,UACRC,YAAa,EACbiE,cAAe,QACfwvB,KAAM,UACNrzB,EAAG,kBACY,gBAAoB,IAAK,CACxCqzB,KAAM,UACN1zB,OAAQ,UACRkE,cAAe,QACfjE,YAAa,GACC,gBAAoB,OAAQ,CAC1CK,eAAgB,QAChBD,EAAG,sBACY,gBAAoB,OAAQ,CAC3CA,EAAG,gCAGL,SAASiuC,GAAY9tC,EAAMC,GACzB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,GACPX,OAAQ,GACRgF,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB4tC,IAChC,ICzDf,SAAS,KAA2Q,OAA9P,GAAW7vC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,6BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,SACD,gBAAoB,OAAQ,CAC1CE,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,GACJxE,GAAI,WACJC,OAAQ,UACRC,YAAa,IACE,gBAAoB,OAAQ,CAC3CmE,GAAI,GACJC,GAAI,EACJC,GAAI,GACJC,GAAI,GACJxE,GAAI,WACJC,OAAQ,UACRC,YAAa,IACE,gBAAoB,WAAY,CAC/CF,GAAI,WACJC,OAAQ,UACRC,YAAa,EACbK,eAAgB,QAChBkE,OAAQ,wBACO,gBAAoB,OAAQ,CAC3CJ,GAAI,EACJC,GAAI,EACJC,GAAI,GACJC,GAAI,EACJxE,GAAI,WACJC,OAAQ,UACRC,YAAa,IACE,gBAAoB,OAAQ,CAC3CI,EAAG,qDACHN,GAAI,WACJC,OAAQ,UACRC,YAAa,KAGf,SAASsuC,GAAW/tC,EAAMC,GACxB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB6tC,IAChC,ICzEf,SAAS,KAA2Q,OAA9P,GAAW9vC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,4BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,OAAQ,CAC1CD,EAAG,wEACHN,GAAI,WACJC,OAAQ,UACRC,YAAa,IACE,gBAAoB,UAAW,CAC9CF,GAAI,WACJC,OAAQ,UACRC,YAAa,EACbuE,OAAQ,+BAGV,SAAS,GAAYhE,EAAMC,GACzB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB,IAChC,ICjDf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,2BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,OAAQ,CAC1CD,EAAG,wEACHN,GAAI,WACJC,OAAQ,UACRC,YAAa,IACE,gBAAoB,UAAW,CAC9CF,GAAI,WACJC,OAAQ,UACRC,YAAa,EACbuE,OAAQ,+BAGV,SAAS,GAAWhE,EAAMC,GACxB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB,IAChC,ICjDf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAmB,gBAAoB,UAAW,CACrGoB,GAAI,gBACJyuC,aAAc,iBACdhyC,MAAO,IACPX,OAAQ,IACR4yC,iBAAkB,cACJ,gBAAoB,OAAQ,CAC1CrqC,GAAI,EACJhC,EAAG,EACHkC,GAAI,EACJC,GAAI,IACJvE,OAAQ,UACRC,YAAa,MAGX,GAAqB,gBAAoB,OAAQ,CACnDzD,MAAO,OACPX,OAAQ,OACRqE,KAAM,sBACN8D,QAAS,IAGX,SAAS0qC,GAAWluC,EAAMC,GACxB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDK,MAAO,6BACPrE,MAAO,OACPX,OAAQ,OACRkF,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,YAAa,IAGxC,IAAI,GAA0B,aAAiBguC,IC5ChC,ID6CA,IC7CA,CACbC,WAAY,CACVxrC,YAAa,IAEfyrC,YAAa,CACX3rC,aAAc,IAEhB4rC,aAAc,CACZl6B,YAAa,GACbrY,aAAc,IAEhBwyC,kBAAmB,CACjBxyC,aAAc,IAEhByyC,WAAY,YAAoB,IAAjB9/B,EAAgB,EAAhBA,UAEb,MAAO,CACL/T,QAAS,OACTe,WAAY,SACZyF,eAJmC,UAAduN,EAAwB,WAAaA,IAO9DQ,OAAQ,CACNrU,OAAQ,CAAC,CAAC,EAAG,EAAG,EAAG,KAErB4N,KAAM,gBAAGA,EAAH,EAAGA,KAAH,OAAc+F,GAAO/F,IAC3BgG,UCRItS,GAAYC,YAAWC,IAEvBoyC,GAAY,SAAC,GAA2B,IAAzB75B,EAAwB,EAAxBA,SAAU85B,EAAc,EAAdA,QACvB7xC,EAAUV,KAD2B,EAEDob,eAAlCrD,EAFmC,EAEnCA,OAAQy6B,EAF2B,EAE3BA,WAAYC,EAFe,EAEfA,UAFe,EAkBvCpnB,qBAAWwjB,IAdbI,EAJyC,EAIzCA,UACAyD,EALyC,EAKzCA,OACA3D,EANyC,EAMzCA,WACAG,EAPyC,EAOzCA,aACAyD,EARyC,EAQzCA,eACAt9B,EATyC,EASzCA,SACA85B,EAVyC,EAUzCA,YACAC,EAXyC,EAWzCA,aACAwD,EAZyC,EAYzCA,SACAvD,EAbyC,EAazCA,YACAwD,EAdyC,EAczCA,SACAC,EAfyC,EAezCA,WACAC,EAhByC,EAgBzCA,cACAtqC,EAjByC,EAiBzCA,MAGIuqC,EAAcv6B,GAAak6B,GAAkBA,EAAe56B,GApBvB,EA0BHrN,oBAAS,GA1BN,mBA0BpCuoC,EA1BoC,KA0BtBC,EA1BsB,KAkC3C,OACE,uCACGX,GACC,gBAAC,GAAD,CAAIhgC,UAAU,SAASzS,MAAOizC,EAA9B,UACE,eAAC,GAAD,CACE1yC,UAAWK,EAAQuxC,WACnBtpC,KAAK,SACL7L,MAAM,UACN8M,QAAS4oC,EAJX,mBAOEK,GACA,eAAC,GAAD,CAAM/1C,MAAM,YAAY8M,QAzBnB,WACbkpC,IACAL,KAuBQ,wBAMJF,GAAWxD,GACX,eAAC,GAAD,CAAIx8B,UAAU,SAASzS,MAAOmvC,EAA9B,SACE,eAAC,GAAD,CACEx2B,SAAUu6B,EACV3yC,UAAWK,EAAQyyC,WACnBvpC,QAAS,kBAAM8oC,GAAUA,EAAO36B,EAAO1U,KAHzC,SAIG2vC,EAAc,eAAC,GAAD,IAAuB,eAAC,GAAD,SAI1CT,GAAWrD,GACX,gBAAC,GAAD,CAAI38B,UAAU,SAASzS,MAAOqvC,EAA9B,UACE,eAAC,GAAD,CACE12B,SAAUA,EACV7O,QAAS,WACPspC,GAAgB,IAHpB,SAKGz6B,EAAW,eAAC,GAAD,IAAyB,eAAC,GAAD,MAEvC,eAAC,GAAD,CACEpJ,KAAM4jC,EACNC,gBAAiBA,EACjB3C,YA9CU,WAClBl7B,EAAS0C,EAAO1U,IAAI2qB,MAAK,SAAAC,GAClB7kB,IAAQ6kB,IAAMilB,GAAgB,OA6C7B1C,YAAa,WACX0C,GAAgB,GAChBJ,KAEF7wB,aAAcxZ,QAIlB8pC,GAAWnD,GACX,eAAC,GAAD,CAAI78B,UAAU,SAASzS,MAAOuvC,EAA9B,SACE,eAAC,GAAD,CACE15B,UAAWoC,EAAOpG,OAClBmB,QAASiF,EAAOpG,OAChB8G,SAAUA,EACV7F,SAAU,kBAAMggC,EAAS76B,EAAO1U,aAQtC+vC,GAAO,SAAC,GAAiE,IAAD,EAA9Db,EAA8D,EAA9DA,QAASl8B,EAAqD,EAArDA,MAAOse,EAA8C,EAA9CA,OAAQyd,EAAsC,EAAtCA,kBAAmBD,EAAmB,EAAnBA,aAEvD3iC,EAeEmlB,EAfFnlB,KACA6jC,EAcE1e,EAdF0e,YACA1+B,EAaEggB,EAbFhgB,MAJ0E,EAiBxEggB,EAZF2e,gBAL0E,SAM1EhnC,EAWEqoB,EAXFroB,KACAgG,EAUEqiB,EAVFriB,KACAxS,EASE60B,EATF70B,MACAyS,EAQEoiB,EARFpiB,UAT0E,EAiBxEoiB,EAPF4e,oBAV0E,MAU3DhhC,EAV2D,EAW1EQ,EAME4hB,EANF5hB,OAX0E,EAiBxE4hB,EALF6e,uBAZ0E,MAYxD7xC,GAZwD,IAiBxEgzB,EAJF8e,iBAb0E,MAa9D,SAAAx/B,KAb8D,IAiBxE0gB,EAHF+e,gBAd0E,MAc/D,SAAAz/B,GAAE,OAAI,GAdyD,IAiBxE0gB,EAFFgf,YAf0E,MAenE,SAAA1/B,GAAE,cAAIA,QAAJ,IAAIA,OAAJ,EAAIA,EAAI2/B,YAfyD,IAiBxEjf,EADFkf,kBAhB0E,MAgB7D,GAhB6D,EAmBpE97B,EAAWqD,eAAXrD,OAKF+7B,EAAYvB,GAJC,SAAAe,GACjB,MAAwB,oBAAbA,EAAgCA,EAASv7B,GAC7Cu7B,EAEoBS,CAAWT,GAClCU,GAAWX,EAEX3yC,EAAUV,GAAU,CACxBuS,UAAWuhC,EAAYP,EAAehhC,EACtCjG,SAGI2nC,EAAU,aACdngC,WAAW,EACXC,UAAWsC,EACX/J,OACAgG,OACAC,UAAWuhC,EAAYP,EAAehhC,GACnCshC,GAGL,OACE,gBAAC,GAAD,CACExzC,WAAS,mBACNK,EAAQ0xC,kBAAoBA,GADtB,cAEN1xC,EAAQyxC,aAAeA,GAFjB,cAGNzxC,EAAQ2xC,WAAat/B,GAHf,GAKTjT,MAAOA,EACPwM,KAAMA,EACNgG,KAAMA,EACNC,UAAWA,EATb,UAUGuhC,GAAaE,IAAYN,EAAS37B,IACjC,eAAC,KAAD,aAAOvI,KAAMA,EAAMuT,UAAWpO,GAAWs/B,IAE1CH,IAAcE,IAAYN,EAAS37B,IAClC,eAAC4c,EAAOhgB,MAAR,CAAcnF,KAAMA,KAEpBskC,GAAa/7B,IAAW27B,EAAS37B,IACjC,sBAAK5B,MAAOs9B,EAAU17B,EAAQ+7B,GAA9B,SACGH,EAAK57B,EAAOvI,GAAOuI,KAGvBhF,IAAW2gC,EAAS37B,IACnB,eAACy7B,EAAD,CACEnzC,UAAWK,EAAQqS,OACnBoD,MAAO29B,EAAY,GAAKL,EAAU17B,EAAQ+7B,GAF5C,SAGG/gC,IAGJ2gC,EAAS37B,IAAW,eAAC,GAAD,QA0FZm8B,GApEF,SAAC,GAAgD,IAA9C3B,EAA6C,EAA7CA,QAAS95B,EAAoC,EAApCA,SAAUy5B,EAA0B,EAA1BA,YAAa9E,EAAa,EAAbA,OAAa,EACvBhyB,eAA5BJ,EADmD,EACnDA,QAASC,EAD0C,EAC1CA,OAAQlD,EADkC,EAClCA,OADkC,EAUvDsT,qBAAWwjB,IAPbC,EAHyD,EAGzDA,SACAC,EAJyD,EAIzDA,WACAG,EALyD,EAKzDA,aACAzmC,EANyD,EAMzDA,MACA2mC,EAPyD,EAOzDA,aACA+E,EARyD,EAQzDA,QACAC,EATyD,EASzDA,WAGI1zC,EAAUV,KAIVgwC,GAFgBuC,GAAW6B,GAAcA,EAAWr8B,GA/BvC,SAAA+2B,GAAa,IAAD,EACF1lC,KAAYA,IAAS,UAAU,GAA/BA,CAAsC0lC,GADpC,mBACxBuF,EADwB,KACdC,EADc,KAG/B,IAAKD,EAASjyC,OACZ,OAAO0sC,EAGT,IAAMt3B,EAAQpO,KAAUirC,EAAS,GAAIvF,GAC/BhvC,EAAQsJ,IAAUA,KAAOA,IAAMA,IAAO,CAAC,WAA/BA,CAA2CirC,GAEzD,OAAOjrC,KACLoO,EACA,CAAE1X,QAAOwzC,UAAU,EAAOK,KAAM,kBAAM,eAAC,GAAD,MACtCW,GAoBmCC,CAAazF,GAAYA,EAhBH,EAiBvC1lC,KAAYA,KAAM,gBAAlBA,CAAmC0lC,GAAhDe,EAjBoD,oBAmBrD2E,GAA6B,OAAT3E,QAAS,IAATA,OAAA,EAAAA,EAAWztC,QACjCgH,KAAUymC,EAAU,GAAIf,IACvB,EAEC2F,GAAkC,OAAT5E,QAAS,IAATA,OAAA,EAAAA,EAAWztC,QACtCgH,KAAUymC,EAAUA,EAAUztC,OAAS,GAAI0sC,IAC1C,EAEC4F,EAAsB1E,EAAc2E,WACxC,SAAA1gC,GAAE,YAAoBnE,IAAhBmE,EAAGq/B,UAA0Br/B,EAAGq/B,YAGlC3yC,EAAU,eACbD,EAAQwxC,YAAcA,GAGnB0C,EAAgBxrC,KAAOA,KAAO4R,GAAUC,GAExC45B,EADmBD,GAAiBxrC,KAAOwrC,GAAexyC,OAAS,KACjCqG,EAElCwZ,EACJxZ,GAAUmsC,GAAiBxrC,KAASwrC,GAAehT,KAAK,MAE1D,OACE,gBAAC,GAAD,CACEvhC,UAAWO,IAAWD,GACtB2L,KAAM6nC,EACN1rC,MAAO8pC,GAAWsC,EAClBzH,OAAQA,IAAWyH,EACnB5yB,aAAcA,EALhB,UAMG+tB,EAAclkC,KAAI,SAACmI,EAAIqE,GACtB,OACE,eAAC,GAAD,CAEEqc,OAAQ1gB,EACRs+B,QAASA,EACTl8B,MAAOiC,IAAQo8B,GAAuBnC,EACtCH,kBAAmBqC,IAA2Bn8B,EAC9C65B,aAAcqC,IAAsBl8B,GAL/BA,OASTy2B,GAAcG,GAAgBE,IAC9B,eAAC,GAAD,CAAW32B,SAAUA,EAAU85B,QAASA,QC/QjC,IACbhmC,QAAS,kBAAgB,CACvBzM,MADO,EAAGA,QAGZg1C,QAAS,CACP3vC,WAAY,QAEdnB,MAAO,CACLtF,OAAQ,EACR5B,MAAO/B,IAETg6C,YAAa,CACX7zB,UAAW,GACX3a,aAAc,GACd/H,QAAS,OACTwG,eAAgB,gBAChBzF,WAAY,WCEVS,GAAYC,YAAWC,IAEvB80C,GAAW5rC,IACfA,KAASA,KAATA,CAAgB,GAChBA,KAAM,SAAA6K,GAAE,uBAAIA,EAAGnU,aAAP,QANe,QA2OVm1C,GAlOA,SAAC,GAiCT,IAAD,MAhCJzlC,EAgCI,EAhCJA,KACAxL,EA+BI,EA/BJA,MACAkxC,EA8BI,EA9BJA,QA8BI,IA7BJpG,gBA6BI,MA7BO,GA6BP,MA5BJtkC,YA4BI,MA5BG,GA4BH,EA3BJ2qC,EA2BI,EA3BJA,KACOC,EA0BH,EA1BJ3sC,MA0BI,IAzBJ0rC,eAyBI,MAzBM,KAyBN,EAxBJ5xB,EAwBI,EAxBJA,iBACA8yB,EAuBI,EAvBJA,aACAtG,EAsBI,EAtBJA,WACAC,EAqBI,EArBJA,eACWsG,EAoBP,EApBJrG,UACAC,EAmBI,EAnBJA,aAmBI,IAlBJC,mBAkBI,MA3CkB,GA2ClB,EAjBJC,EAiBI,EAjBJA,aAiBI,IAhBJC,mBAgBI,MA3CkB,GA2ClB,EAfJuD,EAeI,EAfJA,SACAlhC,EAcI,EAdJA,aACA6jC,EAaI,EAbJA,WACAl6B,EAYI,EAZJA,cACAm6B,EAWI,EAXJA,WACAC,EAUI,EAVJA,mBACAC,EASI,EATJA,aACAtB,EAQI,EARJA,WACAzB,EAOI,EAPJA,eACAgD,EAMI,EANJA,QACAC,EAKI,EALJA,OAKI,IAJJC,kBAII,MAJS,eAIT,MAHJhD,gBAGI,SAFJiD,EAEI,EAFJA,kBAEI,IADJxG,iBACI,MADQ,KACR,IAC8B5kC,mBAAS,MADvC,mBACGqrC,EADH,KACcC,EADd,QAEwBtrC,oBAAS,GAFjC,qBAEGurC,GAFH,MAEWC,GAFX,SAGwBxrC,oBAAS,GAHjC,qBAGGyrC,GAHH,MAGWC,GAHX,SAIsB1rC,mBAAS,MAJ/B,qBAIGjC,GAJH,MAIU4tC,GAJV,MAMJ9qC,qBAAU,kBAAM8qC,GAASjB,KAAgB,CAACA,IAC1C7pC,qBAAU,WACR8qC,GAAS,MACTH,GAAUrD,KACT,CAACA,IAEJ,IAAMyD,GAAS,yCAAG,WAAMxjC,GAAN,oBAAAoc,EAAA,0DACZinB,GADY,oDAGhBC,IAAU,GAEJniC,EAAKsO,EAAiBg0B,KAAKzjC,GAC3B0E,EAAQpO,KAAYA,IAAS,KAAM6K,EAAG5Q,IAA9B+F,CAAmCoB,GAC3CgsC,GAAkB,IAAXh/B,EAAepO,KAASoO,EAAOvD,EAAIzJ,GAAQpB,KAAU6K,EAAIzJ,GAEjEpB,KAASoB,EAAKgN,GAAQvD,GATX,2CAWNkhC,EAAK,eAAG3lC,EAAOgnC,GAAQviC,GAXjB,iEAaZmiC,IAAU,GAbE,2BAkBhBF,IAAU,GACVV,GAAcA,GAAW,GACzBY,IAAU,GApBM,0DAAH,sDA4BTjO,GAAU,WACd+N,IAAU,GACVF,EAAa,MACbR,GAAcA,GAAW,IAUrBiB,GAAW,WACfP,IAAU,GACVG,GAAS,MACTb,GAAcA,GAAW,GAAM,IAG3BkB,GACJxH,GAAgBE,EAvGI,GAuG6BuH,IAE7C1H,GAAY7lC,KAAYstC,GAAZttC,CAA6BksC,GAEzCvC,IACJ,QAAE,EAAA7D,GAAgBC,SAAlB,QAAkC,IAAlC,UACEJ,GAAcE,UADhB,QAC8B,IAD9B,UAEEG,GAAgBC,SAFlB,QAEkC,GAE9BvvC,GAAQk1C,GAASlG,GAAYiE,GAE7BryC,GAAUV,GAAU,CAAEF,WAEtB82C,IAAqBpsC,EAAKpI,QAAUizC,IAAiBY,GACrDY,IAAUnlC,IAAiBqkC,IAAcR,IAAeU,GACxDa,GAAYb,IAA0B,IAAhBzrC,EAAKpI,OAE3B20C,GAAYnB,EAASxsC,KAAWwsC,EAAXxsC,CAAmBoB,GAAQA,EAEhDwsC,GAAW,CACflI,WACAC,aACAC,iBACA0D,OArCa,SAAAz+B,GACb,GAAIwhC,GAAsBA,EAAmBxhC,GAAK,OAAOyhC,EAAazhC,GACtE+hC,EAAa/hC,GACboiC,GAAS,MACTb,GAAcA,EAAWvhC,GAAI,IAkC7B6+B,WAAY,kBAAMuD,GAAS,OAC3B5tC,MAAOA,GACPkqC,iBACA1D,aACAC,eACA75B,SAtDe,SAAAhS,GACf,IAAMmzC,EAAOptC,MAAS,SAAA6K,GAAE,OAAIA,EAAG5Q,KAAOA,IAAImH,GAC1C,OAAO2qC,EAAK,eAAG3lC,EAAOgnC,KAqDtBrH,cACAC,eACA+E,UACAvB,WACAvD,cACA0D,iBACAqB,aACAvB,WACAvD,YACAC,iBA7IqB,KAgJvB,OACE,eAAC,GAAS0H,SAAV,CAAmBnkC,MAAOkkC,GAA1B,SACE,uBAAK32C,UAAWK,GAAQ6L,QAAxB,UACGqqC,IAAqBC,IACpB,eAACK,GAAD,CAAWttC,QAAS6sC,GAApB,SAA+BZ,IAEhCiB,IACC,wCACI9yC,GAASqxC,IACT,uBAAKh1C,UAAWK,GAAQq0C,YAAxB,UACG/wC,GAASkxC,GACR,eAAC1zC,GAAD,CAAKnB,UAAWK,GAAQsD,MAAxB,SAAgCA,IAEjCA,IAAUkxC,GACT,eAAC7zC,GAAD,CAAOhB,UAAWK,GAAQsD,MAA1B,SAAkCA,IAEnCqxC,GAAgBwB,IACf,eAAC,GAAD,CAAMx2C,UAAWK,GAAQo0C,QAASlrC,QAAS6sC,GAA3C,SACGZ,OAKT,gBAAC,GAAD,WACE,eAAC,GAAD,IACA,sBAAKx1C,UAAWy1C,EAAhB,SACE,gBAAC,GAAD,WACGG,IACC,eAAC,KAAD,CACE1yB,gBAAgB,EAChBC,kBAAkB,EAClBnI,cAAa,aAAIhY,GAAI8zC,gBAAS97B,GAC9B8sB,QAASA,GACT5lB,iBAAkBA,EAClBoB,SAAU2yB,GANZ,SAOE,gBAAC,KAAD,WACE,eAAC,GAAD,IACA,eAAC,GAAD,CACE/D,SAAS,EACT95B,SAAU/G,EACV07B,QAAQ,SAKf2J,GAAUjrC,KAAI,SAACmI,EAAIqE,GAAS,IAAD,EACpB8+B,EAAcL,GAAUz+B,EAAM,GAE9B++B,IAAa1B,GAAWyB,EAExBE,EADiC,aAApBluC,KAAOusC,GACSA,EAAUvsC,IAAOusC,GAE9C4B,EACJF,GACAC,EAAcrjC,KAAQqjC,EAAcF,GAEtC,OACE,eAAC,KAAD,CACE7zB,gBAAgB,EAChBC,kBAAkB,EAElBg0B,oBAAkB,EAClBn8B,cAAepH,EACfk0B,QAASA,GACT5lB,iBAAkBA,EAClBoB,SAAU2yB,GARZ,SASE,gBAAC,KAAD,WACE,eAAC,GAAD,IACA,eAAC,GAAD,CACEpE,YAAaqF,EACbhF,QAASwD,IAAc9hC,EAAG5Q,GAC1BoV,SACE/G,GACCqkC,GAAaA,IAAc9hC,EAAG5Q,IAC/B4yC,SAjBR,UAGOhiC,EAAG5Q,UAHV,QAGgBiV,uBClMvBm/B,GArBS,SAAC,GAMlB,IALLjoC,EAKI,EALJA,KACA2lC,EAII,EAJJA,KAII,IAHJ3qC,YAGI,MAHG,GAGH,MAFJ0pB,kBAEI,MAFS,GAET,EADDzzB,EACC,mDAKEs2C,EAAY3tC,KAAM,SAAA6K,GAAE,oBACxB5Q,GAAI4Q,GACDygB,GAAczgB,EAAdygB,CAAkBlqB,MAFLpB,CAGd8qB,GAEJ,OACE,eAAC,GAAD,aAAe1kB,KAAMA,EAAMhF,KAAMusC,EAAW5B,KAV5B,WAAgB,IAAD,wEAARlhC,EAAQ,KAC/B,OAAOkhC,EAAKrgB,GAAY7gB,EAAG5Q,GAAfyxB,CAAmB1rB,KAAO,CAAC,OAAQ6K,OASkBxT,K,UC4C/DT,GAAYC,YA5DH,CACby3C,MAAO,CACLl5C,QAAS,OACTwG,eAAgB,SAChBsB,cAAe,SACf/G,WAAY,UAEdgN,QAAS,gBAAGzM,EAAH,EAAGA,MAAOX,EAAV,EAAUA,OAAV,MAAwB,CAC/BW,QACAX,SACAX,QAAS,OACT8H,cAAe,SACf4a,UAAS,OAAE/hB,QAAF,IAAEA,IAAU,IACrB8G,UAAW,OACXC,UAAW,OACX7G,aAAc,EACdD,QAAS,IAEXu4C,iBAAkB,gBAAG73C,EAAH,EAAGA,MAAO83C,EAAV,EAAUA,gBAAV,MAAiC,CACjD93C,QACAX,OAAQy4C,EACR1yC,UAAW,GACX1G,QAAS,OACT8H,cAAe,SACf4a,UAAS,OAAE02B,QAAF,IAAEA,IAAmB,IAC9B3xC,UAAW,OACXC,UAAW,OACX7G,aAAc,EACdD,QAAS,IAEXy4C,aAAc,CACZ/3C,MAAO,OACPtB,QAAS,OACT8H,cAAe,SACfkK,KAAM,EACNlR,QAAS,CAAC,CAAC,EAAG,MAEhBuO,QAAS,gBAAGiqC,EAAH,EAAGA,MAAH,MAAoB,CAC3Bh4C,MAAO,OACPtB,QAAS,OACT8H,cAAe,SACfkK,KAAM,EACNlR,QALO,EAAUy4C,GAKH,CAAC,CAAC,EAAG,KAAYD,EAAQ,CAAC,CAAC,EAAG,KAAO,CAAC,CAAC,EAAG,OAE1D3rC,OAAQ,gBAAG2rC,EAAH,EAAGA,MAAOC,EAAV,EAAUA,GAAV,MAAoB,CAC1Bz4C,QAAS,CAAC,CAAC,EAAG,EAAGy4C,EAAK,GAAK,EAAG,IAC9Br5C,OAAQq5C,EACJ,CAAC,CAAC,EAAG,EAAG,OAAQ,SAChBD,EACA,CAAC,CAAC,GAAI,GAAI,OAAQ,SAClB,CAAC,CAAC,GAAI,GAAI,OAAQ,WAExB/yC,OAAQ,CACNvG,QAAS,QAEXwF,MAAO,kBAAgB,CACrBtF,OADK,EAAGo5C,MACQ,CAAC,CAAC,GAAI,EAAG,EAAG,KAAO,CAAC,CAAC,GAAI,EAAG,EAAG,SAyDpCE,GAnDD,SAAC,GAeR,IAdLl4C,EAcI,EAdJA,MACAX,EAaI,EAbJA,OACAy4C,EAYI,EAZJA,gBACA5zC,EAWI,EAXJA,MACA8zC,EAUI,EAVJA,MACAC,EASI,EATJA,GACAE,EAQI,EARJA,UACAjoC,EAOI,EAPJA,YACAxP,EAMI,EANJA,SAEAH,GAII,EALJ63C,eAKI,EAJJ73C,WACA83C,EAGI,EAHJA,cACAC,EAEI,EAFJA,qBACG33C,EACC,kLACEC,EAAUV,GAAU,CAAEF,QAAOX,SAAQ24C,QAAOF,kBAAiBG,OAC7DM,EAAYP,EAAQ92C,GAAKH,GACzBy3C,EAAYP,EAAK,GAAKD,EAAQ,GAAK,GAQzC,OACE,eAAC,KAAD,yBAAexnC,QAPE,SAAC8D,EAAKsH,IAClB08B,GAAmC,kBAAX18B,KACxBy8B,GAA4B,kBAAXz8B,IACtB1L,KAIoC3P,UAAWK,EAAQg3C,OAAWj3C,GAAlE,aACE,uCACE,gBAACyO,GAAA,EAAD,CAAO7O,UAAWO,IAAWF,EAAQ6L,QAASlM,GAA9C,UACE,uBAAKA,UAAWK,EAAQqE,OAAxB,UACGf,GAAS,eAACq0C,EAAD,CAAWh4C,UAAWK,EAAQsD,MAA9B,SAAsCA,IAChD,eAAC,GAAD,CACEsI,KAAMgsC,EACNj4C,UAAWK,EAAQyL,OACnBvC,QAAS,kBAAMoG,KAHjB,SAIE,eAAC,GAAD,SAGJ,sBAAK3P,UAAWK,EAAQmN,QAAxB,SAAkCrN,OAEnCy3C,GACC,eAAC/oC,GAAA,EAAD,CAAO7O,UAAWO,IAAWF,EAAQi3C,iBAAkBt3C,GAAvD,SACE,sBAAKA,UAAWK,EAAQm3C,aAAxB,SAAuCI,aCjH7CM,GAAe,QAMfC,GAAS,SAETC,GAAiB,8FCRR,OAA0B,wCCSnCv4C,GAAS,CACbiM,OAAQ,CACNzN,OAAQ,CAAC,CAAC,GAAI,OAAQ,EAAG,UAE3Bg6C,aAAc,CACZl6C,QAAS,OACT8H,cAAe,SACf/G,WAAY,SACZiR,KAAM,EACNlR,QAAS,CAAC,CAAC,EAAG,MAEhBq5C,YAAa,CACXzzC,UAAW,IAEb0zC,YAAa,CACXp6C,QAAS,OACT8H,cAAe,MACf/G,WAAY,SACZ2F,UAAW,IAEb2zC,YAAa,CACX/4C,MAAO,GACPX,OAAQ,GACRsH,YAAa,EACbjI,QAAS,SAEXs6C,YAAa,CACXC,UAAW,OACXhyC,SAAU,GAEZiyC,YAAa,CACXt6C,OAAQ,CAAC,CAAC,EAAG,IACb5B,MAAOpD,IAILsG,GAAYC,YAAWC,IAmCd+4C,GAjCM,SAAC,GAA0B,IAAxBzpC,EAAuB,EAAvBA,KAAM0pC,EAAiB,EAAjBA,WACtBx4C,EAAUV,KAEhB,OACE,uBAAKK,UAAWK,EAAQg4C,aAAxB,UACE,sBAAK54C,MAAM,MAAMX,OAAO,MAAMg6C,IAAI,WAAWC,IAAKC,KAClD,eAACx4C,GAAD,CAAIR,UAAWK,EAAQi4C,YAAal6C,UAAQ,EAA5C,2BAGA,eAAC4C,GAAD,CAAOhB,UAAWK,EAAQs4C,YAAav6C,UAAQ,EAA/C,SACG+Q,IAEH,uBAAKnP,UAAWK,EAAQk4C,YAAxB,UACE,eAAC,GAAD,CAAav4C,UAAWK,EAAQm4C,cAChC,eAAC33C,GAAD,CAAGzC,UAAQ,EAAC4B,UAAWK,EAAQo4C,YAA/B,0GAKF,uBAAKz4C,UAAWK,EAAQk4C,YAAxB,UACE,eAAC,GAAD,CAAav4C,UAAWK,EAAQm4C,cAChC,eAAC33C,GAAD,CAAGzC,UAAQ,EAAC4B,UAAWK,EAAQo4C,YAA/B,oHAKF,eAACl1B,GAAD,CAAQvjB,UAAWK,EAAQyL,OAAQvC,QAASsvC,EAA5C,6B,UCzEN,SAAS,KAA2Q,OAA9P,GAAWn3C,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,4BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,SAAU,CAC5CJ,GAAI,cACJG,KAAM,UACNe,GAAI,EACJC,GAAI,EACJC,EAAG,IACY,gBAAoB,SAAU,CAC7CpB,GAAI,cACJC,OAAQ,UACRC,YAAa,EACbG,UAAW,qFACXa,GAAI,EACJC,GAAI,EACJC,EAAG,KAGL,SAAS,GAAWX,EAAMC,GACxB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB,IChCzC9D,IDiCS,ICjCA,CACbo5C,OAAQ,CACN96C,QAAS,OACTe,WAAY,UAEdgN,QAAS,CACP/N,QAAS,OACTe,WAAY,SACZb,OAAQ,GAEV66C,MAAO,CACL/6C,QAAS,OACTW,OAAQ,GACRW,MAAO,GACPsG,OAAQ,EACR,UAAW,CACTjH,OAAQ,OACRW,MAAO,OACPiN,SAAU,YAGd6J,UAAW,CACT9W,MAAO,GACPX,OAAQ,EACRD,OAAQ,CAAC,CAAC,EAAG,UACbkH,OAAQ,GAEVozC,gBAAiB,CACfzrC,YAAazT,IAEfm/C,gBAAiB,CACf1rC,YAAa1T,GAEfq/C,qBAAsB,CACpB3rC,YAAanT,IAEf++C,qBAAsB,CACpB5rC,YAAahT,MAIXiF,GAAYC,YAAWC,IAoDdwgB,GAlDCtgB,gBAAK,YAA0D,IAAD,IAAtDwgB,EAAsD,EAAtDA,MAAOg5B,EAA+C,EAA/CA,YAA+C,IAAlC98C,aAAkC,MAA1B,SAA0B,EAAhBuD,EAAgB,EAAhBA,UAC5D,GAAIu5C,EAAc,GAAKA,EAAch5B,EACnC,MAAMi5B,MAAM,oCACd,GAAIj5B,EAAQ,EAAG,MAAMi5B,MAAM,8BAE3B,IAAMn5C,EAAUV,KAEV85C,GAAgB,mBACnBp5C,EAAQkW,WAAY,GADD,cAEnBlW,EAAQ84C,gBAA4B,WAAV18C,GAFP,cAGnB4D,EAAQ+4C,gBAA4B,WAAV38C,GAHP,GAMhBi9C,GAAqB,mBACxBr5C,EAAQkW,WAAY,GADI,cAExBlW,EAAQg5C,qBAAiC,WAAV58C,GAFP,cAGxB4D,EAAQi5C,qBAAiC,WAAV78C,GAHP,GAM3B,OACE,uBAAKuD,UAAWO,IAAWP,EAAWK,EAAQ44C,QAA9C,UACGlwC,KAAQ,EAAGwwC,GAAa9tC,KAAI,SAAAwM,GAAG,OAC9B,uBAAejY,UAAWK,EAAQ6L,QAAlC,UACG+L,EAAM,GAAK,sBAAKjY,UAAWO,IAAWk5C,KACvC,uBAAKz5C,UAAWK,EAAQ64C,MAAxB,UACa,WAAVz8C,GAAsB,eAAC,GAAD,IACZ,WAAVA,GAAsB,eAAC,GAAD,SAJjBwb,MAQZ,uBAAKjY,UAAWK,EAAQ6L,QAAxB,UACGqtC,EAAc,GAAK,sBAAKv5C,UAAWO,IAAWk5C,KAC/C,uBAAKz5C,UAAWK,EAAQ64C,MAAxB,UACa,WAAVz8C,GAAsB,eAAC,GAAD,IACZ,WAAVA,GAAsB,eAAC,GAAD,UAG1BsM,KAAQwwC,EAAc,EAAGh5B,EAAQ,GAAG9U,KAAI,SAAAwM,GAAG,OAC1C,uBAAejY,UAAWK,EAAQ6L,QAAlC,UACE,sBAAKlM,UAAWO,IAAWm5C,KAC3B,uBAAK15C,UAAWK,EAAQ64C,MAAxB,UACa,WAAVz8C,GAAsB,eAAC,GAAD,IACZ,WAAVA,GAAsB,eAAC,GAAD,SAJjBwb,YCnGlB,SAAS,KAA2Q,OAA9P,GAAWvW,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,0BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,OAAQ,CAC1CE,EAAG,kZACHN,GAAI,WACJG,KAAM,UACNC,SAAU,YACK,gBAAoB,OAAQ,CAC3CE,EAAG,6vBACHN,GAAI,WACJG,KAAM,UACNC,SAAU,YACK,gBAAoB,OAAQ,CAC3CE,EAAG,uNACHN,GAAI,SACJG,KAAM,aAGR,SAAS,GAAUM,EAAMC,GACvB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,I,SAAI,GAA0B,aAAiB,IC3CzChE,ID4CS,IC5CGC,YAAW,CAC3B+5C,kBAAmB,CACjB96C,OAAQ,OACRzE,gBAAiB,cACjB2E,QAAS,OACTH,OAAQ,UACRiG,UAAW,GAEboK,eAAgB,kBAAgB,CAC9BxP,MADc,EAAGA,MAEjBR,QAAS,CAAC,CAAC,GAAI,UAIb26C,GAAmB,SAAAn6C,GACvB,IAAMY,EAAUV,GAAU,CAAEF,UADI,EAEoB4K,mBAAS,MAF7B,mBAEzBwvC,EAFyB,KAELC,EAFK,KAY1BC,EAAiBvqC,QAAQqqC,GAE/B,MAAO,CACLx5C,UACAw5C,qBACAE,iBACAC,qBAd2B,SAAAjqC,GAC3B+pC,EAAsBD,EAAqB,KAAO9pC,EAAMC,gBAcxDiqC,sBAX4B,WAC5BH,EAAsB,SAqCpBI,GAAmBn6C,gBAAK,YAA0C,IAAvCo6C,EAAsC,EAAtCA,eAAgBh6C,EAAsB,EAAtBA,SAAUV,EAAY,EAAZA,MACnD26C,EAAUR,GAAiBn6C,GAEjC,OACE,kCACIsJ,IAAQoxC,IACR,sBACEE,aAAcD,EAAQJ,qBACtBM,aAAcF,EAAQH,sBAFxB,SAGGE,IAGJpxC,IAAQoxC,IACP,yBACE7xC,KAAK,SACL+xC,aAAcD,EAAQJ,qBACtBM,aAAcF,EAAQH,sBACtBj6C,UAAWo6C,EAAQ/5C,QAAQs5C,kBAJ7B,SAKE,eAAC,GAAD,MAGJ,eAAC,GAAD,CACE3qC,KAAMorC,EAAQL,eACdzqC,SAAU8qC,EAAQP,mBAClB3rC,UAAU,SAHZ,SAIE,sBAAKlO,UAAWo6C,EAAQ/5C,QAAQ4O,eAAhC,SAAiD9O,YC5F1C,OAA0B,0CCA1B,OAA0B,wCCA1B,OAA0B,wCCA1B,OAA0B,oDCA1B,OAA0B,oDCA1B,OAA0B,oDCA1B,OAA0B,oDCA1B,OAA0B,oDCA1B,OAA0B,oDCA1B,OAA0B,oDC0BnCN,GAAS,CACb2N,QAAS,CACPrP,QAAS,OACT8H,cAAe,SACftB,eAAgB,gBAChBwL,KAAM,EACNoqC,cAAe,IAEjBC,SAAU,CACRt0C,aAAc,IAEhBvC,MAAO,CACLtF,OAAQ,CAAC,CAAC,EAAG,EAAG,GAAI,IACpB5B,MAAOpD,GAETohD,UAAW,CACTh7C,MAAO,IACPX,OAAQ,KAEV4b,KAAM,CACJ6/B,cAAe,IAEjBzO,cAAe,CACb3tC,QAAS,OACT8H,cAAe,UAEjBy0C,gBAAiB,CACfv8C,QAAS,OACT8H,cAAe,OAEjB00C,gBAAiB,CACfz7C,WAAY,UAEd07C,cAAe,CACb17C,WAAY,YAEduU,UAAW,CACTpV,OAAQ,CAAC,CAAC,EAAG,SACbq6C,UAAW,QAEbmC,YAAa,CACXnC,UAAW,OACXv6C,QAAS,OACTwG,eAAgB,UAElBiM,OAAQ,CACNkqC,MAAO,SAETC,aAAc,CACZ30C,YAAa,GAEf40C,gBAAiB,CACfv7C,MAAO,GACPX,OAAQ,IAEVm8C,kBAAmB,CACjBp2C,UAAW,IAEbq2C,yBAA0B,CACxBp2C,WAAY,GACZsB,YAAa,IAEf+0C,eAAgB,CACdj1C,aAAc,IAEhBk1C,UAAW,CACT3+C,MAAOpD,GAETuoB,aAAc,CACZnlB,MAAO3B,KAIL6E,GAAYC,YAAWC,IAEvBw7C,GAAmB,SAACnR,EAAmB5pB,GAApB,MACvB,CACE,CAACg7B,GAAaC,IACd,CAACC,GAAkBC,GAAkBC,IACrC,CAACC,GAAkBC,GAAkBC,GAAoBC,KACzD5R,EAAoB,GAAG5pB,EAAO,IAkMnBy7B,GAhMI,SAAC,GAYb,IAXLz7B,EAWI,EAXJA,KACAnR,EAUI,EAVJA,KACAwZ,EASI,EATJA,QACAqzB,EAQI,EARJA,gBACAC,EAOI,EAPJA,iBAEAC,GAKI,EANJ9zC,MAMI,EALJ8zC,UACA37B,EAII,EAJJA,MACA8jB,EAGI,EAHJA,aACAwU,EAEI,EAFJA,WACA79B,EACI,EADJA,cAEM3a,EAAUV,KAEVuQ,EAAQgsC,EAAW,SAAW,UAE9BC,EAAsB,CAC1B,CAAEh+C,QAAS,MAAOka,KAAM,OACxB,CAAEla,QAAS,KAAMka,KAAM,OAGnB+jC,EAAa,kBAAc97B,EAAO,GAClC4pB,EAAoBvhB,EAAQuhB,kBAC5BmS,EAAqB,OAAG1zB,QAAH,IAAGA,OAAH,EAAGA,EAAUyzB,GAClCE,EAAoB,OAAGN,QAAH,IAAGA,OAAH,EAAGA,EAAkBI,GAEzCG,EAAgB,SAAA7kC,GAAM,OAAIA,EAAO0kC,IAAkBC,GACnDG,EAAgB,SAAA9kC,GAAM,OAAI6kC,EAAc7kC,GAAU4kC,GAClDG,EAAgB1zC,KACpBwzC,GACA,SAAA94B,GAAK,OAAWA,EAAQw4B,EAAf,MACTlzC,KAAQ,EAAG,MAGb,OACE,uBAAK/I,UAAWK,EAAQmN,QAAxB,UACE,uBAAKxN,UAAWK,EAAQm6C,SAAxB,UACE,eAACx5C,GAAD,CAAOhB,UAAWK,EAAQsD,MAA1B,SAAkCwL,IAClC,eAAC,GAAD,CAASoR,MAAOA,EAAMxe,OAAQw3C,YAAaj5B,OAGnC,IAATA,GACC,eAAC,KAAD,CACE4C,gBAAgB,EAChBC,kBAAkB,EAClBG,SAAUu1B,EACV79B,cAAe,CAAE0hC,kBAAmB,IACpCvF,oBAAkB,EAClBj1B,iBAAkB3B,EAAM,GAAGo8B,OAN7B,SAOG,cAAGjlC,OAAH,IAAWkD,EAAX,EAAWA,OAAX,OACC,gBAAC,KAAD,WACE,uBACE5a,UAAWO,IAAWF,EAAQq6C,gBAAiBr6C,EAAQqa,MADzD,UAEE,sBACE1a,UAAWK,EAAQo6C,UACnB3B,IAAI,WACJC,IAAKt8B,KACP,sBAAKzc,UAAWK,EAAQw6C,YAAxB,SACE,uBACE76C,UAAWO,IACTF,EAAQyrC,cACRzrC,EAAQoT,WAHZ,UAKE,eAAC9S,GAAD,CAAIvC,UAAQ,EAAZ,yCACA,eAAC,KAAD,CACEskB,UAAW5K,GACX3I,KAAK,oBACLgE,QAASgpC,EACTn8C,UAAWK,EAAQq6C,kBAEpB9/B,EAAO8hC,mBACN,sBAAK18C,UAAWK,EAAQuhB,aAAxB,SACGhH,EAAO8hC,oBAGZ,uBACE18C,UAAWO,IACTF,EAAQq6C,gBACRr6C,EAAQs6C,iBAHZ,UAKE,eAAC95C,GAAD,oCACA,eAACq5C,GAAD,CAAkBz6C,MAAO,IAAzB,SACE,eAACoB,GAAD,yFAMJ,uBACEb,UAAWO,IACTF,EAAQq6C,gBACRr6C,EAAQu6C,eAHZ,UAKE,eAAC75C,GAAD,CAAO3C,UAAQ,EAAC4B,UAAWK,EAAQ06C,aAAnC,gBACGpyB,QADH,IACGA,OADH,EACGA,EAASlM,UAEZ,eAAC5b,GAAD,CAAGzC,UAAQ,EAAX,uCAKR,eAACmlB,GAAD,CAAQvjB,UAAWK,EAAQuQ,OAAQtI,KAAK,SAAxC,SACG4H,UAOVoQ,EAAO,GACN,eAAC,KAAD,CACE4C,gBAAgB,EAChBC,kBAAkB,EAClBG,SAAUu1B,EACV79B,cAAeA,EACfm8B,oBAAkB,EAClBj1B,iBAAkB3B,EAAMD,EAAO,GAAGq8B,OANpC,SAOG,gBAAGjlC,EAAH,EAAGA,OAAH,EAAWkD,OAAX,OACC,gBAAC,KAAD,WACE,uBACE5a,UAAWO,IAAWF,EAAQq6C,gBAAiBr6C,EAAQqa,MADzD,UAEE,sBACE1a,UAAWK,EAAQo6C,UACnB3B,IAAI,WACJC,IAAKsC,GAAiBnR,EAAmB5pB,KAC3C,sBAAKtgB,UAAWK,EAAQw6C,YAAxB,SACE,uBACE76C,UAAWO,IACTF,EAAQyrC,cACRzrC,EAAQoT,WAHZ,UAKE,uBACEzT,UAAWO,IACTF,EAAQq6C,gBACRr6C,EAAQ86C,gBAHZ,UAKE,uBACEn7C,UAAWO,IACTF,EAAQq6C,gBACRr6C,EAAQ46C,mBAHZ,UAKE,eAAC,GAAD,IACA,gBAACt6C,GAAD,CACEX,UAAWK,EAAQ66C,yBACnB98C,UAAQ,EAFV,2BAGiBkiB,EAAO,EAHxB,qBAMF,eAAC,GAAD,CACEtgB,UAAWK,EAAQ26C,gBACnBp+B,QAAS6/B,EAAc/kC,GACvBsE,SAAO,OAGX,eAACrb,GAAD,CAAIvC,UAAQ,EAAZ,+BACA,uBACE4B,UAAWO,IACTF,EAAQq6C,gBACRr6C,EAAQu6C,eAHZ,UAKE,eAAC,KAAD,CACEl4B,UAAWrL,GACXC,cAAe,EACf7X,MAAO,GACPqZ,YAAaujC,EAAsB9I,WACnCpkC,KAAMitC,EACNp8C,UAAWK,EAAQ06C,aACnBrnC,WAAS,IAEX,gBAAC7S,GAAD,WACGy7C,EADH,IAC0BjY,EAD1B,sBAIF,gBAACxjC,GAAD,CAAGzC,UAAQ,EAAC4B,UAAWK,EAAQ+6C,UAA/B,eACKv/B,GAAmB2gC,EAAc9kC,IAAU,IAC7C2sB,aAKT,eAAC9gB,GAAD,CAAQvjB,UAAWK,EAAQuQ,OAAQtI,KAAK,SAAxC,SACG4H,cCnRX0sC,GAAkB7zC,KACtB,SAAA6K,GAAE,wBAAeA,KACjB7K,KAAQ,EAAG8zC,IAwHEC,GArHA,SAAC,GAAgE,IAA9Dn0B,EAA6D,EAA7DA,QAASqzB,EAAoD,EAApDA,gBAAiBe,EAAmC,EAAnCA,OAAQ9sC,EAA2B,EAA3BA,QAAS6kC,EAAkB,EAAlBA,KAAM1sC,EAAY,EAAZA,MAAY,EACxCiC,mBAAS,CAC5CiW,KAAM,EACNgU,OAAQ,CAAEhjB,QAAQ,KAHyD,0BACpEgP,EADoE,EACpEA,KAAMgU,EAD8D,EAC9DA,OAAU0oB,EADoD,KASvE9S,EAFJnhC,KAAUizC,MAAoB,OAACA,QAAD,IAACA,OAAD,EAACA,EAAiB1qC,QAEJ,EAAIqX,EAAQuhB,kBAKpD+S,EAAa38B,IAHD4pB,EAAoB,EAKhCgT,EAAmB,SAAAC,GACvB,OAAOp0C,MACL,SAAC+vB,EAAKrmB,GAEJ,OADAqmB,EAAIrmB,G5HjCU,SAAAA,GAAK,OACzBgJ,GAAc6yB,SAAS77B,IAAU67B,SAAS77B,GAAS,E4HgChC2qC,CAAcD,EAAc1qC,IAClCqmB,IAET,GACA8jB,KAIE/D,EAAa,SAAAjlC,GACjB,IAAMypC,EAAYt0C,KAAQurB,EAAQ1gB,GAClC,GAAIqpC,EAAY,CACd,IAKMxgC,EALoB,QACxB6X,QADwB,IACxBA,OADwB,EACxBA,EAAQooB,kBADgB,OAExB9oC,QAFwB,IAExBA,OAFwB,EAExBA,EAAI8oC,mBACJj6B,SAAS,OAEyB,EAAH,OAAOkG,QAAP,IAAOA,OAAP,EAAOA,EAASlM,QAC3C6gC,EAAYJ,EAAiBtpC,GAGnC,OADAkhC,EAAKnsB,EAAQ3lB,GAAIyZ,EAAS6gC,GACnBrtC,IAGT+sC,EAAS,CACP18B,KAAMA,EAAO,EACbgU,OAAQ+oB,KAINE,EAAoBx0C,KACxBA,KAAM,GACNA,KAAQ,GACRA,KAAM,SAAAlH,GAAC,MAAK,CACVyG,KAAK,YAAD,OAAczG,GAClB86C,OAAQx6B,OAAaC,MAAb,iCACMvgB,GAAMsgB,OACfjS,MAAM,cACNstC,WACAC,UACAp7B,WACA8O,IAAI,GACJxc,IAnEsB,YAoFzB4L,EAAQxX,KACZ,CACET,KAAM,UACNq0C,OAAQx6B,OAAaC,MAAM,CACzBs6B,kBAAmBv6B,OAAaE,SAAS,wBAE3Cq7B,iBAAiB,GAEnBH,EAAkBrT,IAGpB,OACE,gBAAC,GAAD,CACEvmC,MAAgB,IAAT2c,EAAa,KA7Eb,gBA8EP3Q,YAAaM,EACbxQ,MArGc,IAsGdX,OArGe,IAsGfkQ,MAAM,EALR,UAMY,IAATsR,GACC,eAAC,GAAD,CAAcnR,KAAI,OAAEwZ,QAAF,IAAEA,OAAF,EAAEA,EAASxZ,KAAM0pC,WAAY,kBAAMA,OAE7C,IAATv4B,GACC,eAAC,GAAD,CACEA,KAAMA,EACNnR,KAAI,OAAEwZ,QAAF,IAAEA,OAAF,EAAEA,EAASxZ,KACfwZ,QAASA,EACTqzB,gBAAiBA,EACjBC,iBA/GuB,IAgHvB7zC,MAAOA,EACP8zC,SAAUe,EACV18B,MAAOA,EACP8jB,aAAc0Y,EAAO1Y,aACrBwU,WAAYA,EACZ79B,cA5CLjS,KAAUizC,GASP,GARAjzC,MACE,SAAC+vB,EAAKrmB,GAEJ,OADAqmB,EAAI,WAAD,OAAYrmB,IAAW,GACnBqmB,IAET,GACA/vB,KAAQ,EAAGmhC,EAAoB,UCvF1BrqC,GANA,CACb4c,QAAS,CACP3d,OAAQ,KCeNa,GAAYC,YAAWC,IAEvB89C,GAA4B,CAChCC,EAAG,CAAEnhC,QAAS,IAAKohC,SAAU,IAAKC,cAAe,GAAIlP,UAAW,IAChEmP,EAAG,CAAEthC,QAAS,IAAKohC,SAAU,IAAKC,cAAe,GAAIlP,UAAW,IAChEoP,EAAG,CAAEvhC,QAAS,IAAKohC,SAAU,IAAKC,cAAe,GAAIlP,UAAW,KAG5DqP,GAAmB97B,OAAaC,MAAM,CAC1CjT,KAAMgT,OAAaE,SAAS,YAC5B5F,QAAS0F,OACNjS,MAAM,YACNmS,WACAo7B,UACAtsB,IAAI,GACJxc,IAAI,KACPupC,UAAW/7B,OACRE,SAAS,YACTo7B,UACAtsB,IAAI,GACJxc,IAAI,KACPwpC,UAAWh8B,OACRE,SAAS,YACTo7B,UACAtsB,IAAI,GACJxc,IAAI,KACPypC,UAAWj8B,OACRE,SAAS,YACTo7B,UACAtsB,IAAI,GACJxc,IAAI,KACP0pC,UAAWl8B,OACRE,SAAS,YACTo7B,UACAtsB,IAAI,GACJxc,IAAI,OAGH2pC,GAAqB70C,IAAH,wiBCtDT80C,GDmFO,SAAC,GAA6C,IAA3C51B,EAA0C,EAA1CA,QAAS2L,EAAiC,EAAjCA,OAAQkqB,EAAyB,EAAzBA,YAAaC,EAAY,EAAZA,MAC/Cp+C,EAAUV,KADiD,EAGrC0K,oBAAS,GAH4B,mBAG1Dq0C,EAH0D,KAGlDC,EAHkD,KAK3DC,EAAUtqB,GAAUD,GAAc,UAAdA,CAAyBC,GAC7CyoB,EAASzoB,GAAUD,GAAc,SAAdA,CAAwBC,GAC3CoV,EACJpV,GAAUD,GAAc,gBAAiBC,GACrC+P,EAAY,OAAG0Y,QAAH,IAAGA,OAAH,EAAGA,EAAQ1Y,aACvB6F,EAAoBvhB,EAAQuhB,kBAE5B2U,EAAqB,SAAAlzC,GAAQ,OAAI0oB,GAAc1oB,EAAd0oB,CAAwBuqB,IACzDE,EAAoB,SAAC,GAAD,IAAGnzC,EAAH,EAAGA,SAAH,OACvBkzC,EAAmBlzC,GAAU2F,QAE1Bm9B,EAAW,CACf,CACEt/B,KAAM,UACNzK,OAAQ,WACRjF,MAAOk+C,GAA0BzT,GAAmBztB,QACpDsiC,QAAQ,EACRzL,KAAM,SAAA7gC,GAAK,OACT,eAAC,GAAD,CACEqL,SAAU,CAAEzF,KAAMgsB,GAClBtmB,MAAOtL,EACPuL,MAAOjV,KAAMA,KAAM,SAAA6K,GAAE,OAAIA,EAAG6nB,OAAf1yB,CAAqB01C,OAGtCnqC,MAAO+C,GACPm8B,WAAY,CACVl8B,cAAe,KAKrBvO,KACEA,KAAKA,KAAMmhC,IACX,SAAAt2B,GA+BE,OA9BA66B,EAAStmB,KAAK,CACZhZ,KAAK,WAAD,OAAayE,GACjBlP,OAAO,iBAAD,OAAmBkP,GACzBnU,MAAOk+C,GAA0BzT,GAAmB2T,SACpDkB,QAAQ,EACRnT,aAAc,WACd0H,KAAM,SAAA7gC,GAAU,IAAD,EACb,OACE,eAAC,GAAD,CACEzS,UAAWK,EAAQoc,QACnB0B,aAAY,UACV0gC,EAAmBl2B,EAAQhd,iBADjB,aACV,oBAAkDiI,IAEpDkK,SAAU,CAAEzF,KAAMgsB,GAClBtmB,MAAOtL,EACPhT,MAAOk+C,GAA0BzT,GAAmB4T,cACpDz/B,UACEqrB,EAA0B,4BAAD,OAA6B91B,OAK9Dy/B,SAAU,gBAAGnJ,EAAH,EAAGA,kBAAH,OAA2Bt2B,EAAKs2B,GAC1C51B,MAAOkK,GACPg1B,WAAY,CACVl8B,cAAe,EACf7X,MAAOk+C,GAA0BzT,GAAmB4T,cACpDr/B,eAAgBpe,EAAQoc,WAGrB1T,KAAM,EAAG6K,KAElB,GAGF66B,EAAStmB,KAAK,CACZhZ,KAAM,OACNzK,OAAQ,OACRjF,MAAOk+C,GAA0BzT,GAAmB0E,UACpD0E,KAAM,WACJ,OACE,eAAC,GAAD,CACE/pC,QAAS,WACPo1C,GAAU,IAFd,SAIE,eAAC,GAAD,SApFyD,MA0F3B/zC,YAAY0zC,GAAoB,CACpEvzC,eAAgB,kBAAMyzC,OA3FyC,mBA0F1DQ,EA1F0D,KA0FtC52C,EA1FsC,KA0FtCA,MAIrB62C,EAAS,SAAC9e,EAAG1jB,EAAS6gC,GAAb,OACb0B,EAAiB,CACfpzC,UAAU,aACR8E,OAAQ,mBACR/E,SAAUgd,EAAQhd,SAClB8Q,WACG6gC,MAIT,OAAO30B,EAAQxZ,KACb,uCACE,eAAC,GAAD,CACE/G,MAAK,OAAEA,QAAF,IAAEA,OAAF,EAAEA,EAAOG,QACdqmC,UAAW+O,GAA0BzT,GAAmB0E,UACxDmF,WAAY+K,EACZxM,eAAgBwM,EAChB3vC,KAAK,YACLs/B,SAAUA,EACVtkC,KAAM,CAACwe,GACPmsB,KAAMmK,EACN/8B,iBAAkB+7B,KAEnBS,GACC,eAAC,GAAD,CACE/1B,QAASA,EACTqzB,gBAAiB6C,EAAmBl2B,EAAQhd,UAC5CsE,QAAS,WACP0uC,GAAU,IAEZv2C,MAAK,OAAEA,QAAF,IAAEA,OAAF,EAAEA,EAAOG,QACdusC,KAAMmK,EACNlC,OAAQA,OAIZ,M,UEjNAmC,GAA0B,CAAEp6C,WAAY,GAExCq6C,GACJ,iCACE,eAAC,GAAD,IACA,uBAAMrpC,MAAOopC,GAAb,wBAIEE,GACJ,iCACE,eAAC,GAAD,IACA,uBAAMtpC,MAAOopC,GAAb,yBAkDEG,GAAY,SAAAvhC,GAChB,OA/CyB,SAAAA,GACzB,MAAO,CACL,CACE3O,KAAM,OACN1P,MAAO,IACPwM,KAAM,KACNqnC,KAAM,SAAA1/B,GAAE,gBAAOA,KAEjB,CACElP,OAAQy6C,GACRhwC,KAAM,SACNhR,QAAS,UACTsB,MAAO,IACPyS,UAAW,QACXQ,OAAQ,KAEV,CACEhO,OAAQ06C,GACRjwC,KAAM,UACNhR,QAAS,WACTsB,MAAO,IACPyS,UAAW,QACXQ,OAAQ,IACR8gC,WAAY,CACVl8B,cAAe,IAGnB,CACEnI,KAAM,WACNhR,QAAS,YACTsB,MAAO,IACPmsC,aAAc,eACd15B,UAAW,QACXQ,OAAQoL,GAEV,CACE3O,KAAM,YACNhR,QAAS,aACTsB,MAAO,IACPmsC,aAAc,eACd15B,UAAW,QACXQ,OAAQoL,IAMLwhC,CAAmBxhC,IC1DtBiX,GAAWtrB,IAAH,+KAcRsY,GAActY,IAAH,4GCtBF81C,GD4BK,SAAC,GAAwC,IAAhCC,EAA+B,EAArCrwC,KAAsBxD,EAAe,EAAnB3I,GAAmB,EAChCiH,YAAS8qB,IAA3B5qB,EADkD,EAClDA,KAAMC,EAD4C,EAC5CA,QAD4C,EAErCQ,YAAYmX,GAAa,CAC5ChX,eAAgB,iBAAM,CAAC,cADlB00C,EAFmD,oBAMpDnrB,GAAa,OAAJnqB,QAAI,IAAJA,OAAA,EAAAA,EAAMmqB,SAAUD,GAAcmrB,EAAdnrB,CAA0BlqB,EAAKmqB,QACxDxW,EAAW/U,IAAO,CAAC,gBAARA,CACfsrB,GAAcR,GAAdQ,CAAA,OAAiClqB,QAAjC,IAAiCA,OAAjC,EAAiCA,EAAMmqB,SAkDnCorB,EA1CwB,WAC5B,GAAIt1C,IAAYuB,IAAa2oB,EAC3B,MAAO,GAET,IAAMqrB,EAAc,GAYpB52C,MATiB,SAAAxD,GAAC,OACfo6C,EAAY52C,IAAO,OAAPA,CAAexD,IAAM,CAChC8S,KAAM9S,EAAE8S,KACRlJ,KAAM5J,EAAEpH,QACRie,OAAQkY,EAAOlY,OACfJ,QAASsY,EAAOtY,QAChB4jC,SAAUtrB,EAAOsrB,SACjBC,UAAWvrB,EAAOurB,aAEtB92C,CAAoBoB,EAAKmrB,kBAGzB,IAAMwqB,EAAO,SAAA98C,GAAE,OAAI+F,IAAS,UAAW/F,IACjC+8C,EAAmBzrB,EAAO+qB,UAC5Bt2C,IAAS+2C,EAAK,gBAAd/2C,CAA+BurB,EAAO+qB,WACtC,GAEEW,EAAe,SAAAC,GACnBN,EAAYM,EAAE3qB,iBAAiB,IAAIlZ,OAAS6jC,EAAE7jC,OAC9CujC,EAAYM,EAAE3qB,iBAAiB,IAAItZ,QAAUikC,EAAEjkC,QAC/C2jC,EAAYM,EAAE3qB,iBAAiB,IAAIsqB,SAAWK,EAAEL,SAChDD,EAAYM,EAAE3qB,iBAAiB,IAAIuqB,UAAYI,EAAEJ,WAEnD92C,KAAUi3C,EAAVj3C,CAAwBg3C,GAGxB,IAAMG,EAAmB5rB,EAAO+qB,UAC5Bt2C,IAAS+2C,EAAKn0C,GAAd5C,CAAyBurB,EAAO+qB,WAChC,GAIJ,OAHAt2C,KAAUi3C,EAAVj3C,CAAwBm3C,GAGjBn3C,KAAS42C,GAGSQ,GAE3B,OACE,eAAC,GAAD,CACEhxC,KAAK,YACL2lC,KApDkB,SAAAlhC,GACpB,IAAM0gB,EAASG,GAAY+qB,EAAZ/qB,CAAwB7gB,GACvC,OAAO6rC,EAAW,CAAE7zC,UAAW,CAAE0oB,aAmD/BnqB,KAAMu1C,EACNjR,SAAU4Q,GAAUvhC,ME/FpBsiC,GAAkB,CACtBC,OAAQ,QACRC,OAAQ,SACRC,KAAM,OACNC,KAAM,QC6DO3gD,GA/DA,CACb4gD,KAAM,CACJtwC,KAAM,EACNrR,OAAQ,QAEV0O,QAAS,CACPrP,QAAS,OACT8H,cAAe,SACfkK,KAAM,EACNrL,WAAY7I,GACZopB,SAAU,KAEZxN,SAAU,CACR1Z,QAAS,OACTwG,eAAgB,gBAChBzF,WAAY,SACZ+G,cAAe,MACfxJ,MAAOpD,GAET2E,OAAQ,CACNvB,MAAOpD,EACPwL,UAAW,EACXjI,SAAU,IAEZmgB,IAAK,CACH5e,QAAS,OACT8H,cAAe,MACftB,eAAgB,gBAElB+7C,QAAS,CACPvwC,KAAM,EACNjK,aAAcjK,IAEhB0kD,WAAY,CACVz6C,aAAcjK,IAEhBmqB,uBAAwB,CACtBjoB,QAAS,OACT8H,cAAe,OAEjB26C,qBAAsB,CACpB/7C,UAAW,IAEbg8C,eAAgB,CACdrwC,eAAgB,QAElBswC,cAAe,CACbj8C,UAAW,IAEbk8C,iBAAkB,CAChBjiD,OAAQ,IACR+G,UAAW,QAEbm7C,iBAAkB,CAChB,QAAS,CACPn8C,UAAW,IAEb,oBAAqB,CACnBA,UAAW,KCpDXlF,GAAYC,YAAWC,IA0BdohD,GAxBC,SAAC,GAAwB,IAAtB92C,EAAqB,EAArBA,KAAMkwB,EAAe,EAAfA,SACjBh6B,EAAUV,KAChB,OACE,uBAAKK,UAAWK,EAAQ0c,IAAxB,UACE,uBAAK/c,UAAWK,EAAQqgD,QAAxB,UACE,eAACn/C,GAAD,CAAQvB,UAAWK,EAAQrC,OAA3B,uBACA,eAAC6C,GAAD,UACGsJ,EAAK+2C,SACF3mB,GAAWpwB,EAAK+2C,SAAU7mB,EAAU,uBACpC,QAGR,uBAAKr6B,UAAWK,EAAQqgD,QAAxB,UACE,eAACn/C,GAAD,CAAQvB,UAAWK,EAAQrC,OAA3B,2BACA,eAAC6C,GAAD,UAAIu/C,GAAgBj2C,EAAKg3C,YAE3B,uBAAKnhD,UAAWK,EAAQqgD,QAAxB,UACE,eAACn/C,GAAD,CAAQvB,UAAWK,EAAQrC,OAA3B,8BACA,eAAC6C,GAAD,UAAIsJ,EAAKi3C,iB,UCXXzhD,GAAYC,YAAW,CAC3ByhD,cAAe,CACb5hD,MAAO,IACPR,QAAShD,GACTsD,aAActD,IAEhBqlD,YAAa,CACXriD,QAAShD,GACTsD,aAActD,GACdkC,QAAS,OACT,kBAAmB,gBACnB,SAAU,CACRE,OAAQ,GAEV,aAAc,CACZY,QAAS,EACT4F,WAAY,IAGhB08C,cAAe,CACbtiD,QAAShD,GACTkK,WAAYlK,MAIH+zC,GAAc,SAAC,GAA2B,IAAzB7vC,EAAwB,EAAxBA,SAAU8P,EAAc,EAAdA,QAChC5P,EAAUV,KAChB,OACE,uBAAKK,UAAWK,EAAQihD,YAAxB,UACGnhD,EACA8P,GACC,eAAC,GAAD,CAAYhE,KAAM,GAAIoO,aAAW,QAAQ9Q,QAAS0G,EAAlD,SACE,eAAC,GAAD,UAOGuxC,GAAgBzhD,gBAC3B,YAaO,IAAD,IAZJ4D,aAYI,MAZI,iBAYJ,MAXJie,oBAWI,MAXW,oCAWX,EAVJ5S,EAUI,EAVJA,KACAyyC,EASI,EATJA,cASI,IARJC,+BAQI,SAPJn5C,EAOI,EAPJA,QAOI,IANJ6nC,2BAMI,uBAN4BqR,EAM5B,8BALJvR,EAKI,EALJA,YACAC,EAII,EAJJA,YAII,IAHJwR,oBAGI,MAHW,GAGX,MAFJvpC,gBAEI,SADDhY,EACC,+KACEC,EAAUV,KADZ,EAEsB0K,mBAASs3C,GAF/B,mBAEGlvC,EAFH,KAEUmvC,EAFV,OAGsBv3C,oBAAS,GAH/B,mBAGGjC,EAHH,KAGU4tC,EAHV,KAYE6L,GACFH,GAA2BD,IAAkBhvC,GAAoB,KAAVA,EAE3D,OACE,gBAACgS,GAAA,EAAD,yBAAQzV,KAAMA,EAAM2V,kBAAgB,qBAAwBvkB,GAA5D,cACE,eAAC,GAAD,CAAa4C,GAAG,0BAA0BiN,QAXzB,WACnB2xC,EAAS,IACT5L,GAAS,GACT7F,KAQE,SACE,eAACxvC,GAAD,UAAKgD,MAENie,GACC,eAAC,GAAD,UACE,eAAC,GAAD,UACGA,EAAayuB,MAAM,KAAK5kC,KAAI,SAAArD,GAAK,OAChC,uCACGA,EACD,kCAMV,gBAACwc,GAAA,EAAD,CAAe5kB,UAAWK,EAAQghD,cAAlC,UACG94C,GAAW,eAAC1H,GAAD,UAAI0H,IAChB,eAACuO,GAAA,EAAD,CAAYgrC,QAAQ,gBAApB,SAAqC1R,IACrC,eAAC,GAAD,CACEh4B,SAAUA,EACVjJ,KAAK,gBACLuE,WAAS,EACT1Q,GAAG,gBACHsF,KAAK,OACL2D,KAAK,KACLwH,WAAS,EACThB,MAAOA,EACPkI,QAAS,GACTvS,MAAOA,EACPwQ,gBAAiB,CAAEC,QAAQ,GAC3BtG,SA3Ca,SAAAxC,GAAK,OAAI6xC,EAAS7xC,EAAMnO,OAAO6Q,aA8ChD,eAAC69B,GAAA,EAAD,CAAetwC,UAAWK,EAAQkhD,cAAlC,SACE,eAACh+B,GAAD,CACE9mB,MAAM,QACN2b,SAAUypC,EACVt4C,QAAS,kBAAM2mC,EAAYz9B,IAH7B,8BCzHV,SAAS,KAA2Q,OAA9P,GAAW/Q,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,yBACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,OAAQ,CAC1CD,EAAG,wFACHN,GAAI,WACJC,OAAQ,YACO,gBAAoB,UAAW,CAC9CD,GAAI,WACJC,OAAQ,UACRwE,OAAQ,8DAGV,SAAS,GAAShE,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB,IAChC,IC/Cf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,0BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,OAAQ,CAC1CD,EAAG,wFACHN,GAAI,WACJC,OAAQ,YACO,gBAAoB,UAAW,CAC9CD,GAAI,WACJC,OAAQ,UACRwE,OAAQ,8DAGV,SAAS,GAAUhE,EAAMC,GACvB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB,IAChC,IC/Cf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,2BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,IAAK,CACvCP,GAAI,UACJC,OAAQ,WACM,gBAAoB,IAAK,CACvCD,GAAI,WACU,gBAAoB,OAAQ,CAC1CM,EAAG,wOACHN,GAAI,aACW,gBAAoB,WAAY,CAC/CA,GAAI,WACJyE,OAAQ,4EACQ,gBAAoB,OAAQ,CAC5CJ,GAAI,WACJC,GAAI,WACJC,GAAI,WACJC,GAAI,WACJxE,GAAI,aACW,gBAAoB,IAAK,CACxCA,GAAI,UACJK,UAAW,6GACG,gBAAoB,OAAQ,CAC1CC,EAAG,wOACHN,GAAI,aACW,gBAAoB,WAAY,CAC/CA,GAAI,WACJyE,OAAQ,8EAGV,SAAS,GAAShE,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,wBACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB,IAChC,ICjEf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,4BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,IAAK,CACvCP,GAAI,UACJC,OAAQ,WACM,gBAAoB,IAAK,CACvCD,GAAI,WACU,gBAAoB,OAAQ,CAC1CM,EAAG,wOACHN,GAAI,aACW,gBAAoB,WAAY,CAC/CA,GAAI,WACJyE,OAAQ,4EACQ,gBAAoB,OAAQ,CAC5CJ,GAAI,WACJC,GAAI,WACJC,GAAI,WACJC,GAAI,WACJxE,GAAI,aACW,gBAAoB,IAAK,CACxCA,GAAI,UACJK,UAAW,6GACG,gBAAoB,OAAQ,CAC1CC,EAAG,wOACHN,GAAI,aACW,gBAAoB,WAAY,CAC/CA,GAAI,WACJyE,OAAQ,8EAGV,SAAS,GAAUhE,EAAMC,GACvB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,wBACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB,IAChC,ICjEf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,8BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,IAAK,CACvCP,GAAI,UACJK,UAAW,gCACXJ,OAAQ,WACM,gBAAoB,OAAQ,CAC1CK,EAAG,qMACHN,GAAI,aACW,gBAAoB,OAAQ,CAC3CqE,GAAI,EACJC,GAAI,IACJC,GAAI,EACJC,GAAI,KACJxE,GAAI,eAGN,SAAS,GAASS,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB,IAChC,ICpDf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,+BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,IAAK,CACvCP,GAAI,UACJK,UAAW,gCACXJ,OAAQ,WACM,gBAAoB,OAAQ,CAC1CK,EAAG,qMACHN,GAAI,aACW,gBAAoB,OAAQ,CAC3CqE,GAAI,EACJC,GAAI,IACJC,GAAI,EACJC,GAAI,KACJxE,GAAI,eAGN,SAAS,GAAUS,EAAMC,GACvB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB,IAChC,ICpDf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,2BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,IAAK,CACvCP,GAAI,WACJC,OAAQ,WACM,gBAAoB,IAAK,CACvCD,GAAI,WACU,gBAAoB,WAAY,CAC9CA,GAAI,WACJyE,OAAQ,uCACO,gBAAoB,WAAY,CAC/CzE,GAAI,WACJyE,OAAQ,0CACQ,gBAAoB,OAAQ,CAC5CJ,GAAI,KACJC,GAAI,EACJC,GAAI,KACJC,GAAI,IACJxE,GAAI,aACW,gBAAoB,OAAQ,CAC3CqE,GAAI,KACJC,GAAI,EACJC,GAAI,KACJC,GAAI,KACJxE,GAAI,aACW,gBAAoB,OAAQ,CAC3CqE,GAAI,KACJC,GAAI,IACJC,GAAI,MACJC,GAAI,IACJxE,GAAI,aACW,gBAAoB,OAAQ,CAC3CqE,GAAI,KACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJxE,GAAI,aACW,gBAAoB,OAAQ,CAC3CqE,GAAI,KACJC,GAAI,EACJC,GAAI,IACJC,GAAI,KACJxE,GAAI,cACW,gBAAoB,OAAQ,CAC3CqE,GAAI,KACJC,GAAI,EACJC,GAAI,KACJC,GAAI,KACJxE,GAAI,gBAGN,SAAS,GAASS,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB,IAChC,ICtFf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,4BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,IAAK,CACvCP,GAAI,WACJC,OAAQ,WACM,gBAAoB,IAAK,CACvCD,GAAI,WACU,gBAAoB,WAAY,CAC9CA,GAAI,WACJyE,OAAQ,uCACO,gBAAoB,WAAY,CAC/CzE,GAAI,WACJyE,OAAQ,0CACQ,gBAAoB,OAAQ,CAC5CJ,GAAI,KACJC,GAAI,EACJC,GAAI,KACJC,GAAI,IACJxE,GAAI,aACW,gBAAoB,OAAQ,CAC3CqE,GAAI,KACJC,GAAI,EACJC,GAAI,KACJC,GAAI,KACJxE,GAAI,aACW,gBAAoB,OAAQ,CAC3CqE,GAAI,KACJC,GAAI,IACJC,GAAI,MACJC,GAAI,IACJxE,GAAI,aACW,gBAAoB,OAAQ,CAC3CqE,GAAI,KACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJxE,GAAI,aACW,gBAAoB,OAAQ,CAC3CqE,GAAI,KACJC,GAAI,EACJC,GAAI,IACJC,GAAI,KACJxE,GAAI,cACW,gBAAoB,OAAQ,CAC3CqE,GAAI,KACJC,GAAI,EACJC,GAAI,KACJC,GAAI,KACJxE,GAAI,gBAGN,SAAS,GAAUS,EAAMC,GACvB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,I,MAAI,GAA0B,aAAiB,IChFzCo+C,IDiFS,ICjFc,CAC3B7xC,MAAO,CACLvT,OAJegC,GAAXb,OAKJrB,MAAO/B,GACPwL,aAAc,GAEhB87C,WAAY,CACVC,gBAAiB,UAEnBC,MAAO,CACL/jD,QAAS,OACT8H,cAAe,MACfk8C,SAAU,OACVx9C,eAAgB,SAElBy9C,GAAI,CACFh8C,YlMsCW,EkMrCXF,alMqCW,GkMnCbkiC,QAAS,CACP3rC,MAAO3B,MCNL6E,GAAYC,YAAWmiD,IAEvBM,GAAiB54C,IAAH,iPAYd64C,GAAU74C,IAAH,gKAuLE84C,GAvJQxiD,gBAAK,YAAmC,IAAhC4oB,EAA+B,EAA/BA,QAAS65B,EAAsB,EAAtBA,gBAAsB,EAChCn4C,mBAAS,CAAEo4C,QAAS,OADY,mBACrD/xC,EADqD,KAC7CgyC,EAD6C,OAEZr4C,mBAAS,IAFG,mBAErDs4C,EAFqD,KAEnCC,EAFmC,OAGpBv4C,mBAAS,MAHW,mBAGrDuX,EAHqD,KAGvCihC,EAHuC,KAItDxiD,EAAUV,KAEVmjD,EACJ,uBAAM9iD,UAAWK,EAAQ+nC,QAAzB,2GAP0D,EAaHhd,YACvDk3B,GACAK,GAf0D,mBAarDI,EAbqD,KAatBC,EAbsB,KAa/B54C,QAb+B,EAkBvBQ,YAAYy3C,GAAgB,CAC/Dx3C,QAAS,YAAkB,IAAftC,EAAc,EAAdA,QAEVs6C,EADkB,OAAGt6C,QAAH,IAAGA,IAAW,qBAGlCua,YAAa,WACX0/B,GAAmBA,IACnBE,EAAU,CAAEvkD,QAASuS,EAAOvS,QAASskD,QAAS,UAzBU,mBAkBrDQ,EAlBqD,KAkBpC74C,EAlBoC,KAkBpCA,QAWlB84C,EAAoB1zC,QAAQkB,EAAO+xC,SACnCrqC,IAAkC,qBAAd,OAAN1H,QAAM,IAANA,OAAA,EAAAA,EAAQ+xC,WAAiCO,GAEvDG,EAAyB,SAAAC,GAC7BR,EAAoB,CAClBh3C,UAAW,CAAED,SAAUgd,EAAQhd,UAC/BmX,YAAa,SAAAugC,GACX,IA1DcC,EA0DR/6C,GA1DQ+6C,EAkBL,SAAAD,GAAiB,eAChCE,KAAKC,MAAL,oBAAWH,EAAkB16B,QAAQ86B,mBAArC,aAAW,EAAuCC,YAAlD,QAA0D,mBACvD18B,MAsCkC28B,CAASN,MAtDzB,CACnB,aACA,OACA,cACA,WACA,cACA,WACA,cACA,SACA,YAEkB5gC,SAAS6gC,GA4CnBR,EACA,KACJJ,EAAU,2BAAKU,GAAN,IAAkB76C,gBAG/Bw6C,KAGF,OACE,iCACE,eAACriD,GAAD,sBACA,uBAAKV,UAAWK,EAAQ6hD,MAAxB,UACE,eAAC,GAAD,CACEzlD,MAAM,UACNuD,UAAWK,EAAQ+hD,GACnBniD,KAAM2jD,GACN1jD,YAAa2jD,GACbzrC,SAAUhO,EACVb,QAAS,kBACPm5C,EAAU,CACRD,QAAS,SACTtkD,QAAS,SACTiyC,oBAAqB,yCAV3B,oBAeA,eAAC,GAAD,CACE3zC,MAAM,UACNuD,UAAWK,EAAQ+hD,GACnBniD,KAAM6jD,GACN5jD,YAAa6jD,GACb3rC,SAAUhO,EACVb,QAAS,kBACPm5C,EAAU,CACRD,QAAS,SACTtkD,QAAS,YATf,oBAcA,eAAC,GAAD,CACE1B,MAAM,UACNuD,UAAWK,EAAQ+hD,GACnBniD,KAAM+jD,GACN9jD,YAAa+jD,GACb7rC,SAAUhO,EACVb,QAAS,kBACPm5C,EAAU,CACRD,QAAS,SACTtkD,QAAS,YATf,oBAcA,eAAC,GAAD,CACE1B,MAAM,UACNuD,UAAWK,EAAQ+hD,GACnBniD,KAAMikD,GACNhkD,YAAaikD,GACb/rC,SAAUhO,EACVb,QAAS,kBACPm5C,EAAU,CACRD,QAAS,WACTtkD,QAAS,WACToK,QACE,gGAXR,sBAgBA,eAAC,GAAD,CACE9L,MAAM,UACNuD,UAAWK,EAAQ2hD,WACnB/hD,KAAM+jD,GACN9jD,YAAa+jD,GACb7rC,SAAUhO,EACVb,QAAS,WACP45C,EAAuB,CACrBV,QAAS,kBACTtkD,QAAS,0BATf,iCAeF,eAACqjD,GAAD,CACEppC,SAAUA,EACVpJ,KAAMk0C,EACNv/C,MAAK,UAAK+M,EAAOvS,QAAZ,kBACLyjB,aAAcA,EACd6/B,cAAe94B,EAAQxZ,KACvB5G,QAAO,OAAEmI,QAAF,IAAEA,OAAF,EAAEA,EAAQnI,QACjB6nC,oBAAmB,OAAE1/B,QAAF,IAAEA,OAAF,EAAEA,EAAQ0/B,oBAC7BsR,wBAA6C,YAAd,OAANhxC,QAAM,IAANA,OAAA,EAAAA,EAAQ+xC,SACjCvS,YAAa,SAAAz9B,GACXowC,EAAgB,MAChBI,EAAc,CACZr3C,UAAU,aACRD,SAAUgd,EAAQhd,SAClB+E,OAAO,GAAD,cAAKA,QAAL,IAAKA,OAAL,EAAKA,EAAQ+xC,UACK,YAAd,OAAN/xC,QAAM,IAANA,OAAA,EAAAA,EAAQ+xC,UAAwB,CAAE2B,QAAS3xC,OAIrD09B,YAAa,WACXuS,EAAU,CAAEvkD,QAASuS,EAAOvS,QAASskD,QAAS,OAC9CI,EAAgB,e,UCjN1B,SAAS,KAA2Q,OAA9P,GAAWnhD,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,aACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACVG,eAAgB,SACF,gBAAoB,IAAK,CACvCP,GAAI,mBACJK,UAAW,gCACXJ,OAAQ,WACM,gBAAoB,IAAK,CACvCD,GAAI,kBACU,gBAAoB,WAAY,CAC9CA,GAAI,WACJE,YAAa,EACbuE,OAAQ,yDACO,gBAAoB,UAAW,CAC9CzE,GAAI,WACJE,YAAa,EACbiE,cAAe,QACfM,OAAQ,+CAGV,SAAS48C,GAAQ5gD,EAAMC,GACrB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB0gD,IClDhC,IDmDA,ICnDA,CACbx7B,aAAc,CACZ1qB,QAAS,OACTwG,eAAgB,gBAChBzF,WAAY,SACZ+G,cAAe,OAEjBiG,QAAS,CACPiE,KAAM,EACNhS,QAAS,OACT8H,cAAe,MACfnH,OAAQ,QAEVwlD,aAAc,CACZn0C,KAAM,EACNrL,WAAY,GACZ3G,QAAS,QACT2H,UAAW,OACXrG,MAAO,OACP4lB,SAAU,MACVzf,UAAW,QAEbqxB,MAAO,CACLzhB,WAAY,SACZrX,QAAS,QACT,OAAQ,CACNgH,SAAU,SACVC,IAAK,IAGTm/C,WAAY,CACVhlC,SAAU,KAEZilC,YAAa,CACXjlC,SAAU,KAEZklC,WAAY,CACVhlD,MAAO,QAETilD,YAAa,CACXrmD,OAAQ,EACRF,QAAS,OACTe,WAAY,SACZtC,SAAUnB,GACVwD,QAAS,CAAC,CAAC,EAAG,MAEhB0lD,UAAW,CACTv+C,YAAa,GAEf0F,OAAQ,CACNzN,OAAQ,GAEVyqB,yBAA0B,CACxB3qB,QAAS,QAEXymD,eAAgB,CACdzmD,QAAS,OACT2G,WAAY,GACZ,QAAS,CACPzG,OAAQ,eChDNP,GAAoBa,GAApBb,OAGF+mD,GAAY,CAChB34C,QAAS,CACPvP,OALwBgC,GAAZlB,KAMZU,QAAS,OACTe,WAAY,UAEd4lD,QAAS,CACPC,UAAW,YAEbC,cAAe,CACb,WAAY,CACVnmD,OAAQ,OACRzE,gBAAiB,cACjBwE,OAAQ,YAGZqQ,eAAgB,CACdtS,OAAQmB,GACRK,QAAS,OACTwG,eAAgB,SAChBzF,WAAY,SACZzC,MAAO5C,EACPmF,aAAc,EACdC,QAAS,CAAC,CAAC,EAAG,MAIZgmD,GAAmB,CACvBC,eAAgB,CACdvoD,OAhCwBgC,GAANxB,EAiClBgB,QAAS,OACTc,QAAS,CAAC,CAAC,GAAI,IACf,UAAW,CACTd,QAAS,OACT8H,cAAe,SACf,UAAW,CACTxG,MAAO,IACPX,OAAQ,GACRoH,aAAc,GACd,eAAgB,CACdA,aAAc,OAOlBi/C,GAAc,CAClBj1C,MAAO,CACLvT,OAAQmB,GACRrB,MAAO/B,GACPwL,aAAc,IAIZk/C,GAAa,CACjBv8B,aA1DiEw8B,GAA3Dx8B,aA2DNC,yBA3DiEu8B,GAA7Cv8B,yBA4DpB87B,eA5DiES,GAAnBT,eA6D9C3xB,aAAc,CACZ90B,QAAS,OACT8H,cAAe,MACf,QAAS,CACP9H,QAAS,OACTe,WAAY,UAEd,UAAW,CACT4F,WAAY,IAEd,sBAAuB,CACrBA,WAAY,GAEd,SAAU,CACRnI,OAAQmB,GACRgH,WAAY,IAGhBwgD,WAAY,CACV54C,SAAU,SACV8I,WAAY,SACZ+vC,aAAc,YAEhBC,YAAa,CACXrnD,QAAS,OACTe,WAAY,SACZyF,eAAgB,gBAChByB,YAAa,IAEfq/C,iBAAkB,CAChB3gD,WAAY,GAEd4gD,QAAS,CACPvnD,QAAS,OACT8H,cAAe,MACf/G,WAAY,UAEdymD,yBAA0B,CACxB7gD,WAAY,GACZ8S,YAAa,EACbrY,aAAc,ICvGZI,GAAYC,YAAWilD,IA8Dde,GA5DS,SAAC,GAMlB,IALL5lD,EAKI,EALJA,UACA6lD,EAII,EAJJA,gBACA1lD,EAGI,EAHJA,SACA2lD,EAEI,EAFJA,iBAEI,gFAC4Bz7C,mBAAS,OADrC,mBACGiF,EADH,KACaC,EADb,KAGJrE,qBAAU,WACJoE,GAAU4U,YAAW,kBAAM3U,EAAY,QAAO,OACjD,CAACD,IAEJ,IAAMjP,EAAUV,KAUVqP,EAAOQ,QAAQF,GACftM,EAAKgM,EAAO,qBAAkBS,EAEpC,OACE,sBAAKzP,UAAWO,IAAWF,EAAQ6L,QAAS45C,GAA5C,SACG3lD,GACC,uCACE,sBAAKH,UAAWO,IAAWF,EAAQykD,QAAS9kD,GAA5C,SACGG,IAEH,sBAAKH,UAAWO,IAAWF,EAAQ2kD,cAAea,GAAlD,SACE,eAAC,mBAAD,CAAsBt8B,KAAMxgB,KAAU,MAAO,GAAjBA,CAAqB5I,GAAjD,SACE,yBACE2P,mBAAkB9M,EAClBuG,QAAS,SAAAwG,GAAK,OAtBR,SAAAA,GAClBR,EAAYD,EAAW,KAAOS,EAAMC,eAqBN+1C,CAAYh2C,IAFhC,SAGE,eAAC,GAAD,UAIN,eAAC,GAAD,CACE/M,GAAIA,EACJgM,KAAMA,EACNM,SAAUA,EACVW,QA3BU,WAClBV,EAAY,OA2BJxC,UAAW,EACXD,QAASzT,EACT6U,UAAU,MAPZ,SAQE,sBAAKlO,UAAWK,EAAQ4O,eAAxB,SACE,kECtDRtP,GAAYC,YAAWC,IAkEdmmD,GAhEE,SAAC,GAA+B,IAA7B77C,EAA4B,EAA5BA,KAAMq4C,EAAsB,EAAtBA,gBAClBniD,EAAUV,KAEhB,OACE,uBAAKK,UAAWK,EAAQ2gD,iBAAxB,UACE,sBAAKhhD,UAAWK,EAAQ0c,IAAxB,SACE,sBAAK/c,UAAWK,EAAQqgD,QAAxB,SACE,eAAChgD,GAAD,UAAKyJ,EAAKgF,WAGd,sBAAKnP,UAAWK,EAAQ0c,IAAxB,SACE,uBAAK/c,UAAWK,EAAQqgD,QAAxB,UACE,eAACr/C,GAAD,CAAQrB,UAAWK,EAAQrC,OAA3B,oBACCmM,GAAQA,EAAKu+B,SAAW,eAAC,GAAD,CAAQF,OAAQr+B,EAAKu+B,SAAS,KAAS,UAGpE,uBAAK1oC,UAAWK,EAAQ0c,IAAxB,UACE,uBAAK/c,UAAWK,EAAQqgD,QAAxB,UACE,eAACr/C,GAAD,CAAQrB,UAAWK,EAAQrC,OAA3B,kBACA,eAAC6C,GAAD,CAAGzC,UAAQ,EAAX,SACG+L,EAAK87C,aACF,IAAIjxB,KAAU7qB,EAAK87C,cAAcroC,QAAQ,GAAG21B,WAAa,OACzD,mBAGR,uBAAKvzC,UAAWK,EAAQqgD,QAAxB,UACE,eAACr/C,GAAD,CAAQrB,UAAWK,EAAQrC,OAA3B,uBACA,eAAC6C,GAAD,CAAGzC,UAAQ,EAAX,SACG+L,EAAK+7C,SACFC,aAAe,IAAIj9C,KAAKiB,EAAK+7C,UAAW,IAAIh9C,KAAQ,CAClDk9C,WAAW,IAEb,eAGR,uBAAKpmD,UAAWK,EAAQqgD,QAAxB,UACE,eAACr/C,GAAD,CAAQrB,UAAWK,EAAQrC,OAA3B,2BACA,eAAC6C,GAAD,CAAGzC,UAAQ,EAAX,SACG+L,EAAKk8C,cACF,IAAIrxB,KAAU7qB,EAAKk8C,eAAezoC,QAAQ,GAAG21B,WAC7C,SACA,sBAIV,sBAAKvzC,UAAWK,EAAQ0c,IAAxB,SACE,uBAAK/c,UAAWK,EAAQqgD,QAAxB,UACE,eAACr/C,GAAD,CAAQrB,UAAWK,EAAQrC,OAA3B,uBACA,eAAC6C,GAAD,CAAGzC,UAAQ,EAAX,SACE,eAAC,GAAD,CAAiBynD,gBAAiBxlD,EAAQimD,gBAA1C,SACGn8C,EAAKwB,kBAKd,sBAAK3L,UAAWK,EAAQ0c,IAAxB,SACE,eAAC,GAAD,CACE4L,QAASxe,EACTq4C,gBAAiBA,U,qGCvE3B,SAAS,KAA2Q,OAA9P,GAAW9gD,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,yBACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,UAAW,CAC7CP,GAAI,WACJC,OAAQ,UACRC,YAAa,IACbuE,OAAQ,wBACO,gBAAoB,OAAQ,CAC3CJ,GAAI,WACJC,GAAI,EACJC,GAAI,WACJC,GAAI,EACJxE,GAAI,WACJC,OAAQ,UACRC,YAAa,MACE,gBAAoB,OAAQ,CAC3CmE,GAAI,WACJC,GAAI,IACJC,GAAI,WACJC,GAAI,IACJxE,GAAI,WACJC,OAAQ,UACRC,YAAa,MACE,gBAAoB,UAAW,CAC9CF,GAAI,WACJC,OAAQ,UACRC,YAAa,IACbuE,OAAQ,+DAGV,SAAS,GAAShE,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,QAAkBqP,IAAV9L,EAAmC,gBAAoB,QAAS,CACzEX,GAAIY,GACH,0BAA4BD,EAAqB,gBAAoB,QAAS,CAC/EX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiB,IAChC,ICjEf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,0BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,IAAK,CACvCP,GAAI,UACJK,UAAW,gCACXJ,OAAQ,UACRC,YAAa,KACC,gBAAoB,IAAK,CACvCF,GAAI,WACU,gBAAoB,UAAW,CAC7CA,GAAI,WACJyE,OAAQ,wBACO,gBAAoB,OAAQ,CAC3CJ,GAAI,WACJC,GAAI,EACJC,GAAI,WACJC,GAAI,EACJxE,GAAI,aACW,gBAAoB,OAAQ,CAC3CqE,GAAI,WACJC,GAAI,IACJC,GAAI,WACJC,GAAI,IACJxE,GAAI,aACW,gBAAoB,UAAW,CAC9CA,GAAI,WACJyE,OAAQ,iEAGV,SAAS,GAAUhE,EAAMC,GACvB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,QAAkBqP,IAAV9L,EAAmC,gBAAoB,QAAS,CACzEX,GAAIY,GACH,2BAA6BD,EAAqB,gBAAoB,QAAS,CAChFX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiB,IAChC,IChEf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,0BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,OAAQ,CAC1CD,EAAG,olBACHN,GAAI,gBACJC,OAAQ,UACRC,YAAa,OAGf,SAAS,GAASO,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,QAAkBqP,IAAV9L,EAAmC,gBAAoB,QAAS,CACzEX,GAAIY,GACH,2BAA6BD,EAAqB,gBAAoB,QAAS,CAChFX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiB,IAChC,IC5Cf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,2BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,OAAQ,CAC1CD,EAAG,olBACHN,GAAI,gBACJC,OAAQ,UACRC,YAAa,OAGf,SAAS,GAAUO,EAAMC,GACvB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,QAAkBqP,IAAV9L,EAAmC,gBAAoB,QAAS,CACzEX,GAAIY,GACH,4BAA8BD,EAAqB,gBAAoB,QAAS,CACjFX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiB,IAChC,IC5Cf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,0BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,OAAQ,CAC1CD,EAAG,+NACHN,GAAI,WACJC,OAAQ,UACRC,YAAa,OAGf,SAAS,GAASO,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,QAAkBqP,IAAV9L,EAAmC,gBAAoB,QAAS,CACzEX,GAAIY,GACH,2BAA6BD,EAAqB,gBAAoB,QAAS,CAChFX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiB,IAChC,IC5Cf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,4BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,IAAK,CACvCP,GAAI,UACJC,OAAQ,UACRC,YAAa,KACC,gBAAoB,OAAQ,CAC1CmE,GAAI,GACJC,GAAI,EACJC,GAAI,EACJC,GAAI,GACJxE,GAAI,aACW,gBAAoB,OAAQ,CAC3CqE,GAAI,EACJC,GAAI,EACJC,GAAI,GACJC,GAAI,GACJxE,GAAI,eAGN,SAAS,GAAUS,EAAMC,GACvB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB,IAChC,ICvDf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,6BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,IAAK,CACvCP,GAAI,wBACJC,OAAQ,WACM,gBAAoB,WAAY,CAC9CD,GAAI,SACJyE,OAAQ,0BACO,gBAAoB,OAAQ,CAC3CJ,GAAI,EACJC,GAAI,GACJC,GAAI,EACJC,GAAI,IACJxE,GAAI,WACW,gBAAoB,OAAQ,CAC3CM,EAAG,wFACHN,GAAI,eAGN,SAAS,GAASS,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB,IAChC,ICtDf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,8BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,IAAK,CACvCP,GAAI,wBACJC,OAAQ,WACM,gBAAoB,WAAY,CAC9CD,GAAI,SACJyE,OAAQ,0BACO,gBAAoB,OAAQ,CAC3CJ,GAAI,EACJC,GAAI,GACJC,GAAI,EACJC,GAAI,IACJxE,GAAI,WACW,gBAAoB,OAAQ,CAC3CM,EAAG,wFACHN,GAAI,eAGN,SAAS,GAAUS,EAAMC,GACvB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,I,SAAI,GAA0B,aAAiB,I,IAChC,I,wDC3CT4iD,GACgE,GAKhEC,GAAaC,4BAAiB,CAClCC,YAAa,UACbC,IAAI,GAAD,OAAKJ,GAAL,cAGCK,GAAgBH,4BAAiB,CACrCC,YAAa,UACbC,IAAI,GAAD,OATgE,GAShE,cAuEU/P,GAfE,SAAC,GAAkB,IAAhBz2C,EAAe,EAAfA,SACZynB,EAAUC,cACV0F,EAAWwD,cAFgB,EAGU/F,qBAAWC,GAChDoD,GAJ2B,EAGzBhD,SAxDQ,SAACzD,EAAS2F,EAAUjC,EAAaP,EAAa87B,GAA9C,OAChB,IAAIC,KAAa,CACfv2C,KAAMw2C,cAAW7mB,KAAK,CACpBr1B,cAAQ,YAAsC,IAAnCm8C,EAAkC,EAAlCA,cAAeC,EAAmB,EAAnBA,aACpBD,GACFA,EAAcE,SAAQ,YAA+C,IAA5C3+C,EAA2C,EAA3CA,QAAS4+C,EAAkC,EAAlCA,UAAWC,EAAuB,EAAvBA,KAAMC,EAAiB,EAAjBA,WACxB,qBAAX,OAAVA,QAAU,IAAVA,OAAA,EAAAA,EAAYhvC,QACd0S,EAAY,MACc,WAAtBwC,EAASzG,UAAuBc,EAAQO,KAAK,WAEnDrd,QAAQkY,IAAR,oCAC+Bza,EAD/B,uBACqD4+C,EADrD,mBACyEC,OAGzEH,GAAcn8C,QAAQkY,IAAR,2BAAgCikC,OAEpD,IAAIF,eAAW,SAACO,EAAWC,GACzB,OAAOA,EAAQD,GAAW77C,KAAI,SAAA+7C,GAC5B,IAEc/7B,EAFE67B,EAAUG,aAExBD,SAAY/7B,QAGd,GAAIA,EAAS,CACX,IAAM9E,EAAO8E,EAAQ+F,IAAI,gBACzBq1B,EAAQlgC,GAGV,OAAO6gC,QAGXT,cAAW1W,OACT,SAAAiX,GAAS,MAA0C,UAAtCA,EAAUG,aAAaC,aACpCd,GACAJ,MAGJmB,MAAO,IAAIC,KACXC,eAAgB,CACdC,WAAY,CACVC,YAAa,WACbC,YAAa,UAEfC,MAAO,CACLF,YAAa,WACbC,YAAa,OAEfE,OAAQ,CACNF,YAAa,UASJG,CACbvgC,EACA2F,EACA,EAP+B,EAGfxC,YAHe,EAGF87B,UAS/B,OAAO,eAAC,KAAD,CAAgBx4B,OAAQA,EAAxB,SAAiCluB,KCvF3B,IACb+L,QAAS,CACP/N,QAAS,OACT8H,cAAe,SACfpB,UAAW,IAEbkY,IAAK,CACH5e,QAAS,OACT8H,cAAe,MACfC,aAAc,IAEhBkiD,UAAW,CACTjqD,QAAS,OACT8H,cAAe,MACftB,eAAgB,gBAChBuB,aAAc,IAEhBmiD,QAAS,CACPlqD,QAAS,OACT8H,cAAe,MACfC,aAAc,IAEhBgK,MAAO,CACLzT,MAAO/B,GACP2D,OAAQ,CAAC,CAAC,EAAG,EAAG,EAAG,IACnBmX,WAAY,UAEd8yC,OAAQ,CACNliD,YAAa,IAEfmiD,iBAAkB,CAChBzpD,OAAQ,IACRW,MAAO,KAETqP,SAAU,CACR1I,YAAa,GAEf8+C,eAAgB,CACdvoD,OAxCUgC,GAANxB,EAyCJgB,QAAS,OACTc,QAAS,CAAC,CAAC,GAAI,IACf,UAAW,CACTd,QAAS,OACT8H,cAAe,SACf,UAAW,CACTxG,MAAO,IACPX,OAAQ,GACRoH,aAAc,GACd,eAAgB,CACdA,aAAc,MAKtB+L,KAAM,CACJnV,WAAY,KAEd6zB,UAAW,CACTlxB,MAAO,KAET+oD,aAAc,CACZ/oD,MAAO,KAETgpD,aAAc,CACZhpD,MAAO,KAETipD,WAAY,CACVjpD,MAAO,KAETqlD,QAAS,CACPrlD,MAAO,KAETkpD,gBAAiB,CACflpD,MAAO,KAETmpD,kBAAmB,CACjBnpD,MAAO,KAET+oC,OAAQ,CACN/oC,MAAO,IACP,aAAc,CACZoF,UAAW,KAGfgkD,cAAe,CACbppD,MAAO,KAETqpD,UAAW,CACTrpD,MAAO,KAET8E,UAAW,CACTpG,QAAS,QAEXgf,KAAM,CACJhf,QAAS,OACTe,WAAY,SACZD,QAAS,kBACT7E,gBAAiBf,EACjBoD,MAAO5C,EACPiF,OAAQ,GACRoH,cAAe,GACfrB,WAAY,EACZC,WAAY,EACZ9F,aAAc,GAEhB+pD,UAAW,CACTtsD,MAAO5C,GAETmvD,kBAAmB,CACjB7qD,QAAS,OACT8H,cAAe,OAEjBgjD,cAAe,CACb9qD,QAAS,OACT8H,cAAe,MACftB,eAAgB,gBAChBzF,WAAY,UAEdgqD,YAAa,CACX/qD,QAAS,OACT8H,cAAe,MACf/G,WAAY,SACZ,QAAS,CACP4F,WAAY,IAGhBsD,MAAO,CACL3L,MAAO3C,ICjHLqvD,GAAY,SAAAv1C,GAChB,MAAmB,YAAfA,EAAGouB,QAlBgB,SAAApuB,GACvB,MAAoB,oBAAhBA,EAAGw1C,SAAuC,YAC1Cx1C,EAAGw1C,SAAiB,QACpBx1C,EAAGy1C,SAAiB,UACpBz1C,EAAG01C,QAAgB,UAChB,UAcEC,CAAiB31C,GAXJ,SAAAA,GACtB,OAAIA,EAAG41C,kBAA0B,YAC7B51C,EAAGw1C,UAAYx1C,EAAG61C,WAAmB,QACrC71C,EAAG81C,cAAsB,OACzB91C,EAAG01C,QAAgB,UACnB11C,EAAG+1C,QAAgB,UAChB,UAOAC,CAAgBh2C,IAGnBi2C,GAAmB,SAAAj2C,GACvB,OAAK7K,IAAQ6K,EAAGw1C,UACXrgD,IAAQ6K,EAAG61C,YACT,KAD4B,gBAAN,OAAuB71C,EAAG61C,YADrB71C,EAAGw1C,UCcjCzpD,GAAYC,YAAWC,IAEvBiqD,GAAargD,IAAH,+lBA4BVsgD,GAA8BtgD,IAAH,8IAQ3BugD,GAA6BvgD,IAAH,4IAQ1BwgD,GAAkB,SAAA3uB,GAAE,OACxB4uB,SAAUC,OAAO,IAAIn1B,KAAUsG,EAAG8uB,aAAc9uB,EAAG+uB,YAAYvpB,YAoB3DwpB,GAAgB,eAACD,EAAD,uDAAc,GAAIvF,EAAlB,uDAA4B,GAA5B,OACpBoF,SAAUK,oBAAoBF,EAAYvF,GAAS0F,QAAQ,UAAW,QAElEC,GAAQ,SAAC,GAAkB,IAAhBtqD,EAAe,EAAfA,SACTE,EAAUV,KAChB,OAAO,eAAC0B,GAAD,CAAQrB,UAAWK,EAAQ6P,MAA3B,SAAmC/P,KAGtCuqD,GAAa,SAAC,GAA0B,IAAD,QAAnBpvB,EAAmB,EAAvB1nB,GAAQymB,EAAe,EAAfA,SACtBh6B,EAAUV,KAD2B,EAEf0K,mBAAS,CAAEo4C,QAAS,OAFL,mBAEpC/xC,EAFoC,KAE5BgyC,EAF4B,OAGHr4C,mBAAS,IAHN,mBAGpCuX,EAHoC,KAGtBihC,EAHsB,KAKrC8H,EAA0B,WAAfrvB,EAAG0G,QAEd4oB,EAAM,IAAIC,KAP2B,EASpBz/B,YAAa0+B,GAAY,CAC9ChnC,YAAa,SAAA3Y,GAAI,OAAI2gD,EAAU3gD,MAD1B4gD,EAToC,sBAafngD,YAC1B+/C,EAAWX,GAA6BD,GACxC,CACEl/C,QAAS,gBAAGtC,EAAH,EAAGA,QAAH,OACPs6C,EAAe,OAACt6C,QAAD,IAACA,IAAW,uBAC7BwC,eAAgB,iBAAM,CAAC,mBALpB69C,EAboC,oBAsBrCF,EA/Cc,SAAAptB,GACpB,IAKMG,EAAO/f,OAAOoa,WAAWwF,EAAGG,MAC5BuvB,EAASf,GAAgB3uB,GACzB2vB,EAAcvvC,OAAOoa,WAAWwF,EAAG4vB,gBACnCP,EAA0B,WAAfrvB,EAAG0G,QACdzG,EAAYovB,EAAWjvC,OAAOoa,WAAWwF,EAAGC,WAAa,EAE/D,OAAOovB,EAXkB,SAAClvB,EAAMuvB,EAAQC,EAAaE,GAA5B,OACvB1vB,EAAOuvB,EAASC,EAAcE,EAW5BC,CAAiB3vB,EAAMuvB,EAAQC,EAAa1vB,GAVtB,SAACE,EAAMuvB,EAAQC,GAAf,OACxBD,EAASC,EAAcxvB,EAUrB4vB,CAAkB5vB,EAAMuvB,EAAQC,GAiCjBK,CAAchwB,GAAI1d,QAAQ,GACvC4d,EAC4C,IAAhD9f,OAAOoa,WAAWwF,EAAGE,qBAAsB,GACvCD,EAAYovB,EAAWjvC,OAAOoa,WAAWwF,EAAGC,WAAa,EACzDE,EAAO/f,OAAOoa,WAAWwF,EAAGG,MAC5BuvB,EAASf,GAAgB3uB,GACzBmtB,GAAgBhtB,EAAOuvB,GAAQptC,QAAQ,GACvC2tC,EAAa,YAAQjwB,EAAG+uB,WAAX,cAA2B5B,EAA3B,YAA2CntB,EAAGoJ,UAC3D8mB,EAAWlwB,EAAGkwB,SAAH,WAAkBlwB,EAAGkwB,SAArB,KAAmC,KAE9CC,EAAkBjI,aAAM,IAAIt6C,KAAQ,YAEpCwiD,EAAWpwB,EAAGqwB,oBAAsB,CACxCx8C,KAAK,GAAD,OAAK2+B,GACPxS,EAAGqwB,mBAAmBC,WADpB,YAEC9d,GAAiBxS,EAAGqwB,mBAAmBE,WAC5C7iD,IAAG,UACAsyB,EAAGqwB,mBAAmBG,aACrBC,aACEN,EAAgBnwB,EAAGqwB,mBAAmBG,aACtC,IAAI5iD,aAJP,QAMD,GACF8iD,QAAS1wB,EAAGqwB,mBAAmBK,QAC/BC,aAAc3wB,EAAGqwB,mBAAmBO,eACpCC,qBAAoB,UACjB7wB,EAAGqwB,mBAAmBS,gBACrB1xB,aAAO,aAAPA,CACE+wB,EAAgBnwB,EAAGqwB,mBAAmBS,wBAHxB,QAKlB,IAGElsB,EAAO6D,aAAI,CAAEtK,QAjIE,GAiIyB,IAAIvwB,KAAKoyB,EAAG5yB,UACpD2jD,EAAQ5jC,aAAI,CAAEgR,QAlIC,GAkI0B,IAAIvwB,KAAKoyB,EAAG5yB,UAQrDoiD,EAAS,yCAAG,WAAMwB,GAAN,oBAAAz9B,EAAA,6DACV09B,EADU,aACUjxB,EAAGt4B,GADb,gBAEVwpD,EAAazjD,KAAOujD,GAC1BvjD,KAAM,SAAAoG,GAAI,OAAIy7C,EAAI6B,KAAKt9C,EAAO,OAAQm9C,EAAKn9C,MAAQq9C,GAHnC,SAIM5B,EAAI8B,cAAc,CAAEpkD,KAAM,SAJhC,OAIVkF,EAJU,OAKhBm/C,KAAUC,OAAOp/C,EAAS++C,GALV,2CAAH,sDAQTM,EACJ,uCACE,eAAC,GAAD,iCACA,uBAAM7sD,UAAWK,EAAQ4R,KAAzB,SAAgCk3C,GAAU7tB,QAIxCwxB,EACJ,uBAAK9sD,UAAWK,EAAQ6oD,YAAxB,UACE,sBAAKzpD,MAAO,IAAKX,OAAQ,GAAzB,SACGiK,KACC,SAAA6K,GAAE,eACA,yBACE1P,GAAS,GAAL0P,EAAU,EACdzP,GAAI,EACJC,EAAG,IACHjB,KACEyQ,EAAK0nB,EAAG4tB,YACHngD,IAAW,iBAAX,UAA6BuyB,EAAG8tB,gBAAhC,QAA4C,IAE3CtuD,GADAd,EAED+O,IAAW,iBAAX,UAA6BuyB,EAAG8tB,gBAAhC,QAA4C,IAE7CruD,GADAV,OAKV0O,KAAQ,EAAG,OAGf,eAAClI,GAAD,CACEzC,UAAQ,EACR4B,UAAWM,KAAU,mBAClBD,EAAQ4R,MAAO,GADG,cAElB5R,EAAQ+H,MAAQW,IAAW,iBAAX,UAA6BuyB,EAAG8tB,gBAAhC,QAA4C,KAF1C,IAFvB,SAMG9tB,EAAG4tB,iBAYV,OACE,uBAAKlpD,UAAWK,EAAQ6L,QAAxB,UACE,uBAAKlM,UAAWK,EAAQ0c,IAAxB,UACE,uBAAK/c,UAAWK,EAAQswB,UAAxB,UACE,eAAC,GAAD,wBACA,iCACE,uBAAM3wB,UAAWK,EAAQioD,OAAzB,SACIqC,EAA2B,eAAC,GAAD,IAAhB,eAAC,GAAD,MAEf,gCAAQA,EAAwB,UAAb,mBAIvB,uBAAK3qD,UAAWK,EAAQmoD,aAAxB,UACE,eAAC,GAAD,4BACA,gBAACh/B,GAAA,EAAD,CAAKrrB,QAAQ,OAAO8H,cAAc,MAAlC,UACGq1B,EAAGyxB,eACF,eAAC,GAAD,CACE/sD,UAAWK,EAAQyO,SACnBK,KAAK,QACLlP,KAAM+sD,GACN9sD,YAAa+sD,GAJf,SAKG3xB,EAAGyxB,gBAGPzxB,EAAG4xB,0BAA4B5xB,EAAGqwB,oBACjC,eAAC,GAAD,CACEt8C,iBAAkBhP,EAAQkoD,iBAC1BvoD,UAAWK,EAAQyO,SACnBK,KAAK,OACLlP,KAAMktD,GACNjtD,YAAaktD,GALf,SAME,sBACEptD,UAAWK,EAAQgtD,YACnBtU,IAAG,UAAKwN,GAAL,0BAA0BjrB,EAAG4xB,yBAChCpU,IAAI,OAITxd,EAAGqwB,oBACF,eAAC,GAAD,CACE3rD,UAAWK,EAAQyO,SACnBK,KAAK,OACLlP,KAAMktD,GACNjtD,YAAaktD,GAJf,SAKE,uBAAKptD,UAAWK,EAAQ6kD,eAAxB,UACE,iCACE,iCACE,eAAC,GAAD,mBACA,+BAAMwG,EAASv8C,UAEjB,iCACE,eAAC,GAAD,kBACA,+BAAMu8C,EAAS1iD,SAEjB,iCACE,eAAC,GAAD,sBACA,+BAAM0iD,EAASM,gBAGnB,iCACE,iCACE,eAAC,GAAD,wBACA,+BAAMN,EAASO,kBAEjB,iCACE,eAAC,GAAD,8BACA,+BAAMP,EAASS,kCAMxB7wB,EAAGgyB,yBACF,eAAC,GAAD,CACEn+C,KAAK,MACLlP,KAAMstD,GACNrtD,YAAastD,GAHf,SAIE,sBACEzU,IAAG,UAAKwN,GAAL,+BAA+BjrB,EAAGgyB,yBACrCxU,IAAI,aAMd,uBAAK94C,UAAWK,EAAQooD,aAAxB,UACE,eAAC,GAAD,4BACA,+BAAMuC,EAAS,EAAIO,EAAgB,SAErC,uBAAKvrD,UAAWK,EAAQqoD,WAAxB,UACE,eAAC,GAAD,yBACA,uBAAK1oD,UAAWK,EAAQkE,UAAxB,oBACMmkD,EADN,YACoBptB,EAAGoJ,SADvB,aACoClJ,EADpC,OAEGgwB,GACC,sBAAKxrD,UAAWK,EAAQ8c,KAAxB,SACE,eAAC9b,GAAD,CAAQrB,UAAWK,EAAQ0oD,UAA3B,SAAuCyC,YAK/C,iCACE,eAAC,GAAD,wBACA,+BAAMb,EAAQ,UAAMpvB,EAAN,YAAmBD,EAAGoJ,UAAa,cAGrD,uBAAK1kC,UAAWK,EAAQ+nD,UAAxB,UACE,uBAAKpoD,UAAWK,EAAQykD,QAAxB,UACE,uBAAK9kD,UAAWK,EAAQ4oD,cAAxB,UACE,eAAC,GAAD,uBACElgD,IAAQuyB,EAAG4tB,cACX,eAAChP,GAAD,CAAkBC,eAAgB2S,EAAlC,sCACyBxxB,EAAG4tB,YAD5B,YAKJ,+BACE,eAAC,GAAD,UACGoB,GAAchvB,EAAG+uB,WAAY/uB,EAAGmyB,kBAIvC,uBAAKztD,UAAWK,EAAQwoD,cAAxB,UACE,eAAC,GAAD,6BACA,+BACkB,YAAfvtB,EAAG0G,QACF,MAEA,eAAC,GAAD,UAAkB1G,EAAGoyB,cAI3B,uBAAK1tD,UAAWK,EAAQyoD,UAAxB,UACE,eAAC,GAAD,yBACA,eAAC,GAAD,UAAkBxtB,EAAGt4B,WAGzB,uBAAKhD,UAAWK,EAAQgoD,QAAxB,UACE,uBAAKroD,UAAWK,EAAQmoC,OAAxB,UACGqhB,GAAiBvuB,GAChB,eAAC4e,GAAD,CAAkBC,eAAgB0S,EAAeptD,MAAO,IAAxD,SACE,eAACoB,GAAD,UAAIgpD,GAAiBvuB,OAGvBuxB,EAEc,YAAfvxB,EAAG0G,SAA2C,YAAlBmnB,GAAU7tB,IACrC,eAAC,GAAD,CACE7+B,MAAM,UACNwD,KAAM0tD,GACNztD,YAAa0tD,GACb5tD,UAAWK,EAAQuoD,kBACnBr/C,QAAS,kBACPm5C,EAAU,CACRD,QAAS,cAPf,mCAcJ,iCACE,eAAC,GAAD,4BACA,sBAAKziD,UAAWK,EAAQ2oD,kBAAxB,SACE,eAAC,GAAD,CACEvsD,MAAM,UACNwD,KAAM4tD,GACN3tD,YAAa4tD,GACb9tD,UAAWK,EAAQsoD,gBACnBp/C,QAAS,kBAvOG,SAAC,EAAiC8wB,GAAc,IAAzC0zB,EAAwC,EAA5C/qD,GAAU2I,EAAkC,EAAlCA,SAAUq2B,EAAwB,EAAxBA,QAC7C+oB,EAAa,CACXn/C,UAAW,CAAEmiD,OAAM7tB,OAAMmsB,QAAO1gD,WAAUq2B,UAAS3H,cAqO5BsuB,CAAgBrtB,EAAIjB,IALrC,uCAWN,eAACmnB,GAAD,CACExyC,KAAyB,aAAnB0B,EAAO+xC,QACb9+C,MAAK,2BACLie,aAAcA,EACd6/B,cAAenmB,EAAGqd,YAClBpwC,QAvLGoiD,EAHY,+MACC,oMA0LhBza,YAAa,WACX2S,EAAgB,MAChBH,EAAU,CAAED,QAAS,OACrBmG,EAAkB,CAChBh9C,UAAW,CACT5I,GAAIs4B,EAAGt4B,OAIbmtC,YAAa,WACXuS,EAAU,CAAED,QAAS,OACrBI,EAAgB,aAOX9iD,kBACb2qD,IACA,SAACjkC,EAAMunC,GAAP,OACEvnC,EAAK7S,GAAG5Q,KAAOgrD,EAAKp6C,GAAG5Q,IACvByjB,EAAK7S,GAAGw1C,WAAa4E,EAAKp6C,GAAGw1C,UAC7B3iC,EAAK7S,GAAG61C,aAAeuE,EAAKp6C,GAAG61C,YAC/BN,GAAU1iC,EAAK7S,MAAQu1C,GAAU6E,EAAKp6C,O,UCvb3B,IACbq6C,aAAc,CACZlvD,QAAS,OACTF,OAAQ,OACRzE,gBAAiB,cACjBwE,OAAQ,UACRK,QAAS,GAEXivD,WAAY,CAEVjvD,QAAS,GAEX8d,IAAK,CACHle,OAAQ,CAAC,CAAC,EAAG,QAAS,gBACtBG,aAAc,GAEhBmvD,SAAU,CACRtvD,OAAQ,CAAC,CAAC,EAAG,QAASpF,IACtBgL,UAAW,8BAEb2pD,OAAQ,CACNjoD,WAAY,IAEdkoD,MAAO,CACL9T,cAAe,IAEjB+T,QAAS,CACP1vD,OAAQ,WAEV2vD,KAAM,CACJp+C,KAAM,CAAC,CAAC,EAAG,EAAG,UAEhB8mB,MAAO,kBAAgB,CACrB/wB,aAAc,GACd2a,UAAW,IACXphB,MAHK,EAAGA,MAIR0Q,KAAM,EACNhS,QAAS,OACT8H,cAAe,WAEjB8wB,WAAY,CACVt3B,MAAO,OACPtB,QAAS,OACT8H,cAAe,SACf/G,WAAY,SACZ2F,UAAW,KC/Cf,SAAS,KAA2Q,OAA9P,GAAWnD,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,aACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,4BACJK,UAAW,gCACXJ,OAAQ,UACRC,YAAa,KACC,gBAAoB,SAAU,CAC5CF,GAAI,SACJkB,GAAI,GACJC,GAAI,EACJC,EAAG,IACY,gBAAoB,SAAU,CAC7CpB,GAAI,cACJkB,GAAI,EACJC,GAAI,EACJC,EAAG,IACY,gBAAoB,SAAU,CAC7CpB,GAAI,gBACJkB,GAAI,EACJC,GAAI,EACJC,EAAG,MAGL,SAASoqD,GAAU/qD,EAAMC,GACvB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,MACR+E,QAAS,WACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB6qD,IAChC,ICzDf,SAAS,KAA2Q,OAA9P,GAAW9sD,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,aACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,0BACJK,UAAW,gCACXF,KAAM,UACNF,OAAQ,UACRC,YAAa,KACC,gBAAoB,SAAU,CAC5CF,GAAI,SACJkB,GAAI,GACJC,GAAI,EACJC,EAAG,IACY,gBAAoB,SAAU,CAC7CpB,GAAI,cACJkB,GAAI,EACJC,GAAI,EACJC,EAAG,IACY,gBAAoB,SAAU,CAC7CpB,GAAI,gBACJkB,GAAI,EACJC,GAAI,EACJC,EAAG,MAGL,SAASqqD,GAAQhrD,EAAMC,GACrB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,MACR+E,QAAS,WACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,I,eAAI,GAA0B,aAAiB8qD,ICjCzC9uD,IDkCS,IClCGC,YAAWC,KAEvB6uD,GAAM,SAAC,GAWN,IAAD,EAVJ1rD,EAUI,EAVJA,GACAyrC,EASI,EATJA,SACAtkC,EAQI,EARJA,KACA1K,EAOI,EAPJA,MACAwhD,EAMI,EANJA,QACAkN,EAKI,EALJA,SACAQ,EAII,EAJJA,UACAC,EAGI,EAHJA,SACAC,EAEI,EAFJA,WACAtlD,EACI,EADJA,QAEMlJ,EAAUV,KAEVmvD,EAAavlD,GAAWslD,EACxBE,GAAS,mBACZ1uD,EAAQiuD,QAAUQ,GADN,cAEZzuD,EAAQ0c,KAAM,GAFF,cAGZ1c,EAAQ8tD,SAAWA,GAHP,GAMf,OACE,uBAAKnuD,UAAWK,EAAQ6tD,WAAxB,UACE,sBAAKluD,UAAWO,IAAW,eAAGF,EAAQ+tD,OAASD,GAAmB,IAAPnrD,IAA3D,SACE,gBAAC,GAAD,CACEhD,UAAWO,IAAWwuD,GACtBxlD,QAAS,WACPslD,GAAcF,EAAU3rD,GACxBuG,GAAWA,EAAQY,IAErB/B,MAAO+B,EAAK/B,MACZwZ,aAAczX,EAAKyX,aAPrB,UAQG6sB,EAAShjC,KAAI,WAA4CwM,GAA5C,QAAGq7B,YAAH,MAAU,SAAA1/B,GAAE,cAAIA,QAAJ,IAAIA,OAAJ,EAAIA,EAAI2/B,YAApB,EAAmCnzC,EAAnC,+BACZ,eAAC,GAAD,2BAAkBA,GAAlB,aACGkzC,EAAKnpC,KADC8N,MAIV42C,GACC,eAAC,GAAD,CAAIpvD,MAAOmvD,EAAU18C,UAAU,SAA/B,SACE,0BACE3I,QAAS,kBAAMolD,EAAU3rD,IACzBhD,UAAWK,EAAQ4tD,aAFrB,UAGGE,GAAY,eAAC,GAAD,KACXA,GAAY,eAAC,GAAD,cAMvBU,GAAcV,GACb,sBAAKnuD,UAAWK,EAAQguD,MAAxB,SACE,eAAC,GAAD,CAAIruD,UAAWO,IAAW,eAAGF,EAAQ8tD,SAAWA,IAAhD,SACE,eAAC,GAAD,CAAI1uD,MAAOA,EAAX,SACE,eAACwhD,EAAD,CAASrtC,GAAIzJ,cA2GZ6kD,GAlGG,SAAC,GAYZ,IAAD,IAXJvgB,gBAWI,MAXO,GAWP,MAVJtkC,YAUI,MAVG,GAUH,EATJ82C,EASI,EATJA,QAEA4N,GAOI,EARJ7uD,UAQI,EAPJ6uD,YACAI,EAMI,EANJA,gBACA1lD,EAKI,EALJA,QACAa,EAII,EAJJA,QACA8kD,EAGI,EAHJA,UACAC,EAEI,EAFJA,YACG/uD,EACC,wIAC4BiK,mBAAS4kD,GADrC,mBACGd,EADH,KACaiB,EADb,KAGJlkD,qBAAU,kBAAMkkD,EAAYH,KAAkB,CAACA,IAE/C,IAAMI,EAAYtmD,IAAUA,KAAOA,IAAMA,IAAO,UAA9BA,CAAyC0lC,GACrDmgB,EAAW,IAAMS,EACjB5vD,EAAQ4vD,GAAaR,EAAaD,EAAW,GAE7CvuD,EAAUV,GAAU,CAAEF,UAEtBkvD,EAAY,SAAA3rD,GAChBosD,EAAYpsD,IAAOmrD,EAAW,KAAOnrD,IAGjC2kD,EAAQ,IAAI2H,KAAkB,CAClCC,cAAe,GACfC,YAAY,IAGd,SAASC,EAAT,GAAqD,IAA9Bt4C,EAA6B,EAA7BA,MAAOlV,EAAsB,EAAtBA,IAAKytD,EAAiB,EAAjBA,OAAQ55C,EAAS,EAATA,MACzC,OACE,eAAC,KAAD,CACE6xC,MAAOA,EACPgI,YAAa,EAEbD,OAAQA,EACRE,SAAUz4C,EALZ,SAME,sBAAKrB,MAAOA,EAAZ,SACE,eAAC,GAAD,CACErW,MAAOA,EACPuD,GAAImU,EACJy3C,SAAUA,EACVngB,SAAUA,EACVtkC,KAAMA,EAAKgN,GACX8pC,QAASA,EACTkN,SAAUh3C,IAAUg3C,EACpBQ,UAAWA,EACXE,WAAYA,EACZtlD,QAASA,OAdRtH,GAqBX,OACE,eAACunB,GAAA,EAAD,CAAKrrB,QAAQ,OAAOgS,KAAK,IAAIlK,cAAc,SAA3C,SACE,gBAAC,GAAD,CAAOjG,UAAWK,EAAQ42B,MAA1B,UACE,gBAAC,GAAD,WACGwX,EAAShjC,KAAI,WAA0CwM,GAA1C,IAAGxY,EAAH,EAAGA,MAAOO,EAAV,EAAUA,UAAWkS,EAArB,EAAqBA,UAAWxN,EAAhC,EAAgCA,OAAhC,OACZ,eAAC,GAAD,CAEEjF,MAAOA,EACPO,UAAWA,EACXkS,UAAWA,EAJb,SAKGxN,GAJIuT,MAOR42C,GAAc,eAAC,GAAD,CAAIpvD,MAAOmvD,OAE5B,gBAAC,GAAD,CAAO5uD,UAAWK,EAAQkuD,KAA1B,UACGnkD,GAAW,eAACzJ,GAAD,0BACVyJ,GAAWrB,KAAUoB,IAAS,eAACxJ,GAAD,UAAKuuD,IACrC,eAAC,KAAD,CAAWW,cAAY,EAACC,eAAa,EAArC,SACG,kBACC,eAAC,KAAD,yBAEEh6C,MAAO,CAAEhQ,UAAW,UAAW/G,QAAS,SACpCqB,GAHN,IAIEtB,OAAsB,GAAdqL,EAAKpI,OAAcotD,EAC3B1vD,MAAOA,EACPswD,SAAU5lD,EAAKpI,OACfiuD,UAAWrI,EAAMqI,UACjBP,YAAaA,EACbQ,iBAAkB,GAClBC,yBAA0BvI,iBChKpChoD,GAAYC,YAAWwlD,IAIvB+K,GAAmB1mD,IAAH,swBAwChBsrB,GAAWtrB,IAAH,kEC3DC2mD,GDiEM,SAAC,GAAY,IAAVptD,EAAS,EAATA,GAChB3C,EAAUV,KADe,EAGO0K,mBAAS,GAHhB,mBAGxB8kD,EAHwB,KAGXkB,EAHW,OAIGhmD,mBAAS,IAJZ,mBAIxBimD,EAJwB,KAIbC,EAJa,OAM2BnlC,YACxD+kC,GACA,CACEvkD,UAAW,CACTsH,MA1DgB,EA2DhBvH,SAAU3I,KAXe,mBAMxBwtD,EANwB,YAMTC,EANS,EAMftmD,KAA2BumD,EANZ,EAMGtmD,QANH,EAgBsBH,YAAS8qB,IAAhD47B,EAhBiB,EAgBvBxmD,KAA2BymD,EAhBJ,EAgBLxmD,QACpBiwB,EAAWtxB,IAAO,CAAC,SAAU,mBAAoB4nD,GAEjDvmD,EAAUsmD,GAAaE,GAExBxmD,GAAWqmD,IACdA,EAAWzrB,aAAeyrB,EAAWzrB,aAAa6rB,OAAO,EAAG,IAG9D3lD,qBAAU,WACG,OAAPlI,GACFwtD,MAED,CAACA,EAAOxtD,IAEX,IAYMyrC,EAAW,CACf,CACE/pC,OAAQ,GACRjF,MAAO,EACPwM,KAAM,KACNqnC,KAAM,SAAA1/B,GAAE,MAAoB,YAAfA,EAAGouB,QAAwB,eAAC,GAAD,IAAgB,eAAC,GAAD,MAE1D,CACEt9B,OAAQ,WACRjF,MAAO,IACPwM,KAAM,KACNqnC,KAjB2B,SAAAhY,GAC7B,OAAIA,EAAGw1B,aAAqBx1B,EAAGw1B,aAC3Bx1B,EAAGqwB,mBARkB,SAAAD,GAAa,IAC9BE,EAAwBF,EAAxBE,UAAWC,EAAaH,EAAbG,SAEnB,MAAM,GAAN,OAAU9iD,KAAIA,KAAWA,KAAfA,CAAuB6iD,GAAjC,aAAgDC,GAKdkF,CAAmBz1B,EAAGqwB,oBACjDrwB,EAAGyxB,gBAgBV,CACEroD,OAAQ,OACRjF,MAAO,IACPyS,UAAW,QACXjG,KAAM,KACNqnC,KAAM,SAAA1/B,GAAE,gBAAO8H,OAAOoa,WAAWliB,EAAG6nB,MAA5B,YAAqC7nB,EAAG8wB,YAElD,CACEhgC,OAAQ,SACRjF,MAAO,IACPyS,UAAW,QACXjG,KAAM,KACNqnC,KAAM,SAAA1/B,GAAE,gBACHs2C,SACAC,OAAO,IAAIn1B,KAAUphB,EAAGw2C,aAAcx2C,EAAGy2C,YACzCp0B,SAAS,GAHN,YAGYriB,EAAGy2C,cAEzB,CACE3lD,OAAQ,UACR4uC,KAAM,SAAA1/B,GAAE,OAAIs2C,SAAUK,oBAAoB32C,EAAGy2C,WAAYz2C,EAAG65C,YAC5DztD,UAAWK,EAAQilD,WACnBr5C,KAAM,KACNiG,UAAW,OACXzS,MAAO,KAET,CACEiF,OAAQ,OACR4uC,KAAM,SAAA1/B,GAAE,OAAI2mB,GAAW3mB,EAAGlL,QAAS2xB,EAAU,yBAC7CnoB,UAAW,OACXjG,KAAM,KACNxM,MAAO,KAET,CACEiF,OAAQ,SACR4uC,KAAM,SAAA1/B,GAAE,OAAIu1C,GAAUv1C,IACtB3H,KAAM,KACNxM,MAAO,KAcX,OACE,eAAC,GAAD,CACE0vD,YAAaA,EACb5lD,QAbgB,SAAAoV,GACd2xC,IAAc3xC,EAAE3b,IAClButD,EAAa,IACbF,EAAe,KAEfE,EAAa5xC,EAAE3b,IACfqtD,EAAe,OAQfjmD,QAASA,GAAkB,OAAPpH,EACpBksD,UAAU,yBACVzgB,SAAUA,EACVtkC,KAAMpB,IAAO,CAAC,gBAARA,CAAyB0nD,GAC/BxP,QAASyJ,GACTmE,YAAU,KElKVlvD,GAAYC,YAAWC,IAEvBmxD,GAAWvnD,IAAH,2mBA0ERwnD,GAAW,SAAC,GAA+B,IAAD,YAA5B9mD,EAA4B,EAA5BA,KAAMqd,EAAsB,EAAtBA,QAAS0pC,EAAa,EAAbA,OAC3B7wD,EAAUV,KAEV06B,EAAQ,UAAGtxB,IAAO,CAAC,SAAU,mBAAoBoB,UAAzC,QAAkD,GAE1Dwe,EAAO,UAAG5f,IAAO,CAAC,WAARA,CAAoBoB,UAAvB,QAAgC,GACvCmqB,EAAM,UAAGvrB,IAAO,CAAC,UAARA,CAAmBoB,UAAtB,QAA+B,GACrCs0C,EAAK,UAAG11C,IAAO,CAAC,SAARA,CAAkBoB,UAArB,QAA8B,GAEnCwuC,EAAW,UAAG5vC,IAAO,CAAC,QAARA,CAAiB4f,UAApB,QAAgC,KAC3CwoC,EAAS,UAAGpoD,IAAO,CAAC,YAARA,CAAqB4f,UAAxB,QAAoC,KAEnD,OACE,gBAAC+H,EAAA,EAAD,CAAMnsB,WAAS,EAACvE,UAAWK,EAAQogD,KAAnC,UACE,eAAC/vB,EAAA,EAAD,CAAMvV,MAAI,EAAC+a,GAAI,EAAf,SACE,eAACxF,EAAA,EAAD,CAAMvV,MAAI,EAAC+a,GAAI,GAAf,SACE,uBAAKl2B,UAAWK,EAAQugD,qBAAxB,UACE,gBAACwQ,GAAA,EAAD,CAAa76C,UAAW,eAAC,KAAD,CAAkB3Z,SAAS,UAAnD,UACE,eAAC,IAAD,CAAMiqB,GAAG,aAAa7mB,UAAWK,EAAQwgD,eAAzC,SACE,eAACt/C,GAAD,CAAQnD,UAAQ,EAAC4B,UAAWK,EAAQwX,SAApC,yBAIF,eAACzW,GAAD,CAAKhD,UAAQ,EAAC4B,UAAWK,EAAQwX,SAAjC,SACG8gC,OAGL,eAAC,GAAD,CAAUxuC,KAAMwe,EAAS65B,gBAAiB0O,WAIhD,eAACxgC,EAAA,EAAD,CAAMvV,MAAI,EAAC+a,GAAI,EAAf,SACE,uBAAKl2B,UAAWK,EAAQmN,QAAxB,UACE,uBACExN,UAAWO,IAAWF,EAAQsgD,WAAYtgD,EAAQygD,eADpD,UAEE,eAAC3/C,GAAD,CAAKnB,UAAWK,EAAQwX,SAAxB,SAAmC,YACnC,eAAC,GAAD,CAAS1N,KAAMwe,EAAS0R,SAAUA,OAEpC,uBAAKr6B,UAAWK,EAAQsgD,WAAxB,UACE,eAACx/C,GAAD,CAAKnB,UAAWK,EAAQwX,SAAxB,SAAmC,yBACnC,eAAC,GAAD,CACE2mC,YAAah3B,EACbmB,QAASA,EACT2L,OAAM,OAAEA,QAAF,IAAEA,KACRmqB,MAAOA,OAGX,uBAAKz+C,UAAWK,EAAQgxD,iBAAxB,UACE,eAAClwD,GAAD,CAAKnB,UAAWK,EAAQwX,SAAxB,SAAmC,wBACnC,eAAC,GAAD,CAAc7U,GAAImuD,OAEpB,uBAAKnxD,UAAWK,EAAQsgD,WAAxB,UACE,eAACx/C,GAAD,CAAKnB,UAAWK,EAAQwX,SAAxB,SAAmC,gBACnC,eAAC,GAAD,CAAa1I,KAAM,cAAenM,GAAImuD,gBClJnCF,GD0DM,WACnB,IAAM1jC,EAAWwD,cACXnJ,EAAUC,cAEV7kB,EANa,SAAAokD,GAAI,OAAIA,EAAK3yC,MAAM2yC,EAAKkK,YAAY,KAAO,GAMnDC,CAAahkC,EAASzG,UAJR,EAMKzc,oBAAS,GANd,mBAMlBD,EANkB,KAMTqoB,EANS,OAQCxoB,YAAS+mD,GAAU,CAC3CluC,YAAa,SAAA3Y,GACX,GAAqB,OAAjBA,EAAKwe,QACP,OAAOf,EAAQO,KAAK,+BAEtBsK,GAAW,IAEb7mB,UAAW,CACTD,SAAU3I,GAEZwuD,YAAa,CACX7lD,SAAU3I,EACVyuD,MAAO,UAZHtnD,EARiB,EAQjBA,KAAMqd,EARW,EAQXA,QAoBd,OACGpd,GACC,eAAC,GAAD,CAAUD,KAAMA,EAAMqd,QAASA,EAAS0pC,OAN7B,WACb,OAAOtpC,EAAQO,KAAKoF,EAASzG,c,iDEuGlB4qC,GA5LM,CACnBC,IAAK,CACHC,EAAG,IACHC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,IAAK,KAEPC,IAAK,CACHrU,EAAG,IACHgU,EAAG,IACHC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,IAAK,KAEPE,IAAK,CACHN,EAAG,IACHC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,IAAK,KAEPG,IAAK,CACHN,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,IAAK,IACLI,IAAK,IACLC,IAAM,KAERC,IAAK,CACHP,GAAI,IACJC,IAAK,IACLI,IAAK,IACLG,IAAK,IACLF,IAAM,KAERG,IAAK,CACHZ,EAAG,IACHC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,IAAK,IACLI,IAAK,IACLG,IAAK,KAEPE,IAAK,CACHb,EAAG,IACHC,GAAI,IACJC,GAAI,IACJC,GAAI,KAENW,IAAK,CACHb,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,IAAK,IACLO,IAAK,IACLF,IAAM,KAERM,IAAK,CACHP,IAAK,IACLG,IAAK,IACLF,IAAM,IACNO,IAAM,IACNC,IAAM,IACNC,IAAO,IACPC,IAAO,KAETC,IAAK,CACHlB,GAAI,IACJC,GAAI,IACJC,IAAK,IACLI,IAAK,KAEPa,IAAK,CACHlB,GAAI,IACJC,IAAK,IACLO,IAAK,IACLF,IAAM,IACNQ,IAAM,KAERK,IAAK,CACHb,IAAM,IACNO,IAAM,IACNC,IAAM,IACNC,IAAO,KAETK,IAAK,CACHf,IAAK,IACLG,IAAK,IACLF,IAAM,IACNO,IAAM,IACNC,IAAM,IACNC,IAAO,IACPC,IAAO,KAETK,IAAK,CACHtB,GAAI,IACJC,GAAI,IACJC,IAAK,IACLI,IAAK,IACLG,IAAK,IACLF,IAAM,KAERgB,IAAK,CACHC,EAAG,IACH1B,EAAG,IACHC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,IAAK,KAEPuB,IAAK,CACH3B,EAAG,IACHC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,IAAK,KAEPwB,IAAK,CACH1B,GAAI,IACJC,GAAI,IACJC,IAAK,IACLI,IAAK,IACLG,IAAK,IACLF,IAAM,KAERoB,IAAK,CACH5B,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,IAAK,IACLI,IAAK,IACLG,IAAK,KAEPmB,IAAK,CACH9V,EAAG,IACHgU,EAAG,IACHC,GAAI,IACJE,GAAI,IACJC,IAAK,IACLK,IAAM,KAERsB,IAAK,CACH3B,IAAK,IACLI,IAAK,IACLG,IAAK,IACLF,IAAM,IACNO,IAAM,KAERgB,IAAK,CACHN,EAAG,IACH1V,EAAG,IACHgU,EAAG,IACHC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,IAAK,IACLI,IAAK,IACLG,IAAK,KAEPsB,IAAK,CACHP,EAAG,IACH1B,EAAG,IACHC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,IAAK,KAEP8B,IAAK,CACHhB,IAAO,IACPC,IAAO,IACPgB,IAAO,IACPC,IAAQ,IACRC,IAAQ,IACRC,IAAQ,KAEVC,IAAK,CACHtC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,IAAK,IACLI,IAAK,MCtLHgC,GAAiBrrD,MAAQ,SAACg0C,EAAQ2U,GACtC,IAAM5zC,EAAW/U,IAAO,eAAPA,CAAuBg0C,GACxC,OAAOh0C,IACLA,KAAM,SAAAsP,GAAI,MAAK,CAAEA,KAAMi2B,SAASj2B,GAAOla,QAASka,MAChDtP,KACAA,IAAO,CAAC+U,IAHH/U,CAIL2oD,MCOE2C,GAAe,CACnBllD,KAAM,eACNxD,SAAU,gBAGN2oD,GAAY,CAChBn2D,QAAS,YACTka,KAAM,aAGF6mC,GAA0B,CAAEp6C,WAAY,EAAG0Q,WAAY,UAEvD2pC,GACJ,iCACE,eAAC,GAAD,IACA,uBAAMrpC,MAAOopC,GAAb,wBAIEE,GACJ,iCACE,eAAC,GAAD,IACA,uBAAMtpC,MAAOopC,GAAb,yBAIEqV,GAAU,SAACpqD,EAAMkO,EAAMm8C,GAAb,OAAyB,SAAA5gD,GACvC,IAAKzJ,EAAM,MAAO,GAGlB,IAAMsqD,EAAY1rD,KAAOA,IAAA,OAASyrD,QAAT,IAASA,IAAW,OAAQ5gD,GAAnC7K,CAAwCoB,GAE1D,OAAOsqD,EAAY1rD,IAAOsP,EAAMo8C,GAAa,qBAGzCC,GAAmB,SAAAvqD,GAAI,OAAI,SAAAyJ,GAC/B,OAAKA,EAEE7K,IAAUA,KAAO,MAAOA,IAAMwrD,GAAQpqD,EAAM,YAA5CpB,CAAyD6K,GAFhDA,IAKZ+gD,GAAiB,SAACluC,EAAMmuC,EAAMhT,GAClC,IAAMiT,EAAc9rD,IAAWurD,GAAUj8C,KAArBtP,CAA2B6rD,GACzCE,EAAc/rD,IAAWurD,GAAUj8C,KAArBtP,CAA2B0d,GAE/C,OAAIouC,GAAeC,GAAe/rD,KAAS6rD,GAAQ,EAC1ChT,EAAS74C,KAASA,KAASurD,GAAUj8C,MAA5BtP,CAAmC6rD,IAGjDC,IAAgBC,EACXlT,EAAS,CAAC0S,GAAUj8C,YAG7BupC,EAASgT,IA8FLG,GAAa,SAAAj3C,GAAQ,MAAI,CAC7B,CACEpZ,OAAQy6C,GACRhwC,KAAM,SACNhR,QAAS,UACTsB,MAAO,IACPwM,KAAM,KACNinC,aAAc,QACd5+B,MAAO+C,GACP3E,OAAQ,IACRT,KAAMA,GACNuhC,WAAY,CACVl8B,cAAe,IAGnB,CACE5S,OAAQ06C,GACRjwC,KAAM,UACNhR,QAAS,WACTsB,MAAO,IACPwM,KAAM,KACNinC,aAAc,QACd5+B,MAAO+C,GACP3E,OAAQ,IACRT,KAAMA,GACNuhC,WAAY,CACVl8B,cAAe,IAGnB,CACEnI,KAAM,WACNhR,QAAS,YACTsB,MAAO,IACPwM,KAAM,KACN2/B,aAAc,eACd15B,UAAW,SACXghC,aAAc,QACd5+B,MAAO+C,GACP3E,OAAQoL,EACR7L,KAAMA,GACNuhC,WAAY,CACVl8B,cAAe,IAGnB,CACEnI,KAAM,YACNhR,QAAS,aACTsB,MAAO,IACPwM,KAAM,KACN2/B,aAAc,eACd15B,UAAW,SACXghC,aAAc,QACd5+B,MAAO+C,GACP3E,OAAQoL,EACR7L,KAAMA,GACNuhC,WAAY,CACVl8B,cAAe,MAKf+nC,GAAY,SAAC2V,EAASl3C,EAAUm3C,GAGpC,OA3JyB,SAACC,EAASp3C,EAAUm3C,GAC7C,IAAME,EAAc,CAACd,IAAce,OAAOF,EAAQ,CAAC,cAC7CG,EAAaH,EAAQ,CAAC,qBACtBI,EAAa,CAAChB,IAAWc,OAC7BrsD,KAAM,SAAA6K,GAAE,MAAK,CAAEzV,QAASyV,EAAGyE,KAAMA,KAAMzE,EAAGyE,QAA1CtP,CAAA,OAAmDssD,QAAnD,IAAmDA,IAAc,KAGnE,MAAO,CACL,CACElmD,KAAM,UACN1P,MAAO,IACPwM,KAAM,KACNqnC,KAAMihB,GAAQY,EAAa,OAAQ,YACnC7gD,MAAOtB,GACPwgC,WAAY,CACVrgC,QAASgiD,EACT/hD,UAAW,WACXE,UAAW,SAGf,CACEnE,KAAM,mBACN1P,MAAO,IACPwM,KAAM,KACNqnC,KAAMohB,GAAiBY,GACvBhhD,MAAOtB,GACPwgC,WAAY,CACVrgC,QAASmiD,EACTliD,UAAW,OACXE,UAAW,UACXD,UAAU,EACVd,SAAUoiD,GACVnhD,gBAAgB,IAGpB,CACE9O,OAAQy6C,GACRhwC,KAAM,SACNhR,QAAS,UACTsB,MAAO,IACP6U,MAAO+C,GACPnF,UAAW,QACXQ,OAAQ,IACRT,KAAMA,GACNuhC,WAAY,CACVl8B,cAAe,IAGnB,CACE5S,OAAQ06C,GACRjwC,KAAM,UACNhR,QAAS,WACTsB,MAAO,IACP6U,MAAO+C,GACPnF,UAAW,QACXQ,OAAQ,IACRT,KAAMA,GACNuhC,WAAY,CACVl8B,cAAe,IAGnB,CACEnI,KAAM,WACNhR,QAAS,YACTsB,MAAO,IACP6U,MAAO+C,GACPu0B,aAAc,eACd15B,UAAW,QACXQ,OAAQoL,EACR7L,KAAMA,GACNuhC,WAAY,CACVl8B,cAAe,IAGnB,CACEnI,KAAM,YACNhR,QAAS,aACTsB,MAAO,IACPmsC,aAAc,eACd15B,UAAW,SACXghC,aAAc,QACd5+B,MAAO+C,GACP3E,OAAQoL,EACR7L,KAAMA,GACNuhC,WAAY,CACVl8B,cAAe,KAsEdgoC,CAFSv2C,IAAOA,KAAMisD,GAEMl3C,IAG/By3C,GAAa,IACbC,GAAY,SAAAzY,GAChB,IAAM0B,EAAQ2V,GAAerX,EAAQ0Y,IAAehqD,KAAI,SAAAmI,GAAE,OACxD06B,SAAS16B,EAAGyE,SAERq9C,EAAc3sD,KAAU01C,GAASvG,GAAexjC,KAAKC,IAAL,MAAAD,KAAI,YAAQ+pC,IAElE,OAAOt8B,OAAaC,MAAM,CACxBhG,OAAQ+F,OACLjS,MAAM,WACNihB,IAAI,GACJxc,IAAI4gD,IACJlzC,WACHrG,QAASmG,OACNjS,MAAM,YACNihB,IAAI,GACJxc,IAAI4gD,IACJlzC,WACHu9B,SAAUz9B,OACPjS,MAAM,aACNihB,IAAI,GACJxc,IAAI+gD,GACJrzC,WACHw9B,UAAW19B,OACRjS,MAAM,cACNihB,IAAI,GACJxc,IAAI+gD,GACJrzC,cAyBDszC,GAAqB,SAACj+C,EAAQk+C,EAAS7Y,GAC3C,IAAMmY,EAAUnsD,IAAOA,KAAM6sD,GACvBT,EAAc,CAACd,IAAce,OAAOF,EAAQ,CAAC,cAC7CG,EAAaH,EAAQ,CAAC,qBACtBI,EAAa,CAAChB,IAAWc,OAC7BrsD,KAAM,SAAA6K,GAAE,MAAK,CAAEzV,QAASyV,EAAGyE,KAAMA,KAAMzE,EAAGyE,QAA1CtP,CAAA,OAAmDssD,QAAnD,IAAmDA,IAAc,KAG7D5W,EAAQ2V,GAAerX,EAAQ0Y,IAAehqD,KAAI,SAAAmI,GAAE,OACxD06B,SAAS16B,EAAGyE,SAERq9C,EAAc3sD,KAAU01C,GAASvG,GAAexjC,KAAKC,IAAL,MAAAD,KAAI,YAAQ+pC,IAElE,OAAOt8B,OAAaC,MAAM,CACxBuG,QAASxG,OACN0zC,WACA3lD,MAAM,WACNmS,WACHiT,iBAAkBnT,OACfG,KAAK,CACJA,KADI,WACI,IAAD,EACqChgB,KAAKotD,OAAvC1sD,EADH,EACGA,GAAI2lB,EADP,EACOA,QAAS2M,EADhB,EACgBA,iBACfwgC,EA3CO,SAAC9yD,EAAI2lB,EAASjR,GACnC,IAAMq+C,EAAYhtD,IAAO,oBACnBitD,EAAejtD,IAAO,WAEtBktD,EAAoBltD,IAASA,IAAS,UAAW4f,GAA7B5f,CAAuC2O,GAC3Dw+C,EAAgBntD,KAAOA,IAAS,KAAM/F,GAAtB+F,CAA2B2O,GAE3Cy+C,EAAkBJ,EAAUG,GAC5BE,EAAoBJ,EAAaE,GAEjCJ,EAAc/sD,IAClBA,KACAA,KACAA,IAAMgtD,GAHYhtD,CAIlBktD,GAEF,OAAIttC,IAAYytC,EAAmB,OAAON,QAAP,IAAOA,IAAe,GAElD/sD,KAAa+sD,EAAaK,GAyBLE,CAAerzD,EAAI2lB,EAASjR,GAE1C4+C,EAAgB3tC,IAAY0rC,GAAa1oD,SACzC4qD,EAAaxtD,IAAWurD,GAAUj8C,KAAMid,GAC9C,GAAIghC,GAAiBC,EACnB,OAAOj0D,KAAKk0D,YAAY,CACtBjuD,QAAQ,+EAIZ,IAAMkuD,EAAW1tD,KAAe+sD,EAAaxgC,GAC7C,IAAKvsB,KAAU0tD,GAAW,CACxB,IAAMC,EAAQhC,GAAiBY,EAAjBZ,CAA6B+B,GACrCE,EAAcpC,GAClBY,EACA,OACA,WAHkBZ,CAIlB5rC,GAEIpgB,EAAO,UAAMmuD,EAAN,2CAA8CC,GAE3D,OAAOr0D,KAAKk0D,YAAY,CAAEjuD,YAE5B,OAAO,KAGV2H,MAAM,qBACNmS,WACA8O,IAAI,GACP/U,OAAQ+F,OACLjS,MAAM,WACNihB,IAAI,GACJxc,IAAI4gD,IACJlzC,WACHrG,QAASmG,OACNjS,MAAM,YACNihB,IAAI,GACJxc,IAAI4gD,IACJlzC,WACHu9B,SAAUz9B,OACPjS,MAAM,aACNihB,IAAI,GACJxc,IAAI+gD,GACJrzC,WACHw9B,UAAW19B,OACRjS,MAAM,cACNihB,IAAI,GACJxc,IAAI+gD,GACJrzC,cAIDu0C,GAAW,CACfx6C,OAAQ,GACRJ,QAAS,GACT4jC,SAAU,GACVC,UAAW,IAGPgX,GAAoB,CACxBluC,QAAS,KACT2M,iBAAkB,GAClBlZ,OAAQ,GACRJ,QAAS,GACT4jC,SAAU,GACVC,UAAW,IAGPiX,GAAW,SAAC,GAAmC,IAAjCnuC,EAAgC,EAAhCA,QAAS2M,EAAuB,EAAvBA,iBACrBghC,EAAgB3tC,IAAY0rC,GAAa1oD,SACzC4qD,EAAaxtD,KAAWurD,GAAUj8C,KAAMid,GAE9C,OAAIghC,GAAiBC,EAAmB,EACpCD,EAAsB,EACtBC,EAAmB,EAEhB,GAGHQ,GAAoB,SAAC1M,EAAY1+C,EAAUqrD,EAAW1iC,GAC1D,MAAO,CACLurB,UAAWvrB,EAAOurB,UAClBD,SAAUtrB,EAAOsrB,SACjB5jC,QAASsY,EAAOtY,QAChBI,OAAQkY,EAAOlY,OACfuM,QAAShd,EACT2pB,iBAAkB,CAAC+0B,GACnB/Y,QAAS0lB,EACTh0D,GAAI8zC,iBAsCFmgB,GAA2B,SAAAla,GAC/B,IAAM0B,EAAQ2V,GAAerX,EAAQ0Y,IAAehqD,KAAI,SAAAmI,GAAE,OACxD06B,SAAS16B,EAAGyE,SAERq9C,EAAc3sD,KAAU01C,GAASvG,GAAexjC,KAAKC,IAAL,MAAAD,KAAI,YAAQ+pC,IAElE,OAAOt8B,OAAaC,MAAM,CACxBuG,QAASxG,OACNjS,MAAM,WACNmS,WACHiT,iBAAkBnT,OACfjS,MAAM,mBACNmS,WACA8O,IAAI,GACP/U,OAAQ+F,OACLjS,MAAM,WACNihB,IAAI,GACJxc,IAAI4gD,IACJlzC,WACHrG,QAASmG,OACNjS,MAAM,YACNihB,IAAI,GACJxc,IAAI4gD,IACJlzC,WACHu9B,SAAUz9B,OACPjS,MAAM,aACNihB,IAAI,GACJxc,IAAI+gD,GACJrzC,WACHw9B,UAAW19B,OACRjS,MAAM,cACNihB,IAAI,GACJxc,IAAI+gD,GACJrzC,cAID60C,GAAe,SAACljC,EAAKyf,GACzB,MAAO,CAAEh3C,MAAOu3B,EAAIsd,QAAUt3C,EAAeE,KAGzCi9D,GAAkB,SAACnC,EAASl3C,EAAUm3C,GAC1C,IAAMC,EAAUnsD,IAAOA,KAAMisD,GAE7B,OAAOoC,GAAyBlC,EAASp3C,EAAU84C,KAG/CQ,GAA2B,SAAClC,EAASp3C,EAAU84C,GACnD,IAAMzB,EAAc,CAACd,IAAce,OAAOF,EAAQ,CAAC,cAEnD,MAAO,CACL,CACE/lD,KAAM,UACN1P,MAAO,IACPwM,KAAM,KACNqnC,KAAMihB,GAAQY,EAAa,OAAQ,YACnCliB,UAAU,GAEZ,CACE9jC,KAAM,mBACNhR,QAAS,kBACTsB,MAAO,IACP6zC,KAAMvqC,IAAO,GACbkD,KAAM,KACNgnC,UAAU,GAEZ,CACEvuC,OAAQy6C,GACRhwC,KAAM,SACNhR,QAAS,UACTsB,MAAO,IACP6U,MAAO+C,GACPnF,UAAW,QACXQ,OAAQ,IACR0gC,UAAW,SAAApf,GAAG,OAAIkjC,GAAaljC,IAC/Bwf,WAAY,CACVl8B,cAAe,IAGnB,CACE5S,OAAQ06C,GACRjwC,KAAM,UACNhR,QAAS,WACTsB,MAAO,IACP6U,MAAO+C,GACPnF,UAAW,QACXmlD,WAAW,EACX3kD,OAAQ,IACR0gC,UAAW,SAAApf,GAAG,OAAIkjC,GAAaljC,IAC/Bwf,WAAY,CACVl8B,cAAe,IAGnB,CACEnI,KAAM,WACNhR,QAAS,YACTsB,MAAO,IACP6U,MAAO+C,GACPu0B,aAAc,eACd15B,UAAW,QACXQ,OAAQoL,EACRs1B,UAAW,SAAApf,GAAG,OAAIkjC,GAAaljC,IAC/Bwf,WAAY,CACVl8B,cAAe,IAGnB,CACEnI,KAAM,YACNhR,QAAS,aACTsB,MAAO,IACP6U,MAAO+C,GACPu0B,aAAc,eACd15B,UAAW,QACXQ,OAAQoL,EACRs1B,UAAW,SAAApf,GAAG,OAAIkjC,GAAaljC,IAC/Bwf,WAAY,CACVl8B,cAAe,M,UC3hBjBggD,GAAY,SAACpC,EAASqC,EAAOhlD,GAAgC,IAAtB0iD,EAAqB,uDAAP,GACzD,OAAOlsD,KACL,SAAA6K,GAAE,OAAI7K,IAAW6K,EAAGzE,KAAMooD,KAC1BC,GAAUtC,EAAS3iD,EAAU0iD,KAI3BuC,GAAY,SAACtC,EAAS3iD,GAAgC,IAAtB0iD,EAAqB,uDAAP,GAC5CV,EAAU,SAACpqD,EAAMkO,EAAMm8C,GAAb,OAAyB,SAAA5gD,GACvC,OAAKzJ,EAEEpB,IACLA,IAAOsP,GACPtP,KAAOA,IAAA,OAASyrD,QAAT,IAASA,IAAW,OAAQ5gD,IAF9B7K,CAGLoB,GALgB,KAQduqD,EAAmB,SAAAvqD,GAAI,OAAI,SAAAyJ,GAC/B,OAAKA,EAEE7K,IAAUA,KAAO,MAAOA,IAAMwrD,EAAQpqD,EAAM,SAA5CpB,CAAsD6K,GAF7CA,IAKZ6jD,EAAoB1uD,KAAM,SAAA2uD,GAAQ,OAAIA,EAAS/uC,UAASssC,GAExD0C,EAAmB,SAAA/jD,GAAE,OACzB7K,MAAiB,SAACxD,EAAGF,GAAJ,OAAUE,EAAEoG,WAAatG,IAAGuO,EAAI6jD,IAE7CtC,EAAcD,EAAQ,CAAC,aACvB0C,EAAc1C,EAAQ,CAAC,cACvB2C,EAAe3C,EAAQ,CAAC,eACxB4C,EAAe5C,EAAQ,CAAC,cACxBI,EAAaJ,EAAQ,CAAC,qBACtB6C,EAAgBn/B,GAEhBo/B,EAAiB,SAAApkD,GACrB,IAAM+U,EAAU5f,KAAOA,IAAS,WAAY6K,EAAG+U,SAA/B5f,CAAyCosD,GACzD,OAAOxsC,EAAU,CAACA,GAAW,IAG/B,MAAO,CACL,CACExZ,KAAM,UACN1P,MAAO,IACPwM,KAAM,KACNqnC,KAAMihB,EAAQY,EAAa,OAAQ,YACnC7gD,MAAOtB,GACPwgC,WAAY,CACVrgC,QAAS,SAAAS,GAAE,OACT7K,KAASivD,EAAepkD,GAAxB7K,CAA6B4uD,EAAiBxC,KAChD/hD,UAAW,WACXE,UAAW,SAGf,CACEnE,KAAM,UACN1P,MAAO,IACPwM,KAAM,KACNqnC,KAAMihB,EAAQqD,EAAa,WAC3BtjD,MAAOtB,GACPwgC,WAAY,CACVrgC,QAASykD,EACTxkD,UAAW,OACXE,UAAW,YAGf,CACEnE,KAAM,eACN1P,MAAO,IACPwM,KAAM,KACNqnC,KAAMihB,EAAQsD,EAAc,QAC5BvjD,MAAOtB,GACPwgC,WAAY,CACVrgC,QAAS0kD,EACTzkD,UAAW,OACXE,UAAW,SAGf,CACEnE,KAAM,YACN1P,MAAO,IACPwM,KAAM,KACNqnC,KAAMohB,EAAiBoD,GACvBxjD,MAAOtB,GACPwgC,WAAY,CACVrgC,QAAS2kD,EACT1kD,UAAW,OACXE,UAAW,UACXD,UAAU,IAGd,CACElE,KAAM,mBACN1P,MAAO,IACPwM,KAAM,KACNqnC,KAAMohB,EAAiBY,GACvBhhD,MAAOtB,GACPwgC,WAAY,CACVrgC,QAASmiD,EACTliD,UAAW,OACXE,UAAW,OACXD,UAAU,EACVJ,aAAc,KACdV,aAGJ,CACEpD,KAAM,WACN1P,MAAO,IACPwM,KAAM,KACNqnC,KAAMihB,EAAQwD,EAAe,SAC7BzjD,MAAOtB,GACPwgC,WAAY,CACVrgC,QAAS4kD,EACT3kD,UAAW,OACXE,UAAW,YAMbyhD,GAAa,SAACC,EAASiD,GAC3B,IAAM/C,EAAUnsD,IAAOA,KAAMisD,GAE7B,OAAOsC,GACLpC,EACA,CAAC,UAAW,eAAgB,YAAa,mBAAoB,YAC7D+C,OACAxoD,IAIE4vC,GAAY,SAAC2V,EAASC,EAAagD,GACvC,IAAM/C,EAAUnsD,IAAOA,KAAMisD,GAE7B,OAAOsC,GACLpC,EACA,CAAC,UAAW,UAAW,YAAa,oBACpC+C,EACAhD,IAIEiD,GAAe/1C,OAAaC,MAAM,CACtC4pC,QAAS7pC,OACNjS,MAAM,WACNmS,WACHgiB,aAAcliB,OACXjS,MAAM,iBACNmS,WACH81C,UAAWh2C,OACRjS,MAAM,aACNmS,WACA8O,IAAI,GACJxc,IAAI,GACP2gB,iBAAkBnT,OACfjS,MAAM,qBACNmS,WACA8O,IAAI,GACPkJ,SAAUlY,OACPjS,MAAM,YACNmS,aAGC+1C,GAAkBj2C,OAAaC,MAAM,CACzCuG,QAASxG,OACNjS,MAAM,WACNmS,WACH2pC,QAAS7pC,OACNjS,MAAM,WACNmS,WACH81C,UAAWh2C,OACRjS,MAAM,aACNmS,WACA8O,IAAI,GACJxc,IAAI,GACP2gB,iBAAkBnT,OACfjS,MAAM,qBACNmS,WACA8O,IAAI,KAGHknC,GAAiB,CACrBrM,QAAS,GACT3nB,aAAc,GACd8zB,UAAW,GACX7iC,iBAAkB,GAClB+E,SAAU,IAGNw8B,GAAoB,CACxBluC,QAAS,GACTqjC,QAAS,GACTmM,UAAW,GACX7iC,iBAAkB,IC5Ldj1B,GAAU,CACdi4D,aAAc,CACZ77D,MAAOlC,KAGLg+D,GAAc,SAAAjwD,GAAI,OAAIS,KAAS,SAAA6K,GAAE,OAAIA,EAAG4kD,QAAUlwD,MAClDmwD,GAAc,SAAC,GAAD,IAAGz1D,EAAH,EAAGA,GAAH,OAAY+F,KAAS,SAAA6K,GAAE,OAAI7K,KAAW/F,EAAX+F,CAAe6K,EAAG8kD,aAE3DC,GAAex2C,OAAaC,MAAM,CACtCw2C,OAAQz2C,OAAaE,WACrBw2C,OAAQ12C,OAAaE,WACrBy2C,SAAU32C,OAAaE,WACvB02C,SAAU52C,OAAaE,WACvB22C,cAAe72C,OACZs7B,UACAp7B,SAAS,uCACT8O,IAAI,GACJxc,IAAIujC,IACJ70C,UAAUuY,MAGTq9C,GAAuB92C,OAAaC,MAAM,CAC9C82C,YAAa/2C,OAAaE,WAC1B82C,cAAeh3C,OAAaE,WAC5B+2C,yBAA0Bj3C,SAGtBi2C,GAAkBj2C,OAAaC,MAAM,CACzC82C,YAAa/2C,OAAaE,WAC1B82C,cAAeh3C,OAAaE,WAC5Bg3C,eAAgBl3C,OAAaE,WAC7B+2C,yBAA0Bj3C,SAGtBm3C,GAAoB,CACxBJ,YAAa,GACbC,cAAe,GACfE,eAAgB,GAChBD,yBAA0B,MAGtBG,GAAoB,SAAA3lD,GAAE,OAC1B7K,IAAUA,IAAO,CAAC,YAAaA,KAAOA,IAAS,OAAQ6K,IAAvD7K,CAA6DywD,KAEzDA,GAAa,CACjB,CAAEr7D,QAAS,OAAQka,KAAM,OACzB,CAAEla,QAAS,UAAWka,KAAM,KAC5B,CAAEla,QAAS,OAAQka,KAAM,OACzB,CAAEla,QAAS,OAAQka,KAAM,OACzB,CAAEla,QAAS,OAAQka,KAAM,QAGrBohD,GAA4B,CAChC,CAAEt7D,QAAS,OAAQka,KAAM,QACzB,CAAEla,QAAS,OAAQka,KAAM,SAGrBqhD,GAAwB3wD,MAAQ,SAACmhD,EAAWt2C,GAChD,GAAI7K,IAAQ6K,EAAGylD,gBAAiB,OAAOI,GACvC,IAAMtmD,EAAUpK,KAAOmhD,EAAUyP,kBAAkB/lD,EAAGylD,gBAAgBO,OACtE,OAAO7wD,KAAM,SAAAmO,GACX,MAAO,CAAEmB,KAAMnB,EAAQ/Y,QAAS+Y,KAD3BnO,CAEJoK,MA4CC0mD,GAAqC,SACzCC,EACA9B,EACA9N,GAEA,MAAO,CACL,CACE/6C,KAAM,iBACN1P,MAAO,IACP6U,MAAOtB,GACPwgC,WAAY,CACVrgC,QAAS,SAAAS,GAAE,OAAI7K,KAAS+wD,EAAiB9B,EAAepkD,KACxDX,aAAc,KACdG,UAAW,OACXE,UAAW,WAEbrH,KAAM,MAER,CACEkD,KAAM,cACNlD,KAAM,KACN8yC,QAAQ,EACRt/C,MAAO,IACP6U,MAAOtB,GACPwgC,WAAY,CACVrgC,QAASumD,GAAsBxP,GAC/B92C,UAAW,OACXE,UAAW,YAGf,CACEnE,KAAM,2BACNlD,KAAM,KACN8yC,QAAQ,EACRt/C,MAAO,IACP6zC,KAAM,SAACnT,EAAG45B,GACR,MAA2B,QAAvBA,EAAIV,eACC,uBAAMvjD,MAAOzV,GAAQi4D,aAArB,gBACFyB,EAAIX,yBAA2B,MAAQ,MAEhD9kD,MAAOuB,GACPo9B,SAAU,SAAAr/B,GAAE,MAA0B,QAAtBA,EAAGylD,iBAErB,CACElqD,KAAM,gBACNzK,OAAO,cACPuH,KAAM,KACN8yC,QAAQ,EACRt/C,MAAO,IACP6zC,KAAMimB,GACNjlD,MAAOtB,GACPwgC,WAAY,CACVrgC,QAASqmD,GACTpmD,UAAW,OACXE,UAAW,cAMb0mD,GAAc,SAAC1kC,EAAkB2kC,EAAU1nD,GAA8B,IAApBmsC,EAAmB,wDACtEwb,EAAcxb,EAAS,GAAK,EAC5Byb,EAAqB,SAAAvmD,GAKzB,OAJwB7K,IACtBA,IAAO,CAAC,YACRA,KAAOA,IAAS,OAAQ6K,IAFF7K,CAGtBusB,IAGEnhB,EAAgB,SAAA7L,GAAI,OAAIiwD,GAAYjwD,EAAZiwD,CAAkB0B,GAAY,KAEtDG,EAAiB,SAAA9xD,GAAI,OAAI,SAAAsL,GAAE,OAC/B7K,IACEA,IAAO,WACPA,KAAOA,IAAS,OAAQ6K,IAF1B7K,CAGEoL,EAAc7L,MAEZ+xD,EAAatxD,MAAQ,SAACmO,EAAQtD,GAAT,OACzB6kD,GAAY7kD,EAAZ6kD,CAAgBtkD,EAAc+C,OAGhC,MAAO,CACL,CACE/H,KAAM,KACNzK,OAAQ,iBACRjF,MAAO,IAAMy6D,EACb5mB,KAAM6mB,EACNluD,KAAM,KACNgnC,UAAU,GAEZ,CACE9jC,KAAM,SACNlD,KAAM,KACN8yC,QAAQ,EACRzL,KAAM8mB,EAAe,UACrB36D,MAAO,IAAMy6D,EACb5lD,MAAOtB,GACPwgC,WAAY,CACVrgC,QAASknD,EAAW,UACpBjnD,UAAW,OACXE,UAAW,UACXL,aAAc,OAGlB,CACE9D,KAAM,SACNlD,KAAM,KACN8yC,QAAQ,EACRzL,KAAM8mB,EAAe,UACrB36D,MAAO,IAAMy6D,EACb5lD,MAAOtB,GACPwgC,WAAY,CACVrgC,QAASknD,EAAW,UACpBjnD,UAAW,OACXE,UAAW,UACXL,aAAc,KACdV,aAGJ,CACEpD,KAAM,WACNlD,KAAM,KACN8yC,QAAQ,EACRzL,KAAM8mB,EAAe,YACrB36D,MAAO,IAAMy6D,EACb5lD,MAAOtB,GACPwgC,WAAY,CACVrgC,QAASknD,EAAW,YACpBjnD,UAAW,OACXE,UAAW,UACXL,aAAc,KACdV,aAGJ,CACEpD,KAAM,WACNzK,OAAQ,sBACRuH,KAAM,KACN8yC,QAAQ,EACRzL,KAAM8mB,EAAe,YACrB9lD,MAAOtB,GACPvT,MAAO,IAAMy6D,EACb1mB,WAAY,CACVrgC,QAASknD,EAAW,YACpBjnD,UAAW,OACXE,UAAW,UACXL,aAAc,KACdV,aAGJ,CACEpD,KAAM,gBACNzK,OAAQ,eACRuH,KAAM,KACN8yC,QAAQ,EACRzL,KAAM,SAAC1/B,EAAImJ,GAAL,MACO,QAAXA,EAAI/Z,GAAe,uBAAM8S,MAAOzV,GAAQi4D,aAArB,SAAoC1kD,IAAaA,GACtEU,MAAO+C,GACP5X,MAAO,IAAMy6D,EACb1mB,WAAY,CACVl8B,cAAe,GAEjB27B,SAAU,SAAAl2B,GAAG,MAAe,QAAXA,EAAI/Z,OChRrBrD,GAAYC,YAAW,CAC3BiY,SAAU,CACRpb,MAAO/B,GACPmK,UAAW5I,GACXiK,aAAcjK,IAEhBq+D,eAAgB,CACdz1D,UAAW5I,MAcAs+D,GAVEx6D,gBAAK,YAA8C,IAAD,EAA1CI,EAA0C,EAA1CA,SAAUH,EAAgC,EAAhCA,UAAWs6D,EAAqB,EAArBA,eACtCj6D,EAAUV,KACVW,GAAU,mBACbD,EAAQwX,UAAW,GADN,cAEbxX,EAAQi6D,eAAiBA,GAFZ,GAKhB,OAAO,eAACn5D,GAAD,CAAKnB,UAAWO,IAAWD,EAAYN,GAAvC,SAAoDG,OClBvDR,GAAYC,YCRH,CACb46D,QAAS,CACPt0D,aAAc,IAEhBu0D,cAAe,CACbt8D,QAAS,OACTe,WAAY,UAEdw7D,aAAc,CACZr8D,OAAQ,CAAC,CAAC,GAAI,GAAI,GAAI,ODgBXs8D,GAfC,SAAC,GAAgC,IAA9BvyD,EAA6B,EAA7BA,MAAOjI,EAAsB,EAAtBA,SAAUwD,EAAY,EAAZA,MAC5BtD,EAAUV,KAChB,OACE,uBAAKK,UAAWK,EAAQm6D,QAAxB,WACI72D,GAASyE,IACT,uBAAKpI,UAAWK,EAAQo6D,cAAxB,UACE,eAAC,GAAD,CAAUz6D,UAAWK,EAAQq6D,aAA7B,SAA4C/2D,IAC3CyE,GAAS,eAAC,GAAD,wCAGbjI,MEPDR,GAAYC,YAAWC,IACvB+6D,GAAsBh7D,YAAW,CACrCi7D,aAAc,CACZp7D,MAAO,UAILs1B,GAAWtrB,IAAH,kEAKRsY,GAActY,IAAH,4GAgDF81C,I,MAAAA,GA1Cf,YAAgD,IAAzB/tC,EAAwB,EAAxBA,SAAUspD,EAAc,EAAdA,WACzBz6D,EAAUV,KAERwK,GADkBywD,KACT3wD,YAAS8qB,IAAlB5qB,MAHqC,EAKxBS,YAAYmX,GAAa,CAC5Ce,YAAag4C,IADRrb,EALsC,oBAcvC3hC,EAAW/U,IAAO,CAAC,gBAARA,CACfsrB,GAAcR,GAAdQ,CAAA,OAAiClqB,QAAjC,IAAiCA,OAAjC,EAAiCA,EAAMmqB,SAGnCyoB,EAAS1oB,GAAcR,GAAdQ,CAAA,OAAiClqB,QAAjC,IAAiCA,OAAjC,EAAiCA,EAAMmqB,QAEtD,OACE,uBAAKt0B,UAAWK,EAAQ6L,QAAxB,UACE,eAAC,GAAD,CAAcvI,MAAM,gBACpB,eAAC,GAAD,UACE,eAAC,GAAD,CACEA,MAAM,gBACNmwC,QAAQ,KACRe,SAAO,EACP1lC,KAAK,cACL6L,cAAe47C,GACfloB,YAAU,EACV8D,SAAUhhC,EACVsjC,KAvBK,SAAAlhC,GACX,IAAM0gB,EAASG,GAAY,cAAZA,CAA2B7gB,EAAG+rC,YAAY,IACzD,OAAOF,EAAW,CAAE7zC,UAAW,CAAE0oB,aAsB3BpS,iBAAkBszC,GAAUzY,GAC5B5yC,KAAM,GACNskC,SAAUsmB,GAAWj3C,WC/CzBne,GAAYC,YAAWC,IAEvBk1B,GAAWtrB,IAAH,uVA2BRsY,GAActY,IAAH,4GAmDFsxD,I,MAAAA,GA7Cf,YAA4C,IAAzBvpD,EAAwB,EAAxBA,SAAUspD,EAAc,EAAdA,WACrBz6D,EAAUV,KACRwK,EAASF,YAAS8qB,IAAlB5qB,KAFiC,EAIpBS,YAAYmX,GAAa,CAC5Ce,YAAag4C,IADRrb,EAJkC,oBAanCnqB,EAAmB0lC,IACnB,OAAJ7wD,QAAI,IAAJA,OAAA,EAAAA,EAAMmqB,SAAU,IACZ,OAAJnqB,QAAI,IAAJA,OAAA,EAAAA,EAAMmrB,mBAAoB,IAK5B,OACE,uBAAKt1B,UAAWK,EAAQ6L,QAAxB,UACE,eAAC,GAAD,CAAcvI,MAAM,YACpB,eAAC,GAAD,UACE,eAAC,GAAD,CACEA,MAAM,mBACNmwC,QAAQ,KACRe,SAAO,EACP1lC,KAAK,SACL6L,cAAe47C,GACfpkB,SAAUhhC,EACVk9B,YAAU,EACVoG,KAxBK,SAAAlhC,GACX,IAAM0gB,EAASG,GAAY,SAAZA,CAAsB7gB,EAAGmpC,OAAO,IAC/C,OAAO0C,EAAW,CAAE7zC,UAAW,CAAE0oB,aAuB3BpS,iBAAkBy6B,GAClBxyC,KAAM,GACNskC,SAAUsmB,GACRhsD,KAAQoB,EAAM,CAAEmrB,sBAlBL,SAAC7O,EAAMmuC,EAAMhT,GAAb,OAA0BA,EAASgT,cClEpDj1D,GAAYC,YAAW,CAC3B2I,QAAS,kBAAgB,CACvB9I,MADO,EAAGA,MAEVoF,UAAW,EACXC,WAAY,OAeDm2D,GAXK,SAAC,GAA0C,IAAxC96D,EAAuC,EAAvCA,SAAuC,IAA7BV,aAA6B,MAArB,IAAqB,EAAhBO,EAAgB,EAAhBA,UACtCK,EAAUV,GAAU,CAAEF,UAE5B,OACE,gBAAC+pB,GAAA,EAAD,CAAKrrB,QAAQ,OAAO6B,UAAWA,EAA/B,UACE,eAAC,GAAD,IACA,eAACqB,GAAD,CAAQrB,UAAWK,EAAQkI,QAA3B,SAAqCpI,Q,UCTrCN,GAAS,CACb8pB,OAAQ,CACNxrB,QAAS,OACT8H,cAAe,MACf5H,OAAQ,CAAC,CAAC,OAAQ,EAAGpC,GAAY,KAEnC6P,OAAQ,CACNzN,OAAQ,CAAC,CAAC,OAAQ,EAAG,EAAG,UAE1Bqc,KAAM,CACJvK,KAAM,EACNhS,QAAS,OACT8H,cAAe,UAEjBw6C,KAAM,CACJv6C,aAAc,GACdrB,UAAW,KAITlF,GAAYC,YAAWC,IAyEdq7D,GAxEM,SAAC,GAQf,IAPLh5C,EAOI,EAPJA,iBACAusB,EAMI,EANJA,SACAh8B,EAKI,EALJA,MACAqiC,EAII,EAJJA,KAII,IAHJ/L,mBAGI,MAHU,eAGV,EAFJoyB,EAEI,EAFJA,YAEI,IADJjlC,UACI,MADC,GACD,EACE71B,EAAUV,KAEVqb,EAAgBjS,IACpBA,KACAA,KAAM,kBAAGsP,EAAH,EAAGA,KAAH,sBAAkBA,EAAlB,UAA0B5F,GAASA,EAAM4F,UAAzC,QAAmD,OAFrCtP,CAGpB0lC,GAEI/2B,EAAS3O,KAAQiS,EAAevI,GActC,OACE,eAAC,KAAD,CACEyQ,gBAAgB,EAChBC,kBAAkB,EAClBg0B,oBAAkB,EAClBn8B,cAAetD,EACfwK,iBAAkBA,EAClBoB,SAnBuB,SAAA1P,GACzB,IAAMwnD,EAAoBryD,IACxBA,IAAMA,IAAO,SACbA,KACE,SAAAsyD,GAAI,OACFtyD,IAAO,YAAasyD,KAAU7iD,IAC9BzP,KAAU6K,EAAG7K,IAAO,OAAQsyD,QALRtyD,CAOxB0lC,GACF,OAAOqG,EAAK/rC,KAAOqyD,EAAmBxnD,KAItC,SAOG,gBAAGgH,EAAH,EAAGA,OAAH,OACC,gBAAC,KAAD,CAAM5a,UAAWK,EAAQqa,KAAzB,UACE,eAACgW,EAAA,EAAD,CAAMnsB,WAAS,EAACyU,QAAS,EAAGhZ,UAAWK,EAAQogD,KAA/C,SACGhS,EAAShjC,KACR,gBAAGiX,EAAH,EAAGA,UAAWrK,EAAd,EAAcA,KAAMla,EAApB,EAAoBA,QAASuX,EAA7B,EAA6BA,SAAU89B,EAAvC,EAAuCA,WAAvC,OACE,eAAC9iB,EAAA,EAAD,CAAMvV,MAAI,EAAC+a,GAAIA,EAAf,SACE,eAAC,KAAD,yBACExT,UAAWA,GACP8wB,GAFN,IAGErkC,KAAMkJ,EACNnI,MAAO/R,EACPuX,SAAUA,EACVjC,WAAW,MAPS4E,QAa9B,uBAAKrY,UAAWK,EAAQspB,OAAxB,WACI5gB,KAAU6R,IACV,eAAC,GAAD,UAAe7R,KAAOA,KAAS6R,MAEjC,eAAC2I,GAAD,CACEvjB,UAAWO,IAAWF,EAAQyL,OAAQqvD,GACtC7yD,KAAK,SAFP,SAGGygC,cC7FTuyB,GAAa,SAAAjxC,GAAM,MAAK,CAC5B/H,KAD4B,SACvB+P,GACH,OAAItpB,IAAQshB,KAAWthB,IAAQspB,IACtB/vB,KAAKk0D,iBAMZ+E,GAAmB,SAAC9oD,EAAO8P,GAC/B,QACExZ,KAAa,IAAKwZ,EAAQ2zC,gBAC1BntD,KAASwZ,EAAQ2zC,eAAiB,IAE3B3zC,EAAQi0C,eCTJ,IACbn+C,KAAM,SACNlJ,KAAM,SACNxL,MAAO,eACP8qC,SAAU,CACR,CACEp2B,KAAM,aACNla,QAAS,cACTukB,UAAWzD,IAEb,CACE5G,KAAM,YACNla,QAAS,aACTukB,UAAW1D,IAEb,CACE3G,KAAM,aACNla,QAAS,uCACTukB,UAAWzD,GACXu8C,MAAM,GAER,CACEnjD,KAAM,WACNla,QAAS,8CACTukB,UAAWzD,GACXu8C,MAAM,IAGVC,oBAAqB,SAAAC,GACnB,OAAOv5C,OAAaC,MAAM,CACxBu5C,WAAYx5C,KAAW,oCACpBxN,IAAI,IAAK,+BACT0N,SAAS,+BACZu5C,UAAWz5C,KAAW,mCACnBxN,IAAI,IAAK,8BACT2N,KAAKg5C,GAAU,OAACI,QAAD,IAACA,OAAD,EAACA,EAASE,YAC5BC,WAAY15C,KAAW,oCACpBxN,IAAI,IAAK,+BACT0N,SAAS,+BACZye,SAAU3e,KAAW,kCAClBxN,IAAI,IAAK,6BACT0N,SAAS,iCC5CH,IACby5C,WAAY,CACV71D,cAAe,MACfxG,MAAO,KAETs8D,WAAY,CACVt8D,MARgB,IAShBX,OAAQ,IAEVk9D,OAAQ,CACNv8D,MAAO,KAETw8D,YAAa,CACX99D,QAAS,OACT+H,aAAc,GACd,QAAS,CACPzG,MAAO,IACPoF,UAAW,EACXC,WAAY,KAGhBpG,aAAc,CACZwH,aAAcjK,IAEhByV,iBAAkB,CAChBlB,eAAgB,OAChB/T,MAAOzC,GAEToO,MAAO,CACL3L,MAAO3B,IAETgR,OAAQ,CACNjH,UAAW5I,IAEbigE,WAAY,CACV79D,OAAQ,CAAC,CAACpC,GAAY,EAAG,MCvBvBqtC,GAAa7/B,IAAH,kEAOV0yD,GAAgB1yD,IAAH,oHAMb9J,GAAYC,YAAW,2BACxBC,IADuB,IAE1B2N,QAAS,CACP/N,MAAO,KAETs8D,WAAW,2BACNl8D,GAAOk8D,YADF,IAERt8D,MAAO,MAETyM,QAAS,CACPzM,MAAO,KACPX,OAAQ,IACRT,OAAQ,CAAC,CAAC,EAAG,UAEfsF,MAAO,CACLmB,WAAY,EACZoB,aAAc,GAEhB+jB,KAAM,CACJplB,UAAW,GACXqB,aAAc,OAIZiN,GAAU,CACd,CACEkF,KAAM,SACNla,QAAS,eAEX,CACEka,KAAM,UACNla,QAAS,oBAgGEi+D,I,iCAAAA,GA5Ff,YAAiC,IAAD,IAAdtB,EAAc,EAAdA,WACVz6D,EAAUV,KADc,EAEE0K,mBAAS,MAFX,mBAEvBgyD,EAFuB,KAEbC,EAFa,OAGJjyD,oBAAS,GAHL,mBAGvBjC,EAHuB,KAGhB4tC,EAHgB,OAKJ/rC,YAASq/B,IAA3Bn/B,EALsB,EAKtBA,KAAMqd,EALgB,EAKhBA,QALgB,EAMP5c,YAAYuxD,GAAe,CAChDr5C,YAAag4C,IADRyB,EANuB,oBAUxBtC,EAAQ,iBAAG9vD,QAAH,IAAGA,OAAH,EAAGA,EAAM8vD,gBAAT,QAAqB,GAiB7BuC,GAAY,mBACfn8D,EAAQsD,OAAQ,GADD,cAEftD,EAAQ+H,MAAQA,GAFD,GAKlB,OACE,sBAAKpI,UAAWK,EAAQ6L,QAAxB,SACE,uBAAKlM,UAAWK,EAAQmN,QAAxB,UACE,eAAChN,GAAD,mCACA,gBAACgpB,GAAA,EAAD,CAAKrrB,QAAQ,OAAOe,WAAW,MAA/B,UACE,eAACyB,GAAD,CAAIvC,UAAQ,EAAC4B,UAAWO,IAAWi8D,GAAnC,6DAGA,gBAACtiB,GAAD,CAAkBz6C,MAAO,IAAzB,UACE,eAACoB,GAAD,yHAIA,eAACA,GAAD,8GAOJ,eAAC,GAAD,CACEkX,eAAgB1X,EAAQ07D,WACxB/7D,UAAWK,EAAQy7D,WACnB3oD,QAASA,GACTV,MAAO4pD,EACP9pD,SA7CS,SAAAoM,GACf29C,EAAY39C,EAAE/c,OAAO6Q,OACrBujC,GAAS,MA8CL,eAAC,GAAD,CAAah2C,UAAWK,EAAQ4pB,KAAhC,oFAGA,eAAC,GAAD,CACE1Z,KAAK,2EACLL,MAAM,mBAGM,WAAbmsD,GACC,uCACE,eAAC17D,GAAD,CAAIvC,UAAQ,EAAZ,+BACA,eAAC,GAAD,CACE83B,GAAI,EACJ4e,KAnDC,SAAA2nB,GAEX,OAAOF,EAAa,CAAE3wD,UAAW,CAAEquD,SADlB,CAAEwC,aAC8B9uC,MAAK,kBAAMnG,QAkDlD/U,MAAOwnD,EAASwC,OAChBhuB,SAAUguB,GAAOhuB,SACjBvsB,iBAAkBu6C,GAAOv6C,iBACzB6mB,YAAa,WACboyB,YAAa96D,EAAQ67D,gBAIb,WAAbG,GACC,eAAC94C,GAAD,CAAQtX,KAAK,KAAK1C,QAlEJ,WACpB,IAAK8yD,EAAU,OAAOrmB,GAAS,GAC/B8kB,KAgEgD96D,UAAWK,EAAQyL,OAA7D,4B,UCpIJnM,GAAYC,YAAWC,IACvBmxD,GAAWvnD,IAAH,8NAiBRsY,GAActY,IAAH,0KA6DFizD,GAtDA,SAAC,GAAuC,IAAD,EAA9BC,EAA8B,EAApCxyD,KAAmB2wD,EAAiB,EAAjBA,WAC7Bz6D,EAAUV,KAERwK,EAASF,YAAS+mD,IAAlB7mD,KAH4C,EAI/BS,YAAYmX,GAAa,CAC5Ce,YAAag4C,IADRrb,EAJ6C,sBAQ1Bp1C,oBAAS,GARiB,mBAQ7CjC,EAR6C,KAQtC4tC,EARsC,KAU9C4mB,EAAI,OAAGD,QAAH,IAAGA,OAAH,EAAGA,EAAaC,KAEpBrnC,EAAc,OAAGprB,QAAH,IAAGA,OAAH,EAAGA,EAAMorB,eACvBD,EAAgB,iBAAGnrB,QAAH,IAAGA,OAAH,EAAGA,EAAMmrB,wBAAT,QAA6B,GAmBnD,OACE,uCACE,eAAC30B,GAAD,CAAIX,UAAWoI,GAAS/H,EAAQ+H,MAAhC,qBACA,eAACvH,GAAD,iGAIA,eAAC,GAAD,CACEizC,QAAQ,KACRe,SAAO,EACP1lC,KAAK,UACL0kB,WAAY,CAAC+oC,GACbzyD,KAAMsqB,GAAYmoC,EAAM7zD,KAAO,OAAQ4zD,IACvCluB,SAAUurB,GAAY1kC,EAAkBC,GAAgB,KAE1D,eAAChS,GAAD,CAAQtX,KAAK,KAAK1C,QAhCT,WACX,IAAMszD,EAAoB9zD,KACxBA,KAAOmhD,SAAUyP,kBAAkBiD,GAAMhD,QAErCkD,EAAY,yBAChB9D,cAAe,GACZ2D,GAFa,IAGhBzD,YAAa2D,IAEf,IAAKlE,GAAaoE,YAAYD,GAAe,OAAO9mB,GAAS,GAE7D,IAAMgnB,EAAWvoC,GAAYmoC,EAAM7zD,KAAO,OAAQ+zD,IAC5CxoC,EAASG,GAAYZ,GAAZY,CAAgCuoC,GAE/C,OADAhnB,GAAS,GACFyJ,EAAW,CAAE7zC,UAAW,CAAE0oB,aAkBEt0B,UAAWK,EAAQyL,OAApD,0BChFS,IACbuM,KAAM,YACNlJ,KAAM,aACNxL,MAAO,wBACP8qC,SAAU,CACR,CACEp2B,KAAM,SACNla,QAAS,UACTukB,UAAWzD,GACXu8C,MAAM,EACN9iC,MAAM,GAER,CACErgB,KAAM,aACNla,QAAS,cACTukB,UAAW1D,KAGfy8C,oBAAqB,SAAAC,GACnB,OAAOv5C,OAAaC,MAAM,CACxB66C,OAAQ96C,KAAW,gCAChBxN,IAAI,IAAK,2BACT0N,SAAS,2BACZ66C,WAAY/6C,KAAW,oCACpBxN,IAAI,IAAK,+BACT2N,KAAKg5C,GAAU,OAACI,QAAD,IAACA,OAAD,EAACA,EAASwB,iBCtB5BC,GAAY,SAAAvpD,GAAE,OAAIA,GAAMA,EAAG7R,QAE3Bq7D,GAAsB,SAACp6D,EAAIq6D,GAC/B,OAAOl7C,OACJxN,IAAI,IAAK,YACTg3B,KAAK3oC,EAAI,CACRs6D,GAAIH,GACJxvC,KAAMxL,OAAaG,KAAKg5C,GAAW+B,OAI1B,IACbhlD,KAAM,QACNlJ,KAAM,QACNxL,MAAO,iBACP8qC,SAAU,CACR,CACEp2B,KAAM,QACNla,QAAS,YACTukB,UAAWrQ,GACXmpD,MAAM,EACN9iC,MAAM,GAER,CACErgB,KAAM,cACNla,QAAS,cACTukB,UAAW1P,GACXwgC,WAAY,CACVrgC,QAAS,CACP,CAAEkF,KAAM,OAAQla,QAAS,QACzB,CAAEka,KAAM,OAAQla,QAAS,SAE3BmV,UAAW,UACXF,UAAW,QAEbooD,MAAM,GAER,CACEnjD,KAAM,cACNla,QAAS,gBACTukB,UAAWrQ,IAEb,CACEgG,KAAM,sBACNla,QAAS,wBACTukB,UAAWlK,IAEb,CACEH,KAAM,cACNla,QAAS,gBACTukB,UAAWrQ,IAEb,CACEgG,KAAM,sBACNla,QAAS,wBACTukB,UAAWlK,IAEb,CACEH,KAAM,cACNla,QAAS,gBACTukB,UAAWrQ,IAEb,CACEgG,KAAM,sBACNla,QAAS,wBACTukB,UAAWlK,IAEb,CACEH,KAAM,cACNla,QAAS,gBACTukB,UAAWrQ,IAEb,CACEgG,KAAM,sBACNla,QAAS,wBACTukB,UAAWlK,IAEb,CACEH,KAAM,eACNla,QAAS,iBACTukB,UAAWrQ,IAEb,CACEgG,KAAM,uBACNla,QAAS,yBACTukB,UAAWlK,KAGfijD,oBAAqB,SAAAC,GACnB,OAAOv5C,OAAaC,MAAM,CACxBmP,MAAOpP,KAAW,8BACfxN,IAAI,IAAK,yBACT0N,SAAS,yBACZk7C,YAAap7C,KAAW,sCAAsCxN,IAC5D,IACA,iCAEF6oD,oBAAqBJ,GACnB,cADsC,OAEtC1B,QAFsC,IAEtCA,OAFsC,EAEtCA,EAAS8B,qBAEXC,YAAat7C,KAAW,sCAAsCxN,IAC5D,IACA,iCAEF+oD,oBAAqBN,GACnB,cADsC,OAEtC1B,QAFsC,IAEtCA,OAFsC,EAEtCA,EAASgC,qBAEXC,YAAax7C,KAAW,sCAAsCxN,IAC5D,IACA,iCAEFipD,oBAAqBR,GACnB,cADsC,OAEtC1B,QAFsC,IAEtCA,OAFsC,EAEtCA,EAASkC,qBAEXC,YAAa17C,KAAW,sCAAsCxN,IAC5D,IACA,iCAEFmpD,oBAAqBV,GACnB,cADsC,OAEtC1B,QAFsC,IAEtCA,OAFsC,EAEtCA,EAASoC,qBAEXC,aAAc57C,KAAW,uCAAuCxN,IAC9D,IACA,kCAEFqpD,qBAAsBZ,GACpB,eADuC,OAEvC1B,QAFuC,IAEvCA,OAFuC,EAEvCA,EAASsC,sBAEXC,YAAa97C,KAAW,oCACrB+7C,QAAQ,eACR77C,SAAS,mCC1IH,IACbhK,KAAM,WACNlJ,KAAM,WACNxL,MAAO,sBACP8qC,SAAU,CACR,CACEp2B,KAAM,WACNla,QAAS,YACTukB,UAAWzD,GACXu8C,MAAM,EACN9iC,MAAM,GAER,CACErgB,KAAM,MACNla,QAAS,UACTukB,UAAWzD,GACXu8C,MAAM,EACN9iC,MAAM,GAER,CACErgB,KAAM,SACNla,QAAS,aACTukB,UAAW1D,KAGfy8C,oBAAqB,SAAAC,GACnB,OAAOv5C,OAAaC,MAAM,CACxB+7C,SAAUh8C,KAAW,kCAClBxN,IAAI,IAAK,6BACT0N,SAAS,6BACZpgB,IAAKkgB,KAAW,4BACbxN,IAAI,IAAK,uBACT0N,SAAS,uBACZgI,OAAQlI,KAAW,+BAChBxN,IAAI,IAAK,0BACT2N,KAAKg5C,GAAU,OAACI,QAAD,IAACA,OAAD,EAACA,EAASrxC,aCrCnB,IACbhS,KAAM,cACNlJ,KAAM,cACNxL,MAAO,yBACP8qC,SAAU,CACR,CACEp2B,KAAM,QACNla,QAAS,YACTukB,UAAWzD,GACXu8C,MAAM,EACN9iC,MAAM,GAER,CACErgB,KAAM,mBACNla,QAAS,oBACTukB,UAAWzD,GACXu8C,MAAM,GAER,CACEnjD,KAAM,MACNqK,UAAWjN,GACXC,SAAU,CACR+E,MAAO,qBACPpM,SAAS,EACTsH,gBACE,4EACFzF,MAAO,2CACPkuD,YAAa,WACbxoD,gBAAgB,GAElB4lD,MAAM,IAGVC,oBAAqB,WACnB,OAAOt5C,OAAaC,MAAM,CACxBmP,MAAOpP,KAAW,8BACfxN,IAAI,IAAK,yBACT0N,SAAS,yBACZg8C,iBAAkBl8C,KAAW,0CAC1Bs7B,QAAQ,4CACRD,SAAS,0CACTn7B,SAAS,yCCvCH,IACbhK,KAAM,MACNlJ,KAAM,MACNxL,MAAO,iBACP8qC,SAAU,CACR,CACEp2B,KAAM,SACNla,QAAS,UACTukB,UAAWzD,GACXu8C,MAAM,EACN9iC,MAAM,GAER,CACErgB,KAAM,aACNla,QAAS,cACTukB,UAAW1D,KAGfy8C,oBAAqB,SAAAC,GACnB,OAAOv5C,OAAaC,MAAM,CACxB66C,OAAQ96C,KAAW,gCAChBxN,IAAI,IAAK,2BACT0N,SAAS,2BACZ66C,WAAY/6C,KAAW,oCACpBxN,IAAI,IAAK,+BACT2N,KAAKg5C,GAAU,OAACI,QAAD,IAACA,OAAD,EAACA,EAASwB,iBCxBnB,IACb7kD,KAAM,cACNlJ,KAAM,cACNxL,MAAO,wBACP8qC,SAAU,CACR,CACEp2B,KAAM,qBACNla,QAAS,sBACTukB,UAAW1D,IAEb,CACE3G,KAAM,iBACNla,QAAS,kBACTukB,UAAW3D,GACXy8C,MAAM,EACN9iC,MAAM,GAER,CACErgB,KAAM,UACNqK,UAAW47C,GACX5oD,SAAU,CACRrH,SAAS,EACTsH,gBAAiB,0BACjBzF,MAAO,UACPkuD,YAAa,MAEf5C,MAAM,IAGVC,oBAAqB,SAAAC,GACnB,OAAOv5C,OAAaC,MAAM,CACxBm8C,mBAAoBp8C,KAAW,4CAC5BxN,IAAI,IAAK,YACT2N,KAAKg5C,GAAU,OAACI,QAAD,IAACA,OAAD,EAACA,EAAS6C,qBAC5BC,eAAgBr8C,KAAW,wCACxBE,SAAS,iCACT8O,IAAI,EAAG,gDACPxc,IAAI,GAAI,gDACR8oC,QAAQ,0CACRn7B,KACC,mBACA,kDACAi5C,QC3CK,IACbljD,KAAM,MACNlJ,KAAM,MACNxL,MAAO,iBACP8qC,SAAU,CACR,CACEp2B,KAAM,SACNla,QAAS,UACTukB,UAAWzD,GACXu8C,MAAM,EACN9iC,MAAM,GAER,CACErgB,KAAM,aACNla,QAAS,cACTukB,UAAW1D,KAGfy8C,oBAAqB,SAAAC,GACnB,OAAOv5C,OAAaC,MAAM,CACxB66C,OAAQ96C,KAAW,gCAChBxN,IAAI,IAAK,2BACT0N,SAAS,2BACZ66C,WAAY/6C,KAAW,oCACpBxN,IAAI,IAAK,+BACT2N,KAAKg5C,GAAU,OAACI,QAAD,IAACA,OAAD,EAACA,EAASwB,iBCzBnB,IACb7kD,KAAM,SACNlJ,KAAM,SACNxL,MAAO,kBACP8qC,SAAU,CACR,CACEp2B,KAAM,SACNla,QAAS,aACTukB,UAAWzD,GACXu8C,MAAM,EACN9iC,MAAM,GAER,CACErgB,KAAM,YACNla,QAAS,iBACTukB,UAAW1D,IAEb,CACE3G,KAAM,WACNla,QAAS,WACTukB,UAAWzD,GACXu8C,MAAM,IAGVC,oBAAqB,SAAAC,GACnB,OAAOv5C,OAAaC,MAAM,CACxB66C,OAAQ96C,KAAW,gCAChBxN,IAAI,IAAK,2BACT0N,SAAS,2BACZo8C,UAAWt8C,KAAW,mCACnBxN,IAAI,IAAK,8BACT2N,KAAKg5C,GAAU,OAACI,QAAD,IAACA,OAAD,EAACA,EAAS+C,YAC5BC,SAAUv8C,KAAW,iCAClBxN,IAAI,IAAK,4BACT0N,SAAS,gCClCH,IACbhK,KAAM,QACNlJ,KAAM,QACNxL,MAAO,mBACP8qC,SAAU,CACR,CACEp2B,KAAM,SACNla,QAAS,UACTukB,UAAWzD,GACXu8C,MAAM,EACN9iC,MAAM,GAER,CACErgB,KAAM,WACNla,QAAS,YACTukB,UAAWzD,GACXu8C,MAAM,EACN9iC,MAAM,GAER,CACErgB,KAAM,YACNla,QAAS,aACTukB,UAAWzD,IAEb,CACE5G,KAAM,eACNla,QAAS,gBACTukB,UAAW1D,KAGfy8C,oBAAqB,SAAAC,GACnB,OAAOv5C,OAAaC,MAAM,CACxBu8C,OAAQx8C,KAAW,gCAChBxN,IAAI,IAAK,2BACT0N,SAAS,2BACZu8C,SAAUz8C,KAAW,kCAClBxN,IAAI,IAAK,6BACT0N,SAAS,6BACZw8C,UAAW18C,KAAW,mCACnBxN,IAAI,IAAK,8BACT0N,SAAS,8BACZy8C,aAAc38C,KAAW,sCACtBxN,IAAI,IAAK,iCACT2N,KAAKg5C,GAAU,OAACI,QAAD,IAACA,OAAD,EAACA,EAASoD,mBC3CnB,IACbzmD,KAAM,SACNlJ,KAAM,SACNxL,MAAO,oBACP8qC,SAAU,CACR,CACEp2B,KAAM,SACNla,QAAS,UACTukB,UAAWzD,GACXu8C,MAAM,EACN9iC,MAAM,GAER,CACErgB,KAAM,aACNla,QAAS,cACTukB,UAAW1D,KAGfy8C,oBAAqB,SAAAC,GACnB,OAAOv5C,OAAaC,MAAM,CACxB66C,OAAQ96C,KAAW,gCAChBxN,IAAI,IAAK,2BACT0N,SAAS,2BACZ66C,WAAY/6C,KAAW,oCACpBxN,IAAI,IAAK,+BACT2N,KAAKg5C,GAAU,OAACI,QAAD,IAACA,OAAD,EAACA,EAASwB,iBC5BnB,IACb7kD,KAAM,UACNlJ,KAAM,UACNxL,MAAO,kBACP8qC,SAAU,CACR,CACEp2B,KAAM,SACNla,QAAS,UACTukB,UAAWzD,IAEb,CACE5G,KAAM,SACNla,QAAS,SACTukB,UAAWzD,IAEb,CACE5G,KAAM,YACNla,QAAS,aACTukB,UAAWzD,GACXu8C,MAAM,GAER,CACEnjD,KAAM,UACNla,QAAS,WACTukB,UAAWzD,GACXu8C,MAAM,IAGVC,oBAAqB,WACnB,OAAOt5C,OAAaC,MAAM,CACxB66C,OAAQ96C,KAAW,gCAChBxN,IAAI,IAAK,2BACT0N,SAAS,2BACZgL,OAAQlL,KAAW,+BAChBxN,IAAI,IAAK,0BACT0N,SAAS,0BACZ08C,UAAW58C,KAAW,mCACnBxN,IAAI,IAAK,8BACT6X,MAAM,gDACNnK,SAAS,8BACZ28C,QAAS78C,KAAW,iCACjBxN,IAAI,IAAK,4BACT6X,MAAM,8CACNnK,SAAS,gCClClB,yBACG48C,GAAM5mD,KAAO4mD,IADhB,eAEGC,GAAS7mD,KAAO6mD,IAFnB,eAGGC,GAAY9mD,KAAO8mD,IAHtB,eAIGC,GAAO/mD,KAAO+mD,IAJjB,eAKGC,GAAMhnD,KAAOgnD,IALhB,eAMGC,GAAOjnD,KAAOinD,IANjB,eAOGC,GAAQlnD,KAAOknD,IAPlB,eAQG9C,GAAOpkD,KAAOokD,IARjB,eASG+C,GAAUnnD,KAAOmnD,IATpB,eAUGC,GAAIpnD,KAAOonD,IAVd,eAWGC,GAAIrnD,KAAOqnD,IAXd,eAYGC,GAAYtnD,KAAOsnD,IAZtB,ICAMhgE,GAAYC,YAAW,2BACxBC,IADuB,IAE1Bi8D,WAAYj8D,GAAOi8D,WACnBC,WAAW,2BACNl8D,GAAOk8D,YADF,IAERt8D,MAAO,SAIL6pC,GAAa7/B,IAAH,sDAKV0yD,GAAgB1yD,IAAH,8HAMb0J,GAAU,CACd,CACEkF,KAAM,SACNla,QAAS,0BAEX,CACEka,KAAM,UACNla,QAAS,4BAoEEyhE,GAhEK,SAAC,GAAiB,IAAD,EAAdC,EAAc,EAAdA,QACfx/D,EAAUV,KAERwK,EAASF,YAASq/B,IAAlBn/B,KAH2B,EAIdS,YAAYuxD,GAAe,CAC9Cr5C,YAAa,kBAAM+8C,EAAQ,CAAE9G,SAAU,mBADlCtZ,EAJ4B,sBAQHp1C,mBAAS,MARN,mBAQ5BgyD,EAR4B,KAQlBC,EARkB,OASTjyD,oBAAS,GATA,mBAS5BjC,EAT4B,KASrB4tC,EATqB,KAW7BikB,EAAQ,iBAAG9vD,QAAH,IAAGA,OAAH,EAAGA,EAAM8vD,gBAAT,QAAqB,GAYnC,OACE,uCACE,eAACt5D,GAAD,CAAIX,UAAWoI,GAAS/H,EAAQ+H,MAAhC,yBACA,eAACvH,GAAD,mFAGA,eAAC,GAAD,CACE0P,KAAK,wEACLL,MAAM,4BAER,eAAC,GAAD,CACE6H,eAAgB1X,EAAQ07D,WACxB/7D,UAAWK,EAAQy7D,WACnB3oD,QAASA,GACTV,MAAO4pD,EACP9pD,SAzBW,SAAAoM,GACf29C,EAAY39C,EAAE/c,OAAO6Q,OACrBujC,GAAS,MAyBP,uBAAKh2C,UAAWK,EAAQ27D,OAAxB,UACgB,YAAbK,GACC,eAAC94C,GAAD,CACEtX,KAAK,KACL1C,QAAS,kBAAMs2D,EAAQ,CAAE9G,SAAU,OAAQC,cAAe,KAC1Dh5D,UAAWK,EAAQyL,OAHrB,sBAOY,WAAbuwD,GACC,eAAC,GAAD,CACE5pD,MAAOwnD,EAASkF,YAChBrqB,KAlCG,SAAAqqB,GAEX,OAAO1f,EAAW,CAAE7zC,UAAW,CAAEquD,SADhB,CAAEkF,mBAkCX1wB,SAAUkO,GAAOwiB,YAAY1wB,SAC7BvsB,iBAAkBy6B,GAAOwiB,YAAYj9C,iBACrC6mB,YAAa,WACboyB,YAAa96D,EAAQ67D,oBCtF3Bv8D,GAAYC,YAAWC,IAEvBypC,GAAa7/B,IAAH,kGASVkzC,GAASx6B,OAAaC,MAAM,CAChCw6C,KAAMz6C,OAAaE,aAoDNy9C,GAjDI,SAAC,GAAiB,IAAD,EAAdD,EAAc,EAAdA,QACdx/D,EAAUV,KADkB,EAER0K,oBAAS,GAFD,mBAE3BjC,EAF2B,KAEpB4tC,EAFoB,KAI1B7rC,EAASF,YAASq/B,IAAlBn/B,KACFmrB,EAAgB,iBAAGnrB,QAAH,IAAGA,OAAH,EAAGA,EAAMmrB,wBAAT,QAA6B,GAYnD,OACE,uCACE,eAAC30B,GAAD,CAAIX,UAAWoI,GAAS/H,EAAQ+H,MAAhC,8CAIA,eAAC,KAAD,CACE8a,gBAAgB,EAChBC,kBAAkB,EAClBg0B,oBAAkB,EAClBn8B,cAAe,CAAE4hD,KAAM,IACvBt5C,SArBW,SAAA1P,GACf,OAAK+oC,GAAOogB,YAAYnpD,GAER,QAAZA,EAAGgpD,KACEiD,EAAQ,CAAEjD,KAAMhpD,EAAGgpD,KAAM7D,SAAU,OAAQC,cAAe,SAGnE6G,EAAQjsD,GAN4BoiC,GAAS,IAe3C,SAME,gBAAC,KAAD,CAAMzjC,SAAU,kBAAMyjC,GAAS,IAA/B,UACE,eAAC,GAAD,IACA,eAAC,KAAD,CACEtzB,UAAW5K,GACX3I,KAAK,OACL4I,eAAgB1X,EAAQ07D,WACxB/7D,UAAWK,EAAQy7D,WACnB3oD,QAASmiB,IAGT,eAAC/R,GAAD,CAAQtX,KAAK,KAAK3D,KAAK,SAAStI,UAAWK,EAAQyL,OAAnD,+BC/DNi0D,GAAe,SAAC/U,EAAQ1iD,GAAT,OACnBS,KAAS,SAAA6K,GAAE,OAFK,SAAAtL,GAAI,OAAIS,IAAS,QAAST,GAE3B03D,CAAU13D,EAAV03D,CAAgBpsD,IAHhB,SAAAo3C,GAAM,OAAIjiD,IAAUA,KAAWiiD,GAASjiD,IAAO,YAGxBk3D,CAASjV,EAATiV,CAAiBrsD,OAC5CssD,GAAW,SAAC3qC,EAAgB0kC,EAAU3xD,EAAM0iD,GACvD,IAAMmV,EAAUJ,GAAa/U,EAAQ1iD,EAArBy3D,CAA2BxqC,GADuB,EAIvCxsB,MAAY,YAAe,IAAZsP,EAAW,EAAXA,KAClCqjD,EAHK,SAAArjD,GAAI,OAAI4hD,GAAYA,EAAS5hD,GAGxB0L,CAAK1L,GACrB,OAAKskC,GAAOtkC,KAGLojD,EADyB9e,GAAOtkC,GAA/BojD,qBACmBC,GAASqB,YAAYrB,KALvB3yD,CAMxBo3D,GAV+D,mBAYlE,MAAO,CAAEttD,OAZyD,KAYjDutD,SAZiD,OCS9DzgE,GAAYC,YAAWC,IAEvBypC,GAAa7/B,IAAH,oMAgBV0yD,GAAgB1yD,IAAH,oHAMb42D,GAAiB,SAAAzsD,GAAE,OACtB7K,IAAQ6K,KAAQ7K,KAAW6K,EAAX7K,CAAe,CAAC,gBAAiB,iBAuFrCu3D,GArFQ,SAAC,GAAoC,IAAD,IAqBpCnxD,EArBSwtD,EAA2B,EAAjCxyD,KAAmB01D,EAAc,EAAdA,QACrCx/D,EAAUV,KACRwK,EAASF,YAASq/B,IAAlBn/B,KAFiD,EAGlCS,YAAYuxD,GAAe,CAChDr5C,YAAa,kBAAMlS,OADd2rD,EAHkD,sBAOzBlyD,mBAAS,MAPgB,mBAOlDgyD,EAPkD,KAOxCC,EAPwC,OAQ/BjyD,oBAAS,GARsB,mBAQlDjC,EARkD,KAQ3C4tC,EAR2C,KAUnDikB,EAAQ,iBAAG9vD,QAAH,IAAGA,OAAH,EAAGA,EAAM8vD,gBAAT,QAAqB,GAC7B1kC,EAAc,iBAAGprB,QAAH,IAAGA,OAAH,EAAGA,EAAMorB,sBAAT,QAA2B,GAEzCqnC,EAAOD,EAAYC,KACnB2D,EAAYL,GAAS3qC,EAAgB0kC,EAAU,WAAY2C,GAE3DhsD,EAAS,WACb,IAAKyrD,EAAU,OAAOrmB,GAAS,GAC/B6pB,EAAQ,CAAE/G,SAAUuD,KAsBtB,OACE,uBAAKr8D,UAAWK,EAAQ27D,OAAxB,UACE,eAACr7D,GAAD,CAAIX,UAAWoI,GAAS/H,EAAQ+H,MAAhC,kCACA,eAAC,GAAD,CACE2P,eAAgB1X,EAAQ07D,WACxB/7D,UAAWK,EAAQy7D,WACnB3oD,QAASpK,KAAQw3D,EAAU1tD,OAAQ0tD,EAAUH,UAC7C3tD,MAAO4pD,EACP9pD,SAtBW,SAAAoM,GACf29C,EAAY39C,EAAE/c,OAAO6Q,OACrBujC,GAAS,OAsBLqqB,GAAehE,IACf,eAAC94C,GAAD,CAAQtX,KAAK,KAAK1C,QAASqH,EAAQ5Q,UAAWK,EAAQyL,OAAtD,sBAIDu0D,GAAehE,IACd,uCACE,uBAAKr8D,UAAWK,EAAQ47D,YAAxB,UACE,eAAC,GAAD,IACA,gBAACh7D,GAAD,mCACwB07C,GAAO0f,GAAUltD,KADzC,2HAMF,eAAC,GAAD,CACEoB,KAnCc,CACtB+uD,OACE,2EACFD,MACE,0EACFH,SACE,8EA6B4B7C,GACtBnsD,MAAK,UAAKysC,GAAO0f,GAAUltD,KAAtB,cAGP,eAACxO,GAAD,CAAIvC,UAAQ,EAAZ,wCACA,eAAC,GAAD,CACEqU,MAAOwnD,EAASoC,GAChBvnB,MApDW3lC,EAoDQktD,EApDA,SAAAvD,GAC3B,IAAMmB,EAAQ,eAAM9qD,EAAO2pD,GAC3B,OAAOyD,EAAa,CAAE3wD,UAAW,CAAEquD,gBAmD3BxrB,SAAUkO,GAAO0f,GAAU5tB,SAC3BvsB,iBAAkBy6B,GAAO0f,GAAUn6C,iBACnC6mB,YAAa,WACboyB,YAAa96D,EAAQ67D,oBC3G3Bv8D,GAAYC,YAAWC,IAEvBypC,GAAa7/B,IAAH,4HAmDD+2D,GAxCM,SAAC,GAAoC,IAAD,IAA3B7D,EAA2B,EAAjCxyD,KAAmB01D,EAAc,EAAdA,QACnCx/D,EAAUV,KACRwK,EAASF,YAASq/B,IAAlBn/B,KAF+C,EAIvBE,mBAAS,MAJc,mBAIhDgyD,EAJgD,KAItCC,EAJsC,OAK7BjyD,oBAAS,GALoB,mBAKhDjC,EALgD,KAKzC4tC,EALyC,KAOjDikB,EAAQ,iBAAG9vD,QAAH,IAAGA,OAAH,EAAGA,EAAM8vD,gBAAT,QAAqB,GAC7B1kC,EAAc,iBAAGprB,QAAH,IAAGA,OAAH,EAAGA,EAAMorB,sBAAT,QAA2B,GAEzCqnC,EAAOD,EAAYC,KACnB6D,EAAUP,GAAS3qC,EAAgB0kC,EAAU,SAAU2C,GAY7D,OACE,uBAAK58D,UAAWK,EAAQ27D,OAAxB,UACE,eAACr7D,GAAD,CAAIX,UAAWoI,GAAS/H,EAAQ+H,MAAhC,gCACA,eAAC,GAAD,CACE2P,eAAgB1X,EAAQ07D,WACxB/7D,UAAWK,EAAQy7D,WACnB3oD,QAASpK,KAAQ03D,EAAQ5tD,OAAQ4tD,EAAQL,UACzC3tD,MAAO4pD,EACP9pD,SAbW,SAAAoM,GACf29C,EAAY39C,EAAE/c,OAAO6Q,OACrBujC,GAAS,MAaP,eAACzyB,GAAD,CAAQtX,KAAK,KAAK1C,QApBP,WACb,IAAK8yD,EAAU,OAAOrmB,GAAS,GAC/B6pB,EAAQ,CAAEjH,OAAQyD,KAkBmBr8D,UAAWK,EAAQyL,OAAtD,0BCIS40D,GAvDK,SAAAroD,GAAI,YAAK,CAC3BA,KAAM,QACNlJ,KAAM,QACNxL,MAAO,iBACP8qC,SAAU,CACR,CACEp2B,KAAM,QACNla,QAAS,YACTukB,UAAWrQ,GACXmpD,MAAM,EACN9iC,MAAM,GAER,CACErgB,KAAM,cACNla,QAAS,cACTukB,UAAW1P,GACXwgC,WAAY,CACVrgC,QAAS,CACP,CAAEkF,KAAM,OAAQla,QAAS,QACzB,CAAEka,KAAM,OAAQla,QAAS,SAE3BmV,UAAW,UACXF,UAAW,QAEbooD,MAAM,GAER,CACEnjD,KAAK,GAAD,OAAKA,EAAL,YACJla,QAAQ,GAAD,OAAKka,EAAL,cACPqK,UAAWrQ,IAEb,CACEgG,KAAK,GAAD,OAAKA,EAAL,oBACJla,QAAQ,GAAD,OAAKka,EAAL,sBACPqK,UAAWlK,KAGf0J,iBAAkBC,OAAaC,OAAb,GAChBmP,MAAOpP,KAAW,8BACfxN,IAAI,IAAK,yBACT0N,SAAS,yBACZ47C,YAAa97C,KAAW,oCACrB+7C,QAAQ,eACR77C,SAAS,gCANI,wBAOZhK,EAPY,YAOK8J,KAAA,cAAkB9J,EAAlB,gCAClB1D,IAAI,IADc,cACF0D,EADE,2BAElBgK,SAFkB,cAEFhK,EAFE,4BAPL,wBAUZA,EAVY,oBAUa8J,KAAA,cACpB9J,EADoB,iCAG1B1D,IAAI,IAHsB,cAGV0D,EAHU,mCAI1BgK,SAJ0B,cAIVhK,EAJU,oCAVb,MC5Bd1Y,GAAYC,YAAWC,IAEvBypC,GAAa7/B,IAAH,oMAgBV0yD,GAAgB1yD,IAAH,oHAMb42D,GAAiB,SAAAzsD,GAAE,OAAI7K,KAAW6K,EAAX7K,CAAe,CAAC,SAAU,WAqHxC43D,GAzGM,SAAC,GAAoC,IAAD,IAVnC/sD,EAUQ+oD,EAA2B,EAAjCxyD,KAAmB01D,EAAc,EAAdA,QACnCx/D,EAAUV,KACRwK,EAASF,YAASq/B,IAAlBn/B,KAF+C,EAGhCS,YAAYuxD,GAAe,CAChDr5C,YAAa,kBAAMlS,OADd2rD,EAHgD,sBAOvBlyD,mBAAS,MAPc,mBAOhDgyD,EAPgD,KAOtCC,EAPsC,OAQ7BjyD,oBAAS,GARoB,mBAQhDjC,EARgD,KAQzC4tC,EARyC,KAUjDikB,EAAQ,iBAAG9vD,QAAH,IAAGA,OAAH,EAAGA,EAAM8vD,gBAAT,QAAqB,GAC7B1kC,EAAc,iBAAGprB,QAAH,IAAGA,OAAH,EAAGA,EAAMorB,sBAAT,QAA2B,GAEzCqnC,EAAOD,EAAYC,KACnBvnC,EAAU6qC,GAAS3qC,EAAgB0kC,EAAU,SAAU2C,GAEvDgE,EAAa,SAAAzxD,GAAI,OAAI,SAAA0pD,GACzB,IAAMoB,EAAQ,eAAM9qD,EAAO0pD,GAC3B,OAAO0D,EAAa,CAAE3wD,UAAW,CAAEquD,gBAG/BrpD,EAAS,WACb,IAAKyrD,EAAU,OAAOrmB,GAAS,GAC/B6pB,EAAQ,CAAEhH,OAAQwD,KAQpB,OACE,uBAAKr8D,UAAWK,EAAQ27D,OAAxB,UACE,eAACr7D,GAAD,CAAIX,UAAWoI,GAAS/H,EAAQ+H,MAAhC,gCACA,eAAC,GAAD,CACE2P,eAAgB1X,EAAQ07D,WACxB/7D,UAAWK,EAAQy7D,WACnB3oD,QAASpK,KAAQssB,EAAQxiB,OAAQwiB,EAAQ+qC,UACzC3tD,MAAO4pD,EACP9pD,SAbW,SAAAoM,GACf29C,EAAY39C,EAAE/c,OAAO6Q,OACrBujC,GAAS,OAtCSpiC,EAmDDyoD,EAlDnBtzD,KAAW6K,EAAX7K,CAAe,CACb,WACA,OACA,YACA,QACA,SACA,kBA6CI,uCACE,uBAAK/I,UAAWK,EAAQ47D,YAAxB,UACE,eAAC,GAAD,IACA,gBAACh7D,GAAD,wBACao7D,EADb,2EAKF,eAAC,GAAD,CACE9rD,KAAK,yFACLL,MAAM,yBAIVmwD,GAAehE,IACf,eAAC94C,GAAD,CAAQtX,KAAK,KAAK1C,QAASqH,EAAQ5Q,UAAWK,EAAQyL,OAAtD,sBAIY,UAAbuwD,GACC,uCACE,uBAAKr8D,UAAWK,EAAQ47D,YAAxB,UACE,eAAC,GAAD,IACA,eAACh7D,GAAD,uKAMF,eAAC,GAAD,CACEsP,KAAK,6EACLL,MAAM,oBAER,eAACvP,GAAD,CAAIvC,UAAQ,EAAZ,sCACA,eAAC,GAAD,CACEqU,MAAOwnD,EAASgF,MAChBnqB,KAAM8rB,EAAWvE,GACjB5tB,SAAUwwB,GAAMrC,GAAMnuB,SACtBvsB,iBAAkB+8C,GAAMrC,GAAM16C,iBAC9B6mB,YAAa,WACboyB,YAAa96D,EAAQ67D,gBAIb,WAAbG,GACC,uCACE,eAAC17D,GAAD,CAAIvC,UAAQ,EAAZ,sCACA,eAAC,GAAD,CACEqU,MAAOwnD,EAASmF,OAChBtqB,KAAM8rB,EAAWvE,GACjB5tB,SAAUkO,GAAOyiB,OAAO3wB,SACxBvsB,iBAAkBy6B,GAAOyiB,OAAO3D,oBAC9BxB,EAASmF,QAEXr2B,YAAa,WACboyB,YAAa96D,EAAQ67D,oBCvI3Bv8D,GAAYC,YAAWC,IAEvB0gB,GAAQ,CACZ,CACErQ,MAAO,wBACPwS,UAAWo9C,IAEb,CACE5vD,MAAO,gBACPwS,UAAWi+C,IAEb,CACEzwD,MAAO,gBACPwS,UAAW89C,IAEb,CACEtwD,MAAO,WACPwS,UAAW49C,IAEb,CACEpwD,MAAO,cACPwS,UAAWk9C,IAEb,CACE1vD,MAAO,UACPwS,UAAWg6C,KAqCAmE,GAjCA,SAAC,GAAoB,IAAlB/F,EAAiB,EAAjBA,WAAiB,EACTzwD,mBAAS,GADA,mBAC1BiW,EAD0B,KACpBiE,EADoB,OAETla,mBAAS,IAFA,mBAE1BF,EAF0B,KAEpB22D,EAFoB,KAI3BzgE,EAAUV,KACVohE,EAAyB,SAAX,OAAJ52D,QAAI,IAAJA,OAAA,EAAAA,EAAMyyD,MAAiBr8C,GAAQxX,KAAS,EAAG,EAAGwX,IAExDiE,EAAYu8C,EAAQzgD,GAAMoC,UAOhC,OACE,uBAAK1iB,UAAWK,EAAQ6L,QAAxB,UACE,sBAAKlM,UAAWK,EAAQ0gB,UAAxB,SACE,eAAC,GAAD,CAAcpd,MAAM,sBAEtB,uBAAK3D,UAAWK,EAAQygB,WAAxB,UACE,eAAC,GAAD,UACGigD,EAAQt1D,KAAI,SAACmI,EAAIqE,GAAL,OACX,eAAC,GAAD,CAAmBqI,KAAMA,EAAM1M,GAAIA,EAAIqE,IAAKA,EAAKsI,MAAOwgD,GAA1C9oD,QAGlB,sBAAKjY,UAAWK,EAAQ2gB,eAAxB,SACE,eAACwD,EAAD,CAAWra,KAAMA,EAAM01D,QAjBf,SAAAjsD,GACdktD,EAAQ/3D,KAAQoB,EAAMyJ,IACtB2Q,EAAQjE,EAAO,IAegCw6C,WAAYA,aC/DzDj7D,GAAS,CACbmhE,QAAS,CACP9uD,UAAW,SACX/L,WAAY,KAEdxC,MAAO,CACLnH,WAAY,EACZI,SAAU,IAEZqkE,WAAY,CACVrkE,SAAU,GACVE,WAAY,IACZoJ,aAAc,GACdzJ,MAAOpD,IAILsG,GAAYC,YAAWC,IAoBdqhE,IC5BTlG,GAAqB,SAAC1mC,EAAQ02B,GAClC,IAAM6N,EAASxkC,GAAcR,GAAoBS,GACjD,OAAOvrB,KAAS,SAAA6K,GAAE,OAChB+kD,GAAaoE,YAAY1oC,GAAczgB,EAAGyE,KAAMwgD,MAD3C9vD,CAELiiD,IA0BEmW,GAAgB,SAAC7sC,EAAQ02B,GAC7B,OAAK12B,EAxBgB,SAACA,EAAQ02B,GAC9B,IAAM6N,EAASxkC,GAAcR,GAAoBS,GAC3C8sC,EAAQr4D,KAAM,SAAA6K,GAAE,OAAIygB,GAAczgB,EAAGyE,KAAMwgD,KAAnC9vD,CAA4CiiD,GAO1D,OALuBjiD,IACrBA,KAAMA,MACNA,KAAM,SAAA6K,GAAE,OAAI+kD,GAAaoE,YAAYnpD,MAFhB7K,CAGrBq4D,GAmBkBC,CAAe/sC,EAAQ02B,GAdtB,SAAA12B,GACrB,IAAMyoB,EAAS1oB,GAAcR,GAAmBS,GAChD,OAAO4jC,GAAa6E,YAAYhgB,GAeZukB,CAAehtC,GAZT,SAAAA,GAC1B,IAAMo0B,EAAar0B,GAAcR,GAAwBS,GACnDyoB,EAAS1oB,GAAcR,GAAmBS,GAChD,OAAOitC,GAAkBxkB,GAAQggB,YAAYrU,GAYrB8Y,CAAoBltC,GAGrC,EAFsB,EAHJ,EAHA,EAHL,GAchBmtC,GAAQ,CACZ,CACEz+D,GAAI,UACJwhB,UDtCJ,YAAkC,IAAfs2C,EAAc,EAAdA,WACXz6D,EAAUV,KAEhB,OACE,uBAAKK,UAAWK,EAAQ2gE,QAAxB,UACE,eAACxgE,GAAD,CAAIR,UAAWK,EAAQsD,MAAvB,0CACA,gBAAC9C,GAAD,CAAGb,UAAWK,EAAQ4gE,WAAtB,2EAEE,wBAFF,6DAKA,eAAC19C,GAAD,CAAQtX,KAAK,KAAK1C,QAASuxD,EAA3B,8BC6BJ,CACE93D,GAAI,SACJwhB,UAAWq8C,GACXa,QAAS,wCACT7pD,SAAU,kBACV0R,KAAK,kMAIP,CACEvmB,GAAI,SACJwhB,UAAWm9C,GACXD,QAAS,wCACT7pD,SAAU,UACV0R,KAAK,6NAIP,CACEvmB,GAAI,SACJwhB,UAAW43C,GACXsF,QAAS,wCACT7pD,SAAU,uBACV0R,KACE,yLAGE,wBAHF,4FASJ,CACEvmB,GAAI,cACJwhB,UAAW+6B,GACXmiB,QAAS,6CACT7pD,SAAU,cACV0R,KAAK,4b,UC9FH5pB,GAAYC,aAAW,iBAAO,CAClCgiE,OAAQ,CACN/zD,UAAW,OACXpJ,UAAW,iCAEbyH,QAAS,CACPjN,QAAS,SACTyH,SAAU,EACV5H,OAAQ,KAEV+iE,aAAc,CACZ/iE,OAAQ,IAEV6E,MAAO,CACLtF,OAAQ,CAAC,CAAC,EAAGpC,GAAY,EAAG,KAE9B4b,SAAU,CACRhT,UpQgCW,EoQ/BXqB,aAAc,EACd1J,WAAY,KACZ2B,QAAS,UAEXk5C,MAAO,CACL7xC,WAAY,OACZf,UAAW,YAoGA0wB,I,8BAAAA,GAhGf,YAA+E,IAAD,EAA5DokB,EAA4D,EAA5DA,YAAah5B,EAA+C,EAA/CA,MAAO1I,EAAwC,EAAxCA,SAAU0R,EAA8B,EAA9BA,KAAMm4C,EAAwB,EAAxBA,QAAS1yD,EAAe,EAAfA,KAAMmqB,EAAS,EAATA,MAC7D94B,EAAUV,KAD4D,EAEtC0K,oBAAS,GAF6B,mBAErEy3D,EAFqE,KAExDC,EAFwD,KAItEC,GAAiB,mBACpB3hE,EAAQ6L,SAAU,GADE,cAEpB7L,EAAQwhE,cAAgB7yD,GAFJ,GAKvB,OACE,gBAACizD,GAAA,EAAD,CACEC,OAAQ,SACRlzD,MAAM,EACNmzD,QAAS,aACT9hE,QAAS,CAAE+hE,wBAAyB/hE,EAAQuhE,QAJ9C,UAKE,uBAAK5hE,UAAWO,IAAWyhE,GAA3B,UACE,gBAACtxC,EAAA,EAAD,CAAMnsB,WAAS,EAACosB,UAAU,MAAMC,QAAQ,SAAS1xB,WAAW,WAA5D,UACE,gBAACwxB,EAAA,EAAD,CACEvV,MAAI,EACJ+a,GAAI,EACJ3xB,WAAS,EACTosB,UAAW3hB,EAAO,SAAW,MAC7B4hB,QAAQ,aACR1xB,WAAW,WANb,UAOE,eAACuB,GAAD,CAAIT,UAAWK,EAAQsD,MAAvB,iCACA,eAAC3C,GAAD,CAAOhB,UAAWK,EAAQwX,SAA1B,SAAqCA,IACpC7I,GAAQ,eAACnO,GAAD,UAAI0oB,OAEf,eAACmH,EAAA,EAAD,CACEvV,MAAI,EACJ+a,GAAI,EACJ3xB,WAAS,EACTosB,UAAU,SACVC,QAAQ,aACR1xB,WAAW,WACX8Z,QAAS,EAPX,SAQE,eAAC0X,EAAA,EAAD,CAAMvV,MAAI,EAAC+a,GAAI,GAAf,SACG3V,GAASg5B,GACR,eAAC,GAAD,CAASA,YAAaA,EAAah5B,MAAOA,WAKjDvR,GACC,gBAAC0hB,EAAA,EAAD,CACEnsB,WAAS,EACTosB,UAAU,MACVC,QAAQ,SACR1xB,WAAW,WAJb,UAKE,eAACwxB,EAAA,EAAD,CACEvV,MAAI,EACJ+a,GAAI,EACJ3xB,WAAS,EACTosB,UAAU,SACVC,QAAQ,aACR1xB,WAAW,aANb,SAOE,eAAC,GAAD,CACEqK,QAAS,WACPw4D,GAAe,IAFnB,gCAOF,eAACrxC,EAAA,EAAD,CACEvV,MAAI,EACJ+a,GAAI,EACJ3xB,WAAS,EACTosB,UAAU,SACVC,QAAQ,aACR1xB,WAAW,WACX8Z,QAAS,EAPX,SAQE,eAAC0X,EAAA,EAAD,CAAMvV,MAAI,EAAV,SACE,eAACoI,GAAD,CAAQtX,KAAK,KAAK1C,QAAS4vB,EAA3B,mCAQV,eAAC,GAAD,CACE2e,eAAe,EACfC,sBAAsB,EACtB/3C,UAAWK,EAAQg3C,MACnBK,IAAI,EACJj4C,MAAO,KACPkQ,YAAa,WACXoyD,GAAe,IAEjB/yD,KAAM8yD,EATR,SAUE,sBAAKriE,MAAO,KAAMs5C,IAAK2oB,EAAS5oB,IAAI,WCnHtCn5C,GAAYC,YAAW,CAC3BsM,QAAS,CACP/N,QAAS,OACTc,QAAS,CAAC,CAAC,GAAI,IACfgH,cAAe,SACftB,eAAgB,gBAChBvK,gBAAiBA,IAEnB2vB,kBAAmB,CACjBvkB,WAAY,4DACZpL,gBAAiBA,GACjB4vB,eAAgB,SAElBq4C,QAAS,CACP7tD,OAAQ,YACR8tD,cAAe,UAIbvtC,GAAWtrB,IAAH,0IC9BCqzC,GDyCA,SAAC,GAAyB,EAAvBnrB,iBAAwB,IAAD,IACjCtxB,EAAUV,KADuB,EAEbsK,YAAS8qB,IAA3B5qB,EAF+B,EAE/BA,KAAMC,EAFyB,EAEzBA,QACRwd,EAAUC,cACR06C,EAAoBv3C,qBAAWC,GAA/Bs3C,gBAJ+B,EAMfl4D,mBAAS,GANM,mBAMhCiW,EANgC,KAM1BiE,EAN0B,OAOfla,oBAAS,GAPM,mBAOhC2E,EAPgC,KAO1BwL,EAP0B,OASLnQ,oBAAS,GATJ,mBAShCm4D,EATgC,KASrBC,EATqB,KAWvC,GAAIr4D,EACF,OAAO,+BAGT,IAAMs4D,EAAavB,GAAa,OAACh3D,QAAD,IAACA,OAAD,EAACA,EAAMmqB,OAAP,OAAenqB,QAAf,IAAeA,OAAf,EAAeA,EAAMmrB,kBAE/CqtC,EACJ/6C,EAAQ7lB,UAAU,UAAC6lB,EAAQ2F,SAASvG,aAAlB,aAAC,EAAwB2K,kBAE1B,IAAf+wC,IACFH,GAAgB,GAChBI,EAAe/6C,EAAQg7C,SAAWh7C,EAAQO,KAAK,MAGjD,IAAM06C,EAAqB,IAATviD,EACZhgB,GAAU,mBACbD,EAAQgiE,QAAUG,GADL,cAEbniE,EAAQ6L,SAAU,GAFL,cAGb7L,EAAQ0pB,kBAAoB84C,GAHf,GAsBV13D,EAAUs2D,GAAMnhD,GAEtB,OACE,gBAACmE,GAAA,EAAD,CAAQC,YAAU,EAAC1V,KAAMA,EAAzB,UACE,eAAC4V,GAAA,EAAD,CAAe5kB,UAAWO,IAAWD,GAArC,SACE,eAAC6K,EAAQqZ,UAAT,CAAmBs2C,WAjBN,WACbx6C,GAAQmhD,GAAM1/D,OAAS,IACzByY,GAAQ,GACRoN,EAAQO,KAAK,MAGf,IAAMxF,EAAoB,IAATrC,GAAcoiD,EAAaA,EAAapiD,EAAO,EAEhEmiD,GAAa,GACbl+C,EAAQ5B,IAQuCnR,UAAWgxD,OAEtDK,GACA,eAAC,GAAD,CACEtpB,YAAaj5B,EACbC,MAAOkhD,GAAM1/D,OAAS,EACtB2/D,QAASv2D,EAAQu2D,QACjB7pD,SAAU1M,EAAQ0M,SAClB0R,KAAMpe,EAAQoe,KACdva,KAAMwzD,EACNrpC,MA/BM,WACZspC,GAAa,UE1EJK,GAAa,SAAAz3C,GAAQ,OAC/BtiB,IAAA,OAAQsiB,QAAR,IAAQA,OAAR,EAAQA,EAAUroB,MAClB+F,IAAA,OAAQsiB,QAAR,IAAQA,OAAR,EAAQA,EAAUW,YAClBjjB,IAAA,OAAQsiB,QAAR,IAAQA,OAAR,EAAQA,EAAU1E,OAERo8C,GACL,OADKA,GAEA,YCIEC,GANM,SAAC,GAAiB,IAAZC,EAAW,oBAC5B53C,EAAaL,qBAAWC,GAAxBI,SAER,OAAOy3C,GAAWz3C,GAAY,eAAC,IAAD,eAAW43C,IAAW,eAAC,IAAD,CAAUp8C,GAAG,YCcpDq8C,GAjBK,SAAC,GAAmD,IAAtC1+C,EAAqC,EAAhD9B,UAAsBygD,EAA0B,EAA1BA,WAAeF,EAAW,0CAC7D53C,EAAaL,qBAAWC,GAAxBI,SAER,OACE,eAAC,IAAD,2BACM43C,GADN,IAEEG,OAAQ,SAAAhjE,GAAK,OACX0iE,GAAWz3C,IAAa83C,EACtB,eAAC,IAAD,CAAUt8C,GAAG,MAEb,eAACrC,EAAD,eAAepkB,S,8BC2HVP,GA1IA,CACbwjE,eAAgB,CACdllE,QAAS,OACTwG,eAAgB,WAChB,SAAU,CACRyB,YAAa,IAEf,kBAAmB,CACjBA,YAAa,IAGjBk9D,YAAa,CACXnlE,QAAS,OACT8H,cAAe,MACf/G,WAAY,SACZ,mBAAoB,CAClBkH,YAAa,IAGjBm9D,yBAA0B,CACxBplE,QAAS,OACT8H,cAAe,MACftB,eAAgB,gBAChBzF,WAAY,SACZgH,aAAc,IAEhBg9B,aAAc,CACZpkC,OAAQ,GACRW,MAAO,EACPZ,OAAQ,QACR2kE,YAAa,GACb91D,YAAa/S,IAEf8oE,UAAW,CACTtlE,QAAS,OACT8H,cAAe,MACf,QAAS,CACPG,YAAa,IAEf,kBAAmB,CACjBA,YAAa,IAGjBs9D,SAAU,CACRvlE,QAAS,OACT8H,cAAe,MACf/G,WAAY,SACZ,QAAS,CACPkH,YAAa,IAEf,kBAAmB,CACjBA,YAAa,IAGjBu9D,qBAAsB,CACpB9+D,UAAW,EACXqB,aAAc,EACd,SAAU,CACRtJ,SAAU,KAGdgnE,eAAgB,CACdzlE,QAAS,OACT8H,cAAe,MACf/G,WAAY,SACZ,MAAO,CACL4F,WAAY,IAGhB++D,iBAAkB,CAChB/mE,WAAY,QAEdgnE,OAAQ,CACNrnE,MAAO,WAETsnE,QAAS,CACPtnE,MAAO3C,GAGTkqE,mBAAoB,CAClB7lE,QAAS,OACT8H,cAAe,MACftB,eAAgB,gBAChBuB,aAAc,IAEhB+9D,gBAAiB,CACf9lE,QAAS,OACT8H,cAAe,UAEjBi+D,iBAAkB,CAChBr/D,UAAW,GACX1G,QAAS,OACT8H,cAAe,MACf,QAAS,CACPG,YAAa,GACb,eAAgB,CACdA,YAAa,KAInB+9D,YAAa,CACXhmE,QAAS,OACT8H,cAAe,MACf/G,WAAY,SACZ,SAAU,CACRkH,YAAa,IAEf,kBAAmB,CACjBA,YAAa,IAGjBg+D,gBAAiB,CACf3kE,MAAO,KAET4kE,WAAY,CACV5kE,MAAO,GACPX,OAAQ,GACRE,aAAc,GACd5E,gBAAiBT,GAEnB2qE,YAAa,CACX7kE,MAAO,GACPX,OAAQ,GACRE,aAAc,GACd5E,gBAAiBR,GAEnB0uD,OAAQ,CACN7oD,MAAO,GACPX,OAAQ,GACRE,aAAc,GACd5E,gBAAiB,QAEnBmqE,iBAAkB,CAChBpmE,QAAS,OACT8H,cAAe,QCjIbtG,GAAYC,YAAWC,IAcd2kE,GAZK,SAAC,GAA2C,IAAzCC,EAAwC,EAAxCA,YAAaC,EAA2B,EAA3BA,cAAex0D,EAAY,EAAZA,MAC3C7P,EAAUV,KAEhB,OACE,wBAAMK,UAAWK,EAAQijE,YAAzB,YACKoB,GAAiB,eAACA,EAAD,CAAe5lE,OAAQ,OACxC2lE,GAAeA,EAClB,eAAC5jE,GAAD,UAAIqP,Q,UCYKrQ,GA1BA,CACb8kE,aAAc,CACZx/D,SAAU,WACVC,IAAK,SAAAojB,GAAM,8BAAIA,QAAJ,IAAIA,OAAJ,EAAIA,EAAQnjB,SAAZ,QAAiB,GAC5BC,KAAM,SAAAkjB,GAAM,8BAAIA,QAAJ,IAAIA,OAAJ,EAAIA,EAAQjjB,SAAZ,QAAiB,GAC7B9F,MAAO,IACPR,QAAS,GACTD,aAAc,GAEhB4lE,uBAAwB,CACtBvmE,OAAQ,CAAC,CAAC,EAAG,EAAG,EAAG,KAErBwmE,uBAAwB,CACtBpoE,MAAOpD,GAETyrE,wBAAyB,CACvBjgE,UAAW,GACX,aAAc,CACZC,WAAY,GAEd,iBAAkB,CAChBD,UAAW,KCTXlF,GAAYC,YAAWC,IAEvBklE,GAAe,SAAC,GAOf,IANLv8C,EAMI,EANJA,OACAre,EAKI,EALJA,KACA66D,EAII,EAJJA,aACAC,EAGI,EAHJA,OACAnnD,EAEI,EAFJA,SACAonD,EACI,EADJA,aAEM7kE,EAAUV,GAAU6oB,GAEpB28C,EAAyBp8D,IAAW,YAAam8D,EAAa7sD,MAahE,CACEsiB,GAAiBqqC,EAAa,GAAI,SAClCrqC,GAAiBqqC,EAAa,GAAI,UAdpC,CACEzqC,GACEyqC,EAAa,GACb,KACgB,QAAhBC,EAAO5sD,KAAiB,eAAiB,SAE3CkiB,GACEyqC,EAAa,GACb,KACgB,QAAhBC,EAAO5sD,KAAiB,QAAU,UAQpC2sB,EAAej8B,MACnB,SAAC+vB,EAAKrmB,GAIJ,OAHAqmB,EAAIssC,QAAU92B,SAAS77B,EAAMgpB,MACP,WAAlBhpB,EAAMuvB,SAAsBlJ,EAAI1c,SACd,YAAlB3J,EAAMuvB,SAAuBlJ,EAAI9c,UAC9B8c,IAET,CAAEssC,OAAQ,EAAGhpD,OAAQ,EAAGJ,QAAS,GACjC7R,GAGF,OACE,gBAAC0E,GAAA,EAAD,CAAO7O,UAAWK,EAAQskE,aAA1B,UACE,eAAC3jE,GAAD,CAAO5C,UAAQ,EAAf,SACmB,QAAhB6mE,EAAO5sD,MAAkBtP,IAAW,YAAam8D,EAAa7sD,MAA9D,UACM8sD,EAAsB,GAD5B,cACoCA,EAAsB,IAD1D,UAEMA,EAAsB,MAE/B,gBAACtkE,GAAD,CAAGzC,UAAQ,EAAC4B,UAAWK,EAAQukE,uBAA/B,UACG77D,KAASoB,GAAO,IAChB+jC,GAAiBnlC,KAASoB,GAAO,cAAe,mBAEnD,gBAACtJ,GAAD,CAAGzC,UAAQ,EAAC4B,UAAWK,EAAQwkE,uBAA/B,UACGhpD,GAAmBmpB,EAAaogC,QADnC,IAC6CtnD,EAD7C,gBAGA,uBAAK9d,UAAWK,EAAQykE,wBAAxB,UACE,gBAACvjE,GAAD,CAAQnD,UAAQ,EAAhB,UACE,eAAC,GAAD,IACA,kCAAO4mC,EAAa5oB,OAApB,iBAEF,gBAAC7a,GAAD,CAAQnD,UAAQ,EAAhB,UACE,eAAC,GAAD,IACA,kCAAO4mC,EAAahpB,QAApB,yBAOKjc,kBAAKglE,IAAc,SAACt+C,EAAMunC,GAAP,OAAgBvnC,EAAK+B,SAAWwlC,EAAKxlC,U,oBCjEjE6V,GAAQ,SAAC,GAOR,IANLl0B,EAMI,EANJA,KACAkwB,EAKI,EALJA,SACAgrC,EAII,EAJJA,mBACAC,EAGI,EAHJA,iBACAC,EAEI,EAFJA,yBAGMvhE,GADF,EADJgmC,gBAEYpmB,iBAAO,OAIb4hD,EAAa,GACblnC,EAAe,IACfC,EAAc,KACdC,EAAeC,mBACnB,iBAAO,CACLr5B,IAAK,GACLZ,MAAO,GACPiJ,OAAQ,GACRnI,KAAM,QAER,IAGIkJ,EAASwqB,aAAkBqB,GAE3BorC,EAAmB,SAACp4C,EAAQq4C,GAQhC,IAPA,IAAMxkC,EAAQ,GACR/H,EAAQ,IAAIjwB,KAAKmkB,EAAO,IACxB+L,EAAM,IAAIlwB,KAAKmkB,EAAO,IAEtB/M,EAAOvX,KAAQowB,GAGd7Y,GAAQ8Y,GACb8H,EAAM/Y,KAAKpf,KAAQuX,IACnBA,EAAKqlD,YAAYrlD,EAAK4e,cAAgBwmC,GAGxC,OAAOxkC,GAGH0kC,EAAuBhpC,uBAC3B,SAACipC,EAAYC,GAAb,OACE/8D,KAAS,SAAA6K,GACP,IAAMmyD,EAAY,IAAI78D,KAAK0K,EAAGlL,SAASq5B,QACrC,IAAI74B,KAAK0K,EAAGlL,SAASS,UACnB,IAAID,KAAK0K,EAAGlL,SAASswB,oBAAsBiF,GAC3CzvB,GAEE9F,EAAU,IAAIQ,KAAK68D,GAEzB,OACGF,EAAW3mC,cAAgB4mC,EAAW5mC,eACrCx2B,EAAQw2B,eAAiB,IAAIh2B,KAAK28D,GAAY3mC,eAC9Cx2B,EAAQw2B,cAAgB,IAAIh2B,KAAK48D,GAAY5mC,eAC9C2mC,EAAW3mC,cAAgB4mC,EAAW5mC,eACrCx2B,EAAQw2B,eAAiB,IAAIh2B,KAAK28D,GAAY3mC,eAC9Cx2B,EAAQw2B,cAAgB,IAAIh2B,KAAK48D,GAAY5mC,gBAEhD/0B,KACL,CAACA,EAAMqE,IAGHw3D,EAAwBppC,uBAC5B,SAACipC,EAAYC,GAAb,OACE/8D,MACE,SAAC+vB,EAAKrmB,GAKJ,MAJsB,WAAlBA,EAAMuvB,UACRlJ,EAAI1c,QAAU4Y,KAAUviB,EAAMgpB,MAAMqF,YAChB,YAAlBruB,EAAMuvB,UACRlJ,EAAI9c,SAAWgZ,KAAUviB,EAAMgpB,MAAMqF,YAChChI,IAET,CAAE1c,OAAQ,EAAGJ,QAAS,GACtB4pD,EAAqBC,EAAYC,MAErC,CAACF,IAGGrgE,EAAIs3B,cAEPxP,OAAO,CACNuM,GAAMqsC,aAAW,IAAI/8D,OACrB0wB,GAAMnR,aAAI,CAAE2X,KAAM,GAAK6lC,aAAW,IAAI/8D,UAEvCg9D,WAAW,CAAC1nC,EAAal5B,KAAMi5B,EAAcC,EAAah6B,QAEvD2hE,EAAwBp9D,KAAM,SAAA6K,GAClC,IAAMiyD,EAAa98D,KAAQ6K,GAC3BA,EAAG+xD,YAAY/xD,EAAGsrB,cAAgB,GAClC,IAAM4mC,EAAa/8D,KAAQ6K,GAC3B,MAAO,CAACiyD,EAAYD,EAAqBC,EAAYC,MACpD/8D,KAAO08D,EAAiBlgE,EAAE8nB,SAAU,KAEjC+4C,EAAmBr9D,KAAM,SAAA6K,GAC7B,IAAMiyD,EAAa98D,KAAQ6K,GAC3BA,EAAG+xD,YAAY/xD,EAAGsrB,cAAgB,GAClC,IAAM4mC,EAAa/8D,KAAQ6K,GAC3B,MAAO,CAACiyD,EAAYG,EAAsBH,EAAYC,MACrD/8D,KAAO08D,EAAiBlgE,EAAE8nB,SAAU,KAEjChoB,EAAIw3B,iBAEPxP,OAAO,CACN,EAIM,IAHNwP,OACEupC,EAAiB36D,KAAI,SAAAmI,GAAE,OAAIA,EAAG,OAC9B,SAAAtQ,GAAC,OAAIA,EAAE8Y,OAAS9Y,EAAE0Y,WAEhB6gB,OACEupC,EAAiB36D,KAAI,SAAAmI,GAAE,OAAIA,EAAG,OAC9B,SAAAtQ,GAAC,OAAIA,EAAE8Y,OAAS9Y,EAAE0Y,WAEpB,KAEL4hB,MAAM,CAACU,EAAeE,EAAa/wB,OAAQ+wB,EAAap5B,MAErD67B,EAAarE,uBACjB,SAAAY,GAAC,OACCA,EACGJ,KACC,YAFJ,uBAGoBkB,EAAeE,EAAa/wB,OAHhD,MAKGrL,KACCy6B,cACct3B,GACX27B,MAAMrE,YAAYkC,MAAM,IACxBoC,WAAWtE,cAAc,aAElC,CAAC2B,EAAcj5B,IAGX87B,EAAazE,uBACjB,SAAAY,GAAC,OACCA,EACGJ,KAAK,YADR,oBACkCoB,EAAal5B,KAD/C,SAEGlD,KACCy6B,YACYx3B,GACT67B,MAAM5C,MACN+nC,SAAS,GACTllC,WAJH,KAMD/+B,MAAK,SAAAo7B,GAAC,OAAIA,EAAE4D,OAAO,WAAWnZ,cACnC,CAACuW,EAAcn5B,IAGXihE,EAAqB1pC,uBACzB,SAAAY,GAAC,OACCA,EACGJ,KAAK,SAAU9iC,IACf+iC,OAAO,KACPC,UAAU,QACVnzB,KAAKs7D,EAAiBlgE,EAAE8nB,SAAU,IAClCkU,KAAK,QACLnE,KAAK,MAAM,SAAA95B,GACV,IAAMijE,EAAShhE,EAAEjC,GACXkjE,EAAYf,EAAiBlgE,EAAE8nB,SAAU,GAC/C,OAAOk5C,IAAWhhE,EAAEihE,EAAUz9D,KAASy9D,GAAa,IAChDD,EAAS,EACT,GAAMA,KAEXnpC,KAAK,MAAM,SAAA95B,GACV,IAAMijE,EAAShhE,EAAEjC,GACXkjE,EAAYf,EAAiBlgE,EAAE8nB,SAAU,GAC/C,OAAOk5C,IAAWhhE,EAAEihE,EAAUz9D,KAASy9D,GAAa,IAChDD,EAAS,EACT,GAAMA,KAEXnpC,KAAK,KAAMoB,EAAap5B,KACxBg4B,KAAK,KAAMkB,EAAeE,EAAa/wB,UAC5C,CAAC+wB,EAAcj5B,IAGXkhE,EAA2B7pC,uBAC/B,SAAAY,GAAC,OACCA,EACGH,OAAO,KACPC,UAAU,QACVnzB,KAAKs7D,EAAiBlgE,EAAE8nB,SAAU,IAClCkU,KAAK,QACLnE,KAAK,KAAK,SAAA95B,GAAC,OAAIiC,EAAEjC,MACjB85B,KAAK,IAAKoB,EAAap5B,KACvBg4B,KAAK,SAAS,SAAA95B,GACb,IAAMijE,EAAS7xD,KAAK6wB,MAAa,IAAPhgC,EAAEjC,IAAY,IAClC49B,EAAQukC,EAAiBlgE,EAAE8nB,SAAU,GAAG5hB,KAAI,SAAAmI,GAAE,OAAIrO,EAAEqO,MAEpDuD,EAAQpO,MAAY,SAAA6K,GAAE,OAAIA,IAAO2yD,IAAQrlC,GACzCzhC,EACJ0X,EAAQ,IAAMpO,KAASm4B,GAAS,EAAIA,EAAM/pB,EAAQ,GAAK+pB,EAAM/pB,GAE/D,OAAOzC,KAAK6wB,MAAc,IAAR9lC,GAAe,OAElC29B,KAAK,SAAUkB,EAAeE,EAAa/wB,OAAS+wB,EAAap5B,KACjEg4B,KAAK,SAAU,eACfA,KAAK,OAAQ,eACbspC,GAAG,aAAa,SAAApjE,GACf,IAAMu2B,EAAO9wB,KAAQ,IAAIG,KAAK5F,EAAE1B,OAAO+kE,WACjC7iC,EAAY/6B,KAAQ8wB,GAC1BA,EAAK8rC,YAAY9rC,EAAKqF,cAAgB,GACtC,IAAM0nC,EAAU79D,KAAQ8wB,GAElBgtC,EAAeV,EAAsBpiD,MAAK,SAAAnQ,GAAE,OAChD7K,KAAS+6B,EAAWlwB,EAAG,OACvB,GAEIkzD,EACE/9D,KAAQzF,EAAE1B,OAAOwJ,wBAAwB7F,GAD3CuhE,EAEG/9D,KACLzF,EAAE1B,OAAOwJ,wBAAwB7F,EAC/BjC,EAAE1B,OAAOwJ,wBAAwB3L,OAIjCsnE,EACJzjE,EAAE1B,OAAO2D,EAAEyhE,QAAQv0D,MAAQ,OACvBq0D,EAhNe,GAiNfA,EAlNc,IACC,GAkNfG,EAASl+D,KAAQzF,EAAE1B,OAAOwJ,wBAAwB/F,GAExDkgE,EAAyB,CAACqB,EAAS9iC,IACnCwhC,EAAiBuB,GACjBxB,EAAmB,CACjB9/D,EAAGmP,KAAK6wB,MAAMwhC,GACd1hE,EAAGqP,KAAK6wB,MAAM0hC,KAGhBpqC,UAAA,sBAAyBt3B,EAAEjC,EAAE1B,OAAO+kE,YAAavpC,KAC/C,OACA/iC,OAGHqsE,GAAG,cAAc,SAAApjE,GAChBu5B,UAAA,sBAAyBt3B,EAAEjC,EAAE1B,OAAO+kE,YAAavpC,KAC/C,OACA,eAEFmoC,EAAyB,MACzBD,EAAiB,MACjBD,EAAmB,WAEzB,CACE7mC,EACA2nC,EACAd,EACAC,EACAC,EACAhgE,IAIE2hE,EAAkBtqC,uBACtB,SAAAY,GAAC,OACCA,EACGH,OAAO,KACPC,UAAU,QACVnzB,KAAKs7D,EAAiBlgE,EAAE8nB,SAAU,IAClCkU,KAAK,QACLnE,KAAK,MAAM,SAAA95B,GAAC,2BAAkBiC,EAAEjC,OAChC85B,KAAK,KAAK,SAAA95B,GAAC,OAAIiC,EAAEjC,MACjB85B,KAAK,IAAKoB,EAAap5B,KACvBg4B,KAAK,SAAS,SAAA95B,GACb,IAAMijE,EAAS7xD,KAAK6wB,MAAa,IAAPhgC,EAAEjC,IAAY,IAClC49B,EAAQukC,EAAiBlgE,EAAE8nB,SAAU,GAAG5hB,KAAI,SAAAmI,GAAE,OAAIrO,EAAEqO,MAEpDuD,EAAQpO,MAAY,SAAA6K,GAAE,OAAIA,IAAO2yD,IAAQrlC,GACzCzhC,EACJ0X,EAAQ,IAAMpO,KAASm4B,GAAS,EAAIA,EAAM/pB,EAAQ,GAAK+pB,EAAM/pB,GAE/D,OAAOzC,KAAK6wB,MAAc,IAAR9lC,GAAe,OAElC29B,KAAK,SAAUkB,EAAeE,EAAa/wB,OAAS+wB,EAAap5B,KACjEg4B,KAAK,SAAU,eACfA,KAAK,OAAQ,iBAClB,CAACoB,EAAcj5B,IAGXo8B,EAAkB/E,uBACtB,kBACEC,aACa,cACV/mB,MAAM,SAAUrb,IAChBqb,MAAM,OAAQrb,IACdqb,MAAM,eAAgB,IACtBA,MAAM,cAAe3a,MAC1B,IAGIgsE,EAAavqC,uBACjB,SAAAY,GACEA,EAAEF,UAAU,QACTnzB,KAAKpB,KAAO08D,EAAiBlgE,EAAE8nB,SAAU,KACzCkU,KAAK,QACLnE,KAAK,SAAUzjC,GACfyjC,KAAK,OAAQzjC,GACbyjC,KAAK,KAAK,SAAA95B,GACT,OAAOiC,EAAEjC,GAAKkiE,KAEfpoC,KAAK,KAAK,SAAA95B,GACT,IAAMoiE,EAAW38D,MAAO,SAAA6K,GAAE,OAAI7K,KAAS6K,EAAG,GAAItQ,KAAI8iE,GAClD,OAAO/gE,EAAEqgE,EAAS,GAAGtpD,QAAUoiB,EAAap5B,IAAMo5B,EAAa/wB,UAEhE2vB,KAAK,UAAU,SAAA95B,GACd,IAAMoiE,EAAW38D,MAAO,SAAA6K,GAAE,OAAI7K,KAAS6K,EAAG,GAAItQ,KAAI8iE,GAClD,OAAOr9D,KACL,EACAu1B,EACAA,EACEj5B,EAAEqgE,EAAS,GAAGtpD,QACdoiB,EAAa/wB,OACb+3D,MAGLpoC,KAAK,SAAS,SAAA95B,GACb,IAAMijE,EAAS7xD,KAAK6wB,MAAa,IAAPhgC,EAAEjC,IAAY,IAClC49B,EAAQukC,EAAiBlgE,EAAE8nB,SAAU,GAAG5hB,KAAI,SAAAmI,GAAE,OAAIrO,EAAEqO,MAEpDuD,EAAQpO,MAAY,SAAA6K,GAAE,OAAIA,IAAO2yD,IAAQrlC,GACzCzhC,EACJ0X,IAAUpO,KAASm4B,GAAS,EAAIA,EAAM/pB,EAAQ,GAAK+pB,EAAM/pB,GAC3D,OAAOzC,KAAK6wB,MAA6B,KAAtB9lC,EAAQ+lE,IAAqB,OAEjDpoC,KAAK,KAAM,OAEhB,CAAC73B,EAAGF,EAAGm5B,EAAc4nC,IAGjBgB,EAAcxqC,uBAClB,SAAAY,GACEA,EAAEF,UAAU,QACTnzB,KAAKpB,KAAO08D,EAAiBlgE,EAAE8nB,SAAU,KACzCkU,KAAK,QACLnE,KAAK,SAAUxjC,GACfwjC,KAAK,OAAQxjC,GACbwjC,KAAK,KAAK,SAAA95B,GACT,OAAOiC,EAAEjC,GAAKkiE,KAEfpoC,KAAK,KAAK,SAAA95B,GACT,IAAMoiE,EAAW38D,MAAO,SAAA6K,GAAE,OAAI7K,KAAS6K,EAAG,GAAItQ,KAAI8iE,GAClD,OACE/gE,EAAEqgE,EAAS,GAAGtpD,OAASspD,EAAS,GAAG1pD,SACnCwiB,EAAap5B,IACbo5B,EAAa/wB,UAGhB2vB,KAAK,UAAU,SAAA95B,GACd,IAAMoiE,EAAW38D,MAAO,SAAA6K,GAAE,OAAI7K,KAAS6K,EAAG,GAAItQ,KAAI8iE,GAClD,OAAOr9D,KACL,EACAu1B,EACAA,EACEj5B,EAAEqgE,EAAS,GAAG1pD,SACdwiB,EAAa/wB,OACb+3D,MAGLpoC,KAAK,SAAS,SAAA95B,GACb,IAAMijE,EAAS7xD,KAAK6wB,MAAa,IAAPhgC,EAAEjC,IAAY,IAClC49B,EAAQukC,EAAiBlgE,EAAE8nB,SAAU,GAAG5hB,KAAI,SAAAmI,GAAE,OAAIrO,EAAEqO,MAEpDuD,EAAQpO,MAAY,SAAA6K,GAAE,OAAIA,IAAO2yD,IAAQrlC,GACzCzhC,EACJ0X,IAAUpO,KAASm4B,GAAS,EAAIA,EAAM/pB,EAAQ,GAAK+pB,EAAM/pB,GAC3D,OAAOzC,KAAK6wB,MAA6B,KAAtB9lC,EAAQ+lE,IAAqB,OAEjDpoC,KAAK,KAAM,OAEhB,CAAC73B,EAAGF,EAAGm5B,EAAc4nC,IAGjBnkC,EAAYrF,uBAAY,WAC5B,IAAMp9B,EAAMq9B,UACF74B,EAAImH,SACXiyB,KAAK,UAAW,CAAC,EAAG,EAAGmB,EAAaD,IAWvC,OATA9+B,EAAI69B,OAAO,KAAKj7B,KAAK6+B,GACrBzhC,EAAI69B,OAAO,KAAKj7B,KAAKi/B,GACrB7hC,EAAI69B,OAAO,KAAKj7B,KAAKkkE,GACrB9mE,EAAI69B,OAAO,KAAKj7B,KAAK8kE,GACrB1nE,EAAI69B,OAAO,KAAKj7B,KAAKu/B,GACrBniC,EAAI69B,OAAO,KAAKj7B,KAAK+kE,GACrB3nE,EAAI69B,OAAO,KAAKj7B,KAAKglE,GACrB5nE,EAAI69B,OAAO,KAAKj7B,KAAKqkE,GAEdjnE,EAAIiiC,SACV,CACDR,EACAI,EACA6lC,EACAT,EACAH,EACAa,EACAxlC,EACAylC,IAUF,OAPAl8D,qBAAU,WACR2xB,UAAU74B,EAAImH,SACXmyB,UAAU,KACVrV,SACHga,MACC,CAACA,IAEG,sBAAKj+B,IAAKA,KAGJjE,kBACbs+B,IACA,SAAC5X,EAAMunC,GAAP,OACEjlD,KAAS0d,EAAKw+C,OAAQjX,EAAKiX,SAC3Bl8D,KAAS0d,EAAK4gD,YAAarZ,EAAKqZ,cAChCt+D,KAAS0d,EAAKujB,gBAAiBgkB,EAAKhkB,oBC7ZlC3L,GAAQ,SAAC,GAOR,IAAD,EANJl0B,EAMI,EANJA,KACA86D,EAKI,EALJA,OACA5qC,EAII,EAJJA,SACAgrC,EAGI,EAHJA,mBACAC,EAEI,EAFJA,iBACAC,EACI,EADJA,yBAEMvhE,EAAM4f,iBAAO,MAIb0a,EAAe,IACfC,EAAc,KACdC,EAAeC,mBACnB,iBAAO,CACLr5B,IAAK,GACLZ,MAAO,GACPiJ,OAAQ,GACRnI,KAAM,QAER,IAGIkJ,EAASwqB,aAAkBqB,GAC3BqE,EAAMx1B,KAAK+zB,MAAQzuB,EAEnBmwB,EAAgB,CACpB2oC,IAAK,CAAC5oC,EAAMR,GAAKQ,GACjB6oC,KAAM,CAAC7oC,EAAMP,GAAMO,GACnB8oC,MAAO,CAAC9oC,EAAMN,GAAOM,IAGjBE,EAAaH,mBACjB,iBAAO,CACL6oC,IAAK,CACHzoC,KAAM,GACNve,KAAM,KACNwe,KAAMjC,WAAWkC,MAAM,GACvBC,YAAa,SAEfuoC,KAAM,CACJ1oC,KAAM,EACNve,KAAM,MACNwe,KAAMjC,UAAUkC,MAAM,GACtBC,YAAa,SAEfwoC,MAAO,CACL3oC,KAAM,GACNve,KAAM,MACNwe,KAAMjC,UAAUkC,MAAM,GACtBC,YAAa,SAGjB,IAGII,EAA6BxC,uBAAY,SAAAt5B,GAC7C,IAAM+7B,EAAc,IAAIn2B,KAAK5F,GACvBg8B,EAAiBD,EAAYF,aAC7BI,EAAqBF,EAAYG,YACjCC,EAAmBJ,EAAYK,cAE/BC,EAAe,IAAIz2B,KAAKm2B,EAAYl2B,WAC1Cw2B,EAAaC,WAAWN,EAAiB,GAEzC,IAAMO,EAAkBF,EAAaR,aAC/BW,EAAsBH,EAAaH,YACnCO,EAAoBJ,EAAaD,cAEjCM,EAAaC,MAAMC,KAAKD,MAAM,IAAIx0B,KAAI,SAAC00B,EAAGt+B,GAAJ,OAC1C64B,aAAO,MAAOjS,aAAI,CAAE2X,KAAMv+B,GAAKw+B,aAAY,IAAIn3B,WAG3Co3B,EAASL,MAAMC,KAAKD,MAAM,KAAKx0B,KAAI,SAAC00B,EAAGt+B,GAAJ,OACvC64B,aAAO,MAAOjS,aAAI,CAAE6X,OAAQz+B,GAAK0+B,aAAY,IAAIr3B,WAGnD,MAAO,CACLs3B,SACEf,IAAqBM,EACjBO,EAAOP,GADX,UAEOC,EAAWF,GAFlB,YAE0CD,GAC5C10B,QACEs0B,IAAqBM,EACjBO,EAAOb,GADX,UAEOO,EAAWT,GAFlB,YAEyCD,MAE5C,IAEGmB,EAAa7D,uBACjB,SAAAvP,GAQE,IAPA,IAAM5lB,EAAS,GAETi5B,EAAY,SAAAp9B,GAChB,IAAMgd,EAAOse,EAAWqmC,EAAO5sD,MAAMiI,KACrC,OAAO,IAAIpX,KAAKwL,KAAKisB,KAAKr9B,EAAEs9B,UAAYtgB,GAAQA,IAGzCze,EAAI,EAAGA,GAAK+8B,EAAWqmC,EAAO5sD,MAAMwmB,KAAMh9B,IAAK,CACtD,IAAMg/B,EAAW,IAAI33B,KAAKw1B,EAAM78B,EAAI+8B,EAAWqmC,EAAO5sD,MAAMiI,MACxDogB,EAAUG,GAAYxT,EAAO,KAC7BwT,EAAWxT,EAAO,IACtB5lB,EAAO0gB,KAAKuY,EAAUG,KAGxB,OAAOp5B,IAET,CAACi3B,EAAKE,EAAYqmC,EAAO5sD,OAGrBovD,EAAa7qC,uBACjB,SAAAvP,GACE,IAAM5lB,EAAS,GAEfA,EAAO0gB,KAAKkF,EAAO,IAOnB,IALA,IAAMqT,EAAY,SAAAp9B,GAChB,IAAMgd,EAAOse,EAAWqmC,EAAO5sD,MAAMiI,KACrC,OAAO,IAAIpX,KAAKwL,KAAKisB,KAAKr9B,EAAEs9B,UAAYtgB,GAAQA,IAGzCze,EAAI,EAAGA,GAAK+8B,EAAWqmC,EAAO5sD,MAAMwmB,KAAMh9B,IAAK,CACtD,IAAMg/B,EAAW,IAAI33B,KAAKw1B,EAAM78B,EAAI+8B,EAAWqmC,EAAO5sD,MAAMiI,MACxDogB,EAAUG,GAAY,IAAI33B,KAAKmkB,EAAO,MACtCwT,EAAW,IAAI33B,KAAKmkB,EAAO,KAC/B5lB,EAAO0gB,KAAKuY,EAAUG,KAKxB,OAFAp5B,EAAO0gB,KAAKkF,EAAO,IAEZ5lB,IAET,CAACi3B,EAAKE,EAAYqmC,EAAO5sD,OAGrB9S,EAAIs3B,cAEPxP,OAAOsR,EAAcsmC,EAAO5sD,OAC5BulB,MAAM,CAACY,EAAal5B,KAAMi5B,EAAcC,EAAah6B,QAElDa,EAAIw3B,iBAEPxP,OAAO,CACN,EACgE,MAAhE,UAACwP,OAAO1yB,GAAM,SAAA7G,GAAC,OAAI,IAAI0xB,KAAU1xB,EAAEm4B,MAAMqF,qBAAzC,QAAwD,OAEzDC,OACAnD,MAAM,CAACU,EAAeE,EAAa/wB,OAAQ+wB,EAAap5B,MAErDsiE,EAAkB,SAACC,EAAaC,GAQpC,IAPA,IAAMC,EAAe,CACnBD,EAAO,IADY,mBAEhB7+D,KAAS,SAAA6K,GAAE,OAAIA,EAAKg0D,EAAO,IAAMh0D,EAAKg0D,EAAO,KAAID,IAFjC,CAGnBC,EAAO,KAGHpB,EAAY,GACT3kE,EAAI,EAAGA,EAAIgmE,EAAgB9lE,OAAS,EAAGF,IAC9C2kE,EAAUr+C,KAAK,CAAC0/C,EAAgBhmE,GAAIgmE,EAAgBhmE,EAAI,KAG1D,OAAO2kE,GAkBHvlC,EAAarE,uBACjB,SAAAY,GAAC,OACCA,EACGJ,KACC,YAFJ,uBAGoBkB,EAAeE,EAAa/wB,OAHhD,MAKGrL,KACCy6B,cACct3B,GACX27B,MAAMtC,EAAWqmC,EAAO5sD,MAAMymB,MAC9BqC,YAAW,SAAA79B,GACV,OAAOu5B,cAAc+B,EAAWqmC,EAAO5sD,MAAM2mB,YAAtCnC,CACLv5B,EAAE6F,UAAY7F,EAAE01B,oBAAsBiF,QAI7C77B,MAAK,SAAAo7B,GAAC,OAAIA,EAAE4D,OAAO,WAAWnZ,YAC9B7lB,MAAK,SAAAo7B,GAAC,OACLA,EACGH,OAAO,QACPD,KAAK,KAAMoB,EAAal5B,MACxB83B,KAAK,MAAM,IAAgBoB,EAAap5B,IAAMo5B,EAAa/wB,QAC3D2vB,KAAK,KAAMoB,EAAal5B,MACxB83B,KAAK,SAAUpjC,GACfojC,KAAK,eAAgB,QAE9B,CAACoB,EAAcI,EAAYqmC,EAAO5sD,KAAM9S,IAGpC87B,EAAazE,uBACjB,SAAAY,GAAC,OACCA,EACGJ,KAAK,YADR,oBACkCoB,EAAal5B,KAD/C,SAEGlD,KAAKy6B,YAAYx3B,GAAG67B,MAAM5C,OAC1Bl8B,MAAK,SAAAo7B,GAAC,OAAIA,EAAE4D,OAAO,WAAWnZ,YAC9B7lB,MAAK,SAAAo7B,GAAC,OACLA,EACGF,UAAU,cACV9oB,QAAO,SAAAlR,GAAC,OAAU,IAANA,KACZwkE,QACA1qC,KAAK,KAAMmB,EAAcC,EAAah6B,MAAQg6B,EAAal5B,MAC3D83B,KAAK,eAAgB,GACrBA,KAAK,SAAUpjC,QAExB,CAACwkC,EAAcn5B,IAGXi8B,EAAY1E,uBAChB,SAAAY,GACEA,EAAEJ,KAAK,SAAU9iC,IACd8iC,KAAK,OAAQ9iC,IAEb8H,MAAK,SAAAo7B,GAAC,OACLA,EACGH,OAAO,KACPC,UAAU,QACVnzB,KAAKs2B,EAAWl7B,EAAE8nB,WAClBkU,KAAK,QACLnE,KAAK,MAAM,SAAA95B,GAAC,MAAI,GAAMiC,EAAEjC,MACxB85B,KAAK,MAAM,SAAA95B,GAAC,MAAI,GAAMiC,EAAEjC,MACxB85B,KAAK,KAAMoB,EAAap5B,KACxBg4B,KAAK,KAAMkB,EAAeE,EAAa/wB,WAG3CrL,MAAK,SAAAo7B,GAAC,OACLA,EACGH,OAAO,KACPC,UAAU,QACVnzB,KACC0yB,YACYx3B,GACTm8B,QACAN,MAAM5C,OAEViD,KAAK,QACLnE,KAAK,MAAM,SAAA95B,GAAC,MAAI,GAAM+B,EAAE/B,MACxB85B,KAAK,MAAM,SAAA95B,GAAC,MAAI,GAAM+B,EAAE/B,MACxB85B,KAAK,KAAMoB,EAAal5B,MACxB83B,KAAK,KAAMmB,EAAcC,EAAah6B,UAG1CpC,MAAK,SAAAo7B,GAAC,OACLA,EACGH,OAAO,KACPC,UAAU,QACVnzB,KAAKs9D,EAAWliE,EAAE8nB,WAClBkU,KAAK,QACLnE,KAAK,KAAK,SAAA95B,GAAC,OAAIiC,EAAEjC,MACjB85B,KAAK,IAAKoB,EAAap5B,KACvBg4B,KAAK,SAAS,SAAA95B,GACb,IAAMijE,EAAS7xD,KAAK6wB,MAAa,IAAPhgC,EAAEjC,IAAY,IAKlCoiE,EA/GS,SAACc,EAAWD,GAAY,IAAD,EAChD,iBAAOx9D,MAAO,SAAA6K,GAAE,OAAI2yD,GAAU3yD,EAAG,IAAM2yD,GAAU3yD,EAAG,KAAI4yD,UAAxD,QAAsE,CAAC,EAAG,GA8G/CuB,CAJCL,EAChBD,EAAWliE,EAAE8nB,UAAU5hB,KAAI,SAAAmI,GAAE,OAAIc,KAAK6wB,MAAc,IAARhgC,EAAEqO,IAAa,OAC3DrO,EAAEq4B,SAE2C2oC,GAC/C,OAAO7xD,KAAK6wB,MAAoC,KAA7BmgC,EAAS,GAAKA,EAAS,KAAa,OAExDtoC,KACC,SACAkB,EAAeE,EAAa/wB,OAAS+wB,EAAap5B,KAEnDg4B,KAAK,SAAU,eACfA,KAAK,OAAQ,eACbspC,GAAG,aAAa,SAAApjE,GACf,IAAMijE,EAAS7xD,KAAK6wB,MAAiC,IAA3BjiC,EAAE1B,OAAO2D,EAAEyhE,QAAQv0D,OAAe,IAOtDuyD,EA5HS,SAACgD,EAAOxB,EAAWD,GAI5C,IAHA,IAAM0B,EAAmBl/D,KAAOA,KAAUy9D,IAGjC3kE,EAAI2kE,EAAUzkE,OAAS,EAAGF,GAAK,EAAGA,IACzC,GAAI0kE,EAAS0B,EAAiBpmE,GAC5B,MAAO,CAACmmE,EAAMnmE,GAAImmE,EAAMnmE,EAAI,IAsHDqmE,CANPT,EAAWliE,EAAE8nB,UACTq6C,EAChBD,EAAWliE,EAAE8nB,UAAU5hB,KAAI,SAAAmI,GAAE,OAAIc,KAAK6wB,MAAc,IAARhgC,EAAEqO,IAAa,OAC3DrO,EAAEq4B,SAGsD2oC,GACpDM,EAAe18D,EAAKqK,QAAO,SAAAZ,GAC/B,IAAMlL,EAAU,IAAIQ,KAAK0K,EAAGlL,SACtBq9D,EAAYr9D,EAAQq5B,QAAQr5B,EAAQS,UAAYqF,GACtD,OACEu3D,EAAY,IAAI78D,KAAK87D,EAAa,KAClCe,GAAa,IAAI78D,KAAK87D,EAAa,OAIjC8B,EACE/9D,KAAQzF,EAAE1B,OAAOwJ,wBAAwB7F,GAD3CuhE,EAEG/9D,KACLzF,EAAE1B,OAAOwJ,wBAAwB7F,EAC/BjC,EAAE1B,OAAOwJ,wBAAwB3L,OAIjCsnE,EACJzjE,EAAE1B,OAAO2D,EAAEyhE,QAAQv0D,MAAQ,OACvBq0D,EA9SW,GA+SXA,EAhTU,IACC,GAkTXG,EAASl+D,KAAQzF,EAAE1B,OAAOwJ,wBAAwB/F,GAExDkgE,EAAyBP,GACzBM,EAAiBuB,GACjBxB,EAAmB,CACjB9/D,EAAGmP,KAAK6wB,MAAMwhC,GACd1hE,EAAGqP,KAAK6wB,MAAM0hC,KAGhBpqC,UAAUv5B,EAAE1B,QAAQw7B,KAAK,OAAQ/iC,OAElCqsE,GAAG,cAAc,SAAApjE,GAChBu5B,UAAUv5B,EAAE1B,QAAQw7B,KAAK,OAAQ,eACjCmoC,EAAyB,MACzBD,EAAiB,MACjBD,EAAmB,YAIxBjjE,MAAK,SAAAo7B,GAAC,OACLA,EACGH,OAAO,KACPC,UAAU,QACVnzB,KACCs2B,EAAWl7B,EAAE8nB,UAAU7Y,QAAO,SAAAjP,GAC5B,MAAoB,QAAhB0/D,EAAO5sD,KAA2C,IAApB9S,EAAE25B,cACV,IAAnB35B,EAAE45B,iBAGZoC,KAAK,QACLnE,KAAK,QAAS,iBACdA,KAAK,MAAM,SAAA95B,GAAC,MAAI,GAAMiC,EAAEjC,MACxB85B,KAAK,MAAM,SAAA95B,GAAC,MAAI,GAAMiC,EAAEjC,MACxB85B,KAAK,KAAMoB,EAAap5B,IAAM,IAC9Bg4B,KAAK,KAAMkB,EAAeE,EAAa/wB,QACvC2vB,KAAK,eAAgB,GACrBmE,KAAK,WAGTn/B,MAAK,SAAAo7B,GAAM,IAAD,IACHjnB,EAAS,OAAGsmB,SAAH,IAAGA,IAAH,UAAGA,UACP,yBADI,iBAAG,EAEd4E,cAFW,aAAG,EAGdC,UAEJ,GAAKnrB,EAAL,CAEA,IAAM6I,EAAaqhB,EAAWl7B,EAAE8nB,UAAU7Y,QAAO,SAAAjP,GAC/C,MAAoB,QAAhB0/D,EAAO5sD,KAA2C,IAApB9S,EAAE25B,cACV,IAAnB35B,EAAE45B,gBAGLjW,EAASkW,EAA2BhgB,GAE1C,OAAOoe,EACJH,OAAO,QACPD,KAAK,IAAK7mB,EAAUhR,EAAI,IACxB63B,KAAK,IAAK7mB,EAAUlR,EAAI,IACxB+3B,KAAK,cAAe,OACpBA,KAAK,KAAM,SACX7T,KAAKL,EAAOsX,cAGhBp+B,MAAK,SAAAo7B,GAAM,IAAD,IACHjnB,EAAS,OAAGsmB,SAAH,IAAGA,IAAH,UAAGA,UACP,yBADI,iBAAG,EAEd4E,cAFW,aAAG,EAGdC,UAEJ,GAAKnrB,EAAL,CAEA,IAAM6I,EAAaqhB,EAAWl7B,EAAE8nB,UAAU7Y,QAAO,SAAAjP,GAC/C,MAAoB,QAAhB0/D,EAAO5sD,KAA2C,IAApB9S,EAAE25B,cACV,IAAnB35B,EAAE45B,gBAGLjW,EAASkW,EAA2BhgB,GAE1C,OAAOoe,EACJH,OAAO,QACPD,KAAK,IAAK7mB,EAAUhR,EAAI,IACxB63B,KAAK,IAAK7mB,EAAUlR,EAAI,IACxB+3B,KAAK,cAAe,SACpBA,KAAK,KAAM,SACX7T,KAAKL,EAAO/d,eAGrB,CACEqzB,EACAiC,EACArB,EACA75B,EACAF,EACA4/D,EACAwC,EACAt9D,EACAqE,EACA62D,EACAC,EACAC,IAIE5jC,EAAkB/E,uBACtB,kBACEC,aACa,cACV/mB,MAAM,SAAUrb,IAChBqb,MAAM,OAAQrb,IACdqb,MAAM,eAAgB,IACtBA,MAAM,cAAe3a,MAC1B,IAGIymC,EAAahF,uBACjB,kBACEC,aACa,QACV/mB,MAAM,SAAUpb,IAChBob,MAAM,OAAQpb,IACdob,MAAM,eAAgB,IACtBA,MAAM,cAAe3a,MAC1B,IAGI0mC,EAAcjF,uBAAY,WAC9BC,aAAa,cACV/mB,MAAM,SAAU9b,GAChB8b,MAAM,OAAQ9b,KAChB,IAEGmuE,EAAWvrC,uBACf,SAAAY,GACEA,EAAEJ,KAAK,SAAUpjC,GACdojC,KAAK,eAAgB,GACrBA,KAAK,mBAAoB,SACzBh7B,MAAK,SAAAo7B,GAAC,eACLA,EACGH,OAAO,QACPD,KACC,KACA,GAAM/3B,EAAC,UAACw3B,QAAQ1yB,GAAM,SAAA7G,GAAC,OAAI,IAAI0xB,KAAU1xB,EAAEm4B,MAAMqF,qBAA1C,QAAyD,IAEjE1D,KACC,KACA,GAAM/3B,EAAC,UAACw3B,QAAQ1yB,GAAM,SAAA7G,GAAC,OAAI,IAAI0xB,KAAU1xB,EAAEm4B,MAAMqF,qBAA1C,QAAyD,IAEjE1D,KAAK,KAAMoB,EAAal5B,MACxB83B,KAAK,KAAMmB,EAAcC,EAAah6B,YAG/C,CAACg6B,EAAcn5B,EAAG8E,IAGd23B,EAAWlF,uBACf,SAAAY,GACEA,EAAEF,UAAU,UACTnzB,KAAKA,GACLo3B,KAAK,UACLnE,KAAK,MAAM,SAAA95B,GACV,IAAMoF,EAAU,IAAIQ,KAAK5F,EAAEoF,SAC3B,OAAOnD,EAAEmD,EAAQq5B,QAAQr5B,EAAQS,UAAYqF,OAE9C4uB,KAAK,MAAM,SAAA95B,GAAC,OAAI+B,EAAE,IAAI2vB,KAAU1xB,EAAEm4B,MAAMqF,eACxC1D,KAAK,QAAQ,SAAA95B,GAAC,MAAmB,WAAdA,EAAE0+B,QAAuBroC,EAAOC,KACnDwjC,KAAK,IAAK,OAEf,CAACjzB,EAAMqE,EAAQjJ,EAAGF,IAGd48B,EAAYrF,uBAAY,WAC5B,IAAMp9B,EAAMq9B,UACF74B,EAAImH,SACXiyB,KAAK,UAAW,CAAC,EAAG,EAAGmB,EAAaD,IAWvC,OATA9+B,EAAI69B,OAAO,KAAKj7B,KAAKk/B,GACrB9hC,EAAI69B,OAAO,KAAKj7B,KAAK+lE,GACrB3oE,EAAI69B,OAAO,KAAKj7B,KAAK6+B,GACrBzhC,EAAI69B,OAAO,KAAKj7B,KAAKi/B,GACrB7hC,EAAI69B,OAAO,KAAKj7B,KAAKu/B,GACrBniC,EAAI69B,OAAO,KAAKj7B,KAAKw/B,GACrBpiC,EAAI69B,OAAO,KAAKj7B,KAAKy/B,GACrBriC,EAAI69B,OAAO,KAAKj7B,KAAK0/B,GAEdtiC,EAAIiiC,SACV,CACD0mC,EACA7mC,EACAL,EACAI,EACAS,EACAF,EACAC,EACAF,IAUF,OAPAz2B,qBAAU,WACR2xB,UAAU74B,EAAImH,SACXmyB,UAAU,KACVrV,SACHga,MACC,CAACA,IAEG,sBAAKj+B,IAAKA,KAGJjE,kBACbs+B,IACA,SAAC5X,EAAMunC,GAAP,OACEjlD,KAAS0d,EAAKw+C,OAAQjX,EAAKiX,SAC3Bl8D,KAAS0d,EAAKujB,gBAAiBgkB,EAAKhkB,oB,8BCrhBlC3L,GAAQ,SAAC,GAAmD,IAAjDl0B,EAAgD,EAAhDA,KAAMM,EAA0C,EAA1CA,SAAUqT,EAAgC,EAAhCA,SACzB9Z,GADyD,EAAtBgmC,gBAC7BpmB,iBAAO,OAGbwkD,EAAc,IAEd9pC,EAAe,IAEfE,EAAeC,mBACnB,iBAAO,CACLr5B,IAAK,GACLZ,MAAO,GACPiJ,OAAQ,GACRnI,KAAM,QAER,IAGI+iE,EAAgBt/D,KAAQ0B,GAIxB69D,EACJv/D,KAAS0B,IApBgB,EAqBrB49D,EACAt/D,KAAM,SAAA6K,GACJ,OAAK7K,IAAQs/D,EAAcz0D,IACpB,CAAEyE,KAAK,eAAD,OAAiBzE,GAAMzV,QAAQ,IADJkqE,EAAcz0D,KAErD7K,KAAQA,KAzBU,IA2BrBw/D,EAAax/D,MACjB,SAAC+vB,EAAKrmB,GAEJ,OADAqmB,EAAIrmB,EAAM4F,MAAQtP,KAAS,SAAA6K,GAAE,OAAIA,EAAGjI,WAAa8G,EAAM4F,OAAMlO,GACtD2uB,IAET,GACAwvC,GAuBIE,EAAkBz/D,MACtB,SAAC8lB,EAAG45C,GAAJ,OAAUA,EAAE,GAAK55C,EAAE,KACnB9lB,KAAM,SAAAib,GAAC,MAAI,CAACA,EAAE3L,MAtBQ1M,EAsBcqY,EAAE3L,KArBtCtP,MACE,SAAC+vB,EAAKrmB,GAAN,OAAgBqmB,EAAM9D,KAAUviB,EAAMgpB,MAAMqF,aAC5C,EACAynC,EAAW58D,MAJS,IAAAA,IAsBwB28D,IAG1CI,EAAc3/D,KA7DO,EA6DoBy/D,GAEzCG,EAAwB5/D,KAC5BA,KAAM,SAAA6/D,GAAC,MAAI,CAACA,EAAE,IArBiBj9D,EAqBYi9D,EAAE,GApB7C7/D,MACE,SAAC+vB,EAAKrmB,GAKJ,MAJsB,WAAlBA,EAAMuvB,UACRlJ,EAAI1c,QAAU4Y,KAAUviB,EAAMgpB,MAAMqF,YAChB,YAAlBruB,EAAMuvB,UACRlJ,EAAI9c,SAAWgZ,KAAUviB,EAAMgpB,MAAMqF,YAChChI,IAET,CAAE1c,OAAQ,EAAGJ,QAAS,GACtBusD,EAAW58D,MAVkB,IAAAA,IAqBoB+8D,IAG/CnjE,EAAIs3B,eAEPxP,OAAOq7C,GACP9qC,MAAM,CAACY,EAAal5B,KAlEH,KAkEuBk5B,EAAah6B,QACrDqkE,aAAaT,GAEV/iE,EAAIw3B,iBAEPxP,OAAO,CACN,EACmC,IAAnCwP,OAAO6rC,GAAa,SAAAplE,GAAC,OAAIA,EAAE,MAAYu5B,OAAO6rC,GAAa,SAAAplE,GAAC,OAAIA,EAAE,MAAM,KAEzEs6B,MAAM,CAACU,EAAeE,EAAa/wB,OAAQ+wB,EAAap5B,MAErD67B,EAAarE,uBACjB,SAAAY,GAAC,OACCA,EACGJ,KAAK,QAAS,YACdA,KACC,YAHJ,uBAIoBkB,EAAeE,EAAa/wB,OAJhD,MAMGrL,KACCy6B,cACct3B,GACX47B,YACC,SAAA79B,GAAC,gCACIyF,MAAO,SAAA6K,GAAE,OAAIA,EAAGyE,OAAS/U,EAAE,KAAIglE,GAAgBnqE,eADnD,QAEG,OAELkoE,SAAS,GACTyC,YAAY,OAErB,CAACtqC,EAAcj5B,EAAG+iE,IAGdS,EAAcnsC,uBAClB,SAAAY,GACEA,EAAEJ,KAAK,QAAS,YACbA,KACC,YAFJ,uBAGoBkB,EAAeE,EAAa/wB,OAHhD,MAKGrL,KACCy6B,cACct3B,GACX47B,YAAW,SAAA79B,GAAC,OACXyF,IAAA,eAA2BzF,EAAE,IAA7B,aAEOA,EAAE,GAAGsa,QAAQ,GAFpB,YAE0BE,MAE3BuoD,SAAS,GACTyC,YAAY,OAGrB,CAACtqC,EAAcj5B,EAAGuY,IAGdkrD,EAAsBpsC,uBAAY,WACtCC,aAAa,wBAAwBO,KAAK,aAAa,SAAS95B,GAC9D,IAAM2lE,GAAiB1jE,EAAEq4B,QAAQ,GAAKr4B,EAAEq4B,QAAQ,IA/HzB,EAgIvB,MAAM,aAAN,QAAqBqrC,EAAgB,KAAO3mE,KAAKo/B,UAAUjiC,MAAQ,EAAnE,aAED,CAAC8F,IAEE2jE,EAAuBtsC,uBAAY,WACvCC,aAAa,wBAAwBO,KAAK,aAAa,SAAS95B,GAC9D,IAAM2lE,GAAiB1jE,EAAEq4B,QAAQ,GAAKr4B,EAAEq4B,QAAQ,IAtIzB,EAuIvB,MAAM,aAAN,OAAoBqrC,EAAgB,KAAO3mE,KAAKo/B,UAAUjiC,MAAQ,EAAlE,aAED,CAAC8F,IAEE87B,EAAazE,uBACjB,SAAAY,GAAC,OACCA,EACGJ,KAAK,YADR,oBACkCoB,EAAal5B,KAD/C,SAEGlD,KACCy6B,YACYx3B,GACT67B,MAAM5C,MACN+nC,SAAS,GACTllC,WAJH,KAMD/+B,MAAK,SAAAo7B,GAAC,OAAIA,EAAE4D,OAAO,WAAWnZ,cACnC,CAACuW,EAAcn5B,IAGXs8B,EAAkB/E,uBACtB,kBACEC,aACa,cACV/mB,MAAM,SAAUrb,IAChBqb,MAAM,OAAQrb,IACdqb,MAAM,eAAgB,IACtBA,MAAM,cAAe3a,MAC1B,IAGImmC,EAAY1E,uBAChB,SAAAY,GACEA,EAAEJ,KAAK,SAAU9iC,IACd8iC,KAAK,OAAQ9iC,IAEb8H,MAAK,SAAAo7B,GAAC,OACLA,EACGH,OAAO,KACPC,UAAU,QACVnzB,KAAKpB,KAAOxD,EAAE8nB,WACdkU,KAAK,QACLnE,KAAK,MAAM,SAAA95B,GACV,IAAM6lE,EAAcpgE,MAAY,SAAA6K,GAAE,OAAI7K,KAAS6K,EAAItQ,KAAIiC,EAAE8nB,UAKnD+7C,EAAqB,MAFzB7jE,EAAEA,EAAE8nB,SAAS87C,IAAgB5jE,EAAEA,EAAE8nB,SAAS87C,EAAc,KAG1D,MAAO,GAAM5jE,EAAEjC,GAAK8lE,KAErBhsC,KAAK,MAAM,SAAA95B,GACV,IAAM6lE,EAAcpgE,MAAY,SAAA6K,GAAE,OAAI7K,KAAS6K,EAAItQ,KAAIiC,EAAE8nB,UAKnD+7C,EAAqB,MAFzB7jE,EAAEA,EAAE8nB,SAAS87C,IAAgB5jE,EAAEA,EAAE8nB,SAAS87C,EAAc,KAG1D,MAAO,GAAM5jE,EAAEjC,GAAK8lE,KAErBhsC,KAAK,KAAMoB,EAAap5B,KACxBg4B,KAAK,KAAMkB,EAAeE,EAAa/wB,aAGhD,CAAC+wB,EAAcj5B,IAGX4hE,EAAavqC,uBACjB,SAAAY,GACEA,EAAEF,UAAU,QACTnzB,KAAKpB,KAAU4/D,IACfpnC,KAAK,QACLnE,KAAK,OAAQzjC,GACbyjC,KAAK,KAAK,SAAA95B,GAAC,OAAIiC,EAAE,CAACjC,EAAE,GAAIA,EAAE,GAAG8Y,OAAS9Y,EAAE,GAAG0Y,aAC3CohB,KAAK,KAAK,SAAA95B,GAAC,OAAI+B,EAAE/B,EAAE,GAAG8Y,QAAUoiB,EAAap5B,IAAMo5B,EAAa/wB,UAChE2vB,KAAK,UAAU,SAAA95B,GAAC,OACfyF,KACE,EACAu1B,EACAA,EAAej5B,EAAE/B,EAAE,GAAG8Y,QAAUoiB,EAAa/wB,OAnNpC,OAsNZ2vB,KAAK,QAAS73B,EAAE8jE,aAChBjsC,KAAK,KAAM,OAEhB,CAACurC,EAAuBpjE,EAAGF,EAAGm5B,IAG1B4oC,EAAcxqC,uBAClB,SAAAY,GACEA,EAAEF,UAAU,QACTnzB,KAAKpB,KAAU4/D,IACfpnC,KAAK,QACLnE,KAAK,OAAQxjC,GACbwjC,KAAK,KAAK,SAAA95B,GAAC,OAAIiC,EAAE,CAACjC,EAAE,GAAIA,EAAE,GAAG8Y,OAAS9Y,EAAE,GAAG0Y,aAC3CohB,KACC,KACA,SAAA95B,GAAC,OACC+B,EAAE/B,EAAE,GAAG8Y,OAAS9Y,EAAE,GAAG0Y,SACrBwiB,EAAap5B,IACbo5B,EAAa/wB,UAEhB2vB,KAAK,UAAU,SAAA95B,GACd,OAAOyF,KACL,EACAu1B,EACAA,EACEj5B,EAAE/B,EAAE,GAAG0Y,SACPwiB,EAAa/wB,OACb+3D,MAGLpoC,KAAK,QAAS73B,EAAE8jE,aAChBjsC,KAAK,KAAM,OAEhB,CAACurC,EAAuBpjE,EAAGF,EAAGm5B,IAG1ByD,EAAYrF,uBAAY,WAC5B,IAAMp9B,EAAMq9B,UACF74B,EAAImH,SACXiyB,KAAK,UAAW,CAAC,EAAG,EA3PL,KA2PqBkB,IAYvC,OAVA9+B,EAAI69B,OAAO,KAAKj7B,KAAK6+B,GACrBzhC,EAAI69B,OAAO,KAAKj7B,KAAK2mE,GACrBvpE,EAAI69B,OAAO,KAAKj7B,KAAKi/B,GACrB7hC,EAAI69B,OAAO,KAAKj7B,KAAKu/B,GACrBniC,EAAI69B,OAAO,KAAKj7B,KAAKk/B,GACrB9hC,EAAI69B,OAAO,KAAKj7B,KAAK+kE,GACrB3nE,EAAI69B,OAAO,KAAKj7B,KAAKglE,GACrB5nE,EAAI69B,OAAO,KAAKj7B,KAAK4mE,GACrBxpE,EAAI69B,OAAO,KAAKj7B,KAAK8mE,GAEd1pE,EAAIiiC,SACV,CACDR,EACA8nC,EACAC,EACAE,EACA7nC,EACAM,EACAL,EACA6lC,EACAC,IAUF,OAPAl8D,qBAAU,WACR2xB,UAAU74B,EAAImH,SACXmyB,UAAU,KACVrV,SACHga,MACC,CAACA,IAEG,sBAAKj+B,IAAKA,KAGJjE,kBACbs+B,IACA,SAAC5X,EAAMunC,GAAP,OACEjlD,KAAS0d,EAAKw+C,OAAQjX,EAAKiX,SAC3Bl8D,KAAS0d,EAAKujB,gBAAiBgkB,EAAKhkB,oBC7SlCs/B,GAAe,SAAC,GASf,IARLn/D,EAQI,EARJA,KACA+6D,EAOI,EAPJA,aACAD,EAMI,EANJA,OACA5qC,EAKI,EALJA,SACAvc,EAII,EAJJA,SACAksB,EAGI,EAHJA,gBACAv/B,EAEI,EAFJA,SACA48D,EACI,EADJA,YACI,EAC0Ch9D,mBAAS,MADnD,mBACGk/D,EADH,KACoBlE,EADpB,OAEsDh7D,mBAAS,MAF/D,mBAEGm/D,EAFH,KAE0BjE,EAF1B,OAGsCl7D,mBAAS,MAH/C,mBAGGo/D,EAHH,KAGkBnE,EAHlB,KAkFJ,OACE,kCACIv8D,IAAQwgE,IACR,eAAC,GAAD,CACE/gD,OAAQ+gD,EACRvE,aAAcwE,EACdr/D,KAAMs/D,EACNxE,OAAQA,EACRnnD,SAAUA,EACVuc,SAAUA,EACV6qC,aAAcA,IAvFL,SAAAA,GACf,OAAQA,EAAa7sD,MACnB,IAAK,WACH,OACE,eAACqxD,GAAD,CACEv/D,KAAMA,EACN86D,OAAQA,EACR5qC,SAAUA,EACVgrC,mBAAoBA,EACpBE,yBAA0BA,EAC1BD,iBAAkBA,EAClBt7B,gBAAiBA,IAGvB,IAAK,oBAcL,IAAK,0BACH,OACE,eAAC2/B,GAAD,CACEx/D,KAAMA,EACN86D,OAAQA,EACR5qC,SAAUA,EACVgrC,mBAAoBA,EACpBE,yBAA0BA,EAC1BD,iBAAkBA,EAClBt7B,gBAAiBA,EACjBv/B,SAAU1B,KAAS,SAAA6K,GAAE,MAAgB,QAAZA,EAAGyE,OAAgB5N,GAC5CqT,SAAUA,IAGhB,IAAK,kBAeL,IAAK,wBACH,OACE,eAAC8rD,GAAD,CACEz/D,KAAMA,EACN86D,OAAQA,EACR5qC,SAAUA,EACVgrC,mBAAoBA,EACpBE,yBAA0BA,EAC1BD,iBAAkBA,EAClBt7B,gBAAiBA,EACjBv/B,SAAU1B,KAAS,SAAA6K,GAAE,MAAgB,QAAZA,EAAGyE,OAAgB5N,GAC5CqT,SAAUA,EACVupD,YAAaA,IAGnB,QACE,MAAM,IAAI7tB,MAAJ,wCAA2C0rB,KAiBlD2E,CAAS3E,OAKDnlE,kBAAKupE,ICvGd3pE,GAAYC,YAAWC,IAEvBsT,GAAU,CACd,CAAEkF,KAAM,wBAAyBla,QAAS,gBAC1C,CAAEka,KAAM,kBAAmBla,QAAS,WAGhC2rE,GAAa/gE,KACjB,SAAA6K,GAAE,MAAK,CACLyE,KAAMtP,KAAU6K,GAChBzV,QAASyV,KAEXqsB,MAAMC,KAAKD,MAAM,IAAIx0B,KAAI,SAAC00B,EAAGt+B,GAAJ,OACvB64B,aAAO,OAAQjS,aAAI,CAAE2X,KAAMv+B,GAAKw+B,aAAY,IAAIn3B,YA8GrC6gE,GA1GiB,SAAC,GAS1B,IARLpmE,EAQI,EARJA,MACAshE,EAOI,EAPJA,OACA96D,EAMI,EANJA,KACAM,EAKI,EALJA,SACAu/B,EAII,EAJJA,gBACAggC,EAGI,EAHJA,oBACA3vC,EAEI,EAFJA,SACAvc,EACI,EADJA,SAEMzd,EAAUV,KADZ,EAG8B0K,mBAAS8I,GAAQ,GAAGkF,MAHlD,mBAGG4xD,EAHH,KAGcC,EAHd,OAIkC7/D,mBAASy/D,GAAW,IAJtD,mBAIGzC,EAJH,KAIgB8C,EAJhB,KAMEC,EAAS,CACbhuD,OAAQ,sBAAKpc,UAAWK,EAAQgkE,aAChCroD,QAAS,sBAAKhc,UAAWK,EAAQikE,eAG7B91D,EAASwqB,aAAkBqB,GAE3BgwC,EAAgBthE,MACpB,SAAC+vB,EAAKrmB,GACJ,IAAM/J,EAAU,IAAIQ,KAAKuJ,EAAM/J,SAI/B,OAHAA,EAAQq5B,QACNr5B,EAAQS,UAAYT,EAAQswB,oBAAsBiF,GAASzvB,GAErD9F,EAAQ4hE,UACd,KAAK,EACHxxC,EAAIyxC,OAAOpiD,KAAK1V,GAChB,MACF,KAAK,EACHqmB,EAAI0xC,OAAOriD,KAAK1V,GAChB,MACF,KAAK,EACHqmB,EAAI2xC,QAAQtiD,KAAK1V,GACjB,MACF,KAAK,EACHqmB,EAAI4xC,UAAUviD,KAAK1V,GACnB,MACF,KAAK,EACHqmB,EAAI6xC,SAASxiD,KAAK1V,GAClB,MACF,KAAK,EACHqmB,EAAI8xC,OAAOziD,KAAK1V,GAChB,MACF,KAAK,EACHqmB,EAAI+xC,SAAS1iD,KAAK1V,GAClB,MACF,QACE,MAAM,IAAI+mC,MAAM,8BAEpB,OAAO1gB,IAET/vB,KAAYA,KAAM,SAAA6K,GAAE,MAAI,CAACA,EAAGyE,KAAM,MAAKyxD,KACvC3/D,GAGF,OACE,uCACE,uBAAKnK,UAAWK,EAAQ2jE,mBAAxB,UACE,uBAAKhkE,UAAWK,EAAQ4jE,gBAAxB,UACE,eAACxjE,GAAD,CAAIrC,UAAQ,EAAZ,SAAcuF,IACd,gBAAC6lB,GAAA,EAAD,CAAKxpB,UAAWK,EAAQ8jE,YAAxB,UACE,eAAC,GAAD,CAAaM,YAAa2F,EAAOhuD,OAAQlM,MAAO,YAChD,eAAC,GAAD,CAAau0D,YAAa2F,EAAOpuD,QAAS9L,MAAO,mBAGrD,uBAAKlQ,UAAWK,EAAQ6jE,iBAAxB,UACE,eAAC,GAAD,CACE/wD,QAASA,GACTnT,UAAWK,EAAQkkE,iBACnB9xD,MAAOw3D,EACP13D,SAAU,SAAAoM,GAAC,OAAIurD,EAAavrD,EAAE/c,OAAO6Q,UAEvC,eAAC,GAAD,CACEvC,MAAM,kBACN0gC,MAAOk5B,GACPx4B,QAASw4B,GAAW,GACpBr5B,aAAc42B,EACdv2B,qBAAsBq5B,IAExB,eAAC,GAAD,CACEj6D,MAAM,WACN4gC,qBAAsBk5B,EACtBp5B,MAAOnmC,EACP6mC,QAAS7mC,EAAS,GAClBgmC,aAAczG,UAIpB,eAAC,GAAD,CACEk7B,aAAcn8D,MAAO,SAAA6K,GAAE,OAAIA,EAAGyE,OAAS4xD,IAAzBlhE,CAAoCoK,IAClD8xD,OAAQA,EACR96D,KAAMkgE,EAAchD,EAAYhvD,MAChCgiB,SAAUA,EACVvc,SAAUA,EACVksB,gBAAiBA,EACjBv/B,SAAUA,EACV48D,YAAaA,QCxHf1nE,GAAYC,YAAWC,IAqEdirE,GAnEgB,SAAC,GAUzB,IATLnnE,EASI,EATJA,MACAuhE,EAQI,EARJA,aACAD,EAOI,EAPJA,OACA96D,EAMI,EANJA,KACAM,EAKI,EALJA,SACAu/B,EAII,EAJJA,gBACAggC,EAGI,EAHJA,oBACA3vC,EAEI,EAFJA,SACAvc,EACI,EADJA,SAEMzd,EAAUV,KAEVyqE,EAAS,CACbhuD,OAAQ,sBAAKpc,UAAWK,EAAQgkE,aAChCroD,QAAS,sBAAKhc,UAAWK,EAAQikE,cACjCx8D,YAAa,sBAAK9H,UAAWK,EAAQioD,SACrCyiB,QACE,sBAAKjsE,OAAO,KAAKW,MAAM,KAAvB,SACE,uBACEwD,OAAQjJ,EACRkJ,YAAY,IACZ2zB,gBAAgB,OAChBvzB,EAAE,oBAMV,OACE,uCACE,uBAAKtD,UAAWK,EAAQ2jE,mBAAxB,UACE,uBAAKhkE,UAAWK,EAAQ4jE,gBAAxB,UACE,eAACxjE,GAAD,CAAIrC,UAAQ,EAAZ,SAAcuF,IACd,gBAAC6lB,GAAA,EAAD,CAAKxpB,UAAWK,EAAQ8jE,YAAxB,UACE,eAAC,GAAD,CAAaM,YAAa2F,EAAOhuD,OAAQlM,MAAO,YAChD,eAAC,GAAD,CAAau0D,YAAa2F,EAAOpuD,QAAS9L,MAAO,aACjD,eAAC,GAAD,CACEu0D,YAAa2F,EAAOtiE,YACpBoI,MAAO,oBAET,eAAC,GAAD,CAAau0D,YAAa2F,EAAOW,QAAS76D,MAAO,kBAGrD,sBAAKlQ,UAAWK,EAAQ6jE,iBAAxB,SACE,eAAC,GAAD,CACEh0D,MAAM,WACN4gC,qBAAsBk5B,EACtBp5B,MAAOnmC,EACP6mC,QAAS7mC,EAAS,GAClBgmC,aAAczG,SAIpB,eAAC,GAAD,CACEk7B,aAAcA,EACdD,OAAQA,EACR96D,KAAMA,EACNkwB,SAAUA,EACVvc,SAAUA,EACVksB,gBAAiBA,EACjBv/B,SAAUA,QC/DZ9K,GAAYC,YAAWC,IAEvBsT,GAAU,CACd,CAAEkF,KAAM,0BAA2Bla,QAAS,gBAC5C,CAAEka,KAAM,oBAAqBla,QAAS,WAqDzB6sE,GAlDmB,SAAC,GAQ5B,IAPLrnE,EAOI,EAPJA,MACAshE,EAMI,EANJA,OACA96D,EAKI,EALJA,KACAM,EAII,EAJJA,SACAu/B,EAGI,EAHJA,gBACA3P,EAEI,EAFJA,SACAvc,EACI,EADJA,SAEMzd,EAAUV,KADZ,EAG8B0K,mBAAS8I,GAAQ,GAAGkF,MAHlD,mBAGG4xD,EAHH,KAGcC,EAHd,KAKEE,EAAS,CACbhuD,OAAQ,sBAAKpc,UAAWK,EAAQgkE,aAChCroD,QAAS,sBAAKhc,UAAWK,EAAQikE,eAGnC,OACE,uCACE,uBAAKtkE,UAAWK,EAAQ2jE,mBAAxB,UACE,uBAAKhkE,UAAWK,EAAQ4jE,gBAAxB,UACE,eAACxjE,GAAD,CAAIrC,UAAQ,EAAZ,SAAcuF,IACd,gBAAC6lB,GAAA,EAAD,CAAKxpB,UAAWK,EAAQ8jE,YAAxB,UACE,eAAC,GAAD,CAAaM,YAAa2F,EAAOhuD,OAAQlM,MAAO,YAChD,eAAC,GAAD,CAAau0D,YAAa2F,EAAOpuD,QAAS9L,MAAO,mBAGrD,sBAAKlQ,UAAWK,EAAQ6jE,iBAAxB,SACE,eAAC,GAAD,CACE/wD,QAASA,GACTnT,UAAWK,EAAQkkE,iBACnB9xD,MAAOw3D,EACP13D,SAAU,SAAAoM,GAAC,OAAIurD,EAAavrD,EAAE/c,OAAO6Q,eAI3C,eAAC,GAAD,CACEyyD,aAAcn8D,KAAOA,IAAS,OAAQkhE,GAAY92D,IAClD8xD,OAAQA,EACR96D,KAAMA,EACNkwB,SAAUA,EACVvc,SAAUA,EACVksB,gBAAiBA,EACjBv/B,SAAUA,QCrCZ9K,GAAYC,YAAWC,IAEvBorE,GAAkB,CAAC,CAAE5yD,KAAM,MAAOla,QAAS,iBAC3C+sE,GAAuB,CAC3B,CAAE7yD,KAAM,WAAYla,QAAS,aAC7B,CAAEka,KAAM,cAAela,QAAS,gBAChC,CAAEka,KAAM,eAAgBla,QAAS,oBAE7BgtE,GAAiB,CACrB,CAAE9yD,KAAM,MAAOla,QAAS,iBACxB,CAAEka,KAAM,OAAQla,QAAS,eACzB,CAAEka,KAAM,QAASla,QAAS,iBAEtBitE,GAAe,CACnB9D,IAAKppC,GACLqpC,KAAMppC,GACNqpC,MAAOppC,IAGH+xB,GAAmB1mD,IAAH,4lBAkChBsrB,GAAWtrB,IAAH,iLAeR4hE,GAAgB,SAAC,GAA0C,IAAD,EAAvCn7D,EAAuC,EAAvCA,MAAOuC,EAAgC,EAAhCA,MAAO64D,EAAyB,EAAzBA,SAAUxtD,EAAe,EAAfA,SACzCzd,EAAUV,KAGV4rE,EAAmC,KAApB94D,EAAQ64D,KADVA,GAAYviE,KAASuiE,EAAU,GAAK,EAAIA,GAGrDE,GAAa,mBAChBnrE,EAAQwjE,kBAAmB,GADX,cAEhBxjE,EAAQyjE,OAAS/6D,KAAK0J,EAAO64D,IAFb,cAGhBjrE,EAAQ0jE,QAAUh7D,KAAKuiE,EAAU74D,IAHjB,GAMnB,OACE,uBAAKzS,UAAWK,EAAQorE,cAAxB,UACE,eAAC5qE,GAAD,CAAGzC,UAAQ,EAAX,SAAa8R,IACb,gBAAClP,GAAD,CAAO5C,UAAQ,EAAC4B,UAAWK,EAAQsjE,qBAAnC,UACE,gCAAO9nD,GAAmBpJ,OACvBqL,GAAF,WAAkBA,MAErB,wBAAM9d,UAAWK,EAAQujE,eAAzB,UACG76D,KAAKwiE,EAAY,IAAM,eAAC,GAAD,CAAQzsE,OAAQ,KACvCiK,KAAKwiE,EAAY,IAAM,eAAC,GAAD,CAAUzsE,OAAQ,KACzCiK,KAASwiE,EAAY,IAAM,eAAC,GAAD,CAAWzsE,OAAQ,KAC/C,gBAAC+B,GAAD,CAAGzC,UAAQ,EAAC4B,UAAWO,IAAWirE,GAAlC,UACG3vD,GAAmB0vD,GADtB,cAuOOG,GA/NG,WAAO,IAAD,UAChBrrE,EAAUV,KADM,EAG2BsK,YAASkmD,GAAkB,CAC1EvkD,UAAW,CACTs0B,KAAMyrC,aAAQ,GAAIC,gBAClBvf,MAAOuf,eACPznC,yBAAyB,KAJfssB,EAHQ,EAGdtmD,KAA2BumD,EAHb,EAGItmD,QAHJ,EAUmCH,YAAS8qB,IAApD82C,EAVQ,EAUd1hE,KAA+BymD,EAVjB,EAUQxmD,QAVR,EAYkBC,mBAAS6gE,GAAqB,IAZhD,mBAYfhG,EAZe,KAYD4G,EAZC,OAaMzhE,mBAAS8gE,GAAe,IAb9B,mBAaflG,EAbe,KAaP8G,EAbO,OAcQ1hE,mBAAS4gE,GAAgB,IAdjC,mBAcftiD,EAde,KAcNqjD,EAdM,KAgBhB5hE,EAAUsmD,GAAaE,EAEvB5rB,EAAY,UAAGj8B,IAAO,CAAC,gBAARA,CAAyB0nD,UAA5B,QAA2C,GACvDhmD,EAAQ,UAAG1B,IAAO,CAAC,YAARA,CAAqB8iE,UAAxB,QAA2C,GACnDv3C,EAAM,UAAGvrB,IAAO,CAAC,UAARA,CAAmB8iE,UAAtB,QAAyC,GAC/CI,EAAK,UAAGljE,IAAO,CAAC,aAARA,CAAsB8iE,UAAzB,QAA4C,GACjDznC,EAAa/P,GAAc,SAAdA,CAAwBC,GAAQ+P,aAE7ChK,EAAQ,OAAG/F,QAAH,IAAGA,OAAH,EAAGA,EAAQ43C,gBAEnBznC,EAAsB,SAAAtpB,GAC1B,GAAIA,EAAKupB,WAAaN,EAAY,OAAOjpB,EACzC,IAAMwpB,EAAW57B,KAAOA,IAAS,OAAQoS,EAAKupB,UAA7B37B,CAAwCkjE,GACnDE,EAAapjE,KAAOA,IAAS,OAAQq7B,GAAxBr7B,CAAqCkjE,GAClDpnC,GAAuB,OAAVsnC,QAAU,IAAVA,OAAA,EAAAA,EAAYrnC,OAAZ,OAAmBH,QAAnB,IAAmBA,OAAnB,EAAmBA,EAAUG,MAChD,OAAO,2BAAK3pB,GAAZ,IAAkBsgB,KAAM3F,WAAW3a,EAAKsgB,MAAQoJ,KAG5C16B,EAAI,UACRpB,IAAM07B,EAAN17B,CAAA,OACEi8B,QADF,IACEA,OADF,EACEA,EAAcxwB,QACZ,SAAA8mB,GAAE,QACEA,EAAG8wC,YAAc9wC,EAAGguB,WAAahuB,EAAGouB,eAAiBpuB,EAAG+tB,qBAJxD,QAMH,GAEDgjB,EAAiBtjE,KAAQkiE,IAE/BliE,MACE,SAAAib,GAAC,OAAIqoD,EAAelkD,KAAK,CAAE9P,KAAM2L,EAAErY,SAAUxN,QAAS6lB,EAAE7U,SACxD1E,GAGF,IAAM6hE,EAAavjE,KACjB,SAAAuyB,GAAE,MAAsB,QAAjB3S,EAAQtQ,MAAwBijB,EAAG3vB,WAAagd,EAAQtQ,OAC/DlO,GAGI08D,EAAe,SAAA0F,GAAY,cAAK,CACpCphE,QAAO,UACLmhE,EAAW93D,QACT,SAAAlR,GAAC,OAAI,IAAI4F,KAAK5F,EAAEoF,UAAYQ,KAAK+zB,MAAQmuC,GAAamB,aAFnD,QAGA,GACP/rC,SAAQ,UACN8rC,EAAW93D,QACT,SAAAlR,GAAC,OACC,IAAI4F,KAAK5F,EAAEoF,SAAWQ,KAAK+zB,MAAQmuC,GAAamB,IAChD,IAAIrjE,KAAK5F,EAAEoF,UAAYQ,KAAK+zB,MAAQ,EAAImuC,GAAamB,aAJnD,QAKD,KAGHC,EAAM,CACVrhE,QAAS07D,EAAa5B,EAAO5sD,MAAMlN,QAAQpJ,OAC3Cy+B,SAAUqmC,EAAa5B,EAAO5sD,MAAMmoB,SAASz+B,QAGzC0qE,EAAY,CAChBthE,QACEpC,KAAMA,KAAM,SAAAzF,GAAC,OAAIA,EAAEm4B,OAAMorC,EAAa5B,EAAO5sD,MAAMlN,WAClC,IAAhBqhE,EAAIrhE,QAAgB,EAAIqhE,EAAIrhE,SAC/Bq1B,SACEz3B,KAAMA,KAAM,SAAAzF,GAAC,OAAIA,EAAEm4B,OAAMorC,EAAa5B,EAAO5sD,MAAMmoB,YACjC,IAAjBgsC,EAAIhsC,SAAiB,EAAIgsC,EAAIhsC,WAG5BksC,EAAW,CACfvhE,QAASpC,KAAMA,KAAM,SAAAzF,GAAC,OAAIA,EAAEm4B,OAAMorC,EAAa5B,EAAO5sD,MAAMlN,UAC5Dq1B,SAAUz3B,KAAMA,KAAM,SAAAzF,GAAC,OAAIA,EAAEm4B,OAAMorC,EAAa5B,EAAO5sD,MAAMmoB,YAGzDmf,EAAc,CAClBx0C,QAASpC,KACPA,KACE,SAAAzF,GAAC,OAAIA,EAAEm4B,KAAOn4B,EAAEk4B,uBAChBqrC,EAAa5B,EAAO5sD,MAAMlN,UAG9Bq1B,SAAUz3B,KACRA,KACE,SAAAzF,GAAC,OAAIA,EAAEm4B,KAAOn4B,EAAEk4B,uBAChBqrC,EAAa5B,EAAO5sD,MAAMmoB,YAsDhC,OACGp2B,GACC,uCACE,eAAC,GAAD,CAAczG,MAAM,YAApB,SACE,gBAAC6lB,GAAA,EAAD,CAAKxpB,UAAWK,EAAQgjE,eAAxB,UACE,eAAC,GAAD,CACEqB,cAAeiI,GACfz8D,MAAO,yBAET,eAAC,GAAD,CACEw0D,cAAekI,GACf18D,MAAO,2BAET,eAAC,GAAD,CACEw0D,cAAemI,GACf38D,MAAO,gCAIb,uBAAKlQ,UAAWK,EAAQkjE,yBAAxB,UACE,uBAAKvjE,UAAWK,EAAQojE,UAAxB,UACE,eAAC,GAAD,CACEvzD,MAAM,eACN4gC,qBAAsBg7B,EACtBl7B,MAAOs6B,GACP55B,QAAS45B,GAAqB,GAC9Bz6B,aAAcy0B,EACd7zB,iBAAe,IAEjB,eAAC,GAAD,CACEnhC,MAAM,cACN4gC,qBAAsBi7B,EACtBn7B,MAAOu6B,GACP75B,QAAS65B,GAAe,GACxB16B,aAAcw0B,EACd5zB,iBAAe,OAGnB,uBAAKrxC,UAAWK,EAAQqjE,SAAxB,UACE,eAAC,GAAD,CACExzD,MAAM,eACNuC,MAAO+5D,EAAIrhE,QACXmgE,SAAUkB,EAAIhsC,WAEhB,sBAAKxgC,UAAWK,EAAQ6iC,eACxB,eAAC,GAAD,CACEhzB,MAAM,kBACNuC,MAAOg6D,EAAUthE,QACjBmgE,SAAUmB,EAAUjsC,SACpB1iB,SAAUsmB,IAEZ,sBAAKpkC,UAAWK,EAAQ6iC,eACxB,eAAC,GAAD,CACEhzB,MAAM,SACNuC,MAAOi6D,EAASvhE,QAChBmgE,SAAUoB,EAASlsC,SACnB1iB,SAAUsmB,IAEZ,sBAAKpkC,UAAWK,EAAQ6iC,eACxB,eAAC,GAAD,CACEhzB,MAAM,cACNuC,MAAOktC,EAAYx0C,QACnBmgE,SAAU3rB,EAAYnf,SACtB1iB,SAAUsmB,UAhHD,SAAA8gC,GACnB,OAAQA,EAAa7sD,MACnB,IAAK,WACH,OACE,eAACy0D,GAAD,CACEnpE,MAAM,yBACNuhE,aAAcA,EACdD,OAAQA,EACR96D,KAAMpB,IAAM07B,EAAN17B,CAA2B89D,EAAa5B,EAAO5sD,MAAMlN,SAC3DV,SAAU4hE,EACVriC,gBAAiBrhB,EACjBqhD,oBAAqBgC,EACrB3xC,SAAUA,EACVvc,SAAUsmB,IAGhB,IAAK,cACH,OACE,eAAC2oC,GAAD,CACEppE,MAAM,yBACNuhE,aAAcA,EACdD,OAAQA,EACR96D,KAAMpB,IAAM07B,EAAN17B,CAA2B89D,EAAa5B,EAAO5sD,MAAMlN,SAC3DV,SAAU4hE,EACVriC,gBAAiBrhB,EACjBqhD,oBAAqBgC,EACrB3xC,SAAUA,EACVvc,SAAUsmB,IAGhB,IAAK,eACH,OACE,eAAC4oC,GAAD,CACErpE,MAAM,wCACNuhE,aAAcA,EACdD,OAAQA,EACR96D,KAAMpB,IAAM07B,EAAN17B,CAA2B89D,EAAa5B,EAAO5sD,MAAMlN,SAC3DV,SAAU4hE,EACVriC,gBAAiBrhB,EACjBqhD,oBAAqBgC,EACrB3xC,SAAUA,EACVvc,SAAUsmB,IAGhB,QACE,MAAM,IAAIoV,MAAJ,6CAAgD0rB,KAuErD+H,CAAa/H,O,UC3RPrlE,GA1DA,CACb4gD,KAAM,CACJtwC,KAAM,EACNrR,OAAQ,QAEV0O,QAAS,CACPrP,QAAS,OACT8H,cAAe,SACfkK,KAAM,EACNrL,WAAY7I,IAEd0tB,OAAQ,CACNtrB,OAAQ,CAAC,CAAC,OAAQ,EAAGpC,GAAY,UAEnCixE,WAAY,CACV7uE,OAAQ,CAAC,CAAC,OAAQ,EAAG,IAAK,UAE5BwZ,SAAU,CACR1Z,QAAS,OACTwG,eAAgB,gBAChBzF,WAAY,SACZ+G,cAAe,OAEjBpM,MAAO,CACL4C,MAAO5C,GAETszE,aAAc,CACZv1D,YAAa,IAEfw1D,WAAY,CACVtoE,WAAY,GAEdsD,MAAO,CACLvD,UAAW,IAEbkrC,YAAa,CACX5xC,QAAS,OACTc,QAAS,CAAC,CAAChD,GAAYA,GAAY,EAAGA,KACtCsD,aAActD,GACd0I,eAAgB,OAElB28C,YAAa,CACXjjD,OAAQ,CAAC,CAAC,EAAGpC,GtRgBF,EsRhBsBA,MAEnColD,cAAe,CACb5hD,MAAO,IACPqF,WAAY,IAEdy8C,cAAe,CACbtiD,QAAShD,GACTkK,WAAYlK,IAEdoxE,aAAc,CACZjnE,YAAa,EACbnH,QAAS,ICzCPU,GAAYC,YAAWC,IA8EdytE,GA5EQ,SAAC,GAKjB,IAJLr9D,EAII,EAJJA,QACAs9D,EAGI,EAHJA,aACAC,EAEI,EAFJA,eACAC,EACI,EADJA,SAEMptE,EAAUV,KAmBhB,OACE,gBAAC,GAAD,CACEo4C,sBAAsB,EACtBt4C,MAAO,IACPX,OAAQ,IACR6Q,YAAaM,EACbjB,MAAM,EALR,UAME,eAAC,KAAD,CACEkU,gBAAgB,EAChBC,kBAAkB,EAClBnI,cAAe,CACb8pC,QAAS,IAEX5iC,iBAAkBC,KAAW,CAC3B2iC,QAAS3iC,OACNurD,OACArrD,SAAS,4BAEdiB,SAAU,aApCa,SAAAwhC,GACD,QAAtByoB,EAAal1D,MAAmBysC,EAAQ6oB,WAAW,kBACrD7oB,EAAU,eAAiBA,GAE7B0oB,EAAeD,EAAal1D,KAAMysC,GAiC5B8oB,CADyB,EAAd9oB,QACkB4oB,SAZjC,SAcE,gBAAC,KAAD,CAAM1qE,GAAG,eAAT,UACE,eAACtC,GAAD,CAAIV,UAAWK,EAAQ6sE,WAAvB,SACGK,EAAapvE,QAAb,oBACgB4K,KAAUwkE,EAAapvE,SADvC,YAEG,KAEN,eAAC,KAAD,CACEgR,KAAK,UACLsE,WAAS,EACTonD,aAAa,MACb3qD,MAAM,sCACN4I,YAAW,cA5CM,CACzB+0D,IAAK,qCACLC,IAAK,6CACLC,IAAK,qCACLC,KAAM,qCACNC,IAAK,sCACLC,IAAK,6CACLC,KAAM,6CACNC,IACE,mGAmC6Cb,EAAal1D,OACpDqK,UAAWrQ,MAEXtJ,IAAQ0kE,IACR,eAAC,GAAD,CAAcztE,UAAWK,EAAQ+H,MAAjC,SAAyCqlE,SAI/C,sBAAKztE,UAAWK,EAAQspB,OAAxB,SACE,eAACH,GAAA,EAAD,CAAKrrB,QAAQ,OAAOwG,eAAe,WAAnC,SACE,eAAC,GAAD,CAAM2D,KAAK,SAASoS,KAAK,eAAzB,uCCzDJ/a,GAAYC,YAAWC,IAEvB6uD,GAAM,SAAC,GAcN,IAAD,EAbJ1rD,EAaI,EAbJA,GACAmU,EAYI,EAZJA,MACAs3B,EAWI,EAXJA,SACAtkC,EAUI,EAVJA,KACA1K,EASI,EATJA,MACAwhD,EAQI,EARJA,QACAkN,EAOI,EAPJA,SACAQ,EAMI,EANJA,UACAC,EAKI,EALJA,SACAC,EAII,EAJJA,WACAtlD,EAGI,EAHJA,QACA0C,EAEI,EAFJA,KACG7L,EACC,kIACEC,EAAUV,KAEVmvD,EAAavlD,GAAWslD,EACxBE,GAAS,mBACZ1uD,EAAQiuD,QAAUQ,GADN,cAEZzuD,EAAQ0c,KAAM,GAFF,cAGZ1c,EAAQ8tD,SAAWA,GAHP,GAMf,OACE,uBAAKnuD,UAAWK,EAAQ6tD,WAAxB,UACE,sBACEluD,UAAWO,IAAW,eAAGF,EAAQ+tD,OAASD,GAAsB,IAAVh3C,IADxD,SAEE,gBAAC,GAAD,CACElL,KAAMA,EACNjM,UAAWO,IAAWwuD,GACtBxlD,QAAS,WACPslD,GAAcF,EAAU3rD,EAAImH,GAC5BZ,GAAWA,EAAQY,IAErB/B,MAAO+B,EAAK/B,OAAS+B,EAAKi/C,UAAYj/C,EAAKs/C,WAC3C3c,iBAAiB,EACjBlrB,aAAczX,EAAKyX,cAAgBzX,EAAKi/C,UAAYj/C,EAAKs/C,WAT3D,UAUGhb,EAAShjC,KAAI,WAA4CwM,GAA5C,QAAGq7B,YAAH,MAAU,SAAA1/B,GAAE,cAAIA,QAAJ,IAAIA,OAAJ,EAAIA,EAAI2/B,YAApB,EAAmCnzC,EAAnC,+BACZ,eAAC,GAAD,2BAAkBA,GAAlB,aACGkzC,EAAKnpC,KADC8N,MAIV42C,GACC,eAAC,GAAD,CAAIpvD,MAAOmvD,EAAU18C,UAAU,SAA/B,SACE,0BACE3I,QAAS,kBAAMolD,EAAU3rD,EAAImH,IAC7BnK,UAAWK,EAAQ4tD,aAFrB,UAGGE,GAAY,eAAC,GAAD,KACXA,GAAY,eAAC,GAAD,cAMvBU,GAAcV,GACb,sBAAKnuD,UAAWK,EAAQguD,MAAxB,SACE,eAAC,GAAD,CAAIruD,UAAWO,IAAW,eAAGF,EAAQ8tD,SAAWA,IAAhD,SACE,eAAC,GAAD,CAAI1uD,MAAOA,EAAX,SACE,eAACwhD,EAAD,CAASrtC,GAAIzJ,EAAMkwB,SAAUj6B,EAAMi6B,qBA4HlC20B,GAnHG,SAAC,GAYZ,IAAD,IAXJvgB,gBAWI,MAXO,GAWP,MAVJtkC,YAUI,MAVG,GAUH,EATJ82C,EASI,EATJA,QAEA4N,GAOI,EARJ7uD,UAQI,EAPJ6uD,YACAI,EAMI,EANJA,gBACA1lD,EAKI,EALJA,QACAa,EAII,EAJJA,QACA8kD,EAGI,EAHJA,UACApb,EAEI,EAFJA,QACG1zC,EACC,oIAC4BiK,mBAAS4kD,GADrC,mBACGd,EADH,KACaiB,EADb,KAGJlkD,qBAAU,kBAAMkkD,EAAYH,KAAkB,CAACA,IAE/C,IAAMI,EAAYtmD,IAAUA,KAAOA,IAAMA,IAAO,UAA9BA,CAAyC0lC,GACrDmgB,EAAW,KAAOS,EAClB5vD,EAAQ4vD,GAAaR,EAAaD,EAAW,GAE7CvuD,EAAUV,GAAU,CAAEF,UAEtBkvD,EAAY,SAAC3rD,EAAImH,GACjBA,EAAKnH,IACP2kD,EAAM0mB,MAAMlkE,EAAKnH,IACjBosD,EAAYjlD,EAAKnH,KAAOmrD,EAAW,KAAOhkD,EAAKnH,MAE/C2kD,EAAM0mB,MAAMrrE,GACZosD,EAAYpsD,IAAOmrD,EAAW,KAAOnrD,KAInC2kD,EAAQ,IAAI2H,KAAkB,CAClCC,cAAe,GACfC,YAAY,IAGd,SAASC,EAAT,GAAqD,IAA9Bt4C,EAA6B,EAA7BA,MAAOlV,EAAsB,EAAtBA,IAAKytD,EAAiB,EAAjBA,OAAQ55C,EAAS,EAATA,MACzC,OACE,eAAC,KAAD,CACE6xC,MAAOA,EACPgI,YAAa,EAEbD,OAAQA,EACRE,SAAUz4C,EALZ,SAMG,gBAAGm3D,EAAH,EAAGA,cAAH,OACC,sBAAKtqE,IAAKsqE,EAAex4D,MAAOA,EAAhC,SACE,eAAC,GAAD,CACErW,MAAOA,EACPwM,KAAM6nC,EACN9wC,GAAImH,EAAKgN,GAAOnU,GAAKmH,EAAKgN,GAAOnU,GAAKmU,EACtCA,MAAOA,EACPy3C,SAAUA,EACVngB,SAAUA,EACVtkC,KAAMA,EAAKgN,GACX8pC,QAASA,EACTkN,SACEhkD,EAAKgN,GAAOnU,GACRmH,EAAKgN,GAAOnU,KAAOmrD,EACnBh3C,IAAUg3C,EAEhBQ,UAAWA,EACXE,WAAYA,EACZtlD,QAASA,EACT8wB,SAAUj6B,EAAMi6B,eAtBjBp4B,GA8BX,OACE,eAACunB,GAAA,EAAD,CAAKrrB,QAAQ,OAAOgS,KAAK,IAAIlK,cAAc,SAA3C,SACE,gBAAC,GAAD,CAAOjG,UAAWK,EAAQ42B,MAA1B,UACE,gBAAC,GAAD,WACGwX,EAAShjC,KAAI,WAA0CwM,GAA1C,IAAGxY,EAAH,EAAGA,MAAOO,EAAV,EAAUA,UAAWkS,EAArB,EAAqBA,UAAWxN,EAAhC,EAAgCA,OAAhC,OACZ,eAAC,GAAD,CAEEjF,MAAOA,EACPO,UAAWA,EACXkS,UAAWA,EAJb,SAKGxN,GAJIuT,MAOR42C,GAAc,eAAC,GAAD,CAAIpvD,MAAOmvD,OAE5B,gBAAC,GAAD,CAAO5uD,UAAWK,EAAQkuD,KAA1B,UACGnkD,GAAW,eAACzJ,GAAD,0BACVyJ,GAAWrB,KAAUoB,IAAS,eAAC,GAAD,CAAY5B,QAAS2mD,KACnD9kD,IAAYrB,KAAUoB,IACtB,eAAC,KAAD,CAAW0lD,cAAY,EAAvB,SACG,gBAAG/wD,EAAH,EAAGA,OAAH,OACC,eAAC,KAAD,yBAEEgX,MAAO,CAAE/W,QAAS,SACdqB,GAHN,IAIEtB,OAAQsL,EAAU,EAAItL,EACtBW,MAAOA,EACPswD,SAAU5lD,EAAKpI,OACfiuD,UAAWrI,EAAMqI,UACjBP,YAAaA,EACbQ,iBAAkB,EAClBC,yBAA0BvI,iBC3LtChoD,GAAYC,YAAWC,IA6Ed0uE,GA3EQ,SAAC,GAQjB,IAPLpkE,EAOI,EAPJA,KACAojE,EAMI,EANJA,aACAiB,EAKI,EALJA,kBACA5sD,EAII,EAJJA,aACAihC,EAGI,EAHJA,gBACAjQ,EAEI,EAFJA,aACAC,EACI,EADJA,gBAEMxyC,EAAUV,KADZ,EAGkC0K,qBAHlC,mBAGGokE,EAHH,KAGgBC,EAHhB,KAKEjgC,EAAW,CACf,CACEt/B,KAAM,UACNzK,OAAQ,eAACrD,GAAD,CAAQrB,UAAWK,EAAQxG,MAA3B,SAAmC,cAC3C4F,MAAO,IACPyS,UAAW,OACXjG,KAAM,KACNqnC,KAAM,SAAA1/B,GAAE,OACN,sBAAK5T,UAAWK,EAAQ+sE,WAAxB,SACE,eAAC,GAAD,UAAkBrkE,IAAO,CAAC,WAAY6K,SAI5C,CACEzE,KAAM,eACNzK,OAAQ,eAACrD,GAAD,CAAQrB,UAAWK,EAAQxG,MAA3B,SAAmC,WAC3C4F,MAAO,IACPyS,UAAW,SACXjG,KAAM,KACNqnC,KAAM,SAAA1/B,GAAE,OACN,eAAC,GAAD,CACE5T,UAAWK,EAAQ8sE,aACnB5jE,QAAS,WACPspC,GAAgB,GAChB67B,EAAe96D,IAJnB,SAME,eAAC,GAAD,SAKF+6D,EAAapB,EACfpjE,EAAKojE,EAAal1D,MAClBlO,EAAKpB,KAAOoB,GAAM,IAEtB,OACE,uCACE,eAAC,GAAD,CACEA,KAAMwkE,EACNlgC,SAAUA,EACVygB,UAAU,kCACV//C,KAAK,mBAEP,eAAC,GAAD,CACEH,KAAM4jC,EACNzC,YAAa,WACX0C,GAAgB,GAChBgQ,EAAgB,OAElB3S,YAAa,WACX2S,EAAgB,MAChB2rB,EACEzlE,IAAO,CAAC,cAAe0lE,GACvB1lE,IAAO,CAAC,WAAY0lE,KAGxB7sD,aAAcA,QC9DhBjiB,GAAYC,YAAWC,IAEvB+uE,GAAc7lE,MAAU,SAAAirB,GAAG,OAAIA,EAAIq2B,cAEnCwkB,GAAaplE,IAAH,2NASVqlE,GAAgBrlE,IAAH,kLAabsY,GAActY,IAAH,4GAMXunD,GAAWvnD,IAAH,kEAMRslE,GAAUtlE,IAAH,2NASPulE,GAAoB,SAAC,GAA+C,IAA7C9+B,EAA4C,EAA5CA,YAAa++B,EAA+B,EAA/BA,YAAajgE,EAAkB,EAAlBA,KAAM5O,EAAY,EAAZA,MACrDC,EAAUV,KAEhB,OACE,gBAAC8kB,GAAA,EAAD,yBACEzV,KAAMA,EACN2V,kBAAgB,oBAChBuqD,WAAY,CACVp5D,MAAO,CACL9W,aAAc,EACdugB,SAAU,IACV9R,OAAQ,IACRjJ,MAAO,KAGPpE,GAXN,cAYE,sBAAKJ,UAAWK,EAAQ0vC,YAAxB,SACE,eAAC,GAAD,CAAY9jC,KAAM,GAAIoO,aAAW,QAAQ9Q,QAAS0lE,EAAlD,SACE,eAAC,GAAD,QAGJ,eAACxuE,GAAD,CAAIT,UAAWK,EAAQihD,YAAvB,SACG,0CAEH,gBAAC18B,GAAA,EAAD,CAAe5kB,UAAWK,EAAQghD,cAAlC,UACE,eAACpgD,GAAD,uJACA,eAACA,GAAD,uGACA,eAACD,GAAD,sGAEF,gBAACsvC,GAAA,EAAD,CAAetwC,UAAWK,EAAQkhD,cAAlC,UACE,eAACh+B,GAAD,CACEnpB,gBAAgB,OAChB4F,UAAWK,EAAQgtE,aACnB9jE,QAAS,kBAAM0lE,KAHjB,oBAMA,eAAC1rD,GAAD,CAAQha,QAAS,kBAAM2mC,GAAY,IAAnC,6BCvGOi/B,GD6GG,WAAO,IAAD,IACRC,EAAsBnlE,YAAS6kE,IAArC3kE,KACMwmD,EAAe1mD,YAAS+mD,IAA9B7mD,KAFc,EAGYE,oBAAS,GAHrB,mBAGfglE,EAHe,KAGJC,EAHI,OAIgBjlE,mBAAS,CAC7CgO,KAAM,MACNla,QAAS,YANW,mBAIfolC,EAJe,KAIFC,EAJE,OAQUn5B,mBAAS,MARnB,mBAQfojE,EARe,KAQL8B,EARK,OASkBllE,oBAAS,GAT3B,mBASfuoC,EATe,KASDC,EATC,OAUoBxoC,oBAAS,GAV7B,mBAUfmlE,EAVe,KAUAC,EAVA,OAYA7kE,YAAYikE,GAAY,CAC5ChkE,QAAS,YAAkB,IAAftC,EAAc,EAAdA,QAEVgnE,EADkB,OAAGhnE,QAAH,IAAGA,IAAW,6BAGlCua,YAAa,kBAAM+vB,GAAgB,IACnC9nC,eAAgB,iBAAM,CAAC,uBANlB2kE,EAZe,sBAqBH9kE,YAAYmkE,GAAS,CACtClkE,QAAS,kBAAMC,QAAQkY,IAAI,2BAC3BjY,eAAgB,iBAAM,CAAC,uBAFlB4kE,EArBe,sBA0BD/kE,YAAYmX,GAAa,CAC5ChX,eAAgB,iBAAM,CAAC,cADlB00C,EA1Be,oBA8BhBp/C,EAAUV,KAEViwE,EAAa,UAAG7mE,IAAO,CAAC,aAARA,CAAsBqmE,UAAzB,QAA+C,GAC5DS,EAAmB,UACvB9mE,IAAO,CAAC,oBAAqBqmE,UADN,QAC4B,GAE/CU,EAAgBlB,GAAYgB,GAE5BG,GACM,OAAVpf,QAAU,IAAVA,OAAA,EAAAA,EAAYr8B,SAAUD,GAAc,aAAdA,CAA4Bs8B,EAAWr8B,QAEzD07C,KAAsB,OAACD,QAAD,IAACA,OAAD,EAACA,EAAkBC,oBAEzCC,KAAyB,OAACF,QAAD,IAACA,OAAD,EAACA,EAAkBE,uBAE5CC,EAAmB,SAAAC,GACvB,IAAM77C,EAASG,GAAY,aAAZA,CAA0B07C,GACzC,OAAO1wB,EAAW,CAAE7zC,UAAW,CAAE0oB,aAkB7B87C,EAAkB,SAAC/lB,EAAYvF,GACnC,IACE,OAAQ/7C,IAAQmhD,SAAUmmB,SAAShmB,EAAY,OAAQvF,IACvD,SACA,OAAO,IAIL0oB,EAAc,yCAAG,WAAOnjB,EAAYvF,GAAnB,kBAAAj2B,EAAA,yDACrB0gD,EAAY,MACPa,EAAgB/lB,EAAYvF,GAFZ,uBAGnByqB,EAAY,mBAHO,0CAMHI,EAAS,CAAE/jE,UAAW,CAAEy+C,aAAYvF,aANjC,WAMfl3B,EANe,QAOZhT,OAPY,yCAQZ00D,GAAa,IARD,OAUfgB,EAAoB1iD,EAAIhT,OAAO21D,MAAK,SAAA5xD,GACxC,OAAOA,EAAEpW,QAAQka,SAAS,gBAG1B8sD,EADEe,EACU,wCAEA,gBAhBO,4CAAH,wDAoBpB,OACE,uCACE,eAAC,GAAD,CACEthE,KAAMwgE,EACNt/B,YAvCsB,SAAAsgC,GAC1BN,EAAiB,CACfD,sBAAuBO,IAEzBf,GAAiB,IAoCbR,YAAa,WACXQ,GAAiB,MAGrB,eAAC,GAAD,CAAc9rE,MAAM,wBAApB,SACE,eAAC6lB,GAAA,EAAD,CAAKrrB,QAAQ,OAAOwG,eAAe,WAAnC,SACE,eAAC,GAAD,CAAMlI,MAAM,UAAU8M,QAAS,kBAAM+lE,GAAa,IAAlD,yCAKJ,gBAAC5+C,EAAA,EAAD,CAAMnsB,WAAS,EAACvE,UAAWK,EAAQogD,KAAnC,UACE,eAAC,GAAD,CACEt2C,KAAM0lE,EACN1vD,WAAYpX,IAAS,OAAQw6B,EAAYlrB,MACzC6H,YAAa,SAAAtM,GAAE,OAAIA,EAAGzV,SACtBoL,QAhEmB,SAAAoV,GACzB6kB,EAAe,CAAEnrB,KAAMsG,EAAEtG,KAAMla,QAASwgB,EAAExgB,aAiEtC,uBAAK6B,UAAWK,EAAQmN,QAAxB,UACE,gBAACgc,GAAA,EAAD,CAAKrrB,QAAQ,OAAOwG,eAAe,gBAAgB8rE,GAAI,EAAvD,UACE,gBAAC9vE,GAAD,CAAIvC,UAAQ,EAAC4B,UAAWK,EAAQwX,SAAhC,UACG0rB,EAAYplC,QAAZ,UACMolC,EAAYplC,QADlB,0BAEG,GAAI,OAEV,gBAACqrB,GAAA,EAAD,CACErrB,QAAQ,OACRe,WAAW,SACXyF,eAAe,MACfy9C,GAAG,SAJL,UAKE,eAACvhD,GAAD,yCACA,eAAC,GAAD,CACEyU,QAAS26D,EACT19D,SAAU,SAAAoM,GAAC,OACTsxD,EACIC,EAAiB,CACfD,sBAAuBtxD,EAAE/c,OAAO0T,UAElCm6D,GAAiB,IAEvBh9D,MAAOw9D,IAET,eAAC3uE,GAAD,UAAS2uE,EAAwB,KAAO,QACxC,eAAC/1B,GAAD,CAAkBz6C,MAAO,IAAzB,SACE,eAACoB,GAAD,2LAOJ,gBAAC2oB,GAAA,EAAD,CACErrB,QAAQ,OACRe,WAAW,SACXyF,eAAe,WACfy9C,GAAG,OAJL,UAKE,eAACvhD,GAAD,sCACA,eAAC,GAAD,CACEyU,QAAS06D,EACTz9D,SAAU,SAAAxC,GACRmgE,EAAiB,CAAEF,mBAAoBjgE,EAAMnO,OAAO0T,WAEtD7C,MAAOu9D,IAET,eAAC1uE,GAAD,UAAS0uE,EAAqB,KAAO,QACrC,eAAC91B,GAAD,CAAkBz6C,MAAO,IAAzB,SACE,eAACoB,GAAD,qMAQN,eAAC,GAAD,CACEsJ,KAAM2lE,EACNvC,aAAchqC,EACdirC,kBAzHgB,SAACnkB,EAAYvF,GACrC4qB,EAAY,CAAE9jE,UAAW,CAAEy+C,aAAYvF,cAyH/BljC,aAAc6rD,EACd5qB,gBAAiB0sB,EACjB38B,aAAcA,EACdC,gBAAiBA,UAItBw8B,GACC,eAAC,GAAD,CACEp/D,QAAS,WACPs/D,EAAY,MACZD,GAAa,IAEf7B,SAAUA,EACVF,aAAchqC,EACdiqC,eAAgBA,QEtSpB3tE,GAAS,CACbqmB,KAAM,CACJtgB,UAAW,GACXyf,SAAU,KAEZxN,SAAU,CACRxZ,OAAQ,EACR6H,aAAc,GACdgM,UAAW,UAEbqX,KAAM,CACJlrB,OAAQ,GAEVyN,OAAQ,CACNzN,OAAQ,CAAC,CAAC,EAAG,UAEfg6C,aAAc,CACZl6C,QAAS,OACT8H,cAAe,SACftB,eAAgB,gBAChBwL,KAAM,EACNlR,QAAS,CAAC,CAAC,EAAG,GAAI,IAAK,MAEzByxE,aAAc,CACZn2B,cAAe,IAEjB52C,MAAO,CACLlH,MAAO7C,EACPsM,aAAc,GACdrB,UAAW,GACXqN,UAAW,UAEby+D,eAAgB,CACd7kC,cAAe,SACf1lC,YAAanK,GACbwD,MAAOxD,GACP6C,OAAQ7C,KAIN0D,GAAYC,YAAWC,IA6Bd+4C,GA3BM,SAAC,GAA0B,IAAxBzpC,EAAuB,EAAvBA,KAAM0pC,EAAiB,EAAjBA,WACtBx4C,EAAUV,KAEhB,OACE,uBAAKK,UAAWK,EAAQg4C,aAAxB,UACE,uBAAKr4C,UAAWK,EAAQqwE,aAAxB,UACE,gBAAClwE,GAAD,CAAIR,UAAWK,EAAQsD,MAAvB,UACE,eAAC,GAAD,CAAW3D,UAAWK,EAAQswE,iBAC9B,uDAEF,eAAC3vE,GAAD,CAAOhB,UAAWK,EAAQwX,SAA1B,SAAqC1I,IACrC,gBAACtO,GAAD,uEAC4DsO,EAAM,IADlE,oEAIA,eAACtO,GAAD,iHAKF,eAAC0iB,GAAD,CAAQvjB,UAAWK,EAAQyL,OAAQvC,QAASsvC,EAA5C,qCCtES,OAA0B,+CCA1B,OAA0B,+CCI1B,IACbl1C,MAAO,CACLtF,OAAQ,CAAC,CAAC,EAAG,EAAG,GAAI,KAEtBm8C,SAAU,CACRD,cAAe,IAEjB1iC,SAAU,CACRxZ,OAAQ,CAAC,CAAC,GAAI,EAAG,GAAI,KAEvBuyE,KAAM,CACJvyE,OAAQ,CAAC,CAAC,EAAG,EAAG,EAAG,KAErB+J,MAAO,CACL3L,MAAO3B,IAET+1E,KAAM,CACJpxE,MAAO,IACPtB,QAAS,OACTe,WAAY,SACZyF,eAAgB,OAElBmsE,UAAW,CACTrxE,MAAO,QAETiT,OAAQ,CACNkF,YAAa3b,IAEf6P,OAAQ,CACNhH,WAAY,QAEd8L,OAAQ,CACNkqC,MAAO,SAETi2B,OAAQ,CACNtxE,MArCgB,KAuClBiF,OAAQ,CACNvG,QAAS,OACT+H,aAAc,IAEhB8qE,gBAAiB,CACf7yE,QAAS,OACTo8C,cAAe,KAEjBj6B,KAAM,CACJnQ,KAAM,GAERsqC,UAAW,CACTt1C,SAAU,WACVC,KAAM,GACNZ,MAAO,IAETgJ,QAAS,CACPrP,QAAS,OACT8H,cAAe,SACftB,eAAgB,gBAChBwL,KAAM,EACNoqC,cAAe,IAEjB02B,WAAY,CACV9yE,QAAS,OACTgS,KAAM,EACNlK,cAAe,SACftB,eAAgB,iBAElBusE,eAAgB,CACdp2B,MAAO,OACPz8C,OAAQ,CAAC,EAAE,EAAG,GAAI,GAAI,MCnDpBsB,GAAYC,YAAWC,IA6Kdk8C,GAzJI,SAAC,GAWb,IAVL5sC,EAUI,EAVJA,KACAmR,EASI,EATJA,KACAq8B,EAQI,EARJA,OACAv0C,EAOI,EAPJA,MACA8zC,EAMI,EANJA,SACArD,EAKI,EALJA,WACAt4B,EAII,EAJJA,MACA8jB,EAGI,EAHJA,aACAlxB,EAEI,EAFJA,QACA+2B,EACI,EADJA,kBAEM7pC,EAAUV,KAEVuQ,EAAQgsC,EAAW,SAAW,OAEpC,OACE,uCACE,uBAAKl8C,UAAWK,EAAQm6C,SAAxB,UACE,eAACx5C,GAAD,CAAOhB,UAAWK,EAAQsD,MAA1B,SAAkCwL,IAClC,eAAC,GAAD,CAASoR,MAAOA,EAAMxe,OAAS,EAAGw3C,YAAaj5B,OAGhDA,GAAQ4pB,GACP,eAAC,KAAD,CACEhnB,gBAAgB,EAChBC,kBAAkB,EAClBG,SAAUu1B,EACV79B,cAAe,CACbkjC,UAAW,GACXC,UAAW,GACXC,UAAW,GACXC,UAAW,IAEblH,oBAAkB,EAClBj1B,iBAAkBy6B,EAXpB,SAYE,gBAAC,KAAD,WACE,uBAAK38C,UAAWK,EAAQqE,OAAxB,UACG6b,EAAM9U,KACL,WAA+BwM,GAA/B,IAAG3P,EAAH,EAAGA,KAAMnK,EAAT,EAASA,QAASukB,EAAlB,EAAkBA,UAAlB,OACE,EAAIzK,IAAQqI,GACV,uBAAetgB,UAAWK,EAAQigB,KAAlC,UACE,gBAAC3f,GAAD,CAAIX,UAAWK,EAAQuwE,KAAvB,kBAAmCzyE,KAEnC,eAACkD,GAAD,uCACA,uBAAKrB,UAAWK,EAAQwwE,KAAxB,UACE,eAAC,KAAD,CACE7wE,UAAWK,EAAQywE,UACnBxoE,KAAK,OACL2D,KAAK,KACLyH,UAAW,EAAIuE,IAAQqI,EACvBoC,WACS,OAAPvP,QAAO,IAAPA,OAAA,EAAAA,EAASpR,QAAS,EAAI2gB,EAAYrL,GAEpC5D,WAAS,EACT6D,cAAe,EACfnI,KAAM7G,EACN6K,QAASA,EACTC,UAAW,OACXE,UAAW,YACb,eAACvS,GAAD,CAAO3C,UAAQ,EAAC4B,UAAWK,EAAQqS,OAAnC,SACG2xB,SApBGpsB,MA0BhB,sBACEjY,UAAWK,EAAQo6C,UACnB3B,IAAI,WACJr5C,MAAM,MACNX,OAAO,MACPi6C,IA1FmB,CACjC6E,EAAG,CACD0V,EAAGhY,GACHsC,EAAGrC,IAELwC,EAAG,CACDuV,EAAG9X,GACHoC,EAAGnC,GACHsC,EAAGrC,IAELsC,EAAG,CACDsV,EAAG3X,GACHiC,EAAGhC,GACHmC,EAAGlC,GACHmC,EAAGlC,KA4EoC5R,GAAmB5pB,QAGlD,eAACiD,GAAD,CAAQvjB,UAAWK,EAAQuQ,OAAQtI,KAAK,SAAxC,SACG4H,SAMRoQ,IAAS4pB,EAAoB,GAC5B,eAAC,KAAD,CACEhnB,gBAAgB,EAChBC,kBAAkB,EAClBG,SAAUu1B,EACV79B,cAAe,CAAEg+C,cAAe,IAChC7hB,oBAAkB,EAClBj1B,iBAAkB3B,EAAMD,EAAO,GAAGq8B,OANpC,SAOE,gBAAC,KAAD,WACE,sBAAK38C,UAAWK,EAAQ2wE,gBAAxB,SACE,uBAAKhxE,UAAWK,EAAQigB,KAAxB,UACE,eAAC3f,GAAD,CAAIX,UAAWK,EAAQuwE,KAAvB,+BAEA,eAACvvE,GAAD,6BACA,uBAAKrB,UAAWK,EAAQwwE,KAAxB,UACE,eAAC,KAAD,CACE7wE,UAAWK,EAAQywE,UACnBxoE,KAAK,OACL2D,KAAK,KACLyH,WAAW,EACXgP,UAAWrL,GACX5D,WAAS,EACT6D,cAAe,EACfnI,KAAMoR,EAAMD,EAAO,GAAGhY,OAExB,eAACvH,GAAD,CAAO3C,UAAQ,EAAC4B,UAAWK,EAAQqS,OAAnC,SACG2xB,YAMT,eAAC9gB,GAAD,CAAQvjB,UAAWK,EAAQuQ,OAAQtI,KAAK,SAAxC,SACG4H,SAMRgsC,GACC,uBAAKl8C,UAAWK,EAAQ4wE,WAAxB,UACE,eAACjwE,GAAD,CAAOhB,UAAWK,EAAQsD,MAA1B,sCACA,gBAAC9C,GAAD,WACE,eAAC,GAAD,CAAab,UAAWK,EAAQ6wE,iBADlC,iVASA,eAAClwE,GAAD,CAAOhB,UAAWK,EAAQsD,MAA1B,iCACA,gBAAC9C,GAAD,WACE,eAAC,GAAD,CAAab,UAAWK,EAAQ6wE,iBADlC,+NAOA,iCACG9oE,GAAS,eAAC,GAAD,6BACV,eAACmb,GAAD,CAAQvjB,UAAWK,EAAQuQ,OAAQrH,QAAS,kBAAMsvC,KAAlD,SACG3oC,cC/KTytC,GAA4B,CAChCC,EAAG,CAAEj1B,QAAS,IAAKk1B,SAAU,IAAKkb,SAAU,KAC5Chb,EAAG,CAAEp1B,QAAS,IAAKk1B,SAAU,IAAKkb,SAAU,KAC5C/a,EAAG,CAAEr1B,QAAS,IAAKk1B,SAAU,IAAKkb,SAAU,MAGxCoY,GAAsBhvD,OAAaC,MAAM,CAC7C87B,UAAW/7B,OACRjS,MAAM,cACNmS,WACA8O,IAAI,GACJxc,IAAIujC,IACPiG,UAAWh8B,OACRjS,MAAM,cACNmS,WACA8O,IAAI,GACJxc,IAAIujC,IACPkG,UAAWj8B,OACRjS,MAAM,cACNihB,IAAI,GACJxc,IAAIujC,IACJ2d,WACAxyD,UAAUuY,IACbyiC,UAAWl8B,OACRjS,MAAM,cACNihB,IAAI,GACJxc,IAAIujC,IACJ2d,WACAxyD,UAAUuY,MAGTo+C,GAAc,SAACvvD,GAAoC,IAAD,EAAzBsyC,EAAyB,uDAAhB,GAAI18C,EAAY,uCAChDgkC,EAAet7B,IAAO,eAAPA,CAAuBg0C,GACtC9S,EAAuBv1B,KAAKC,IAAL,MAAAD,KAAI,YAC5B3L,KAAM,SAAA6K,GAAE,OAAIA,EAAGs2B,oBAAmBz/B,IADN,QAE/B,KAGI0I,EAAUihD,GAAerX,EAAQ0Y,IACjC2b,GACG,OAAPj+D,QAAO,IAAPA,OAAA,EAAAA,EAASpR,QAAS,EACd,CACEoR,QAASA,EACTG,UAAW,UACXF,UAAW,OACXpT,UAAWK,EAAQw6D,cAErB,CAAEvjD,cAAe,GAEjBm3B,EAAW,CACf,CACEt/B,KAAM,KACNzK,OAAQ,UACRjF,MAAK,UAAEk+C,GAA0B1T,UAA5B,aAAE,EAAiDthB,QACxD2qB,KAAM,SAAA1/B,GAAE,OAAInJ,EAASsZ,MAAK,qBAAGpY,WAA4BiI,KAAIzE,MAC7DlD,KAAM,KACNgnC,UAAU,IA8Bd,OA1BAlqC,KACEA,KAAKA,KAAMkhC,IACX,SAAAr2B,GAAO,IAAD,EAmBJ,OAlBA66B,EAAStmB,KAAK,CACZhZ,KAAK,WAAD,OAAayE,GACjBlP,OAAO,YAAD,OAAckP,GACpB3H,KAAM,KACN8yC,QAAQ,EACR7sC,UAAW,QACXzS,MAAK,UAAEk+C,GAA0B1T,UAA5B,aAAE,EAAiD4T,SACxDnrC,OAAQ2xB,EACRpyB,KAAMA,GACNqhC,KAAM,SAAA1/B,GAAE,OAAIA,GACZU,OAAc,OAAPnB,QAAO,IAAPA,OAAA,EAAAA,EAASpR,QAAS,EAAIiR,GAAeqE,GAC5Cm8B,WAAY49B,EACZxlC,aAAc,gBACdyH,SAAU,SAAA1qB,GAAO,OACf/U,EACAnJ,EAASsZ,MAAK,qBAAGpY,WAA4Bgd,EAAQ3lB,MAClDknC,qBAEAnhC,KAAM,EAAG6K,KAElB,GAGK66B,GC+BMqO,GA7GA,SAAC,GAA+C,IAA7Cn0B,EAA4C,EAA5CA,QAASo0B,EAAmC,EAAnCA,OAAQ9sC,EAA2B,EAA3BA,QAAS6kC,EAAkB,EAAlBA,KAAM1sC,EAAY,EAAZA,MAC1CipE,EAAY1oD,EAAQuhB,kBAAoB,EADc,EAEvB7/B,mBAAS,CAC5CiW,KAAM,EACNgU,OAAQ,CAAEhjB,QAAQ,KAJwC,0BAEnDgP,EAFmD,EAEnDA,KAAMgU,EAF6C,EAE7CA,OAAU0oB,EAFmC,KAOtD7pC,EAAUihD,GAAerX,EAAQ0Y,IAGjCxY,EAAa38B,IAAS+wD,EAEtBx4B,EAAU,yCAAG,WAAMjlC,GAAN,gBAAAib,EAAA,0DACbouB,EADa,yCAERnI,EACLrgB,GACE9L,EAAQhd,SACRwlE,GAAoBj7B,KAAK5hB,EAAQ,CAAEg9C,QAAQ,OALhC,OAUXj0B,EAAYt0C,KAAQurB,EAAQ1gB,GAElCopC,EAAS,CACP18B,KAAMA,EAAO,EACbgU,OAAQ+oB,IAdO,2CAAH,sDAkBV98B,EAAQ,GAEdxX,KACEA,KAAKA,KAAM4f,EAAQuhB,oBACnB,SAAAt2B,GAWE,OAVA2M,EAAM4H,KAAK,CACT7f,KAAK,WAAD,OAAasL,GACjBzV,QAAQ,YAAD,OAAcyV,GACrB8O,UAAW1P,GACXwgC,WAAY,CACVrgC,QAASpK,KAAM,SAAA6K,GAAE,MAAK,CAAEyE,KAAMzE,EAAIzV,QAASyV,KAAlC7K,CAAyCoK,GAClDG,UAAW,UACXF,UAAW,UAGRrK,KAAM,EAAG6K,KAElB,GAGF2M,EAAM4H,KAAK,CACT7f,KAAM,gBACNnK,QAAS,eACTw+C,OAAQx6B,OAAaC,MAAM,CACzB42C,cAAe72C,OAAaE,eA2BhC,OACE,gBAAC,GAAD,CACE1e,MAAgB,IAAT2c,EAAa,KA1Eb,kBA2EP3Q,YAAaM,EACbxQ,MAxFc,IAyFdX,OAxFe,IAyFfkQ,MAAM,EALR,UAMY,IAATsR,GACC,eAAC,GAAD,CAAcnR,KAAMwZ,EAAQxZ,KAAM0pC,WAAY,kBAAMA,OAE5C,IAATv4B,GACC,eAAC,GAAD,CACEA,KAAMA,EACNnR,KAAMwZ,EAAQxZ,KACd+6B,kBAAmBvhB,EAAQuhB,kBAC3B9hC,MAAOA,EACP8zC,SAAUe,EACV18B,MAAOA,EACP8jB,aAAc0Y,EAAO1Y,aACrBlxB,QAASA,EACTwpC,OA1CNx6B,OAAaC,MAAM,CACjB87B,UAAW/7B,OAAaE,WACxB87B,UACEx1B,EAAQuhB,kBAAoB,GAAK5pB,GAAQ,EACrC6B,OAAaE,WACbF,OACG9e,UAAUuY,IACVi6C,WACTzX,UACEz1B,EAAQuhB,kBAAoB,GAAK5pB,GAAQ,EACrC6B,OAAaE,WACbF,OACG9e,UAAUuY,IACVi6C,WACTxX,UACE11B,EAAQuhB,kBAAoB,GAAK5pB,GAAQ,EACrC6B,OAAaE,WACbF,OACG9e,UAAUuY,IACVi6C,aAwBLhd,WAAYA,QCvGhBl5C,GAAYC,YAAW,CAC3B2xE,YAAa,CACXpzE,QAAS,OACTe,WAAY,UAEdsyE,YAAa,CACXnzE,OAAQ,EACRoB,MAAO,IAETo7D,aAAc,CACZp7D,MAAO,UAILsiB,GAActY,IAAH,4GAMXunD,GAAWvnD,IAAH,iOCnCCgoE,GDmDC,SAAC,GAA0B,IAAD,IAAjBjyB,EAAiB,EAAvBrwC,KACX9O,EAAUV,KADwB,EAEZ0K,oBAAS,GAFG,mBAEjCq0C,EAFiC,KAEzBC,EAFyB,OAGd10C,YAAS+mD,IAA3B7mD,EAHgC,EAGhCA,KAAMC,EAH0B,EAG1BA,QAH0B,EAKRQ,YAAYmX,GAAa,CACvDe,YAAa,kBAAM67B,GAAU,IAC7B5zC,eAAgB,iBAAM,CAAC,cAPe,mBAKjC00C,EALiC,KAKnBr3C,EALmB,KAKnBA,MAKf0sC,EAAO,SAACq7B,EAAWlW,GACvB,IAAM3lC,EAASG,GAAY+qB,EAAZ/qB,CAAwB07C,GACvC,OAAO1wB,EAAW,CAAE7zC,UAAW,CAAE0oB,SAAQ2lC,eAGrC3lC,GAAa,OAAJnqB,QAAI,IAAJA,OAAA,EAAAA,EAAMmqB,SAAUD,GAAcmrB,EAAdnrB,CAA0BlqB,EAAKmqB,QAExDo9C,EAAiB,iBAAGp9C,QAAH,IAAGA,OAAH,EAAGA,EAAQo9C,yBAAX,SACjB30B,GAAa,OAAJ5yC,QAAI,IAAJA,OAAA,EAAAA,EAAMmqB,SAAUD,GAAc,SAAdA,CAAwBlqB,EAAKmqB,QACtD7pB,EAAQ,iBAAGN,QAAH,IAAGA,OAAH,EAAGA,EAAMM,gBAAT,QAAqB,GAUnC,OACGL,GACC,uCACE,eAAC,GAAD,CAAczG,MAAM,WAApB,SACE,uBAAK3D,UAAWK,EAAQkxE,YAAxB,UACE,eAAC1wE,GAAD,uCACA,eAAC,GAAD,CACEyU,QAASo8D,EACTn/D,SAAU,SAAAxC,GACR+kC,EAAK,CAAE48B,kBAAmB3hE,EAAMnO,OAAO0T,WAEzC7C,MAAOi/D,IAET,eAACpwE,GAAD,CAAQtB,UAAWK,EAAQmxE,YAA3B,SACGE,EAAoB,KAAO,QAE9B,gBAACx3B,GAAD,CAAkBz6C,MAAO,IAAzB,UACE,eAACoB,GAAD,uHAIA,eAACA,GAAD,kIAON,eAAC,GAAD,CACEgzB,WAAY9qB,IAAMA,IAAO,CAAC,aAAdA,CAA4B0B,GACxCN,KAAMmqB,EACNyf,WAjCgB,SAAAngC,GAAE,OAAwC,IAApC7K,IAAUA,KAAUA,KAApBA,CAA4B6K,IAkClD86B,YAAU,EACVE,UAAW,IACXG,cAAY,EACZC,YAAa,IACbuD,SA5CS,SAAAvvC,GACf,IAAM2uE,EAAat9C,GAAcrxB,EAAdqxB,CAAkBC,GACrC,IAAK68C,GAAoBpU,YAAY4U,GAAa,OAAOhzB,EAAU37C,GACnE8xC,EAAKrgB,GAAYzxB,EAAI,CAAEsO,SAAQ,OAACqgE,QAAD,IAACA,OAAD,EAACA,EAAYrgE,YA0CtCwjC,KAAMA,EACN1sC,MAAK,OAAEA,QAAF,IAAEA,OAAF,EAAEA,EAAOG,QACd2Z,iBAAkBivD,GAClB7+B,eAAgBvpC,IAAUA,IAAOA,IAAO,CAAC,YACzC0lC,SAAUurB,GAAYvvD,EAAUsyC,EAAQ18C,KAEzC0I,KAAU0B,IAAa,eAAC,GAAD,CAAYlC,QAAQ,uBAC3Cm2C,GACC,eAAC,GAAD,CACE/1B,QAAS5f,KAAOA,IAAS,WAAY21C,GAA5B31C,CAAqC0B,GAC9CwF,QAAS,kBAAM0uC,GAAU,IACzB7J,KAAMA,EACN1sC,MAAK,OAAEA,QAAF,IAAEA,OAAF,EAAEA,EAAOG,QACdw0C,OAAQA,Q,oBEpIpB,SAAS,KAA2Q,OAA9P,GAAWr7C,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,8BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,OAAQ,CAC1C8D,GAAI,EACJC,GAAI,EACJC,GAAI,GACJC,GAAI,EACJxE,GAAI,SACJC,OAAQ,UACRC,YAAa,IACE,gBAAoB,OAAQ,CAC3CmE,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJxE,GAAI,cACJC,OAAQ,UACRC,YAAa,IACE,gBAAoB,OAAQ,CAC3CmE,GAAI,EACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJxE,GAAI,gBACJC,OAAQ,UACRC,YAAa,IACE,gBAAoB,OAAQ,CAC3CmE,GAAI,EACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJxE,GAAI,gBACJC,OAAQ,UACRC,YAAa,KAGf,SAAS,GAASO,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB,IAChC,ICvEf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,+BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,OAAQ,CAC1C8D,GAAI,EACJC,GAAI,EACJC,GAAI,GACJC,GAAI,EACJxE,GAAI,SACJC,OAAQ,UACRC,YAAa,IACE,gBAAoB,OAAQ,CAC3CmE,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJxE,GAAI,cACJC,OAAQ,UACRC,YAAa,IACE,gBAAoB,OAAQ,CAC3CmE,GAAI,EACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJxE,GAAI,gBACJC,OAAQ,UACRC,YAAa,IACE,gBAAoB,OAAQ,CAC3CmE,GAAI,EACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJxE,GAAI,gBACJC,OAAQ,UACRC,YAAa,KAGf,SAAS,GAAUO,EAAMC,GACvB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB,IAChC,ICvEf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,CACnDnC,MAAO,GACPX,OAAQ,GACR6I,GAAI,EACJiqE,GAAI,EACJzuE,KAAM,YAGR,SAAS0uE,GAAWpuE,EAAMC,GACxB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,GACPX,OAAQ,GACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,IAGpB,I,MAAI,GAA0B,aAAiBkuE,I,IAChC,I,kBC2CAC,GA/DY/xE,gBACzB,YAAqE,IAAD,EAAjEu0B,EAAiE,EAAjEA,OAAQyoB,EAAyD,EAAzDA,OAAQj/B,EAAiD,EAAjDA,SAAU3T,EAAuC,EAAvCA,KAAM/B,EAAiC,EAAjCA,MAAO0sC,EAA0B,EAA1BA,KAAMi9B,EAAoB,EAApBA,cAAoB,EACpB1nE,oBAAS,GADW,mBAC3D2nE,EAD2D,KACzCC,EADyC,OAEhB5nE,oBAAS,GAFO,mBAE3D6nE,EAF2D,KAEvCC,EAFuC,KAI5DzpB,EAAap0B,IAAWvrB,KAAUurB,GAAUA,EAASsiC,GACrDwb,EAAmB,iBAAG1pB,QAAH,IAAGA,OAAH,EAAGA,EAAYrJ,iBAAf,QAA4B,GAE/CgzB,EAA8BtpE,KAAW,CAC7CA,KAAS+tD,IACT/tD,KAASA,IAAO,aAFkBA,CAGjCqpE,GAKH,OACE,uCACE,eAAC,GAAD,UACE,eAAC,GAAD,CACEhqE,MAAK,OAAEA,QAAF,IAAEA,OAAF,EAAEA,EAAOG,QACd5E,MAAM,gBACNmwC,QAAQ,KACRe,SAAO,EACP1lC,KAAK,cACLu/B,YAAU,EACV1zB,cAAe0tC,EACf5T,KAAMA,EACN5yB,iBAAkBszC,GAAUzY,GAC5B5yC,KAAMpB,KAAK2/C,GACXja,SAAUsmB,GAAWj3C,GACrBq3B,WAlBiB,SAACvhC,EAAIs+B,GAAL,OAAiB+/B,EAAkB//B,IAmBpD7gC,aAAc6gE,MAGlB,eAAC,GAAD,UACE,eAAC,GAAD,CACE9pE,MAAK,OAAEA,QAAF,IAAEA,OAAF,EAAEA,EAAOG,QACd5E,MAAM,YACNkxC,SAAO,EACP1lC,KAAK,YACL0/B,cAAY,EACZH,YAAU,EACVsG,cAAY,EACZM,QAASwhB,GACT97C,cAAe67C,GACf/hB,KAAMi9B,EACN7vD,iBAAkByzC,GAChB0c,EACAloE,EACA4yC,GAEF5yC,KAAMkoE,EACN5jC,SAAU4Q,GAAUl1C,EAAM2T,GAC1Bq3B,WAxCmB,SAACvhC,EAAIs+B,GAAL,OAAiBigC,EAAoBjgC,IAyCxD7gC,aAAc2gE,Y,8BCvCpBM,GAAW,CACfj6D,KAAM,WACNla,QAAS,YAGLo0E,GAAgB,CACpB,CACEl6D,KAAM,UACNla,QAAS,gBAEX,CACEka,KAAM,mBACNla,QAAS,kBAEX,CACEka,KAAM,SACNla,QAAS,WAEX,CACEka,KAAM,UACNla,QAAS,YAEX,CACEka,KAAM,WACNla,QAAS,aAEX,CACEka,KAAM,YACNla,QAAS,eAIPwB,GAAYC,YAlDH,CACb4yE,WAAY,CACVr0E,QAAS,OACTwG,eAAgB,GAChBuB,aAAc,IAEhBk7B,OAAQ,CACNh7B,YAAa,IAEfk+C,aAAc,CACZn0C,KAAM,EACNhS,QAAS,QACT0H,UAAW,OACXpG,MAAO,OACPmG,UAAW,UAsCT6sE,GAAa,SAACp6D,EAAMla,GAAP,MAAoB,CACrCka,KAAMA,EACNla,QAASA,GAAWka,IAoHPq6D,GA3FS3yE,gBACtB,YAAqE,IAAD,EAAjEu0B,EAAiE,EAAjEA,OAAQq+C,EAAyD,EAAzDA,aAAc70D,EAA2C,EAA3CA,SAAU3T,EAAiC,EAAjCA,KAAM/B,EAA2B,EAA3BA,MAAO2pE,EAAoB,EAApBA,cACxC1xE,EAAUV,KADkD,EAGxB0K,mBAASioE,IAHe,mBAG3DM,EAH2D,KAG5CC,EAH4C,OAI9BxoE,mBAASioE,IAJqB,mBAI3DQ,EAJ2D,KAI/CC,EAJ+C,OAKhC1oE,mBAASkoE,GAAc,IALS,mBAK3DS,EAL2D,KAKhDC,EALgD,KAO5D7R,EAAK,UAAGr4D,IAAO,mBAAoB4pE,UAA9B,QAA+C,GAiBpDrd,EAAavsD,IAAM0pE,GAAN1pE,CAAkBq4D,GAE/BjM,EAAcpsD,KAClBA,IAAO,WACPA,KAPwB,SAAA6K,GAAE,OAC1B6+D,GAAW1pE,IAAO,WAAY6K,GAAK7K,IAAO,OAAQ6K,MAMlD7K,CAAyBA,IAAO,WAAYoB,KAGxC+oE,EAAsBnqE,KAC1BA,KAvBsB,SAAA4C,GAAa,IAAD,EAC5B+rD,EAAQ,UAAG3uD,IAAO,YAAa4pE,UAAvB,aAAG,EAAmC5uD,KAClDhb,IAAS,UAAW4C,IAGhBwnE,EAAezb,EACjB3uD,IAAO,mBAAoB2uD,GAC3B0J,EAEJ,OAAOr4D,KAAQ,CAAC4C,GAAWwnE,KAc3BpqE,CAAuBosD,EAAY1pD,IAAI1C,IAAO,WAG1C42C,EAAc52C,KAAM,mCAAE4C,EAAF,Y1E2QP,SAAC0+C,EAAY1+C,EAAU2oB,GAAY,IAAD,EACjD+qB,EAAS,UAAGt2C,IAAO,YAAaurB,UAAvB,QAAkC,GAEjD,IAAK+qB,GAAat2C,KAAUs2C,GAC1B,OAAO0X,GAAkB1M,EAAY1+C,GAAU,EAAM2oB,GAGvD,IAAM8+C,EAAmBrqE,MACvB,SAAA6K,GAAE,OAAIA,EAAG+U,UAAYhd,GAAYw0B,YAAWkqB,EAAXlqB,CAAuBvsB,EAAG0hB,oBADpCvsB,CAEvBs2C,GAEF,QAAyB5vC,IAArB2jE,EACF,OAAOrc,GAAkB1M,EAAY1+C,GAAU,EAAOynE,GAExD,IAAMC,EAAkBtqE,MACtB,SAAA6K,GAAE,OACAA,EAAG+U,UAAYhd,GAAYw0B,YAAW,YAAXA,CAAwBvsB,EAAG0hB,oBAFlCvsB,CAGtBs2C,GAEF,QAAwB5vC,IAApB4jE,EACF,OAAOtc,GAAkB1M,EAAY1+C,GAAU,EAAO0nE,GAExD,IAAMC,EAAevqE,MACnB,SAAA6K,GAAE,MACe,iBAAfA,EAAG+U,SACHwX,YAAWkqB,EAAXlqB,CAAuBvsB,EAAG0hB,oBAHTvsB,CAInBs2C,GAEF,YAAqB5vC,IAAjB6jE,EACKvc,GAAkB1M,EAAY1+C,GAAU,EAAO2nE,GAEjDvc,GAAkB1M,EAAY1+C,GAAU,EAAM2oB,G0EzSjDi/C,CADwB,KACG5nE,EAAU2oB,KADnBvrB,CAElBmqE,GAEIM,EAAYzqE,IA9DI,SAAA0qE,GACxB,OAAQA,GACN,KAAKlB,GAAc,GACjB,OAAOxpE,KAASA,KAAOA,IAAS,OAAQA,IAAO,cACjD,KAAKwpE,GAAc,GACjB,OAAOxpE,KAASA,IAAO,CAAC,mBAAoB,KAC9C,QACE,OAAOA,KAASA,IAAO0qE,EAAKp7D,QAwD5Bq7D,CAAkBV,GApDE,SAACF,EAAYF,GAAb,OACxB7pE,IACEA,KACE,SAAA6K,GAAE,OAAKg/D,IAAkBN,GAAaM,EAAcv6D,OAASzE,EAAG+U,WAElE5f,KACE,SAAA6K,GAAE,OACCk/D,IAAeR,GAAaQ,EAAWz6D,OAASzE,EAAG0hB,iBAAiB,OA8CvEq+C,CAAkBb,EAAYF,GAFd7pE,CAGhB42C,GAEF,OACE,iCACE,uBAAK3/C,UAAWK,EAAQmyE,WAAxB,UACE,eAAC,GAAD,CACExyE,UAAWK,EAAQ+gC,OACnB0P,qBAAsB+hC,EACtB3iE,MAAM,WACNohC,QAASghC,GACT1hC,MAAO,CAAC0hC,IAAUld,OAAOD,GACzB1kB,aAAcmiC,IAEhB,eAAC,GAAD,CACE5yE,UAAWK,EAAQ+gC,OACnB0P,qBAAsBiiC,EACtB7iE,MAAM,iBACNohC,QAASghC,GACT1hC,MAAO,CAAC0hC,IAAUld,OAAOE,GACzB7kB,aAAcqiC,IAEhB,eAAC,GAAD,CACEhiC,qBAAsBmiC,EACtB/iE,MAAM,UACNohC,QAASihC,GAAc,GACvB3hC,MAAO2hC,GACP9hC,aAAcuiC,EACd3hC,iBAAe,OAGnB,sBAAKrxC,UAAWK,EAAQikD,aAAxB,SACE,eAAC,GAAD,CACEl8C,MAAK,OAAEA,QAAF,IAAEA,OAAF,EAAEA,EAAOG,QACd4G,KAAK,iBACLu/B,YAAU,EACVoG,KAAMi9B,EACN/2D,cAAe67C,GACf30C,iBAAkB+0C,GAAyB0b,GAC3CxoE,KAAMqpE,EACN/kC,SAAU0oB,GAAgBhtD,EAAM2T,GAChCmxB,UAAW+jC,YC1JjBrzE,GAAYC,YANH,CACbg0E,eAAgB,CACd9uE,WAAY,KAMViwB,GAAWtrB,IAAH,+KAcRsY,GAActY,IAAH,4GCnCF81C,GD6CK,SAAC,GAA0B,IA4Bf3rC,EA5BH4rC,EAAiB,EAAvBrwC,KACf9O,EAAUV,KAD4B,EAEJ0K,oBAAS,GAFL,mBAErCwpE,EAFqC,KAEvBC,EAFuB,OAGlBzpE,mBAAS,MAHS,mBAGrCjC,EAHqC,KAG9B4tC,EAH8B,OAIlB/rC,YAAS8qB,IAA3B5qB,EAJoC,EAIpCA,KAAMC,EAJ8B,EAI9BA,QAJ8B,EAKvBQ,YAAYmX,GAAa,CAC5ChX,eAAgB,iBAAM,CAAC,YACvBF,QAAS,SAAAzC,GAAK,OAAI4tC,EAAS5tC,MAFtBq3C,EALqC,oBAUtCnrB,GAAa,OAAJnqB,QAAI,IAAJA,OAAA,EAAAA,EAAMmqB,SAAUD,GAAcmrB,EAAdnrB,CAA0BlqB,EAAKmqB,QACxDq+C,GACA,OAAJxoE,QAAI,IAAJA,OAAA,EAAAA,EAAMmqB,SAAUD,GAAcR,GAAdQ,CAAiClqB,EAAKmqB,QAElDxW,EAAW/U,IAAO,eAAPA,CAAuB4pE,GAClCtzB,EAAYt2C,IAAO,YAAPA,CAAoBurB,GAmChCpL,EAAS2qD,EACX,CACE,CACE3jE,MAAO,iBACPnI,KAAM,eAAC,GAAD,MAGV,GAEJ,OACE,uCACE,eAAC,GAAD,CACEpE,MAAM,cACNulB,OAAQA,EACRC,QAAS,CACP,CACEI,KAAM,YACNxhB,KAAMgsE,GACNzqD,YAAa0qD,GACb5iE,OAAQ0iE,IAGZG,cAAe5zE,EAAQuzE,kBAGvBC,IAAiBzpE,GACjB,eAAC,GAAD,CACEkqB,OAAQA,EACRyoB,OAAQ41B,EACR70D,SAAUA,EACV3T,KAAMA,EACN/B,MAAOA,EACP0sC,KAjEK,SAAAlhC,GACX,IAAM0gB,EAASG,GAAY+qB,EAAZ/qB,CAAwB7gB,EAAG+rC,YAAY,IACtD,OAAOF,EAAW,CAAE7zC,UAAW,CAAE0oB,aAgE3By9C,cA7Dc,SAAAn+D,GACpB,IAAM0gB,EAASG,GAAY+qB,EAAZ/qB,CAAwB7gB,GAEvC,OADAoiC,EAAS,MACFyJ,EAAW,CAAE7zC,UAAW,CAAE0oB,aA2D3Bj0B,QAASA,IAGZwzE,IAAiBzpE,GAChB,eAAC,GAAD,CACEkqB,OAAQA,EACRq+C,aAAcA,EACd70D,SAAUA,EACV3T,KAAMA,EACN/B,MAAOA,EACP2pE,eAlEsBn+D,EAkEeyrC,EAlET,SAAClf,EAAGu3B,GACtC,IAlC2B1M,EAkCrBkpB,EAAkBnrE,IAAO,CAAC,mBAAoB,GAAI2uD,GAElDyc,EAAcprE,KAAU,UAAW2uD,GAGnC0c,EAAgBrrE,IAASA,KAAOorE,GAFd,SAAAvgE,GAAE,OAAK7K,KAAU,mBAAoB2uD,EAAU9jD,OAGjEygE,GAxCqBrpB,EAwCekpB,EAxCL,SAAAxc,GAAQ,OAC/C3uD,KAAa2uD,EAAU,CACrBpiC,iBAAkBvsB,KAAU,CAACiiD,GAAS0M,EAASpiC,sBA0CzC+pB,EAFmBt2C,IAAMsrE,EAANtrE,CAAkBqrE,EAAcxgE,IAEtBwhD,OACjCrsD,KAAS,SAAA6K,GAAE,OAAKugE,EAAYvgE,KAAKA,IAG7B0gB,EAAS,CACbggD,sBAAuBvrE,KAAU2uD,EAAUrY,IAG7C,OAAOI,EAAW,CAAE7zC,UAAW,CAAE0oB,oB,UE9FrC,SAAS,KAA2Q,OAA9P,GAAW5yB,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,8BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,SAAU,CAC5CJ,GAAI,OACJC,OAAQ,UACRiB,GAAI,EACJC,GAAI,EACJC,EAAG,IACY,gBAAoB,WAAY,CAC/CpB,GAAI,YACJC,OAAQ,UACRkE,cAAe,QACf5D,eAAgB,QAChBkE,OAAQ,0BAGV,SAAS,GAAShE,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDI,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB,IAChC,IC/Cf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,+BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,UACJC,OAAQ,WACM,gBAAoB,SAAU,CAC5CD,GAAI,OACJkB,GAAI,EACJC,GAAI,EACJC,EAAG,KACa,gBAAoB,WAAY,CAChDpB,GAAI,YACJC,OAAQ,UACRkE,cAAe,QACf5D,eAAgB,QAChBkE,OAAQ,0BAGV,SAAS,GAAUhE,EAAMC,GACvB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDI,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB,IC9CzC4wE,ID+CS,IC/CY,CACzBz2E,OAAQ,CACNK,QAAS,OACT+H,aAAc,EACdrB,UAAW,OACXpF,MAAO,IAET+0E,cAAe,CACb/3E,MAAOpD,GAETo7E,eAAgB,CACdh4E,MAAO3C,GAET46E,eAAgB,CACdj4E,MAAOjD,GAETm7E,iBAAkB,CAChBx2E,QAAS,OACTW,OAAQ,GACRsH,YAAa,OACbtB,WAAY,IAEd8vE,mBAAoB,CAClBz2E,QAAS,OACTE,OAAQ,CAAC,CAAC,EAAG,GAAI,EAAG,KAEtBw2E,sBAAuB,CACrB12E,QAAS,OACT8H,cAAe,MACfnH,OAAQ,IAEVg2E,aAAc,CACZ32E,QAAS,OACT8H,cAAe,SACfjH,aAAc,EACdS,MAAO,OACPX,OAAQ,IACRG,QAAS,CAAC,CAAC,KACX81E,UAAW,aACXtwE,UAAW,gCACX5F,OAAQ,UACRzE,gBAAiBP,EACjBwE,OAAQ,CAAC,CAAC,GAAI,EAAG,EAAG,KAEtB22E,gBAAiB,CACf72E,QAAS,OACT82E,SAAU,aACV/1E,WAAY,SACZyF,eAAgB,iBAElBuwE,mBAAoB,CAClB/2E,QAAS,OACT82E,SAAU,gBACV/1E,WAAY,SACZyF,eAAgB,gBAChBlF,MAAO,IAETmlD,eAAgB,CACdzmD,QAAS,OACT8H,cAAe,MACftB,eAAgB,WAChBG,WAAY,OACZD,UAAW,UC7CTswE,IAFYv1E,YAAW20E,IAEJ,aACnBa,GAAsB,WACtBC,GAAoB,UCrB1B,SAAS,KAA2Q,OAA9P,GAAW3zE,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,0BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,IAAK,CACvCP,GAAI,UACJC,OAAQ,WACM,gBAAoB,SAAU,CAC5CD,GAAI,OACJkB,GAAI,EACJC,GAAI,EACJC,EAAG,IACY,gBAAoB,OAAQ,CAC3CiD,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJxE,GAAI,eAGN,SAAS,GAASS,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDI,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB,IAChC,ICnDf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,2BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,IAAK,CACvCP,GAAI,UACJC,OAAQ,WACM,gBAAoB,SAAU,CAC5CD,GAAI,OACJkB,GAAI,EACJC,GAAI,EACJC,EAAG,IACY,gBAAoB,OAAQ,CAC3CiD,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJxE,GAAI,eAGN,SAAS,GAAUS,EAAMC,GACvB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDI,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB,IAChC,ICnDf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,yBACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,oBACJK,UAAW,gCACXJ,OAAQ,WACM,gBAAoB,OAAQ,CAC1CK,EAAG,uKACHN,GAAI,WACW,gBAAoB,OAAQ,CAC3CM,EAAG,+IACHN,GAAI,WACW,gBAAoB,UAAW,CAC9CA,GAAI,SACJkB,GAAI,IACJC,GAAI,WACJwD,GAAI,IACJiqE,GAAI,cACY,gBAAoB,IAAK,CACzC5uE,GAAI,UACJK,UAAW,iCACG,gBAAoB,SAAU,CAC5CL,GAAI,OACJC,OAAQ,UACRE,KAAM,UACNe,GAAI,EACJC,GAAI,EACJC,EAAG,MACY,gBAAoB,UAAW,CAC9CpB,GAAI,OACJG,KAAM,UACNC,SAAU,UACVqE,OAAQ,sMAGV,SAAS,GAAShE,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiB,IAChC,IClEf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,0BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,oBACJK,UAAW,gCACXJ,OAAQ,WACM,gBAAoB,OAAQ,CAC1CK,EAAG,2HACHN,GAAI,WACW,gBAAoB,OAAQ,CAC3CM,EAAG,8HACHN,GAAI,WACW,gBAAoB,UAAW,CAC9CA,GAAI,SACJkB,GAAI,EACJC,GAAI,EACJwD,GAAI,EACJiqE,GAAI,KACY,gBAAoB,IAAK,CACzC5uE,GAAI,UACJK,UAAW,iCACG,gBAAoB,SAAU,CAC5CL,GAAI,OACJC,OAAQ,UACRE,KAAM,UACNe,GAAI,EACJC,GAAI,EACJC,EAAG,MACY,gBAAoB,UAAW,CAC9CpB,GAAI,OACJG,KAAM,UACNC,SAAU,UACVqE,OAAQ,sMAGV,SAAS,GAAUhE,EAAMC,GACvB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiB,I,IAChC,I,QClEf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,6BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,OAAQ,CAC1CE,EAAG,uRACHN,GAAI,WACJC,OAAQ,UACRC,YAAa,IACE,gBAAoB,OAAQ,CAC3CmE,GAAI,WACJC,GAAI,WACJC,GAAI,WACJC,GAAI,UACJxE,GAAI,WACJC,OAAQ,UACRC,YAAa,EACbiE,cAAe,WAGjB,SAAS,GAAS1D,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB,IAChC,ICnDf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,qBACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,QACJK,UAAW,gCACXJ,OAAQ,UACRC,YAAa,GACC,gBAAoB,OAAQ,CAC1CI,EAAG,sRACHN,GAAI,aACW,gBAAoB,OAAQ,CAC3CqE,GAAI,WACJC,GAAI,QACJC,GAAI,WACJC,GAAI,WACJxE,GAAI,WACJmE,cAAe,YAGjB,SAAS,GAAU1D,EAAMC,GACvB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,QAAkBqP,IAAV9L,EAAmC,gBAAoB,QAAS,CACzEX,GAAIY,GACH,sBAAwBD,EAAqB,gBAAoB,QAAS,CAC3EX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiB,ICxCzChE,IDyCS,ICzCGC,YCXH,CACbmd,IAAK,CACH5e,QAAS,OACT8H,cAAe,OAEjBqvE,MAAO,kBAAwB,CAC7BC,UAAW,QACXv2E,aAAc,kBACdS,MAHK,EAAGA,MAIRX,OAJK,EAAUA,SAMjB02E,WAAY,kBAAkC,CAC5CD,UAAW,QACX91E,MAFU,EAAGg2E,WAGb32E,OAHU,EAAe42E,cAK3B5pE,OAAQ,kBAAiB,CACvB9M,aAAc,kBACdF,OAFM,EAAGA,SAIXmQ,eAAgB,CACd9Q,QAAS,QACTc,QAAS,CAAC,CAAC,GAAI,SDoCJ02E,GA7CK51E,gBAClB,YAAiE,IAA9DC,EAA6D,EAA7DA,UAAWP,EAAkD,EAAlDA,MAAOX,EAA2C,EAA3CA,OAAQ22E,EAAmC,EAAnCA,WAAYC,EAAuB,EAAvBA,YAAa38B,EAAU,EAAVA,IAC9C14C,EAAUV,GAAU,CACxBF,QACAX,SACA22E,aACAC,gBAL4D,EAOlBrrE,mBAAS,MAPS,mBAOvDurE,EAPuD,KAOvCC,EAPuC,KAiBxD3tD,EAAa1Y,QAAQomE,GAErBE,EAAQ,SAAC,GAAD,IAAG91E,EAAH,EAAGA,UAAH,OACZ,sBAAKA,UAAWO,IAAWP,GAAY+4C,IAAKA,EAAKD,IAAI,MAGvD,OACE,eAAClpC,EAAA,EAAD,CAAmBC,YAXK,WACxBgmE,EAAkB,OAUlB,SACE,uBAAK71E,UAAWO,IAAWF,EAAQ0c,IAAK/c,GAAxC,UACE,eAAC81E,EAAD,CAAO91E,UAAWK,EAAQi1E,QAC1B,eAAC,GAAD,CACEr1E,KAAM81E,GACN71E,YAAa81E,GACbh2E,UAAWK,EAAQyL,OACnBvC,QAtBiB,SAAAwG,GACvB8lE,EAAkBD,EAAiB,KAAO7lE,EAAMC,kBAuB5C,eAAC,GAAD,CAAQhB,KAAMkZ,EAAY5Y,SAAUsmE,EAAgB1nE,UAAU,MAA9D,SACE,sBAAKlO,UAAWK,EAAQ4O,eAAxB,SACE,eAAC6mE,EAAD,CAAO91E,UAAWK,EAAQm1E,yBEjDxC,SAAS,KAA2Q,OAA9P,GAAW9zE,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,yBACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,UAAW,CAC7CP,GAAI,WACJC,OAAQ,UACRC,YAAa,IACbuE,OAAQ,wBACO,gBAAoB,OAAQ,CAC3CJ,GAAI,WACJC,GAAI,EACJC,GAAI,WACJC,GAAI,EACJxE,GAAI,WACJC,OAAQ,UACRC,YAAa,MACE,gBAAoB,OAAQ,CAC3CmE,GAAI,WACJC,GAAI,IACJC,GAAI,WACJC,GAAI,IACJxE,GAAI,WACJC,OAAQ,UACRC,YAAa,MACE,gBAAoB,UAAW,CAC9CF,GAAI,WACJC,OAAQ,UACRC,YAAa,IACbuE,OAAQ,+DAGV,SAAS,GAAShE,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,QAAkBqP,IAAV9L,EAAmC,gBAAoB,QAAS,CACzEX,GAAIY,GACH,0BAA4BD,EAAqB,gBAAoB,QAAS,CAC/EX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiB,IAChC,ICjEf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,0BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,OAAQ,CAC1CD,EAAG,olBACHN,GAAI,gBACJC,OAAQ,UACRC,YAAa,OAGf,SAAS,GAASO,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,QAAkBqP,IAAV9L,EAAmC,gBAAoB,QAAS,CACzEX,GAAIY,GACH,2BAA6BD,EAAqB,gBAAoB,QAAS,CAChFX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiB,IAChC,IC5Cf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,sBACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,kBACU,gBAAoB,IAAK,CACvCA,GAAI,WACU,gBAAoB,IAAK,CACvCA,GAAI,qBACJK,UAAW,gCACXF,KAAM,UACNC,SAAU,WACI,gBAAoB,OAAQ,CAC1CE,EAAG,i9CACHN,GAAI,cACY,gBAAoB,OAAQ,CAC5CqE,GAAI,GACJC,GAAI,EACJC,GAAI,EACJC,GAAI,GACJxE,GAAI,OACJC,OAAQ,UACRC,YAAa,EACbiE,cAAe,cAGjB,SAAS8uE,GAAiBxyE,EAAMC,GAC9B,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiBsyE,IAChC,IC1Df,SAAS,KAA2Q,OAA9P,GAAWv0E,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,4BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,OAAQ,CAC1CD,EAAG,wEACHN,GAAI,WACJC,OAAQ,UACRC,YAAa,IACE,gBAAoB,UAAW,CAC9CF,GAAI,WACJC,OAAQ,UACRC,YAAa,EACbuE,OAAQ,+BAGV,SAAS,GAAShE,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB,IAChC,ICoBA,ICAA,ICEA,ICAA,IADf,ICpEe,IACbe,OAAQ,CACNvG,QAAS,OACT8H,cAAe,MACfC,aAAc,IAEhBvC,MAAO,CACLkB,UAAW,EACXuB,YAAa,IAEf8vE,SAAU,CACRrxE,UAAW,GAEbsxE,SAAU,CACRtxE,UAAW,GAEbuxE,UAAW,CACThwE,YAAa,IAEf8F,QAAS,CACP/N,QAAS,QACTuO,SAAU,SACV8I,WAAY,UAEde,UAAW,CACT9Z,MAAO/B,GACP2D,OAAQ,CAAC,CAAC,EAAG,EAAG,EAAG,MACnB8G,SAAU,WACVhH,QAAS,eACT,oBAAqB,CACnBqP,QAAS,KACTrI,SAAU,WACVK,WAAY9K,GACZ0K,IAAK,MACL3F,MAAO,IACPX,OAAQ,GAEV,WAAY,CACV0F,MAAO,OACP4B,YAAa,IAEf,UAAW,CACTd,KAAM,OACNR,WAAY,KAGhBirC,YAAa,CACX5xC,QAAS,OACTc,QAAS,CAAC,CAAChD,GAAYA,GAAY,EAAGA,KACtCsD,aAActD,GACd0I,eAAgB,OAElB28C,YAAa,CACXjjD,OAAQ,CAAC,CAAC,EAAGpC,GhUIF,EgUJsBA,MAEnColD,cAAe,CACb5hD,MAAO,IACPqF,WAAY,IAEdy8C,cAAe,CACbtiD,QAAShD,GACTkK,WAAYlK,IAEdoxE,aAAc,CACZjnE,YAAa,EACbnH,QAAS,I,8BC/CPU,GAAYC,YAAW,CAC3By2E,MAAO,CACLp3E,QAAS,EACTZ,OAAQ,GAEVy9D,WAAY,CACV71D,cAAe,OAEjBmC,MAAO,CACL3L,MAAO3B,IAETw7E,aAAc,CACZx3E,OAAQ,GACRG,QAAS,EACTQ,MAAO,KAETyQ,MAAO,CACLpR,OAAQ,GACRG,QAAS,GAEXs3E,YAAa,CACXp4E,QAAS,OACTq4E,oBAAqB,CAAC,CAAC,IAAK,IAAK,OAEnCzF,OAAQ,CACNtxE,MAAO,KAETgb,MAAO,CACL,mBAAoB,CAClBvU,aAAc,OAMduwE,GAAS,SACTC,GAAc,cAGdC,GAAsB,SAAC/iE,EAAIgjE,EAAUC,GACzC,IAAMC,EAAS/tE,KACb,CAAC,cAAe,aAAc,cAAe,QAAS,aACtDA,KAAM,SAAAgxD,GAAG,OAAIA,EAAI/2D,KAAI6zE,IAEjBE,EAAuB,CAAC,cAAe,eAEvCC,EAAgB,SAAAC,GAAc,IAAD,EAC3BC,EAAcnuE,KAASkuE,EAAW,eACpC,YACAA,EACEE,EAAkBpuE,KACtB,SAAAgxD,GAAG,OAAIhxD,KAASA,KAAUgxD,EAAIqd,YAAaj/B,MADrB,iBAEtBy+B,QAFsB,IAEtBA,OAFsB,EAEtBA,EAAUv3B,iBAFY,QAEC,IAGzB,QACIt2C,MACA,SAAAgxD,GAAG,OAAIhxD,KAASgxD,EAAIqE,YAAa8Y,KACjCC,IACGpuE,KAASA,KAAU6tE,EAASQ,YAAaj/B,KAI5Ck/B,EAAqBtuE,KAAM,SAAAgxD,GAC/B,GAAIid,EAAcjd,GAAM,CACtB,GAAIud,KAAcvd,GAAM,CACtB,IAAMwd,EAAUxuE,MACd,SAAAyuE,GAAI,OAAIA,EAAKC,gBAAkB1d,IAC/BnmD,EAAG8jE,oBAEL,OAAQ3uE,IAAQwuE,IAAYxuE,KAASwuE,EAAQ7f,SAAU,aAGzD,IAAMigB,EAAoB5uE,IAAWgxD,EAAKgd,GACtCnjE,EAAG,GAAD,OAAImmD,EAAJ,SACFnmD,EAAG,GAAD,OAAImmD,IACV,OAAIhxD,IAAQ4uE,IACL5uE,KAAS6K,EAAG,GAAD,OAAImmD,EAAJ,aAAoB,aAExC,OAAO,IACN+c,GAEGc,EAAsB7uE,KAAM,SAAAgxD,GAChC,GAAIid,EAAcjd,GAAM,CACtB,GAAIud,KAAcvd,GAAM,CACtB,IAAMwd,EAAUxuE,MACd,SAAAyuE,GAAI,OAAIA,EAAKC,gBAAkB1d,IAC/BnmD,EAAG8jE,oBAEL,OAAQ3uE,IAAQwuE,IAAYxuE,KAASwuE,EAAQ7f,SAAU,WAGzD,IAAMigB,EAAoB5uE,IAAWgxD,EAAKgd,GACtCnjE,EAAG,GAAD,OAAImmD,EAAJ,SACFnmD,EAAG,GAAD,OAAImmD,IACV,OAAIhxD,IAAQ4uE,IACL5uE,KAAS6K,EAAG,GAAD,OAAImmD,EAAJ,aAAoB,WAExC,OAAO,IACN+c,GAEH,MAnEuB,YAmEnBljE,EAAGikE,mBACE,CAAE3nE,MAAO,UAAW5H,KAAM,SAC/BsL,EAAGkkE,YACElkE,EAAGmkE,cAAgB,EACtB,CAAE7nE,MAAM,GAAD,OAAK0D,EAAGmkE,cAAR,mBAAwCzvE,KAAM,WACrD,CAAE4H,MAAM,qBAAuB5H,KAAM,WACvCS,MAAM,SAAAgxD,GAAG,OAAY,IAARA,IAAc6d,GACtB,CAAE1nE,MAAO,WAAY5H,KAAM,SAChCS,MAAM,SAAAgxD,GAAG,OAAY,IAARA,IAAcsd,GACtB,CAAEnnE,MAAO,UAAW5H,KAAM,WAC5B,CAAE4H,MAAO,aAAc5H,KAAM,YAGhC0vE,GAAoB,SAACC,EAAOjsB,GAChC,IAAMksB,EACJD,GAASjsB,EAAUmsB,aAA2BF,EAAOjsB,GAAW,KAElE,OAAOksB,EAAcA,EAAYE,sBAAwBH,GAGrDI,GAAU,SAAAzkE,GAAO,IAAD,IACd0kE,EAASvvE,IAAO,CAAC,cAARA,CAAuB6K,GAEtC,MAAO,oBAAG7K,IAAO,CAAC,aAARA,CAAsBuvE,UAAzB,QAAoC,GAApC,sBAA0CvvE,IAAO,CAAC,YAARA,CAC/CuvE,UADK,QAEF,IAAK5K,QAKN6K,GAAe,CACnB,CAAEp6E,QAAS,eAAgBka,KAAM,UACjC,CAAEla,QAAS,gCAAiCka,KAAM,gBAG9CmgE,GAAc,CAClB,CAAEr6E,QAAS,OAAQka,KAAM,SAMrBogE,GAAqB,CACzB,CAAEt6E,QAAS,gBAAiBka,KAAM,eAClC,CAAEla,QAAS,UAAWka,KAAM,cAC5B,CAAEla,QAAS,SAAUka,KAAM,SAC3B,CAAEla,QAAS,kBAAmBka,KAAM,gBAQhCqgE,GAAsB,CAAC,CAAExoE,MAAO,mBAAoBf,KAAM,UAE1DwpE,GAAkBx2D,MAAS,SAAAzK,GAC/B,MAAyB,WAArBA,EAAOkhE,UACFz2D,OAAaC,MAAM,CACxBw2D,UAAWz2D,OAAaE,WACxBw2D,SAAU12D,OAAaE,aAEK,gBAArB3K,EAAOkhE,UACTz2D,OAAaC,MAAM,CACxBw2D,UAAWz2D,OAAaE,WACxB+7C,YAAaj8C,OAAaE,kBAHvB,KAQHy2D,GAAmB32D,OAAaC,MAAM,CAC1Cze,MAAOwe,OAAaE,WACpBoqC,KAAMtqC,OAAYE,aAGd02D,GAAoB52D,OAAaC,MAAM,CAC3Cze,MAAOwe,OAAaE,WACpBizD,MAAOnzD,OAAYE,aAGf22D,GAAmB72D,OAAaC,MAAM,CAC1Cze,MAAOwe,OAAaE,WACpBlY,KAAMgY,OAAaE,aAuEf42D,GAAkB,SAAC,GAAsD,IApE9CrlE,EAoENslE,EAAmD,EAAnDA,eAAgBC,EAAmC,EAAnCA,6BACnC94E,EAAUV,KAEVy5E,EAAmB,OAAGF,QAAH,IAAGA,OAAH,EAAGA,EAAgBN,UACtCS,EAAgB,OAAGH,QAAH,IAAGA,OAAH,EAAGA,EAAgBL,SACnCS,EAAmB,OAAGJ,QAAH,IAAGA,OAAH,EAAGA,EAAgB9a,YAEtCmb,EAA8C,gBAAxBH,EAEtBI,EAA0BF,IAAwB7C,GAElDgD,EAA6B1wE,KAAUowE,GAEzCV,IAjF2B7kE,EAgFF6kE,GAhFI,CACjC,CACEt6E,QAAS,iCACTka,KAAM,WAHyB,mBAK9BzE,KA8EG8lE,EAAkBH,EACpBxwE,KAAOA,IAAS,OAAQuwE,GAAxBvwE,CAA8C0wE,GAC3Ct7E,QACH,GAEEwF,EAAQ41E,EAAmB,sBACdG,GADc,iBAEnBL,EAFmB,UAI3B5qC,EAAW8qC,EACbI,GAAoBL,GACpBM,GAAeP,GAEbQ,EAASN,EACa,gBAAxBD,GACwB,gBAAxBA,EACqB,SAArBD,GAAoD,UAArBA,EAEnC,OACE,uCACE,eAAC7vD,GAAA,EAAD,CAAKrrB,QAAQ,OAAOe,WAAW,SAA/B,SACE,eAACyB,GAAD,UAAKgD,MAEN61E,GACC,eAAC,GAAD,CACE/lE,WAAS,EACTvD,MAAK,qBACLlQ,UAAWK,EAAQ0wE,OACnB77D,kBAAmBnM,KAAU,QAC7BuK,UAAW,UACXH,QAASgmE,EACT5mE,SAAU,SAACwB,EAAKH,OAGpB,sBAAK5T,UAAWK,EAAQoa,MAAxB,UACIo/D,IACCL,GACD/qC,EAASt7B,QAAQ1H,KAAI,gBAAGyE,EAAH,EAAGA,MAAOf,EAAV,EAAUA,KAAV,OACnB,eAAC,KAAD,CACEA,KAAMA,EACNe,MAAOA,EACPwS,UAAWrQ,GACX5S,MAAO,WAIdo6E,GACC,eAAC,GAAD,CACEvxE,KACEixE,EAAsBD,EAAsBD,QAOlDO,GAAiB,CACrBrwD,KAAM,CACJozB,OAAQq8B,GACR7lE,QAlLsB,CACxB,CAAEjD,MAAO,mBAAoBf,KAAM,SACnC,CAAEe,MAAO,aAAcf,KAAM,SAiL3BqV,UAAWy0D,GACXj+D,cAAe,CAAE7Q,KAAM,GAAIxG,MAAO,IAClCm2E,SAAU,eAEZrtB,KAAM,CACJ9P,OAAQm8B,GACR3lE,QAASulE,GACTl0D,UAAWy0D,GACXj+D,cAAe,CAAEyxC,KAAM,KAAM9oD,MAAO,IACpCm2E,SAAU,qBAEZxE,MAAO,CACL34B,OAAQo8B,GACR5lE,QAASulE,GACTl0D,UAAWy0D,GACXj+D,cAAe,CAAEs6D,MAAO,KAAM3xE,MAAO,IACrCm2E,SAAU,sBAIRlB,GAAY,CAChBj8B,OAAQg8B,GACRxlE,QAASolE,GACT/zD,UA9JgB,SAAC,GAAqC,EAAnC20D,6BAAoC,IACjD94E,EAAUV,KACR+X,EAAWqD,eAAXrD,OAEFqiE,EAAuBriE,EAAOkhE,YAAcnC,GAC5CuD,EAA4BtiE,EAAOkhE,YAAclC,GAEvD,OACE,uCACE,eAACltD,GAAA,EAAD,CAAKrrB,QAAQ,OAAOe,WAAW,SAA/B,SACE,eAACyB,GAAD,8BAEF,eAAC,KAAD,CACE+hB,UAAW5K,GACX3I,KAAK,YACLgE,QAASolE,GACTxgE,eAAgB1X,EAAQi2E,aACxBt+D,eAAgB3X,EAAQg2E,MACxBr2E,UAAWO,IAAWF,EAAQy7D,WAAYz7D,EAAQk2E,eAEnDwD,GACC,iCACE,eAACvwD,GAAA,EAAD,CAAKrrB,QAAQ,OAAOe,WAAW,SAA/B,SACE,eAACyB,GAAD,6BAEF,eAAC,KAAD,CACE+hB,UAAW5K,GACX3I,KAAK,WACLgE,QAASqlE,GACTzgE,eAAgB1X,EAAQ6P,MACxB8H,eAAgB3X,EAAQg2E,MACxBr2E,UAAWO,IAAWF,EAAQy7D,WAAYz7D,EAAQk2E,kBAIvDyD,GACC,iCACE,eAACxwD,GAAA,EAAD,CAAKrrB,QAAQ,OAAOe,WAAW,SAA/B,SACE,eAACyB,GAAD,6BAEF,eAAC,KAAD,CACE+hB,UAAW5K,GACX3I,KAAK,cACLgE,QACEslE,GAMF1gE,eAAgB1X,EAAQ6P,MACxB8H,eAAgB3X,EAAQg2E,MACxBr2E,UAAWO,IAAWF,EAAQy7D,WAAYz7D,EAAQk2E,sBA2G5Dv7D,cAAe,CAAE49D,UAAW,KAKxBqB,GAAuB,CAC3BC,WAAY,CACV,CACE/qE,KAAM,YACNe,MAAO,aACPwS,UAAWrQ,GACX4gC,UAAU,GAEZ,CACE9jC,KAAM,iBACNe,MAAO,YACPwS,UAAWrQ,GACX4gC,UAAU,GAEZ,CACE9jC,KAAM,cACNe,MAAO,YACPwS,UAAWrQ,GACX4gC,UAAU,GAEZ,CACE9jC,KAAM,SACNe,MAAO,SACPwS,UAAWrQ,GACX4gC,UAAU,GAEZ,CACE9jC,KAAM,WACNe,MAAO,YACPwS,UAAWrQ,GACX4gC,UAAU,GAEZ,CACE9jC,KAAM,iBACNe,MAAO,kBACPwS,UAAWrQ,GACX4gC,UAAU,GAEZ,CACE9jC,KAAM,UACNe,MAAO,UACPwS,UAAWrQ,GACX4gC,UAAU,IAGdknC,MAAO,CACL,CACEhrE,KAAM,QACNe,MAAO,SACPwS,UAAWrQ,GACXpG,KAAM,IACNgnC,UAAU,IAGdoa,YAAa,CAAC,CAAEl+C,KAAM,gBACtBirE,YAAa,CAAC,CAAEjrE,KAAM,iBAGlBkrE,GAAsB,CAC1BH,WAAY/3D,OAAaC,MAAM,CAC7BwpC,UAAWzpC,OAAaE,WACxBwpC,SAAU1pC,OAAaE,WACvB6pC,eAAgB/pC,OAAaE,WAC7BypC,YAAa3pC,OACVG,KAAK,CACJA,KAAM,SAAA+P,GAAG,OAAIioD,aAAQ92B,aAAM,IAAIt6C,KAAQ,aAAcmpB,OAEtDhQ,WACHk4D,OAAQp4D,OAAaE,WACrB2pC,QAAS7pC,OAAaE,WACtB+pC,eAAgBjqC,OACbG,KAAK,CACJA,KAAM,SAAA+P,GAAG,OAAIioD,aAAQ92B,aAAM,IAAIt6C,KAAQ,aAAcmpB,OAEtDhQ,aAEL83D,MAAOh4D,OAAaC,MAAM,CACxB+3D,MAAOh4D,OAAaE,aAEtBgrC,YAAalrC,OAAaC,MAAM,CAC9BirC,YAAalrC,OAAYE,aAE3B+3D,YAAaj4D,OAAaC,MAAM,CAC9Bg4D,YAAaj4D,OAAYE,cAIvBs3D,GAAsB,CAC1BO,WAAY,CACVv9B,OAAQ09B,GAAoBH,WAC5B/mE,QAAS8mE,GAAqBC,WAC9B11D,UAAWy0D,GACXj+D,cAAe,CACb4wC,UAAW,GACXC,SAAU,GACVK,eAAgB,GAChBJ,YAAa,GACbyuB,OAAQ,GACRvuB,QAAS,GACTI,eAAgB,IAElB0tB,SAAU,gBAEZK,MAAO,CACLx9B,OAAQ09B,GAAoBF,MAC5BhnE,QAAS8mE,GAAqBE,MAC9B31D,UAAWy0D,GACXj+D,cAAe,CAAEm/D,MAAO,IACxBL,SAAU,gBAEZzsB,YAAa,CACX1Q,OAAQ09B,GAAoBhtB,YAC5Bl6C,QAAS8mE,GAAqB5sB,YAC9B7oC,UAAWy0D,GACXj+D,cAAe,CAAEqyC,YAAa,MAC9BysB,SAAU,sBAEZM,YAAa,CACXz9B,OAAQ09B,GAAoBD,YAC5BjnE,QAAS8mE,GAAqBG,YAC9B51D,UAAWy0D,GACXj+D,cAAe,CAAEo/D,YAAa,MAC9BN,SAAU,sBAEZU,OAAQ,CAENh2D,UAAWy0D,GACXj+D,cAAe,CAAEy/D,sBAAuB,MACxCX,SAAU,0BAIRY,GAAc,SAAAhjE,GAOlB,OANA3O,KACE,SAAAsyD,GAAI,OACD3jD,EAAO2jD,GAAQ3gC,aAAO,WAAPA,CACd8oB,aAAM,IAAIt6C,KAAQ,aAAcwO,EAAO2jD,OAH7CtyD,CAKE,CAAC,cAAe,mBACX2O,GAcHijE,GAAc5xE,KAAM,SAAA6K,GAExB,OAD2B7K,KAAM,KAANA,CAAY6K,GACd,2BAChBA,GADgB,IACZgnE,SAAU,kCADE,2BAEhBhnE,GAFgB,IAEZgnE,SAAU,0BAGnBC,GAAkB9xE,IAAMA,IAAUA,KAAaA,KAlBrC,SAAA+xE,GAAS,IAAD,cACDA,EADC,GACf74E,EADe,KACVwQ,EADU,KAEtB,MAAY,wBAARxQ,GAAyC,oBAARA,EAC5B,CAAC,OAAQwQ,GAEN,sBAARxQ,GAAuC,kBAARA,EAC1B,CAAC,OAAQwQ,GAEXqoE,KAU4D/xE,OAE/DgyE,GAAyBhyE,KAC7B,SAAAuyB,GAAE,OAAKvyB,IAAQuyB,EAAGzB,QAAU9wB,IAAQuyB,EAAG8rB,SAGnC4zB,GAAmBjyE,IACvBgyE,GACAJ,GACAE,IC7gBIh7E,GAAS,CACbo7E,QAAS,CACP58E,OAAQ,CAAC,CAAC,GAAI,EAAG,GAAI,KAEvBuS,OAAQ,CACNzS,QAAS,OACT8H,cAAe,MACf5H,OAAQ,CAAC,CAAC,OAAQ,EAAG,MAEvByN,OAAQ,CACNhH,WAAY,QAEd4V,KAAM,CACJ5b,OAAQ,OACRX,QAAS,OACT8H,cAAe,UAEjBi1E,UAAW,CACT78E,OAAQ,CAAC,CAAC,GAAI,EAAG,GAAI,KAEvB88E,gBAAiB,CACf1+E,MAAOpD,GAET+hF,WAAY,CACVn8E,QAAS,CAAC,CAAC,EAAG,KACdZ,OAAQ,CAAC,CAAC,EAAG,EAAG,EAAG,IACnBkP,aAAa,aAAD,OAAelU,GAC3B8E,QAAS,gBAEXk9E,cAAe,CACbx2E,UAAW,GACX0a,SAAU,MAIR5f,GAAYC,YAAWC,IA+Gdi9C,GA5FA,SAAC,GAOT,IANL7sC,EAMI,EANJA,QACA6kC,EAKI,EALJA,KACA1sC,EAII,EAJJA,MACA+wE,EAGI,EAHJA,6BACAmC,EAEI,EAFJA,gBACAC,EACI,EADJA,SAEMl7E,EAAUV,KADZ,EAGwC0K,mBAAS,MAHjD,mBAGG6uE,EAHH,KAGmBsC,EAHnB,OAKiCnxE,mBAAS,CAC5CiW,KAAM,IANJ,0BAKKA,EALL,EAKKA,KAAMgU,EALX,EAKWA,OAAU0oB,EALrB,KAUEy+B,EAAqB,SAAC7nE,EAAIypC,GAAL,MDpCR,gBCmCkB,QAAhB3lC,EAEN2lC,SAFsB,IAAN3lC,OAAA,EAAAA,EAAQ0mD,aAErC,eAA6B/gB,EAAU+gB,YAAcsc,GAAY9mE,IAAQA,EAFtD,IAAA8D,GAIfulC,EA5EU,IA4EG38B,EACbo7D,EAtCQ,SAACp7D,EAAM44D,GACrB,IAAMzqC,GACU,OAAdyqC,QAAc,IAAdA,OAAA,EAAAA,EAAgBN,aAAclC,IAC7B3tE,IAAA,OAAQmwE,QAAR,IAAQA,OAAR,EAAQA,EAAgB9a,aAErBwb,GAAc,OAACV,QAAD,IAACA,OAAD,EAACA,EAAgBL,UAD/Bc,GAAmB,OAACT,QAAD,IAACA,OAAD,EAACA,EAAgB9a,aAG1C,OAAQ99C,GACN,KAAK,EACH,OAAOs4D,GACT,KAAK,EACH,OAAOnqC,EACT,QACE,OAAOv2B,YAyBSyjE,CAAQr7D,EAAM44D,GAE5BrgC,EAAU,yCAAG,WAAMjlC,GAAN,gBAAAib,EAAA,yDACXwuB,EAAYt0C,KAAQurB,EAAQonD,EAAY/+B,OAAOzG,KAAKtiC,IAC1D4nE,EAAkBn+B,IAEdJ,EAJa,sBAKPy+B,EAAY5B,SALL,OAMR,iBANQ,OAQR,uBARQ,OAaR,gBAbQ,OAeR,0BAfQ,gDAOJwB,EAAgBG,EAAmB7nE,EAAIypC,KAPnC,gCASJk+B,EAAS,CACdK,SAAU7yE,KAAOA,KAAS6K,IAC1BioE,UAAW9yE,KAAOA,KAAO6K,OAXhB,gCAcJkhC,EAAKuI,IAdD,6EAwBjBL,EAAS,CACP18B,KAAMA,EAAO,EACbgU,OAAQ+oB,IA1BO,4CAAH,sDA8BhB,OACE,qCACE,gBAAC,GAAD,CACE15C,MAAM,oBACNgM,YAAaM,EACbxQ,MAAO,IACPX,OAAQ,IACRkQ,MAAM,EALR,UAME,eAAC,GAAD,CACEhP,UAAWK,EAAQ46E,QACnB16D,MAvHQ,EAwHRg5B,YAAaj5B,IAEf,eAAC,KAAD,CACE4C,gBAAgB,EAChBC,kBAAkB,EAClBg0B,oBAAkB,EAClB7zB,SAAUu1B,EACV79B,cAAe0gE,EAAY1gE,cAC3BkH,iBAAkBw5D,EAAY/+B,OANhC,SAOE,gBAAC,KAAD,CAAM38C,UAAWK,EAAQqa,KAAzB,UACE,eAACghE,EAAYl3D,UAAb,aACE00D,eAAgBA,EAChBC,6BAA8BA,GAC1BuC,EAAYt7E,QAElB,uBAAKJ,UAAWK,EAAQuQ,OAAxB,UACGxI,GAAS,eAAC,GAAD,6BACV,eAACmb,GAAD,CAAQvjB,UAAWK,EAAQyL,OAAQxD,KAAK,SAAxC,SACG20C,EAAa,WAAa,uBCvJ5B,IACbp0B,aAHiDw8B,GAA3Cx8B,aAINC,yBAJiDu8B,GAA7Bv8B,yBAKpB/L,IAAK,CACH5e,QAAS,OACT82E,SAAU,cAEZD,gBAAiB,CACf72E,QAAS,OACT82E,SAAU,aACV/1E,WAAY,SACZyF,eAAgB,iBAElBm3E,OAAQ,CACN39E,QAAS,OACT82E,SAAU,gBACVx1E,MAAO,OACPX,OAAQ,OACR6F,eAAgB,iBAElBo3E,UAAW,CACTt8E,MAAO,KAETtC,EAAG,CACDN,WAAY,YACZD,SAAUpB,GACVsB,WAAY,IACZk/E,YAAa,SACbC,UAAW,SACXz/E,WAAY,KACZ0/E,cAAe,SACfz/E,MAAOzC,GAET+zD,KAAM,CACJlxD,WAAY,YACZ2Y,WAAY,SACZ9I,SAAU,SACV64C,aAAc,YAEhB42B,gBAAiB,CACf/1E,YAAa,IAEfg2E,iBAAkB,CAChBt3E,WAAY,IAEdmuB,aAAc,CACZ90B,QAAS,OACT8H,cAAe,MACf,QAAS,CACP9H,QAAS,OACTe,WAAY,UAEd,sBAAuB,CACrBkH,YAAa,IAEf,SAAU,CACRzJ,OA3DagC,GAAXb,OA4DFgH,WAAY,IAGhBu3E,MAAO,CACL58E,MAAO,GACPX,OAAQ,GACRE,aAAc,EACd5E,gBAAiBX,EACjB4E,OAAQ,CAAC,CAAC,EAAG,GAAI,EAAG,IACpBa,WAAY,SACZyF,eAAgB,SAChBxG,QAAS,QAEXm+E,IAAK,CACH78E,MAAO,IAETqxD,aAAc,CACZ5qD,aAAc,IAEhB6B,KAAM,CACJ3B,YAAa,IAEf+I,KAAM,CACJhR,QAAS,OACT8H,cAAe,MACf/G,WAAY,UAEduT,MAAO,CACL3T,OAAQ,IAEVoR,MAAO,CACLhK,aAAc,EACdzJ,MAAOpD,GAETkjF,eAAgB,CACdz9E,OAAQ,GACRsH,YAAa,IAEfo2E,eAAgB,CACdt2E,aAAc,EACdzJ,MAAOpD,EACP+M,YAAa,IAEfq2E,OAAQ,CACNr2E,YAAa,IAEf2iB,cAAe,CACbjkB,WAAY,IAEd43E,eAAgB,CACd73E,UAAW,K,UC1GTlF,GAAYC,YAAW,CAC3BmwC,YAAa,CACX5xC,QAAS,OACTc,QAAS,CAAC,CAAChD,GAAYA,GAAY,EAAGA,KACtCsD,aAActD,GACd0I,eAAgB,OAElBhB,MAAO,CACLtF,OAAQ,CAAC,CAAC,EAAGpC,GpU2CF,EoU3CsBA,QAkBxB0gF,GAAoB58E,gBAC/B,YAA0E,IAAD,IAAtE4D,aAAsE,MAA9D,GAA8D,EAA1DqL,EAA0D,EAA1DA,KAAMigE,EAAoD,EAApDA,YAA+B9kE,GAAqB,EAAvCiO,SAAuC,EAArBjO,MAAS/J,EAAY,gEACjEC,EAAUV,KAMhB,OACE,gBAAC8kB,GAAA,EAAD,yBACEyqD,WAAY,CACVp5D,MAAO,CACL9W,aAAc,IAGlByU,WAAS,EACTzE,KAAMA,EACN2V,kBAAgB,qBACZvkB,GATN,cAUE,sBAAKJ,UAAWK,EAAQ0vC,YAAxB,SACE,eAAC,GAAD,CAAY9jC,KAAM,GAAIoO,aAAW,QAAQ9Q,QAhB1B,WACnB0lE,KAeI,SACE,eAAC,GAAD,QAGJ,eAACzuE,GAAD,CAAIR,UAAWK,EAAQsD,MAAvB,SAA+BA,IAC/B,eAACihB,GAAA,EAAD,CAAe5kB,UAAWK,EAAQghD,cAAlC,SAAkDl3C,WCzD3C,IACbkyE,MAAO,CACL58E,MAAO,IACPX,OAAQ,IACRE,aAAc,EACd5E,gBAAiBX,EACjB4E,OAAQ,CAAC,CAAC,EAAG,GAAI,EAAG,IACpBa,WAAY,SACZyF,eAAgB,SAChBxG,QAAS,QAEXm+E,IAAK,CACH/G,UAAW,QACXqH,eAAgB,SAChBn9E,MAAO,IACPX,OAAQ,KAEVyF,UAAW,CACTY,SAAU,WACV,UAAW,CACThH,QAAS,SAEX,aAAc,CACZgH,SAAU,WACVC,IAAK,IACLZ,MAAO,IACP4B,YAAa,EACbvB,UAAW,IAGfg4E,OAAQ,CACNr3E,WAAYpL,GACZ4E,aAAc,MACdS,MAAO,GACPX,OAAQ,GACRI,WAAY,SACZyF,eAAgB,SAChBxG,QAAS,S,qBCvCb,SAAS,KAA2Q,OAA9P,GAAWuD,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,UACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,UAAW,CAC7CJ,GAAI,qBACJG,KAAM,UACNC,SAAU,UACVqE,OAAQ,0IAGV,SAASq1E,GAAqBr5E,EAAMC,GAClC,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiBm5E,IAChC,ICxCf,SAAS,KAA2Q,OAA9P,GAAWp7E,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,UACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,eACJK,UAAW,gCACXJ,OAAQ,UACRC,YAAa,GACC,gBAAoB,WAAY,CAC9CF,GAAI,cACJyE,OAAQ,6BAGV,SAASs1E,GAAsBt5E,EAAMC,GACnC,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiBo5E,IClCzCp9E,IDmCS,ICnCGC,YAAW,CAC3Bo9E,WAAY,CACV99E,WAAY,SACZyF,eAAgB,SAChBxG,QAAS,QAEX8+E,SAAU,CACR1H,UAAW,QACXqH,eAAgB,SAChBn9E,MAAO,IACPyG,aAAc,OAILg3E,GAAWn9E,gBAAK,YAAiC,IAA9Bo9E,EAA6B,EAA7BA,WAAYC,EAAiB,EAAjBA,WACpC/8E,EAAUV,KAEhB,OACE,qCACE,eAAC,KAAD,CACE09E,SAAU,eAAC,GAAD,IACVC,SAAU,eAAC,GAAD,IACVC,gBAAiB,CACfznE,MAAO,CACL1b,gBAAiB,cACjB4E,aAAc,EACdvC,MAAO,cACPwK,QAAS,IAGbu2E,uBAAwB,CACtB1nE,MAAO,CACLhR,YAAa,GACbsB,aAAc,KAGlBq3E,UAAU,EACVC,YAAY,EACZC,yBAAyB,EACzB3vB,KAAM,SAAA4vB,GAAW,OAAIR,EAAWQ,IAChCn3D,KAAM,SAAAm3D,GAAW,OAAIR,EAAWQ,IArBlC,SAsBGT,EAAW1xE,KAAI,SAAC0P,EAAMtZ,GAAP,OACd,+BACE,sBAAK7B,UAAWK,EAAQ28E,WAAxB,SACE,sBACEh9E,UAAWK,EAAQ48E,SACnBlkC,IAAG,UAAKwN,GAAL,mBAAYprC,QAAZ,IAAYA,OAAZ,EAAYA,EAAMy/D,SAAlB,mBAA8Bz/D,QAA9B,IAA8BA,OAA9B,EAA8BA,EAAMisC,MACvCtO,IAAI,mBClDL,IACb5oC,MAAO,CACLzT,MAAO/B,GACP2D,OAAQ,CAAC,CAAC,EAAG,EAAG,EAAG,KAErBw/E,SAAU,CACR5+E,QAAS,CAAC,CAAC,IACXd,QAAS,OACT8H,cAAe,UAEjBmiD,UAAW,CACTzrD,OAbUgC,GAANxB,EAcJgB,QAAS,OACTc,QAAS,CAAC,CAAC,IACX,UAAW,CACTd,QAAS,OACT8H,cAAe,SACf,UAAW,CACTnH,OAAQ,GACRoH,aAAc,GACdE,YAAa,OCdfzG,GAAYC,YAAWC,IA4Cdi+E,GA1CQ/9E,gBAAK,YAAqB,IAAD,IAAjBo9E,EAAiB,EAAjBA,WACvB98E,EAAUV,KAD8B,EAEN0K,mBAAS,GAFH,mBAEvC0zE,EAFuC,KAEzBC,EAFyB,KAIxCvzB,EAAQ,SAAC,GAAkB,IAAhBtqD,EAAe,EAAfA,SACTE,EAAUV,KAChB,OAAO,eAAC0B,GAAD,CAAQrB,UAAWK,EAAQ6P,MAA3B,SAAmC/P,KAGtC89E,GAAuBl1E,KAAM,KAANA,CAAYo0E,EAAWY,IAIpD,OACE,uCACE,eAACb,GAAD,CAAUC,WAAYA,EAAYC,WAJnB,SAAAjmE,GAAK,OAAI6mE,EAAgB7mE,OAKtC8mE,GACA,uBAAKj+E,UAAWK,EAAQw9E,SAAxB,UACE,eAACpzB,EAAD,yBACA,eAAC,GAAD,UACG0yB,IAAU,UAAIA,EAAWY,UAAf,aAAI,EAA0B/6E,SAI/C,uBAAKhD,UAAWK,EAAQ+nD,UAAxB,UACE,+BACE,iCACE,eAACqC,EAAD,mBACA,+BAAM0yB,IAAU,UAAIA,EAAWY,UAAf,aAAI,EAA0BlkD,aAGlD,iCACE,eAAC4wB,EAAD,uBACA,+BACIwzB,EAA4C,kBAAtB,kCCjC9Bt+E,GAAYC,YAAWC,IAgDdq+E,GA9CIn+E,gBAAK,YAAqB,IAAlBo9E,EAAiB,EAAjBA,WACnB98E,EAAUV,KAD0B,EAGF0K,oBAAS,GAHP,mBAGnC8zE,EAHmC,KAGrBC,EAHqB,KAKpCC,EAAct1E,KAAOo0E,GAE3B,OACE,uCACE,eAAC,KAAD,CAAOn9E,UAAWK,EAAQg8E,MAAO9rD,UAAW,EAA5C,SACE,eAAC+tD,GAAA,EAAD,CACElmE,UAAWimE,EACXr+E,UAAWK,EAAQyL,OACnBvC,QAAS,WACP60E,GAAgB,IAJpB,SAMGC,EACC,uBAAKr+E,UAAWK,EAAQkE,UAAxB,UACE,sBACEvE,UAAWK,EAAQi8E,IACnBvjC,IAAG,UAAKwN,GAAL,YAAY83B,EAAYzD,SAAxB,YAAoCyD,EAAYj3B,MACnDtO,IAAI,KAEN,yBAAQ94C,UAAWK,EAAQw8E,OAA3B,SACE,+BACE,eAAC77E,GAAD,UAAQm8E,EAAWp7E,gBAKzB,eAAC,GAAD,QAIN,eAAC46E,GAAD,CACE3tE,KAAMmvE,EACNx6E,MAAK,aACLwG,KAAM,eAAC,GAAD,CAAgBgzE,WAAYA,IAClClO,YAAa,WACXmP,GAAgB,YC3CpBz+E,GAAYC,YAAWwlD,IAuEdm5B,GArESx+E,gBAAK,YAAuC,IAApC2rD,EAAmC,EAAnCA,SAAUyxB,EAAyB,EAAzBA,WAAYpgC,EAAa,EAAbA,OAC9C18C,EAAUV,KAEV6+E,EAAWz1E,IAAO,CAAC,aAAc,kBAAtBA,CAAyC2iD,GACpDyuB,EAAQpxE,IAAO,CAAC,SAARA,CAAkB2iD,GAE1Bjd,EAAW,CACf,CACE/pC,OAAQ,eACRuH,KAAM,IACNwG,MAAOulE,GAAkBtsB,EAASusB,MAAOl7B,EAAOiP,WAIhDwyB,GACF/vC,EAAStmB,KAAK,CACZzjB,OAAQ,YACRuH,KAAM,IACNwG,MAAO+rE,IAGPrE,GACF1rC,EAAStmB,KAAK,CACZzjB,OAAQ,SACRuH,KAAM,IACNwG,MAAO0nE,IAGX,IAAMhrE,EAAOkpE,GAAQ3sB,GAErB,OACE,gBAACliC,GAAA,EAAD,CAAKrrB,QAAQ,OAAb,UACE,eAAC,GAAD,CAAYg/E,WAAYA,IACxB,gBAAC3zD,GAAA,EAAD,CAAKrrB,QAAQ,OAAO8H,cAAc,SAAlC,UACE,uBAAKjG,UAAWK,EAAQ8O,KAAxB,UACE,eAAC,GAAD,CAAQnP,UAAWK,EAAQo8E,SAC3B,eAACh8E,GAAD,CAAIrC,UAAQ,EAAZ,SACG+Q,EAAKpN,OACFoN,EACA6oE,GAAkBjvE,IAAO,CAAC,SAARA,CAAkB2iD,GAAW3O,EAAOiP,cAG9D,eAACxiC,GAAA,EAAD,CAAKrrB,QAAQ,OAAOsgF,GAAG,OAAvB,SACGhwC,EAAShjC,KAAI,WAAmBwM,GAAnB,IAAGhM,EAAH,EAAGA,KAAMvH,EAAT,EAASA,OAAT,OACZ,eAACrD,GAAD,CACEjD,UAAQ,EAER4B,UAAWK,EAAQ6P,MACnB4F,MAAO,CAAErW,MAAOwM,GAJlB,SAKGvH,GAHIuT,QAOX,eAACuR,GAAA,EAAD,CAAKrrB,QAAQ,OAAb,SACGswC,EAAShjC,KAAI,WAAkBwM,GAAlB,IAAGhM,EAAH,EAAGA,KAAMwG,EAAT,EAASA,MAAT,OACZ,eAAC5R,GAAD,CACEzC,UAAQ,EAER4B,UAAWK,EAAQoS,MACnBqD,MAAO,CAAErW,MAAOwM,GAJlB,SAKGwG,GAHIwF,iBCvEnB,SAAS,KAA2Q,OAA9P,GAAWvW,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,+BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,OAAQ,CAC1CE,EAAG,wGACHN,GAAI,cACJC,OAAQ,UACRC,YAAa,IACE,gBAAoB,OAAQ,CAC3CI,EAAG,0GACHN,GAAI,cACJC,OAAQ,UACRC,YAAa,IACE,gBAAoB,UAAW,CAC9CF,GAAI,cACJC,OAAQ,UACRC,YAAa,EACbgB,GAAI,GACJC,GAAI,EACJwD,GAAI,EACJiqE,GAAI,KAGN,SAAS,GAASnuE,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiB,IAChC,ICrDf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,+BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,OAAQ,CAC1CE,EAAG,wGACHN,GAAI,cACJC,OAAQ,UACRC,YAAa,IACE,gBAAoB,OAAQ,CAC3CI,EAAG,0GACHN,GAAI,cACJC,OAAQ,UACRC,YAAa,IACE,gBAAoB,UAAW,CAC9CF,GAAI,cACJC,OAAQ,UACRC,YAAa,EACbgB,GAAI,GACJC,GAAI,EACJwD,GAAI,EACJiqE,GAAI,KAGN,SAAS,GAASnuE,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiB,IAChC,ICrDf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,+BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,OAAQ,CAC1CE,EAAG,ocACHN,GAAI,YACJC,OAAQ,UACRC,YAAa,IACE,gBAAoB,OAAQ,CAC3CmE,GAAI,EACJC,GAAI,EACJC,GAAI,GACJC,GAAI,EACJxE,GAAI,SACJC,OAAQ,UACRC,YAAa,EACbiE,cAAe,UACA,gBAAoB,OAAQ,CAC3CE,GAAI,EACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJxE,GAAI,cACJC,OAAQ,UACRC,YAAa,EACbiE,cAAe,UACA,gBAAoB,OAAQ,CAC3CE,GAAI,EACJC,GAAI,EACJC,GAAI,GACJC,GAAI,EACJxE,GAAI,SACJC,OAAQ,UACRC,YAAa,EACbiE,cAAe,WAGjB,SAAS,GAAS1D,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiB,IAChC,ICnEf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,+BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,OAAQ,CAC1CE,EAAG,ocACHN,GAAI,YACJC,OAAQ,UACRC,YAAa,IACE,gBAAoB,OAAQ,CAC3CmE,GAAI,EACJC,GAAI,EACJC,GAAI,GACJC,GAAI,EACJxE,GAAI,SACJC,OAAQ,UACRC,YAAa,EACbiE,cAAe,UACA,gBAAoB,OAAQ,CAC3CE,GAAI,EACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJxE,GAAI,cACJC,OAAQ,UACRC,YAAa,EACbiE,cAAe,UACA,gBAAoB,OAAQ,CAC3CE,GAAI,EACJC,GAAI,EACJC,GAAI,GACJC,GAAI,EACJxE,GAAI,SACJC,OAAQ,UACRC,YAAa,EACbiE,cAAe,WAGjB,SAAS,GAAS1D,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiB,IAChC,ICnEf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,mCACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,OAAQ,CAC1CJ,GAAI,YACJC,OAAQ,UACRC,YAAa,EACbqC,EAAG,EACHF,EAAG,EACH5F,MAAO,EACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,mBACJC,OAAQ,UACRC,YAAa,EACbqC,EAAG,EACHF,EAAG,GACH5F,MAAO,EACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,iBACJC,OAAQ,UACRC,YAAa,EACbqC,EAAG,GACHF,EAAG,EACH5F,MAAO,EACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,mBACJC,OAAQ,UACRC,YAAa,EACbqC,EAAG,GACHF,EAAG,GACH5F,MAAO,EACPX,OAAQ,EACR6I,GAAI,KAGN,SAAS,GAASlE,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiB,IAChC,ICvEf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,mCACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,OAAQ,CAC1CJ,GAAI,YACJC,OAAQ,UACRC,YAAa,EACbqC,EAAG,EACHF,EAAG,EACH5F,MAAO,EACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,mBACJC,OAAQ,UACRC,YAAa,EACbqC,EAAG,EACHF,EAAG,GACH5F,MAAO,EACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,iBACJC,OAAQ,UACRC,YAAa,EACbqC,EAAG,GACHF,EAAG,EACH5F,MAAO,EACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,mBACJC,OAAQ,UACRC,YAAa,EACbqC,EAAG,GACHF,EAAG,GACH5F,MAAO,EACPX,OAAQ,EACR6I,GAAI,KAGN,SAAS,GAASlE,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiB,IAChC,ICvEf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,iCACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,OAAQ,CAC1CJ,GAAI,YACJC,OAAQ,UACRC,YAAa,EACbqC,EAAG,EACHF,EAAG,EACH5F,MAAO,GACPX,OAAQ,GACR6I,GAAI,IACW,gBAAoB,SAAU,CAC7C3E,GAAI,OACJC,OAAQ,UACRC,YAAa,EACbgB,GAAI,GACJC,GAAI,EACJC,EAAG,IACY,gBAAoB,WAAY,CAC/CpB,GAAI,OACJC,OAAQ,UACRC,YAAa,EACbK,eAAgB,QAChBkE,OAAQ,oBACO,gBAAoB,OAAQ,CAC3CnE,EAAG,iEACHN,GAAI,iBACJC,OAAQ,UACRC,YAAa,EACbK,eAAgB,WAGlB,SAAS,GAASE,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,QAAkBqP,IAAV9L,EAAmC,gBAAoB,QAAS,CACzEX,GAAIY,GACH,kCAAoCD,EAAqB,gBAAoB,QAAS,CACvFX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiB,IAChC,ICjEf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,iCACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,OAAQ,CAC1CJ,GAAI,YACJC,OAAQ,UACRC,YAAa,EACbqC,EAAG,EACHF,EAAG,EACH5F,MAAO,GACPX,OAAQ,GACR6I,GAAI,IACW,gBAAoB,SAAU,CAC7C3E,GAAI,OACJC,OAAQ,UACRC,YAAa,EACbgB,GAAI,GACJC,GAAI,EACJC,EAAG,IACY,gBAAoB,WAAY,CAC/CpB,GAAI,OACJC,OAAQ,UACRC,YAAa,EACbK,eAAgB,QAChBkE,OAAQ,oBACO,gBAAoB,OAAQ,CAC3CnE,EAAG,iEACHN,GAAI,iBACJC,OAAQ,UACRC,YAAa,EACbK,eAAgB,WAGlB,SAAS,GAASE,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,QAAkBqP,IAAV9L,EAAmC,gBAAoB,QAAS,CACzEX,GAAIY,GACH,kCAAoCD,EAAqB,gBAAoB,QAAS,CACvFX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiB,ICzDhC,ID0DA,IC1DA,CACb2b,QAAS,CACPnhB,QAAS,OACT/D,gBALiBX,UAMjBgG,MAAO,IACPwG,cAAe,SACfjH,aAAc,GAEhBuR,KAAM,CACJrR,WAAY,SACZf,QAAS,OACTxB,OAfegC,GAANxB,EAgBTgI,SAAU,WACV1I,MAAO9B,GACPsE,QAAS,GACTL,OAAQ,WAEV6gB,WAAY,CACVthB,QAAS,OACTe,WAAY,SACZvC,OAxBegC,GAAXtB,IAyBJZ,MAAO5C,EACPO,gBAAiBO,GACjB,gBAAiB,CACfqE,aAAc,CAAC,CAAC,EAAG,EAAG,EAAG,KAE3B,eAAgB,CACdA,aAAc,CAAC,CAAC,EAAG,EAAG,EAAG,MAG7B+I,KAAM,CACJ3B,YAAa,MCvBXzG,GAAYC,YAAWC,IAkDd6+E,GAhDS,SAAC,GAA6B,IAA3Bv+D,EAA0B,EAA1BA,WAAY5W,EAAc,EAAdA,QAC/BlJ,EAAUV,KACVg/E,EAAiB,CACrB,CACEtmE,KAAM,WACNla,QAAS,WACT8B,KAAM2+E,GACN1+E,YAAa2+E,IAEf,CACExmE,KAAM,eACNla,QAAS,gBACT8B,KAAM6+E,GACN5+E,YAAa6+E,IAEf,CACE1mE,KAAM,QACNla,QAAS,QACT8B,KAAM++E,GACN9+E,YAAa++E,IAEf,CACE5mE,KAAM,SACNla,QAAS,iBACT8B,KAAMi/E,GACNh/E,YAAai/E,KAIjB,OACE,sBAAKn/E,UAAWK,EAAQif,QAAxB,gBACGq/D,QADH,IACGA,OADH,EACGA,EAAgBlzE,KAAI,kBAAGxL,EAAH,EAAGA,KAAMC,EAAT,EAASA,YAAa/B,EAAtB,EAAsBA,QAASka,EAA/B,EAA+BA,KAA/B,OACnB,uBACErY,UAAWO,KAAU,mBAClBF,EAAQof,WAAaU,EAAW9H,IADd,cAElBhY,EAAQkQ,MAAO,GAFG,IAIrBhH,QAAS,kBAAMA,EAAQ8O,IALzB,UAME,sBAAKrY,UAAWK,EAAQ0H,KAAxB,SACGoY,EAAW9H,GAAQ,eAACpY,EAAD,IAAW,eAACC,EAAD,MAEhC/B,WCmCI,IC7Ff,SAAS,KAA2Q,OAA9P,GAAWuD,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,yBACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,OAAQ,CAC1CD,EAAG,wEACHN,GAAI,WACJC,OAAQ,UACRC,YAAa,IACE,gBAAoB,UAAW,CAC9CF,GAAI,WACJC,OAAQ,UACRC,YAAa,EACbuE,OAAQ,+BAGV,SAAS,GAAShE,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB,IAChC,ICjDf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,4BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,IAAK,CACvCP,GAAI,UACJK,UAAW,gCACXJ,OAAQ,WACM,gBAAoB,IAAK,CACvCD,GAAI,WACU,gBAAoB,OAAQ,CAC1CM,EAAG,qOACHN,GAAI,aACW,gBAAoB,WAAY,CAC/CA,GAAI,WACJyE,OAAQ,8DACQ,gBAAoB,IAAK,CACzCzE,GAAI,UACJK,UAAW,6GACG,gBAAoB,OAAQ,CAC1CC,EAAG,qOACHN,GAAI,aACW,gBAAoB,WAAY,CAC/CA,GAAI,WACJyE,OAAQ,6EAGV,SAAS,GAAShE,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiB,IAChC,IC1Df,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,OAAQ,KAAmB,gBAAoB,UAAW,CACrGoB,GAAI,SACJyE,OAAQ,yBAGN,GAAqB,gBAAoB,IAAK,CAChDzE,GAAI,2BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,SACU,gBAAoB,UAAW,CAC7CA,GAAI,WACJC,OAAQ,UACRC,YAAa,EACbiE,cAAe,QACf5D,eAAgB,QAChBkE,OAAQ,mDACO,gBAAoB,OAAQ,CAC3CzE,GAAI,SACJG,KAAM,SACQ,gBAAoB,MAAO,CACzC4hB,UAAW,aACK,gBAAoB,IAAK,CACzC/hB,GAAI,WACW,gBAAoB,UAAW,CAC9CA,GAAI,WACJC,OAAQ,UACRC,YAAa,EACbiE,cAAe,QACf5D,eAAgB,QAChBozB,KAAM,eACNlvB,OAAQ,0CACO,gBAAoB,SAAU,CAC7CzE,GAAI,OACJC,OAAQ,UACRC,YAAa,EACbyzB,KAAM,eACNzyB,GAAI,GACJC,GAAI,GACJC,EAAG,MAGL,SAAS,GAASX,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,GAAO,IAGlC,IAAI,GAA0B,aAAiB,ICvEhC,IDwEA,ICxEA,CACb7F,OAAQ,CACNK,QAAS,OACTsB,MAAO,GACPkF,eAAgB,SAElB6vE,cAAe,CACb/3E,MAAOpD,GAETo7E,eAAgB,CACdh4E,MAAO3C,GAET46E,eAAgB,CACdj4E,MAAOjD,GAETs5C,WAAY,CACVjuC,UAAW,GACX1G,QAAS,OACTwG,eAAgB,SAElBwoE,aAAc,CACZ/mE,YAAa,GAEfg5E,cAAe,CACbjhF,QAAS,OACT8H,cAAe,MACftB,eAAgB,gBAChB7F,OAAQ,IAEVugF,eAAgB,CACdlhF,QAAS,OACT8H,cAAe,MACftB,eAAgB,gBAChBE,UAAW,IAEb2lD,QAAS,CACPpkD,YAAa,GAEfkO,MAAO,CACLnW,QAAS,QAEX2N,OAAQ,CACN1F,YAAa,GAEfk5E,eAAgB,CACdnhF,QAAS,OACTwG,eAAgB,SAElBwuB,KAAM,CACJn0B,aAAc,GACdoH,YAAa,GACbF,aAAc,IAEhBq5E,WAAY,CACVphF,QAAS,OACT8H,cAAe,MACfC,aAAc,IAEhBgwE,SAAU,CACRrxE,UAAW,GAEbsxE,SAAU,CACRtxE,UAAW,GAEb26E,UAAW,CACTnhF,OAAQ,CAAC,CAAC,EAAG,GAAI,GAAI,QClCnBsB,GAAYC,YAAWC,IAEvB4/E,GAAc,CAClBhlE,MAAO,CACLtV,SAAU,WACV1F,MAAO,IACPX,OAAQ,GACRG,QAAS,CAAC,CAAC,EAAG,EAAG,EAAG,IACpB4F,UAAW,GAEbqL,MAAO,CACLzT,MAAOpD,EACPgF,OAAQ,CAAC,CAAC,EAAG,EAAG,EAAG,KAErBqhF,WAAY,CACVvhF,QAAS,OACT8H,cAAe,SACf,oBAAqB,CACnBnH,OAAQ,GACRtC,WAAY,OACZmR,gBAAiB,OACjBiK,YAAa,EACbvZ,OAAQ,CAAC,CAAC,EAAG,EAAG,EAAG,KAErB,mBAAoB,CAClBqO,SAAU,SACV8I,WAAY,SACZ+vC,aAAc,WACdlnD,OAAQ,IAGZ6zC,QAAS,CACP,UAAW,CACT,YAAa,CACXjzC,QAAS,EACTrC,SAAU,MAIhB+iF,cAAe,CACbljF,MAAOpD,EACPgF,OAAQ,CAAC,CAAC,EAAG,EAAG,EAAG,KAErBuhF,cAAe,CACbvhF,OAAQ,IAINwhF,GAAiBjgF,YAAW6/E,IAE5BK,GAAgB,SAAC,GAA+C,IAAD,EAA5C5tC,EAA4C,EAA5CA,QAASz3B,EAAmC,EAAnCA,MAAOhI,EAA4B,EAA5BA,MAAOxG,EAAqB,EAArBA,KAAS7L,EAAY,kDAC7DC,EAAUw/E,KACVv/E,GAAU,mBACbD,EAAQoa,OAAQ,GADH,cAEbpa,EAAQq/E,YAAcxtC,GAFT,GAKhB,OACE,uBAAKlyC,UAAWO,IAAWD,GAA3B,WACI4xC,GACA,uCACE,eAAC7wC,GAAD,CAAQrB,UAAWK,EAAQ6P,MAA3B,SAAmCuK,EAAMvK,QACzC,eAACrP,GAAD,UAAI4R,OAGPy/B,GACC,uCACE,eAAC7wC,GAAD,CAAQrB,UAAWK,EAAQ6P,MAA3B,SAAmCuK,EAAMvK,QACzC,eAAC,KAAD,aACElQ,UAAWK,EAAQ6xC,QACnBlvC,GAAIyX,EAAMtL,KACVA,KAAMsL,EAAMtL,KACZuT,UAAWjI,EAAMiI,UACjBpa,KAAMmS,EAAMnS,KACZ7I,MAAOwM,GACH7L,WAQV2/E,GAAgB,SAAC,GAAgC,IAAD,EAA7BtlE,EAA6B,EAA7BA,MAAOhI,EAAsB,EAAtBA,MACxBpS,GAD8C,iCACpCw/E,MACVv/E,GAAU,mBACbD,EAAQoa,OAAQ,GADH,cAEbpa,EAAQq/E,YAAa,GAFR,GAKhB,OACE,qCACE,uBAAK1/E,UAAWO,IAAWD,GAA3B,UACE,eAACe,GAAD,CAAQrB,UAAWK,EAAQs/E,cAA3B,SAA2CllE,EAAMvK,QACjD,eAACrP,GAAD,CAAGb,UAAWK,EAAQu/E,cAAtB,SAAsCntE,UAwP/ButE,GAlPM,SAAC,GAef,IAAD,EAdJlJ,EAcI,EAdJA,OACAhiC,EAaI,EAbJA,KACAmrC,EAYI,EAZJA,UACAC,EAWI,EAXJA,SACAC,EAUI,EAVJA,OACAn5D,EASI,EATJA,MACArjB,EAQI,EARJA,MACAy8E,EAOI,EAPJA,UACAjgF,EAMI,EANJA,SACA+hB,EAKI,EALJA,iBACAlH,EAII,EAJJA,cAEAqlE,GAEI,EAHJC,iBAGI,EAFJD,wBAEI,IADJE,yBACI,SACElgF,EAAUV,KADZ,EAG0B0K,oBAAS,GAHnC,mBAGG6nC,EAHH,KAGYiD,EAHZ,OAIsB9qC,mBAAS,MAJ/B,mBAIGiK,EAJH,KAIUksE,EAJV,OAKsBn2E,mBAAS,MAL/B,mBAKGjC,EALH,KAKU4tC,EALV,KASEyqC,GAAgB,mBACnBpgF,EAAQvC,QAAS,GADE,cAEnBuC,EAAQm0E,cAAgBxtD,IAAUmuD,IAFf,cAGnB90E,EAAQo0E,eAAiBztD,IAAUquD,IAHhB,cAInBh1E,EAAQq0E,eAAiB1tD,IAAUouD,IAJhB,GAMhBsL,EACJ15D,IAAUmuD,GACN,CAAEjlE,MAAO,UAAW5H,KAAM,WAC1B0e,IAAUquD,GACV,CAAEnlE,MAAO,WAAY5H,KAAM,SAC3B,CAAE4H,MAAO,WAAY5H,KAAM,WAEjC,OACE,+BACE,eAAC2kC,GAAA,EAAD,CAAMjtC,UAAWK,EAAQ8yB,KAAzB,SACE,gBAAC+Z,GAAA,EAAD,WACE,uBAAKltC,UAAWK,EAAQ++E,cAAxB,UACE,uBAAKp/E,UAAWK,EAAQk/E,WAAxB,UACGa,EACD,eAAC1/E,GAAD,CAAIV,UAAWK,EAAQm/E,UAAvB,SAAmC77E,OAMpCqjB,GAASi5D,GACR,sBAAKjgF,UAAWO,IAAWkgF,GAA3B,SACE,eAAC,GAAD,CAAY/3C,SAAU,CAACg4C,UAI5BvgF,EACD,eAAC,KAAD,CACE+iB,gBAAgB,EAChBC,kBAAkB,EAClBg0B,oBAAkB,EAClBj1B,iBAAkBA,EAClBlH,cAAeA,EACfsI,SAAU,SAAA5L,GACRo9B,EAAKp9B,GACLy9B,GAAW,IAEbrN,QAAS,WACPqN,GAAW,GACXa,GAAS,IAZb,SAcG,gBAAGn7B,EAAH,EAAGA,cAAH,OACC,gBAAC,KAAD,WACE,eAAC,GAAD,IACA,sBAAK7a,UAAWK,EAAQ0c,IAAxB,SACE,gBAAC2T,EAAA,EAAD,CAAMnsB,WAAS,EAAf,UACE,eAACmsB,EAAA,EAAD,CAAMnsB,WAAS,EAACosB,UAAU,SAASxV,MAAI,EAAC+a,GAAI,EAA5C,UACIgqD,IAAD,OACCpJ,QADD,IACCA,OADD,EACCA,EAAQrrE,KAAI,SAACgP,EAAOxC,GAClB,OAAOA,GAAO,GAAKA,EAAM,EACtBwC,EAAMw4B,SAML,eAAC,GAAD,CACEx4B,MAAOA,EACPhI,MAAOuI,EAAcP,EAAMtL,MAC3B+iC,QAASA,EACTjmC,KAAM,MATR,eAAC,GAAD,CACEwO,MAAOA,EACPhI,MAAOuI,EAAcP,EAAMtL,QAU7B,WAGV,eAACuhB,EAAA,EAAD,CAAMnsB,WAAS,EAACosB,UAAU,SAASxV,MAAI,EAAC+a,GAAI,EAA5C,UACIgqD,IAAD,OACCpJ,QADD,IACCA,OADD,EACCA,EAAQrrE,KAAI,SAACgP,EAAOxC,GAClB,OAAOA,GAAO,EACXwC,EAAMw4B,SAML,eAAC,GAAD,CACEx4B,MAAOA,EACPhI,MAAOuI,EAAcP,EAAMtL,MAC3B+iC,QAASA,EACTjmC,KAAM,MATR,eAAC,GAAD,CACEwO,MAAOA,EACPhI,MAAOuI,EAAcP,EAAMtL,QAU7B,gBAKd,uBAAKnP,UAAWK,EAAQuwE,KAAxB,WACI1+B,GACA,uBAAKlyC,UAAWK,EAAQyyC,WAAxB,UACE,uBAAK9yC,UAAWK,EAAQ8sE,aAAxB,WACG,GAUCoT,GACA,eAAC,GAAD,CACE9jF,MAAM,UACN6L,KAAK,SACLrI,KAAM0gF,GACNzgF,YAAa0gF,GACbr3E,QAAS,kBAAM82E,KALjB,kCAUJ,eAAC,GAAD,CACE5jF,MAAM,UACNwD,KAAM2jD,GACN1jD,YAAa2jD,GACbt6C,QAAS,kBAAM4rC,GAAW,IAJ5B,qBASHjD,GACC,uBAAKlyC,UAAWK,EAAQg/E,eAAxB,UACE,sBAAKr/E,UAAWK,EAAQmqD,QAAxB,SACG01B,GACC,eAAC,GAAD,CACEzjF,MAAM,YACN6L,KAAK,SACLrI,KAAM4gF,GACN3gF,YAAa2gF,GACbt3E,QAAS,kBA3IR+K,EAAMwsE,SAsIT,SAOI,iCACE,wBACEx4E,KAAK,OACLwwC,IAAI,GACJioC,OAAO,UACP/gF,UAAWK,EAAQiU,MACnBtQ,IAAK,SAAAg9E,GAAS,OAAIR,EAASQ,IAC3BzuE,SAAU,SAAAxC,GAER,IAAM08C,EAAO1jD,KAAOgH,EAAMnO,OAAOq/E,OAC5Bx0B,GACL5xC,EAAc9R,KAAO+tE,GAAQ3nE,KAAMs9C,MAXzC,iBAoBR,uBAAKzsD,UAAWK,EAAQi/E,eAAxB,UACGxI,GACC,sBAAK92E,UAAWK,EAAQyL,OAAxB,SACE,eAAC,GAAD,CACErP,MAAM,YACNwD,KAAMihF,GACNhhF,YAAaghF,GACb54E,KAAK,SAJP,oBASJ,sBAAKtI,UAAWK,EAAQyL,OAAxB,SACE,eAAC,GAAD,CACErP,MAAM,YACNwD,KAAMkhF,GACNjhF,YAAaihF,GACb74E,KAAK,QAJP,sBAQD23E,GAAkC,aAArBS,EAAWxwE,OACvB,sBAAKlQ,UAAWK,EAAQyL,OAAxB,SACE,eAAC,GAAD,CACErP,MAAM,SACN6L,KAAK,SACLrI,KAAMmhF,GACNlhF,YAAakhF,GACb73E,QAAS,kBAAM02E,KALjB,yBAUHA,GAAkC,aAArBS,EAAWxwE,OACvB,eAAC,GAAD,CACEzT,MAAM,SACN6L,KAAK,SACLrI,KAAMohF,GACNnhF,YAAamhF,GACb93E,QAAS,kBAAM42E,KALjB,oBASD/3E,GACC,eAAC,GAAD,4DCtWpBk5E,ICKY1hF,YAAW,CAC3B6a,MAAO,CACL3b,OAAQ,IAEVoR,MAAO,CACLzT,MAAOpD,EACPgF,OAAQ,CAAC,CAAC,EAAG,KAEfoU,MAAO,CACL+C,WAAY,SACZ9I,SAAU,SACV64C,aAAc,WACdlnD,OAAQ,EACRuZ,YAAa,KDlBC,SAACnF,EAAO8uE,GACxB,OAAOx4E,IAAQ0J,GAAS,GAAK8uE,IEczB5hF,GAAYC,YAAWwlD,IA6Jdo8B,GA3JU,SAAC,GAAyC,IAAD,IAAtC91B,EAAsC,EAAtCA,SAAUvhD,EAA4B,EAA5BA,KAAMC,EAAsB,EAAtBA,QAAS2yC,EAAa,EAAbA,OAC7C18C,EAAUV,KACV8hF,EAAsC,YAAzB/1B,EAASg2B,YAA4BC,GAAYC,GAC9DC,IAAY94E,KAAUoB,IAASpB,IAAQoB,IAEvCkwB,EAAW0iB,EAAO1iB,SAClBynD,GAAmB,mBACtBzhF,EAAQyoB,yBAA2B1e,IAAaA,IAAYy3E,GADtC,cAEtBxhF,EAAQq8E,gBAAkBtyE,GAAWy3E,GAFf,GAKnBE,EAAkB,CACtB,CACEr9E,OAAQ,eACRuH,KAAM,IACNwG,MAAO6uE,GACL51B,EAASs2B,SADK,UAEXtmE,OAAO4yB,SAASod,EAASs2B,aAGhC,CACEt9E,OAAQ,qBACRuH,KAAM,IACNwG,MAAO6uE,GACL51B,EAASu2B,WADK,UAEXvmE,OAAOoa,WAAW41B,EAASu2B,YAFhB,YAE+Bv2B,EAASw2B,kBAG1D,CACEx9E,OAAQ,cACRuH,KAAM,IACNwG,OACG1J,IAAQsxB,KAAT,UACEqxB,EAASy2B,YACT5nD,GAAWmxB,EAASy2B,WAAY9nD,EAAU,qBAF5C,QAGE,KAEN,CACE31B,OAAQ,mBACRuH,KAAM,IACNwG,MAAO6uE,GACL51B,EAAS02B,WACT,uCACE,eAACX,EAAD,CAAYzhF,UAAWK,EAAQ0H,OADjC,UAEM2T,OAAOoa,WAAW41B,EAAS02B,YAFjC,0BAGM12B,EAASw2B,sBAMfG,EAAgB,CACpB,CACE5iF,MAAO,GACP6zC,KAAM,SAAA1/B,GAAE,OACN,qCACkB,YAAfA,EAAGouB,QACF,eAAC,GAAD,CAAWhiC,UAAWK,EAAQ87E,kBAE9B,eAAC,GAAD,CAAUn8E,UAAWK,EAAQ87E,sBAKrC,CACEz3E,OAAQ,UACRjF,MAAO,IACP6zC,KAAMvqC,IAAO,CAAC,iBAEhB,CACErE,OAAQ,iBACRjF,MAAO,IACP6zC,KAAM,SAAA1/B,GAAE,OACN,eAAC,GAAD,CAAiB5T,UAAWK,EAAQ0tD,KAApC,SAA2Cn6C,EAAG5Q,OAGlD,CACE0B,OAAQ,OACRjF,MAAO,IACPyS,UAAW,QACXohC,KAAM,SAAA1/B,GAAE,OACN,iDACM8H,OAAOoa,WAAWliB,EAAG6nB,MAD3B,KAEE,eAACn6B,GAAD,CAAQpD,QAAM,EAAd,SAAgB0V,EAAG8wB,gBAIzB,CACEhgC,OAAQ,SACRjF,MAAO,IACPyS,UAAW,QACXohC,KAAM,SAAA1/B,GAAE,OACN,iDACMs2C,SACDC,OAAO,IAAIn1B,KAAUphB,EAAGw2C,aAAcx2C,EAAGy2C,YACzCp0B,SAAS,GAHd,KAIE,eAAC30B,GAAD,CAAQpD,QAAM,EAAd,SAAgB0V,EAAGy2C,kBAIzB,CACE3lD,OAAQ,OACRjF,MAAO,IACP6zC,KAAM,SAAA1/B,GAAE,OAAI2mB,GAAW3mB,EAAGlL,QAAS2xB,EAAU,gBAE/C,CACE31B,OAAQ,eACRjF,MAAO,IACP6zC,KAAM,SAAA1/B,GAAE,OAAI2mB,GAAW3mB,EAAGlL,QAAS2xB,EAAU,eAIjD,OACE,uCACE,eAAC35B,GAAD,2BACA,gBAAC8oB,GAAA,EAAD,CAAKrrB,QAAQ,OAAO8H,cAAc,SAAlC,UACE,eAACujB,GAAA,EAAD,CAAKrrB,QAAQ,OAAOsgF,GAAG,OAAvB,SACGsD,EAAgBt2E,KAAI,WAAmBwM,GAAnB,IAAGhM,EAAH,EAAGA,KAAMvH,EAAT,EAASA,OAAT,OACnB,eAACrD,GAAD,CACEjD,UAAQ,EAER4B,UAAWK,EAAQm8E,eACnB1mE,MAAO,CAAErW,MAAOwM,GAJlB,SAKGvH,GAHIuT,QAOX,eAACuR,GAAA,EAAD,CAAKrrB,QAAQ,OAAb,SACG4jF,EAAgBt2E,KAAI,WAAkBwM,GAAlB,IAAGhM,EAAH,EAAGA,KAAMwG,EAAT,EAASA,MAAT,OACnB,eAAC5R,GAAD,CACEzC,UAAQ,EAER4B,UAAWK,EAAQk8E,eACnBzmE,MAAO,CAAErW,MAAOwM,GAJlB,SAKGwG,GAHIwF,WAQb,sBAAKjY,UAAWK,EAAQwoB,aAAxB,SACE,sBAAK7oB,UAAWO,IAAWuhF,GAA3B,SACG13E,EACC,eAACzJ,GAAD,sBACEkhF,EACF,GAEA,eAAClhF,GAAD,yCAILkhF,GAAW,eAAC,GAAD,CAAWpzC,SAAU4zC,EAAel4E,KAAMA,Q,UCzK5D,SAAS,KAA2Q,OAA9P,GAAWzI,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,mCACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,WACU,gBAAoB,IAAK,CACvCA,GAAI,QACJK,UAAW,6GACXJ,OAAQ,WACM,gBAAoB,OAAQ,CAC1CD,GAAI,iBACJuC,EAAG,GACHF,EAAG,GACH5F,MAAO,WACPX,OAAQ,WACR6I,GAAI,IACW,gBAAoB,SAAU,CAC7C3E,GAAI,YACJG,KAAM,UACNe,GAAI,KACJC,GAAI,WACJC,EAAG,IACY,gBAAoB,IAAK,CACxCpB,GAAI,WACJK,UAAW,gCACXE,eAAgB,SACF,gBAAoB,WAAY,CAC9CP,GAAI,cACJyE,OAAQ,oDACO,gBAAoB,WAAY,CAC/CzE,GAAI,OACJyE,OAAQ,yEACS,gBAAoB,IAAK,CAC1CzE,GAAI,UACJK,UAAW,iCACG,gBAAoB,SAAU,CAC5CL,GAAI,OACJC,OAAQ,UACRE,KAAM,UACNe,GAAI,WACJC,GAAI,WACJC,EAAG,aACY,gBAAoB,UAAW,CAC9CpB,GAAI,OACJG,KAAM,UACNC,SAAU,UACVqE,OAAQ,+OAGV,SAAS66E,GAAiB7+E,EAAMC,GAC9B,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiB2+E,IAChC,IC/Ef,SAAS,KAA2Q,OAA9P,GAAW5gF,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,yCACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,gBACJK,UAAW,iCACG,gBAAoB,IAAK,CACvCL,GAAI,YACJK,UAAW,gCACXJ,OAAQ,WACM,gBAAoB,IAAK,CACvCD,GAAI,QACJK,UAAW,gCACX8D,cAAe,SACD,gBAAoB,OAAQ,CAC1CE,GAAI,EACJC,GAAI,WACJC,GAAI,WACJC,GAAI,WACJxE,GAAI,WACW,gBAAoB,OAAQ,CAC3CqE,GAAI,EACJC,GAAI,WACJC,GAAI,WACJC,GAAI,WACJxE,GAAI,WACW,gBAAoB,OAAQ,CAC3CqE,GAAI,EACJC,GAAI,WACJC,GAAI,WACJC,GAAI,WACJxE,GAAI,YACY,gBAAoB,UAAW,CAC/CA,GAAI,QACJmE,cAAe,QACf5D,eAAgB,QAChBkE,OAAQ,yGACO,gBAAoB,UAAW,CAC9CzE,GAAI,OACJO,eAAgB,QAChBkE,OAAQ,8DACQ,gBAAoB,IAAK,CACzCzE,GAAI,YACJK,UAAW,iCACG,gBAAoB,SAAU,CAC5CL,GAAI,OACJC,OAAQ,UACRE,KAAM,UACNe,GAAI,UACJC,GAAI,UACJC,EAAG,YACY,gBAAoB,UAAW,CAC9CpB,GAAI,OACJG,KAAM,UACNC,SAAU,UACVqE,OAAQ,mQAGV,SAAS,GAAiBhE,EAAMC,GAC9B,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiB,IC5EzChE,ID6ES,IC7EGC,YAAW,CAC3B2iF,IAAK,CACHxN,UAAW,aACXt1E,MAAO,IACPX,OAAQ,IACR0jF,YAAa,SACb90E,YAAahT,GACbsE,aAAc,EACdwkE,YAAa,EACbppE,gBAAiBC,GACjB8D,QAAS,OACTwG,eAAgB,UAElB89E,aAAc,CACZ59E,UAAW,GACX1G,QAAS,QAEXukF,cAAe,CACb79E,UAAW,GACX1G,QAAS,QAEXwkF,MAAO,CACL99E,UAAW,GACXpF,MAAO,IACPX,OAAQ,KAEViJ,KAAM,CACJ1J,OAAQ,CAAC,CAAC,GAAI,GAAI,EAAG,QAkEVukF,GA9DA,SAAC,GAAc,IAAZt6E,EAAW,EAAXA,KACVjI,EAAUV,KADW,EAGH0K,mBAAS,IAHN,mBAGpBF,EAHoB,KAGd22D,EAHc,KAKnBjmD,EAAkBE,eAAlBF,cAMFgoE,EAJQ,UAKZv6E,GAHmB,gBAGDA,GAJE,gBAIuBA,EAEvCw6E,EAASlmD,uBACb,SAAAmmD,GACEloE,EAAcvS,EAAMS,KAAOg6E,IAE3BjiB,EAAQ,CACNkiB,QAASH,EACLI,IAAIC,gBAAgBn6E,KAAOg6E,IAC3Bh6E,KAAOg6E,GAAc5zE,SAG7B,CAAC0zE,EAASv6E,EAAMuS,IAxBS,EA2BasoE,aAAY,CAAEL,WAA9CM,EA3BmB,EA2BnBA,aAAcC,EA3BK,EA2BLA,cAEtB,OACE,qCACE,iDAASD,KAAT,IAAyBpjF,UAAWK,EAAQsiF,MAA5C,UACG55E,KAAUoB,IACT,uBAAKnK,UAAWK,EAAQkiF,IAAxB,UACE,sCAAWc,MACX,uBAAKrjF,UAAWK,EAAQoiF,aAAxB,UACGI,EACC,eAAC,GAAD,CAAiB7iF,UAAWK,EAAQ0H,OAEpC,eAAC,GAAD,CAAgB/H,UAAWK,EAAQ0H,OAErC,eAACxG,GAAD,kCACEshF,EAAU,WAAa,SADzB,2CAMJ95E,KAAUoB,IAAS04E,GACnB,+BACE,sBAAK9pC,IAAK5uC,EAAK64E,QAAShjF,UAAWK,EAAQkiF,IAAKzpC,IAAI,MAD5C3uC,EAAKgF,OAIfpG,KAAUoB,KAAU04E,GACpB,sBAAK7iF,UAAWK,EAAQkiF,IAAxB,SACE,eAAC7hF,GAAD,CAAIV,UAAWK,EAAQqiF,cAAvB,SAAuCv4E,EAAK64E,mBC3DlDrjF,GAAYC,YAAWC,IAOvByjF,GAAQ,SAAC,GAAmB,IAAjBC,EAAgB,EAAhBA,KAAMxqC,EAAU,EAAVA,IACf14C,EAAUV,GAAU,CAAEF,MANV,MAQlB,OACE,qCACG8jF,EACC,eAAC,GAAD,CACExqC,IAAKA,EACLt5C,MAbU,IAcVX,OAbW,GAcX22E,WAbgB,IAchBC,YAbiB,MAgBnB,sBAAK11E,UAAWK,EAAQmjF,aAAxB,SACE,eAAC,GAAD,SA0bJC,GAAqB,SAAC,GAKrB,IAJLC,EAII,EAJJA,YACArD,EAGI,EAHJA,uBACArxE,EAEI,EAFJA,KACA5O,EACI,EADJA,MAEMC,EAAUV,KAEhB,OACE,gBAAC8kB,GAAA,EAAD,yBACEzV,KAAMA,EACN2V,kBAAgB,oBAChBuqD,WAAY,CACVp5D,MAAO,CACL9W,aAAc,EACdugB,SAAU,IACV9R,OAAQ,IACRjJ,MAAO,KAGPpE,GAXN,cAYE,sBAAKJ,UAAWK,EAAQ0vC,YAAxB,SACE,eAAC,GAAD,CACE9jC,KAAM,GACNoO,aAAW,QACX9Q,QAAS,kBAAMm6E,GAAY,IAH7B,SAIE,eAAC,GAAD,QAGJ,eAACjjF,GAAD,CAAIT,UAAWK,EAAQihD,YAAvB,SAAqC,kCACrC,gBAAC18B,GAAA,EAAD,CAAe5kB,UAAWK,EAAQghD,cAAlC,UACE,eAACpgD,GAAD,2JAEA,eAACA,GAAD,sGAGF,gBAACqvC,GAAA,EAAD,CAAetwC,UAAWK,EAAQkhD,cAAlC,UACE,eAACh+B,GAAD,CACEnpB,gBAAgB,OAChB4F,UAAWK,EAAQgtE,aACnB9jE,QAAS,kBAAMm6E,GAAY,IAH7B,oBAMA,eAACngE,GAAD,CACEha,QAAS,WACP82E,IACAqD,GAAY,IAHhB,6BAYOC,GA1eM,SAAC,GAWf,IAAD,sBAVJ5mC,EAUI,EAVJA,OACA2O,EASI,EATJA,SACAk4B,EAQI,EARJA,eACAC,EAOI,EAPJA,aACAC,EAMI,EANJA,aACAxD,EAKI,EALJA,iBACAyD,EAII,EAJJA,oBACAC,EAGI,EAHJA,uBACAC,EAEI,EAFJA,kBACA5D,EACI,EADJA,uBAEMhgF,EAAUV,KADZ,EAE4B0K,oBAAS,GAFrC,mBAEG65E,EAFH,aAG4B75E,oBAAS,IAHrC,mBAGG85E,EAHH,KAGaT,EAHb,KAKEpL,EAASvvE,IAAO,CAAC,cAARA,CAAuB2iD,GAChC04B,EAAoBr7E,IAAO,CAAC,kBAARA,CAA2BuvE,GAC/C+L,EAASt7E,IAAO,CAAC,eAARA,CAAwBuvE,GAEjCgM,EAAYv7E,IAAO,CAAC,aAARA,CAAsB2iD,GAElC64B,EADcx7E,IAAO,CAAC,eAARA,CAAwB2iD,GAGxC44B,EACA,SACA,SAHA,kBAKEE,EAAaz7E,KACjBA,IAAUA,KAAWA,IAAO,CAAC,oBAAqB,gBAAiB,WAG/D07E,EAAe,GACfC,EAAqB,GACrBhN,EAAqB8M,EAAU,UACnCz7E,IAAO,CAAC,sBAARA,CAA+B2iD,UADI,QACS,IAGxCusB,EAAQlvE,IAAO,CAAC,SAARA,CAAkB2iD,GAC1Bi5B,EAAU57E,IAAO,CAAC,iBAAkB,UAA1BA,CAAqC2iD,GAE/Ck5B,EAAS,SAAAvpB,GAAI,OAAIA,EAAO,IAAM,GAE9BwpB,EAAkB97E,KAAS,SAAAsyD,GAAI,OAAIA,EAAKypB,eAExC9pE,EAAgB,CACpBk/D,WAAY,CACVtuB,UAAS,UAAE7iD,IAAO,CAAC,aAARA,CAAsBuvE,UAAxB,QAAmC,GAC5CzsB,SAAQ,UAAE9iD,IAAO,CAAC,YAARA,CAAqBuvE,UAAvB,QAAkC,GAC1CpsB,eAAc,UAAEnjD,IAAO,CAAC,kBAARA,CAA2BuvE,UAA7B,QAAwC,GACtDxsB,YAAW,UACRu4B,GACC3pD,aAAO,aAAPA,CAAqB8oB,aAAM,IAAIt6C,KAAQ,WAAYm7E,WAF5C,QAGT,GACF9J,OAAM,UAAExxE,IAAO,CAAC,UAARA,CAAmBuvE,UAArB,QAAgC,GACtCtsB,QAAO,UAAEjjD,IAAO,CAAC,WAARA,CAAoBuvE,UAAtB,QAAiC,GACxClsB,eAAc,UACXg4B,GACC1pD,aAAO,aAAPA,CACE8oB,aAAM,IAAIt6C,KAAQ,WAAYk7E,WAHtB,QAKZ,IAEJjK,MAAO,CACLA,MAAK,UAAEzuB,EAASyuB,aAAX,QAAoB,IAE3BC,YAAa,CACXA,YAAa,MAEf/sB,YAAa,CACXA,YAAa,MAEfs3B,QAAS,CACPzM,YAAaF,GAAkBC,EAAOl7B,EAAOiP,WAI3C+4B,EAAkB,CACtB,CACE51E,KAAM,cACNe,MAAO,eACPwS,UAAWrQ,GACX4gC,UAAU,IAIR+xC,EAAgB,CACpBL,QAASxiE,MAAS,SAAAzK,GAChB,IAE4B,EAFtButE,EAAiBl8E,KAAO,CAAC,eAARA,CAAwB2O,GACzCo/D,EAAS/tE,KAAOk8E,GACtB,GAAyB,IAArBl8E,KAAS+tE,GACX,OAAO30D,OAAaC,OAAb,mBACJrZ,KAAO+tE,GAAU30D,OAAaE,YAD1B,cAEJtZ,KAAO+tE,GAAU30D,OAAaE,YAF1B,QAQP6iE,GAAQ,CACZ,CACEpO,OAAQmD,GAAqBC,WAC7Bv2E,MAAO,UACPy8E,UAAW,eAAC,GAAD,CAAUpgF,UAAWK,EAAQ81E,WACxCnvD,MAAOje,IAAO,CAAC,sBAARA,CAA+B2iD,GACtCu0B,UAAW,kBACT2D,EAAe,CAAEuB,mBAAoB/P,MACvC+K,OAAQ,kBAAMyD,EAAe,CAAEuB,mBAAoB9P,MACnDiL,iBAAkB,kBAAMA,EAAiB,CAAEpG,WAAY,QACvDplC,KAAM,SAAAp9B,GAAM,OACVosE,EAAa,CACX5J,WAAYnxE,KAAQuvE,EAAQoC,GAAYhjE,OAE5CwK,iBAAkBm4D,GAAoBH,WACtCl/D,cAAeA,EAAck/D,WAC7B4K,aAAc/7E,IAAQuvE,IAExB,CACExB,OAAQiO,EACRphF,MAAO,WACPy8E,UAAW,eAAC,GAAD,CAAWpgF,UAAWK,EAAQ81E,WACzCnvD,MAAOje,IAAO,CAAC,iBAARA,CAA0B2iD,GACjCu0B,UAAW,kBAAM2D,EAAe,CAAEwB,cAAehQ,MACjD+K,OAAQ,kBAAMyD,EAAe,CAAEwB,cAAe/P,MAC9CvgC,KAAM,SAAAp9B,GACJosE,EAAa,CACXuB,eAAgB,CACdh0D,OAAQtoB,KAAQ47E,EAAS57E,KAAO,CAAC,eAARA,CAAwB2O,QAIvDwK,iBAAkB8iE,EAAcL,QAChCtE,uBAAwB,kBAAMqD,GAAY,IAC1C1oE,cAAeA,EAAc2pE,QAC7BG,aAAc/7E,IAAQkvE,GACtBsI,mBAAoBx3E,IAAQ47E,KAAa57E,KAAU47E,IAErD,CACEhhF,MAAO,OACPy8E,UAAW,eAAC,GAAD,CAAUpgF,UAAWK,EAAQ61E,WACxC+J,UAAW,aACXE,OAAQ,aACRrrC,KAAM,aACNgwC,aAAa,GAEf,CACEnhF,MAAO,kBACPy8E,UAAW,eAAC,GAAD,CAAUpgF,UAAWK,EAAQ61E,WACxClvD,MAAOje,IAAO,CAAC,qBAARA,CAA8B2iD,GACrCu0B,UAAW,kBACT2D,EAAe,CAAE0B,kBAAmBlQ,MACtC+K,OAAQ,kBAAMyD,EAAe,CAAE0B,kBAAmBjQ,MAClDl1E,SAAU,eAACc,GAAD,UAAQsjF,IAClBO,aAAc/7E,IAAQu7E,IAExB,CACExN,OAAQmD,GAAqBG,YAC7Bz2E,MAAO,sBACPy8E,UAAW,eAAC,GAAD,CAAUpgF,UAAWK,EAAQ61E,WACxClvD,MAAOje,IAAO,CAAC,uBAARA,CAAgC2iD,GACvCu0B,UAAW,kBACT2D,EAAe,CAAE2B,oBAAqBnQ,MACxC+K,OAAQ,kBAAMyD,EAAe,CAAE2B,oBAAqBlQ,MACpDvgC,KAAM,SAAAp9B,GAAM,OACVmsE,EAAa,CACXjI,SAAUlkE,EAAO0iE,YACjByB,UAAW,iBAEfyE,iBAAkB,kBAAMA,EAAiB,CAAElG,YAAa,QACxDj6E,SAAUurD,EAAS85B,gBACjB,eAAC,GAAD,CACEjC,KAAM73B,EAAS85B,gBACfzsC,IAAG,UAAKwN,GAAL,+BAA+Bx9C,IAAO,CAAC,mBAARA,CAChC2iD,MAGF,KACJw0B,UAAU,EACVh+D,iBAAkBm4D,GAAoBD,YACtCp/D,cAAeA,EAAco/D,YAC7B0K,aAAc/7E,IAAQ2iD,EAAS85B,kBAEjC,CACE1O,OAAQmD,GAAqB5sB,YAC7B1pD,MAAO,gBACPy8E,UAAW,eAAC,GAAD,CAAUpgF,UAAWK,EAAQ61E,WACxClvD,MAAOje,IAAO,CAAC,uBAARA,CAAgC2iD,GACvCu0B,UAAW,kBACT2D,EAAe,CAAE6B,oBAAqBrQ,MACxC+K,OAAQ,kBAAMyD,EAAe,CAAE6B,oBAAqBpQ,MACpDvgC,KAAM,SAAAp9B,GAAM,OACVmsE,EAAa,CACXjI,SAAUlkE,EAAO21C,YACjBwuB,UAAW,iBAEfyE,iBAAkB,kBAAMA,EAAiB,CAAEjzB,YAAa,QACxDltD,SAAUurD,EAASg6B,gBACjB,eAAC,GAAD,CACEnC,KAAM73B,EAASg6B,gBACf3sC,IAAG,UAAKwN,GAAL,0BAA0Bx9C,IAAO,CAAC,mBAARA,CAA4B2iD,MAEzD,KACJw0B,UAAU,EACVh+D,iBAAkBm4D,GAAoBhtB,YACtCryC,cAAeA,EAAcqyC,YAC7By3B,aAAc/7E,IAAQ2iD,EAASg6B,kBAEjC,CACE5O,OAAQmD,GAAqBE,MAC7Bx2E,MAAO,SACPy8E,UAAW,eAAC,GAAD,CAAUpgF,UAAWK,EAAQ81E,WACxCnvD,MAAOje,IAAO,CAAC,iBAARA,CAA0B2iD,GACjCu0B,UAAW,kBAAM2D,EAAe,CAAE+B,cAAevQ,MACjD+K,OAAQ,kBAAMyD,EAAe,CAAE+B,cAAetQ,MAC9CvgC,KAAM,SAAAp9B,GAAM,OAAIosE,EAAapsE,IAC7B4oE,iBAAkB,kBAAMA,EAAiB,CAAEnG,MAAO,QAClDj4D,iBAAkBm4D,GAAoBF,MACtCn/D,cAAeA,EAAcm/D,MAC7B2K,aAAc/7E,IAAQ2iD,EAASyuB,SAInCpxE,MAAU,SAAA6K,GAAO,IAAD,IACd8wE,EAAmBv8D,KAAK,CACtB2uD,OAAQ,CACN,CACE3nE,KAAMyE,EAAGgyE,kBAAkB5iF,GAC3BkN,MAAO0D,EAAGgyE,kBAAkBC,cAAc12E,KAC1CsD,MAAK,UAAEmB,EAAGkyE,aAAa37E,YAAlB,QAA0B,GAC/BuY,UAAWrQ,GACX4gC,UAAU,IAGdtvC,MAAOiQ,EAAGgyE,kBAAkBC,cAAc12E,KAC1CixE,UAAW,eAAC,GAAD,CAAUpgF,UAAWK,EAAQ81E,WACxCnvD,MAAOje,IAAO,CAAC,YAARA,CAAqB6K,GAC5BqsE,UAAW,kBACT+D,EAAuB,CACrBp4E,UAAW,CACTm6E,WAAYnyE,EAAGmyE,WACftO,cAAe7jE,EAAGgyE,kBAAkB5iF,GACpC00D,SAAU0d,OAGhB+K,OAAQ,kBACN6D,EAAuB,CACrBp4E,UAAW,CACTm6E,WAAYnyE,EAAGmyE,WACftO,cAAe7jE,EAAGgyE,kBAAkB5iF,GACpC00D,SAAU2d,OAGhBvgC,KAAM,SAAAp9B,GACJqsE,EAAoB,CAClBn4E,UAAW,CACTm6E,WAAYnyE,EAAGmyE,WACftO,cAAe7jE,EAAGgyE,kBAAkB5iF,GACpCmH,KAAM,CACJ67E,gBAAiBpyE,EAAGgyE,kBAAkB5iF,GACtCmH,KAAMuN,EAAO9D,EAAGgyE,kBAAkB5iF,SAK1Cs9E,iBAAkB,aAClBp+D,iBAAkBC,OAAaC,MAAb,eACfxO,EAAGgyE,kBAAkB5iF,GAAKmf,SAE7BnH,cAAc,eACXpH,EAAGgyE,kBAAkB5iF,GADX,UACgB4Q,EAAGkyE,aAAa37E,YADhC,QACwC,QAGtDutE,GAEH3uE,MAAU,SAAA6K,GAAO,IAAD,IACd6wE,EAAat8D,KAAK,CAChB2uD,OAAQ,CACN,CACE3nE,KAAMyE,EAAG1D,MACTA,MAAO0D,EAAG1D,MACVuC,MAAK,UAAEmB,EAAGnB,aAAL,QAAc,GACnBiQ,UAAWrQ,GACX4gC,UAAU,IAGdtvC,MAAOiQ,EAAG1D,MACVkwE,UAAW,eAAC,GAAD,CAAUpgF,UAAWK,EAAQ61E,WACxCphC,KAAM,SAAAp9B,GACJusE,EAAkB,CAChBgC,QAASryE,EAAG5Q,GACZyP,MAAOiF,EAAO9D,EAAG1D,UAGrBowE,iBAAkB,aAClBp+D,iBAAkBC,OAAaC,MAAb,eACfxO,EAAG1D,MAAQiS,SAEdnH,cAAc,eACXpH,EAAG1D,MADO,UACC0D,EAAGnB,aADJ,QACa,QAxB9B,UA2BG1J,IAAO,CAAC,gBAARA,CAAyB2iD,UA3B5B,QA2ByC,IAEzC3iD,MAAU,SAAA6K,GACRoH,EAAc2pE,QAAQ/wE,GAAM+wE,EAAQ/wE,GACpCmxE,EAAgB58D,KAAK,CACnBhZ,KAAMyE,EACN1D,MAAO49B,GAAiBl6B,GACxB8O,UAAWrQ,GACX4gC,UAAU,MANd,UAQGlqC,KAAO47E,UARV,QAQsB,IAEtB,IAAMuB,GAAe,SAAC,EAiBpBjuE,GACI,IAhBFtU,EAgBC,EAhBDA,MACAs8E,EAeC,EAfDA,UACAE,EAcC,EAdDA,OACAn5D,EAaC,EAbDA,MACAo5D,EAYC,EAZDA,UACAtJ,EAWC,EAXDA,OACAhiC,EAUC,EAVDA,KACAwrC,EASC,EATDA,iBACAD,EAQC,EARDA,uBACAlgF,EAOC,EAPDA,SACA+hB,EAMC,EANDA,iBACAlH,EAKC,EALDA,cACAklE,EAIC,EAJDA,SACAK,EAGC,EAHDA,kBAIF,OACE,eAAC,GAAD,CACE58E,MAAOA,EAEPs8E,UAAWA,EACXE,OAAQA,EACRn5D,MAAOA,EACPo5D,UAAWA,EACXF,SAAUA,EACVK,kBAAmBA,EACnBzJ,OAAQA,EACR32E,SAAUA,EACV+hB,iBAAkBA,EAClBlH,cAAeA,EACf85B,KAAMA,EACNwrC,iBAAkBA,EAClBD,uBAAwBA,GAbnBpoE,IAiBLkuE,GAAetB,EAAgBK,IAErC,OACE,iCACE,uBAAKllF,UAAWK,EAAQqE,OAAxB,UACE,eAAChE,GAAD,CAAIV,UAAWK,EAAQsD,MAAvB,SAA+B,mBAE/B,KAkBF,kCACIugF,GAAYx4B,GACZ,gBAACh7B,EAAA,EAAD,CAAMnsB,WAAS,EAAf,UACE,eAACmsB,EAAA,EAAD,CAAMnsB,WAAS,EAACosB,UAAU,SAASxV,MAAI,EAAC+a,GAAI,EAA5C,SACGiwD,GAAa16E,KAAI,SAAC4vD,EAAMpjD,GACvB,OAAO2sE,EAAO3sE,GAAOiuE,GAAa7qB,EAAMpjD,GAAO,UAGnD,eAACyY,EAAA,EAAD,CAAMnsB,WAAS,EAACosB,UAAU,SAASxV,MAAI,EAAC+a,GAAI,EAA5C,SACGiwD,GAAa16E,KAAI,SAAC4vD,EAAMpjD,GACvB,OAAQ2sE,EAAO3sE,GAAiC,KAA1BiuE,GAAa7qB,EAAMpjD,YAK/ClP,KAAU07E,IACV,uBAAKzkF,UAAWK,EAAQ6L,QAAxB,UACE,uBAAMlM,UAAWK,EAAQkW,UAAzB,+BACA,gBAACma,EAAA,EAAD,CAAMnsB,WAAS,EAAf,UACE,eAACmsB,EAAA,EAAD,CAAMnsB,WAAS,EAACosB,UAAU,SAASxV,MAAI,EAAC+a,GAAI,EAA5C,SACGuuD,EAAah5E,KAAI,SAAC4vD,EAAMpjD,GACvB,OAAO2sE,EAAO3sE,GAAOiuE,GAAa7qB,EAAMpjD,GAAO,UAGnD,eAACyY,EAAA,EAAD,CAAMnsB,WAAS,EAACosB,UAAU,SAASxV,MAAI,EAAC+a,GAAI,EAA5C,SACGuuD,EAAah5E,KAAI,SAAC4vD,EAAMpjD,GACvB,OAAQ2sE,EAAO3sE,GAAiC,KAA1BiuE,GAAa7qB,EAAMpjD,eAMjDlP,KAAU27E,IACV,uBAAK1kF,UAAWK,EAAQ6L,QAAxB,UACE,uBAAMlM,UAAWK,EAAQkW,UAAzB,iCACA,gBAACma,EAAA,EAAD,CAAMnsB,WAAS,EAAf,UACE,eAACmsB,EAAA,EAAD,CAAMnsB,WAAS,EAACosB,UAAU,SAASxV,MAAI,EAAC+a,GAAI,EAA5C,SACGwuD,EAAmBj5E,KAAI,SAAC4vD,EAAMpjD,GAC7B,OAAO2sE,EAAO3sE,GAAOiuE,GAAa7qB,EAAMpjD,GAAO,UAGnD,eAACyY,EAAA,EAAD,CAAMnsB,WAAS,EAACosB,UAAU,SAASxV,MAAI,EAAC+a,GAAI,EAA5C,SACGwuD,EAAmBj5E,KAAI,SAAC4vD,EAAMpjD,GAC7B,OAAQ2sE,EAAO3sE,GAAiC,KAA1BiuE,GAAa7qB,EAAMpjD,iBAOrD,eAAC,GAAD,CACEyrE,YAAaA,EACbrD,uBAAwBA,EACxBrxE,KAAMm1E,QCheCtkF,GAhBA,CACb6E,OAAQ,CACNvG,QAAS,OACT8H,cAAe,OAEjBtC,MAAO,CACLkB,UAAW,EACXuB,YAAa,IAEfggF,cAAe,CACbjoF,QAAS,OACT8H,cAAe,MACfk8C,SAAU,SCgFCtiD,GA1FA,CACbwmF,gBAAiB,CACf3/E,SAAU,EACV4/E,WAAY,EACZ5tC,UAAU,MACVn5B,SAAU,EACV8F,SAAU,IACV,oBAAqB,CACnB,UAAW,CACThnB,OAAQ,CAAC,CAAC,EAAG,GAAI,EAAG,MAGxB,kBAAmB,CACjB,UAAW,CACTA,OAAQ,CAAC,CAAC,EAAG,EAAG,EAAG,OAGvBA,OAAQ,CAAC,CAAC,GAAI,KAEhBkoF,aAAc,CACZznF,OAAQ,IACRT,OAAQ,CAAC,CAAC,EAAG,KACbY,QAAS,CAAC,CAAC,GAAI,KACfL,OAAQ,WAEV4nF,YAAa,CACXpsF,gBAAiBX,EACjB0E,QAAS,OACT8H,cAAe,SACftB,eAAgB,SAChBzF,WAAY,UAEdunF,eAAgB,CACdtoF,QAAS,OACT8H,cAAe,MACftB,eAAgB,gBAChBlF,MAAO,QAETinF,cAAe,CACbh6E,SAAU,SACV8I,WAAY,SACZ+vC,aAAc,WACdn/C,YAAa,IAEfugF,gBAAiB,CACfxoF,QAAS,MACTyoF,UAAW,EACXC,UAAW,WACXxoF,OAAQ,CAAC,CAAC,GAAI,IACdqO,SAAU,SACV64C,aAAc,WACdnyB,SAAU,cAEZ0zD,aAAc,CACZhoF,OAAQ,IACRG,QAAS,IAEX8nF,eAAgB,CACd5oF,QAAS,OACT8H,cAAe,MACftB,eAAgB,gBAChBzF,WAAY,SACZgH,aAAc,IAEhB8gF,gBAAiB,CACf7oF,QAAS,OACT8H,cAAe,MACf/G,WAAY,SACZ,QAAS,CACPkH,YAAa,IAEf,mBAAoB,CAClBA,YAAa,IAGjB6gF,iBAAkB,CAChB,UAAW,CACT,UAAW,CACT15E,aAAc,QAEhB,WAAY,CACVA,aAAc,QAEhB,qCAAsC,CACpCA,aAAc,WC7EhB5N,GAAYC,YAAWC,IAcdqnF,GAZK,SAAC,GAAsB,IAApBC,EAAmB,EAAnBA,aACf9mF,EAAUV,KAChB,OACE,sBAAKK,UAAWK,EAAQgmF,gBAAiB98E,QAAS,kBAAM49E,GAAa,IAArE,SACE,gBAACt4E,GAAA,EAAD,CAAO7O,UAAWM,IAAWD,EAAQkmF,aAAclmF,EAAQmmF,aAA3D,UACE,eAAC,GAAD,CAAS/mF,MAAO,GAAIX,OAAQ,KAC5B,eAAC+B,GAAD,4BCOOhB,GAtBA,CACb6a,KAAM,CACJvc,QAAS,OACT8H,cAAe,SACfnH,OAAQ,OACR,QAAS,CACP+F,UAAW,IAEb,mBAAoB,CAClBA,UAAW,SAGf+L,OAAQ,CACNvS,OAAQ,CAAC,CAAC,OAAQ,EAAG,EAAG,UAE1BsrB,OAAQ,CACNxrB,QAAS,OACT8H,cAAe,MACf5H,OAAQ,CAAC,CAAC,OAAQ,EAAGpC,GAAY,MCR/B0D,GAAYC,YAAWC,IAEvBmb,GAAgB,CACpBrX,MAAO,GACP6J,QAAS,IAGL0U,GAAmBC,OAAaC,MAAM,CAC1Cze,MAAOwe,OACJE,WACAqrD,OACA/4D,IAAI,IACPnH,QAAS2U,OAAaE,aAwDT+kE,GArDM,SAAC,GAAgD,IAA9C/X,EAA6C,EAA7CA,UAAWp/D,EAAkC,EAAlCA,QAASqT,EAAyB,EAAzBA,SAAUmqD,EAAe,EAAfA,SAC9CptE,EAAUV,KAEhB,OACE,qCACE,eAAC,GAAD,CACEgE,MAAM,WACNo0C,sBAAsB,EACtBt4C,MAAO,IACPX,OAAQ,IACR6Q,YAAaM,EACbjB,KAAMqgE,EANR,SAOE,eAAC,KAAD,CACEnsD,gBAAgB,EAChBC,kBAAkB,EAClBnI,cAAeA,GACfkH,iBAAkBA,GAClBoB,SAAU,YAAyB,IAAtB3f,EAAqB,EAArBA,MAAO6J,EAAc,EAAdA,QAClB8V,EAAS,CAAE3f,QAAO6J,aANtB,SAQE,gBAAC,KAAD,CAAMxK,GAAG,YAAYhD,UAAWK,EAAQqa,KAAxC,UACE,eAAC,KAAD,CACEvL,KAAK,QACLk4E,WAAS,EACTp7E,KAAK,KACL4uD,aAAa,MACbp7D,MAAO,IACPijB,UAAWrQ,GACXnC,MAAM,eAER,eAAC,KAAD,CACEf,KAAK,UACLlD,KAAK,KACL4uD,aAAa,MACbp7D,MAAO,IACPijB,UAAWrQ,GACXi1E,WAAW,EACXC,KAAM,GACNr3E,MAAM,iBAER,uBAAKlQ,UAAWK,EAAQspB,OAAxB,UACG8jD,GAAY,eAAC,GAAD,UAAeA,IAC5B,eAAClqD,GAAD,CAAQjb,KAAK,SAASoS,KAAK,YAAY1a,UAAWK,EAAQuQ,OAA1D,mC,UC3DRjR,GAAYC,YAAWC,IAEvB2nF,GAAgB,SAAAh6E,GACpB,IAAMi6E,EAAY1+E,KAAQ,KAARA,CAAcyE,GAChC,OAAOzE,KAAM,SAAC6K,EAAIqE,GAChB,OAAIA,IAAQwvE,EAAU1lF,OAAe,qCAAG6R,IAEtC,uCACGA,EACD,6BAGH6zE,IAgCUC,GA7BE,SAAC,GAAiD,IAA/ChkC,EAA8C,EAA9CA,KAAMikC,EAAwC,EAAxCA,WAAY5hC,EAA4B,EAA5BA,YAAa1rB,EAAe,EAAfA,SAC3Ch6B,EAAUV,KAEhB,OACE,sBAAKK,UAAWK,EAAQgmF,gBAAxB,SACE,gBAACx3E,GAAA,EAAD,CAAO7O,UAAWK,EAAQkmF,aAAch9E,QAAS,kBAAMw8C,EAAYrC,IAAnE,UACE,uBAAK1jD,UAAWK,EAAQomF,eAAxB,UACE,uBAAKzmF,UAAWK,EAAQqmF,cAAxB,UACE,eAAChmF,GAAD,CAAItC,UAAQ,EAAZ,gBAAcslD,QAAd,IAAcA,OAAd,EAAcA,EAAM//C,QACpB,eAAC9C,GAAD,CAAGzC,UAAQ,EAAX,SAAam8B,GAAU,OAACmpB,QAAD,IAACA,OAAD,EAACA,EAAMh7C,QAAS2xB,EAAU,mBAEnD,+BACE,eAAC,GAAD,CACEr6B,UAAWK,EAAQunF,WACnBr+E,QAAS,SAAAoV,GACPA,EAAEkpE,kBACFF,EAAW,CAAEG,OAAQpkC,EAAK1gD,aAKlC,eAACnC,GAAD,CAAGzC,UAAQ,EAAC4B,UAAWK,EAAQsmF,gBAA/B,SACGa,GAAa,OAAC9jC,QAAD,IAACA,OAAD,EAACA,EAAMl2C,iB,oBC/C/B,SAAS,KAA2Q,OAA9P,GAAW9L,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,OAAQ,KAAmB,gBAAoB,UAAW,CACrGoB,GAAI,SACJyE,OAAQ,yBAGN,GAAqB,gBAAoB,IAAK,CAChDzE,GAAI,4BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,SACU,gBAAoB,IAAK,CACvCA,GAAI,YACU,gBAAoB,IAAK,CACvCA,GAAI,WACU,gBAAoB,UAAW,CAC7CA,GAAI,WACJC,OAAQ,UACRC,YAAa,EACbiE,cAAe,QACf5D,eAAgB,QAChBkE,OAAQ,mDACO,gBAAoB,OAAQ,CAC3CzE,GAAI,SACJG,KAAM,SACQ,gBAAoB,MAAO,CACzC4hB,UAAW,aACK,gBAAoB,IAAK,CACzC/hB,GAAI,WACW,gBAAoB,UAAW,CAC9CA,GAAI,WACJC,OAAQ,UACRC,YAAa,EACbiE,cAAe,QACf5D,eAAgB,QAChBozB,KAAM,eACNlvB,OAAQ,4CACS,gBAAoB,SAAU,CAC/CzE,GAAI,OACJC,OAAQ,UACRC,YAAa,EACbgB,GAAI,GACJC,GAAI,GACJC,EAAG,MAGL,SAAS,GAAUX,EAAMC,GACvB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,GAAO,IAGlC,IAAI,GAA0B,aAAiB,IC3DzChE,ID4DS,IC5DGC,YAAWC,KAqFdkoF,GAnFE,SAAC,GAAsC,IAApCrkC,EAAmC,EAAnCA,KAAMskC,EAA6B,EAA7BA,OAAQpX,EAAqB,EAArBA,KAAMv2C,EAAe,EAAfA,SAChC4tD,EAAUrkE,mBACVvjB,EAAUV,KAEVuiB,EAAmBC,OAAaC,MAAM,CAC1C5U,QAAS2U,SAGLnH,EAAgB,CACpBxN,QAASk2C,EAAKl2C,SAGhB,OACE,gBAACqB,GAAA,EAAD,CAAO7O,UAAWK,EAAQymF,aAA1B,UACE,uBAAK9mF,UAAWK,EAAQ0mF,eAAxB,UACE,gBAAClmF,GAAD,CAAGzC,UAAQ,EAAX,yBAEG8pF,aACC,CAAEC,UAAW,MACbjvD,aAAmB,CACjBC,MAAOiB,GAAW,IAAIlxB,KAAKw6C,EAAK0kC,cAAe/tD,GAC/CjB,IAAKgB,GAAW,IAAIlxB,KAAQmxB,MANlC,UAWA,uBAAKr6B,UAAWK,EAAQ2mF,gBAAxB,UACE,eAAC,GAAD,CACEvqF,MAAM,UACN6L,KAAK,SACLrI,KAAM0tD,GACNztD,YAAamoF,GACb9+E,QAASy+E,EALX,oBAQA,eAAC,GAAD,CACEvrF,MAAM,UACN6L,KAAK,SACLoS,KAAK,YACLza,KAAMqoF,GACNpoF,YAAaqoF,GALf,0BAQA,eAAC,GAAD,CACE9rF,MAAM,UACN6L,KAAK,SACLrI,KAAM0tD,GACNztD,YAAamoF,GACb9+E,QAAS,kBAAM0+E,EAAQ98E,QAAQ0P,cAAc,UAAW,KAL1D,iCAUJ,eAAC,KAAD,CACEsI,kBAAkB,EAClBD,gBAAgB,EAChBhB,iBAAkBA,EAClBlH,cAAeA,EACfsI,SAAU,gBAAG9V,EAAH,EAAGA,QAAH,OACRojE,EAAK,CACHkX,OAAQpkC,EAAK1gD,GACbwlF,WAAYh7E,EACZi7E,WAAY/kC,EAAKl2C,WAGrBk7E,SAAUT,EAZZ,SAaE,eAAC,KAAD,CAAMjlF,GAAG,YAAT,SACE,eAAC,KAAD,CACEmM,KAAK,UACLuT,UAAWrQ,GACXrS,UAAWK,EAAQ4mF,iBACnBh7E,KAAK,KACL4uD,aAAa,MACbpnD,WAAS,EACT6zE,WAAW,EACXC,KAAM,aClFZ5nF,GAAYC,YAAWC,IAiFd8oF,GA/EO,SAAC,GAMhB,IAAD,EALJj9B,EAKI,EALJA,SACAk9B,EAII,EAJJA,WACAjB,EAGI,EAHJA,WACAkB,EAEI,EAFJA,SACAxuD,EACI,EADJA,SAEMh6B,EAAUV,KADZ,EAE8B0K,oBAAS,GAFvC,mBAEGy+E,EAFH,KAEc3B,EAFd,OAG0B98E,mBAAS,MAHnC,mBAGG6nC,EAHH,KAGYiD,EAHZ,KAKE4zC,EAAgBhgF,MACpB,SAAC8lB,EAAG45C,GAAJ,OAAU,IAAIv/D,KAAJ,OAASu/D,QAAT,IAASA,OAAT,EAASA,EAAG//D,SAASS,UAAY,IAAID,KAAJ,OAAS2lB,QAAT,IAASA,OAAT,EAASA,EAAGnmB,SAASS,YAD5C,UAEpBuiD,EAAS3tC,aAFW,QAEF,IAGdirE,EAAmB,WACvB7B,GAAa,IAsBf,OACE,iCACE,sBAAKnnF,UAAWK,EAAQqE,OAAxB,SACE,eAAChE,GAAD,CAAIV,UAAWK,EAAQsD,MAAvB,SAA+B,YAEhCoF,IAAQmpC,IACP,uBAAKlyC,UAAWK,EAAQ+lF,cAAxB,UACE,eAAC,GAAD,CAAae,aAAcA,IAC1Bp+E,KACC,SAAA6K,GAAE,OACA,eAAC,GAAD,CACE8vC,KAAM9vC,EACN+zE,WAAYA,EACZ5hC,YAAa5Q,EACb9a,SAAUA,MAGd0uD,OAIJhgF,IAAQmpC,IACR,eAAC,GAAD,CACEwR,KAAMxR,EACN81C,OAtCkB,WACxB7yC,EAAW,OAsCLy7B,KAnCkB,SAAAh9D,GACnB7K,KAAS6K,EAAG40E,WAAY50E,EAAG60E,aAC9BI,EAAS,CACPf,OAAQl0E,EAAGk0E,OACXU,WAAY50E,EAAG40E,aAGnBrzC,EAAW,OA6BL9a,SAAUA,IAGbyuD,GACC,eAAC,GAAD,CACEzZ,UAAWyZ,EACX74E,QAAS+4E,EACT1lE,SApDkB,SAAA1P,GAExB,OADAg1E,EAAWh1E,GACJo1E,W,oBCpCX,SAAS,KAA2Q,OAA9P,GAAWtnF,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,0BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,OAAQ,CAC1CD,EAAG,+NACHN,GAAI,WACJC,OAAQ,UACRC,YAAa,OAGf,SAAS,GAASO,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,QAAkBqP,IAAV9L,EAAmC,gBAAoB,QAAS,CACzEX,GAAIY,GACH,2BAA6BD,EAAqB,gBAAoB,QAAS,CAChFX,GAAIY,GACHD,GAAS,KAAM,IAGpB,I,gDAAI,GAA0B,aAAiB,ICPhC9D,IDQA,IC5CA,CACb6E,OAAQ,CACNvG,QAAS,OACT8H,cAAe,OAEjBtC,MAAO,CACLkB,UAAW,EACXuB,YAAa,GACbF,aAAc,IAEhB+iF,eAAgB,CACd9qF,QAAS,OACT8H,cAAe,MACfk8C,SAAU,QAEZmzB,MAAO,CACLC,UAAW,QACXqH,eAAgB,SAChBn9E,MAAO,IACPX,OAAQ,IACRoqF,oBAAqB,EACrBC,qBAAsB,GAExBC,cAAe,CACb/qF,OAAQ,CAAC,CAAC,EAAG,GAAI,EAAG,KAEtBsrB,OAAQ,CACNxrB,QAAS,OACT8H,cAAe,MACf5H,OAAQ,CAAC,CAAC,EAAG,EAAG,EAAG,KAErBw7B,KAAM,CACJx7B,OAAQ,CAAC,CAAC,EAAG,EAAG,EAAG,QCnBjBsB,GAAYC,YAAWC,IAwChBwpF,GAAY,SAAC,GAMnB,IALLpxE,EAKI,EALJA,IACA4hB,EAII,EAJJA,KACAkf,EAGI,EAHJA,IACAqlC,EAEI,EAFJA,gBACAkL,EACI,EADJA,mBAEMjpF,EAAUV,KAEhB,OACE,gBAACkP,GAAA,EAAD,CACE7O,UAAWK,EAAQ+oF,cACnB7/E,QAAS,WACP+/E,EAAmBrxE,GACnBmmE,GAAgB,IAJpB,UAME,sBAAKp+E,UAAWK,EAAQi1E,MAAOv8B,IAAKA,EAAKD,IAAI,KAC7C,uBAAK94C,UAAWK,EAAQspB,OAAxB,UACE,eAAC,GAAD,IACA,eAACroB,GAAD,CAAQtB,UAAWK,EAAQw5B,KAA3B,SACGa,aAAO,aAAc,IAAIxxB,KAAK2wB,aAO1B0vD,GAjEQ,SAAC,GAAoB,IAAlBpM,EAAiB,EAAjBA,WAClB98E,EAAUV,KADyB,EAGD0K,oBAAS,GAHR,mBAGlC8zE,EAHkC,KAGpBC,EAHoB,OAIO/zE,mBAAS,MAJhB,mBAIlCm/E,EAJkC,KAIfF,EAJe,KAKnCG,EAAqB1gF,IAAQygF,GAE/BrM,EADAp0E,IAAUA,KAAWA,KAAWA,KAAUygF,GAA1CzgF,CAA8Do0E,GAGlE,OACE,iCACE,sBAAKn9E,UAAWK,EAAQqE,OAAxB,SACE,eAAChE,GAAD,CAAIV,UAAWK,EAAQsD,MAAvB,SAA+B,qBAEjC,sBAAK3D,UAAWK,EAAQ4oF,eAAxB,SACG9L,EAAW1xE,KAAI,SAAC4vD,EAAMpjD,GAAP,OACd,eAAC,GAAD,CACEA,IAAKA,EACL4hB,KAAMwhC,EAAKxhC,KACXkf,IAAG,UAAKwN,GAAL,YAAY8U,EAAKuf,SAAjB,YAA6Bvf,EAAKjU,MACrCg3B,gBAAiBA,EACjBkL,mBAAoBA,SAI1B,eAAC3M,GAAD,CACE3tE,KAAMmvE,EACNx6E,MAAK,aACLwG,KAAM,eAAC,GAAD,CAAgBgzE,WAAYsM,IAClCxa,YAAa,WACXmP,GAAgB,GAChBkL,EAAmB,aC5Cd,IACbI,UAAW,CACT9qF,OAAQ,UACRnC,MAAOpD,GAETswF,YAAa,CACXtrF,OAAQ,CAAC,CAAC,GAAI,KAEhBurF,YAAa,CACXntF,MAAOpD,EACPgF,OAAQ,CAAC,CAAC,EAAG,KAEfwrF,gBAAiB,CACf3jF,aAAc,IAEhBxH,aAAc,CACZL,OAAQ,CAAC,CAAC,EAAG,EAAG,EAAG,IACnBF,QAAS,OACT8H,cAAe,MACftB,eAAgB,UAElBmlF,UAAW,CACT3rF,QAAS,OACT8H,cAAe,SACfxG,MAAO,KAETsqF,OAAQ,CACN5rF,QAAS,QAEX6rF,eAAgB,CACd7rF,QAAS,QACTsB,MAAO,MAETwqF,cAAe,CACbxqF,MAAO,IACP,QAAS,CACPyG,aAAc,IAEhB,mBAAoB,CAClBA,aAAc,GAEhB,oBAAqB,CACnBA,aAAc,KAGlBgkF,iBAAkB,CAChB/rF,QAAS,OACT8H,cAAe,MACf/G,WAAY,SACZ9E,gBAAiBC,GACjB2E,aAAc,EACdC,QAAS,CAAC,CAAC,EAAG,MCfZU,GAAYC,YAAWC,IAEvBsqF,GAAe1gF,IAAH,i6CA4EZ2gF,GAAe3gF,IAAH,yqBA8BZ4gF,GAAgB5gF,IAAH,uOAUb6gF,GAAyB7gF,IAAH,8SAkBtB8gF,GAAyB9gF,IAAH,6RAYtB+gF,GAAyB/gF,IAAH,gSActBghF,GAAmChhF,IAAH,sRAchCihF,GAAcjhF,IAAH,yPAcXkhF,GAAclhF,IAAH,2HAMXmhF,GAAYnhF,IAAH,sKAMTohF,GAAuBphF,IAAH,uIAMpBqhF,GAAwBrhF,IAAH,yIAMrBsrB,GAAWtrB,IAAH,kEAMRshF,GAAmBthF,IAAH,+LAMhBuhF,GAAoBvhF,IAAH,mMAMjBwhF,GAA6BxhF,IAAH,mLA6YjByhF,GApYSnrF,gBAAK,WAAO,IAAD,UAC3B6nB,EAAUC,cADiB,EAGWxd,oBAAS,GAHpB,mBAG1B8gF,EAH0B,KAGVC,EAHU,OAIL/gF,oBAAS,GAJJ,mBAI1Bq0C,EAJ0B,KAIlBC,EAJkB,OAKjBt0C,mBAAS,MAAlBjC,EAL0B,sBAMKiC,mBAAS,YANd,mBAM1Bk5B,EAN0B,KAMbC,EANa,KAOrBuiD,EAAesF,cAAnBroF,GAPyB,EAa7BiH,YAASkgF,GAAc,CACzBv+E,UAAW,CAAEm6E,gBAJPuF,EAVyB,EAU/BnhF,KACSohF,EAXsB,EAW/B/jE,QACSgkE,EAZsB,EAY/BphF,QAZ+B,EAiBwBH,YAAS8qB,IAApD82C,EAjBmB,EAiBzB1hE,KAA+BymD,EAjBN,EAiBHxmD,QAEhBqhF,EAAyBxhF,YAASghF,GAA4B,CAC1Er/E,UAAW,CACT8/E,aAAa,KAFTvhF,KAnByB,EAyBRS,YAAYmgF,GAAkB,CACrDjoE,YAAa,kBAAMyoE,OADdI,EAzB0B,sBA6BP/gF,YAAYogF,GAAmB,CACvDloE,YAAa,kBAAMyoE,OADdK,EA7B0B,sBAiCFhhF,YAAY0/E,GAAwB,CACjExnE,YAAa,kBAAMyoE,OADdM,EAjC0B,sBAqCNjhF,YAAYy/E,GAAe,CACpDvnE,YAAa,kBAAMyoE,OADdO,EArC0B,sBAyCElhF,YAAY2/E,GAAwB,CACrEznE,YAAa,kBAAMyoE,OADdQ,EAzC0B,sBA6CXnhF,YAAYw/E,GAAc,CAC9CtnE,YAAa,kBAAMyoE,OADdS,EA7C0B,sBAiDAphF,YAAY4/E,GAAwB,CACnE1nE,YAAa,kBAAMyoE,OADdvH,EAjD0B,sBAqDMp5E,YACrC6/E,GACA,CACE3nE,YAAa,kBAAMyoE,OAHhBU,EArD0B,sBA4DZrhF,YAAY8/E,GAAa,CAC5C5nE,YAAa,kBAAMyoE,OADd3C,EA5D0B,uBAgEZh+E,YAAY+/E,GAAa,CAC5C7nE,YAAa,kBAAMyoE,OADd5D,GAhE0B,wBAoEd/8E,YAAYggF,GAAW,CACxC9nE,YAAa,kBAAMyoE,OADd1C,GApE0B,wBA6FJj+E,YAAYigF,GAAsB,CAC7Dj/E,UAAW,CAAEm6E,cACbjjE,YAAa,kBAAMyoE,OAFdW,GA7F0B,wBAkGHthF,YAAYkgF,GAAuB,CAC/Dl/E,UAAW,CAAEm6E,cACbjjE,YAAa,kBAAMyoE,OAFdY,GAlG0B,qBAuG3BvI,GAAiB,SAAAhwE,GAAE,OACvBo4E,EAAY,CACVpgF,UAAW,CACTm6E,aACAqG,cAAex4E,MAIfiwE,GAAe,SAAAjwE,GACnBi4E,EAAqB,CACnBjgF,UAAW,CACTm6E,aACAnK,SAAUhoE,EAAGgoE,SACbC,UAAWjoE,EAAGioE,aAGlBl9B,EAAU,OAGNmlC,GAAe,SAAAlwE,GACnBk4E,EAAiB,CACflgF,UAAW,CACTm6E,aACAsG,aAAcz4E,KAGlB+qC,EAAU,OA+CNgS,GAAU,UAAG5nD,IAAO,CAAC,UAARA,CAAmBuiF,UAAtB,QAA2C,GACrDvuC,GAAS4T,IAAct8B,GAAcR,GAAmB88B,IACxDm1B,GAAY,UAAG/8E,IAAO,CAAC,YAARA,CAAqBuiF,UAAxB,QAA6C,GACzDgB,GAAe,UAAGvjF,IAAO,CAAC,gBAARA,CAAyB+8E,WAA5B,QAA6C,GAC5DyG,GAAqBxjF,KAAOA,KAAUA,IAAO,gBAAxBA,CACzBujF,IAEIn9E,GAAOkpE,GAAQyN,IACf0G,GACJzjF,IAAO,CAAC,sBAARA,CAA+B+8E,MAAkBzQ,GAE7CyC,GAAcgO,GAAahO,YAC3B2U,GAAiC,iBAAhBlpD,EACjBmpD,GAA6B,aAAhBnpD,EACbopD,GAA0B,UAAhBppD,EACVqpD,GAA2B,WAAhBrpD,EAEXspD,GAAkB9jF,KAAO,CAAC,kBAAmB,iBAA3BA,CACtB+8E,IAEIgH,GACJP,IACAxjF,IAAMA,KAAO,CAAC,KAAM,sBAAuB,sBAA3CA,CACEwjF,IAGEpP,GAAanC,GAAiBjyE,KAAS8jF,GAAiBC,KAExD1iF,GAAUohF,GAAmB56B,EAE7Bv2B,GAAWtxB,IAAO,CAAC,SAAU,mBAAoB8iE,GAEjDsN,GAA4B,iBAChCsS,QADgC,IAChCA,GADgC,UAChCA,EAAsB/T,0BADU,aAChC,EAA0CjsE,KAAI,SAAAmI,GAAE,MAAK,CACnDnB,MAAOmB,EAAG5Q,GACV7E,QAASyV,EAAGiyE,cAAc12E,gBAHI,QAIzB,GAEH9O,GAAUV,KAEhB,OACE,uCACE,gBAACyxD,GAAA,EAAD,CACE/wD,QAAS,CAAE2N,KAAM3N,GAAQspF,aACzBpzE,UAAW,eAAC,KAAD,CAAkB3Z,SAAS,UACtCyd,aAAW,aAHb,UAIE,eAAChZ,GAAD,CACEjD,UAAQ,EACR4B,UAAWK,GAAQqpF,UACnBngF,QAAS,kBAAMqe,EAAQO,KAAK,0BAH9B,uBAMA,eAAC7mB,GAAD,CAAQlD,UAAQ,EAAC4B,UAAWK,GAAQqpF,UAApC,SACGv6E,GAAKpN,OACFoN,GACA6oE,GACEjvE,IAAO,CAAC,SAARA,CAAkB+8E,IAClB/oC,GAAOiP,cAIjB,uBAAKhsD,UAAWK,GAAQ0pF,OAAxB,UACE,sBAAK/pF,UAAWK,GAAQ4pF,cAAxB,UACI7/E,KAAY07E,GAAaiH,aACzB,uCACE,eAAC,GAAD,CACE5sE,WAAY,SAAA9H,GAAI,OAAIA,IAASkrB,GAC7Bh6B,QArEa,SAAA8O,GAAI,OAAImrB,EAAenrB,MAuEtC,iCACE,eAAChX,GAAD,CAAQrB,UAAWK,GAAQupF,YAA3B,qBACA,uBAAK5pF,UAAWK,GAAQypF,UAAxB,UACE,eAAC,GAAD,CACE9pF,UAAWK,GAAQ3B,aACnBjC,MAAM,UACNwD,KAAM0gF,GACNzgF,YAAa0gF,GACbr3E,QAAS,kBAAMo1C,GAAU,IAL3B,+BAgBCm5B,IACC,eAAC,GAAD,CACE93E,UAAWK,GAAQ3B,aACnBjC,MAAM,UACNwD,KAAMmhF,GACNlhF,YAAa8sF,GACbzjF,QAAS,kBACPq6E,GAAe,CACbqJ,eAAgB,QAPtB,gCAaF,eAAC,GAAD,CACExwF,MAAM,UACNuD,UAAWK,GAAQ3B,aACnBuB,KAAMusF,GAAUpL,GAAgBC,GAChCnhF,YACEssF,GAAUQ,GAAwBE,GAEpC3jF,QAAS,kBACPq6E,GAAe,CACb/L,mBAAoB2U,GAChBpX,GACAC,MAXV,mBAcMmX,GAAU,YAAc,QAd9B,qBAkBJ,iCACE,eAACnrF,GAAD,CAAQrB,UAAWK,GAAQupF,YAA3B,iCAGA,sBAAK5pF,UAAWK,GAAQypF,UAAxB,SACE,uBAAK9pF,UAAWK,GAAQ6pF,iBAAxB,UACE,eAAC,GAAD,CACE50E,UAAWvM,IAAO,CAAC,kBAARA,CAA2B+8E,IACtCrzE,QAAS1J,IAAO,CAAC,kBAARA,CAA2B+8E,IACpCvzE,SAAU,kBACRxJ,IAAO,CAAC,kBAARA,CAA2B+8E,IACvBqG,KACAD,QAPV,yBAiBV,uBAAKlsF,UAAWK,GAAQ2pF,eAAxB,UACG0C,IACC,iCACE,eAACljE,GAAA,EAAD,CACExpB,UAAWK,GAAQwpF,gBACnB1rF,QAAQ,OACRwG,eAAe,gBAHjB,SAIE,eAAC,GAAD,CACE+mD,SAAUo6B,GACV3I,WAAYA,GACZpgC,OAAQA,GACRquC,kBAAmB,kBAAMA,GAAmBD,QAGhD,+BACE,eAAC,GAAD,CACEz/B,SAAUo6B,GACV37E,KAAMoiF,GACNxvC,OAAQA,GACR3yC,QAASA,UAKhBqiF,IACC,+BACE,eAAC,GAAD,CACE1vC,OAAQA,GACR2O,SAAUo6B,GACVlC,eAAgBA,GAChBC,aAAcA,GACdC,aAAcA,GACdxD,iBA1NW,SAAA1sE,GAAE,OACzBm4E,EAAyB,CACvBngF,UAAW,CACTm6E,aACAsG,aAAcz4E,MAuNNmwE,oBAAqBkI,EACrBjI,uBAAwBA,EACxBC,kBA9QY,SAAArwE,GACxBg4E,EAAgB,CACdhgF,UAAW,CACTm6E,aACAE,QAASryE,EAAGqyE,QACZxzE,MAAOmB,EAAGnB,UA0QF4tE,uBA9LiB,kBAC7B2L,EAAY,CACVpgF,UAAW,CACTm6E,aACAqG,cAAe,CACb/G,gBAAgB,WA4LfsH,IACC,+BACE,eAAC,GAAD,CACEjhC,SAAUo6B,GACV8C,WA7Na,SAAAh1E,GAAE,OAC3Bg1E,EAAW,CACTh9E,UAAW,CACTm6E,aACApiF,MAAOiQ,EAAGjQ,MACV6J,QAASoG,EAAGpG,YAyNJm6E,WArNa,SAAA/zE,GAAE,OAC3B+zE,GAAW,CACT/7E,UAAW,CACTk8E,OAAQl0E,EAAGk0E,WAmNHe,SA/MW,SAAAj1E,GAAE,OACzBi1E,GAAS,CACPj9E,UAAW,CACTk8E,OAAQl0E,EAAGk0E,OACXU,WAAY50E,EAAG40E,eA4MPnuD,SAAUA,OAGfuyD,IACC,+BACE,eAAC,GAAD,CAAgBzP,WAAYA,UAIjCz+B,GACC,eAAC,GAAD,CACEt2C,MAAK,OAAEA,QAAF,IAAEA,OAAF,EAAEA,EAAOG,QACdusC,KAhTc,SAAAlhC,GACtB+3E,EAAe,CACb//E,UAAW,CACTm6E,aACA71E,MAAO0D,EAAGjQ,MACV8O,MAAOmB,EAAGzJ,QAGdw0C,EAAU,OAySF48B,SAAUsI,GACVvI,gBAAiBwI,GACjB7zE,QAAS,kBAAM0uC,EAAU,OACzBw6B,6BAA8BA,c,oBC/oBlC7sE,GAAeC,GAAfD,WAEF6gF,GAAwB7gF,GAAWxN,OAAS,EAE5CsuF,GAAyB9gF,GAAWxN,OAAS,EAE7CuuF,GAAa,sBACb5oF,GAAS,sBAAkB4oF,IAkElBxtF,GAhEA,CACboM,KAAM,gBAAGA,EAAH,EAAGA,KAAH,oBACJpH,UAAoB,OAAToH,EAAgB,EAAI,GAC5B+F,GAAO/F,KAEZgG,QACAq7E,aAAc,CACZ,uBAAwB,CACtBlzF,gBAAiBizF,KAGrBE,MAAO,CACLpvF,QAAS,OACT8H,cAAe,SACfjH,aAAc,CAAC,CAAC,EAAG,EAAGouF,GAAwBA,KAC9ChzF,gBAAiBX,EACjBgL,cAEF8R,UAAW,CACT9W,MAAO,MACPX,OAAQ,EACRT,OAAQ,SACRQ,OAAQ,cACR6O,YAAarU,GAEf8hB,KAAM,CACJhd,QAAS,OACT8H,cAAe,MACfxG,MAAO,OACPX,OAAQ,GACRI,WAAY,UAEdsuF,UAAW,CACTnvF,OAAQ,CAAC,GACTmX,WAAY,SACZ9I,SAAU,SACV64C,aAAc,YAEhBkoC,SAAU,CACR3oF,WAAY,OACZlI,SAAU,GACVH,MAAOpD,EACPgF,OAAQ,CAAC,IAEXiW,MAAO,CACLnW,QAAS,OACTgS,KAAM,EACN1Q,MAAO,IACPR,QAAS,CAAC,CAAC,EAAG,KACdC,WAAY,SACZJ,OAxDoB,GAyDpBE,aAAcmuF,GACd/yF,gBAAiBX,EACjBgD,MAAOzC,GAET0zF,eAAgB,CACd1uF,aAAc,CAAC,CAACouF,GAAwBA,GAAwB,EAAG,IACnE3oF,cAEFkpF,WAAY,CACVvnF,YAAa,KC7DXzG,GAAYC,YAAWC,IA2Ed+tF,GAzEG7tF,gBAChB,YAQO,IAAD,MAPJqK,eAOI,aANJyjF,eAMI,MANM,GAMN,MALJ16E,eAKI,MALM,GAKN,MAJJ26E,wBAII,MAJe,GAIf,EAHJ7hF,EAGI,EAHJA,KACAsG,EAEI,EAFJA,SACGnS,EACC,oFACEC,EAAUV,GAAU,CAAEsM,SADxB,EAG8B5B,oBAAS,GAHvC,mBAGG0jF,EAHH,KAGcC,EAHd,KAKEl7E,GAAY,mBACfzS,EAAQiU,OAAQ,GADD,cAEfjU,EAAQqtF,eAAiBK,GAFV,GAKZE,EAAgB,SAAAJ,GAAO,OAAIt7E,EAASs7E,IAE1C,OACE,eAAC,KAAD,aACEzjF,QAASA,EACT/J,QAAS,CAAE6W,OAAQ7W,EAAQitF,cAC3B76E,MAAOo7E,EACP16E,QAASA,EACTc,eAAgB,SAAAL,GAAE,OAAIA,EAAGnB,OACzBy7E,aAAc,SAAAt6E,GAAE,OACd,uBAAK5T,UAAWK,EAAQ8a,KAAxB,UACE,eAACta,GAAD,CAAGb,UAAWK,EAAQmtF,UAAtB,SAAkC55E,EAAGnB,QACrC,eAAC5R,GAAD,CAAGb,UAAWK,EAAQotF,SAAtB,SAAiC75E,EAAGtL,WAGxCuM,eAAa,EACbC,kBAAgB,EAChBG,eAAa,EACb5B,UAAQ,EACR86E,uBAAqB,EACrBj5E,kBAAmB,SAACgC,EAAQzE,GAAT,OAAmByE,EAAO5O,OAASmK,EAAMnK,MAC5D8lF,eAAgB,gBAAGjuF,EAAH,EAAGA,SAAH,OACd,gBAAC0O,GAAA,EAAD,CAAO0hB,UAAW,EAAGvwB,UAAWK,EAAQktF,MAAxC,UACE,sBAAKvtF,UAAWK,EAAQkW,YACvBpW,MAGLgV,YAAa,SAAAC,GACX,OACE,eAACi5E,GAAA,EAAD,yBACErqF,IAAKoR,EAAOzC,WAAW3O,KACnBoR,GAFN,IAGEpV,UAAWO,IAAWuS,GACtBw7E,eAAgB,eAAC,GAAD,CAAYtuF,UAAWK,EAAQstF,aAC/C70E,YAAag1E,EACbt6C,WAAU,aACRxzC,UAAWK,EAAQ4R,KACnB5R,QAAS,CACP2N,KAAM3N,EAAQ4L,OAEbmJ,EAAOo+B,gBAKlBp4B,OAAQ,kBAAM4yE,GAAa,IAC3B/9E,QAAS,kBAAM+9E,GAAa,IAC5Bz7E,SAAU,SAAC4tB,EAAG0tD,GAAJ,OAAgBI,EAAcJ,KACpCztF,OCjFZ,SAAS,KAA2Q,OAA9P,GAAWsB,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,2BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,OAAQ,CAC1CE,EAAG,+tBACHN,GAAI,OACJG,KAAM,UACNC,SAAU,aAGZ,SAAS,GAASK,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,QAAkBqP,IAAV9L,EAAmC,gBAAoB,QAAS,CACzEX,GAAIY,GACH,4BAA8BD,EAAqB,gBAAoB,QAAS,CACjFX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiB,IAChC,IC1Cf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,4BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,OAAQ,CAC1CE,EAAG,+tBACHN,GAAI,OACJG,KAAM,UACNC,SAAU,aAGZ,SAAS,GAAUK,EAAMC,GACvB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,QAAkBqP,IAAV9L,EAAmC,gBAAoB,QAAS,CACzEX,GAAIY,GACH,6BAA+BD,EAAqB,gBAAoB,QAAS,CAClFX,GAAIY,GACHD,GAAS,KAAM,IAGpB,I,YAAI,GAA0B,aAAiB,IC/BzC4qF,IDgCS,IChCI,CACjBvgF,KAAM,CACJlJ,WAAY,EACZhG,OAAQ,GACR1E,gBAAiBX,EACjB,6BAA8B,CAC5BW,gBAAiBX,GAEnByM,aAAc,QAEhBgK,MAAO,CACLtT,SAAUlB,GACVoB,WAAYhB,GACZe,WAAYd,GACZwD,aAAc,EACdqY,YtXkCW,EsXjCXnb,MAAOzC,KAIL6F,GAAS,CACbiM,OAAQ,CACNrM,MAAO,EACPX,OAAQ,EACRgG,WAAY,EACZsB,YAAa,GAEfmjB,KAAM,CACJ1kB,UAAW,EACXqB,aAAc,GAEhB2nF,QAAS,CACP1vF,QAAS,OACT+H,aAAc,IAEhBsoF,cAAe,CACbrwF,QAAS,OACT2G,WAAY,OACZH,eAAgB,WAChBsB,cAAe,OAEjBwoF,QAAS,CACPhyF,MAAO/B,GACP2D,OAAQ,OACR+H,YAAa,IAEfsoF,MAAO,CACL7pF,UAAW,SC5CT8pF,GAAgB/uF,YAAW2uF,IAC3B5uF,GAAYC,YAAWC,IA6Cd+uF,GA3CM,SAAC,GAKf,IAJLf,EAII,EAJJA,QACAgB,EAGI,EAHJA,eACAC,EAEI,EAFJA,iBACAL,EACI,EADJA,QAEMM,EAAcJ,KACdtuF,EAAUV,KAEhB,OACE,uCACE,eAACkB,GAAD,CAAGb,UAAWK,EAAQkpB,KAAtB,SAA6B,aAC7B,uBAAKvpB,UAAWK,EAAQwtF,QAAxB,UACE,sBAAK7tF,UAAWK,EAAQquF,MAAxB,SACGb,EAAQpiF,KAAI,SAACujF,EAAG/2E,GAAJ,OACX,eAAC,GAAD,CAEE5X,QAAS0uF,EACT7+E,MAAK,UAAK49B,GAAiBkhD,EAAE1mF,MAAxB,aAAkC0mF,EAAEv8E,OACzCuC,SAAU,kBAAM65E,EAAeG,IAC/BpH,WAAY,eAAC,GAAD,CAAW5nF,UAAWK,EAAQyL,UAJrCmM,QAQX,uBAAKjY,UAAWK,EAAQmuF,cAAxB,UAEI,eAACjtF,GAAD,CAAQvB,UAAWK,EAAQouF,QAA3B,0BAAwCA,QAAxC,IAAwCA,IACtC,EADF,cAGF,eAAC,GAAD,CACEhyF,MAAM,YACNwD,KAAMgvF,GACN/uF,YAAagvF,GACblvF,UAAWK,EAAQ8sE,aACnB5jE,QAASulF,EALX,sCChCJnvF,GAAYC,YAAWC,IAmFdsvF,GAjFO,SAAC,GAOhB,IANLhlF,EAMI,EANJA,KACA4yC,EAKI,EALJA,OACAxzC,EAII,EAJJA,QACAa,EAGI,EAHJA,QACAwsE,EAEI,EAFJA,SACAC,EACI,EADJA,eAEMx2E,EAAUV,KAEV8uC,EAAW,CACf,CACE/pC,OAAQ,QACRjF,MAAO,IACP6zC,KAAM,SAAA1/B,GAAE,OAAIokE,GAAkBpkE,EAAGqkE,MAAOl7B,EAAOiP,WAEjD,CACEtnD,OAAQ,OACRjF,MAAO,IACP6zC,KAAM+kC,IAER,CACE3zE,OAAQ,YACRjF,MAAO,IACPyS,UAAW,QACXohC,KAAM,SAAA1/B,GAAE,gBAAO8H,OAAO4yB,SAAS16B,EAAGouE,aAEpC,CACEt9E,OAAQ,cACRjF,MAAO,IACPyS,UAAW,QACXohC,KAAM,SAAA1/B,GAAE,sBACH8H,OAAOoa,WAAWliB,EAAGquE,YADlB,sBACiCruE,EAAGsuE,sBADpC,QACsD,MAEhE,CACEx9E,OAAQ,cACRjF,MAAO,IACP6zC,KAAM,SAAA1/B,GAAE,uBACLA,EAAGuuE,YAAcznD,aAAO,aAAc,IAAIxxB,KAAK0K,EAAGuuE,oBAD7C,QAC8D,KAExE,CACEz9E,OAAQ,mBACRjF,MAAO,IACPyS,UAAW,QACXohC,KAAM,SAAA1/B,GAAO,IAAD,EACJw7E,GAAarmF,IAAQ6K,EAAGsuE,gBACxBT,EAAgC,YAAnB7tE,EAAG8tE,YAA4BC,GAAYC,GACxDyN,EAAW,eAAC5N,EAAD,CAAYzhF,UAAWK,EAAQ+7E,mBAChD,OACE,uCACGgT,GAAS,UACLt5D,WAAWliB,EAAGwuE,YADT,sBACwBxuE,EAAGsuE,sBAD3B,QAC6C,IACtDkN,GAAaC,OAKtB,CACE3qF,OAAQ,SACRjF,MAAO,IACP6zC,KAAM,SAAA1/B,GAAE,OACN,eAAC,GAAD,CACE80B,SAAU,CAACiuC,GAAoB/iE,EAAIgjE,EAAUC,SAMrD,OACE,qCACE,eAAC,GAAD,CACEzsE,QAASA,EACT8kD,UAAU,sBACVzgB,SAAUA,EACVtkC,KAAMA,EACNZ,QAASA,O,UC5EX1J,GAAS,CACbqtE,WAAY,CACVroE,WAAY,EACZpI,MAAOzC,EACP6C,WAAY3B,IAEdyuB,OAAQ,CACNxrB,QAAS,OACT8H,cAAe,MACf5H,OAAQ,CAAC,CAAC,OAAQ,EAAGpC,GAAY,KAEnCye,KAAM,CACJvc,QAAS,OACT8H,cAAe,SACfnH,OAAQ,QAEV8R,OAAQ,CACNvS,OAAQ,CAAC,CAAC,OAAQ,EAAG,EAAG,WAItBixF,GAAiBC,mBAAgBC,cAmBjCC,GAAoB,SAACC,EAAcC,GACvC,IAAMC,EAAiB7mF,MAAO,SAAA6K,GAC5B,IAAMi8E,EAASP,GAAeQ,qBAAqBH,EAAW/7E,GAC9D,OAAO07E,GAAe7zE,cAAco0E,KACnCH,GAEGK,EAAgBT,GAAeQ,qBACnCH,EACAC,GAGF,OAAON,GAAe50D,OAAOq1D,EAAeC,qBAAkBC,OAG1Dj1E,GAAgB,CACpBk9D,YAAa,IAGTv4E,GAAYC,YAAWC,IAEvBquB,GAAc,SAACC,EAAcC,GACjC,OAAKD,GAAiBC,GAClBD,EAAa+pD,aAAe9pD,EAAc8pD,YACrC/pD,EAAa+pD,YAFsB,MA+D/BgY,GAzDa,SAAC,GAAkD,IAAD,EA5ClDR,EA4CGrgB,EAA+C,EAA/CA,UAAW1/D,EAAoC,EAApCA,YAAa2T,EAAuB,EAAvBA,SAAUy5B,EAAa,EAAbA,OACzD18C,EAAUV,KAEVwwF,EAAoBpnF,KAAA,OACxBg0C,QADwB,IACxBA,OADwB,EACxBA,EAAQiP,QACRjjD,KAAM,SAAA6K,GAAE,OAAIA,EAAGo4C,UAAf,iBAAwBjP,QAAxB,IAAwBA,OAAxB,EAAwBA,EAAQsC,iBAAhC,QAA6C,KAG/C,OACE,eAAC,GAAD,CACEtH,sBAAsB,EACtBt4C,MAAO,IACPX,OAAQ,IACR6Q,YAAaA,EACbX,KAAMqgE,EALR,SAME,eAAC,KAAD,CACEntD,kBA5DoBwtE,EA4DkBS,EA3D5ChuE,OAAaC,MAAM,CACjB81D,YAAa/1D,OACVE,SAAS,8BACTC,KAAK,kBAAmB,oCAAoC,SAAA7P,GAC3D,IACE,IAAM29E,EAAWrnF,KAAM,SAAA6K,GACrB,IAAMi8E,EAASP,GAAeQ,qBAAqBr9E,EAAOmB,GAC1D,OAAO07E,GAAe7zE,cAAco0E,KACnCH,GAEH,OAAO3mF,MAAM,SAAA6K,GAAE,OAAW,IAAPA,IAAaw8E,GAChC,MAAOzxE,QAEV+uD,UA+CC1yD,cAAeA,GACfmI,kBAAkB,EAClBG,SAAU,SAAA5L,GACR4L,EAAS,CACP1X,UAAW,CACTssE,YAAauX,GACXU,EACAz4E,EAAOwgE,iBATjB,SAcG,gBAAGt9D,EAAH,EAAGA,OAAQD,EAAX,EAAWA,QAAX,OACC,gBAAC,KAAD,CAAM3X,GAAG,6BAA6BhD,UAAWK,EAAQqa,KAAzD,UACE,eAACla,GAAD,CAAIR,UAAWK,EAAQ6sE,WAAvB,iCACA,eAAC,KAAD,CACExqD,UAAWrQ,GACXlD,KAAK,cACL1P,MAAO,IACPiU,WAAS,EACTxD,MAAM,iBAER,uBAAKlQ,UAAWK,EAAQspB,OAAxB,UACGuE,GAAYtT,EAAQD,IACnB,eAAC,GAAD,UAAeuT,GAAYtT,EAAQD,KAErC,eAAC4I,GAAD,CACEjb,KAAK,SACLoS,KAAK,6BACL1a,UAAWK,EAAQuQ,OAHrB,gCCzGRy/E,GAAuB5mF,IAAH,6GASpB6mF,GAAgB7mF,IAAH,o9BAmDb8mF,GAAkB9mF,IAAH,2JAQf+mF,GAAgB5wF,YAAWylD,IAE3BorC,GAAgB,SAAA5C,GAAO,OAC3B9kF,MAAS,SAAC6/B,EAAGomD,GAAJ,mBAAC,eAAepmD,GAAhB,kBAAoBomD,EAAE1mF,KAAO0mF,EAAEv8E,UAAU,GAAIo7E,IAqJzC6C,GAnJG,WAAO,IAAD,IAChBrrC,EAAamrC,KACb5oE,EAAUC,cAFM,EAO4Bxd,mBAAS,IAPrC,mBAOfsmF,EAPe,KAOIC,EAPJ,OAQYvmF,mBAAS,IARrB,mBAQfuB,EARe,KAQJilF,EARI,OASQxmF,mBAAS,IATjB,mBASfwjF,EATe,KASNiD,EATM,OAU4BzmF,oBAAS,GAVrC,mBAUf0mF,EAVe,KAUIC,EAVJ,OAgBlB/mF,YAASqmF,GAAe,CAC1B1kF,YACAkX,YAAa,SAAA3Y,GAAI,OAAIymF,EAAqB7nF,IAAO,CAAC,aAARA,CAAsBoB,OAL1D8mF,EAbc,EAapB9mF,KACSqhF,EAdW,EAcpBphF,QACAod,EAfoB,EAepBA,QAfoB,EAqBqCvd,YACzDomF,IADYa,EArBQ,EAqBd/mF,KAAgCgnF,EArBlB,EAqBS/mF,QArBT,EAyBMQ,YAAY2lF,GAAiB,CACvDztE,YAAa,kBAAMkuE,GAAqB,IACxCjmF,eAAgB,iBAAM,CACpB,CACEk9C,MAAOqoC,GACP1kF,iBALCwlF,EAzBe,oBAmChBzgC,EAAU,UAAG5nD,IAAO,CAAC,UAARA,CAAmBkoF,UAAtB,QAA4C,GACtDI,EAAsB,UAC1BtoF,IAAO,CAAC,sBAAuBkoF,UADL,QAC2B,GACjDl0C,EAAS4T,GAAct8B,GAAcR,GAAmB88B,GACxDimB,EAAWjmB,GAAct8B,GAAcR,GAAqB88B,GAC5D2gC,EAAgBvoF,KAAW,CAC/BA,MAAU,SAAA6K,GAAE,aAAI,IAAI1K,KAAJ,UAASH,IAAO,aAAc6K,UAA9B,QAAqC,SADjC7K,CAAA,OAEnB4nF,QAFmB,IAEnBA,IAAqB,IAkDlBx8E,EAAgBpL,IAAO,CAAC,mBAARA,CAA4BmoF,GAElD,OACE,uCACE,eAAC,GAAD,CACEvtF,MAAM,YACNylB,SACE,sBAAKppB,UAAWqlD,EAAWT,eAA3B,SACE,eAAC,GAAD,CACEx6C,QAAS+mF,EACTtD,QAASA,EACT16E,QAASgB,EACT25E,iBAAkB,mBAClBv7E,SA7DW,SAAAs7E,GACrB,IAAM0D,EAAgBd,GAAc5C,GAEpCiD,EAAWjD,GAEXgD,EAAa,CACX5Y,MAAOsZ,EAActZ,MACrB9oE,KAAMoiF,EAAcpiF,KACpB21C,QAASysC,EAAczsC,QACvB9hD,GAAIuuF,EAAcvuF,KAGpBwkB,GAAWA,SAqDP6B,cACE,eAACG,GAAA,EAAD,CAAKrrB,QAAQ,OAAb,SACE,eAAC,GAAD,CAAM1B,MAAM,UAAU8M,QAAS,kBAAMynF,GAAqB,IAA1D,4BAKJ9nE,OAAQ,CACN,CAAEhZ,MAAO,UAAWnI,KAAM,eAAC,GAAD,KAC1B,CAAEmI,MAAO,WAAYnI,KAAM,eAAC,GAAD,QAG9B8lF,EAAQ9rF,OAAS,GAChB,eAAC,GAAD,CACE0sF,QAAS6C,EAAcvvF,OACvB8rF,QAASA,EACTgB,eAlEe,SAAAr6E,GACrB,IAAMg9E,EAAazoF,KACjB,SAAAimF,GAAC,OAAKjmF,KAAUA,KAAO,CAAC,OAAQ,SAAUimF,GAAIx6E,KAD7BzL,CAEjB8kF,GAEFiD,EAAWU,GAEX,IAAMD,EAAgBd,GAAce,GAEpCX,EAAa,CACX5Y,MAAOsZ,EAActZ,MACrB9oE,KAAMoiF,EAAcpiF,KACpB21C,QAASysC,EAAczsC,QACvB9hD,GAAIuuF,EAAcvuF,KAGpBwkB,GAAWA,KAmDLsnE,iBAhDiB,WACvBgC,EAAW,IACX,IAAMS,EAAgBd,GAAc,IAEpCI,EAAa,CACX5Y,MAAOsZ,EAActZ,MACrB9oE,KAAMoiF,EAAcpiF,KACpB21C,QAASysC,EAAczsC,QACvB9hD,GAAIuuF,EAAcvuF,KAGpBwkB,GAAWA,OAwCT,eAAC,GAAD,CACErd,KAAMmnF,EACNv0C,OAAQA,EACRxzC,QAhIwB,SAAAmiD,GAAQ,OACpC9jC,EAAQO,KAAR,+BAAqCujC,EAAS1oD,MAgI1CoH,QAASohF,EACT5U,SAAUA,EACVC,eAAgBwa,IAElB,eAAC,GAAD,CACEhiB,UAAW0hB,EACXphF,YAAa,kBAAMqhF,GAAqB,IACxCj0C,OAAQA,EACRz5B,SAAU8tE,Q,UCnOZzxF,GAAYC,aAAW,CAC3BsM,QAAS,CACP/N,QAAS,OACTe,WAAY,UAEduyF,eAAgB,CACdzyF,aAAc,EACdF,OAAQ,GACRW,MAAO,GACP2G,YAAa,KAmBFsrF,GAfI,SAAC,GAA2C,IAAzC1xF,EAAwC,EAAxCA,UAAWkQ,EAA6B,EAA7BA,MAAOzT,EAAsB,EAAtBA,MAAU2D,EAAY,6CACtDC,EAAUV,KAChB,OACE,+CAAKK,UAAWO,IAAWF,EAAQ6L,QAASlM,IAAgBI,GAA5D,cACG3D,GACC,sBACEuD,UAAWK,EAAQoxF,eACnB37E,MAAO,CAAE1b,gBAAiBqC,KAG9B,eAAC4E,GAAD,2BAAYjB,GAAZ,aAAoB8P,UCnBlBpS,GAAiBa,GAAjBb,OAAQL,GAASkB,GAATlB,KAED,IACbyO,QAAS,CACP/N,QAAS,OACTgS,KAAM,EACNlK,cAAe,MACfnH,OAAQ,QAEV6yF,KAAM,CACJxzF,QAAS,OACTgS,KAAM,GAERyhF,UAAW,CACTvzF,OAAO,KAAD,OAAOpC,GAAP,gBAAyBA,GAAzB,OAER41F,WAAY,CACVhtF,WAAY,IAEduD,MAAO,CACL3L,MAAO3B,IAETg3F,UAAW,CACTzzF,OAAO,GAAD,OAAKpC,GAAL,SAER81F,WAAY,CACVjtF,W5XuBW,G4XrBbktF,UAAW,CACTntF,UAAW5I,IAEbg2F,eAAgB,CACd9zF,QAAS,OACT8H,cAAe,SACfkK,KAAM,EACN/V,gBAAiBC,IAEnByqD,QAAS,CACPrlD,MAAO,IACPpB,OAAO,GAAD,OAAKpC,GAAL,cAAuBA,GAAvB,OAERi2F,YAAa,CACXhgF,UAAW,OAEbiJ,KAAM,CACJxe,OAAQmB,GACRO,OAAQ,GAEV8zF,aAAc,CACZ11F,MAAOpD,GAET+4F,UAAW,CACTt1F,WAAY,IACZuB,OAAQ,GAEV2f,MAAO,CACLnZ,UAAW,OACXqN,UAAW,QACX9L,YAAa,IAEfisF,aAAc,CACZxtF,UAAW,GAEbytF,WAAY,CACV71F,MAAO5B,GACPqL,aAAc,GAEhB+wB,MAAO,CACLpyB,U5XnBW,E4XoBXC,WAAY7I,IAEds2F,WAAY,CACV5tF,eAAgB,MAChBE,WAAY,IAEd2tF,QAAS,CACPp4F,gBAAiBI,IAEnB8rD,gBAAiB,CACfxhD,WAAY,OACZqB,WAAY,EACZyR,YAAa,GACbxR,aAAc,IAEhB3I,KAAM,CACJd,OAAQc,GACRgC,MAAO,IACPpB,OAAO,GAAD,OAAKpC,GAAL,cAAuBA,GAAvB,QCrEJ0D,GAAYC,YAAWC,IACvB4yF,GACC,IADDA,GAEE,IAFFA,GAGE,IAGFC,GAAcjpF,IAAH,qRAkBX6gD,GAAgB,eAACD,EAAD,uDAAc,GAAIvF,EAAlB,uDAA4B,GAA5B,OACpBoF,SAAUK,oBAAoBF,EAAYvF,GAAS0F,QAAQ,UAAW,QAClEmoC,GAAa,SAAC75D,EAAKrmB,GAAN,OAAgBqmB,EAAI+P,KAAKp2B,IACtCmgF,GAAe,SAAAh/E,GAAE,OAAI,IAAIohB,KAAUphB,GAAIqiB,SAAS,IAEhD48D,GAAoB,SAAA18C,GACxB,OAAOy8C,GACLz8C,EACG3hC,QAAO,SAAAZ,GAAE,OAAKA,EAAG65D,YACjBhiE,KAAI,SAAAmI,GAAE,OAAI,IAAIohB,KAAUphB,EAAGk/E,yBAC3BC,OAAOJ,GAAY,IAAI39D,KAAU,MAsOzBg+D,GAzNC,WAAO,IAAD,IACY3oF,mBAAS,MADrB,mBACbgyD,EADa,KACHC,EADG,OAEEjyD,oBAAS,GAAxB4oF,EAFa,oBAGd5yF,EAAUV,KACVuzF,EAAiB,CACrB,CACEC,aAAc,EACdC,QAAS,MACTC,UAAW,IACXx5D,KAAM,IAAI3wB,KACVoqF,YAAa,KACbd,SAAS,GAEX,CACEW,aAAc,GACdC,QAAS,MACTC,UAAW,KACXx5D,KAAM,IAAI3wB,KACVoqF,YAAa,MAEf,CACEH,aAAc,EACdC,QAAS,EACTC,UAAW,IACXx5D,KAAM,IAAI3wB,KACVoqF,YAAa,OAzBG,EAiCuBrpF,YAASyoF,IAAtCa,EAjCM,EAiCZppF,KAAuBC,EAjCX,EAiCWA,QACzBopF,EAAO,UAAGzqF,IAAO,CAAC,WAARA,CAAoBwqF,UAAvB,QAA2C,GAEpDC,EAAQzxF,SAAWs6D,GACrBC,EAAYk3B,EAAQ,IAGtB,IA2BMC,EA3ECb,GA2E8BY,EAzEhCh/E,QAAO,SAAAZ,GAAE,OAAKA,EAAG65D,YACjBhiE,KAAI,SAAAmI,GAAE,OAAI,IAAIohB,KAAUphB,EAAG8/E,gBAC3BX,OAAOJ,GAAY,IAAI39D,KAAU,KAwEhC2+D,EAAiB,SAAAC,GAAG,OAAKA,GAAO,EAAI,IAAM,IAEhD,OACE,uCACE,+BACE,eAAC,GAAD,wBAGF,uBAAK5zF,UAAWK,EAAQ6L,QAAxB,UACE,eAAC,GAAD,CACE/B,KAAMqpF,EACNrzE,WAlDW,SAAAvM,GACjB,OAAOyoD,GAAYA,EAAShS,aAAez2C,EAAGy2C,YAkDxC9gD,QAAS+yD,EACTp8C,YAAa,SAAAtM,GAAE,OAAIA,EAAGzV,SACtBiiB,WA1CW,SAACxM,EAAItC,GAAY,IAAD,IAC3BuiF,GAAS,mBACZxzF,EAAQ8a,MAAO,GADH,cAEZ9a,EAAQ8xF,cAAgB7gF,GAFZ,GAITwiF,GAAY,mBACfzzF,EAAQ6xF,aAAc,GADP,cAEf7xF,EAAQ+H,MAAQwL,EAAG65D,UAFJ,GAKlB,OACE,uBAAKztE,UAAWO,IAAWuzF,GAA3B,UACE,sBAAK9zF,UAAWK,EAAQ+xF,UAAxB,SAAoCx+E,EAAGzV,WACrCyV,EAAG65D,UACH,uCACE,uBAAKztE,UAAWO,IAAWszF,GAA3B,UACGjB,GAAah/E,EAAGk/E,sBADnB,IAC2Cl/E,EAAG8wB,YAE9C,uBAAK1kC,UAAWO,IAAWszF,GAA3B,UACGjgF,EAAGmgF,iBADN,IACyBngF,EAAGy2C,qBAwB9BjgD,QAASA,EANX,SAOGopF,EAAQzxF,QACP,uBAAK/B,UAAWK,EAAQ2d,MAAxB,UACE,eAAC3c,GAAD,CAAQrB,UAAWK,EAAQiyF,WAA3B,kCAGA,gBAACvxF,GAAD,CAAO3C,UAAQ,EAAf,UACGy0F,GAAkBW,GAClBA,EAAQ,GAAG9uD,YAEd,gBAACrjC,GAAD,CAAQrB,UAAWK,EAAQgyF,aAA3B,cACIsB,EAAeF,GADnB,IACmCA,EADnC,oBAMLp3B,IAAa42B,GAAe52B,EAASoR,UACpC,sBAAKztE,UAAWK,EAAQsxF,KAAxB,SACE,sBAAK3xF,UAAWK,EAAQuxF,UAAxB,SACE,eAAC3wF,GAAD,CAAOjB,UAAWK,EAAQ+H,MAA1B,SAAkCi0D,EAASoR,eAIhDpR,IAAa42B,IAAgB52B,EAASoR,UACrC,uBAAKztE,UAAWK,EAAQsxF,KAAxB,UACE,uBAAK3xF,UAAWK,EAAQuxF,UAAxB,UACE,gBAAClxF,GAAD,uBAAc27D,EAASl+D,QAAvB,OACA,uBAAK6B,UAAWK,EAAQyxF,UAAxB,UACE,eAAC/wF,GAAD,CAAO7C,QAAM,EAACE,UAAQ,EAAtB,mBACMi+D,EAAS03B,iBADf,YACmC13B,EAAShS,cAE5C,eAACrpD,GAAD,CAAO9C,QAAM,EAACE,UAAQ,EAAC4B,UAAWK,EAAQ0xF,WAA1C,oBACO4B,EAAet3B,EAASm2B,SAD/B,YAEIn2B,EAASm2B,QAFb,kBAOF,uBAAKxyF,UAAWK,EAAQyxF,UAAxB,UACE,eAAC7wF,GAAD,CAAO/C,QAAM,EAACE,UAAQ,EAAtB,qBACQw0F,GAAav2B,EAASy2B,sBAD9B,YAEIz2B,EAAS33B,YAGb,eAACnjC,GAAD,CAAQrD,QAAM,EAACE,UAAQ,EAAC4B,UAAWK,EAAQ0xF,WAA3C,oBACO4B,EAAet3B,EAASq3B,aAD/B,YAC+Cd,GAC3Cv2B,EAASq3B,aAFb,kBAOF,eAAChzF,GAAD,CAAIV,UAAWK,EAAQ2xF,UAAvB,qBACA,sBAAKhyF,UAAWK,EAAQ4xF,eAAxB,SACE,sBAAKjyF,UAAWK,EAAQ5C,KAAxB,SACE,kCACE,eAAC,GAAD,CACEooD,gBAAiBxlD,EAAQimD,gBAD3B,SAGGgE,GACC+R,EAAShS,WACTgS,EAAS23B,iBAHN33B,EAAShS,qBAWxB,uBAAKrqD,UAAWK,EAAQwxF,WAAxB,UACE,gBAACxwF,GAAD,2BAAsBg7D,EAASl+D,WAC/B,eAAC,KAAD,CACE8N,KAAM,IACNkY,QAASnqB,EACTyY,MAAO4pD,EAAS43B,0BAKvB53B,GAAY42B,GACX,iCACE,eAAC,GAAD,CACEjzF,UAAWK,EAAQkyF,WACnBriF,MAAM,UACNzT,MAAM,YAER,gBAAC,GAAD,CAAOuD,UAAWK,EAAQ42B,MAA1B,UACE,gBAAC,GAAD,WACE,eAAC,GAAD,CAAIvyB,QAAM,EAACjF,MAAOgzF,GAAlB,4BAGA,eAAC,GAAD,CAAI/tF,QAAM,EAACjF,MAAOgzF,GAAlB,2BAGA,eAAC,GAAD,CAAI/tF,QAAM,EAACjF,MAAOgzF,GAAlB,wBAGA,eAAC,GAAD,CAAI/tF,QAAM,EAACjF,MAAOgzF,GAAlB,kBAGA,eAAC,GAAD,CAAI/tF,QAAM,EAACjF,MAAOgzF,GAAlB,0BAGA,eAAC,GAAD,CAAI/tF,QAAM,EAACjF,MAAOgzF,GAAlB,6BAIF,eAAC,GAAD,UACGS,EAAeznF,KAAI,SAACmI,EAAIqE,GAAL,OAClB,gBAAC,GAAD,CAEEjY,UAAWO,IAAW,eAAGF,EAAQmyF,QAAU5+E,EAAG4+E,UAFhD,UAGE,gBAAC,GAAD,CAAI/yF,MAAOgzF,GAAX,UACG7+E,EAAGu/E,aADN,IACqB92B,EAAShS,cAE9B,gBAAC,GAAD,CAAI5qD,MAAOgzF,GAAX,UACG7+E,EAAGw/E,QADN,IACgB/2B,EAAShS,cAEzB,gBAAC,GAAD,CAAI5qD,MAAOgzF,GAAX,UACG7+E,EAAGy/E,UADN,IACkBh3B,EAAS33B,YAE3B,eAAC,GAAD,CAAIjlC,MAAOgzF,GAAX,SAAwB/3D,aAAO,aAAc9mB,EAAGimB,QAChD,eAAC,GAAD,CAAIp6B,MAAOgzF,GAAX,SAAwB/3D,aAAO,WAAY9mB,EAAGimB,QAC9C,eAAC,GAAD,CAAIp6B,MAAOgzF,GAAX,mBAbKx6E,qBC5QzB,SAAS,KAA2Q,OAA9P,GAAWvW,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,SAAU,CACrDsC,GAAI,GACJC,GAAI,GACJC,EAAG,GACHjB,KAAM,YAGJ,GAAqB,gBAAoB,OAAQ,CACnDG,EAAG,ylBACHH,KAAM,SAGR,SAAS+wF,GAAqBzwF,EAAMC,GAClC,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDK,MAAO,6BACPrE,MAAO,IACPX,OAAQ,GACRkF,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiBuwF,IAChC,ICrCf,SAAS,KAA2Q,OAA9P,GAAWxyF,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,CACnDuB,KAAM,UACNG,EAAG,wHAGD,GAAqB,gBAAoB,OAAQ,CACnDH,KAAM,OACNE,UAAW,oBACXC,EAAG,o6BAGL,SAAS6wF,GAAyB1wF,EAAMC,GACtC,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDK,MAAO,6BACPrE,MAAO,IACPX,OAAQ,GACRkF,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiBwwF,IAChC,ICpCf,SAAS,KAA2Q,OAA9P,GAAWzyF,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,SAAU,CACrDsC,GAAI,IACJC,GAAI,IACJC,EAAG,IACHjB,KAAM,YAGJ,GAAqB,gBAAoB,IAAK,CAChDA,KAAM,QACQ,gBAAoB,OAAQ,CAC1CG,EAAG,6TACY,gBAAoB,OAAQ,CAC3CA,EAAG,uCAGL,SAAS8wF,GAAkB3wF,EAAMC,GAC/B,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDK,MAAO,6BACPD,QAAS,gBACTpE,MAAO,KACPX,OAAQ,KACRkF,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiBywF,IAChC,ICzCf,SAAS,KAA2Q,OAA9P,GAAW1yF,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,KAAmB,gBAAoB,UAAW,CAClGuB,KAAM,UACNsE,OAAQ,8EACO,gBAAoB,UAAW,CAC9CtE,KAAM,UACNsE,OAAQ,uDACO,gBAAoB,UAAW,CAC9CtE,KAAM,UACNsE,OAAQ,8FACO,gBAAoB,UAAW,CAC9CtE,KAAM,UACNsE,OAAQ,iDACO,gBAAoB,UAAW,CAC9CtE,KAAM,UACNsE,OAAQ,0DACO,gBAAoB,UAAW,CAC9CtE,KAAM,UACNsE,OAAQ,yDAGV,SAAS4sF,GAAsB5wF,EAAMC,GACnC,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,QACPX,OAAQ,QACR+E,QAAS,cACTC,MAAO,6BACPC,WAAY,+BACZuwF,oBAAqB,WACrBtwF,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiB0wF,IAChC,IChDf,SAAS,KAA2Q,OAA9P,GAAW3yF,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,SAAU,CACrDuB,KAAM,UACNe,GAAI,GACJC,GAAI,GACJC,EAAG,KAGD,GAAqB,gBAAoB,OAAQ,CACnDjB,KAAM,OACNG,EAAG,oPAGL,SAASixF,GAAsB9wF,EAAMC,GACnC,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDK,MAAO,6BACPrE,MAAO,IACPX,OAAQ,GACRkF,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB4wF,IAChC,ICrCf,SAAS,KAA2Q,OAA9P,GAAW7yF,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,CACnD0B,EAAG,gMACHH,KAAM,SAGJ,GAAqB,gBAAoB,OAAQ,CACnDG,EAAG,iLACHH,KAAM,YAGR,SAASqxF,GAAoB/wF,EAAMC,GACjC,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,KACPX,OAAQ,KACR+E,QAAS,cACTC,MAAO,6BACPwwF,oBAAqB,WACrBtwF,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB6wF,IAChC,ICrCf,SAAS,KAA2Q,OAA9P,GAAW9yF,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,CACnD0B,EAAG,iGACHH,KAAM,YAGJ,GAAqB,gBAAoB,OAAQ,CACnDG,EAAG,8cACHH,KAAM,SAGR,SAASsxF,GAAoBhxF,EAAMC,GACjC,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDK,MAAO,6BACPD,QAAS,gBACTpE,MAAO,KACPX,OAAQ,KACRkF,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB8wF,IAChC,ICpCf,SAAS,KAA2Q,OAA9P,GAAW/yF,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,QAAS,CACpD0G,KAAM,YACL,oDAEC,GAAqB,gBAAoB,OAAQ,CACnDtI,UAAW,MACXsD,EAAG,gOAGD,GAAqB,gBAAoB,SAAU,CACrDtD,UAAW,MACXkE,GAAI,MACJC,GAAI,MACJC,EAAG,QAGD,GAAqB,gBAAoB,UAAW,CACtDpE,UAAW,MACXyH,OAAQ,gNAGV,SAASitF,GAAmBjxF,EAAMC,GAChC,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDT,GAAI,UACJc,MAAO,6BACPC,WAAY,+BACZwB,EAAG,MACHF,EAAG,MACHxB,QAAS,kBACTiS,MAAO,CACL4K,iBAAkB,uBAEpBC,SAAU,WACV3c,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQ,QAAiBqP,IAAV9L,EAAmC,gBAAoB,QAAS,CAChFX,GAAIY,GACH,oBAAsBD,EAAqB,gBAAoB,QAAS,CACzEX,GAAIY,GACHD,GAAS,KAAM,GAAO,GAAO,IAGlC,I,2BAAI,GAA0B,aAAiB+wF,IChBzC/0F,IDiBS,ICjBGC,YAxBH,CACbsmB,KAAM,CACJtgB,UAAW,GACXyf,SAAU,KAEZ1hB,MAAO,CACLtF,OAAQ,CAAC,CAAC,GAAI,EAAG,GAAI,KAEvBkrB,KAAM,CACJlrB,OAAQ,GAEVyN,OAAQ,CACNjH,UAAW,OACXqB,aAAc,IAEhBmyC,aAAc,CACZl6C,QAAS,OACT8H,cAAe,SACf/G,WAAY,SACZD,QAAS,CAAC,CAAC,EAAG,KACdkR,KAAM,MAiDKyoC,GApBM,SAAC,GAAgC,IAA9BvgC,EAA6B,EAA7BA,KAAMlJ,EAAuB,EAAvBA,KAAM0pC,EAAiB,EAAjBA,WAC5Bx4C,EAAUV,KACVg1F,EAzBQ,SAAAt8E,GACd,OAAQA,GACN,IAAK,MACH,OAAOu8E,GACT,IAAK,MACH,OAAOC,GACT,IAAK,OACH,OAAOC,GACT,IAAK,MACH,OAAOC,GACT,IAAK,MACH,OAAOC,GACT,IAAK,MACH,OAAOC,GACT,IAAK,OACH,OAAOC,GACT,IAAK,MACH,OAAOC,GACT,QACE,OAAO,MAMEC,CAAQ/8E,GAErB,OACE,uBAAKrY,UAAWK,EAAQg4C,aAAxB,UACE,eAACs8C,EAAD,CAAM30F,UAAWK,EAAQ6lB,OACzB,gBAAC1lB,GAAD,CAAIR,UAAWK,EAAQsD,MAAvB,oBAAsCwL,KACtC,gBAACtO,GAAD,CAAGb,UAAWK,EAAQkpB,KAAtB,qCAC2Bpa,EAD3B,+KAKA,eAACoU,GAAD,CAAQvjB,UAAWK,EAAQyL,OAAQvC,QAASsvC,EAA5C,qCCxES,IACbl1C,MAAO,CACLtF,OAAQ,CAAC,CAAC,EAAG,EAAG,GAAI,KAEtBwZ,SAAU,CACRxZ,OAAQ,CAAC,CAAC,GAAI,EAAG,GAAI,KAEvB+J,MAAO,CACL3L,MAAO3B,IAETgR,OAAQ,CACNhH,WAAY,QAEd8L,OAAQ,CACNzS,QAAS,OACT8H,cAAe,MACf5H,OAAQ,CAAC,CAAC,OAAQ,EAAG,MAEvBy9D,WAAY,CACV71D,cAAe,OAEjB81D,WAAY,CACVt8D,MAxBgB,IAyBhBX,OAAQ,IAEVu3E,MAAO,CACLp3E,QAAS,EACTZ,OAAQ,GAEVg3F,SAAU,CACRl3F,QAAS,OACTe,WAAY,SACZJ,OAAQ,IAEViyE,OAAQ,CACNtxE,MArCgB,KAuClBi7C,gBAAiB,CACfv8C,QAAS,OACT8H,cAAe,OAEjB00C,gBAAiB,CACfz7C,WAAY,UAEd85D,cAAe,CACb5yD,YAAa,EACb,UAAW,CACTxJ,SAAUvB,GACVwB,WAAY3B,GACZ4B,WAAY,IACZ,YAAa,CACXmC,QAAS,CAAC,CAAC,EAAG,EAAG,QCrCnBU,GAAYC,YAAWC,IAEvBqwB,GAAe,CACnBxV,KAAM,KACN2hD,SAAU,KACVi5B,OAAO,EACPC,QAAQ,GAGJnlE,GAAU,SAACpJ,EAAOtW,GACtB,OAAQA,EAAOpI,MACb,IAAK,SACH,MAAO,CACLoS,KAAM,KACN2hD,SAAU3rD,EAAO2rD,SACjBi5B,MAAO,KACPC,QAAQ,GAEZ,IAAK,MACH,MAAO,CAAE76E,KAAMsM,EAAMtM,KAAM2hD,SAAU,KAAMi5B,OAAO,EAAMC,QAAQ,GAClE,IAAK,OACH,MAAO,CACL76E,KAAMhK,EAAOgK,KACb2hD,SAAU3rD,EAAOgK,KAAKrC,KACtBi9E,OAAO,EACPC,QAAQ,GAEZ,IAAK,QACH,OAAOxsF,KAAQie,EAAO,CAAEwuE,YAAY,IACtC,IAAK,QACH,OAAOtlE,GACT,QACE,MAAM,IAAIspB,QAkJDuC,GA9II,SAAC,GAab,IAAD,EAZJzzC,EAYI,EAZJA,KACQmtF,EAWJ,EAXJ94C,OACAigB,EAUI,EAVJA,KACAztD,EASI,EATJA,KACAmR,EAQI,EARJA,KACAlY,EAOI,EAPJA,MACA8zC,EAMI,EANJA,SACArD,EAKI,EALJA,WACAxU,EAII,EAJJA,aACAxxB,EAGI,EAHJA,OACAutD,EAEI,EAFJA,SACAs1B,EACI,EADJA,SAEMr1F,EAAUV,KADZ,EAEsD2wB,qBACxDF,GACAF,IAJE,0BAEKslE,EAFL,EAEKA,WAAYn5B,EAFjB,EAEiBA,SAAU3hD,EAF3B,EAE2BA,KAAM46E,EAFjC,EAEiCA,MAASxqE,EAF1C,KAOJ5f,qBAAU,WACR4f,EAAS,CAAExiB,KAAM,YAChB,CAACgY,IAEJ,IAAMq1E,EAAgB,SAACrhE,EAAQonC,GAC7B,IAAKpnC,IAAWA,EAAOhsB,GACrB,OAAOwiB,EAAS,CAAExiB,KAAM,UAE1BuwC,EAAWvkB,EAAQonC,IAGfxrD,EAAQgsC,EAAW,SAAW,OAC9Bh8B,EAAW,OAAG/Q,QAAH,IAAGA,IAAQ7G,EACtBstF,GAAa,mBAChBv1F,EAAQwX,UAAW,GADH,cAEhBxX,EAAQ+H,MAAQotF,GAFA,GAInB,OACE,uCACE,eAACx0F,GAAD,CAAOhB,UAAWK,EAAQsD,MAA1B,SAAkCsqC,GAAU/tB,KAC5C,eAAC,GAAD,CAASK,MAAO,EAAGg5B,YAAaj5B,IAChC,eAAC3f,GAAD,CAAIX,UAAWO,IAAWq1F,GAA1B,SACGt1E,EAAO,EAAP,mBACeJ,EADf,yCAEaA,EAFb,gBAEgC08C,KAEzB,IAATt8C,GACC,eAAC,GAAD,CACEnN,QAASN,EACTJ,MAAO4pD,EACPr8D,UAAWK,EAAQy7D,WACnBvpD,SAAU,SAACwB,EAAKH,GACdkX,EAAS,CAAExiB,KAAM,SAAU+zD,SAAUzoD,KAEvCmE,eAAgB1X,EAAQ07D,WACxB/jD,eAAgB3X,EAAQg2E,QAGlB,IAAT/1D,GACC,eAAC,KAAD,CACE4C,gBAAgB,EAChBC,kBAAkB,EAClBnI,cAAe,CAAEg+C,cAAe,IAChC7hB,oBAAkB,EAClBj1B,iBAAkBuzE,EALpB,SAMG,cAAG/9E,OAAH,IAAWmD,EAAX,EAAWA,cAAX,OACC,eAAC,KAAD,UACE,uBACE7a,UAAWO,IACTF,EAAQq6C,gBACRr6C,EAAQu6C,eAHZ,UAKE,eAAC,KAAD,CACEl4B,UAAWrL,GACXC,cAAe,EACf7X,MAAO,GACPqZ,YAAa,IACb3J,KAAI,gBACJoD,SAAU,SAAAxC,GACR+a,EAAS,CACPxiB,KAAM,SACN+zD,SAAUtsD,EAAMnO,OAAO6Q,QAEzBoI,EAAc9K,EAAMnO,OAAOoB,GAAI+M,EAAMnO,OAAO6Q,QAE9CzS,UAAWK,EAAQ24D,gBAErB,eAACh4D,GAAD,UAAQqjC,YAMlB,uBAAKrkC,UAAWK,EAAQg1F,SAAxB,WACItsF,KAAUq3D,KAAcr3D,IAAQq3D,IAChC,eAAC,GAAD,CACE3tD,MAAO6iF,EACP/iF,SAAU,SAACwB,EAAKH,GACdkX,EAAS,CAAExiB,KAAM,SAEnByP,eAAgB1X,EAAQ07D,WACxB/jD,eAAgB3X,EAAQg2E,MACxBljE,QAAS,CAAC,CAAEhV,QAAS,aAAcka,MAAM,MAG5Ci9E,GACC,eAAC,GAAD,CACE7hF,WAAS,EACTvD,MAAK,iBAAYgQ,GACjBlgB,UAAWK,EAAQ0wE,OACnB77D,kBAAmBnM,KAAU,QAC7BuK,UAAW,UACXH,QAASitD,EACT7tD,SAAU,SAACwB,EAAKH,GACdkX,EAAS,CAAExiB,KAAM,OAAQoS,KAAM9G,UAKtC8G,GACC,eAAC,GAAD,CACEo6B,KAAM,SAAAlhC,GAAE,OAAI+hF,EAAc,eAAGrtF,EAAOoS,EAAKrC,MAAhB,eAA2BqC,EAAKrC,KAAOzE,KAChE66B,SAAUkO,GAAOjiC,EAAKrC,MAAMo2B,SAC5BvsB,iBAAkBy6B,GAAOjiC,EAAKrC,MAAM6J,iBACpCzP,MAAOijF,EAASh7E,EAAKrC,MACrB0wB,YAAa74B,KAGfwK,GACA,uBAAK1a,UAAWK,EAAQuQ,OAAxB,UACGxI,GAAS,eAAC,GAAD,6BACV,eAACmb,GAAD,CACEvjB,UAAWK,EAAQyL,OACnBvC,QAAS,kBAAMosF,EAAc,eAAGrtF,EAAO+zD,KAFzC,SAGGnsD,WC3KP6vD,GAAe,SAAC/U,EAAQ1iD,GAAT,OACnBS,KAAS,SAAA6K,GAAE,OAFK,SAAAtL,GAAI,OAAIS,IAAS,QAAST,GAE3B03D,CAAU13D,EAAV03D,CAAgBpsD,IAHhB,SAAAo3C,GAAM,OAAIjiD,IAAUA,KAAWiiD,GAASjiD,IAAO,YAGxBk3D,CAASjV,EAATiV,CAAiBrsD,OACnDiiF,GAAmB9sF,KAAS,qBAAG+sF,cAE/B51B,GAAW,SAAC3qC,EAAgB0kC,EAAU3xD,EAAM0iD,GAChD,IAAMmV,EAAU01B,GAAiB91B,GAAa/U,EAAQ1iD,EAArBy3D,CAA2BxqC,IADD,EAKhCxsB,MAAY,YAAe,IAAZsP,EAAW,EAAXA,KAClCqjD,EAHK,SAAArjD,GAAI,OAAI4hD,GAAYA,EAAS5hD,GAGxB0L,CAAK1L,GACrB,OAAKskC,GAAOtkC,KAGLojD,EADyB9e,GAAOtkC,GAA/BojD,qBACmBC,GAASqB,YAAYrB,KALvB3yD,CAMxBo3D,GAXwD,mBAa3D,MAAO,CAAEttD,OAbkD,KAa1CutD,SAb0C,OAsH9CtjB,GAtGA,SAAC,GAQT,IAPL8f,EAOI,EAPJA,KACA3sD,EAMI,EANJA,QACAslB,EAKI,EALJA,eACA0kC,EAII,EAJJA,SACA51B,EAGI,EAHJA,aACAyQ,EAEI,EAFJA,KACA1sC,EACI,EADJA,MACI,EACiDiC,mBAAS,CAC5DiW,KAAM,EACNgU,OAAQ,CAAEhjB,QAAQ,GAClBykF,eAAgB,KAJd,0BACKz1E,EADL,EACKA,KAAMgU,EADX,EACWA,OAAQyhE,EADnB,EACmBA,eAAkB/4C,EADrC,KAOEr5C,EAAK,iBAAai5D,EAAKz+D,SACvB8+C,EAzCU,IAyCG38B,EAEbmgD,EAAU,CAAE5tD,OAAQktD,GAAanD,EAAKvkD,KAAM,SAAxB0nD,CAAkCxqC,IACtDF,EAAU6qC,GAAS3qC,EAAgB0kC,EAAU,SAAU2C,EAAKvkD,MAC5DkoD,EAAYL,GAAS3qC,EAAgB0kC,EAAU,WAAY2C,EAAKvkD,MAChE29E,EAAY91B,GAAS3qC,EAAgB0kC,EAAU,WAAY2C,EAAKvkD,MAIhEwgC,EAAU,yCAAG,WAAOo9C,EAAYC,GAAnB,sBAAArnE,EAAA,yDACXwuB,EAAYt0C,KAAQurB,EAAQ2hE,GAC5BE,EAAcD,EAChBntF,KAAQgtF,EAAgBG,GACxBH,GAEA94C,EANa,uBAOT4f,EAAoB9zD,KACxBA,KAAOmhD,SAAUyP,kBAAkBiD,EAAKvkD,MAAMuhD,QAE1Cw8B,EAVS,2BAWV/4C,GAXU,IAYb6b,YAAa2D,IAZA,kBAcR/nB,EAAKrgB,GAAYmoC,EAAKvkD,KAAM+9E,GAAeD,IAdnC,OAiBjBn5C,EAAS,CACP18B,KAAMA,EAAO,EACbgU,OAAQ+oB,EACR04C,eAAgBI,IApBD,2CAAH,wDAgDhB,OACE,gBAAC,GAAD,CACExyF,MAAgB,IAAT2c,EAAa,KAAO3c,EAC3BgM,YAAaM,EACbxQ,MArGc,IAsGduP,MAAM,EAJR,UAKY,IAATsR,GACC,eAAC,GAAD,CACEjI,KAAMukD,EAAKvkD,KACXlJ,KAAMytD,EAAKz+D,QACX06C,WAAY,kBAAMA,OAGZ,IAATv4B,GACC,eAAC,GAAD,yBACEA,KAAMA,EACNs8C,KAAMA,EAAKz+D,QACXkmC,aAAcA,EACdj8B,MAAOA,EACP8zC,SAAUe,GA3CE,WAClB,OAAQ38B,GACN,KAAK,EACH,OAAO,aAAEhY,KAAM,UAAam4D,GAC9B,KAAK,EACH,OAAO,aAAEn4D,KAAM,UAAa+sB,GAC9B,KAAK,EACH,OAAO,aAAE/sB,KAAM,YAAei4D,GAChC,KAAK,EACH,OAAO,aACLj4D,KAAM,WACN6G,KAAM,sBACNwtC,OAAQx6B,OAAaC,MAAM,CACzB42C,cAAe72C,OAAaE,cAE3B2zE,GAEP,KAAK,EACH,OAAO,aAAE1tF,KAAM,gBAAiB6G,KAAM,gBAAmB6mF,GAC3D,QACE,OAAO,MAwBDK,IANN,IAOEx9C,WAAYA,EACZ68C,SAxES,SAAAr9E,GAAI,OAAItP,KAAOA,IAAS,OAAQsP,GAAxBtP,CAA+BkxD,WClCpDt6D,GAAYC,YC1BH,CACb02F,aAAc,CACZzxF,UAAW,OACXC,WAAY,OACZoB,aAAc,QAEhBqwF,UAAW,CACTzxF,WAAY,UDqBViwB,GAAWtrB,IAAH,2aAiCRsY,GAActY,IAAH,4GAMX+sF,GAA0B,SAAC,GAA2B,IAAzBxnF,EAAwB,EAAxBA,KAAMnF,EAAkB,EAAlBA,MAAOirC,EAAW,EAAXA,KACxCz0C,EAAUV,KAEhB,OACE,gBAAC,GAAD,CACEgE,MAAO,wBACPgM,YAAa9F,EACbpK,MAAO,IACPX,OAAQ,IACRkQ,KAAMA,EALR,UAME,eAACnO,GAAD,0RAMA,eAACA,GAAD,2JAIA,uBAAKb,UAAWK,EAAQi2F,aAAxB,UACE,eAAC,GAAD,CAAM/sF,QAASM,EAAOpN,MAAM,YAA5B,oBAGA,eAAC,GAAD,CAAMuD,UAAWK,EAAQk2F,UAAWhtF,QAASurC,EAAMr4C,MAAM,UAAzD,yBEzFOs+D,GFiGC,SAAC,GAA0B,IAAD,YAAjBvb,EAAiB,EAAvBrwC,KAAuB,EACZ9E,oBAAS,GADG,mBACjCq0C,EADiC,KACzBC,EADyB,OAEQt0C,mBAAS,MAFjB,mBAEjCosF,EAFiC,KAEfC,EAFe,OAGdrsF,mBAAS,MAHK,mBAGjCjC,EAHiC,KAG1B4tC,EAH0B,OAIM3rC,oBAAS,GAJf,mBAIjC2nE,EAJiC,KAIfC,EAJe,OAKU5nE,oBAAS,GALnB,mBAKjC6nE,EALiC,KAKbC,EALa,KAMhChoE,EAASF,YAAS8qB,IAAlB5qB,KANgC,EAOnBS,YAAYmX,GAAa,CAC5Ce,YAAa,kBAAM67B,GAAU,IAC7B5zC,eAAgB,iBAAM,CAAC,YACvBF,QAAS,SAAAzC,GAAK,OAAI4tC,EAAS5tC,MAHtBq3C,EAPiC,sBAaJp1C,mBAAS,MAbL,mBAajCssF,EAbiC,KAarBC,EAbqB,KAelCtiE,GAAa,OAAJnqB,QAAI,IAAJA,OAAA,EAAAA,EAAMmqB,SAAUD,GAAcmrB,EAAdnrB,CAA0BlqB,EAAKmqB,QACxDe,GAAc,OAAJlrB,QAAI,IAAJA,OAAA,EAAAA,EAAMmqB,SAAUD,GAAcR,GAAdQ,CAAkClqB,EAAKmqB,QAEjEiB,EAAc,OAAGprB,QAAH,IAAGA,OAAH,EAAGA,EAAMorB,eACvB0kC,EAAQ,iBAAG9vD,QAAH,IAAGA,OAAH,EAAGA,EAAM8vD,gBAAT,QAAqB,GAC7B3kC,EAAgB,iBAAGnrB,QAAH,IAAGA,OAAH,EAAGA,EAAMmrB,wBAAT,QAA6B,GAC7CynB,EAASzoB,IAAWvrB,KAAUurB,GAAUA,EAAS+jC,GACjDw+B,EAAe,UAAG95C,EAAOsC,iBAAV,QAAuB,GActCvK,EAAO,SAAAxgB,GAEX,OADAsiE,EAAc,MACPn3C,EAAW,CAAE7zC,UAAW,CAAE0oB,aAS7BwiE,EAAe,SAACrwE,EAAMmuC,EAAMhT,GAChC,IAAMgb,EAAO7zD,KAAa6rD,EAAMnuC,GAAM,GACtC,IAAKm2C,EAAM,OAAOhb,EAASgT,GAE3B,IAAM+c,EAAat9C,GAAcuoC,EAAdvoC,CAAoBgB,GACvC,IAAKsjC,GAAaoE,YAAY4U,GAG5B,OAFA+kB,GAAoB,kBAAM,kBAAM90C,EAASgT,YACzCjW,EAAUie,GAIZhb,EAASgT,IAaX,OACE,uCACE,eAAC,GAAD,CACE5lD,KAAM2nF,EACN9sF,MAAO,kBAAM+sF,EAAc,OAC3B9hD,KAAM,kBAAM6hD,GAAc7hD,EAAK6hD,MAEjC,eAAC,GAAD,CAAchzF,MAAM,YACpB,eAAC,GAAD,UACE,eAAC,GAAD,CACEA,MAAM,mBACNyE,MAAK,OAAEA,QAAF,IAAEA,OAAF,EAAEA,EAAOG,QACdssC,SAAO,EACP1lC,KAAK,SACLu/B,YAAU,EACV1zB,cAAe+hC,EACfjI,KA/DW,SAAAlhC,GACjB,IAAMypC,EAAY5oB,GAAY+qB,EAAZ/qB,CAAwB7gB,EAAGmpC,OAAO,IAEpD,OACEzoB,EAAO+P,cACPgZ,EAAUrX,sBAAwB1R,EAAO+P,aAElCuyD,EAAcv5C,GAEhBvI,EAAKuI,IAuDNn7B,iBAAkBg2C,GAClB/tD,KAAMpB,KAAKg0C,GACXtO,SAAUsmB,GAAW5qD,EAAM2sF,GAC3B3hD,WA9BiB,SAACvhC,EAAIs+B,GAAL,OAAiB+/B,EAAkB//B,IA+BpD7gC,aAAc6gE,MAGlB,eAAC,GAAD,UACE,eAAC,GAAD,CACE9pE,MAAK,OAAEA,QAAF,IAAEA,OAAF,EAAEA,EAAOG,QACd5E,MAAM,YACNkxC,SAAO,EACP1lC,KAAK,YACL0/B,cAAY,EACZH,YAAU,EACVsG,cAAY,EACZh6B,cAAe67C,GACf/hB,KAhEc,SAAAlhC,GACpB,IAAM0gB,EAASG,GAAY+qB,EAAZ/qB,CAAwB7gB,GAEvC,OADAoiC,EAAS,MACFyJ,EAAW,CAAE7zC,UAAW,CAAE0oB,aA8D3BpS,iBAAkBk2C,GAClBjuD,KAAI,OAAE0sF,QAAF,IAAEA,IAAmB,GACzBpoD,SAAU4Q,GAAUl1C,EAAM0sF,EAAiBC,GAC3C5hD,WAAYnsC,IAAUA,KAAWA,KAArBA,CAAA,iBACVoB,QADU,IACVA,OADU,EACVA,EAAMM,SAASgB,KAAI,SAAAuY,GAAC,OAAIA,EAAErY,mBADhB,QAC6B,GAD7B,iBAEVkrF,QAFU,IAEVA,OAFU,EAEVA,EAAiBprF,KAAI,SAAAw0C,GAAC,OAAIA,EAAEt3B,kBAFlB,QAE8B,IAE1CwsB,WAnDmB,SAACvhC,EAAIs+B,GAAL,OAAiBigC,EAAoBjgC,IAoDxD7gC,aAAc2gE,MAGjBtzB,GACC,eAAC,GAAD,CACEke,KAAM7zD,KAAOA,IAAS,OAAQ21C,GAAxB31C,CAAiCusB,GACvCrlB,QAAS,kBAAM0uC,GAAU,IACzB7J,KAzDW,SAAAlhC,GAAE,OACnBkhC,EAAKrgB,GAAYZ,GAAZY,CAAgC7gB,IAAK+Z,MAAK,SAAA/Z,GAG7C,OAFA6iF,IACAC,EAAoB,MACb9iF,MAsDHxL,MAAK,OAAEA,QAAF,IAAEA,OAAF,EAAEA,EAAOG,QACd+sB,iBAAkBA,EAClByhE,aAAY,OAAE5sF,QAAF,IAAEA,GAAF,UAAEA,EAAMmqB,cAAR,aAAE,EAAc2lC,SAC5BA,SAAUA,EACV1kC,eAAgBA,QG3KX11B,GApDA,CACbm3F,eAAgB,CACd74F,QAAS,OACT8H,cAAe,MACf/G,WAAY,SACZ,oBAAqB,CACnB4F,WAAY,GAEd,QAAS,CACPA,WAAY,GAEd,qBAAsB,CACpBA,WAAY,KAGhB4V,KAAM,CACJvc,QAAS,OACT8H,cAAe,SACfnH,OAAQ,OACR,oBAAqB,CACnB+F,UAAW,IAEb,QAAS,CACPqB,aAAc,KAGlB+wF,qBAAsB,CACpBx3F,MAAO,KAETy3F,oBAAqB,CACnB/4F,QAAS,OACT8H,cAAe,MACf/G,WAAY,UAEdi4F,cAAe,CACbh5F,QAAS,OACT8H,cAAe,MACf/G,WAAY,UAEdyqB,OAAQ,CACNxrB,QAAS,OACT8H,cAAe,MACf5H,OAAQ,CAAC,CAAC,OAAQ,EAAGpC,GAAY,KAEnC2U,OAAQ,CACNvS,OAAQ,CAAC,CAAC,OAAQ,EAAG,EAAG,UAE1B+J,MAAO,CACL3L,MAAO3B,KCnCL6E,GAAYC,YAAWC,IAEvBmb,GAAgB,CACpB0wC,SAAU,GACVF,SAAU,IAGNtpC,GAAmBC,OAAaC,MAAM,CAC1CspC,SAAUvpC,OAAaE,SAAS,2BAChCmpC,SAAUrpC,OACPE,SAAS,gCACT8O,IAAI,EAAG,8CACPxc,IAAI,IAAK,wDAGRuZ,GAAc,SAACC,EAAcC,EAAevC,GAChD,OAAKsC,GAAiBC,EAClBvC,EAAsB,wBACtBsC,EAAau9B,UAAYt9B,EAAcs9B,SAClCv9B,EAAau9B,SAClBv9B,EAAaq9B,UAAYp9B,EAAco9B,SAClCr9B,EAAaq9B,SACf,KANqC,MAwH/B4rC,GA/GiB,SAAC,GAO1B,IANL/nB,EAMI,EANJA,UACAC,EAKI,EALJA,aACAr/D,EAII,EAJJA,QACAonF,EAGI,EAHJA,cACAC,EAEI,EAFJA,YACAC,EACI,EADJA,UAEMl3F,EAAUV,KAYhB,OACE,qCACG0vE,GACC,eAAC,GAAD,CACE1rE,MAAM,mCACNo0C,sBAAsB,EACtBt4C,MAAO,IACPX,OAAQ,IACR6Q,YAAaM,EACbjB,MAAM,EANR,SAOE,eAAC,KAAD,CACEkU,gBAAgB,EAChBC,kBAAkB,EAClBnI,cAAeA,GACfkH,iBAAkBA,GAClBoB,SAAU,aAzBM,SAACooC,EAAUF,GACnC8rC,EAAY,CACV1rF,UAAW,CACTm6E,WAAYr6B,EACZF,SAAUld,SAASkd,MAGvB8jB,GAAa,GAmBHkoB,CADoC,EAAzB9rC,SAAyB,EAAfF,WALzB,SAQG,gBAAG5wC,EAAH,EAAGA,OAAQD,EAAX,EAAWA,QAAX,OACC,gBAAC,KAAD,CAAM3X,GAAG,2BAA2BhD,UAAWK,EAAQqa,KAAvD,UACE,sBAAK1a,UAAWK,EAAQ42F,qBAAxB,SACE,eAAC,KAAD,CACE9nF,KAAK,WACLe,MAAM,oBACNwS,UAAW1P,GACXS,WAAS,EACTN,QAASpK,KAAM,SAAA6K,GAAE,sBAAK,CACpByE,KAAMzE,EAAG5Q,GACT7E,QAAQ,GAAD,wBAAKyV,QAAL,IAAKA,GAAL,UAAKA,EAAIsmE,kBAAT,aAAK,EAAgBtuB,iBAArB,oBACH,OAAFh4C,QAAE,IAAFA,GAAA,UAAAA,EAAIsmE,kBAAJ,eAAgBtuB,aAAhB,OAA6Bh4C,QAA7B,IAA6BA,GAA7B,UAA6BA,EAAIsmE,kBAAjC,aAA6B,EAAgBruB,UAA7C,QADK,wBAIJj4C,QAJI,IAIJA,GAJI,UAIJA,EAAIsmE,kBAJA,aAIJ,EAAgBruB,gBAJZ,wBAI+Bj4C,EAAGqkE,MAJlC,QAFAlvE,CAOLwuF,GACJjkF,UAAU,UACVF,UAAU,WAGd,iCACE,uBAAKpT,UAAWK,EAAQ62F,oBAAxB,UACE,eAACx2F,GAAD,mCACA,gBAACw5C,GAAD,CAAkBz6C,MAAO,IAAzB,UACE,eAACoB,GAAD,oIAKA,eAACA,GAAD,iKAOJ,uBAAKb,UAAWK,EAAQ82F,cAAxB,UACE,eAAC,KAAD,CACEhoF,KAAK,WACLlD,KAAK,KACL4uD,aAAa,MACbp7D,MAAO,GACP+X,aAAc,EACdxX,UAAWK,EAAQo3F,mBACnB/0E,UAAWrL,KAEb,eAAClW,GAAD,CAAKjD,QAAM,EAAC8B,UAAWK,EAAQkuB,WAA/B,qBAKJ,uBAAKvuB,UAAWK,EAAQspB,OAAxB,UACGuE,GAAYtT,EAAQD,EAAS08E,IAC5B,eAAC,GAAD,UACGnpE,GAAYtT,EAAQD,EAAS08E,KAGlC,eAAC9zE,GAAD,CACEjb,KAAK,SACLoS,KAAK,2BACL1a,UAAWK,EAAQuQ,OAHrB,wCCvHZjR,GAAYC,YAAWC,IAEvB63F,GAA2BjuF,IAAH,gJAUxBkuF,GAAkBluF,IAAH,sKAQfmuF,GAAkBnuF,IAAH,4MAQf6mF,GAAgB7mF,IAAH,yGAyKJouF,GA/Ja,WAC1B,IAAMx3F,EAAUV,KADgB,EAGQ0K,oBAAS,GAHjB,mBAGzBuoC,EAHyB,KAGXC,EAHW,OAIMxoC,qBAJN,mBAIzBokE,EAJyB,KAIZC,EAJY,OAMArkE,mBAAS,IANT,mBAMzBojE,EANyB,KAMf8B,EANe,OAOEllE,oBAAS,GAPX,mBAOzBglE,EAPyB,KAOdC,EAPc,KAQ1BwoB,EAAc,kBAAMxoB,GAAcD,IARR,EAU6BplE,YAC3DytF,IADYK,EAVkB,EAUxB5tF,KAAiC6tF,EAVT,EAUA5tF,QAVA,EAayBH,YACvDqmF,IADYxK,EAbkB,EAaxB37E,KAA6BqhF,EAbL,EAaJphF,QAbI,EAiBmBQ,YACjDgtF,GACA,CACE7sF,eAAgB,iBAAM,CAAC,0BApBK,mBAiBzBktF,EAjByB,KAiBAZ,EAjBA,KAiBPjvF,MAOnBmjF,EAAc,SAAAvoF,GAClB,IAAMu0F,EAAYxuF,IAAO,CAAC,aAARA,CAAsB+8E,GACxC,OAAO/8E,KAAOA,IAAS,KAAM/F,GAAtB+F,CAA2BwuF,IA1BJ,EA6BP3sF,YAAY+sF,GAAiB,CACpD9sF,QAAS,YAAkB,IAAftC,EAAc,EAAdA,QAEVgnE,EADkB,OAAGhnE,QAAH,IAAGA,IAAW,6BAGlCua,YAAa,kBAAM+vB,GAAgB,IACnC9nC,eAAgB,iBAAM,CAAC,0BANlBmtF,EA7ByB,oBAsC1BzpD,EAAW,CACf,CACE/pC,OAAQ,iBACRjF,MAAO,IACPyS,UAAW,OACXjG,KAAM,KACNqnC,KAAM,SAAA5V,GACJ,IAAMguB,EAAW6/B,EAAY7tD,EAAEqoD,YAC/B,OACE,uBAAK/lF,UAAWK,EAAQ22F,eAAxB,UACE,eAAC,GAAD,IACA,gCAAOtrC,EAASusB,aAKxB,CACEvzE,OAAQ,OACRjF,MAAO,IACPyS,UAAW,OACXjG,KAAM,KACNqnC,KAAM,SAAA5V,GAAM,IAAD,IACHguB,EAAW6/B,EAAY7tD,EAAEqoD,YAC/B,OAAIh9E,IAAQ2iD,EAASwuB,YACZ,qCAAG,MAIV,yDAAMxuB,EAASwuB,WAAWtuB,iBAA1B,mBACEF,EAASwuB,WAAWtuB,WAAaF,EAASwuB,WAAWruB,SAArD,QADF,iBAIGH,EAASwuB,WAAWruB,gBAJvB,gBAQN,CACEnnD,OAAQ,gBACRjF,MAAO,IACPyS,UAAW,OACXjG,KAAM,KACNqnC,KAAM,SAAA5V,GAAC,OACL,uCACE,eAACv8B,GAAD,CAAKjD,QAAM,EAAX,SAAaw/B,EAAE8tB,WADjB,UAKJ,CACE9mD,OAAQ,SACRjF,MAAO,IACPyS,UAAW,SACXjG,KAAM,KACNqnC,KAAM,SAAA5V,GAAC,OACL,eAAC,GAAD,CACEn0B,QAAS,WACPspC,GAAgB,GAChB67B,EAAe,CAAE9iE,UAAW,CAAEusF,WAAYz6D,EAAE16B,OAHhD,SAKE,eAAC,GAAD,SAMFoH,EAAU4tF,GAAmBxM,EAEnC,OACE,wCACIphF,IAAYrB,KAAUgvF,EAAiBK,sBACvC,uCACE,eAAC5uE,GAAA,EAAD,CACEtjB,aAAc,EACdrB,WAAY,EACZ7E,UAAWK,EAAQg4F,WACnBl6F,QAAQ,OACRwG,eAAe,WALjB,SAME,eAAC,GAAD,CAAMlI,MAAM,UAAU8M,QAASuuF,EAA/B,4BAIF,eAAC,GAAD,CACErpD,SAAUA,EACVtkC,KAAMpB,IAAO,CAAC,uBAARA,CAAgCgvF,KAExC,eAAC,GAAD,CACE/oF,KAAM4jC,EACNzC,YAAa,WACX0C,GAAgB,GAChB08B,EAAY,OAEdr/B,YAAa,WACXq/B,EAAY,MACZ2oB,EAAezpB,IAEjB7sD,aAAc6rD,QAIlBrjE,GAAWrB,KAAUgvF,EAAiBK,sBACtC,gBAAC5uE,GAAA,EAAD,CAAKrrB,QAAQ,OAAOe,WAAW,OAAO+G,cAAc,SAApD,UACE,eAAC1E,GAAD,0FAIA,eAACgiB,GAAD,CAAQha,QAASuuF,EAAjB,wCAGJ,eAAC,GAAD,CACEzoB,UAAWA,EACXC,aAAcA,EACdr/D,QAAS,WACPq/D,GAAa,IAEf+nB,cAAeA,EACfC,YAAaW,EACbV,UAAWxuF,IAAO,CAAC,aAARA,CAAsB+8E,SC7J1BjmF,GA3CA,CACb8pB,OAAQ,CACNxrB,QAAS,OACT8H,cAAe,MACf5H,OAAQ,CAAC,CAAC,OAAQ,EAAGpC,GAAY,KAEnCq8F,YAAa,CACXzzF,UAAW,IAEb0zF,mBAAoB,CAClB1zF,UAAW,GACX1G,QAAS,OACT8H,cAAe,MACftB,eAAgB,cAElBwyF,cAAe,CACbh5F,QAAS,OACT8H,cAAe,MACf/G,WAAY,cAEdqvB,WAAY,CACV9xB,MAAOzC,EACP6C,WAAY3B,GACZ0B,SAAU,GACVkI,WAAY,EACZD,UAAW,IAEbwzF,WAAY,CACV54F,MAAO,KAET2I,MAAO,CACL3L,MAAO3B,IAET4f,KAAM,CACJvc,QAAS,OACT8H,cAAe,SACfnH,OAAQ,QAEV8R,OAAQ,CACNvS,OAAQ,CAAC,CAAC,OAAQ,EAAG,EAAG,WC/BtBsB,GAAYC,YAAWC,IAEvBmb,GAAgB,CACpB3C,KAAM,GACNmzC,SAAU,IAGNtpC,GAAmBC,OAAaC,MAAM,CAC1C/J,KAAM8J,OACHE,WACAqrD,OACA/4D,IAAI,IACP62C,SAAUrpC,OACPE,WACA8O,IAAI,GACJxc,IAAI,OAqFM6jF,GAlFS,SAAC,GAA+C,IAA7CnpB,EAA4C,EAA5CA,UAAWp/D,EAAiC,EAAjCA,QAASw9D,EAAwB,EAAxBA,SAAUgrB,EAAc,EAAdA,QACjDp4F,EAAUV,KAMhB,OACE,qCACG0vE,GACC,eAAC,GAAD,CACE1rE,MAAM,0BACNo0C,sBAAsB,EACtBt4C,MAAO,IACPX,OAAQ,IACR6Q,YAAaM,EACbjB,MAAM,EANR,SAOE,eAAC,KAAD,CACEkU,gBAAgB,EAChBC,kBAAkB,EAClBnI,cAAeA,GACfkH,iBAAkBA,GAClBoB,SAAU,aAnBE,SAACjL,EAAMmzC,GAC3BitC,EAAQ1vF,KAAUsP,GAAOi2B,SAASkd,IAmBxBktC,CADgC,EAArBrgF,KAAqB,EAAfmzC,WALrB,SAQE,gBAAC,KAAD,CAAMxoD,GAAG,aAAahD,UAAWK,EAAQqa,KAAzC,UACE,eAACha,GAAD,CAAIV,UAAWK,EAAQi4F,YAAvB,6BACA,eAAC,KAAD,CACEnpF,KAAK,OACLuE,WAAS,EACTzH,KAAK,KACL4uD,aAAa,MACbp7D,MAAO,IACP+zC,WAAY,CAAE19B,MAAO,CAAEgE,cAAe,cACtC4I,UAAWrQ,KAEb,uBAAKrS,UAAWK,EAAQk4F,mBAAxB,UACE,eAAC73F,GAAD,CAAIV,UAAWK,EAAQs4F,YAAvB,kCACA,gBAACz+C,GAAD,CAAkBz6C,MAAO,IAAzB,UACE,eAACoB,GAAD,oIAKA,eAACA,GAAD,iKAOJ,uBAAKb,UAAWK,EAAQ82F,cAAxB,UACE,eAAC,KAAD,CACEhoF,KAAK,WACLlD,KAAK,KACL4uD,aAAa,MACbp7D,MAAO,GACP+X,aAAc,EACdxX,UAAWK,EAAQo3F,mBACnB/0E,UAAWrL,KAEb,eAAClW,GAAD,CAAKjD,QAAM,EAAC8B,UAAWK,EAAQkuB,WAA/B,kBAIF,uBAAKvuB,UAAWK,EAAQspB,OAAxB,UACG8jD,GAAY,eAAC,GAAD,UAAeA,IAC5B,eAAClqD,GAAD,CACEjb,KAAK,SACLoS,KAAK,aACL1a,UAAWK,EAAQuQ,OAHrB,mCCrFVjR,GAAYC,YAAWC,IAGvB+4F,GAAoB,iBAEpBC,GAAkBpvF,IAAH,wHAUfqvF,GAAcrvF,IAAH,wIAQXsvF,GAActvF,IAAH,wMAkJFuvF,GAxII,WACjB,IAAM34F,EAAUV,KADO,EAGiB0K,oBAAS,GAH1B,mBAGhBuoC,EAHgB,KAGFC,EAHE,OAIexoC,qBAJf,mBAIhBokE,EAJgB,KAIHC,EAJG,OAMWrkE,oBAAS,GANpB,mBAMhBglE,EANgB,KAMLC,EANK,OAOSjlE,mBAAS,MAPlB,mBAOhBojE,EAPgB,KAON8B,EAPM,KAQjBuoB,EAAc,kBAAMxoB,GAAcD,IARjB,EAUiBplE,YAAS4uF,IAAnCI,EAVS,EAUf9uF,KAAoBC,EAVL,EAUKA,QAVL,EAYFQ,YAAYkuF,GAAa,CAC5CjuF,QAAS,YAAkB,IAAftC,EAAc,EAAdA,QAEVgnE,EADkB,OAAGhnE,QAAH,IAAGA,IAAW,6BAGlCua,YAAa,kBAAM+vB,GAAgB,IACnC9nC,eAAgB,iBAAM,CAAC,iBANlBmuF,EAZgB,sBAqBFtuF,YAAYmuF,GAAa,CAC5ChuF,eAAgB,iBAAM,CAAC,iBADlBouF,EArBgB,oBA8CjB1qD,EAAW,CACf,CACE/pC,OAAQ,OACRjF,MAAO,IACPyS,UAAW,OACXjG,KAAM,KACNqnC,KAAM,SAAA5V,GAAC,OAAIA,EAAErlB,OAEf,CACE3T,OAAQ,WACRjF,MAAO,IACPyS,UAAW,OACXjG,KAAM,KACNqnC,KAAM,SAAA5V,GAAC,OACL,uCACE,eAACv8B,GAAD,CAAKjD,QAAM,EAAX,SAAaw/B,EAAE8tB,WADjB,yBAKJ,CACE9mD,OAAQ,SACRjF,MAAO,IACPyS,UAAW,SACXjG,KAAM,KACNqnC,KAAM,SAAA5V,GAAC,OACL,eAAC,GAAD,CACEn0B,QAAS,WACPspC,GAAgB,GAChB67B,EAAe,CAAE9iE,UAAW,CAAEwtF,OAAQ17D,EAAE16B,OAH5C,SAKE,eAAC,GAAD,SAMR,OACE,wCACIoH,IAAYrB,KAAUkwF,EAAaI,aACnC,eAAC7vE,GAAA,EAAD,CACEtjB,aAAc,EACdrB,WAAY,EACZ7E,UAAWK,EAAQg4F,WACnBl6F,QAAQ,OACRwG,eAAe,WALjB,SAME,eAAC,GAAD,CAAMlI,MAAM,UAAU8M,QAASuuF,EAA/B,6BAKF1tF,IAAYrB,KAAUkwF,EAAaI,aACnC,uCACE,eAAC,GAAD,CACE5qD,SAAUA,EACVtkC,KAAMpB,IAAO,CAAC,cAARA,CAAuBkwF,KAE/B,eAAC,GAAD,CACEjqF,KAAM4jC,EACNzC,YAAa,WACX0C,GAAgB,GAChB08B,EAAY,OAEdr/B,YAAa,WACXq/B,EAAY,MACZ2pB,EAAWzqB,IAEb7sD,aAAc6rD,QAIlBrjE,GAAWrB,KAAUkwF,EAAaI,aAClC,gBAAC7vE,GAAA,EAAD,CAAKrrB,QAAQ,OAAOe,WAAW,OAAO+G,cAAc,SAApD,UACE,eAAC1E,GAAD,0EAGA,eAACgiB,GAAD,CAAQha,QAASuuF,EAAjB,yBAGJ,eAAC,GAAD,CACEzoB,UAAWA,EACXp/D,QAAS,WACPs/D,EAAY,MACZD,GAAa,IAEf7B,SAAUA,EACVgrB,QA1GU,SAACpgF,EAAMmzC,GACrB+jB,EAAY,MACZ4pB,EAAW,CACTvtF,UAAW,CAAEyM,KAAMA,EAAMmzC,SAAUA,KAElC79B,MAAK,SAAAC,GACJ,IAAKA,EAAIhT,OAAQ,OAAO00D,GAAa,GAErC,IAAMgqB,EAAqBvwF,MAAM,SAAA6K,GAAE,OACjC7K,IAAW,YAAX,OAAwB6K,QAAxB,IAAwBA,OAAxB,EAAwBA,EAAIrL,WADHQ,CAEzB6kB,EAAIhT,QAGN20D,EADY+pB,EApEQ,+CAoEmCV,OAGxD9qE,OAAM,SAAAC,GACLwhD,EAAYqpB,IACZ9tF,QAAQkY,IAAI+K,aC1FpB,SAAS,KAA2Q,OAA9P,GAAWrsB,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,UACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,IAAK,CACvCP,GAAI,gDACJK,UAAW,sCACXJ,OAAQ,UACRC,YAAa,GACC,gBAAoB,IAAK,CACvCF,GAAI,sBACJK,UAAW,8HACG,gBAAoB,WAAY,CAC9CL,GAAI,SACJyE,OAAQ,uDACO,gBAAoB,OAAQ,CAC3CJ,GAAI,WACJC,GAAI,WACJC,GAAI,WACJC,GAAI,WACJxE,GAAI,cAGN,SAASu2F,GAAgB91F,EAAMC,GAC7B,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,QAAkBqP,IAAV9L,EAAmC,gBAAoB,QAAS,CACzEX,GAAIY,GACH,uBAAyBD,EAAqB,gBAAoB,QAAS,CAC5EX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB41F,I,IAChC,I,wFC1Df,SAAS,KAA2Q,OAA9P,GAAW73F,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,UACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,gDACJK,UAAW,sCACG,gBAAoB,IAAK,CACvCL,GAAI,2BACJK,UAAW,4HACG,gBAAoB,IAAK,CACvCL,GAAI,wBACJmE,cAAe,QACf5D,eAAgB,SACF,gBAAoB,IAAK,CACvCF,UAAW,gCACXL,GAAI,SACU,gBAAoB,IAAK,KAAmB,gBAAoB,WAAY,CAC1FA,GAAI,SACJC,OAAQ,UACRC,YAAa,EACbuE,OAAQ,6DACO,gBAAoB,OAAQ,CAC3CJ,GAAI,WACJC,GAAI,IACJC,GAAI,WACJC,GAAI,IACJxE,GAAI,SACJC,OAAQ,UACRC,YAAa,UAGf,SAASs2F,GAAe/1F,EAAMC,GAC5B,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB61F,IAChC,IC/Df,SAAS,KAA2Q,OAA9P,GAAW93F,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,UACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,gDACJK,UAAW,sCACG,gBAAoB,IAAK,CACvCL,GAAI,2BACJK,UAAW,2HACG,gBAAoB,IAAK,CACvCL,GAAI,wBACJmE,cAAe,QACf5D,eAAgB,SACF,gBAAoB,IAAK,CACvCF,UAAW,gCACXL,GAAI,SACU,gBAAoB,IAAK,KAAmB,gBAAoB,WAAY,CAC1FA,GAAI,SACJC,OAAQ,UACRC,YAAa,EACbuE,OAAQ,6DACO,gBAAoB,OAAQ,CAC3CJ,GAAI,WACJC,GAAI,IACJC,GAAI,WACJC,GAAI,IACJxE,GAAI,SACJC,OAAQ,UACRC,YAAa,UAGf,SAASu2F,GAAoBh2F,EAAMC,GACjC,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,I,YAAI,GAA0B,aAAiB81F,IChDzC55F,IDiDS,ICjDA,CACbqM,QAAS,CACPpN,OAAQ,GACRX,QAAS,OACTe,WAAY,SACZyF,eAAgB,SAChBQ,SAAU,WACVuH,SAAU,UAEZZ,OAAQ,CACN/M,QAAS,OACTpC,OAbegC,GAAXb,OAcJe,OAAQ,OACRD,OAAQ,UACRxE,gBAAiB,cACjBqC,MAAOzC,EACP+L,OAAQ,GAEV8/D,WAAY,CACVvgE,KAAM,OAERwgE,WAAY,CACVthE,MAAO,OAET63D,SAAU,CACR58D,MAAO,GACPX,OAAQ,GACRX,QAAS,OACTe,WAAY,SACZyF,eAAgB,SAChBvK,gBAAiBd,EACjB0F,aAAc,MACdmG,SAAU,WACVY,OAAQ,GAEV2zF,QAAS,CACPv0F,SAAU,WACV1F,MAAO,OACPX,OAAQ,OACRiH,OAAQ,EACR3L,gBAAiBb,GAEnB6e,SAAU,CACR3b,MAAOlC,GACPqE,OAAQ,aAINe,GAAYC,YAAWC,IAuCd85F,GArCF,SAAC,GAOP,IAAD,MANJC,EAMI,EANJA,aACAC,EAKI,EALJA,aACAC,EAII,EAJJA,UACAC,EAGI,EAHJA,WACA55F,EAEI,EAFJA,SAGME,GADF,mFACYV,MACV08D,EAAWu9B,GAAgBC,EAE3BG,GAAY,mBACf35F,EAAQq5F,QAAUI,KAAeF,GAAgBC,IADlC,cAEfx5F,EAAQwlE,WAAa+zB,IAAiBC,GAFvB,cAGfx5F,EAAQylE,WAAa+zB,IAAiBD,GAHvB,GAMZK,GAAoB,mBACvB55F,EAAQ6L,SAAU,GADK,cAEvB7L,EAAQg8D,SAAWA,GAFI,GAKpB69B,GAAa,mBAChB75F,EAAQyL,QAAS,GADD,cAEhBzL,EAAQ+X,SAAW2hF,GAFH,GAKnB,OACE,uBAAK/5F,UAAWK,EAAQ6L,QAAxB,UACE,sBAAKlM,UAAWO,IAAWy5F,KAC3B,sBAAKh6F,UAAWO,IAAW05F,GAA3B,SACE,yBAAQj6F,UAAWO,IAAW25F,GAA9B,SAA+C/5F,UCpEjDN,GAAS,CACbqM,QAAS,CACP/N,QAAS,OACT8H,cAAe,SACf/G,WAAY,UAEd4M,OAAQ,CACN/M,QAAS,QAEXo7F,OAAQ,CACNx9F,OAZkBgC,GAAdxB,EAaJgB,QAAS,OACTwG,eAAgB,gBAChBzF,WAAY,SACZO,MAAO,OACPR,QAAS,CAAC,CAAC,GAAI,KACfxC,MAAOzC,EACP,WAAY,CACVmE,QAAS,OACTe,WAAY,SACZD,QAAS,EACTJ,OAAQ,OACRzE,gBAAiBX,EACjBmF,OAAQ,UACRI,aAAc,MACdS,MAAO,GACPX,OAAQ,GACRqG,SAAU,WACVuH,SAAU,SACV,QAAS,CACPvH,SAAU,WACVG,KAAM,KAIZ2xB,MAAO,CACLE,eAAgB,WAChB13B,MAAO,OACPhD,MAAOzC,EACP,OAAQ,CACN,gBAAiB,CACf4d,YAAa,GAEf,eAAgB,CACdrY,aAAc,IAGlB,aAAc,CACZlB,OAAQ,EACRY,QAAS,CAAC,CAAC,EAAG,EAAG,EAAG,KAEtB,OAAQ,CACNtC,OAtDgBgC,GAAXZ,UA2DL4B,GAAYC,YAAWC,IAyHdu6F,GAvHE,SAAC,GAAkD,IAAhDC,EAA+C,EAA/CA,QAASC,EAAsC,EAAtCA,QAASC,EAA6B,EAA7BA,aAAiBn6F,EAAY,sDACPiK,mBAAS,IAAInB,MADN,mBAC1DsxF,EAD0D,KACnCC,EADmC,KAG3Dp6F,EAAUV,KAEV+6F,EAAWz6D,MAAMC,KAAKD,MAAM,IAAIx0B,KAAI,SAAC00B,EAAGt+B,GAAJ,OACxC64B,aAAO,QAASjS,aAAI,CAAE2X,KAAMv+B,GAAKw+B,aAAY,IAAIn3B,WAK7CyxF,EAAY,SAAAnzB,GAChB,IAAMozB,EAAY72D,aAAI,CAAEzD,OAAQ,GAAKknC,GAC/BqzB,EAAiB9xF,KAAQ,EAAGuhE,aAAOwwB,aAAatzB,KAASuzB,UACzDC,EAAgBjyF,KAAM,SAAAlH,GAAC,OAC3BkiC,aAAI,CAAE3D,KAAMv+B,GAAKo5F,aAAeL,MADZ7xF,CAEpB8xF,GAEIK,EAAiBnyF,KAAQ,EATb,SAAAy+D,GAAK,OAAI2zB,aAAe3zB,GASR4zB,CAAY5zB,IACxC6zB,EAAgBtyF,KAAM,SAAAlH,GAAC,OAAI4mB,aAAI,CAAE2X,KAAMv+B,GAAKi5F,aAAatzB,MAAzCz+D,CACpBmyF,GAGII,EAAY7yE,aAAI,CAAE6X,OAAQ,GAAKknC,GAC/B+zB,EAAiBxyF,KACrB,EACA,GAAKiyF,EAAcj5F,OAASs5F,EAAct5F,QAEtCy5F,EAAgBzyF,KAAM,SAAAlH,GAAC,OAAI4mB,aAAI,CAAE2X,KAAMv+B,GAAKi5F,aAAaQ,MAAzCvyF,CACpBwyF,GAGF,OAAOxyF,KAASA,KAASiyF,EAAeK,GAAgBG,IAGpDC,EAAS,SAACj0B,EAAOzqD,GAAR,OAAgB49E,EAAUnzB,GAAO/yD,MAAY,EAANsI,EAAU,EAAS,EAANA,IA2BnE,OACE,uBAAK/c,UAAWK,EAAQ6L,QAAxB,UACE,uBAAKlM,UAAWK,EAAQ85F,OAAxB,UACE,yBACEn6F,UAAWK,EAAQyL,OACnBvC,QAAS,kBA9BK,SAAAmyF,GACpB,IAAMC,EAAY53D,aAAI,CAAEzD,OAAQ,GAAKo7D,GAGnCjB,EAFGJ,EAGDuB,aAAYvB,EAASsB,IACnBE,aAAmBxB,EAASsB,GAAa,EACvCA,EACAnB,EAN+BmB,GA4BlBG,CAActB,IAF/B,SAGE,eAAC,GAAD,MAEF,0CACM9/D,aAAO,OAAQ8/D,GADrB,YAC+C9/D,aAC3C,OACA8/D,MAGJ,yBACEx6F,UAAWK,EAAQyL,OACnBvC,QAAS,kBA7BK,SAAAmyF,GACpB,IAAMJ,EAAY7yE,aAAI,CAAE6X,OAAQ,GAAKo7D,GAGnCjB,EAFGH,EAGDsB,aAAYtB,EAASgB,IACnBO,aAAmBP,EAAWhB,GAAW,EACvCgB,EACAd,EAN+Bc,GA2BlBS,CAAcvB,IAF/B,SAGE,eAAC,GAAD,SAGJ,yBAAOx6F,UAAWK,EAAQ42B,MAA1B,UACE,iCACE,8BACGyjE,EAASjvF,KAAI,SAAC67D,EAAKrlE,GAAN,OACZ,8BAAeqlE,GAANrlE,UAIf,iCACG8G,KAAQ,EAAG,GAAG0C,KAAI,SAACsR,EAAK9a,GAAN,OACjB,8BACGw5F,EAAOjB,EAAuBz9E,GAAKtR,KAAI,SAAC67D,EAAKrlE,GAAN,OACtC,qBAEEsH,QAAS,kBAAMgxF,EAAajzB,EAAK+yB,EAASC,IAF5C,SAGE,eAAC,GAAD,CACEP,WACGO,GAAW91D,aAAQ81D,EAAShzB,IAC5B+yB,GAAW71D,aAAQ8iC,EAAK+yB,GAE3BT,aAAcoC,aAAU57F,EAAM8/B,KAAMonC,GACpCuyB,aAAcmC,aAAU57F,EAAMymB,GAAIygD,GAClCwyB,UACEt1D,aAAQpkC,EAAM8/B,KAAMonC,IAAQ9iC,aAAQ8iC,EAAKlnE,EAAMymB,IARnD,SAUG6T,aAAO,IAAK4sC,MAZVrlE,OAHFA,eC/JftC,GAAYC,YAPH,CACbsM,QAAS,CACP9R,gBAAiB,QACjB4E,aAAc,MA2DHi9F,GArDS,SAAC,GAAoD,IAAlD5B,EAAiD,EAAjDA,QAASC,EAAwC,EAAxCA,QAASt6F,EAA+B,EAA/BA,UAAWk8F,EAAoB,EAApBA,cAAoB,EAClD7xF,mBAAS,MADyC,mBACnE61B,EADmE,KAC7Di8D,EAD6D,OAEtD9xF,mBAAS,MAF6C,mBAEnEwc,EAFmE,KAE/Du1E,EAF+D,KAI1ElxF,qBAAU,WACRgxF,EAAch8D,EAAMrZ,KACnB,CAACqZ,EAAMg8D,EAAer1E,IAEzB,IAAMxmB,EAAUV,KA8BhB,OACE,qCACE,sBAAKK,UAAWO,IAAWF,EAAQ6L,QAASlM,GAA5C,SACE,eAAC,GAAD,CACEkgC,KAAMA,EACNrZ,GAAIA,EACJwzE,QAASA,EACTC,QAASA,EACTC,aApCa,SAACjzB,EAAK+yB,EAASC,GAClC,KACGA,GAAW+B,aAAiB/B,EAAShzB,GAAO,GAC5C+yB,GAAWgC,aAAiB/0B,EAAK+yB,GAAW,GAI/C,OAAIn6D,IAASrZ,GAAMw1E,aAAiB/0B,EAAKpnC,GAAQ,GAC/Ck8D,EAAMl8D,QACNi8D,EAAQ70B,SAKRpnC,IACCrZ,IACA+0E,aAAY17D,EAAMonC,IAAQu0B,aAAmB37D,EAAMonC,GAAO,GAE3D80B,EACEE,aAAI,CAAEhjE,MAAO,GAAIG,QAAS,GAAIoK,QAAS,GAAI04D,aAAc,KAAOj1B,KAKpE60B,EAAQ70B,GACR80B,EAAM,gBCpCKt+F,GAAuBa,GAAvBb,OAAgBb,GAAO0B,GAAP1B,GAEzBu/F,GAAsB,CAC1BtwF,QAAS,CACPpN,OAAQ,GACRW,MAAO,IAET8E,UAAW,CACTpG,QAAS,QAEXs+F,sBAAuB,CACrBt+F,QAAS,OACT8H,cAAe,UAEjBiK,MAAO,CACLvT,OAAQmB,GACRtB,WAAY,KACZC,MAAOzC,GAET0iG,UAAW,CACT//F,OApBkCgC,GAA9BrB,MAqBJd,WAAY,EACZ4J,YAAa,GAEfu2F,UAAW,CACThgG,OAzBkCgC,GAAfZ,OA0BnBvB,WAAY,KACZC,MAAOzC,GAET4iG,QAAS,CACPjgG,OAAQmB,GACRtB,WAAY,KACZC,MAAO/B,KAILmiG,GAAyBj9F,YAAW48F,IAEpCM,GAAgB,SAAC,GAAkC,IAAhCjjE,EAA+B,EAA/BA,KAAM15B,EAAyB,EAAzBA,SACvBE,GADgD,mCACtCw8F,MAEhB,OACE,uBAAK78F,UAAWK,EAAQ6L,QAAxB,UACE,sBAAKlM,UAAWK,EAAQ6P,MAAxB,SAAgC/P,IAC/B05B,GACC,qCACE,uBAAK75B,UAAWK,EAAQkE,UAAxB,UACE,sBAAKvE,UAAWK,EAAQq8F,UAAxB,SAAoChiE,aAAO,IAAKb,KAChD,uBAAK75B,UAAWK,EAAQo8F,sBAAxB,UACE,uBAAMz8F,UAAWK,EAAQs8F,UAAzB,mBAAwCjiE,aACtC,MACAb,GAFF,YAGKa,aAAO,OAAQb,MACpB,uBAAM75B,UAAWK,EAAQu8F,QAAzB,SAAmCliE,aAAO,OAAQb,iBAS1Dh6B,GAAS,CACboP,eAAgB,CACdxP,MAAO,KAETs9F,cAAe,CACbpgG,OAAQM,GACRgC,QAAS,CAAC,CAAC,GAAI,GAAI,EAAG,MAExB+9F,sBAAuB,CACrB/9F,QAAS,CAAC,CAAC,EAAG,GAAI,EAAG,MAEvBg+F,aAAc,CACZ9+F,QAAS,OACTwG,eAAgB,gBAChBsB,cAAe,MACfxJ,MAAOzC,GAETkjG,uBAAwB,CACtB/+F,QAAS,QACTW,OAAQ,QAEVq+F,sBAAuB,CACrBh/F,QAAS,OACTW,OAAQ,GAEVs+F,SAAU,CACRn+F,QAAS,CAAC,CAAC,GAAI,MAEjBo+F,qBAAsB,CACpBl/F,QAAS,OACTwG,eAAgB,gBAChBzF,WAAY,SACZiG,SAAU,WACV/K,gBAAiBX,EACjBwF,QAAS,CAAC,CAAC,EAAG,KACd4hB,UAAW,IAEby8E,eAAgB,CACdn4F,SAAU,WACVG,KAAM,IACNF,IAAK,IAEP+H,MAAO,CACL9O,OAAQ,SAINsB,GAAYC,YAAWC,IACvB09F,GAAM,MACNC,GAAQ,QACRC,GAAW,WACXC,GAAa,aAiLJC,GA/Ke,SAAC,GAQxB,IAAD,EAPJxuF,EAOI,EAPJA,KACA84C,EAMI,EANJA,MACA21C,EAKI,EALJA,KACAj6F,EAII,EAJJA,MACAk6F,EAGI,EAHJA,QACAxjE,EAEI,EAFJA,SACAyjE,EACI,EADJA,WACI,EACsCzzF,mBAASkzF,IAD/C,mBACGQ,EADH,KACkBC,EADlB,OAEsD3zF,mBAASozF,IAF/D,mBAEGQ,EAFH,KAE0BC,EAF1B,OAIsB7zF,mBAAS,CAAE61B,KAAM,KAAMmsB,MAAO,OAJpD,mBAIGzuB,EAJH,KAIUugE,EAJV,OAK4B9zF,mBAAS,MALrC,mBAKGiF,EALH,KAKaC,EALb,OAMgB6b,YAAa68B,EAAO,CACtCnlC,YAAa,SAAA3Y,GAAI,OAAIi0F,EAAeP,EAAQ1zF,GAAOyzB,MAD9CygE,EANH,oBAUEh+F,EAAUV,KAEV2+F,GAAsB,mBACzBj+F,EAAQ68F,uBAAyBa,IAAkBP,IAD1B,cAEzBn9F,EAAQ88F,sBAAwBY,IAAkBR,IAFzB,GAgBtBgB,EAAoB3hE,uBACxB,SAACsD,EAAMmsB,GACL8xC,EAAS,CAAEj+D,OAAMmsB,YAEnB,CAAC8xC,IA8BGC,EAAiB,SAAC9xC,EAAM1uB,GAC5B,IAAM4gE,EAAiB,SAAA3kE,GACrB,OAAOU,GAAWV,EAAMQ,EAAU,qBAG9BokE,EAAO,IAAInxE,OAAOoxE,KAAK,CAACpyC,GAAO,CACnChkD,KAAM,6BAGRqkD,KAAUC,OACR6xC,EACAV,IAAkBR,GAAlB,UACOiB,EAAe,IAAIt1F,MAD1B,YACqCiG,EADrC,kBAEOqvF,EAAe5gE,EAAMsC,MAF5B,YAEqCs+D,EAC/B5gE,EAAMyuB,OAHZ,YAISl9C,EAJT,UAgBEwvF,EAAqB,CACzB,CAAExgG,QAAS,WAAYka,KAAMklF,IAC7B,CAAEp/F,QAAS,aAAcka,KAAMmlF,KAG3BoB,EAA6B,CACjC,CAAEzgG,QAAS,gBAAiBka,KAAMolF,IAClC,CAAEt/F,QAAS,kBAAmBka,KAAMqlF,KAGhC1uF,EAAOQ,QAAQF,GACftM,EAAKgM,EAAO,0BAAuBS,EAEzC,OACE,eAACG,EAAA,EAAD,CAAmBC,YAlBG,WACtBN,EAAY,OAiBZ,SACE,iCACE,eAAC,GAAD,CACEtP,KAAM4tD,GACN3tD,YAAa4tD,GACbvkD,QA3BsB,SAAAwG,GAC5BR,EAAYD,EAAW,KAAOS,EAAMC,gBA2B9BmyD,QAAQ,cAEV,eAAC,GAAD,CAAQn/D,GAAIA,EAAIgM,KAAMA,EAAMM,SAAUA,EAAUpB,UAAU,SAA1D,SACE,uBAAKlO,UAAWK,EAAQ4O,eAAxB,UACE,sBAAKjP,UAAWK,EAAQ08F,cAAxB,SAAwCp5F,IACxC,sBAAK3D,UAAWK,EAAQ28F,sBAAxB,SACE,eAAC,GAAD,CACE7tF,KAAK,cACLsD,MAAOsrF,EACP5qF,QAASwrF,EACT9/E,UAAU,cACVtM,SAvGa,SAAAwB,GACzB,IAAMgqF,EAAgBh1F,IAAO,CAAC,SAAU,SAAlBA,CAA4BgL,GAClDiqF,EAAiBD,GACbA,IAAkBR,IAAKY,EAAS,CAAEj+D,KAAM,KAAMmsB,MAAO,QAqG7CrsD,UAAWK,EAAQ48F,iBAGtBc,IAAkBP,IACjB,uBAAKx9F,UAAWO,IAAW+9F,GAA3B,UACE,sBAAKt+F,UAAWK,EAAQg9F,qBAAxB,SACGz/D,GACC,uCACE,eAAC,GAAD,CAAe/D,KAAM+D,EAAMsC,KAA3B,kBACA,sBAAKlgC,UAAWK,EAAQi9F,eAAxB,SACE,eAAC,GAAD,CAAOt9F,UAAWK,EAAQ8M,UAE5B,eAAC,GAAD,CAAe0sB,KAAM+D,EAAMyuB,MAA3B,qBAIN,eAAC,GAAD,CACEiuC,QAAS,IAAIpxF,KACbgzF,cAAeqC,OAIpBT,GACC,sBAAK99F,UAAWK,EAAQ28F,sBAAxB,SACE,eAAC,GAAD,CACE7tF,KAAK,qBACLsD,MAAOwrF,EACP9qF,QAASyrF,EACT//E,UAAU,qBACVtM,SA/HmB,SAAAwB,GACjC,IAAMkqF,EAAwBl1F,IAAO,CAAC,SAAU,SAAlBA,CAA4BgL,GAC1DmqF,EAAyBD,IA8HXj+F,UAAWK,EAAQ48F,iBAIzB,sBAAKj9F,UAAWK,EAAQ+8F,SAAxB,SACE,eAAC,GAAD,CAAM3gG,MAAM,UAAU8M,QAAS,kBAzHtB,SAACq0B,EAAOggE,GACvBG,IAAkBR,IACpBc,EAAU,CACRzyF,UAAU,2BACLgyF,GADI,IAEPE,WAAYG,IAA0BP,GACtCv5D,yBAAyB,MAK1BvG,GAAUA,EAAMsC,OACjBtC,EAAMsC,OAAStC,EAAMyuB,QAAOzuB,EAAMyuB,MAAQ,IAAInjD,MAE9C60F,IAAkBP,IACpBa,EAAU,CACRzyF,UAAU,2BACLgyF,GADI,IAEP19D,KAAMtC,EAAMsC,KACZmsB,MAAOzuB,EAAMyuB,MACbyxC,WAAYG,IAA0BP,GACtCv5D,yBAAyB,OAoGgB06D,CAAajhE,EAAOggE,IAAzD,mCCrRRj+F,GAAYC,YAAWC,IAEvBmiB,GAAevY,IAAH,2FAWZq1F,GAAuBr1F,IAAH,8SAkBpBs1F,GAAmBt1F,IAAH,sSAgBhBsrB,GAAWtrB,IAAH,kEAoGCu1F,GA9FF,WAAO,IAAD,IACX3+F,EAAUV,KADC,EAGe0K,mBAAS,MAHxB,mBAGVgyD,EAHU,KAGAC,EAHA,OAIqBjyD,mBAAS,MAJ9B,mBAIV40F,EAJU,KAIGC,EAJH,KAMXvzF,EAAQ,OAAG0wD,QAAH,IAAGA,OAAH,EAAGA,EAAU1wD,SANV,EAQ2C1B,YAC1D+X,IADYm9E,EARG,EAQTh1F,KAAgCi1F,EARvB,EAQch1F,QARd,EAYwCH,YAAS8qB,IAApD82C,EAZG,EAYT1hE,KAA+BymD,EAZtB,EAYaxmD,QACxBiwB,EAAWtxB,IAAO,CAAC,SAAU,mBAAoB8iE,GAbtC,EAeoC5hE,YACnD80F,GACA,CACEnzF,UAAW,CAAED,WAAUuH,MA5DL,KA6DlBmsF,MAAOhjC,EACPv5C,YAAa,kBAAMo8E,EAAe,OALxBI,EAfG,EAeTn1F,KAA6Bo1F,EAfpB,EAeWn1F,SAST,OAAf+0F,QAAe,IAAfA,GAAA,UAAAA,EAAiB10F,gBAAjB,eAA2B1I,UAAWs6D,GACxCC,EAAW,OAAC6iC,QAAD,IAACA,OAAD,EAACA,EAAiB10F,SAAS,IAGxC,IAIML,EAAUg1F,GAAmBxuC,GAAiB2uC,EAEpD,OACE,uCACE,sBAAKv/F,UAAWK,EAAQwoB,aAAxB,SACE,uBAAK7oB,UAAWK,EAAQyoB,yBAAxB,UACE,eAAC,GAAD,2BACCw2E,GACC,uBAAKt/F,UAAWK,EAAQukD,eAAxB,UACE,eAAC,GAAD,CACEjhD,MAAM,gBACNwL,KAAMktD,EAASltD,KACf84C,MAAO62C,GACPlB,KAAM,CAAEjyF,WAAU0uB,YAClBwjE,QAAS,SAAAvxC,GAAI,OAAIvjD,IAAO,CAAC,kBAARA,CAA2BujD,IAC5CjyB,SAAUA,IAEZ,eAACp5B,GAAD,UAAQg+F,YAKhB,uBAAKj/F,UAAWK,EAAQ6L,QAAxB,UACE,eAAC,GAAD,CACEgU,YAAa,SAAAtM,GAAE,OAAIA,EAAGzE,MACtBhF,MAAqB,OAAfg1F,QAAe,IAAfA,OAAA,EAAAA,EAAiB10F,WAAY,GACnC0V,WA9BW,SAAAvM,GACjB,OAAO7K,IAAO,CAAC,YAARA,CAAqBszD,KAAczoD,EAAGjI,UA8BvCpC,QAAS+yD,IAEX,uBAAKt8D,UAAWK,EAAQikD,aAAxB,UACE,gBAAC,GAAD,CAAOtkD,UAAWK,EAAQ42B,MAA1B,UACE,eAAC,GAAD,UACE,gBAAC,GAAD,CAAUvyB,QAAM,EAAhB,UACE,eAAC86F,GAAD,CAAax/F,UAAWK,EAAQkkD,WAAhC,kBACA,eAACi7C,GAAD,CAAax/F,UAAWK,EAAQmkD,YAAhC,mBACA,eAACg7C,GAAD,CAAax/F,UAAWK,EAAQokD,kBAGpC,eAAC,GAAD,UACG66C,GACCA,EAAaG,YAAYh0F,KAAI,SAACuX,EAAK/K,GAAN,OAC3B,gBAAC,GAAD,CAAoBhM,KAAK,KAAzB,UACE,eAAC,GAAD,UACGouB,GACCE,GAAWvX,EAAI08E,UAAWrlE,EAAU,sBAExC,eAAC,GAAD,UAAYrX,EAAI28E,WAChB,eAAC,GAAD,UAAY38E,EAAIza,YANH0P,WAWtB7N,GAAW,eAACzJ,GAAD,UAAK,gBACfyJ,KAAW,OAACk1F,QAAD,IAACA,GAAD,UAACA,EAAcG,mBAAf,aAAC,EAA2B19F,SACvC,eAACpB,GAAD,UAAK,iCCjKjB,SAAS,KAA2Q,OAA9P,GAAWe,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,4BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,IAAK,CACvCP,GAAI,UACJC,OAAQ,UACRC,YAAa,GACC,gBAAoB,OAAQ,CAC1CI,EAAG,iHACHN,GAAI,aACW,gBAAoB,WAAY,CAC/CA,GAAI,WACJyE,OAAQ,yBACO,gBAAoB,WAAY,CAC/CzE,GAAI,WACJyE,OAAQ,kBAGV,SAAS,GAAShE,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB,IAChC,ICpDf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,6BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,IAAK,CACvCP,GAAI,UACJC,OAAQ,UACRC,YAAa,GACC,gBAAoB,OAAQ,CAC1CI,EAAG,iHACHN,GAAI,aACW,gBAAoB,WAAY,CAC/CA,GAAI,WACJyE,OAAQ,yBACO,gBAAoB,WAAY,CAC/CzE,GAAI,WACJyE,OAAQ,kBAGV,SAAS,GAAUhE,EAAMC,GACvB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,I,eAAI,GAA0B,aAAiB,ICjDhC,IDkDA,IClDA,CACb8Y,QAAS,CACP3d,OAAQ,IAEV8gG,MAAO,CACLh6F,UAAW,OACX8G,SAAU,QAEZ2rF,WAAY,CACVl6F,QAAS,OACTe,WAAY,SACZkH,YAAa,GAEfy5F,aAAc,CACZpjG,MAAO/B,GACPmK,UAAW,GAEbi7F,aAAc,CACZrjG,MAAO/B,GACP2D,OAAQ,CAAC,CAAC,GAAI,GAAI,EAAG,MAEvB0hG,UAAW,CACT35F,YAAa,MCtBF,IACb45F,YAAa,CACXvjG,MAAOpD,EACPmN,UAAW,UAEby5F,cAAe,CACbxgG,MAAO,KACPmG,UAAW,GACXzH,QAAS,OACTwG,eAAgB,eAChBQ,SAAU,SAEZ+6F,gBAAiB,CACf/6F,SAAU,QACVrG,OAAQ,GACRwG,KAAM,EACNmI,OAAQ,EACRhO,MAAO,QACPrF,gBAAiB,QACjB+D,QAAS,OACTwG,eAAgB,eAChBF,UAAW,CAAC,CAAC,GAAI,EAAG,GAAI,EAAG,2BAE7B0L,KAAM,CACJhS,QAAS,QAEX4J,KAAM,CACJvB,UAAW,SACX1H,OAAQ,GACRW,MAAO,GACP2G,YAAa,GAEf+5F,UAAW,CACT35F,UAAW,SACXJ,YAAa,GAEfg6F,aAAc,CACZ55F,UAAW,WC3BT7G,GAAYC,YAAWC,IA+DdwgG,GA7Da,SAAC,GAMtB,IALL51F,EAKI,EALJA,SACA6pB,EAII,EAJJA,OACAgsE,EAGI,EAHJA,aACA7hD,EAEI,EAFJA,MAGMp+C,GADF,EADJkgG,UAEgB5gG,MACVi/C,EAAUtqB,GAAUD,GAAc,UAAdA,CAAyBC,GAC7CuqB,EAAqB,SAAA77C,GAAE,OAAIqxB,GAAcrxB,EAAdqxB,CAAkBuqB,IAiB7C4hD,EAAmBz3F,KAAMA,MAhBb,SAChB+vB,EADgB,GAGZ,IAAD,QADDolB,EACC,EADDA,UAAWC,EACV,EADUA,UAAWC,EACrB,EADqBA,UAAWC,EAChC,EADgCA,UAAWr7C,EAC3C,EAD2CA,GAExCy9F,EAAqB,UAAG5hD,EAAmB77C,GAAIk7C,iBAA1B,QAAuC,EAC5DwiD,EAAqB,UAAG7hD,EAAmB77C,GAAIm7C,iBAA1B,QAAuC,EAC5DwiD,EAAqB,UAAG9hD,EAAmB77C,GAAIo7C,iBAA1B,QAAuC,EAC5DwiD,EAAqB,UAAG/hD,EAAmB77C,GAAIq7C,iBAA1B,QAAuC,EAClE,MAAO,CACJvlB,EAAI,IAAMolB,EAAYuiD,EACtB3nE,EAAI,IAAMqlB,EAAYuiD,EACtB5nE,EAAI,IAAMslB,EAAYuiD,EACtB7nE,EAAI,IAAMulB,EAAYuiD,KAIwB,CAAC,EAAG,EAAG,EAAG,GAAIn2F,IAE3Do2F,EAAiB93F,KAAMA,KAAM,SAAA6K,GAAE,OAAIA,EAAG6nB,OAAf1yB,CAAqB01C,IAE5CzgC,EAAQ,IAAIgX,KAAUwrE,EAAmBK,GAAgB5qE,SAAS,GAExE,OACE,sBAAKj2B,UAAWK,EAAQ6/F,gBAAxB,SACE,uBAAKlgG,UAAWK,EAAQ4/F,cAAxB,UACE,eAACh/F,GAAD,CAAOjB,UAAWK,EAAQ2/F,YAA1B,kCACA,uBAAKhgG,UAAWK,EAAQ8P,KAAxB,UACE,eAAC,GAAD,CAAUnQ,UAAWK,EAAQ0H,OAC7B,eAAC/G,GAAD,CAAOhB,UAAWK,EAAQ8/F,UAA1B,sBACA,gBAACp/F,GAAD,CAAOf,UAAWK,EAAQ+/F,aAA1B,UACGvkF,GAAmBglF,GADtB,IACwCP,QAG1C,uBAAKtgG,UAAWK,EAAQ8P,KAAxB,UACE,eAAC,GAAD,CAAWnQ,UAAWK,EAAQ0H,OAC9B,eAAC/G,GAAD,CAAOhB,UAAWK,EAAQ8/F,UAA1B,uBACA,gBAACp/F,GAAD,CAAOf,UAAWK,EAAQ+/F,aAA1B,UACGvkF,GAAmB2kF,GADtB,IAC0CF,QAG5C,uBAAKtgG,UAAWK,EAAQ8P,KAAxB,UACE,eAACnP,GAAD,CAAOhB,UAAWK,EAAQ8/F,UAA1B,oBACA,gBAACp/F,GAAD,CAAOf,UAAWK,EAAQ+/F,aAA1B,UACGvkF,GAAmBmC,GADtB,IAC+BsiF,c,UClDnCQ,GAAcr3F,IAAH,2QA0BXsrB,GAAWtrB,IAAH,kEA0BR9J,GAAYC,YApBH,CACbmhG,cAAe,CACbj8F,WAAY,GAEdk8F,qBAAsB,CACpB7iG,QAAS,OACT8H,cAAe,MACf/G,WAAY,UAEd+hG,cAAe,CACb9iG,QAAS,OACT8H,cAAe,MACftB,eAAgB,mBA2MLu8F,GAjMQ,SAAC,GAA4B,IAA1Bz2F,EAAyB,EAAzBA,SAAUqT,EAAe,EAAfA,SAC5Bzd,EAAUV,KADiC,EAOMsK,YAAS62F,IAAlDK,EAPmC,EAOzCh3F,KAA4Bi3F,EAPa,EAOtBh3F,QAPsB,EAaIH,YAAS8qB,IAAhD47B,EAbmC,EAazCxmD,KAA2BymD,EAbc,EAavBxmD,QACpBiwB,EAAWtxB,IAAO,CAAC,SAAU,mBAAoB4nD,GAEjDvmD,EAAUg3F,GAAkBxwC,EAE5BywC,EAAUt4F,IAAO,CAAC,kBAARA,CAA2Bo4F,GAErCG,EAAqBv4F,MACzB,SAACw4F,EAAK1/F,GAAN,OACEkH,KACEA,KAAA,wBACmBlH,EADnB,WAEE,uCACE,eAAC,GAAD,IACA,wBAAM7B,UAAWK,EAAQ0gG,cAAzB,2BACiBl/F,EADjB,iBAKJkH,KAAA,wBACmBlH,EADnB,UAEE,uCACE,eAAC,GAAD,IACA,wBAAM7B,UAAWK,EAAQ0gG,cAAzB,2BACiBl/F,EADjB,kBAdNkH,CAmBEw4F,KACJ,CACE,iBACE,uCACE,eAAC,GAAD,IACA,uBAAMvhG,UAAWK,EAAQ0gG,cAAzB,kCAINh4F,KAAQ,EAAG,IAyBP0lC,EAAW,CACf,CACEt/B,KAAM,YACNzK,OAAQ,YACRjF,MAAO,IACPyS,UAAW,OACXohC,KAAM,SAAA1/B,GAAE,OACN,sBAAK5T,UAAWK,EAAQ2gG,qBAAxB,SACGM,EAAmB1tF,EAAGmtF,mBAI7B,CACE5xF,KAAM,UACNzK,OAAQ,UACRjF,MAAO,IACPyS,UAAW,OACXohC,KAAM,SAAA1/B,GACJ,OAAO7K,KAAOA,IAAS,KAAM6K,EAAGjI,UAAzB5C,CAAoC0B,GAAU0E,OAGzD,CACEA,KAAM,YACNzK,OAAQ,aACRjF,MAAO,IACPyS,UAAW,OACXoC,MAAO+C,GACPm8B,WAAY,CACVl8B,cAAe,GAEjBg8B,KAAM,SAAA1/B,GAAE,OACN7K,IAAQ6K,EAAG4tF,iBAAmB5tF,EAAG6qC,MAAM18C,OAAS6R,EAAG4tF,kBAEvD,CACEryF,KAAM,QACNzK,OAAQ,QACRjF,MAAO,IACPyS,UAAW,QACXohC,KAAM,SAAA1/B,GAAE,OACN,kCACG7K,KAAMA,KAAM,SAAA0/D,GAAC,OAAI1/D,IAAO,OAAQ0/D,KAAI70D,EAAG6qC,QAD1C,IACoD3gC,OAIxD,CACE3O,KAAM,OACNzK,OAAQ,OACRjF,MAAO,IACPyS,UAAW,QACXohC,KAAM,SAAA1/B,GAAE,OAAI2mB,GAAW3mB,EAAGlL,QAAS2xB,EAAU,gBAE/C,CACElrB,KAAM,OACNzK,OAAQ,aACRjF,MAAO,IACPyS,UAAW,QACXohC,KAAM,SAAA1/B,GAAE,OAAI2mB,GAAW3mB,EAAGlL,QAAS2xB,EAAU,YAmDjD,OACE,eAAC,GAAD,CACEjwB,QAASA,EACT+E,KAAK,iBACLs/B,SAAUA,EACVtkC,KAAMk3F,EACNnyC,UAAU,gCCvOVvvD,GAAYC,YAAWC,IAEvB89C,GAA4B,CAChCC,EAAG,CACDj1B,QAAS,IACTlM,QAAS,IACTohC,SAAU,IACVC,cAAe,GACflP,UAAW,IAEbmP,EAAG,CACDp1B,QAAS,IACTlM,QAAS,IACTohC,SAAU,IACVC,cAAe,GACflP,UAAW,IAEboP,EAAG,CACDr1B,QAAS,IACTlM,QAAS,IACTohC,SAAU,IACVC,cAAe,GACflP,UAAW,KAITqP,GAAmB97B,OAAaC,MAAM,CAC1CjT,KAAMgT,OAAaE,WACnB5F,QAAS0F,OACNjS,MAAM,YACNmS,WACAo7B,UACAtsB,IAAI,GACJxc,IAAI,KACPupC,UAAW/7B,OACRjS,MAAM,cACNmS,WACAo7B,UACAtsB,IAAI,GACJxc,IAAI,KACPwpC,UAAWh8B,OACRjS,MAAM,cACNmS,WACAo7B,UACAtsB,IAAI,GACJxc,IAAI,KACPypC,UAAWj8B,OACRjS,MAAM,cACNmS,WACAo7B,UACAtsB,IAAI,GACJxc,IAAI,KACP0pC,UAAWl8B,OACRjS,MAAM,cACNmS,WACAo7B,UACAtsB,IAAI,GACJxc,IAAI,OAGH8sF,GAA0Bh4F,IAAH,+VAsBvBsY,GAActY,IAAH,4GAMX60C,GAAqB70C,IAAH,wiBAqTTi4F,GAxRO,WAAO,IAAD,cACpBrhG,EAAUV,KADU,EAEY0K,oBAAS,GAFrB,mBAEnBs3F,EAFmB,KAENC,EAFM,OAGgBv3F,mBAAS,MAHzB,mBAGnBw3F,EAHmB,KAGJC,EAHI,OAIgBz3F,mBAAS,MAJzB,mBAInB0zF,EAJmB,KAIJC,EAJI,OAMa/zF,YAASw3F,GAAyB,CACvE71F,UAAW,CACT4lD,YAAa,CACXC,MAAO,WAHLtnD,EANkB,EAMlBA,KAAe43F,EANG,EAMZ33F,QANY,EAaEC,oBAAS,GAbX,mBAanBq0C,EAbmB,KAaXC,EAbW,OAcQt0C,mBAAS,IAdjB,mBAcnB23F,EAdmB,KAcRC,EAdQ,KAgBpBx3F,EAAQ,UAAG1B,IAAO,CAAC,YAARA,CAAqBoB,UAAxB,QAAiC,GACzCmqB,EAAM,UAAGvrB,IAAO,CAAC,UAARA,CAAmBoB,UAAtB,QAA+B,GACrCu/B,EAA4BrV,GAAc,gBAAiBC,GAlBvC,EAmBY1pB,YAAY0zC,GAAoB,CACpEvzC,eAAgB,iBAAM,CAAC,cApBC,mBAmBnBi0C,EAnBmB,KAmBC52C,EAnBD,KAmBCA,MAnBD,EAsBLwC,YAAYmX,GAAa,CAC5Ce,YAAa,kBAAMg/E,GAAiB,IACpC/2F,eAAgB,iBAAM,CAAC,cAFlB00C,EAtBmB,oBA2BpBhB,EAAQ11C,MAAU,SAAA8nE,GAAI,OAAIA,EAAKllE,WAAvB5C,CAAA,UAAiCA,IAAO,CAAC,SAARA,CAAkBoB,UAAnD,QAA4D,IACpEo2F,EAAYx3F,KAChBA,IAAMA,IAAO,YAAbA,CAAA,UAA0BA,IAAO,CAAC,SAARA,CAAkBoB,UAA5C,QAAqD,KAEjDy0C,GAAc,OAAJz0C,QAAI,IAAJA,OAAA,EAAAA,EAAMmqB,SAAUD,GAAc,UAAdA,CAAyBlqB,EAAKmqB,QACxDyoB,GAAa,OAAJ5yC,QAAI,IAAJA,OAAA,EAAAA,EAAMmqB,SAAUD,GAAc,SAAdA,CAAwBlqB,EAAKmqB,QACtD+P,EAAY,OAAG0Y,QAAH,IAAGA,OAAH,EAAGA,EAAQ1Y,aACvB4F,GAAuBv1B,KAAKC,IAAL,MAAAD,KAAI,YAC5B3L,KAAM,SAAA6K,GAAE,OAAIA,EAAGs2B,oBAAmBz/B,IADN,QAE/B,KAGIo0C,GAAqB,SAAA77C,GAAE,OAAIqxB,GAAcrxB,EAAdqxB,CAAkBuqB,IAc7CkhD,IACA,OAAJ31F,QAAI,IAAJA,OAAA,EAAAA,EAAMmqB,SAAUD,GAAc,SAAdA,CAAwBlqB,EAAKmqB,QAAQwrE,aAOjDoC,GAAoB,SAAAnC,GACpBA,KANmB,SAAA5vB,GACvB,IAAM77C,EAASG,GAAY,SAAZA,CAAsB07C,GAC9B1wB,EAAW,CAAE7zC,UAAW,CAAE0oB,YAK/B6tE,CAAiB,CAAErC,aAAcC,IACjC+B,GAAiB,KAIfnD,GAAqB,CACzB,CAAExgG,QAAS,YAAaka,KpQjNV,aoQkNd,CAAEla,QAAS,SAAUka,KAAM8/B,KAGvBiqD,GAAqB,SAAAruF,GACzB,IAAMgqF,EAAgBh1F,IAAO,CAAC,SAAU,SAAlBA,CAA4BgL,GAClDiqF,EAAiBD,IAGbtvD,GAAW,CACf,CACEt/B,KAAM,OACNzK,OAAQ,UACRjF,MAAK,UAAEk+C,GAA0B1T,WAA5B,aAAE,EAAiDthB,QACxD2qB,KAAM,SAAAnkC,GAAI,OAAI,qCAAGA,KACjBmF,MAAO,gBAAmBnF,EAAnB,EAAGsL,MAAShI,MAAZ,OAAgC,qCAAGtD,MAE5C,CACEA,KAAM,UACNzK,OAAQ,WACRjF,MAAK,UAAEk+C,GAA0B1T,WAA5B,aAAE,EAAiDxtB,QACxD62B,KAAM,SAAC7gC,EAAD,SAAUzP,EAAV,EAAUA,GAAV,OACJ,eAAC,GAAD,CACE8a,SAAU,CAAEzF,KAAMgsB,GAClBtmB,MAAOtL,EACPuL,MAAOjV,KAAMA,KAAM,SAAA6K,GAAE,OAAIA,EAAG6nB,OAAf,UAAqBgjB,EAAMz7C,UAA3B,QAAkC,QAGnDsR,MAAO+C,GACPm8B,WAAY,CACVl8B,cAAe,KA2DrB,OAtDAvO,KACEA,KAAKA,KAAMkhC,KACX,SAAAr2B,GAAO,IAAD,IA6BJ,OA5BA66B,GAAStmB,KAAK,CACZhZ,KAAK,WAAD,OAAayE,GACjBlP,OAAO,YAAD,OAAckP,GACpBnU,MAAK,UAAEk+C,GAA0B1T,WAA5B,aAAE,EAAiD4T,SACxDkB,QAAQ,EACRnT,aAAc,WACd0H,KAAM,SAAC7gC,EAAD,WAAUzP,EAAV,EAAUA,GAAV,OACJ,eAAC,GAAD,CACEhD,UAAWK,EAAQoc,QACnB0B,aAAY,UAAE0gC,GAAmB77C,UAArB,aAAE,oBAAoC4Q,IAClDkK,SAAU,CAAEzF,KAAMgsB,GAClBtmB,MAAOtL,EACPhT,MAAK,UACHk+C,GAA0B1T,WADvB,aACH,EAAiD6T,cAEnDz/B,UACEqrB,EAA0B,4BAAD,OAA6B91B,OAI5Dy/B,SAAU,gBAAGnJ,EAAH,EAAGA,kBAAH,OAA2Bt2B,EAAKs2B,GAC1C51B,MAAOkK,GACPg1B,WAAY,CACVl8B,cAAe,EACf7X,MAAK,UAAEk+C,GAA0B1T,WAA5B,aAAE,EAAiD6T,cACxDr/B,eAAgBpe,EAAQoc,WAGrB1T,KAAM,EAAG6K,KAElB,GAGF66B,GAAStmB,KAAK,CACZhZ,KAAM,OACNzK,OAAQ,OACRjF,MAAK,UAAEk+C,GAA0B1T,WAA5B,aAAE,EAAiD2E,UACxD18B,UAAW,SACXohC,KAAM,SAAC7gC,EAAD,GAAoB,IAAVzP,EAAS,EAATA,GACd,OACE,eAAC,GAAD,CACEuG,QAAS,WACP04F,EAAaj/F,GACb27C,GAAU,IAHd,SAKE,eAAC,GAAD,UAOLojD,GACC,uCACE,eAAC,GAAD,CACEp+F,MAAM,yBACNwlB,QAAS,CACP,CACEI,KAAM,mBACNxhB,KAAMs6F,GACN/4E,YAAag5E,GACblxF,OAAQwwF,IAGZ3tB,cAAe5zE,EAAQuzE,eACvB5zE,UAAWK,EAAQg4F,WAXrB,UAYIsJ,GACA,gBAACn4E,GAAA,EAAD,CAAKtqB,WAAW,SAASyF,eAAe,WAAxC,UACE,eAACtD,GAAD,CAAQrB,UAAWK,EAAQy/F,aAA3B,6BACA,gBAACt2E,GAAA,EAAD,CACErrB,QAAQ,OACRe,WAAW,SACXyF,eAAe,MACfy9C,GAAG,OAJL,UAKG09C,IACC,eAACj/F,GAAD,CAAGb,UAAWK,EAAQ0/F,UAAtB,SACGjyD,GAAiBgyD,MAGtB,eAAC,GAAD,CACEv2F,QAAS,kBAAMu4F,GAAiB,IAChC9hG,UAAWK,EAAQyL,OAFrB,SAGE,eAAC,GAAD,eAMR61F,GACA,uCACE,eAAC,GAAD,CACEv5F,MAAK,OAAEA,QAAF,IAAEA,OAAF,EAAEA,EAAOG,QACd4G,KAAK,YACL4kC,WAhKc,SAAC,GAAD,IAAG/wC,EAAH,EAAGA,GAAH,OAAa67C,GAAmB77C,GAAIsO,QAiKlDm9B,SAAUA,GACVtkC,KAAMM,EACNyX,iBAAkB+7B,GAClBxI,kBAAmBp1C,EAAQu/F,QAG5Bz1F,GAAQpB,KAAU0B,IACjB,eAAC,GAAD,CAAYlC,QAAQ,0BAIzBo5F,GACC,eAAC,GAAD,CAAgBl3F,SAAUA,EAAUqT,SAAUumB,IAEhD,eAAC,GAAD,CACEi8D,aAAcj8D,EACd55B,SAAUA,EACV6pB,OAAQA,EACRmqB,MAAO11C,IAAO,CAAC,SAARA,CAAkBoB,GACzBo2F,UAAWA,IAEZ7hD,GACC,eAAC,GAAD,CACE/1B,QAAS5f,KAAOA,IAAS,KAAMi5F,GAAYv3F,GAC3CuxC,gBAAiB6C,GAAmBmjD,GACpC/xF,QAAS,WACP0uC,GAAU,IAEZv2C,MAAK,OAAEA,QAAF,IAAEA,OAAF,EAAEA,EAAOG,QACdusC,KA5LK,SAAC9xC,EAAIyZ,EAAS6gC,GAC3B,OAAO0B,EAAiB,CACtBpzC,UAAU,aACR8E,OAAQ,mBACR/E,SAAU3I,EACVyZ,WACG6gC,MAuLCP,OAAQA,IAGX8kD,GACC,gBAAC,GAAD,CACEl+F,MAAO,kBACPlE,MAAO,IACPkQ,YAAa,kBAAMmyF,EAAiB,OACpC9yF,MAAM,EAJR,UAKE,eAACnO,GAAD,CAAGb,UAAWK,EAAQw/F,aAAtB,oIAIA,eAAC,GAAD,CACE1wF,KAAK,sBACLsD,MAAK,OAAEsrF,QAAF,IAAEA,IAAiB+B,GACxB3sF,QAAS,CAACwrF,GAAmB,IAC7BpsF,SAAU6vF,GACVpiG,UAAWK,EAAQ48F,eAErB,eAACp8F,GAAD,CAAGb,UAAWK,EAAQw/F,aAAtB,uJAKA,eAAC,GAAD,CACE1wF,KAAK,mBACLsD,MAAK,OAAEsrF,QAAF,IAAEA,IAAiB+B,GACxB3sF,QAAS,CAACwrF,GAAmB,IAC7BpsF,SAAU6vF,GACVpiG,UAAWK,EAAQ48F,eAErB,eAACp8F,GAAD,CAAGb,UAAWK,EAAQw/F,aAAtB,6LAKA,eAACvvD,GAAA,EAAD,CAAetwC,UAAWK,EAAQyvC,QAAlC,SACE,eAACvsB,GAAD,CAAQha,QAAS,kBAAM24F,GAAkBnE,IAAzC,8BC9Zd,SAAS,KAA2Q,OAA9P,GAAWr8F,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,CACnDnC,MAAO,GACPX,OAAQ,GACR6I,GAAI,EACJiqE,GAAI,EACJzuE,KAAM,YAGR,SAASo/F,GAAW9+F,EAAMC,GACxB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,GACPX,OAAQ,GACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiB4+F,IAChC,ICnCf,SAAS,KAA2Q,OAA9P,GAAW7gG,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,CACnDnC,MAAO,GACPX,OAAQ,GACR6I,GAAI,EACJiqE,GAAI,EACJzuE,KAAM,YAGR,SAAS,GAAUM,EAAMC,GACvB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,GACPX,OAAQ,GACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,IAGpB,I,YAAI,GAA0B,aAAiB,IC1BzC6+F,ID2BS,IC3BW,2BACrBv9C,IADqB,IAExB/4C,QAAS,CACP/N,QAAS,OAGT0G,UAAW,GACXqB,aAAc,GACdtJ,SAAUpB,IAEZuhB,IAAK,CACH5e,QAAS,OACT8H,cAAe,OAGjBkwC,KAAM,CACJl3C,QAAS,EACTZ,OAAQ,EACRonB,UAAW,QAEbtK,KAAM,CACJrc,OAAQ7C,GACRiK,aAAcjK,IAEhBsU,KAAM,CACJ9T,MAAOzC,EACPwW,eAAgB,QAElB+F,UAAW,CACT9W,MAAO,EACPX,OAAQ,IACRiH,OAAQ,EACRK,YAAa,GACbtB,WAAY,OACZU,WAAY8K,gBAAKjX,EAAO,QCftBopG,GAAa7iG,YAAWulD,IAExBsF,GAAQ,SAAC,GAAkB,IAAhBtqD,EAAe,EAAfA,SACTE,EAAUoiG,KAEhB,OAAO,sBAAKziG,UAAWK,EAAQ6P,MAAxB,SAAgC/P,KAGnCuiG,GAAc9iG,YAAW4iG,IAEzBG,GAAY,SAAC,GAAD,IAAGxiG,EAAH,EAAGA,SAAaC,EAAhB,mCAChB,eAACswB,EAAA,EAAD,yBAAMnsB,WAAS,EAACyU,QAAS,GAAO5Y,GAAhC,aACGD,MAICyiG,GAAO,SAAC,GAAD,IAAGziG,EAAH,EAAGA,SAAaC,EAAhB,mCACX,eAACswB,EAAA,EAAD,yBAAMvV,MAAI,EAAC+a,IAAE,GAAK91B,GAAlB,aACGD,MAiGU0iG,GA7FW,SAAC,GAAgD,IAA1Cl6E,EAAyC,EAA7C/U,GAAa4uC,EAAgC,EAAhCA,gBAAiBnoB,EAAe,EAAfA,SACnDh6B,EAAUqiG,KAEhB,OACE,eAAC,GAAD,CAAW1iG,UAAWK,EAAQ6L,QAA9B,SAsCE,eAAC,GAAD,CAAMgqB,IAAE,EAAR,SACE,gBAAC,GAAD,CAAWl2B,UAAWK,EAAQ0c,IAA9B,UACE,gBAAC,GAAD,CAAMmZ,GAAI,EAAV,UACE,eAAC,GAAD,4BACA,gCAAOkqB,GAAgBz3B,EAAQw4B,YAEjC,gBAAC,GAAD,CAAMjrB,GAAI,EAAV,UACE,eAAC,GAAD,wBACA,gCACGmE,GACCE,GAAW5R,EAAQu4B,SAAU7mB,EAAU,4BAG7C,eAAC,GAAD,CAAMnE,GAAI,EAAV,SACE,eAAC,GAAD,CACEvN,QAASA,EACT65B,gBAAiBA,MAErB,gBAAC,GAAD,CAAMtsB,GAAI,EAAV,UACE,eAAC,GAAD,4BACA,gCACGvN,EAAQ09B,cACL,IAAIrxB,KAAUrM,EAAQ09B,eAAezoC,QAAQ,GAAG21B,WAChD,SACA,mBAGR,gBAAC,GAAD,CAAMrd,GAAI,EAAV,UACE,eAAC,GAAD,sBACA,gCACGvN,EAAQs9B,aACL,IAAIjxB,KAAUrM,EAAQs9B,cAAcroC,QAAQ,GAAG21B,WAC/C,OACA,mBAGR,gBAAC,GAAD,CAAMrd,GAAI,EAAV,UACE,eAAC,GAAD,0BACA,gCACGvN,EAAQm6E,WACL,IAAI9tE,KAAUrM,EAAQm6E,YAAYllF,QAAQ,GAAG21B,WAC7C,MACA,2BCnHZvxB,GAAevY,IAAH,wVAyBZsrB,GAAWtrB,IAAH,kEAMR9J,GAAYC,YAAWwlD,IAuGd29C,GArGO,WAAO,IAAD,EACpB1iG,EAAUV,KACVioB,EAAUC,cACRb,EAAU+J,cAAV/J,MACFg8E,EAAc,OAAGh8E,QAAH,IAAGA,OAAH,EAAGA,EAAOhkB,GAJJ,EAStBiH,YAAS+X,IAHLihF,EANkB,EAMxB94F,KACAqd,EAPwB,EAOxBA,QACS43E,EARe,EAQxBh1F,QARwB,EAUsBH,YAAS8qB,IAA3C82C,EAVY,EAUlB1hE,KAAsBymD,EAVJ,EAUIA,cACxBv2B,EAAWtxB,IAAO,CAAC,SAAU,mBAAoB8iE,GAEjDp9B,EAAW,CACf,CACE/pC,OAAQ,eACRjF,MAAO,IACPwM,KAAM,KACNiG,UAAW,OACXohC,KAAM,SAAAtvB,GAAC,OACL,uBAAKhkB,UAAWK,EAAQqlD,QAAxB,UACG1hC,EAAE7U,KACH,sBACEnP,UAAWK,EAAQslD,yBACnBp8C,QAAS,WACPqe,EAAQO,KAAR,oBAA0BnE,EAAErY,YAHhC,SAKE,eAAC,GAAD,WAKR,CACEjH,OAAQ,SACRjF,MAAO,IACPwM,KAAM,KACNiG,UAAW,OACXohC,KAAM,SAAAtvB,GAAC,OAAI,eAAC,GAAD,CAAY0kB,SAAU1kB,EAAE0kB,aAErC,CACEhkC,OAAQ,YACRjF,MAAO,IACPwM,KAAM,KACNiG,UAAW,OACXohC,KAAM,SAAAtvB,GAAC,OACLA,EAAEkiC,SACEC,aAAe,IAAIj9C,KAAK8a,EAAEkiC,UAAW,IAAIh9C,KAAQ,CAC/Ck9C,WAAW,IAEb,YAER,CACE1hD,OAAQ,mBACRjF,MAAO,IACPwM,KAAM,KACNiG,UAAW,OACXohC,KAAM,SAAAtvB,GAAC,OAAIA,EAAEo9B,SAAW,aAItB32C,EAAQ,UAAG1B,IAAO,CAAC,YAARA,CAAqBk6F,UAAxB,QAA6C,GACrDC,EAAgBn6F,KAAYA,IAAS,WAAYi6F,GAAjCj6F,CACpB0B,GAOIL,EAAUg1F,GAAmBxuC,EAEnC,OACE,uCACE,uBAAK5wD,UAAWK,EAAQwoB,aAAxB,UACE,sBAAK7oB,UAAWK,EAAQyoB,yBAAxB,SACE,eAAC,GAAD,+BAEF,uBAAK9oB,UAAWK,EAAQ4yB,aAAxB,UACE,iCACE,eAAC,GAAD,IACA,+CAEF,iCACE,eAAC,GAAD,IACA,mDAIN,eAAC,GAAD,CACE7oB,QAASA,EACTqkC,SAAUA,EACVtkC,KAAMM,EACNw2C,QA3ByB,SAAC,GAAD,IAAGrtC,EAAH,EAAGA,GAAH,OAC7B,eAAC,GAAD,CAAmBA,GAAIA,EAAI4uC,gBAAiBh7B,EAAS6S,SAAUA,KA2B3D40B,gBAAiBi0C,EACjBh0C,UAAU,qBACVL,YAAU,QChJH11D,OAAMC,gBCQfuG,GAAYC,YCVH,CACb8E,OAAQ,CACNvG,QAAS,OACTe,WAAY,SACZgH,aAAc,GACdpH,OAAQ,GACRT,OAAQ,GAEVsF,MAAO,CACL2iF,WAAY,EACZjoF,OAAQ,EACRqO,SAAU,SACV8I,WAAY,SACZ+vC,aAAc,YAEhBz5C,OAAQ,CACNjN,OAAQ,OACRzE,gBAAiB,cACjBwE,OAAQ,UACRkG,WAAY,GAEdw6E,eAAgB,CACdnhF,QAAS,OACTmoF,WAAY,EACZxhF,WAAY,GACZH,eAAgB,gBAChBlF,MAAO,ODcI2nB,GA5BA,SAAC,GAA8C,IAA5CzjB,EAA2C,EAA3CA,MAAOuuC,EAAoC,EAApCA,QAAS95B,EAA2B,EAA3BA,SAAU+8B,EAAiB,EAAjBA,WACpC90C,EAAUV,KAEhB,OACE,uBAAKK,UAAWK,EAAQqE,OAAxB,UACE,eAAC/D,GAAD,CAAIX,UAAWK,EAAQsD,MAAvB,SAA+BA,KAC7BuuC,GACA,eAAC,GAAD,CACE3oC,QAAS,kBAAM4rC,GAAW,IAC1Bn1C,UAAWK,EAAQyL,OACnBsM,SAAUA,EAHZ,SAIGA,EAAW,eAAC,GAAD,IAAuB,eAAC,GAAD,MAGtC85B,GACC,uBAAKlyC,UAAWK,EAAQi/E,eAAxB,UACE,eAAC,GAAD,CAAM7iF,MAAM,UAAU6L,KAAK,SAA3B,kBAGA,eAAC,GAAD,CAAM7L,MAAM,YAAY6L,KAAK,QAA7B,2BErBJ3I,GAAYC,YCVH,CACb2pB,KAAM,CACJlrB,OAAQ,CAAC,CAAC,EAAG,EAAG,EAAG,KAErB8kG,aAAc,CACZrkG,OAAQ,IAEVskG,aAAc,CACZjlG,QAAS,OACTe,WAAY,YAEdgR,MAAO,CACL7R,OAAQ,GAEVglG,WAAY,CACVhlG,OAAQ,CAAC,CAAC,EAAG,EAAG,EAAG,ODwCRilG,GA3CQ,SAAC,GASjB,IAAD,EARJpzF,EAQI,EARJA,MACAf,EAOI,EAPJA,KACA+iC,EAMI,EANJA,QACAqxD,EAKI,EALJA,aACAF,EAII,EAJJA,WACArjG,EAGI,EAHJA,UAGI,IAFJsX,qBAEI,MAFY,EAEZ,MADJ7X,aACI,MADI,GACJ,EACEY,EAAUV,GAAU,CAAEF,QAAOyyC,YAC3Bx6B,EAAWqD,eAAXrD,OAEFpX,GAAU,mBACbD,EAAQ8iG,cAAe,GADV,0BAEdnjG,GAFc,GAKhB,OACE,uBAAKA,UAAWO,IAAWD,GAA3B,UACG4P,GAAS,eAAC7O,GAAD,CAAQrB,UAAWK,EAAQ6P,MAA3B,SAAmCA,IAC7C,uBAAKlQ,UAAWK,EAAQ+iG,aAAxB,WACIlxD,GACA,eAACnxC,GAAD,CAAOf,UAAWK,EAAQkpB,KAA1B,SAAiCg6E,EAAa7rF,EAAOvI,MAEtD+iC,GACC,eAAC,KAAD,CACElvC,GAAImM,EACJlD,KAAK,KACLwH,WAAS,EACTtE,KAAMA,EACNuT,UAAWrL,GACXnF,UAAU,QACVzS,MAAOA,EACP6X,cAAeA,IAGnB,eAAClW,GAAD,CAAKpB,UAAWK,EAAQgjG,WAAxB,SAAqCA,WEoC9BG,GAzEmB,SAAC,GAS5B,IAAD,EARJ7/F,EAQI,EARJA,MACAuM,EAOI,EAPJA,MAOI,IANJzQ,aAMI,MANI,GAMJ,MALJ0xB,WAKI,MALE,EAKF,MAJJxc,WAII,MAJE,QAIF,EAHJxF,EAGI,EAHJA,KACAqrD,EAEI,EAFJA,QACAx6D,EACI,EADJA,UACI,EACwBqK,oBAAS,GADjC,mBACGyrC,EADH,KACWC,EADX,KAGEE,EAAS,yCAAG,WAAOukB,EAAS/nD,GAAhB,UAAAoc,EAAA,0DACZinB,EADY,wDAGhBC,GAAU,GAHM,SAMVjB,EAAK0lB,EAAS/nD,GANJ,OAQhBsjC,GAAU,GARM,2CAAH,wDAHX,EAqBA/qB,qBAAWy4E,IANb3uD,EAfE,EAeFA,KACA3qC,EAhBE,EAgBFA,KACA2T,EAjBE,EAiBFA,SACA21B,EAlBE,EAkBFA,UACAsmD,EAnBE,EAmBFA,WACA5kD,EApBE,EAoBFA,WAGIwH,EAASx6B,OAAaC,MAAb,eACZjT,EAAOgT,OACL9e,UAAUuY,IACV6hC,UACAtsB,IAAIA,GACJxc,IAAIA,GACJkhD,aAGL,OACE,eAAC,KAAD,CACE3yC,gBAAgB,EAChBC,kBAAkB,EAClBg0B,oBAAkB,EAClBn8B,cAAa,eAAK7L,EAAL,UAAahF,GAAQA,EAAKgF,UAA1B,QAAoC,IACjD+S,iBAAkBy6B,EAClBr5B,SAAU,SAAA1P,GAAE,OAAIqiC,EAAUukB,EAAS7d,EAAOzG,KAAKtiC,KAC/Ck0B,QAAS,WACPqN,EAAWhmC,GAAM,IARrB,SAUE,gBAAC,KAAD,CAAMnP,UAAWA,EAAjB,UACE,eAAC,GAAD,IACA,eAAC,GAAD,CACE2D,MAAOA,EACPuuC,QAASuB,EAAUtkC,GACnBiJ,SAAU2hF,EAAW5qF,GACrBgmC,WAAY,SAAAvhC,GAAE,OAAIuhC,EAAWhmC,EAAMyE,MAErC,eAAC,GAAD,CACE1D,MAAOA,EACPf,KAAMA,EACN+iC,QAASuB,EAAUtkC,GACnB1P,MAAOA,EACP8jG,aAAc,SAAAh+F,GAAC,MAAW,KAANA,EAAW,IAAMA,GACrC89F,WAAYvlF,UCtEhB4lF,GAAkB,mBAClBC,GAAmB,oBAEnBhkG,GAAYC,YCXH,CACbgkG,oBAAqB,CACnBzlG,QAAS,OACT+H,aAAc,GACdpH,OAAQ,IACRI,WAAY,UAEd2kG,wBAAyB,CACvBpkG,MAAO,IACP2G,YAAa,IAEf09F,8BAA+B,CAC7Bh/F,WAAY,IAEdi/F,cAAe,CACbtkG,MAAO,EACPX,OAAQ,OACRwO,YAAa,CAAC,CAAC,EAAG,QAAS,aD6ChB02F,GAjDa,SAAC,GAA6B,IAA3BxpC,EAA0B,EAA1BA,QAASypC,EAAiB,EAAjBA,WAChC5jG,EAAUV,KADuC,EAUnDqrB,qBAAWy4E,IANbt5F,EAJqD,EAIrDA,KACA2qC,EALqD,EAKrDA,KACAh3B,EANqD,EAMrDA,SACAq3B,EAPqD,EAOrDA,WACA1B,EARqD,EAQrDA,UACAsmD,EATqD,EASrDA,WAGF,OACE,uBAAK/5F,UAAWK,EAAQujG,oBAAxB,UACE,eAAC,GAAD,CACEz0F,KAAMu0F,GACNv5F,KAAMA,EACN2qC,KAAMA,EACN0lB,QAASA,EACT6oC,WAAYvlF,EACZ9d,UAAWK,EAAQwjG,wBACnBlgG,MAAM,wBACNuM,MAAM,iBACNgiC,QAASuB,EAAUiwD,IACnBtrF,SAAU2hF,EAAW2J,IACrBvuD,WAAY,SAAAvhC,GAAE,OAAIuhC,EAAWuuD,GAAiB9vF,IAC9CnU,MAAOwkG,IAGT,sBAAKjkG,UAAWK,EAAQ0jG,gBAExB,eAAC,GAAD,CACE50F,KAAMw0F,GACNx5F,KAAMA,EACNqwD,QAASA,EACT1lB,KAAMA,EACNuuD,WAAYvlF,EACZ9d,UAAWK,EAAQyjG,8BACnBngG,MAAM,yBACNuM,MAAM,gBACNgiC,QAASuB,EAAUkwD,IACnBvrF,SAAU2hF,EAAW4J,IACrBxuD,WAAY,SAAAvhC,GAAE,OAAIuhC,EAAWwuD,GAAkB/vF,IAC/CnU,MAAOwkG,QE5CTN,GAAmB,cACnBD,GAAkB,aAClBQ,GAAqB,iBACrBC,GAAO,yBA4IEC,GA1IgB,SAAC,GAAiB,IAAD,MAAd5pC,EAAc,EAAdA,QAAc,EAS1CxvC,qBAAWy4E,IAT+B,IAE5CnuE,wBAF4C,MAEzB,GAFyB,EAG5CnrB,EAH4C,EAG5CA,KACA2qC,EAJ4C,EAI5CA,KACA1sC,EAL4C,EAK5CA,MACA0V,EAN4C,EAM5CA,SACAi8E,EAP4C,EAO5CA,WACA5kD,EAR4C,EAQ5CA,WAEIkvD,EAAW,iBAAGl6F,QAAH,IAAGA,OAAH,EAAGA,EAAMm6F,8BAAT,QAAmC,GAU9CC,EAAmBx7F,IAAMA,IAAOm7F,IAAbn7F,CAAkCs7F,GAIrDG,EAHmBz7F,KACvB,SAAA6K,GAAE,OAAK7K,KAAW6K,EAAGyE,KAAMksF,KAET5sC,CAAiBriC,GAS/Bta,GAAa,mBAChBkpF,GAAqB,MADL,cAEhBR,GAAkB,IAFF,cAGhBC,GAAmB,IAHH,GAObzhF,EAAmBC,OAAaC,OAAb,mBAEpB8hF,GAAqB/hF,OACnBjS,MAAM,kBACN2lD,WACAxzC,YALkB,cAMpBqhF,GAAkBvhF,OAChBjS,MAAM,eACNy7B,KAAKg4D,GAAkB,CACtBrmC,GAAI,SAAAqmC,GAAgB,OAAKA,GACzBh2E,KAAMxL,OAAaE,aAEpBhf,UAAUuY,IACV6hC,UACAtsB,IAfU,GAgBVxc,IAAIujC,IACJ2d,YAhBkB,cAiBpB8tC,GAAmBxhF,OACjBjS,MAAM,gBACNy7B,KAAK+3D,GAAiB,CACrBpmC,GAAI,SAAAomC,GAAe,OAAKA,GACxB/1E,KAAMxL,OAAaE,aAEpBhf,UAAUuY,IACV6hC,UACAtsB,IA1BU,GA2BVxc,IAAIujC,IACJ2d,YA3BkB,GA6BvB,CAAC6tC,GAAiBC,KASdl1D,EAAW,CACf,CACEt/B,KAAM+0F,GACNx/F,OAAQ,iBACRjF,MAAO,IACPwM,KAAM,KACNqnC,KAZe,SAAA1/B,GAAE,OACnB7K,IACEA,IAAO,CAAC,YACRA,KAAOA,IAAS,OAAQ6K,IAF1B7K,CAGEusB,IASAhhB,MAAOtB,GACPwgC,WAAY,CACVrgC,QAAS,SAAAS,GAAE,OAAI7K,KAASy7F,EA7DP,SAAA5wF,GACrB,IAAMgpD,EAAO7zD,IAAUA,KAAOA,IAAS,OAAT,OAAiB6K,QAAjB,IAAiBA,OAAjB,EAAiBA,EAAIylD,iBAAtCtwD,CACXusB,GAEF,OAAOsnC,EAAO,CAACA,GAAQ,GAyDkB5E,CAAepkD,KACpDX,aAAc,KACdG,UAAW,OACXE,UAAW,YAGf,CACEnE,KAAMu0F,GACNjkG,MAAO,IACPyS,UAAW,QACXD,MAAM,EACNqC,MAAO+C,GACP3E,OAAQoL,EACR01B,WAAY,CACVl8B,cAAe,IAGnB,CACEnI,KAAMw0F,GACNlkG,MAAO,IACPyS,UAAW,QACXD,MAAM,EACNqC,MAAO+C,GACP3E,OAAQoL,EACR01B,WAAY,CACVl8B,cAAe,KAKrB,OACE,eAAC,GAAD,CACEnI,KAAMg1F,GACNxgG,MAAM,YACNyE,MAAK,OAAEA,QAAF,IAAEA,OAAF,EAAEA,EAAOG,QACdsmC,cAAY,EACZH,YAAU,EACVsG,cAAY,EACZF,KAAM,SAAAlhC,GAAE,OAAIkhC,EAAK0lB,EAAS5mD,IAC1BoH,cAAeA,EACfkH,iBAAkBA,EAClB7Q,aAAc0oF,EAAWoK,MAAU7uE,EACnCnrB,KAAMk6F,EACN51D,SAAUA,EACVyG,aAAY,OAACsvD,QAAD,IAACA,OAAD,EAACA,EAAaziG,QAC1BiT,SAvHa,SAAAhS,GACf,IAAMyhG,EAAe,CACnBH,uBAAwBv7F,MAAS,SAAA6K,GAAE,OAAIA,EAAG5Q,KAAOA,IAAIqhG,IAEvD,OAAOvvD,EAAK2vD,IAoHVtvD,WA1HoB,SAAAvhC,GAAE,OAAIuhC,EAAWgvD,GAAMvwF,OC1BlC,IACb1H,QAAS,CACP/N,QAAS,QAEXuc,KAAM,CACJxU,aAAc,IAEhBvC,MAAO,CACLkB,UAAW,GAEbkY,IAAK,CACHtd,MAAO,IACPtB,QAAS,OACTq4E,oBAAqB,gBACrBkuB,iBAAkB,MAClBC,cAAe,GACfC,WAAY,GAEd3nF,KAAM,CACJxd,MAAO,KAETolG,aAAc,CACZz+F,YAAa,EACbxJ,SAAU,IAEZkoG,iBAAkB,CAChB1qG,gBAAgB,GAAD,OAAKA,MCXlBuF,GAAYC,YAAWC,IAEvBskG,GAAO,oBAiHEY,GA9GK,SAAC,GAAsD,IAAD,QAAnDvqC,EAAmD,EAAnDA,QAAmD,IAA1CrpC,WAA0C,MAApC,EAAoC,MAAjCxc,WAAiC,MAA3B,IAA2B,MAAtBsvF,kBAAsB,MAAT,GAAS,IAQpEj5E,qBAAWy4E,IANbhwD,EAFsE,EAEtEA,UACAsmD,EAHsE,EAGtEA,WACA5kD,EAJsE,EAItEA,WACAhrC,EALsE,EAKtEA,KACA2qC,EANsE,EAMtEA,KANsE,IAOtErqC,gBAPsE,MAO3D,GAP2D,EASlEpK,EAAUV,KAEVsqC,EAAuBv1B,KAAKC,IAAL,MAAAD,KAAI,YAC5B3L,KAAM,SAAA6K,GAAE,OAAIA,EAAGs2B,oBAAmBz/B,IADN,QAbC,KAkB5BynC,EAAUuB,EAAU0wD,IAEpBxnD,EAASx6B,OAAaC,MAAM,CAChC4iF,2BAA4B7iF,OACzB9e,UAAUuY,IACV6hC,UACAtsB,IAAIA,GACJxc,IAAIA,GACJkhD,WACHovC,2BAA4B9iF,OACzB9e,UAAUuY,IACV6hC,UACAtsB,IAAIA,GACJxc,IAAIA,GACJkhD,WACHqvC,qBAAsB/iF,OACnB9e,UAAUuY,IACV6hC,UACAtsB,IAAIA,GACJxc,IAAIA,GACJkhD,WACHsvC,qBAAsBhjF,OACnB9e,UAAUuY,IACV6hC,UACAtsB,IAAIA,GACJxc,IAAIA,GACJkhD,aAGL,OACE,eAAC,KAAD,CACE3yC,gBAAgB,EAChBC,kBAAkB,EAClBg0B,oBAAkB,EAClBn8B,cAAe,CACbgqF,2BAA0B,iBAAE76F,QAAF,IAAEA,OAAF,EAAEA,EAAM66F,kCAAR,QAAsC,GAChEC,2BAA0B,iBAAE96F,QAAF,IAAEA,OAAF,EAAEA,EAAM86F,kCAAR,QAAsC,GAChEG,2BAA0B,iBAAEj7F,QAAF,IAAEA,OAAF,EAAEA,EAAMi7F,kCAAR,QAAsC,GAChEC,2BAA0B,iBAAEl7F,QAAF,IAAEA,OAAF,EAAEA,EAAMk7F,kCAAR,QAAsC,IAElEnjF,iBAAkBy6B,EAClBr5B,SAAU,SAAA1P,GAAE,OAAIkhC,EAAK0lB,EAAS7d,EAAOzG,KAAKtiC,KAC1Ck0B,QAAS,WACPqN,EAAWgvD,IAAM,IAbrB,SAeG,gBAAGzsF,EAAH,EAAGA,OAAH,OACC,gBAAC,KAAD,CAAM1X,UAAWK,EAAQqa,KAAzB,UACE,eAAC,GAAD,IACA,eAAC,GAAD,CACE/W,MAAM,mBACNuuC,QAASA,EACT95B,SAAU2hF,EAAWoK,IACrBhvD,WAAY,SAAAvhC,GAAE,OAAIuhC,EAAWgvD,GAAMvwF,MAErC,sBAAK5T,UAAWK,EAAQ6L,QAAxB,SACGnD,KACC,SAAA6K,GAAE,aACA,qCACE,uBAAK5T,UAAWK,EAAQ0c,IAAxB,UACE,eAAC,GAAD,CACEhF,eAAgB1X,EAAQwkG,aACxBtnF,mBAAoBld,EAAQykG,iBAC5BloF,QAAO,UACLlF,EAAO,4BAAD,OAA6B9D,EAAK,WADnC,QAELzJ,EAAK,WAAD,OAAYyJ,EAAK,IAEvB0I,mBAAiB,EACjBkB,+BAA6B,EAC7BC,qBAAmB,EACnBzB,SAAO,IAET,uBAAKhc,UAAWK,EAAQ4c,KAAxB,UACE,gBAAC7b,GAAD,CAAKpB,UAAWK,EAAQsD,MAAxB,sBAAyCiQ,EAAK,KAC9C,eAAC,GAAD,CACE1D,MAAM,iBACNf,KAAI,mCAA8ByE,EAAK,GACvCs+B,QAASA,EACTqxD,aAAc,SAAAh+F,GAAC,MAAW,KAANA,EAAW,IAAMA,GACrC89F,WAAW,IACX5jG,MAAOwkG,cAMjBl7F,KAAQA,KAAYkhC,aC/G5Bq7D,GAAiB,6BACjBC,GAAiB,6BACjBC,GAAiB,6BACjBC,GAAiB,6BACjBC,GAAc,UACdvB,GAAO,uBAEPwB,GAAgB,CACpBL,GACAC,GACAC,GACAC,IAGI9nD,GAA4B,CAChCC,EAAG,CAAEj1B,QAAS,IAAKk1B,SAAU,KAC7BE,EAAG,CAAEp1B,QAAS,IAAKk1B,SAAU,KAC7BG,EAAG,CAAEr1B,QAAS,IAAKk1B,SAAU,MA4JhB+nD,GAzJc,SAAC,GAAyB,IAAD,MAAtBtxE,EAAsB,EAAtBA,OAAQkmC,EAAc,EAAdA,QAAc,EAQhDxvC,qBAAWy4E,IARqC,IAElDh5F,gBAFkD,MAEvC,GAFuC,EAGlDN,EAHkD,EAGlDA,KACA2qC,EAJkD,EAIlDA,KACAilD,EALkD,EAKlDA,WACA5kD,EANkD,EAMlDA,WACA/sC,EAPkD,EAOlDA,MAGIi8F,EAAW,iBAAGl6F,QAAH,IAAGA,OAAH,EAAGA,EAAM07F,4BAAT,QAAiC,GAK5CpuC,EAAoB1uD,KAAM,SAAA2uD,GAAQ,OAAIA,EAAS/uC,UAAS07E,GAMxDG,EALmBz7F,KACvB,SAAA6K,GAAE,OACC7K,IAAW6K,EAAGjI,SAAU8rD,IALP,SAAA7jD,GAAE,OAAIygB,GAAczgB,EAAdygB,CAAkBC,GAM1CwxE,CAAclyF,EAAGjI,UAAU2F,SAEXqmD,CAAiBltD,GAO/BuQ,GAAa,mBAChB0qF,GAAc,MADE,cAEhBJ,GAAiB,IAFD,cAGhBC,GAAiB,IAHD,cAIhBC,GAAiB,IAJD,cAKhBC,GAAiB,IALD,GAQbx7D,EAAuBv1B,KAAKC,IAAL,MAAAD,KAAI,YAC5B3L,KAAM,SAAA6K,GAAE,OAAIA,EAAGs2B,oBAAmBz/B,IADN,QAE/B,KAII8qD,EAAa,IACbrzC,EAAmBC,OACtBC,OADsB,mBAEpBsjF,GAAcvjF,OACZjS,MAAM,WACN2lD,WACAxzC,YALkB,cAMpBijF,GAAiBnjF,OACfjS,MAAM,cACN7M,UAAUuY,IACV6hC,UACAtsB,IAZY,GAaZxc,IAAI4gD,GACJM,YAZkB,cAapB0vC,GAAiBpjF,OACfjS,MAAM,cACN7M,UAAUuY,IACV6hC,UACAtsB,IAnBY,GAoBZxc,IAAI4gD,GACJM,YAnBkB,cAoBpB2vC,GAAiBrjF,OACfjS,MAAM,cACN7M,UAAUuY,IACV6hC,UACAtsB,IA1BY,GA2BZxc,IAAI4gD,GACJM,YA1BkB,cA2BpB4vC,GAAiBtjF,OACfjS,MAAM,cACN7M,UAAUuY,IACV6hC,UACAtsB,IAjCY,GAkCZxc,IAAI4gD,GACJM,YAjCkB,IAmCtBvzC,MAAK,SAAC5K,EAAQ6K,GACb,IAAMwjF,EAASh9F,KAAO48F,GAAejuF,GAErC,IAAIiuF,GAAcp1B,MAAK,SAAA38D,GAAE,OAAK7K,IAAQg9F,EAAOnyF,OAE7C,OAAO2O,EAAQi0C,YAAY,CACzBpP,KAAMk+C,GACN/8F,QAAS,uDAOTkmC,EAAW,CACf,CACEt/B,KAAMu2F,GACNjmG,MAAOk+C,GAA0B1T,GAAsBthB,QACvD1c,KAAM,KACNqnC,KARgB,SAAA1/B,GAAE,OACpB7K,IAAUA,IAAO,CAAC,SAAUA,KAAOA,IAAS,WAAY6K,IAAxD7K,CAA8D0B,IAQ5D6J,MAAOtB,GACPwgC,WAAY,CACVrgC,QAAS,SAAAS,GAAE,OAAI7K,KAASy7F,EA7EP,SAAA5wF,GACrB,IAAMgpD,EAAO7zD,IAAUA,KAAOA,IAAS,WAAT,OAAqB6K,QAArB,IAAqBA,OAArB,EAAqBA,EAAI+U,UAA1C5f,CAAqD0B,GAClE,OAAOmyD,EAAO,CAACA,GAAQ,GA2EkB5E,CAAepkD,KACpDR,UAAW,WACXE,UAAW,UA+BjB,OA1BAvK,KACEA,KAAKA,KAAMkhC,IACX,SAAAr2B,GAmBE,OAlBA66B,EAAStmB,KAAK,CACZhZ,KAAK,4BAAD,OAA8ByE,GAClCzV,QAAQ,iBAAD,OAAmByV,GAC1BnU,MAAOk+C,GAA0B1T,GAAsB4T,SACvD3rC,UAAW,QACX05B,aAAc,sBACd35B,MAAM,EACNqC,MAAO+C,GACP3E,OAAQ,IACR8gC,WAAY,CACVl8B,cAAe,GAEjBg8B,KAAM,SAAA1/B,GAAE,8BAAIA,QAAJ,IAAIA,OAAJ,EAAIA,EAAI2/B,kBAAR,QAAsB,UAC9BF,SAAU,SAAA5gC,GAAK,aACbmB,GAAE,UACFnJ,EAASsZ,MAAK,qBAAGpY,WAA4B8G,EAAMkW,kBADjD,aACF,EACIuhB,sBAEDnhC,KAAM,EAAG6K,KAElB,GAIA,eAAC,GAAD,CACEzE,KAAMg1F,GACNxgG,MAAM,YACNyE,MAAK,OAAEA,QAAF,IAAEA,OAAF,EAAEA,EAAOG,QACdsmC,cAAY,EACZH,YAAU,EACVsG,cAAY,EACZF,KAAM,SAAAlhC,GAAE,OAAIkhC,EAAK0lB,EAASt4C,EAAiBg0B,KAAKtiC,KAChDoH,cAAeA,EACfkH,iBAAkBA,EAClB7Q,aAAc0oF,EAAWoK,MAAU15F,EACnCN,KAAMk6F,EACN51D,SAAUA,EACVyG,aAAY,OAACsvD,QAAD,IAACA,OAAD,EAACA,EAAaziG,QAC1BozC,WAzIoB,SAAAvhC,GAAE,OAAIuhC,EAAWgvD,GAAMvwF,OCxB3C6+E,GAAQ,CACZW,QAAS,IACTpuD,aAAc,IACd78B,WAAY,IACZyS,OAAQ,IACRorF,SAAU,IACV10F,OAAQ,KAGJo9C,GAAM,SAAC,GAAkD,IAAhDu3C,EAA+C,EAA/CA,UAAW50F,EAAoC,EAApCA,aAAc60F,EAAsB,EAAtBA,gBAAsB,EACnBl7E,qBAAWy4E,IAAtC7tC,EAD8C,EACpDzrD,KAAqBg8F,EAD+B,EACrCrxD,KAEjBA,EAAO/rC,IAAUo9F,EAAQ,MAAO1xE,GAAYwxE,IAC5C97F,EAAOkqB,GAAc4xE,EAAd5xE,CAAyBuhC,GAEhCx9C,EAAW/G,IAAiBlH,IAASA,EAAKmH,OAE1C80F,EAAO,SAAC,GAAwB,IAAtBj3F,EAAqB,EAArBA,KAAMiJ,EAAe,EAAfA,SACd3F,KAAWtI,IAAQA,EAAKgF,IAE9B,OACE,eAAC,GAAD,CAAI1P,MAAOgzF,GAAMtjF,GAAO+C,UAAU,SAAlC,SACE,eAAC,GAAD,CACEkG,SAAUA,EACV9C,QAAS7C,EACTF,SAAU,SAAAxC,GACR+kC,EAAK,eAAG3lC,EAAOY,EAAMnO,OAAO0T,WAE9B7C,MAAOA,OAMf,OACE,gBAAC,GAAD,WACE,eAAC,GAAD,CAAIhT,MArCU,IAqCd,SACGymG,EAAkBn9F,KAAUk9F,GAAah4D,GAAUg4D,KAEtD,eAACG,EAAD,CAAMj3F,KAAK,UAAUiJ,SAAUA,IAC/B,eAACguF,EAAD,CAAMj3F,KAAK,eAAeiJ,SAAUA,IACpC,eAACguF,EAAD,CAAMj3F,KAAK,aAAaiJ,SAAUA,IAClC,eAACguF,EAAD,CAAMj3F,KAAK,SAASiJ,SAAUA,IAC9B,eAACguF,EAAD,CAAMj3F,KAAK,WAAWiJ,SAAUA,IAChC,eAACguF,EAAD,CAAMj3F,KAAK,SAASiJ,SAAU/G,QAK9B1R,GAAYC,YAAW,CAC3BymG,YAAa,CACX5mG,MAAO,OAyBI6mG,GAtBD,SAAC,GAA8B,IAA5B5nD,EAA2B,EAA3BA,OAAQrtC,EAAmB,EAAnBA,aACjB6oD,EAAcxb,EAAS,GAAK,EAC5Br+C,EAAUV,KAChB,OACE,gBAAC,GAAD,CAAOK,UAAW0+C,EAASr+C,EAAQgmG,YAAc,KAAjD,UACE,gBAAC,GAAD,WACE,eAAC,GAAD,CAAI5mG,MA7DQ,IA6Day6D,EAAzB,qBACCx4D,OAAOgB,KAAK+vF,IAAOhnF,KAAI,SAAAmI,GAAE,OACxB,eAAC,GAAD,CAAanU,MAAOgzF,GAAM7+E,GAAMsmD,EAAahoD,UAAU,SAAvD,SACG+7B,GAAUr6B,IADJA,SAKb,gBAAC,GAAD,WACE,eAAC,GAAD,CAAKqyF,UAAU,QAAQ50F,aAAcA,IACrC,eAAC,GAAD,CAAK40F,UAAU,MAAMC,iBAAe,EAAC70F,aAAcA,IACnD,eAAC,GAAD,CAAK40F,UAAU,qBAAqB50F,aAAcA,WCvE3Ck1F,GAZW,SAAC,GAA6B,IAA3B/rC,EAA0B,EAA1BA,QAASypC,EAAiB,EAAjBA,WACpC,OACE,eAAC,GAAD,CACEzpC,QAASA,EACT72D,MAAM,yBACNuM,MAAM,gBACNf,KARO,uBASP1P,MAAOwkG,KCKPjzC,GAAWvnD,IAAH,wMAeRsY,GAActY,IAAH,4GAkHF+8F,GA1GO,SAAC,GAShB,IARChnD,EAQF,EARJrwC,KAQI,IAPJs3F,oBAOI,aANJC,gCAMI,aALJC,yBAKI,aAJJC,2BAII,aAHJC,wBAGI,aAFJC,oBAEI,aADJpoD,cACI,WAC0Br0C,mBAAS,MADnC,mBACGmwD,EADH,KACYusC,EADZ,OAEsB18F,mBAAS,MAF/B,mBAEGjC,EAFH,KAEU4tC,EAFV,OAGgC3rC,mBAAS,MAHzC,mBAGG28F,EAHH,KAGeC,EAHf,OAKsBh9F,YAAS+mD,IAA3B7mD,EALJ,EAKIA,KAAMC,EALV,EAKUA,QALV,EAOiBQ,YAAYmX,GAAa,CAC5ChX,eAAgB,CAAC,WACjB+X,YAAa,kBAAMmkF,EAAc,OACjCp8F,QAAS,SAAAzC,GAAK,OAAI4tC,EAAS5tC,MAHtBq3C,EAPH,oBAaEnrB,EAASD,GAAcmrB,EAAdnrB,CAAA,OAA0BlqB,QAA1B,IAA0BA,OAA1B,EAA0BA,EAAMmqB,QACzC7pB,EAAQ,OAAGN,QAAH,IAAGA,OAAH,EAAGA,EAAMM,SACjB6qB,EAAgB,OAAGnrB,QAAH,IAAGA,OAAH,EAAGA,EAAMmrB,iBAEzBxX,EAAW/U,IAAO,CAAC,gBAARA,CACfsrB,GAAcR,GAAdQ,CAAA,OAAiClqB,QAAjC,IAAiCA,OAAjC,EAAiCA,EAAMmqB,SAoBnC4yE,EAAe,CACnBpyD,KAlBW/rC,MAAQ,SAACyxD,EAAS2V,GAC7B,IAAM77C,EAASG,GAAY+qB,EAAZ/qB,CAAwB07C,GAGvC,OAFA42B,EAAWvsC,GACXxkB,EAAS,MACFyJ,EAAW,CAAE7zC,UAAW,CAAE0oB,eAejClsB,QACA4+F,aACA78F,KAAMmqB,EACNxW,WACA21B,UATgB,SAAAxxC,GAAG,OAAI+kG,IAAe/kG,GAUtC83F,WATiB,SAAA93F,GAAG,OAAI+kG,GAAcA,IAAe/kG,GAUrDkzC,WAlBiB,SAAClzC,EAAK+kB,GAClBA,GACHgvB,EAAS,MAEXixD,EAAcjgF,EAAQ/kB,EAAM,OAe5B8kG,aACAt8F,WACA6qB,oBAGF,OACGlrB,GACC,gBAAC,GAAiBwsC,SAAlB,CAA2BnkC,MAAOy0F,EAAlC,UACGJ,GAAgB,eAAC,GAAD,CAAcnjG,MAAM,kBACpC8iG,GACC,eAAC,GAAD,CAAS9iG,MAAM,QAAQyE,MAAOA,IAAUoyD,EAAxC,SACE,eAAC,GAAD,CAAOnpD,eAAgB21F,EAAYtoD,OAAQA,MAG9CgoD,GACC,eAAC,GAAD,CAAS/iG,MAAM,qBAAqByE,MAAOA,GAAqB,OAAZoyD,EAApD,SACE,eAAC,GAAD,CAAmBA,QAAQ,KAAKypC,WA1EvB,QA6EZ0C,GACC,gBAAC,GAAD,CACEhjG,MAAM,sBACNyE,MAAOA,GAAqB,SAAZoyD,EAFlB,UAGE,eAAC2sC,GAAD,CAAmB3sC,QAAQ,OAAO7lD,IAAK,IAAKsvF,WAAY,KACvD4C,GACC,eAAC,GAAD,CACEvyE,OAAQD,GAAcR,GAAdQ,CAAA,OAAmClqB,QAAnC,IAAmCA,OAAnC,EAAmCA,EAAMmqB,QACjDkmC,QAAQ,YAKfosC,GACC,gBAAC,GAAD,CACEjjG,MAAM,wBACNyE,MAAOA,GAAqB,WAAZoyD,EAFlB,UAGE,eAAC,GAAD,CAAqBA,QAAQ,SAASypC,WA9F7B,MA+FR4C,GACC,eAAC,GAAD,CACErsC,QAAQ,SACRypC,WAlGK,a,UCvCrB,SAAS,KAA2Q,OAA9P,GAAWviG,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,gCACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,yBACJK,UAAW,sCACXF,KAAM,UACNC,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,QACJK,UAAW,qCACG,gBAAoB,UAAW,CAC7CL,GAAI,SACJyE,OAAQ,0DACO,gBAAoB,UAAW,CAC9CzE,GAAI,SACJK,UAAW,8EACXoE,OAAQ,6DAGV,SAAS2/F,GAAS3jG,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,QAAkBqP,IAAV9L,EAAmC,gBAAoB,QAAS,CACzEX,GAAIY,GACH,SAAWD,EAAqB,gBAAoB,QAAS,CAC9DX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiByjG,IAChC,ICpDf,SAAS,KAA2Q,OAA9P,GAAW1lG,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,kBACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,OAAQ,CAC1CE,EAAG,0fACHN,GAAI,SACJG,KAAM,aAGR,SAASkkG,GAAQ5jG,EAAMC,GACrB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,QAAkBqP,IAAV9L,EAAmC,gBAAoB,QAAS,CACzEX,GAAIY,GACH,mBAAqBD,EAAqB,gBAAoB,QAAS,CACxEX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,I,kBAAI,GAA0B,aAAiB0jG,ICrCzCC,IDsCS,ICtCsB,CACnCC,8BAA+B,CAC7BppG,QAAS,OACT8H,cAAe,SACfxG,MAAO,KAET+nG,SAAU,CACRrpG,QAAS,OACTe,WAAY,SACZyF,eAAgB,gBAChB,oBAAqB,CACnBvK,gBAAiBA,IAEnB,mBAAoB,CAClBA,gBAAiBX,GAEnBonB,UAAW,GACX/hB,OAAQ,OACRG,QAAS,CAAC,CAAC,EAAG,GAAI,EAAG,KACrBwF,UAAW,4BAEbgjG,cAAe,CACbtpG,QAAS,OACTe,WAAY,SACZyF,eAAgB,OAChBlF,MAAO,IACPR,QAAS,CAAC,IAEZyoG,eAAgB,CACdvpG,QAAS,OACTe,WAAY,SACZyF,eAAgB,QAChB1F,QAAS,CAAC,IAEZ06C,kBAAmB,CACjB,QAAS,CACPt7C,OAAQ,aAEV,WAAY,CACVQ,OAAQ,OACRzE,gBAAiB,cACjBwE,OAAQ,YAGZsvD,WAAY,CACV/vD,QAAS,OACTe,WAAY,SACZiG,SAAU,WACVgL,KAAM,QAERmmF,aAAc,CACZxxF,WAAY,QAEdm4F,aAAc,CACZ9+F,QAAS,OACT8H,cAAe,MACf5H,OAAQ,EAAE,KAEZk4F,UAAW,CACTzxF,WAAY,QAEd2/C,WA/DqBY,GAAfZ,WAgENx1C,eAAgB,CACdxP,MAAO,IACPR,QAAS,CAAC,CAAC,GAAI,QClDbU,GAAYC,YAAW0nG,IAEvBK,GAAc,SAAC,GAAc,IAAZx4F,EAAW,EAAXA,KAErB,MAAwB,SADL4L,eAAXrD,OACMvI,GAAmB,eAAC,GAAD,IAAe,eAAC,GAAD,KAuGnCy4F,GApGgB7nG,gBAC7B,YAAuE,IAApE4D,EAAmE,EAAnEA,MAAOyU,EAA4D,EAA5DA,SAAUjO,EAAkD,EAAlDA,KAAMskC,EAA4C,EAA5CA,SAAUqG,EAAkC,EAAlCA,KAAkC,IAA5B+yD,qBAA4B,SAC9D7sF,EAAgBjS,KACpB0lC,EAAShjC,KAAI,SAAAmI,GAAE,YAAI,CAACA,EAAGzE,KAAJ,UAAUhF,EAAKyJ,EAAGzE,MAAMokC,kBAAxB,QAAsC,UAGrDu0D,EAAmB/+F,KACvB0lC,EAAShjC,KAAI,SAAAmI,GAAE,MAAI,CAACA,EAAGzE,KAAMgT,OAAcE,gBANuB,EAStChY,mBAASw9F,GAT6B,mBAS7D31D,EAT6D,KASpDiD,EAToD,KAW9D90C,EAAUV,KAEVs2C,EAAS,yCAAG,WAAMv+B,GAAN,gBAAAmX,EAAA,sDACVk5E,EAAY,SAACnU,EAAKzzD,GAAN,OAAYp3B,KAAS6qF,EAAK,SAC5C9+C,EAAK/rC,KAAgBg/F,EAAWh/F,IAASA,KAAaA,KAAtBA,CAAgC2O,KAChEy9B,GAAW,GAHK,2CAAH,sDAMTwpD,EAAqB,CACzB,CAAExgG,QAAS,MAAOka,KAAM,QACxB,CAAEla,QAAS,KAAMka,KAAM,UAEzB,OACE,sBAAKrY,UAAWK,EAAQknG,8BAAxB,SACE,eAAC,KAAD,CACErkF,gBAAgB,EAChBC,kBAAkB,EAClBg0B,oBAAkB,EAClB7zB,SAAU2yB,EACVj7B,cAAeA,EACf8sF,iBAAkBA,EANpB,SAOG,YAAoB,IAAjB11D,EAAgB,EAAhBA,UACF,OACE,gBAAC,KAAD,WACE,uBAAKpyC,UAAWK,EAAQ6tD,WAAxB,UACE,eAACvtD,GAAD,UAAKgD,IACJuuC,EACC,uBAAKlyC,UAAWK,EAAQi2F,aAAxB,UACE,eAAC,GAAD,CAAMhuF,KAAK,SAAS7L,MAAM,UAA1B,kBAGA,eAAC,GAAD,CACE6L,KAAK,QACLtI,UAAWK,EAAQk2F,UACnBhtF,QAAS,WACP6oC,IACA+C,GAAW,IAEb14C,MAAM,YAPR,uBAYF,eAAC,GAAD,CACEuD,UAAWK,EAAQs5C,kBACnBpwC,QAAS,kBAAM4rC,GAAW,IAF5B,SAGG/8B,EAAW,eAAC,GAAD,IAAuB,eAAC,GAAD,SAIzC,eAAC,GAAD,IACA,eAAC,GAAD,CAAOpY,UAAWK,EAAQokD,WAA1B,SACE,eAAC,GAAD,CAAWzkD,UAAWK,EAAQokD,WAA9B,SACGhW,EAAShjC,KAAI,SAACmI,EAAIqE,GAAL,OACZ,gBAAC,GAAD,CAEEhM,KAAK,KACLjM,UAAWK,EAAQmnG,SAHrB,UAIE,eAAC,GAAD,CAAWxnG,UAAWK,EAAQonG,cAA9B,SACG7zF,EAAGzV,UAEN,gBAAC,GAAD,CAAW6B,UAAWK,EAAQqnG,eAA9B,UACGx1D,GACC,eAAC,KAAD,CACExvB,UAAW5K,GACX3I,KAAMyE,EAAGzE,KACTgE,QAASwrF,EACT3+F,UAAWO,IACTF,EAAQ48F,aACR58F,EAAQqnG,mBAIZx1D,GAAW,eAAC,GAAD,CAAa/iC,KAAMyE,EAAGzE,YAlBhC8I,qBC3FvB+vF,GAAS,CACbx6F,QAAS,CACPrP,QAAS,QAEXuG,OAAQ,CACNvG,QAAS,OACTe,WAAY,SACZiG,SAAU,WACVgL,KAAM,QAERqqD,QAAS,CACPt0D,aAAc,IAEhB6W,IAAK,CACH5e,QAAS,OACTe,WAAY,SACZyF,eAAgB,gBAChBuB,aAAc,GACdzG,MAAO,IACP,eAAgB,CACdyG,aAAc,IAGlB+hG,UAAW,CACT9pG,QAAS,OACTe,WAAY,SACZiG,SAAU,WACVgL,KAAM,OACNxL,eAAgB,gBAChBlF,MAAO,KAETyoG,OAAQ,CACN/pG,QAAS,OACTe,WAAY,UAEd0R,OAAQ,CACNjM,eAAgB,aAChBzF,WAAY,SACZD,QAAS,CAAC,CAAC,EAAG,EAAG,EAAG,IACpB,aAAc,CACZmH,YAAa,KAGjBuzC,kBAAmB,CACjB,QAAS,CACPt7C,OAAQ,aAEV,WAAY,CACVQ,OAAQ,OACRzE,gBAAiB,cACjBwE,OAAQ,YAGZq9D,YAAa,CACX99D,QAAS,OACT+H,aAAc,GACd,QAAS,CACPzG,MAAO,IACPhD,MAAO/B,GACPmK,UAAW,EACXC,WAAY,KAGhBqjG,aAAc,CACZ9pG,OAAQ,CAAC,CAAC,EAAG,EAAG,GAAI,MCrDlBsB,GAAYC,YAAWooG,IAEvB1+D,GAAa7/B,IAAH,kEAMVsY,GAActY,IAAH,4GAMXilD,GAAM3uD,gBAAK,YAAwD,IAArD4D,EAAoD,EAApDA,MAAoD,IAA7CyU,gBAA6C,SAA3B9C,EAA2B,EAA3BA,QAASw/B,EAAkB,EAAlBA,KAAM5kC,EAAY,EAAZA,MACpD7P,EAAUV,KAEhB,OACE,uBAAKK,UAAWK,EAAQ4nG,UAAxB,UACE,eAACpnG,GAAD,UAAI8C,IACJ,uBAAK3D,UAAWK,EAAQ6nG,OAAxB,UACE,eAAC,GAAD,CACE9vF,SAAUA,EACV9C,QAASA,EACT/C,SAAU,SAAAxC,GAAK,OAAI+kC,GAAQA,EAAK/kC,EAAMnO,OAAO0T,YAE9CpF,GAAS,eAAC5O,GAAD,UAAS4O,aAsEZk4F,GAhEMroG,gBAAK,YAAiB,IAAd2+C,EAAa,EAAbA,OACrBr+C,EAAUV,KAERwK,EAASF,YAASq/B,IAAlBn/B,KAHgC,EAKnBS,YAAYmX,GAAa,CAC5ChX,eAAgB,CAAC,aADZ00C,EALiC,oBASlC3K,EAAO,SAAAlhC,GAAE,OACb6rC,EAAW,CACT7zC,UAAW,CAAE0oB,OAAQG,GAAYZ,GAA2BjgB,OAG1Dy0F,GACA,OAAJl+F,QAAI,IAAJA,OAAA,EAAAA,EAAMmqB,SAAUD,GAAcR,GAA2B1pB,EAAKmqB,QAChE,OAAK+zE,EAGH,sBAAKroG,UAAWK,EAAQmN,QAAxB,SACE,iCACE,uBAAKxN,UAAWK,EAAQqE,OAAxB,UACE,eAAC/D,GAAD,4CACA,eAACu5C,GAAD,CAAkBz6C,MAAO,IAAzB,SACE,gBAACoB,GAAD,mGAEwB,IACtB,oBACEe,OAAO,SACPgQ,IAAI,sBACJC,KAAK,2EAHP,kBAHF,YAaJ,eAAC,GAAD,CACElO,MAAO,qBACP2R,QAAS+yF,EAAmB/2F,OAC5BwjC,KAAM,SAAAriC,GAAK,OAAIqiC,EAAK,CAAExjC,OAAQmB,KAC9BvC,MAAOm4F,EAAmB/2F,OAAS,MAAQ,OAE7C,eAAC,GAAD,CACE4gC,QAASwM,EACT/6C,MAAM,eACNwG,KAAMk+F,EACN55D,SAAU,CACR,CACEt/B,KAAM,cACNhR,QAAS,eAEX,CACEgR,KAAM,wBACNhR,QAAS,4BAGb22C,KAAMA,SAzCkB,QCrC5B2qC,GAAc,CAClBhlE,MAAO,CACLtV,SAAU,WACV1F,MAAO,IACPX,OAAQ,GACRG,QAAS,CAAC,CAAC,EAAG,EAAG,EAAG,KAEtBygF,WAAY,CACVvhF,QAAS,OACT8H,cAAe,SACf,oBAAqB,CACnBnH,OAAQ,GACRtC,WAAY,OACZI,SAAUnB,GACVkS,gBAAiB,OACjBiK,YAAa,EACbvZ,OAAQ,CAAC,CAAC,EAAG,EAAG,EAAG,KAErB,mBAAoB,CAClBqO,SAAU,SACV8I,WAAY,SACZ+vC,aAAc,WACdlnD,OAAQ,KAKRwhF,GAAiBjgF,YAAW6/E,IAE5B6oB,GAAQ,SAAC,GAAgD,IAAD,EAA7Cp2D,EAA6C,EAA7CA,QAASz3B,EAAoC,EAApCA,MAAO8oF,EAA6B,EAA7BA,aAAiBnjG,EAAY,kDACtDC,EAAUw/E,KAEVv/E,GAAU,mBACbD,EAAQoa,OAAQ,GADH,cAEbpa,EAAQq/E,YAAcxtC,GAFT,GAKhB,OACE,uBAAKlyC,UAAWO,IAAWD,GAA3B,WACI4xC,GACA,uCACE,eAAC3wC,GAAD,UAASkZ,EAAMvK,QACf,eAACjP,GAAD,UAAQsiG,EAAa9oF,EAAMhI,YAG9By/B,GACC,eAAC,KAAD,aACElvC,GAAIyX,EAAMtL,KACVA,KAAMsL,EAAMtL,KACZuT,UAAWjI,EAAMiI,UACjB5J,YAAa2B,EAAM3B,YACnBxQ,KAAMmS,EAAMnS,KACZ4H,MAAOuK,EAAMvK,MACbzQ,MAvDU,KAwDNW,QAORkpC,GAAa7/B,IAAH,kEAMVsY,GAActY,IAAH,4GAMX8+F,GAAmB3oG,YAAWooG,IAgNrBQ,GA9MK,SAAC,GAAgB,IAAD,QAAb9pD,EAAa,EAAbA,OACfr+C,EAAUkoG,KADkB,EAGJl+F,mBAASq0C,IAAU,GAHf,mBAG3BxM,EAH2B,KAGlBiD,EAHkB,OAIR9qC,mBAAS,MAJD,mBAI3BjC,EAJ2B,KAIpB4tC,EAJoB,OAMbprC,YAAYmX,GAAa,CAC5Ce,YAAa,kBAAMqyB,GAAW,IAC9BpqC,eAAgB,iBAAM,CAAC,YACvBF,QAAS,SAAA8T,GAAC,OAAIq3B,EAASr3B,MAHlB8gC,EAN2B,oBAY1Bt1C,EAASF,YAASq/B,IAAlBn/B,KAEF2qC,EAAO,SAAAlhC,GACX,OAAO6rC,EAAW,CAChB7zC,UAAW,CAAE0oB,OAAQG,GAAYZ,GAA0BjgB,OAIzDqW,GACA,OAAJ9f,QAAI,IAAJA,OAAA,EAAAA,EAAMmqB,SAAUD,GAAcR,GAA0B1pB,EAAKmqB,QAE/D,IAAKrK,EAAM,OAAO,KAElB,IAAM/H,EAAmBC,OAAaC,MAAM,CAC1C9Q,OAAQ6Q,OACRhT,KAAMgT,OACN81D,MAAO91D,OACPqK,MAAOrK,OACJqK,MAAM,sCACNnK,SAAS,wBACZomF,QAAStmF,OACTumF,cAAevmF,SAGX20D,EAAS,CACb,CACE3nE,KAAM,OACNe,MAAO,YACPuC,MAAK,UAAEwX,EAAK9a,YAAP,QAAe,GACpBuT,UAAWrQ,IAEb,CACElD,KAAM,QACNe,MAAO,eACPuC,MAAOwX,EAAKguD,MACZv1D,UAAWrQ,IAEb,CACElD,KAAM,QACNe,MAAO,QACPuC,MAAK,UAAEwX,EAAKuC,aAAP,QAAgB,GACrB9J,UAAWrQ,IAEb,CACElD,KAAM,UACNe,MAAO,UACPuC,MAAK,UAAEwX,EAAKw+E,eAAP,QAAkB,GACvB/lF,UAAWrQ,IAEb,CACElD,KAAM,gBACNe,MAAO,iBACPuC,MAAK,UAAEwX,EAAKy+E,qBAAP,QAAwB,GAC7BhmF,UAAWrQ,KAITs2F,EAAY,SAAAx5F,GAAI,OAAIpG,KAAOA,IAAS,OAAQoG,GAAxBpG,CAA+B+tE,IACnD8xB,EAAY,SAAAz5F,GAAI,OAAIw5F,EAAUx5F,GAAMsD,OAEpCo2F,EAAmB,SAAAp2F,GAAK,OAAIA,GAE5BiI,EAAO,CACXM,cAAe,CACb1J,OAAQ2Y,EAAK3Y,OACbnC,KAAMy5F,EAAU,QAChB3wB,MAAO2wB,EAAU,SACjBp8E,MAAOo8E,EAAU,SACjBH,QAASG,EAAU,WACnBF,cAAeE,EAAU,mBAIvB16E,EAAc,SAAAC,GAAY,OAC7BplB,IAAQolB,EAAa3B,OAA8B,KAArB2B,EAAa3B,OAE9C,OACE,uCACE,sBAAKxsB,UAAWK,EAAQqE,OAAxB,SACE,eAAC/D,GAAD,oCAEF,uBAAKX,UAAWK,EAAQ4nG,UAAxB,UACE,eAACpnG,GAAD,iCACA,uBAAKb,UAAWK,EAAQ6nG,OAAxB,UACE,eAAC,GAAD,CACE5yF,QAAS2U,EAAK3Y,OACdiB,SAAU,SAAAxC,GAAK,OACb+kC,EAAK,CACHxjC,OAAQvB,EAAMnO,OAAO0T,aAI3B,eAAChU,GAAD,UAAS2oB,EAAK3Y,OAAS,MAAQ,aAGnC,uBAAKtR,UAAWK,EAAQm6D,QAAxB,UACE,uBAAKx6D,UAAWK,EAAQqE,OAAxB,UACE,eAAC/D,GAAD,yBACEuxC,GACA,eAAC,GAAD,CACElyC,UAAWK,EAAQs5C,kBACnBpwC,QAAS,kBAAM4rC,GAAW,IAF5B,SAGE,eAAC,GAAD,SAIN,eAAC,KAAD,CACEjyB,gBAAgB,EAChBC,kBAAkB,EAClBg0B,oBAAkB,EAClBn8B,cAAeN,EAAKM,cACpBkH,iBAAkBA,EAClBoB,SAAU,SAAA5L,GAAM,OAAIo9B,EAAK5yB,EAAiBg0B,KAAKx+B,KAC/CowB,QAAS,WACPqN,GAAW,GACXa,EAAS,OATb,SAWG,gBAAGp7B,EAAH,EAAGA,OAAH,OACC,gBAAC,KAAD,WACE,eAAC,GAAD,IACA,uBAAK5a,UAAWK,EAAQ0c,IAAxB,UACE,eAAC,GAAD,CACEtC,MAAOkuF,EAAU,QACjBz2D,QAASA,EACTqxD,aAAcsF,EACdpwF,QAAS,kBAAMu9B,EAAS,SAE1B,eAAC,GAAD,CACEv7B,MAAOkuF,EAAU,SACjBz2D,QAASA,EACTqxD,aAAcsF,EACdpwF,QAAS,kBAAMu9B,EAAS,YAG5B,uBAAKh2C,UAAWK,EAAQ0c,IAAxB,UACE,eAAC,GAAD,CACEtC,MAAOkuF,EAAU,SACjBz2D,QAASA,EACTqxD,aAAcsF,EACdpwF,QAAS,kBAAMu9B,EAAS,SAE1B,eAAC,GAAD,CACEv7B,MAAOkuF,EAAU,WACjBz2D,QAASA,EACTqxD,aAAcsF,EACdpwF,QAAS,kBAAMu9B,EAAS,YAG5B,sBAAKh2C,UAAWK,EAAQ0c,IAAxB,SACE,eAAC,GAAD,CACEtC,MAAOkuF,EAAU,iBACjBz2D,QAASA,EACTqxD,aAAcsF,EACdpwF,QAAS,kBAAMu9B,EAAS,WAG3B9D,KAAahkB,EAAYtT,IACxB,eAAC,GAAD,CAAc5a,UAAWK,EAAQ8nG,aAAjC,SACGj6E,EAAYtT,KAGjB,sBAAK5a,UAAWO,IAAWF,EAAQ0c,IAAK1c,EAAQuQ,QAAhD,SACGshC,GACC,uCACE,eAAC,GAAD,CAAMz1C,MAAM,UAAU6L,KAAK,SAA3B,kBAGA,eAAC,GAAD,CAAM7L,MAAM,YAAY6L,KAAK,QAA7B,oBAGCF,GACC,eAAC,GAAD,oDASds2C,GACA,uBAAK1+C,UAAWO,IAAWF,EAAQm6D,QAASn6D,EAAQ47D,aAApD,UACE,eAAC,GAAD,IACA,eAAC56D,GAAD,8LCzRJ1B,GAAYC,YAAWooG,IAEvB1+D,GAAa7/B,IAAH,kEAMVsY,GAActY,IAAH,4GAmHFq/F,GA7GS/oG,gBAAK,YAAiB,IAAd2+C,EAAa,EAAbA,OACxBr+C,EAAUV,KAERwK,EAASF,YAASq/B,IAAlBn/B,KAHmC,EAKtBS,YAAYmX,GAAa,CAC5ChX,eAAgB,iBAAM,CAAC,cADlB00C,EALoC,oBAcrCspD,GACA,OAAJ5+F,QAAI,IAAJA,OAAA,EAAAA,EAAMmqB,SAAUD,GAAcR,GAAoB1pB,EAAKmqB,QACzD,OAAKy0E,EAGH,uCACE,sBAAK/oG,UAAWK,EAAQqE,OAAxB,SACE,eAAC/D,GAAD,gCAEF,uBAAKX,UAAWK,EAAQ4nG,UAAxB,UACE,eAACpnG,GAAD,sCACA,uBAAKb,UAAWK,EAAQ6nG,OAAxB,UACE,eAAC,GAAD,CACE5yF,QAASyzF,EAAsBz3F,OAC/BiB,SAAU,SAAAxC,GAAK,OACb0vC,EAAW,CACT7zC,UAAW,CACT0oB,OAAQG,GACNZ,GACA9qB,KAAQggG,EAAuB,CAC7Bz3F,OAAQvB,EAAMnO,OAAO0T,iBAOjC,eAAChU,GAAD,UAASynG,EAAsBz3F,OAAS,MAAQ,aAGpD,uBAAKtR,UAAWK,EAAQ4nG,UAAxB,UACE,eAACpnG,GAAD,gCACA,uBAAKb,UAAWK,EAAQ6nG,OAAxB,UACE,eAAC,GAAD,CACE5yF,QAASyzF,EAAsBC,IAC/Bz2F,SAAU,SAAAxC,GAAK,OACb0vC,EAAW,CACT7zC,UAAW,CACT0oB,OAAQG,GACNZ,GACA9qB,KAAQggG,EAAuB,CAC7BC,IAAKj5F,EAAMnO,OAAO0T,iBAO9B,eAAChU,GAAD,UAASynG,EAAsBC,IAAM,MAAQ,aAGjD,eAAC,GAAD,CACE92D,QAASwM,EACT/6C,MAAO,mCACPwG,KAAM4+F,EACNt6D,SAAU,CACR,CACEt/B,KAAM,kBACNhR,QAAS,oBAEX,CACEgR,KAAM,gBACNhR,QAAS,kBAEX,CACEgR,KAAM,gBACNhR,QAAS,kBAEX,CACEgR,KAAM,gBACNhR,QAAS,kBAEX,CACEgR,KAAM,kBACNhR,QAAS,oBAEX,CACEgR,KAAM,4BACNhR,QAAS,4CAEX,CACEgR,KAAM,eACNhR,QAAS,iBAEX,CACEgR,KAAM,gBACNhR,QAAS,oBAGb22C,KA9FO,SAAAlhC,GAAE,OACb6rC,EAAW,CACT7zC,UAAW,CAAE0oB,OAAQG,GAAYZ,GAAoBjgB,YAKtB,QC3CrC,SAAS,KAA2Q,OAA9P,GAAWlS,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,OAAQ,KAAmB,gBAAoB,OAAQ,CAClG0B,EAAG,ikMACHN,GAAI,YAGF,GAAqB,gBAAoB,IAAK,CAChDA,GAAI,UACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,uBACJK,UAAW,sCACG,gBAAoB,IAAK,CACvCL,GAAI,oBACJK,UAAW,oCACG,gBAAoB,IAAK,CACvCL,GAAI,sBACU,gBAAoB,OAAQ,CAC1CA,GAAI,SACJG,KAAM,SACQ,gBAAoB,MAAO,CACzC4hB,UAAW,aACK,gBAAoB,MAAO,CAC3C/hB,GAAI,OACJG,KAAM,UACN4hB,UAAW,gBAGb,SAASkkF,GAAaxlG,EAAMC,GAC1B,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,GAAO,IAGlC,IAAI,GAA0B,aAAiBslG,ICoChCppG,IDnCA,ICpDA,CACb6E,OAAQ,CACNvG,QAAS,OACTgH,SAAU,WACVjG,WAAY,SACZyF,eAAgB,gBAChBlF,MAAO,KAETib,KAAM,CACJ,QAAS,CACP7V,UAAW,IAEb1G,QAAS,OACT8H,cAAe,SACfnH,OAAQ,QAEV6qB,OAAQ,CACNxrB,QAAS,OACT8H,cAAe,MACf5H,OAAQ,CAAC,CAAC,OAAQ,EAAGpC,GAAY,KAEnC2U,OAAQ,CACNvS,OAAQ,CAAC,CAAC,OAAQ,EAAG,EAAG,UAE1B6qG,WAAY,CACV/jG,SAAU,WACVG,KAAM,qBAAGC,GACTkI,OAAQ,qBAAGpI,GACX5F,MAAO,IACPiN,SAAU,WAEZy8F,oBAAqB,CACnBhrG,QAAS,OACT8H,cAAe,MACf/G,WAAY,WACZ,QAAS,CACPkH,YAAa,KAGjBgjG,eAAgB,CACdjrG,QAAS,OACTsB,MAAO,GACPX,OAAQ,GACRE,aAAc,GACd5E,gBAAiB,UACjB8E,WAAY,SACZyF,eAAgB,UAElB0kG,kBAAmB,CACjB5pG,MAAO,IACPR,QAAS,GACTD,aAAc,sBAEhBsqG,YAAa,CACX7pG,MAAO,IACPtB,QAAS,OACT8H,cAAe,SACf/G,WAAY,gBACZ,UAAW,CACT2F,UAAW,IAEb,sBAAuB,CACrBA,UAAW,GAEb,gBAAiB,CACfxG,OAAQ,CAAC,CAAC,EAAG,EAAG,EAAG,KAErB,uBAAwB,CACtB7B,WAAY,OACZC,MAAOhC,GACPmC,SAAUnB,GACVoB,WAAYzB,GACZ0B,WAAY,KAEdgI,WAAY,OACZsB,YAAa,QAEfmjG,eAAgB,CACd9pG,MAAO,KAET+pG,mBAAoB,CAClBrrG,QAAS,OACT8H,cAAe,MACf/G,WAAY,Y,UC1FhB,SAAS,KAA2Q,OAA9P,GAAWwC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,0BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,IAAK,CACvCP,GAAI,UACJC,OAAQ,WACM,gBAAoB,OAAQ,CAC1CK,EAAG,gOACHN,GAAI,aACW,gBAAoB,WAAY,CAC/CA,GAAI,WACJyE,OAAQ,yCAGV,SAAS,GAAShE,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB,IAChC,IChDf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,2BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACV+D,cAAe,QACf5D,eAAgB,SACF,gBAAoB,IAAK,CACvCP,GAAI,UACJC,OAAQ,WACM,gBAAoB,OAAQ,CAC1CK,EAAG,gOACHN,GAAI,aACW,gBAAoB,WAAY,CAC/CA,GAAI,WACJyE,OAAQ,yCAGV,SAAS,GAAUhE,EAAMC,GACvB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,I,0CAAI,GAA0B,aAAiB,IC9BzChE,ID+BS,IC/BGC,YAAWC,KAEvBquB,GAAc,SAACC,EAAcC,EAAevC,GAChD,OAAKsC,GAAiBC,EAClBvC,EAAsB,wBACtBsC,EAAape,OAASqe,EAAcre,MAAcoe,EAAape,MAC/Doe,EAAa5lB,SAAW6lB,EAAc7lB,QAAgB4lB,EAAa5lB,QAChE,KAJqC,MAOxCkhG,GAAU,CACdC,QAAS,CACPC,UAAWxnF,OACRE,SAAS,oCACTqrD,OACAprD,KAAK,CACJnT,KAAM,WACN5G,QAAS,qDACT4R,WAAW,EACXmI,KAAM,SAAA7P,GAAK,aAAS,OAALA,QAAK,IAALA,GAAA,UAAAA,EAAOyU,MAAM,iBAAb,eAA8BnlB,QAAS,KAEvDugB,KAAK,CACJnT,KAAM,kBACN5G,QAAS,8CACT4R,WAAW,EACXmI,KAAM,SAAA7P,GAAK,aAA6C,KAApC,OAALA,QAAK,IAALA,GAAA,UAAAA,EAAOyU,MAAM,iBAAb,eAA8BnlB,YAGnD6nG,qBAAsB,CACpBD,UAAWxnF,OACRE,SAAS,oCACTqrD,QAELm8B,WAAY,CACVF,UAAWxnF,OAAaurD,SAItBo8B,GAAQ,CACZJ,QAAS,CACP,CAAErxF,KAAM,QAASla,QAAS,oBAAqB4rG,YAAY,GAC3D,CAAE1xF,KAAM,aAAcla,QAAS,YAAa4rG,YAAY,IAE1DH,qBAAsB,CACpB,CAAEvxF,KAAM,aAAcla,QAAS,YAAa4rG,YAAY,IAE1DF,WAAY,CAAC,CAAExxF,KAAM,aAAcla,QAAS,YAAa4rG,YAAY,KAGjEC,GAAmB,CACvBN,QAAS,6BACTE,qBACE,2FACFC,WAAY,IA0ICI,GAvIS,SAAC,GAMlB,IAAD,IALJ56B,EAKI,EALJA,UACAp/D,EAII,EAJJA,QACA+4F,EAGI,EAHJA,IACA3R,EAEI,EAFJA,cACAzmF,EACI,EADJA,OAEMvQ,EAAUV,KAEVqb,EAAgB,CACpBjL,MAAQhH,IAAQigG,GAAmB,GAAZA,EAAIj5F,MAC3BxH,QAAUQ,IAAQigG,GAAqB,GAAdA,EAAIzgG,SAGzB2Z,EAAmBC,OAAaC,MAAM,CAC1CrS,MAAOoS,OAAaE,SAAS,yBAC7B9Z,QAAO,oBACLkhG,GAAO,OAACT,QAAD,IAACA,OAAD,EAACA,EAAKj5F,cADR,aACL,EAAqB45F,iBADhB,QAELxnF,OACGE,SAAS,oCACTqrD,SAqBP,OACE,qCACG2B,GACC,eAAC,GAAD,CACE1rE,MAAK,8BAAkBqlG,QAAlB,IAAkBA,OAAlB,EAAkBA,EAAKkB,aAC5BnyD,sBAAsB,EACtBt4C,MAAO,IACPX,OAAQ,IACRkQ,MAAM,EACNW,YAAaM,EANf,SAOE,eAAC,KAAD,CACEiT,gBAAgB,EAChBC,kBAAkB,EAClBnI,cAAeA,EACfkH,iBAAkBA,EAClBoB,SAAU,SAAC5L,EAAQkD,EAAQD,GAAjB,OAjCC,SAAAjD,GAEf9G,EADJo4F,EACW,CACLp9F,UAAW,CACT5I,GAAIgmG,EAAIhmG,GACR+M,MAAO2H,EAAO3H,MACdxH,QAASmP,EAAOnP,UAGb,CACLqD,UAAW,CACTmE,MAAO2H,EAAO3H,MACdxH,QAASmP,EAAOnP,WAGxB0H,IAmBU6b,CAAapU,IANjB,SAQG,gBAAGA,EAAH,EAAGA,OAAQkD,EAAX,EAAWA,OAAQD,EAAnB,EAAmBA,QAASE,EAA5B,EAA4BA,cAA5B,OACC,gBAAC,KAAD,CAAM7X,GAAG,aAAahD,UAAWK,EAAQqa,KAAzC,UACE,eAAC,GAAD,CACEje,MAAM,UACNwD,KAAMkqG,GACNjqG,YAAakqG,GACbpqG,UAAWK,EAAQkpG,eACnBjhG,KAAK,SACLiB,QAAS,kBACPsR,EAAc,UAAWmvF,GAAgB,OAAChB,QAAD,IAACA,OAAD,EAACA,EAAKj5F,SAPnD,8BAWA,eAAC,KAAD,CACEZ,KAAK,UACLe,MAAM,kBACNuD,WAAS,EACT6zE,WAAW,EACXC,KAAM,EACN7kE,UAAWrQ,KAEZtJ,KAAS+gG,GAAK,OAACd,QAAD,IAACA,OAAD,EAACA,EAAKj5F,QAAU,GAC7B,eAAC/O,GAAD,CAAO5C,UAAQ,EAAf,8BAEF,sBAAK4B,UAAWK,EAAQipG,YAAxB,SACGvgG,KACC,SAAA6K,GAAE,OACA,+BACG7K,KACC,SAAAgxD,GAAG,OACD,eAACx+C,GAAA,EAAD,CACErL,MAAO6pD,EAAI57D,QACX8N,KAAK,QACL6J,MAAO,CAAE1b,gBAAiBX,GAC1B2e,SAAUrP,IAAWgxD,EAAI1hD,KAAMX,EAAOnP,SACtCvI,UAAWK,EAAQ8c,KACnB5T,QAAS,WACPsR,EACE,UACAnD,EAAOnP,QAAQ6sD,OACc,MAA3BrsD,KAAO2O,EAAOnP,SAAmB,GAAK,IACtCwxD,EAAI1hD,YAMdzE,OAIN7K,KAAa,EAAG+gG,GAAK,OAACd,QAAD,IAACA,OAAD,EAACA,EAAKj5F,WAG/B,uBAAK/P,UAAWK,EAAQspB,OAAxB,UACGuE,GAAYtT,EAAQD,EAAS08E,IAC5B,eAAC,GAAD,UACGnpE,GAAYtT,EAAQD,EAAS08E,KAGlC,eAAC9zE,GAAD,CACEjb,KAAK,SACLoS,KAAK,aACL1a,UAAWK,EAAQuQ,OAHrB,mCC5KZjR,GAAYC,YAAWC,IAEvBwqG,GAAkB5gG,IAAH,6KAaf6gG,GAAkB7gG,IAAH,sMAQf8gG,GAAoB9gG,IAAH,4HAQjB+gG,GAAqB/gG,IAAH,8HAQlBghG,GAAe,SAACr2E,EAAKJ,GACzB,IAAI02E,EAAK,IAAIC,OAAOjpG,OAAOgB,KAAKsxB,GAAKuN,KAAK,KAAM,MAEhD,OAAOnN,EAAIo2B,QAAQkgD,GAAI,SAASE,GAC9B,OAAO52E,EAAI42E,EAAQC,mBAIjBrjB,GAAgB,SAAAh6E,GACpB,IAAMi6E,EAAY1+E,KAAQ,KAARA,CAAcyE,GAChC,OAAOzE,KAAM,SAAC6K,EAAIqE,GAChB,OAAIA,IAAQwvE,EAAU1lF,OAAe,qCAAG6R,IAEtC,uCACGA,EACD,6BAGH6zE,IAGCqjB,GAAW,CACfpB,QAAQ,GACRE,qBAAqB,GACrBC,WAAYriB,GAAc,sLAItBujB,GAAa,SAAC,GAAqB,IAAnB/B,EAAkB,EAAlBA,IAAKxgF,EAAa,EAAbA,OACnBnoB,EAAUV,GAAU6oB,GAEpB01C,EAAU,CACd,QAAS,IACT,aAAcxjC,aAAO,QAAS,IAAIxxB,OAGpC,OACE,sBAAKlJ,UAAWK,EAAQ6oG,WAAxB,SACE,uBAAKlpG,UAAWK,EAAQ8oG,oBAAxB,UACE,sBAAKnpG,UAAWK,EAAQ+oG,eAAxB,SACE,eAAC,GAAD,CAAW3pG,MAAO,GAAIX,OAAQ,OAEhC,eAAC+P,GAAA,EAAD,CAAO7O,UAAWK,EAAQgpG,kBAA1B,SACE,eAACxoG,GAAD,CAAGzC,UAAQ,EAAX,SACG2K,KAAA,OAAUigG,QAAV,IAAUA,OAAV,EAAUA,EAAKzgG,SACd,sDAEAi/E,GAAcijB,GAAY,OAACzB,QAAD,IAACA,OAAD,EAACA,EAAKzgG,QAAS21D,QAI/C,eAAC38D,GAAD,UAASm5B,aAAO,QAAS,IAAIxxB,cAmJtB8hG,GA7II,WACjB,IAAM3qG,EAAUV,KADO,EAGW0K,oBAAS,GAHpB,mBAGhBglE,EAHgB,KAGLC,EAHK,OAIejlE,mBAAS,MAJxB,mBAIhB4gG,EAJgB,KAIHC,EAJG,OAKe7gG,oBAAS,GALxB,mBAKhB8gG,EALgB,KAKHC,EALG,OAMmB/gG,mBAAS,CAAE9E,EAAG,EAAGF,EAAG,IANvC,mBAMhBgmG,EANgB,KAMDC,EANC,OAOSjhG,mBAAS,IAPlB,mBAOhBojE,EAPgB,KAON8B,EAPM,OASkCtlE,YACvDogG,IADYkB,EATS,EASfphG,KAA6BqhG,EATd,EASKphG,QATL,EAaDQ,YAAY0/F,GAAiB,CACjDz/F,QAAS,gBAAG4gG,EAAH,EAAGA,IAAH,OAAal8B,EAAYk8B,IAClC1gG,eAAgB,iBAAM,CAAC,iBAFlB2gG,EAbgB,sBAkBC9gG,YAAY2/F,GAAmB,CACrD1/F,QAAS,gBAAG4gG,EAAH,EAAGA,IAAH,OAAal8B,EAAYk8B,IAClC1gG,eAAgB,iBAAM,CAAC,iBAFlB4gG,EAlBgB,sBAuBE/gG,YAAY4/F,GAAoB,CACvD3/F,QAAS,gBAAG4gG,EAAH,EAAGA,IAAH,OAAal8B,EAAYk8B,IAClC1gG,eAAgB,iBAAM,CAAC,iBAFlB6gG,EAvBgB,oBA4BjBxhG,EAAUohG,EAOV/8D,EAAW,CACf,CACE/pC,OAAQ,eACRjF,MAAO,IACPwM,KAAM,KACNiG,UAAW,OACXohC,KAAM,SAAA1/B,GAAE,OACL7K,KAAU+hG,GAASl3F,EAAG7D,QAQrBhH,IAAO,cAAe6K,GAPtB,uBAAK5T,UAAWK,EAAQmpG,mBAAxB,UACGzgG,IAAO,cAAe6K,GACvB,eAACsmC,GAAD,CAAkBz6C,MAAO,IAAzB,SACE,eAACoB,GAAD,UAAIiqG,GAASl3F,EAAG7D,gBAO1B,CACErL,OAAQ,OACRjF,MAAO,IACPwM,KAAM,KACNiG,UAAW,SACXohC,KAAM,SAAA1/B,GAAE,OACN,eAAC,GAAD,CACErK,QAAS,WACP6hG,GAAe,GACfF,EAAet3F,GACf07D,GAAa,IAJjB,SAME,eAAC,GAAD,QAIN,CACE5qE,OAAQ,SACRjF,MAAO,IACPwM,KAAM,KACNiG,UAAW,SACXohC,KAAM,SAAA1/B,GAAE,OACN,eAAC,GAAD,CACEwE,UAAWxE,EAAGi4F,YACdtiG,QAAS,WACPqK,EAAGvF,QACCu9F,EAAe,CAAEhgG,UAAW,CAAE5I,GAAI4Q,EAAG5Q,MACrC2oG,EAAc,CAAE//F,UAAW,CAAE5I,GAAI4Q,EAAG5Q,OAE1CsS,QAAS1B,EAAGvF,YAIlB,CACE3J,OAAQ,GACRjF,MAAO,IACPwM,KAAM,KACNiG,UAAW,SACXohC,KAAM,SAAA1/B,GAAE,OACN,eAAC,GAAD,CACErK,QAAS,SAAAoV,GACPusF,EAAet3F,GACf03F,EAAiB,CACf/lG,EAAGoZ,EAAE3O,cAAc5E,wBAAwB5G,MAAQ,GACnDa,EACEioB,OAAOw+E,YACP,EACAntF,EAAE3O,cAAc5E,wBAAwBqC,SAE5C1E,KAASkiG,EAAar3F,GAClBw3F,GAAgBD,GAChBC,GAAe,IAZvB,SAcGriG,KAASkiG,EAAar3F,IAAOu3F,EAC5B,eAAC,GAAD,IAEA,eAAC,GAAD,SAOV,OACE,uCACE,sBAAKnrG,UAAWK,EAAQqE,OAAxB,SACE,eAAC/D,GAAD,4BAED0uE,GACC,eAAC,GAAD,CACEA,UAAWA,EACXp/D,QA9FY,WAClBq/D,GAAa,GACb47B,EAAe,OA6FTlC,IAAKiC,EACL5T,cAAe5pB,EACf78D,OAAQ86F,IAGXP,GAAe,eAAC,GAAD,CAAYnC,IAAKiC,EAAaziF,OAAQ6iF,IACtD,eAAC,GAAD,CACEn8C,UAAU,wBACVzgB,SAAUA,EACVrkC,QAASA,EACTD,KAAMpB,IAAO,CAAC,cAARA,CAAuBwiG,SCvO/BQ,GAAiBnsG,YVkDH,CAClB6a,MAAO,CACLtV,SAAU,WACV1F,MAAO,IACPR,QAAS,CAAC,CAAC,EAAG,EAAG,EAAG,KAEtBygF,WAAY,CACVvhF,QAAS,OACT8H,cAAe,UAEjB+lG,qBAAsB,CACpB,oBAAqB,CACnBltG,OAAQ,GACRtC,WAAY,OACZ6G,UAAW,cACXsK,gBAAiB,OACjBiK,YAAa,EACbvZ,OAAQ,CAAC,CAAC,EAAG,EAAG,EAAG,KAErB,mBAAoB,CAClBqO,SAAU,SACV8I,WAAY,SACZ+vC,aAAc,WACdzmD,OAAQ,GACRT,OAAQ,IAGZ4tG,oBAAqB,CACnB,oBAAqB,CACnBntG,OAAQ,GACRtC,WAAY,OACZ6G,UAAW,cACXsK,gBAAiB,OACjBiK,YAAa,EACbvZ,OAAQ,CAAC,CAAC,EAAG,EAAG,EAAG,KAErB,mBAAoB,CAClBoB,MAAO,IACPX,OAAQ,IACR+G,UAAW,OACXrJ,WAAY,OACZ42B,SAAU,WACV/0B,OAAQ,MU1FRiqG,GAAQ,SAAC,GAWR,IAAD,EAVJp2D,EAUI,EAVJA,QACA/iC,EASI,EATJA,KACA1P,EAQI,EARJA,MACAqZ,EAOI,EAPJA,YACA5I,EAMI,EANJA,MACAuC,EAKI,EALJA,MAKI,IAJJ60E,iBAII,SAHJC,EAGI,EAHJA,KACA9uE,EAEI,EAFJA,QACGrY,EACC,qGACEC,EAAU0rG,KAEVzrG,GAAU,mBACbD,EAAQoa,OAAQ,GADH,cAEbpa,EAAQq/E,YAAcxtC,GAFT,cAGb7xC,EAAQ2rG,sBAAwB95D,IAAYo1C,GAH/B,cAIbjnF,EAAQ4rG,qBAAuB/5D,GAAWo1C,GAJ7B,GAOhB,OACE,uBAAKtnF,UAAWO,IAAWD,GAA3B,WACI4xC,GACA,uCACE,eAAC3wC,GAAD,UAAS2O,IACT,eAACjP,GAAD,UAAQwR,OAGXy/B,GACC,eAAC,KAAD,aACElvC,GAAImM,EACJA,KAAMA,EACNuT,UAAWrQ,GACX5S,MAAOA,EACPqZ,YAAaA,EACbxQ,KAAK,OACL4H,MAAOA,EACPo3E,UAAWA,EACXC,KAAMA,EACN2kB,QAAQ,IACRzzF,QAASA,GACLrY,QAORkpC,GAAa7/B,IAAH,kEAMVsY,GAActY,IAAH,4GAMX0iG,GAA2BvsG,YAAWooG,IA6K7BoE,GA3KS,WAAO,IAAD,cACF/hG,mBAAS,MADP,mBACrBjC,EADqB,KACd4tC,EADc,OAEE3rC,oBAAS,GAFX,mBAErB6nC,EAFqB,KAEZiD,EAFY,OAGPvqC,YAAYmX,GAAa,CAC5Ce,YAAa,WACXkzB,EAAS,MACTb,GAAW,IAEbpqC,eAAgB,iBAAM,CAAC,YACvBF,QAAS,SAAA8T,GAAC,OAAIq3B,EAASr3B,MANlB8gC,EAHqB,oBAYtBp/C,EAAU8rG,KAERhiG,EAASF,YAASq/B,IAAlBn/B,KAEFkiG,GACA,OAAJliG,QAAI,IAAJA,OAAA,EAAAA,EAAMmqB,SAAUD,GAAcR,GAA6B1pB,EAAKmqB,QAC5Dg4E,EAAQ,OAAGD,QAAH,IAAGA,IAAsB,GACjCE,EAAY,iBAAGF,QAAH,IAAGA,OAAH,EAAGA,EAAoB/6F,cAAvB,SACZk7F,EAAgB,iBAAGH,QAAH,IAAGA,OAAH,EAAGA,EAAoBI,aAAvB,SAEhB33D,EAAO,SAAAlhC,GAAE,OACb6rC,EAAW,CACT7zC,UAAW,CAAE0oB,OAAQG,GAAYZ,GAA6BjgB,OAG5DkjE,EAAS,CACb,CACE3nE,KAAM,QACNe,MAAO,eACPuC,MAAK,UAAE65F,EAAS3oG,aAAX,QAAoB,GACzBlE,MAAO,KAET,CACE0P,KAAM,OACNe,MAAO,eACPuC,MAAK,UAAE65F,EAAS/iF,YAAX,QAAmB,GACxB9pB,MAAO,IACP6nF,WAAW,EACXC,KAAM,GAER,CACEp4E,KAAM,mBACNe,MAAO,qBACPuC,MAAK,UAAE65F,EAASI,wBAAX,QAA+B,GACpC5zF,YAAa,WACbrZ,MAAO,KAET,CACE0P,KAAM,mBACNe,MAAO,qBACPuC,MAAK,UAAE65F,EAASK,wBAAX,QAA+B,GACpC7zF,YAAa,SACbrZ,MAAO,MAKLmpG,EAAY,SAAAz5F,GAAI,OADJ,SAAAA,GAAI,OAAIpG,KAAOA,IAAS,OAAQoG,GAAxBpG,CAA+B+tE,GAC/B6xB,CAAUx5F,GAAMsD,OAEpCuI,EAAgB,CACpBrX,MAAOilG,EAAU,SACjBr/E,KAAMq/E,EAAU,QAChB8D,iBAAkB9D,EAAU,oBAC5B+D,iBAAkB/D,EAAU,qBAGxB1mF,EAAmBC,OAAaC,MAAM,CAC1Cze,MAAOwe,OACJE,WACA1N,IAAI,GAAI,YACX4U,KAAMpH,OAAaE,WACnBqqF,iBAAkBvqF,OACfE,WACA1N,IAAI,GAAI,YACXg4F,iBAAkBxqF,OACfE,WACA1N,IAAI,GAAI,cAGb,OACE,uCACE,sBAAK3U,UAAWK,EAAQqE,OAAxB,SACE,eAAC/D,GAAD,mCAEF,uBAAKX,UAAWK,EAAQ4nG,UAAxB,UACE,eAACpnG,GAAD,6BACA,uBAAKb,UAAWK,EAAQ6nG,OAAxB,UACE,eAAC,GAAD,CACE5yF,QAASi3F,EACTh6F,SAAU,SAAAxC,GAAK,OACb+kC,EAAK,CACHxjC,OAAQvB,EAAMnO,OAAO0T,aAI3B,eAAChU,GAAD,UAASirG,EAAe,MAAQ,aAGpC,uBAAKvsG,UAAWK,EAAQ4nG,UAAxB,UACE,eAACpnG,GAAD,4CACA,uBAAKb,UAAWK,EAAQ6nG,OAAxB,UACE,eAAC,GAAD,CACE5yF,QAASk3F,EACTj6F,SAAU,SAAAxC,GAAK,OACb+kC,EAAK,CACH23D,MAAO18F,EAAMnO,OAAO0T,aAI1B,eAAChU,GAAD,UAASkrG,EAAmB,MAAQ,aAGxC,uBAAKxsG,UAAWK,EAAQqE,OAAxB,UACE,eAAC1D,GAAD,yBACEkxC,GACA,eAAC,GAAD,CACElyC,UAAWK,EAAQs5C,kBACnBpwC,QAAS,kBAAM4rC,GAAW,IAF5B,SAGE,eAAC,GAAD,SAIN,eAAC,KAAD,CACEjyB,gBAAgB,EAChBC,kBAAkB,EAClBg0B,oBAAkB,EAClBn8B,cAAeA,EACfkH,iBAAkBA,EAClBoB,SAAU,SAAA5L,GAAM,OAAIo9B,EAAKp9B,IACzBowB,QAAS,WACPqN,GAAW,GACXa,EAAS,OATb,SAWE,gBAAC,KAAD,WACE,eAAC,GAAD,IACC8gC,EAAOrrE,KAAI,SAACujF,EAAG/2E,GAAJ,OACV,sBAAKjY,UAAWK,EAAQ0c,IAAxB,SACE,eAAC,GAAD,CACEm1B,QAASA,EACT/iC,KAAM6/E,EAAE7/E,KACR1P,MAAOuvF,EAAEvvF,MACTqZ,YAAak2E,EAAEl2E,YACf5I,MAAO8+E,EAAE9+E,MACTuC,MAAOu8E,EAAEv8E,MACT60E,UAAW0H,EAAE1H,UACbC,KAAMyH,EAAEzH,KACR9uE,QAAS,kBAAMu9B,EAAS,UAVM/9B,MAcpC,sBAAKjY,UAAWO,IAAWF,EAAQ0c,IAAK1c,EAAQuQ,QAAhD,SACGshC,GACC,uCACE,eAAC,GAAD,CAAMz1C,MAAM,UAAU6L,KAAK,SAA3B,kBAGA,eAAC,GAAD,CAAM7L,MAAM,YAAY6L,KAAK,QAA7B,oBAGCF,GAAS,eAAC,GAAD,mDCjOpB9J,GAAS,CACbsuG,QAASzyG,GACT0yG,WAAY9xG,IAGRutC,GAAmB,CACvBskE,Qrca4BrzG,UqcZ5BszG,WAAY/xG,IAGR+E,GAAS,CACbitG,gBAAiB,CACf3uG,QAAS,eACTohB,SAAU,IACVlhB,OAAQ,CAAC,CAAC,EAAG,MAEf8Q,KAAM,CACJxS,OAnBegC,GAAXb,OAoBJ8Z,YAAa,EACbnb,MAAO/B,KAILiF,GAAYC,YAAWC,IAEvB8uF,GAAgB/uF,YAAW,CAC/BoO,KAAM,CACJhP,aAAc/C,EACd4I,UAAW5I,EACXmK,YAAanK,EACbiK,aAAcjK,EACd6I,WAAY7I,EACZ6C,OAAQ7C,GACR7B,gBAAiB,gBAAGkO,EAAH,EAAGA,KAAH,OAAcggC,GAAiBhgC,KAElD4H,MAAO,CACLtT,SAAUlB,GACVoB,WAAYhB,GACZe,WAAYd,GACZkD,QAAS,CAAC,CAAChD,ErcDA,IqcEXQ,MAAO,gBAAG6L,EAAH,EAAGA,KAAH,OAAchK,GAAOgK,OA+BjBykG,GA3BA,SAAC,GAA2B,IAG1BC,EAHC1/D,EAAwB,EAAxBA,QACVjtC,GADkC,2BACxBV,MAShB,OACE,uBAAKK,UAAWK,EAAQysG,gBAAxB,UACE,sBAAK9sG,UAAWK,EAAQ8O,KAAxB,SAA+BpG,KAAUukC,EAAQn+B,QACjD,eAACoM,GAAA,EAAD,CACErL,MACoB,YAAlBo9B,EAAQtmB,MAAR,uBAZOgmF,EAamB1/D,EAAQ2/D,OAZpCD,EAAO,GAAU,GAAN,OAAUA,EAAV,KACXA,EAAO,KAAY,GAAN,OAAUt4F,KAAKw4F,MAAMF,EAAO,IAA5B,KACbA,EAAO,MAAa,GAAN,OAAUt4F,KAAKw4F,MAAMF,EAAO,GAAK,IAAjC,KACZ,GAAN,OAAUt4F,KAAKw4F,MAAMF,EAAO,GAAK,GAAK,IAAtC,OAUUl/D,GAAiBR,EAAQtmB,OAE/B3mB,QAASsuF,GAAc,CACrBrmF,KAAwB,YAAlBglC,EAAQtmB,MAAsB,UAAY,qBCxDpDmmF,GAAc,CAClBC,mBAAoB,CAClBzwG,OAJqB0wG,GAAjB/oD,aAKJj/B,SAAU,OACVvgB,WAAY,GAEd0lC,cAAe,CACb7tC,OAVUgC,GAANxB,EAWJV,MAAO/B,GACP2D,OAAQ,iBAEVivG,YAAa,CACXnvG,QAAS,OACTwG,eAAgB,gBAChBuB,aAAc,IAEhB4mG,gBAAiB,CACfzuG,OAAQ,kBAINwB,GAASkJ,KAAQskG,GAAYF,IAE7BxtG,GAAYC,YAAWC,IAEvByyE,GAAW,CAAEj6D,KAAM,WAAYla,QAAS,YAIxCovG,GAAU9jG,IAAH,uOAWP+jG,GAAkB/jG,IAAH,8SAiBfsrB,GAAWtrB,IAAH,kEAsICu1F,GAhIF,WAAO,IAAD,IACX3+F,EAAUV,KAEV8tG,EAAU7pF,mBAHC,EAKqBvZ,mBAAS,MAL9B,mBAKV40F,EALU,KAKGC,EALH,OAMe70F,mBAASioE,IANxB,mBAMVqtB,EANU,KAMA+N,EANA,OAQsBzjG,YAASujG,GAAiB,CAC/D1qF,YAAa,kBAAMo8E,EAAe,KAClCtzF,UAAW,CACTsH,MA/CkB,OA4Cd/I,EARS,EAQTA,KAAe43F,EARN,EAQH33F,QARG,EAcwCH,YAAS8qB,IAApD82C,EAdG,EAcT1hE,KAA+BymD,EAdtB,EAcaxmD,QACxBiwB,EAAWtxB,IAAO,CAAC,SAAU,mBAAoB8iE,GAOjDrhC,EAAa,OAAGrgC,QAAH,IAAGA,OAAH,EAAGA,EAAMqgC,cACtBmjE,EAAa,iBAAGxjG,QAAH,IAAGA,OAAH,EAAGA,EAAM8iG,cAAT,QAAmB,GAEhCW,EAAe7kG,IACnBA,KAAUupE,IACVvpE,KACAA,KAXuB,CACvB,CAAEsP,KAAM,QAASla,QAAS,SAC1B,CAAEka,KAAM,OAAQla,QAAS,QACzB,CAAEka,KAAM,QAASla,QAAS,WAS1B4K,KAAM,SAAA6K,GAAE,MAAK,CACXyE,KAAMtP,IAAO,CAAC,YAARA,CAAqB6K,GAC3BzV,QAAS8vC,GAAUllC,IAAO,CAAC,YAARA,CAAqB6K,QAE1C7K,IAAO,CAAC,gBASJqB,EAAU23F,GAAenxC,EAE/B,OACE,uCACE,uBAAK5wD,UAAWK,EAAQwoB,aAAxB,UACE,uBAAK7oB,UAAWK,EAAQyoB,yBAAxB,UACE,eAAC,GAAD,qBACC3e,GACC,uBAAKnK,UAAWK,EAAQukD,eAAxB,UACE,eAAC,GAAD,CACEjhD,MAAM,gBACNwL,KAAK,cACL84C,MAAOslD,GACP3P,KAAM,CAAEvjE,YACRiyB,KAAMniD,EAAK0jG,WACXhQ,QAAS,SAAAvxC,GAAI,OAAIvjD,IAAO,CAAC,iBAARA,CAA0BujD,IAC3CjyB,SAAUA,IAEZ,eAACp5B,GAAD,UAAQg+F,UAId,sBAAKj/F,UAAWK,EAAQmqC,cAAxB,SACGA,GAAiB,sDAAwBA,UAG9C,uBAAKxqC,UAAWK,EAAQitG,YAAxB,UACGnjG,GACC,eAAC,GAAD,CACE2mC,qBAnCmB,SAAA6uD,GACvB8N,EAAQtiG,SAASsiG,EAAQtiG,QAAQ2iG,SAAS,EAAG,GAEjDJ,EAAY/N,IAiCJzvF,MAAM,QACN0gC,MAAOg9D,EAAazjG,GACpBmnC,QAASghC,GACT7hC,aAAckvD,IAGlB,sBAAK3/F,UAAWK,EAAQysG,gBAAxB,SACGa,GACCA,EAAcliG,KAAI,SAAC6hC,EAASr1B,GAAV,OAChB,eAAC,GAAD,CAAkBq1B,QAASA,GAAdr1B,WAIrB,sBAAKjY,UAAWK,EAAQ6L,QAAxB,SACE,uBAAKlI,IAAKypG,EAASztG,UAAWK,EAAQ+sG,mBAAtC,UACE,gBAAC,GAAD,CAAOptG,UAAWK,EAAQ42B,MAA1B,UACE,eAAC,GAAD,UACE,gBAAC,GAAD,CAAUvyB,QAAM,EAAhB,UACE,eAAC86F,GAAD,CAAax/F,UAAWK,EAAQkkD,WAAhC,kBACA,eAACi7C,GAAD,CAAax/F,UAAWK,EAAQmkD,YAAhC,mBACA,eAACg7C,GAAD,CAAax/F,UAAWK,EAAQokD,kBAGpC,eAAC,GAAD,UACGt6C,GACCA,EAAK0jG,WACFr5F,QACC,SAAAwO,GAAG,OACD28E,IAAartB,IAAYtvD,EAAI28E,WAAaA,EAAStnF,QAEtD5M,KAAI,SAACuX,EAAK/K,GAAN,OACH,gBAAC,GAAD,CAAoBhM,KAAK,KAAzB,UACE,eAAC,GAAD,UACGouB,GACCE,GACEvX,EAAI08E,UACJrlE,EACA,sBAGN,eAAC,GAAD,UAAYrX,EAAI28E,WAChB,eAAC,GAAD,UAAY38E,EAAIza,YAVH0P,WAexB7N,GAAW,eAACzJ,GAAD,UAAK,gBACfyJ,KAAW,OAACD,QAAD,IAACA,GAAD,UAACA,EAAM0jG,kBAAP,aAAC,EAAkB9rG,SAC9B,eAACpB,GAAD,UAAK,gC,oBC/MF,IACbq3B,GAAI,kBAAiB,CACnB35B,OAAQ,EACRS,OAFE,EAAGA,SAIPm4B,MAAO,kBAAgB,CACrBx3B,MADK,EAAGA,QAGVsuG,KAAM,CACJ5vG,QAAS,OACTgS,KAAM,EACNxL,eAAgB,gBAChBzF,WAAY,SACZK,aAAc,IAEhBuM,OAAQ,CACN5F,aAAc,GAEhBgsF,YAAa,CACX/zF,QAAS,OACT8H,cAAe,SACfpB,UAAW,GACXgc,UAAW,IAEb3Q,MAAO,CACLvT,OA3BkBgC,GAAdb,OA4BJrB,MAAO/B,GACPwL,aAAc,GAEhBiV,KAAM,CACJxe,OAhCkBgC,GAANxB,EAiCZuP,SAAU,SACV64C,aAAc,WACd/vC,WAAY,WCrBV7V,GAAYC,YAAWC,IAkDdmuG,GAhDQ,SAAC,GAOjB,IAAD,IANJvuG,aAMI,MANI,IAMJ,MALJX,cAKI,MALK,IAKL,EAJJ6E,EAII,EAJJA,MACAitC,EAGI,EAHJA,MACAyB,EAEI,EAFJA,OACAryC,EACI,EADJA,UAEMK,EAAUV,GAAU,CAAEF,QAAOX,WAEnC,OACE,qCACE,gBAAC,GAAD,CAAOkB,UAAWO,IAAWP,EAAWK,EAAQ42B,OAAhD,UACE,eAAC,GAAD,UACE,gBAAC,GAAD,CAAIj3B,UAAWK,EAAQ0tG,KAAvB,UACGpqG,EACD,eAAC,GAAD,CAAY4F,QAAS8oC,EAAQryC,UAAWK,EAAQyL,OAAhD,SACE,eAAC,GAAD,WAIN,eAAC,GAAD,UACE,eAAC,GAAD,CAAI9L,UAAWK,EAAQ23B,GAAvB,SACE,eAAC,GAAD,CAAIv4B,MAAOA,EAAX,SACGmxC,GACC,uCACGA,EAAM,IACL,uBAAK5wC,UAAWK,EAAQ6xF,YAAxB,UACE,sBAAKlyF,UAAWK,EAAQ6P,MAAxB,SAAgC0gC,EAAM,GAAG1gC,QACzC,sBAAKlQ,UAAWK,EAAQ8a,KAAxB,SAA+By1B,EAAM,GAAGn+B,WAG3Cm+B,EAAM,IACL,uBAAK5wC,UAAWK,EAAQ6xF,YAAxB,UACE,sBAAKlyF,UAAWK,EAAQ6P,MAAxB,SAAgC0gC,EAAM,GAAG1gC,QACzC,sBAAKlQ,UAAWK,EAAQ8a,KAAxB,SAA+By1B,EAAM,GAAGn+B,0BCtCxDu+C,GAAWvnD,IAAH,gFAORwkG,GAAexkG,IAAH,oHAcZ9J,GAAYC,YARH,CACbsM,QAAS,CAGPpH,WAAY,KA2GDopG,GArGE,WAAO,IAAD,IACqB7jG,mBAAS,MAD9B,mBACdw3F,EADc,KACCC,EADD,KAGb33F,EAASF,YAAS+mD,IAAlB7mD,KAHa,EAICS,YAAYqjG,GAAc,CAC9CnrF,YAAa,kBAAMg/E,EAAiB,OACpC/2F,eAAgB,CAAC,aAFZojG,EAJc,oBASf9tG,EAAUV,KAEVs6D,EAAQ,iBAAG9vD,QAAH,IAAGA,OAAH,EAAGA,EAAM8vD,gBAAT,QAAqB,GAE7BiG,EAAW,SAAC7nD,EAAMo2B,GACtB,IAAM2/D,EAAerlG,IAASA,IAAO,QAAhBA,CAAyB0lC,GACxC/2B,EAASuiD,EAAS5hD,IAAS,GACjC,OAAOtP,KAAM,gB7TnDE0J,E6TmDCtU,EAAH,EAAGA,QAASka,EAAZ,EAAYA,KAAZ,MAA8B,CACzCnI,MAAO/R,EACPsU,MAFW,EAAkBimB,M7TnDhBjmB,E6TqDYiF,EAAOW,I7TpD/B5F,GAASA,EAAM1Q,QAAU,GAAW0Q,EAEnC,GAAN,OAAUA,EAAMgC,MAAM,EAAG,GAAzB,gBAAmChC,EAAMgC,MACvChC,EAAM1Q,OAAS,EACf0Q,EAAM1Q,U6TgDqC2V,EAAOW,MAF3CtP,CAGHqlG,IA6CN,OACE,uBAAKpuG,UAAWK,EAAQ6L,QAAxB,UACE,eAAC,GAAD,CAAcvI,MAAM,uBACpB,eAAC+sB,EAAA,EAAD,CAAMnsB,WAAS,EAACyU,QAAS,EAAzB,SACGjQ,KAASslG,IAAS5iG,KAAI,SAAAkxC,GAAM,OAC3B,eAACjsB,EAAA,EAAD,CAAMvV,MAAI,EAAV,SACE,eAAC,GAAD,CACEuwF,YAAa,aAAe/uD,EAAOh5C,MACnCA,MAAOg5C,EAAOh5C,MACd0uC,OAAQ,kBAAMyvD,EAAiBnlD,IAC/B/L,MAAOsvB,EAASvjB,EAAOtkC,KAAMskC,EAAOlO,aALxBkO,EAAOtkC,WAU1BwpF,GACC,eAAC,GAAD,CACEl+F,MAAK,eAAUk+F,EAAc1yF,MAC7B1P,MAAO,IACPkQ,YAAa,kBAAMmyF,EAAiB,OACpC9yF,MAAM,EAJR,SAKE,eAAC,GAAD,CACE8lC,KAAM,SAAAlhC,GAAE,OACNu6F,EAAY,CACVviG,UAAW,CAAEquD,SAAS,eAAI4nC,EAAcxpF,KAAOzE,OAGnD66B,SA3DU,SAAC,GAAwB,IAAtBp2B,EAAqB,EAArBA,KAAMo2B,EAAe,EAAfA,SAC3B,OAAO1lC,KAAM,SAAAsyD,GACX,OAAIA,EAAK34C,YAAcjN,GAZJ,SAAAhH,GACrB,IAAMiH,EAAWjH,EAAQiH,SACnB+E,EAAQ1R,KAAW,CAAC,SAAU2M,EAAS+E,QACvC6zF,IAAYvlG,IAAQ2M,EAAS0oD,cAE/Br1D,KAASA,KAAO0R,EAAOtQ,GAAOuL,EAAS0oD,aAE3C,OADA1oD,EAASrH,QAAUigG,EACZ7/F,EAKwC8/F,CAAelzC,GACxDA,EAAK34C,YAAclK,GAAoB6iD,EACpC,2BACFA,GADL,IAEE7nB,WAAY,CACVlhC,kBACGvJ,IAAQkxD,EAAS5hD,MACjBtP,IAAQA,IAAO,CAACsyD,EAAKhjD,MAAO4hD,EAAS5hD,UAG3Co2B,GA+CeurB,CAAY6nC,GACtB3/E,iBA/BkB,gBAAG7J,EAAH,EAAGA,KAAMojD,EAAT,EAASA,oBAAT,OAC1BA,EAAoBxB,EAAS5hD,IA8BHojD,CAAoBomC,GACtCpvF,MA9CU,SAAC,GAAwB,IAAtBg8B,EAAqB,EAArBA,SAAUp2B,EAAW,EAAXA,KACzBqjD,EAAUzB,EAAS5hD,GACnBm2F,EAA0BzlG,IAASA,IAAS,YAAayP,KACzDi2F,EAAY1lG,IAAMA,IAAO,CAAC,UAC1B2lG,EAAiB3lG,IACrB0lG,EACAD,EAFqBzlG,CAGrB0lC,GACF,OAAO1lC,MACL,SAAC0J,EAAOxQ,GAAR,OAAiB8G,IAAW9G,EAAKysG,GAAkB,GAAKj8F,IACxDipD,GAoCaizC,CAAY9M,W,qBCxHzB+M,GAAenlG,IAAH,mHAUZolG,GAAiBplG,IAAH,gIAQdsrB,GAAWtrB,IAAH,kEA0FCqlG,GAhFW,WAAO,IAAD,EAC0B7kG,YAAS2kG,IAAnDG,EADgB,EACtB5kG,KAA4B6kG,EADN,EACH5kG,QADG,EAGNQ,YAAYikG,GAAgB,CAClD9jG,eAAgB,iBAAM,CAAC,eADlBkkG,EAHuB,sBAO2BhlG,YAAS8qB,IAApD82C,EAPgB,EAOtB1hE,KAA+BymD,EAPT,EAOAxmD,QACxBiwB,EAAWtxB,IAAO,CAAC,SAAU,mBAAoB8iE,GAEjDzhE,EAAU4kG,GAAmBp+C,EAE7BniB,EAAW,CACf,CACE/pC,OAAQ,QACRjF,MAAO,IACPyS,UAAW,OACXjG,KAAM,KACNqnC,KAAM,SAAA1K,GAAC,OAAIA,EAAEsmE,KAAK1oF,KAAKwF,WAEzB,CACEtnB,OAAQ,iBACRjF,MAAO,IACPyS,UAAW,OACXjG,KAAM,KACNqnC,KAAM,SAAA1K,GACJ,GAAI7/B,IAAQ6/B,EAAEsmE,KAAKC,IAAK,MAAO,YAC/B,IAAMA,EAAKC,KAAOxmE,EAAEsmE,KAAKC,IACzB,MAAM,GAAN,OAAUA,EAAGE,QAAQlgG,KAArB,YAA6BggG,EAAGE,QAAQjuD,QAAxC,eAAsD+tD,EAAGG,GAAGngG,KAA5D,YAAoEggG,EAAGG,GAAGluD,WAG9E,CACE18C,OAAQ,sBACRjF,MAAO,IACPyS,UAAW,OACXjG,KAAM,KACNqnC,KAAM,SAAA1K,GACJ,MAxCQ,eADI2mE,EAyCO3mE,EAAEsmE,KAAKM,YAxCI,QAAPD,GAAuB,cAAPA,EAwCA,cAAgB3mE,EAAEsmE,KAAKM,UAzClD,IAAAD,IA4ChB,CACE7qG,OAAQ,kBACRjF,MAAO,IACPyS,UAAW,QACXjG,KAAM,KACNqnC,KAAM,SAAA1K,GAAC,gBACFrO,GAAWqO,EAAE6mE,OAAQp1E,EAAU,cAD7B,YAC8CE,GACjDqO,EAAE6mE,OACFp1E,EACA,eAGN,CACE31B,OAAQ,GACRjF,MAAO,GACPyS,UAAW,SACXjG,KAAM,KACNqnC,KAAM,SAAA1K,GAAC,OACL,eAAC,GAAD,CACEr/B,QAAS,WACP0lG,EAAc,CAAErjG,UAAW,CAAE8jG,IAAK9mE,EAAE8mE,QAFxC,SAIE,eAAC,GAAD,SAMR,OACE,uCACE,eAAC,GAAD,CAAc/rG,MAAM,uBACpB,eAAC,GAAD,CACEyG,QAASA,EACTqkC,SAAUA,EACVtkC,KAAMpB,IAAO,CAAC,YAARA,CAAqBgmG,SClHnC,SAAS,KAA2Q,OAA9P,GAAWrtG,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAmB,gBAAoB,SAAU,CACpGoB,GAAI,eACJkB,GAAI,GACJC,GAAI,GACJC,EAAG,MAGD,GAAqB,gBAAoB,IAAK,CAChDpB,GAAI,UACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,gDACJK,UAAW,uCACG,gBAAoB,IAAK,CACvCL,GAAI,2BACJK,UAAW,4IACG,gBAAoB,OAAQ,CAC1CL,GAAI,SACJG,KAAM,SACQ,gBAAoB,MAAO,CACzC4hB,UAAW,mBACK,gBAAoB,MAAO,CAC3C/hB,GAAI,OACJG,KAAM,UACNC,SAAU,UACV2hB,UAAW,kBACI,gBAAoB,IAAK,CACxC/hB,GAAI,wBACJ2zB,KAAM,eACNxvB,cAAe,QACf5D,eAAgB,SACF,gBAAoB,IAAK,CACvCF,UAAW,gCACXL,GAAI,SACU,gBAAoB,IAAK,KAAmB,gBAAoB,WAAY,CAC1FA,GAAI,SACJC,OAAQ,UACRC,YAAa,EACbuE,OAAQ,6DACO,gBAAoB,OAAQ,CAC3CJ,GAAI,WACJC,GAAI,IACJC,GAAI,WACJC,GAAI,IACJxE,GAAI,SACJC,OAAQ,UACRC,YAAa,UAGf,SAASysG,GAAclsG,EAAMC,GAC3B,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,I,YAAI,GAA0B,aAAiBgsG,ICrDzChwG,IDsDS,ICtDGC,YAAWwlD,KAEvBwqD,GAAkB,IAElB76E,GAAWtrB,IAAH,kEAMRomG,GAAuBpmG,IAAH,0ZAoBpBqmG,GAA0BrmG,IAAH,gHASvB0mD,GAAmB1mD,IAAH,sqCA6DhBgnF,GAAgB,SAAA5C,GAAO,OAC3B9kF,MAAS,SAAC6/B,EAAGomD,GAAJ,mBAAC,eAAepmD,GAAhB,kBAAoBomD,EAAE1mF,KAAO0mF,EAAEv8E,UAAU,GAAIo7E,IA8PzCz9B,GA5PM,WAAO,IAAD,EACnB/vD,EAAUV,KACVioB,EAAUC,cAFS,EAIKxd,mBAAS,IAJd,mBAIlBwjF,EAJkB,KAITiD,EAJS,OAKkC7mF,YACzD6lG,IADY5e,EALW,EAKjB/mF,KAAgC4lG,EALf,EAKM3lG,QALN,EAQSC,mBAAS,CAAE6I,MAAO08F,KAR3B,mBAQlBhkG,EARkB,KAQPilF,EARO,OAerB5mF,YAASkmD,GAAkB,CAAEvkD,cALzBokG,EAViB,EAUvB7lG,KACS8lG,EAXc,EAWvB7lG,QACAod,EAZuB,EAYvBA,QACAC,EAbuB,EAavBA,aACAC,EAduB,EAcvBA,YAGFxc,qBAAU,WAER,OADAuc,EAAa,KACNC,KAGT,IAAMwoF,EAAM,iBAAGF,QAAH,IAAGA,OAAH,EAAGA,EAAQhrE,oBAAX,QAA2B,GAtBd,EAwBuB/6B,YAAS8qB,IAA3C82C,EAxBW,EAwBjB1hE,KAAsBymD,EAxBL,EAwBKA,cACxBv2B,EAAWtxB,IAAO,CAAC,SAAU,mBAAoB8iE,GAYjDskC,EAAyB,SAAA70E,GAC7B,OAAIA,EAAGyxD,YAAoB,YACvBzxD,EAAGw1B,aAAqBx1B,EAAGw1B,aAC3Bx1B,EAAGqwB,mBATkB,SAAAD,GAAa,IAC9BE,EAAwBF,EAAxBE,UAAWC,EAAaH,EAAbG,SAEnB,MAAM,GAAN,OAAU9iD,KAAIA,KAAWA,KAAfA,CAAuB6iD,GAAjC,aAAgDC,GAMdkF,CAAmBz1B,EAAGqwB,oBACjDrwB,EAAGyxB,eAENte,EAAW,CACf,CACE/pC,OAAQ,GACRjF,MAAO,GACPwM,KAAM,KACNqnC,KAAM,SAAA1/B,GAAE,MAAoB,YAAfA,EAAGouB,QAAwB,eAAC,GAAD,IAAgB,eAAC,GAAD,MAE1D,CACEt9B,OAAQ,UACRyK,KAAM,cACN1P,MAAO,IACPwM,KAAM,KACNqnC,KAAMvqC,IAAO,CAAC,iBAEhB,CACErE,OAAQ,WACRjF,MAAO,IACPwM,KAAM,KACNqnC,KAAM,SAAA1/B,GAAE,OACN,uBAAK5T,UAAWK,EAAQmlD,YAAxB,UACE,sBAAKxlD,UAAWK,EAAQilD,WAAxB,SAAqC6qD,EAAuBv8F,MAC1DA,EAAGm5E,aACH,sBAAKxjF,QAAS,kBAtCPw8E,EAsCsBnyE,EAAGmyE,WArCjCn+D,EAAQO,KAAR,+BAAqC49D,IAD7B,IAAAA,GAsCP,SACGnyE,EAAGw1C,UAAYx1C,EAAG61C,WACjB,eAAC,GAAD,CAAuBzpD,UAAWK,EAAQolD,mBAE1C,eAAC,GAAD,CAAkBzlD,UAAWK,EAAQolD,0BAOjD,CACE/gD,OAAQ,OACRjF,MAAO,IACPyS,UAAW,QACXjG,KAAM,KACNqnC,KAAM,SAAA1/B,GAAE,gBAAO8H,OAAOoa,WAAWliB,EAAG6nB,MAA5B,YAAqC7nB,EAAG8wB,YAElD,CACEhgC,OAAQ,SACRjF,MAAO,IACPyS,UAAW,QACXjG,KAAM,KACNqnC,KAAM,SAAA1/B,GAAE,gBACHs2C,SAAUC,OAAO,IAAIn1B,KAAUphB,EAAGw2C,aAAcx2C,EAAGy2C,YADhD,YAEJz2C,EAAGy2C,cAGT,CACE3lD,OAAQ,UACR4uC,KAAM,SAAA1/B,GAAE,OAAIs2C,SAAUK,oBAAoB32C,EAAGy2C,WAAYz2C,EAAG65C,YAC5DztD,UAAWK,EAAQilD,WACnBr5C,KAAM,KACNxM,MAAO,KAET,CACEiF,OAAQ,OACR4uC,KAAM,SAAA1/B,GAAE,OACNymB,GAAYE,GAAW3mB,EAAGlL,QAAS2xB,EAAU,qBAC/CnoB,UAAW,QACXjG,KAAM,KACNxM,MAAO,KAET,CACEiF,OAAQ,SACR4uC,KAAM,SAAA1/B,GAAE,OAAIu1C,GAAUv1C,IACtB1B,UAAW,OACXjG,KAAM,KACNxM,MAAO,KAgEL0U,EAAgBpL,IAAO,CAAC,sBAARA,CAA+BmoF,GAE/C9mF,EAAU6lG,GAAuBF,GAAkBn/C,EAEnDw/C,EACJ,sBAAK3wG,MAAO,GAAIX,OAAQ,GAAxB,SACE,uBAAMW,MAAO,GAAIX,OAAQ,GAAI6I,GAAI,EAAGxE,KAAMrI,OAI9C,OACE,uCACE,uBAAKkF,UAAWK,EAAQwoB,aAAxB,UACE,uBAAK7oB,UAAWK,EAAQyoB,yBAAxB,UACE,eAAC,GAAD,2BACA,sBAAK9oB,UAAWK,EAAQukD,eAAxB,SACE,eAAC,GAAD,CACEx6C,QAAS2lG,EACTliB,QAASA,EACT16E,QAASgB,EACT25E,iBAAkB,sBAClBv7E,SAjFW,SAAAs7E,GACrB,IAAM0D,EAAgBd,GAAc5C,GAEpCiD,EAAWjD,GAEXgD,EAAa,CACX39E,MAAO08F,GACP5tE,QAASuvD,EAAcjpF,KACvBqwC,YAAa44C,EAAc5oE,QAC3BmoC,aAAcygC,EAAc7lC,SAC5BhnB,SAAU6sD,EAAc91D,KACxB4uB,WAAYknC,EAAcvmC,OAC1ByC,UAAW8jC,EAAczsC,QACzBtc,OAAQ+oD,EAAc/oD,SAGxBhhB,GAAWA,SAoEJ0oF,GACC,sBAAKlwG,UAAWK,EAAQukD,eAAxB,SACE,eAAC,GAAD,CACEjhD,MAAM,gBACNwL,KAAK,eACL84C,MAAO4nD,GACPhS,QAAS,SAAAvxC,GAAI,OAAIvjD,IAAO,CAAC,mBAARA,CAA4BujD,IAC7CwxC,YAAU,EACVzjE,SAAUA,EACVujE,KAAM,CAAEvjE,mBAKhB,uBAAKr6B,UAAWK,EAAQ4yB,aAAxB,UACE,iCACE,eAAC,GAAD,IACA,+CAEF,iCACE,eAAC,GAAD,IACA,gDAEF,iCACGm9E,EACD,+DAILviB,EAAQ9rF,OAAS,GAChB,eAAC,GAAD,CACE0sF,QAASyhB,EAAOnuG,OAChB8rF,QAASA,EACTgB,eAlGe,SAAAr6E,GACrB,IAAMg9E,EAAazoF,KACjB,SAAAimF,GAAC,OAAKjmF,KAAUA,KAAO,CAAC,OAAQ,SAAUimF,GAAIx6E,KAD7BzL,CAEjB8kF,GAEFiD,EAAWU,GAEX,IAAMD,EAAgBd,GAAce,GAEpCX,EAAa,CACX39E,MAAO08F,GACP5tE,QAASuvD,EAAcjpF,KACvBqwC,YAAa44C,EAAc5oE,QAC3BmoC,aAAcygC,EAAc7lC,SAC5BhnB,SAAU6sD,EAAc91D,KACxB4uB,WAAYknC,EAAcvmC,OAC1ByC,UAAW8jC,EAAczsC,QACzBtc,OAAQ+oD,EAAc/oD,SAGxBhhB,GAAWA,KA+ELsnE,iBA5EiB,WACvBgC,EAAW,IACX,IAAMS,EAAgBd,GAAc,IAEpCI,EAAa,CACX39E,MAAO08F,GACP5tE,QAASuvD,EAAcjpF,KACvBqwC,YAAa44C,EAAc5oE,QAC3BmoC,aAAcygC,EAAc7lC,SAC5BhnB,SAAU6sD,EAAc91D,KACxB4uB,WAAYknC,EAAcvmC,OAC1ByC,UAAW8jC,EAAczsC,QACzBtc,OAAQ+oD,EAAc/oD,SAGxBhhB,GAAWA,OAgET,eAAC,GAAD,CACEpd,QAASA,EACT8kD,UAAU,yBACVzgB,SAAUA,EACVtkC,KAAM+lG,EACNjvD,QAASyJ,GACTmE,YAAU,EACV/a,QAAQ,KACRzZ,SAAUA,QCtXlB,SAAS,KAA2Q,OAA9P,GAAW34B,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,6BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,OAAQ,CAC1CE,EAAG,wJACHN,GAAI,WACJC,OAAQ,UACRC,YAAa,EACbiE,cAAe,QACf5D,eAAgB,UACD,gBAAoB,OAAQ,CAC3CD,EAAG,kJACHN,GAAI,WACJC,OAAQ,UACRC,YAAa,EACbiE,cAAe,QACf5D,eAAgB,UACD,gBAAoB,OAAQ,CAC3CD,EAAG,iKACHN,GAAI,WACJC,OAAQ,UACRC,YAAa,EACbiE,cAAe,QACf5D,eAAgB,UACD,gBAAoB,OAAQ,CAC3C8D,GAAI,GACJC,GAAI,IACJC,GAAI,WACJC,GAAI,IACJxE,GAAI,SACJC,OAAQ,UACRC,YAAa,EACbiE,cAAe,WACA,gBAAoB,OAAQ,CAC3CE,GAAI,GACJC,GAAI,IACJC,GAAI,WACJC,GAAI,IACJxE,GAAI,cACJC,OAAQ,UACRC,YAAa,EACbiE,cAAe,WACA,gBAAoB,OAAQ,CAC3CE,GAAI,GACJC,GAAI,KACJC,GAAI,WACJC,GAAI,KACJxE,GAAI,gBACJC,OAAQ,UACRC,YAAa,EACbiE,cAAe,YAGjB,SAAS,GAAS1D,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB,IAChC,ICrFf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,8BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,OAAQ,CAC1CE,EAAG,wJACHN,GAAI,WACJC,OAAQ,UACRC,YAAa,EACbiE,cAAe,QACf5D,eAAgB,UACD,gBAAoB,OAAQ,CAC3CD,EAAG,kJACHN,GAAI,WACJC,OAAQ,UACRC,YAAa,EACbiE,cAAe,QACf5D,eAAgB,UACD,gBAAoB,OAAQ,CAC3CD,EAAG,iKACHN,GAAI,WACJC,OAAQ,UACRC,YAAa,EACbiE,cAAe,QACf5D,eAAgB,UACD,gBAAoB,OAAQ,CAC3C8D,GAAI,GACJC,GAAI,IACJC,GAAI,WACJC,GAAI,IACJxE,GAAI,SACJC,OAAQ,UACRC,YAAa,EACbiE,cAAe,WACA,gBAAoB,OAAQ,CAC3CE,GAAI,GACJC,GAAI,IACJC,GAAI,WACJC,GAAI,IACJxE,GAAI,cACJC,OAAQ,UACRC,YAAa,EACbiE,cAAe,WACA,gBAAoB,OAAQ,CAC3CE,GAAI,GACJC,GAAI,KACJC,GAAI,WACJC,GAAI,KACJxE,GAAI,gBACJC,OAAQ,UACRC,YAAa,EACbiE,cAAe,YAGjB,SAAS,GAAU1D,EAAMC,GACvB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB,IAChC,ICrFf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,+BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACVG,eAAgB,SACF,gBAAoB,OAAQ,CAC1CD,EAAG,wtCACHN,GAAI,WACJC,OAAQ,UACRC,YAAa,KAGf,SAAS,GAASO,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB,IAChC,IC3Cf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAM,wBAEvD,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,gCACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACVG,eAAgB,SACF,gBAAoB,OAAQ,CAC1CD,EAAG,wtCACHN,GAAI,WACJC,OAAQ,UACRC,YAAa,KAGf,SAAS,GAAUO,EAAMC,GACvB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,IAG3B,IAAI,GAA0B,aAAiB,ICjBzChE,IDkBS,IClBGC,YAnBH,CACbuQ,KAAM,CACJhS,QAAS,QAEX29E,OAAQ,CACN71E,cAAe,UAEjBoqG,UAAW,CACT5wG,MAAO,MACPyG,aAAc,GACdE,YAAa,IAEfvB,UAAW,CACTA,UAAW,IAEbqB,aAAc,CACZA,aAAc,OAyFHoqG,GArFK,SAAC,GAAY,IACzBzqB,EADwB,EAATjyE,GACIiyE,cACnBxlF,EAAUV,KA4DhB,OACE,iCACE,uBAAKK,UAAWO,IAAWF,EAAQ8P,KAAM9P,EAAQ0c,IAAK1c,EAAQwE,WAA9D,UACE,uBAAK7E,UAAWK,EAAQgwG,UAAxB,UACE,eAACrvG,GAAD,6BACA,eAACK,GAAD,UAASwkF,EAAc0qB,QAAQ5sG,WAEjC,sBAAK3D,UAAWO,IAAWF,EAAQgwG,UAAWhwG,EAAQ8P,MAAtD,SAjEiB,WACrB,IAAMqgG,EACmC,oBAAvC3qB,EAAcvxE,MAAMm8F,eAChB,mBACA,mBACN,OAAQ5qB,EAAcvxE,MAAMhM,MAC1B,IAAK,OACH,OACE,uCACE,uBAAKtI,UAAWK,EAAQgwG,UAAxB,UACE,eAACrvG,GAAD,UAAQwvG,IACR,eAACnvG,GAAD,UAASwkF,EAAcvxE,MAAMxW,YAES,oBAAvC+nF,EAAcvxE,MAAMm8F,gBACnB,uBAAKzwG,UAAWK,EAAQgwG,UAAxB,UACE,eAACrvG,GAAD,gCACA,eAACK,GAAD,UAASwkF,EAAcvxE,MAAMvW,eAKvC,QACE,OACE,uCACE,uBAAKiC,UAAWK,EAAQgwG,UAAxB,UACE,eAACrvG,GAAD,mCACA,eAACK,GAAD,UAASwkF,EAAc6qB,QAAQ/sG,WAEjC,uBAAK3D,UAAWK,EAAQgwG,UAAxB,UACE,eAACrvG,GAAD,yCACA,eAACK,GAAD,UAASwkF,EAAc6qB,QAAQnnF,cAoClConF,QAGL,uBACE3wG,UAAWO,IAAWF,EAAQ8P,KAAM9P,EAAQ0c,IAAK1c,EAAQ6F,cAD3D,UAEE,uBAAKlG,UAAWK,EAAQgwG,UAAxB,UACE,eAACrvG,GAAD,4BACA,eAACK,GAAD,UAASwkF,EAAc0qB,QAAQhnF,UAEjC,sBAAKvpB,UAAWK,EAAQgwG,UAAxB,SApCF,uCACGxqB,EAAcvxE,MAAMs8F,YACnB,uCACE,eAAC5vG,GAAD,sBACC6kF,EAAcvxE,MAAMs8F,WAAWnlG,KAAI,SAAColG,EAAQ54F,GAC3C,OAAO,eAAC5W,GAAD,UAAmBwvG,GAAN54F,SAIzB4tE,EAAcvxE,MAAMw8F,WACnB,uCACE,eAAC9vG,GAAD,+BACA,eAACK,GAAD,UAASwkF,EAAcvxE,MAAMw8F,2B,oBCvD1BC,GAtBiBhxG,gBAAK,YAA2C,IAAD,IAAvCixG,uBAAuC,SAAZ5wG,EAAY,qCACrDA,EAAMqa,MAAtBtL,EADqE,EACrEA,KAAMsD,EAD+D,EAC/DA,MACNoI,EAAkBza,EAAMsa,KAAxBG,cACR,OACE,eAAC,GAAD,aACE1L,KAAMA,EACNsD,MAAOA,EACPU,QAAS/S,EAAM+S,QACf0L,UAAW1P,EACXoD,SAAU,SAACoM,EAAGlM,GAGZ,GAAIu+F,IAAoBv+F,EAAO,OAAO,KACtCoI,EAAc1L,EAAMsD,GACpBrS,EAAM0e,YAAc1e,EAAM0e,cAE5B9e,UAAWI,EAAMJ,WACbI,OCrBV,SAAS,KAA2Q,OAA9P,GAAWsB,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,sBACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,iBACJK,UAAW,gCACXF,KAAM,WACQ,gBAAoB,OAAQ,CAC1CH,GAAI,YACJuC,EAAG,EACHF,EAAG,EACH5F,MAAO,EACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,mBACJuC,EAAG,EACHF,EAAG,GACH5F,MAAO,EACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,mBACJuC,EAAG,EACHF,EAAG,GACH5F,MAAO,EACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,mBACJuC,EAAG,GACHF,EAAG,cACH5F,MAAO,EACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,mBACJuC,EAAG,GACHF,EAAG,GACH5F,MAAO,EACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,mBACJuC,EAAG,GACHF,EAAG,GACH5F,MAAO,EACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,oBACJuC,EAAG,GACHF,EAAG,GACH5F,MAAO,EACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,oBACJuC,EAAG,GACHF,EAAG,GACH5F,MAAO,EACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,mBACJuC,EAAG,GACHF,EAAG,cACH5F,MAAO,EACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,oBACJuC,EAAG,GACHF,EAAG,cACH5F,MAAO,EACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,oBACJuC,EAAG,GACHF,EAAG,cACH5F,MAAO,EACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,oBACJuC,EAAG,GACHF,EAAG,cACH5F,MAAO,GACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,mBACJuC,EAAG,GACHF,EAAG,GACH5F,MAAO,EACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,oBACJuC,EAAG,GACHF,EAAG,GACH5F,MAAO,EACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,oBACJuC,EAAG,GACHF,EAAG,GACH5F,MAAO,EACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,oBACJuC,EAAG,GACHF,EAAG,GACH5F,MAAO,GACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,oBACJuC,EAAG,GACHF,EAAG,GACH5F,MAAO,GACPX,OAAQ,EACR6I,GAAI,MAGN,SAASspG,GAAYxtG,EAAMC,GACzB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,QAAkBqP,IAAV9L,EAAmC,gBAAoB,QAAS,CACzEX,GAAIY,GACH,uBAAyBD,EAAqB,gBAAoB,QAAS,CAC5EX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiBstG,IAChC,IChKf,SAAS,KAA2Q,OAA9P,GAAWvvG,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,oBACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,QACJK,UAAW,iCACXF,KAAM,WACQ,gBAAoB,OAAQ,CAC1CH,GAAI,YACJuC,EAAG,EACHF,EAAG,EACH5F,MAAO,EACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,mBACJuC,EAAG,EACHF,EAAG,GACH5F,MAAO,EACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,mBACJuC,EAAG,EACHF,EAAG,GACH5F,MAAO,EACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,mBACJuC,EAAG,GACHF,EAAG,EACH5F,MAAO,EACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,mBACJuC,EAAG,GACHF,EAAG,GACH5F,MAAO,EACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,mBACJuC,EAAG,GACHF,EAAG,GACH5F,MAAO,EACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,oBACJuC,EAAG,GACHF,EAAG,GACH5F,MAAO,EACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,mBACJuC,EAAG,GACHF,EAAG,EACH5F,MAAO,EACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,mBACJuC,EAAG,GACHF,EAAG,GACH5F,MAAO,EACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,oBACJuC,EAAG,GACHF,EAAG,GACH5F,MAAO,EACPX,OAAQ,EACR6I,GAAI,MAGN,SAASupG,GAAUztG,EAAMC,GACvB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,QAAkBqP,IAAV9L,EAAmC,gBAAoB,QAAS,CACzEX,GAAIY,GACH,qBAAuBD,EAAqB,gBAAoB,QAAS,CAC1EX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiButG,IAChC,IC/Gf,SAAS,KAA2Q,OAA9P,GAAWxvG,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,kBACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,UACJK,UAAW,gCACXF,KAAM,WACQ,gBAAoB,OAAQ,CAC1CH,GAAI,oBACJuC,EAAG,EACHF,EAAG,EACH5F,MAAO,EACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,oBACJuC,EAAG,EACHF,EAAG,GACH5F,MAAO,EACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,oBACJuC,EAAG,EACHF,EAAG,GACH5F,MAAO,EACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,oBACJuC,EAAG,EACHF,EAAG,GACH5F,MAAO,EACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,oBACJuC,EAAG,GACHF,EAAG,EACH5F,MAAO,GACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,oBACJuC,EAAG,GACHF,EAAG,GACH5F,MAAO,GACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,oBACJuC,EAAG,GACHF,EAAG,GACH5F,MAAO,GACPX,OAAQ,EACR6I,GAAI,IACW,gBAAoB,OAAQ,CAC3C3E,GAAI,oBACJuC,EAAG,GACHF,EAAG,GACH5F,MAAO,GACPX,OAAQ,EACR6I,GAAI,MAGN,SAASwpG,GAAQ1tG,EAAMC,GACrB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,QAAkBqP,IAAV9L,EAAmC,gBAAoB,QAAS,CACzEX,GAAIY,GACH,mBAAqBD,EAAqB,gBAAoB,QAAS,CACxEX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiBwtG,ICrFzCC,IDsFS,ICtFE,SAAAC,GAAO,OACtB,sBACEv7F,MAAO,CACL3X,QAAS,OACTwG,eAAgB,SAChBzF,WAAY,SACZ9E,gBAAiBX,EACjBuF,aAAc,EACdqmB,SAAU,IACVzf,UAAW,GACX2Z,SAAU,IACVsB,UAAW,IAVf,SAYE,eAACwwF,EAAD,CAASv7F,MAAO,CAAEuP,SAAU,UA0C1BnD,GAAmBC,OAAaC,MAAM,CAC1CkvF,UAAWnvF,OAAaE,aAGpBkvF,GAAgB,CACpBD,UAAW,IAGEE,GA9CI,WACjB,IAAMr+F,EAAU,CACd,CACEV,MAAO,YACP9O,MAAO,kBACP2W,YACE,8EACFvS,KAAM,kBAAMqpG,GAASK,MAEvB,CACEh/F,MAAO,OACP9O,MAAO,aACP2W,YACE,oFACFvS,KAAM,kBAAMqpG,GAASM,MAEvB,CACEj/F,MAAO,aACP9O,MAAO,cACP2W,YAAa,8CACbvS,KAAM,kBAAMqpG,GAAS3pE,OAIzB,OACE,uCACE,eAAC9mC,GAAD,4CACA,eAAC,KAAD,CACEwO,KAAK,YACLuT,UAAWzI,GACXC,YAAY,WACZC,WAAS,EACThH,QAASA,QCjCX+O,GAAmBC,OAAaC,MAAM,CAC1Cs3D,gBAAiBv3D,OAAaE,aAG1BkvF,GAAgB,CACpB73B,gBAAiB,IAGJi4B,GA5BW,WACxB,OACE,uCACE,eAAChxG,GAAD,sCADF,IAEE,eAACE,GAAD,iPAMA,eAAC,KAAD,CACE6hB,UAAWzD,GACX/O,MAAM,mBACNf,KAAK,kBACLsE,WAAS,QCYXyO,GAAmBC,OAAaC,MAAM,CAC1CwvF,aAAczvF,OAAaE,WAC3BwvF,YAAa1vF,OAAaE,aAGtBkvF,GAAgB,CACpBK,aAAc,GACdC,YAAa,IAGAC,GApCY,WACzB,OACE,uCACE,eAACnxG,GAAD,mCADF,IAEE,eAACE,GAAD,sJAIA,eAAC,KAAD,CACE6hB,UAAWzD,GACX/O,MAAM,eACNf,KAAK,eACLsE,WAAS,IAEX,eAAC,KAAD,CACEiP,UAAWzD,GACX/O,MAAM,cACNf,KAAK,cACLm4E,WAAS,EACT7zE,WAAS,EACT8zE,KAAM,QCIRrlE,GAAmBC,OAAaC,MAAM,CAC1C2vF,aAAc5vF,OAAaE,WAC3B2vF,YAAa7vF,OAAaE,aAGtBkvF,GAAgB,CACpBQ,aAAc,GACdC,YAAa,IAGAC,GAlCW,WACxB,OACE,uCACE,eAACtxG,GAAD,mCADF,IAEE,eAACE,GAAD,mGAIA,eAAC,KAAD,CACE6hB,UAAWzD,GACX/O,MAAM,uBACNf,KAAK,eACLsE,WAAS,IAEX,eAAC,KAAD,CACEiP,UAAWzD,GACX/O,MAAM,6BACNf,KAAK,cACLsE,WAAS,QCwBF5T,GA/CA,CACbsQ,KAAM,CACJhS,QAAS,QAEX29E,OAAQ,CACN71E,cAAe,UAEjB2qG,WAAY,CACVzyG,QAAS,OACT8H,cAAe,SACfL,UAAW,IACXC,UAAW,QAEbiG,OAAQ,CACNrM,MAAO,IACPX,OAAQ,GACR+F,UAAW,IAEbk3E,UAAW,CACTt8E,MAAO,KAETsd,IAAK,CACH9W,cAAe,OAEjB4R,SAAU,CACR3R,aAAc,GAEhBgsG,cAAe,CACbhsG,aAAc,GAEhBkC,MAAO,CACL3L,MAAO3B,IAETsC,IAAK,CACH0H,WAAY,EACZD,UAAW,IAEbstG,YAAa,CACXttG,UAAW,IACXwgB,SAAU,KAEZnV,MAAO,CACLzQ,MAAO,IACP2G,Y1dcW,I2d7CTzG,GAAYC,YAAWC,IAEvBuyG,GAAc,SAAAp+E,GAAG,OAAIA,EAAIzK,MAAQyK,EAAIzK,KAAKxnB,QAE1CoR,GAAU,CACd,CAAEhV,QAAS,kBAAmBka,KAAM,aACpC,CAAEla,QAAS,kBAAmBka,KAAM,mBAiFvBg6F,GA9EI,WAAO,IAAD,MACjBhyG,EAAUV,KACV4iB,EAAUxH,eACVu3F,EAAgB1uF,iBAAO,MACvB2uF,EAAW,UAAGxpG,IAAO,CAAC,SAAU,eAAlBA,CAAkCwZ,UAArC,QAAiD,GAC5DiwF,EAAe,UAAGzpG,IAAO,CAAC,SAAU,eAAlBA,CAAkCwZ,UAArC,SAEfkwF,GAAc,mBACjBpyG,EAAQ6xG,eAAgB,GADP,cAEjB7xG,EAAQ+H,OACNW,IAAO,CAAC,SAAU,kBAAlBA,CAAqCwZ,IACtCxZ,IAAO,CAAC,SAAU,kBAAlBA,CAAqCwZ,IAJrB,GAOd6mC,EAAW,SAAAynD,GACf,OACE2B,GACAzpG,IAASqpG,GAATrpG,CAAsBwpG,GAAaxwG,OAAS,GACrB,IAAvB8uG,EAAOtnF,KAAKxnB,QAIhBmJ,qBAAU,WACRwnG,MACC,CAACH,EAAYxwG,SAEhB,IAAM2wG,EAAiB,WAAO,IAAD,EAC3B,UAAAJ,EAAcnnG,eAAd,SAAuBwnG,kBAGzB,OACE,uCACE,eAAChyG,GAAD,CAAIX,UAAWO,IAAWkyG,GAA1B,qCACA,eAAC,KAAD,CACE/vF,UAAW5K,GACX3E,QAASA,GACTnT,UAAWK,EAAQ0c,IACnB5N,KAAK,mBAEP,eAAC,KAAD,CAAYA,KAAK,cAAjB,SACG,YAAe,IAAZgZ,EAAW,EAAXA,KACF,OACE,uBAAKnoB,UAAWO,IAAWF,EAAQ8P,KAAM9P,EAAQy7E,QAAjD,UACE,eAACn7E,GAAD,CAAIX,UAAWK,EAAQwX,SAAvB,qBACA,sBAAK7X,UAAWK,EAAQuwG,WAAxB,SACG2B,EAAY9mG,KAAI,SAAColG,EAAQ54F,GACxB,OACE,sBAAKjU,IAAKsuG,EAAV,SACE,eAAC,KAAD,CACEtyG,UAAWK,EAAQ07E,UACnB3zE,MAAOghD,EAASynD,GAChBnuF,UAAWrQ,GACXlD,KAAI,sBAAiB8I,EAAjB,UACJ/H,MAAK,iBAAY+H,EAAM,MANGA,QAYpC,eAAC,GAAD,CACEhY,KAAMqoB,GACN7rB,MAAM,UACNyD,YAAa0yG,GACb5yG,UAAWK,EAAQyL,OACnBvC,QAAS,SAAAoV,GAEP,OADAA,EAAEk0F,iBACK1qF,EAAK,CAAEoB,KAAM,MAPxB,kCCvER5pB,GAAYC,YAAWC,IAEvBsT,GAAU,CACd,CAAEhV,QAAS,OAAQka,KAAM,QACzB,CAAEla,QAAS,OAAQka,KAAM,QACzB,CAAEla,QAAS,SAAUka,KAAM,WA6Cdy6F,GA1CQ,WAAO,IAAD,IACrBzyG,EAAUV,KACV4iB,EAAUxH,eAEVg4F,EAEJ,YADA,UAAChqG,IAAO,CAAC,SAAU,kBAAlBA,CAAqCgS,uBAAtC,QAA6D,MAGzD03F,GAAc,mBACjBpyG,EAAQ6xG,eAAgB,GADP,cAEjB7xG,EAAQ+H,OACNW,IAAO,CAAC,SAAU,kBAAlBA,CAAqCwZ,IACtCxZ,IAAO,CAAC,SAAU,kBAAlBA,CAAqCwZ,IAJrB,GAOpB,OACE,uCACE,eAAC5hB,GAAD,CAAIX,UAAWO,IAAWkyG,GAA1B,yCAGA,eAAC,KAAD,CACEzyG,UAAWK,EAAQ0c,IACnB2F,UAAW5K,GACX3E,QAASA,GACThE,KAAK,mBAEN4jG,GACC,uBAAK/yG,UAAWO,IAAWF,EAAQ8P,KAAM9P,EAAQ8xG,aAAjD,UACE,eAAC,KAAD,CACEzvF,UAAWrL,GACXlI,KAAM,cACNe,MAAO,SACPoH,cAAe,EACf07F,eAAe,IAEjB,eAAC7xG,GAAD,CAAKnB,UAAWK,EAAQjD,IAAxB,2BC3CJuC,GAAYC,YAAWC,IAEvBsT,GAAU,CACd,CAAEhV,QAAS,OAAQka,KAAM,QACzB,CAAEla,QAAS,QAASka,KAAM,SAC1B,CACEla,QAAS,mBACT0Z,SAAU,6BACVQ,KAAM,oBA2DK46F,GAvDG,WAAO,IAAD,EAChB5yG,EAAUV,KACV4iB,EAAUxH,eACV03F,GAAc,mBACjBpyG,EAAQ6xG,eAAgB,GADP,cAEjB7xG,EAAQ+H,OACNW,IAAO,CAAC,SAAU,kBAAlBA,CAAqCwZ,IACtCxZ,IAAO,CAAC,SAAU,kBAAlBA,CAAqCwZ,IAJrB,GAsCpB,OACE,uCACE,eAAC5hB,GAAD,CAAIX,UAAWO,IAAWkyG,GAA1B,oCACA,eAAC,KAAD,CACEzyG,UAAWK,EAAQ0c,IACnB2F,UAAW5K,GACX3E,QAASA,GACThE,KAAK,mBAtCY,WACrB,OAAQoT,EAAQ7K,OAAO+4F,gBACrB,IAAK,kBACH,OACE,uBAAKzwG,UAAWK,EAAQ8P,KAAxB,UACE,eAAC,KAAD,CACEnQ,UAAWK,EAAQ6P,MACnBwS,UAAWrQ,GACXlD,KAAM,cACNe,MAAO,qBAET,eAAC,KAAD,CACElQ,UAAWK,EAAQ6P,MACnBwS,UAAWrQ,GACXlD,KAAM,cACNe,MAAO,yBAIf,QACE,OACE,eAAC,KAAD,CACElQ,UAAWK,EAAQ6P,MACnBwS,UAAWrQ,GACXlD,KAAM,cACNe,MAAO,sBAeZgjG,OChEDd,GAAc,SAAAp+E,GAAG,OAAIA,EAAIzK,MAAQyK,EAAIzK,KAAKxnB,QAqB1CwvG,GAAgB,CACpBd,eAAgB,GAChB0C,YAAa,GACbC,YAAa,GACbC,YAAa,GACbd,YAAa,CAAC,CAAEhpF,KAAM,IAAM,CAAEA,KAAM,MAGhCrH,GAAmBC,MAAS,SAAAzK,GAChC,OAAQA,EAAO45F,WACb,IAAK,YACH,OAAOnvF,KAAW,CAChBsuF,eAAgBtuF,OAAaE,WAC7B8wF,YAAahxF,OAAawpB,KAAK,iBAAkB,CAC/C2xB,GAAI,SACJ3vC,KAAMxL,OACHgP,IAAI,GACJ9O,WACHixF,KAAMnxF,OAAYoxF,kBAGxB,IAAK,OACH,OAAOpxF,KAAW,CAChBsuF,eAAgBtuF,OAAaE,WAC7B+wF,YAAajxF,OAAaE,WAC1BgxF,YAAalxF,OAAawpB,KAAK,iBAAkB,CAC/C2xB,GAAI,kBACJ3vC,KAAMxL,OAAaE,WACnBixF,KAAMnxF,OAAYoxF,kBAGxB,IAAK,aACH,OAAOpxF,KAAW,CAChBsuF,eAAgBtuF,OAAaE,WAC7BkwF,YAAapwF,OAAYG,KACvB,gBACA,0DACA,SAAC5K,EAAQ87F,GACP,OAAOzqG,IAASqpG,GAATrpG,CAAsB2O,GAAQ3V,OAAS,OAItD,QACE,OAAOogB,OAAYoxF,kBAIVE,GArDI,WAAO,IAAD,EACjBnC,EAAS,UAAGvoG,IAAO,CAAC,SAAU,aAAlBA,CAAgCgS,uBAAnC,QAA0D,KACnEyJ,EAfQ,SAAA8sF,GACd,OAAQA,GACN,IAAK,YACH,OAAOwB,GACT,IAAK,OACH,OAAOG,GACT,IAAK,aACH,OAAOZ,GACT,QACE,OAAOS,IAMOY,CAAQpC,GAC1B,OAAOA,GAAa,eAAC9sF,EAAD,KC3BtB,SAAS,KAA2Q,OAA9P,GAAW9iB,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,OAAQ,KAAmB,gBAAoB,QAAS,KAAM,ssGAAotG,gBAAoB,WAAY,CAC71GoB,GAAI,aACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,iEACQ,gBAAoB,WAAY,CAChDzE,GAAI,eACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,iEACQ,gBAAoB,WAAY,CAChDzE,GAAI,eACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,iEACQ,gBAAoB,WAAY,CAChDzE,GAAI,eACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,iEACQ,gBAAoB,WAAY,CAChDzE,GAAI,eACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,kEACQ,gBAAoB,WAAY,CAChDzE,GAAI,eACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,kEACQ,gBAAoB,WAAY,CAChDzE,GAAI,eACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,kEACQ,gBAAoB,WAAY,CAChDzE,GAAI,eACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,mEACQ,gBAAoB,WAAY,CAChDzE,GAAI,eACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,mEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,iEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,kEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,kEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,kEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,mEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,2DACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,mEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,oEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,qEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,kEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,mEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,mEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,mEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,oEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,qEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,oEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,mEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,mEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,+DACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,iEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,iEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,iEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,iEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,iEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,iEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,iEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,iEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,iEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,iEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,iEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,iEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,iEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,iEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,iEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,kEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,kEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,iEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,iEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,yDACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,iEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,kEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,kEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,kEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,mEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,mEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,8DACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,gEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,+DACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,+DACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,iEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,iEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,gEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,+DACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,gEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,gEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,+DACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,gEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,+DACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,iEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,yDACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,iEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,iEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,iEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,+DACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,iEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,iEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,iEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,iEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,iEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,yDACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,iEACQ,gBAAoB,WAAY,CAChDzE,GAAI,gBACU,gBAAoB,UAAW,CAC7ChD,UAAW,QACXyH,OAAQ,kEAGN,GAAqB,gBAAoB,IAAK,CAChDzH,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACO,gBAAoB,IAAK,CACxCzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,kEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACO,gBAAoB,IAAK,CACxCzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,kEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACO,gBAAoB,IAAK,CACxCzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,oEAGN,GAAqB,gBAAoB,UAAW,CACtDzH,UAAW,QACXyH,OAAQ,gEAGN,GAAqB,gBAAoB,IAAK,CAChDzH,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,kEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,iEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,mEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,iEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,qEAGN,GAAqB,gBAAoB,UAAW,CACtDzH,UAAW,QACXyH,OAAQ,gEAGN,GAAqB,gBAAoB,IAAK,CAChDzH,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,iEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,mEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,kEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,oEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,kEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,sEAGN,GAAqB,gBAAoB,UAAW,CACtDzH,UAAW,QACXyH,OAAQ,gEAGN,GAAqB,gBAAoB,IAAK,CAChDzH,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,kEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,iEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,mEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,iEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,qEAGN,GAAsB,gBAAoB,UAAW,CACvDzH,UAAW,QACXyH,OAAQ,gEAGN,GAAsB,gBAAoB,IAAK,CACjDzH,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,iEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,mEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,kEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,oEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,0DACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,8DAGN,GAAsB,gBAAoB,UAAW,CACvDzH,UAAW,QACXyH,OAAQ,wDAGN,GAAsB,gBAAoB,IAAK,CACjDzH,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,kEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,oEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,mEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,qEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,oEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,wEAGN,GAAsB,gBAAoB,UAAW,CACvDzH,UAAW,QACXyH,OAAQ,iEAGNksG,GAAsB,gBAAoB,IAAK,CACjD3zG,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,iEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,mEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,kEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,oEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,kEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,sEAGNmsG,GAAsB,gBAAoB,UAAW,CACvD5zG,UAAW,QACXyH,OAAQ,gEAGNosG,GAAsB,gBAAoB,IAAK,CACjD7zG,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,kEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,oEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,mEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,qEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,oEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,wEAGNqsG,GAAsB,gBAAoB,UAAW,CACvD9zG,UAAW,QACXyH,OAAQ,iEAGNssG,GAAsB,gBAAoB,IAAK,CACjD/zG,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,mEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,qEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,kEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,oEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,kEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,sEAGNusG,GAAsB,gBAAoB,UAAW,CACvDh0G,UAAW,QACXyH,OAAQ,oEAGNwsG,GAAsB,gBAAoB,IAAK,CACjDj0G,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,8DACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,kEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,oEAGNysG,GAAsB,gBAAoB,UAAW,CACvDl0G,UAAW,QACXyH,OAAQ,+DAGN0sG,GAAsB,gBAAoB,IAAK,CACjDn0G,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,kEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,kEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,oEAGN2sG,GAAsB,gBAAoB,UAAW,CACvDp0G,UAAW,QACXyH,OAAQ,gEAGN4sG,GAAsB,gBAAoB,IAAK,CACjDr0G,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,kEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,kEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,oEAGN6sG,GAAsB,gBAAoB,UAAW,CACvDt0G,UAAW,QACXyH,OAAQ,gEAGN8sG,GAAsB,gBAAoB,IAAK,CACjDv0G,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,kEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,kEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,oEAGN+sG,GAAsB,gBAAoB,UAAW,CACvDx0G,UAAW,QACXyH,OAAQ,gEAGNgtG,GAAsB,gBAAoB,IAAK,CACjDz0G,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,kEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,kEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,oEAGNitG,GAAsB,gBAAoB,UAAW,CACvD10G,UAAW,QACXyH,OAAQ,gEAGNktG,GAAsB,gBAAoB,IAAK,CACjD30G,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,kEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,iEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,mEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,iEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,qEAGNmtG,GAAsB,gBAAoB,UAAW,CACvD50G,UAAW,QACXyH,OAAQ,gEAGNotG,GAAsB,gBAAoB,IAAK,CACjD70G,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,kEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,kEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,wDACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,4DAGNqtG,GAAsB,gBAAoB,UAAW,CACvD90G,UAAW,QACXyH,OAAQ,wDAGNstG,GAAsB,gBAAoB,IAAK,CACjD/0G,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,kEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,iEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,mEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,iEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,qEAGNutG,GAAsB,gBAAoB,UAAW,CACvDh1G,UAAW,QACXyH,OAAQ,gEAGNwtG,GAAsB,gBAAoB,IAAK,CACjDj1G,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,iEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,mEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,kEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,oEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,kEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,sEAGNytG,GAAsB,gBAAoB,UAAW,CACvDl1G,UAAW,QACXyH,OAAQ,gEAGN0tG,GAAsB,gBAAoB,IAAK,CACjDn1G,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,6DACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,+DACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,+DACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,iEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,8DACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,kEAGN2tG,GAAsB,gBAAoB,UAAW,CACvDp1G,UAAW,QACXyH,OAAQ,8DAGN4tG,GAAsB,gBAAoB,IAAK,CACjDr1G,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,8DACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,kEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,oEAGN6tG,GAAsB,gBAAoB,UAAW,CACvDt1G,UAAW,QACXyH,OAAQ,+DAGN8tG,GAAsB,gBAAoB,IAAK,CACjDv1G,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,+DACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,iEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,8DACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,+DACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,mEAGN+tG,GAAsB,gBAAoB,UAAW,CACvDx1G,UAAW,QACXyH,OAAQ,6DAGNguG,GAAsB,gBAAoB,IAAK,CACjDz1G,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,+DACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,iEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,8DACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,+DACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,mEAGNiuG,GAAsB,gBAAoB,UAAW,CACvD11G,UAAW,QACXyH,OAAQ,6DAGNkuG,GAAsB,gBAAoB,IAAK,CACjD31G,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,kEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,kEACS,gBAAoB,UAAW,CAChDzH,UAAW,QACXyH,OAAQ,iEAGNmuG,GAAsB,gBAAoB,IAAK,CACjD51G,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,8DACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,kEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,wDACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,4DAGNouG,GAAsB,gBAAoB,UAAW,CACvD71G,UAAW,QACXyH,OAAQ,uDAGNquG,GAAsB,gBAAoB,IAAK,CACjD91G,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,kEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,kEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,oEAGNsuG,GAAsB,gBAAoB,UAAW,CACvD/1G,UAAW,QACXyH,OAAQ,gEAGNuuG,GAAsB,gBAAoB,IAAK,CACjDh2G,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,8DACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,kEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,oEAGNwuG,GAAsB,gBAAoB,UAAW,CACvDj2G,UAAW,QACXyH,OAAQ,+DAGNyuG,GAAsB,gBAAoB,IAAK,CACjDl2G,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,kEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,kEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,oEAGN0uG,GAAsB,gBAAoB,UAAW,CACvDn2G,UAAW,QACXyH,OAAQ,gEAGN2uG,GAAsB,gBAAoB,IAAK,CACjDp2G,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,IAAK,CACvCA,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,wDACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,0DACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,SACXyH,OAAQ,kEACS,gBAAoB,IAAK,CAC1CzH,UAAW,SACG,gBAAoB,UAAW,CAC7CA,UAAW,QACXyH,OAAQ,gEACO,gBAAoB,IAAK,CACxCzH,UAAW,UACG,gBAAoB,UAAW,CAC7CA,UAAW,SACXyH,OAAQ,oEAGN4uG,GAAsB,gBAAoB,UAAW,CACvDr2G,UAAW,SACXyH,OAAQ,4DAGV,SAAS6uG,GAAqB7yG,EAAMC,GAClC,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDT,GAAI,UACJ,YAAa,UACbc,MAAO,6BACPC,WAAY,+BACZF,QAAS,gBACTG,IAAKN,EACL,kBAAmBE,GAClBxD,GAAQuD,EAAqB,gBAAoB,QAAS,CAC3DX,GAAIY,GACHD,GAAS,KAAM,GAAO,GAAO,GAAO,GAAO,GAAO,GAAO,GAAO,GAAO,GAAQ,GAAQ,GAAQ,GAAQ,GAAQgwG,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,IAGpc,I,8BAAI,GAA0B,aAAiBC,IClgDzC32G,IDmgDS,ICngDGC,YAxBH,CACbsmB,KAAM,CACJtgB,UAAW,IACXyf,SAAU,KAEZ1hB,MAAO,CACLtF,OAAQ,CAAC,CAAC,GAAI,EAAG,GAAI,KAEvBkrB,KAAM,CACJlrB,OAAQ,GAEVyN,OAAQ,CACNjH,UAAW,OACXqB,aAAc,IAEhBmyC,aAAc,CACZl6C,QAAS,OACT8H,cAAe,SACf/G,WAAY,SACZD,QAAS,CAAC,CAAC,EAAG,KACdkR,KAAM,MA6BKyoC,GAvBM,SAAC,GAAoB,IAAlBC,EAAiB,EAAjBA,WAChBx4C,EAAUV,KAChB,OACE,uBAAKK,UAAWK,EAAQg4C,aAAxB,UACE,eAAC,GAAD,CAAer4C,UAAWK,EAAQ6lB,OAClC,eAAC1lB,GAAD,CAAIR,UAAWK,EAAQsD,MAAvB,wCACA,eAAC9C,GAAD,CAAGb,UAAWK,EAAQkpB,KAAtB,2MAKA,eAAC1oB,GAAD,0MAKA,eAAC0iB,GAAD,CAAQvjB,UAAWK,EAAQyL,OAAQvC,QAASsvC,EAA5C,6BCIAl5C,GAAYC,YAnBH,CACbq7E,QAAS,CACP58E,OAAQ,CAAC,CAAC,GAAI,EAAG,GAAI,KAEvBuS,OAAQ,CACNzS,QAAS,OACT8H,cAAe,MACf5H,OAAQ,CAAC,CAAC,OAAQ,EAAG,MAEvByN,OAAQ,CACNhH,WAAY,QAEd4V,KAAM,CACJ5b,OAAQ,OACRX,QAAS,OACT8H,cAAe,YAwCbmsG,GAAc,SAAAp+E,GAAG,OAAIA,EAAIzK,MAAQyK,EAAIzK,KAAKxnB,QAE1Cw0G,GAAe,SAAC7+F,EAAQ+7B,GAAe,IAAD,EACpC+iE,EAAoC,eAArB9+F,EAAO45F,UACtBmF,EAAUD,EACZ/iE,EACE1qC,IAAO,CAAC,eAARA,CAAwB2O,GACxB3O,KAAM,SAAAk3C,GAAC,OAAIA,EAAE12B,OAAbxgB,CAAA,UAAmBA,IAASqpG,GAATrpG,CAAsB2O,EAAO66F,oBAAhD,QAAgE,IAClE,GAEEmE,EAA2C,WAA1Bh/F,EAAO+4F,eACxB0C,EAAcuD,EAAiBh/F,EAAOy7F,YAAc,GAEtDwD,EAAS,CACXxnG,KAAMuI,EAAOgiE,gBACb62B,QAAS,CACPhnF,KAAM7R,EAAOm6F,YACbluG,MAAO+T,EAAOk6F,cAEhBlB,QAAS,CACP/sG,MAAO+T,EAAOq6F,aACdxoF,KAAM7R,EAAOs6F,aAEf19F,MAAO,CACLhM,KAAMoP,EAAO45F,UACbb,eAAgB/4F,EAAO+4F,iBAwB3B,OApBI+F,IACFG,EAAS5tG,KAAY,CAAC,QAAS,cAAe0tG,EAASE,IAGrDD,IACFC,EAAS5tG,KAAY,CAAC,QAAS,aAAcoqG,EAAawD,IAGxDj/F,EAAO07F,cACTuD,EAAS5tG,KAAY,CAAC,QAAS,UAAW2O,EAAO07F,YAAauD,IAG5Dj/F,EAAO27F,cACTsD,EAAS5tG,KAAY,CAAC,QAAS,UAAW2O,EAAO27F,YAAasD,IAG5DljE,IACFkjE,EAAS5tG,KAAY,CAAC,MAAO2O,EAAO1U,GAAI2zG,IAGnCA,GAqBHC,GAAgB,SAAC/nF,EAAG45C,GACxB,OAAK1/D,IAAQ0/D,GACN55C,EADiB45C,GAmFX3rB,GA/EA,SAAC,GAA8D,IAA5D7sC,EAA2D,EAA3DA,QAAwB4mG,GAAmC,EAAlDzuG,MAAkD,EAAnCyuG,YAAY53D,EAAuB,EAAvBA,OAAQmK,EAAe,EAAfA,SACtD/oD,EAAUV,KACV8zC,GAAa1qC,IAAQ8tG,GAFgD,EAGnDxsG,mBAASopC,EAAY,EAAI,GAH0B,mBAGpEnzB,EAHoE,KAG9DiE,EAH8D,KAIrEm3D,EAjHQ,SAAAp7D,GACd,OAAQA,GACN,KAAK,EACH,MAAO,CACLq8B,OAAQm6D,GACRtyF,UAAWmtF,IAEf,KAAK,EACH,MAAO,CACLh1D,OAAQo6D,GACRvyF,UAAWstF,IAEf,KAAK,EACH,MAAO,CAAEn1D,OAAQq6D,GAAkBxyF,UAAWgtF,IAChD,KAAK,EACH,MAAO,CACL70D,OAAQs6D,GACRzyF,UAAW0yF,IAEf,KAAK,EACH,MAAO,CACLv6D,OAAQw6D,GACR3yF,UAAWivF,IAEf,QACE,MAAO,CACL92D,OAAQ,GACRn4B,UAAW,WACT,OAAO,4DAqFKm3D,CAAQr7D,GACtB28B,EAzIU,IAyIG38B,EAEbu4B,EAAa,SAACnhC,EAAQo4B,GAC1B,IAAMsnE,EACiB,cAArB1/F,EAAO45F,WAAkD,eAArB55F,EAAO45F,UAC7C,OAAI79D,GAAsB,IAATnzB,EACR82F,EACH7yF,EAAQ,GACR06B,EAAOs3D,GAAa7+F,EAAQ+7B,GAAYA,GAE1CA,GAAsB,IAATnzB,EACR2+B,EAAOs3D,GAAa7+F,EAAQ+7B,GAAYA,GAEpC,IAATnzB,EACmBiE,EAAd6yF,EAAsB92F,EAAO,EAAaA,EAAO,GAErD28B,EAGEgC,EAAOs3D,GAAa7+F,EAAQ+7B,GAAYA,GAFtClvB,EAAQjE,EAAO,IAKpB+2F,EAAgB5jE,EAlDE,SAAA7/B,GAAO,IACvBiyE,EAAkBjyE,EAAlBiyE,cACR,MAAO,CACL7iF,GAAI4Q,EAAG5Q,GACP02E,gBAAiBmM,EAAc12E,KAC/ByiG,aAAc/rB,EAAc0qB,QAAQ5sG,MACpCkuG,YAAahsB,EAAc0qB,QAAQhnF,KACnCwoF,aAAclsB,EAAc6qB,QAAQ/sG,MACpCquG,YAAansB,EAAc6qB,QAAQnnF,KACnC+nF,UAAWzrB,EAAcvxE,MAAMhM,KAC/B8qG,YAAavtB,EAAcvxE,MAAMxW,OACjCu1G,YAAaxtB,EAAcvxE,MAAMvW,OACjCw0G,YAAa1sB,EAAcvxE,MAAMs8F,WACjCH,eAAgB5qB,EAAcvxE,MAAMm8F,eACpC0C,YAAattB,EAAcvxE,MAAMw8F,WAoCDwG,CAAkBT,GAAc,GAC5DU,EAAc9jE,EAChB,6BACA,yBACJ,OACE,gBAAC,GAAD,CACE9vC,MAAO2c,EAAO,EAAIi3F,EAAc,GAChC5nG,YAAaM,EACbxQ,MAAO,IACPX,OAAQ,IACRkQ,MAAM,EALR,UAMGsR,EAAO,GACN,eAAC,GAAD,CACEtgB,UAAWK,EAAQ46E,QACnB16D,MA7KQ,EA8KRg5B,YAAaj5B,IAGP,IAATA,IAAemzB,GAAa,eAAC,GAAD,CAAcoF,WAAYA,IACtDv4B,EAAO,GACN,eAAC,KAAD,CACE4C,gBAAgB,EAChBC,kBAAkB,EAClBg0B,oBAAoB,EACpB7zB,SAAUu1B,EACV79B,cAAejS,KACb6tG,GADa,+DAGRY,IACAC,IACAC,IACAC,IACAC,IAELP,GAEFn1F,iBAAkBw5D,EAAY/+B,OAhBhC,SAiBE,gBAAC,KAAD,CAAM38C,UAAWK,EAAQqa,KAAM1X,GAAI,0BAAnC,UACE,eAAC04E,EAAYl3D,UAAb,IACA,uBAAKxkB,UAAWK,EAAQuQ,OAAxB,UACGw4C,GAAY,eAAC,GAAD,6BACb,eAAC7lC,GAAD,CAAQvjB,UAAWK,EAAQyL,OAAQxD,KAAK,SAAxC,SACG20C,EAAa,OAAS,qBCxNjCt9C,GAAYC,YCjBH,CACbi4G,GAAI,CACFx5G,OAAQ,GAEVy5G,KAAM,CACJ5xG,aAAc,IAEhB6xG,YAAa,CACX55G,QAAS,OACT8H,cAAe,SACf/G,WAAY,SACZJ,OAAQ,MACR6F,eAAgB,UAElBqzG,sBAAuB,CACrBnzG,WAAY,GACZ1G,QAAS,UDGP85G,GAAmB,CACvBC,UAAW,YACX3uF,KAAM,OACNqnF,WAAY,eAGRuH,GAAwB,CAC5Bt+E,KAAM,OACNu+E,KAAM,OACN5rF,MAAO,QACPzqB,OAAQ,SACRs2G,UAAW,aACXC,eAAgB,kBAChBC,gBAAiB,oBAGbxpC,GAAUtlE,IAAH,6LAOP+uG,GAAW/uG,IAAH,0NAWRgvG,GAAahvG,IAAH,4IEpDDivG,GF4DY,SAAC,GAIrB,IAHLC,EAGI,EAHJA,WACAC,EAEI,EAFJA,aACM/hC,EACF,EADJ1sE,KAEM9J,EAAUV,KADZ,EAGkC0K,qBAHlC,mBAGGokE,EAHH,KAGgBC,EAHhB,OAIgCrkE,qBAJhC,mBAIGwsG,EAJH,KAIegC,EAJf,OAKoCxuG,oBAAS,GAL7C,mBAKGuoC,EALH,KAKiBC,EALjB,OAM4BxoC,oBAAS,GANrC,mBAMG++C,EANH,KAMa0vD,EANb,OAQeluG,YAAYmkE,GAAS,CACtClkE,QAAS,WACPC,QAAQkY,IAAI,0CACZ81F,GAAY,IAEdh2F,YAAa,WACXg2F,GAAY,GACZF,KAEF7tG,eAAgB,iBAAM,CAAC,yBATlB4kE,EARH,sBAoBgB/kE,YAAY4tG,GAAU,CACxC3tG,QAAS,WACPC,QAAQkY,IAAI,2CACZ81F,GAAY,IAEdh2F,YAAa,WACXg2F,GAAY,GACZD,EAAc,MACdD,KAEF7tG,eAAgB,iBAAM,CAAC,UAAW,yBAV7BguG,EApBH,sBAiCkBnuG,YAAY6tG,GAAY,CAC5C5tG,QAAS,WACPC,QAAQkY,IAAI,4CACZ81F,GAAY,IAEdh2F,YAAa,WACX+vB,GAAgB,GAChBimE,GAAY,IAEd/tG,eAAgB,iBAAM,CAAC,UAAW,yBAT7BiuG,EAjCH,oBAqDEC,EAAa,SAACvhG,EAAQ+7B,GAC1B,OAAIA,EACKslE,EAAU,CACfntG,UAAW,CACT5I,GAAI0U,EAAO1U,GACX6iF,cAAe98E,KAAO,CAAC,MAARA,CAAe2O,MAI7Bi4D,EAAS,CACd/jE,UAAW,CACTi6E,cAAc,eACTnuE,OAMX,OACE,uCACGm/D,EAAe90E,OAAS,GACvB,eAAC,GAAD,CACEmtD,UAAU,iCACVzgB,SAAU,CACR,CACE/pC,OAAQ,mBACRjF,MAAO,IACPyS,UAAW,OACXjG,KAAM,KACNqnC,KAAM,SAAA1/B,GAAE,OAAIA,EAAGiyE,cAAc12E,OAE/B,CACEzK,OAAQ,kBACRjF,MAAO,IACPyS,UAAW,OACXjG,KAAM,KACNqnC,KAAM,SAAA1/B,GAAE,OAAIqkG,GAAiBrkG,EAAGiyE,cAAcvxE,MAAMhM,QAEtD,CACE5D,OAAQ,cACRjF,MAAO,IACPyS,UAAW,OACXjG,KAAM,KACNqnC,KAAM,SAAA1/B,GAAE,OACNukG,GAAsBvkG,EAAGiyE,cAAcvxE,MAAMm8F,kBAEjD,CACE/rG,OAAQ,OACRjF,MAAO,IACPyS,UAAW,SACXjG,KAAM,KACNqnC,KAAM,SAAA1/B,GACJ,OACE,eAAC,GAAD,CACErK,QAAS,WAEP,OADAsvG,EAAcjlG,GACPglG,KAHX,SAKE,eAAC,GAAD,QAKR,CACEl0G,OAAQ,SACRjF,MAAO,IACPyS,UAAW,SACXjG,KAAM,KACNqnC,KAAM,SAAA1/B,GACJ,OACE,eAAC,GAAD,CACErK,QAAS,WAEP,OADAmlE,EAAe96D,EAAG5Q,IACX6vC,GAAgB,IAH3B,SAKE,eAAC,GAAD,SAMV1oC,KAAM0sE,EACN51B,QAASyJ,GACTmE,YAAU,EACV/a,QAAQ,QAGV+iC,EAAe90E,QACf,uBAAK/B,UAAWK,EAAQ03G,YAAxB,UACE,eAACh3G,GAAD,CAAOf,UAAWO,IAAWF,EAAQw3G,GAAIx3G,EAAQy3G,MAAjD,6EAGA,gBAAC72G,GAAD,CAAOjB,UAAWO,IAAWF,EAAQw3G,GAAIx3G,EAAQy3G,MAAjD,4BACkB,IAChB,oBAAGjmG,KAAK,uEAAR,SACE,eAAC,GAAD,gCACG,IAJP,2DAOA,eAAC0R,GAAD,CAAQha,QAAS,kBAAMqvG,KAAvB,+CAKHD,GACC,eAAC,GAAD,CACEvvD,SAAUA,EACVn5C,QAAS,WACP4oG,EAAc,MACdC,GAAY,GACZF,KAEF/B,WAAYA,EACZ53D,OAAQ,kBAAag6D,EAAU,WAAV,gBAIzB,eAAC,GAAD,CACEr3F,aAAcwnC,EAAW,mBAAqB,GAC9Cp6C,KAAM4jC,EACNzC,YAAa,WACX0C,GAAgB,GAChBimE,GAAY,IAEd5oE,YAAa,WAnIjB8oE,EAAY,CACVptG,UAAW,CACT5I,GAiIgCyrE,YGlPzB,IACb+C,YAAa,CACXnzE,OAAQ,EACRoB,MAAO,IAETy5G,gBAAiB,CACfjzG,cAAe,MACftB,eAAgB,iBAElBw0G,gBAAiB,CACf/yG,YAAa,GAEfiyF,WAAY,CACV54F,MAAO,M,UCELE,GAAYC,YAAW,CAC3Bm8D,WAAY,CACVj9D,OAAQ,GACRG,QAAS,CAAC,CAAC,EAAG,MAEhBo3E,MAAO,CACLp3E,QAAS,EACTZ,OAAQ,GAEVy9D,WAAY,CACV71D,cAAe,OAEjBmC,MAAO,CACL3L,MAAO3B,IAETw7E,aAAc,CACZx3E,OAAQ,GACRG,QAAS,GAEXs3E,YAAa,CACXp4E,QAAS,OACTq4E,oBAAqB,CAAC,CAAC,IAAK,IAAK,OAEnC7zC,cAAe,CACbv8B,YAAa,GAEfgzG,cAAe,CACbt0G,WAAY,GAEdu0G,iBAAkB,CAChBl7G,QAAS,OACT8H,cAAe,UAEjBqzG,eAAgB,CACdz0G,UAAW,IAEb00G,wBAAyB,CACvBp7G,QAAS,OACT8H,cAAe,OAEjBuzG,eAAgB,CACdpzG,YAAa,EACb3G,MAAO,IAET6a,YAAa,CACXzV,UAAW,GAEb40G,MAAO,CACL30G,WAAY,EACZsB,YAAa,GAEfszG,UAAW,CACT50G,WAAY,GAEd60G,eAAgB,CACdl6G,MAAO,IAET6U,MAAO,CACLzP,WAAY,GAEd+0G,aAAc,CACZn6G,MAAO,IAETo6G,UAAW,CACTp6G,MAAO,IAET47E,cAAe,CACbx2E,UAAW,GACX0a,SAAU,OAMRu6F,GAAc33F,OAAaE,WAC3BhE,GAAY8D,OAAaC,MAAM,CACnC/D,UAAW8D,OACR0zC,WACAxyD,UAAUuY,IACV1L,MAAM,qBACT6pG,cAAe53F,OACZ9e,UAAUuY,IACVi6C,WACA3lD,MAAM,4BAGLkuD,GAAcj8C,OAAaC,MAAM,CACrCg8C,YAAaj8C,OAAaE,WAC1Bs3F,eAAgBx3F,OACb9e,UAAUuY,IACVi6C,aAGCmkD,GAAS73F,OACZC,MAAM,CACL03F,eACA17C,eACA//C,eAGDiE,MAAK,WAA6BC,GAAa,IAAvClE,EAAsC,EAAtCA,UAAWy7F,EAA2B,EAA3BA,YA8BlB,IAAIA,IATuB,CACzBG,SAAU,SAAA57F,GAAS,OAAIA,EAAUA,WAAa,GAC9CquD,SAAU,SAAAruD,GAAS,OACjBA,EAAUA,WAAa,GAAKA,EAAU07F,cAAgB,GACxDG,WAAY,SAAA77F,GAAS,OACnBA,EAAUA,UAAY,GAAKA,EAAU07F,cAAgB,GACvDI,gBAAiB,SAAA97F,GAAS,OAAIA,EAAU07F,cAAgB,IAGpBD,GAAaz7F,GAEnD,OAAOkE,EAAQi0C,YAAY,CACzBpP,KAAM,YACN7+C,QAjCoB,CACpB0xG,SAAU,SAAA57F,GAAS,MAAI,6CACvBquD,SAAU,SAAAruD,GACR,IAEM9V,EAAU,GAGhB,OAFI8V,EAAUA,UAAY,GAAG9V,EAAQ4f,KAHZ,6CAIrB9J,EAAU07F,eAAiB,GAAGxxG,EAAQ4f,KAHb,+BAItB5f,EAAQg5B,KAAK,OAEtB24E,WAAY,SAAA77F,GACV,IAEM9V,EAAU,GAGhB,OAFI8V,EAAUA,WAAa,GAAG9V,EAAQ4f,KAHb,uCAIrB9J,EAAU07F,eAAiB,GAAGxxG,EAAQ4f,KAHb,+BAItB5f,EAAQg5B,KAAK,OAEtB44E,gBAAiB,SAAA97F,GAAS,MAAI,gCAePy7F,GAAaz7F,QAGvCiE,MAAK,WAAkBC,GAAa,IAA5B67C,EAA2B,EAA3BA,YAMP,IAAIA,IALyB,SAAAA,GAAW,MACV,YAA5BA,EAAYA,aACRA,EAAYu7C,eAAiB,EAGhBS,CAAqBh8C,GAExC,OAAO77C,EAAQi0C,YAAY,CACzBpP,KAAM,cACN7+C,QAAS,8CA2FT8xG,GAAal4F,OAChBC,MAAM,CACL03F,YAAa33F,OAAaE,WAC1BhE,UAAW8D,KAAW,CACpB9D,UAAW8D,OACR9e,UAAUuY,IACVi6C,WACHkkD,cAAe53F,OACZ9e,UAAUuY,IACVi6C,eAGNvzC,MAAK,WAA6BC,GAAa,IAAvClE,EAAsC,EAAtCA,UAAWy7F,EAA2B,EAA3BA,YAkClB,IAAIA,IATuB,CACzBG,SAAU,SAAA57F,GAAS,OAAIA,EAAUA,WAAa,GAC9CquD,SAAU,SAAAruD,GAAS,OACjBA,EAAUA,WAAa,GAAKA,EAAU07F,cAAgB,GACxDG,WAAY,SAAA77F,GAAS,OACnBA,EAAUA,UAAY,GAAKA,EAAU07F,cAAgB,GACvDI,gBAAiB,SAAA97F,GAAS,OAAIA,EAAU07F,cAAgB,IAGpBD,GAAaz7F,GAEnD,OAAOkE,EAAQi0C,YAAY,CACzBpP,KAAM,YACN7+C,QArCoB,CACpB0xG,SAAU,SAAA57F,GAAS,MAAI,6CACvBquD,SAAU,SAAAruD,GACR,IAEM9V,EAAU,GAKhB,QAJK8V,EAAUA,WAAaA,EAAUA,UAAY,IAChD9V,EAAQ4f,KAJe,+CAKpB9J,EAAU07F,eAAiB17F,EAAU07F,eAAiB,IACzDxxG,EAAQ4f,KALmB,+BAMtB5f,EAAQg5B,KAAK,OAEtB24E,WAAY,SAAA77F,GACV,IAEM9V,EAAU,GAKhB,QAJK8V,EAAUA,WAAaA,EAAUA,WAAa,IACjD9V,EAAQ4f,KAJe,yCAKpB9J,EAAU07F,eAAiB17F,EAAU07F,eAAiB,IACzDxxG,EAAQ4f,KALmB,+BAMtB5f,EAAQg5B,KAAK,OAEtB44E,gBAAiB,SAAA97F,GAAS,MAAI,gCAePy7F,GAAaz7F,QAIpCi8F,GAAc,CAClB,CAAEn8G,QAAS,qBAAsBka,KAAM,YACvC,CAAEla,QAAS,qBAAsBka,KAAM,YACvC,CAAEla,QAAS,uBAAwBka,KAAM,cACzC,CAAEla,QAAS,mBAAoBka,KAAM,oBAGjCkiG,GAAO,SAAC,GAAkB,IAAD,YAAZn6G,EAAY,oBACvBC,EAAUV,KADa,EAQzBob,eALFH,EAH2B,EAG3BA,OACAD,EAJ2B,EAI3BA,QACAjD,EAL2B,EAK3BA,OACA8iG,EAN2B,EAM3BA,WACAC,EAP2B,EAO3BA,aAGIC,EAAS,eACZr6G,EAAQ+H,MAAQwS,EAAOk/F,aAAen/F,EAAQm/F,aAG3Ca,EAAe5xG,KAAA,OAAW2O,QAAX,IAAWA,OAAX,EAAWA,EAAQoiG,aAClCc,EAA6BD,EAAa,CAAC,WAAY,aACvDE,EAA6BF,EAAa,CAAC,eAC3CG,EAAyBH,EAAa,CAAC,WAAY,eACnDI,EAA2BJ,EAAa,CAAC,oBAEzCK,IACFpgG,EAAOyD,cACR,UAAC1D,EAAQ0D,iBAAT,aAAC,EAAmBA,aACpB08F,MACA,UAACrjG,EAAO2G,iBAAR,aAAC,EAAkBA,aAAa,UAAA3G,EAAO2G,iBAAP,eAAkBA,WAAY,GAC3D48F,IACFrgG,EAAOyD,cACR,UAAC1D,EAAQ0D,iBAAT,aAAC,EAAmB07F,iBACpBY,EAAa,CAAC,iBACd,UAACjjG,EAAO2G,iBAAR,aAAC,EAAkB07F,iBAAiB,UAAAriG,EAAO2G,iBAAP,eAAkB07F,eAAgB,GAEnEmB,KAAsBD,IAAgBD,GAEtCG,EAAc,eACjB96G,EAAQ+H,MAAQ8yG,GAYnB,OACE,uCACE,eAAC1xF,GAAA,EAAD,CAAKrrB,QAAQ,OAAOe,WAAW,SAA/B,SACE,eAACyB,GAAD,CAAIX,UAAWO,IAAWm6G,GAA1B,mCAEF,eAAC,KAAD,CACEh4F,UAAW5K,GACX3I,KAAK,cACLgE,QAASmnG,GACTviG,eAAgB1X,EAAQ07D,WACxB/jD,eAAgB3X,EAAQg2E,MACxBr2E,UAAWK,EAAQy7D,WACnBvpD,SAAU,SAAAoM,GACR87F,EAAa97F,GACb67F,EAAW,CACTn8F,WAAW,EACX07F,eAAe,OAKrB,uBAAK/5G,UAAWK,EAAQg5G,iBAAxB,WA5BAuB,GACAC,GACAC,GACAC,IA2BI,eAACp6G,GAAD,CAAIX,UAAWO,IAAW46G,EAAgB96G,EAAQi5G,gBAAlD,uBAIF,uBAAKt5G,UAAWK,EAAQk5G,wBAAxB,UACGqB,GACC,uCACE,eAAC,KAAD,CACE56G,UAAWK,EAAQm5G,eACnB92F,UAAWrL,GACXpL,KAAK,KACLkD,KAAK,sBACL/G,MAAO4yG,IAET,eAACj6G,GAAD,CAAOf,UAAWO,IAAWF,EAAQia,aAArC,SACGla,EAAM0d,cAIZ+8F,GACC,uCACE,eAAC,KAAD,CACE76G,UAAWK,EAAQm5G,eACnB92F,UAAWrL,GACXpL,KAAK,KACLkD,KAAK,sBACL/G,MAAO4yG,IAET,eAACj6G,GAAD,CAAOf,UAAWO,IAAWF,EAAQia,aAArC,6BAKHwgG,GACC,uCACE,eAAC/5G,GAAD,CACEf,UAAWO,IACTm6G,EACAr6G,EAAQo5G,MACRp5G,EAAQia,aAJZ,gBAQA,eAAC,KAAD,CACEta,UAAWK,EAAQm5G,eACnB92F,UAAWrL,GACXpL,KAAK,KACLkD,KAAK,0BACL/G,MAAO6yG,IAET,eAACl6G,GAAD,CAAOf,UAAWO,IAAWF,EAAQia,aAArC,qBAGHygG,GACC,uCACE,eAAC,KAAD,CACE/6G,UAAWK,EAAQm5G,eACnB92F,UAAWrL,GACXpL,KAAK,KACLkD,KAAK,0BACL/G,MAAO6yG,IAET,eAACl6G,GAAD,CAAOf,UAAWO,IAAWF,EAAQia,aAArC,2CAsBR8gG,GAAoBj5F,OACvBC,MAAM,CACLg8C,YAAaj8C,KAAW,CACtBi8C,YAAaj8C,OAAaE,WAC1Bs3F,eAAgBx3F,OAAawpB,KAAK,cAAe,CAC/C2xB,GAAI,SAAA7qD,GAAK,MAAc,YAAVA,GACbkb,KAAMxL,OACH0zC,WACAxyD,UAAUuY,IACby/F,UAAWl5F,OACR0zC,WACAxyD,WAAU,kBAAM,UAErBi4G,oBAAqBn5F,OAAawpB,KAAK,cAAe,CACpD2xB,GAAI,SAAA7qD,GAAK,MAAc,WAAVA,GACbkb,KAAMxL,OACNk5F,UAAWl5F,OACR0zC,WACAxyD,WAAU,iBAAM,UAEpBgf,aAEJC,MAAK,WAAkBC,GAAa,IAA5B67C,EAA2B,EAA3BA,YACDg8C,EAAuB,SAACh8C,EAAa91D,GACzC,OAAQA,GACN,IAAK,UACH,OAAO81D,EAAYA,cAAgB91D,GAC/B81D,EAAYu7C,eAAiB,EAEnC,IAAK,SACH,OAAOv7C,EAAYA,cAAgB91D,IAC9BS,IAAQq1D,EAAYk9C,qBAE3B,QACE,OAAO,IAIb,OAAIl9C,IAAgBg8C,EAAqBh8C,EAAa,WAC7C77C,EAAQi0C,YAAY,CACzBpP,KAAM,cACN7+C,QAAS,2CAGT61D,IAAgBg8C,EAAqBh8C,EAAa,UAC7C77C,EAAQi0C,YAAY,CACzBpP,KAAM,cACN7+C,QAAS,iCAHb,KAOEkwE,GAAqB,CACzB,CAAEt6E,QAAS,mBAAoBka,KAAM,OACrC,CAAEla,QAAS,gBAAiBka,KAAM,eAClC,CAAEla,QAAS,UAAWka,KAAM,cAC5B,CAAEla,QAAS,kBAAmBka,KAAM,aACpC,CAAEla,QAAS,YAAaka,KAAM,aAC9B,CAAEla,QAAS,SAAUka,KAAM,SAE3B,CAAEla,QAAS,UAAWka,KAAM,WAC5B,CAAEla,QAAS,QAASka,KAAM,UAGtBkjG,GAAsB,SAAC3gG,EAAQD,EAASjD,GAAlB,kBACxBkD,EAAOwjD,gBACR,UAACzjD,EAAQyjD,mBAAT,aAAC,EAAqBu7C,oBACtB,UAACjiG,EAAO0mD,mBAAR,aAAC,EAAoBu7C,kBACpB,UAAAjiG,EAAO0mD,mBAAP,eAAoBu7C,gBAAiB,IAEnC6B,GAA4B,SAAC5gG,EAAQD,EAASjD,GAAlB,kBAC9BkD,EAAOwjD,gBACR,UAACzjD,EAAQyjD,mBAAT,aAAC,EAAqBk9C,yBACtB,UAAC5jG,EAAO0mD,mBAAR,aAAC,EAAoBk9C,uBACnBvyG,IAAA,UAAQ2O,EAAO0mD,mBAAf,aAAQ,EAAoBk9C,uBAE3BG,GAAc,SAAC,GAA4B,IAAD,IAAzB/jC,EAAyB,EAAzBA,mBACfr3E,EAAUV,KAD8B,EAQ1Cob,eALFJ,EAH4C,EAG5CA,QACAC,EAJ4C,EAI5CA,OACAlD,EAL4C,EAK5CA,OACA+iG,EAN4C,EAM5CA,aACAD,EAP4C,EAO5CA,WAGIkB,EAAiD,aAA/B,OAANhkG,QAAM,IAANA,GAAA,UAAAA,EAAQ0mD,mBAAR,eAAqBA,aACjCu9C,EAAgD,YAA/B,OAANjkG,QAAM,IAANA,GAAA,UAAAA,EAAQ0mD,mBAAR,eAAqBA,aAYhCjrD,GAL4C,OAAlBukE,QAAkB,IAAlBA,OAAA,EAAAA,EAAoB31E,QAAS,EAKtB,UAC/B02E,GAD+B,CAJd,CACvBt6E,QAAS,iCACTka,KAAM,YAE+B,UAE/BogE,IACFmjC,EAAU,eACbv7G,EAAQ+H,QACJwS,EAAOwjD,cAAgBs9C,IAAcC,GACvCD,GAAaH,GAAoB3gG,EAAQD,EAASjD,IAClDikG,GAAYH,GAA0B5gG,EAAQD,EAASjD,IAG5D,OACE,uCACE,eAAC8R,GAAA,EAAD,CAAKrrB,QAAQ,OAAOe,WAAW,SAA/B,SACE,eAACyB,GAAD,CAAIX,UAAWO,IAAWq7G,GAA1B,oCAEF,eAAC,KAAD,CACEl5F,UAAW5K,GACX3I,KAAK,0BACLgE,QAASA,EACT4E,eAAgB1X,EAAQi2E,aACxBt+D,eAAgB3X,EAAQg2E,MACxBr2E,UAAWO,IAAWF,EAAQy7D,WAAYz7D,EAAQk2E,aAClDhkE,SAAU,SAAAoM,GACR87F,EAAa97F,GACb67F,EAAW,CACTb,gBAAgB,OAIrB+B,GACC,eAAC,KAAD,CACE17G,UAAWK,EAAQm5G,eACnB92F,UAAWrL,GACXnH,MAAM,OACNjE,KAAK,KACLkD,KAAK,6BACL/G,MAAOmzG,GAAoB3gG,EAAQD,EAASjD,KAG/CikG,GACC,+BACE,eAAC,KAAD,CACE37G,UAAWK,EAAQg7E,cACnB34D,UAAW9L,GACX1G,MAAM,qBACNf,KAAK,kCACLgE,QAxDRukE,EAAmBjsE,KAAI,SAAAmI,GAAE,MAAK,CAC5BnB,MAAOmB,EAAG5Q,GACV7E,QAASyV,EAAGiyE,cAAc12E,iBA8D1B0sG,GAAe,SAAAnkC,GAAkB,MAAK,CAC1C/6B,OAAQy+D,GACRjoG,QAASslE,GACTj0D,UAAWi3F,GACXr7G,MAAO,CAAEs3E,sBACT6jC,oBAAqBA,GACrBC,0BAA2BA,GAC3BxgG,cAAe,CACbojD,YAAa,CACXA,YAAa,GACbu7C,eAAgB,GAChB2B,oBAAqB,OAKrB/mD,GAAU,SAACpqD,EAAMkO,EAAMm8C,GAAb,OAAyB,SAAA5gD,GACvC,OAAKzJ,EAEEpB,IAAUA,IAAOsP,GAAOtP,KAAOA,IAAA,OAASyrD,QAAT,IAASA,IAAW,OAAQ5gD,IAA3D7K,CAAiEoB,GAFtD,KAoBd2xG,GAAqB,SAAAC,GAAW,OAAI,SAAAnoG,GACxC,OAAOA,EAAG5Q,KAAO+4G,IAGbC,GAAmB,SAAC,GAA4B,IAAD,MAAzBtkC,EAAyB,EAAzBA,mBAClBhgE,EAAWqD,eAAXrD,OACFrX,EAAUV,KAEVy+D,EAAW,OAAG1mD,QAAH,IAAGA,GAAH,UAAGA,EAAQ0mD,mBAAX,aAAG,EAAqBA,YACnC69C,EAAe,UACnBlzG,IAAO,CAAC,cAAe,uBAAvBA,CAA+C2O,UAD5B,QACuC,GACtDgkG,EAA4B,YAAhBt9C,EACZjgE,EAAU89G,EAAe,UAC3BlzG,IAAO,CAAC,gBAAiB,QAAzBA,CACEA,KAAO+yG,GAAmBG,GAA1BlzG,CAA4C2uE,WAFnB,QAGtB,GACLnjB,GAAQkkB,GAAoB,UAA5BlkB,CAAuC6J,GAE3C,OACE,gBAAC50C,GAAA,EAAD,CAAKrrB,QAAQ,OAAOe,WAAW,WAA/B,oBACMf,EADN,YACiBu9G,EAAY,MAAQ,IAClCA,GACC,eAAC,KAAD,CACEzpG,MAAI,EACJjS,UAAWK,EAAQs5G,eACnBxqG,KAAK,6BACLuT,UAAWrL,GACXnF,UAAU,WAGbwpG,GAAa,WAKdQ,GAAkB,SAAC,GAKlB,IAAD,EAJJ99C,EAII,EAJJA,YACAu7C,EAGI,EAHJA,eACA2B,EAEI,EAFJA,oBACA5jC,EACI,EADJA,mBAEMr3E,EAAUV,KACVxB,EACY,WAAhBigE,EAAA,UACIr1D,IAAO,CAAC,gBAAiB,QAAzBA,CACEA,KAAO+yG,GAAmBR,GAA1BvyG,CAAgD2uE,WAFtD,QAGS,GACLnjB,GAAQkkB,GAAoB,UAA5BlkB,CAAuC6J,GACvCs9C,EAA4B,YAAhBt9C,EAClB,OACE,gBAAC50C,GAAA,EAAD,CAAKrrB,QAAQ,OAAOe,WAAW,WAA/B,oBACMf,EADN,YACiBu9G,EAAY,MAAQ,IAClCA,GACC,eAAC16G,GAAD,CAAOhB,UAAWK,EAAQo5G,MAAOr7G,UAAQ,EAAzC,SACGu7G,IAGJ+B,GAAa,WAKdS,GAAmB,SAAC,GAAkC,IAAD,MAA/B7nF,EAA+B,EAA/BA,OAAQxW,EAAuB,EAAvBA,SAAUs+F,EAAa,EAAbA,OACtC/7G,EAAUV,KAEVmT,GAAY,mBACfzS,EAAQiU,OAAQ,GADD,cAEfjU,EAAQu5G,aAAuC,gBAAlB,OAANtlF,QAAM,IAANA,OAAA,EAAAA,EAAQwlF,cAFhB,cAGfz5G,EAAQw5G,UAAoC,qBAAlB,OAANvlF,QAAM,IAANA,OAAA,EAAAA,EAAQwlF,cAHb,GAMZz7F,EAAS,OAAGiW,QAAH,IAAGA,GAAH,UAAGA,EAAQjW,iBAAX,aAAG,EAAmBA,UAC/B07F,EAAa,OAAGzlF,QAAH,IAAGA,GAAH,UAAGA,EAAQjW,iBAAX,aAAG,EAAmB07F,cAEnCsC,EAAYD,EAChB,eAAC,KAAD,CACEnqG,MAAI,EACJjS,UAAWO,IAAWuS,GACtB3D,KAAK,sBACLuT,UAAWrL,GACXnF,UAAU,UAGZ,eAAClR,GAAD,CAAO5C,UAAQ,EAAf,SAAiBigB,IAEbi+F,EAAgBF,EACpB,eAAC,KAAD,CACEnqG,MAAI,EACJjS,UAAWO,IAAWuS,GACtB3D,KAAK,0BACLuT,UAAWrL,GACXnF,UAAU,UAGZ,eAAClR,GAAD,CAAO5C,UAAQ,EAAf,SAAiB27G,IAGnB,cAAQzlF,QAAR,IAAQA,OAAR,EAAQA,EAAQwlF,aACd,IAAK,WACH,OACE,gBAACtwF,GAAA,EAAD,CAAKrrB,QAAQ,OAAOe,WAAW,WAAWyF,eAAe,QAAzD,UACG03G,EACD,eAAC/6G,GAAD,CAAQlD,UAAQ,EAAC4B,UAAWK,EAAQq5G,UAApC,SACG57F,OAIT,IAAK,WACH,OACE,gBAAC0L,GAAA,EAAD,CAAKrrB,QAAQ,OAAOe,WAAW,WAAWyF,eAAe,QAAzD,UACG03G,EACD,eAAC/6G,GAAD,CAAQlD,UAAQ,EAAC4B,UAAWK,EAAQq5G,UAApC,SACG57F,IAEH,eAACzc,GAAD,CAAQjD,UAAQ,EAAC4B,UAAWK,EAAQo5G,MAApC,gBAGC6C,EACD,eAACj7G,GAAD,CAAQjD,UAAQ,EAAC4B,UAAWK,EAAQq5G,UAApC,qBAKN,IAAK,aACH,OACE,gBAAClwF,GAAA,EAAD,CAAKrrB,QAAQ,OAAOe,WAAW,WAAWyF,eAAe,QAAzD,UACG03G,EACD,eAACh7G,GAAD,CAAQrB,UAAWK,EAAQo5G,MAAOr7G,UAAQ,EAA1C,6BAGCk+G,EACD,eAACj7G,GAAD,CAAQrB,UAAWK,EAAQq5G,UAAWt7G,UAAQ,EAA9C,qBAKN,IAAK,kBACH,OACE,gBAACorB,GAAA,EAAD,CAAKrrB,QAAQ,OAAOe,WAAW,WAAWyF,eAAe,QAAzD,UACG23G,EACD,eAACj7G,GAAD,CAAQrB,UAAWK,EAAQq5G,UAAWt7G,UAAQ,EAA9C,qBAKN,QACE,MAAO,KAIPm+G,GAAiBx8G,gBAAK,YAAmB,IAAhB+d,EAAe,EAAfA,SACrBpG,EAAWqD,eAAXrD,OAER,OAAO,eAAC,GAAD,CAAkB0kG,QAAQ,EAAM9nF,OAAQ5c,EAAQoG,SAAUA,OAG7D0+F,GAAgB,SAAC,GAA0B,IAAxBloF,EAAuB,EAAvBA,OAAQxW,EAAe,EAAfA,SAC/B,OAAO,eAAC,GAAD,CAAkBwW,OAAQA,EAAQxW,SAAUA,KAG/Ck8C,GAAc,SAACl8C,EAAUzd,EAASq3E,GAApB,MAA2C,CAC7D,CACEvoE,KAAM,cACNlD,KAAM,KACNxM,MAAO,IACP6U,MAAO,gBAAmBnF,EAAnB,EAAGsL,MAAShI,MAAZ,OACL,qCAAG8hD,GAAQ+lD,GAAa,UAArB/lD,CAAgCplD,MAErCmkC,KAAMihB,GAAQ+lD,GAAa,WAC3B9mE,WAAY,CACVrgC,QAASmnG,GACTlnG,UAAW,OACXE,UAAW,UACXL,aAAc,OAGlB,CACE9D,KAAM,cACNlD,KAAM,KACNxM,MAAO,IACPuzC,aAAa,EACb1+B,MAAO,kBAAM,eAAC,GAAD,CAAkBojE,mBAAoBA,KACnDpkC,KAAM,SAAA1/B,GAAE,OACN,eAAC,GAAD,2BAAqBA,GAArB,IAAyB8jE,mBAAoBA,OAGjD,CACEvoE,KAAM,YACNlD,KAAM,KACNxM,MAAO,IACPyS,UAAW,QACXoC,MAAO,kBAAM,eAACioG,GAAD,CAAgBz+F,SAAUA,KACvCw1B,KAAM,SAAC1/B,EAAI0gB,GAAL,OAAgB,eAAC,GAAD,CAAeA,OAAQA,EAAQxW,SAAUA,QAgB7D2+F,GAAe1zG,IAAMA,IAAO,QAAbA,CAAsBuxG,IACrC/kE,GAAS,CACbxsC,MACE,SAAC8lB,EAAG45C,GAAJ,OACEg0C,GAAa95G,QAAQksB,EAAEirF,aAAe2C,GAAa95G,QAAQ8lE,EAAEqxC,iBA4B7D4C,GAAW,SAAA9lC,GAAQ,OACvB7tE,KAAM,gBAAGq1D,EAAH,EAAGA,YAAa//C,EAAhB,EAAgBA,UAAc4kD,EAA9B,+DACJ7E,YAAaA,EAAYA,YACzBu7C,eAAgBv7C,EAAYu7C,eAC5Bt7F,UAAWA,EAAUA,UACrB07F,cAAe17F,EAAU07F,cACzBuB,oBAAqBl9C,EAAYk9C,qBAC9Br4C,KANLl6D,CAOI6tE,ICv3BA/2E,GAAS,CACbo7E,QAAS,CACP58E,OAAQ,CAAC,CAAC,GAAI,EAAG,GAAI,KAEvBuS,OAAQ,CACNzS,QAAS,OACT8H,cAAe,MACf5H,OAAQ,CAAC,CAAC,OAAQ,EAAG,MAEvByN,OAAQ,CACNhH,WAAY,QAEd4V,KAAM,CACJ5b,OAAQ,OACRX,QAAS,OACT8H,cAAe,UAEjBi1E,UAAW,CACT78E,OAAQ,CAAC,CAAC,GAAI,EAAG,GAAI,KAEvB88E,gBAAiB,CACf1+E,MAAOpD,GAET+hF,WAAY,CACVn8E,QAAS,CAAC,CAAC,EAAG,KACdZ,OAAQ,CAAC,CAAC,EAAG,EAAG,EAAG,IACnBkP,aAAa,aAAD,OAAelU,GAC3B8E,QAAS,iBAIPwB,GAAYC,YAAWC,IAEvB87E,GAAU,SAACr7D,EAAMxC,EAAU45D,GAC/B,OAAQp3D,GAGN,KAAK,EACH,ODiZO,SAAAxC,GAAQ,MAAK,CACxB6+B,OAAQ09D,GACRlnG,QAASmnG,GACT91F,UAAW+1F,GACXn6G,MAAO,CAAE0d,YACT9C,cAAe,CACb8+F,YAAa,GACbz7F,UAAW,CAAEA,UAAW,GAAI07F,cAAe,MCxZlCzxG,CAAKwV,GACd,KAAK,EACH,OAAO+9F,GAAankC,GACtB,QACE,OAAOx/D,aAIPykG,GAAU,SAACr8F,EAAMgU,EAAQxW,EAAUzd,GACvC,OAAQigB,GAGN,KAAK,EACH,OAAO,sDAAes8F,GAAYtoF,EAAQxW,EAAUzd,MACtD,KAAK,EACH,OAAO,2DAAoBw8G,GAAmBvoF,EAAQj0B,GAA/C,OACT,QACE,OAAO,iCAIPy8G,GAAc,SAACrqG,EAAOpS,GAC1B,IAAM08G,EAAe,uBAAM/8G,UAAWK,EAAQ+6E,aAC9C,OAAOryE,KAAU0J,IAAU1J,IAAQ0J,GAASsqG,EAAetqG,GAgBvDmqG,GAAc,SAACtoF,EAAQxW,EAAUzd,GACrC,OAAQi0B,EAAOwlF,aACb,IAAK,WACH,OACE,yEACkC,IAC/BgD,GAAYxoF,EAAOjW,UAAUA,UAAWhe,GAF3C,IAEsDyd,KAG1D,IAAK,WACH,OACE,0DACmBg/F,GAAYxoF,EAAOjW,UAAUA,UAAWhe,GAAU,IAClEyd,EAFH,gCAE0C,IACvCg/F,GAAYxoF,EAAOjW,UAAU07F,cAAe15G,GAAU,IACtD6tC,GAAiB5Z,EAAOjW,UAAU07F,cAAe,MAAO,WAG/D,IAAK,aACH,OACE,0DACmB+C,GAAYxoF,EAAOjW,UAAUA,UAAWhe,GAAU,IAClE6tC,GACC5Z,EAAOjW,UAAUA,UACjB,cACA,gBACC,IANL,MAOMy+F,GAAYxoF,EAAOjW,UAAU07F,cAAe15G,GAAU,IACzD6tC,GAAiB5Z,EAAOjW,UAAU07F,cAAe,MAAO,WAG/D,IAAK,kBACH,OACE,gFACyC,IACtC+C,GAAYxoF,EAAOjW,UAAU07F,cAAe15G,GAAU,IACtD6tC,GAAiB5Z,EAAOjW,UAAU07F,cAAe,MAAO,WAG/D,QACE,OAAO,iCAIP8C,GAAqB,SAACvoF,EAAQj0B,GAAa,IAAD,EAC9C,iBAAQi0B,EAAO8pC,mBAAf,aAAQ,EAAoBA,aAC1B,IAAK,MACH,OAAO,+FACT,IAAK,cACH,OAAO,uEACT,IAAK,aACH,OAAO,4DACT,IAAK,YACH,OAAO,qEACT,IAAK,QACH,OAAO,mFACT,IAAK,YACH,OAAO,iFACT,IAAK,YACH,OAAO,+BACT,IAAK,UACH,OACE,uDACgB,IACb0+C,GAAYxoF,EAAO8pC,YAAYu7C,eAAgBt5G,GAAU,IACzD6tC,GAAiB5Z,EAAO8pC,YAAYu7C,eAAgB,MAAO,WAGlE,IAAK,QACH,OAAO,iDACT,IAAK,SACH,OAAO,+EACT,QACE,OAAOmD,GAAY,KAAMz8G,KAIzB28G,GAAY,SAAC,GAAsD,IAApD18F,EAAmD,EAAnDA,KAAmD,IAA7CgU,cAA6C,MAApC,GAAoC,MAAhC2oF,kBAAgC,MAAnB,GAAmB,EAAfn/F,EAAe,EAAfA,SACjDzd,EAAUV,KAEVu9G,EAAUn0G,KAAQ,EAAGuX,GAAM7U,KAAI,SAACmI,EAAIqE,GAAL,OACnC,eAAC,IAAMC,SAAP,UACGykG,GAAQ/oG,EAAI0gB,EAAQxW,EAAUzd,IADZ4X,MAIjBklG,EAAUR,GAAQr8F,EAAM28F,EAAYn/F,EAAUzd,GAC9C48C,EArKU,IAqKG38B,EAEnB,OACE,uCACE,eAAC1f,GAAD,CAAIZ,UAAWK,EAAQ66E,UAAvB,qCACA,gBAACj6E,GAAD,CAAO7C,UAAQ,EAAf,UACG8+G,EACS,IAAT58F,GAAc,KACf,uBAAMtgB,UAAWK,EAAQ86E,gBAAzB,SAA2CgiC,KACzClgE,GAAc,aAMlBmgE,GAAY,SAAC,GAAmB,IAAjBC,EAAgB,EAAhBA,UACX3lG,EAAWqD,eAAXrD,OAKR,OAJAxM,qBAAU,WACRmyG,GAAa3lG,GAAU2lG,EAAU3lG,KAChC,CAAC2lG,EAAW3lG,IAER,MA4HMolC,GAzHA,SAAC,GAA4D,IAA1D7sC,EAAyD,EAAzDA,QAAS6kC,EAAgD,EAAhDA,KAAM1sC,EAA0C,EAA1CA,MAAO0V,EAAmC,EAAnCA,SAAU45D,EAAyB,EAAzBA,mBAC1Cr3E,EAAUV,KADyD,EAGrC0K,mBAAS,IAH4B,mBAGlE4yG,EAHkE,KAGtDK,EAHsD,OAIpCjzG,mBAAS,CAC5CiW,KAAM,IALiE,0BAIhEA,EAJgE,EAIhEA,KAAMgU,EAJ0D,EAI1DA,OAAU0oB,EAJgD,KAQnEC,EArMU,IAqMG38B,EACbo7D,EAAcC,GAAQr7D,EAAMxC,EAAU45D,GAEtC7+B,EAAU,yCAAG,WAAMjlC,GAAN,gBAAAib,EAAA,yDACXwuB,EAAYt0C,KAAQurB,EAAQonD,EAAY/+B,OAAOzG,KAAKtiC,KAEtDqpC,EAHa,yCAIRnI,EAAKuI,IAJG,OAOjBL,EAAS,CACP18B,KAAMA,EAAO,EACbgU,OAAQ+oB,IATO,2CAAH,sDAaVkgE,EAAqB,SAAC3iG,EAAQD,EAASjD,GAAY,IAAD,gBAChDoiG,EAAW,OAAGpiG,QAAH,IAAGA,OAAH,EAAGA,EAAQoiG,YACtBa,EAAe5xG,KAAW+wG,GAC1B4B,EAAiD,aAA/B,OAANhkG,QAAM,IAANA,GAAA,UAAAA,EAAQ0mD,mBAAR,eAAqBA,aACjCu9C,EAAgD,YAA/B,OAANjkG,QAAM,IAANA,GAAA,UAAAA,EAAQ0mD,mBAAR,eAAqBA,aAEhCm9C,EAAsBM,KAAeN,oBACzC3gG,EACAD,EACAjD,GAEI8jG,EAA4BK,KAAeL,0BAC/C5gG,EACAD,EACAjD,GAGIsjG,IACFpgG,EAAOyD,cACR,UAAC1D,EAAQ0D,iBAAT,aAAC,EAAmBA,aACpBs8F,EAAa,CAAC,wBACd,UAACjjG,EAAO2G,iBAAR,aAAC,EAAkBA,aAAa,UAAA3G,EAAO2G,iBAAP,eAAkBA,WAAY,GAE3D48F,IACFrgG,EAAOyD,cACR,UAAC1D,EAAQ0D,iBAAT,aAAC,EAAmB07F,iBACpBY,EAAa,CAAC,iBACd,UAACjjG,EAAO2G,iBAAR,aAAC,EAAkB07F,iBAAiB,UAAAriG,EAAO2G,iBAAP,eAAkB07F,eAAgB,GAEzE,OAAIY,EAAa,CAAC,WAAY,WAAY,gBAAkBK,GAI1DL,EAAa,CAAC,WAAY,aAAc,qBACxCM,EAJOrgG,EAAOyD,UASbq9F,GAAaH,GACbI,GAAYH,EAEN5gG,EAAOwjD,iBAJhB,GAOF,OACE,qCACE,gBAAC,GAAD,CACEz6D,MAAM,yBACNgM,YAAaM,EACbxQ,MAAO,IACPX,OAAQ,IACR84C,UACE,eAAC,GAAD,CACE95B,SAAUA,EACVwC,KAAMA,EACNgU,OAAQA,EACR2oF,WAAYA,IAGhB1lE,gBAAiB,IACjBvoC,MAAM,EAdR,UAeE,eAAC,GAAD,CACEhP,UAAWK,EAAQ46E,QACnB16D,MArRQ,EAsRRg5B,YAAaj5B,IAEf,eAAC,KAAD,CACE4C,gBAAgB,EAChBC,kBAAkB,EAClBg0B,oBAAkB,EAClB7zB,SAAUu1B,EACV79B,cAAe0gE,EAAY1gE,cAC3BkH,iBAAkBw5D,EAAY/+B,OANhC,SAOG,gBAAG/hC,EAAH,EAAGA,OAAQD,EAAX,EAAWA,QAASjD,EAApB,EAAoBA,OAApB,OACC,gBAAC,KAAD,CAAM1X,UAAWK,EAAQqa,KAAzB,UACE,eAAC,GAAD,CAAW2iG,UAAWC,IACtB,eAAC5hC,EAAYl3D,UAAb,eAA2Bk3D,EAAYt7E,QACvC,uBAAKJ,UAAWK,EAAQuQ,OAAxB,UACGxI,GAAS,eAAC,GAAD,6BACTm1G,EAAmB3iG,EAAQD,EAASjD,IACnC,eAAC,GAAD,UACG6lG,EAAmB3iG,EAAQD,EAASjD,KAGzC,eAAC6L,GAAD,CAAQvjB,UAAWK,EAAQyL,OAAQxD,KAAK,SAAxC,SACG20C,EAAa,SAAW,wBC1SrCt9C,GAAYC,YAAWC,IAEvBkiB,GAActY,IAAH,4GA0EF+zG,GApEK,SAAC,GAMd,IALL5mC,EAKI,EALJA,SACA+hC,EAII,EAJJA,WACArkF,EAGI,EAHJA,OACAskF,EAEI,EAFJA,aACAlhC,EACI,EADJA,mBAEM55D,EAAW/U,IAAO,CAAC,gBAARA,CACfsrB,GAAcR,GAAdQ,CAAiCC,IAF/B,GAIY30B,KACU0K,mBAAS,OAL/B,mBAKGjC,EALH,KAKU4tC,EALV,OAOiBprC,YAAYmX,GAAa,CAC5Ce,YAAa,kBAAM81F,EAAa,QAChC7tG,eAAgB,iBAAM,CAAC,YACvBF,QAAS,SAAAzC,GAAK,OAAI4tC,EAAS5tC,MAHtBq3C,EAPH,oBA2BJ,OACE,uCACE,eAAC,GAAD,CACEt1C,KAAMysE,EACNznE,KAAK,WACLu/B,YAAU,EACV6G,OAAQA,GACRD,QAAQ,cACRzG,cAAY,EACZzmC,MAAK,OAAEA,QAAF,IAAEA,OAAF,EAAEA,EAAOG,QACdusC,KAxBO,SAAAxgB,GAEX,OADA0hB,EAAS,MACFyJ,EAAW,CAChB7zC,UAAW,CAAE0oB,OAAQ,CAAEsiD,SAAU8lC,GAASpoF,EAAOsiD,eAsB/C10D,iBAAkB83F,GAClBvrE,SAAUurB,GAAYl8C,EAAUzd,EAASq3E,KAE1CihC,GACC,eAAC,GAAD,CACE76F,SAAUA,EACV1V,MAAK,OAAEA,QAAF,IAAEA,OAAF,EAAEA,EAAOG,QACdusC,KAzBI,SAAAq7B,GACV,IAAMstC,EAAS10G,KAAS,CAAC,aAAE/F,GAAI8zC,eAAMnmB,UAAW,QAAWw/C,IAA5CpnE,CACb6tE,GAEF,OAAOn3B,EAAW,CAAE7zC,UAAW,CAAE0oB,OAAQ,CAAEsiD,SAAU8lC,GAASe,QAsBxDxtG,QAAS2oG,EACTlhC,mBAAoBA,IAGvB3uE,KAAU6tE,IACT,gBAACptD,GAAA,EAAD,CAAKrrB,QAAQ,OAAOe,WAAW,SAAS+G,cAAc,SAASw4E,GAAI,GAAnE,UACE,eAACh+E,GAAD,+EAGA,eAAC8iB,GAAD,CAAQha,QAAS,kBAAMqvG,KAAvB,sCC/EJ8E,GAAkC,SAAAhmC,GACtC,IAQM8C,EAASzxE,KAAM,SAAA6K,GAAE,MAAK,CAC1BzV,QAASyV,EAAGiyE,cAAc12E,KAC1BkJ,KAAMzE,EAAG5Q,MAFI+F,CAGX2uE,GAEJ,OAAO3uE,KAbM,CACX,CAAE5K,QAAS,YAAaka,KAAM,aAC9B,CAAEla,QAAS,gBAAiBka,KAAM,eAClC,CAAEla,QAAS,UAAWka,KAAM,cAC5B,CAAEla,QAAS,kBAAmBka,KAAM,aACpC,CAAEla,QAAS,SAAUka,KAAM,UAQPmiE,IAGlBmjC,GAAqB,SAACtlG,EAAMq/D,GAChC,OAAO3uE,IACL,UACAA,KAAOA,IAAS,OAAQsP,GAAxBtP,CACE20G,GAAgChmC,MAKhCkmC,GAAgBz7F,OAAaC,MAAM,CACvCy7F,eAAgB17F,OACbjS,MAAM,mBACNmS,WACH+0D,WAAYj1D,OACTjS,MAAM,cACNguD,QAAQ,sBACR77C,aAGCszC,GAAqB,SAACj+C,EAAQggE,GAClC,OAAOv1D,OAAaC,MAAM,CACxBpf,GAAImf,OACDjS,MAAM,eACNmS,WACAC,KAAK,CACJA,KADI,WACI,IACE87C,EAAgB97D,KAAKotD,OAArB0O,YACR,OAAIr1D,KAAOA,IAAS,cAAeq1D,GAA/Br1D,CAA6C2O,IACxCpV,KAAKk0D,YAAY,CACtBjuD,QAAQ,eAAD,OAAiBo1G,GACtBv/C,EACAsZ,GAFK,2BASjBmmC,eAAgB17F,OACbjS,MAAM,mBACNmS,WACH+0D,WAAYj1D,OACTjS,MAAM,cACNguD,QAAQ,sBACR77C,cA+BDy7F,GAAe,SAAApmC,GACnB,MAAO,CACL,CACEvoE,KAAM,cACNzK,OAAQ,cACRjF,MAAO,IACPwM,KAAM,KACNqnC,KAAMihB,GACJmpD,GAAgChmC,GAChC,WAEFpjE,MAAOtB,GACPwgC,WAAY,CACVrgC,QAASuqG,GAAgChmC,GACzCpkE,UAAW,UACXF,UAAW,SAGf,CACEjE,KAAM,iBACNzK,OAAQ,kBACRjF,MAAO,IACPwM,KAAM,KACNgnC,UAAU,GAEZ,CACE9jC,KAAM,aACNzK,OAAQ,aACRjF,MAAO,IACPwM,KAAM,KACNqI,MAAOtB,GACPwgC,WAAY,CACVrgC,QAAS,CACP,CAAEkF,KAAM,YAAala,QAAS,aAC9B,CAAEka,KAAM,SAAUla,QAAS,WAE7BmV,UAAW,UACXF,UAAW,WAMbwjD,GAAW,CACf,CACEinD,eAAgB,UAChBzmC,WAAY,cAIVvgB,GAAoB,CACxBuH,YAAa,GACby/C,eAAgB,UAChBzmC,WAAY,aCrIRr1D,GAActY,IAAH,4GAMXunD,GAAWvnD,IAAH,kEAMRs0G,GAAsBt0G,IAAH,gJAwGVu0G,GA9FkBj+G,gBAAK,WAAO,IAAD,IACpCy/C,EAAa3rB,GADuB,EAEhBxpB,mBAAS,MAFO,mBAEnCjC,EAFmC,KAE5B4tC,EAF4B,OAGI3rC,oBAAS,GAHb,mBAGnC2nE,EAHmC,KAGjBC,EAHiB,OAIQ5nE,oBAAS,GAJjB,mBAInC6nE,EAJmC,KAIfC,EAJe,OAMDloE,YAAS+mD,IAA1C7mD,EANkC,EAMlCA,KAAeymD,EANmB,EAM5BxmD,QAN4B,EAOsBH,YAC9D8zG,IADYE,EAP4B,EAOlC9zG,KAAkC+zG,EAPA,EAOT9zG,QAI3BstE,EAAkB,UACtB3uE,IAAO,CAAC,sBAARA,CAA+Bk1G,UADT,QAC+B,GACjDE,EAA4Bp1G,IAASA,IAAS,WAAW,GAA7BA,CAChC2uE,GAGIttE,EAAUwmD,GAAiBstD,EAjBS,EAmBrBtzG,YAAYmX,GAAa,CAC5ChX,eAAgB,iBAAM,CAAC,YACvBF,QAAS,SAAAzC,GAAK,OAAI4tC,EAAS5tC,MAFtBq3C,EAnBmC,oBAsCpC2+D,GACA,OAAJj0G,QAAI,IAAJA,OAAA,EAAAA,EAAMmqB,SAAUD,GAAcmrB,EAAdnrB,CAAA,OAA0BlqB,QAA1B,IAA0BA,OAA1B,EAA0BA,EAAMmqB,QAC5C+pF,EACJD,IAAqBr1G,KAAUq1G,GAC3BA,EACAxnD,GACA0nD,EAAqB,iBAAGF,QAAH,IAAGA,OAAH,EAAGA,EAAkB/+D,iBAArB,QAAkC,GAK7D,OACGj1C,GACC,uCACE,eAAC,GAAD,UACE,eAAC,GAAD,CACEzG,MAAM,+BACNyE,MAAK,OAAEA,QAAF,IAAEA,OAAF,EAAEA,EAAOG,QACdssC,SAAO,EACP1lC,KAAK,iBACLu/B,YAAU,EACV1zB,cAAeqjG,EACfvpE,KApCW,SAAAlhC,GACnB,IAAMypC,EAAY5oB,GAAY+qB,EAAZ/qB,CAAwB7gB,EAAG2qG,eAAe,IAE5D,OADAvoE,EAAS,MACFyJ,EAAW,CAChB7zC,UAAW,CAAE0oB,OAAQ+oB,MAiCfn7B,iBAAkB07F,GAClBzzG,KAAMpB,KAAKs1G,GACX5vE,SD/BH,CACL,CACEt/B,KAAM,iBACNzK,OAAQ,kBACRjF,MAAO,IACPwM,KAAM,KACNgnC,UAAU,GAEZ,CACE9jC,KAAM,aACNzK,OAAQ,aACRjF,MAAO,IACPwM,KAAM,KACNqI,MAAOtB,GACPwgC,WAAY,CACVrgC,QAAS,CACP,CAAEkF,KAAM,YAAala,QAAS,aAC9B,CAAEka,KAAM,SAAUla,QAAS,WAE7BmV,UAAW,UACXF,UAAW,UCYP+hC,WAlBe,SAACvhC,EAAIs+B,GAAL,OAAiB+/B,EAAkB//B,IAmBlD7gC,aAAc6gE,MAGlB,eAAC,GAAD,UACE,eAAC,GAAD,CACE9pE,MAAK,OAAEA,QAAF,IAAEA,OAAF,EAAEA,EAAOG,QACd5E,MAAM,YACNkxC,SAAO,EACP1lC,KAAK,YACL0/B,cAAY,EACZH,YAAU,EACVsG,cAAY,EACZh6B,cAAe67C,GACf/hB,KA9CY,SAAAlhC,GACpB,IAAM0gB,EAASG,GAAY+qB,EAAZ/qB,CAAwB7gB,GAEvC,OADAoiC,EAAS,MACFyJ,EAAW,CAAE7zC,UAAW,CAAE0oB,aA4CzBpS,iBAAkByzC,GAChB2oD,EACAH,GAEFh0G,KAAMm0G,EACN7vE,SAAUqvE,GAAaK,GACvBhpE,WAtCiB,SAACvhC,EAAIs+B,GAAL,OAAiBigC,EAAoBjgC,IAuCtD7gC,aAAc2gE,YCvGpBryE,GAAYC,YAAWC,IAEvBkiB,GAActY,IAAH,4GAMX6/B,GAAa7/B,IAAH,kEAMVs0G,GAAsBt0G,IAAH,gJCnCV+0G,GD6CE,WAAO,IAAD,UACfn+G,EAAUV,KADK,EAEW0K,oBAAS,GAFpB,mBAEdo0G,EAFc,KAEF9/D,EAFE,OAGoB10C,YAASq/B,IAA1Cn/B,EAHa,EAGbA,KAAeymD,EAHF,EAGPxmD,QAHO,EAI2CH,YAC9D8zG,IADYE,EAJO,EAIb9zG,KAAkC+zG,EAJrB,EAIY9zG,QAJZ,EAOKC,mBAAS,MAPd,mBAOdjC,EAPc,KAOP4tC,EAPO,OAQS3rC,oBAAS,GARlB,mBAQdq0G,EARc,KAQLC,EARK,KAUfjnC,EAAkB,UACtB3uE,IAAO,CAAC,sBAARA,CAA+Bk1G,UADT,QAC+B,GACjDE,EAA4Bp1G,IAASA,IAAS,WAAW,GAA7BA,CAChC2uE,GAGId,ELyyBW,SAACA,EAAUc,GAC5B,OAAO3uE,KACL,gBACEq1D,EADF,EACEA,YACAu7C,EAFF,EAEEA,eACAt7F,EAHF,EAGEA,UACA07F,EAJF,EAIEA,cACAuB,EALF,EAKEA,oBACGr4C,EANL,sHAQE7E,YAAa,CACXA,cACAu7C,iBACA2B,uBAEFj9F,UAAW,CACTA,YACA07F,kBAEC92C,KAlBAl6D,CAoBL6tE,GK9zBegoC,CAAU,iBAACz0G,QAAD,IAACA,GAAD,UAACA,EAAMmqB,cAAP,aAAC,EAAcsiD,gBAAf,QAA2B,IAChD7G,GACA,OAAJ5lE,QAAI,IAAJA,OAAA,EAAAA,EAAMmqB,SAAUD,GAAc,aAAdA,CAA4BlqB,EAAKmqB,QAC7C07C,EAAkB,iBAAGD,QAAH,IAAGA,OAAH,EAAGA,EAAkBC,0BAArB,SAnBH,EAqBAplE,YAAYmX,GAAa,CAC5Ce,YAAa,kBAAM67B,GAAU,IAC7B5zC,eAAgB,iBAAM,CAAC,YACvBF,QAAS,SAAAzC,GAAK,OAAI4tC,EAAS5tC,MAHtBq3C,EArBc,oBAgCfo/D,EAAiB,eACpBx+G,EAAQg4F,WAA0B,wBAAZqmB,GAGnBI,EAAU,SAAAC,GACd,OAAOA,EACHj3F,SAASC,cAAc,SAASC,UAAUS,IAAI,aAC9CX,SAASC,cAAc,SAASC,UAAUC,OAAO,cAGjD2wF,EAAe,SAAAoG,GAAU,OAAI,SAAA3tG,GACjC,OAAIotG,IAAeO,GAAc3tG,GAC/BytG,GAAQ,GACDngE,EAAU,QAEnBmgE,GAAQ,GACDngE,EAAUqgE,MAGb50G,EAAUwmD,GAAiBstD,EAEjC,OACE,uCACE,gBAAC,GAAD,CACEv6G,MAAM,sBACNwlB,QAAS,CACP,CACEI,KAAM,oBACNxhB,KAAMk3G,GACN31F,YAAa41F,GACb7tG,eAA4B,qBAAZqtG,GAChBttG,OAAQ,SAAAmyE,GACNo7B,IAAWp7B,GAAO,sBAGtB,CACEh6D,KAAM,uBACNxhB,KAAMo3G,GACN71F,YAAa81F,GACb/tG,eAA4B,uBAAZqtG,GAChBttG,OAAQ,SAAAmyE,GACNo7B,IAAWp7B,GAAO,yBAIxBvjF,UAAWO,IAAWs+G,GAtBxB,WAuBIH,GACA,eAACl1F,GAAA,EAAD,CAAKrrB,QAAQ,OAAOe,WAAW,SAA/B,SACE,gBAACsqB,GAAA,EAAD,CACErrB,QAAQ,OACRe,WAAW,SACXyF,eAAe,WACfy9C,GAAG,OAJL,UAKE,eAACvhD,GAAD,sCACA,eAAC,GAAD,CACEyU,QAAS06D,EACTz9D,SAAU,SAAAxC,IA7DC,SAAAogE,GACvB,IAAM77C,EAASG,GAAY,aAAZA,CAA0B07C,GAClC1wB,EAAW,CAAE7zC,UAAW,CAAE0oB,YA4DnB47C,CAAiB,CAAEF,mBAAoBjgE,EAAMnO,OAAO0T,WAEtD7C,MAAOu9D,IAET,eAAC1uE,GAAD,CAAQtB,UAAWK,EAAQmxE,YAA3B,SACGxB,EAAqB,KAAO,QAE/B,eAAC91B,GAAD,CAAkBz6C,MAAO,IAAzB,SACE,eAACoB,GAAD,wLASK,uBAAZ69G,IACE31G,KAAUo1G,IACT,eAAC30F,GAAA,EAAD,CAAKrrB,QAAQ,OAAOwG,eAAe,WAAnC,SACE,eAAC,GAAD,CACElI,MAAM,UACN8M,QAAS,kBAAMqvG,EAAa,mBAAbA,IAFjB,8CAOJxuG,IAAYs0G,IAAY31G,KAAU6tE,IAClC,eAACptD,GAAA,EAAD,CAAKrrB,QAAQ,OAAOwG,eAAe,WAAnC,SACE,eAAC,GAAD,CAAMlI,MAAM,UAAU8M,QAAS,kBAAMqvG,EAAa,aAAbA,IAArC,qCAMJxuG,GAAuB,uBAAZs0G,GACX,eAAC,GAAD,CACEv0G,KAAMg0G,EACNxF,WAA2B,qBAAf8F,EACZ7F,aAAcA,EAAa,uBAG7BxuG,IAAYs0G,GACZ,eAAC,GAAD,CACE9nC,SAAUA,EACV+hC,WAA2B,eAAf8F,EACZnqF,OAAM,iBAAEnqB,QAAF,IAAEA,OAAF,EAAEA,EAAMmqB,cAAR,QAAkB,GACxBskF,aAAcA,EAAa,cAC3BlhC,mBAAoBymC,KAGtB/zG,GAAuB,qBAAZs0G,GACX,eAACW,GAAD,CACEj3G,MAAOA,EACP0sC,KAAM2K,EACNt1C,KAAMA,QE/LhB,SAAS,KAA2Q,OAA9P,GAAWzI,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,wBACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,QACJK,UAAW,gCACXJ,OAAQ,WACM,gBAAoB,SAAU,CAC5CD,GAAI,OACJkB,GAAI,KACJC,GAAI,KACJC,EAAG,OACY,gBAAoB,OAAQ,CAC3CiD,GAAI,WACJC,GAAI,WACJC,GAAI,GACJC,GAAI,EACJxE,GAAI,UACJmE,cAAe,QACf5D,eAAgB,UACD,gBAAoB,OAAQ,CAC3C8D,GAAI,KACJC,GAAI,WACJC,GAAI,WACJC,GAAI,MACJxE,GAAI,eACJE,YAAa,EACbK,eAAgB,YAGlB,SAAS,GAASE,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,QAAkBqP,IAAV9L,EAAmC,gBAAoB,QAAS,CACzEX,GAAIY,GACH,yBAA2BD,EAAqB,gBAAoB,QAAS,CAC9EX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiB,IAChC,IC9Df,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,yBACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,QACJK,UAAW,gCACXJ,OAAQ,WACM,gBAAoB,SAAU,CAC5CD,GAAI,OACJkB,GAAI,KACJC,GAAI,KACJC,EAAG,OACY,gBAAoB,OAAQ,CAC3CiD,GAAI,WACJC,GAAI,WACJC,GAAI,GACJC,GAAI,EACJxE,GAAI,UACJmE,cAAe,QACf5D,eAAgB,UACD,gBAAoB,OAAQ,CAC3C8D,GAAI,KACJC,GAAI,WACJC,GAAI,WACJC,GAAI,MACJxE,GAAI,eACJE,YAAa,EACbK,eAAgB,YAGlB,SAAS,GAAUE,EAAMC,GACvB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,QAAkBqP,IAAV9L,EAAmC,gBAAoB,QAAS,CACzEX,GAAIY,GACH,0BAA4BD,EAAqB,gBAAoB,QAAS,CAC/EX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiB,IAChC,IC9Df,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,yBACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,kBACJK,UAAW,iCACG,gBAAoB,OAAQ,CAC1CC,EAAG,4RACHN,GAAI,OACJC,OAAQ,UACRM,eAAgB,UACD,gBAAoB,OAAQ,CAC3CP,GAAI,OACJC,OAAQ,UACRM,eAAgB,QAChBgC,EAAG,EACHF,EAAG,WACH5F,MAAO,GACPX,OAAQ,aACO,gBAAoB,SAAU,CAC7CkE,GAAI,WACJG,KAAM,UACNe,GAAI,IACJC,GAAI,WACJC,EAAG,MAGL,SAAS,GAASX,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,QAAkBqP,IAAV9L,EAAmC,gBAAoB,QAAS,CACzEX,GAAIY,GACH,0BAA4BD,EAAqB,gBAAoB,QAAS,CAC/EX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiB,IAChC,IC3Df,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,0BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,WACI,gBAAoB,IAAK,CACvCJ,GAAI,mBACJK,UAAW,iCACG,gBAAoB,OAAQ,CAC1CC,EAAG,4RACHN,GAAI,OACJC,OAAQ,UACRM,eAAgB,UACD,gBAAoB,OAAQ,CAC3CP,GAAI,OACJC,OAAQ,UACRM,eAAgB,QAChBgC,EAAG,EACHF,EAAG,WACH5F,MAAO,GACPX,OAAQ,aACO,gBAAoB,SAAU,CAC7CkE,GAAI,WACJG,KAAM,UACNe,GAAI,IACJC,GAAI,WACJC,EAAG,MAGL,SAAS,GAAUX,EAAMC,GACvB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,QAAkBqP,IAAV9L,EAAmC,gBAAoB,QAAS,CACzEX,GAAIY,GACH,2BAA6BD,EAAqB,gBAAoB,QAAS,CAChFX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiB,IAChC,IC3Df,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,8BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACVG,eAAgB,SACF,gBAAoB,IAAK,CACvCP,GAAI,uBACJK,UAAW,gCACXJ,OAAQ,WACM,gBAAoB,OAAQ,CAC1CK,EAAG,sOACHN,GAAI,WACW,gBAAoB,SAAU,CAC7CA,GAAI,MACJkB,GAAI,WACJC,GAAI,WACJC,EAAG,eAGL,SAAS,GAASX,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,QAAkBqP,IAAV9L,EAAmC,gBAAoB,QAAS,CACzEX,GAAIY,GACH,+BAAiCD,EAAqB,gBAAoB,QAAS,CACpFX,GAAIY,GACHD,GAAS,KAAM,IAGpB,IAAI,GAA0B,aAAiB,IAChC,IClDf,SAAS,KAA2Q,OAA9P,GAAWjC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAAS,GAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,GAAqB,gBAAoB,IAAK,CAChDoB,GAAI,+BACJC,OAAQ,OACRC,YAAa,EACbC,KAAM,OACNC,SAAU,UACVG,eAAgB,SACF,gBAAoB,IAAK,CACvCP,GAAI,wBACJK,UAAW,gCACXJ,OAAQ,WACM,gBAAoB,OAAQ,CAC1CK,EAAG,sOACHN,GAAI,WACW,gBAAoB,SAAU,CAC7CA,GAAI,MACJkB,GAAI,WACJC,GAAI,WACJC,EAAG,eAGL,SAAS,GAAUX,EAAMC,GACvB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfxD,EAAQ,GAAyBqD,EAAM,CAAC,QAAS,YAErD,OAAoB,gBAAoB,MAAO,GAAS,CACtDhE,MAAO,OACPX,OAAQ,OACR+E,QAAS,YACTC,MAAO,6BACPC,WAAY,+BACZC,IAAKN,EACL,kBAAmBE,GAClBxD,QAAkBqP,IAAV9L,EAAmC,gBAAoB,QAAS,CACzEX,GAAIY,GACH,gCAAkCD,EAAqB,gBAAoB,QAAS,CACrFX,GAAIY,GACHD,GAAS,KAAM,IAGpB,I,+DAAI,GAA0B,aAAiB,IC6EhC9D,ID5EA,ICzCA,CACb8pB,OAAQ,CACNxrB,QAAS,OACT8H,cAAe,MACf5H,OAAQ,CAAC,CAAC,OAAQ,EAAGpC,GAAY,KAEnCixE,WAAY,CACVroE,WAAY,EACZpI,MAAOzC,EACP6C,WAAY3B,IAEdo9F,YAAa,CACXzzF,UAAW,IAEb8zF,YAAa,CACX9zF,UAAW,IAEb0pB,WAAY,CACV9xB,MAAOzC,EACP6C,WAAY3B,GACZ0B,SAAU,GACVkI,WAAY,EACZD,UAAW,IAEbwzF,WAAY,CACV54F,MAAO,MAETq8D,WAAY,CACV71D,cAAe,MACfxG,MAAO,KAETs8D,WAAY,CACVt8D,MAAO,IACPX,OAAQ,IAEVwnD,gBAAiB,CACfxhD,WAAY,OACZqB,WAAY,EACZC,aAAc,GAEhB+W,KAAM,CACJ/iB,gBAAiBC,GACjBwC,WAAY3B,GACZ4J,WAAY,IAEdmlB,KAAM,CACJptB,WAAY1B,GACZ+W,UAAW,WAEb+/E,eAAgB,CACd73F,gBAAiBC,GACjBwK,UAAW,EACX/F,OAAQ,IAEVgmD,QAAS,CACPzmD,OAAO,OAAD,OAASpC,GAAT,kBAA6BA,GAA7B,MACNsD,cAAe,IAEjBqiB,aAAc,CACZ/kB,WAAY1B,GACZsB,MAAO3B,IAETwkH,cAAe,CACbz6G,UAAW,GACXqB,aAAc,IAEhBwU,KAAM,CACJvc,QAAS,OACT8H,cAAe,SACfnH,OAAQ,QAEV8R,OAAQ,CACNvS,OAAQ,CAAC,CAAC,OAAQ,EAAG,EAAG,UAE1B+J,MAAO,CACL3L,MAAO3B,IAETyV,KAAM,CACJpL,SAAU,WACVC,IAAK,GACLE,KAAM,EACNmI,OAAQ,QACRjJ,MAAO,QACPgR,WAAY,SACZ1P,UAAW,OACXrG,MAAO,SAET+f,YAAa,CACX/f,MAAO,OACPX,OAAQ,OACR4N,SAAU,SACVvH,SAAU,YAEZo6G,aAAc,CACZphH,QAAS,OACT8H,cAAe,MACf/G,WAAY,SACZyF,eAAgB,iBAElBqnB,SAAU,CACRtf,SAAU,SACV8I,WAAY,SACZ+vC,aAAc,WACd9lD,MAAO,QAET+/G,WAAY,CACV16G,WAAY,IAEd26G,oBAAqB,CACnBthH,QAAS,OACTuhH,IAAK,IAEPj1F,YAAa,CACXtsB,QAAS,UC7GPwB,GAAYC,YAAWC,IAEvB8/G,GAAcl2G,IAAH,sGAqFFm2G,GA/EO,SAAC,GAAiD,IAA/CvwC,EAA8C,EAA9CA,UAAW1/D,EAAmC,EAAnCA,YAAakwG,EAAsB,EAAtBA,gBACzCx/G,EAAUV,KADqD,EAGnC0K,mBAAS,IAH0B,mBAG9Dy1G,EAH8D,KAGnDC,EAHmD,OAI/B11G,oBAAS,GAJsB,mBAI9D21G,EAJ8D,KAIjDC,EAJiD,OAiBzB70F,YAAau0F,GAAa,CACpE78F,YAAa,qBAAGo9F,YANhBL,EAAgBC,GAChBC,EAAa,SACbE,GAAe,IAKFA,GAAe,MAnBuC,mBAiB9DC,EAjB8D,KAiBzC30F,EAjByC,KAiBhDnjB,MAKf8lB,EAAc,WAClB,OAAI3C,EAAmB,wBACE,IAArBu0F,EAAU/9G,QAAgBi+G,EACrB,qCACLA,EAAoB,qCACjB,MAGHl0F,EAAe,WACM,IAArBg0F,EAAU/9G,OAIdm+G,EAAW,CAAEt0G,UAAW,CAAEyM,KAAMynG,KAH9BG,GAAe,IAMnB,OACE5wC,GACE,gBAAC,GAAD,CACEt3B,sBAAsB,EACtBt4C,MAAO,IACPX,OAAQ,IACR6Q,YAAaA,EACbX,MAAM,EALR,UAME,eAAChO,GAAD,CAAOhB,UAAWK,EAAQ6sE,WAA1B,4BACA,eAACrsE,GAAD,CAAGb,UAAWK,EAAQ4pB,KAAtB,6HAKA,eAAC,KAAD,CAAQ3G,SAAU,aAAUtI,cAAe,GAA3C,SACE,gBAAC,KAAD,WACE,eAAC,GAAD,CACE7L,KAAK,MACLsD,MAAOqtG,EACPvtG,SAnDa,SAAAE,GACvBstG,EAAattG,GACbwtG,GAAe,IAkDL9pG,UAAW,EACX/N,MAAO43G,EACP3pG,eAAgBhW,EAAQi/G,cACxBhzF,iBAAe,IAEjB,yBAAQ/iB,QAASuiB,EAAc9rB,UAAWK,EAAQoqB,mBAGrDyD,KACC,eAACrtB,GAAD,CAAGb,UAAWK,EAAQuhB,aAAtB,SAAqCsM,MAEvC,sBAAKluB,UAAWK,EAAQspB,OAAxB,SACE,eAACpG,GAAD,CAAQvjB,UAAWK,EAAQuQ,OAAQrH,QAASuiB,EAA5C,2BC7EJq0F,GAAmB12G,IAAH,4QAgBhB9J,GAAYC,YAAWC,IAgEdugH,GA9DS,SAAC,GAAqD,IAAnDp5F,EAAkD,EAAlDA,MAAO8D,EAA2C,EAA3CA,SAAUtE,EAAiC,EAAjCA,KAAM65F,EAA2B,EAA3BA,qBAC1ChgH,EAAUV,KAD2D,EAGvCiL,YAAYu1G,GAAkB,CAChEr9F,YAAa,kBAAMnT,KACnB5E,eAAgB,iBAAM,CAAC,YALkD,mBAGpEu1G,EAHoE,KAGlDl4G,EAHkD,KAGlDA,MAHkD,EAQnCiC,mBAAS,MAR0B,mBAQpEk2G,EARoE,KAQtDV,EARsD,KAoBrElwG,EAAc,WAClBkwG,EAAgB,MAChB/0F,EAAS,CACPxiB,KAAM,QACN+jB,QAAS,mBAIb,OACGrF,EAAMw5F,eAAiBH,IAAyBE,GAC/C,eAAC,GAAD,CACElxC,UAAWroD,EAAMw5F,cACjB7wG,YAAaA,EACbkwG,gBAAiBA,KAGpB74F,EAAMw5F,eACL,gBAAC,GAAD,CACEzoE,sBAAsB,EACtBt4C,MAAO,IACPX,OAAQ,IACR6Q,YAAaA,EACbX,MAAM,EALR,UAME,gBAAChO,GAAD,CAAOhB,UAAWK,EAAQ6sE,WAA1B,oBACU1mD,EAAKwF,SADf,cAGA,gBAACnrB,GAAD,CAAGb,UAAWK,EAAQ4pB,KAAtB,oCAC0BzD,EAAKwF,SAD/B,mFAIA,eAACnrB,GAAD,CAAGb,UAAWK,EAAQ4pB,KAAtB,qCACA,uBAAKjqB,UAAWK,EAAQspB,OAAxB,UACGvhB,GAAS,eAAC,GAAD,UAAeA,IACzB,eAACmb,GAAD,CAAQvjB,UAAWK,EAAQuQ,OAAQrH,QAAS,WA1ClD+2G,EAAe,CACb10G,UAAW,CACT3N,iBAAkBsiH,EAClBv9G,GAAIwjB,EAAKxjB,GACTy9G,QAAuB,cAAdj6F,EAAKG,KAAuB,OAAS,gBAsC5C,4BCrFJ+5F,GAAG,kBAGHpzF,OAAOC,SAASC,UAGhBmzF,GAAc,SAAAnzG,GAAO,gBAAOkzG,IAAP,OAAalzG,ICalC7N,GAAYC,YAAWC,IAEvB+gH,GAAcn3G,IAAH,wMASXyY,GAAmBC,OAAaC,MAAM,CAC1C4J,SAAU7J,OACPqK,MAAM,gDACNnK,SAAS,+BACZsE,KAAMxE,OAAaE,SAAS,6BAGxBrH,GAAgB,CACpBgR,SAAU,GACVrF,KAAM,IAGFk6F,GAAe,CACnB,CACExoG,KAAM,OACNla,QAAS,gBAEX,CACEka,KAAM,YACNla,QAAS,cAIP+vB,GAAc,SAACC,EAAcC,EAAevC,GAChD,OAAKsC,GAAiBC,EAClBvC,EAAsB,wBACtBsC,EAAanC,UAAYoC,EAAcpC,SAClCmC,EAAanC,SACf,KAJqC,MAgI/B80F,GAzHS,SAAC,GAAyB,IAAvB95F,EAAsB,EAAtBA,MAAO8D,EAAe,EAAfA,SAC1BzqB,EAAUV,KAD+B,EAGL0K,mBAAS,IAHJ,mBAGxC02G,EAHwC,KAGzBC,EAHyB,OAIL32G,mBAAS,MAJJ,mBAIxC42G,EAJwC,KAIzBC,EAJyB,KAMzCvxG,EAAc,WAClBuxG,EAAiB,MACjBp2F,EAAS,CACPxiB,KAAM,QACN+jB,QAAS,yBAVkC,EAcfzhB,YAAYg2G,GAAa,CACvD99F,YAAa,YAAqC,IAAbyO,EAAY,EAAjC4vF,oBACRC,EAEJ,YACS7vF,EAAMA,OAEjB2vF,EAAiBP,GAAY,aAAD,OAAcS,QArBC,mBAcxCC,EAdwC,KAc1Bj5G,EAd0B,KAc1BA,MAerB,OACE,uCACG4e,EAAMs6F,sBAAwBL,GAC7B,eAAC,GAAD,CACElpE,sBAAsB,EACtBt4C,MAAO,IACPX,OAAQ,IACR6Q,YAAaA,EACbX,MAAM,EALR,SAME,eAAC,KAAD,CACEkT,iBAAkBA,GAClBlH,cAAeA,GACfsI,SAAU,SAAA5L,GACRspG,EAAiBtpG,EAAOsU,UACxBq1F,EAAW,CACTz1G,UAAW,CAAEogB,SAAUtU,EAAOsU,SAAUrF,KAAMjP,EAAOiP,SAN3D,SASG,gBAtBQwH,EAAcC,EAsBnBxT,EAAH,EAAGA,OAAQD,EAAX,EAAWA,QAAX,OACC,gBAAC,KAAD,CAAM3X,GAAG,qBAAqBhD,UAAWK,EAAQqa,KAAjD,UACE,eAACla,GAAD,CAAIR,UAAWK,EAAQ6sE,WAAvB,6BACA,eAAC,KAAD,CACExqD,UAAWrQ,GACXlD,KAAK,WACL1P,MAAO,IACPiU,WAAS,EACTxD,MAAM,eAER,eAACxP,GAAD,CACEV,UAAWO,KAjCR4tB,EAkCSvT,EAlCKwT,EAkCGzT,EAlClB,eACfta,EAAQ+H,MAAQ+lB,EAAaxH,MAAQyH,EAAczH,OAkCpCtmB,EAAQs4F,aAHZ,kBAOA,eAAC,KAAD,CACEj2E,UAAW5K,GACX3I,KAAK,OACL4I,eAAgB1X,EAAQ07D,WACxB/7D,UAAWK,EAAQy7D,WACnB3oD,QAAS0tG,KAEX,uBAAK7gH,UAAWK,EAAQspB,OAAxB,UACGuE,GAAYtT,EAAQD,EAASvS,IAC5B,eAAC,GAAD,UACG8lB,GAAYtT,EAAQD,EAASvS,KAGlC,eAACmb,GAAD,CACEjb,KAAK,SACLoS,KAAK,qBACL1a,UAAWK,EAAQuQ,OAHrB,+BAYXoW,EAAMs6F,qBAAuBL,GAC5B,gBAAC,GAAD,CACElpE,sBAAsB,EACtBt4C,MAAO,IACPX,OAAQ,IACR6Q,YAAaA,EACbX,MAAM,EALR,UAME,gBAAChO,GAAD,CAAOhB,UAAWK,EAAQ6sE,WAA1B,sBACY6zC,EADZ,SAGA,gBAAClgH,GAAD,CAAGb,UAAWK,EAAQ4pB,KAAtB,yCAC+B82F,EAD/B,0CAIA,sBAAK/gH,UAAWK,EAAQ4xF,eAAxB,SACE,eAAC/wF,GAAD,CAAMlB,UAAWK,EAAQykD,QAAzB,SACE,kCACE,eAAC,GAAD,CACE9kD,UAAWK,EAAQkQ,KACnBs1C,gBAAiBxlD,EAAQimD,gBACzBR,iBAAkBzlD,EAAQmf,YAH5B,SAIGyhG,iBC7JbM,GAAc93G,IAAH,kLAQX+3G,GAAe/3G,IAAH,oLAQZ9J,GAAYC,YAAWC,IAoGd4hH,GAlGS,SAAC,GAAqD,IAAnDz6F,EAAkD,EAAlDA,MAAO8D,EAA2C,EAA3CA,SAAUtE,EAAiC,EAAjCA,KAAM65F,EAA2B,EAA3BA,qBAC1ChgH,EAAUV,KAD2D,EAG9BiL,YAAY22G,GAAa,CACpEz+F,YAAa,kBAAMnT,KACnB5E,eAAgB,iBAAM,CAAC,YALkD,mBAGpE22G,EAHoE,KAG/CC,EAH+C,KAGtDv5G,MAHsD,EAQ5BwC,YAAY42G,GAAc,CACvE1+F,YAAa,kBAAMnT,KACnB5E,eAAgB,iBAAM,CAAC,YAVkD,mBAQpE62G,EARoE,KAQ9CC,EAR8C,KAQrDz5G,MARqD,EAanCiC,mBAAS,MAb0B,mBAapEk2G,EAboE,KAatDV,EAbsD,KAiCrEjvG,EAAS,YACT,OAAJ4V,QAAI,IAAJA,OAAA,EAAAA,EAAMnY,SAlBNuzG,EAAY,CACVh2G,UAAW,CACT3N,iBAAkBsiH,EAClBv9G,GAAIwjB,EAAKxjB,MAMb0+G,EAAW,CACT91G,UAAW,CACT3N,iBAAkBsiH,EAClBv9G,GAAIwjB,EAAKxjB,OAST2M,EAAc,WAClBkwG,EAAgB,MAChB/0F,EAAS,CACPxiB,KAAM,QACN+jB,QAAS,yBAIb,OACGrF,EAAM86F,qBAAuBzB,IAAyBE,GACrD,eAAC,GAAD,CACElxC,UAAWroD,EAAM86F,oBACjBnyG,YAAaA,EACbkwG,gBAAiBA,KAGpB74F,EAAM86F,qBACL,gBAAC,GAAD,CACE/pE,sBAAsB,EACtBt4C,MAAO,IACPX,OAAQ,IACR6Q,YAAaA,EACbX,MAAM,EALR,WAMIwX,EAAKnY,SACL,uCACE,gBAACrN,GAAD,CAAOhB,UAAWK,EAAQ6sE,WAA1B,oBACU1mD,EAAKwF,SADf,OAGA,gBAACnrB,GAAD,CAAGb,UAAWK,EAAQ4pB,KAAtB,qCAC2BzD,EAAKwF,SADhC,yGAKA,eAACnrB,GAAD,CAAGb,UAAWK,EAAQ4pB,KAAtB,wCAGHzD,EAAKnY,SACJ,uCACE,gBAACrN,GAAD,CAAOhB,UAAWK,EAAQ6sE,WAA1B,qBACW1mD,EAAKwF,SADhB,OAGA,gBAACnrB,GAAD,CAAGb,UAAWK,EAAQ4pB,KAAtB,sCAC4BzD,EAAKwF,SADjC,8GAKA,eAACnrB,GAAD,CAAGb,UAAWK,EAAQ4pB,KAAtB,wCAGJ,uBAAKjqB,UAAWK,EAAQspB,OAAxB,UACGk4F,GAAgB,eAAC,GAAD,UAAeA,IAC/BF,GAAe,eAAC,GAAD,UAAeA,IAC/B,eAACp+F,GAAD,CAAQvjB,UAAWK,EAAQuQ,OAAQrH,QAAS,kBAAMqH,KAAlD,4BChHJjR,GAAYC,YAAWC,IAqCdugH,GAnCS,SAAC,GAAyB,IAAvBp5F,EAAsB,EAAtBA,MAAO8D,EAAe,EAAfA,SAC1BzqB,EAAUV,KAEVgQ,EAAc,WAClBmb,EAAS,CACPxiB,KAAM,QACN+jB,QAAS,mBAIb,OACE,gBAAC,GAAD,CACE0rB,sBAAsB,EACtBt4C,MAAO,IACPX,OAAQ,IACR6Q,YAAaA,EACbX,KAAMgY,EAAM+6F,cALd,UAME,eAAC/gH,GAAD,CAAOhB,UAAWK,EAAQ6sE,WAA1B,uCACA,eAACrsE,GAAD,CAAGb,UAAWK,EAAQ4pB,KAAtB,iJAIA,eAACppB,GAAD,0FAIA,sBAAKb,UAAWK,EAAQspB,OAAxB,SACE,eAACpG,GAAD,CAAQvjB,UAAWK,EAAQuQ,OAAQrH,QAAS,kBAAMoG,KAAlD,2BCvBFqyG,GAAyBv4G,IAAH,gPAUtB9J,GAAYC,YAAWC,IAsFdoiH,GApFO,SAAC,GAAqD,IAAnDj7F,EAAkD,EAAlDA,MAAO8D,EAA2C,EAA3CA,SAAUtE,EAAiC,EAAjCA,KAAM65F,EAA2B,EAA3BA,qBACxChgH,EAAUV,KADyD,EAEnC0K,mBAAS,IAF0B,mBAElE63G,EAFkE,KAErDC,EAFqD,OAIvBv3G,YAChDo3G,GACA,CACEl/F,YAAa,YAAqC,IAAbyO,EAAY,EAAjC6wF,oBACdD,EAAexB,GAAY,eAAD,OAAgBpvF,EAAMA,YARmB,mBAIlE6wF,EAJkE,YAI3Ch4G,EAJ2C,EAI3CA,QAAShC,EAJkC,EAIlCA,MAJkC,EAajCiC,mBAAS,MAbwB,mBAalEk2G,EAbkE,KAapDV,EAboD,KAezE30G,qBAAU,WACR8b,EAAMq7F,oBACH9B,IAAiBF,IAClB+B,EAAoB,CAClBx2G,UAAW,CACT3N,iBAAkBsiH,EAClBzuF,OAAM,OAAEtL,QAAF,IAAEA,OAAF,EAAEA,EAAMxjB,QAGnB,CACDu9G,EACA6B,EACA/B,EACAr5F,EAAMq7F,kBAJL,OAKD77F,QALC,IAKDA,OALC,EAKDA,EAAMxjB,KAGR,IAAM2M,EAAc,WAClBkwG,EAAgB,MAChB/0F,EAAS,CACPxiB,KAAM,QACN+jB,QAAS,uBAIb,OACGrF,EAAMq7F,mBAAqBhC,IAAyBE,GACnD,eAAC,GAAD,CACElxC,UAAWroD,EAAMq7F,kBACjB1yG,YAAaA,EACbkwG,gBAAiBA,KAGpB74F,EAAMq7F,oBACJ9B,IAAiBF,KACjBj2G,GACC,gBAAC,GAAD,CACE2tC,sBAAsB,EACtBt4C,MAAO,IACPX,OAAQ,IACR6Q,YAAaA,EACbX,MAAM,EALR,UAME,gBAAChO,GAAD,CAAOhB,UAAWK,EAAQ6sE,WAA1B,2BACiB1mD,EAAKwF,YAEtB,gBAACnrB,GAAD,CAAGb,UAAWK,EAAQ4pB,KAAtB,yCAC+BzD,EAAKwF,SADpC,8CAIE5jB,GACA,sBAAKpI,UAAWK,EAAQ4xF,eAAxB,SACE,eAAC/wF,GAAD,CAAMlB,UAAWK,EAAQykD,QAAzB,SACE,kCACE,eAAC,GAAD,CACE9kD,UAAWK,EAAQkQ,KACnBs1C,gBAAiBxlD,EAAQimD,gBACzBR,iBAAkBzlD,EAAQmf,YAH5B,SAIG0iG,UAMV95G,GAAS,eAAC,GAAD,UAAeA,QC1F7Bk6G,GAA8B74G,IAAH,8QAa3B9J,GAAYC,YAAWC,IA0Fd0iH,GAxFY,SAAC,GAKrB,IAJLv7F,EAII,EAJJA,MACA8D,EAGI,EAHJA,SACAtE,EAEI,EAFJA,KACA65F,EACI,EADJA,qBAEMhgH,EAAUV,KADZ,EAE4C0K,mBAAS,IAFrD,mBAEGm4G,EAFH,KAEqBC,EAFrB,OAImD73G,YACrD03G,GACA,CACEx/F,YAAa,YAA0C,IAAbyO,EAAY,EAAtCmxF,yBACdD,EAAoB9B,GAAY,oBAAD,OAAqBpvF,EAAMA,YAR5D,mBAIGmxF,EAJH,YAI+Bt4G,EAJ/B,EAI+BA,QAAShC,EAJxC,EAIwCA,MAJxC,EAaoCiC,mBAAS,MAb7C,mBAaGk2G,EAbH,KAaiBV,EAbjB,KAeJ30G,qBAAU,WACR8b,EAAM27F,yBACHpC,IAAiBF,IAClBqC,EAAyB,CACvB92G,UAAW,CACT3N,iBAAkBsiH,EAClBzuF,OAAM,OAAEtL,QAAF,IAAEA,OAAF,EAAEA,EAAMxjB,QAGnB,CACDu9G,EACAmC,EACArC,EACAr5F,EAAM27F,uBAJL,OAKDn8F,QALC,IAKDA,OALC,EAKDA,EAAMxjB,KAGR,IAAM2M,EAAc,WAClBkwG,EAAgB,MAChB/0F,EAAS,CACPxiB,KAAM,QACN+jB,QAAS,4BAIb,OACGrF,EAAM27F,wBAA0BtC,IAAyBE,GACxD,eAAC,GAAD,CACElxC,UAAWroD,EAAM27F,uBACjBhzG,YAAaA,EACbkwG,gBAAiBA,KAGpB74F,EAAM27F,yBACJpC,IAAiBF,KACjBj2G,GACC,gBAAC,GAAD,CACE2tC,sBAAsB,EACtBt4C,MAAO,IACPX,OAAQ,IACR6Q,YAAaA,EACbX,MAAM,EALR,UAME,gBAAChO,GAAD,CAAOhB,UAAWK,EAAQ6sE,WAA1B,gCACsB1mD,EAAKwF,YAE3B,gBAACnrB,GAAD,CAAGb,UAAWK,EAAQ4pB,KAAtB,yCAC+BzD,EAAKwF,SADpC,6BAGE5jB,GACA,sBAAKpI,UAAWK,EAAQ4xF,eAAxB,SACE,eAAC/wF,GAAD,CAAMlB,UAAWK,EAAQykD,QAAzB,SACE,kCACE,eAAC,GAAD,CACE9kD,UAAWK,EAAQkQ,KACnBs1C,gBAAiBxlD,EAAQimD,gBACzBR,iBAAkBzlD,EAAQmf,YAH5B,SAIGgjG,UAMVp6G,GAAS,eAAC,GAAD,UAAeA,QCpF7BzI,GAAYC,YAAWC,IAEvB+iH,GAAYn5G,IAAH,yMAcTo5G,GAAuBp5G,IAAH,2KAMpBq5G,GAAuBr5G,IAAH,0RAcpBymB,GAAe,CACnBoxF,qBAAqB,EACrBqB,wBAAwB,EACxBN,mBAAmB,EACnB7B,eAAe,EACfsB,qBAAqB,GAGjB1xF,GAAU,SAAC+P,EAAGzvB,GAAY,IACtBpI,EAAkBoI,EAAlBpI,KAAM+jB,EAAY3b,EAAZ2b,QACd,OAAQ/jB,GACN,IAAK,QACH,OAAO4nB,GACT,IAAK,OACH,OAAO,2BAAKA,IAAZ,kBAA2B7D,GAAU,IACvC,QACE,OAAO6D,KAIP6yF,GAAa,CACjBv8F,KAAM,UACNw8F,UAAW,aA8MEC,GA3MD,WACZ,IAAM5iH,EAAUV,KACR0rB,EAAaL,qBAAWC,GAAxBI,SAEM63F,EAAiBj5G,YAAS24G,IAAhCz4G,KAJU,EAKQmmB,qBAAWF,GAASF,IAL5B,mBAKXlJ,EALW,KAKJ8D,EALI,OAOczgB,mBAAS,MAPvB,mBAOX84G,EAPW,KAODC,EAPC,OASYx4G,YAAYk4G,GAAsB,CAC9DhgG,YAAa,SAAA8K,OADRy1F,EATW,sBAemBj4F,YAAay3F,GAAsB,CACtE//F,YAAa,YAA8C,IAAf3P,EAAc,EAA1CmwG,2BACd,OAAOC,aAAiBpwG,GAASwa,MAAK,SAAAC,GACpCy1F,EAAoB,CAClBz3G,UAAW,CACTkmB,OAAQqxF,EAASngH,GACjBwgH,oBAAqB51F,EACrBP,OAAQC,OAAOC,SAASC,kBAP3B81F,EAfW,oBA6BZ70E,EAAW,CACf,CACE/pC,OAAQ,QACRjF,MAAO,IACPyS,UAAW,OACXjG,KAAM,KACNqnC,KAAM,SAAAmwE,GACJ,OAAIp4F,EAASroB,KAAOygH,EAAEzgH,GAElB,uBAAKhD,UAAWK,EAAQk/G,aAAxB,UACE,uBAAMv/G,UAAWK,EAAQ2rB,SAAzB,SAAoCy3F,EAAEz3F,WACtC,eAACzQ,GAAA,EAAD,CAAMtP,KAAK,QAAQiE,MAAM,MAAMlQ,UAAWK,EAAQ8c,UAGjD,uBAAMnd,UAAWK,EAAQ2rB,SAAzB,SAAoCy3F,EAAEz3F,aAGjD,CACEtnB,OAAQ,OACRjF,MAAO,IACPyS,UAAW,OACXjG,KAAM,KACNqnC,KAAM,SAAAmwE,GAAC,OACL,uBAAKzjH,UAAWK,EAAQk/G,aAAxB,UACE,gCAAOwD,GAAWU,EAAE98F,QACpB,eAAC,GAAD,CACE3mB,UAAWK,EAAQm/G,WACnBpnG,SAAUiT,EAASroB,KAAOygH,EAAEzgH,GAC5BsS,QAAoB,cAAXmuG,EAAE98F,KACXpd,QAAS,WACP65G,EAAYK,GACZ34F,EAAS,CACPxiB,KAAM,OACN+jB,QAAS,mBAGb5Z,MAAkB,cAAXgxG,EAAE98F,YAKjB,CACEjiB,OAAQ,UACRjF,MAAO,IACPyS,UAAW,OACXjG,KAAM,KACNqnC,KAAM,SAAAmwE,GACJ,OACE,uBAAKzjH,UAAWK,EAAQo/G,oBAAxB,UACE,eAAC,GAAD,CACEx/G,KAAMyjH,GACNxjH,YAAayjH,GACblnH,MAAM,UACN8M,QAAS,WACP65G,EAAYK,GACZ34F,EAAS,CACPxiB,KAAM,OACN+jB,QAAS,4BARf,4BAaA,eAAC,GAAD,CACEpsB,KAAM2jH,GACN1jH,YAAa2jH,GACbpnH,MAAM,UACN8M,QAAS,WACP65G,EAAYK,GACZ34F,EAAS,CACPxiB,KAAM,OACN+jB,QAAS,uBARf,uBAaA,eAAC,GAAD,CACEpsB,KAAM6jH,GACN5jH,YAAa6jH,GACbtnH,MAAM,UACN8M,QAAS,WACH6uC,GAAe91B,KAAKgL,OAAOC,SAASC,UACtC1C,EAAS,CACPxiB,KAAM,OACN+jB,QAAS,mBAGX+2F,EAAYK,GACZH,EAA2B,CACzB13G,UAAW,CACTkmB,OAAQ2xF,EAAEzgH,GACVqqB,OAAQC,OAAOC,SAASC,cAflC,2BA0BR,CACE9oB,OAAQ,UACRjF,MAAO,IACPyS,UAAW,SACXjG,KAAM,KACNqnC,KAAM,SAAAmwE,GAAC,OACL,eAAC,GAAD,CACErrG,SAAUiT,EAASroB,KAAOygH,EAAEzgH,GAC5BsS,QAASmuG,EAAEp1G,QACX9E,QAAS,WACP65G,EAAYK,GACZ34F,EAAS,CACPxiB,KAAM,OACN+jB,QAAS,yBAGb5Z,MAAOgxG,EAAEp1G,aAMjB,OACE,uCACE,eAAC,GAAD,CAAc1K,MAAM,oBACpB,eAAC6lB,GAAA,EAAD,CACEtjB,aAAc,EACdrB,WAAY,EACZ7E,UAAWK,EAAQg4F,WACnBl6F,QAAQ,OACRwG,eAAe,WALjB,SAME,eAAC,GAAD,CACElI,MAAM,UACN8M,QAAS,WACPuhB,EAAS,CACPxiB,KAAM,OACN+jB,QAAS,yBALf,4BAWF,eAAC,GAAD,CAAWoiB,SAAUA,EAAUtkC,KAAMpB,IAAO,CAAC,SAARA,CAAkBm6G,KACvD,eAAC,GAAD,CAAiBl8F,MAAOA,EAAO8D,SAAUA,IACzC,eAAC,GAAD,CACE9D,MAAOA,EACP8D,SAAUA,EACVtE,KAAM28F,EACN9C,qBAAyC,eAAX,OAAR8C,QAAQ,IAARA,OAAA,EAAAA,EAAUx8F,QAElC,eAAC,GAAD,CACEK,MAAOA,EACP8D,SAAUA,EACVtE,KAAM28F,EACN9C,qBAAyC,eAAX,OAAR8C,QAAQ,IAARA,OAAA,EAAAA,EAAUx8F,QAElC,eAAC,GAAD,CACEK,MAAOA,EACP8D,SAAUA,EACVtE,KAAM28F,EACN9C,qBAAyC,eAAX,OAAR8C,QAAQ,IAARA,OAAA,EAAAA,EAAUx8F,QAElC,eAAC,GAAD,CACEK,MAAOA,EACP8D,SAAUA,EACVtE,KAAM28F,EACN9C,qBAAyC,eAAX,OAAR8C,QAAQ,IAARA,OAAA,EAAAA,EAAUx8F,QAElC,eAACq9F,GAAD,CAAWh9F,MAAOA,EAAO8D,SAAUA,QC7QnC/I,GAActY,IAAH,4GAKXunD,GAAWvnD,IAAH,4HA6GCw6G,GAnGQ,WAAO,IAAD,IACrBxmB,EAAW5pE,GAEX2rB,EAAa3rB,GACX1pB,EAASF,YAAS+mD,IAAlB7mD,KAJmB,EAMmBE,oBAAS,GAN5B,mBAMpB2nE,EANoB,KAMFC,EANE,OAOuB5nE,oBAAS,GAPhC,mBAOpB6nE,EAPoB,KAOAC,EAPA,OASKvnE,YAAYmX,GAAa,CACvDhX,eAAgB,iBAAM,CAAC,cAVE,mBASpB00C,EAToB,KASNr3C,EATM,KASNA,MAmBfktB,EAAgB,iBAAGnrB,QAAH,IAAGA,OAAH,EAAGA,EAAMmrB,wBAAT,QAA6B,GAE7C4uF,EAAyB7vF,GAAcopE,EAAdppE,CAC7BA,GAAcmrB,EAAdnrB,CAAA,OAA0BlqB,QAA1B,IAA0BA,OAA1B,EAA0BA,EAAMmqB,SAG5B6vF,EAA+B,UAAGD,EAAuB7kE,iBAA1B,QAAuC,GAEtEklD,EAAmBx7F,IAAMA,IAlCJ,kBAkCFA,CACvBo7G,GAKIrqD,EAHmB/wD,KACvB,SAAA6K,GAAE,OAAK7K,KAAW6K,EAAGyE,KAAMksF,KAEL5sC,CAAiBriC,GASzC,OACE,uCACE,eAAC,GAAD,UACE,eAAC,GAAD,CACEnmB,KAAK,UACLhF,KAAMpB,KAAKm7G,GACX97G,MAAK,OAAEA,QAAF,IAAEA,OAAF,EAAEA,EAAOG,QACdmmC,YAAU,EACVE,UAAW,IACXkG,KA/CK,SAAAq7B,GACX,IAAM77C,EAASG,GAAY+qB,EAAZ/qB,CACbA,GAAYgpE,EAAZhpE,CAAsB07C,EAAU96C,QAAQ,KAE1C,OAAOoqB,EAAW,CAAE7zC,UAAW,CAAE0oB,aA4C3Byf,WAAY,SAAAngC,GAAE,OAAKqlD,GAAqB8D,YAAYnpD,IACpDwwG,YAAar7G,KAAKm7G,GAClBhiG,iBAAkB+2C,GAClBxqB,UACEyb,S5RpBH,CACL,CACE/6C,KAAM,cACNlD,KAAM,KACN8yC,QAAQ,EACRt/C,MAAO,IACP6U,MAAOtB,GACPwgC,WAAY,CACVrgC,QAASsmD,GACTrmD,UAAW,OACXE,UAAW,YAGf,CACEnE,KAAM,2BACNlD,KAAM,KACN8yC,QAAQ,EACRt/C,MAAO,IACP6zC,KAAM,SAACnT,EAAG45B,GACR,OAAOA,EAAIX,yBAA2B,MAA/B,MAET9kD,MAAOuB,IAET,CACE1G,KAAM,gBACNzK,OAAO,cACPuH,KAAM,KACN8yC,QAAQ,EACRt/C,MAAO,IACP6zC,KAAMimB,GACNjlD,MAAOtB,GACPwgC,WAAY,CACVrgC,QAASqmD,GACTpmD,UAAW,OACXE,UAAW,c4RXT6hC,WA3CiB,SAACvhC,EAAIs+B,GAAL,OAAiB+/B,EAAkB//B,IA4CpD7gC,aAAc6gE,MAGlB,eAAC,GAAD,UACE,eAAC,GAAD,CACE9pE,MAAK,OAAEA,QAAF,IAAEA,OAAF,EAAEA,EAAOG,QACd5E,MAAM,YACNkxC,SAAO,EACP1lC,KAAK,YACL0/B,cAAY,EACZH,YAAU,EACVsG,cAAY,EACZovE,YAAa9qD,GACbxkB,KA9Dc,SAAAq7B,GACpB,IAAM77C,EAASG,GAAY+qB,EAAZ/qB,CAAwBA,GAAYgpE,EAAZhpE,CAAsB07C,IAC7D,OAAO1wB,EAAW,CAAE7zC,UAAW,CAAE0oB,aA6D3BpS,iBAAkBk2C,GAClBjuD,KAAI,OAAEg6G,QAAF,IAAEA,IAAmC,GACzC11E,SAAUorB,GACRC,GA1Ca,SAAAlmD,GACrB,IAAMgpD,EAAO7zD,IAAUA,KAAOA,IAAS,OAAT,OAAiB6K,QAAjB,IAAiBA,OAAjB,EAAiBA,EAAIylD,iBAAtCtwD,CACXusB,GAEF,OAAOsnC,EAAO,CAACA,GAAQ,KAwCf1S,UAEFhV,aAAY,OAAC4kB,QAAD,IAACA,OAAD,EAACA,EAAiB/3D,QAC9BozC,WAjEmB,SAACvhC,EAAIs+B,GAAL,OAAiBigC,EAAoBjgC,IAkExD7gC,aAAc2gE,UCzGlBjwD,GAActY,IAAH,0KAOXwkG,GAAexkG,IAAH,oHAMZunD,GAAWvnD,IAAH,gPAoBR9J,GAAYC,YCrDH,CACb8E,OAAQ,CACNvG,QAAS,OACTe,WAAY,SACZyF,eAAgB,mBD6KLk8D,GA1HA,SAAC,GAA0B,IAAD,MAAjBrhB,EAAiB,EAAvBrwC,KACV9O,EAAUV,KADuB,EAEG0K,mBAAS,MAFZ,mBAEhCw3F,EAFgC,KAEjBC,EAFiB,OAGSz3F,mBAAS,MAHlB,mBAGhCosF,EAHgC,KAGdC,EAHc,OAIXrsF,oBAAS,GAJE,mBAIhCq0C,EAJgC,KAIxBC,EAJwB,OAKSt0C,oBAAS,GALlB,mBAKhCg6G,EALgC,KAKdC,EALc,KAM/Bn6G,EAASF,YAAS+mD,IAAlB7mD,KAN+B,EAQPS,YAAYmX,GAAa,CACvDe,YAAa,kBAAM67B,GAAU,IAC7B5zC,eAAgB,iBAAM,CAAC,cAVc,mBAQhC00C,EARgC,KAQlBr3C,EARkB,KAQlBA,MARkB,EAajBwC,YAAYqjG,GAAc,CAC9CnrF,YAAa,kBAAMg/E,EAAiB,OACpC/2F,eAAgB,iBAAM,CAAC,cAFlBojG,EAbgC,oBAkBjCr5D,EAAO,SAACq7B,EAAWlW,GACvB,IAAM3lC,EAASG,GAAY+qB,EAAZ/qB,CAAwB07C,GACvC,OAAO1wB,EAAW,CAAE7zC,UAAW,CAAE0oB,SAAQ2lC,eAGrC51B,GACA,OAAJl6B,QAAI,IAAJA,OAAA,EAAAA,EAAMmqB,SAAUD,GA5BL,SA4BKA,CAAsBlqB,EAAKmqB,QAAQ+P,aAE/C/P,GAAa,OAAJnqB,QAAI,IAAJA,OAAA,EAAAA,EAAMmqB,SAAUD,GAAcmrB,EAAdnrB,CAA0BlqB,EAAKmqB,QACxDiB,EAAc,OAAGprB,QAAH,IAAGA,OAAH,EAAGA,EAAMorB,eACvBD,EAAgB,iBAAGnrB,QAAH,IAAGA,OAAH,EAAGA,EAAMmrB,wBAAT,QAA6B,GAC7C2kC,EAAQ,iBAAG9vD,QAAH,IAAGA,OAAH,EAAGA,EAAM8vD,gBAAT,QAAqB,GA4BnC,OACE,uCACE,sBAAKj6D,UAAWK,EAAQqE,OAAxB,SACE,eAAC,GAAD,CACEf,MAAM,kBACNwlB,QAAS,CACP,CACEI,KAAM,oBACNxhB,KAAMk3G,GACN31F,YAAa41F,GACb9tG,OAAQkzG,SAKdD,GACA,uCACE,eAAC,GAAD,CACEl1G,KAAK,OACL0kB,WAAY9qB,IAAMA,IAAO,CAAC,SAAdA,CAAwBusB,GACpCnrB,KAAMmqB,EACNlsB,MAAK,OAAEA,QAAF,IAAEA,OAAF,EAAEA,EAAOG,QACdwrC,WAAY,SAAAngC,GAAE,OAAK+kD,GAAaoE,YAAYnpD,IAC5C86B,YAAU,EACV0G,mBAtCiB,SAAAxhC,GACzB,IAAM+9D,EAAat9C,GAAczgB,EAAdygB,CAAkBC,GACrC,OAAQqkC,GAAaoE,YAAY4U,IAqCzBt8B,aAAcsJ,EACd/P,UAAW,IACXkG,KAAMA,EACN5yB,iBAAkBy2C,GAClBlqB,SAAUurB,GAAY1kC,EAAkBC,GAvDjC,SAACiL,EAAUr1B,EAASy2C,GACnC,OAAKz2C,GAEA8uD,EAAS9uD,IAAYkjG,GAAQljG,IAChC22F,EAAiBuM,GAAQljG,SACzBurF,GAAoB,kBAAM,kBAAM90C,EAASz2C,aAI3Cy2C,EAASz2C,GARYy2C,EAASz2C,QAwDvBuzC,GACC,eAAC,GAAD,CACEke,KAAM7zD,KAAOA,IAAS,OAAQ21C,GAAxB31C,CAAiCusB,GACvCrlB,QAAS,kBAAM0uC,GAAU,IACzB7J,KAAMA,EACN1sC,MAAK,OAAEA,QAAF,IAAEA,OAAF,EAAEA,EAAOG,QACd+sB,iBAAkBA,EAClB+O,aAAcA,EACd0yD,aAAY,OAAE5sF,QAAF,IAAEA,GAAF,UAAEA,EAAMmqB,cAAR,aAAE,EAAc2lC,SAC5BA,SAAUA,EACV1kC,eAAgBA,IAGnBssE,GACC,eAAC,GAAD,CACEl+F,MAAK,eAAUk+F,EAAc1yF,MAC7B1P,MAAO,IACPkQ,YAAa,kBAAMmyF,EAAiB,OACpC9yF,MAAM,EAJR,SAKE,eAAC,GAAD,CACE8lC,KA5DK,SAAAlhC,GAAE,OACnBu6F,EAAY,CACVviG,UAAW,CAAEquD,SAAS,eAAI4nC,EAAcxpF,KAAOzE,MAC9C+Z,MAAK,SAAA/Z,GAGN,OAFA6iF,IACAC,EAAoB,MACb9iF,MAuDG66B,SAAUozD,EAAcpzD,SACxBvsB,iBAAkB2/E,EAAc3/E,iBAChCzP,MAAOwnD,EAAS4nC,EAAcxpF,aAMvCgsG,GAAoB,eAAC,GAAD,QE8HZE,GA1QU,iBAAM,CAC7B,CACEtiH,IAAK,eACLiO,MAAO,eACP6W,MAAO,gBACPH,aAAc,CAACm8C,GAAYA,IAC3BrgD,UAAW0tC,IAEb,CACEnuD,IAAK,cACLiO,MAAO,cACP6W,MAAO,eACPH,aAAc,CAACm8C,GAAYA,IAC3B,gBAAiB,IAAD,OACd,OAAO,kBAAM,eAAC,IAAD,CAAUl8C,GAAI,EAAK1mB,SAAS,GAAG4mB,UAE9C5mB,SAAU,CACR,CACE8B,IAAK,iBACLiO,MAAO,iBACP6W,MAAO,8BACPH,aAAc,CAACm8C,GAAYA,IAC3BrgD,UAAWg/E,IAEb,CACEz/F,IAAK,UACLiO,MAAO,UACP6W,MAAO,uBACPH,aAAc,CAACm8C,GAAYA,IAC3BrgD,UAAWswE,IAEb,CACE/wF,IAAK,OACLiO,MAAO,eACP6W,MAAO,oBACPH,aAAc,CAACm8C,GAAYA,IAC3BrgD,UAAW8hG,IAEb,CACEviH,IAAK,iBACLiO,MAAO,iBACP6W,MAAO,8BACPH,aAAc,CAACm8C,GAAYA,IAC3BrgD,UAAWqgF,IAEb,CACE9gG,IAAK,cACLiO,MAAO,SACP6W,MAAO,2BACPH,aAAc,CAACm8C,GAAYA,IAC3BrgD,UAAW+hG,MAIjB,CACExiH,IAAK,YACLiO,MAAO,YACP6W,MAAO,aACPH,aAAc,CAACm8C,GAAYA,IAC3BrgD,UAAWgpD,IAEb,CACEzpE,IAAK,WACLiO,MAAO,WACP6W,MAAO,YACPH,aAAc,CAACm8C,GAAYA,IAC3B,gBAAiB,IAAD,OACd,OAAO,kBAAM,eAAC,IAAD,CAAUl8C,GAAI,EAAK1mB,SAAS,GAAG4mB,UAE9C5mB,SAAU,CACR,CACE8B,IAAK4xB,GACL3jB,MAAO,cACP6W,MAAO,wBACPH,aAAc,CAACm8C,GAAYA,IAC3BrgD,UAAW68B,IAEb,CACEt9C,IAAK4xB,GACL3jB,MAAO,UACP6W,MAAO,mBACPH,aAAc,CAACm8C,GAAYA,IAC3BrgD,UAAWq4C,IAEb,CACE94D,IAAK4xB,GACL3jB,MAAO,WACP6W,MAAO,qBACPH,aAAc,CAACm8C,GAAYA,IAC3BrgD,UAAW+uD,IAEb,CACExvE,IAAK4xB,GACL3jB,MAAO,gBACP6W,MAAO,0BACPH,aAAc,CAACm8C,GAAYA,IAC3BrgD,UAAW8jF,IAEb,CACEvkG,IAAK,WACLiO,MAAO,qBACP6W,MAAO,+BACPH,aAAc,CAACm8C,GAAYA,IAC3BrgD,UAAWwrF,IAEb,CACEjsG,IAAK4xB,GACL3jB,MAAO,SACP6W,MAAO,4BACPH,aAAc,CAACm8C,GAAYA,IAC3BrgD,UAAWgiG,IAEb,CACEziH,IAAK4xB,GACL3jB,MAAO,gBACP6W,MAAO,0BACPpjB,MAAO,uBACPijB,aAAc,CAACm8C,GAAYA,IAC3B,gBAAiB,IAAD,OACd,OAAO,wBACL,eAAC,IAAD,CACEl8C,GAAI,CACFC,SAAU,EAAK3mB,SAAS,GAAG4mB,MAC3BC,MAAO,CAAEP,KAAI,UAAE,EAAKO,aAAP,aAAE,EAAYP,WAKnCtmB,SAAU,CACR,CACE8B,IAAK,eACLiO,MAAO,sBACP6W,MAAO,uCACPH,aAAc,CAACm8C,GAAYA,IAC3BrgD,UAAW8lF,IAEb,CACEvmG,IAAK,mBACLiO,MAAO,UACP6W,MAAO,2CACPH,aAAc,CAACm8C,GAAYA,IAC3BrgD,UAAWomF,IAEb,CACE7mG,IAAK,cACLiO,MAAO,cACP6W,MAAO,sCACPH,aAAc,CAACm8C,GAAYA,IAC3BrgD,UAAWsoF,IAEb,CACE/oG,IAAK,iBACLiO,MAAO,iBACP6W,MAAO,yCACPH,aAAc,CAACm8C,GAAYA,IAC3BrgD,UAAWiiG,IAEb,CACE1iH,IAAK,mBACLiO,MAAO,qBACP6W,MAAO,2CACPH,aAAc,CAACm8C,GAAYA,IAC3BrgD,UAAW0pF,QAMrB,CACEnqG,IAAK,aACLiO,MAAO,aACP6W,MAAO,cACPH,aAAc,CAACm8C,GAAYA,IAC3B,gBAAiB,IAAD,OACd,OAAO,kBAAM,eAAC,IAAD,CAAUl8C,GAAI,EAAK1mB,SAAS,GAAG4mB,UAE9C5mB,SAAU,CACR,CACE8B,IAAK,WACLiO,MAAO,WACP6W,MAAO,uBACPH,aAAc,CAACm8C,GAAYA,IAC3BrgD,UAAW87F,IAEb,CACEv8G,IAAK,YACLiO,MAAO,YACP6W,MAAO,wBACPH,aAAc,CAACm8C,GAAYA,IAC3BrgD,UAAWguE,IAEb,CACEzuF,IAAK,YACLiO,MAAO,YACP6W,MAAO,wBACPH,aAAc,CAACm8C,GAAYA,IAC3BrgD,UAAWysD,IAEb,CACEltE,IAAK,UACLiO,MAAO,UACP6W,MAAO,sBACPpjB,MAAO,gBACPijB,aAAc,CAACm8C,GAAYA,IAC3B,gBAAiB,IAAD,OACd,OAAO,wBACL,eAAC,IAAD,CACEl8C,GAAI,CACFC,SAAU,EAAK3mB,SAAS,GAAG4mB,MAC3BC,MAAO,CAAEP,KAAI,UAAE,EAAKO,aAAP,aAAE,EAAYP,WAKnCtmB,SAAU,CACR,CACE8B,IAAK,uBACLiO,MAAO,uBACP6W,MAAO,2CACPH,aAAc,CAACm8C,GAAYA,IAC3BrgD,UAAWm1E,IAEb,CACE51F,IAAK,cACLiO,MAAO,cACP6W,MAAO,4BACPH,aAAc,CAACm8C,GAAYA,IAC3BrgD,UAAWs2E,MAIjB,CACE/2F,IAAK,WACL8kB,MAAO,2BACPH,aAAc,CAACm8C,GAAYA,IAC3BrgD,UAAWwoE,MAIjB,CACEjpF,IAAK,SACLiO,MAAO,SACP6W,MAAO,UACPH,aAAc,CAACm8C,IACf,gBAAiB,IAAD,OACd,OAAO,kBAAM,eAAC,IAAD,CAAUl8C,GAAI,EAAK1mB,SAAS,GAAG4mB,UAE9C5mB,SAAU,CACR,CACE8B,IAAK,kBACLiO,MAAO,kBACP6W,MAAO,0BACPH,aAAc,CAACm8C,IACfrgD,UAAWkiG,IAEb,CACE3iH,IAAK,qBACLiO,MAAO,qBACP6W,MAAO,6BACPH,aAAc,CAACm8C,IACfrgD,UAAWosF,QC3MJjvG,GAvFA,SAAC,GAAD,EAAGglH,cAAH,MAAwB,CACrCC,kBAAmB,CACjB3mH,QAAS,OACT8H,cAAe,OAEjB8+G,uBAAwB,CACtB5mH,QAAS,OACT8H,cAAe,UAEjB++G,YAAa,CACXvoH,MAAO/B,GACPwL,aAAc,GAEhB++G,WAAY,CACVroH,SAAU,IAEZsoH,cAAe,CACbtoH,SAAU,GACV4J,UAAW,WACXnI,OAAQ,CAAC,CAAC,EAAG,EAAG,EAAG,KAErBkY,UAAW,CACT3Z,SAAU,GACV4J,UAAW,SACXnI,OAAQ,CAAC,CAAC,GAAI,GAAI,EAAG,MAEvB8mH,eAAgB,CACdhnH,QAAS,OACT8H,cAAe,MACfk8C,SAAU,QAEZijE,kBAAmB,CACjB1+G,SAAU,EACV4/E,WAAY,EACZ5tC,UAAU,YACV,oBAAqB,CACnB,UAAW,CACTr6C,OAAQ,CAAC,CAAC,EAAG,GAAI,EAAG,MAGxB,kBAAmB,CACjB,UAAW,CACTA,OAAQ,CAAC,CAAC,EAAG,EAAG,EAAG,OAGvBA,OAAQ,CAAC,CAAC,GAAI,KAEhBgnH,WAAY,CACVvmH,OAAQ,IACRT,OAAQ,CAAC,CAAC,EAAG,MAEfinH,aAAc,CACZnnH,QAAS,OACT8H,cAAe,MACftB,eAAgB,gBAChB7F,OAAQ,IAEVonB,KAAM,CACJ7iB,UAAU,kBACVvE,OAAQ,GACRumB,SAAU,IACVhnB,OAAQ,CAAC,EAAE,GAAI,EAAG,GAAI,MAExBknH,QAAS,CACPlnH,OAAQ,CAAC,EAAE,GAAI,EAAG,GAAI,MAExBmnH,QAAS,CACPnnH,OAAQ,CAAC,EAAE,GAAI,EAAG,GAAI,MAExBonH,WAAY,CACVhpH,MAAO/B,GACP2D,OAAQ,CAAC,CAAC,GAAI,GAAI,EAAG,KAEvBqnH,mBAAoB,CAClBvnH,QAAS,OACT8H,cAAe,SACf5H,OAAQ,CAAC,CAAC,EAAG,EAAG,EAAG,MAErBsnH,YAAa,CACX/oH,SAAU,GACVyB,OAAQ,CAAC,CAAC,EAAG,EAAG,GAAI,KAEtBunH,gBAAiB,CACf/gH,UAAW,MC/CAhF,ICjBGD,YAAWC,IAEI4J,IAAH,wiBDrBf,iBAAO,CACpBq7G,kBAAmB,CACjB3mH,QAAS,OACT8H,cAAe,OAEjB8+G,uBAAwB,CACtB5mH,QAAS,OACT8H,cAAe,UAEjB++G,YAAa,CACXvoH,MAAO/B,GACPwL,aAAc,GAEhB++G,WAAY,CACVroH,SAAU,IAEZsoH,cAAe,CACbtoH,SAAU,GACV4J,UAAW,WACXnI,OAAQ,CAAC,CAAC,EAAG,EAAG,EAAG,KAErBkY,UAAW,CACT3Z,SAAU,GACV4J,UAAW,SACXnI,OAAQ,CAAC,CAAC,GAAI,GAAI,EAAG,MAEvBwnH,WAAY,CACVhhH,UAAW,IAEbyiD,UAAW,CACTnpD,QAAS,OACT8H,cAAe,MACf/G,WAAY,aEUDW,IC5BGD,YAAWC,IAEI4J,IAAH,wiBA+BbA,IAAH,kED1CC,iBAAO,CACpB0pB,KAAM,CACJC,SAAU,aACV3uB,UAAW,gCACXzF,aAAc,GACdC,QAAS,GACT7E,gBAAiBP,GAEnBoD,GAAI,CACF4H,UAAW,GAEbqL,MAAO,CACL7R,OAAQ,EACR5B,MAAO/B,IAETorH,MAAO,CACLhrE,MAAO,QAET3M,OAAQ,CACN2M,MAAO,SAET/9B,IAAK,CACH3iB,gBAAiBA,GACjBmT,aAAc,QAEhBw4G,SAAU,CACR3rH,gBAAiBC,GACjBkT,aAAc,QAEhBy4G,SAAU,CACR3nH,OAAQ,CAAC,CAAC,EAAG,GAAI,GAAI,KAEvB4nH,UAAW,CACT5nH,OAAQ,CAAC,CAAC,EAAG,EAAG,EAAG,SEajB6nH,IAjCYtmH,YAAWC,IAEI4J,IAAH,wiBA+BV,CAClB8D,aAAc,kBACdtO,QAAS,EACT2Y,YAAa,GACbrY,aAAc,KC9BVI,IDiCO6b,aAAW,CACtBxN,KAAMk4G,IADK1qG,CAEVic,MAEgBjc,aAAW,CAC5BxN,KAAK,2BACAk4G,IADD,IAEF9rH,gBAAiB,WAHFohB,CAKhBic,MC1Ce73B,YAAW,CAC3BsM,QAAS,CACPiE,KAAM,EACNhS,QAAS,OACT8H,cAAe,SACfnH,OAAQ,WAgBNuoB,GARKk9F,KAUL94G,GAAM1C,IAAMA,KAAOA,KAAM,YAAaA,IAAO,cAC7Co9G,GAAep9G,IAAUA,KAAW0C,GAArB1C,CAA0Bse,IACzC++F,GAAer9G,IAASA,KAAM,YAAfA,CAA4Bo9G,IAAc/wD,OAC7DrsD,IAASA,KAAM,YAAfA,CAA4Bse,KAExBg/F,GAAat9G,IAAUA,KAAW0C,GAArB1C,CAA0Bo9G,IAEvCG,GAAYv9G,KAASs9G,GAAYD,IAsBjCG,GAAS,WACb,IAAMlmH,EAAUV,KAEVioB,EAAUC,cACV0F,EAAWwD,cAJE,EAKgB/F,qBAAWC,GAAtCu7F,EALW,EAKXA,aAAcn7F,EALH,EAKGA,SAYtB,IAAKm7F,IAAiBz9G,KAAWwkB,EAASzG,SAApB/d,CAVG,CACvB,OACA,YACA,UACA,SACA,YACA,iBACA,cAKA,OADA6e,EAAQO,KAAK,WACN,KAGT,IASMs+F,EAAal5F,EAASvG,MAAQ0/F,IAAQC,KAEtCC,EACJH,IAAeC,IACX,CACE/1F,UACE5nB,KAAYA,IAAS,QAASwkB,EAASvG,MAAMP,MAA7C1d,CAAoDs9G,IACpDt9G,KAAYA,IAAS,QAASwkB,EAASzG,UAAvC/d,CAAkDs9G,IAC9C,QACA,QAER,CAAE1iG,QAAS,KAEjB,OACE,gBAAC,IAAD,WACE,eAAC,GAAD,CAAckjG,OAAK,EAACz/D,KAAK,IAAzB,SACE,eAAC,IAAD,CAAUvgC,GAAI,CAAEC,SAAU,kBAE5B,eAAC,GAAD,CAAcsgC,KAAM,aAApB,SACE,eAACq/D,EAAD,yBACEzmH,UAAWK,EAAQ6L,SACf06G,GAFN,IAGErwF,IAAI,EACJuwF,cAAY,EACZC,eAAa,EACb5mH,SACE,sBAAKH,UAAWK,EAAQ6L,QAAxB,SACE,eAAC,GAAD,WAKR,eAAC,GAAD,CAAck7C,KAAK,YAAY1kC,UAAWuuC,KAC1C,eAAC,GAAD,CAAc7J,KAAK,UAAU1kC,UAAWo6B,KACxC,eAAC,GAAD,CAAasK,KAAK,YAAY1kC,UAAW4O,KAEzC,eAAC,GAAD,CAAa81B,KAAK,SAAS+b,YAAU,EAACzgD,UAAW+N,KACjD,eAAC,GAAD,CAAa22B,KAAK,iBAAiB1kC,UAAW4P,KAC9C,eAAC,GAAD,CAAa80B,KAAK,YAAY1kC,UAAWqP,MA9CtC1G,EAEEi7F,GAAU9xG,QAAO,SAAA/B,GACtB,IAAM/P,EAAO+P,EAAMmU,aACnB,OAAO7d,IAAWsiB,EAAS1E,KAAMjkB,MAJb,IA+CC+I,KAAI,gBAAGsb,EAAH,EAAGA,MAAkBigG,EAArB,EAAUtkG,UAAiBzgB,EAA3B,EAA2BA,IAA3B,OACvB,eAAC,GAAD,CAAcmlD,KAAMrgC,EAApB,SACE,eAAC0/F,EAAD,yBACEzmH,UAAWK,EAAQ6L,SACf06G,GAFN,IAGErwF,KAAM0wF,YAAU15F,EAASzG,SAAU,CAAEsgC,KAAMrgC,IAC3C+/F,cAAY,EACZC,eAAa,EACb5mH,SACE,sBAAKH,UAAWK,EAAQ6L,QAAxB,SACE,eAAC,GAAD,CAAck7C,KAAMrgC,EAApB,SACE,eAACigG,EAAD,CAAM73G,KAAMlN,KADkBA,SATRA,MAiBlC,eAAC,GAAD,CAAamlD,KAAK,SAClB,eAAC,GAAD,CAAaA,KAAK,IAAlB,SACE,eAAC,IAAD,CAAUvgC,GAAI,CAAEC,SAAU,gBCrK5B3jB,GAAO,OAEE,IACb,UAAU,2BCPG,CAyBb,aAAc,CACZ,CACEtG,WAAY,OACZk8C,IAAK,CACH,mEACA,kEAEFj8C,WAAY,IACZm/E,UAAW,UAEb,CACEp/E,WAAY,OACZk8C,IAAK,CACH,kEACA,iEAEFj8C,WAAY,IACZm/E,UAAW,UAyBb,CACEp/E,WAAY,YACZk8C,IAAK,CACH,sEACA,qEAEFj8C,WAAY,IACZm/E,UAAW,UAEb,CACEp/E,WAAY,YACZk8C,IAAK,CACH,sEACA,qEAEFj8C,WAAY,IACZm/E,UAAW,UAIb,CACEp/E,WAAY,SACZk8C,IAAK,qDACLj8C,WAAY,IACZm/E,UAAW,aDpFf,QAEE,QAAS,CACPx8E,MAAO0D,GACP0d,UAAW1d,IAEb,yBAA0B,CAExB0C,UAAW,OACXV,SAAU,WACVC,IAAK,EACLqI,OAAQ,EACRnI,KAAM,GAER,yBAA0B,CAExBoH,SAAU,UAEZ,aAAc,CACZ8H,OAAQ,YACR8tD,cAAe,QAEjB4kD,KAAM,CACJpoH,OAAQqE,GACR,wCAAyC,CACvCgkH,gBAAiB,WAGrB54D,KAAM,CACJ9uD,MAAOzE,GACPmD,QAAS,OACT0iB,UAAW1d,GACX,wCAAyC,CACvC1D,MAAO,UAjCb,iIAsC4C,CACxCZ,OAAQ,IAvCZ,mIA2C8C,CAC1CA,OAAQ,IA5CZ,8EAkDa,CACTE,QAAS,WAnDb,eAqDE,2BAA4B,CAC1BF,OAAQ,IAtDZ,eAyDE,gDAAiD,CAC/C6N,SAAU,uBA1Dd,M,UEWMvP,GAAMwB,GAANxB,EAEOiqH,gBAAe,CAC5BC,WAAY,CACVxqH,WAAYd,GACZurH,MAAM,eAAMnqH,KAEdoqH,cAAe,CACbl3G,eAAe,GAEjB6I,QAAS,CACP/Z,QAAS,CACPqoH,MAAOvtH,GACPwtH,KAAMxtH,GACN03F,KAAM13F,IAERmF,UAAW,CACTooH,MAAOvtH,GACPwtH,KAAMxtH,GACN03F,KAAM13F,IAERuL,WAAY,CACV8rC,QAASl3C,KAGbilD,UAAW,CACTqoE,SAAU,CACRC,eAAgB,CACdlrH,MAAOxC,KAGX2tH,gBAAiB,CACf55G,KAAM,CACJvR,MAAOhC,IAETotH,UAAW,CACT5oH,QAAS,CAAC,CAAC,EAAG,MAEhBiY,OAAQ,CACN,uBAAwB,CACtB9c,gBAAiBC,KAGrBytH,MAAO,CACLrrH,MAAOhC,GACP4D,OAAQ,GAEV0pH,QAAS,CACP9oH,QAAS,GAEX+oH,IAAK,CACH,wBAAyB,CACvBljH,WAAY,GAEdzG,OAAQ,EACRjE,gBAAiBC,GACjB2E,aAAc,EACdF,OAAQ,KAGZmpH,QAAS,CACP/3G,MAAO,CACL0H,YAAa,EACbrY,aAAc,EACd9C,MAAOhC,GACPmC,SAAUnB,KAGdysH,SAAU,CACRl6G,KAAM,CACJvR,MAAOhC,IAET0X,UAAW,CACT,WAAY,CACV5E,aAAc,CAAC,CAAC,EAAG,QAAS9S,QAIlC0tH,cAAe,CACbn6G,KAAM,CACJo6G,KAAM,UACNxrH,SAAUrB,GACVkB,MAAO/B,IAETme,OAAQ,CACNpc,MAAOhC,GACP4I,UAAW,oCAGfglH,aAAc,CACZr6G,KAAM,CACJ,YAAa,CACXvR,MAAOhC,MAIb6tH,YAAa,CACXt6G,KAAM,CACJ,qBAAsB,CACpB5T,gBAAiBA,MAIvBmuH,gBAAiB,CACfv6G,KAAM,CACJ,aAAc,CACZ5T,gBAAiBX,EACjBiU,YAAa1T,EACbwuH,eAAgB,CAACxuH,EAAc,cAC/B,UAAW,CACTI,gBAAiBV,IAGrB,UAAW,CACTU,gBAAiBV,KAIvB+uH,qBAAsB,CACpBC,gBAAiB,CACf1pH,aAAc,EACdH,OAAQ,YACR6O,YAAajU,EACb,sBAAuB,CACrBoU,UAAW,YACX26G,eAAgB/uH,EAChB0vF,qBAAsB,EACtBD,oBAAqB,EACrBy/B,wBAAyB,EACzBC,uBAAwB,GAE1B,qBAAsB,CACpB/6G,UAAW,YACX26G,eAAgB/uH,EAChB0vF,qBAAsB,EACtBD,oBAAqB,EACrBy/B,wBAAyB,EACzBC,uBAAwB,QCxH5BC,GAAMrvG,YAAO,CACjBsvG,QAAQ,CAAEC,eAAH,mBAAmBC,cAAYF,YAGlC3lH,GAAO,OACP8C,GAAgB,SAEhBtG,GAAYC,YAAW,2BACxBooG,IADuB,IAE1Bh6F,KAAM,CACJ5T,mBACAqF,MAAO0D,GACP0d,UAAW1d,GACXhF,QAAS,OACT8H,kBAEFiG,QAAS,CACPzM,MAAOzE,GACP8D,OAAQqE,GACR9E,OAAQ,SACR8R,KAAM,EACNhS,QAAS,OACT8H,kBAEFw6C,KAAM,CACJtwC,KAAM,EACNrR,OAAQ,QAEVmqH,mBAAoB,CAClB94G,KAAM,EACNrL,WAAY,GACZqB,WAAY,IAEd+iH,sBAAuB,CACrBzpH,MAAOzE,OAIL4vB,GAAgBnhB,IAAH,+MAcb0/G,GAAO,WACX,IAAM9oH,EAAUV,KACV4tB,EAAWwD,cACXnJ,EAAUC,cAHC,EAI+BmD,qBAAWC,GAAnDu7F,EAJS,EAITA,aAAcn7F,EAJL,EAIKA,SAAUN,EAJf,EAIeA,YAExB3gB,EAAYH,YAAS2gB,GAAe,CAC1C9H,YAAa,SAAAogG,IACN73F,IAAD,OAAa63F,QAAb,IAAaA,OAAb,EAAaA,EAAc73F,WAC7BN,EAAYm4F,EAAa73F,aAHvBjhB,QAOF2c,EAAQwG,EAASzG,SAEjBxH,EJ3CW,SAAAyH,GAAK,OACtBhe,MAAM,SAAA3E,GAAC,OAAIA,EAAE2iB,QAAUA,IAAvBhe,CACEA,IACEA,KACAA,IAAMA,IAAO,aACbA,IAASA,KAAM,aAHjBA,CAIEo9G,KIqCYiD,CAAWriG,GACrB2oC,EAASpwC,EJnCC,SAAAyH,GAAK,OACrBhe,KACEA,IACE,QACAA,KACE,EACAA,MAAgB,SAAAxD,GAAC,MAAU,MAANA,IAAWwhB,KALtChe,CAQEu9G,II0BuB+C,CAAUtiG,GAAS,GAEtCuiG,EAA8B,SAAtB/7F,EAASzG,SAMjByiG,EAAmBjqG,EACrBjf,EAAQ4oH,mBACR5oH,EAAQ6oH,sBAEZ,OACE,uBAAKlpH,UAAWK,EAAQ2N,KAAxB,WACIs7G,GAAS9C,GAAgBn7F,GACzB,eAAC,GAAD,CAAQhE,KAAMA,GAAMb,KAAM6E,IAE5B,wBAAMrrB,UAAWK,EAAQ6L,QAAzB,UACGoT,IAAYgqG,GAAS9C,GACpB,eAACE,EAAA,EAAD,CACE/1F,UAAU,OACV4F,IAAI,EACJuwF,cAAY,EACZC,eAAa,EACb5mH,SACE,+BACE,eAAC,GAAD,CAAcwD,MAAO+rD,EAAO/rD,YAMpC,gBAAC+sB,EAAA,EAAD,CAAMnsB,WAAS,EAACvE,UAAWK,EAAQogD,KAAnC,UACGnhC,IAAYgqG,GAAS9C,GACpB,eAAC,GAAD,CACEr8G,KAAMulD,EAAOvvD,SACbggB,WAhCO,SAAAvM,GAAE,OAAI2Z,EAASzG,WAAalT,EAAGmT,OAiCtC7G,YAAa,SAAAtM,GAAE,OAAIA,EAAG1D,OACtB3G,QAhCI,SAAAqK,GAAE,OAAIgU,EAAQO,KAAKvU,EAAGmT,UAmC9B,sBAAK/mB,UAAWupH,EAAhB,UAAoCn/G,GAAW,eAAC,GAAD,gBAkC1Co/G,GA3BH,WAAO,IAAD,EACwBn/G,oBAAS,GADjC,mBACTm8G,EADS,KACKjkD,EADL,OAEgBl4D,mBAAS,MAFzB,mBAETghB,EAFS,KAECN,EAFD,KAUhB,OACE,eAACE,EAAW2rB,SAAZ,CACEnkC,MAAO,CAAE+zG,eAAcjkD,kBAAiBl3C,WAAUN,cAAa87B,QARnD,SAAAlgC,GACV0E,GAAY1E,GAAQ0E,EAAS1E,OAASA,GACxCoE,EAAY,2BAAKM,GAAN,IAAgB1E,YAK7B,SAEE,eAAC,IAAD,UACE,eAAC,GAAD,UACE,eAAC8iG,EAAA,EAAD,CAAgBZ,IAAKA,GAArB,SACE,gBAAC,IAAD,CAAkB9vG,MAAOA,GAAzB,UACE,eAAC2wG,EAAA,EAAD,IACA,eAAC,GAAD,gBC7JMl6G,QACW,cAA7B8d,OAAOC,SAASC,UAEe,UAA7BF,OAAOC,SAASC,UAEhBF,OAAOC,SAASC,SAAStG,MACvB,2DCHGyiG,QAAQC,UAGEj8F,MAAK,kBACtBk8F,IAASzmD,OACP,eAAC,IAAM0mD,WAAP,UACE,eAAC,GAAD,MAEFhiG,SAASiiG,eAAe,YD0GtB,kBAAmBC,WACrBA,UAAUC,cAAcC,MAAMv8F,MAAK,SAAAw8F,GACjCA,EAAaC,kB","file":"static/js/main.473b3df4.chunk.js","sourcesContent":["import React from 'react'\n\nexport default React.createContext()\n","const version = 9\n\n// Primary\nconst zodiac = '#1b2559'\nconst spring = '#48f694'\n\n// Secondary\nconst comet = '#5f668a'\nconst comet2 = '#72799d'\nconst comet3 = '#525772'\nconst spring2 = '#44e188'\nconst spring3 = '#ecfbef'\nconst spring4 = '#3fd07e'\nconst zircon = '#ebefff'\nconst zircon2 = '#dbdfed'\n\n// Cash-in/cash-out\nconst java = '#16d6d3'\nconst neon = '#5a67ff'\n\n// Neutral\nconst dust = '#dddddd'\nconst concrete = '#f2f2f2'\nconst ghost = '#fafbff'\nconst white = '#ffffff'\n\n// Error\nconst tomato = '#ff584a'\nconst tomato1 = '#E45043'\nconst tomato2 = '#CE463A'\nconst mistyRose = '#ffeceb'\nconst pumpkin = '#ff7311'\nconst linen = '#fbf3ec'\n\n// Color Variables\nconst primaryColor = zodiac\n\nconst secondaryColor = spring\nconst secondaryColorDark = spring2\nconst secondaryColorDarker = spring4\nconst secondaryColorLighter = spring3\n\nconst backgroundColor = ghost\nconst subheaderColor = zircon\nconst subheaderDarkColor = zircon2\nconst disabledColor = dust\nconst disabledColor2 = concrete\nconst fontColor = primaryColor\nconst offColor = comet\nconst offDarkColor = comet2\nconst offDarkerColor = comet3\nconst placeholderColor = comet\nconst errorColor = tomato\nconst errorColorDark = tomato1\nconst errorColorDarker = tomato2\nconst offErrorColor = mistyRose\nconst inputBorderColor = primaryColor\n\n// General\nconst spacer = 8\nconst mainWidth = 1200\n\n// Buttons\nconst linkPrimaryColor = secondaryColor\nconst linkSecondaryColor = tomato\n\n// Fonts\nconst fontPrimary = 'Mont'\nconst fontSecondary = 'MuseoSans'\nconst fontMonospaced = 'BPmono'\n\nlet fontSize1 = 24\nlet fontSize2 = 20\nlet fontSize3 = 16\nlet fontSize4 = 14\nlet fontSize5 = 13\n\nif (version === 8) {\n fontSize1 = 32\n fontSize2 = 24\n fontSize3 = 20\n fontSize4 = 16\n fontSize5 = 14\n}\n\nconst smallestFontSize = fontSize5\nconst inputFontSizeSm = fontSize4\nconst inputFontSize = fontSize3\nconst inputFontSizeLg = fontSize1\nconst inputFontWeight = 500\nconst inputFontWeightBold = 700\nconst inputFontFamily = fontSecondary\nconst codeInputFontSize = 35\n\n// Breakpoints\nconst sm = 576\nconst md = 768\nconst lg = 992\nconst xl = 1200\nconst xxl = 1440\n\n// Table\nlet tableHeaderHeight = spacer * 4\nlet tableCellHeight = spacer * 6\n\nif (version === 8) {\n tableHeaderHeight = spacer * 5\n tableCellHeight = spacer * 7 - 2\n}\n\nconst tableDoubleHeaderHeight = tableHeaderHeight * 2\n\nconst tableSmCellHeight = 30\nconst tableLgCellHeight = 76\n\nconst tableHeaderColor = primaryColor\nconst tableDisabledHeaderColor = zircon\nconst tableNewDisabledHeaderColor = spring3\nconst tableCellColor = white\nconst tableErrorColor = mistyRose\nconst tableSuccessColor = spring3\n\nexport {\n version,\n // colors\n white,\n zircon,\n zircon2,\n comet,\n spring2,\n spring3,\n spring4,\n tomato,\n pumpkin,\n mistyRose,\n java,\n neon,\n linen,\n // named colors\n primaryColor,\n secondaryColor,\n secondaryColorDark,\n secondaryColorDarker,\n secondaryColorLighter,\n subheaderColor,\n subheaderDarkColor,\n backgroundColor,\n placeholderColor,\n offColor,\n offDarkColor,\n offDarkerColor,\n fontColor,\n disabledColor,\n disabledColor2,\n linkPrimaryColor,\n linkSecondaryColor,\n errorColor,\n errorColorDarker,\n errorColorDark,\n offErrorColor,\n inputBorderColor,\n // font sizes\n fontSize1,\n fontSize2,\n fontSize3,\n fontSize4,\n fontSize5,\n fontPrimary,\n fontSecondary,\n fontMonospaced,\n // named font sizes\n smallestFontSize,\n inputFontSize,\n inputFontSizeSm,\n inputFontSizeLg,\n inputFontFamily,\n inputFontWeight,\n inputFontWeightBold,\n codeInputFontSize,\n // screen sizes\n sm,\n md,\n lg,\n xl,\n xxl,\n // sizes\n spacer,\n mainWidth,\n // table sizes\n tableHeaderHeight,\n tableDoubleHeaderHeight,\n tableCellHeight,\n tableSmCellHeight,\n tableLgCellHeight,\n tableHeaderColor,\n tableDisabledHeaderColor,\n tableNewDisabledHeaderColor,\n tableCellColor,\n tableErrorColor,\n tableSuccessColor\n}\n","import {\n fontColor,\n fontSize1,\n fontSize2,\n fontSize3,\n fontSize4,\n fontSize5,\n fontPrimary,\n fontSecondary,\n fontMonospaced,\n codeInputFontSize\n} from 'src/styling/variables'\n\nconst base = {\n lineHeight: '120%',\n color: fontColor\n}\n\nexport default {\n h1: {\n extend: base,\n fontSize: fontSize1,\n fontFamily: fontPrimary,\n fontWeight: 900\n },\n h2: {\n extend: base,\n fontSize: fontSize2,\n fontFamily: fontPrimary,\n fontWeight: 900\n },\n h3: {\n extend: base,\n fontSize: fontSize4,\n fontFamily: fontPrimary,\n fontWeight: 900\n },\n h4: {\n extend: base,\n fontSize: fontSize4,\n fontFamily: fontPrimary,\n fontWeight: 700\n },\n h5: {\n extend: base,\n fontSize: fontSize3,\n fontFamily: fontPrimary,\n fontWeight: 700\n },\n p: {\n extend: base,\n fontSize: fontSize4,\n fontFamily: fontSecondary,\n fontWeight: 500\n },\n tl1: {\n extend: base,\n fontSize: fontSize2,\n fontFamily: fontSecondary,\n fontWeight: 700\n },\n tl2: {\n extend: base,\n fontSize: fontSize4,\n fontFamily: fontSecondary,\n fontWeight: 700\n },\n info1: {\n extend: base,\n fontSize: fontSize1,\n fontFamily: fontSecondary,\n fontWeight: 700\n },\n info2: {\n extend: base,\n fontSize: fontSize3,\n fontFamily: fontSecondary,\n fontWeight: 700\n },\n info3: {\n extend: base,\n fontSize: fontSize3,\n fontFamily: fontSecondary,\n fontWeight: 500\n },\n mono: {\n extend: base,\n fontSize: fontSize4,\n fontFamily: fontMonospaced,\n fontWeight: 500\n },\n monoBold: {\n fontWeight: 700\n },\n monoSmall: {\n fontSize: fontSize5\n },\n inputFont: {\n fontSize: fontSize2,\n fontFamily: fontSecondary,\n fontWeight: 500,\n lineHeight: '110%',\n color: fontColor\n },\n regularLabel: {\n fontSize: fontSize4,\n fontFamily: fontSecondary,\n fontWeight: 500,\n lineHeight: '110%'\n },\n label1: {\n fontSize: fontSize5,\n fontFamily: fontSecondary,\n fontWeight: 500,\n color: fontColor\n },\n label2: {\n fontSize: fontSize5,\n fontFamily: fontSecondary,\n fontWeight: 700,\n color: fontColor\n },\n label3: {\n fontSize: fontSize4,\n fontFamily: fontSecondary,\n fontWeight: 500,\n color: fontColor\n },\n confirmationCode: {\n extend: base,\n fontSize: codeInputFontSize,\n fontFamily: fontSecondary,\n fontWeight: 900\n },\n inline: {\n display: 'inline'\n },\n noMargin: {\n margin: 0\n }\n}\n","import typographyStyles from 'src/components/typography/styles'\nimport {\n white,\n subheaderColor,\n subheaderDarkColor,\n offColor,\n offDarkColor,\n offDarkerColor,\n secondaryColor,\n secondaryColorDark,\n secondaryColorDarker,\n errorColor,\n errorColorDark,\n errorColorDarker\n} from 'src/styling/variables'\n\nconst { p } = typographyStyles\n\nconst colors = (color1, color2, color3) => {\n return {\n backgroundColor: color1,\n '&:hover': {\n backgroundColor: color2\n },\n '&:active': {\n backgroundColor: color3\n }\n }\n}\n\nexport default {\n actionButton: {\n extend: p,\n cursor: 'pointer',\n border: 'none',\n height: 28,\n outline: 0,\n borderRadius: 6,\n padding: '0 8px',\n display: 'flex',\n alignItems: 'center'\n },\n primary: {\n extend: colors(subheaderColor, subheaderDarkColor, offColor),\n '&:active': {\n color: white,\n '& $actionButtonIcon': {\n display: 'none'\n },\n '& $actionButtonIconActive': {\n display: 'flex'\n }\n },\n '& $actionButtonIconActive': {\n display: 'none'\n }\n },\n secondary: {\n extend: colors(offColor, offDarkColor, offDarkerColor),\n color: white,\n '&:active': {\n '& $actionButtonIcon': {\n display: 'flex'\n },\n '& $actionButtonIconActive': {\n display: 'none'\n }\n },\n '& $actionButtonIcon': {\n display: 'none'\n },\n '& $actionButtonIconActive': {\n display: 'flex'\n }\n },\n spring: {\n extend: colors(secondaryColorDark, secondaryColor, secondaryColorDarker),\n color: white,\n '&:active': {\n '& $actionButtonIcon': {\n display: 'flex'\n },\n '& $actionButtonIconActive': {\n display: 'none'\n }\n },\n '& $actionButtonIcon': {\n display: 'none'\n },\n '& $actionButtonIconActive': {\n display: 'flex'\n }\n },\n tomato: {\n extend: colors(errorColorDark, errorColor, errorColorDarker),\n color: white,\n '&:active': {\n '& $actionButtonIcon': {\n display: 'flex'\n },\n '& $actionButtonIconActive': {\n display: 'none'\n }\n },\n '& $actionButtonIcon': {\n display: 'none'\n },\n '& $actionButtonIconActive': {\n display: 'flex'\n }\n },\n actionButtonIcon: {\n display: 'flex',\n paddingRight: 7,\n '@global': {\n svg: {\n width: 14,\n height: 14\n }\n }\n },\n actionButtonIconActive: {}\n}\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport styles from './ActionButton.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst ActionButton = memo(\n ({ className, Icon, InverseIcon, color, children, ...props }) => {\n const classes = useStyles()\n const classNames = {\n [classes.actionButton]: true,\n [classes.primary]: color === 'primary',\n [classes.secondary]: color === 'secondary',\n [classes.spring]: color === 'spring',\n [classes.tomato]: color === 'tomato'\n }\n\n return (\n \n {Icon && (\n \n \n
\n )}\n {InverseIcon && (\n \n \n
\n )}\n {children && {children}
}\n \n )\n }\n)\n\nexport default ActionButton\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport styles from './styles'\n\nconst useStyles = makeStyles(styles)\n\nfunction H1({ children, noMargin, className, ...props }) {\n const classes = useStyles()\n const classNames = {\n [classes.h1]: true,\n [classes.noMargin]: noMargin,\n [className]: !!className\n }\n\n return (\n
\n {children}\n \n )\n}\n\nfunction H2({ children, noMargin, className, ...props }) {\n const classes = useStyles()\n const classNames = {\n [classes.h2]: true,\n [classes.noMargin]: noMargin,\n [className]: !!className\n }\n\n return (\n \n {children}\n \n )\n}\n\nfunction H3({ children, noMargin, className, ...props }) {\n const classes = useStyles()\n const classNames = {\n [classes.h3]: true,\n [classes.noMargin]: noMargin,\n [className]: !!className\n }\n\n return (\n \n {children}\n \n )\n}\n\nfunction H4({ children, noMargin, className, ...props }) {\n const classes = useStyles()\n const classNames = {\n [classes.h4]: true,\n [classes.noMargin]: noMargin,\n [className]: !!className\n }\n\n return (\n \n {children}\n \n )\n}\n\nfunction H5({ children, noMargin, className, ...props }) {\n const classes = useStyles()\n const classNames = {\n [classes.h5]: true,\n [classes.noMargin]: noMargin,\n [className]: !!className\n }\n\n return (\n \n {children}\n \n )\n}\n\nconst P = pBuilder('p')\nconst Info1 = pBuilder('info1')\nconst Info2 = pBuilder('info2')\nconst Info3 = pBuilder('info3')\nconst Mono = pBuilder('mono')\nconst TL1 = pBuilder('tl1')\nconst TL2 = pBuilder('tl2')\nconst Label1 = pBuilder('label1')\nconst Label2 = pBuilder('label2')\nconst Label3 = pBuilder('label3')\n\nfunction pBuilder(elementClass) {\n return ({ inline, noMargin, className, children, ...props }) => {\n const classes = useStyles()\n const classNames = {\n [className]: !!className,\n [classes[elementClass]]: elementClass,\n [classes.inline]: inline,\n [classes.noMargin]: noMargin\n }\n return (\n \n {children}\n
\n )\n }\n}\n\nexport {\n H1,\n H2,\n H3,\n H4,\n H5,\n TL1,\n TL2,\n P,\n Info1,\n Info2,\n Info3,\n Mono,\n Label1,\n Label2,\n Label3\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"nav-/-primary-/-1440\",\n transform: \"translate(-1295.000000, -19.000000)\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/menu/notification\",\n transform: \"translate(1296.000000, 20.000000)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.1052632,14.3157895 C10.1052632,15.2454737 9.35073684,16 8.42105263,16 C7.49136842,16 6.73684211,15.2454737 6.73684211,14.3157895\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.6,14.3157895 C0.7168,14.3157895 0,13.6031813 0,12.7251462 C0,11.8471111 0.7168,11.1345029 1.6,11.1345029 L1.6,6.3625731 C1.6,2.84884211 4.4656,0 8,0 C11.5344,0 14.4,2.84884211 14.4,6.3625731 L14.4,11.1345029 C15.2832,11.1345029 16,11.8471111 16,12.7251462 C16,13.6031813 15.2832,14.3157895 14.4,14.3157895 L1.6,14.3157895 Z\",\n id: \"Stroke-3\",\n strokeLinejoin: \"round\"\n}))));\n\nfunction SvgNotificationZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"18px\",\n viewBox: \"0 0 18 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgNotificationZodiac);\nexport default __webpack_public_path__ + \"static/media/notification-zodiac.e2897b39.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/stage/spring/empty\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-Copy-6\",\n stroke: \"#DDDDDD\",\n strokeWidth: 2,\n transform: \"translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) \",\n cx: 9,\n cy: 9,\n r: 8\n}));\n\nfunction SvgEmpty(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"18px\",\n viewBox: \"0 0 18 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmpty);\nexport default __webpack_public_path__ + \"static/media/empty.862ae4bb.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/stage/zodiac/empty\",\n stroke: \"none\",\n strokeWidth: 2,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-Copy-6\",\n stroke: \"#5F668A\",\n transform: \"translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) \",\n cx: 9,\n cy: 9,\n r: 8\n}));\n\nfunction SvgEmpty(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"18px\",\n viewBox: \"0 0 18 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmpty);\nexport default __webpack_public_path__ + \"static/media/empty.631601f2.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/stage/zodiac/full\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-2-Copy\",\n fill: \"#1B2559\",\n cx: 9,\n cy: 9,\n r: 8\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-Copy-5\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n transform: \"translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) \",\n cx: 9,\n cy: 9,\n r: 8\n}));\n\nfunction SvgFull(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"18px\",\n viewBox: \"0 0 18 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgFull);\nexport default __webpack_public_path__ + \"static/media/full.67b8cd67.svg\";\nexport { ForwardRef as ReactComponent };","import {\n spacer,\n white,\n zircon,\n secondaryColor,\n spring3,\n comet\n} from 'src/styling/variables'\n\nconst styles = {\n container: {\n '@media only screen and (max-width: 1920px)': {\n width: '30vw'\n },\n width: '40vw',\n height: '110vh',\n right: 0,\n backgroundColor: white,\n boxShadow: '0 0 14px 0 rgba(0, 0, 0, 0.24)'\n },\n header: {\n display: 'flex',\n justifyContent: 'space-between'\n },\n headerText: {\n marginTop: spacer * 2.5,\n marginLeft: spacer * 3\n },\n actionButtons: {\n display: 'flex',\n marginLeft: spacer * 2,\n height: 0\n },\n notificationIcon: ({ buttonCoords, xOffset }) => ({\n position: 'absolute',\n top: buttonCoords ? buttonCoords.y : 0,\n left: buttonCoords ? buttonCoords.x - xOffset : 0,\n cursor: 'pointer',\n background: 'transparent',\n boxShadow: '0px 0px 0px transparent',\n border: '0px solid transparent',\n textShadow: '0px 0px 0px transparent',\n outline: 'none'\n }),\n clearAllButton: {\n marginTop: -spacer * 2,\n marginLeft: spacer,\n backgroundColor: zircon\n },\n notificationsList: {\n height: '90vh',\n maxHeight: '100vh',\n marginTop: spacer * 3,\n marginLeft: 0,\n overflowY: 'auto',\n overflowX: 'hidden',\n backgroundColor: white,\n zIndex: 10\n },\n notificationRow: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-start',\n position: 'relative',\n marginBottom: spacer / 2,\n paddingTop: spacer * 1.5,\n '& > *:first-child': {\n marginRight: 24\n },\n '& > *': {\n marginRight: 10\n },\n '& > *:last-child': {\n marginRight: 0\n }\n },\n notificationContent: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n width: 300\n },\n unread: {\n backgroundColor: spring3\n },\n notificationRowIcon: {\n alignSelf: 'center',\n '& > *': {\n marginLeft: spacer * 3\n }\n },\n readIconWrapper: {\n flexGrow: 1\n },\n unreadIcon: {\n marginTop: 2,\n width: '12px',\n height: '12px',\n backgroundColor: secondaryColor,\n borderRadius: '50%',\n cursor: 'pointer',\n zIndex: 1\n },\n readIcon: {\n marginLeft: spacer,\n marginTop: 5,\n width: '12px',\n height: '12px',\n border: [[1, 'solid', comet]],\n borderRadius: '50%',\n cursor: 'pointer',\n zIndex: 1\n },\n notificationTitle: {\n margin: 0,\n color: comet\n },\n notificationBody: {\n margin: 0\n },\n notificationSubtitle: {\n margin: 0,\n marginBottom: spacer,\n color: comet\n },\n stripes: {\n position: 'absolute',\n height: '100%',\n top: '0px',\n opacity: '60%'\n },\n hasUnread: {\n position: 'absolute',\n top: 0,\n left: 16,\n width: '9px',\n height: '9px',\n backgroundColor: secondaryColor,\n borderRadius: '50%'\n }\n}\n\nexport default styles\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"\\\\u21B3-notification-center\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"notification-center_v01a#2-(open)\",\n transform: \"translate(-1023.000000, -459.000000)\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\",\n transform: \"translate(1000.000000, 0.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/wrench\",\n transform: \"translate(24.000000, 460.000000)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.7602493,3.10720971 L13.1962412,5.67121772 L10.3290323,5.67121772 L10.3290323,2.80400876 L12.8930403,0.24000075 C12.4378389,0.0872002725 11.9506373,0 11.4434358,0 C8.9282279,0 6.88822153,2.04000637 6.88822153,4.55681424 C6.88822153,5.08081588 6.98102182,5.58321745 7.14422233,6.05201891 L0.580201813,12.6168394 C-0.193400604,13.3904418 -0.193400604,14.6456458 0.580201813,15.4200482 C1.35460423,16.1936506 2.60980816,16.1936506 3.38341057,15.4200482 L9.94823109,8.85602767 C10.4170326,9.01922818 10.9186341,9.11202847 11.4434358,9.11202847 C13.9602436,9.11202847 16.00025,7.0720221 16.00025,4.55681424 C16.00025,4.04961265 15.9130497,3.56241113 15.7602493,3.10720971 Z\",\n id: \"Stroke-1\"\n})))));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"32px\",\n height: \"32px\",\n viewBox: \"0 0 18 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.1806a875.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"\\\\u21B3-notification-center\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"notification-center_v01a#1-(marked-one-as-read)\",\n transform: \"translate(-1023.000000, -123.000000)\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\",\n transform: \"translate(1000.000000, 0.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-4\",\n transform: \"translate(24.000000, 124.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-3\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 4,\n x2: 16,\n y2: 4,\n id: \"Path-2\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path-3\",\n points: \"12 0 16 4 12 8\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2\",\n transform: \"translate(8.000000, 12.000000) scale(-1, 1) translate(-8.000000, -12.000000) translate(0.000000, 8.000000)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 4,\n x2: 16,\n y2: 4,\n id: \"Path-2-Copy\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path-3-Copy\",\n points: \"12 0 16 4 12 8\"\n}))))));\n\nfunction SvgTransaction(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"24px\",\n height: \"24px\",\n viewBox: \"0 0 18 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTransaction);\nexport default __webpack_public_path__ + \"static/media/transaction.d1309f34.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/warning-icon/tomato\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle\",\n stroke: \"#FF584A\",\n strokeWidth: 2,\n x: 1,\n y: 1,\n width: 22,\n height: 22,\n rx: 11\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.2971429,14.4857143 L11.1085714,5.82857143 L13.3714286,5.82857143 L13.2,14.4857143 L11.2971429,14.4857143 Z M11.1942857,18 L11.1942857,15.9771429 L13.3028571,15.9771429 L13.3028571,18 L11.1942857,18 Z\",\n id: \"!\",\n fill: \"#FF584A\",\n fillRule: \"nonzero\"\n})));\n\nfunction SvgTomato(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"24px\",\n height: \"24px\",\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTomato);\nexport default __webpack_public_path__ + \"static/media/tomato.4b561f6f.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport prettyMs from 'pretty-ms'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport { Label1, Label2, TL2 } from 'src/components/typography'\nimport { ReactComponent as Wrench } from 'src/styling/icons/action/wrench/zodiac.svg'\nimport { ReactComponent as Transaction } from 'src/styling/icons/arrow/transaction.svg'\nimport { ReactComponent as WarningIcon } from 'src/styling/icons/warning-icon/tomato.svg'\n\nimport styles from './NotificationCenter.styles'\nconst useStyles = makeStyles(styles)\n\nconst types = {\n transaction: {\n display: 'Transactions',\n icon: \n },\n highValueTransaction: {\n display: 'Transactions',\n icon: \n },\n fiatBalance: {\n display: 'Maintenance',\n icon: \n },\n cryptoBalance: {\n display: 'Maintenance',\n icon: \n },\n compliance: {\n display: 'Compliance',\n icon: \n },\n error: { display: 'Error', icon: }\n}\n\nconst NotificationRow = ({\n id,\n type,\n detail,\n message,\n deviceName,\n created,\n read,\n valid,\n toggleClear\n}) => {\n const classes = useStyles()\n\n const typeDisplay = R.path([type, 'display'])(types) ?? null\n const icon = R.path([type, 'icon'])(types) ?? (\n \n )\n const age = prettyMs(new Date().getTime() - new Date(created).getTime(), {\n compact: true,\n verbose: true\n })\n const notificationTitle =\n typeDisplay && deviceName\n ? `${typeDisplay} - ${deviceName}`\n : !typeDisplay && deviceName\n ? `${deviceName}`\n : `${typeDisplay}`\n\n const iconClass = {\n [classes.readIcon]: read,\n [classes.unreadIcon]: !read\n }\n return (\n \n
\n
\n \n {notificationTitle}\n \n {message} \n {age} \n
\n
\n
toggleClear(id)}\n className={classnames(iconClass)}\n />\n
\n
\n )\n}\n\nexport default NotificationRow\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState, useEffect } from 'react'\n\nimport ActionButton from 'src/components/buttons/ActionButton'\nimport { H5 } from 'src/components/typography'\nimport { ReactComponent as NotificationIconZodiac } from 'src/styling/icons/menu/notification-zodiac.svg'\nimport { ReactComponent as ClearAllIconInverse } from 'src/styling/icons/stage/spring/empty.svg'\nimport { ReactComponent as ClearAllIcon } from 'src/styling/icons/stage/zodiac/empty.svg'\nimport { ReactComponent as ShowUnreadIcon } from 'src/styling/icons/stage/zodiac/full.svg'\n\nimport styles from './NotificationCenter.styles'\nimport NotificationRow from './NotificationRow'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_NOTIFICATIONS = gql`\n query getNotifications {\n notifications {\n id\n type\n detail\n message\n created\n read\n valid\n }\n hasUnreadNotifications\n machines {\n deviceId\n name\n }\n }\n`\n\nconst TOGGLE_CLEAR_NOTIFICATION = gql`\n mutation toggleClearNotification($id: ID!, $read: Boolean!) {\n toggleClearNotification(id: $id, read: $read) {\n id\n read\n }\n }\n`\n\nconst CLEAR_ALL_NOTIFICATIONS = gql`\n mutation clearAllNotifications {\n clearAllNotifications {\n id\n }\n }\n`\n\nconst NotificationCenter = ({\n close,\n hasUnreadProp,\n buttonCoords,\n popperRef,\n refetchHasUnreadHeader\n}) => {\n const { data, loading } = useQuery(GET_NOTIFICATIONS, {\n pollInterval: 60000\n })\n const [xOffset, setXoffset] = useState(300)\n\n const [showingUnread, setShowingUnread] = useState(false)\n const classes = useStyles({ buttonCoords, xOffset })\n const machines = R.compose(\n R.map(R.prop('name')),\n R.indexBy(R.prop('deviceId'))\n )(R.path(['machines'])(data) ?? [])\n const notifications = R.path(['notifications'])(data) ?? []\n const [hasUnread, setHasUnread] = useState(hasUnreadProp)\n\n const [toggleClearNotification] = useMutation(TOGGLE_CLEAR_NOTIFICATION, {\n onError: () => console.error('Error while clearing notification'),\n refetchQueries: () => ['getNotifications']\n })\n const [clearAllNotifications] = useMutation(CLEAR_ALL_NOTIFICATIONS, {\n onError: () => console.error('Error while clearing all notifications'),\n refetchQueries: () => ['getNotifications']\n })\n\n useEffect(() => {\n setXoffset(popperRef.current.getBoundingClientRect().x)\n if (data && data.hasUnreadNotifications !== hasUnread) {\n refetchHasUnreadHeader()\n setHasUnread(!hasUnread)\n }\n }, [popperRef, data, hasUnread, refetchHasUnreadHeader])\n\n const buildNotifications = () => {\n const notificationsToShow =\n !showingUnread || !hasUnread\n ? notifications\n : R.filter(R.propEq('read', false))(notifications)\n return notificationsToShow.map(n => {\n return (\n
\n toggleClearNotification({\n variables: { id: n.id, read: !n.read }\n })\n }\n />\n )\n })\n }\n\n return (\n <>\n \n
\n
Notifications \n
\n \n {hasUnread &&
}\n \n
\n
\n {hasUnread && (\n
setShowingUnread(!showingUnread)}>\n {showingUnread ? 'Show all' : 'Show unread'}\n \n )}\n {hasUnread && (\n
\n Mark all as read\n \n )}\n
\n
\n {!loading && buildNotifications()}\n
\n
\n >\n )\n}\n\nexport default NotificationCenter\n","import NotificationCenter from './NotificationCenter'\nexport default NotificationCenter\n","import { makeStyles } from '@material-ui/core/styles'\nimport React, { memo } from 'react'\n\nimport { spacer } from 'src/styling/variables'\n\nimport { H1 } from './typography'\n\nconst useStyles = makeStyles({\n title: {\n marginTop: spacer * 3,\n marginBottom: spacer * 3\n }\n})\n\nconst Title = memo(({ children }) => {\n const classes = useStyles()\n return {children} \n})\n\nexport default Title\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/add/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.5384615,6 C11.5384615,9.05815385 9.05815385,11.5384615 6,11.5384615 C2.94184615,11.5384615 0.461538462,9.05815385 0.461538462,6 C0.461538462,2.94184615 2.94184615,0.461538462 6,0.461538462 C9.05815385,0.461538462 11.5384615,2.94184615 11.5384615,6 Z\",\n id: \"Stroke-1\",\n stroke: \"#1B2559\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 6,\n y1: 3.69230769,\n x2: 6,\n y2: 8.30769231,\n id: \"Stroke-3\",\n stroke: \"#1B2559\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 3.69230769,\n y1: 6,\n x2: 8.30769231,\n y2: 6,\n id: \"Stroke-5\",\n stroke: \"#1B2559\"\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.a976fef2.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport typographyStyles from 'src/components/typography/styles'\nimport { ReactComponent as AddIcon } from 'src/styling/icons/button/add/zodiac.svg'\nimport { zircon, zircon2, comet, fontColor, white } from 'src/styling/variables'\n\nconst { p } = typographyStyles\n\nconst styles = {\n button: {\n extend: p,\n border: 'none',\n backgroundColor: zircon,\n cursor: 'pointer',\n outline: 0,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n width: 167,\n height: 48,\n color: fontColor,\n '&:hover': {\n backgroundColor: zircon2\n },\n '&:active': {\n backgroundColor: comet,\n color: white,\n '& svg g *': {\n stroke: white\n }\n },\n '& svg': {\n marginRight: 8\n }\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst SimpleButton = memo(({ className, children, ...props }) => {\n const classes = useStyles()\n\n return (\n \n \n {children}\n \n )\n})\n\nexport default SimpleButton\n","import typographyStyles from 'src/components/typography/styles'\nimport {\n white,\n disabledColor,\n secondaryColor,\n secondaryColorDark,\n secondaryColorDarker,\n offColor,\n offDarkColor,\n offDarkerColor,\n spacer\n} from 'src/styling/variables'\n\nconst { h1, h3 } = typographyStyles\n\nconst pickSize = size => {\n switch (size) {\n case 'xl':\n return spacer * 7.625\n case 'sm':\n return spacer * 4\n case 'lg':\n default:\n return spacer * 5\n }\n}\n\nexport default {\n wrapper: ({ size }) => {\n const height = pickSize(size)\n const shadowSize = height / 12\n return { height: height + shadowSize / 2 }\n },\n button: ({ size, backgroundColor }) => {\n const height = pickSize(size)\n const shadowSize = size === 'xl' ? 3 : height / 12\n const padding = size === 'xl' ? 20 : height / 2\n const isGrey = backgroundColor === 'grey'\n\n return {\n extend: size === 'xl' ? h1 : h3,\n border: 'none',\n color: white,\n cursor: 'pointer',\n fontWeight: 900,\n outline: 0,\n backgroundColor: isGrey ? offDarkColor : secondaryColor,\n '&:disabled': {\n backgroundColor: disabledColor,\n boxShadow: 'none',\n '&:hover': {\n backgroundColor: disabledColor,\n boxShadow: 'none'\n },\n '&:active': {\n marginTop: 0\n }\n },\n shadowSize,\n height,\n padding: `0 ${padding}px`,\n borderRadius: height / 4,\n boxShadow: `0 ${shadowSize}px ${isGrey ? offColor : secondaryColorDark}`,\n '&:hover': {\n backgroundColor: isGrey ? offColor : secondaryColorDark,\n boxShadow: `0 ${shadowSize}px ${\n isGrey ? offDarkerColor : secondaryColorDarker\n }`\n },\n '&:active': {\n marginTop: shadowSize / 2,\n backgroundColor: isGrey ? offDarkColor : secondaryColorDark,\n boxShadow: `0 ${shadowSize / 2}px ${\n isGrey ? offDarkerColor : secondaryColorDarker\n }`\n }\n }\n }\n}\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport styles from './Button.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst ActionButton = memo(\n ({\n size = 'lg',\n children,\n className,\n buttonClassName,\n backgroundColor,\n ...props\n }) => {\n const classes = useStyles({ size, backgroundColor })\n return (\n \n \n {children}\n \n
\n )\n }\n)\n\nexport default ActionButton\n","import {\n white,\n fontColor,\n subheaderColor,\n subheaderDarkColor,\n offColor,\n offDarkColor\n} from 'src/styling/variables'\n\nconst colors = (color1, color2, color3) => {\n return {\n backgroundColor: color1,\n '&:hover': {\n backgroundColor: color2\n },\n '&:active': {\n backgroundColor: color3\n }\n }\n}\n\nconst buttonHeight = 32\n\nexport default {\n baseButton: {\n extend: colors(subheaderColor, subheaderDarkColor, offColor),\n cursor: 'pointer',\n border: 'none',\n outline: 0,\n height: buttonHeight,\n color: fontColor,\n '&:active': {\n color: white\n }\n },\n primary: {\n extend: colors(subheaderColor, subheaderDarkColor, offColor),\n '&:active': {\n color: white,\n '& $buttonIcon': {\n display: 'none'\n },\n '& $buttonIconActive': {\n display: 'block'\n }\n },\n '& $buttonIconActive': {\n display: 'none'\n }\n },\n secondary: {\n extend: colors(offColor, offDarkColor, white),\n color: white,\n '&:active': {\n color: fontColor,\n '& $buttonIcon': {\n display: 'flex'\n },\n '& $buttonIconActive': {\n display: 'none'\n }\n },\n '& $buttonIcon': {\n display: 'none'\n },\n '& $buttonIconActive': {\n display: 'flex'\n }\n }\n}\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport baseButtonStyles from './BaseButton.styles'\n\nconst { baseButton, primary } = baseButtonStyles\n\nconst styles = {\n featureButton: {\n extend: baseButton,\n width: baseButton.height,\n borderRadius: baseButton.height / 2,\n display: 'flex',\n padding: 0\n },\n primary,\n buttonIcon: {\n margin: 'auto',\n '& svg': {\n width: 16,\n height: 16,\n overflow: 'visible',\n '& g': {\n strokeWidth: 1.8\n }\n }\n },\n buttonIconActive: {} // required to extend primary\n}\n\nconst useStyles = makeStyles(styles)\n\nconst FeatureButton = memo(\n ({ className, Icon, InverseIcon, children, ...props }) => {\n const classes = useStyles()\n\n const classNames = {\n [classes.featureButton]: true,\n [classes.primary]: true\n }\n\n return (\n \n {Icon && (\n \n \n
\n )}\n {InverseIcon && (\n \n \n
\n )}\n {children}\n \n )\n }\n)\n\nexport default FeatureButton\n","import { makeStyles, Popper as MaterialPopper, Paper } from '@material-ui/core'\nimport classnames from 'classnames'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { white } from 'src/styling/variables'\n\nconst Popover = ({\n children,\n bgColor = white,\n arrowSize = 6,\n className,\n ...props\n}) => {\n const [arrowRef, setArrowRef] = useState(null)\n\n const styles = {\n popover: {\n zIndex: 3000,\n backgroundColor: bgColor,\n borderRadius: 4\n },\n arrow: {\n position: 'absolute',\n fontSize: arrowSize,\n width: '3em',\n height: '3em'\n },\n arrowBottom: {\n top: 0,\n width: 0,\n height: 0,\n borderLeft: [['2em', 'solid', 'transparent']],\n borderRight: [['2em', 'solid', 'transparent']],\n borderBottom: [['2em', 'solid', bgColor]],\n marginTop: '-1.9em',\n '&:after': {\n zIndex: -10,\n content: '\"\"',\n position: 'absolute',\n width: arrowSize * 3,\n height: arrowSize * 3,\n marginLeft: 0,\n bottom: 0,\n top: 'calc(50% - 0px)',\n left: 0,\n border: '5px solid #fff',\n borderColor: 'transparent transparent #fff #fff',\n transformOrigin: '0 0',\n transform: 'rotate(45deg)',\n boxShadow:\n '0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12)'\n }\n },\n arrowTop: {\n bottom: 0,\n width: 0,\n height: 0,\n borderLeft: [['2em', 'solid', 'transparent']],\n borderRight: [['2em', 'solid', 'transparent']],\n borderTop: [['2em', 'solid', bgColor]],\n marginBottom: '-1.9em',\n '&:after': {\n zIndex: -10,\n content: '\"\"',\n position: 'absolute',\n width: arrowSize * 3,\n height: arrowSize * 3,\n marginLeft: 0,\n bottom: 0,\n top: -(arrowSize * 4 + 2),\n left: 0,\n border: '5px solid #fff',\n borderColor: 'transparent transparent #fff #fff',\n transformOrigin: '0 0',\n transform: 'rotate(45deg)',\n boxShadow:\n '0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12)'\n }\n },\n arrowRight: {\n left: 0,\n width: 0,\n height: 0,\n borderTop: [['2em', 'solid', 'transparent']],\n borderBottom: [['2em', 'solid', 'transparent']],\n borderRight: [['2em', 'solid', bgColor]],\n marginLeft: '-1.9em'\n },\n arrowLeft: {\n right: 0,\n width: 0,\n height: 0,\n borderTop: [['2em', 'solid', 'transparent']],\n borderBottom: [['2em', 'solid', 'transparent']],\n borderLeft: [['2em', 'solid', bgColor]],\n marginRight: '-1.9em'\n },\n root: {\n backgroundColor: bgColor\n }\n }\n\n const useStyles = makeStyles(styles)\n\n const classes = useStyles()\n\n const arrowClasses = {\n [classes.arrow]: true,\n [classes.arrowBottom]: props.placement === 'bottom',\n [classes.arrowTop]: props.placement === 'top',\n [classes.arrowRight]: props.placement === 'right',\n [classes.arrowLeft]: props.placement === 'left'\n }\n\n const modifiers = R.merge(props.modifiers, {\n flip: {\n enabled: false\n },\n preventOverflow: {\n enabled: true,\n boundariesElement: 'scrollParent'\n },\n offset: {\n enabled: true,\n offset: '0, 10'\n },\n arrow: {\n enabled: true,\n element: arrowRef\n },\n computeStyle: {\n gpuAcceleration: false\n }\n })\n\n return (\n <>\n \n \n \n {children}\n \n \n >\n )\n}\n\nexport default Popover\n","import { ClickAwayListener } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { useState, memo } from 'react'\n\nimport Popover from 'src/components/Popper'\nimport typographyStyles from 'src/components/typography/styles'\nimport {\n subheaderColor,\n subheaderDarkColor,\n offColor\n} from 'src/styling/variables'\n\nconst { info2 } = typographyStyles\n\nconst colors = (color1, color2, color3) => {\n return {\n backgroundColor: color1,\n '&:hover': {\n backgroundColor: color2\n },\n '&:active': {\n backgroundColor: color3\n }\n }\n}\n\nconst styles = {\n idButton: {\n width: 34,\n height: 28,\n display: 'flex',\n borderRadius: 4,\n padding: 0,\n border: 'none',\n cursor: 'pointer'\n },\n buttonIcon: {\n margin: 'auto',\n lineHeight: 1,\n '& svg': {\n overflow: 'visible'\n }\n },\n closed: {\n extend: colors(subheaderColor, subheaderDarkColor, offColor)\n },\n open: {\n extend: colors(offColor, offColor, offColor)\n },\n popoverContent: {\n extend: info2,\n padding: 8,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: 4,\n '& img': {\n maxHeight: 145\n }\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst IDButton = memo(\n ({\n name,\n className,\n Icon,\n InverseIcon,\n popoverWidth = 152,\n children,\n popoverClassname,\n ...props\n }) => {\n const [anchorEl, setAnchorEl] = useState(null)\n\n const classes = useStyles()\n\n const open = Boolean(anchorEl)\n const id = open ? `simple-popper-${name}` : undefined\n\n const classNames = {\n [classes.idButton]: true,\n [classes.primary]: true,\n [classes.open]: open,\n [classes.closed]: !open\n }\n\n const iconClassNames = {\n [classes.buttonIcon]: true\n }\n\n const handleClick = event => {\n setAnchorEl(anchorEl ? null : event.currentTarget)\n }\n\n const handleClose = () => {\n setAnchorEl(null)\n }\n\n return (\n <>\n \n \n {Icon && !open && (\n \n \n
\n )}\n {InverseIcon && open && (\n \n \n
\n )}\n \n \n \n \n \n >\n )\n }\n)\n\nexport default IDButton\n","import { makeStyles, IconButton as IconB } from '@material-ui/core'\nimport React from 'react'\n\nimport { comet } from 'src/styling/variables'\n\nconst styles = {\n label: ({ size }) => ({\n width: size,\n height: size\n }),\n root: {\n '& svg': {\n flex: 1\n },\n '&:hover': {\n backgroundColor: 'inherit'\n },\n '&:hover rect': {\n stroke: comet\n },\n '&:hover polygon': {\n stroke: comet\n },\n '&:hover path': {\n stroke: comet\n }\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst IconButton = ({ size, children, onClick, ...props }) => {\n const classes = useStyles({ size })\n return (\n \n {children}\n \n )\n}\n\nexport default IconButton\n","import { fade } from '@material-ui/core/styles/colorManipulator'\n\nimport typographyStyles from 'src/components/typography/styles'\nimport {\n white,\n linkPrimaryColor,\n linkSecondaryColor,\n zircon\n} from 'src/styling/variables'\n\nconst { h4 } = typographyStyles\n\nconst color = color => ({\n boxShadow: `inset 0 -4px 0 0 ${fade(color, 0.8)}`,\n '&:hover': {\n boxShadow: 'none',\n backgroundColor: fade(color, 0.8)\n }\n})\n\nexport default {\n link: {\n extend: h4,\n textDecoration: 'none',\n border: 'none',\n backgroundColor: 'transparent',\n cursor: 'pointer',\n padding: '0',\n height: '100%'\n },\n primary: {\n extend: color(linkPrimaryColor)\n },\n secondary: {\n extend: color(linkSecondaryColor),\n '&:hover': {\n color: white\n }\n },\n noColor: {\n extend: color(white)\n },\n action: {\n extend: color(linkPrimaryColor),\n color: zircon\n }\n}\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport styles from './Link.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst Link = memo(\n ({ submit, className, children, color = 'primary', ...props }) => {\n const classes = useStyles()\n const classNames = {\n [classes.link]: true,\n [classes.primary]: color === 'primary',\n [classes.secondary]: color === 'secondary',\n [classes.noColor]: color === 'noColor',\n [classes.action]: color === 'action'\n }\n\n return (\n \n {children}\n \n )\n }\n)\n\nexport default Link\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport baseButtonStyles from './BaseButton.styles'\n\nconst { baseButton, primary } = baseButtonStyles\n\nconst styles = {\n button: {\n extend: baseButton,\n borderRadius: baseButton.height / 2,\n outline: 0,\n padding: '0 20px'\n },\n primary,\n buttonIcon: {\n marginTop: 4,\n marginRight: 4,\n '& svg': {\n width: 20,\n height: 20,\n overflow: 'visible'\n }\n },\n buttonIconActive: {} // required to extend primary\n}\n\nconst useStyles = makeStyles(styles)\n\nconst SimpleButton = memo(\n ({ className, Icon, InverseIcon, children, color, size, ...props }) => {\n const classes = useStyles()\n\n return (\n \n {Icon && (\n \n \n
\n )}\n {InverseIcon && (\n \n \n
\n )}\n {children}\n \n )\n }\n)\n\nexport default SimpleButton\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/cancel/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\",\n transform: \"translate(1.000000, 1.000000)\",\n stroke: \"#FFFFFF\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 10,\n y1: 0,\n x2: 0,\n y2: 10,\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 0,\n x2: 10,\n y2: 10,\n id: \"Stroke-3\"\n})));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.41439910.svg\";\nexport { ForwardRef as ReactComponent };","import baseButtonStyles from 'src/components/buttons/BaseButton.styles'\nimport { offColor, white } from 'src/styling/variables'\n\nconst { baseButton } = baseButtonStyles\n\nexport default {\n button: {\n extend: baseButton,\n padding: 0,\n color: white,\n borderRadius: baseButton.height / 2\n },\n normalButton: {\n width: baseButton.height\n },\n activeButton: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n backgroundColor: offColor,\n fontWeight: 'bold',\n padding: '0 5px',\n '&:hover': {\n backgroundColor: offColor\n }\n },\n buttonIcon: {\n width: 16,\n height: 16,\n overflow: 'visible',\n '& g': {\n strokeWidth: 1.8\n }\n },\n buttonIconActiveLeft: {\n marginRight: 12,\n marginLeft: 4\n },\n buttonIconActiveRight: {\n marginRight: 5,\n marginLeft: 20\n },\n white: {\n color: white\n }\n}\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo, useState } from 'react'\n\nimport { H4 } from 'src/components/typography'\nimport { ReactComponent as CancelIconInverse } from 'src/styling/icons/button/cancel/white.svg'\n\nimport subpageButtonStyles from './SubpageButton.styles'\n\nconst useStyles = makeStyles(subpageButtonStyles)\n\nconst SubpageButton = memo(\n ({\n className,\n Icon,\n InverseIcon,\n toggle,\n forceDisable = false,\n children\n }) => {\n const [active, setActive] = useState(false)\n const isActive = forceDisable ? false : active\n const classes = useStyles()\n const classNames = {\n [classes.button]: true,\n [classes.normalButton]: !isActive,\n [classes.activeButton]: isActive\n }\n\n const normalButton = \n\n const activeButton = (\n <>\n \n {children} \n \n >\n )\n\n const innerToggle = () => {\n forceDisable = false\n const newActiveState = !isActive\n toggle(newActiveState)\n setActive(newActiveState)\n }\n\n return (\n \n {isActive ? activeButton : normalButton}\n \n )\n }\n)\n\nexport default SubpageButton\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/external-link/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-1\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n points: \"20 12.1113 20 21.0003 0 21.0003 0 1.0003 8.889 1.0003\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n points: \"14.4443 1 20.0003 1 20.0003 6.556\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 10,\n y1: 11,\n x2: 20,\n y2: 1,\n id: \"Stroke-5\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.9814829c.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/external-link/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-7\",\n transform: \"translate(0.000000, 1.000000)\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-1\",\n points: \"20 11.1113 20 20.0003 0 20.0003 0 0.0003 8.889 0.0003\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"14.4443 0 20.0003 0 20.0003 5.556\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 10,\n y1: 10,\n x2: 20,\n y2: 0,\n id: \"Stroke-5\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.6cff3051.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core'\nimport React from 'react'\n\nimport { ActionButton } from 'src/components/buttons'\nimport { ReactComponent as InverseLinkIcon } from 'src/styling/icons/action/external link/white.svg'\nimport { ReactComponent as LinkIcon } from 'src/styling/icons/action/external link/zodiac.svg'\nimport { spacer, primaryColor } from 'src/styling/variables'\n\nconst useStyles = makeStyles({\n actionButton: {\n marginBottom: spacer * 4\n },\n actionButtonLink: {\n textDecoration: 'none',\n color: primaryColor\n }\n})\n\nconst SupportLinkButton = ({ link, label }) => {\n const classes = useStyles()\n return (\n \n \n {label}\n \n \n )\n}\n\nexport default SupportLinkButton\n","import {\n inputFontSize,\n inputFontSizeLg,\n inputFontSizeSm,\n inputFontWeightBold\n} from './variables'\n\nconst respondTo = breakpoint =>\n `@media only screen and (max-width: ${breakpoint})`\n\nconst bySize = size => {\n switch (size) {\n case 'sm':\n return { fontSize: inputFontSizeSm }\n case 'lg':\n return { fontSize: inputFontSizeLg, fontWeight: inputFontWeightBold }\n default:\n return { fontSize: inputFontSize }\n }\n}\n\nconst bold = {\n fontWeight: inputFontWeightBold\n}\n\nexport { respondTo, bySize, bold }\n","import { bySize, bold } from 'src/styling/helpers'\nimport { secondaryColor } from 'src/styling/variables'\n\nexport default {\n size: ({ size }) => ({\n marginTop: size === 'lg' ? 0 : 2,\n ...bySize(size)\n }),\n bold,\n root: ({ width, textAlign }) => ({\n width,\n '& input': {\n textAlign\n }\n }),\n underline: {\n '&:before': {\n borderBottomColor: secondaryColor\n },\n '&:hover:not(.Mui-disabled)::before': {\n borderBottomColor: secondaryColor\n }\n }\n}\n","import { makeStyles } from '@material-ui/core'\nimport TextField from '@material-ui/core/TextField'\nimport classnames from 'classnames'\nimport * as R from 'ramda'\nimport React, { memo } from 'react'\n\nimport styles from './TextInput.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst TextInput = memo(\n ({\n name,\n isPasswordFilled,\n onChange,\n onBlur,\n value,\n error,\n suffix,\n textAlign,\n width,\n // lg or sm\n size,\n bold,\n className,\n InputProps,\n ...props\n }) => {\n const classes = useStyles({ textAlign, width, size })\n const isTextFilled = !error && !R.isNil(value) && !R.isEmpty(value)\n const filled = isPasswordFilled || isTextFilled\n const inputClasses = {\n [classes.bold]: bold\n }\n\n return (\n \n )\n }\n)\n\nexport default TextInput\n","import MAutocomplete from '@material-ui/lab/Autocomplete'\nimport sort from 'match-sorter'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport TextInput from './TextInput'\n\nconst Autocomplete = ({\n optionsLimit = 5, // set limit = null for no limit\n limit,\n options,\n label,\n valueProp,\n multiple,\n onChange,\n labelProp,\n shouldStayOpen,\n value: outsideValue,\n error,\n fullWidth,\n textAlign,\n size,\n autoFocus,\n ...props\n}) => {\n const mapFromValue = options => it => R.find(R.propEq(valueProp, it))(options)\n const mapToValue = R.prop(valueProp)\n\n const getValue = () => {\n if (!valueProp) return outsideValue\n\n const transform = multiple\n ? R.map(mapFromValue(options))\n : mapFromValue(options)\n\n return transform(outsideValue)\n }\n\n const value = getValue()\n\n const innerOnChange = (evt, value) => {\n if (!valueProp) return onChange(evt, value)\n\n const rValue = multiple ? R.map(mapToValue)(value) : mapToValue(value)\n onChange(evt, rValue)\n }\n\n const valueArray = () => {\n if (R.isNil(value)) return []\n return multiple ? value : [value]\n }\n\n const filter = (array, input) => {\n if (!input) return array\n return sort(array, input, { keys: [valueProp, labelProp] })\n }\n\n const filterOptions = (array, { inputValue }) =>\n R.union(\n R.isEmpty(inputValue) ? valueArray() : [],\n filter(array, inputValue)\n ).slice(\n 0,\n R.defaultTo(undefined)(limit) &&\n Math.max(limit, R.isEmpty(inputValue) ? valueArray().length : 0)\n )\n\n return (\n {\n return (\n \n )\n }}\n />\n )\n}\n\nexport default Autocomplete\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/warning-icon/comet\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle\",\n stroke: \"#5F668A\",\n strokeWidth: 2,\n x: 1,\n y: 1,\n width: 22,\n height: 22,\n rx: 11\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.2971429,14.4857143 L11.1085714,5.82857143 L13.3714286,5.82857143 L13.2,14.4857143 L11.2971429,14.4857143 Z M11.1942857,18 L11.1942857,15.9771429 L13.3028571,15.9771429 L13.3028571,18 L11.1942857,18 Z\",\n id: \"!\",\n fill: \"#5F668A\",\n fillRule: \"nonzero\"\n})));\n\nfunction SvgComet(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"24px\",\n height: \"24px\",\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgComet);\nexport default __webpack_public_path__ + \"static/media/comet.9dc291f2.svg\";\nexport { ForwardRef as ReactComponent };","import Checkbox from '@material-ui/core/Checkbox'\nimport { makeStyles } from '@material-ui/core/styles'\nimport CheckBoxIcon from '@material-ui/icons/CheckBox'\nimport CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank'\nimport React from 'react'\n\nimport { Label2, Info3 } from 'src/components/typography'\nimport { ReactComponent as WarningIcon } from 'src/styling/icons/warning-icon/comet.svg'\nimport {\n fontSize2,\n fontSize3,\n secondaryColor,\n offColor\n} from 'src/styling/variables'\n\nconst useStyles = makeStyles({\n root: {\n color: secondaryColor,\n '&$checked': {\n color: secondaryColor\n }\n },\n checked: {},\n checkBoxLabel: {\n display: 'flex'\n },\n wrapper: {\n display: 'flex',\n alignItems: 'center',\n '& > svg': {\n marginRight: 10\n }\n },\n message: {\n display: 'flex',\n alignItems: 'center',\n color: offColor,\n margin: 0,\n whiteSpace: 'break-spaces'\n }\n})\n\nconst CheckboxInput = ({ name, onChange, value, settings, ...props }) => {\n const { enabled, label, disabledMessage, rightSideLabel } = settings\n const classes = useStyles()\n\n return (\n <>\n {enabled ? (\n \n {!rightSideLabel && {label} }\n \n }\n checkedIcon={ }\n disableRipple\n {...props}\n />\n {rightSideLabel && {label} }\n
\n ) : (\n \n \n {disabledMessage} \n
\n )}\n >\n )\n}\n\nexport default CheckboxInput\n","import { primaryColor, zircon, errorColor } from 'src/styling/variables'\n\nconst styles = {\n input: {\n width: '3.5rem !important',\n height: '5rem',\n border: '2px solid',\n borderColor: zircon,\n borderRadius: '4px'\n },\n focus: {\n border: '2px solid',\n borderColor: primaryColor,\n borderRadius: '4px',\n '&:focus': {\n outline: 'none'\n }\n },\n error: {\n borderColor: errorColor\n },\n container: {\n justifyContent: 'space-evenly'\n }\n}\n\nexport default styles\n","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport React from 'react'\nimport OtpInput from 'react-otp-input'\n\nimport typographyStyles from 'src/components/typography/styles'\n\nimport styles from './CodeInput.styles'\n\nconst useStyles = makeStyles(styles)\nconst useTypographyStyles = makeStyles(typographyStyles)\n\nconst CodeInput = ({\n name,\n value,\n onChange,\n numInputs,\n error,\n inputStyle,\n containerStyle,\n ...props\n}) => {\n const classes = useStyles()\n const typographyClasses = useTypographyStyles()\n\n return (\n }\n containerStyle={classnames(containerStyle, classes.container)}\n inputStyle={classnames(\n inputStyle,\n classes.input,\n typographyClasses.confirmationCode\n )}\n focusStyle={classes.focus}\n errorStyle={classes.error}\n hasErrored={error}\n isInputNum={true}\n {...props}\n />\n )\n}\n\nexport default CodeInput\n","import FormControl from '@material-ui/core/FormControl'\nimport InputLabel from '@material-ui/core/InputLabel'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport Select from '@material-ui/core/Select'\nimport classnames from 'classnames'\nimport React from 'react'\n\nconst Dropdown = ({ label, name, options, onChange, value, className }) => {\n return (\n \n {label} \n \n {options.map((option, index) => (\n \n {option.display}\n \n ))}\n \n \n )\n}\n\nexport default Dropdown\n","import React, { memo } from 'react'\nimport NumberFormat from 'react-number-format'\n\nimport TextInput from './TextInput'\n\nconst NumberInput = memo(\n ({\n name,\n onChange,\n onBlur,\n value,\n error,\n suffix,\n textAlign,\n width,\n // lg or sm\n size,\n bold,\n className,\n decimalPlaces,\n InputProps,\n ...props\n }) => {\n return (\n {\n onChange({\n target: {\n id: name,\n value: values.floatValue\n }\n })\n }}\n {...props}\n />\n )\n }\n)\n\nexport default NumberInput\n","import {\n Radio,\n RadioGroup as MRadioGroup,\n FormControlLabel,\n makeStyles\n} from '@material-ui/core'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport { Label1 } from 'src/components/typography'\nimport { offColor } from 'src/styling/variables'\nconst styles = {\n label: {\n height: 16,\n lineHeight: '16px',\n margin: [[0, 0, 4, 0]],\n paddingLeft: 3\n },\n subtitle: {\n marginTop: -8,\n marginLeft: 32,\n color: offColor\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst RadioGroup = ({\n name,\n label,\n value,\n options,\n onChange,\n className,\n labelClassName,\n radioClassName\n}) => {\n const classes = useStyles()\n return (\n <>\n {label && {label} }\n \n {options.map((option, idx) => (\n \n \n }\n label={option.display}\n className={classnames(labelClassName)}\n />\n {option.subtitle && (\n {option.subtitle} \n )}\n
\n \n ))}\n \n >\n )\n}\n\nexport default RadioGroup\n","import React, { memo, useState } from 'react'\n\nimport { TextInput } from '../base'\n\nconst SecretInput = memo(\n ({ value, onFocus, isPasswordFilled, onBlur, ...props }) => {\n const [focused, setFocused] = useState(false)\n const placeholder = '⚬ ⚬ ⚬ This field is set ⚬ ⚬ ⚬'\n const innerOnFocus = event => {\n setFocused(true)\n onFocus && onFocus(event)\n }\n\n const innerOnBlur = event => {\n setFocused(false)\n onBlur && onBlur(event)\n }\n\n return (\n \n )\n }\n)\n\nexport default SecretInput\n","import Switch from '@material-ui/core/Switch'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React, { memo } from 'react'\n\nimport {\n secondaryColor,\n offColor,\n disabledColor,\n disabledColor2\n} from '../../../styling/variables'\n\nconst useStyles = makeStyles(theme => ({\n root: {\n width: 32,\n height: 20,\n padding: 0,\n margin: theme.spacing(1)\n },\n switchBase: {\n padding: 2,\n '&$disabled': {\n color: disabledColor2,\n '& + $track': {\n backgroundColor: disabledColor,\n opacity: 1\n }\n },\n '&$checked': {\n transform: 'translateX(58%)',\n color: theme.palette.common.white,\n '&$disabled': {\n color: disabledColor2\n },\n '& + $track': {\n backgroundColor: secondaryColor,\n opacity: 1,\n border: 'none'\n }\n },\n '&$focusVisible $thumb': {\n border: '6px solid #fff',\n boxShadow: '0 0 4px 0 rgba(0,0,0,0.24)'\n }\n },\n thumb: {\n width: 16,\n height: 16\n },\n track: {\n borderRadius: 17,\n border: 'none',\n backgroundColor: offColor,\n opacity: 1,\n transition: theme.transitions.create(['background-color', 'border'])\n },\n disabled: {},\n checked: {},\n focusVisible: {}\n}))\n\nconst SwitchInput = memo(({ ...props }) => {\n const classes = useStyles()\n return (\n \n )\n})\n\nexport default SwitchInput\n","import { makeStyles } from '@material-ui/core'\nimport { ToggleButtonGroup as MUIToggleButtonGroup } from '@material-ui/lab'\nimport ToggleButton from '@material-ui/lab/ToggleButton'\nimport React from 'react'\n\nimport { H4, P } from 'src/components/typography'\nimport { backgroundColor, comet } from 'src/styling/variables'\nconst styles = {\n noTextTransform: {\n textTransform: 'none'\n },\n flex: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'start',\n width: '90%',\n overflow: 'hidden',\n maxHeight: 80\n },\n buttonTextContent: {\n marginLeft: 32,\n textTransform: 'none',\n textAlign: 'left'\n },\n button: {\n backgroundColor: backgroundColor,\n marginBottom: 16\n },\n paragraph: {\n color: comet,\n marginTop: -10\n }\n}\n\nconst useStyles = makeStyles(styles)\nconst ToggleButtonGroup = ({\n name,\n orientation = 'vertical',\n value,\n exclusive = true,\n onChange,\n size = 'small',\n ...props\n}) => {\n const classes = useStyles()\n return (\n \n {props.options.map(option => {\n return (\n \n \n
\n
\n
{option.title} \n
{option.description}
\n
\n
\n \n )\n })}\n \n )\n}\n\nexport default ToggleButtonGroup\n","import { useFormikContext } from 'formik'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { Autocomplete } from '../base'\n\nconst AutocompleteFormik = ({ options, onChange, ...props }) => {\n const [open, setOpen] = useState(false)\n\n const { name, onBlur, value } = props.field\n const { touched, errors, setFieldValue, setFieldTouched } = props.form\n const error = !!(touched[name] && errors[name])\n const { initialValues, values } = useFormikContext()\n\n const innerOptions =\n R.type(options) === 'Function' ? options(initialValues, values) : options\n\n const innerOnBlur = event => {\n name && setFieldTouched(name, true)\n onBlur && onBlur(event)\n }\n\n const onChangeHandler = value => setFieldValue(name, value)\n const shouldStayOpen = !!props.shouldStayOpen\n\n return (\n {\n if (onChange) return onChange(value, item, onChangeHandler)\n setFieldValue(name, item)\n }}\n onBlur={innerOnBlur}\n value={value}\n error={error}\n open={open}\n options={innerOptions}\n onOpen={() => {\n if (!props.multiple) return setOpen(true)\n setOpen(value?.length !== props.limit)\n }}\n onClose={(event, reason) => {\n if (shouldStayOpen && reason !== 'blur') setOpen(true)\n else setOpen(false)\n }}\n {...props}\n />\n )\n}\n\nexport default AutocompleteFormik\n","import Chip from '@material-ui/core/Chip'\nimport { withStyles } from '@material-ui/core/styles'\nimport React, { memo } from 'react'\n\nimport {\n fontColor,\n inputFontWeight,\n subheaderColor,\n smallestFontSize,\n inputFontFamily\n} from 'src/styling/variables'\n\nconst styles = theme => ({\n root: {\n backgroundColor: subheaderColor,\n borderRadius: 4,\n margin: theme.spacing(0.5, 0.25),\n height: 18\n },\n label: {\n fontSize: smallestFontSize,\n color: fontColor,\n fontWeight: inputFontWeight,\n fontFamily: inputFontFamily,\n paddingRight: 4,\n paddingLeft: 4\n }\n})\n\nconst LsChip = memo(({ classes, ...props }) => (\n \n))\n\nexport default withStyles(styles)(LsChip)\n","import * as R from 'ramda'\n\nconst isValidNumber = R.both(R.is(Number), R.complement(R.equals(NaN)))\n\nconst transformNumber = value => (isValidNumber(value) ? value : null)\n\nconst defaultToZero = value =>\n isValidNumber(parseInt(value)) ? parseInt(value) : 0\n\nconst numberToFiatAmount = value =>\n value.toLocaleString('en-US', { maximumFractionDigits: 2 })\n\nexport { defaultToZero, transformNumber, numberToFiatAmount }\n","import { spacer, tomato, primaryColor as zodiac } from 'src/styling/variables'\n\nconst colors = {\n cashOut: {\n empty: tomato,\n full: zodiac\n },\n cashIn: {\n empty: zodiac,\n full: tomato\n }\n}\n\nconst colorPicker = ({ cashOut, applyColorVariant, isLow }) => {\n return colors[cashOut ? 'cashOut' : 'cashIn'][\n applyColorVariant || !isLow ? 'full' : 'empty'\n ]\n}\n\nconst cashboxStyles = {\n cashbox: {\n borderColor: colorPicker,\n backgroundColor: colorPicker,\n height: 118,\n width: ({ width }) => width ?? 80,\n border: '2px solid',\n textAlign: 'end',\n display: 'inline-block'\n },\n fiatBalanceAlertCashbox: {\n borderColor: colorPicker,\n backgroundColor: colorPicker,\n height: 118,\n width: 80,\n border: '4px solid'\n },\n emptyPart: {\n backgroundColor: 'white',\n height: ({ percent }) => `${100 - percent}%`,\n position: 'relative',\n '& > p': {\n color: colorPicker,\n display: 'inline-block',\n position: 'absolute',\n margin: 0,\n bottom: 0,\n right: 0\n }\n },\n fullPart: {\n backgroundColor: colorPicker,\n '& > p': {\n color: 'white',\n display: 'inline'\n }\n }\n}\n\nconst gridStyles = {\n row: {\n display: 'flex'\n },\n innerRow: {\n display: 'flex',\n justifyContent: 'flex-start'\n },\n col2: {\n marginLeft: 14\n },\n noMarginText: {\n marginTop: 0,\n marginBottom: 0\n },\n link: {\n marginTop: spacer\n },\n chip: {\n margin: [[0, 0, 0, 7]]\n }\n}\n\nexport { cashboxStyles, gridStyles }\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport Chip from 'src/components/Chip'\nimport { Info2, Label1, Label2 } from 'src/components/typography'\nimport { numberToFiatAmount } from 'src/utils/number'\n\nimport { cashboxStyles, gridStyles } from './Cashbox.styles'\n\nconst cashboxClasses = makeStyles(cashboxStyles)\nconst gridClasses = makeStyles(gridStyles)\n\nconst Cashbox = ({\n percent = 0,\n cashOut = false,\n width,\n className,\n emptyPartClassName,\n labelClassName,\n applyColorVariant,\n applyFiatBalanceAlertsStyling,\n omitInnerPercentage,\n isLow\n}) => {\n const classes = cashboxClasses({\n percent,\n cashOut,\n width,\n applyColorVariant,\n isLow\n })\n const ltHalf = percent <= 51\n\n const showCashBox = {\n [classes.fiatBalanceAlertCashbox]: applyFiatBalanceAlertsStyling,\n [classes.cashbox]: !applyFiatBalanceAlertsStyling\n }\n\n return (\n \n
\n {!omitInnerPercentage && ltHalf && (\n {percent.toFixed(0)}% \n )}\n
\n
\n {!omitInnerPercentage && !ltHalf && (\n {percent.toFixed(0)}% \n )}\n
\n
\n )\n}\n\n// https://support.lamassu.is/hc/en-us/articles/360025595552-Installing-the-Sintra-Forte\n// Sintra and Sintra Forte can have up to 500 notes per cashOut box and up to 1000 per cashIn box\nconst CashIn = ({ currency, notes, total }) => {\n const classes = gridClasses()\n return (\n <>\n \n
\n
\n {notes} notes \n
\n
\n \n {total} {currency.code}\n \n
\n
\n
\n >\n )\n}\n\nconst CashOut = ({\n capacity = 500,\n denomination = 0,\n currency,\n notes,\n className,\n editingMode = false,\n threshold,\n width\n}) => {\n const percent = (100 * notes) / capacity\n const isLow = percent < threshold\n const classes = gridClasses()\n return (\n <>\n \n
\n \n
\n {!editingMode && (\n
\n
\n {notes} \n \n
\n
\n \n {numberToFiatAmount(notes * denomination)} {currency.code}\n \n
\n
\n )}\n
\n >\n )\n}\n\nexport { Cashbox, CashIn, CashOut }\n","import { makeStyles } from '@material-ui/core'\nimport classNames from 'classnames'\nimport React, { memo, useState } from 'react'\n\nimport { CashOut } from 'src/components/inputs/cashbox/Cashbox'\n\nimport { NumberInput } from '../base'\nconst useStyles = makeStyles({\n flex: {\n display: 'flex'\n },\n cashCassette: {\n height: 36,\n marginRight: 14\n }\n})\n\nconst CashCassetteInput = memo(\n ({ decimalPlaces, width, threshold, inputClassName, ...props }) => {\n const classes = useStyles()\n const { name, onChange, onBlur, value } = props.field\n const { touched, errors } = props.form\n const [notes, setNotes] = useState(value)\n const error = !!(touched[name] && errors[name])\n return (\n \n \n {\n setNotes(e.target.value)\n return onChange(e)\n }}\n onBlur={onBlur}\n value={value}\n error={error}\n decimalPlaces={decimalPlaces}\n {...props}\n />\n
\n )\n }\n)\n\nexport default CashCassetteInput\n","import React, { memo } from 'react'\n\nimport { Checkbox } from '../base'\n\nconst CheckboxInput = memo(\n ({\n label,\n textAlign,\n fullWidth,\n enabled = true,\n disabledMessage = '',\n ...props\n }) => {\n const { name, onChange, value = true } = props.field\n\n const settings = {\n enabled: enabled,\n label: label,\n disabledMessage: disabledMessage\n }\n\n return (\n \n )\n }\n)\n\nexport default CheckboxInput\n","import React, { memo } from 'react'\n\nimport { Dropdown } from '../base'\n\nconst RadioGroupFormik = memo(({ label, ...props }) => {\n const { name, value } = props.field\n const { setFieldValue } = props.form\n return (\n {\n setFieldValue(name, e.target.value)\n props.resetError && props.resetError()\n }}\n className={props.className}\n {...props}\n />\n )\n})\n\nexport default RadioGroupFormik\n","import React, { memo } from 'react'\n\nimport { NumberInput } from '../base'\n\nconst NumberInputFormik = memo(({ decimalPlaces, ...props }) => {\n const { name, onChange, onBlur, value } = props.field\n const { touched, errors } = props.form\n\n const error = !!(touched[name] && errors[name])\n\n return (\n \n )\n})\n\nexport default NumberInputFormik\n","import React, { memo } from 'react'\n\nimport { RadioGroup } from '../base'\n\nconst RadioGroupFormik = memo(({ label, ...props }) => {\n const { name, onChange, value } = props.field\n\n return (\n {\n onChange(e)\n props.resetError && props.resetError()\n }}\n className={props.className}\n {...props}\n />\n )\n})\n\nexport default RadioGroupFormik\n","import React, { memo } from 'react'\r\n\r\nimport { SecretInput } from '../base'\r\n\r\nconst SecretInputFormik = memo(({ isPasswordFilled, ...props }) => {\r\n const { name, onChange, onBlur, value } = props.field\r\n const { touched, errors } = props.form\r\n\r\n const error = !isPasswordFilled && !!(touched[name] && errors[name])\r\n\r\n return (\r\n \r\n )\r\n})\r\n\r\nexport default SecretInputFormik\r\n","import React, { memo } from 'react'\n\nimport { TextInput } from '../base'\n\nconst TextInputFormik = memo(({ ...props }) => {\n const { name, onChange, onBlur, value } = props.field\n const { touched, errors } = props.form\n\n const error = !!(touched[name] && errors[name])\n\n return (\n \n )\n})\n\nexport default TextInputFormik\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/stage/zodiac/complete\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n stroke: \"#1B2559\",\n transform: \"translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) \",\n cx: 9,\n cy: 9,\n r: 8\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.80983711,12 C7.54819546,12 7.28655382,11.9032616 7.08725647,11.710772 L5.29971255,9.98428824 C4.90009582,9.59832189 4.90009582,8.97445811 5.29971255,8.58849175 C5.69932929,8.2025254 6.34525711,8.2025254 6.74487384,8.58849175 L7.80983711,9.61707728 L11.2551262,6.28947477 C11.6547429,5.90350841 12.3016927,5.90350841 12.7002874,6.28947477 C13.0999042,6.674454 13.0999042,7.2993049 12.7002874,7.68527125 L8.53241776,11.710772 C8.33312041,11.9032616 8.07147876,12 7.80983711,12\",\n id: \"Path\",\n fill: \"#1B2559\"\n}));\n\nfunction SvgComplete(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"18px\",\n viewBox: \"0 0 18 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgComplete);\nexport default __webpack_public_path__ + \"static/media/complete.99ba27f3.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/stage/zodiac/current\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-2-Copy\",\n fill: \"#1B2559\",\n cx: 9,\n cy: 9,\n r: 4\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-Copy-5\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n transform: \"translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) \",\n cx: 9,\n cy: 9,\n r: 8\n}));\n\nfunction SvgCurrent(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"18px\",\n viewBox: \"0 0 18 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCurrent);\nexport default __webpack_public_path__ + \"static/media/current.68045777.svg\";\nexport { ForwardRef as ReactComponent };","import typographyStyles from 'src/components/typography/styles'\nimport { respondTo } from 'src/styling/helpers'\nimport {\n primaryColor,\n spacer,\n placeholderColor,\n zircon,\n xxl\n} from 'src/styling/variables'\n\nconst { tl2, p } = typographyStyles\n\nconst sidebarColor = zircon\n\nexport default {\n sidebar: {\n display: 'flex',\n backgroundColor: sidebarColor,\n width: 520,\n marginLeft: -300,\n boxShadow: `-500px 0px 0px 0px ${sidebarColor}`,\n borderRadius: '0 20px 0 0',\n alignItems: 'flex-end',\n padding: spacer * 3,\n flexDirection: 'column',\n [respondTo(xxl)]: {\n width: 'auto',\n marginLeft: 0,\n minWidth: 250,\n boxShadow: `-200px 0px 0px 0px ${sidebarColor}`\n }\n },\n linkWrapper: {\n cursor: 'pointer'\n },\n link: {\n extend: p,\n position: 'relative',\n color: placeholderColor,\n margin: '12px 24px 12px 0',\n cursor: 'pointer',\n '&:hover::after': {\n height: '140%'\n },\n '&:after': {\n content: '\"\"',\n display: 'block',\n background: primaryColor,\n width: 4,\n height: 0,\n left: '100%',\n marginLeft: 20,\n bottom: -2,\n position: 'absolute',\n borderRadius: 1000,\n transition: 'all 0.2s cubic-bezier(0.95, 0.1, 0.45, 0.94)'\n }\n },\n activeLink: {\n extend: tl2,\n color: primaryColor,\n '&::after': {\n height: '140%'\n }\n },\n customRenderLink: {\n '&:hover::after': {\n height: '100%'\n },\n '&:after': {\n bottom: 0\n }\n },\n customRenderActiveLink: {\n '&::after': {\n height: '100%'\n }\n },\n item: {\n position: 'relative',\n margin: '12px 0 12px 0',\n display: 'flex'\n },\n itemText: {\n extend: p,\n color: placeholderColor,\n marginRight: 24\n },\n itemTextActive: {\n extend: tl2,\n color: primaryColor\n },\n itemTextPast: {\n color: primaryColor\n },\n stepperPath: {\n position: 'absolute',\n height: 25,\n width: 1,\n border: [[1, 'solid', placeholderColor]],\n right: 8,\n top: 18\n },\n stepperPast: {\n border: [[1, 'solid', primaryColor]]\n }\n}\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport { P } from 'src/components/typography'\nimport { ReactComponent as CompleteStageIconZodiac } from 'src/styling/icons/stage/zodiac/complete.svg'\nimport { ReactComponent as CurrentStageIconZodiac } from 'src/styling/icons/stage/zodiac/current.svg'\nimport { ReactComponent as EmptyStageIconZodiac } from 'src/styling/icons/stage/zodiac/empty.svg'\n\nimport styles from './Sidebar.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst Sidebar = ({\n data,\n displayName,\n isSelected,\n onClick,\n children,\n itemRender,\n loading = false\n}) => {\n const classes = useStyles()\n\n return (\n \n {loading &&
Loading...
}\n {!loading &&\n data?.map((it, idx) => (\n
onClick(it)}>\n
\n {itemRender ? itemRender(it, isSelected(it)) : displayName(it)}\n
\n
\n ))}\n {!loading && children}\n
\n )\n}\n\nexport default Sidebar\n\nconst Stepper = ({ step, it, idx, steps }) => {\n const classes = useStyles()\n const active = step === idx\n const past = idx < step\n const future = idx > step\n\n return (\n \n
\n {it.label}\n \n {active &&
}\n {past &&
}\n {future &&
}\n {idx < steps.length - 1 && (\n
\n )}\n
\n )\n}\n\nexport { Stepper }\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/ID/photo/new/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12,14 C9.7912,14 8,12.2088 8,10 C8,7.7912 9.7912,6 12,6 C14.2088,6 16,7.7912 16,10 C16,12.2088 14.2088,14 12,14 Z M16.7142857,3.4 L14.3571429,1 L9.64285714,1 L7.28571429,3.4 L1,3.4 L1,17 L23,17 L23,3.4 L16.7142857,3.4 Z\",\n id: \"Stroke-1\",\n stroke: \"#1B2559\",\n strokeWidth: 1.6\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"24px\",\n height: \"18px\",\n viewBox: \"0 0 24 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/ID/photo/new/zodiac\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.088002a2.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n}, \"\\n\\t.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#1B2559;}\\n\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"color_x2F_primary_x2F_zodiac\",\n transform: \"translate(-0.000000, 0.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Mask\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"path-1_1_\",\n className: \"st0\",\n d: \"M11.1,9l6.5,6.5c0.6,0.6,0.6,1.5,0,2.1c-0.3,0.3-0.7,0.4-1.1,0.4c-0.4,0-0.8-0.2-1.1-0.4 L9,11.1l-6.5,6.5C2.3,17.8,1.9,18,1.5,18c-0.4,0-0.8-0.2-1.1-0.4c-0.6-0.6-0.6-1.5,0-2.1L6.9,9L0.4,2.5C-0.1,2-0.1,1,0.4,0.4 C1-0.1,2-0.1,2.5,0.4L9,6.9l6.5-6.5c0.6-0.6,1.5-0.6,2.1,0c0.6,0.6,0.6,1.5,0,2.1L11.1,9z\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 18 18\",\n style: {\n enableBackground: \"new 0 0 18 18\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.5547e32c.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/stage/spring/complete\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n stroke: \"#48F694\",\n strokeWidth: 2,\n transform: \"translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) \",\n cx: 9,\n cy: 9,\n r: 8\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.80983711,12 C7.54819546,12 7.28655382,11.9032616 7.08725647,11.710772 L5.29971255,9.98428824 C4.90009582,9.59832189 4.90009582,8.97445811 5.29971255,8.58849175 C5.69932929,8.2025254 6.34525711,8.2025254 6.74487384,8.58849175 L7.80983711,9.61707728 L11.2551262,6.28947477 C11.6547429,5.90350841 12.3016927,5.90350841 12.7002874,6.28947477 C13.0999042,6.674454 13.0999042,7.2993049 12.7002874,7.68527125 L8.53241776,11.710772 C8.33312041,11.9032616 8.07147876,12 7.80983711,12\",\n id: \"Path\",\n fill: \"#48F694\"\n}));\n\nfunction SvgComplete(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"18px\",\n viewBox: \"0 0 18 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgComplete);\nexport default __webpack_public_path__ + \"static/media/complete.d94d5045.svg\";\nexport { ForwardRef as ReactComponent };","import typographyStyles from 'src/components/typography/styles'\nimport {\n placeholderColor,\n backgroundColor,\n primaryColor,\n mainWidth,\n spring2,\n spring3,\n errorColor\n} from 'src/styling/variables'\n\nconst { tl2, p } = typographyStyles\n\nconst fill = '100%'\nconst flexDirection = 'column'\n\nconst styles = {\n dialog: {\n backgroundColor,\n width: fill,\n minHeight: fill,\n display: 'flex',\n flexDirection,\n padding: 0\n },\n wrapper: {\n width: mainWidth,\n height: fill,\n margin: '0 auto',\n flex: 1,\n display: 'flex',\n flexDirection\n },\n contentDiv: {\n display: 'flex',\n flex: 1,\n flexDirection: 'row'\n },\n headerDiv: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center'\n },\n contentWrapper: {\n marginLeft: 48\n },\n button: {\n marginTop: 64\n },\n nameTitle: {\n marginTop: 16,\n marginBottom: 25\n },\n qrTitle: {\n marginTop: 12,\n marginBottom: 40\n },\n qrCodeWrapper: {\n display: 'flex'\n },\n qrTextInfoWrapper: {\n display: 'flex',\n flexDirection: 'row'\n },\n qrTextWrapper: {\n width: 381,\n marginLeft: 80,\n display: 'flex',\n flexDirection: 'column'\n },\n textWrapper: {\n display: 'flex',\n flexDirection: 'column'\n },\n qrTextIcon: {\n marginRight: 16\n },\n qrText: {\n marginTop: 0\n },\n item: {\n position: 'relative',\n margin: '12px 0 12px 0',\n display: 'flex'\n },\n itemText: {\n extend: p,\n color: placeholderColor,\n marginRight: 24\n },\n itemTextActive: {\n extend: tl2,\n color: primaryColor\n },\n itemTextPast: {\n color: primaryColor\n },\n stepperPath: {\n position: 'absolute',\n height: 25,\n width: 1,\n border: [[1, 'solid', placeholderColor]],\n right: 8,\n top: 18\n },\n stepperPast: {\n border: [[1, 'solid', primaryColor]]\n },\n successMessageWrapper: {\n backgroundColor: spring3,\n display: 'flex',\n flexDirection: 'row',\n padding: '0px 10px',\n borderRadius: '8px'\n },\n successMessage: {\n color: spring2,\n margin: '8px 0px'\n },\n successMessageIcon: {\n marginRight: 16,\n marginBottom: 2,\n display: 'flex',\n flexDirection: 'col',\n alignItems: 'center'\n },\n errorMessage: {\n color: errorColor\n },\n qrCodeImageWrapper: {\n display: 'flex',\n flexDirection: 'column',\n backgroundColor: 'white',\n border: `5px solid ${primaryColor}`,\n padding: 5,\n borderRadius: 15\n },\n qrCodeScanMessage: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n margin: [[0, 0, 20, 20]],\n '& > p': {\n marginLeft: 10\n }\n }\n}\n\nexport default styles\n","import { useMutation, useQuery } from '@apollo/react-hooks'\nimport { Dialog, DialogContent, SvgIcon, IconButton } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport { Form, Formik, FastField } from 'formik'\nimport gql from 'graphql-tag'\nimport QRCode from 'qrcode.react'\nimport * as R from 'ramda'\nimport React, { memo, useState, useEffect, useRef } from 'react'\nimport * as Yup from 'yup'\n\nimport Title from 'src/components/Title'\nimport { Button } from 'src/components/buttons'\nimport { TextInput } from 'src/components/inputs/formik'\nimport Sidebar from 'src/components/layout/Sidebar'\nimport { Info2, P } from 'src/components/typography'\nimport { ReactComponent as CameraIcon } from 'src/styling/icons/ID/photo/zodiac.svg'\nimport { ReactComponent as CloseIcon } from 'src/styling/icons/action/close/zodiac.svg'\nimport { ReactComponent as CompleteStageIconSpring } from 'src/styling/icons/stage/spring/complete.svg'\nimport { ReactComponent as CompleteStageIconZodiac } from 'src/styling/icons/stage/zodiac/complete.svg'\nimport { ReactComponent as CurrentStageIconZodiac } from 'src/styling/icons/stage/zodiac/current.svg'\nimport { ReactComponent as EmptyStageIconZodiac } from 'src/styling/icons/stage/zodiac/empty.svg'\nimport { ReactComponent as WarningIcon } from 'src/styling/icons/warning-icon/comet.svg'\nimport { primaryColor } from 'src/styling/variables'\n\nimport styles from './styles'\n\nconst SAVE_CONFIG = gql`\n mutation createPairingTotem($name: String!) {\n createPairingTotem(name: $name)\n }\n`\nconst GET_MACHINES = gql`\n {\n machines {\n name\n deviceId\n }\n }\n`\n\nconst useStyles = makeStyles(styles)\n\nconst getSize = R.compose(R.length, R.pathOr([], ['machines']))\n\nconst QrCodeComponent = ({ classes, qrCode, name, count, onPaired }) => {\n const timeout = useRef(null)\n const CLOSE_SCREEN_TIMEOUT = 2000\n const { data } = useQuery(GET_MACHINES, { pollInterval: 10000 })\n\n useEffect(() => {\n return () => {\n if (timeout.current) {\n clearTimeout(timeout.current)\n }\n }\n }, [])\n\n const addedMachine = data?.machines?.find(m => m.name === name)\n const hasNewMachine = getSize(data) > count && addedMachine\n if (hasNewMachine) {\n timeout.current = setTimeout(\n () => onPaired(addedMachine),\n CLOSE_SCREEN_TIMEOUT\n )\n }\n\n return (\n <>\n \n Scan QR code with your new cryptomat\n \n \n
\n
\n
\n
\n
Snap a picture and scan
\n
\n
\n
\n
\n
\n \n
\n
\n
\n To pair the machine you need scan the QR code with your machine.\n To do this either snap a picture of this QR code or download it\n through the button above and scan it with the scanning bay on\n your machine.\n
\n
\n
\n {hasNewMachine && (\n
\n
\n \n
\n
\n Machine has been successfully paired!\n \n
\n )}\n
\n
\n >\n )\n}\n\nconst initialValues = {\n name: ''\n}\n\nconst validationSchema = Yup.object().shape({\n name: Yup.string()\n .required('Machine name is required.')\n .max(50)\n .test(\n 'unique-name',\n 'Machine name is already in use.',\n (value, context) => !context.options.context.machineNames.includes(value)\n )\n})\n\nconst MachineNameComponent = ({ nextStep, classes, setQrCode, setName }) => {\n const [register] = useMutation(SAVE_CONFIG, {\n onCompleted: ({ createPairingTotem }) => {\n if (process.env.NODE_ENV === 'development') {\n console.log(`totem: \"${createPairingTotem}\" `)\n }\n setQrCode(createPairingTotem)\n nextStep()\n },\n onError: e => console.log(e)\n })\n\n const { data } = useQuery(GET_MACHINES)\n const machineNames = R.map(R.prop('name'), data?.machines || {})\n\n const uniqueNameValidator = value => {\n try {\n validationSchema.validateSync(value, {\n context: { machineNames: machineNames }\n })\n } catch (error) {\n return error\n }\n }\n\n return (\n <>\n \n Machine Name (ex: Coffee shop 01)\n \n {\n setName(name)\n register({ variables: { name } })\n }}>\n {({ errors }) => (\n \n )}\n \n >\n )\n}\n\nconst steps = [\n {\n label: 'Machine name',\n component: MachineNameComponent\n },\n {\n label: 'Scan QR code',\n component: QrCodeComponent\n }\n]\n\nconst renderStepper = (step, it, idx, classes) => {\n const active = step === idx\n const past = idx < step\n const future = idx > step\n\n return (\n \n
\n {it.label}\n \n {active &&
}\n {past &&
}\n {future &&
}\n {idx < steps.length - 1 && (\n
\n )}\n
\n )\n}\n\nconst AddMachine = memo(({ close, onPaired }) => {\n const classes = useStyles()\n const { data } = useQuery(GET_MACHINES)\n const [qrCode, setQrCode] = useState('')\n const [name, setName] = useState('')\n const [step, setStep] = useState(0)\n const count = getSize(data)\n\n const Component = steps[step].component\n\n return (\n \n
\n \n \n
\n
Add Machine \n \n \n \n \n \n \n
\n
\n {steps.map((it, idx) => renderStepper(step, it, idx, classes))}\n \n
\n setStep(1)}\n count={count}\n onPaired={onPaired}\n qrCode={qrCode}\n setQrCode={setQrCode}\n name={name}\n setName={setName}\n />\n
\n
\n
\n \n \n
\n )\n})\n\nexport default AddMachine\n","import AddMachine from './AddMachine'\n\nexport default AddMachine\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/add/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.5384615,6 C11.5384615,9.05815385 9.05815385,11.5384615 6,11.5384615 C2.94184615,11.5384615 0.461538462,9.05815385 0.461538462,6 C0.461538462,2.94184615 2.94184615,0.461538462 6,0.461538462 C9.05815385,0.461538462 11.5384615,2.94184615 11.5384615,6 Z\",\n id: \"Stroke-1\",\n stroke: \"#FFFFFF\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 6,\n y1: 3.69230769,\n x2: 6,\n y2: 8.30769231,\n id: \"Stroke-3\",\n stroke: \"#FFFFFF\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 3.69230769,\n y1: 6,\n x2: 8.30769231,\n y2: 6,\n id: \"Stroke-5\",\n stroke: \"#FFFFFF\"\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.cc7667ff.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.8413132,12.8764646 C17.8413132,12.8764646 16.6555879,12.5091919 15.661533,12.2855556 C15.661533,12.2855556 15.3477198,10.3246465 14.8939121,8.23646465 C14.8939121,8.23646465 15.1560495,8.21373737 15.3383242,8.8710101 L16.0223242,12.0219192 C16.0223242,12.0219192 17.2343571,12.2991919 18.1795549,12.6537374 L17.8413132,12.8764646 Z M15.2603407,6.10282828 L15.5328132,5.80555556 C16.0627253,5.87828283 16.3483516,6.02828283 16.3483516,6.02828283 L16.291978,6.11191919 L16.3972088,6.9310101 C16.2440604,6.93646465 16.0091703,7.05919192 16.0091703,7.05919192 L15.8315934,6.95010101 L15.8315934,6.38282828 C15.3026209,6.29919192 15.2556429,6.21828283 15.2556429,6.21828283 L15.2603407,6.10282828 Z M12.4557527,18.2873737 C11.2831813,18.4964646 9.84565385,18.2237374 9.84565385,18.2237374 L9.89732967,17.9991919 C9.89732967,17.9991919 11.6496099,18.1955556 12.6248736,17.8973737 C12.5553462,18.0628283 12.5356154,18.1137374 12.4557527,18.2873737 L12.4557527,18.2873737 Z M9.18984066,14.5464646 C8.379,15.1364646 7.56064286,15.6791919 7.00442308,16.1091919 C6.9705989,16.6955556 6.91516484,17.6464646 6.91516484,17.6464646 L5.46448352,18.5182828 L5.22207692,18.3737374 C5.27845055,17.9219192 5.34891758,17.5882828 5.34891758,17.5882828 L5.55186264,17.4410101 C5.50676374,17.7282828 5.48515385,18.1346465 5.48515385,18.1346465 L6.5928956,17.440101 C6.63705495,16.7019192 6.72443407,15.960101 6.72443407,15.960101 C6.9705989,15.7373737 8.73697253,14.5237374 10.0100803,13.6864646 C10.0100803,13.6864646 10.018533,13.9437374 9.18984066,14.5464646 L9.18984066,14.5464646 Z M14.977533,0.195555556 C15.2612802,0.167373737 15.5065055,0.184646465 15.7103901,0.228282828 L15.7103901,0.228282828 L15.8813901,0.697373737 L16.1003077,0.361919192 C16.2694286,0.447373737 16.3746593,0.547373737 16.4056648,0.624646465 C16.4056648,0.624646465 16.3615055,0.909191919 16.4319725,1.36464646 C16.5005604,1.80373737 16.6988077,2.78191919 16.6988077,2.78191919 C16.9740989,3.00646465 17.2850934,3.51282828 17.2850934,3.51282828 C17.4758242,4.41737374 17.4645495,5.04919192 17.4636099,5.1210101 C16.6734396,4.68646465 15.6173736,4.58555556 15.6173736,4.58555556 L15.6173736,4.58555556 L15.2481264,4.90828283 C15.9753462,5.00828283 16.8792033,5.26555556 17.1122143,5.44555556 C17.2484505,5.74737374 17.3386484,6.22828283 17.3386484,6.22828283 L17.3386484,6.22828283 L17.0445659,6.58919192 L17.3198571,6.8810101 C17.3386484,7.22464646 17.2183846,7.56919192 17.2183846,7.56919192 C17.7905769,7.93010101 17.9512418,8.79373737 18.3101538,10.250101 C18.6700055,11.7064646 18.9903956,12.9055556 18.9903956,12.9055556 L18.9903956,12.9055556 L18.4567253,13.2019192 C19.1623352,15.7282828 18.444511,17.7391919 17.5378352,19.0664646 C16.6320989,20.3946465 16.0862143,21.7137374 16.1031264,22.8910101 L16.1031264,22.8910101 L16.5475385,23.2346465 L16.7749121,23.9491919 L14.3048077,23.9491919 L14.293533,23.2728283 C14.2925934,21.5619192 14.9230385,20.1328283 14.9230385,20.1328283 C15.2857088,20.0473737 15.6596538,19.7628283 15.6596538,19.7628283 C15.0733681,19.8828283 14.3414505,19.7964646 14.3414505,19.7964646 C14.8676044,18.8537374 15.0292088,18.1773737 15.0292088,18.1773737 L15.0292088,18.1773737 L14.7811648,18.1228283 C14.6956648,18.310101 14.6073462,18.4937374 14.5133901,18.6710101 C13.8754286,19.8864646 13.1735769,20.6628283 12.7554725,22.4055556 L12.7554725,22.4055556 L13.1933077,22.7455556 L13.6987912,23.9491919 L10.8509835,23.9491919 C10.8340714,21.8246465 11.495522,20.2273737 11.7341703,19.7628283 C10.2233571,19.9264646 8.42128022,19.1782828 6.99314835,19.4664646 C6.60041209,21.9473737 4.59257143,22.4355556 3.65019231,22.300101 L3.65019231,22.300101 L2.97652747,23.4146465 L3.58724176,23.9491919 L1.33135714,23.9491919 C1.32008242,23.8546465 1.2918956,23.7537374 1.22988462,23.6591919 C1.22988462,23.6591919 1.97401648,22.5882828 2.48231868,21.150101 C2.89008791,21.3255556 3.75166484,20.9928283 3.78736813,20.1055556 C3.82401099,19.2191919 3.67086264,17.8419192 4.46854945,16.7891919 C5.2652967,15.7355556 6.12687363,15.1655556 7.25152747,14.3328283 C7.98250549,13.7910101 9.22084615,12.8755556 9.99974176,12.3010101 L9.99974176,12.3010101 L9.61546154,12.3864646 L6.81087363,14.6491919 L5.82997253,14.6491919 L8.66368681,12.1164646 L8.29725824,12.1091919 L5.33576374,14.6491919 L4.34170879,14.6491919 L7.27313736,11.720101 L6.9208022,11.7173737 L3.88038462,14.6491919 L2.86565934,14.6491919 L5.8093022,11.3037374 L5.46918132,11.3055556 L2.43534066,14.6491919 L1.36706044,14.6491919 L4.22614286,10.8528283 L3.89635714,10.8573737 L0.963989011,14.6491919 L0,14.6491919 C0,14.6491919 4.11809341,8.22464646 4.92893407,7.00737374 C5.73883516,5.79010101 6.6192033,4.62282828 8.06894505,4.38464646 C9.53465934,4.14282828 10.5343516,4.46646465 11.2502967,5.63373737 C11.636456,6.2610101 12.1034176,6.97828283 12.4698462,7.55919192 C12.0968407,8.1510101 11.6298791,8.6110101 11.5857198,9.32282828 C11.534044,10.1419192 12.0921429,10.6373737 12.6558791,10.6773737 C12.2321374,10.5282828 11.8976538,10.0337374 12.0489231,9.37646465 C12.2058297,8.69737374 12.7554725,8.35191919 13.1726374,7.80282828 C13.5315495,7.32828283 13.5371868,6.63282828 13.5108791,6.4010101 C13.4836319,6.16919192 13.2167967,5.98828283 13.2167967,5.98828283 C13.2167967,5.98828283 13.2252527,5.52373737 13.2167967,5.01646465 C13.2083407,4.51010101 13.4300769,4.21828283 13.4300769,4.21828283 C13.4300769,4.21828283 13.4216209,3.4610101 13.3943736,2.57646465 C13.3671264,1.72555556 13.2863242,1.46828283 13.205522,1.35464646 C13.205522,1.35464646 13.2694121,1.10919192 13.5099396,0.844646465 L13.5099396,0.844646465 L13.7542253,1.06282828 L13.8284505,0.571919192 C13.9825385,0.469191919 14.1723297,0.375555556 14.4072198,0.307373737 C14.4325879,0.30010101 14.4570165,0.294646465 14.4823846,0.288282828 L14.4823846,0.288282828 L14.7896209,0.644646465 Z M7.71628243,19.8937938 C8.32897736,19.8402566 9.02386307,19.9393405 9.75797621,20.0432188 L9.75797621,20.0432188 L9.86538462,20.058401 C9.7449004,20.8103202 9.02106112,21.7691969 7.79193531,22.0896215 L7.79193531,22.0896215 L9.01358923,23.5151515 L7.36136769,23.5151515 C7.15589073,23.2226941 6.50396838,22.32135 6.16586538,21.9681638 C6.72065317,21.6525335 7.42954868,21.0388524 7.71628243,19.8937938 Z\",\n id: \"path-1\"\n}));\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"nav-/-primary-/-1440\",\n transform: \"translate(-128.000000, -14.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/lamassu-logo\",\n transform: \"translate(128.000000, 14.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"color/amaz/default\"\n}, /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask-2\",\n fill: \"white\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#path-1\"\n})), /*#__PURE__*/React.createElement(\"use\", {\n id: \"Mask\",\n fill: \"#16D6D3\",\n xlinkHref: \"#path-1\"\n})))));\n\nfunction SvgLogo(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"19px\",\n height: \"24px\",\n viewBox: \"0 0 19 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogo);\nexport default __webpack_public_path__ + \"static/media/logo.8ee79eab.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"nav-/-primary-/-1440\",\n transform: \"translate(-1295.000000, -19.000000)\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/menu/notification\",\n transform: \"translate(1296.000000, 20.000000)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.1052632,14.3157895 C10.1052632,15.2454737 9.35073684,16 8.42105263,16 C7.49136842,16 6.73684211,15.2454737 6.73684211,14.3157895\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.6,14.3157895 C0.7168,14.3157895 0,13.6031813 0,12.7251462 C0,11.8471111 0.7168,11.1345029 1.6,11.1345029 L1.6,6.3625731 C1.6,2.84884211 4.4656,0 8,0 C11.5344,0 14.4,2.84884211 14.4,6.3625731 L14.4,11.1345029 C15.2832,11.1345029 16,11.8471111 16,12.7251462 C16,13.6031813 15.2832,14.3157895 14.4,14.3157895 L1.6,14.3157895 Z\",\n id: \"Stroke-3\",\n strokeLinejoin: \"round\"\n}))));\n\nfunction SvgNotification(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"18px\",\n viewBox: \"0 0 18 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgNotification);\nexport default __webpack_public_path__ + \"static/media/notification.a9712ffd.svg\";\nexport { ForwardRef as ReactComponent };","import typographyStyles from 'src/components/typography/styles'\nimport {\n version,\n mainWidth,\n spacer,\n white,\n primaryColor,\n secondaryColor,\n placeholderColor,\n subheaderColor,\n fontColor\n} from 'src/styling/variables'\n\nconst { p } = typographyStyles\n\nlet headerHeight = spacer * 7\nlet subheaderHeight = spacer * 5\n\nif (version === 8) {\n headerHeight = spacer * 8\n subheaderHeight = spacer * 7\n}\n\nconst styles = {\n headerContainer: {\n position: 'relative'\n },\n header: {\n backgroundColor: primaryColor,\n color: white,\n height: headerHeight,\n display: 'flex'\n },\n content: {\n maxWidth: mainWidth,\n flex: 1,\n display: 'flex',\n alignItems: 'center',\n margin: '0 auto'\n },\n nav: {\n flex: 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between'\n },\n ul: {\n display: 'flex',\n paddingLeft: spacer * 4.5,\n height: spacer * 7,\n margin: 0\n },\n li: {\n // extend: tl2,\n // height: spacer * 7,\n listStyle: 'none',\n color: white,\n margin: [[spacer * 2.5, spacer * 2.5, 0, spacer * 2.5]],\n '&:hover': {\n color: white\n },\n '&:hover::after': {\n width: '50%',\n marginLeft: '-25%'\n },\n position: 'relative',\n '&:after': {\n content: '\"\"',\n display: 'block',\n background: white,\n width: 0,\n height: 4,\n left: '50%',\n marginLeft: 0,\n bottom: -8,\n position: 'absolute',\n borderRadius: 1000,\n transition: [['all', '0.2s', 'cubic-bezier(0.95, 0.1, 0.45, 0.94)']]\n }\n },\n link: {\n extend: p,\n textDecoration: 'none',\n border: 'none',\n color: white,\n backgroundColor: 'transparent'\n },\n forceSize: {\n display: 'inline-block',\n textAlign: 'center',\n '&:after': {\n display: 'block',\n content: 'attr(forcesize)',\n fontWeight: 700,\n height: 0,\n overflow: 'hidden',\n visibility: 'hidden'\n }\n },\n activeLink: {\n color: white,\n '& li::after': {\n width: '50%',\n marginLeft: '-25%'\n }\n },\n addMachine: {\n marginLeft: 'auto'\n },\n subheader: {\n backgroundColor: subheaderColor,\n color: white,\n height: subheaderHeight,\n display: 'flex'\n },\n subheaderUl: {\n display: 'flex',\n paddingLeft: 0,\n margin: 0\n },\n subheaderLi: {\n listStyle: 'none',\n padding: [[0, spacer * 2.5]],\n '&:first-child': {\n paddingLeft: 0\n }\n },\n subheaderLink: {\n extend: p,\n textDecoration: 'none',\n border: 'none',\n color: placeholderColor\n },\n activeSubheaderLink: {\n textShadow: '0.2px 0 0 currentColor',\n color: fontColor\n },\n white: {\n color: white\n },\n logo: {\n display: 'flex',\n alignItems: 'center',\n '& > svg': {\n marginRight: 16\n }\n },\n logoLink: {\n cursor: 'pointer'\n },\n actionButtonsContainer: {\n zIndex: 1,\n position: 'relative',\n display: 'flex',\n justifyContent: 'space-between',\n minWidth: 200,\n transform: 'translateZ(0)'\n },\n notificationIcon: {\n marginTop: spacer / 2,\n cursor: 'pointer',\n background: 'transparent',\n boxShadow: '0px 0px 0px transparent',\n border: '0px solid transparent',\n textShadow: '0px 0px 0px transparent',\n outline: 'none'\n },\n hasUnread: {\n position: 'absolute',\n top: 4,\n left: 186,\n width: '9px',\n height: '9px',\n backgroundColor: secondaryColor,\n borderRadius: '50%'\n },\n popper: {\n zIndex: 1\n }\n}\n\nexport default styles\n","import { useQuery } from '@apollo/react-hooks'\nimport ClickAwayListener from '@material-ui/core/ClickAwayListener'\nimport Popper from '@material-ui/core/Popper'\nimport { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { memo, useState, useEffect, useRef } from 'react'\nimport { NavLink, useHistory } from 'react-router-dom'\n\nimport NotificationCenter from 'src/components/NotificationCenter'\nimport ActionButton from 'src/components/buttons/ActionButton'\nimport { H4 } from 'src/components/typography'\nimport AddMachine from 'src/pages/AddMachine'\nimport { ReactComponent as AddIconReverse } from 'src/styling/icons/button/add/white.svg'\nimport { ReactComponent as AddIcon } from 'src/styling/icons/button/add/zodiac.svg'\nimport { ReactComponent as Logo } from 'src/styling/icons/menu/logo.svg'\nimport { ReactComponent as NotificationIcon } from 'src/styling/icons/menu/notification.svg'\n\nimport styles from './Header.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst HAS_UNREAD = gql`\n query getUnread {\n hasUnreadNotifications\n }\n`\n\nconst Subheader = ({ item, classes, user }) => {\n const [prev, setPrev] = useState(null)\n\n return (\n \n
\n
\n \n {item.children.map((it, idx) => {\n if (!R.includes(user.role, it.allowedRoles)) return <>>\n return (\n \n {\n if (!match) return false\n setPrev(it.route)\n return true\n }}>\n {it.label}\n \n \n )\n })}\n \n \n
\n
\n )\n}\n\nconst notNil = R.compose(R.not, R.isNil)\n\nconst Header = memo(({ tree, user }) => {\n const [open, setOpen] = useState(false)\n const [anchorEl, setAnchorEl] = useState(null)\n const [notifButtonCoords, setNotifButtonCoords] = useState({ x: 0, y: 0 })\n const [active, setActive] = useState()\n const [hasUnread, setHasUnread] = useState(false)\n\n const { data, refetch, startPolling, stopPolling } = useQuery(HAS_UNREAD)\n const notifCenterButtonRef = useRef()\n const popperRef = useRef()\n const history = useHistory()\n const classes = useStyles()\n\n useEffect(() => {\n if (data?.hasUnreadNotifications) return setHasUnread(true)\n // if not true, make sure it's false and not undefined\n if (notNil(data?.hasUnreadNotifications)) return setHasUnread(false)\n }, [data])\n\n useEffect(() => {\n startPolling(60000)\n return stopPolling\n })\n\n const onPaired = machine => {\n setOpen(false)\n history.push('/maintenance/machine-status', { id: machine.deviceId })\n }\n\n // these inline styles prevent scroll bubbling: when the user reaches the bottom of the notifications list and keeps scrolling,\n // the body scrolls, stealing the focus from the notification center, preventing the admin from scrolling the notifications back up\n // on the first scroll, needing to move the mouse to recapture the focus on the notification center\n // it also disables the scrollbars caused by the notification center's background to the right of the page, but keeps the scrolling on the body enabled\n const onClickAway = () => {\n setAnchorEl(null)\n document.querySelector('#root').classList.remove('root-notifcenter-open')\n document.querySelector('body').classList.remove('body-notifcenter-open')\n }\n\n const handleClick = event => {\n const coords = notifCenterButtonRef.current.getBoundingClientRect()\n setNotifButtonCoords({ x: coords.x, y: coords.y + 5 })\n\n setAnchorEl(anchorEl ? null : event.currentTarget)\n document.querySelector('#root').classList.add('root-notifcenter-open')\n document.querySelector('body').classList.add('body-notifcenter-open')\n }\n\n const popperOpen = Boolean(anchorEl)\n const id = popperOpen ? 'notifications-popper' : undefined\n return (\n \n \n
\n
{\n setActive(false)\n history.push('/dashboard')\n }}\n className={classnames(classes.logo, classes.logoLink)}>\n \n
Lamassu Admin \n \n
\n \n {tree.map((it, idx) => {\n if (!R.includes(user.role, it.allowedRoles)) return <>>\n return (\n {\n if (!match) return false\n setActive(it)\n return true\n }}\n className={classnames(classes.link, classes.whiteLink)}\n activeClassName={classes.activeLink}>\n \n \n {it.label}\n \n \n \n )\n })}\n \n \n
\n
setOpen(true)}>\n Add machine\n \n
\n \n
\n \n {hasUnread &&
}\n \n
\n \n \n
\n \n
\n
\n
\n {active && active.children && (\n \n )}\n {open && setOpen(false)} onPaired={onPaired} />}\n \n )\n})\n\nexport default Header\n","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport { ReactComponent as ErrorIcon } from 'src/styling/icons/warning-icon/tomato.svg'\nimport { errorColor } from 'src/styling/variables'\n\nimport { Info3 } from './typography'\n\nconst styles = {\n wrapper: {\n display: 'flex',\n alignItems: 'center',\n '& > svg': {\n marginRight: 10\n }\n },\n message: {\n display: 'flex',\n alignItems: 'center',\n color: errorColor,\n margin: 0,\n whiteSpace: 'break-spaces'\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst ErrorMessage = ({ className, children, ...props }) => {\n const classes = useStyles()\n\n return (\n \n \n {children} \n
\n )\n}\n\nexport default ErrorMessage\n","import { backgroundColor } from 'src/styling/variables'\n\nexport default {\n titleWrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n flexDirection: 'row'\n },\n titleAndButtonsContainer: {\n display: 'flex',\n alignItems: 'center'\n },\n error: {\n marginLeft: 12\n },\n subpageButton: {\n marginLeft: 12\n },\n buttonText: {\n color: backgroundColor,\n fontFamily: 'Mont',\n fontSize: 15\n },\n icon: {\n marginRight: 6\n },\n label: {\n marginRight: 24\n }\n}\n","import { makeStyles, Box } from '@material-ui/core'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Title from 'src/components/Title'\nimport { SubpageButton } from 'src/components/buttons'\nimport { Info1, Label1 } from 'src/components/typography'\n\nimport styles from './TitleSection.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst TitleSection = ({\n className,\n title,\n error,\n labels,\n buttons = [],\n children,\n appendix,\n appendixRight\n}) => {\n const classes = useStyles()\n return (\n \n
\n
{title} \n {!!appendix && appendix}\n {error && (\n Failed to save \n )}\n {buttons.length > 0 && (\n <>\n {buttons.map((button, idx) => (\n \n {button.text} \n \n ))}\n >\n )}\n \n
\n {(labels ?? []).map(({ icon, label }, idx) => (\n \n {icon}
\n {label} \n \n ))}\n {appendixRight}\n \n {children}\n
\n )\n}\n\nexport default TitleSection\n","import { backgroundColor, errorColor } from 'src/styling/variables'\n\nconst styles = {\n title: {\n paddingTop: 8\n },\n input: {\n marginBottom: 25,\n marginTop: -15\n },\n wrapper: {\n padding: '2.5em 4em',\n width: 575,\n display: 'flex',\n flexDirection: 'column'\n },\n titleWrapper: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n marginBottom: 30\n },\n rememberMeWrapper: {\n marginTop: 35,\n display: 'flex',\n flexDirection: 'row'\n },\n icon: {\n transform: 'scale(1.5)',\n marginRight: 25\n },\n checkbox: {\n transform: 'scale(1.5)',\n marginRight: 5,\n marginLeft: -5\n },\n footer: {\n marginTop: '10vh'\n },\n twofaFooter: {\n marginTop: '6vh'\n },\n fidoLoginButtonWrapper: {\n marginBottom: 12\n },\n loginButton: {\n display: 'block',\n width: '100%'\n },\n welcomeBackground: {\n background: 'url(/wizard-background.svg) no-repeat center center fixed',\n backgroundColor: backgroundColor,\n backgroundSize: 'cover',\n height: '100vh',\n width: '100vw',\n position: 'relative',\n left: '50%',\n right: '50%',\n marginLeft: '-50vw',\n marginRight: '-50vw',\n minHeight: '100vh'\n },\n info: {\n marginBottom: '5vh'\n },\n info2: {\n textAlign: 'justify'\n },\n infoWrapper: {\n marginBottom: '3vh'\n },\n errorMessage: {\n color: errorColor\n },\n qrCodeWrapper: {\n display: 'flex',\n justifyContent: 'center',\n marginBottom: '3vh'\n },\n secretWrapper: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n },\n secretLabel: {\n marginRight: 15\n },\n secret: {\n marginRight: 35\n },\n hiddenSecret: {\n marginRight: 35,\n filter: 'blur(8px)'\n },\n confirm2FAInput: {\n marginTop: 25\n },\n confirmPassword: {\n marginTop: 25\n },\n error: {\n color: errorColor\n },\n enterButton: {\n display: 'none'\n }\n}\n\nexport default styles\n","const STATES = {\n LOGIN: 'LOGIN',\n SETUP_2FA: 'SETUP2FA',\n INPUT_2FA: 'INPUT2FA',\n FIDO: 'FIDO'\n}\n\nexport { STATES }\n","import { useMutation, useLazyQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport base64 from 'base-64'\nimport { Form, Formik } from 'formik'\nimport gql from 'graphql-tag'\nimport React, { useContext, useState } from 'react'\nimport { useHistory } from 'react-router-dom'\n\nimport AppContext from 'src/AppContext'\nimport { Button } from 'src/components/buttons'\nimport { CodeInput } from 'src/components/inputs/base'\nimport { TL1, P } from 'src/components/typography'\n\nimport styles from './shared.styles'\nimport { STATES } from './states'\n\nconst useStyles = makeStyles(styles)\n\nconst INPUT_2FA = gql`\n mutation input2FA(\n $username: String!\n $password: String!\n $code: String!\n $rememberMe: Boolean!\n ) {\n input2FA(\n username: $username\n password: $password\n code: $code\n rememberMe: $rememberMe\n )\n }\n`\n\nconst GET_USER_DATA = gql`\n {\n userData {\n id\n username\n role\n }\n }\n`\n\nconst Input2FAState = ({ state, dispatch }) => {\n const classes = useStyles()\n const history = useHistory()\n const { setUserData } = useContext(AppContext)\n\n const [invalidToken, setInvalidToken] = useState(false)\n\n const [getUserData, { error: queryError }] = useLazyQuery(GET_USER_DATA, {\n onCompleted: ({ userData }) => {\n setUserData(userData)\n history.push('/')\n }\n })\n\n const [input2FA, { error: mutationError }] = useMutation(INPUT_2FA, {\n onCompleted: ({ input2FA: success }) => {\n if (success) {\n const options = {\n context: {\n headers: {\n 'Pazuz-Operator-Identifier': base64.encode(state.clientField)\n }\n }\n }\n return getUserData(options)\n }\n return setInvalidToken(true)\n }\n })\n\n const handle2FAChange = value => {\n dispatch({\n type: STATES.INPUT_2FA,\n payload: {\n twoFAField: value\n }\n })\n setInvalidToken(false)\n }\n\n const handleSubmit = () => {\n if (state.twoFAField.length !== 6) {\n setInvalidToken(true)\n return\n }\n\n const options = {\n variables: {\n username: state.clientField,\n password: state.passwordField,\n code: state.twoFAField,\n rememberMe: state.rememberMeField\n },\n context: {\n headers: {\n 'Pazuz-Operator-Identifier': base64.encode(state.clientField)\n }\n }\n }\n\n input2FA(options)\n }\n\n const getErrorMsg = () => {\n if (queryError) return 'Internal server error'\n if (state.twoFAField.length !== 6 && invalidToken)\n return 'The code should have 6 characters!'\n if (mutationError || invalidToken)\n return 'Code is invalid. Please try again.'\n return null\n }\n\n const errorMessage = getErrorMsg()\n\n return (\n <>\n \n Enter your two-factor authentication code\n \n {/* TODO: refactor the 2FA CodeInput to properly use Formik */}\n {}} initialValues={{}}>\n \n \n \n {errorMessage &&
{errorMessage}
}\n
\n Login\n \n
\n >\n )\n}\n\nexport default Input2FAState\n","import { useMutation, useLazyQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport { startAssertion } from '@simplewebauthn/browser'\nimport { Field, Form, Formik } from 'formik'\nimport gql from 'graphql-tag'\nimport React, { useState, useContext } from 'react'\nimport { useHistory } from 'react-router-dom'\nimport * as Yup from 'yup'\n\nimport AppContext from 'src/AppContext'\nimport { Button } from 'src/components/buttons'\nimport { Checkbox, TextInput } from 'src/components/inputs/formik'\nimport { H2, Label2, P } from 'src/components/typography'\n\nimport styles from './shared.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_USER_DATA = gql`\n {\n userData {\n id\n username\n role\n }\n }\n`\n\nconst validationSchema = Yup.object().shape({\n localClient: Yup.string()\n .required('Client field is required!')\n .email('Username field should be in an email format!'),\n localRememberMe: Yup.boolean()\n})\n\nconst initialValues = {\n localClient: '',\n localRememberMe: false\n}\n\nconst InputFIDOState = ({ state, strategy }) => {\n const GENERATE_ASSERTION = gql`\n query generateAssertionOptions($username: String!${\n strategy === 'FIDO2FA' ? `, $password: String!` : ``\n }, $domain: String!) {\n generateAssertionOptions(username: $username${\n strategy === 'FIDO2FA' ? `, password: $password` : ``\n }, domain: $domain)\n }\n `\n\n const VALIDATE_ASSERTION = gql`\n mutation validateAssertion(\n $username: String!\n ${strategy === 'FIDO2FA' ? `, $password: String!` : ``}\n $rememberMe: Boolean!\n $assertionResponse: JSONObject!\n $domain: String!\n ) {\n validateAssertion(\n username: $username\n ${strategy === 'FIDO2FA' ? `password: $password` : ``}\n rememberMe: $rememberMe\n assertionResponse: $assertionResponse\n domain: $domain\n )\n }\n `\n\n const classes = useStyles()\n const history = useHistory()\n const { setUserData } = useContext(AppContext)\n\n const [localClientField, setLocalClientField] = useState('')\n const [localRememberMeField, setLocalRememberMeField] = useState(false)\n const [invalidUsername, setInvalidUsername] = useState(false)\n const [invalidToken, setInvalidToken] = useState(false)\n\n const [validateAssertion, { error: mutationError }] = useMutation(\n VALIDATE_ASSERTION,\n {\n onCompleted: ({ validateAssertion: success }) => {\n success ? getUserData() : setInvalidToken(true)\n }\n }\n )\n\n const [assertionOptions, { error: assertionQueryError }] = useLazyQuery(\n GENERATE_ASSERTION,\n {\n variables:\n strategy === 'FIDO2FA'\n ? {\n username: state.clientField,\n password: state.passwordField,\n domain: window.location.hostname\n }\n : {\n username: localClientField,\n domain: window.location.hostname\n },\n onCompleted: ({ generateAssertionOptions: options }) => {\n startAssertion(options)\n .then(res => {\n const variables =\n strategy === 'FIDO2FA'\n ? {\n username: state.clientField,\n password: state.passwordField,\n rememberMe: state.rememberMeField,\n assertionResponse: res,\n domain: window.location.hostname\n }\n : {\n username: localClientField,\n rememberMe: localRememberMeField,\n assertionResponse: res,\n domain: window.location.hostname\n }\n validateAssertion({\n variables\n })\n })\n .catch(err => {\n console.error(err)\n setInvalidToken(true)\n })\n }\n }\n )\n\n const [getUserData, { error: queryError }] = useLazyQuery(GET_USER_DATA, {\n onCompleted: ({ userData }) => {\n setUserData(userData)\n history.push('/')\n }\n })\n\n const getErrorMsg = (formikErrors, formikTouched) => {\n if (!formikErrors || !formikTouched) return null\n if (assertionQueryError || queryError || mutationError)\n return 'Internal server error'\n if (formikErrors.client && formikTouched.client) return formikErrors.client\n if (invalidUsername) return 'Invalid login.'\n if (invalidToken) return 'Code is invalid. Please try again.'\n return null\n }\n\n return (\n <>\n {strategy === 'FIDOPasswordless' && (\n {\n setInvalidUsername(false)\n setLocalClientField(values.localClient)\n setLocalRememberMeField(values.localRememberMe)\n assertionOptions()\n }}>\n {({ errors, touched }) => (\n \n )}\n \n )}\n {strategy === 'FIDO2FA' && (\n <>\n \n Insert your hardware key and follow the instructions\n \n assertionOptions()}\n buttonClassName={classes.loginButton}>\n Use FIDO\n \n >\n )}\n >\n )\n}\n\nexport default InputFIDOState\n","import { useMutation, useLazyQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { startAssertion } from '@simplewebauthn/browser'\nimport base64 from 'base-64'\nimport { Field, Form, Formik } from 'formik'\nimport gql from 'graphql-tag'\nimport React, { useContext } from 'react'\nimport { useHistory } from 'react-router-dom'\nimport * as Yup from 'yup'\n\nimport AppContext from 'src/AppContext'\nimport { Button } from 'src/components/buttons'\nimport { Checkbox, SecretInput, TextInput } from 'src/components/inputs/formik'\nimport { Label3, P } from 'src/components/typography'\n\nimport styles from './shared.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst LOGIN = gql`\n mutation login($username: String!, $password: String!) {\n login(username: $username, password: $password)\n }\n`\n\nconst GENERATE_ASSERTION = gql`\n query generateAssertionOptions($domain: String!) {\n generateAssertionOptions(domain: $domain)\n }\n`\n\nconst VALIDATE_ASSERTION = gql`\n mutation validateAssertion(\n $assertionResponse: JSONObject!\n $domain: String!\n ) {\n validateAssertion(assertionResponse: $assertionResponse, domain: $domain)\n }\n`\n\nconst GET_USER_DATA = gql`\n {\n userData {\n id\n username\n role\n }\n }\n`\n\nconst validationSchema = Yup.object().shape({\n email: Yup.string()\n .label('Email')\n .required()\n .email(),\n password: Yup.string().required('Password field is required'),\n rememberMe: Yup.boolean()\n})\n\nconst initialValues = {\n email: '',\n password: '',\n rememberMe: false\n}\n\nconst getErrorMsg = (formikErrors, formikTouched, mutationError) => {\n if (!formikErrors || !formikTouched) return null\n if (mutationError) return 'Invalid email/password combination'\n if (formikErrors.email && formikTouched.email) return formikErrors.email\n if (formikErrors.password && formikTouched.password)\n return formikErrors.password\n return null\n}\n\nconst LoginState = ({ state, dispatch, strategy }) => {\n const classes = useStyles()\n const history = useHistory()\n const { setUserData } = useContext(AppContext)\n\n const [login, { error: loginMutationError }] = useMutation(LOGIN)\n\n const submitLogin = async (username, password, rememberMe) => {\n const options = {\n variables: {\n username,\n password\n },\n context: {\n headers: {\n 'Pazuz-Operator-Identifier': base64.encode(username)\n }\n }\n }\n const { data: loginResponse } = await login(options)\n\n if (!loginResponse.login) return\n\n return dispatch({\n type: loginResponse.login,\n payload: {\n clientField: username,\n passwordField: password,\n rememberMeField: rememberMe\n }\n })\n }\n\n const [validateAssertion, { error: FIDOMutationError }] = useMutation(\n VALIDATE_ASSERTION,\n {\n onCompleted: ({ validateAssertion: success }) => success && getUserData()\n }\n )\n\n const [assertionOptions, { error: assertionQueryError }] = useLazyQuery(\n GENERATE_ASSERTION,\n {\n onCompleted: ({ generateAssertionOptions: options }) => {\n startAssertion(options)\n .then(res => {\n validateAssertion({\n variables: {\n assertionResponse: res,\n domain: window.location.hostname\n }\n })\n })\n .catch(err => {\n console.error(err)\n })\n }\n }\n )\n\n const [getUserData, { error: userDataQueryError }] = useLazyQuery(\n GET_USER_DATA,\n {\n onCompleted: ({ userData }) => {\n setUserData(userData)\n history.push('/')\n }\n }\n )\n\n return (\n \n submitLogin(values.email, values.password, values.rememberMe)\n }>\n {({ errors, touched }) => (\n \n )}\n \n )\n}\n\nexport default LoginState\n","import { useMutation, useQuery, useLazyQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport base64 from 'base-64'\nimport { Form, Formik } from 'formik'\nimport gql from 'graphql-tag'\nimport QRCode from 'qrcode.react'\nimport React, { useContext, useState } from 'react'\nimport { useHistory } from 'react-router-dom'\n\nimport AppContext from 'src/AppContext'\nimport { ActionButton, Button } from 'src/components/buttons'\nimport { CodeInput } from 'src/components/inputs/base'\nimport { Label3, P } from 'src/components/typography'\nimport { primaryColor } from 'src/styling/variables'\n\nimport styles from './shared.styles'\n\nconst SETUP_2FA = gql`\n mutation setup2FA(\n $username: String!\n $password: String!\n $rememberMe: Boolean!\n $codeConfirmation: String!\n ) {\n setup2FA(\n username: $username\n password: $password\n rememberMe: $rememberMe\n codeConfirmation: $codeConfirmation\n )\n }\n`\n\nconst GET_2FA_SECRET = gql`\n query get2FASecret($username: String!, $password: String!) {\n get2FASecret(username: $username, password: $password) {\n secret\n otpauth\n }\n }\n`\n\nconst GET_USER_DATA = gql`\n {\n userData {\n id\n username\n role\n }\n }\n`\n\nconst useStyles = makeStyles(styles)\n\nconst Setup2FAState = ({ state, dispatch }) => {\n const classes = useStyles()\n const history = useHistory()\n const { setUserData } = useContext(AppContext)\n\n const [secret, setSecret] = useState(null)\n const [otpauth, setOtpauth] = useState(null)\n const [isShowing, setShowing] = useState(false)\n\n const [invalidToken, setInvalidToken] = useState(false)\n const [twoFAConfirmation, setTwoFAConfirmation] = useState('')\n\n const handle2FAChange = value => {\n setTwoFAConfirmation(value)\n setInvalidToken(false)\n }\n\n const queryOptions = {\n variables: { username: state.clientField, password: state.passwordField },\n context: {\n headers: {\n 'Pazuz-Operator-Identifier': base64.encode(state.clientField)\n }\n },\n onCompleted: ({ get2FASecret }) => {\n setSecret(get2FASecret.secret)\n setOtpauth(get2FASecret.otpauth)\n }\n }\n\n const mutationOptions = {\n variables: {\n username: state.clientField,\n password: state.passwordField,\n rememberMe: state.rememberMeField,\n codeConfirmation: twoFAConfirmation\n },\n context: {\n headers: {\n 'Pazuz-Operator-Identifier': base64.encode(state.clientField)\n }\n }\n }\n\n const { error: queryError } = useQuery(GET_2FA_SECRET, queryOptions)\n\n const [getUserData] = useLazyQuery(GET_USER_DATA, {\n onCompleted: ({ userData }) => {\n setUserData(userData)\n history.push('/')\n }\n })\n\n const [setup2FA, { error: mutationError }] = useMutation(SETUP_2FA, {\n onCompleted: ({ setup2FA: success }) => {\n const options = {\n context: {\n headers: {\n 'Pazuz-Operator-Identifier': base64.encode(state.clientField)\n }\n }\n }\n success ? getUserData(options) : setInvalidToken(true)\n }\n })\n\n const getErrorMsg = () => {\n if (mutationError || queryError) return 'Internal server error.'\n if (twoFAConfirmation.length !== 6 && invalidToken)\n return 'The code should have 6 characters!'\n if (invalidToken) return 'Code is invalid. Please try again.'\n return null\n }\n\n const handleSubmit = () => {\n if (twoFAConfirmation.length !== 6) {\n setInvalidToken(true)\n return\n }\n setup2FA(mutationOptions)\n }\n\n return (\n secret &&\n otpauth && (\n <>\n \n \n This account does not yet have two-factor authentication enabled. To\n secure the admin, two-factor authentication is required.\n \n \n To complete the registration process, scan the following QR code or\n insert the secret below on a 2FA app, such as Google Authenticator\n or AndOTP.\n \n
\n \n \n
\n \n
Your secret: \n
\n {secret}\n \n
{\n setShowing(!isShowing)\n }}>\n {isShowing ? 'Hide' : 'Show'}\n \n
\n \n {/* TODO: refactor the 2FA CodeInput to properly use Formik */}\n {}} initialValues={{}}>\n \n \n
\n \n {getErrorMsg() && (\n
{getErrorMsg()}
\n )}\n
\n Done\n \n
\n >\n )\n )\n}\n\nexport default Setup2FAState\n","import Paper from '@material-ui/core/Paper'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React, { useReducer } from 'react'\n\nimport { H5 } from 'src/components/typography'\nimport { ReactComponent as Logo } from 'src/styling/icons/menu/logo.svg'\n\nimport Input2FAState from './Input2FAState'\nimport InputFIDOState from './InputFIDOState'\nimport LoginState from './LoginState'\nimport Setup2FAState from './Setup2FAState'\nimport styles from './shared.styles'\nimport { STATES } from './states'\n\n// FIDO2FA, FIDOPasswordless or FIDOUsernameless\nconst AUTHENTICATION_STRATEGY = 'FIDO2FA'\n\nconst useStyles = makeStyles(styles)\n\nconst initialState = {\n twoFAField: '',\n clientField: '',\n passwordField: '',\n rememberMeField: false,\n loginState: STATES.LOGIN\n}\n\nconst reducer = (state, action) => {\n const { type, payload } = action\n return { ...state, ...payload, loginState: type }\n}\n\nconst LoginCard = () => {\n const classes = useStyles()\n\n const [state, dispatch] = useReducer(reducer, initialState)\n\n const renderState = () => {\n switch (state.loginState) {\n case STATES.LOGIN:\n return (\n \n )\n case STATES.INPUT_2FA:\n return \n case STATES.SETUP_2FA:\n return \n case STATES.FIDO:\n return (\n \n )\n default:\n break\n }\n }\n\n return (\n \n \n
\n \n
Lamassu Admin \n \n {renderState()}\n
\n \n )\n}\n\nexport default LoginCard\n","import { makeStyles, Grid } from '@material-ui/core'\nimport React from 'react'\n\nimport LoginCard from './LoginCard'\nimport styles from './shared.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst Login = () => {\n const classes = useStyles()\n\n return (\n \n \n \n \n \n )\n}\n\nexport default Login\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles, Grid } from '@material-ui/core'\nimport Paper from '@material-ui/core/Paper'\nimport { Field, Form, Formik } from 'formik'\nimport gql from 'graphql-tag'\nimport React, { useReducer } from 'react'\nimport { useLocation, useHistory } from 'react-router-dom'\nimport * as Yup from 'yup'\n\nimport { Button } from 'src/components/buttons'\nimport { SecretInput } from 'src/components/inputs/formik'\nimport { H2, Label3, P } from 'src/components/typography'\nimport { ReactComponent as Logo } from 'src/styling/icons/menu/logo.svg'\n\nimport styles from './shared.styles'\n\nconst QueryParams = () => new URLSearchParams(useLocation().search)\nconst useStyles = makeStyles(styles)\n\nconst VALIDATE_REGISTER_LINK = gql`\n query validateRegisterLink($token: String!) {\n validateRegisterLink(token: $token) {\n username\n role\n }\n }\n`\n\nconst REGISTER = gql`\n mutation register(\n $token: String!\n $username: String!\n $password: String!\n $role: String!\n ) {\n register(\n token: $token\n username: $username\n password: $password\n role: $role\n )\n }\n`\n\nconst PASSWORD_MIN_LENGTH = 8\nconst validationSchema = Yup.object({\n password: Yup.string()\n .required('A password is required')\n .min(\n PASSWORD_MIN_LENGTH,\n `Your password must contain at least ${PASSWORD_MIN_LENGTH} characters`\n ),\n confirmPassword: Yup.string()\n .required('Please confirm the password')\n .oneOf([Yup.ref('password')], 'Passwords must match')\n})\n\nconst initialValues = {\n password: '',\n confirmPassword: ''\n}\n\nconst initialState = {\n username: null,\n role: null,\n result: ''\n}\n\nconst reducer = (state, action) => {\n const { type, payload } = action\n return { ...state, ...payload, result: type }\n}\n\nconst getErrorMsg = (\n formikErrors,\n formikTouched,\n queryError,\n mutationError\n) => {\n if (!formikErrors || !formikTouched) return null\n if (queryError || mutationError) return 'Internal server error'\n if (formikErrors.password && formikTouched.password)\n return formikErrors.password\n if (formikErrors.confirmPassword && formikTouched.confirmPassword)\n return formikErrors.confirmPassword\n return null\n}\n\nconst Register = () => {\n const classes = useStyles()\n const history = useHistory()\n const token = QueryParams().get('t')\n const identifier = QueryParams().get('id') ?? null\n\n const [state, dispatch] = useReducer(reducer, initialState)\n\n const queryOptions = {\n context: {\n headers: {\n 'Pazuz-Operator-Identifier': identifier\n }\n },\n variables: { token: token },\n onCompleted: ({ validateRegisterLink: info }) => {\n if (!info) {\n return dispatch({\n type: 'failure'\n })\n }\n dispatch({\n type: 'success',\n payload: {\n username: info.username,\n role: info.role\n }\n })\n },\n onError: () =>\n dispatch({\n type: 'failure'\n })\n }\n\n const { error: queryError, loading } = useQuery(\n VALIDATE_REGISTER_LINK,\n queryOptions\n )\n\n const [register, { error: mutationError }] = useMutation(REGISTER, {\n onCompleted: ({ register: success }) => {\n if (success) history.push('/wizard', { fromAuthRegister: true })\n }\n })\n\n return (\n \n \n \n
\n \n
\n \n
Lamassu Admin \n \n {!loading && state.result === 'success' && (\n
{\n register({\n variables: {\n token: token,\n username: state.username,\n password: values.password,\n role: state.role\n }\n })\n }}>\n {({ errors, touched }) => (\n \n )}\n \n )}\n {!loading && state.result === 'failure' && (\n <>\n
Link has expired \n
\n To obtain a new link, run the command{' '}\n lamassu-register in your server’s terminal.\n \n >\n )}\n
\n \n
\n \n \n )\n}\n\nexport default Register\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles, Grid } from '@material-ui/core'\nimport Paper from '@material-ui/core/Paper'\nimport { Form, Formik } from 'formik'\nimport gql from 'graphql-tag'\nimport QRCode from 'qrcode.react'\nimport React, { useReducer, useState } from 'react'\nimport { useLocation, useHistory } from 'react-router-dom'\n\nimport { ActionButton, Button } from 'src/components/buttons'\nimport { CodeInput } from 'src/components/inputs/base'\nimport { H2, Label2, Label3, P } from 'src/components/typography'\nimport { ReactComponent as Logo } from 'src/styling/icons/menu/logo.svg'\nimport { primaryColor } from 'src/styling/variables'\n\nimport styles from './shared.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst VALIDATE_RESET_2FA_LINK = gql`\n query validateReset2FALink($token: String!) {\n validateReset2FALink(token: $token) {\n user_id\n secret\n otpauth\n }\n }\n`\n\nconst RESET_2FA = gql`\n mutation reset2FA($token: String!, $userID: ID!, $code: String!) {\n reset2FA(token: $token, userID: $userID, code: $code)\n }\n`\n\nconst initialState = {\n userID: null,\n secret: null,\n otpauth: null,\n result: null\n}\n\nconst reducer = (state, action) => {\n const { type, payload } = action\n return { ...state, ...payload, result: type }\n}\n\nconst Reset2FA = () => {\n const classes = useStyles()\n const history = useHistory()\n const QueryParams = () => new URLSearchParams(useLocation().search)\n const token = QueryParams().get('t')\n\n const [isShowing, setShowing] = useState(false)\n const [invalidToken, setInvalidToken] = useState(false)\n const [twoFAConfirmation, setTwoFAConfirmation] = useState('')\n\n const [state, dispatch] = useReducer(reducer, initialState)\n\n const handle2FAChange = value => {\n setTwoFAConfirmation(value)\n setInvalidToken(false)\n }\n\n const { error: queryError, loading } = useQuery(VALIDATE_RESET_2FA_LINK, {\n variables: { token: token },\n onCompleted: ({ validateReset2FALink: info }) => {\n if (!info) {\n dispatch({\n type: 'failure'\n })\n } else {\n dispatch({\n type: 'success',\n payload: {\n userID: info.user_id,\n secret: info.secret,\n otpauth: info.otpauth\n }\n })\n }\n },\n onError: () => {\n dispatch({\n type: 'failure'\n })\n }\n })\n\n const [reset2FA, { error: mutationError }] = useMutation(RESET_2FA, {\n onCompleted: ({ reset2FA: success }) => {\n success ? history.push('/') : setInvalidToken(true)\n }\n })\n\n const getErrorMsg = () => {\n if (queryError) return 'Internal server error'\n if (twoFAConfirmation.length !== 6 && invalidToken)\n return 'The code should have 6 characters!'\n if (mutationError || invalidToken)\n return 'Code is invalid. Please try again.'\n return null\n }\n\n const handleSubmit = () => {\n if (twoFAConfirmation.length !== 6) {\n setInvalidToken(true)\n return\n }\n reset2FA({\n variables: {\n token: token,\n userID: state.userID,\n code: twoFAConfirmation\n }\n })\n }\n\n return (\n \n \n \n
\n \n
\n \n
Lamassu Admin \n \n {!loading && state.result === 'success' && (\n <>\n
\n \n To finish this process, please scan the following QR code\n or insert the secret further below on an authentication\n app of your choice, such Google Authenticator or Authy.\n \n
\n
\n \n
\n
\n
\n Your secret:\n \n
\n {state.secret}\n \n
{\n setShowing(!isShowing)\n }}>\n {isShowing ? 'Hide' : 'Show'}\n \n
\n
\n {/* TODO: refactor the 2FA CodeInput to properly use Formik */}\n {}} initialValues={{}}>\n \n \n
\n
\n {getErrorMsg() && (\n
{getErrorMsg()}
\n )}\n
\n Done\n \n
\n >\n )}\n {!loading && state.result === 'failure' && (\n <>\n
Link has expired \n >\n )}\n
\n \n
\n \n \n )\n}\n\nexport default Reset2FA\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles, Grid } from '@material-ui/core'\nimport Paper from '@material-ui/core/Paper'\nimport { Field, Form, Formik } from 'formik'\nimport gql from 'graphql-tag'\nimport React, { useState } from 'react'\nimport { useLocation, useHistory } from 'react-router-dom'\nimport * as Yup from 'yup'\n\nimport { Button } from 'src/components/buttons'\nimport { SecretInput } from 'src/components/inputs/formik/'\nimport { H2, Label3, P } from 'src/components/typography'\nimport { ReactComponent as Logo } from 'src/styling/icons/menu/logo.svg'\n\nimport styles from './shared.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst VALIDATE_RESET_PASSWORD_LINK = gql`\n query validateResetPasswordLink($token: String!) {\n validateResetPasswordLink(token: $token) {\n id\n }\n }\n`\n\nconst RESET_PASSWORD = gql`\n mutation resetPassword($token: String!, $userID: ID!, $newPassword: String!) {\n resetPassword(token: $token, userID: $userID, newPassword: $newPassword)\n }\n`\n\nconst validationSchema = Yup.object().shape({\n password: Yup.string()\n .required('A new password is required')\n .test(\n 'len',\n 'New password must contain more than 8 characters',\n val => val.length >= 8\n ),\n confirmPassword: Yup.string().oneOf(\n [Yup.ref('password'), null],\n 'Passwords must match'\n )\n})\n\nconst initialValues = {\n password: '',\n confirmPassword: ''\n}\n\nconst getErrorMsg = (formikErrors, formikTouched, mutationError) => {\n if (!formikErrors || !formikTouched) return null\n if (mutationError) return 'Internal server error'\n if (formikErrors.password && formikTouched.password)\n return formikErrors.password\n if (formikErrors.confirmPassword && formikTouched.confirmPassword)\n return formikErrors.confirmPassword\n return null\n}\n\nconst ResetPassword = () => {\n const classes = useStyles()\n const history = useHistory()\n const QueryParams = () => new URLSearchParams(useLocation().search)\n const token = QueryParams().get('t')\n const [userID, setUserID] = useState(null)\n const [isLoading, setLoading] = useState(true)\n const [wasSuccessful, setSuccess] = useState(false)\n\n useQuery(VALIDATE_RESET_PASSWORD_LINK, {\n variables: { token: token },\n onCompleted: ({ validateResetPasswordLink: info }) => {\n setLoading(false)\n if (!info) {\n setSuccess(false)\n } else {\n setSuccess(true)\n setUserID(info.id)\n }\n },\n onError: () => {\n setLoading(false)\n setSuccess(false)\n }\n })\n\n const [resetPassword, { error }] = useMutation(RESET_PASSWORD, {\n onCompleted: ({ resetPassword: success }) => {\n if (success) history.push('/')\n }\n })\n\n return (\n \n \n \n
\n \n
\n \n
Lamassu Admin \n \n {!isLoading && wasSuccessful && (\n
{\n resetPassword({\n variables: {\n token: token,\n userID: userID,\n newPassword: values.confirmPassword\n }\n })\n }}>\n {({ errors, touched }) => (\n \n )}\n \n )}\n {!isLoading && !wasSuccessful && (\n <>\n
Link has expired \n >\n )}\n
\n \n
\n \n \n )\n}\n\nexport default ResetPassword\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Styleguide\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/direction/cash-in\",\n transform: \"translate(-1.000000, 0.000000)\",\n fill: \"#16D6D3\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.99134364,0.321790399 L10.1430099,4.40569595 C11.0271728,4.99266501 11.2660914,6.1822461 10.6766494,7.06269968 C10.5357408,7.27317585 10.3543728,7.45378298 10.1430099,7.59410043 L3.99134364,11.678006 C3.10718075,12.264975 1.91258801,12.0270588 1.32314609,11.1466052 C1.11243854,10.8318699 1,10.4620686 1,10.0838037 L1,1.91599264 C1,0.857819122 1.86143307,0 2.92406462,0 C3.30392305,0 3.67528233,0.11196683 3.99134364,0.321790399 Z\",\n id: \"Path-3\"\n})));\n\nfunction SvgCashIn(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"10px\",\n height: \"12px\",\n viewBox: \"0 0 10 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCashIn);\nexport default __webpack_public_path__ + \"static/media/cash-in.c06970a7.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Styleguide\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/direction/cash-out\",\n transform: \"translate(-1.000000, 0.000000)\",\n fill: \"#5A67FF\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.99134364,0.321790399 L10.1430099,4.40569595 C11.0271728,4.99266501 11.2660914,6.1822461 10.6766494,7.06269968 C10.5357408,7.27317585 10.3543728,7.45378298 10.1430099,7.59410043 L3.99134364,11.678006 C3.10718075,12.264975 1.91258801,12.0270588 1.32314609,11.1466052 C1.11243854,10.8318699 1,10.4620686 1,10.0838037 L1,1.91599264 C1,0.857819122 1.86143307,0 2.92406462,0 C3.30392305,0 3.67528233,0.11196683 3.99134364,0.321790399 Z\",\n id: \"Path-3\",\n transform: \"translate(6.000000, 6.000000) scale(-1, 1) translate(-6.000000, -6.000000) \"\n})));\n\nfunction SvgCashOut(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"10px\",\n height: \"12px\",\n viewBox: \"0 0 10 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCashOut);\nexport default __webpack_public_path__ + \"static/media/cash-out.f029ae96.svg\";\nexport { ForwardRef as ReactComponent };","import typographyStyles from 'src/components/typography/styles'\nimport {\n spacer,\n white,\n primaryColor,\n zircon,\n zircon2,\n offDarkColor\n} from 'src/styling/variables'\nconst { label1 } = typographyStyles\n\nconst styles = {\n headerLabels: {\n display: 'flex',\n flexDirection: 'row',\n '& > div:first-child': {\n display: 'flex',\n alignItems: 'center',\n marginLeft: 0\n },\n '& > div': {\n display: 'flex',\n alignItems: 'center',\n marginLeft: 25\n },\n '& > div:last-child': {\n display: 'flex',\n alignItems: 'center',\n marginLeft: 64\n },\n '& > div > span': {\n extend: label1,\n marginLeft: 7\n }\n },\n root: {\n flexGrow: 1,\n display: 'flex',\n marginBottom: 120\n },\n emptyMachinesRoot: {\n height: 300,\n backgroundColor: zircon,\n border: `solid 2px ${zircon2}`\n },\n card: {\n wordWrap: 'break-word',\n boxShadow: '0 0 4px 0 rgba(0, 0, 0, 0.08)',\n borderRadius: 12,\n padding: 24,\n backgroundColor: white,\n flex: 1,\n marginRight: 24\n },\n container: {\n display: 'flex',\n justifyContent: 'space-between'\n },\n button: {\n color: primaryColor,\n minHeight: 0,\n minWidth: 0,\n padding: 0,\n textTransform: 'none',\n '&:hover': {\n backgroundColor: 'transparent'\n }\n },\n upperButtonLabel: {\n textAlign: 'center',\n marginBottom: 0,\n marginTop: 0,\n marginLeft: spacer\n },\n alertsCard: {\n marginBottom: spacer\n },\n h4: {\n marginTop: 0\n },\n centerLabel: {\n marginTop: 40,\n marginBottom: 0\n },\n systemStatusCard: {\n flex: 1,\n marginTop: spacer\n },\n expandedCard: {\n flex: 0.9\n },\n shrunkCard: {\n flex: 0.1\n },\n displayFlex: {\n display: 'flex',\n flexDirection: 'column'\n },\n inline: {\n display: 'inline'\n },\n emptyMachinesContent: {\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n justifyContent: 'center',\n alignItems: 'center',\n '& > :first-child': {\n marginTop: 0\n },\n '& > *': {\n marginTop: 25\n }\n },\n offColor: {\n color: offDarkColor\n }\n}\n\nexport default styles\n","import * as R from 'ramda'\n\nconst namespaces = {\n ADVANCED: 'advanced',\n CASH_IN: 'cashIn',\n CASH_OUT: 'cashOut',\n WALLETS: 'wallets',\n OPERATOR_INFO: 'operatorInfo',\n NOTIFICATIONS: 'notifications',\n LOCALE: 'locale',\n COMMISSIONS: 'commissions',\n RECEIPT: 'receipt',\n COIN_ATM_RADAR: 'coinAtmRadar',\n TERMS_CONDITIONS: 'termsConditions',\n TRIGGERS: 'triggersConfig'\n}\n\nconst mapKeys = R.curry((fn, obj) =>\n R.fromPairs(R.map(R.adjust(0, fn), R.toPairs(obj)))\n)\n\nconst filterByKey = R.curry((fn, obj) =>\n R.fromPairs(R.filter(it => fn(it[0]), R.toPairs(obj)))\n)\n\nconst stripl = R.curry((q, str) =>\n R.startsWith(q, str) ? str.slice(q.length) : str\n)\n\nconst filtered = key => filterByKey(R.startsWith(`${key}_`))\nconst stripped = key => mapKeys(stripl(`${key}_`))\n\nconst fromNamespace = R.curry((key, config) =>\n R.compose(stripped(key), filtered(key))(config)\n)\n\nconst toNamespace = R.curry((key, config) =>\n mapKeys(it => `${key}_${it}`)(config)\n)\n\nexport { fromNamespace, toNamespace, namespaces }\n","import { offColor, white, spacer } from 'src/styling/variables'\n\nconst styles = {\n label: {\n color: offColor\n },\n headerLabels: {\n whiteSpace: 'pre',\n display: 'flex',\n flexDirection: 'row',\n marginTop: -20\n },\n headerLabel: {\n display: 'flex',\n alignItems: 'center'\n },\n txOutMargin: {\n marginLeft: spacer * 3\n },\n tickerLabel: {\n color: offColor,\n marginTop: -5\n },\n footer1: {\n left: 0,\n bottom: 0,\n position: 'fixed',\n width: '100vw',\n backgroundColor: white,\n textAlign: 'left',\n zIndex: 1,\n boxShadow: '0px -1px 10px 0px rgba(50, 50, 50, 0.1)',\n minHeight: spacer * 12,\n transition: 'min-height 0.5s ease-out',\n '&:hover': {\n transition: 'min-height 0.5s ease-in',\n minHeight: 200\n }\n },\n content1: {\n width: 1200,\n maxHeight: 100,\n backgroundColor: white,\n zIndex: 2,\n bottom: -spacer,\n margin: '0 auto'\n }\n}\n\nexport default styles\n","/* eslint-disable no-unused-vars */\nimport { useQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport Grid from '@material-ui/core/Grid'\nimport BigNumber from 'bignumber.js'\nimport classnames from 'classnames'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { Label2 } from 'src/components/typography'\nimport { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport { fromNamespace } from 'src/utils/config'\n\nimport styles from './Footer.styles'\nconst GET_DATA = gql`\n query getData {\n cryptoRates\n cryptoCurrencies {\n code\n display\n }\n config\n accountsConfig {\n code\n display\n }\n }\n`\n\nBigNumber.config({ ROUNDING_MODE: BigNumber.ROUND_HALF_UP })\n\nconst useStyles = makeStyles(styles)\nconst Footer = () => {\n const { data } = useQuery(GET_DATA)\n\n const withCommissions = R.path(['cryptoRates', 'withCommissions'])(data) ?? {}\n const classes = useStyles()\n const config = R.path(['config'])(data) ?? {}\n const canExpand = R.keys(withCommissions).length > 4\n\n const wallets = fromNamespace('wallets')(config)\n const cryptoCurrencies = R.path(['cryptoCurrencies'])(data) ?? []\n const accountsConfig = R.path(['accountsConfig'])(data) ?? []\n const localeFiatCurrency = R.path(['locale_fiatCurrency'])(config) ?? ''\n\n const renderFooterItem = key => {\n const idx = R.findIndex(R.propEq('code', key))(cryptoCurrencies)\n const tickerCode = wallets[`${key}_ticker`]\n const tickerIdx = R.findIndex(R.propEq('code', tickerCode))(accountsConfig)\n\n const tickerName = tickerIdx > -1 ? accountsConfig[tickerIdx].display : ''\n\n const cashInNoCommission = parseFloat(\n R.path(['cryptoRates', 'withoutCommissions', key, 'cashIn'])(data)\n )\n const cashOutNoCommission = parseFloat(\n R.path(['cryptoRates', 'withoutCommissions', key, 'cashOut'])(data)\n )\n\n const avgOfAskBid = new BigNumber(\n (cashInNoCommission + cashOutNoCommission) / 2\n ).toFormat(2)\n const cashIn = new BigNumber(\n parseFloat(\n R.path(['cryptoRates', 'withCommissions', key, 'cashIn'])(data)\n )\n ).toFormat(2)\n const cashOut = new BigNumber(\n parseFloat(\n R.path(['cryptoRates', 'withCommissions', key, 'cashOut'])(data)\n )\n ).toFormat(2)\n\n return (\n \n \n {cryptoCurrencies[idx].display}\n \n \n
\n \n {` ${cashIn} ${localeFiatCurrency}`} \n
\n
\n \n {` ${cashOut} ${localeFiatCurrency}`} \n
\n
\n {`${tickerName}: ${avgOfAskBid} ${localeFiatCurrency}`} \n \n )\n }\n\n return (\n \n
\n \n \n {R.keys(withCommissions).map(key => renderFooterItem(key))}\n \n \n
\n
\n )\n}\n\nexport default Footer\n","import Footer from './Footer'\nexport default Footer\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"path-100\",\n cx: 80,\n cy: 80,\n r: 80\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"path-300\",\n x: 28,\n y: 44,\n width: 104,\n height: 116,\n rx: 4\n}), /*#__PURE__*/React.createElement(\"filter\", {\n x: \"-23.1%\",\n y: \"-20.7%\",\n width: \"146.2%\",\n height: \"141.4%\",\n filterUnits: \"objectBoundingBox\",\n id: \"filter-4\"\n}, /*#__PURE__*/React.createElement(\"feOffset\", {\n dx: 0,\n dy: 0,\n in: \"SourceAlpha\",\n result: \"shadowOffsetOuter1\"\n}), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 8,\n in: \"shadowOffsetOuter1\",\n result: \"shadowBlurOuter1\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08 0\",\n type: \"matrix\",\n in: \"shadowBlurOuter1\"\n})), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"path-5\",\n x: 37,\n y: 66,\n width: 84,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask-6\",\n maskContentUnits: \"userSpaceOnUse\",\n maskUnits: \"objectBoundingBox\",\n x: 0,\n y: 0,\n width: 84,\n height: 8,\n fill: \"white\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#path-5\"\n})), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"path-7\",\n x: 37,\n y: 78,\n width: 84,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask-8\",\n maskContentUnits: \"userSpaceOnUse\",\n maskUnits: \"objectBoundingBox\",\n x: 0,\n y: 0,\n width: 84,\n height: 8,\n fill: \"white\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#path-7\"\n})), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"path-9\",\n x: 37,\n y: 90,\n width: 84,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask-10\",\n maskContentUnits: \"userSpaceOnUse\",\n maskUnits: \"objectBoundingBox\",\n x: 0,\n y: 0,\n width: 84,\n height: 8,\n fill: \"white\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#path-9\"\n})), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"path-11\",\n x: 37,\n y: 102,\n width: 84,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask-12\",\n maskContentUnits: \"userSpaceOnUse\",\n maskUnits: \"objectBoundingBox\",\n x: 0,\n y: 0,\n width: 84,\n height: 8,\n fill: \"white\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#path-11\"\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"\\\\u21B3-v13a\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"transactions_v13a#1-(empty-table)\",\n transform: \"translate(-640.000000, -220.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2\",\n transform: \"translate(640.000000, 220.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Rectangle\"\n}, /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask-200\",\n fill: \"white\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#path-100\"\n})), /*#__PURE__*/React.createElement(\"use\", {\n id: \"Mask\",\n fill: \"#EBEFFF\",\n xlinkHref: \"#path-100\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n mask: \"url(#mask-200)\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n fill: \"black\",\n fillOpacity: 1,\n filter: \"url(#filter-4)\",\n xlinkHref: \"#path-300\"\n}), /*#__PURE__*/React.createElement(\"use\", {\n fill: \"#FFFFFF\",\n fillRule: \"evenodd\",\n xlinkHref: \"#path-300\"\n}))), /*#__PURE__*/React.createElement(\"use\", {\n id: \"Rectangle\",\n stroke: \"#5F668A\",\n mask: \"url(#mask-6)\",\n strokeDasharray: 1,\n xlinkHref: \"#path-5\"\n}), /*#__PURE__*/React.createElement(\"use\", {\n id: \"Rectangle-Copy\",\n stroke: \"#5F668A\",\n mask: \"url(#mask-8)\",\n strokeDasharray: 1,\n xlinkHref: \"#path-7\"\n}), /*#__PURE__*/React.createElement(\"use\", {\n id: \"Rectangle-Copy-2\",\n stroke: \"#5F668A\",\n mask: \"url(#mask-10)\",\n strokeDasharray: 1,\n xlinkHref: \"#path-9\"\n}), /*#__PURE__*/React.createElement(\"use\", {\n id: \"Rectangle-Copy-3\",\n stroke: \"#5F668A\",\n mask: \"url(#mask-12)\",\n strokeDasharray: 1,\n xlinkHref: \"#path-11\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle\",\n fill: \"#EBEFFF\",\n x: 37,\n y: 56,\n width: 84,\n height: 6,\n rx: 2\n}))));\n\nfunction SvgEmptyTable(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"160px\",\n height: \"160px\",\n viewBox: \"0 0 160 160\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmptyTable);\nexport default __webpack_public_path__ + \"static/media/empty-table.250884a9.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core'\nimport classNames from 'classnames'\nimport React, { memo } from 'react'\n\nimport { H4 } from 'src/components/typography'\nimport { ReactComponent as EmptyTableIcon } from 'src/styling/icons/table/empty-table.svg'\n\nconst styles = {\n emptyTable: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n marginTop: 52\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst EmptyTable = memo(({ message, className }) => {\n const classes = useStyles()\n\n return (\n \n \n
{message} \n \n )\n})\n\nexport default EmptyTable\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nconst useStyles = makeStyles({\n table: {\n // backgroundColor: tableHeaderColor,\n tableLayout: 'fixed',\n borderCollapse: 'separate',\n borderSpacing: '0 0'\n }\n})\n\nconst Table = memo(({ className, children, ...props }) => {\n const classes = useStyles()\n return (\n \n )\n})\n\nexport default Table\n","import React, { memo } from 'react'\n\nconst TableBody = memo(({ children, ...props }) => (\n {children} \n))\n\nexport default TableBody\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport { spacer } from 'src/styling/variables'\n\nconst useStyles = makeStyles({\n td: {\n padding: [[0, spacer * 3]]\n },\n alignRight: {\n textAlign: 'right'\n }\n})\n\nconst TableCell = memo(\n ({ colspan, rightAlign, className, children, ...props }) => {\n const classes = useStyles()\n const styles = {\n [classes.td]: true,\n [classes.alignRight]: rightAlign\n }\n\n return (\n \n {children}\n \n )\n }\n)\n\nexport default TableCell\n","import React, { memo } from 'react'\n\nconst TableHead = memo(({ children, ...props }) => (\n {children} \n))\n\nexport default TableHead\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport typographyStyles from 'src/components/typography/styles'\nimport {\n tableHeaderColor,\n tableHeaderHeight,\n spacer,\n white\n} from 'src/styling/variables'\n\nconst { tl2 } = typographyStyles\n\nconst useStyles = makeStyles({\n th: {\n extend: tl2,\n backgroundColor: tableHeaderColor,\n height: tableHeaderHeight,\n textAlign: 'left',\n color: white,\n padding: `0 ${spacer * 3}px`\n },\n alignRight: {\n textAlign: 'right'\n }\n})\n\nconst TableHeaderCell = memo(\n ({ rightAlign, children, className, ...props }) => {\n const classes = useStyles()\n const styles = {\n [classes.th]: true,\n [classes.alignRight]: rightAlign\n }\n\n return (\n \n {children}\n \n )\n }\n)\n\nexport default TableHeaderCell\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport typographyStyles from 'src/components/typography/styles'\nimport {\n tableCellColor,\n tableCellHeight,\n tableSmCellHeight,\n tableLgCellHeight,\n tableErrorColor,\n tableSuccessColor\n} from 'src/styling/variables'\n\nconst { info2, p } = typographyStyles\n\nconst useStyles = makeStyles({\n tr: {\n extend: p,\n padding: 4,\n height: tableCellHeight,\n backgroundColor: tableCellColor\n },\n lg: {\n extend: info2,\n height: tableLgCellHeight\n },\n sm: {\n height: tableSmCellHeight\n },\n error: {\n backgroundColor: tableErrorColor\n },\n success: {\n backgroundColor: tableSuccessColor\n }\n})\n\nconst TableRow = memo(\n ({ className, children, header, error, success, size = 'sm', ...props }) => {\n const classes = useStyles()\n const classnamesObj = {\n [classes.tr]: !header,\n [classes.sm]: !header && size === 'sm',\n [classes.lg]: !header && size === 'lg',\n [classes.error]: error,\n [classes.success]: success\n }\n\n return (\n \n {children}\n \n )\n }\n)\n\nexport default TableRow\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/label/icon/down\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-6\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n fill: \"#FFECEB\",\n cx: 6,\n cy: 6,\n r: 6\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\",\n transform: \"translate(6.096194, 6.096194) rotate(-315.000000) translate(-6.096194, -6.096194) translate(2.596194, 3.096194)\",\n stroke: \"#FF584A\"\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path-2\",\n points: \"3.15780333 -4.54747351e-13 6.15780333 2.82998193 3.15780333 5.65996386\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 5.42178888,\n y1: 2.82998193,\n x2: -5.45696821e-13,\n y2: 2.82998193,\n id: \"Path-3\"\n}))));\n\nfunction SvgDown(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDown);\nexport default __webpack_public_path__ + \"static/media/down.919a0c2a.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/label/icon/equal\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-6\",\n fill: \"#EBEFFF\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n cx: 6,\n cy: 6,\n r: 6\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group\",\n transform: \"translate(4.000000, 4.000000)\",\n stroke: \"#5F668A\",\n strokeLinecap: \"square\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 1,\n x2: 4,\n y2: 1,\n id: \"Line-12\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 3,\n x2: 4,\n y2: 3,\n id: \"Line-12\"\n})));\n\nfunction SvgEqual(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEqual);\nexport default __webpack_public_path__ + \"static/media/equal.f4103789.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/label/icon/up\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-6\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n fill: \"#ECFBEF\",\n cx: 6,\n cy: 6,\n r: 6\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\",\n transform: \"translate(6.096194, 6.096194) rotate(-45.000000) translate(-6.096194, -6.096194) translate(2.596194, 3.096194)\",\n stroke: \"#00CD5A\"\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path-2\",\n points: \"3.15780333 -4.54747351e-13 6.15780333 2.82998193 3.15780333 5.65996386\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 5.42178888,\n y1: 2.82998193,\n x2: -5.45696821e-13,\n y2: 2.82998193,\n id: \"Path-3\"\n}))));\n\nfunction SvgUp(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgUp);\nexport default __webpack_public_path__ + \"static/media/up.bcdf0fc7.svg\";\nexport { ForwardRef as ReactComponent };","import { intervalToDuration } from 'date-fns'\nimport { getTimezoneOffset } from 'date-fns-tz'\nimport * as R from 'ramda'\n\nconst timezones = {\n 'Pacific/Midway': { short: 'SST', long: 'Midway Island, Samoa' },\n 'Pacific/Honolulu': { short: 'HAST', long: 'Hawaii' },\n 'America/Juneau': { short: 'AKST', long: 'Alaska' },\n 'America/Boise': { short: 'MST', long: 'Mountain Time' },\n 'America/Dawson': { short: 'MST', long: 'Dawson, Yukon' },\n 'America/Chihuahua': { short: null, long: 'Chihuahua, La Paz, Mazatlan' },\n 'America/Phoenix': { short: 'MST', long: 'Arizona' },\n 'America/Chicago': { short: 'CST', long: 'Central Time' },\n 'America/Regina': { short: 'CST', long: 'Saskatchewan' },\n 'America/Mexico_City': {\n short: 'CST',\n long: 'Guadalajara, Mexico City, Monterrey'\n },\n 'America/Belize': { short: 'CST', long: 'Central America' },\n 'America/Detroit': { short: 'EST', long: 'Eastern Time' },\n 'America/Bogota': { short: 'COT', long: 'Bogota, Lima, Quito' },\n 'America/Caracas': { short: 'VET', long: 'Caracas, La Paz' },\n 'America/Santiago': { short: 'CLST', long: 'Santiago' },\n 'America/St_Johns': { short: 'HNTN', long: 'Newfoundland and Labrador' },\n 'America/Sao_Paulo': { short: 'BRT', long: 'Brasilia' },\n 'America/Tijuana': { short: 'PST', long: 'Tijuana' },\n 'America/Montevideo': { short: 'UYT', long: 'Montevideo' },\n 'America/Argentina/Buenos_Aires': {\n short: null,\n long: 'Buenos Aires, Georgetown'\n },\n 'America/Godthab': { short: null, long: 'Greenland' },\n 'America/Los_Angeles': { short: 'PST', long: 'Pacific Time' },\n 'Atlantic/Azores': { short: 'AZOT', long: 'Azores' },\n 'Atlantic/Cape_Verde': { short: 'CVT', long: 'Cape Verde Islands' },\n GMT: { short: 'GMT', long: 'UTC' },\n 'Europe/London': { short: 'GMT', long: 'Edinburgh, London' },\n 'Europe/Dublin': { short: 'GMT', long: 'Dublin' },\n 'Europe/Lisbon': { short: 'WET', long: 'Lisbon' },\n 'Africa/Casablanca': { short: 'WET', long: 'Casablanca, Monrovia' },\n 'Atlantic/Canary': { short: 'WET', long: 'Canary Islands' },\n 'Europe/Belgrade': {\n short: 'CET',\n long: 'Belgrade, Bratislava, Budapest, Ljubljana, Prague'\n },\n 'Europe/Sarajevo': { short: 'CET', long: 'Sarajevo, Skopje, Warsaw, Zagreb' },\n 'Europe/Brussels': {\n short: 'CET',\n long: 'Brussels, Copenhagen, Madrid, Paris'\n },\n 'Europe/Amsterdam': {\n short: 'CET',\n long: 'Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna'\n },\n 'Africa/Algiers': { short: 'CET', long: 'West Central Africa' },\n 'Europe/Bucharest': { short: 'EET', long: 'Bucharest' },\n 'Africa/Cairo': { short: 'EET', long: 'Cairo' },\n 'Europe/Helsinki': {\n short: 'EET',\n long: 'Helsinki, Kiev, Riga, Sofia, Tallinn, Vilnius'\n },\n 'Europe/Athens': { short: 'EET', long: 'Athens, Istanbul, Minsk' },\n 'Asia/Jerusalem': { short: 'IST', long: 'Jerusalem' },\n 'Africa/Harare': { short: 'CAT', long: 'Harare, Pretoria' },\n 'Europe/Moscow': { short: 'MSK', long: 'Moscow, St. Petersburg, Volgograd' },\n 'Asia/Kuwait': { short: 'AST', long: 'Kuwait, Riyadh' },\n 'Africa/Nairobi': { short: 'EAT', long: 'Nairobi' },\n 'Asia/Baghdad': { short: 'AST', long: 'Baghdad' },\n 'Asia/Tehran': { short: 'IRST', long: 'Tehran' },\n 'Asia/Dubai': { short: 'GST', long: 'Abu Dhabi, Muscat' },\n 'Asia/Baku': { short: 'AZT', long: 'Baku, Tbilisi, Yerevan' },\n 'Asia/Kabul': { short: 'AFT', long: 'Kabul' },\n 'Asia/Yekaterinburg': { short: 'YEKT', long: 'Ekaterinburg' },\n 'Asia/Karachi': { short: 'PKT', long: 'Islamabad, Karachi, Tashkent' },\n 'Asia/Kolkata': { short: 'IST', long: 'Chennai, Kolkata, Mumbai, New Delhi' },\n 'Asia/Kathmandu': { short: null, long: 'Kathmandu' },\n 'Asia/Dhaka': { short: 'BST', long: 'Astana, Dhaka' },\n 'Asia/Colombo': { short: 'IST', long: 'Sri Jayawardenepura' },\n 'Asia/Almaty': { short: 'ALMT', long: 'Almaty, Novosibirsk' },\n 'Asia/Rangoon': { short: null, long: 'Yangon Rangoon' },\n 'Asia/Bangkok': { short: 'ICT', long: 'Bangkok, Hanoi, Jakarta' },\n 'Asia/Krasnoyarsk': { short: 'KRAT', long: 'Krasnoyarsk' },\n 'Asia/Shanghai': {\n short: 'CST',\n long: 'Beijing, Chongqing, Hong Kong SAR, Urumqi'\n },\n 'Asia/Kuala_Lumpur': { short: 'MYT', long: 'Kuala Lumpur, Singapore' },\n 'Asia/Taipei': { short: 'CST', long: 'Taipei' },\n 'Australia/Perth': { short: 'AWST', long: 'Perth' },\n 'Asia/Irkutsk': { short: 'IRKT', long: 'Irkutsk, Ulaanbaatar' },\n 'Asia/Seoul': { short: 'KST', long: 'Seoul' },\n 'Asia/Tokyo': { short: 'JST', long: 'Osaka, Sapporo, Tokyo' },\n 'Asia/Yakutsk': { short: 'YAKT', long: 'Yakutsk' },\n 'Australia/Darwin': { short: 'ACST', long: 'Darwin' },\n 'Australia/Adelaide': { short: 'ACDT', long: 'Adelaide' },\n 'Australia/Sydney': { short: 'AEDT', long: 'Canberra, Melbourne, Sydney' },\n 'Australia/Brisbane': { short: 'AEST', long: 'Brisbane' },\n 'Australia/Hobart': { short: 'AEDT', long: 'Hobart' },\n 'Asia/Vladivostok': { short: 'VLAT', long: 'Vladivostok' },\n 'Pacific/Guam': { short: 'ChST', long: 'Guam, Port Moresby' },\n 'Asia/Magadan': {\n short: 'MAGT',\n long: 'Magadan, Solomon Islands, New Caledonia'\n },\n 'Asia/Kamchatka': { short: 'PETT', long: 'Kamchatka, Marshall Islands' },\n 'Pacific/Fiji': { short: 'FJT', long: 'Fiji Islands' },\n 'Pacific/Auckland': { short: 'NZDT', long: 'Auckland, Wellington' },\n 'Pacific/Tongatapu': { short: null, long: \"Nuku'alofa\" }\n}\n\nconst buildTzLabels = timezoneList => {\n const pairs = R.toPairs(timezoneList)\n return R.reduce(\n (acc, value) => {\n const isNegative = getTimezoneOffset(value[0]) < 0\n const duration = intervalToDuration({\n start: 0,\n end: Math.abs(getTimezoneOffset(value[0]))\n })\n\n const hours = duration.hours.toLocaleString('en-US', {\n minimumIntegerDigits: 2,\n useGrouping: false\n })\n const minutes = duration.minutes.toLocaleString('en-US', {\n minimumIntegerDigits: 2,\n useGrouping: false\n })\n\n const prefix = `(GMT${isNegative ? `-` : `+`}${hours}:${minutes})`\n\n acc.push({\n label: `${prefix} - ${value[1].long}`,\n code: value[0]\n })\n\n return acc\n },\n [],\n pairs\n )\n}\n\nconst labels = buildTzLabels(timezones)\n\nexport { labels, timezones }\n","import { zonedTimeToUtc, utcToZonedTime } from 'date-fns-tz/fp'\nimport { format } from 'date-fns/fp'\n\nconst toUtc = date => {\n const browserTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone\n return zonedTimeToUtc(browserTimezone, date)\n}\n\nconst toTimezone = (date, timezone) => {\n const browserTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone\n return utcToZonedTime(timezone, zonedTimeToUtc(browserTimezone, date))\n}\n\nconst formatDate = (date, timezone, pattern) => {\n const browserTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone\n const newDate = utcToZonedTime(\n timezone,\n zonedTimeToUtc(browserTimezone, date)\n )\n return format(pattern, newDate)\n}\n\nconst formatDateNonUtc = (date, pattern) => format(pattern, date)\n\nexport { toUtc, toTimezone, formatDate, formatDateNonUtc }\n","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport { Label1 } from 'src/components/typography/index'\nimport { java, neon, white } from 'src/styling/variables'\n\nconst styles = {\n wrapper: {\n display: 'flex',\n height: 142\n },\n percentageBox: {\n height: 142,\n borderRadius: 4,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n whiteSpace: 'pre'\n },\n label: {\n color: white\n },\n inColor: {\n backgroundColor: java\n },\n outColor: {\n backgroundColor: neon\n },\n other: {\n minWidth: '6px',\n borderRadius: 2\n },\n inWidth: {\n width: value => `${value}%`,\n marginRight: value => (value === 100 ? 0 : 4)\n },\n outWidth: {\n width: value => `${100 - value}%`\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst PercentageChart = ({ cashIn, cashOut }) => {\n const value = cashIn || cashOut !== 0 ? cashIn : 50\n const classes = useStyles(value)\n\n const buildPercentageView = value => {\n if (value <= 15) return\n return {value}% \n }\n\n const percentageClasses = {\n [classes.percentageBox]: true,\n [classes.other]: value < 5 && value > 0\n }\n\n return (\n \n
\n {buildPercentageView(value, 'cashIn')}\n
\n
\n {buildPercentageView(100 - value, 'cashOut')}\n
\n
\n )\n}\n\nexport default PercentageChart\n","import * as d3 from 'd3'\nimport * as R from 'ramda'\nimport React, { useEffect, useRef, useCallback } from 'react'\n\nimport { backgroundColor, zircon, primaryColor } from 'src/styling/variables'\n\nconst transactionProfit = tx => {\n const cashInFee = tx.cashInFee ? Number.parseFloat(tx.cashInFee) : 0\n const commission =\n Number.parseFloat(tx.commissionPercentage) * Number.parseFloat(tx.fiat)\n return commission + cashInFee\n}\n\nconst mockPoint = (tx, offsetMs, profit) => {\n const date = new Date(new Date(tx.created).getTime() + offsetMs).toISOString()\n return { created: date, profit }\n}\n\n// if we're viewing transactions for the past day, then we group by hour. If not, we group by day\nconst formatDay = ({ created }) =>\n new Date(created).toISOString().substring(0, 10)\nconst formatHour = ({ created }) =>\n new Date(created).toISOString().substring(0, 13)\n\nconst reducer = (acc, tx) => {\n const currentProfit = acc.profit || 0\n return { ...tx, profit: currentProfit + transactionProfit(tx) }\n}\n\nconst timeFrameMS = {\n Day: 24 * 3600 * 1000,\n Week: 7 * 24 * 3600 * 1000,\n Month: 30 * 24 * 3600 * 1000\n}\n\nconst RefLineChart = ({\n data: realData,\n previousTimeData,\n previousProfit,\n timeFrame\n}) => {\n const svgRef = useRef()\n\n const drawGraph = useCallback(() => {\n const svg = d3.select(svgRef.current)\n const margin = { top: 0, right: 0, bottom: 0, left: 0 }\n const width = 336 - margin.left - margin.right\n const height = 140 - margin.top - margin.bottom\n\n const massageData = () => {\n // if we're viewing transactions for the past day, then we group by hour. If not, we group by day\n const method = timeFrame === 'Day' ? formatHour : formatDay\n\n const aggregatedTX = R.values(R.reduceBy(reducer, [], method, realData))\n // if no point exists, then return 2 points at y = 0\n if (!aggregatedTX.length && !previousTimeData.length) {\n const mockPoint1 = { created: new Date().toISOString(), profit: 0 }\n const mockPoint2 = mockPoint(mockPoint1, -3600000, 0)\n return [[mockPoint1, mockPoint2], true]\n }\n // if this time period has no txs, but previous time period has, then % change is -100%\n if (!aggregatedTX.length && previousTimeData.length) {\n const mockPoint1 = {\n created: new Date().toISOString(),\n profit: 0\n }\n const mockPoint2 = mockPoint(mockPoint1, -timeFrameMS[timeFrame], 1)\n return [[mockPoint1, mockPoint2], false]\n }\n // if this time period has txs, but previous doesn't, then % change is +100%\n if (aggregatedTX.length && !previousTimeData.length) {\n const mockPoint1 = {\n created: new Date().toISOString(),\n profit: 1\n }\n const mockPoint2 = mockPoint(mockPoint1, -timeFrameMS[timeFrame], 0)\n return [[mockPoint1, mockPoint2], false]\n }\n // if only one point exists, create point on the left - otherwise the line won't be drawn\n if (aggregatedTX.length === 1) {\n return [\n R.append(\n {\n created: new Date(\n Date.now() - timeFrameMS[timeFrame]\n ).toISOString(),\n profit: previousProfit\n },\n aggregatedTX\n ),\n false\n ]\n }\n // the boolean value is for zeroProfit. It makes the line render at y = 0 instead of y = 50% of container height\n return [aggregatedTX, false]\n }\n\n /* Important step to make the graph look good!\n This function groups transactions by either day or hour depending on the time frame\n This makes the line look smooth and not all wonky when there are many transactions in a given time\n */\n const [data, zeroProfit] = massageData()\n\n // sets width of the graph\n svg.attr('width', width)\n\n // background color for the graph\n svg\n .append('rect')\n .attr('x', 0)\n .attr('y', -margin.top)\n .attr('width', width + margin.left + margin.right)\n .attr('height', height + margin.top)\n .attr('fill', backgroundColor)\n .attr('transform', `translate(${0},${margin.top})`)\n\n // gradient color for the graph (creates the \"url\", the color is applied by calling the url, in the area color fill )\n svg\n .append('linearGradient')\n .attr('id', 'area-gradient')\n .attr('gradientUnits', 'userSpaceOnUse')\n .attr('x1', 0)\n .attr('y1', 0)\n .attr('x2', 0)\n .attr('y2', '100%')\n .selectAll('stop')\n .data([\n { offset: '0%', color: zircon },\n { offset: '25%', color: zircon },\n { offset: '100%', color: backgroundColor }\n ])\n .enter()\n .append('stop')\n .attr('offset', function(d) {\n return d.offset\n })\n .attr('stop-color', function(d) {\n return d.color\n })\n\n const g = svg\n .append('g')\n .attr('transform', `translate(${margin.left},${margin.top})`)\n\n const xDomain = d3.extent(data, t => t.created)\n const yDomain = zeroProfit ? [0, 0.1] : [0, d3.max(data, t => t.profit)]\n\n const y = d3\n .scaleLinear()\n // 30 is a margin so that the labels and the percentage change label can fit and not overlay the line path\n .range([height, 40])\n .domain([0, yDomain[1]])\n const x = d3\n .scaleTime()\n .domain([new Date(xDomain[0]), new Date(xDomain[1])])\n .range([0, width])\n\n const line = d3\n .line()\n .x(function(d) {\n return x(new Date(d.created))\n })\n .y(function(d) {\n return y(d.profit)\n })\n\n const area = d3\n .area()\n .x(function(d) {\n return x(new Date(d.created))\n })\n .y0(height)\n .y1(function(d) {\n return y(d.profit)\n })\n\n // area color fill\n g.append('path')\n .datum(data)\n .attr('d', area)\n .attr('fill', 'url(#area-gradient)')\n // draw the line\n g.append('path')\n .datum(data)\n .attr('d', line)\n .attr('fill', 'none')\n .attr('stroke-width', '2')\n .attr('stroke-linejoin', 'round')\n .attr('stroke', primaryColor)\n }, [realData, timeFrame, previousTimeData, previousProfit])\n\n useEffect(() => {\n // first we clear old chart DOM elements on component update\n d3.select(svgRef.current)\n .selectAll('*')\n .remove()\n drawGraph()\n }, [drawGraph, realData])\n\n return (\n <>\n \n >\n )\n}\nexport default RefLineChart\n","const MINUTE = 60 * 1000\nconst HOUR = 60 * 60 * 1000\nconst DAY = 24 * 60 * 60 * 1000\nconst WEEK = 7 * 24 * 60 * 60 * 1000\nconst MONTH = 30 * 24 * 60 * 60 * 1000\n\nexport { MINUTE, HOUR, DAY, WEEK, MONTH }\n","import BigNumber from 'bignumber.js'\nimport * as d3 from 'd3'\nimport { getTimezoneOffset } from 'date-fns-tz'\nimport { add, format, startOfWeek, startOfYear } from 'date-fns/fp'\nimport React, { useCallback, useEffect, useMemo, useRef } from 'react'\n\nimport {\n java,\n neon,\n subheaderDarkColor,\n offColor,\n fontSecondary,\n backgroundColor\n} from 'src/styling/variables'\nimport { MINUTE, DAY, WEEK, MONTH } from 'src/utils/time'\n\nconst Graph = ({ data, timeFrame, timezone }) => {\n const ref = useRef(null)\n\n const GRAPH_HEIGHT = 250\n const GRAPH_WIDTH = 555\n const GRAPH_MARGIN = useMemo(\n () => ({\n top: 20,\n right: 0.5,\n bottom: 27,\n left: 43.5\n }),\n []\n )\n\n const offset = getTimezoneOffset(timezone)\n const NOW = Date.now() + offset\n\n const periodDomains = {\n Day: [NOW - DAY, NOW],\n Week: [NOW - WEEK, NOW],\n Month: [NOW - MONTH, NOW]\n }\n\n const dataPoints = useMemo(\n () => ({\n Day: {\n freq: 24,\n step: 60 * 60 * 1000,\n tick: d3.utcHour.every(4),\n labelFormat: '%H:%M'\n },\n Week: {\n freq: 7,\n step: 24 * 60 * 60 * 1000,\n tick: d3.utcDay.every(1),\n labelFormat: '%a %d'\n },\n Month: {\n freq: 30,\n step: 24 * 60 * 60 * 1000,\n tick: d3.utcDay.every(2),\n labelFormat: '%d'\n }\n }),\n []\n )\n\n const filterDay = useCallback(\n x => (timeFrame === 'day' ? x.getUTCHours() === 0 : x.getUTCDate() === 1),\n [timeFrame]\n )\n\n const getPastAndCurrentDayLabels = useCallback(d => {\n const currentDate = new Date(d)\n const currentDateDay = currentDate.getUTCDate()\n const currentDateWeekday = currentDate.getUTCDay()\n const currentDateMonth = currentDate.getUTCMonth()\n\n const previousDate = new Date(currentDate.getTime())\n previousDate.setUTCDate(currentDateDay - 1)\n\n const previousDateDay = previousDate.getUTCDate()\n const previousDateWeekday = previousDate.getUTCDay()\n const previousDateMonth = previousDate.getUTCMonth()\n\n const daysOfWeek = Array.from(Array(7)).map((_, i) =>\n format('EEE', add({ days: i }, startOfWeek(new Date())))\n )\n\n const months = Array.from(Array(12)).map((_, i) =>\n format('LLL', add({ months: i }, startOfYear(new Date())))\n )\n\n return {\n previous:\n currentDateMonth !== previousDateMonth\n ? months[previousDateMonth]\n : `${daysOfWeek[previousDateWeekday]} ${previousDateDay}`,\n current:\n currentDateMonth !== previousDateMonth\n ? months[currentDateMonth]\n : `${daysOfWeek[currentDateWeekday]} ${currentDateDay}`\n }\n }, [])\n\n const buildTicks = useCallback(\n domain => {\n const points = []\n\n const roundDate = d => {\n const step = dataPoints[timeFrame].step\n return new Date(Math.ceil(d.valueOf() / step) * step)\n }\n\n for (let i = 0; i <= dataPoints[timeFrame].freq; i++) {\n const stepDate = new Date(NOW - i * dataPoints[timeFrame].step)\n if (roundDate(stepDate) > domain[1]) continue\n if (stepDate < domain[0]) continue\n points.push(roundDate(stepDate))\n }\n\n return points\n },\n [NOW, dataPoints, timeFrame]\n )\n\n const x = d3\n .scaleUtc()\n .domain(periodDomains[timeFrame])\n .range([GRAPH_MARGIN.left, GRAPH_WIDTH - GRAPH_MARGIN.right])\n\n const y = d3\n .scaleLinear()\n .domain([\n 0,\n (d3.max(data, d => new BigNumber(d.fiat).toNumber()) ?? 1000) * 1.05\n ])\n .nice()\n .range([GRAPH_HEIGHT - GRAPH_MARGIN.bottom, GRAPH_MARGIN.top])\n\n const buildBackground = useCallback(\n g => {\n g.append('rect')\n .attr('x', 0)\n .attr('y', GRAPH_MARGIN.top)\n .attr('width', GRAPH_WIDTH)\n .attr('height', GRAPH_HEIGHT - GRAPH_MARGIN.top - GRAPH_MARGIN.bottom)\n .attr('fill', backgroundColor)\n },\n [GRAPH_MARGIN]\n )\n\n const buildXAxis = useCallback(\n g =>\n g\n .attr(\n 'transform',\n `translate(0, ${GRAPH_HEIGHT - GRAPH_MARGIN.bottom})`\n )\n .call(\n d3\n .axisBottom(x)\n .ticks(dataPoints[timeFrame].tick)\n .tickFormat(d => {\n return d3.timeFormat(dataPoints[timeFrame].labelFormat)(\n d.getTime() + d.getTimezoneOffset() * MINUTE\n )\n })\n )\n .call(g => g.select('.domain').remove()),\n [GRAPH_MARGIN, dataPoints, timeFrame, x]\n )\n\n const buildYAxis = useCallback(\n g =>\n g\n .attr('transform', `translate(${GRAPH_MARGIN.left}, 0)`)\n .call(d3.axisLeft(y).ticks(5))\n .call(g => g.select('.domain').remove())\n .selectAll('text')\n .attr('dy', '-0.25rem'),\n [GRAPH_MARGIN, y]\n )\n\n const buildGrid = useCallback(\n g => {\n g.attr('stroke', subheaderDarkColor)\n .attr('fill', subheaderDarkColor)\n // Vertical lines\n .call(g =>\n g\n .append('g')\n .selectAll('line')\n .data(buildTicks(x.domain()))\n .join('line')\n .attr('x1', d => 0.5 + x(d))\n .attr('x2', d => 0.5 + x(d))\n .attr('y1', GRAPH_MARGIN.top)\n .attr('y2', GRAPH_HEIGHT - GRAPH_MARGIN.bottom)\n .attr('stroke-width', 1)\n )\n // Horizontal lines\n .call(g =>\n g\n .append('g')\n .selectAll('line')\n .data(\n d3\n .axisLeft(y)\n .scale()\n .ticks(5)\n )\n .join('line')\n .attr('y1', d => 0.5 + y(d))\n .attr('y2', d => 0.5 + y(d))\n .attr('x1', GRAPH_MARGIN.left)\n .attr('x2', GRAPH_WIDTH - GRAPH_MARGIN.right)\n )\n // Thick vertical lines\n .call(g =>\n g\n .append('g')\n .selectAll('line')\n .data(buildTicks(x.domain()).filter(filterDay))\n .join('line')\n .attr('class', 'dateSeparator')\n .attr('x1', d => 0.5 + x(d))\n .attr('x2', d => 0.5 + x(d))\n .attr('y1', GRAPH_MARGIN.top - 10)\n .attr('y2', GRAPH_HEIGHT - GRAPH_MARGIN.bottom)\n .attr('stroke-width', 2)\n .join('text')\n )\n // Left side breakpoint label\n .call(g => {\n const separator = d3\n ?.select('.dateSeparator')\n ?.node()\n ?.getBBox()\n\n if (!separator) return\n\n const breakpoint = buildTicks(x.domain()).filter(filterDay)\n\n const labels = getPastAndCurrentDayLabels(breakpoint)\n\n return g\n .append('text')\n .attr('x', separator.x - 7)\n .attr('y', separator.y)\n .attr('text-anchor', 'end')\n .attr('dy', '.25em')\n .text(labels.previous)\n })\n // Right side breakpoint label\n .call(g => {\n const separator = d3\n ?.select('.dateSeparator')\n ?.node()\n ?.getBBox()\n\n if (!separator) return\n\n const breakpoint = buildTicks(x.domain()).filter(filterDay)\n\n const labels = getPastAndCurrentDayLabels(breakpoint)\n\n return g\n .append('text')\n .attr('x', separator.x + 7)\n .attr('y', separator.y)\n .attr('text-anchor', 'start')\n .attr('dy', '.25em')\n .text(labels.current)\n })\n },\n [GRAPH_MARGIN, buildTicks, getPastAndCurrentDayLabels, x, y, filterDay]\n )\n\n const formatTicksText = useCallback(\n () =>\n d3\n .selectAll('.tick text')\n .style('stroke', offColor)\n .style('fill', offColor)\n .style('stroke-width', 0)\n .style('font-family', fontSecondary),\n []\n )\n\n const formatText = useCallback(\n () =>\n d3\n .selectAll('text')\n .style('stroke', offColor)\n .style('fill', offColor)\n .style('stroke-width', 0)\n .style('font-family', fontSecondary),\n []\n )\n\n const formatTicks = useCallback(() => {\n d3.selectAll('.tick line')\n .style('stroke', 'transparent')\n .style('fill', 'transparent')\n }, [])\n\n const drawData = useCallback(\n g => {\n g.selectAll('circle')\n .data(data)\n .join('circle')\n .attr('cx', d => {\n const created = new Date(d.created)\n return x(created.setTime(created.getTime() + offset))\n })\n .attr('cy', d => y(new BigNumber(d.fiat).toNumber()))\n .attr('fill', d => (d.txClass === 'cashIn' ? java : neon))\n .attr('r', 3.5)\n },\n [data, offset, x, y]\n )\n\n const drawChart = useCallback(() => {\n const svg = d3\n .select(ref.current)\n .attr('viewBox', [0, 0, GRAPH_WIDTH, GRAPH_HEIGHT])\n\n svg.append('g').call(buildBackground)\n svg.append('g').call(buildGrid)\n svg.append('g').call(buildXAxis)\n svg.append('g').call(buildYAxis)\n svg.append('g').call(formatTicksText)\n svg.append('g').call(formatText)\n svg.append('g').call(formatTicks)\n svg.append('g').call(drawData)\n\n return svg.node()\n }, [\n buildBackground,\n buildGrid,\n buildXAxis,\n buildYAxis,\n drawData,\n formatText,\n formatTicks,\n formatTicksText\n ])\n\n useEffect(() => {\n d3.select(ref.current)\n .selectAll('*')\n .remove()\n drawChart()\n }, [drawChart])\n\n return \n}\n\nexport default Graph\n","import React from 'react'\n\nimport { Info1, Label1 } from 'src/components/typography/index'\nconst InfoWithLabel = ({ info, label }) => {\n return (\n <>\n {info} \n {label} \n >\n )\n}\n\nexport default InfoWithLabel\n","import {\n offColor,\n offDarkColor,\n spacer,\n primaryColor,\n fontSize3,\n fontSecondary,\n fontColor,\n spring4,\n tomato,\n comet\n} from 'src/styling/variables'\n\nconst styles = {\n titleWrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n flexDirection: 'row'\n },\n titleAndButtonsContainer: {\n display: 'flex'\n },\n error: {\n marginLeft: 12\n },\n icon: {\n marginRight: 6\n },\n h4: {\n margin: 0,\n marginRight: spacer * 8\n },\n label: {\n cursor: 'pointer',\n minHeight: 0,\n minWidth: 0,\n padding: 0,\n color: offColor,\n textTransform: 'none',\n borderBottom: `2px solid transparent`,\n display: 'inline-block',\n lineHeight: 1.5,\n '&:hover': {\n backgroundColor: 'transparent'\n }\n },\n newHighlightedLabel: {\n cursor: 'pointer',\n color: primaryColor,\n fontWeight: 700,\n borderRadius: 0,\n minHeight: 0,\n minWidth: 0,\n textTransform: 'none',\n borderBottom: `2px solid ${primaryColor}`,\n display: 'inline-block',\n lineHeight: 1.5,\n '&:hover': {\n backgroundColor: 'transparent'\n }\n },\n navButton: {\n marginLeft: 24\n },\n navContainer: {\n display: 'flex'\n },\n percentUp: {\n fontSize: fontSize3,\n fontFamily: fontSecondary,\n fontWeight: 700,\n color: spring4,\n height: 10\n },\n percentDown: {\n fontSize: fontSize3,\n fontFamily: fontSecondary,\n fontWeight: 700,\n color: tomato,\n height: 13\n },\n percentNeutral: {\n fontSize: fontSize3,\n fontFamily: fontSecondary,\n fontWeight: 700,\n color: comet\n },\n profitContainer: {\n display: 'flex',\n justifyContent: 'space-between',\n margin: '23px 26px -30px 16px',\n position: 'relative'\n },\n profitLabel: {\n fontSize: fontSize3,\n fontFamily: fontSecondary,\n fontWeight: 700,\n color: fontColor\n },\n directionIcon: {\n width: 16,\n height: 16,\n marginBottom: -2,\n marginRight: 4\n },\n emptyTransactions: {\n paddingTop: 40\n },\n commissionProfitTitle: {\n marginBottom: 16\n },\n graphHeader: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n marginBottom: 16\n },\n labelWrapper: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n '& > div': {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n marginLeft: 15,\n '&:first-child': {\n marginLeft: 0\n },\n '& > p': {\n marginLeft: 8\n }\n }\n },\n txGraphContainer: {\n height: 300,\n marginTop: 30\n },\n commissionsGraphContainer: {\n height: 250,\n marginTop: 30\n },\n verticalLine: {\n height: 15,\n width: 1,\n backgroundColor: offDarkColor,\n marginLeft: 31,\n marginRight: 16\n }\n}\n\nexport default styles\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { H4 } from 'src/components/typography'\n\nimport styles from './SystemPerformance.styles'\n\nconst useStyles = makeStyles(styles)\nconst ranges = ['Month', 'Week', 'Day']\n\nconst Nav = ({ handleSetRange, showPicker }) => {\n const classes = useStyles()\n const [clickedItem, setClickedItem] = useState('Day')\n\n const isSelected = R.equals(clickedItem)\n const handleClick = range => {\n setClickedItem(range)\n handleSetRange(range)\n }\n\n return (\n \n
\n
{'System performance'} \n \n {showPicker && (\n
\n {ranges.map((it, idx) => {\n return (\n
handleClick(e.target.innerText)}\n className={\n isSelected(it)\n ? classnames(classes.newHighlightedLabel, classes.navButton)\n : classnames(classes.label, classes.navButton)\n }>\n {it}\n
\n )\n })}\n
\n )}\n
\n )\n}\n\nexport default Nav\n","import { useQuery } from '@apollo/react-hooks'\nimport Grid from '@material-ui/core/Grid'\nimport { makeStyles } from '@material-ui/core/styles'\nimport BigNumber from 'bignumber.js'\nimport classnames from 'classnames'\nimport { isAfter, sub } from 'date-fns/fp'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { EmptyTable } from 'src/components/table'\nimport { Label1, Label2, P } from 'src/components/typography/index'\nimport { ReactComponent as PercentDownIcon } from 'src/styling/icons/dashboard/down.svg'\nimport { ReactComponent as PercentNeutralIcon } from 'src/styling/icons/dashboard/equal.svg'\nimport { ReactComponent as PercentUpIcon } from 'src/styling/icons/dashboard/up.svg'\nimport { java, neon } from 'src/styling/variables'\nimport { fromNamespace } from 'src/utils/config'\nimport { timezones } from 'src/utils/timezone-list'\nimport { toTimezone } from 'src/utils/timezones'\n\nimport PercentageChart from './Graphs/PercentageChart'\nimport LineChart from './Graphs/RefLineChart'\nimport Scatterplot from './Graphs/RefScatterplot'\nimport InfoWithLabel from './InfoWithLabel'\nimport Nav from './Nav'\nimport styles from './SystemPerformance.styles'\n\nBigNumber.config({ ROUNDING_MODE: BigNumber.ROUND_HALF_UP })\n\nconst getFiats = R.map(R.prop('fiat'))\nconst useStyles = makeStyles(styles)\nconst mapToFee = R.map(R.prop('cashInFee'))\n\nconst getDateSecondsAgo = (seconds = 0, startDate = null) => {\n const date = startDate ? new Date(startDate) : new Date()\n return sub({ seconds: seconds }, date)\n}\n\nconst ranges = {\n Day: {\n left: getDateSecondsAgo(2 * 24 * 3600, new Date()),\n right: getDateSecondsAgo(24 * 3600, new Date())\n },\n Week: {\n left: getDateSecondsAgo(14 * 24 * 3600, new Date()),\n right: getDateSecondsAgo(7 * 24 * 3600, new Date())\n },\n Month: {\n left: getDateSecondsAgo(60 * 24 * 3600, new Date()),\n right: getDateSecondsAgo(30 * 24 * 3600, new Date())\n }\n}\n\nconst GET_DATA = gql`\n query getData($excludeTestingCustomers: Boolean) {\n transactions(excludeTestingCustomers: $excludeTestingCustomers) {\n fiatCode\n fiat\n cashInFee\n commissionPercentage\n created\n txClass\n error\n }\n fiatRates {\n code\n name\n rate\n }\n config\n }\n`\n\nconst reducer = (acc, it) =>\n (acc +=\n Number.parseFloat(it.commissionPercentage) * Number.parseFloat(it.fiat))\n\nconst SystemPerformance = () => {\n const classes = useStyles()\n const [selectedRange, setSelectedRange] = useState('Day')\n const { data, loading } = useQuery(GET_DATA, {\n variables: { excludeTestingCustomers: true }\n })\n const fiatLocale = fromNamespace('locale')(data?.config).fiatCurrency\n const timezone = fromNamespace('locale')(data?.config).timezone\n\n const isInRangeAndNoError = getLastTimePeriod => t => {\n if (t.error !== null) return false\n if (!getLastTimePeriod) {\n return (\n t.error === null &&\n isAfter(ranges[selectedRange].right, toTimezone(t.created, timezone)) &&\n isAfter(toTimezone(t.created, timezone), new Date())\n )\n }\n return (\n t.error === null &&\n isAfter(ranges[selectedRange].left, toTimezone(t.created, timezone)) &&\n isAfter(toTimezone(t.created, timezone), ranges[selectedRange].right)\n )\n }\n\n const convertFiatToLocale = item => {\n if (item.fiatCode === fiatLocale) return item\n const itemRate = R.find(R.propEq('code', item.fiatCode))(data.fiatRates)\n const localeRate = R.find(R.propEq('code', fiatLocale))(data.fiatRates)\n const multiplier = localeRate.rate / itemRate.rate\n return { ...item, fiat: parseFloat(item.fiat) * multiplier }\n }\n\n const transactionsToShow = R.map(convertFiatToLocale)(\n R.filter(isInRangeAndNoError(false), data?.transactions ?? [])\n )\n const transactionsLastTimePeriod = R.map(convertFiatToLocale)(\n R.filter(isInRangeAndNoError(true), data?.transactions ?? [])\n )\n\n const getNumTransactions = () => {\n return R.length(transactionsToShow)\n }\n\n const getFiatVolume = () =>\n new BigNumber(R.sum(getFiats(transactionsToShow))).toFormat(2)\n\n const getProfit = transactions => {\n const cashInFees = R.sum(mapToFee(transactions))\n const commissionFees = R.reduce(reducer, 0, transactions)\n\n return new BigNumber(commissionFees + cashInFees)\n }\n\n const getPercentChange = () => {\n const thisTimePeriodProfit = getProfit(transactionsToShow)\n const previousTimePeriodProfit = getProfit(transactionsLastTimePeriod)\n\n if (thisTimePeriodProfit.eq(previousTimePeriodProfit)) return 0\n if (previousTimePeriodProfit.eq(0)) return 100\n\n return thisTimePeriodProfit\n .minus(previousTimePeriodProfit)\n .times(100)\n .div(previousTimePeriodProfit)\n .toNumber()\n }\n\n const getDirectionPercent = () => {\n const [cashIn, cashOut] = R.partition(R.propEq('txClass', 'cashIn'))(\n transactionsToShow\n )\n const totalLength = cashIn.length + cashOut.length\n if (totalLength === 0) {\n return { cashIn: 0, cashOut: 0 }\n }\n\n return {\n cashIn: Math.round((cashIn.length / totalLength) * 100),\n cashOut: Math.round((cashOut.length / totalLength) * 100)\n }\n }\n\n const percentChange = getPercentChange()\n\n const percentageClasses = {\n [classes.percentDown]: percentChange < 0,\n [classes.percentUp]: percentChange > 0,\n [classes.percentNeutral]: percentChange === 0\n }\n\n const getPercentageIcon = () => {\n if (percentChange === 0)\n return \n if (percentChange > 0)\n return \n return \n }\n\n return (\n <>\n \n {!loading && R.isEmpty(data.transactions) && (\n \n )}\n {!loading && !R.isEmpty(data.transactions) && (\n <>\n \n \n \n \n \n \n \n {/* todo new customers */}\n \n \n \n \n
Transactions \n
\n
\n {timezones[timezone].short ?? timezones[timezone].long}{' '}\n timezone\n
\n
\n
\n \n \n \n In \n
\n
\n \n \n \n Out \n
\n
\n
\n \n \n \n \n \n \n Profit from commissions\n \n \n
\n {`${getProfit(transactionsToShow).toFormat(2)} ${\n data?.config.locale_fiatCurrency\n }`}\n
\n
\n {getPercentageIcon()}\n {`${new BigNumber(percentChange).toFormat(2)}%`}\n
\n
\n \n \n \n \n Direction \n \n
\n \n \n \n In \n
\n
\n \n \n \n Out \n
\n
\n \n \n \n \n \n \n >\n )}\n >\n )\n}\n\nexport default SystemPerformance\n","import SystemPerformance from './SystemPerformance'\nexport default SystemPerformance\n","import Grid from '@material-ui/core/Grid'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React from 'react'\n\nimport styles from './Dashboard.styles'\nimport SystemPerformance from './SystemPerformance'\n\nconst useStyles = makeStyles(styles)\n\nconst LeftSide = () => {\n const classes = useStyles()\n\n return (\n \n \n \n
\n \n )\n}\n\nexport default LeftSide\n","import Grid from '@material-ui/core/Grid'\nimport { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport PropTypes from 'prop-types'\nimport React from 'react'\n\nimport { white } from 'src/styling/variables'\n\nconst cardState = Object.freeze({\n DEFAULT: 'default',\n SHRUNK: 'shrunk',\n EXPANDED: 'expanded'\n})\n\nconst styles = {\n card: {\n wordWrap: 'break-word',\n boxShadow: '0 0 4px 0 rgba(0, 0, 0, 0.08)',\n borderRadius: 12,\n padding: 24,\n backgroundColor: white\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst CollapsibleCard = ({ className, state, shrunkComponent, children }) => {\n const classes = useStyles()\n return (\n \n {state === cardState.SHRUNK ? shrunkComponent : children}\n \n )\n}\n\nCollapsibleCard.propTypes = {\n shrunkComponent: PropTypes.node.isRequired\n}\n\nexport default CollapsibleCard\nexport { cardState }\n","import { primaryColor, comet } from 'src/styling/variables'\n\nconst styles = {\n container: {\n display: 'flex',\n justifyContent: 'space-between'\n },\n h4: {\n margin: 0,\n marginBottom: 10\n },\n centerLabel: {\n marginBottom: 0,\n padding: 0,\n textAlign: 'center'\n },\n upperButtonLabel: {\n marginTop: -3,\n marginBottom: 24\n },\n button: {\n color: primaryColor,\n marginTop: 0,\n minHeight: 0,\n minWidth: 0,\n padding: 0,\n textTransform: 'none',\n '&:hover': {\n backgroundColor: 'transparent'\n }\n },\n alertsTableContainer: {\n margin: 0\n },\n expandedAlertsTableContainer: {\n margin: 0,\n maxHeight: 460\n },\n noAlertsLabel: {\n color: comet,\n marginLeft: -5,\n height: 100\n },\n table: {\n maxHeight: 465,\n overflowX: 'hidden',\n overflowY: 'auto'\n },\n listItemText: {\n margin: '8px 0 8px 0'\n },\n linkIcon: {\n marginLeft: 'auto',\n cursor: 'pointer'\n }\n}\nexport default styles\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"DASHBOARD\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"dashboard_v9#1-(week)\",\n transform: \"translate(-772.000000, -212.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"dashboard/row/alert/positive\",\n transform: \"translate(756.000000, 204.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2\",\n transform: \"translate(16.000000, 8.000000)\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Rectangle-2-Copy-45\",\n fill: \"#FF584A\",\n fillRule: \"nonzero\",\n points: \"0 11 16 11 16 16 0 16\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-10\",\n stroke: \"#FF584A\",\n strokeWidth: 2,\n x: 1,\n y: 1,\n width: 14,\n height: 14\n})))));\n\nfunction SvgCashboxEmpty(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"16px\",\n height: \"16px\",\n viewBox: \"0 0 16 16\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"07E3DD15-D5E4-46A8-BF7B-064F598230CE\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCashboxEmpty);\nexport default __webpack_public_path__ + \"static/media/cashbox-empty.828bd3b9.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"path-1-right\",\n cx: 10,\n cy: 10,\n r: 10\n}));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"pop-up/action/download-logs/date-range-copy-2\",\n transform: \"translate(-232.000000, -187.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-contain-b-copy-4\",\n transform: \"translate(242.000000, 197.000000) scale(-1, 1) rotate(-270.000000) translate(-242.000000, -197.000000) translate(232.000000, 187.000000)\"\n}, /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask-2\",\n fill: \"white\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#path-1-right\"\n})), /*#__PURE__*/React.createElement(\"use\", {\n id: \"Mask\",\n fill: \"#EBEFFF\",\n fillRule: \"nonzero\",\n xlinkHref: \"#path-1-right\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/wizzard\",\n mask: \"url(#mask-2)\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(6.666667, 6.000000)\",\n id: \"Group\"\n}, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path-3\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n points: \"0 4.83333333 3.33333333 8.16666667 6.66666667 4.83333333\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 3.33333333,\n y1: 0.25,\n x2: 3.33333333,\n y2: 6.5,\n id: \"Path-4\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n})))))));\n\nfunction SvgRight(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgRight);\nexport default __webpack_public_path__ + \"static/media/right.d3dd4af6.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core'\nimport List from '@material-ui/core/List'\nimport ListItem from '@material-ui/core/ListItem'\nimport * as R from 'ramda'\nimport React from 'react'\nimport { useHistory } from 'react-router-dom'\n\nimport { P } from 'src/components/typography/index'\nimport { ReactComponent as Wrench } from 'src/styling/icons/action/wrench/zodiac.svg'\nimport { ReactComponent as CashBoxEmpty } from 'src/styling/icons/cassettes/cashbox-empty.svg'\nimport { ReactComponent as AlertLinkIcon } from 'src/styling/icons/month arrows/right.svg'\nimport { ReactComponent as WarningIcon } from 'src/styling/icons/warning-icon/tomato.svg'\n\nimport styles from './Alerts.styles'\nconst useStyles = makeStyles(styles)\n\nconst icons = {\n error: ,\n fiatBalance: (\n \n )\n}\n\nconst links = {\n error: '/maintenance/machine-status',\n fiatBalance: '/maintenance/cash-cassettes',\n cryptoBalance: '/maintenance/funding'\n}\n\nconst AlertsTable = ({ numToRender, alerts, machines }) => {\n const history = useHistory()\n const classes = useStyles()\n const alertsToRender = R.slice(0, numToRender, alerts)\n\n const alertMessage = alert => {\n const deviceId = alert.detail.deviceId\n if (!deviceId) return `${alert.message}`\n\n const deviceName = R.defaultTo('Unpaired device', machines[deviceId])\n return `${alert.message} - ${deviceName}`\n }\n\n return (\n \n {alertsToRender.map((alert, idx) => {\n return (\n \n {icons[alert.type] || (\n \n )}\n {alertMessage(alert)}
\n history.push(links[alert.type] || '/dashboard')}\n />\n \n )\n })}\n
\n )\n}\n\nexport default AlertsTable\n","import { useQuery } from '@apollo/react-hooks'\nimport Button from '@material-ui/core/Button'\nimport Grid from '@material-ui/core/Grid'\nimport { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport { cardState } from 'src/components/CollapsibleCard'\nimport { Label1, H4 } from 'src/components/typography'\n\nimport styles from './Alerts.styles'\nimport AlertsTable from './AlertsTable'\n\nconst NUM_TO_RENDER = 3\n\nconst GET_ALERTS = gql`\n query getAlerts {\n alerts {\n id\n type\n detail\n message\n created\n read\n valid\n }\n machines {\n deviceId\n name\n }\n }\n`\n\nconst useStyles = makeStyles(styles)\n\nconst Alerts = ({ onReset, onExpand, size }) => {\n const classes = useStyles()\n const showAllItems = size === cardState.EXPANDED\n const { data } = useQuery(GET_ALERTS)\n const alerts = R.path(['alerts'])(data) ?? []\n const machines = R.compose(\n R.map(R.prop('name')),\n R.indexBy(R.prop('deviceId'))\n )(data?.machines ?? [])\n const alertsLength = alerts.length\n\n const alertsTableContainerClasses = {\n [classes.alertsTableContainer]: !showAllItems,\n [classes.expandedAlertsTableContainer]: showAllItems\n }\n\n return (\n <>\n \n
{`Alerts (${alertsLength})`} \n {showAllItems && (\n \n \n {'Show less'}\n \n \n )}\n \n \n \n {!alerts.length && (\n \n No new alerts. Your system is running smoothly.\n \n )}\n \n \n \n {!showAllItems && alertsLength > NUM_TO_RENDER && (\n \n \n onExpand('alerts')}\n size=\"small\"\n disableRipple\n disableFocusRipple\n className={classes.button}>\n {`Show all (${alerts.length})`}\n \n \n \n )}\n >\n )\n}\nexport default Alerts\n","import Alerts from './Alerts'\nexport default Alerts\n","import Chip from '@material-ui/core/Chip'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React from 'react'\n\nimport {\n tomato,\n mistyRose,\n pumpkin,\n secondaryColorDarker as spring4,\n inputFontWeight,\n spring3,\n zircon,\n primaryColor,\n smallestFontSize,\n inputFontFamily,\n spacer,\n linen\n} from '../styling/variables'\n\nconst colors = {\n error: tomato,\n warning: pumpkin,\n success: spring4,\n neutral: primaryColor\n}\n\nconst backgroundColors = {\n error: mistyRose,\n warning: linen,\n success: spring3,\n neutral: zircon\n}\n\nconst useStyles = makeStyles({\n root: {\n borderRadius: spacer / 2,\n marginTop: spacer / 2,\n marginRight: spacer / 4,\n marginBottom: spacer / 2,\n marginLeft: spacer / 4,\n height: spacer * 3,\n backgroundColor: ({ type }) => backgroundColors[type]\n },\n label: {\n fontSize: smallestFontSize,\n fontWeight: inputFontWeight,\n fontFamily: inputFontFamily,\n paddingRight: spacer / 2,\n paddingLeft: spacer / 2,\n color: ({ type }) => colors[type]\n }\n})\n\nconst Status = ({ status }) => {\n const classes = useStyles({ type: status.type })\n return \n}\n\nconst MainStatus = ({ statuses }) => {\n const mainStatus =\n statuses.find(s => s.type === 'error') ||\n statuses.find(s => s.type === 'warning') ||\n statuses[0]\n const plus = { label: `+${statuses.length - 1}`, type: mainStatus.type }\n\n return (\n \n \n {statuses.length > 1 && }\n
\n )\n}\n\nexport { Status, MainStatus }\n","import {\n backgroundColor,\n offColor,\n errorColor,\n primaryColor\n} from 'src/styling/variables'\n\nconst styles = {\n container: {\n display: 'flex',\n justifyContent: 'space-between'\n },\n label: {\n margin: 0,\n color: offColor\n },\n row: {\n backgroundColor: backgroundColor,\n borderBottom: 'none'\n },\n clickableRow: {\n cursor: 'pointer'\n },\n header: {\n display: 'flex',\n alignItems: 'center',\n whiteSpace: 'pre'\n },\n error: {\n color: errorColor\n },\n button: {\n color: primaryColor,\n minHeight: 0,\n minWidth: 0,\n padding: 0,\n textTransform: 'none',\n '&:hover': {\n backgroundColor: 'transparent'\n },\n marginBottom: -40\n },\n buttonLabel: {\n position: 'absolute',\n bottom: 160,\n marginBottom: 0\n },\n upperButtonLabel: {\n textAlign: 'center',\n marginBottom: 0,\n marginTop: 0\n },\n statusHeader: {\n marginLeft: 2\n },\n table: {\n maxHeight: 440,\n '&::-webkit-scrollbar': {\n width: 7\n },\n '&::-webkit-scrollbar-thumb': {\n backgroundColor: offColor,\n borderRadius: 5\n }\n },\n tableBody: {\n overflow: 'auto'\n },\n h4: {\n marginTop: 0\n },\n tl2: {\n display: 'inline'\n },\n label1: {\n display: 'inline'\n },\n machinesTableContainer: {\n marginTop: 10,\n height: 220\n },\n expandedMachinesTableContainer: {\n marginTop: 10,\n height: 414\n },\n centerLabel: {\n marginBottom: 0,\n padding: 0,\n textAlign: 'center'\n },\n machineNameWrapper: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center'\n },\n machineRedirectIcon: {\n marginLeft: 10\n }\n}\n\nexport default styles\n","import { useQuery } from '@apollo/react-hooks'\nimport { makeStyles, withStyles } from '@material-ui/core'\nimport Table from '@material-ui/core/Table'\nimport TableBody from '@material-ui/core/TableBody'\nimport TableCell from '@material-ui/core/TableCell'\nimport TableContainer from '@material-ui/core/TableContainer'\nimport TableHead from '@material-ui/core/TableHead'\nimport TableRow from '@material-ui/core/TableRow'\nimport classnames from 'classnames'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React from 'react'\nimport { useHistory } from 'react-router-dom'\n\nimport { Status } from 'src/components/Status'\nimport { Label2, TL2 } from 'src/components/typography'\n// import { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport { ReactComponent as MachineLinkIcon } from 'src/styling/icons/month arrows/right.svg'\nimport { fromNamespace } from 'src/utils/config'\n\nimport styles from './MachinesTable.styles'\n\n// percentage threshold where below this number the text in the cash cassettes percentage turns red\nconst PERCENTAGE_THRESHOLD = 20\n\nconst GET_CONFIG = gql`\n query getConfig {\n config\n }\n`\n\nconst useStyles = makeStyles(styles)\n\nconst StyledCell = withStyles({\n root: {\n borderBottom: '4px solid white',\n padding: 0,\n paddingLeft: 15\n }\n})(TableCell)\n\nconst HeaderCell = withStyles({\n root: {\n borderBottom: '4px solid white',\n padding: 0,\n paddingLeft: 15,\n backgroundColor: 'white'\n }\n})(TableCell)\n\nconst MachinesTable = ({ machines = [], numToRender }) => {\n const classes = useStyles()\n const history = useHistory()\n\n const { data } = useQuery(GET_CONFIG)\n const fillingPercentageSettings = fromNamespace(\n 'notifications',\n R.path(['config'], data) ?? {}\n )\n\n const getPercent = (notes, capacity = 500) => {\n return Math.round((notes / capacity) * 100)\n }\n\n const makePercentageText = (cassetteIdx, notes, capacity = 500) => {\n const percent = getPercent(notes, capacity)\n const percentageThreshold = R.pipe(\n R.path([`fillingPercentageCassette${cassetteIdx}`]),\n R.defaultTo(PERCENTAGE_THRESHOLD)\n )(fillingPercentageSettings)\n return percent < percentageThreshold ? (\n {`${percent}%`} \n ) : (\n {`${percent}%`} \n )\n }\n\n const redirect = ({ name, deviceId }) => {\n return history.push(`/machines/${deviceId}`, {\n selectedMachine: name\n })\n }\n\n const maxNumberOfCassettes = Math.max(\n ...R.map(it => it.numberOfCassettes, machines),\n 0\n )\n\n return (\n \n \n \n \n \n \n Machines \n
\n \n \n \n Status \n
\n \n {/* \n \n \n
\n */}\n {R.map(\n it => (\n \n \n \n {it + 1} \n
\n \n ),\n R.times(R.identity, maxNumberOfCassettes)\n )}\n \n \n \n {machines.map((machine, idx) => {\n if (idx < numToRender) {\n return (\n redirect(machine)}\n className={classnames(classes.row)}\n key={machine.deviceId + idx}>\n \n \n {machine.name} \n redirect(machine)}\n />\n
\n \n \n \n \n {R.map(\n it =>\n machine.numberOfCassettes >= it ? (\n \n {makePercentageText(it, machine[`cassette${it}`])}\n \n ) : (\n \n {`— %`} \n \n ),\n R.range(1, maxNumberOfCassettes + 1)\n )}\n \n )\n }\n return null\n })}\n \n
\n \n )\n}\n\nexport default MachinesTable\n","import { useQuery } from '@apollo/react-hooks'\nimport Button from '@material-ui/core/Button'\nimport Grid from '@material-ui/core/Grid'\nimport { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport { cardState as cardState_ } from 'src/components/CollapsibleCard'\n// import ActionButton from 'src/components/buttons/ActionButton'\nimport { H4, TL2, Label1 } from 'src/components/typography'\n\nimport MachinesTable from './MachinesTable'\nimport styles from './MachinesTable.styles'\n\nconst useStyles = makeStyles(styles)\n\n// number of machines in the table to render on page load\nconst NUM_TO_RENDER = 4\n\nconst GET_DATA = gql`\n query getData {\n machines {\n name\n deviceId\n cashbox\n cassette1\n cassette2\n cassette3\n cassette4\n numberOfCassettes\n statuses {\n label\n type\n }\n }\n serverVersion\n uptime {\n name\n state\n uptime\n }\n }\n`\n\n/* const parseUptime = time => {\n if (time < 60) return `${time}s`\n if (time < 3600) return `${Math.floor(time / 60)}m`\n if (time < 86400) return `${Math.floor(time / 60 / 60)}h`\n return `${Math.floor(time / 60 / 60 / 24)}d`\n} */\n\nconst SystemStatus = ({ onReset, onExpand, size }) => {\n const classes = useStyles()\n const { data, loading } = useQuery(GET_DATA)\n\n const machines = R.path(['machines'])(data) ?? []\n const showAllItems = size === cardState_.EXPANDED\n\n const machinesTableContainerClasses = {\n [classes.machinesTableContainer]: !showAllItems,\n [classes.expandedMachinesTableContainer]: showAllItems\n }\n // const uptime = data?.uptime ?? [{}]\n return (\n <>\n \n
System status {' '}\n {showAllItems && (\n \n \n {'Show less'}\n \n \n )}\n \n {!loading && (\n <>\n \n {/* \n On hold until system uptime is implemented\n \n \n {parseUptime(uptime[0].time)}\n \n System up time \n */}\n \n {data?.serverVersion} \n server version \n \n \n {/*\n On hold until system update features are implemented\n console.log('Upgrade button clicked')}>\n Update to v10.6.0\n */}\n \n \n \n \n \n \n \n {!showAllItems && machines.length > NUM_TO_RENDER && (\n \n \n onExpand()}\n size=\"small\"\n disableRipple\n disableFocusRipple\n className={classes.button}>\n {`Show all (${machines.length})`}\n \n \n \n )}\n >\n )}\n >\n )\n}\n\nexport default SystemStatus\n","import SystemStatus from './SystemStatus'\nexport default SystemStatus\n","import Button from '@material-ui/core/Button'\nimport Grid from '@material-ui/core/Grid'\nimport { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { useState } from 'react'\n\nimport CollapsibleCard, { cardState } from 'src/components/CollapsibleCard'\nimport { H4, Label1 } from 'src/components/typography'\n\nimport Alerts from './Alerts'\nimport styles from './Dashboard.styles'\nimport SystemStatus from './SystemStatus'\n\nconst useStyles = makeStyles(styles)\n\nconst ShrunkCard = ({ title, buttonName, onUnshrink }) => {\n const classes = useStyles()\n return (\n \n
{title} \n \n \n {buttonName}\n \n \n \n )\n}\n\nconst RightSide = () => {\n const classes = useStyles()\n const [systemStatusSize, setSystemStatusSize] = useState(cardState.DEFAULT)\n const [alertsSize, setAlertsSize] = useState(cardState.DEFAULT)\n\n const onReset = () => {\n setAlertsSize(cardState.DEFAULT)\n setSystemStatusSize(cardState.DEFAULT)\n }\n return (\n \n \n <>\n
\n }>\n
{\n setAlertsSize(cardState.EXPANDED)\n setSystemStatusSize(cardState.SHRUNK)\n }}\n onReset={onReset}\n size={alertsSize}\n />\n \n \n }>\n {\n setSystemStatusSize(cardState.EXPANDED)\n setAlertsSize(cardState.SHRUNK)\n }}\n onReset={onReset}\n size={systemStatusSize}\n />\n \n >\n \n \n )\n}\n\nexport default RightSide\n","import { useQuery } from '@apollo/react-hooks'\nimport Grid from '@material-ui/core/Grid'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\nimport { useHistory } from 'react-router-dom'\n\nimport { Button } from 'src/components/buttons'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport { H1, Info2, TL2, Label1 } from 'src/components/typography'\nimport AddMachine from 'src/pages/AddMachine'\nimport { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport { errorColor } from 'src/styling/variables'\n\nimport styles from './Dashboard.styles'\nimport Footer from './Footer'\nimport LeftSide from './LeftSide'\nimport RightSide from './RightSide'\nconst useStyles = makeStyles(styles)\n\nconst GET_DATA = gql`\n query getData {\n machines {\n name\n }\n serverVersion\n }\n`\n\nconst Dashboard = () => {\n const history = useHistory()\n const classes = useStyles()\n const [open, setOpen] = useState(false)\n\n const { data, loading } = useQuery(GET_DATA)\n\n const onPaired = machine => {\n setOpen(false)\n history.push('/maintenance/machine-status', { id: machine.deviceId })\n }\n\n return !loading ? (\n !R.isEmpty(data.machines) ? (\n <>\n \n \n
\n \n Cash-in \n
\n
\n \n Cash-out \n
\n
\n \n \n \n Action Required \n
\n
\n \n \n \n \n \n \n \n \n \n \n
\n \n >\n ) : (\n <>\n {open && (\n setOpen(false)} onPaired={onPaired} />\n )}\n \n \n \n {data?.serverVersion} {' '}\n server version \n \n
\n \n \n
\n
No machines on your system yet \n \n To fully take advantage of Lamassu Admin, add a new machine to\n your system\n \n setOpen(true)}>+ Add new machine \n \n
\n \n >\n )\n ) : (\n <>>\n )\n}\n\nexport default Dashboard\n","import Dashboard from './Dashboard'\nexport default Dashboard\n","import { useFormikContext } from 'formik'\nimport React, { useEffect } from 'react'\nimport { Prompt } from 'react-router-dom'\n\nconst PROMPT_DEFAULT_MESSAGE =\n 'You have unsaved changes on this page. Are you sure you want to leave?'\n\nconst PromptWhenDirty = ({ message = PROMPT_DEFAULT_MESSAGE }) => {\n const formik = useFormikContext()\n\n const hasChanges = formik.dirty && formik.submitCount === 0\n\n useEffect(() => {\n if (hasChanges) {\n window.onbeforeunload = confirmExit\n } else {\n window.onbeforeunload = undefined\n }\n }, [hasChanges])\n\n const confirmExit = () => {\n return PROMPT_DEFAULT_MESSAGE\n }\n\n return \n}\n\nexport default PromptWhenDirty\n","import typographyStyles from 'src/components/typography/styles'\nimport { bySize, bold } from 'src/styling/helpers'\nimport {\n tableHeaderColor,\n tableHeaderHeight,\n tableErrorColor,\n tableSuccessColor,\n spacer,\n white,\n tableDoubleHeaderHeight,\n offColor,\n errorColor\n} from 'src/styling/variables'\n\nconst { tl2, p, label1 } = typographyStyles\n\nexport default {\n size: ({ size }) => bySize(size),\n bold,\n header: {\n extend: tl2,\n backgroundColor: tableHeaderColor,\n height: tableHeaderHeight,\n textAlign: 'left',\n color: white,\n display: 'flex',\n alignItems: 'center'\n },\n doubleHeader: {\n extend: tl2,\n backgroundColor: tableHeaderColor,\n height: tableDoubleHeaderHeight,\n color: white,\n display: 'table-row'\n },\n thDoubleLevel: ({ width }) => ({\n width,\n display: 'table-cell',\n '& > :first-child': {\n margin: [[0, 10]],\n extend: label1,\n fontWeight: 700,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: offColor,\n color: white,\n borderRadius: [[0, 0, 8, 8]],\n height: 28\n },\n '& > :last-child': {\n padding: [[0, 11]],\n display: 'table-cell',\n verticalAlign: 'middle',\n height: tableDoubleHeaderHeight - 28\n }\n }),\n cellDoubleLevel: {\n display: 'flex',\n padding: [[0, spacer * 2]]\n },\n td: ({ textAlign, width }) => ({\n width,\n padding: [[1, spacer * 3, 0, spacer * 3]],\n textAlign\n }),\n tdHeader: {\n verticalAlign: 'middle',\n display: 'table-cell',\n padding: [[0, spacer * 3]]\n },\n trError: {\n backgroundColor: tableErrorColor\n },\n trAdding: {\n backgroundColor: tableSuccessColor\n },\n mainContent: ({ size }) => {\n const sizes = {\n sm: 34,\n lg: 68\n }\n const minHeight = sizes[size] || 48\n return {\n display: 'flex',\n alignItems: 'center',\n minHeight\n }\n },\n // mui-overrides\n cardContentRoot: {\n margin: 0,\n padding: 0,\n '&:last-child': {\n padding: 0\n }\n },\n card: {\n extend: p,\n '&:before': {\n height: 0\n },\n margin: [[4, 0, 0, 0]],\n width: '100%',\n boxShadow: [[0, 0, 4, 0, 'rgba(0, 0, 0, 0.08)']]\n },\n actionCol: {\n marginLeft: 'auto'\n },\n errorContent: {\n padding: [[12, 0, 12, 24]],\n color: errorColor\n }\n}\n","import Card from '@material-ui/core/Card'\nimport CardContent from '@material-ui/core/CardContent'\nimport { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport { Link } from 'src/components/buttons'\n\nimport styles from './Table.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst Table = ({ children, className, ...props }) => (\n \n {children}\n
\n)\n\nconst THead = ({ children, className }) => {\n const classes = useStyles()\n return {children}
\n}\n\nconst TDoubleLevelHead = ({ children, className }) => {\n const classes = useStyles()\n\n return (\n \n {children}\n
\n )\n}\n\nconst TBody = ({ children, className }) => {\n return {children}
\n}\n\nconst Td = ({\n children,\n header,\n className,\n width = 100,\n size,\n bold,\n textAlign,\n action\n}) => {\n const classes = useStyles({ textAlign, width, size })\n const classNames = {\n [classes.td]: true,\n [classes.tdHeader]: header,\n [classes.actionCol]: action,\n [classes.size]: !header,\n [classes.bold]: !header && bold\n }\n return {children}
\n}\n\nconst Th = ({ children, ...props }) => {\n return (\n \n {children}\n \n )\n}\n\nconst ThDoubleLevel = ({ title, children, className, width }) => {\n const classes = useStyles({ width })\n\n return (\n \n
{title}
\n
{children}
\n
\n )\n}\n\nconst Tr = ({\n onClick,\n error,\n errorMessage,\n shouldShowError,\n children,\n className,\n size,\n newRow\n}) => {\n const classes = useStyles({ size })\n const cardClasses = { root: classes.cardContentRoot }\n const classNames = {\n [classes.tr]: true,\n [classes.trError]: error,\n [classes.card]: true,\n [classes.trAdding]: newRow,\n className\n }\n\n return (\n <>\n \n \n {children}
\n {error && shouldShowError && (\n {errorMessage}
\n )}\n \n \n >\n )\n}\n\nconst EditCell = ({ save, cancel }) => (\n \n \n Cancel\n \n \n Save\n \n \n)\n\nexport {\n Table,\n THead,\n TDoubleLevelHead,\n TBody,\n Tr,\n Td,\n Th,\n ThDoubleLevel,\n EditCell\n}\n","import React from 'react'\n\nexport default React.createContext()\n","import * as sanctuary from 'sanctuary'\n\nconst checkOnlyDev = () => {\n if (process.env.NODE_ENV !== 'production') return false\n\n return (\n process.env.NODE_ENV === 'development' &&\n process.env.REACT_APP_TYPE_CHECK_SANCTUARY === 'true'\n )\n}\n\nconst S = sanctuary.create({\n checkTypes: checkOnlyDev(),\n env: sanctuary.env\n})\n\nexport default S\n","import * as R from 'ramda'\n\nimport S from './sanctuary'\n\nconst formatLong = value => {\n if (!value || value.length <= 20) return value\n\n return `${value.slice(0, 8)}(...)${value.slice(\n value.length - 8,\n value.length\n )}`\n}\n\nconst toFirstLower = S.compose(S.joinWith(''))(R.adjust(0, S.toLower))\nconst toFirstUpper = S.compose(S.joinWith(''))(R.adjust(0, S.toUpper))\nconst onlyFirstToUpper = S.compose(toFirstUpper)(S.toLower)\n\nconst splitOnUpper = R.compose(\n S.splitOn(' '),\n R.replace(/([A-Z])/g, ' $1'),\n toFirstLower\n)\nconst startCase = R.compose(\n S.joinWith(' '),\n S.map(onlyFirstToUpper),\n splitOnUpper\n)\n\nconst singularOrPlural = (amount, singularStr, pluralStr) =>\n parseInt(amount) === 1 ? singularStr : pluralStr\n\nexport { startCase, onlyFirstToUpper, formatLong, singularOrPlural }\n","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport * as R from 'ramda'\nimport React, { useContext } from 'react'\n\nimport {\n Td,\n THead,\n TDoubleLevelHead,\n ThDoubleLevel\n} from 'src/components/fake-table/Table'\nimport { startCase } from 'src/utils/string'\n\nimport TableCtx from './Context'\n\nconst styles = {\n orderedBySpan: {\n whiteSpace: 'nowrap'\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst groupSecondHeader = elements => {\n const [toSHeader, noSHeader] = R.partition(R.has('doubleHeader'))(elements)\n\n if (!toSHeader.length) {\n return [elements, THead]\n }\n\n const index = R.indexOf(toSHeader[0], elements)\n const width = R.compose(R.sum, R.map(R.path(['width'])))(toSHeader)\n\n const innerElements = R.insert(\n index,\n { width, elements: toSHeader, name: toSHeader[0].doubleHeader },\n noSHeader\n )\n\n return [innerElements, TDoubleLevelHead]\n}\n\nconst Header = () => {\n const classes = useStyles()\n const {\n elements,\n enableEdit,\n enableEditText,\n editWidth,\n enableDelete,\n deleteWidth,\n enableToggle,\n toggleWidth,\n orderedBy,\n DEFAULT_COL_SIZE\n } = useContext(TableCtx)\n\n const mapElement2 = (it, idx) => {\n const { width, elements, name } = it\n\n if (elements && elements.length) {\n return (\n \n {elements.map(mapElement)}\n \n )\n }\n\n return mapElement(it, idx)\n }\n\n const mapElement = (\n { name, width = DEFAULT_COL_SIZE, header, textAlign },\n idx\n ) => {\n const orderClasses = classnames({\n [classes.orderedBySpan]:\n R.isNil(header) && !R.isNil(orderedBy) && R.equals(name, orderedBy.code)\n })\n\n const attachOrderedByToComplexHeader = header => {\n if (!R.isNil(orderedBy) && R.equals(name, orderedBy.code)) {\n try {\n const cloneHeader = R.clone(header)\n const children = R.path(['props', 'children'], cloneHeader)\n const spanChild = R.find(it => R.equals(it.type, 'span'), children)\n spanChild.props.children = R.append(' -', spanChild.props.children)\n return cloneHeader\n } catch (e) {\n return header\n }\n }\n return header\n }\n\n return (\n \n {!R.isNil(header) ? (\n <>{attachOrderedByToComplexHeader(header) ?? header}>\n ) : (\n \n {startCase(name)}{' '}\n {!R.isNil(orderedBy) && R.equals(name, orderedBy.code) && '-'}\n \n )}\n \n )\n }\n\n const [innerElements, HeaderElement] = groupSecondHeader(elements)\n\n return (\n \n {innerElements.map(mapElement2)}\n {enableEdit && (\n \n {enableEditText ?? `Edit`}\n \n )}\n {enableDelete && (\n \n Delete\n \n )}\n {enableToggle && (\n \n Enable\n \n )}\n \n )\n}\n\nexport default Header\n","import {\r\n Dialog,\r\n DialogActions,\r\n DialogContent,\r\n makeStyles\r\n} from '@material-ui/core'\r\nimport React from 'react'\r\n\r\nimport { Button, IconButton } from 'src/components/buttons'\r\nimport { H4, P } from 'src/components/typography'\r\nimport { ReactComponent as CloseIcon } from 'src/styling/icons/action/close/zodiac.svg'\r\nimport { spacer } from 'src/styling/variables'\r\n\r\nimport ErrorMessage from './ErrorMessage'\r\n\r\nconst useStyles = makeStyles({\r\n content: {\r\n width: 434,\r\n padding: spacer * 2,\r\n paddingRight: spacer * 3.5\r\n },\r\n titleSection: {\r\n padding: spacer * 2,\r\n paddingRight: spacer * 1.5,\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n margin: 0\r\n },\r\n actions: {\r\n padding: spacer * 4,\r\n paddingTop: spacer * 2\r\n },\r\n title: {\r\n margin: 0\r\n },\r\n closeButton: {\r\n padding: 0,\r\n marginTop: -(spacer / 2)\r\n }\r\n})\r\n\r\nexport const DialogTitle = ({ children, close }) => {\r\n const classes = useStyles()\r\n return (\r\n \r\n {children}\r\n {close && (\r\n \r\n \r\n \r\n )}\r\n
\r\n )\r\n}\r\n\r\nexport const DeleteDialog = ({\r\n title = 'Confirm Delete',\r\n open = false,\r\n onConfirmed,\r\n onDismissed,\r\n item = 'item',\r\n confirmationMessage = `Are you sure you want to delete this ${item}?`,\r\n errorMessage = ''\r\n}) => {\r\n const classes = useStyles()\r\n\r\n return (\r\n \r\n onDismissed()}>\r\n {title} \r\n \r\n {errorMessage && (\r\n \r\n \r\n {errorMessage.split(':').map(error => (\r\n <>\r\n {error}\r\n \r\n >\r\n ))}\r\n \r\n \r\n )}\r\n \r\n {confirmationMessage && {confirmationMessage}
}\r\n \r\n \r\n Confirm \r\n \r\n \r\n )\r\n}\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: \"arrow-path\",\n d: \"M5.3501239,7.53208616 L0.473798314,2.73082122 C-0.158421727,2.1051411 -0.158421727,1.0952488 0.476737158,0.466675069 C1.11220338,-0.155816755 2.1378971,-0.155816755 2.77494316,0.468226909 L6.49990857,4.13723769 L10.2264532,0.466675069 C10.8619195,-0.155816755 11.8876132,-0.155816755 12.5260183,0.469568675 C13.1582383,1.0952488 13.1582383,2.1051411 12.5245507,2.73226987 L7.64673876,7.53497972 C7.33802629,7.83583835 6.92590837,8 6.49990828,8 C6.0739082,8 5.66179027,7.83583835 5.3501239,7.53208616 Z\"\n}));\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Styleguide\",\n stroke: \"none\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/arrow/regular\"\n}, /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask-2\",\n fill: \"white\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#path-1\"\n})), /*#__PURE__*/React.createElement(\"use\", {\n id: \"Mask\",\n fillRule: \"nonzero\",\n xlinkHref: \"#arrow-path\"\n})));\n\nfunction SvgRegular(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"13px\",\n height: \"8px\",\n viewBox: \"0 0 13 8\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgRegular);\nexport default __webpack_public_path__ + \"static/media/regular.3140e691.svg\";\nexport { ForwardRef as ReactComponent };","import { subheaderColor, offColor, white } from '../../../styling/variables'\nimport typographyStyles from '../../typography/styles'\n\nconst { p, label1 } = typographyStyles\n\nconst WIDTH = 152\n\nexport default {\n selectedItem: {\n width: WIDTH - 41,\n display: 'block',\n whiteSpace: 'nowrap',\n overflow: 'hidden'\n },\n select: {\n width: WIDTH,\n zIndex: 1,\n '& label': {\n extend: label1,\n color: offColor,\n paddingLeft: 10\n },\n '& button': {\n extend: p,\n position: 'relative',\n border: 0,\n backgroundColor: subheaderColor,\n width: WIDTH,\n padding: [[6, 0, 6, 12]],\n borderRadius: 20,\n lineHeight: '1.14',\n textAlign: 'left',\n color: offColor,\n cursor: 'pointer',\n outline: '0 none'\n },\n '& ul': {\n maxHeight: '200px',\n width: WIDTH,\n overflowY: 'auto',\n position: 'absolute',\n margin: 0,\n borderTop: 0,\n padding: 0,\n borderRadius: [[0, 0, 8, 8]],\n backgroundColor: subheaderColor,\n outline: '0 none',\n '& li': {\n extend: p,\n listStyleType: 'none',\n padding: [[6, 12]],\n cursor: 'pointer',\n '& span': {\n width: '100%',\n display: 'block',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n }\n },\n '& li:hover': {\n backgroundColor: offColor,\n color: white\n }\n },\n '& svg': {\n position: 'absolute',\n top: 12,\n right: 14,\n fill: offColor\n }\n },\n selectFiltered: {\n '& button': {\n backgroundColor: offColor,\n color: white\n },\n '& ul': {\n '& li': {\n backgroundColor: offColor,\n color: white\n },\n '& li:hover': {\n backgroundColor: subheaderColor,\n color: offColor\n }\n },\n '& svg': {\n fill: [[white], '!important']\n }\n },\n open: {\n '& button': {\n borderRadius: [[8, 8, 0, 0]]\n }\n }\n}\n","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { useSelect } from 'downshift'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport { ReactComponent as Arrowdown } from 'src/styling/icons/action/arrow/regular.svg'\n\nimport styles from './Select.styles'\n\nconst useStyles = makeStyles(styles)\n\nfunction Select({ className, label, items, ...props }) {\n const classes = useStyles()\n\n const {\n isOpen,\n selectedItem,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getItemProps\n } = useSelect({\n items,\n selectedItem: props.selectedItem,\n onSelectedItemChange: item => {\n props.onSelectedItemChange(item.selectedItem)\n }\n })\n\n const selectClassNames = {\n [classes.select]: true,\n [classes.selectFiltered]: props.defaultAsFilter\n ? true\n : !R.equals(selectedItem, props.default),\n [classes.open]: isOpen\n }\n\n return (\n \n
{label} \n
\n {selectedItem.display} \n \n \n
\n {isOpen &&\n items.map(({ code, display }, index) => (\n \n {display} \n \n ))}\n \n
\n )\n}\n\nexport default Select\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: \"a\",\n d: \"M0 0h22v22H0z\"\n}));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"mask\", {\n id: \"b\",\n fill: \"#fff\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#a\"\n})), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#9B9B9B\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n mask: \"url(#b)\",\n d: \"M9 9v9M13 9v9\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n mask: \"url(#b)\",\n stroke: \"#9B9B9B\",\n strokeLinecap: \"round\",\n strokeWidth: 2\n}, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinejoin: \"round\",\n d: \"M3 6l2 15h12l2-15\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1 5h20M14 4a3 3 0 10-6 0\"\n})));\n\nfunction SvgDisabled(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 22,\n height: 22,\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDisabled);\nexport default __webpack_public_path__ + \"static/media/disabled.347e2b5e.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/delete/enabled\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 9,\n y1: 9,\n x2: 9,\n y2: 18,\n id: \"Stroke-1\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 13,\n y1: 9,\n x2: 13,\n y2: 18,\n id: \"Stroke-2\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n strokeLinejoin: \"round\",\n points: \"3 6 5 21 17 21 19 6\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 1,\n y1: 5,\n x2: 21,\n y2: 5,\n id: \"Stroke-5\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14,4 C14,2.343 12.657,1 11,1 C9.343,1 8,2.343 8,4\",\n id: \"Stroke-7\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}));\n\nfunction SvgEnabled(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"22px\",\n height: \"22px\",\n viewBox: \"0 0 22 22\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEnabled);\nexport default __webpack_public_path__ + \"static/media/enabled.a058fdfc.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/edit/disabled\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1,18 L1,18 C1,19.657 2.343,21 4,21 L18,21 C19.657,21 21,19.657 21,18\",\n id: \"Stroke-1\",\n stroke: \"#9B9B9B\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-3\",\n stroke: \"#9B9B9B\",\n strokeWidth: 2,\n points: \"6 12 17 1 21 5 10 16 6 16\"\n}));\n\nfunction SvgDisabled(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"22px\",\n height: \"22px\",\n viewBox: \"0 0 22 22\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDisabled);\nexport default __webpack_public_path__ + \"static/media/disabled.aede2073.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/edit/enabled\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1,18 L1,18 C1,19.657 2.343,21 4,21 L18,21 C19.657,21 21,19.657 21,18\",\n id: \"Stroke-1\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-3\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n points: \"6 12 17 1 21 5 10 16 6 16\"\n}));\n\nfunction SvgEnabled(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"22px\",\n height: \"22px\",\n viewBox: \"0 0 22 22\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEnabled);\nexport default __webpack_public_path__ + \"static/media/enabled.5aae4510.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"pattern\", {\n id: \"pattern_68JiZ\",\n patternUnits: \"userSpaceOnUse\",\n width: 5.5,\n height: 5.5,\n patternTransform: \"rotate(45)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y: 0,\n x2: 0,\n y2: 5.5,\n stroke: \"#DBDFED\",\n strokeWidth: 3\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: \"100%\",\n height: \"100%\",\n fill: \"url(#pattern_68JiZ)\",\n opacity: 1\n});\n\nfunction SvgStripes(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"100%\",\n height: \"36px\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, \"{' '}\\n \", _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgStripes);\nexport default __webpack_public_path__ + \"static/media/stripes.876e4081.svg\";\nexport { ForwardRef as ReactComponent };","import { bySize, bold } from 'src/styling/helpers'\n\nexport default {\n saveButton: {\n marginRight: 20\n },\n lastOfGroup: {\n marginBottom: 24\n },\n extraPadding: {\n paddingLeft: 35,\n paddingRight: 30\n },\n extraPaddingRight: {\n paddingRight: 39\n },\n withSuffix: ({ textAlign }) => {\n const justifyContent = textAlign === 'right' ? 'flex-end' : textAlign\n return {\n display: 'flex',\n alignItems: 'center',\n justifyContent\n }\n },\n suffix: {\n margin: [[0, 0, 0, 7]]\n },\n size: ({ size }) => bySize(size),\n bold\n}\n","import { makeStyles } from '@material-ui/core'\r\nimport classnames from 'classnames'\r\nimport { Field, useFormikContext } from 'formik'\r\nimport * as R from 'ramda'\r\nimport React, { useContext, useState } from 'react'\r\n\r\nimport { DeleteDialog } from 'src/components/DeleteDialog'\r\nimport { Link, IconButton } from 'src/components/buttons'\r\nimport { Td, Tr } from 'src/components/fake-table/Table'\r\nimport { Switch } from 'src/components/inputs'\r\nimport { Label2 } from 'src/components/typography'\r\nimport { ReactComponent as DisabledDeleteIcon } from 'src/styling/icons/action/delete/disabled.svg'\r\nimport { ReactComponent as DeleteIcon } from 'src/styling/icons/action/delete/enabled.svg'\r\nimport { ReactComponent as DisabledEditIcon } from 'src/styling/icons/action/edit/disabled.svg'\r\nimport { ReactComponent as EditIcon } from 'src/styling/icons/action/edit/enabled.svg'\r\nimport { ReactComponent as StripesSvg } from 'src/styling/icons/stripes.svg'\r\n\r\nimport TableCtx from './Context'\r\nimport styles from './Row.styles'\r\n\r\nconst useStyles = makeStyles(styles)\r\n\r\nconst ActionCol = ({ disabled, editing }) => {\r\n const classes = useStyles()\r\n const { values, submitForm, resetForm } = useFormikContext()\r\n const {\r\n editWidth,\r\n onEdit,\r\n enableEdit,\r\n enableDelete,\r\n disableRowEdit,\r\n onDelete,\r\n deleteWidth,\r\n enableToggle,\r\n onToggle,\r\n toggleWidth,\r\n forceAdd,\r\n clearError,\r\n actionColSize,\r\n error\r\n } = useContext(TableCtx)\r\n\r\n const disableEdit = disabled || (disableRowEdit && disableRowEdit(values))\r\n const cancel = () => {\r\n clearError()\r\n resetForm()\r\n }\r\n\r\n const [deleteDialog, setDeleteDialog] = useState(false)\r\n\r\n const onConfirmed = () => {\r\n onDelete(values.id).then(res => {\r\n if (!R.isNil(res)) setDeleteDialog(false)\r\n })\r\n }\r\n\r\n return (\r\n <>\r\n {editing && (\r\n \r\n \r\n Save\r\n \r\n {!forceAdd && (\r\n \r\n Cancel\r\n \r\n )}\r\n \r\n )}\r\n {!editing && enableEdit && (\r\n \r\n onEdit && onEdit(values.id)}>\r\n {disableEdit ? : }\r\n \r\n \r\n )}\r\n {!editing && enableDelete && (\r\n \r\n {\r\n setDeleteDialog(true)\r\n }}>\r\n {disabled ? : }\r\n \r\n {\r\n setDeleteDialog(false)\r\n clearError()\r\n }}\r\n errorMessage={error}\r\n />\r\n \r\n )}\r\n {!editing && enableToggle && (\r\n \r\n onToggle(values.id)}\r\n />\r\n \r\n )}\r\n >\r\n )\r\n}\r\n\r\nconst ECol = ({ editing, focus, config, extraPaddingRight, extraPadding }) => {\r\n const {\r\n name,\r\n bypassField,\r\n input,\r\n editable = true,\r\n size,\r\n bold,\r\n width,\r\n textAlign,\r\n editingAlign = textAlign,\r\n suffix,\r\n SuffixComponent = Label2,\r\n textStyle = it => {},\r\n isHidden = it => false,\r\n view = it => it?.toString(),\r\n inputProps = {}\r\n } = config\r\n\r\n const { values } = useFormikContext()\r\n const isEditable = editable => {\r\n if (typeof editable === 'function') return editable(values)\r\n return editable\r\n }\r\n const isEditing = editing && isEditable(editable)\r\n const isField = !bypassField\r\n\r\n const classes = useStyles({\r\n textAlign: isEditing ? editingAlign : textAlign,\r\n size\r\n })\r\n\r\n const innerProps = {\r\n fullWidth: true,\r\n autoFocus: focus,\r\n size,\r\n bold,\r\n textAlign: isEditing ? editingAlign : textAlign,\r\n ...inputProps\r\n }\r\n\r\n return (\r\n \r\n {isEditing && isField && !isHidden(values) && (\r\n \r\n )}\r\n {isEditing && !isField && !isHidden(values) && (\r\n \r\n )}\r\n {!isEditing && values && !isHidden(values) && (\r\n \r\n {view(values[name], values)}\r\n
\r\n )}\r\n {suffix && !isHidden(values) && (\r\n \r\n {suffix}\r\n \r\n )}\r\n {isHidden(values) && }\r\n \r\n )\r\n}\r\n\r\nconst groupStriped = elements => {\r\n const [toStripe, noStripe] = R.partition(R.propEq('stripe', true))(elements)\r\n\r\n if (!toStripe.length) {\r\n return elements\r\n }\r\n\r\n const index = R.indexOf(toStripe[0], elements)\r\n const width = R.compose(R.sum, R.map(R.path(['width'])))(toStripe)\r\n\r\n return R.insert(\r\n index,\r\n { width, editable: false, view: () => },\r\n noStripe\r\n )\r\n}\r\n\r\nconst ERow = ({ editing, disabled, lastOfGroup, newRow }) => {\r\n const { touched, errors, values } = useFormikContext()\r\n const {\r\n elements,\r\n enableEdit,\r\n enableDelete,\r\n error,\r\n enableToggle,\r\n rowSize,\r\n stripeWhen\r\n } = useContext(TableCtx)\r\n\r\n const classes = useStyles()\r\n\r\n const shouldStripe = !editing && stripeWhen && stripeWhen(values)\r\n\r\n const innerElements = shouldStripe ? groupStriped(elements) : elements\r\n const [toSHeader] = R.partition(R.has('doubleHeader'))(elements)\r\n\r\n const extraPaddingIndex = toSHeader?.length\r\n ? R.indexOf(toSHeader[0], elements)\r\n : -1\r\n\r\n const extraPaddingRightIndex = toSHeader?.length\r\n ? R.indexOf(toSHeader[toSHeader.length - 1], elements)\r\n : -1\r\n\r\n const elementToFocusIndex = innerElements.findIndex(\r\n it => it.editable === undefined || it.editable\r\n )\r\n\r\n const classNames = {\r\n [classes.lastOfGroup]: lastOfGroup\r\n }\r\n\r\n const touchedErrors = R.pick(R.keys(touched), errors)\r\n const hasTouchedErrors = touchedErrors && R.keys(touchedErrors).length > 0\r\n const hasErrors = hasTouchedErrors || !!error\r\n\r\n const errorMessage =\r\n error || (touchedErrors && R.values(touchedErrors).join(', '))\r\n\r\n return (\r\n \r\n {innerElements.map((it, idx) => {\r\n return (\r\n \r\n )\r\n })}\r\n {(enableEdit || enableDelete || enableToggle) && (\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default ERow\r\n","import { offColor } from 'src/styling/variables'\n\nexport default {\n wrapper: ({ width }) => ({\n width: width\n }),\n addLink: {\n marginLeft: 'auto'\n },\n title: {\n margin: 0,\n color: offColor\n },\n outerHeader: {\n minHeight: 16,\n marginBottom: 24,\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center'\n }\n}\n","import { makeStyles } from '@material-ui/core'\nimport { Form, Formik } from 'formik'\nimport * as R from 'ramda'\nimport React, { useState, useEffect } from 'react'\nimport { v4 } from 'uuid'\n\nimport PromptWhenDirty from 'src/components/PromptWhenDirty'\nimport Link from 'src/components/buttons/Link.js'\nimport { AddButton } from 'src/components/buttons/index.js'\nimport { TBody, Table } from 'src/components/fake-table/Table'\nimport { Info2, TL1 } from 'src/components/typography'\n\nimport TableCtx from './Context'\nimport Header from './Header'\nimport ERow from './Row'\nimport styles from './Table.styles'\n\nconst ACTION_COL_SIZE = 87\nconst DEFAULT_COL_SIZE = 100\n\nconst useStyles = makeStyles(styles)\n\nconst getWidth = R.compose(\n R.reduce(R.add)(0),\n R.map(it => it.width ?? DEFAULT_COL_SIZE)\n)\n\nconst ETable = ({\n name,\n title,\n titleLg,\n elements = [],\n data = [],\n save,\n error: externalError,\n rowSize = 'md',\n validationSchema,\n enableCreate,\n enableEdit,\n enableEditText,\n editWidth: outerEditWidth,\n enableDelete,\n deleteWidth = ACTION_COL_SIZE,\n enableToggle,\n toggleWidth = ACTION_COL_SIZE,\n onToggle,\n forceDisable,\n disableAdd,\n initialValues,\n setEditing,\n shouldOverrideEdit,\n editOverride,\n stripeWhen,\n disableRowEdit,\n groupBy,\n sortBy,\n createText = 'Add override',\n forceAdd = false,\n tbodyWrapperClass,\n orderedBy = null\n}) => {\n const [editingId, setEditingId] = useState(null)\n const [adding, setAdding] = useState(false)\n const [saving, setSaving] = useState(false)\n const [error, setError] = useState(null)\n\n useEffect(() => setError(externalError), [externalError])\n useEffect(() => {\n setError(null)\n setAdding(forceAdd)\n }, [forceAdd])\n\n const innerSave = async value => {\n if (saving) return\n\n setSaving(true)\n\n const it = validationSchema.cast(value)\n const index = R.findIndex(R.propEq('id', it.id))(data)\n const list = index !== -1 ? R.update(index, it, data) : R.prepend(it, data)\n\n if (!R.equals(data[index], it)) {\n try {\n await save({ [name]: list }, it)\n } catch (err) {\n setSaving(false)\n return\n }\n }\n\n setAdding(false)\n setEditing && setEditing(false)\n setSaving(false)\n }\n\n const onDelete = id => {\n const list = R.reject(it => it.id === id, data)\n return save({ [name]: list })\n }\n\n const onReset = () => {\n setAdding(false)\n setEditingId(null)\n setEditing && setEditing(false)\n }\n\n const onEdit = it => {\n if (shouldOverrideEdit && shouldOverrideEdit(it)) return editOverride(it)\n setEditingId(it)\n setError(null)\n setEditing && setEditing(it, true)\n }\n\n const addField = () => {\n setAdding(true)\n setError(null)\n setEditing && setEditing(true, true)\n }\n\n const widthIfEditNull =\n enableDelete || enableToggle ? ACTION_COL_SIZE : ACTION_COL_SIZE * 2\n\n const editWidth = R.defaultTo(widthIfEditNull)(outerEditWidth)\n\n const actionColSize =\n ((enableDelete && deleteWidth) ?? 0) +\n ((enableEdit && editWidth) ?? 0) +\n ((enableToggle && toggleWidth) ?? 0)\n\n const width = getWidth(elements) + actionColSize\n\n const classes = useStyles({ width })\n\n const showButtonOnEmpty = !data.length && enableCreate && !adding\n const canAdd = !forceDisable && !editingId && !disableAdd && !adding\n const showTable = adding || data.length !== 0\n\n const innerData = sortBy ? R.sortWith(sortBy)(data) : data\n\n const ctxValue = {\n elements,\n enableEdit,\n enableEditText,\n onEdit,\n clearError: () => setError(null),\n error: error,\n disableRowEdit,\n editWidth,\n enableDelete,\n onDelete,\n deleteWidth,\n enableToggle,\n rowSize,\n onToggle,\n toggleWidth,\n actionColSize,\n stripeWhen,\n forceAdd,\n orderedBy,\n DEFAULT_COL_SIZE\n }\n\n return (\n \n \n {showButtonOnEmpty && canAdd && (\n
{createText} \n )}\n {showTable && (\n <>\n {(title || enableCreate) && (\n
\n {title && titleLg && (\n {title} \n )}\n {title && !titleLg && (\n {title} \n )}\n {enableCreate && canAdd && (\n \n {createText}\n \n )}\n
\n )}\n
\n \n \n
\n {adding && (\n \n \n \n )}\n {innerData.map((it, idx) => {\n const nextElement = innerData[idx + 1]\n\n const canGroup = !!groupBy && nextElement\n const isFunction = R.type(groupBy) === 'Function'\n const groupFunction = isFunction ? groupBy : R.prop(groupBy)\n\n const isLastOfGroup =\n canGroup &&\n groupFunction(it) !== groupFunction(nextElement)\n\n return (\n \n \n \n )\n })}\n \n
\n
\n >\n )}\n
\n \n )\n}\n\nexport default ETable\n","import * as R from 'ramda'\nimport React from 'react'\n\nimport { fromNamespace, toNamespace } from 'src/utils/config'\n\nimport EditableTable from './Table'\n\nconst NamespacedTable = ({\n name,\n save,\n data = {},\n namespaces = [],\n ...props\n}) => {\n const innerSave = (...[, it]) => {\n return save(toNamespace(it.id)(R.omit(['id2'], it)))\n }\n\n const innerData = R.map(it => ({\n id: it,\n ...fromNamespace(it)(data)\n }))(namespaces)\n\n return (\n \n )\n}\n\nexport default NamespacedTable\n","import { makeStyles, Modal as MaterialModal, Paper } from '@material-ui/core'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport { IconButton } from 'src/components/buttons'\nimport { H1, H4 } from 'src/components/typography'\nimport { ReactComponent as CloseIcon } from 'src/styling/icons/action/close/zodiac.svg'\n\nconst styles = {\n modal: {\n display: 'flex',\n justifyContent: 'center',\n flexDirection: 'column',\n alignItems: 'center'\n },\n wrapper: ({ width, height }) => ({\n width,\n height,\n display: 'flex',\n flexDirection: 'column',\n minHeight: height ?? 400,\n maxHeight: '90vh',\n overflowY: 'auto',\n borderRadius: 8,\n outline: 0\n }),\n infoPanelWrapper: ({ width, infoPanelHeight }) => ({\n width,\n height: infoPanelHeight,\n marginTop: 16,\n display: 'flex',\n flexDirection: 'column',\n minHeight: infoPanelHeight ?? 200,\n maxHeight: '90vh',\n overflowY: 'auto',\n borderRadius: 8,\n outline: 0\n }),\n panelContent: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n padding: [[0, 24]]\n },\n content: ({ small, xl }) => ({\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n padding: xl ? [[0, 60 + 28]] : small ? [[0, 16]] : [[0, 32]]\n }),\n button: ({ small, xl }) => ({\n padding: [[0, 0, xl ? 26 : 0, 0]],\n margin: xl\n ? [[0, 0, 'auto', 'auto']]\n : small\n ? [[12, 12, 'auto', 'auto']]\n : [[16, 16, 'auto', 'auto']]\n }),\n header: {\n display: 'flex'\n },\n title: ({ small }) => ({\n margin: small ? [[20, 0, 8, 16]] : [[28, 0, 8, 32]]\n })\n}\n\nconst useStyles = makeStyles(styles)\n\nconst Modal = ({\n width,\n height,\n infoPanelHeight,\n title,\n small,\n xl,\n infoPanel,\n handleClose,\n children,\n secondaryModal,\n className,\n closeOnEscape,\n closeOnBackdropClick,\n ...props\n}) => {\n const classes = useStyles({ width, height, small, infoPanelHeight, xl })\n const TitleCase = small ? H4 : H1\n const closeSize = xl ? 28 : small ? 16 : 20\n\n const innerClose = (evt, reason) => {\n if (!closeOnBackdropClick && reason === 'backdropClick') return\n if (!closeOnEscape && reason === 'escapeKeyDown') return\n handleClose()\n }\n\n return (\n \n <>\n \n \n {title && {title} }\n handleClose()}>\n \n \n
\n {children}
\n \n {infoPanel && (\n \n {infoPanel}
\n \n )}\n >\n \n )\n}\n\nexport default Modal\n","const CURRENCY_MAX = 9999999\nconst MIN_NUMBER_OF_CASSETTES = 2\nconst MAX_NUMBER_OF_CASSETTES = 4\nconst WALLET_SCORING_DEFAULT_THRESHOLD = 9\n\nconst AUTOMATIC = 'automatic'\nconst MANUAL = 'manual'\n\nconst IP_CHECK_REGEX = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/\n\nexport {\n CURRENCY_MAX,\n MIN_NUMBER_OF_CASSETTES,\n MAX_NUMBER_OF_CASSETTES,\n AUTOMATIC,\n MANUAL,\n WALLET_SCORING_DEFAULT_THRESHOLD,\n IP_CHECK_REGEX\n}\n","export default __webpack_public_path__ + \"static/media/both-filled.7af80d5f.svg\";","import { makeStyles } from '@material-ui/core'\nimport React from 'react'\n\nimport { Button } from 'src/components/buttons'\nimport { H1, P, Info2 } from 'src/components/typography'\nimport filledCassettes from 'src/styling/icons/cassettes/both-filled.svg'\nimport { ReactComponent as WarningIcon } from 'src/styling/icons/warning-icon/comet.svg'\nimport { comet } from 'src/styling/variables'\n\nconst styles = {\n button: {\n margin: [[35, 'auto', 0, 'auto']]\n },\n modalContent: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n flex: 1,\n padding: [[0, 34]]\n },\n splashTitle: {\n marginTop: 15\n },\n warningInfo: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n marginTop: 15\n },\n warningIcon: {\n width: 25,\n height: 25,\n marginRight: 8,\n display: 'block'\n },\n warningText: {\n flexBasis: '100%',\n flexGrow: 1\n },\n machineName: {\n margin: [[5, 0]],\n color: comet\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst WizardSplash = ({ name, onContinue }) => {\n const classes = useStyles()\n\n return (\n \n
\n
\n Update counts\n \n
\n {name}\n \n
\n
\n
\n Before updating counts on Lamassu Admin, make sure you've done it\n before on the machines.\n
\n
\n
\n
\n
\n For cash cassettes, please make sure you've removed the remaining\n bills before adding the new ones.\n
\n
\n
\n Get started\n \n
\n )\n}\n\nexport default WizardSplash\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/stage/spring/current\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-2-Copy\",\n fill: \"#48F694\",\n cx: 9,\n cy: 9,\n r: 4\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-Copy-5\",\n stroke: \"#48F694\",\n strokeWidth: 2,\n transform: \"translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) \",\n cx: 9,\n cy: 9,\n r: 8\n}));\n\nfunction SvgCurrent(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"18px\",\n viewBox: \"0 0 18 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCurrent);\nexport default __webpack_public_path__ + \"static/media/current.9bbfa93f.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport * as R from 'ramda'\nimport React, { memo } from 'react'\n\nimport { ReactComponent as CompleteStageIconSpring } from 'src/styling/icons/stage/spring/complete.svg'\nimport { ReactComponent as CurrentStageIconSpring } from 'src/styling/icons/stage/spring/current.svg'\nimport { ReactComponent as EmptyStageIconSpring } from 'src/styling/icons/stage/spring/empty.svg'\nimport { ReactComponent as CompleteStageIconZodiac } from 'src/styling/icons/stage/zodiac/complete.svg'\nimport { ReactComponent as CurrentStageIconZodiac } from 'src/styling/icons/stage/zodiac/current.svg'\nimport { ReactComponent as EmptyStageIconZodiac } from 'src/styling/icons/stage/zodiac/empty.svg'\nimport {\n primaryColor,\n secondaryColor,\n offColor,\n disabledColor\n} from 'src/styling/variables'\n\nconst styles = {\n stages: {\n display: 'flex',\n alignItems: 'center'\n },\n wrapper: {\n display: 'flex',\n alignItems: 'center',\n margin: 0\n },\n stage: {\n display: 'flex',\n height: 28,\n width: 28,\n zIndex: 2,\n '& > svg': {\n height: '100%',\n width: '100%',\n overflow: 'visible'\n }\n },\n separator: {\n width: 28,\n height: 2,\n border: [[2, 'solid']],\n zIndex: 1\n },\n separatorSpring: {\n borderColor: secondaryColor\n },\n separatorZodiac: {\n borderColor: primaryColor\n },\n separatorSpringEmpty: {\n borderColor: disabledColor\n },\n separatorZodiacEmpty: {\n borderColor: offColor\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst Stepper = memo(({ steps, currentStep, color = 'spring', className }) => {\n if (currentStep < 1 || currentStep > steps)\n throw Error('Value of currentStage is invalid')\n if (steps < 1) throw Error('Value of stages is invalid')\n\n const classes = useStyles()\n\n const separatorClasses = {\n [classes.separator]: true,\n [classes.separatorSpring]: color === 'spring',\n [classes.separatorZodiac]: color === 'zodiac'\n }\n\n const separatorEmptyClasses = {\n [classes.separator]: true,\n [classes.separatorSpringEmpty]: color === 'spring',\n [classes.separatorZodiacEmpty]: color === 'zodiac'\n }\n\n return (\n \n {R.range(1, currentStep).map(idx => (\n
\n {idx > 1 &&
}\n
\n {color === 'spring' && }\n {color === 'zodiac' && }\n
\n
\n ))}\n
\n {currentStep > 1 &&
}\n
\n {color === 'spring' && }\n {color === 'zodiac' && }\n
\n
\n {R.range(currentStep + 1, steps + 1).map(idx => (\n
\n
\n
\n {color === 'spring' && }\n {color === 'zodiac' && }\n
\n
\n ))}\n
\n )\n})\n\nexport default Stepper\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/help/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.0004,11 C20.0004,6.03028475 15.9701153,2 11.0004,2 C6.03004556,2 2.0004,6.02992391 2.0004,11 C2.0004,15.9700761 6.03004556,20 11.0004,20 C15.9701153,20 20.0004,15.9697153 20.0004,11 Z M22.0004,11 C22.0004,17.0742847 17.0746847,22 11.0004,22 C4.92544514,22 0.000400000001,17.0746147 0.000400000001,11 C0.000400000001,4.92538534 4.92544514,0 11.0004,0 C17.0746847,0 22.0004,4.92571525 22.0004,11 Z\",\n id: \"Stroke-1\",\n fill: \"#1B2559\",\n fillRule: \"nonzero\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.9164,8.9063 C9.9164,9.45858475 9.46868475,9.9063 8.9164,9.9063 C8.36411525,9.9063 7.9164,9.45858475 7.9164,8.9063 C7.9164,6.89094438 9.72972438,5.35290249 11.7463843,5.7072003 C13.0663562,5.93764844 14.1348314,7.00654285 14.3652323,8.32479116 C14.6130182,9.7312185 13.941375,11.0876584 12.732214,11.7545735 C12.370484,11.9534687 12.1664,12.2664153 12.1664,12.5913 L12.1664,12.6563 C12.1664,13.2085847 11.7186847,13.6563 11.1664,13.6563 C10.6141153,13.6563 10.1664,13.2085847 10.1664,12.6563 L10.1664,12.5913 C10.1664,11.5009567 10.7946963,10.5375141 11.7674377,10.0026589 C12.2360927,9.74417086 12.493064,9.22519581 12.3953326,8.67046887 C12.3098185,8.1811985 11.8915858,7.76280177 11.4013649,7.67721566 C10.6126181,7.53864454 9.9164,8.1291691 9.9164,8.9063 Z\",\n id: \"Stroke-3\",\n fill: \"#1B2559\",\n fillRule: \"nonzero\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.1039,15.2188 C10.1039,14.6318 10.5799,14.1568 11.1659,14.1568 C11.7529,14.1568 12.2289,14.6318 12.2289,15.2188 C12.2289,15.8058 11.7529,16.2808 11.1659,16.2808 C10.5799,16.2808 10.1039,15.8058 10.1039,15.2188\",\n id: \"Fill-5\",\n fill: \"#1B2559\"\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"22px\",\n height: \"22px\",\n viewBox: \"0 0 22 22\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.1bd00dea.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles, ClickAwayListener } from '@material-ui/core'\nimport * as R from 'ramda'\nimport React, { useState, memo } from 'react'\n\nimport Popper from 'src/components/Popper'\nimport { ReactComponent as HelpIcon } from 'src/styling/icons/action/help/zodiac.svg'\n\nconst useStyles = makeStyles({\n transparentButton: {\n border: 'none',\n backgroundColor: 'transparent',\n outline: 'none',\n cursor: 'pointer',\n marginTop: 4\n },\n popoverContent: ({ width }) => ({\n width,\n padding: [[10, 15]]\n })\n})\n\nconst usePopperHandler = width => {\n const classes = useStyles({ width })\n const [helpPopperAnchorEl, setHelpPopperAnchorEl] = useState(null)\n\n const handleOpenHelpPopper = event => {\n setHelpPopperAnchorEl(helpPopperAnchorEl ? null : event.currentTarget)\n }\n\n const handleCloseHelpPopper = () => {\n setHelpPopperAnchorEl(null)\n }\n\n const helpPopperOpen = Boolean(helpPopperAnchorEl)\n\n return {\n classes,\n helpPopperAnchorEl,\n helpPopperOpen,\n handleOpenHelpPopper,\n handleCloseHelpPopper\n }\n}\n\nconst Tooltip = memo(({ children, width, Icon = HelpIcon }) => {\n const handler = usePopperHandler(width)\n\n return (\n \n \n
\n \n \n
\n {children}
\n \n
\n \n )\n})\n\nconst HoverableTooltip = memo(({ parentElements, children, width }) => {\n const handler = usePopperHandler(width)\n\n return (\n \n {!R.isNil(parentElements) && (\n
\n {parentElements}\n
\n )}\n {R.isNil(parentElements) && (\n
\n \n \n )}\n
\n {children}
\n \n
\n )\n})\n\nexport { Tooltip, HoverableTooltip }\n","export default __webpack_public_path__ + \"static/media/acceptor-left.f37bcb1a.svg\";","export default __webpack_public_path__ + \"static/media/dispenser-1.e4200f4e.svg\";","export default __webpack_public_path__ + \"static/media/dispenser-2.9f7807a5.svg\";","export default __webpack_public_path__ + \"static/media/3-cassettes-open-1-left.d6d9aa73.svg\";","export default __webpack_public_path__ + \"static/media/3-cassettes-open-2-left.a9ee8d4c.svg\";","export default __webpack_public_path__ + \"static/media/3-cassettes-open-3-left.08fed660.svg\";","export default __webpack_public_path__ + \"static/media/4-cassettes-open-1-left.7b00c51f.svg\";","export default __webpack_public_path__ + \"static/media/4-cassettes-open-2-left.b3d9541c.svg\";","export default __webpack_public_path__ + \"static/media/4-cassettes-open-3-left.e8f1667c.svg\";","export default __webpack_public_path__ + \"static/media/4-cassettes-open-4-left.bc1a9829.svg\";","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { Formik, Form, Field } from 'formik'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport Stepper from 'src/components/Stepper'\nimport { HoverableTooltip } from 'src/components/Tooltip'\nimport { Button } from 'src/components/buttons'\nimport { Cashbox } from 'src/components/inputs/cashbox/Cashbox'\nimport { NumberInput, RadioGroup } from 'src/components/inputs/formik'\nimport { Info2, H4, P, Info1 } from 'src/components/typography'\nimport cashbox from 'src/styling/icons/cassettes/acceptor-left.svg'\nimport cassetteOne from 'src/styling/icons/cassettes/dispenser-1.svg'\nimport cassetteTwo from 'src/styling/icons/cassettes/dispenser-2.svg'\nimport tejo3CassetteOne from 'src/styling/icons/cassettes/tejo/3-cassettes/3-cassettes-open-1-left.svg'\nimport tejo3CassetteTwo from 'src/styling/icons/cassettes/tejo/3-cassettes/3-cassettes-open-2-left.svg'\nimport tejo3CassetteThree from 'src/styling/icons/cassettes/tejo/3-cassettes/3-cassettes-open-3-left.svg'\nimport tejo4CassetteOne from 'src/styling/icons/cassettes/tejo/4-cassettes/4-cassettes-open-1-left.svg'\nimport tejo4CassetteTwo from 'src/styling/icons/cassettes/tejo/4-cassettes/4-cassettes-open-2-left.svg'\nimport tejo4CassetteThree from 'src/styling/icons/cassettes/tejo/4-cassettes/4-cassettes-open-3-left.svg'\nimport tejo4CassetteFour from 'src/styling/icons/cassettes/tejo/4-cassettes/4-cassettes-open-4-left.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport { comet, errorColor } from 'src/styling/variables'\nimport { numberToFiatAmount } from 'src/utils/number'\n\nconst styles = {\n content: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n flex: 1,\n paddingBottom: 32\n },\n titleDiv: {\n marginBottom: 32\n },\n title: {\n margin: [[0, 0, 12, 0]],\n color: comet\n },\n stepImage: {\n width: 148,\n height: 196\n },\n form: {\n paddingBottom: 95\n },\n verticalAlign: {\n display: 'flex',\n flexDirection: 'column'\n },\n horizontalAlign: {\n display: 'flex',\n flexDirection: 'row'\n },\n centerAlignment: {\n alignItems: 'center'\n },\n lineAlignment: {\n alignItems: 'baseline'\n },\n fullWidth: {\n margin: [[0, 'auto']],\n flexBasis: 'auto'\n },\n formWrapper: {\n flexBasis: '100%',\n display: 'flex',\n justifyContent: 'center'\n },\n submit: {\n float: 'right'\n },\n cashboxBills: {\n marginRight: 5\n },\n cassetteCashbox: {\n width: 40,\n height: 35\n },\n cassetteFormTitle: {\n marginTop: 18\n },\n cassetteFormTitleContent: {\n marginLeft: 10,\n marginRight: 25\n },\n smBottomMargin: {\n marginBottom: 25\n },\n fiatTotal: {\n color: comet\n },\n errorMessage: {\n color: errorColor\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst cassetesArtworks = (numberOfCassettes, step) =>\n [\n [cassetteOne, cassetteTwo],\n [tejo3CassetteOne, tejo3CassetteTwo, tejo3CassetteThree],\n [tejo4CassetteOne, tejo4CassetteTwo, tejo4CassetteThree, tejo4CassetteFour]\n ][numberOfCassettes - 2][step - 2]\n\nconst WizardStep = ({\n step,\n name,\n machine,\n cashoutSettings,\n cassetteCapacity,\n error,\n lastStep,\n steps,\n fiatCurrency,\n onContinue,\n initialValues\n}) => {\n const classes = useStyles()\n\n const label = lastStep ? 'Finish' : 'Confirm'\n\n const stepOneRadioOptions = [\n { display: 'Yes', code: 'YES' },\n { display: 'No', code: 'NO' }\n ]\n\n const cassetteField = `cassette${step - 1}`\n const numberOfCassettes = machine.numberOfCassettes\n const originalCassetteCount = machine?.[cassetteField]\n const cassetteDenomination = cashoutSettings?.[cassetteField]\n\n const cassetteCount = values => values[cassetteField] || originalCassetteCount\n const cassetteTotal = values => cassetteCount(values) * cassetteDenomination\n const getPercentage = R.pipe(\n cassetteCount,\n count => 100 * (count / cassetteCapacity),\n R.clamp(0, 100)\n )\n\n return (\n \n
\n {name} \n \n
\n\n {step === 1 && (\n
\n {({ values, errors }) => (\n \n )}\n \n )}\n\n {step > 1 && (\n
\n {({ values, errors }) => (\n \n )}\n \n )}\n
\n )\n}\n\nexport default WizardStep\n","import * as R from 'ramda'\nimport React, { useState } from 'react'\nimport * as Yup from 'yup'\n\nimport Modal from 'src/components/Modal'\nimport { MAX_NUMBER_OF_CASSETTES } from 'src/utils/constants'\nimport { defaultToZero } from 'src/utils/number'\n\nimport WizardSplash from './WizardSplash'\nimport WizardStep from './WizardStep'\n\nconst MODAL_WIDTH = 554\nconst MODAL_HEIGHT = 520\nconst CASHBOX_DEFAULT_CAPACITY = 500\n\nconst CASSETTE_FIELDS = R.map(\n it => `cassette${it}`,\n R.range(1, MAX_NUMBER_OF_CASSETTES + 1)\n)\n\nconst Wizard = ({ machine, cashoutSettings, locale, onClose, save, error }) => {\n const [{ step, config }, setState] = useState({\n step: 0,\n config: { active: true }\n })\n\n const isCashOutDisabled =\n R.isEmpty(cashoutSettings) || !cashoutSettings?.active\n\n const numberOfCassettes = isCashOutDisabled ? 0 : machine.numberOfCassettes\n\n const LAST_STEP = numberOfCassettes + 1\n\n const title = `Update counts`\n const isLastStep = step === LAST_STEP\n\n const buildCassetteObj = cassetteInput => {\n return R.reduce(\n (acc, value) => {\n acc[value] = defaultToZero(cassetteInput[value])\n return acc\n },\n {},\n CASSETTE_FIELDS\n )\n }\n\n const onContinue = it => {\n const newConfig = R.merge(config, it)\n if (isLastStep) {\n const wasCashboxEmptied = [\n config?.wasCashboxEmptied,\n it?.wasCashboxEmptied\n ].includes('YES')\n\n const cashbox = wasCashboxEmptied ? 0 : machine?.cashbox\n const cassettes = buildCassetteObj(it)\n\n save(machine.id, cashbox, cassettes)\n return onClose()\n }\n\n setState({\n step: step + 1,\n config: newConfig\n })\n }\n\n const makeCassetteSteps = R.pipe(\n R.add(1),\n R.range(1),\n R.map(i => ({\n type: `cassette ${i}`,\n schema: Yup.object().shape({\n [`cassette${i}`]: Yup.number()\n .label('Bill count')\n .positive()\n .integer()\n .required()\n .min(0)\n .max(CASHBOX_DEFAULT_CAPACITY)\n })\n }))\n )\n\n const makeInitialValues = () =>\n !R.isEmpty(cashoutSettings)\n ? R.reduce(\n (acc, value) => {\n acc[`cassette${value}`] = ''\n return acc\n },\n {},\n R.range(1, numberOfCassettes + 1)\n )\n : {}\n\n const steps = R.prepend(\n {\n type: 'cashbox',\n schema: Yup.object().shape({\n wasCashboxEmptied: Yup.string().required('Select one option.')\n }),\n cashoutRequired: false\n },\n makeCassetteSteps(numberOfCassettes)\n )\n\n return (\n \n {step === 0 && (\n onContinue()} />\n )}\n {step !== 0 && (\n \n )}\n \n )\n}\n\nexport default Wizard\n","const styles = {\n cashbox: {\n height: 36\n }\n}\n\nexport default styles\n","import { useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\nimport * as Yup from 'yup'\n\nimport { IconButton } from 'src/components/buttons'\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport { CashOut, CashIn } from 'src/components/inputs/cashbox/Cashbox'\nimport { NumberInput, CashCassetteInput } from 'src/components/inputs/formik'\nimport Wizard from 'src/pages/Maintenance/Wizard/Wizard'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/action/edit/enabled.svg'\nimport { fromNamespace } from 'src/utils/config'\n\nimport styles from './Cassettes.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst widthsByNumberOfCassettes = {\n 2: { cashbox: 203, cassette: 280, cassetteGraph: 80, editWidth: 87 },\n 3: { cashbox: 164, cassette: 200, cassetteGraph: 60, editWidth: 87 },\n 4: { cashbox: 131, cassette: 158, cassetteGraph: 40, editWidth: 87 }\n}\n\nconst ValidationSchema = Yup.object().shape({\n name: Yup.string().required('Required'),\n cashbox: Yup.number()\n .label('Cash box')\n .required()\n .integer()\n .min(0)\n .max(1000),\n cassette1: Yup.number()\n .required('Required')\n .integer()\n .min(0)\n .max(500),\n cassette2: Yup.number()\n .required('Required')\n .integer()\n .min(0)\n .max(500),\n cassette3: Yup.number()\n .required('Required')\n .integer()\n .min(0)\n .max(500),\n cassette4: Yup.number()\n .required('Required')\n .integer()\n .min(0)\n .max(500)\n})\n\nconst SET_CASSETTE_BILLS = gql`\n mutation MachineAction(\n $deviceId: ID!\n $action: MachineAction!\n $cashbox: Int!\n $cassette1: Int!\n $cassette2: Int!\n $cassette3: Int!\n $cassette4: Int!\n ) {\n machineAction(\n deviceId: $deviceId\n action: $action\n cashbox: $cashbox\n cassette1: $cassette1\n cassette2: $cassette2\n cassette3: $cassette3\n cassette4: $cassette4\n ) {\n deviceId\n cashbox\n cassette1\n cassette2\n cassette3\n cassette4\n }\n }\n`\n\nconst CashCassettes = ({ machine, config, refetchData, bills }) => {\n const classes = useStyles()\n\n const [wizard, setWizard] = useState(false)\n\n const cashout = config && fromNamespace('cashOut')(config)\n const locale = config && fromNamespace('locale')(config)\n const fillingPercentageSettings =\n config && fromNamespace('notifications', config)\n const fiatCurrency = locale?.fiatCurrency\n const numberOfCassettes = machine.numberOfCassettes\n\n const getCashoutSettings = deviceId => fromNamespace(deviceId)(cashout)\n const isCashOutDisabled = ({ deviceId }) =>\n !getCashoutSettings(deviceId).active\n\n const elements = [\n {\n name: 'cashbox',\n header: 'Cash box',\n width: widthsByNumberOfCassettes[numberOfCassettes].cashbox,\n stripe: false,\n view: value => (\n it.fiat)(bills))}\n />\n ),\n input: NumberInput,\n inputProps: {\n decimalPlaces: 0\n }\n }\n ]\n\n R.until(\n R.gt(R.__, numberOfCassettes),\n it => {\n elements.push({\n name: `cassette${it}`,\n header: `Cash cassette ${it}`,\n width: widthsByNumberOfCassettes[numberOfCassettes].cassette,\n stripe: true,\n doubleHeader: 'Cash-out',\n view: value => {\n return (\n \n )\n },\n isHidden: ({ numberOfCassettes }) => it > numberOfCassettes,\n input: CashCassetteInput,\n inputProps: {\n decimalPlaces: 0,\n width: widthsByNumberOfCassettes[numberOfCassettes].cassetteGraph,\n inputClassName: classes.cashbox\n }\n })\n return R.add(1, it)\n },\n 1\n )\n\n elements.push({\n name: 'edit',\n header: 'Edit',\n width: widthsByNumberOfCassettes[numberOfCassettes].editWidth,\n view: () => {\n return (\n {\n setWizard(true)\n }}>\n \n \n )\n }\n })\n\n const [setCassetteBills, { error }] = useMutation(SET_CASSETTE_BILLS, {\n refetchQueries: () => refetchData()\n })\n\n const onSave = (_, cashbox, cassettes) =>\n setCassetteBills({\n variables: {\n action: 'setCassetteBills',\n deviceId: machine.deviceId,\n cashbox,\n ...cassettes\n }\n })\n\n return machine.name ? (\n <>\n \n {wizard && (\n {\n setWizard(false)\n }}\n error={error?.message}\n save={onSave}\n locale={locale}\n />\n )}\n >\n ) : null\n}\n\nexport default CashCassettes\n","import Cassettes from './Cassettes'\nexport default Cassettes\n","import React from 'react'\n\nimport { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\n\nconst cashInAndOutHeaderStyle = { marginLeft: 6 }\n\nconst cashInHeader = (\n \n \n Cash-in \n
\n)\n\nconst cashOutHeader = (\n \n \n Cash-out \n
\n)\n\nconst getOverridesFields = currency => {\n return [\n {\n name: 'name',\n width: 280,\n size: 'sm',\n view: it => `${it}`\n },\n {\n header: cashInHeader,\n name: 'cashIn',\n display: 'Cash-in',\n width: 130,\n textAlign: 'right',\n suffix: '%'\n },\n {\n header: cashOutHeader,\n name: 'cashOut',\n display: 'Cash-out',\n width: 130,\n textAlign: 'right',\n suffix: '%',\n inputProps: {\n decimalPlaces: 3\n }\n },\n {\n name: 'fixedFee',\n display: 'Fixed fee',\n width: 155,\n doubleHeader: 'Cash-in only',\n textAlign: 'right',\n suffix: currency\n },\n {\n name: 'minimumTx',\n display: 'Minimun Tx',\n width: 155,\n doubleHeader: 'Cash-in only',\n textAlign: 'right',\n suffix: currency\n }\n ]\n}\n\nconst overrides = currency => {\n return getOverridesFields(currency)\n}\n\nexport { overrides }\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nimport { overrides } from './helper'\n\nconst GET_DATA = gql`\n query getData {\n config\n cryptoCurrencies {\n code\n display\n }\n machines {\n name\n deviceId\n }\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst Commissions = ({ name: SCREEN_KEY, id: deviceId }) => {\n const { data, loading } = useQuery(GET_DATA)\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n refetchQueries: () => ['getData']\n })\n\n const config = data?.config && fromNamespace(SCREEN_KEY)(data.config)\n const currency = R.path(['fiatCurrency'])(\n fromNamespace(namespaces.LOCALE)(data?.config)\n )\n\n const saveOverrides = it => {\n const config = toNamespace(SCREEN_KEY)(it)\n return saveConfig({ variables: { config } })\n }\n\n const getMachineCommissions = () => {\n if (loading || !deviceId || !config) {\n return []\n }\n const commissions = {}\n\n // first, get general non overridden commissions\n const makeInfo = x =>\n (commissions[R.prop('code')(x)] = {\n code: x.code,\n name: x.display,\n cashIn: config.cashIn,\n cashOut: config.cashOut,\n fixedFee: config.fixedFee,\n minimumTx: config.minimumTx\n })\n R.forEach(makeInfo)(data.cryptoCurrencies)\n\n // second, get overrides for all machines\n const isId = id => R.propEq('machine', id)\n const generalOverrides = config.overrides\n ? R.filter(isId('ALL_MACHINES'))(config.overrides)\n : []\n\n const overrideInfo = o => {\n commissions[o.cryptoCurrencies[0]].cashIn = o.cashIn\n commissions[o.cryptoCurrencies[0]].cashOut = o.cashOut\n commissions[o.cryptoCurrencies[0]].fixedFee = o.fixedFee\n commissions[o.cryptoCurrencies[0]].minimumTx = o.minimumTx\n }\n R.forEach(overrideInfo)(generalOverrides)\n\n // third, get overrides for this machine\n const machineOverrides = config.overrides\n ? R.filter(isId(deviceId))(config.overrides)\n : []\n R.forEach(overrideInfo)(machineOverrides)\n\n // in the end, the machine specific overrides overwrite the less general ALL_MACHINE overrides or the general overrides\n return R.values(commissions)\n }\n\n const machineCommissions = getMachineCommissions()\n\n return (\n \n )\n}\n\nexport default Commissions\n","import Commissions from './Commissions'\n\nexport default Commissions\n","const modelPrettifier = {\n douro1: 'Douro',\n sintra: 'Sintra',\n gaia: 'Gaia',\n tejo: 'Tejo'\n}\n\nexport { modelPrettifier }\n","import { spacer, comet } from 'src/styling/variables'\n\nconst styles = {\n grid: {\n flex: 1,\n height: '100%'\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n marginLeft: spacer * 6,\n maxWidth: 900\n },\n subtitle: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n flexDirection: 'row',\n color: comet\n },\n label3: {\n color: comet,\n marginTop: 0,\n fontSize: 12\n },\n row: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-around'\n },\n rowItem: {\n flex: 1,\n marginBottom: spacer * 2\n },\n detailItem: {\n marginBottom: spacer * 4\n },\n actionButtonsContainer: {\n display: 'flex',\n flexDirection: 'row'\n },\n breadcrumbsContainer: {\n marginTop: 32\n },\n breadcrumbLink: {\n textDecoration: 'none'\n },\n detailsMargin: {\n marginTop: 24\n },\n sidebarContainer: {\n height: 400,\n overflowY: 'auto'\n },\n contentContainer: {\n '& > *': {\n marginTop: 26\n },\n '& > *:first-child': {\n marginTop: 0\n }\n }\n}\n\nexport default styles\n","import { makeStyles } from '@material-ui/core/styles'\nimport React from 'react'\n\nimport { Label3, P } from 'src/components/typography'\nimport { modelPrettifier } from 'src/utils/machine'\nimport { formatDate } from 'src/utils/timezones'\n\nimport styles from '../Machines.styles'\nconst useStyles = makeStyles(styles)\n\nconst Details = ({ data, timezone }) => {\n const classes = useStyles()\n return (\n \n
\n
Paired at \n
\n {data.pairedAt\n ? formatDate(data.pairedAt, timezone, 'yyyy-MM-dd HH:mm:ss')\n : ''}\n
\n
\n
\n
Machine model \n
{modelPrettifier[data.model]}
\n
\n
\n
Software version \n
{data.version}
\n
\n
\n )\n}\n\nexport default Details\n","import {\n Dialog,\n DialogActions,\n DialogContent,\n makeStyles,\n InputLabel\n} from '@material-ui/core'\nimport React, { memo, useState } from 'react'\n\nimport { Button, IconButton } from 'src/components/buttons'\nimport { TextInput } from 'src/components/inputs'\nimport { H4, P } from 'src/components/typography'\nimport { ReactComponent as CloseIcon } from 'src/styling/icons/action/close/zodiac.svg'\nimport { spacer } from 'src/styling/variables'\n\nimport ErrorMessage from './ErrorMessage'\n\nconst useStyles = makeStyles({\n dialogContent: {\n width: 434,\n padding: spacer * 2,\n paddingRight: spacer * 3.5\n },\n dialogTitle: {\n padding: spacer * 2,\n paddingRight: spacer * 1.5,\n display: 'flex',\n 'justify-content': 'space-between',\n '& > h4': {\n margin: 0\n },\n '& > button': {\n padding: 0,\n marginTop: -(spacer / 2)\n }\n },\n dialogActions: {\n padding: spacer * 4,\n paddingTop: spacer * 2\n }\n})\n\nexport const DialogTitle = ({ children, onClose }) => {\n const classes = useStyles()\n return (\n \n {children}\n {onClose && (\n \n \n \n )}\n
\n )\n}\n\nexport const ConfirmDialog = memo(\n ({\n title = 'Confirm action',\n errorMessage = 'This action requires confirmation',\n open,\n toBeConfirmed,\n saveButtonAlwaysEnabled = false,\n message,\n confirmationMessage = `Write '${toBeConfirmed}' to confirm this action`,\n onConfirmed,\n onDismissed,\n initialValue = '',\n disabled = false,\n ...props\n }) => {\n const classes = useStyles()\n const [value, setValue] = useState(initialValue)\n const [error, setError] = useState(false)\n const handleChange = event => setValue(event.target.value)\n\n const innerOnClose = () => {\n setValue('')\n setError(false)\n onDismissed()\n }\n\n const isOnErrorState =\n (!saveButtonAlwaysEnabled && toBeConfirmed !== value) || value === ''\n\n return (\n \n \n {title} \n \n {errorMessage && (\n \n \n {errorMessage.split(':').map(error => (\n <>\n {error}\n \n >\n ))}\n \n \n )}\n \n {message && {message}
}\n {confirmationMessage} \n \n \n \n onConfirmed(value)}>\n Confirm\n \n \n \n )\n }\n)\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/edit/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0,10 L0,10 C0,10.9942 0.8058,11.8 1.8,11.8 L10.2,11.8 C11.1942,11.8 12,10.9942 12,10\",\n id: \"Stroke-1\",\n stroke: \"#FFFFFF\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-3\",\n stroke: \"#FFFFFF\",\n points: \"3 6.86666667 8.86666667 1 11 3.13333333 5.13333333 9 3 9\"\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.958fe55d.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/edit/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0,10 L0,10 C0,10.9942 0.8058,11.8 1.8,11.8 L10.2,11.8 C11.1942,11.8 12,10.9942 12,10\",\n id: \"Stroke-1\",\n stroke: \"#1B2559\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-3\",\n stroke: \"#1B2559\",\n points: \"3 6.86666667 8.86666667 1 11 3.13333333 5.13333333 9 3 9\"\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.1bc04c23.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/reboot/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-3\",\n stroke: \"#FFFFFF\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.57419317,11.1560104 C2.91506589,10.8661403 2.29620875,10.4522182 1.75493083,9.91362078 C-0.568892549,7.60089351 -0.587250991,3.86936104 1.71406849,1.57845195 C2.03057585,1.26367293 2.37407977,0.992496226 2.73740775,0.764921841\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"3.37563213 1.84831169 3.36911784 0.595324675 2.18174122 4.15223411e-14\"\n})), /*#__PURE__*/React.createElement(\"line\", {\n x1: 5.92223784,\n y1: 7.57277922,\n x2: 5.92223784,\n y2: 3.98212987,\n id: \"Stroke-9\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2\",\n transform: \"translate(9.818105, 6.000000) scale(-1, -1) translate(-9.818105, -6.000000) translate(7.636287, 0.000000)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.57419317,11.1560104 C2.91506589,10.8661403 2.29620875,10.4522182 1.75493083,9.91362078 C-0.568892549,7.60089351 -0.587250991,3.86936104 1.71406849,1.57845195 C2.03057585,1.26367293 2.37407977,0.992496226 2.73740775,0.764921841\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"3.37563213 1.84831169 3.36911784 0.595324675 2.18174122 4.15223411e-14\"\n}))));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"-0.493 -0.5 12.993 13\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.fe6ed797.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/reboot/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-3\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.57419317,11.1560104 C2.91506589,10.8661403 2.29620875,10.4522182 1.75493083,9.91362078 C-0.568892549,7.60089351 -0.587250991,3.86936104 1.71406849,1.57845195 C2.03057585,1.26367293 2.37407977,0.992496226 2.73740775,0.764921841\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"3.37563213 1.84831169 3.36911784 0.595324675 2.18174122 4.15223411e-14\"\n})), /*#__PURE__*/React.createElement(\"line\", {\n x1: 5.92223784,\n y1: 7.57277922,\n x2: 5.92223784,\n y2: 3.98212987,\n id: \"Stroke-9\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2\",\n transform: \"translate(9.818105, 6.000000) scale(-1, -1) translate(-9.818105, -6.000000) translate(7.636287, 0.000000)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.57419317,11.1560104 C2.91506589,10.8661403 2.29620875,10.4522182 1.75493083,9.91362078 C-0.568892549,7.60089351 -0.587250991,3.86936104 1.71406849,1.57845195 C2.03057585,1.26367293 2.37407977,0.992496226 2.73740775,0.764921841\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"3.37563213 1.84831169 3.36911784 0.595324675 2.18174122 4.15223411e-14\"\n}))));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"-0.493 -0.5 12.993 13\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.9cfc97dd.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/shut-down/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\",\n transform: \"translate(1.000000, 0.000000)\",\n stroke: \"#FFFFFF\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.7735,2 C9.116,2.89710351 10,4.4271328 10,6.16330077 C10,8.92665975 7.7615,11.1666667 5,11.1666667 C2.2385,11.1666667 0,8.92665975 0,6.16330077 C0,4.43663919 0.8745,2.91361461 2.204,2.01450976\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 5,\n y1: 0.75,\n x2: 5,\n y2: 3.25,\n id: \"Stroke-3\"\n})));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.fa4681e8.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/shut-down/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\",\n transform: \"translate(1.000000, 0.000000)\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.7735,2 C9.116,2.89710351 10,4.4271328 10,6.16330077 C10,8.92665975 7.7615,11.1666667 5,11.1666667 C2.2385,11.1666667 0,8.92665975 0,6.16330077 C0,4.43663919 0.8745,2.91361461 2.204,2.01450976\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 5,\n y1: 0.75,\n x2: 5,\n y2: 3.25,\n id: \"Stroke-3\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.b27733af.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/unpair/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-12\",\n stroke: \"#FFFFFF\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\"\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-1\",\n points: \"3.75 6 2.25 6 0 3.75 3.75 0 6.75 3\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"8.25 6 9.75 6 12 8.25 8.25 12 5.25 9\"\n})), /*#__PURE__*/React.createElement(\"line\", {\n x1: 8.25,\n y1: 3,\n x2: 8.25,\n y2: 1.5,\n id: \"Stroke-6\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 9.75,\n y1: 3,\n x2: 10.5,\n y2: 2.25,\n id: \"Stroke-7\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 9.75,\n y1: 4.5,\n x2: 11.25,\n y2: 4.5,\n id: \"Stroke-8\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 2.25,\n y1: 7.5,\n x2: 0.75,\n y2: 7.5,\n id: \"Stroke-9\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 2.25,\n y1: 9,\n x2: 1.5,\n y2: 9.75,\n id: \"Stroke-10\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 3.75,\n y1: 9,\n x2: 3.75,\n y2: 10.5,\n id: \"Stroke-11\"\n})));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.f97c75d2.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/unpair/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-12\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\"\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-1\",\n points: \"3.75 6 2.25 6 0 3.75 3.75 0 6.75 3\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"8.25 6 9.75 6 12 8.25 8.25 12 5.25 9\"\n})), /*#__PURE__*/React.createElement(\"line\", {\n x1: 8.25,\n y1: 3,\n x2: 8.25,\n y2: 1.5,\n id: \"Stroke-6\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 9.75,\n y1: 3,\n x2: 10.5,\n y2: 2.25,\n id: \"Stroke-7\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 9.75,\n y1: 4.5,\n x2: 11.25,\n y2: 4.5,\n id: \"Stroke-8\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 2.25,\n y1: 7.5,\n x2: 0.75,\n y2: 7.5,\n id: \"Stroke-9\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 2.25,\n y1: 9,\n x2: 1.5,\n y2: 9.75,\n id: \"Stroke-10\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 3.75,\n y1: 9,\n x2: 3.75,\n y2: 10.5,\n id: \"Stroke-11\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.aa028a2c.svg\";\nexport { ForwardRef as ReactComponent };","import typographyStyles from 'src/components/typography/styles'\nimport { offColor, spacer, errorColor } from 'src/styling/variables'\n\nconst { label1 } = typographyStyles\n\nconst machineActionsStyles = {\n label: {\n extend: label1,\n color: offColor,\n marginBottom: 4\n },\n inlineChip: {\n marginInlineEnd: '0.25em'\n },\n stack: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n justifyContent: 'start'\n },\n mr: {\n marginRight: spacer,\n marginBottom: spacer\n },\n warning: {\n color: errorColor\n }\n}\n\nexport { machineActionsStyles }\n","import { useMutation, useLazyQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport React, { memo, useState } from 'react'\n\nimport { ConfirmDialog } from 'src/components/ConfirmDialog'\nimport ActionButton from 'src/components/buttons/ActionButton'\nimport { H3 } from 'src/components/typography'\nimport { ReactComponent as EditReversedIcon } from 'src/styling/icons/button/edit/white.svg'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/button/edit/zodiac.svg'\nimport { ReactComponent as RebootReversedIcon } from 'src/styling/icons/button/reboot/white.svg'\nimport { ReactComponent as RebootIcon } from 'src/styling/icons/button/reboot/zodiac.svg'\nimport { ReactComponent as ShutdownReversedIcon } from 'src/styling/icons/button/shut down/white.svg'\nimport { ReactComponent as ShutdownIcon } from 'src/styling/icons/button/shut down/zodiac.svg'\nimport { ReactComponent as UnpairReversedIcon } from 'src/styling/icons/button/unpair/white.svg'\nimport { ReactComponent as UnpairIcon } from 'src/styling/icons/button/unpair/zodiac.svg'\n\nimport { machineActionsStyles } from './MachineActions.styles'\n\nconst useStyles = makeStyles(machineActionsStyles)\n\nconst MACHINE_ACTION = gql`\n mutation MachineAction(\n $deviceId: ID!\n $action: MachineAction!\n $newName: String\n ) {\n machineAction(deviceId: $deviceId, action: $action, newName: $newName) {\n deviceId\n }\n }\n`\n\nconst MACHINE = gql`\n query getMachine($deviceId: ID!) {\n machine(deviceId: $deviceId) {\n latestEvent {\n note\n }\n }\n }\n`\n\nconst isStaticState = machineState => {\n if (!machineState) {\n return true\n }\n const staticStates = [\n 'chooseCoin',\n 'idle',\n 'pendingIdle',\n 'dualIdle',\n 'networkDown',\n 'unpaired',\n 'maintenance',\n 'virgin',\n 'wifiList'\n ]\n return staticStates.includes(machineState)\n}\n\nconst getState = machineEventsLazy =>\n JSON.parse(machineEventsLazy.machine.latestEvent?.note ?? '{\"state\": null}')\n .state\n\nconst MachineActions = memo(({ machine, onActionSuccess }) => {\n const [action, setAction] = useState({ command: null })\n const [preflightOptions, setPreflightOptions] = useState({})\n const [errorMessage, setErrorMessage] = useState(null)\n const classes = useStyles()\n\n const warningMessage = (\n \n A user may be in the middle of a transaction and they could lose their\n funds if you continue.\n \n )\n\n const [fetchMachineEvents, { loading: loadingEvents }] = useLazyQuery(\n MACHINE,\n preflightOptions\n )\n\n const [machineAction, { loading }] = useMutation(MACHINE_ACTION, {\n onError: ({ message }) => {\n const errorMessage = message ?? 'An error ocurred'\n setErrorMessage(errorMessage)\n },\n onCompleted: () => {\n onActionSuccess && onActionSuccess()\n setAction({ display: action.display, command: null })\n }\n })\n\n const confirmDialogOpen = Boolean(action.command)\n const disabled = !!(action?.command === 'restartServices' && loadingEvents)\n\n const machineStatusPreflight = actionToDo => {\n setPreflightOptions({\n variables: { deviceId: machine.deviceId },\n onCompleted: machineEventsLazy => {\n const message = !isStaticState(getState(machineEventsLazy))\n ? warningMessage\n : null\n setAction({ ...actionToDo, message })\n }\n })\n fetchMachineEvents()\n }\n\n return (\n \n
Actions \n
\n
\n setAction({\n command: 'rename',\n display: 'Rename',\n confirmationMessage: 'Write the new name for this machine'\n })\n }>\n Rename\n \n
\n setAction({\n command: 'unpair',\n display: 'Unpair'\n })\n }>\n Unpair\n \n
\n setAction({\n command: 'reboot',\n display: 'Reboot'\n })\n }>\n Reboot\n \n
\n setAction({\n command: 'shutdown',\n display: 'Shutdown',\n message:\n 'In order to bring it back online, the machine will need to be visited and its power reset.'\n })\n }>\n Shutdown\n \n
{\n machineStatusPreflight({\n command: 'restartServices',\n display: 'Restart services for'\n })\n }}>\n Restart Services\n \n
\n
{\n setErrorMessage(null)\n machineAction({\n variables: {\n deviceId: machine.deviceId,\n action: `${action?.command}`,\n ...(action?.command === 'rename' && { newName: value })\n }\n })\n }}\n onDismissed={() => {\n setAction({ display: action.display, command: null })\n setErrorMessage(null)\n }}\n />\n \n )\n})\n\nexport default MachineActions\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Styleguide\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/copy\",\n transform: \"translate(1.000000, 1.000000)\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5-Copy-2\"\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-1\",\n strokeWidth: 2,\n points: \"6 1.2 6 -0.00024 16 -0.00024 16 13.06376 12 13.06376\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-3\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n points: \"0 15.9368 10 15.9368 10 2.9368 0 2.9368\"\n}))));\n\nfunction SvgCopy(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"18px\",\n viewBox: \"0 0 18 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCopy);\nexport default __webpack_public_path__ + \"static/media/copy.f4cea549.svg\";\nexport { ForwardRef as ReactComponent };","import { fontSize5 } from 'src/styling/variables'\n\nexport default {\n titleWrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n flexDirection: 'row'\n },\n wrapper: {\n flex: 1,\n display: 'flex',\n flexDirection: 'row',\n height: '100%'\n },\n tableWrapper: {\n flex: 1,\n marginLeft: 40,\n display: 'block',\n overflowX: 'auto',\n width: '100%',\n maxWidth: '78%',\n maxHeight: '70vh'\n },\n table: {\n whiteSpace: 'nowrap',\n display: 'block',\n '& th': {\n position: 'sticky',\n top: 0\n }\n },\n dateColumn: {\n minWidth: 160\n },\n levelColumn: {\n minWidth: 100\n },\n fillColumn: {\n width: '100%'\n },\n shareButton: {\n margin: 8,\n display: 'flex',\n alignItems: 'center',\n fontSize: fontSize5,\n padding: [[0, 12]]\n },\n shareIcon: {\n marginRight: 6\n },\n button: {\n margin: 8\n },\n titleAndButtonsContainer: {\n display: 'flex'\n },\n buttonsWrapper: {\n display: 'flex',\n marginLeft: 16,\n '& > *': {\n margin: 'auto 6px'\n }\n }\n}\n","import typographyStyles from 'src/components/typography/styles'\nimport baseStyles from 'src/pages/Logs.styles'\nimport {\n offColor,\n white,\n primaryColor,\n zircon,\n smallestFontSize,\n inputFontFamily,\n inputFontWeight,\n spacer\n} from 'src/styling/variables'\n\nconst { label1, mono, p } = typographyStyles\nconst { titleWrapper, titleAndButtonsContainer, buttonsWrapper } = baseStyles\n\nconst cpcStyles = {\n wrapper: {\n extend: mono,\n display: 'flex',\n alignItems: 'center'\n },\n address: {\n lineBreak: 'anywhere'\n },\n buttonWrapper: {\n '& button': {\n border: 'none',\n backgroundColor: 'transparent',\n cursor: 'pointer'\n }\n },\n popoverContent: {\n extend: label1,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n color: white,\n borderRadius: 4,\n padding: [[5, 9]]\n }\n}\n\nconst detailsRowStyles = {\n idCardDataCard: {\n extend: p,\n display: 'flex',\n padding: [[11, 8]],\n '& > div': {\n display: 'flex',\n flexDirection: 'column',\n '& > div': {\n width: 144,\n height: 37,\n marginBottom: 15,\n '&:last-child': {\n marginBottom: 0\n }\n }\n }\n }\n}\n\nconst labelStyles = {\n label: {\n extend: label1,\n color: offColor,\n marginBottom: 4\n }\n}\n\nconst mainStyles = {\n titleWrapper,\n titleAndButtonsContainer,\n buttonsWrapper,\n headerLabels: {\n display: 'flex',\n flexDirection: 'row',\n '& div': {\n display: 'flex',\n alignItems: 'center'\n },\n '& > div': {\n marginLeft: 24\n },\n '& > div:first-child': {\n marginLeft: 0\n },\n '& span': {\n extend: label1,\n marginLeft: 6\n }\n },\n overflowTd: {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis'\n },\n flexWrapper: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n marginRight: 16\n },\n customerLinkIcon: {\n marginLeft: 2\n },\n flexRow: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center'\n },\n machineRedirectContainer: {\n marginLeft: 10,\n paddingLeft: 5,\n paddingRight: 5\n }\n}\n\nconst chipStyles = {\n root: {\n borderRadius: spacer / 2,\n marginTop: spacer / 2,\n marginRight: spacer / 4,\n marginBottom: spacer / 2,\n marginLeft: spacer / 4,\n height: spacer * 3,\n backgroundColor: zircon,\n '&:hover, &:focus, &:active': {\n backgroundColor: zircon\n }\n },\n label: {\n fontSize: smallestFontSize,\n fontWeight: inputFontWeight,\n fontFamily: inputFontFamily,\n paddingRight: spacer / 2,\n paddingLeft: spacer / 2,\n color: primaryColor\n }\n}\n\nexport { cpcStyles, detailsRowStyles, labelStyles, mainStyles, chipStyles }\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport * as R from 'ramda'\nimport React, { useState, useEffect } from 'react'\nimport { CopyToClipboard as ReactCopyToClipboard } from 'react-copy-to-clipboard'\n\nimport Popover from 'src/components/Popper'\nimport { ReactComponent as CopyIcon } from 'src/styling/icons/action/copy/copy.svg'\nimport { comet } from 'src/styling/variables'\n\nimport { cpcStyles } from './Transactions.styles'\n\nconst useStyles = makeStyles(cpcStyles)\n\nconst CopyToClipboard = ({\n className,\n buttonClassname,\n children,\n wrapperClassname,\n ...props\n}) => {\n const [anchorEl, setAnchorEl] = useState(null)\n\n useEffect(() => {\n if (anchorEl) setTimeout(() => setAnchorEl(null), 3000)\n }, [anchorEl])\n\n const classes = useStyles()\n\n const handleClick = event => {\n setAnchorEl(anchorEl ? null : event.currentTarget)\n }\n\n const handleClose = () => {\n setAnchorEl(null)\n }\n\n const open = Boolean(anchorEl)\n const id = open ? 'simple-popper' : undefined\n\n return (\n \n {children && (\n <>\n
\n {children}\n
\n
\n \n handleClick(event)}>\n \n \n \n
\n
\n \n
Copied to clipboard!
\n
\n \n >\n )}\n
\n )\n}\n\nexport default CopyToClipboard\n","import { makeStyles } from '@material-ui/core/styles'\nimport BigNumber from 'bignumber.js'\nimport { formatDistance } from 'date-fns'\nimport React from 'react'\n\nimport { Status } from 'src/components/Status'\nimport MachineActions from 'src/components/machineActions/MachineActions'\nimport { H3, Label1, P } from 'src/components/typography'\nimport CopyToClipboard from 'src/pages/Transactions/CopyToClipboard.js'\n\nimport styles from '../Machines.styles'\nconst useStyles = makeStyles(styles)\n\nconst Overview = ({ data, onActionSuccess }) => {\n const classes = useStyles()\n\n return (\n \n
\n
\n
\n Status \n {data && data.statuses ? : null}\n
\n
\n
\n
\n
Ping \n
\n {data.responseTime\n ? new BigNumber(data.responseTime).toFixed(3).toString() + ' ms'\n : 'unavailable'}\n
\n
\n
\n
Last ping \n
\n {data.lastPing\n ? formatDistance(new Date(data.lastPing), new Date(), {\n addSuffix: true\n })\n : 'unknown'}\n
\n
\n
\n
Network speed \n
\n {data.downloadSpeed\n ? new BigNumber(data.downloadSpeed).toFixed(4).toString() +\n ' MB/s'\n : 'unavailable'}\n
\n
\n
\n
\n
\n
Device ID \n
\n \n {data.deviceId}\n \n
\n
\n
\n
\n \n
\n
\n )\n}\n\nexport default Overview\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/ID/card/new/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-1\",\n stroke: \"#FFFFFF\",\n strokeWidth: 1.6,\n points: \"1 17 23 17 23 1 1 1\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 12.7857143,\n y1: 5,\n x2: 19.8571429,\n y2: 5,\n id: \"Stroke-3\",\n stroke: \"#FFFFFF\",\n strokeWidth: 1.6\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 12.7857143,\n y1: 8.2,\n x2: 19.8571429,\n y2: 8.2,\n id: \"Stroke-4\",\n stroke: \"#FFFFFF\",\n strokeWidth: 1.6\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-5\",\n stroke: \"#FFFFFF\",\n strokeWidth: 1.6,\n points: \"4.14285714 12.2 9.64285714 12.2 9.64285714 5 4.14285714 5\"\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"24px\",\n height: \"18px\",\n viewBox: \"0 0 24 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/ID/card/new/white\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.bd0d7dca.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/ID/card/new/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2\",\n transform: \"translate(1.000000, 1.000000)\",\n stroke: \"#1B2559\",\n strokeWidth: 1.6\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"id-copy\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-1\",\n points: \"0 16 22 16 22 0 0 0\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 11.7857143,\n y1: 4,\n x2: 18.8571429,\n y2: 4,\n id: \"Stroke-3\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 11.7857143,\n y1: 7.2,\n x2: 18.8571429,\n y2: 7.2,\n id: \"Stroke-4\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-5\",\n points: \"3.14285714 11.2 8.64285714 11.2 8.64285714 4 3.14285714 4\"\n}))));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"24px\",\n height: \"18px\",\n viewBox: \"0 0 24 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/ID/card/new/zodiac\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.8c7b512b.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/ID/phone/new/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.47150618,13.52898 C10.939556,16.9970298 14.7804112,17.1146315 16.4756355,16.9586292 C17.0220434,16.9090285 17.5308507,16.6578249 17.9188563,16.2698193 L20.0004862,14.1881894 L18.0220577,12.210561 L16.0436293,11.5505516 L14.7244104,12.8697705 C14.7244104,12.8697705 13.4059914,14.1881894 10.1091441,10.8905421 C6.81229671,7.59449473 8.13071565,6.27527578 8.13071565,6.27527578 L9.4499346,4.95605683 L8.78992512,2.97842842 L6.81229671,1 L4.73066681,3.0816299 C4.34186123,3.46963548 4.09145763,3.97844279 4.04105691,4.52485063 C3.88585468,6.22007499 4.00345637,10.0601301 7.47150618,13.52898 Z\",\n id: \"Stroke-1-Copy\",\n stroke: \"#FFFFFF\",\n strokeWidth: 1.6\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"24px\",\n height: \"18px\",\n viewBox: \"0 0 24 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/ID/phone/new/white\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.341f0eae.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/ID/phone/new/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.47150618,13.52898 C10.939556,16.9970298 14.7804112,17.1146315 16.4756355,16.9586292 C17.0220434,16.9090285 17.5308507,16.6578249 17.9188563,16.2698193 L20.0004862,14.1881894 L18.0220577,12.210561 L16.0436293,11.5505516 L14.7244104,12.8697705 C14.7244104,12.8697705 13.4059914,14.1881894 10.1091441,10.8905421 C6.81229671,7.59449473 8.13071565,6.27527578 8.13071565,6.27527578 L9.4499346,4.95605683 L8.78992512,2.97842842 L6.81229671,1 L4.73066681,3.0816299 C4.34186123,3.46963548 4.09145763,3.97844279 4.04105691,4.52485063 C3.88585468,6.22007499 4.00345637,10.0601301 7.47150618,13.52898 Z\",\n id: \"Stroke-1-Copy\",\n stroke: \"#1B2559\",\n strokeWidth: 1.6\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"24px\",\n height: \"18px\",\n viewBox: \"0 0 24 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/ID/phone/new/zodiac\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.594ae9e7.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/ID/photo/new/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12,14 C9.7912,14 8,12.2088 8,10 C8,7.7912 9.7912,6 12,6 C14.2088,6 16,7.7912 16,10 C16,12.2088 14.2088,14 12,14 Z M16.7142857,3.4 L14.3571429,1 L9.64285714,1 L7.28571429,3.4 L1,3.4 L1,17 L23,17 L23,3.4 L16.7142857,3.4 Z\",\n id: \"Stroke-1\",\n stroke: \"#FFFFFF\",\n strokeWidth: 1.6\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"24px\",\n height: \"18px\",\n viewBox: \"0 0 24 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/ID/photo/new/white\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.e53d9d4a.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/cancel/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\",\n stroke: \"#1B2559\",\n strokeWidth: 1.2\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 12,\n y1: 0,\n x2: 0,\n y2: 12,\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 0,\n x2: 12,\n y2: 12,\n id: \"Stroke-3\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.3b13c0b7.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/download/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/wizzard\",\n stroke: \"#FFFFFF\"\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path-3\",\n points: \"3.6 5.4 6 7.8 8.4 5.4\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 6,\n y1: 0.5,\n x2: 6,\n y2: 7.4,\n id: \"Path-4\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0,10 L0,10 C0,10.9942 0.8058,11.8 1.8,11.8 L10.2,11.8 C11.1942,11.8 12,10.9942 12,10\",\n id: \"Stroke-1\"\n})));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.81edd31f.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/download/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/wizzard\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path-3\",\n points: \"3.6 5.4 6 7.8 8.4 5.4\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 6,\n y1: 0.5,\n x2: 6,\n y2: 7.4,\n id: \"Path-4\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0,10 L0,10 C0,10.9942 0.8058,11.8 1.8,11.8 L10.2,11.8 C11.1942,11.8 12,10.9942 12,10\",\n id: \"Stroke-1\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.13543418.svg\";\nexport { ForwardRef as ReactComponent };","import { ApolloProvider } from '@apollo/react-hooks'\nimport { InMemoryCache } from 'apollo-cache-inmemory'\nimport { ApolloClient } from 'apollo-client'\nimport { ApolloLink } from 'apollo-link'\nimport { onError } from 'apollo-link-error'\nimport { createUploadLink } from 'apollo-upload-client'\nimport React, { useContext } from 'react'\nimport { useHistory, useLocation } from 'react-router-dom'\n\nimport AppContext from 'src/AppContext'\n\nconst URI =\n process.env.NODE_ENV === 'development' ? 'https://localhost:8070' : ''\n\nconst ALT_URI =\n process.env.NODE_ENV === 'development' ? 'http://localhost:4001' : ''\n\nconst uploadLink = createUploadLink({\n credentials: 'include',\n uri: `${URI}/graphql`\n})\n\nconst uploadLinkALT = createUploadLink({\n credentials: 'include',\n uri: `${ALT_URI}/graphql`\n})\n\nconst getClient = (history, location, getUserData, setUserData, setRole) =>\n new ApolloClient({\n link: ApolloLink.from([\n onError(({ graphQLErrors, networkError }) => {\n if (graphQLErrors)\n graphQLErrors.forEach(({ message, locations, path, extensions }) => {\n if (extensions?.code === 'UNAUTHENTICATED') {\n setUserData(null)\n if (location.pathname !== '/login') history.push('/login')\n }\n console.log(\n `[GraphQL error]: Message: ${message}, Location: ${locations}, Path: ${path}`\n )\n })\n if (networkError) console.log(`[Network error]: ${networkError}`)\n }),\n new ApolloLink((operation, forward) => {\n return forward(operation).map(response => {\n const context = operation.getContext()\n const {\n response: { headers }\n } = context\n\n if (headers) {\n const role = headers.get('lamassu_role')\n setRole(role)\n }\n\n return response\n })\n }),\n ApolloLink.split(\n operation => operation.getContext().clientName === 'pazuz',\n uploadLinkALT,\n uploadLink\n )\n ]),\n cache: new InMemoryCache(),\n defaultOptions: {\n watchQuery: {\n fetchPolicy: 'no-cache',\n errorPolicy: 'ignore'\n },\n query: {\n fetchPolicy: 'no-cache',\n errorPolicy: 'all'\n },\n mutate: {\n errorPolicy: 'all'\n }\n }\n })\n\nconst Provider = ({ children }) => {\n const history = useHistory()\n const location = useLocation()\n const { userData, setUserData, setRole } = useContext(AppContext)\n const client = getClient(\n history,\n location,\n () => userData,\n setUserData,\n setRole\n )\n\n return {children} \n}\n\nexport default Provider\nexport { URI }\n","import typographyStyles from 'src/components/typography/styles'\nimport { offColor, comet, white, tomato } from 'src/styling/variables'\n\nconst { p } = typographyStyles\n\nexport default {\n wrapper: {\n display: 'flex',\n flexDirection: 'column',\n marginTop: 24\n },\n row: {\n display: 'flex',\n flexDirection: 'row',\n marginBottom: 36\n },\n secondRow: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n marginBottom: 36\n },\n lastRow: {\n display: 'flex',\n flexDirection: 'row',\n marginBottom: 32\n },\n label: {\n color: offColor,\n margin: [[0, 0, 6, 0]],\n whiteSpace: 'nowrap'\n },\n txIcon: {\n marginRight: 10\n },\n clipboardPopover: {\n height: 164,\n width: 215\n },\n idButton: {\n marginRight: 4\n },\n idCardDataCard: {\n extend: p,\n display: 'flex',\n padding: [[11, 8]],\n '& > div': {\n display: 'flex',\n flexDirection: 'column',\n '& > div': {\n width: 144,\n height: 37,\n marginBottom: 15,\n '&:last-child': {\n marginBottom: 0\n }\n }\n }\n },\n bold: {\n fontWeight: 700\n },\n direction: {\n width: 233\n },\n availableIds: {\n width: 232\n },\n exchangeRate: {\n width: 250\n },\n commission: {\n width: 217\n },\n address: {\n width: 280\n },\n downloadRawLogs: {\n width: 180\n },\n cancelTransaction: {\n width: 160\n },\n status: {\n width: 230,\n '& > button': {\n marginTop: 20\n }\n },\n transactionId: {\n width: 280\n },\n sessionId: {\n width: 215\n },\n container: {\n display: 'flex'\n },\n chip: {\n display: 'flex',\n alignItems: 'center',\n padding: '4px 8px 4px 8px',\n backgroundColor: comet,\n color: white,\n height: 24,\n marginBottom: -24,\n marginTop: -3,\n marginLeft: 7,\n borderRadius: 4\n },\n chipLabel: {\n color: white\n },\n otherActionsGroup: {\n display: 'flex',\n flexDirection: 'row'\n },\n addressHeader: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center'\n },\n walletScore: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n '& > p': {\n marginLeft: 5\n }\n },\n error: {\n color: tomato\n }\n}\n","import * as R from 'ramda'\n\nconst getCashOutStatus = it => {\n if (it.hasError === 'Operator cancel') return 'Cancelled'\n if (it.hasError) return 'Error'\n if (it.dispense) return 'Success'\n if (it.expired) return 'Expired'\n return 'Pending'\n}\n\nconst getCashInStatus = it => {\n if (it.operatorCompleted) return 'Cancelled'\n if (it.hasError || it.batchError) return 'Error'\n if (it.sendConfirmed) return 'Sent'\n if (it.expired) return 'Expired'\n if (it.batched) return 'Batched'\n return 'Pending'\n}\n\nconst getStatus = it => {\n if (it.txClass === 'cashOut') {\n return getCashOutStatus(it)\n }\n return getCashInStatus(it)\n}\n\nconst getStatusDetails = it => {\n if (!R.isNil(it.hasError)) return it.hasError\n if (!R.isNil(it.batchError)) return `Batch error: ${it.batchError}`\n return null\n}\n\nconst getStatusProperties = status => ({\n hasError: status === 'Error' || null,\n batchError: status === 'Error' || null,\n dispense: status === 'Success' || null,\n expired: status === 'Expired' || null,\n operatorCompleted: status === 'Cancelled' || null,\n sendConfirmed: status === 'Sent' || null\n})\n\nexport { getStatus, getStatusProperties, getStatusDetails }\n","import { useLazyQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles, Box } from '@material-ui/core'\nimport BigNumber from 'bignumber.js'\nimport classNames from 'classnames'\nimport { add, differenceInYears, format, sub, parse } from 'date-fns/fp'\nimport FileSaver from 'file-saver'\nimport gql from 'graphql-tag'\nimport JSZip from 'jszip'\nimport { utils as coinUtils } from 'lamassu-coins'\nimport * as R from 'ramda'\nimport React, { memo, useState } from 'react'\n\nimport { ConfirmDialog } from 'src/components/ConfirmDialog'\nimport { HoverableTooltip } from 'src/components/Tooltip'\nimport { IDButton, ActionButton } from 'src/components/buttons'\nimport { P, Label1 } from 'src/components/typography'\nimport { ReactComponent as CardIdInverseIcon } from 'src/styling/icons/ID/card/white.svg'\nimport { ReactComponent as CardIdIcon } from 'src/styling/icons/ID/card/zodiac.svg'\nimport { ReactComponent as PhoneIdInverseIcon } from 'src/styling/icons/ID/phone/white.svg'\nimport { ReactComponent as PhoneIdIcon } from 'src/styling/icons/ID/phone/zodiac.svg'\nimport { ReactComponent as CamIdInverseIcon } from 'src/styling/icons/ID/photo/white.svg'\nimport { ReactComponent as CamIdIcon } from 'src/styling/icons/ID/photo/zodiac.svg'\nimport { ReactComponent as CancelInverseIcon } from 'src/styling/icons/button/cancel/white.svg'\nimport { ReactComponent as CancelIcon } from 'src/styling/icons/button/cancel/zodiac.svg'\nimport { ReactComponent as DownloadInverseIcon } from 'src/styling/icons/button/download/white.svg'\nimport { ReactComponent as Download } from 'src/styling/icons/button/download/zodiac.svg'\nimport { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport {\n primaryColor,\n subheaderColor,\n errorColor,\n offErrorColor\n} from 'src/styling/variables'\nimport { URI } from 'src/utils/apollo'\nimport { onlyFirstToUpper } from 'src/utils/string'\n\nimport CopyToClipboard from './CopyToClipboard'\nimport styles from './DetailsCard.styles'\nimport { getStatus, getStatusDetails } from './helper'\n\nconst useStyles = makeStyles(styles)\nconst MINUTES_OFFSET = 3\nconst TX_SUMMARY = gql`\n query txSummaryAndLogs(\n $txId: ID!\n $deviceId: ID!\n $limit: Int\n $from: Date\n $until: Date\n $txClass: String\n $timezone: String\n ) {\n serverLogsCsv(\n limit: $limit\n from: $from\n until: $until\n timezone: $timezone\n )\n machineLogsCsv(\n deviceId: $deviceId\n limit: $limit\n from: $from\n until: $until\n timezone: $timezone\n )\n transactionCsv(id: $txId, txClass: $txClass, timezone: $timezone)\n txAssociatedDataCsv(id: $txId, txClass: $txClass, timezone: $timezone)\n }\n`\n\nconst CANCEL_CASH_OUT_TRANSACTION = gql`\n mutation cancelCashOutTransaction($id: ID!) {\n cancelCashOutTransaction(id: $id) {\n id\n }\n }\n`\n\nconst CANCEL_CASH_IN_TRANSACTION = gql`\n mutation cancelCashInTransaction($id: ID!) {\n cancelCashInTransaction(id: $id) {\n id\n }\n }\n`\n\nconst getCryptoAmount = tx =>\n coinUtils.toUnit(new BigNumber(tx.cryptoAtoms), tx.cryptoCode).toNumber()\n\n/* Port of getProfit() from lib/new-admin/services/transactions.js */\nconst getCommission = tx => {\n const calcCashInProfit = (fiat, crypto, tickerPrice, fee) =>\n fiat - crypto * tickerPrice + fee\n const calcCashOutProfit = (fiat, crypto, tickerPrice) =>\n crypto * tickerPrice - fiat\n\n const fiat = Number.parseFloat(tx.fiat)\n const crypto = getCryptoAmount(tx)\n const tickerPrice = Number.parseFloat(tx.rawTickerPrice)\n const isCashIn = tx.txClass === 'cashIn'\n const cashInFee = isCashIn ? Number.parseFloat(tx.cashInFee) : 0\n\n return isCashIn\n ? calcCashInProfit(fiat, crypto, tickerPrice, cashInFee)\n : calcCashOutProfit(fiat, crypto, tickerPrice)\n}\n\nconst formatAddress = (cryptoCode = '', address = '') =>\n coinUtils.formatCryptoAddress(cryptoCode, address).replace(/(.{5})/g, '$1 ')\n\nconst Label = ({ children }) => {\n const classes = useStyles()\n return {children} \n}\n\nconst DetailsRow = ({ it: tx, timezone }) => {\n const classes = useStyles()\n const [action, setAction] = useState({ command: null })\n const [errorMessage, setErrorMessage] = useState('')\n\n const isCashIn = tx.txClass === 'cashIn'\n\n const zip = new JSZip()\n\n const [fetchSummary] = useLazyQuery(TX_SUMMARY, {\n onCompleted: data => createCsv(data)\n })\n\n const [cancelTransaction] = useMutation(\n isCashIn ? CANCEL_CASH_IN_TRANSACTION : CANCEL_CASH_OUT_TRANSACTION,\n {\n onError: ({ message }) =>\n setErrorMessage(message ?? 'An error occurred.'),\n refetchQueries: () => ['transactions']\n }\n )\n\n const commission = getCommission(tx).toFixed(2)\n const commissionPercentage =\n Number.parseFloat(tx.commissionPercentage, 2) * 100\n const cashInFee = isCashIn ? Number.parseFloat(tx.cashInFee) : 0\n const fiat = Number.parseFloat(tx.fiat)\n const crypto = getCryptoAmount(tx)\n const exchangeRate = (fiat / crypto).toFixed(2)\n const displayExRate = `1 ${tx.cryptoCode} = ${exchangeRate} ${tx.fiatCode}`\n const discount = tx.discount ? `-${tx.discount}%` : null\n\n const parseDateString = parse(new Date(), 'yyyyMMdd')\n\n const customer = tx.customerIdCardData && {\n name: `${onlyFirstToUpper(\n tx.customerIdCardData.firstName\n )} ${onlyFirstToUpper(tx.customerIdCardData.lastName)}`,\n age:\n (tx.customerIdCardData.dateOfBirth &&\n differenceInYears(\n parseDateString(tx.customerIdCardData.dateOfBirth),\n new Date()\n )) ??\n '',\n country: tx.customerIdCardData.country,\n idCardNumber: tx.customerIdCardData.documentNumber,\n idCardExpirationDate:\n (tx.customerIdCardData.expirationDate &&\n format('yyyy-MM-dd')(\n parseDateString(tx.customerIdCardData.expirationDate)\n )) ??\n ''\n }\n\n const from = sub({ minutes: MINUTES_OFFSET }, new Date(tx.created))\n const until = add({ minutes: MINUTES_OFFSET }, new Date(tx.created))\n\n const downloadRawLogs = ({ id: txId, deviceId, txClass }, timezone) => {\n fetchSummary({\n variables: { txId, from, until, deviceId, txClass, timezone }\n })\n }\n\n const createCsv = async logs => {\n const zipFilename = `tx_${tx.id}_summary.zip`\n const filesNames = R.keys(logs)\n R.map(name => zip.file(name + '.csv', logs[name]), filesNames)\n const content = await zip.generateAsync({ type: 'blob' })\n FileSaver.saveAs(content, zipFilename)\n }\n\n const errorElements = (\n <>\n Transaction status \n {getStatus(tx)} \n >\n )\n\n const walletScoreEl = (\n \n
\n {R.map(\n it => (\n \n ),\n R.range(0, 10)\n )}\n \n
\n {tx.walletScore}\n
\n
\n )\n\n const getCancelMessage = () => {\n const cashInMessage = `The user will not be able to redeem the inserted bills, even if they subsequently confirm the transaction. If they've already deposited bills, you'll need to reconcile this transaction with them manually.`\n const cashOutMessage = `The user will not be able to redeem the cash, even if they subsequently send the required coins. If they've already sent you coins, you'll need to reconcile this transaction with them manually.`\n\n return isCashIn ? cashInMessage : cashOutMessage\n }\n\n return (\n \n
\n
\n
Direction \n
\n \n {!isCashIn ? : }\n \n {!isCashIn ? 'Cash-out' : 'Cash-in'} \n
\n
\n\n
\n
Available IDs \n
\n {tx.customerPhone && (\n \n {tx.customerPhone}\n \n )}\n {tx.customerIdCardPhotoPath && !tx.customerIdCardData && (\n \n \n \n )}\n {tx.customerIdCardData && (\n \n \n
\n
\n
Name \n
{customer.name}
\n
\n
\n
Age \n
{customer.age}
\n
\n
\n
Country \n
{customer.country}
\n
\n
\n
\n
\n
ID number \n
{customer.idCardNumber}
\n
\n
\n
Expiration date \n
{customer.idCardExpirationDate}
\n
\n
\n
\n \n )}\n {tx.customerFrontCameraPath && (\n \n \n \n )}\n \n
\n
\n
Exchange rate \n
{crypto > 0 ? displayExRate : '-'}
\n
\n
\n
Commission \n
\n {`${commission} ${tx.fiatCode} (${commissionPercentage} %)`}\n {discount && (\n
\n {discount} \n
\n )}\n
\n
\n
\n
Fixed fee \n
{isCashIn ? `${cashInFee} ${tx.fiatCode}` : 'N/A'}
\n
\n
\n
\n
\n
\n Address \n {!R.isNil(tx.walletScore) && (\n \n {`CipherTrace score: ${tx.walletScore}/10`}\n \n )}\n
\n
\n \n {formatAddress(tx.cryptoCode, tx.toAddress)}\n \n
\n
\n
\n
Transaction ID \n
\n {tx.txClass === 'cashOut' ? (\n 'N/A'\n ) : (\n {tx.txHash} \n )}\n
\n
\n
\n Session ID \n {tx.id} \n
\n
\n
\n
\n {getStatusDetails(tx) ? (\n
\n {getStatusDetails(tx)}
\n \n ) : (\n errorElements\n )}\n {tx.txClass === 'cashOut' && getStatus(tx) === 'Pending' && (\n
\n setAction({\n command: 'cancelTx'\n })\n }>\n Cancel transaction\n \n )}\n
\n
\n
Other actions \n
\n
downloadRawLogs(tx, timezone)}>\n Download raw logs\n \n
\n
\n
\n
{\n setErrorMessage(null)\n setAction({ command: null })\n cancelTransaction({\n variables: {\n id: tx.id\n }\n })\n }}\n onDismissed={() => {\n setAction({ command: null })\n setErrorMessage(null)\n }}\n />\n \n )\n}\n\nexport default memo(\n DetailsRow,\n (prev, next) =>\n prev.it.id === next.it.id &&\n prev.it.hasError === next.it.hasError &&\n prev.it.batchError === next.it.batchError &&\n getStatus(prev.it) === getStatus(next.it)\n)\n","import { zircon } from 'src/styling/variables'\n\nexport default {\n expandButton: {\n outline: 'none',\n border: 'none',\n backgroundColor: 'transparent',\n cursor: 'pointer',\n padding: 4\n },\n rowWrapper: {\n // workaround to shadows cut by r-virtualized when scroll is visible\n padding: 1\n },\n row: {\n border: [[2, 'solid', 'transparent']],\n borderRadius: 0\n },\n expanded: {\n border: [[2, 'solid', zircon]],\n boxShadow: '0 0 8px 0 rgba(0,0,0,0.08)'\n },\n before: {\n paddingTop: 12\n },\n after: {\n paddingBottom: 12\n },\n pointer: {\n cursor: 'pointer'\n },\n body: {\n flex: [[1, 1, 'auto']]\n },\n table: ({ width }) => ({\n marginBottom: 30,\n minHeight: 200,\n width,\n flex: 1,\n display: 'flex',\n flexDirection: 'column'\n }),\n emptyTable: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n marginTop: 52\n }\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Styleguide\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/expand/closed\",\n transform: \"translate(1.000000, 1.000000)\",\n stroke: \"#1B2559\",\n strokeWidth: 1.5\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-4\",\n cx: 14,\n cy: 2,\n r: 2\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-4-Copy\",\n cx: 8,\n cy: 2,\n r: 2\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-4-Copy-2\",\n cx: 2,\n cy: 2,\n r: 2\n})));\n\nfunction SvgClosed(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"6px\",\n viewBox: \"0 0 18 6\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgClosed);\nexport default __webpack_public_path__ + \"static/media/closed.b853a619.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Styleguide\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/expand/open\",\n transform: \"translate(1.000000, 1.000000)\",\n fill: \"#1B2559\",\n stroke: \"#1B2559\",\n strokeWidth: 1.5\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-4\",\n cx: 14,\n cy: 2,\n r: 2\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-4-Copy\",\n cx: 8,\n cy: 2,\n r: 2\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-4-Copy-2\",\n cx: 2,\n cy: 2,\n r: 2\n})));\n\nfunction SvgOpen(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"6px\",\n viewBox: \"0 0 18 6\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgOpen);\nexport default __webpack_public_path__ + \"static/media/open.7196c113.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles, Box } from '@material-ui/core'\nimport classnames from 'classnames'\nimport * as R from 'ramda'\nimport React, { useState, useEffect } from 'react'\nimport {\n AutoSizer,\n List,\n CellMeasurer,\n CellMeasurerCache\n} from 'react-virtualized'\n\nimport {\n Table,\n TBody,\n THead,\n Tr,\n Td,\n Th\n} from 'src/components/fake-table/Table'\nimport styles from 'src/components/tables/DataTable.styles'\nimport { H4 } from 'src/components/typography'\nimport { ReactComponent as ExpandClosedIcon } from 'src/styling/icons/action/expand/closed.svg'\nimport { ReactComponent as ExpandOpenIcon } from 'src/styling/icons/action/expand/open.svg'\n\nconst useStyles = makeStyles(styles)\n\nconst Row = ({\n id,\n elements,\n data,\n width,\n Details,\n expanded,\n expandRow,\n expWidth,\n expandable,\n onClick\n}) => {\n const classes = useStyles()\n\n const hasPointer = onClick || expandable\n const trClasses = {\n [classes.pointer]: hasPointer,\n [classes.row]: true,\n [classes.expanded]: expanded\n }\n\n return (\n \n
\n
{\n expandable && expandRow(id)\n onClick && onClick(data)\n }}\n error={data.error}\n errorMessage={data.errorMessage}>\n {elements.map(({ view = it => it?.toString(), ...props }, idx) => (\n \n {view(data)}\n \n ))}\n {expandable && (\n \n expandRow(id)}\n className={classes.expandButton}>\n {expanded && }\n {!expanded && }\n \n \n )}\n \n \n {expandable && expanded && (\n
\n
\n \n \n \n \n \n )}\n
\n )\n}\n\nconst DataTable = ({\n elements = [],\n data = [],\n Details,\n className,\n expandable,\n initialExpanded,\n onClick,\n loading,\n emptyText,\n extraHeight,\n ...props\n}) => {\n const [expanded, setExpanded] = useState(initialExpanded)\n\n useEffect(() => setExpanded(initialExpanded), [initialExpanded])\n\n const coreWidth = R.compose(R.sum, R.map(R.prop('width')))(elements)\n const expWidth = 850 - coreWidth\n const width = coreWidth + (expandable ? expWidth : 0)\n\n const classes = useStyles({ width })\n\n const expandRow = id => {\n setExpanded(id === expanded ? null : id)\n }\n\n const cache = new CellMeasurerCache({\n defaultHeight: 62,\n fixedWidth: true\n })\n\n function rowRenderer({ index, key, parent, style }) {\n return (\n \n \n
\n
\n \n )\n }\n\n return (\n \n \n \n {elements.map(({ width, className, textAlign, header }, idx) => (\n \n {header}\n \n ))}\n {expandable && }\n \n \n {loading && Loading... }\n {!loading && R.isEmpty(data) && {emptyText} }\n \n {() => (\n
\n )}\n \n \n
\n \n )\n}\n\nexport default DataTable\n","import { useQuery, useLazyQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport BigNumber from 'bignumber.js'\nimport gql from 'graphql-tag'\nimport { utils as coinUtils } from 'lamassu-coins'\nimport * as R from 'ramda'\nimport React, { useEffect, useState } from 'react'\n\nimport DetailsRow from 'src/pages/Transactions/DetailsCard'\nimport { mainStyles } from 'src/pages/Transactions/Transactions.styles'\nimport { getStatus } from 'src/pages/Transactions/helper'\nimport { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport { formatDate } from 'src/utils/timezones'\n\nimport DataTable from './DataTable'\nconst useStyles = makeStyles(mainStyles)\n\nconst NUM_LOG_RESULTS = 5\n\nconst GET_TRANSACTIONS = gql`\n query transactions($limit: Int, $from: Date, $until: Date, $deviceId: ID) {\n transactions(\n limit: $limit\n from: $from\n until: $until\n deviceId: $deviceId\n ) {\n id\n txClass\n txHash\n toAddress\n commissionPercentage\n expired\n machineName\n operatorCompleted\n sendConfirmed\n dispense\n hasError: error\n deviceId\n fiat\n cashInFee\n fiatCode\n cryptoAtoms\n cryptoCode\n toAddress\n created\n customerName\n customerIdCardData\n customerIdCardPhotoPath\n customerFrontCameraPath\n customerPhone\n discount\n customerId\n isAnonymous\n rawTickerPrice\n }\n }\n`\n\nconst GET_DATA = gql`\n query getData {\n config\n }\n`\n\nconst Transactions = ({ id }) => {\n const classes = useStyles()\n\n const [extraHeight, setExtraHeight] = useState(0)\n const [clickedId, setClickedId] = useState('')\n\n const [getTx, { data: txResponse, loading: txLoading }] = useLazyQuery(\n GET_TRANSACTIONS,\n {\n variables: {\n limit: NUM_LOG_RESULTS,\n deviceId: id\n }\n }\n )\n\n const { data: configData, loading: configLoading } = useQuery(GET_DATA)\n const timezone = R.path(['config', 'locale_timezone'], configData)\n\n const loading = txLoading || configLoading\n\n if (!loading && txResponse) {\n txResponse.transactions = txResponse.transactions.splice(0, 5)\n }\n\n useEffect(() => {\n if (id !== null) {\n getTx()\n }\n }, [getTx, id])\n\n const formatCustomerName = customer => {\n const { firstName, lastName } = customer\n\n return `${R.o(R.toUpper, R.head)(firstName)}. ${lastName}`\n }\n\n const getCustomerDisplayName = tx => {\n if (tx.customerName) return tx.customerName\n if (tx.customerIdCardData) return formatCustomerName(tx.customerIdCardData)\n return tx.customerPhone\n }\n\n const elements = [\n {\n header: '',\n width: 0,\n size: 'sm',\n view: it => (it.txClass === 'cashOut' ? : )\n },\n {\n header: 'Customer',\n width: 122,\n size: 'sm',\n view: getCustomerDisplayName\n },\n {\n header: 'Cash',\n width: 144,\n textAlign: 'right',\n size: 'sm',\n view: it => `${Number.parseFloat(it.fiat)} ${it.fiatCode}`\n },\n {\n header: 'Crypto',\n width: 164,\n textAlign: 'right',\n size: 'sm',\n view: it =>\n `${coinUtils\n .toUnit(new BigNumber(it.cryptoAtoms), it.cryptoCode)\n .toFormat(5)} ${it.cryptoCode}`\n },\n {\n header: 'Address',\n view: it => coinUtils.formatCryptoAddress(it.cryptoCode, it.toAddress),\n className: classes.overflowTd,\n size: 'sm',\n textAlign: 'left',\n width: 140\n },\n {\n header: 'Date',\n view: it => formatDate(it.created, timezone, 'yyyy‑MM‑dd'),\n textAlign: 'left',\n size: 'sm',\n width: 140\n },\n {\n header: 'Status',\n view: it => getStatus(it),\n size: 'sm',\n width: 20\n }\n ]\n\n const handleClick = e => {\n if (clickedId === e.id) {\n setClickedId('')\n setExtraHeight(0)\n } else {\n setClickedId(e.id)\n setExtraHeight(310)\n }\n }\n\n return (\n \n )\n}\n\nexport default Transactions\n","import Transactions from './Transactions'\nexport default Transactions\n","import { useQuery } from '@apollo/react-hooks'\nimport Breadcrumbs from '@material-ui/core/Breadcrumbs'\nimport Grid from '@material-ui/core/Grid'\nimport { makeStyles } from '@material-ui/core/styles'\nimport NavigateNextIcon from '@material-ui/icons/NavigateNext'\nimport classnames from 'classnames'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\nimport { Link, useLocation, useHistory } from 'react-router-dom'\n\nimport { TL1, TL2, Label3 } from 'src/components/typography'\n\nimport Cassettes from './MachineComponents/Cassettes'\nimport Commissions from './MachineComponents/Commissions'\nimport Details from './MachineComponents/Details'\nimport Overview from './MachineComponents/Overview'\nimport Transactions from './MachineComponents/Transactions'\nimport styles from './Machines.styles'\nconst useStyles = makeStyles(styles)\n\nconst GET_INFO = gql`\n query getMachine($deviceId: ID!, $billFilters: JSONObject) {\n machine(deviceId: $deviceId) {\n name\n deviceId\n paired\n lastPing\n pairedAt\n version\n model\n cashbox\n cassette1\n cassette2\n cassette3\n cassette4\n numberOfCassettes\n statuses {\n label\n type\n }\n downloadSpeed\n responseTime\n packetLoss\n latestEvent {\n note\n }\n }\n bills(filters: $billFilters) {\n id\n fiat\n deviceId\n created\n }\n config\n }\n`\n\nconst getMachineID = path => path.slice(path.lastIndexOf('/') + 1)\n\nconst MachineRoute = () => {\n const location = useLocation()\n const history = useHistory()\n\n const id = getMachineID(location.pathname)\n\n const [loading, setLoading] = useState(true)\n\n const { data, refetch } = useQuery(GET_INFO, {\n onCompleted: data => {\n if (data.machine === null)\n return history.push('/maintenance/machine-status')\n\n setLoading(false)\n },\n variables: {\n deviceId: id\n },\n billFilters: {\n deviceId: id,\n batch: 'none'\n }\n })\n\n const reload = () => {\n return history.push(location.pathname)\n }\n\n return (\n !loading && (\n \n )\n )\n}\n\nconst Machines = ({ data, refetch, reload }) => {\n const classes = useStyles()\n\n const timezone = R.path(['config', 'locale_timezone'], data) ?? {}\n\n const machine = R.path(['machine'])(data) ?? {}\n const config = R.path(['config'])(data) ?? {}\n const bills = R.path(['bills'])(data) ?? []\n\n const machineName = R.path(['name'])(machine) ?? null\n const machineID = R.path(['deviceId'])(machine) ?? null\n\n return (\n \n \n \n \n }>\n \n \n Dashboard\n \n \n \n {machineName}\n \n \n \n
\n \n \n \n \n
\n {'Details'} \n \n
\n
\n {'Cash box & cassettes'} \n \n
\n
\n {'Latest transactions'} \n \n
\n
\n {'Commissions'} \n \n
\n
\n \n \n )\n}\n\nexport default MachineRoute\n","import Machines from './Machines'\n\nexport default Machines\n","const denomiations = {\n AUD: {\n 5: 130,\n 10: 137,\n 20: 144,\n 50: 151,\n 100: 158\n },\n BBD: {\n 2: 150,\n 5: 150,\n 10: 150,\n 20: 150,\n 50: 150,\n 100: 150\n },\n CAD: {\n 5: 152,\n 10: 152,\n 20: 152,\n 50: 152,\n 100: 152\n },\n CHF: {\n 10: 126,\n 20: 137,\n 50: 148,\n 100: 159,\n 200: 170,\n 1000: 181\n },\n DKK: {\n 50: 125,\n 100: 135,\n 200: 145,\n 500: 155,\n 1000: 165\n },\n EUR: {\n 5: 120,\n 10: 127,\n 20: 133,\n 50: 140,\n 100: 147,\n 200: 153,\n 500: 160\n },\n GBP: {\n 5: 135,\n 10: 142,\n 20: 149,\n 50: 156\n },\n HKD: {\n 10: 134,\n 20: 143,\n 50: 148,\n 100: 153,\n 500: 158,\n 1000: 163\n },\n HUF: {\n 200: 154,\n 500: 154,\n 1000: 154,\n 2000: 154,\n 5000: 154,\n 10000: 154,\n 20000: 154\n },\n ILS: {\n 20: 129,\n 50: 136,\n 100: 143,\n 200: 150\n },\n JMD: {\n 50: 145,\n 100: 145,\n 500: 145,\n 1000: 145,\n 5000: 145\n },\n JPY: {\n 1000: 150,\n 2000: 154,\n 5000: 156,\n 10000: 160\n },\n KZT: {\n 200: 126,\n 500: 130,\n 1000: 134,\n 2000: 139,\n 5000: 144,\n 10000: 155,\n 20000: 155\n },\n MXN: {\n 20: 120,\n 50: 127,\n 100: 134,\n 200: 141,\n 500: 148,\n 1000: 155\n },\n MYR: {\n 1: 120,\n 5: 135,\n 10: 140,\n 20: 145,\n 50: 145,\n 100: 150\n },\n NZD: {\n 5: 135,\n 10: 140,\n 20: 145,\n 50: 150,\n 100: 155\n },\n PHP: {\n 20: 160,\n 50: 160,\n 100: 160,\n 200: 160,\n 500: 160,\n 1000: 160\n },\n PLN: {\n 10: 120,\n 20: 126,\n 50: 132,\n 100: 138,\n 200: 144,\n 500: 150\n },\n SGD: {\n 2: 126,\n 5: 133,\n 10: 141,\n 50: 156,\n 100: 162,\n 1000: 170\n },\n TWD: {\n 100: 145,\n 200: 150,\n 500: 155,\n 1000: 160,\n 2000: 165\n },\n UAH: {\n 1: 118,\n 2: 118,\n 5: 118,\n 10: 124,\n 20: 130,\n 50: 136,\n 100: 142,\n 200: 148,\n 500: 154\n },\n USD: {\n 1: 156,\n 5: 156,\n 10: 156,\n 20: 156,\n 50: 156,\n 100: 156\n },\n VND: {\n 10000: 132,\n 20000: 136,\n 50000: 140,\n 100000: 144,\n 200000: 148,\n 500000: 152\n },\n ZAR: {\n 10: 128,\n 20: 134,\n 50: 140,\n 100: 146,\n 200: 152\n }\n}\n\nexport default denomiations\n","import * as R from 'ramda'\n\nconst getBillOptions = R.curry((locale, denomiations) => {\n const currency = R.prop('fiatCurrency')(locale)\n return R.compose(\n R.map(code => ({ code: parseInt(code), display: code })),\n R.keys,\n R.path([currency])\n )(denomiations)\n})\n\nexport { getBillOptions }\n","import * as _ from 'lodash/fp'\nimport * as R from 'ramda'\nimport React from 'react'\nimport { v4 } from 'uuid'\nimport * as Yup from 'yup'\n\nimport { Autocomplete, NumberInput } from 'src/components/inputs/formik'\nimport { bold } from 'src/styling/helpers'\nimport { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport { primaryColor, secondaryColorDark } from 'src/styling/variables'\nimport denominations from 'src/utils/bill-denominations'\nimport { getBillOptions } from 'src/utils/bill-options'\nimport { CURRENCY_MAX } from 'src/utils/constants'\n\nconst ALL_MACHINES = {\n name: 'All Machines',\n deviceId: 'ALL_MACHINES'\n}\n\nconst ALL_COINS = {\n display: 'All Coins',\n code: 'ALL_COINS'\n}\n\nconst cashInAndOutHeaderStyle = { marginLeft: 6, whiteSpace: 'nowrap' }\n\nconst cashInHeader = (\n \n \n Cash-in \n
\n)\n\nconst cashOutHeader = (\n \n \n Cash-out \n
\n)\n\nconst getView = (data, code, compare) => it => {\n if (!data) return ''\n\n // The following boolean should come undefined if it is rendering an unpaired machine\n const attribute = R.find(R.propEq(compare ?? 'code', it))(data)\n\n return attribute ? R.prop(code, attribute) : 'Unpaired machine'\n}\n\nconst displayCodeArray = data => it => {\n if (!it) return it\n\n return R.compose(R.join(', '), R.map(getView(data, 'display')))(it)\n}\n\nconst onCryptoChange = (prev, curr, setValue) => {\n const hasAllCoins = R.includes(ALL_COINS.code)(curr)\n const hadAllCoins = R.includes(ALL_COINS.code)(prev)\n\n if (hasAllCoins && hadAllCoins && R.length(curr) > 1) {\n return setValue(R.reject(R.equals(ALL_COINS.code))(curr))\n }\n\n if (hasAllCoins && !hadAllCoins) {\n return setValue([ALL_COINS.code])\n }\n\n setValue(curr)\n}\n\nconst getOverridesFields = (getData, currency, auxElements) => {\n const machineData = [ALL_MACHINES].concat(getData(['machines']))\n const rawCryptos = getData(['cryptoCurrencies'])\n const cryptoData = [ALL_COINS].concat(\n R.map(it => ({ display: it.code, code: it.code }))(rawCryptos ?? [])\n )\n\n return [\n {\n name: 'machine',\n width: 196,\n size: 'sm',\n view: getView(machineData, 'name', 'deviceId'),\n input: Autocomplete,\n inputProps: {\n options: machineData,\n valueProp: 'deviceId',\n labelProp: 'name'\n }\n },\n {\n name: 'cryptoCurrencies',\n width: 280,\n size: 'sm',\n view: displayCodeArray(cryptoData),\n input: Autocomplete,\n inputProps: {\n options: cryptoData,\n valueProp: 'code',\n labelProp: 'display',\n multiple: true,\n onChange: onCryptoChange,\n shouldStayOpen: true\n }\n },\n {\n header: cashInHeader,\n name: 'cashIn',\n display: 'Cash-in',\n width: 130,\n input: NumberInput,\n textAlign: 'right',\n suffix: '%',\n bold: bold,\n inputProps: {\n decimalPlaces: 3\n }\n },\n {\n header: cashOutHeader,\n name: 'cashOut',\n display: 'Cash-out',\n width: 130,\n input: NumberInput,\n textAlign: 'right',\n suffix: '%',\n bold: bold,\n inputProps: {\n decimalPlaces: 3\n }\n },\n {\n name: 'fixedFee',\n display: 'Fixed fee',\n width: 144,\n input: NumberInput,\n doubleHeader: 'Cash-in only',\n textAlign: 'right',\n suffix: currency,\n bold: bold,\n inputProps: {\n decimalPlaces: 2\n }\n },\n {\n name: 'minimumTx',\n display: 'Minimun Tx',\n width: 169,\n doubleHeader: 'Cash-in only',\n textAlign: 'center',\n editingAlign: 'right',\n input: NumberInput,\n suffix: currency,\n bold: bold,\n inputProps: {\n decimalPlaces: 2\n }\n }\n ]\n}\n\nconst mainFields = currency => [\n {\n header: cashInHeader,\n name: 'cashIn',\n display: 'Cash-in',\n width: 169,\n size: 'lg',\n editingAlign: 'right',\n input: NumberInput,\n suffix: '%',\n bold: bold,\n inputProps: {\n decimalPlaces: 3\n }\n },\n {\n header: cashOutHeader,\n name: 'cashOut',\n display: 'Cash-out',\n width: 169,\n size: 'lg',\n editingAlign: 'right',\n input: NumberInput,\n suffix: '%',\n bold: bold,\n inputProps: {\n decimalPlaces: 3\n }\n },\n {\n name: 'fixedFee',\n display: 'Fixed fee',\n width: 169,\n size: 'lg',\n doubleHeader: 'Cash-in only',\n textAlign: 'center',\n editingAlign: 'right',\n input: NumberInput,\n suffix: currency,\n bold: bold,\n inputProps: {\n decimalPlaces: 2\n }\n },\n {\n name: 'minimumTx',\n display: 'Minimun Tx',\n width: 169,\n size: 'lg',\n doubleHeader: 'Cash-in only',\n textAlign: 'center',\n editingAlign: 'right',\n input: NumberInput,\n suffix: currency,\n bold: bold,\n inputProps: {\n decimalPlaces: 2\n }\n }\n]\n\nconst overrides = (auxData, currency, auxElements) => {\n const getData = R.path(R.__, auxData)\n\n return getOverridesFields(getData, currency, auxElements)\n}\n\nconst percentMax = 100\nconst getSchema = locale => {\n const bills = getBillOptions(locale, denominations).map(it =>\n parseInt(it.code)\n )\n const highestBill = R.isEmpty(bills) ? CURRENCY_MAX : Math.max(...bills)\n\n return Yup.object().shape({\n cashIn: Yup.number()\n .label('Cash-in')\n .min(0)\n .max(percentMax)\n .required(),\n cashOut: Yup.number()\n .label('Cash-out')\n .min(0)\n .max(percentMax)\n .required(),\n fixedFee: Yup.number()\n .label('Fixed Fee')\n .min(0)\n .max(highestBill)\n .required(),\n minimumTx: Yup.number()\n .label('Minimum Tx')\n .min(0)\n .max(highestBill)\n .required()\n })\n}\n\nconst getAlreadyUsed = (id, machine, values) => {\n const getCrypto = R.prop('cryptoCurrencies')\n const getMachineId = R.prop('machine')\n\n const filteredOverrides = R.filter(R.propEq('machine', machine))(values)\n const originalValue = R.find(R.propEq('id', id))(values)\n\n const originalCryptos = getCrypto(originalValue)\n const originalMachineId = getMachineId(originalValue)\n\n const alreadyUsed = R.compose(\n R.uniq,\n R.flatten,\n R.map(getCrypto)\n )(filteredOverrides)\n\n if (machine !== originalMachineId) return alreadyUsed ?? []\n\n return R.difference(alreadyUsed, originalCryptos)\n}\n\nconst getOverridesSchema = (values, rawData, locale) => {\n const getData = R.path(R.__, rawData)\n const machineData = [ALL_MACHINES].concat(getData(['machines']))\n const rawCryptos = getData(['cryptoCurrencies'])\n const cryptoData = [ALL_COINS].concat(\n R.map(it => ({ display: it.code, code: it.code }))(rawCryptos ?? [])\n )\n\n const bills = getBillOptions(locale, denominations).map(it =>\n parseInt(it.code)\n )\n const highestBill = R.isEmpty(bills) ? CURRENCY_MAX : Math.max(...bills)\n\n return Yup.object().shape({\n machine: Yup.string()\n .nullable()\n .label('Machine')\n .required(),\n cryptoCurrencies: Yup.array()\n .test({\n test() {\n const { id, machine, cryptoCurrencies } = this.parent\n const alreadyUsed = getAlreadyUsed(id, machine, values)\n\n const isAllMachines = machine === ALL_MACHINES.deviceId\n const isAllCoins = R.includes(ALL_COINS.code, cryptoCurrencies)\n if (isAllMachines && isAllCoins) {\n return this.createError({\n message: `All machines and all coins should be configured in the default setup table`\n })\n }\n\n const repeated = R.intersection(alreadyUsed, cryptoCurrencies)\n if (!R.isEmpty(repeated)) {\n const codes = displayCodeArray(cryptoData)(repeated)\n const machineView = getView(\n machineData,\n 'name',\n 'deviceId'\n )(machine)\n\n const message = `${codes} already overriden for machine: ${machineView}`\n\n return this.createError({ message })\n }\n return true\n }\n })\n .label('Crypto Currencies')\n .required()\n .min(1),\n cashIn: Yup.number()\n .label('Cash-in')\n .min(0)\n .max(percentMax)\n .required(),\n cashOut: Yup.number()\n .label('Cash-out')\n .min(0)\n .max(percentMax)\n .required(),\n fixedFee: Yup.number()\n .label('Fixed Fee')\n .min(0)\n .max(highestBill)\n .required(),\n minimumTx: Yup.number()\n .label('Minimum Tx')\n .min(0)\n .max(highestBill)\n .required()\n })\n}\n\nconst defaults = {\n cashIn: '',\n cashOut: '',\n fixedFee: '',\n minimumTx: ''\n}\n\nconst overridesDefaults = {\n machine: null,\n cryptoCurrencies: [],\n cashIn: '',\n cashOut: '',\n fixedFee: '',\n minimumTx: ''\n}\n\nconst getOrder = ({ machine, cryptoCurrencies }) => {\n const isAllMachines = machine === ALL_MACHINES.deviceId\n const isAllCoins = R.contains(ALL_COINS.code, cryptoCurrencies)\n\n if (isAllMachines && isAllCoins) return 0\n if (isAllMachines) return 1\n if (isAllCoins) return 2\n\n return 3\n}\n\nconst createCommissions = (cryptoCode, deviceId, isDefault, config) => {\n return {\n minimumTx: config.minimumTx,\n fixedFee: config.fixedFee,\n cashOut: config.cashOut,\n cashIn: config.cashIn,\n machine: deviceId,\n cryptoCurrencies: [cryptoCode],\n default: isDefault,\n id: v4()\n }\n}\n\nconst getCommissions = (cryptoCode, deviceId, config) => {\n const overrides = R.prop('overrides', config) ?? []\n\n if (!overrides && R.isEmpty(overrides)) {\n return createCommissions(cryptoCode, deviceId, true, config)\n }\n\n const specificOverride = R.find(\n it => it.machine === deviceId && _.includes(cryptoCode)(it.cryptoCurrencies)\n )(overrides)\n\n if (specificOverride !== undefined)\n return createCommissions(cryptoCode, deviceId, false, specificOverride)\n\n const machineOverride = R.find(\n it =>\n it.machine === deviceId && _.includes('ALL_COINS')(it.cryptoCurrencies)\n )(overrides)\n\n if (machineOverride !== undefined)\n return createCommissions(cryptoCode, deviceId, false, machineOverride)\n\n const coinOverride = R.find(\n it =>\n it.machine === 'ALL_MACHINES' &&\n _.includes(cryptoCode)(it.cryptoCurrencies)\n )(overrides)\n\n if (coinOverride !== undefined)\n return createCommissions(cryptoCode, deviceId, false, coinOverride)\n\n return createCommissions(cryptoCode, deviceId, true, config)\n}\n\nconst getListCommissionsSchema = locale => {\n const bills = getBillOptions(locale, denominations).map(it =>\n parseInt(it.code)\n )\n const highestBill = R.isEmpty(bills) ? CURRENCY_MAX : Math.max(...bills)\n\n return Yup.object().shape({\n machine: Yup.string()\n .label('Machine')\n .required(),\n cryptoCurrencies: Yup.array()\n .label('Crypto Currency')\n .required()\n .min(1),\n cashIn: Yup.number()\n .label('Cash-in')\n .min(0)\n .max(percentMax)\n .required(),\n cashOut: Yup.number()\n .label('Cash-out')\n .min(0)\n .max(percentMax)\n .required(),\n fixedFee: Yup.number()\n .label('Fixed Fee')\n .min(0)\n .max(highestBill)\n .required(),\n minimumTx: Yup.number()\n .label('Minimum Tx')\n .min(0)\n .max(highestBill)\n .required()\n })\n}\n\nconst getTextStyle = (obj, isEditing) => {\n return { color: obj.default ? primaryColor : secondaryColorDark }\n}\n\nconst commissionsList = (auxData, currency, auxElements) => {\n const getData = R.path(R.__, auxData)\n\n return getListCommissionsFields(getData, currency, defaults)\n}\n\nconst getListCommissionsFields = (getData, currency, defaults) => {\n const machineData = [ALL_MACHINES].concat(getData(['machines']))\n\n return [\n {\n name: 'machine',\n width: 196,\n size: 'sm',\n view: getView(machineData, 'name', 'deviceId'),\n editable: false\n },\n {\n name: 'cryptoCurrencies',\n display: 'Crypto Currency',\n width: 255,\n view: R.prop(0),\n size: 'sm',\n editable: false\n },\n {\n header: cashInHeader,\n name: 'cashIn',\n display: 'Cash-in',\n width: 130,\n input: NumberInput,\n textAlign: 'right',\n suffix: '%',\n textStyle: obj => getTextStyle(obj),\n inputProps: {\n decimalPlaces: 3\n }\n },\n {\n header: cashOutHeader,\n name: 'cashOut',\n display: 'Cash-out',\n width: 140,\n input: NumberInput,\n textAlign: 'right',\n greenText: true,\n suffix: '%',\n textStyle: obj => getTextStyle(obj),\n inputProps: {\n decimalPlaces: 3\n }\n },\n {\n name: 'fixedFee',\n display: 'Fixed fee',\n width: 144,\n input: NumberInput,\n doubleHeader: 'Cash-in only',\n textAlign: 'right',\n suffix: currency,\n textStyle: obj => getTextStyle(obj),\n inputProps: {\n decimalPlaces: 2\n }\n },\n {\n name: 'minimumTx',\n display: 'Minimun Tx',\n width: 144,\n input: NumberInput,\n doubleHeader: 'Cash-in only',\n textAlign: 'right',\n suffix: currency,\n textStyle: obj => getTextStyle(obj),\n inputProps: {\n decimalPlaces: 2\n }\n }\n ]\n}\n\nexport {\n mainFields,\n overrides,\n getSchema,\n getOverridesSchema,\n defaults,\n overridesDefaults,\n getOrder,\n getCommissions,\n getListCommissionsSchema,\n commissionsList\n}\n","import * as R from 'ramda'\nimport * as Yup from 'yup'\n\nimport Autocomplete from 'src/components/inputs/formik/Autocomplete.js'\nimport { labels as timezoneList } from 'src/utils/timezone-list'\n\nconst getFields = (getData, names, onChange, auxElements = []) => {\n return R.filter(\n it => R.includes(it.name, names),\n allFields(getData, onChange, auxElements)\n )\n}\n\nconst allFields = (getData, onChange, auxElements = []) => {\n const getView = (data, code, compare) => it => {\n if (!data) return ''\n\n return R.compose(\n R.prop(code),\n R.find(R.propEq(compare ?? 'code', it))\n )(data)\n }\n\n const displayCodeArray = data => it => {\n if (!it) return it\n\n return R.compose(R.join(', '), R.map(getView(data, 'code')))(it)\n }\n\n const overridenMachines = R.map(override => override.machine, auxElements)\n\n const suggestionFilter = it =>\n R.differenceWith((x, y) => x.deviceId === y, it, overridenMachines)\n\n const machineData = getData(['machines'])\n const countryData = getData(['countries'])\n const currencyData = getData(['currencies'])\n const languageData = getData(['languages'])\n const cryptoData = getData(['cryptoCurrencies'])\n const timezonesData = timezoneList\n\n const findSuggestion = it => {\n const machine = R.find(R.propEq('deviceId', it.machine))(machineData)\n return machine ? [machine] : []\n }\n\n return [\n {\n name: 'machine',\n width: 200,\n size: 'sm',\n view: getView(machineData, 'name', 'deviceId'),\n input: Autocomplete,\n inputProps: {\n options: it =>\n R.concat(findSuggestion(it))(suggestionFilter(machineData)),\n valueProp: 'deviceId',\n labelProp: 'name'\n }\n },\n {\n name: 'country',\n width: 200,\n size: 'sm',\n view: getView(countryData, 'display'),\n input: Autocomplete,\n inputProps: {\n options: countryData,\n valueProp: 'code',\n labelProp: 'display'\n }\n },\n {\n name: 'fiatCurrency',\n width: 150,\n size: 'sm',\n view: getView(currencyData, 'code'),\n input: Autocomplete,\n inputProps: {\n options: currencyData,\n valueProp: 'code',\n labelProp: 'code'\n }\n },\n {\n name: 'languages',\n width: 200,\n size: 'sm',\n view: displayCodeArray(languageData),\n input: Autocomplete,\n inputProps: {\n options: languageData,\n valueProp: 'code',\n labelProp: 'display',\n multiple: true\n }\n },\n {\n name: 'cryptoCurrencies',\n width: 170,\n size: 'sm',\n view: displayCodeArray(cryptoData),\n input: Autocomplete,\n inputProps: {\n options: cryptoData,\n valueProp: 'code',\n labelProp: 'code',\n multiple: true,\n optionsLimit: null,\n onChange\n }\n },\n {\n name: 'timezone',\n width: 320,\n size: 'sm',\n view: getView(timezonesData, 'label'),\n input: Autocomplete,\n inputProps: {\n options: timezonesData,\n valueProp: 'code',\n labelProp: 'label'\n }\n }\n ]\n}\n\nconst mainFields = (auxData, configureCoin) => {\n const getData = R.path(R.__, auxData)\n\n return getFields(\n getData,\n ['country', 'fiatCurrency', 'languages', 'cryptoCurrencies', 'timezone'],\n configureCoin,\n undefined\n )\n}\n\nconst overrides = (auxData, auxElements, configureCoin) => {\n const getData = R.path(R.__, auxData)\n\n return getFields(\n getData,\n ['machine', 'country', 'languages', 'cryptoCurrencies'],\n configureCoin,\n auxElements\n )\n}\n\nconst LocaleSchema = Yup.object().shape({\n country: Yup.string()\n .label('Country')\n .required(),\n fiatCurrency: Yup.string()\n .label('Fiat Currency')\n .required(),\n languages: Yup.array()\n .label('Languages')\n .required()\n .min(1)\n .max(4),\n cryptoCurrencies: Yup.array()\n .label('Crypto Currencies')\n .required()\n .min(1),\n timezone: Yup.string()\n .label('Timezone')\n .required()\n})\n\nconst OverridesSchema = Yup.object().shape({\n machine: Yup.string()\n .label('Machine')\n .required(),\n country: Yup.string()\n .label('Country')\n .required(),\n languages: Yup.array()\n .label('Languages')\n .required()\n .min(1)\n .max(4),\n cryptoCurrencies: Yup.array()\n .label('Crypto Currencies')\n .required()\n .min(1)\n})\n\nconst localeDefaults = {\n country: '',\n fiatCurrency: '',\n languages: [],\n cryptoCurrencies: [],\n timezone: ''\n}\n\nconst overridesDefaults = {\n machine: '',\n country: '',\n languages: [],\n cryptoCurrencies: []\n}\n\nexport {\n mainFields,\n overrides,\n LocaleSchema,\n OverridesSchema,\n localeDefaults,\n overridesDefaults\n}\n","import * as R from 'ramda'\nimport * as Yup from 'yup'\n\nimport {\n Autocomplete,\n Checkbox,\n NumberInput\n} from 'src/components/inputs/formik'\nimport { disabledColor } from 'src/styling/variables'\nimport { CURRENCY_MAX } from 'src/utils/constants'\nimport { transformNumber } from 'src/utils/number'\n\nconst classes = {\n editDisabled: {\n color: disabledColor\n }\n}\nconst filterClass = type => R.filter(it => it.class === type)\nconst filterCoins = ({ id }) => R.filter(it => R.contains(id)(it.cryptos))\n\nconst WalletSchema = Yup.object().shape({\n ticker: Yup.string().required(),\n wallet: Yup.string().required(),\n exchange: Yup.string().required(),\n zeroConf: Yup.string().required(),\n zeroConfLimit: Yup.number()\n .integer()\n .required('Zero Conf Limit is a required field')\n .min(0)\n .max(CURRENCY_MAX)\n .transform(transformNumber)\n})\n\nconst AdvancedWalletSchema = Yup.object().shape({\n cryptoUnits: Yup.string().required(),\n feeMultiplier: Yup.string().required(),\n allowTransactionBatching: Yup.boolean()\n})\n\nconst OverridesSchema = Yup.object().shape({\n cryptoUnits: Yup.string().required(),\n feeMultiplier: Yup.string().required(),\n cryptoCurrency: Yup.string().required(),\n allowTransactionBatching: Yup.boolean()\n})\n\nconst OverridesDefaults = {\n cryptoUnits: '',\n feeMultiplier: '',\n cryptoCurrency: '',\n allowTransactionBatching: null\n}\n\nconst viewFeeMultiplier = it =>\n R.compose(R.prop(['display']), R.find(R.propEq('code', it)))(feeOptions)\n\nconst feeOptions = [\n { display: '+20%', code: '1.2' },\n { display: 'Default', code: '1' },\n { display: '-20%', code: '0.8' },\n { display: '-40%', code: '0.6' },\n { display: '-60%', code: '0.4' }\n]\n\nconst cryptoUnitsDefaultOptions = [\n { display: 'mili', code: 'mili' },\n { display: 'full', code: 'full' }\n]\n\nconst getCryptoUnitsOptions = R.curry((coinUtils, it) => {\n if (R.isNil(it.cryptoCurrency)) return cryptoUnitsDefaultOptions\n const options = R.keys(coinUtils.getCryptoCurrency(it.cryptoCurrency).units)\n return R.map(option => {\n return { code: option, display: option }\n })(options)\n})\n\nconst getAdvancedWalletElements = () => {\n return [\n {\n name: 'cryptoUnits',\n size: 'sm',\n stripe: true,\n width: 190,\n input: Autocomplete,\n inputProps: {\n options: cryptoUnitsDefaultOptions,\n valueProp: 'code',\n labelProp: 'display'\n }\n },\n {\n name: 'allowTransactionBatching',\n size: 'sm',\n stripe: true,\n width: 250,\n view: (_, ite) => {\n return ite.allowTransactionBatching ? 'Yes' : `No`\n },\n input: Checkbox\n },\n {\n name: 'feeMultiplier',\n header: `Miner's Fee`,\n size: 'sm',\n stripe: true,\n width: 250,\n view: viewFeeMultiplier,\n input: Autocomplete,\n inputProps: {\n options: feeOptions,\n valueProp: 'code',\n labelProp: 'display'\n }\n }\n ]\n}\n\nconst getAdvancedWalletElementsOverrides = (\n coinSuggestions,\n findSuggestion,\n coinUtils\n) => {\n return [\n {\n name: 'cryptoCurrency',\n width: 180,\n input: Autocomplete,\n inputProps: {\n options: it => R.concat(coinSuggestions, findSuggestion(it)),\n optionsLimit: null,\n valueProp: 'code',\n labelProp: 'display'\n },\n size: 'sm'\n },\n {\n name: 'cryptoUnits',\n size: 'sm',\n stripe: true,\n width: 190,\n input: Autocomplete,\n inputProps: {\n options: getCryptoUnitsOptions(coinUtils),\n valueProp: 'code',\n labelProp: 'display'\n }\n },\n {\n name: 'allowTransactionBatching',\n size: 'sm',\n stripe: true,\n width: 250,\n view: (_, ite) => {\n if (ite.cryptoCurrency !== 'BTC')\n return {`No`} \n return ite.allowTransactionBatching ? 'Yes' : 'No'\n },\n input: Checkbox,\n editable: it => it.cryptoCurrency === 'BTC'\n },\n {\n name: 'feeMultiplier',\n header: `Miner's Fee`,\n size: 'sm',\n stripe: true,\n width: 250,\n view: viewFeeMultiplier,\n input: Autocomplete,\n inputProps: {\n options: feeOptions,\n valueProp: 'code',\n labelProp: 'display'\n }\n }\n ]\n}\n\nconst getElements = (cryptoCurrencies, accounts, onChange, wizard = false) => {\n const widthAdjust = wizard ? 11 : 0\n const viewCryptoCurrency = it => {\n const currencyDisplay = R.compose(\n R.prop(['display']),\n R.find(R.propEq('code', it))\n )(cryptoCurrencies)\n return currencyDisplay\n }\n const filterOptions = type => filterClass(type)(accounts || [])\n\n const getDisplayName = type => it =>\n R.compose(\n R.prop('display'),\n R.find(R.propEq('code', it))\n )(filterOptions(type))\n\n const getOptions = R.curry((option, it) =>\n filterCoins(it)(filterOptions(option))\n )\n\n return [\n {\n name: 'id',\n header: 'Cryptocurrency',\n width: 150 - widthAdjust,\n view: viewCryptoCurrency,\n size: 'sm',\n editable: false\n },\n {\n name: 'ticker',\n size: 'sm',\n stripe: true,\n view: getDisplayName('ticker'),\n width: 175 - widthAdjust,\n input: Autocomplete,\n inputProps: {\n options: getOptions('ticker'),\n valueProp: 'code',\n labelProp: 'display',\n optionsLimit: null\n }\n },\n {\n name: 'wallet',\n size: 'sm',\n stripe: true,\n view: getDisplayName('wallet'),\n width: 175 - widthAdjust,\n input: Autocomplete,\n inputProps: {\n options: getOptions('wallet'),\n valueProp: 'code',\n labelProp: 'display',\n optionsLimit: null,\n onChange\n }\n },\n {\n name: 'exchange',\n size: 'sm',\n stripe: true,\n view: getDisplayName('exchange'),\n width: 175 - widthAdjust,\n input: Autocomplete,\n inputProps: {\n options: getOptions('exchange'),\n valueProp: 'code',\n labelProp: 'display',\n optionsLimit: null,\n onChange\n }\n },\n {\n name: 'zeroConf',\n header: 'Confidence Checking',\n size: 'sm',\n stripe: true,\n view: getDisplayName('zeroConf'),\n input: Autocomplete,\n width: 210 - widthAdjust,\n inputProps: {\n options: getOptions('zeroConf'),\n valueProp: 'code',\n labelProp: 'display',\n optionsLimit: null,\n onChange\n }\n },\n {\n name: 'zeroConfLimit',\n header: '0-conf Limit',\n size: 'sm',\n stripe: true,\n view: (it, row) =>\n row.id === 'ETH' ? {it} : it,\n input: NumberInput,\n width: 145 - widthAdjust,\n inputProps: {\n decimalPlaces: 0\n },\n editable: row => row.id !== 'ETH'\n }\n ]\n}\n\nexport {\n WalletSchema,\n AdvancedWalletSchema,\n getElements,\n filterClass,\n getAdvancedWalletElements,\n getAdvancedWalletElementsOverrides,\n OverridesDefaults,\n OverridesSchema\n}\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport { spacer, offColor } from 'src/styling/variables'\n\nimport { TL1 } from './typography'\n\nconst useStyles = makeStyles({\n subtitle: {\n color: offColor,\n marginTop: spacer * 2,\n marginBottom: spacer * 2\n },\n extraMarginTop: {\n marginTop: spacer * 9\n }\n})\n\nconst Subtitle = memo(({ children, className, extraMarginTop }) => {\n const classes = useStyles()\n const classNames = {\n [classes.subtitle]: true,\n [classes.extraMarginTop]: extraMarginTop\n }\n\n return {children} \n})\n\nexport default Subtitle\n","import { makeStyles } from '@material-ui/core'\nimport React from 'react'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Subtitle from 'src/components/Subtitle'\n\nimport styles from './Section.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst Section = ({ error, children, title }) => {\n const classes = useStyles()\n return (\n \n {(title || error) && (\n
\n {title} \n {error && Failed to save changes }\n
\n )}\n {children}\n
\n )\n}\n\nexport default Section\n","export default {\n section: {\n marginBottom: 72\n },\n sectionHeader: {\n display: 'flex',\n alignItems: 'center'\n },\n sectionTitle: {\n margin: [[16, 20, 23, 0]]\n }\n}\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport Section from 'src/components/layout/Section'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport styles from 'src/pages/AddMachine/styles'\nimport { mainFields, defaults, getSchema } from 'src/pages/Commissions/helper'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nconst useStyles = makeStyles(styles)\nconst useCommissionStyles = makeStyles({\n autoComplete: {\n width: '100%'\n }\n})\n\nconst GET_DATA = gql`\n query getData {\n config\n }\n`\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nfunction Commissions({ isActive, doContinue }) {\n const classes = useStyles()\n const commissionClasses = useCommissionStyles()\n const { data } = useQuery(GET_DATA)\n\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n onCompleted: doContinue\n })\n\n const save = it => {\n const config = toNamespace('commissions')(it.commissions[0])\n return saveConfig({ variables: { config } })\n }\n\n const currency = R.path(['fiatCurrency'])(\n fromNamespace(namespaces.LOCALE)(data?.config)\n )\n\n const locale = fromNamespace(namespaces.LOCALE)(data?.config)\n\n return (\n \n \n \n
\n )\n}\n\nexport default Commissions\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport Section from 'src/components/layout/Section'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport styles from 'src/pages/AddMachine/styles'\nimport {\n mainFields,\n localeDefaults as defaults,\n LocaleSchema as schema\n} from 'src/pages/Locales/helper'\nimport { toNamespace } from 'src/utils/config'\n\nimport { getConfiguredCoins } from '../helper'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_DATA = gql`\n query getData {\n config\n accounts\n currencies {\n code\n display\n }\n countries {\n code\n display\n }\n cryptoCurrencies {\n code\n display\n }\n languages {\n code\n display\n }\n machines {\n name\n deviceId\n }\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nfunction Locales({ isActive, doContinue }) {\n const classes = useStyles()\n const { data } = useQuery(GET_DATA)\n\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n onCompleted: doContinue\n })\n\n const save = it => {\n const config = toNamespace('locale')(it.locale[0])\n return saveConfig({ variables: { config } })\n }\n\n const cryptoCurrencies = getConfiguredCoins(\n data?.config || {},\n data?.cryptoCurrencies || []\n )\n\n const onChangeCoin = (prev, curr, setValue) => setValue(curr)\n\n return (\n \n \n \n
\n )\n}\n\nexport default Locales\n","import { Box, makeStyles } from '@material-ui/core'\nimport React from 'react'\n\nimport { Label1 } from 'src/components/typography'\nimport { ReactComponent as WarningIcon } from 'src/styling/icons/warning-icon/comet.svg'\n\nconst useStyles = makeStyles({\n message: ({ width }) => ({\n width,\n marginTop: 4,\n marginLeft: 16\n })\n})\n\nconst InfoMessage = ({ children, width = 330, className }) => {\n const classes = useStyles({ width })\n\n return (\n \n \n {children} \n \n )\n}\n\nexport default InfoMessage\n","import { makeStyles, Grid } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { Formik, Form, FastField } from 'formik'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport { Button } from 'src/components/buttons'\nimport { SecretInput } from 'src/components/inputs/formik'\nimport { spacer } from 'src/styling/variables'\n\nconst styles = {\n footer: {\n display: 'flex',\n flexDirection: 'row',\n margin: [['auto', 0, spacer * 4, 0]]\n },\n button: {\n margin: [['auto', 0, 0, 'auto']]\n },\n form: {\n flex: 1,\n display: 'flex',\n flexDirection: 'column'\n },\n grid: {\n marginBottom: 24,\n marginTop: 12\n }\n}\n\nconst useStyles = makeStyles(styles)\nconst FormRenderer = ({\n validationSchema,\n elements,\n value,\n save,\n buttonLabel = 'Save changes',\n buttonClass,\n xs = 12\n}) => {\n const classes = useStyles()\n\n const initialValues = R.compose(\n R.mergeAll,\n R.map(({ code }) => ({ [code]: (value && value[code]) ?? '' }))\n )(elements)\n\n const values = R.merge(initialValues, value)\n\n const saveNonEmptySecret = it => {\n const emptySecretFields = R.compose(\n R.map(R.prop('code')),\n R.filter(\n elem =>\n R.prop('component', elem) === SecretInput &&\n R.isEmpty(it[R.prop('code', elem)])\n )\n )(elements)\n return save(R.omit(emptySecretFields, it))\n }\n\n return (\n \n {({ errors }) => (\n \n )}\n \n )\n}\n\nexport default FormRenderer\n","import * as R from 'ramda'\r\n\r\nconst secretTest = secret => ({\r\n test(val) {\r\n if (R.isNil(secret) && R.isNil(val)) {\r\n return this.createError()\r\n }\r\n return true\r\n }\r\n})\r\n\r\nconst leadingZerosTest = (value, context) => {\r\n if (\r\n R.startsWith('0', context.originalValue) &&\r\n R.length(context.originalValue) > 1\r\n ) {\r\n return context.createError()\r\n }\r\n return true\r\n}\r\n\r\nexport { secretTest, leadingZerosTest }\r\n","import * as Yup from 'yup'\n\nimport SecretInputFormik from 'src/components/inputs/formik/SecretInput'\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\n\nimport { secretTest } from './helper'\n\nexport default {\n code: 'twilio',\n name: 'Twilio',\n title: 'Twilio (SMS)',\n elements: [\n {\n code: 'accountSid',\n display: 'Account SID',\n component: TextInputFormik\n },\n {\n code: 'authToken',\n display: 'Auth Token',\n component: SecretInputFormik\n },\n {\n code: 'fromNumber',\n display: 'Twilio Number (international format)',\n component: TextInputFormik,\n face: true\n },\n {\n code: 'toNumber',\n display: 'Notifications Number (international format)',\n component: TextInputFormik,\n face: true\n }\n ],\n getValidationSchema: account => {\n return Yup.object().shape({\n accountSid: Yup.string('The account SID must be a string')\n .max(100, 'The account SID is too long')\n .required('The account SID is required'),\n authToken: Yup.string('The auth token must be a string')\n .max(100, 'The auth token is too long')\n .test(secretTest(account?.authToken)),\n fromNumber: Yup.string('The from number must be a string')\n .max(100, 'The from number is too long')\n .required('The from number is required'),\n toNumber: Yup.string('The to number must be a string')\n .max(100, 'The to number is too long')\n .required('The to number is required')\n })\n }\n}\n","import { errorColor, spacer, primaryColor } from 'src/styling/variables'\n\nconst LABEL_WIDTH = 150\n\nexport default {\n radioGroup: {\n flexDirection: 'row',\n width: 600\n },\n radioLabel: {\n width: LABEL_WIDTH,\n height: 48\n },\n mdForm: {\n width: 385\n },\n infoMessage: {\n display: 'flex',\n marginBottom: 20,\n '& > p': {\n width: 330,\n marginTop: 4,\n marginLeft: 16\n }\n },\n actionButton: {\n marginBottom: spacer * 4\n },\n actionButtonLink: {\n textDecoration: 'none',\n color: primaryColor\n },\n error: {\n color: errorColor\n },\n button: {\n marginTop: spacer * 5\n },\n formButton: {\n margin: [[spacer * 3, 0, 0]]\n }\n}\n","import { useMutation, useQuery } from '@apollo/react-hooks'\nimport { makeStyles, Box } from '@material-ui/core'\nimport classnames from 'classnames'\nimport gql from 'graphql-tag'\nimport React, { useState } from 'react'\n\nimport InfoMessage from 'src/components/InfoMessage'\nimport { HoverableTooltip } from 'src/components/Tooltip'\nimport { Button, SupportLinkButton } from 'src/components/buttons'\nimport { RadioGroup } from 'src/components/inputs'\nimport { H1, H4, P } from 'src/components/typography'\nimport FormRenderer from 'src/pages/Services/FormRenderer'\nimport twilio from 'src/pages/Services/schemas/twilio'\n\nimport styles from './Wallet/Shared.styles'\n\nconst GET_CONFIG = gql`\n {\n config\n accounts\n }\n`\n\nconst SAVE_ACCOUNTS = gql`\n mutation Save($accounts: JSONObject) {\n saveAccounts(accounts: $accounts)\n }\n`\n\nconst useStyles = makeStyles({\n ...styles,\n content: {\n width: 820\n },\n radioLabel: {\n ...styles.radioLabel,\n width: 280\n },\n wrapper: {\n width: 1200,\n height: 100,\n margin: [[0, 'auto']]\n },\n title: {\n marginLeft: 8,\n marginBottom: 5\n },\n info: {\n marginTop: 20,\n marginBottom: 20\n }\n})\n\nconst options = [\n {\n code: 'enable',\n display: 'Yes, I will'\n },\n {\n code: 'disable',\n display: 'No, not for now'\n }\n]\n\nfunction Twilio({ doContinue }) {\n const classes = useStyles()\n const [selected, setSelected] = useState(null)\n const [error, setError] = useState(false)\n\n const { data, refetch } = useQuery(GET_CONFIG)\n const [saveAccounts] = useMutation(SAVE_ACCOUNTS, {\n onCompleted: doContinue\n })\n\n const accounts = data?.accounts ?? []\n\n const onSelect = e => {\n setSelected(e.target.value)\n setError(false)\n }\n\n const clickContinue = () => {\n if (!selected) return setError(true)\n doContinue()\n }\n\n const save = twilio => {\n const accounts = { twilio }\n return saveAccounts({ variables: { accounts } }).then(() => refetch())\n }\n\n const titleClasses = {\n [classes.title]: true,\n [classes.error]: error\n }\n\n return (\n \n
\n
Twilio (SMS service) \n
\n \n Will you setup a two way machine or compliance?\n \n \n \n Two-way machines allow your customers not only to buy (cash-in)\n but also sell cryptocurrencies (cash-out).\n
\n \n You’ll need an SMS service for cash-out transactions and for any\n compliance triggers\n
\n \n \n\n
\n\n
\n To set up Twilio please read the instructions from our support portal.\n \n
\n\n {selected === 'enable' && (\n <>\n
Enter credentials \n
\n >\n )}\n {selected !== 'enable' && (\n
\n Continue\n \n )}\n
\n
\n )\n}\n\nexport default Twilio\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport { utils as coinUtils } from 'lamassu-coins'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { Button } from 'src/components/buttons'\nimport { NamespacedTable as EditableTable } from 'src/components/editableTable'\nimport { P, H4 } from 'src/components/typography'\nimport { getElements, WalletSchema } from 'src/pages/Wallet/helper'\nimport { toNamespace, namespaces } from 'src/utils/config'\n\nimport styles from './Shared.styles'\n\nconst useStyles = makeStyles(styles)\nconst GET_INFO = gql`\n query getData {\n config\n accounts\n accountsConfig {\n code\n display\n class\n cryptos\n }\n cryptoCurrencies {\n code\n display\n }\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject, $accounts: JSONObject) {\n saveConfig(config: $config)\n saveAccounts(accounts: $accounts)\n }\n`\n\nconst AllSet = ({ data: currentData, doContinue }) => {\n const classes = useStyles()\n\n const { data } = useQuery(GET_INFO)\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n onCompleted: doContinue\n })\n\n const [error, setError] = useState(false)\n\n const coin = currentData?.coin\n\n const accountsConfig = data?.accountsConfig\n const cryptoCurrencies = data?.cryptoCurrencies ?? []\n\n const save = () => {\n const defaultCryptoUnit = R.head(\n R.keys(coinUtils.getCryptoCurrency(coin).units)\n )\n const adjustedData = {\n zeroConfLimit: 0,\n ...currentData,\n cryptoUnits: defaultCryptoUnit\n }\n if (!WalletSchema.isValidSync(adjustedData)) return setError(true)\n\n const withCoin = toNamespace(coin, R.omit('coin', adjustedData))\n const config = toNamespace(namespaces.WALLETS)(withCoin)\n setError(false)\n return saveConfig({ variables: { config } })\n }\n\n return (\n <>\n All set \n \n These are your wallet settings. You can later edit these and add\n additional coins.\n
\n \n \n Continue\n \n >\n )\n}\n\nexport default AllSet\n","import * as Yup from 'yup'\n\nimport SecretInputFormik from 'src/components/inputs/formik/SecretInput'\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\n\nimport { secretTest } from './helper'\n\nexport default {\n code: 'binanceus',\n name: 'Binance.us',\n title: 'Binance.us (Exchange)',\n elements: [\n {\n code: 'apiKey',\n display: 'API Key',\n component: TextInputFormik,\n face: true,\n long: true\n },\n {\n code: 'privateKey',\n display: 'Private Key',\n component: SecretInputFormik\n }\n ],\n getValidationSchema: account => {\n return Yup.object().shape({\n apiKey: Yup.string('The API key must be a string')\n .max(100, 'The API key is too long')\n .required('The API key is required'),\n privateKey: Yup.string('The private key must be a string')\n .max(100, 'The private key is too long')\n .test(secretTest(account?.privateKey))\n })\n }\n}\n","import * as Yup from 'yup'\n\nimport {\n TextInput,\n SecretInput,\n Autocomplete\n} from 'src/components/inputs/formik'\n\nimport { secretTest } from './helper'\n\nconst isDefined = it => it && it.length\n\nconst buildTestValidation = (id, passphrase) => {\n return Yup.string()\n .max(100, 'Too long')\n .when(id, {\n is: isDefined,\n then: Yup.string().test(secretTest(passphrase))\n })\n}\n\nexport default {\n code: 'bitgo',\n name: 'BitGo',\n title: 'BitGo (Wallet)',\n elements: [\n {\n code: 'token',\n display: 'API Token',\n component: TextInput,\n face: true,\n long: true\n },\n {\n code: 'environment',\n display: 'Environment',\n component: Autocomplete,\n inputProps: {\n options: [\n { code: 'prod', display: 'prod' },\n { code: 'test', display: 'test' }\n ],\n labelProp: 'display',\n valueProp: 'code'\n },\n face: true\n },\n {\n code: 'BTCWalletId',\n display: 'BTC Wallet ID',\n component: TextInput\n },\n {\n code: 'BTCWalletPassphrase',\n display: 'BTC Wallet Passphrase',\n component: SecretInput\n },\n {\n code: 'LTCWalletId',\n display: 'LTC Wallet ID',\n component: TextInput\n },\n {\n code: 'LTCWalletPassphrase',\n display: 'LTC Wallet Passphrase',\n component: SecretInput\n },\n {\n code: 'ZECWalletId',\n display: 'ZEC Wallet ID',\n component: TextInput\n },\n {\n code: 'ZECWalletPassphrase',\n display: 'ZEC Wallet Passphrase',\n component: SecretInput\n },\n {\n code: 'BCHWalletId',\n display: 'BCH Wallet ID',\n component: TextInput\n },\n {\n code: 'BCHWalletPassphrase',\n display: 'BCH Wallet Passphrase',\n component: SecretInput\n },\n {\n code: 'DASHWalletId',\n display: 'DASH Wallet ID',\n component: TextInput\n },\n {\n code: 'DASHWalletPassphrase',\n display: 'DASH Wallet Passphrase',\n component: SecretInput\n }\n ],\n getValidationSchema: account => {\n return Yup.object().shape({\n token: Yup.string('The token must be a string')\n .max(100, 'The token is too long')\n .required('The token is required'),\n BTCWalletId: Yup.string('The BTC wallet ID must be a string').max(\n 100,\n 'The BTC wallet ID is too long'\n ),\n BTCWalletPassphrase: buildTestValidation(\n 'BTCWalletId',\n account?.BTCWalletPassphrase\n ),\n LTCWalletId: Yup.string('The LTC wallet ID must be a string').max(\n 100,\n 'The LTC wallet ID is too long'\n ),\n LTCWalletPassphrase: buildTestValidation(\n 'LTCWalletId',\n account?.LTCWalletPassphrase\n ),\n ZECWalletId: Yup.string('The ZEC wallet ID must be a string').max(\n 100,\n 'The ZEC wallet ID is too long'\n ),\n ZECWalletPassphrase: buildTestValidation(\n 'ZECWalletId',\n account?.ZECWalletPassphrase\n ),\n BCHWalletId: Yup.string('The BCH wallet ID must be a string').max(\n 100,\n 'The BCH wallet ID is too long'\n ),\n BCHWalletPassphrase: buildTestValidation(\n 'BCHWalletId',\n account?.BCHWalletPassphrase\n ),\n DASHWalletId: Yup.string('The DASH wallet ID must be a string').max(\n 100,\n 'The DASH wallet ID is too long'\n ),\n DASHWalletPassphrase: buildTestValidation(\n 'DASHWalletId',\n account?.DASHWalletPassphrase\n ),\n environment: Yup.string('The environment must be a string')\n .matches(/(prod|test)/)\n .required('The environment is required')\n })\n }\n}\n","import * as Yup from 'yup'\n\nimport SecretInputFormik from 'src/components/inputs/formik/SecretInput'\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\n\nimport { secretTest } from './helper'\n\nexport default {\n code: 'bitstamp',\n name: 'Bitstamp',\n title: 'Bitstamp (Exchange)',\n elements: [\n {\n code: 'clientId',\n display: 'Client ID',\n component: TextInputFormik,\n face: true,\n long: true\n },\n {\n code: 'key',\n display: 'API Key',\n component: TextInputFormik,\n face: true,\n long: true\n },\n {\n code: 'secret',\n display: 'API Secret',\n component: SecretInputFormik\n }\n ],\n getValidationSchema: account => {\n return Yup.object().shape({\n clientId: Yup.string('The client ID must be a string')\n .max(100, 'The client ID is too long')\n .required('The client ID is required'),\n key: Yup.string('The key must be a string')\n .max(100, 'The key is too long')\n .required('The key is required'),\n secret: Yup.string('The secret must be a string')\n .max(100, 'The secret is too long')\n .test(secretTest(account?.secret))\n })\n }\n}\n","import * as Yup from 'yup'\n\nimport CheckboxInput from 'src/components/inputs/formik/Checkbox'\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\n\nexport default {\n code: 'blockcypher',\n name: 'Blockcypher',\n title: 'Blockcypher (Payments)',\n elements: [\n {\n code: 'token',\n display: 'API Token',\n component: TextInputFormik,\n face: true,\n long: true\n },\n {\n code: 'confidenceFactor',\n display: 'Confidence Factor',\n component: TextInputFormik,\n face: true\n },\n {\n code: 'rbf',\n component: CheckboxInput,\n settings: {\n field: 'wallets_BTC_wallet',\n enabled: true,\n disabledMessage:\n 'Lower the confidence of RBF transactions (Available when using bitcoind.)',\n label: 'Lower the confidence of RBF transactions',\n requirement: 'bitcoind',\n rightSideLabel: true\n },\n face: true\n }\n ],\n getValidationSchema: () => {\n return Yup.object().shape({\n token: Yup.string('The token must be a string')\n .max(100, 'The token is too long')\n .required('The token is required'),\n confidenceFactor: Yup.number('The confidence factor must be a number')\n .integer('The confidence factor must be an integer')\n .positive('The confidence factor must be positive')\n .required('The confidence factor is required')\n })\n }\n}\n","import * as Yup from 'yup'\n\nimport SecretInputFormik from 'src/components/inputs/formik/SecretInput'\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\n\nimport { secretTest } from './helper'\n\nexport default {\n code: 'cex',\n name: 'Cex',\n title: 'Cex (Exchange)',\n elements: [\n {\n code: 'apiKey',\n display: 'API Key',\n component: TextInputFormik,\n face: true,\n long: true\n },\n {\n code: 'privateKey',\n display: 'Private Key',\n component: SecretInputFormik\n }\n ],\n getValidationSchema: account => {\n return Yup.object().shape({\n apiKey: Yup.string('The API key must be a string')\n .max(100, 'The API key is too long')\n .required('The API key is required'),\n privateKey: Yup.string('The private key must be a string')\n .max(100, 'The private key is too long')\n .test(secretTest(account?.privateKey))\n })\n }\n}\n","import * as Yup from 'yup'\n\nimport CheckboxFormik from 'src/components/inputs/formik/Checkbox'\nimport NumberInputFormik from 'src/components/inputs/formik/NumberInput'\nimport SecretInputFormik from 'src/components/inputs/formik/SecretInput'\n\nimport { secretTest, leadingZerosTest } from './helper'\n\nexport default {\n code: 'ciphertrace',\n name: 'CipherTrace',\n title: 'CipherTrace (Scoring)',\n elements: [\n {\n code: 'authorizationValue',\n display: 'Authorization value',\n component: SecretInputFormik\n },\n {\n code: 'scoreThreshold',\n display: 'Score threshold',\n component: NumberInputFormik,\n face: true,\n long: false\n },\n {\n code: 'enabled',\n component: CheckboxFormik,\n settings: {\n enabled: true,\n disabledMessage: 'This plugin is disabled',\n label: 'Enabled',\n requirement: null\n },\n face: true\n }\n ],\n getValidationSchema: account => {\n return Yup.object().shape({\n authorizationValue: Yup.string('The authorization value must be a string')\n .max(100, 'Too long')\n .test(secretTest(account?.authorizationValue)),\n scoreThreshold: Yup.number('The score threshold must be a number')\n .required('A score threshold is required')\n .min(1, 'The score threshold must be between 1 and 10')\n .max(10, 'The score threshold must be between 1 and 10')\n .integer('The score threshold must be an integer')\n .test(\n 'no-leading-zeros',\n 'The score threshold must not have leading zeros',\n leadingZerosTest\n )\n })\n }\n}\n","import * as Yup from 'yup'\n\nimport SecretInputFormik from 'src/components/inputs/formik/SecretInput'\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\n\nimport { secretTest } from './helper'\n\nexport default {\n code: 'ftx',\n name: 'Ftx',\n title: 'Ftx (Exchange)',\n elements: [\n {\n code: 'apiKey',\n display: 'API Key',\n component: TextInputFormik,\n face: true,\n long: true\n },\n {\n code: 'privateKey',\n display: 'Private Key',\n component: SecretInputFormik\n }\n ],\n getValidationSchema: account => {\n return Yup.object().shape({\n apiKey: Yup.string('The API key must be a string')\n .max(100, 'The API key is too long')\n .required('The API key is required'),\n privateKey: Yup.string('The private key must be a string')\n .max(100, 'The private key is too long')\n .test(secretTest(account?.privateKey))\n })\n }\n}\n","import * as Yup from 'yup'\n\nimport SecretInputFormik from 'src/components/inputs/formik/SecretInput'\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\n\nimport { secretTest } from './helper'\n\nexport default {\n code: 'infura',\n name: 'Infura',\n title: 'Infura (Wallet)',\n elements: [\n {\n code: 'apiKey',\n display: 'Project ID',\n component: TextInputFormik,\n face: true,\n long: true\n },\n {\n code: 'apiSecret',\n display: 'Project Secret',\n component: SecretInputFormik\n },\n {\n code: 'endpoint',\n display: 'Endpoint',\n component: TextInputFormik,\n face: true\n }\n ],\n getValidationSchema: account => {\n return Yup.object().shape({\n apiKey: Yup.string('The API key must be a string')\n .max(100, 'The API key is too long')\n .required('The API key is required'),\n apiSecret: Yup.string('The API secret must be a string')\n .max(100, 'The API secret is too long')\n .test(secretTest(account?.apiSecret)),\n endpoint: Yup.string('The endpoint must be a string')\n .max(100, 'The endpoint is too long')\n .required('The endpoint is required')\n })\n }\n}\n","import * as Yup from 'yup'\n\nimport SecretInputFormik from 'src/components/inputs/formik/SecretInput'\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\n\nimport { secretTest } from './helper'\n\nexport default {\n code: 'itbit',\n name: 'itBit',\n title: 'itBit (Exchange)',\n elements: [\n {\n code: 'userId',\n display: 'User ID',\n component: TextInputFormik,\n face: true,\n long: true\n },\n {\n code: 'walletId',\n display: 'Wallet ID',\n component: TextInputFormik,\n face: true,\n long: true\n },\n {\n code: 'clientKey',\n display: 'Client Key',\n component: TextInputFormik\n },\n {\n code: 'clientSecret',\n display: 'Client Secret',\n component: SecretInputFormik\n }\n ],\n getValidationSchema: account => {\n return Yup.object().shape({\n userId: Yup.string('The user ID must be a string')\n .max(100, 'The user ID is too long')\n .required('The user ID is required'),\n walletId: Yup.string('The wallet ID must be a string')\n .max(100, 'The wallet ID is too long')\n .required('The wallet ID is required'),\n clientKey: Yup.string('The client key must be a string')\n .max(100, 'The client key is too long')\n .required('The client key is required'),\n clientSecret: Yup.string('The client secret must be a string')\n .max(100, 'The client secret is too long')\n .test(secretTest(account?.clientSecret))\n })\n }\n}\n","import * as Yup from 'yup'\n\nimport SecretInputFormik from 'src/components/inputs/formik/SecretInput'\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\n\nimport { secretTest } from './helper'\n\nexport default {\n code: 'kraken',\n name: 'Kraken',\n title: 'Kraken (Exchange)',\n elements: [\n {\n code: 'apiKey',\n display: 'API Key',\n component: TextInputFormik,\n face: true,\n long: true\n },\n {\n code: 'privateKey',\n display: 'Private Key',\n component: SecretInputFormik\n }\n ],\n getValidationSchema: account => {\n return Yup.object().shape({\n apiKey: Yup.string('The API key must be a string')\n .max(100, 'The API key is too long')\n .required('The API key is required'),\n privateKey: Yup.string('The private key must be a string')\n .max(100, 'The private key is too long')\n .test(secretTest(account?.privateKey))\n })\n }\n}\n","import * as Yup from 'yup'\n\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\n\nexport default {\n code: 'mailgun',\n name: 'Mailgun',\n title: 'Mailgun (Email)',\n elements: [\n {\n code: 'apiKey',\n display: 'API Key',\n component: TextInputFormik\n },\n {\n code: 'domain',\n display: 'Domain',\n component: TextInputFormik\n },\n {\n code: 'fromEmail',\n display: 'From Email',\n component: TextInputFormik,\n face: true\n },\n {\n code: 'toEmail',\n display: 'To Email',\n component: TextInputFormik,\n face: true\n }\n ],\n getValidationSchema: () => {\n return Yup.object().shape({\n apiKey: Yup.string('The API key must be a string')\n .max(100, 'The API key is too long')\n .required('The API key is required'),\n domain: Yup.string('The domain must be a string')\n .max(100, 'The domain is too long')\n .required('The domain is required'),\n fromEmail: Yup.string('The from email must be a string')\n .max(100, 'The from email is too long')\n .email('The from email must be a valid email address')\n .required('The from email is required'),\n toEmail: Yup.string('The to email must be a string')\n .max(100, 'The to email is too long')\n .email('The to email must be a valid email address')\n .required('The to email is required')\n })\n }\n}\n","import binanceus from './binanceus'\nimport bitgo from './bitgo'\nimport bitstamp from './bitstamp'\nimport blockcypher from './blockcypher'\nimport cex from './cex'\nimport ciphertrace from './ciphertrace'\nimport ftx from './ftx'\nimport infura from './infura'\nimport itbit from './itbit'\nimport kraken from './kraken'\nimport mailgun from './mailgun'\nimport twilio from './twilio'\n\nexport default {\n [bitgo.code]: bitgo,\n [bitstamp.code]: bitstamp,\n [blockcypher.code]: blockcypher,\n [infura.code]: infura,\n [itbit.code]: itbit,\n [kraken.code]: kraken,\n [mailgun.code]: mailgun,\n [twilio.code]: twilio,\n [binanceus.code]: binanceus,\n [cex.code]: cex,\n [ftx.code]: ftx,\n [ciphertrace.code]: ciphertrace\n}\n","import { useMutation, useQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport React, { useState } from 'react'\n\nimport { SupportLinkButton, Button } from 'src/components/buttons'\nimport { RadioGroup } from 'src/components/inputs'\nimport { P, H4 } from 'src/components/typography'\nimport FormRenderer from 'src/pages/Services/FormRenderer'\nimport schema from 'src/pages/Services/schemas'\n\nimport styles from './Shared.styles'\n\nconst useStyles = makeStyles({\n ...styles,\n radioGroup: styles.radioGroup,\n radioLabel: {\n ...styles.radioLabel,\n width: 200\n }\n})\n\nconst GET_CONFIG = gql`\n {\n accounts\n }\n`\nconst SAVE_ACCOUNTS = gql`\n mutation SaveAccountsBC($accounts: JSONObject) {\n saveAccounts(accounts: $accounts)\n }\n`\n\nconst options = [\n {\n code: 'enable',\n display: 'I will enable cash-out'\n },\n {\n code: 'disable',\n display: \"I won't enable cash-out\"\n }\n]\n\nconst Blockcypher = ({ addData }) => {\n const classes = useStyles()\n\n const { data } = useQuery(GET_CONFIG)\n const [saveConfig] = useMutation(SAVE_ACCOUNTS, {\n onCompleted: () => addData({ zeroConf: 'blockcypher' })\n })\n\n const [selected, setSelected] = useState(null)\n const [error, setError] = useState(false)\n\n const accounts = data?.accounts ?? []\n\n const onSelect = e => {\n setSelected(e.target.value)\n setError(false)\n }\n\n const save = blockcypher => {\n const accounts = { blockcypher }\n return saveConfig({ variables: { accounts } })\n }\n\n return (\n <>\n Blockcypher \n \n If you are enabling cash-out services, create a Blockcypher account.\n
\n \n \n \n {selected === 'disable' && (\n addData({ zeroConf: 'none', zeroConfLimit: 0 })}\n className={classes.button}>\n Continue\n \n )}\n {selected === 'enable' && (\n \n )}\n
\n >\n )\n}\n\nexport default Blockcypher\n","import { useQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport { Formik, Form, Field } from 'formik'\nimport gql from 'graphql-tag'\nimport React, { useState } from 'react'\nimport * as Yup from 'yup'\n\nimport PromptWhenDirty from 'src/components/PromptWhenDirty'\nimport { Button } from 'src/components/buttons'\nimport { RadioGroup } from 'src/components/inputs/formik'\nimport { H4 } from 'src/components/typography'\n\nimport styles from './Shared.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_CONFIG = gql`\n {\n cryptoCurrencies {\n code\n display\n }\n }\n`\n\nconst schema = Yup.object().shape({\n coin: Yup.string().required()\n})\n\nconst ChooseCoin = ({ addData }) => {\n const classes = useStyles()\n const [error, setError] = useState(false)\n\n const { data } = useQuery(GET_CONFIG)\n const cryptoCurrencies = data?.cryptoCurrencies ?? []\n\n const onSubmit = it => {\n if (!schema.isValidSync(it)) return setError(true)\n\n if (it.coin !== 'BTC') {\n return addData({ coin: it.coin, zeroConf: 'none', zeroConfLimit: 0 })\n }\n\n addData(it)\n }\n\n return (\n <>\n \n Choose your first cryptocurrency\n \n\n \n \n \n >\n )\n}\n\nexport default ChooseCoin\n","import * as R from 'ramda'\n\nimport schema from 'src/pages/Services/schemas'\nconst contains = crypto => R.compose(R.contains(crypto), R.prop('cryptos'))\nconst sameClass = type => R.propEq('class', type)\nconst filterConfig = (crypto, type) =>\n R.filter(it => sameClass(type)(it) && contains(crypto)(it))\nexport const getItems = (accountsConfig, accounts, type, crypto) => {\n const fConfig = filterConfig(crypto, type)(accountsConfig)\n const find = code => accounts && accounts[code]\n\n const [filled, unfilled] = R.partition(({ code }) => {\n const account = find(code)\n if (!schema[code]) return true\n\n const { getValidationSchema } = schema[code]\n return getValidationSchema(account).isValidSync(account)\n })(fConfig)\n\n return { filled, unfilled }\n}\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { Button, SupportLinkButton } from 'src/components/buttons'\nimport { RadioGroup } from 'src/components/inputs'\nimport { H4, Info3 } from 'src/components/typography'\nimport FormRenderer from 'src/pages/Services/FormRenderer'\nimport schema from 'src/pages/Services/schemas'\nimport { ReactComponent as WarningIcon } from 'src/styling/icons/warning-icon/comet.svg'\n\nimport styles from './Shared.styles'\nimport { getItems } from './getItems'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_CONFIG = gql`\n {\n accounts\n accountsConfig {\n code\n display\n class\n cryptos\n }\n cryptoCurrencies {\n code\n display\n }\n }\n`\n\nconst SAVE_ACCOUNTS = gql`\n mutation Save($accounts: JSONObject) {\n saveAccounts(accounts: $accounts)\n }\n`\n\nconst isConfigurable = it =>\n !R.isNil(it) && !R.contains(it)(['mock-exchange', 'no-exchange'])\n\nconst ChooseExchange = ({ data: currentData, addData }) => {\n const classes = useStyles()\n const { data } = useQuery(GET_CONFIG)\n const [saveAccounts] = useMutation(SAVE_ACCOUNTS, {\n onCompleted: () => submit()\n })\n\n const [selected, setSelected] = useState(null)\n const [error, setError] = useState(false)\n\n const accounts = data?.accounts ?? []\n const accountsConfig = data?.accountsConfig ?? []\n\n const coin = currentData.coin\n const exchanges = getItems(accountsConfig, accounts, 'exchange', coin)\n\n const submit = () => {\n if (!selected) return setError(true)\n addData({ exchange: selected })\n }\n\n const saveExchange = name => exchange => {\n const accounts = { [name]: exchange }\n return saveAccounts({ variables: { accounts } })\n }\n\n const onSelect = e => {\n setSelected(e.target.value)\n setError(false)\n }\n\n const supportArticles = {\n kraken:\n 'https://support.lamassu.is/hc/en-us/articles/115001206891-Kraken-trading',\n itbit:\n 'https://support.lamassu.is/hc/en-us/articles/360026195032-itBit-trading',\n bitstamp:\n 'https://support.lamassu.is/hc/en-us/articles/115001206911-Bitstamp-trading'\n }\n\n return (\n \n
Choose your exchange \n
\n {!isConfigurable(selected) && (\n
\n Continue\n \n )}\n {isConfigurable(selected) && (\n <>\n
\n \n \n Make sure you set up {schema[selected].name} to enter the\n necessary information below. Please follow the instructions on our\n support page if you haven’t.\n \n
\n
\n\n
Enter exchange information \n
\n >\n )}\n
\n )\n}\n\nexport default ChooseExchange\n","import { useQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { Button } from 'src/components/buttons'\nimport { RadioGroup } from 'src/components/inputs'\nimport { H4 } from 'src/components/typography'\n\nimport styles from './Shared.styles'\nimport { getItems } from './getItems'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_CONFIG = gql`\n {\n accountsConfig {\n code\n display\n class\n cryptos\n }\n }\n`\n\nconst ChooseTicker = ({ data: currentData, addData }) => {\n const classes = useStyles()\n const { data } = useQuery(GET_CONFIG)\n\n const [selected, setSelected] = useState(null)\n const [error, setError] = useState(false)\n\n const accounts = data?.accounts ?? []\n const accountsConfig = data?.accountsConfig ?? []\n\n const coin = currentData.coin\n const tickers = getItems(accountsConfig, accounts, 'ticker', coin)\n\n const submit = () => {\n if (!selected) return setError(true)\n addData({ ticker: selected })\n }\n\n const onSelect = e => {\n setSelected(e.target.value)\n setError(false)\n }\n\n return (\n \n
Choose your ticker \n \n \n Continue\n \n \n )\n}\n\nexport default ChooseTicker\n","import * as Yup from 'yup'\n\nimport {\n TextInput,\n SecretInput,\n Autocomplete\n} from 'src/components/inputs/formik'\n\nconst singleBitgo = code => ({\n code: 'bitgo',\n name: 'BitGo',\n title: 'BitGo (Wallet)',\n elements: [\n {\n code: 'token',\n display: 'API Token',\n component: TextInput,\n face: true,\n long: true\n },\n {\n code: 'environment',\n display: 'Environment',\n component: Autocomplete,\n inputProps: {\n options: [\n { code: 'prod', display: 'prod' },\n { code: 'test', display: 'test' }\n ],\n labelProp: 'display',\n valueProp: 'code'\n },\n face: true\n },\n {\n code: `${code}WalletId`,\n display: `${code} Wallet ID`,\n component: TextInput\n },\n {\n code: `${code}WalletPassphrase`,\n display: `${code} Wallet Passphrase`,\n component: SecretInput\n }\n ],\n validationSchema: Yup.object().shape({\n token: Yup.string('The token must be a string')\n .max(100, 'The token is too long')\n .required('The token is required'),\n environment: Yup.string('The environment must be a string')\n .matches(/(prod|test)/)\n .required('The environment is required'),\n [`${code}WalletId`]: Yup.string(`The ${code} wallet ID must be a string`)\n .max(100, `The ${code} wallet ID is too long`)\n .required(`The ${code} wallet ID is required`),\n [`${code}WalletPassphrase`]: Yup.string(\n `The ${code} passphrase must be a string`\n )\n .max(100, `The ${code} wallet passphrase is too long`)\n .required(`The ${code} wallet passphrase is required`)\n })\n})\n\nexport default singleBitgo\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { Button, SupportLinkButton } from 'src/components/buttons'\nimport { RadioGroup } from 'src/components/inputs'\nimport { H4, Info3 } from 'src/components/typography'\nimport FormRenderer from 'src/pages/Services/FormRenderer'\nimport schema from 'src/pages/Services/schemas'\nimport bitgo from 'src/pages/Services/schemas/singlebitgo'\nimport { ReactComponent as WarningIcon } from 'src/styling/icons/warning-icon/comet.svg'\n\nimport styles from './Shared.styles'\nimport { getItems } from './getItems'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_CONFIG = gql`\n {\n accounts\n accountsConfig {\n code\n display\n class\n cryptos\n }\n cryptoCurrencies {\n code\n display\n }\n }\n`\n\nconst SAVE_ACCOUNTS = gql`\n mutation Save($accounts: JSONObject) {\n saveAccounts(accounts: $accounts)\n }\n`\n\nconst isConfigurable = it => R.contains(it)(['infura', 'bitgo'])\n\nconst isLocalHosted = it =>\n R.contains(it)([\n 'bitcoind',\n 'geth',\n 'litecoind',\n 'dashd',\n 'zcashd',\n 'bitcoincashd'\n ])\n\nconst ChooseWallet = ({ data: currentData, addData }) => {\n const classes = useStyles()\n const { data } = useQuery(GET_CONFIG)\n const [saveAccounts] = useMutation(SAVE_ACCOUNTS, {\n onCompleted: () => submit()\n })\n\n const [selected, setSelected] = useState(null)\n const [error, setError] = useState(false)\n\n const accounts = data?.accounts ?? []\n const accountsConfig = data?.accountsConfig ?? []\n\n const coin = currentData.coin\n const wallets = getItems(accountsConfig, accounts, 'wallet', coin)\n\n const saveWallet = name => wallet => {\n const accounts = { [name]: wallet }\n return saveAccounts({ variables: { accounts } })\n }\n\n const submit = () => {\n if (!selected) return setError(true)\n addData({ wallet: selected })\n }\n\n const onSelect = e => {\n setSelected(e.target.value)\n setError(false)\n }\n\n return (\n \n
Choose your wallet \n
\n {isLocalHosted(selected) && (\n <>\n
\n \n \n To set up {selected} please read the node wallet instructions from\n our support portal.\n \n
\n
\n >\n )}\n {!isConfigurable(selected) && (\n
\n Continue\n \n )}\n {selected === 'bitgo' && (\n <>\n
\n \n \n Make sure you set up a BitGo wallet to enter the necessary\n information below. Please follow the instructions on our support\n page if you haven’t.\n \n
\n
\n
Enter wallet information \n
\n >\n )}\n {selected === 'infura' && (\n <>\n
Enter wallet information \n
\n >\n )}\n
\n )\n}\n\nexport default ChooseWallet\n","import { makeStyles } from '@material-ui/core'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport Sidebar, { Stepper } from 'src/components/layout/Sidebar'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport styles from 'src/pages/AddMachine/styles'\n\nimport AllSet from './AllSet'\nimport Blockcypher from './Blockcypher'\nimport ChooseCoin from './ChooseCoin'\nimport ChooseExchange from './ChooseExchange'\nimport ChooseTicker from './ChooseTicker'\nimport ChooseWallet from './ChooseWallet'\n\nconst useStyles = makeStyles(styles)\n\nconst steps = [\n {\n label: 'Choose cryptocurrency',\n component: ChooseCoin\n },\n {\n label: 'Choose wallet',\n component: ChooseWallet\n },\n {\n label: 'Choose ticker',\n component: ChooseTicker\n },\n {\n label: 'Exchange',\n component: ChooseExchange\n },\n {\n label: 'Blockcypher',\n component: Blockcypher\n },\n {\n label: 'All set',\n component: AllSet\n }\n]\n\nconst Wallet = ({ doContinue }) => {\n const [step, setStep] = useState(0)\n const [data, setData] = useState({})\n\n const classes = useStyles()\n const mySteps = data?.coin === 'BTC' ? steps : R.remove(4, 1, steps)\n\n const Component = mySteps[step].component\n\n const addData = it => {\n setData(R.merge(data, it))\n setStep(step + 1)\n }\n\n return (\n \n
\n \n
\n
\n
\n {mySteps.map((it, idx) => (\n \n ))}\n \n
\n \n
\n
\n
\n )\n}\n\nexport default Wallet\n","import { makeStyles } from '@material-ui/core'\nimport React from 'react'\n\nimport { Button } from 'src/components/buttons'\nimport { H1, P } from 'src/components/typography'\nimport { comet } from 'src/styling/variables'\n\nconst styles = {\n welcome: {\n textAlign: 'center',\n paddingTop: 256\n },\n title: {\n lineHeight: 1,\n fontSize: 48\n },\n getStarted: {\n fontSize: 24,\n fontWeight: 500,\n marginBottom: 54,\n color: comet\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nfunction Welcome({ doContinue }) {\n const classes = useStyles()\n\n return (\n \n
Welcome to the Lamassu Admin \n
\n To get you started, we’ve put together a wizard that will\n \n help set up what you need before pairing your machines.\n
\n
\n Get started\n \n
\n )\n}\n\nexport default Welcome\n","import * as R from 'ramda'\nimport React from 'react'\n\nimport { getSchema as CommissionsSchema } from 'src/pages/Commissions/helper'\nimport { LocaleSchema } from 'src/pages/Locales/helper'\nimport { WalletSchema } from 'src/pages/Wallet/helper'\nimport { fromNamespace, namespaces } from 'src/utils/config'\n\nimport Commissions from './components/Commissions'\nimport Locale from './components/Locales'\n// import Notifications from './components/Notifications'\n// import WizardOperatorInfo from './components/OperatorInfo'\nimport Twilio from './components/Twilio'\nimport Wallet from './components/Wallet/Wallet'\nimport Welcome from './components/Welcome'\n\nconst getConfiguredCoins = (config, crypto) => {\n const wallet = fromNamespace(namespaces.WALLETS, config)\n return R.filter(it =>\n WalletSchema.isValidSync(fromNamespace(it.code, wallet))\n )(crypto)\n}\n\nconst hasValidWallet = (config, crypto) => {\n const wallet = fromNamespace(namespaces.WALLETS, config)\n const coins = R.map(it => fromNamespace(it.code, wallet))(crypto)\n\n const hasValidConfig = R.compose(\n R.any(R.identity),\n R.map(it => WalletSchema.isValidSync(it))\n )(coins)\n\n return hasValidConfig\n}\n\nconst hasValidLocale = config => {\n const locale = fromNamespace(namespaces.LOCALE, config)\n return LocaleSchema.isValidSync(locale)\n}\n\nconst hasValidCommissions = config => {\n const commission = fromNamespace(namespaces.COMMISSIONS, config)\n const locale = fromNamespace(namespaces.LOCALE, config)\n return CommissionsSchema(locale).isValidSync(commission)\n}\n\nconst getWizardStep = (config, crypto) => {\n if (!config) return 0\n\n const validWallet = hasValidWallet(config, crypto)\n if (!validWallet) return 1\n\n const validLocale = hasValidLocale(config)\n if (!validLocale) return 2\n\n const validCommission = hasValidCommissions(config)\n if (!validCommission) return 3\n\n return 0\n}\n\nconst STEPS = [\n {\n id: 'welcome',\n Component: Welcome\n },\n {\n id: 'wallet',\n Component: Wallet,\n exImage: '/assets/wizard/fullexample.wallet.png',\n subtitle: 'Wallet settings',\n text: `Your wallet settings are the first step for this wizard. \n We'll start by setting up one of cryptocurrencies to get you up and running,\n but you can later set up as many as you want.`\n },\n {\n id: 'locale',\n Component: Locale,\n exImage: '/assets/wizard/fullexample.locale.png',\n subtitle: 'Locales',\n text: `From the Locales panel, you can define default settings\n that will be applied to all machines you add to your network later on.\n These settings may be overridden for specific machines in the Overrides section.`\n },\n {\n id: 'twilio',\n Component: Twilio,\n exImage: '/assets/wizard/fullexample.twilio.png',\n subtitle: 'Twilio (SMS service)',\n text: (\n <>\n Twilio is used for SMS operator notifications, phone number collection\n for compliance, and 1-confirmation redemptions on cash-out transactions.\n \n You'll need to configure Twilio if you're offering cash-out or any\n compliance options\n >\n )\n },\n {\n id: 'commissions',\n Component: Commissions,\n exImage: '/assets/wizard/fullexample.commissions.png',\n subtitle: 'Commissions',\n text: `From the Commissions page, you can define all the commissions of your\n machines. The values set here will be default values of all machines\n you'll later add to your network. Default settings keep you from\n having to enter the same values everytime you add a new machine. Once\n a machine is added, you may override these values per machine and per\n cryptocurrency in the overrides section.`\n }\n // {\n // id: 'notifications',\n // Component: Notifications,\n // exImage: '/assets/wizard/fullexample.notifications.png',\n // subtitle: 'Notifications',\n // text: `Your notification settings will allow customize what notifications you\n // get and where. You can later override all default balance alerts setup\n // here.`\n // },\n // {\n // id: 'operatorInfo',\n // Component: WizardOperatorInfo,\n // exImage: '/assets/wizard/fullexample.operatorinfo.png',\n // subtitle: 'Operator info',\n // text: `Your contact information is important for your customer to be able\n // to contact you in case there’s a problem with one of your machines.\n // In this page, you also be able to set up what you want to share with\n // Coin ATM Radar and add the Terms & Services text that is displayed by your machines.`\n // }\n]\n\nexport { getWizardStep, STEPS, getConfiguredCoins }\n","import { makeStyles, Drawer, Grid } from '@material-ui/core'\nimport classnames from 'classnames'\nimport React, { useState } from 'react'\n\nimport Modal from 'src/components/Modal'\nimport Stepper from 'src/components/Stepper'\nimport { Button, Link } from 'src/components/buttons'\nimport { P, H2, Info2 } from 'src/components/typography'\nimport { spacer } from 'src/styling/variables'\n\nconst useStyles = makeStyles(() => ({\n drawer: {\n borderTop: 'none',\n boxShadow: '0 0 4px 0 rgba(0, 0, 0, 0.08)'\n },\n wrapper: {\n padding: '32px 0',\n flexGrow: 1,\n height: 264\n },\n smallWrapper: {\n height: 84\n },\n title: {\n margin: [[0, spacer * 4, 0, 0]]\n },\n subtitle: {\n marginTop: spacer,\n marginBottom: 6,\n lineHeight: 1.25,\n display: 'inline'\n },\n modal: {\n background: 'none',\n boxShadow: 'none'\n }\n}))\n\nfunction Footer({ currentStep, steps, subtitle, text, exImage, open, start }) {\n const classes = useStyles()\n const [fullExample, setFullExample] = useState(false)\n\n const wrapperClassNames = {\n [classes.wrapper]: true,\n [classes.smallWrapper]: !open\n }\n\n return (\n \n \n
\n \n Setup Lamassu Admin \n {subtitle} \n {open && {text}
}\n \n \n \n {steps && currentStep && (\n \n )}\n \n \n \n {open && (\n
\n \n {\n setFullExample(true)\n }}>\n See full example\n \n \n \n \n \n Get Started\n \n \n \n \n )}\n
\n {\n setFullExample(false)\n }}\n open={fullExample}>\n \n \n \n )\n}\n\nexport default Footer\n","import { useQuery } from '@apollo/react-hooks'\nimport { makeStyles, Dialog, DialogContent } from '@material-ui/core'\nimport classnames from 'classnames'\nimport gql from 'graphql-tag'\nimport React, { useState, useContext } from 'react'\nimport { useHistory } from 'react-router-dom'\n\nimport AppContext from 'src/AppContext'\nimport { getWizardStep, STEPS } from 'src/pages/Wizard/helper'\nimport { backgroundColor } from 'src/styling/variables'\n\nimport Footer from './components/Footer'\n\nconst useStyles = makeStyles({\n wrapper: {\n display: 'flex',\n padding: [[16, 0]],\n flexDirection: 'column',\n justifyContent: 'space-between',\n backgroundColor: backgroundColor\n },\n welcomeBackground: {\n background: 'url(/wizard-background.svg) no-repeat center center fixed',\n backgroundColor: backgroundColor,\n backgroundSize: 'cover'\n },\n blurred: {\n filter: 'blur(4px)',\n pointerEvents: 'none'\n }\n})\n\nconst GET_DATA = gql`\n query getData {\n config\n accounts\n cryptoCurrencies {\n code\n display\n }\n }\n`\n\nconst Wizard = ({ fromAuthRegister }) => {\n const classes = useStyles()\n const { data, loading } = useQuery(GET_DATA)\n const history = useHistory()\n const { setWizardTested } = useContext(AppContext)\n\n const [step, setStep] = useState(0)\n const [open, setOpen] = useState(true)\n\n const [footerExp, setFooterExp] = useState(false)\n\n if (loading) {\n return <>>\n }\n\n const wizardStep = getWizardStep(data?.config, data?.cryptoCurrencies)\n\n const shouldGoBack =\n history.length && !history.location.state?.fromAuthRegister\n\n if (wizardStep === 0) {\n setWizardTested(true)\n shouldGoBack ? history.goBack() : history.push('/')\n }\n\n const isWelcome = step === 0\n const classNames = {\n [classes.blurred]: footerExp,\n [classes.wrapper]: true,\n [classes.welcomeBackground]: isWelcome\n }\n\n const start = () => {\n setFooterExp(false)\n }\n\n const doContinue = () => {\n if (step >= STEPS.length - 1) {\n setOpen(false)\n history.push('/')\n }\n\n const nextStep = step === 0 && wizardStep ? wizardStep : step + 1\n\n setFooterExp(true)\n setStep(nextStep)\n }\n\n const current = STEPS[step]\n\n return (\n \n \n \n \n {!isWelcome && (\n \n )}\n \n )\n}\n\nexport default Wizard\n","import Wizard from './Wizard'\n\nexport default Wizard\n","import * as R from 'ramda'\n\nexport const isLoggedIn = userData =>\n !R.isNil(userData?.id) &&\n !R.isNil(userData?.username) &&\n !R.isNil(userData?.role)\n\nexport const ROLES = {\n USER: 'user',\n SUPERUSER: 'superuser'\n}\n\nexport const BUILD_TARGETS = {\n LAMASSU: 'LAMASSU',\n PAZUZ: 'PAZUZ'\n}\n","import React, { useContext } from 'react'\nimport { Route, Redirect } from 'react-router-dom'\n\nimport AppContext from 'src/AppContext'\n\nimport { isLoggedIn } from './utils'\n\nconst PrivateRoute = ({ ...rest }) => {\n const { userData } = useContext(AppContext)\n\n return isLoggedIn(userData) ? : \n}\n\nexport default PrivateRoute\n","import React, { useContext } from 'react'\nimport { Route, Redirect } from 'react-router-dom'\n\nimport AppContext from 'src/AppContext'\n\nimport { isLoggedIn } from './utils'\n\nconst PublicRoute = ({ component: Component, restricted, ...rest }) => {\n const { userData } = useContext(AppContext)\n\n return (\n \n isLoggedIn(userData) && restricted ? (\n \n ) : (\n \n )\n }\n />\n )\n}\n\nexport default PublicRoute\n","import { offDarkColor, tomato, neon, java } from 'src/styling/variables'\n\nconst styles = {\n overviewLegend: {\n display: 'flex',\n justifyContent: 'flex-end',\n '& span': {\n marginRight: 24\n },\n '& > :last-child': {\n marginRight: 0\n }\n },\n legendEntry: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n '& > :first-child': {\n marginRight: 8\n }\n },\n dropdownsOverviewWrapper: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginBottom: 16\n },\n verticalLine: {\n height: 64,\n width: 1,\n border: 'solid',\n borderWidth: 0.5,\n borderColor: offDarkColor\n },\n dropdowns: {\n display: 'flex',\n flexDirection: 'row',\n '& div': {\n marginRight: 24\n },\n '& > :last-child': {\n marginRight: 0\n }\n },\n overview: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n '& div': {\n marginRight: 40\n },\n '& > :last-child': {\n marginRight: 0\n }\n },\n overviewFieldWrapper: {\n marginTop: 6,\n marginBottom: 6,\n '& span': {\n fontSize: 24\n }\n },\n overviewGrowth: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n '& p': {\n marginLeft: 4\n }\n },\n growthPercentage: {\n fontWeight: 'bold'\n },\n growth: {\n color: '#00CD5A'\n },\n decline: {\n color: tomato\n },\n // Graph\n graphHeaderWrapper: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n marginBottom: 40\n },\n graphHeaderLeft: {\n display: 'flex',\n flexDirection: 'column'\n },\n graphHeaderRight: {\n marginTop: 15,\n display: 'flex',\n flexDirection: 'row',\n '& > *': {\n marginRight: 30,\n '&:last-child': {\n marginRight: 0\n }\n }\n },\n graphLegend: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n '& span': {\n marginRight: 24\n },\n '& > :last-child': {\n marginRight: 0\n }\n },\n machineSelector: {\n width: 248\n },\n cashInIcon: {\n width: 12,\n height: 12,\n borderRadius: 12,\n backgroundColor: java\n },\n cashOutIcon: {\n width: 12,\n height: 12,\n borderRadius: 12,\n backgroundColor: neon\n },\n txIcon: {\n width: 12,\n height: 12,\n borderRadius: 12,\n backgroundColor: '#000'\n },\n topMachinesRadio: {\n display: 'flex',\n flexDirection: 'row'\n }\n}\n\nexport default styles\n","import { makeStyles } from '@material-ui/core/styles'\nimport React from 'react'\n\nimport { P } from 'src/components/typography'\n\nimport styles from '../Analytics.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst LegendEntry = ({ IconElement, IconComponent, label }) => {\n const classes = useStyles()\n\n return (\n \n {!!IconComponent && }\n {!!IconElement && IconElement}\n {label}
\n \n )\n}\n\nexport default LegendEntry\n","import { comet } from 'src/styling/variables'\n\nconst styles = {\n dotOtWrapper: {\n position: 'absolute',\n top: coords => coords?.y ?? 0,\n left: coords => coords?.x ?? 0,\n width: 150,\n padding: 12,\n borderRadius: 8\n },\n dotOtTransactionAmount: {\n margin: [[8, 0, 8, 0]]\n },\n dotOtTransactionVolume: {\n color: comet\n },\n dotOtTransactionClasses: {\n marginTop: 15,\n '& p > span': {\n marginLeft: 5\n },\n '& p:last-child': {\n marginTop: 5\n }\n }\n}\n\nexport default styles\n","import { Paper } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport * as R from 'ramda'\nimport React, { memo } from 'react'\n\nimport { Info2, Label3, P } from 'src/components/typography'\nimport { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport { numberToFiatAmount } from 'src/utils/number'\nimport { singularOrPlural } from 'src/utils/string'\nimport { formatDate, formatDateNonUtc } from 'src/utils/timezones'\n\nimport styles from './GraphTooltip.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst GraphTooltip = ({\n coords,\n data,\n dateInterval,\n period,\n currency,\n representing\n}) => {\n const classes = useStyles(coords)\n\n const formattedDateInterval = !R.includes('hourOfDay', representing.code)\n ? [\n formatDate(\n dateInterval[1],\n null,\n period.code === 'day' ? 'MMM d, HH:mm' : 'MMM d'\n ),\n formatDate(\n dateInterval[0],\n null,\n period.code === 'day' ? 'HH:mm' : 'MMM d'\n )\n ]\n : [\n formatDateNonUtc(dateInterval[1], 'HH:mm'),\n formatDateNonUtc(dateInterval[0], 'HH:mm')\n ]\n\n const transactions = R.reduce(\n (acc, value) => {\n acc.volume += parseInt(value.fiat)\n if (value.txClass === 'cashIn') acc.cashIn++\n if (value.txClass === 'cashOut') acc.cashOut++\n return acc\n },\n { volume: 0, cashIn: 0, cashOut: 0 },\n data\n )\n\n return (\n \n \n {period.code === 'day' || R.includes('hourOfDay', representing.code)\n ? `${formattedDateInterval[0]} - ${formattedDateInterval[1]}`\n : `${formattedDateInterval[0]}`}\n \n \n {R.length(data)}{' '}\n {singularOrPlural(R.length(data), 'transaction', 'transactions')}\n
\n \n {numberToFiatAmount(transactions.volume)} {currency} in volume\n
\n \n \n \n {transactions.cashIn} cash-in \n \n \n \n {transactions.cashOut} cash-out \n \n
\n \n )\n}\n\nexport default memo(GraphTooltip, (prev, next) => prev.coords === next.coords)\n","import BigNumber from 'bignumber.js'\nimport * as d3 from 'd3'\nimport { getTimezoneOffset } from 'date-fns-tz'\nimport { add, startOfDay } from 'date-fns/fp'\nimport * as R from 'ramda'\nimport React, { memo, useCallback, useEffect, useMemo, useRef } from 'react'\n\nimport {\n java,\n neon,\n subheaderDarkColor,\n fontColor,\n fontSecondary,\n subheaderColor\n} from 'src/styling/variables'\nimport { MINUTE } from 'src/utils/time'\nimport { toUtc } from 'src/utils/timezones'\n\nconst Graph = ({\n data,\n timezone,\n setSelectionCoords,\n setSelectionData,\n setSelectionDateInterval,\n selectedMachine\n}) => {\n const ref = useRef(null)\n\n const GRAPH_POPOVER_WIDTH = 150\n const GRAPH_POPOVER_MARGIN = 25\n const BAR_MARGIN = 10\n const GRAPH_HEIGHT = 401\n const GRAPH_WIDTH = 1163\n const GRAPH_MARGIN = useMemo(\n () => ({\n top: 25,\n right: 0.5,\n bottom: 27,\n left: 36.5\n }),\n []\n )\n\n const offset = getTimezoneOffset(timezone)\n\n const getTickIntervals = (domain, interval) => {\n const ticks = []\n const start = new Date(domain[0])\n const end = new Date(domain[1])\n\n const step = R.clone(start)\n\n // eslint-disable-next-line no-unmodified-loop-condition\n while (step <= end) {\n ticks.push(R.clone(step))\n step.setUTCHours(step.getUTCHours() + interval)\n }\n\n return ticks\n }\n\n const filterByHourInterval = useCallback(\n (lowerBound, upperBound) =>\n R.filter(it => {\n const tzCreated = new Date(it.created).setTime(\n new Date(it.created).getTime() +\n new Date(it.created).getTimezoneOffset() * MINUTE +\n offset\n )\n const created = new Date(tzCreated)\n\n return (\n (lowerBound.getUTCHours() < upperBound.getUTCHours() &&\n created.getUTCHours() >= new Date(lowerBound).getUTCHours() &&\n created.getUTCHours() < new Date(upperBound).getUTCHours()) ||\n (lowerBound.getUTCHours() > upperBound.getUTCHours() &&\n created.getUTCHours() <= new Date(lowerBound).getUTCHours() &&\n created.getUTCHours() < new Date(upperBound).getUTCHours())\n )\n }, data),\n [data, offset]\n )\n\n const txClassByHourInterval = useCallback(\n (lowerBound, upperBound) =>\n R.reduce(\n (acc, value) => {\n if (value.txClass === 'cashIn')\n acc.cashIn += BigNumber(value.fiat).toNumber()\n if (value.txClass === 'cashOut')\n acc.cashOut += BigNumber(value.fiat).toNumber()\n return acc\n },\n { cashIn: 0, cashOut: 0 },\n filterByHourInterval(lowerBound, upperBound)\n ),\n [filterByHourInterval]\n )\n\n const x = d3\n .scaleUtc()\n .domain([\n toUtc(startOfDay(new Date())),\n toUtc(add({ days: 1 }, startOfDay(new Date())))\n ])\n .rangeRound([GRAPH_MARGIN.left, GRAPH_WIDTH - GRAPH_MARGIN.right])\n\n const groupedByDateInterval = R.map(it => {\n const lowerBound = R.clone(it)\n it.setUTCHours(it.getUTCHours() + 2)\n const upperBound = R.clone(it)\n return [lowerBound, filterByHourInterval(lowerBound, upperBound)]\n }, R.init(getTickIntervals(x.domain(), 2)))\n\n const groupedByTxClass = R.map(it => {\n const lowerBound = R.clone(it)\n it.setUTCHours(it.getUTCHours() + 2)\n const upperBound = R.clone(it)\n return [lowerBound, txClassByHourInterval(lowerBound, upperBound)]\n }, R.init(getTickIntervals(x.domain(), 2)))\n\n const y = d3\n .scaleLinear()\n .domain([\n 0,\n d3.max(\n groupedByTxClass.map(it => it[1]),\n d => d.cashIn + d.cashOut\n ) !== 0\n ? d3.max(\n groupedByTxClass.map(it => it[1]),\n d => d.cashIn + d.cashOut\n )\n : 50\n ])\n .range([GRAPH_HEIGHT - GRAPH_MARGIN.bottom, GRAPH_MARGIN.top])\n\n const buildXAxis = useCallback(\n g =>\n g\n .attr(\n 'transform',\n `translate(0, ${GRAPH_HEIGHT - GRAPH_MARGIN.bottom})`\n )\n .call(\n d3\n .axisBottom(x)\n .ticks(d3.timeHour.every(2))\n .tickFormat(d3.timeFormat('%H:%M'))\n ),\n [GRAPH_MARGIN, x]\n )\n\n const buildYAxis = useCallback(\n g =>\n g\n .attr('transform', `translate(${GRAPH_MARGIN.left}, 0)`)\n .call(\n d3\n .axisLeft(y)\n .ticks(GRAPH_HEIGHT / 100)\n .tickSize(0)\n .tickFormat(``)\n )\n .call(g => g.select('.domain').remove()),\n [GRAPH_MARGIN, y]\n )\n\n const buildVerticalLines = useCallback(\n g =>\n g\n .attr('stroke', subheaderDarkColor)\n .append('g')\n .selectAll('line')\n .data(getTickIntervals(x.domain(), 2))\n .join('line')\n .attr('x1', d => {\n const xValue = x(d)\n const intervals = getTickIntervals(x.domain(), 2)\n return xValue === x(intervals[R.length(intervals) - 1])\n ? xValue - 1\n : 0.5 + xValue\n })\n .attr('x2', d => {\n const xValue = x(d)\n const intervals = getTickIntervals(x.domain(), 2)\n return xValue === x(intervals[R.length(intervals) - 1])\n ? xValue - 1\n : 0.5 + xValue\n })\n .attr('y1', GRAPH_MARGIN.top)\n .attr('y2', GRAPH_HEIGHT - GRAPH_MARGIN.bottom),\n [GRAPH_MARGIN, x]\n )\n\n const buildHoverableEventRects = useCallback(\n g =>\n g\n .append('g')\n .selectAll('line')\n .data(getTickIntervals(x.domain(), 2))\n .join('rect')\n .attr('x', d => x(d))\n .attr('y', GRAPH_MARGIN.top)\n .attr('width', d => {\n const xValue = Math.round(x(d) * 100) / 100\n const ticks = getTickIntervals(x.domain(), 2).map(it => x(it))\n\n const index = R.findIndex(it => it === xValue, ticks)\n const width =\n index + 1 === R.length(ticks) ? 0 : ticks[index + 1] - ticks[index]\n\n return Math.round(width * 100) / 100\n })\n .attr('height', GRAPH_HEIGHT - GRAPH_MARGIN.bottom - GRAPH_MARGIN.top)\n .attr('stroke', 'transparent')\n .attr('fill', 'transparent')\n .on('mouseover', d => {\n const date = R.clone(new Date(d.target.__data__))\n const startDate = R.clone(date)\n date.setUTCHours(date.getUTCHours() + 2)\n const endDate = R.clone(date)\n\n const filteredData = groupedByDateInterval.find(it =>\n R.equals(startDate, it[0])\n )[1]\n\n const rectXCoords = {\n left: R.clone(d.target.getBoundingClientRect().x),\n right: R.clone(\n d.target.getBoundingClientRect().x +\n d.target.getBoundingClientRect().width\n )\n }\n\n const xCoord =\n d.target.x.baseVal.value < 0.75 * GRAPH_WIDTH\n ? rectXCoords.right + GRAPH_POPOVER_MARGIN\n : rectXCoords.left - GRAPH_POPOVER_WIDTH - GRAPH_POPOVER_MARGIN\n const yCoord = R.clone(d.target.getBoundingClientRect().y)\n\n setSelectionDateInterval([endDate, startDate])\n setSelectionData(filteredData)\n setSelectionCoords({\n x: Math.round(xCoord),\n y: Math.round(yCoord)\n })\n\n d3.select(`#event-rect-${x(d.target.__data__)}`).attr(\n 'fill',\n subheaderColor\n )\n })\n .on('mouseleave', d => {\n d3.select(`#event-rect-${x(d.target.__data__)}`).attr(\n 'fill',\n 'transparent'\n )\n setSelectionDateInterval(null)\n setSelectionData(null)\n setSelectionCoords(null)\n }),\n [\n GRAPH_MARGIN,\n groupedByDateInterval,\n setSelectionCoords,\n setSelectionData,\n setSelectionDateInterval,\n x\n ]\n )\n\n const buildEventRects = useCallback(\n g =>\n g\n .append('g')\n .selectAll('line')\n .data(getTickIntervals(x.domain(), 2))\n .join('rect')\n .attr('id', d => `event-rect-${x(d)}`)\n .attr('x', d => x(d))\n .attr('y', GRAPH_MARGIN.top)\n .attr('width', d => {\n const xValue = Math.round(x(d) * 100) / 100\n const ticks = getTickIntervals(x.domain(), 2).map(it => x(it))\n\n const index = R.findIndex(it => it === xValue, ticks)\n const width =\n index + 1 === R.length(ticks) ? 0 : ticks[index + 1] - ticks[index]\n\n return Math.round(width * 100) / 100\n })\n .attr('height', GRAPH_HEIGHT - GRAPH_MARGIN.bottom - GRAPH_MARGIN.top)\n .attr('stroke', 'transparent')\n .attr('fill', 'transparent'),\n [GRAPH_MARGIN, x]\n )\n\n const formatTicksText = useCallback(\n () =>\n d3\n .selectAll('.tick text')\n .style('stroke', fontColor)\n .style('fill', fontColor)\n .style('stroke-width', 0.5)\n .style('font-family', fontSecondary),\n []\n )\n\n const drawCashIn = useCallback(\n g => {\n g.selectAll('rect')\n .data(R.init(getTickIntervals(x.domain(), 2)))\n .join('rect')\n .attr('stroke', java)\n .attr('fill', java)\n .attr('x', d => {\n return x(d) + BAR_MARGIN / 2\n })\n .attr('y', d => {\n const interval = R.find(it => R.equals(it[0], d), groupedByTxClass)\n return y(interval[1].cashIn) - GRAPH_MARGIN.top + GRAPH_MARGIN.bottom\n })\n .attr('height', d => {\n const interval = R.find(it => R.equals(it[0], d), groupedByTxClass)\n return R.clamp(\n 0,\n GRAPH_HEIGHT,\n GRAPH_HEIGHT -\n y(interval[1].cashIn) -\n GRAPH_MARGIN.bottom -\n BAR_MARGIN / 2\n )\n })\n .attr('width', d => {\n const xValue = Math.round(x(d) * 100) / 100\n const ticks = getTickIntervals(x.domain(), 2).map(it => x(it))\n\n const index = R.findIndex(it => it === xValue, ticks)\n const width =\n index === R.length(ticks) ? 0 : ticks[index + 1] - ticks[index]\n return Math.round((width - BAR_MARGIN) * 100) / 100\n })\n .attr('rx', 2.5)\n },\n [x, y, GRAPH_MARGIN, groupedByTxClass]\n )\n\n const drawCashOut = useCallback(\n g => {\n g.selectAll('rect')\n .data(R.init(getTickIntervals(x.domain(), 2)))\n .join('rect')\n .attr('stroke', neon)\n .attr('fill', neon)\n .attr('x', d => {\n return x(d) + BAR_MARGIN / 2\n })\n .attr('y', d => {\n const interval = R.find(it => R.equals(it[0], d), groupedByTxClass)\n return (\n y(interval[1].cashIn + interval[1].cashOut) -\n GRAPH_MARGIN.top +\n GRAPH_MARGIN.bottom\n )\n })\n .attr('height', d => {\n const interval = R.find(it => R.equals(it[0], d), groupedByTxClass)\n return R.clamp(\n 0,\n GRAPH_HEIGHT,\n GRAPH_HEIGHT -\n y(interval[1].cashOut) -\n GRAPH_MARGIN.bottom -\n BAR_MARGIN / 2\n )\n })\n .attr('width', d => {\n const xValue = Math.round(x(d) * 100) / 100\n const ticks = getTickIntervals(x.domain(), 2).map(it => x(it))\n\n const index = R.findIndex(it => it === xValue, ticks)\n const width =\n index === R.length(ticks) ? 0 : ticks[index + 1] - ticks[index]\n return Math.round((width - BAR_MARGIN) * 100) / 100\n })\n .attr('rx', 2.5)\n },\n [x, y, GRAPH_MARGIN, groupedByTxClass]\n )\n\n const drawChart = useCallback(() => {\n const svg = d3\n .select(ref.current)\n .attr('viewBox', [0, 0, GRAPH_WIDTH, GRAPH_HEIGHT])\n\n svg.append('g').call(buildXAxis)\n svg.append('g').call(buildYAxis)\n svg.append('g').call(buildVerticalLines)\n svg.append('g').call(buildEventRects)\n svg.append('g').call(formatTicksText)\n svg.append('g').call(drawCashIn)\n svg.append('g').call(drawCashOut)\n svg.append('g').call(buildHoverableEventRects)\n\n return svg.node()\n }, [\n buildXAxis,\n buildYAxis,\n buildEventRects,\n buildHoverableEventRects,\n buildVerticalLines,\n drawCashIn,\n formatTicksText,\n drawCashOut\n ])\n\n useEffect(() => {\n d3.select(ref.current)\n .selectAll('*')\n .remove()\n drawChart()\n }, [drawChart])\n\n return \n}\n\nexport default memo(\n Graph,\n (prev, next) =>\n R.equals(prev.period, next.period) &&\n R.equals(prev.selectedDay, next.selectedDay) &&\n R.equals(prev.selectedMachine, next.selectedMachine)\n)\n","import BigNumber from 'bignumber.js'\nimport * as d3 from 'd3'\nimport { getTimezoneOffset } from 'date-fns-tz'\nimport { add, format, startOfWeek, startOfYear } from 'date-fns/fp'\nimport * as R from 'ramda'\nimport React, { memo, useCallback, useEffect, useMemo, useRef } from 'react'\n\nimport {\n java,\n neon,\n subheaderDarkColor,\n offColor,\n fontColor,\n primaryColor,\n fontSecondary,\n subheaderColor\n} from 'src/styling/variables'\nimport { MINUTE, DAY, WEEK, MONTH } from 'src/utils/time'\n\nconst Graph = ({\n data,\n period,\n timezone,\n setSelectionCoords,\n setSelectionData,\n setSelectionDateInterval\n}) => {\n const ref = useRef(null)\n\n const GRAPH_POPOVER_WIDTH = 150\n const GRAPH_POPOVER_MARGIN = 25\n const GRAPH_HEIGHT = 401\n const GRAPH_WIDTH = 1163\n const GRAPH_MARGIN = useMemo(\n () => ({\n top: 25,\n right: 0.5,\n bottom: 27,\n left: 36.5\n }),\n []\n )\n\n const offset = getTimezoneOffset(timezone)\n const NOW = Date.now() + offset\n\n const periodDomains = {\n day: [NOW - DAY, NOW],\n week: [NOW - WEEK, NOW],\n month: [NOW - MONTH, NOW]\n }\n\n const dataPoints = useMemo(\n () => ({\n day: {\n freq: 24,\n step: 60 * 60 * 1000,\n tick: d3.utcHour.every(1),\n labelFormat: '%H:%M'\n },\n week: {\n freq: 7,\n step: 24 * 60 * 60 * 1000,\n tick: d3.utcDay.every(1),\n labelFormat: '%a %d'\n },\n month: {\n freq: 30,\n step: 24 * 60 * 60 * 1000,\n tick: d3.utcDay.every(1),\n labelFormat: '%d'\n }\n }),\n []\n )\n\n const getPastAndCurrentDayLabels = useCallback(d => {\n const currentDate = new Date(d)\n const currentDateDay = currentDate.getUTCDate()\n const currentDateWeekday = currentDate.getUTCDay()\n const currentDateMonth = currentDate.getUTCMonth()\n\n const previousDate = new Date(currentDate.getTime())\n previousDate.setUTCDate(currentDateDay - 1)\n\n const previousDateDay = previousDate.getUTCDate()\n const previousDateWeekday = previousDate.getUTCDay()\n const previousDateMonth = previousDate.getUTCMonth()\n\n const daysOfWeek = Array.from(Array(7)).map((_, i) =>\n format('EEE', add({ days: i }, startOfWeek(new Date())))\n )\n\n const months = Array.from(Array(12)).map((_, i) =>\n format('LLL', add({ months: i }, startOfYear(new Date())))\n )\n\n return {\n previous:\n currentDateMonth !== previousDateMonth\n ? months[previousDateMonth]\n : `${daysOfWeek[previousDateWeekday]} ${previousDateDay}`,\n current:\n currentDateMonth !== previousDateMonth\n ? months[currentDateMonth]\n : `${daysOfWeek[currentDateWeekday]} ${currentDateDay}`\n }\n }, [])\n\n const buildTicks = useCallback(\n domain => {\n const points = []\n\n const roundDate = d => {\n const step = dataPoints[period.code].step\n return new Date(Math.ceil(d.valueOf() / step) * step)\n }\n\n for (let i = 0; i <= dataPoints[period.code].freq; i++) {\n const stepDate = new Date(NOW - i * dataPoints[period.code].step)\n if (roundDate(stepDate) > domain[1]) continue\n if (stepDate < domain[0]) continue\n points.push(roundDate(stepDate))\n }\n\n return points\n },\n [NOW, dataPoints, period.code]\n )\n\n const buildAreas = useCallback(\n domain => {\n const points = []\n\n points.push(domain[1])\n\n const roundDate = d => {\n const step = dataPoints[period.code].step\n return new Date(Math.ceil(d.valueOf() / step) * step)\n }\n\n for (let i = 0; i <= dataPoints[period.code].freq; i++) {\n const stepDate = new Date(NOW - i * dataPoints[period.code].step)\n if (roundDate(stepDate) > new Date(domain[1])) continue\n if (stepDate < new Date(domain[0])) continue\n points.push(roundDate(stepDate))\n }\n\n points.push(domain[0])\n\n return points\n },\n [NOW, dataPoints, period.code]\n )\n\n const x = d3\n .scaleUtc()\n .domain(periodDomains[period.code])\n .range([GRAPH_MARGIN.left, GRAPH_WIDTH - GRAPH_MARGIN.right])\n\n const y = d3\n .scaleLinear()\n .domain([\n 0,\n (d3.max(data, d => new BigNumber(d.fiat).toNumber()) ?? 1000) * 1.03\n ])\n .nice()\n .range([GRAPH_HEIGHT - GRAPH_MARGIN.bottom, GRAPH_MARGIN.top])\n\n const getAreaInterval = (breakpoints, limits) => {\n const fullBreakpoints = [\n limits[1],\n ...R.filter(it => it > limits[0] && it < limits[1], breakpoints),\n limits[0]\n ]\n\n const intervals = []\n for (let i = 0; i < fullBreakpoints.length - 1; i++) {\n intervals.push([fullBreakpoints[i], fullBreakpoints[i + 1]])\n }\n\n return intervals\n }\n\n const getAreaIntervalByX = (intervals, xValue) => {\n return R.find(it => xValue <= it[0] && xValue >= it[1], intervals) ?? [0, 0]\n }\n\n const getDateIntervalByX = (areas, intervals, xValue) => {\n const flattenIntervals = R.uniq(R.flatten(intervals))\n\n // flattenIntervals and areas should have the same number of elements\n for (let i = intervals.length - 1; i >= 0; i--) {\n if (xValue < flattenIntervals[i]) {\n return [areas[i], areas[i + 1]]\n }\n }\n }\n\n const buildXAxis = useCallback(\n g =>\n g\n .attr(\n 'transform',\n `translate(0, ${GRAPH_HEIGHT - GRAPH_MARGIN.bottom})`\n )\n .call(\n d3\n .axisBottom(x)\n .ticks(dataPoints[period.code].tick)\n .tickFormat(d => {\n return d3.timeFormat(dataPoints[period.code].labelFormat)(\n d.getTime() + d.getTimezoneOffset() * MINUTE\n )\n })\n )\n .call(g => g.select('.domain').remove())\n .call(g =>\n g\n .append('line')\n .attr('x1', GRAPH_MARGIN.left)\n .attr('y1', -GRAPH_HEIGHT + GRAPH_MARGIN.top + GRAPH_MARGIN.bottom)\n .attr('x2', GRAPH_MARGIN.left)\n .attr('stroke', primaryColor)\n .attr('stroke-width', 1)\n ),\n [GRAPH_MARGIN, dataPoints, period.code, x]\n )\n\n const buildYAxis = useCallback(\n g =>\n g\n .attr('transform', `translate(${GRAPH_MARGIN.left}, 0)`)\n .call(d3.axisLeft(y).ticks(GRAPH_HEIGHT / 100))\n .call(g => g.select('.domain').remove())\n .call(g =>\n g\n .selectAll('.tick line')\n .filter(d => d === 0)\n .clone()\n .attr('x2', GRAPH_WIDTH - GRAPH_MARGIN.right - GRAPH_MARGIN.left)\n .attr('stroke-width', 1)\n .attr('stroke', primaryColor)\n ),\n [GRAPH_MARGIN, y]\n )\n\n const buildGrid = useCallback(\n g => {\n g.attr('stroke', subheaderDarkColor)\n .attr('fill', subheaderDarkColor)\n // Vertical lines\n .call(g =>\n g\n .append('g')\n .selectAll('line')\n .data(buildTicks(x.domain()))\n .join('line')\n .attr('x1', d => 0.5 + x(d))\n .attr('x2', d => 0.5 + x(d))\n .attr('y1', GRAPH_MARGIN.top)\n .attr('y2', GRAPH_HEIGHT - GRAPH_MARGIN.bottom)\n )\n // Horizontal lines\n .call(g =>\n g\n .append('g')\n .selectAll('line')\n .data(\n d3\n .axisLeft(y)\n .scale()\n .ticks(GRAPH_HEIGHT / 100)\n )\n .join('line')\n .attr('y1', d => 0.5 + y(d))\n .attr('y2', d => 0.5 + y(d))\n .attr('x1', GRAPH_MARGIN.left)\n .attr('x2', GRAPH_WIDTH - GRAPH_MARGIN.right)\n )\n // Vertical transparent rectangles for events\n .call(g =>\n g\n .append('g')\n .selectAll('line')\n .data(buildAreas(x.domain()))\n .join('rect')\n .attr('x', d => x(d))\n .attr('y', GRAPH_MARGIN.top)\n .attr('width', d => {\n const xValue = Math.round(x(d) * 100) / 100\n const intervals = getAreaInterval(\n buildAreas(x.domain()).map(it => Math.round(x(it) * 100) / 100),\n x.range()\n )\n const interval = getAreaIntervalByX(intervals, xValue)\n return Math.round((interval[0] - interval[1]) * 100) / 100\n })\n .attr(\n 'height',\n GRAPH_HEIGHT - GRAPH_MARGIN.bottom - GRAPH_MARGIN.top\n )\n .attr('stroke', 'transparent')\n .attr('fill', 'transparent')\n .on('mouseover', d => {\n const xValue = Math.round(d.target.x.baseVal.value * 100) / 100\n const areas = buildAreas(x.domain())\n const intervals = getAreaInterval(\n buildAreas(x.domain()).map(it => Math.round(x(it) * 100) / 100),\n x.range()\n )\n\n const dateInterval = getDateIntervalByX(areas, intervals, xValue)\n const filteredData = data.filter(it => {\n const created = new Date(it.created)\n const tzCreated = created.setTime(created.getTime() + offset)\n return (\n tzCreated > new Date(dateInterval[1]) &&\n tzCreated <= new Date(dateInterval[0])\n )\n })\n\n const rectXCoords = {\n left: R.clone(d.target.getBoundingClientRect().x),\n right: R.clone(\n d.target.getBoundingClientRect().x +\n d.target.getBoundingClientRect().width\n )\n }\n\n const xCoord =\n d.target.x.baseVal.value < 0.75 * GRAPH_WIDTH\n ? rectXCoords.right + GRAPH_POPOVER_MARGIN\n : rectXCoords.left -\n GRAPH_POPOVER_WIDTH -\n GRAPH_POPOVER_MARGIN\n const yCoord = R.clone(d.target.getBoundingClientRect().y)\n\n setSelectionDateInterval(dateInterval)\n setSelectionData(filteredData)\n setSelectionCoords({\n x: Math.round(xCoord),\n y: Math.round(yCoord)\n })\n\n d3.select(d.target).attr('fill', subheaderColor)\n })\n .on('mouseleave', d => {\n d3.select(d.target).attr('fill', 'transparent')\n setSelectionDateInterval(null)\n setSelectionData(null)\n setSelectionCoords(null)\n })\n )\n // Thick vertical lines\n .call(g =>\n g\n .append('g')\n .selectAll('line')\n .data(\n buildTicks(x.domain()).filter(x => {\n if (period.code === 'day') return x.getUTCHours() === 0\n return x.getUTCDate() === 1\n })\n )\n .join('line')\n .attr('class', 'dateSeparator')\n .attr('x1', d => 0.5 + x(d))\n .attr('x2', d => 0.5 + x(d))\n .attr('y1', GRAPH_MARGIN.top - 50)\n .attr('y2', GRAPH_HEIGHT - GRAPH_MARGIN.bottom)\n .attr('stroke-width', 5)\n .join('text')\n )\n // Left side breakpoint label\n .call(g => {\n const separator = d3\n ?.select('.dateSeparator')\n ?.node()\n ?.getBBox()\n\n if (!separator) return\n\n const breakpoint = buildTicks(x.domain()).filter(x => {\n if (period.code === 'day') return x.getUTCHours() === 0\n return x.getUTCDate() === 1\n })\n\n const labels = getPastAndCurrentDayLabels(breakpoint)\n\n return g\n .append('text')\n .attr('x', separator.x - 10)\n .attr('y', separator.y + 33)\n .attr('text-anchor', 'end')\n .attr('dy', '.25em')\n .text(labels.previous)\n })\n // Right side breakpoint label\n .call(g => {\n const separator = d3\n ?.select('.dateSeparator')\n ?.node()\n ?.getBBox()\n\n if (!separator) return\n\n const breakpoint = buildTicks(x.domain()).filter(x => {\n if (period.code === 'day') return x.getUTCHours() === 0\n return x.getUTCDate() === 1\n })\n\n const labels = getPastAndCurrentDayLabels(breakpoint)\n\n return g\n .append('text')\n .attr('x', separator.x + 10)\n .attr('y', separator.y + 33)\n .attr('text-anchor', 'start')\n .attr('dy', '.25em')\n .text(labels.current)\n })\n },\n [\n GRAPH_MARGIN,\n buildTicks,\n getPastAndCurrentDayLabels,\n x,\n y,\n period,\n buildAreas,\n data,\n offset,\n setSelectionCoords,\n setSelectionData,\n setSelectionDateInterval\n ]\n )\n\n const formatTicksText = useCallback(\n () =>\n d3\n .selectAll('.tick text')\n .style('stroke', fontColor)\n .style('fill', fontColor)\n .style('stroke-width', 0.5)\n .style('font-family', fontSecondary),\n []\n )\n\n const formatText = useCallback(\n () =>\n d3\n .selectAll('text')\n .style('stroke', offColor)\n .style('fill', offColor)\n .style('stroke-width', 0.5)\n .style('font-family', fontSecondary),\n []\n )\n\n const formatTicks = useCallback(() => {\n d3.selectAll('.tick line')\n .style('stroke', primaryColor)\n .style('fill', primaryColor)\n }, [])\n\n const buildAvg = useCallback(\n g => {\n g.attr('stroke', primaryColor)\n .attr('stroke-width', 3)\n .attr('stroke-dasharray', '10, 5')\n .call(g =>\n g\n .append('line')\n .attr(\n 'y1',\n 0.5 + y(d3.mean(data, d => new BigNumber(d.fiat).toNumber()) ?? 0)\n )\n .attr(\n 'y2',\n 0.5 + y(d3.mean(data, d => new BigNumber(d.fiat).toNumber()) ?? 0)\n )\n .attr('x1', GRAPH_MARGIN.left)\n .attr('x2', GRAPH_WIDTH - GRAPH_MARGIN.right)\n )\n },\n [GRAPH_MARGIN, y, data]\n )\n\n const drawData = useCallback(\n g => {\n g.selectAll('circle')\n .data(data)\n .join('circle')\n .attr('cx', d => {\n const created = new Date(d.created)\n return x(created.setTime(created.getTime() + offset))\n })\n .attr('cy', d => y(new BigNumber(d.fiat).toNumber()))\n .attr('fill', d => (d.txClass === 'cashIn' ? java : neon))\n .attr('r', 3.5)\n },\n [data, offset, x, y]\n )\n\n const drawChart = useCallback(() => {\n const svg = d3\n .select(ref.current)\n .attr('viewBox', [0, 0, GRAPH_WIDTH, GRAPH_HEIGHT])\n\n svg.append('g').call(buildGrid)\n svg.append('g').call(buildAvg)\n svg.append('g').call(buildXAxis)\n svg.append('g').call(buildYAxis)\n svg.append('g').call(formatTicksText)\n svg.append('g').call(formatText)\n svg.append('g').call(formatTicks)\n svg.append('g').call(drawData)\n\n return svg.node()\n }, [\n buildAvg,\n buildGrid,\n buildXAxis,\n buildYAxis,\n drawData,\n formatText,\n formatTicks,\n formatTicksText\n ])\n\n useEffect(() => {\n d3.select(ref.current)\n .selectAll('*')\n .remove()\n drawChart()\n }, [drawChart])\n\n return \n}\n\nexport default memo(\n Graph,\n (prev, next) =>\n R.equals(prev.period, next.period) &&\n R.equals(prev.selectedMachine, next.selectedMachine)\n)\n","import BigNumber from 'bignumber.js'\nimport * as d3 from 'd3'\nimport * as R from 'ramda'\nimport React, { memo, useCallback, useEffect, useMemo, useRef } from 'react'\n\nimport {\n java,\n neon,\n subheaderDarkColor,\n fontColor,\n fontSecondary\n} from 'src/styling/variables'\n\nconst Graph = ({ data, machines, currency, selectedMachine }) => {\n const ref = useRef(null)\n\n const AMOUNT_OF_MACHINES = 5\n const BAR_PADDING = 0.15\n const BAR_MARGIN = 10\n const GRAPH_HEIGHT = 401\n const GRAPH_WIDTH = 1163\n const GRAPH_MARGIN = useMemo(\n () => ({\n top: 25,\n right: 0.5,\n bottom: 27,\n left: 36.5\n }),\n []\n )\n\n const machinesClone = R.clone(machines)\n\n // This ensures that the graph renders a minimum amount of machines\n // and avoids having a single bar for cases with one machine\n const filledMachines =\n R.length(machines) >= AMOUNT_OF_MACHINES\n ? machinesClone\n : R.map(it => {\n if (!R.isNil(machinesClone[it])) return machinesClone[it]\n return { code: `ghostMachine${it}`, display: `` }\n }, R.times(R.identity, AMOUNT_OF_MACHINES))\n\n const txByDevice = R.reduce(\n (acc, value) => {\n acc[value.code] = R.filter(it => it.deviceId === value.code, data)\n return acc\n },\n {},\n filledMachines\n )\n\n const getDeviceVolume = deviceId =>\n R.reduce(\n (acc, value) => acc + BigNumber(value.fiat).toNumber(),\n 0,\n txByDevice[deviceId]\n )\n\n const getDeviceVolumeByTxClass = deviceId =>\n R.reduce(\n (acc, value) => {\n if (value.txClass === 'cashIn')\n acc.cashIn += BigNumber(value.fiat).toNumber()\n if (value.txClass === 'cashOut')\n acc.cashOut += BigNumber(value.fiat).toNumber()\n return acc\n },\n { cashIn: 0, cashOut: 0 },\n txByDevice[deviceId]\n )\n\n const devicesByVolume = R.sort(\n (a, b) => b[1] - a[1],\n R.map(m => [m.code, getDeviceVolume(m.code)], filledMachines)\n )\n\n const topMachines = R.take(AMOUNT_OF_MACHINES, devicesByVolume)\n\n const txClassVolumeByDevice = R.fromPairs(\n R.map(v => [v[0], getDeviceVolumeByTxClass(v[0])], topMachines)\n )\n\n const x = d3\n .scaleBand()\n .domain(topMachines)\n .range([GRAPH_MARGIN.left, GRAPH_WIDTH - GRAPH_MARGIN.right])\n .paddingInner(BAR_PADDING)\n\n const y = d3\n .scaleLinear()\n .domain([\n 0,\n d3.max(topMachines, d => d[1]) !== 0 ? d3.max(topMachines, d => d[1]) : 50\n ])\n .range([GRAPH_HEIGHT - GRAPH_MARGIN.bottom, GRAPH_MARGIN.top])\n\n const buildXAxis = useCallback(\n g =>\n g\n .attr('class', 'x-axis-1')\n .attr(\n 'transform',\n `translate(0, ${GRAPH_HEIGHT - GRAPH_MARGIN.bottom})`\n )\n .call(\n d3\n .axisBottom(x)\n .tickFormat(\n d =>\n `${R.find(it => it.code === d[0], filledMachines).display ??\n ''}`\n )\n .tickSize(0)\n .tickPadding(10)\n ),\n [GRAPH_MARGIN, x, filledMachines]\n )\n\n const buildXAxis2 = useCallback(\n g => {\n g.attr('class', 'x-axis-2')\n .attr(\n 'transform',\n `translate(0, ${GRAPH_HEIGHT - GRAPH_MARGIN.bottom})`\n )\n .call(\n d3\n .axisBottom(x)\n .tickFormat(d =>\n R.includes(`ghostMachine`, d[0])\n ? ``\n : `${d[1].toFixed(2)} ${currency}`\n )\n .tickSize(0)\n .tickPadding(10)\n )\n },\n [GRAPH_MARGIN, x, currency]\n )\n\n const positionXAxisLabels = useCallback(() => {\n d3.selectAll('.x-axis-1 .tick text').attr('transform', function(d) {\n const widthPerEntry = (x.range()[1] - x.range()[0]) / AMOUNT_OF_MACHINES\n return `translate(${-widthPerEntry / 2.25 + this.getBBox().width / 2}, 0)`\n })\n }, [x])\n\n const positionXAxis2Labels = useCallback(() => {\n d3.selectAll('.x-axis-2 .tick text').attr('transform', function(d) {\n const widthPerEntry = (x.range()[1] - x.range()[0]) / AMOUNT_OF_MACHINES\n return `translate(${widthPerEntry / 2.25 - this.getBBox().width / 2}, 0)`\n })\n }, [x])\n\n const buildYAxis = useCallback(\n g =>\n g\n .attr('transform', `translate(${GRAPH_MARGIN.left}, 0)`)\n .call(\n d3\n .axisLeft(y)\n .ticks(GRAPH_HEIGHT / 100)\n .tickSize(0)\n .tickFormat(``)\n )\n .call(g => g.select('.domain').remove()),\n [GRAPH_MARGIN, y]\n )\n\n const formatTicksText = useCallback(\n () =>\n d3\n .selectAll('.tick text')\n .style('stroke', fontColor)\n .style('fill', fontColor)\n .style('stroke-width', 0.5)\n .style('font-family', fontSecondary),\n []\n )\n\n const buildGrid = useCallback(\n g => {\n g.attr('stroke', subheaderDarkColor)\n .attr('fill', subheaderDarkColor)\n // Vertical lines\n .call(g =>\n g\n .append('g')\n .selectAll('line')\n .data(R.tail(x.domain()))\n .join('line')\n .attr('x1', d => {\n const domainIndex = R.findIndex(it => R.equals(it, d), x.domain())\n\n const xValue =\n x(x.domain()[domainIndex]) - x(x.domain()[domainIndex - 1])\n\n const paddedXValue = xValue * (BAR_PADDING / 2)\n return 0.5 + x(d) - paddedXValue\n })\n .attr('x2', d => {\n const domainIndex = R.findIndex(it => R.equals(it, d), x.domain())\n\n const xValue =\n x(x.domain()[domainIndex]) - x(x.domain()[domainIndex - 1])\n\n const paddedXValue = xValue * (BAR_PADDING / 2)\n return 0.5 + x(d) - paddedXValue\n })\n .attr('y1', GRAPH_MARGIN.top)\n .attr('y2', GRAPH_HEIGHT - GRAPH_MARGIN.bottom)\n )\n },\n [GRAPH_MARGIN, x]\n )\n\n const drawCashIn = useCallback(\n g => {\n g.selectAll('rect')\n .data(R.toPairs(txClassVolumeByDevice))\n .join('rect')\n .attr('fill', java)\n .attr('x', d => x([d[0], d[1].cashIn + d[1].cashOut]))\n .attr('y', d => y(d[1].cashIn) - GRAPH_MARGIN.top + GRAPH_MARGIN.bottom)\n .attr('height', d =>\n R.clamp(\n 0,\n GRAPH_HEIGHT,\n GRAPH_HEIGHT - y(d[1].cashIn) - GRAPH_MARGIN.bottom - BAR_MARGIN\n )\n )\n .attr('width', x.bandwidth())\n .attr('rx', 2.5)\n },\n [txClassVolumeByDevice, x, y, GRAPH_MARGIN]\n )\n\n const drawCashOut = useCallback(\n g => {\n g.selectAll('rect')\n .data(R.toPairs(txClassVolumeByDevice))\n .join('rect')\n .attr('fill', neon)\n .attr('x', d => x([d[0], d[1].cashIn + d[1].cashOut]))\n .attr(\n 'y',\n d =>\n y(d[1].cashIn + d[1].cashOut) -\n GRAPH_MARGIN.top +\n GRAPH_MARGIN.bottom\n )\n .attr('height', d => {\n return R.clamp(\n 0,\n GRAPH_HEIGHT,\n GRAPH_HEIGHT -\n y(d[1].cashOut) -\n GRAPH_MARGIN.bottom -\n BAR_MARGIN / 2\n )\n })\n .attr('width', x.bandwidth())\n .attr('rx', 2.5)\n },\n [txClassVolumeByDevice, x, y, GRAPH_MARGIN]\n )\n\n const drawChart = useCallback(() => {\n const svg = d3\n .select(ref.current)\n .attr('viewBox', [0, 0, GRAPH_WIDTH, GRAPH_HEIGHT])\n\n svg.append('g').call(buildXAxis)\n svg.append('g').call(buildXAxis2)\n svg.append('g').call(buildYAxis)\n svg.append('g').call(formatTicksText)\n svg.append('g').call(buildGrid)\n svg.append('g').call(drawCashIn)\n svg.append('g').call(drawCashOut)\n svg.append('g').call(positionXAxisLabels)\n svg.append('g').call(positionXAxis2Labels)\n\n return svg.node()\n }, [\n buildXAxis,\n buildXAxis2,\n positionXAxisLabels,\n positionXAxis2Labels,\n buildYAxis,\n formatTicksText,\n buildGrid,\n drawCashIn,\n drawCashOut\n ])\n\n useEffect(() => {\n d3.select(ref.current)\n .selectAll('*')\n .remove()\n drawChart()\n }, [drawChart])\n\n return \n}\n\nexport default memo(\n Graph,\n (prev, next) =>\n R.equals(prev.period, next.period) &&\n R.equals(prev.selectedMachine, next.selectedMachine)\n)\n","import * as R from 'ramda'\nimport React, { memo, useState } from 'react'\n\nimport GraphTooltip from '../components/tooltips/GraphTooltip'\n\nimport HourOfDayBarGraph from './HourOfDayBarGraph'\nimport OverTimeDotGraph from './OverTimeDotGraph'\nimport TopMachinesBarGraph from './TopMachinesBarGraph'\n\nconst GraphWrapper = ({\n data,\n representing,\n period,\n timezone,\n currency,\n selectedMachine,\n machines,\n selectedDay\n}) => {\n const [selectionCoords, setSelectionCoords] = useState(null)\n const [selectionDateInterval, setSelectionDateInterval] = useState(null)\n const [selectionData, setSelectionData] = useState(null)\n\n const getGraph = representing => {\n switch (representing.code) {\n case 'overTime':\n return (\n \n )\n case 'topMachinesVolume':\n return (\n it.code !== 'all', machines)}\n currency={currency}\n />\n )\n case 'topMachinesTransactions':\n return (\n it.code !== 'all', machines)}\n currency={currency}\n />\n )\n case 'hourOfDayVolume':\n return (\n it.code !== 'all', machines)}\n currency={currency}\n selectedDay={selectedDay}\n />\n )\n case 'hourOfDayTransactions':\n return (\n it.code !== 'all', machines)}\n currency={currency}\n selectedDay={selectedDay}\n />\n )\n default:\n throw new Error(`There's no graph to represent ${representing}`)\n }\n }\n\n return (\n \n {!R.isNil(selectionCoords) && (\n \n )}\n {getGraph(representing)}\n
\n )\n}\n\nexport default memo(GraphWrapper)\n","import { Box } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { getTimezoneOffset } from 'date-fns-tz'\nimport { format, add, startOfWeek } from 'date-fns/fp'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { RadioGroup, Select } from 'src/components/inputs'\nimport { H2 } from 'src/components/typography'\nimport { MINUTE } from 'src/utils/time'\n\nimport styles from '../../Analytics.styles'\nimport Graph from '../../graphs/Graph'\nimport LegendEntry from '../LegendEntry'\n\nconst useStyles = makeStyles(styles)\n\nconst options = [\n { code: 'hourOfDayTransactions', display: 'Transactions' },\n { code: 'hourOfDayVolume', display: 'Volume' }\n]\n\nconst dayOptions = R.map(\n it => ({\n code: R.toLower(it),\n display: it\n }),\n Array.from(Array(7)).map((_, i) =>\n format('EEEE', add({ days: i }, startOfWeek(new Date())))\n )\n)\n\nconst HourOfDayBarGraphHeader = ({\n title,\n period,\n data,\n machines,\n selectedMachine,\n handleMachineChange,\n timezone,\n currency\n}) => {\n const classes = useStyles()\n\n const [graphType, setGraphType] = useState(options[0].code)\n const [selectedDay, setSelectedDay] = useState(dayOptions[0])\n\n const legend = {\n cashIn:
,\n cashOut:
\n }\n\n const offset = getTimezoneOffset(timezone)\n\n const txsPerWeekday = R.reduce(\n (acc, value) => {\n const created = new Date(value.created)\n created.setTime(\n created.getTime() + created.getTimezoneOffset() * MINUTE + offset\n )\n switch (created.getDay()) {\n case 0:\n acc.sunday.push(value)\n break\n case 1:\n acc.monday.push(value)\n break\n case 2:\n acc.tuesday.push(value)\n break\n case 3:\n acc.wednesday.push(value)\n break\n case 4:\n acc.thursday.push(value)\n break\n case 5:\n acc.friday.push(value)\n break\n case 6:\n acc.saturday.push(value)\n break\n default:\n throw new Error('Day of week not recognized')\n }\n return acc\n },\n R.fromPairs(R.map(it => [it.code, []], dayOptions)),\n data\n )\n\n return (\n <>\n \n
\n
{title} \n \n \n \n \n \n
\n setGraphType(e.target.value)}\n />\n \n \n
\n
\n it.code === graphType)(options)}\n period={period}\n data={txsPerWeekday[selectedDay.code]}\n timezone={timezone}\n currency={currency}\n selectedMachine={selectedMachine}\n machines={machines}\n selectedDay={selectedDay}\n />\n >\n )\n}\n\nexport default HourOfDayBarGraphHeader\n","import { Box } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React from 'react'\n\nimport { Select } from 'src/components/inputs'\nimport { H2 } from 'src/components/typography'\nimport { primaryColor } from 'src/styling/variables'\n\nimport styles from '../../Analytics.styles'\nimport Graph from '../../graphs/Graph'\nimport LegendEntry from '../LegendEntry'\n\nconst useStyles = makeStyles(styles)\n\nconst OverTimeDotGraphHeader = ({\n title,\n representing,\n period,\n data,\n machines,\n selectedMachine,\n handleMachineChange,\n timezone,\n currency\n}) => {\n const classes = useStyles()\n\n const legend = {\n cashIn:
,\n cashOut:
,\n transaction:
,\n average: (\n \n \n \n )\n }\n\n return (\n <>\n \n
\n
{title} \n \n \n \n \n \n \n \n
\n \n
\n
\n \n >\n )\n}\n\nexport default OverTimeDotGraphHeader\n","import { Box } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { RadioGroup } from 'src/components/inputs'\nimport { H2 } from 'src/components/typography'\n\nimport styles from '../../Analytics.styles'\nimport Graph from '../../graphs/Graph'\nimport LegendEntry from '../LegendEntry'\n\nconst useStyles = makeStyles(styles)\n\nconst options = [\n { code: 'topMachinesTransactions', display: 'Transactions' },\n { code: 'topMachinesVolume', display: 'Volume' }\n]\n\nconst TopMachinesBarGraphHeader = ({\n title,\n period,\n data,\n machines,\n selectedMachine,\n timezone,\n currency\n}) => {\n const classes = useStyles()\n\n const [graphType, setGraphType] = useState(options[0].code)\n\n const legend = {\n cashIn:
,\n cashOut:
\n }\n\n return (\n <>\n \n
\n
{title} \n \n \n \n \n \n
\n setGraphType(e.target.value)}\n />\n
\n
\n \n >\n )\n}\n\nexport default TopMachinesBarGraphHeader\n","import { useQuery } from '@apollo/react-hooks'\nimport { Box } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport { endOfToday } from 'date-fns'\nimport { subDays } from 'date-fns/fp'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { Select } from 'src/components/inputs'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport { Info2, P } from 'src/components/typography'\nimport { ReactComponent as DownIcon } from 'src/styling/icons/dashboard/down.svg'\nimport { ReactComponent as EqualIcon } from 'src/styling/icons/dashboard/equal.svg'\nimport { ReactComponent as UpIcon } from 'src/styling/icons/dashboard/up.svg'\nimport { fromNamespace } from 'src/utils/config'\nimport { numberToFiatAmount } from 'src/utils/number'\nimport { DAY, WEEK, MONTH } from 'src/utils/time'\n\nimport styles from './Analytics.styles'\nimport LegendEntry from './components/LegendEntry'\nimport HourOfDayWrapper from './components/wrappers/HourOfDayWrapper'\nimport OverTimeWrapper from './components/wrappers/OverTimeWrapper'\nimport TopMachinesWrapper from './components/wrappers/TopMachinesWrapper'\n\nconst useStyles = makeStyles(styles)\n\nconst MACHINE_OPTIONS = [{ code: 'all', display: 'All machines' }]\nconst REPRESENTING_OPTIONS = [\n { code: 'overTime', display: 'Over time' },\n { code: 'topMachines', display: 'Top Machines' },\n { code: 'hourOfTheDay', display: 'Hour of the day' }\n]\nconst PERIOD_OPTIONS = [\n { code: 'day', display: 'Last 24 hours' },\n { code: 'week', display: 'Last 7 days' },\n { code: 'month', display: 'Last 30 days' }\n]\nconst TIME_OPTIONS = {\n day: DAY,\n week: WEEK,\n month: MONTH\n}\n\nconst GET_TRANSACTIONS = gql`\n query transactions(\n $from: Date\n $until: Date\n $excludeTestingCustomers: Boolean\n ) {\n transactions(\n from: $from\n until: $until\n excludeTestingCustomers: $excludeTestingCustomers\n ) {\n id\n txClass\n txHash\n toAddress\n commissionPercentage\n expired\n machineName\n operatorCompleted\n sendConfirmed\n dispense\n hasError: error\n deviceId\n fiat\n cashInFee\n fiatCode\n cryptoAtoms\n cryptoCode\n toAddress\n created\n }\n }\n`\n\nconst GET_DATA = gql`\n query getData {\n config\n machines {\n name\n deviceId\n }\n fiatRates {\n code\n name\n rate\n }\n }\n`\n\nconst OverviewEntry = ({ label, value, oldValue, currency }) => {\n const classes = useStyles()\n\n const _oldValue = !oldValue || R.equals(oldValue, 0) ? 1 : oldValue\n const growthRate = ((value - oldValue) * 100) / _oldValue\n\n const growthClasses = {\n [classes.growthPercentage]: true,\n [classes.growth]: R.gt(value, oldValue),\n [classes.decline]: R.gt(oldValue, value)\n }\n\n return (\n \n
{label}
\n
\n {numberToFiatAmount(value)} \n {!!currency && ` ${currency}`}\n \n
\n {R.gt(growthRate, 0) && }\n {R.lt(growthRate, 0) && }\n {R.equals(growthRate, 0) && }\n \n {numberToFiatAmount(growthRate)}%\n
\n \n
\n )\n}\n\nconst Analytics = () => {\n const classes = useStyles()\n\n const { data: txResponse, loading: txLoading } = useQuery(GET_TRANSACTIONS, {\n variables: {\n from: subDays(65, endOfToday()),\n until: endOfToday(),\n excludeTestingCustomers: true\n }\n })\n const { data: configResponse, loading: configLoading } = useQuery(GET_DATA)\n\n const [representing, setRepresenting] = useState(REPRESENTING_OPTIONS[0])\n const [period, setPeriod] = useState(PERIOD_OPTIONS[0])\n const [machine, setMachine] = useState(MACHINE_OPTIONS[0])\n\n const loading = txLoading || configLoading\n\n const transactions = R.path(['transactions'])(txResponse) ?? []\n const machines = R.path(['machines'])(configResponse) ?? []\n const config = R.path(['config'])(configResponse) ?? []\n const rates = R.path(['fiatRates'])(configResponse) ?? []\n const fiatLocale = fromNamespace('locale')(config).fiatCurrency\n\n const timezone = config?.locale_timezone\n\n const convertFiatToLocale = item => {\n if (item.fiatCode === fiatLocale) return item\n const itemRate = R.find(R.propEq('code', item.fiatCode))(rates)\n const localeRate = R.find(R.propEq('code', fiatLocale))(rates)\n const multiplier = localeRate?.rate / itemRate?.rate\n return { ...item, fiat: parseFloat(item.fiat) * multiplier }\n }\n\n const data =\n R.map(convertFiatToLocale)(\n transactions?.filter(\n tx =>\n (!tx.dispensed || !tx.expired) && (tx.sendConfirmed || tx.dispense)\n )\n ) ?? []\n\n const machineOptions = R.clone(MACHINE_OPTIONS)\n\n R.forEach(\n m => machineOptions.push({ code: m.deviceId, display: m.name }),\n machines\n )\n\n const machineTxs = R.filter(\n tx => (machine.code === 'all' ? true : tx.deviceId === machine.code),\n data\n )\n\n const filteredData = timeInterval => ({\n current:\n machineTxs.filter(\n d => new Date(d.created) >= Date.now() - TIME_OPTIONS[timeInterval]\n ) ?? [],\n previous:\n machineTxs.filter(\n d =>\n new Date(d.created) < Date.now() - TIME_OPTIONS[timeInterval] &&\n new Date(d.created) >= Date.now() - 2 * TIME_OPTIONS[timeInterval]\n ) ?? []\n })\n\n const txs = {\n current: filteredData(period.code).current.length,\n previous: filteredData(period.code).previous.length\n }\n\n const avgAmount = {\n current:\n R.sum(R.map(d => d.fiat, filteredData(period.code).current)) /\n (txs.current === 0 ? 1 : txs.current),\n previous:\n R.sum(R.map(d => d.fiat, filteredData(period.code).previous)) /\n (txs.previous === 0 ? 1 : txs.previous)\n }\n\n const txVolume = {\n current: R.sum(R.map(d => d.fiat, filteredData(period.code).current)),\n previous: R.sum(R.map(d => d.fiat, filteredData(period.code).previous))\n }\n\n const commissions = {\n current: R.sum(\n R.map(\n d => d.fiat * d.commissionPercentage,\n filteredData(period.code).current\n )\n ),\n previous: R.sum(\n R.map(\n d => d.fiat * d.commissionPercentage,\n filteredData(period.code).previous\n )\n )\n }\n\n const getGraphInfo = representing => {\n switch (representing.code) {\n case 'overTime':\n return (\n \n )\n case 'topMachines':\n return (\n \n )\n case 'hourOfTheDay':\n return (\n \n )\n default:\n throw new Error(`There's no graph info to represent ${representing}`)\n }\n }\n\n return (\n !loading && (\n <>\n \n \n \n \n \n \n \n \n {getGraphInfo(representing)}\n >\n )\n )\n}\n\nexport default Analytics\n","import { spacer, white } from 'src/styling/variables'\nconst styles = {\n grid: {\n flex: 1,\n height: '100%'\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n marginLeft: spacer * 6\n },\n footer: {\n margin: [['auto', 0, spacer * 3, 'auto']]\n },\n modalTitle: {\n margin: [['auto', 0, 8.5, 'auto']]\n },\n subtitle: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n flexDirection: 'row'\n },\n white: {\n color: white\n },\n deleteButton: {\n paddingLeft: 13\n },\n addressRow: {\n marginLeft: 8\n },\n error: {\n marginTop: 20\n },\n closeButton: {\n display: 'flex',\n padding: [[spacer * 2, spacer * 2, 0, spacer * 2]],\n paddingRight: spacer * 1.5,\n justifyContent: 'end'\n },\n dialogTitle: {\n margin: [[0, spacer * 2, spacer, spacer * 4 + spacer]]\n },\n dialogContent: {\n width: 615,\n marginLeft: 16\n },\n dialogActions: {\n padding: spacer * 4,\n paddingTop: spacer * 2\n },\n cancelButton: {\n marginRight: 8,\n padding: 0\n }\n}\n\nexport default styles\n","import { Box } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { Formik, Form, Field } from 'formik'\nimport * as R from 'ramda'\nimport React from 'react'\nimport * as Yup from 'yup'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Modal from 'src/components/Modal'\nimport { Link } from 'src/components/buttons'\nimport { TextInput } from 'src/components/inputs/formik'\nimport { H3 } from 'src/components/typography'\n\nimport styles from './Blacklist.styles'\nconst useStyles = makeStyles(styles)\n\nconst BlackListModal = ({\n onClose,\n selectedCoin,\n addToBlacklist,\n errorMsg\n}) => {\n const classes = useStyles()\n const handleAddToBlacklist = address => {\n if (selectedCoin.code === 'BCH' && !address.startsWith('bitcoincash:')) {\n address = 'bitcoincash:' + address\n }\n addToBlacklist(selectedCoin.code, address)\n }\n const placeholderAddress = {\n BTC: '1ADwinnimZKGgQ3dpyfoUZvJh4p1UWSSpD',\n ETH: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F',\n LTC: 'LPKvbjwV1Kaksktzkr7TMK3FQtQEEe6Wqa',\n DASH: 'XqQ7gU8eM76rEfey726cJpT2RGKyJyBrcn',\n ZEC: 't1KGyyv24eL354C9gjveBGEe8Xz9UoPKvHR',\n BCH: 'qrd6za97wm03lfyg82w0c9vqgc727rhemg5yd9k3dm',\n USDT: '0x5754284f345afc66a98fbb0a0afe71e0f007b949',\n XMR:\n '888tNkZrPN6JsEgekjMnABU4TBzc2Dt29EPAvkRxbANsAnjyPbb3iQ1YBRk1UXcdRsiKc9dhwMVgN5S9cQUiyoogDavup3H'\n }\n\n return (\n \n {\n handleAddToBlacklist(address.trim())\n }}>\n \n \n \n \n \n Blacklist address\n \n \n
\n \n )\n}\n\nexport default BlackListModal\n","import { makeStyles, Box } from '@material-ui/core'\nimport classnames from 'classnames'\nimport * as R from 'ramda'\nimport React, { useState, useEffect } from 'react'\nimport {\n AutoSizer,\n List,\n CellMeasurer,\n CellMeasurerCache\n} from 'react-virtualized'\n\nimport {\n Table,\n TBody,\n THead,\n Tr,\n Td,\n Th\n} from 'src/components/fake-table/Table'\nimport { EmptyTable } from 'src/components/table'\nimport { H4 } from 'src/components/typography'\nimport { ReactComponent as ExpandClosedIcon } from 'src/styling/icons/action/expand/closed.svg'\nimport { ReactComponent as ExpandOpenIcon } from 'src/styling/icons/action/expand/open.svg'\n\nimport styles from './DataTable.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst Row = ({\n id,\n index,\n elements,\n data,\n width,\n Details,\n expanded,\n expandRow,\n expWidth,\n expandable,\n onClick,\n size,\n ...props\n}) => {\n const classes = useStyles()\n\n const hasPointer = onClick || expandable\n const trClasses = {\n [classes.pointer]: hasPointer,\n [classes.row]: true,\n [classes.expanded]: expanded\n }\n\n return (\n \n
\n
{\n expandable && expandRow(id, data)\n onClick && onClick(data)\n }}\n error={data.error || data.hasError || data.batchError}\n shouldShowError={false}\n errorMessage={data.errorMessage || data.hasError || data.batchError}>\n {elements.map(({ view = it => it?.toString(), ...props }, idx) => (\n \n {view(data)}\n \n ))}\n {expandable && (\n \n expandRow(id, data)}\n className={classes.expandButton}>\n {expanded && }\n {!expanded && }\n \n \n )}\n \n \n {expandable && expanded && (\n
\n
\n \n \n \n \n \n )}\n
\n )\n}\n\nconst DataTable = ({\n elements = [],\n data = [],\n Details,\n className,\n expandable,\n initialExpanded,\n onClick,\n loading,\n emptyText,\n rowSize,\n ...props\n}) => {\n const [expanded, setExpanded] = useState(initialExpanded)\n\n useEffect(() => setExpanded(initialExpanded), [initialExpanded])\n\n const coreWidth = R.compose(R.sum, R.map(R.prop('width')))(elements)\n const expWidth = 1200 - coreWidth\n const width = coreWidth + (expandable ? expWidth : 0)\n\n const classes = useStyles({ width })\n\n const expandRow = (id, data) => {\n if (data.id) {\n cache.clear(data.id)\n setExpanded(data.id === expanded ? null : data.id)\n } else {\n cache.clear(id)\n setExpanded(id === expanded ? null : id)\n }\n }\n\n const cache = new CellMeasurerCache({\n defaultHeight: 58,\n fixedWidth: true\n })\n\n function rowRenderer({ index, key, parent, style }) {\n return (\n \n {({ registerChild }) => (\n \n
\n
\n )}\n \n )\n }\n\n return (\n \n \n \n {elements.map(({ width, className, textAlign, header }, idx) => (\n \n {header}\n \n ))}\n {expandable && }\n \n \n {loading && Loading... }\n {!loading && R.isEmpty(data) && }\n {!loading && !R.isEmpty(data) && (\n \n {({ height }) => (\n
\n )}\n \n )}\n \n
\n \n )\n}\n\nexport default DataTable\n","import { makeStyles } from '@material-ui/core/styles'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { DeleteDialog } from 'src/components/DeleteDialog'\nimport { IconButton } from 'src/components/buttons'\nimport DataTable from 'src/components/tables/DataTable'\nimport { Label1 } from 'src/components/typography'\nimport CopyToClipboard from 'src/pages/Transactions/CopyToClipboard'\nimport { ReactComponent as DeleteIcon } from 'src/styling/icons/action/delete/enabled.svg'\n\nimport styles from './Blacklist.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst BlacklistTable = ({\n data,\n selectedCoin,\n handleDeleteEntry,\n errorMessage,\n setErrorMessage,\n deleteDialog,\n setDeleteDialog\n}) => {\n const classes = useStyles()\n\n const [toBeDeleted, setToBeDeleted] = useState()\n\n const elements = [\n {\n name: 'address',\n header: {'Addresses'} ,\n width: 800,\n textAlign: 'left',\n size: 'sm',\n view: it => (\n \n {R.path(['address'], it)} \n
\n )\n },\n {\n name: 'deleteButton',\n header: {'Delete'} ,\n width: 130,\n textAlign: 'center',\n size: 'sm',\n view: it => (\n {\n setDeleteDialog(true)\n setToBeDeleted(it)\n }}>\n \n \n )\n }\n ]\n const dataToShow = selectedCoin\n ? data[selectedCoin.code]\n : data[R.keys(data)[0]]\n\n return (\n <>\n \n {\n setDeleteDialog(false)\n setErrorMessage(null)\n }}\n onConfirmed={() => {\n setErrorMessage(null)\n handleDeleteEntry(\n R.path(['cryptoCode'], toBeDeleted),\n R.path(['address'], toBeDeleted)\n )\n }}\n errorMessage={errorMessage}\n />\n >\n )\n}\n\nexport default BlacklistTable\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { Box, Dialog, DialogContent, DialogActions } from '@material-ui/core'\nimport Grid from '@material-ui/core/Grid'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport { utils as coinUtils } from 'lamassu-coins'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { HoverableTooltip } from 'src/components/Tooltip'\nimport { Link, Button, IconButton } from 'src/components/buttons'\nimport { Switch } from 'src/components/inputs'\nimport Sidebar from 'src/components/layout/Sidebar'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport { H4, H2, Label2, P, Info3, Info2 } from 'src/components/typography'\nimport { ReactComponent as CloseIcon } from 'src/styling/icons/action/close/zodiac.svg'\nimport { fromNamespace, toNamespace } from 'src/utils/config'\n\nimport styles from './Blacklist.styles'\nimport BlackListModal from './BlacklistModal'\nimport BlacklistTable from './BlacklistTable'\n\nconst useStyles = makeStyles(styles)\n\nconst groupByCode = R.groupBy(obj => obj.cryptoCode)\n\nconst DELETE_ROW = gql`\n mutation DeleteBlacklistRow($cryptoCode: String!, $address: String!) {\n deleteBlacklistRow(cryptoCode: $cryptoCode, address: $address) {\n cryptoCode\n address\n }\n }\n`\n\nconst GET_BLACKLIST = gql`\n query getBlacklistData {\n blacklist {\n cryptoCode\n address\n }\n cryptoCurrencies {\n display\n code\n }\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst GET_INFO = gql`\n query getData {\n config\n }\n`\n\nconst ADD_ROW = gql`\n mutation InsertBlacklistRow($cryptoCode: String!, $address: String!) {\n insertBlacklistRow(cryptoCode: $cryptoCode, address: $address) {\n cryptoCode\n address\n }\n }\n`\n\nconst PaperWalletDialog = ({ onConfirmed, onDissmised, open, props }) => {\n const classes = useStyles()\n\n return (\n \n \n \n \n \n
\n \n {'Are you sure you want to enable this?'}\n \n \n {`This mode means that only paper wallets will be printed for users, and they won't be permitted to scan an address from their own wallet.`} \n {`This mode is only useful for countries like Switzerland which mandates such a feature.\\n`} \n {`Don't enable this if you want users to be able to scan an address of their choosing.`} \n \n \n onDissmised()}>\n Cancel\n \n onConfirmed(true)}>Confirm \n \n \n )\n}\n\nconst Blacklist = () => {\n const { data: blacklistResponse } = useQuery(GET_BLACKLIST)\n const { data: configData } = useQuery(GET_INFO)\n const [showModal, setShowModal] = useState(false)\n const [clickedItem, setClickedItem] = useState({\n code: 'BTC',\n display: 'Bitcoin'\n })\n const [errorMsg, setErrorMsg] = useState(null)\n const [deleteDialog, setDeleteDialog] = useState(false)\n const [confirmDialog, setConfirmDialog] = useState(false)\n\n const [deleteEntry] = useMutation(DELETE_ROW, {\n onError: ({ message }) => {\n const errorMessage = message ?? 'Error while deleting row'\n setErrorMsg(errorMessage)\n },\n onCompleted: () => setDeleteDialog(false),\n refetchQueries: () => ['getBlacklistData']\n })\n\n const [addEntry] = useMutation(ADD_ROW, {\n onError: () => console.log('Error while adding row'),\n refetchQueries: () => ['getBlacklistData']\n })\n\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n refetchQueries: () => ['getData']\n })\n\n const classes = useStyles()\n\n const blacklistData = R.path(['blacklist'])(blacklistResponse) ?? []\n const availableCurrencies =\n R.path(['cryptoCurrencies'], blacklistResponse) ?? []\n\n const formattedData = groupByCode(blacklistData)\n\n const complianceConfig =\n configData?.config && fromNamespace('compliance')(configData.config)\n\n const rejectAddressReuse = !!complianceConfig?.rejectAddressReuse\n\n const enablePaperWalletOnly = !!complianceConfig?.enablePaperWalletOnly\n\n const addressReuseSave = rawConfig => {\n const config = toNamespace('compliance')(rawConfig)\n return saveConfig({ variables: { config } })\n }\n\n const onClickSidebarItem = e => {\n setClickedItem({ code: e.code, display: e.display })\n }\n\n const handleDeleteEntry = (cryptoCode, address) => {\n deleteEntry({ variables: { cryptoCode, address } })\n }\n\n const handleConfirmDialog = confirm => {\n addressReuseSave({\n enablePaperWalletOnly: confirm\n })\n setConfirmDialog(false)\n }\n\n const validateAddress = (cryptoCode, address) => {\n try {\n return !R.isNil(coinUtils.parseUrl(cryptoCode, 'main', address))\n } catch {\n return false\n }\n }\n\n const addToBlacklist = async (cryptoCode, address) => {\n setErrorMsg(null)\n if (!validateAddress(cryptoCode, address)) {\n setErrorMsg('Invalid address')\n return\n }\n const res = await addEntry({ variables: { cryptoCode, address } })\n if (!res.errors) {\n return setShowModal(false)\n }\n const duplicateKeyError = res.errors.some(e => {\n return e.message.includes('duplicate')\n })\n if (duplicateKeyError) {\n setErrorMsg('This address is already being blocked')\n } else {\n setErrorMsg('Server error')\n }\n }\n\n return (\n <>\n {\n setConfirmDialog(false)\n }}\n />\n \n \n setShowModal(true)}>\n Blacklist new addresses\n \n \n \n \n it.display}\n onClick={onClickSidebarItem}\n />\n \n
\n \n {clickedItem.display\n ? `${clickedItem.display} blacklisted addresses`\n : ''}{' '}\n \n \n Enable paper wallet (only)
\n \n enablePaperWalletOnly\n ? addressReuseSave({\n enablePaperWalletOnly: e.target.checked\n })\n : setConfirmDialog(true)\n }\n value={enablePaperWalletOnly}\n />\n {enablePaperWalletOnly ? 'On' : 'Off'} \n \n \n The \"Enable paper wallet (only)\" option means that only paper\n wallets will be printed for users, and they won't be permitted\n to scan an address from their own wallet.\n
\n \n \n \n Reject reused addresses
\n {\n addressReuseSave({ rejectAddressReuse: event.target.checked })\n }}\n value={rejectAddressReuse}\n />\n {rejectAddressReuse ? 'On' : 'Off'} \n \n \n The \"Reject reused addresses\" option means that all addresses\n that are used once will be automatically rejected if there's\n an attempt to use them again on a new transaction.\n
\n \n \n \n
\n
\n \n {showModal && (\n {\n setErrorMsg(null)\n setShowModal(false)\n }}\n errorMsg={errorMsg}\n selectedCoin={clickedItem}\n addToBlacklist={addToBlacklist}\n />\n )}\n >\n )\n}\n\nexport default Blacklist\n","import Blacklist from './Blacklist'\n\nexport default Blacklist\n","import { makeStyles } from '@material-ui/core'\nimport React from 'react'\n\nimport { Button } from 'src/components/buttons'\nimport { H1, P, Info2 } from 'src/components/typography'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport { neon, spacer } from 'src/styling/variables'\n\nconst styles = {\n logo: {\n maxHeight: 80,\n maxWidth: 200\n },\n subtitle: {\n margin: 0,\n marginBottom: 42,\n textAlign: 'center'\n },\n text: {\n margin: 0\n },\n button: {\n margin: [[0, 'auto']]\n },\n modalContent: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n flex: 1,\n padding: [[0, 34, 107, 34]]\n },\n innerContent: {\n paddingBottom: 72\n },\n title: {\n color: neon,\n marginBottom: 12,\n marginTop: 30,\n textAlign: 'center'\n },\n titleDecorator: {\n verticalAlign: 'bottom',\n marginRight: spacer * 1.5,\n width: spacer * 3,\n height: spacer * 3.25\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst WizardSplash = ({ name, onContinue }) => {\n const classes = useStyles()\n\n return (\n \n
\n
\n \n Enable cash-out \n \n
{name} \n
\n You are about to activate cash-out functionality on your {name}{' '}\n machine which will allow your customers to sell crypto to you.\n
\n
\n In order to activate cash-out for this machine, please enter the\n denominations for the machine.\n
\n
\n
\n Start configuration\n \n
\n )\n}\n\nexport default WizardSplash\n","export default __webpack_public_path__ + \"static/media/cashout-cassette-1.fac6c691.svg\";","export default __webpack_public_path__ + \"static/media/cashout-cassette-2.34a98cfa.svg\";","import { errorColor, spacer } from 'src/styling/variables'\n\nconst LABEL_WIDTH = 150\n\nexport default {\n title: {\n margin: [[0, 0, 12, 0]]\n },\n titleDiv: {\n paddingBottom: 32\n },\n subtitle: {\n margin: [[32, 0, 21, 0]]\n },\n edit: {\n margin: [[0, 0, 0, 0]]\n },\n error: {\n color: errorColor\n },\n bill: {\n width: 131,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'end'\n },\n billInput: {\n width: '100%'\n },\n suffix: {\n paddingLeft: spacer * 2\n },\n button: {\n marginLeft: 'auto'\n },\n submit: {\n float: 'right'\n },\n picker: {\n width: LABEL_WIDTH\n },\n header: {\n display: 'flex',\n marginBottom: 95\n },\n thirdStepHeader: {\n display: 'flex',\n paddingBottom: 188\n },\n step: {\n flex: 1\n },\n stepImage: {\n position: 'relative',\n top: -20,\n right: 14\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n flex: 1,\n paddingBottom: 32\n },\n disclaimer: {\n display: 'flex',\n flex: 1,\n flexDirection: 'column',\n justifyContent: 'space-between'\n },\n disclaimerIcon: {\n float: 'left',\n margin: [[-4, 16, 48, 0]]\n }\n}\n","import { makeStyles } from '@material-ui/core'\nimport { Formik, Form, Field } from 'formik'\nimport React from 'react'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Stepper from 'src/components/Stepper'\nimport { Button } from 'src/components/buttons'\nimport { NumberInput } from 'src/components/inputs/formik'\nimport { Info2, H4, P, Info1, Label1 } from 'src/components/typography'\nimport cassetteOne from 'src/styling/icons/cassettes/cashout-cassette-1.svg'\nimport cassetteTwo from 'src/styling/icons/cassettes/cashout-cassette-2.svg'\nimport tejo3CassetteOne from 'src/styling/icons/cassettes/tejo/3-cassettes/3-cassettes-open-1-left.svg'\nimport tejo3CassetteTwo from 'src/styling/icons/cassettes/tejo/3-cassettes/3-cassettes-open-2-left.svg'\nimport tejo3CassetteThree from 'src/styling/icons/cassettes/tejo/3-cassettes/3-cassettes-open-3-left.svg'\nimport tejo4CassetteOne from 'src/styling/icons/cassettes/tejo/4-cassettes/4-cassettes-open-1-left.svg'\nimport tejo4CassetteTwo from 'src/styling/icons/cassettes/tejo/4-cassettes/4-cassettes-open-2-left.svg'\nimport tejo4CassetteThree from 'src/styling/icons/cassettes/tejo/4-cassettes/4-cassettes-open-3-left.svg'\nimport tejo4CassetteFour from 'src/styling/icons/cassettes/tejo/4-cassettes/4-cassettes-open-4-left.svg'\nimport { ReactComponent as WarningIcon } from 'src/styling/icons/warning-icon/comet.svg'\n\nimport styles from './WizardStep.styles'\nconst useStyles = makeStyles(styles)\n\nconst getCassetesArtworks = () => ({\n 2: {\n 1: cassetteOne,\n 2: cassetteTwo\n },\n 3: {\n 1: tejo3CassetteOne,\n 2: tejo3CassetteTwo,\n 3: tejo3CassetteThree\n },\n 4: {\n 1: tejo4CassetteOne,\n 2: tejo4CassetteTwo,\n 3: tejo4CassetteThree,\n 4: tejo4CassetteFour\n }\n})\n\nconst WizardStep = ({\n name,\n step,\n schema,\n error,\n lastStep,\n onContinue,\n steps,\n fiatCurrency,\n options,\n numberOfCassettes\n}) => {\n const classes = useStyles()\n\n const label = lastStep ? 'Finish' : 'Next'\n\n return (\n <>\n \n {name} \n \n
\n\n {step <= numberOfCassettes && (\n \n \n \n )}\n\n {step === numberOfCassettes + 1 && (\n \n \n \n )}\n\n {lastStep && (\n \n
Cash Cassette Bill Count \n
\n \n When enabling cash-out, your bill count will be automatically set to\n zero. Make sure you physically put cash inside the cash cassettes to\n allow the machine to dispense it to your users. If you already did,\n make sure you set the correct cash cassette bill count for this\n machine on your Cash Boxes & Cassettes tab under Maintenance.\n
\n\n
Default Commissions \n
\n \n When enabling cash-out, default commissions will be set. To change\n commissions for this machine, please go to the Commissions tab under\n Settings where you can set exceptions for each of the available\n cryptocurrencies.\n
\n
\n {error && Failed to save }\n onContinue()}>\n {label}\n \n
\n
\n )}\n >\n )\n}\n\nexport default WizardStep\n","import * as R from 'ramda'\nimport * as Yup from 'yup'\n\nimport { Autocomplete, NumberInput } from 'src/components/inputs/formik'\nimport { bold } from 'src/styling/helpers'\nimport denominations from 'src/utils/bill-denominations'\nimport { getBillOptions } from 'src/utils/bill-options'\nimport { CURRENCY_MAX } from 'src/utils/constants'\nimport { transformNumber } from 'src/utils/number'\n\nconst widthsByNumberOfCassettes = {\n 2: { machine: 300, cassette: 225, zeroConf: 200 },\n 3: { machine: 210, cassette: 180, zeroConf: 200 },\n 4: { machine: 200, cassette: 150, zeroConf: 150 }\n}\n\nconst DenominationsSchema = Yup.object().shape({\n cassette1: Yup.number()\n .label('Cassette 1')\n .required()\n .min(1)\n .max(CURRENCY_MAX),\n cassette2: Yup.number()\n .label('Cassette 2')\n .required()\n .min(1)\n .max(CURRENCY_MAX),\n cassette3: Yup.number()\n .label('Cassette 3')\n .min(1)\n .max(CURRENCY_MAX)\n .nullable()\n .transform(transformNumber),\n cassette4: Yup.number()\n .label('Cassette 4')\n .min(1)\n .max(CURRENCY_MAX)\n .nullable()\n .transform(transformNumber)\n})\n\nconst getElements = (machines, locale = {}, classes) => {\n const fiatCurrency = R.prop('fiatCurrency')(locale)\n const maxNumberOfCassettes = Math.max(\n ...R.map(it => it.numberOfCassettes, machines),\n 0\n )\n\n const options = getBillOptions(locale, denominations)\n const cassetteProps =\n options?.length > 0\n ? {\n options: options,\n labelProp: 'display',\n valueProp: 'code',\n className: classes.autoComplete\n }\n : { decimalPlaces: 0 }\n\n const elements = [\n {\n name: 'id',\n header: 'Machine',\n width: widthsByNumberOfCassettes[maxNumberOfCassettes]?.machine,\n view: it => machines.find(({ deviceId }) => deviceId === it).name,\n size: 'sm',\n editable: false\n }\n ]\n\n R.until(\n R.gt(R.__, maxNumberOfCassettes),\n it => {\n elements.push({\n name: `cassette${it}`,\n header: `Cassette ${it}`,\n size: 'sm',\n stripe: true,\n textAlign: 'right',\n width: widthsByNumberOfCassettes[maxNumberOfCassettes]?.cassette,\n suffix: fiatCurrency,\n bold: bold,\n view: it => it,\n input: options?.length > 0 ? Autocomplete : NumberInput,\n inputProps: cassetteProps,\n doubleHeader: 'Denominations',\n isHidden: machine =>\n it >\n machines.find(({ deviceId }) => deviceId === machine.id)\n .numberOfCassettes\n })\n return R.add(1, it)\n },\n 1\n )\n\n return elements\n}\n\nexport { DenominationsSchema, getElements }\n","import * as R from 'ramda'\nimport React, { useState } from 'react'\nimport * as Yup from 'yup'\n\nimport Modal from 'src/components/Modal'\nimport { Autocomplete } from 'src/components/inputs/formik'\nimport denominations from 'src/utils/bill-denominations'\nimport { getBillOptions } from 'src/utils/bill-options'\nimport { toNamespace } from 'src/utils/config'\nimport { transformNumber } from 'src/utils/number'\n\nimport WizardSplash from './WizardSplash'\nimport WizardStep from './WizardStep'\nimport { DenominationsSchema } from './helper'\n\nconst MODAL_WIDTH = 554\nconst MODAL_HEIGHT = 520\n\nconst Wizard = ({ machine, locale, onClose, save, error }) => {\n const LAST_STEP = machine.numberOfCassettes + 2\n const [{ step, config }, setState] = useState({\n step: 0,\n config: { active: true }\n })\n\n const options = getBillOptions(locale, denominations)\n\n const title = `Enable cash-out`\n const isLastStep = step === LAST_STEP\n\n const onContinue = async it => {\n if (isLastStep) {\n return save(\n toNamespace(\n machine.deviceId,\n DenominationsSchema.cast(config, { assert: false })\n )\n )\n }\n\n const newConfig = R.merge(config, it)\n\n setState({\n step: step + 1,\n config: newConfig\n })\n }\n\n const steps = []\n\n R.until(\n R.gt(R.__, machine.numberOfCassettes),\n it => {\n steps.push({\n type: `cassette${it}`,\n display: `Cassette ${it}`,\n component: Autocomplete,\n inputProps: {\n options: R.map(it => ({ code: it, display: it }))(options),\n labelProp: 'display',\n valueProp: 'code'\n }\n })\n return R.add(1, it)\n },\n 1\n )\n\n steps.push({\n type: 'zeroConfLimit',\n display: '0-conf Limit',\n schema: Yup.object().shape({\n zeroConfLimit: Yup.number().required()\n })\n })\n\n const schema = () =>\n Yup.object().shape({\n cassette1: Yup.number().required(),\n cassette2:\n machine.numberOfCassettes > 1 && step >= 2\n ? Yup.number().required()\n : Yup.number()\n .transform(transformNumber)\n .nullable(),\n cassette3:\n machine.numberOfCassettes > 2 && step >= 3\n ? Yup.number().required()\n : Yup.number()\n .transform(transformNumber)\n .nullable(),\n cassette4:\n machine.numberOfCassettes > 3 && step >= 4\n ? Yup.number().required()\n : Yup.number()\n .transform(transformNumber)\n .nullable()\n })\n\n return (\n \n {step === 0 && (\n onContinue()} />\n )}\n {step !== 0 && (\n \n )}\n \n )\n}\n\nexport default Wizard\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { HoverableTooltip } from 'src/components/Tooltip'\nimport { NamespacedTable as EditableTable } from 'src/components/editableTable'\nimport { Switch } from 'src/components/inputs'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport { EmptyTable } from 'src/components/table'\nimport { P, Label2 } from 'src/components/typography'\nimport { fromNamespace, toNamespace } from 'src/utils/config'\n\nimport Wizard from './Wizard'\nimport { DenominationsSchema, getElements } from './helper'\n\nconst useStyles = makeStyles({\n fudgeFactor: {\n display: 'flex',\n alignItems: 'center'\n },\n switchLabel: {\n margin: 6,\n width: 24\n },\n autoComplete: {\n width: '100%'\n }\n})\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst GET_INFO = gql`\n query getData {\n machines {\n name\n deviceId\n cashbox\n cassette1\n cassette2\n cassette3\n cassette4\n numberOfCassettes\n }\n config\n }\n`\n\nconst CashOut = ({ name: SCREEN_KEY }) => {\n const classes = useStyles()\n const [wizard, setWizard] = useState(false)\n const { data, loading } = useQuery(GET_INFO)\n\n const [saveConfig, { error }] = useMutation(SAVE_CONFIG, {\n onCompleted: () => setWizard(false),\n refetchQueries: () => ['getData']\n })\n\n const save = (rawConfig, accounts) => {\n const config = toNamespace(SCREEN_KEY)(rawConfig)\n return saveConfig({ variables: { config, accounts } })\n }\n\n const config = data?.config && fromNamespace(SCREEN_KEY)(data.config)\n\n const fudgeFactorActive = config?.fudgeFactorActive ?? false\n const locale = data?.config && fromNamespace('locale')(data.config)\n const machines = data?.machines ?? []\n\n const onToggle = id => {\n const namespaced = fromNamespace(id)(config)\n if (!DenominationsSchema.isValidSync(namespaced)) return setWizard(id)\n save(toNamespace(id, { active: !namespaced?.active }))\n }\n\n const wasNeverEnabled = it => R.compose(R.length, R.keys)(it) === 1\n\n return (\n !loading && (\n <>\n \n \n
Transaction fudge factor
\n
{\n save({ fudgeFactorActive: event.target.checked })\n }}\n value={fudgeFactorActive}\n />\n \n {fudgeFactorActive ? 'On' : 'Off'}\n \n \n \n Automatically accept customer deposits as complete if their\n received amount is 100 crypto atoms or less.\n
\n \n (Crypto atoms are the smallest unit in each cryptocurrency.\n E.g., satoshis in Bitcoin, or wei in Ethereum.)\n
\n \n \n \n \n {R.isEmpty(machines) && }\n {wizard && (\n setWizard(false)}\n save={save}\n error={error?.message}\n locale={locale}\n />\n )}\n >\n )\n )\n}\n\nexport default CashOut\n","import Cashout from './Cashout'\n\nexport default Cashout\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/listing/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 1,\n x2: 20,\n y2: 1,\n id: \"Path-4\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 7,\n x2: 9,\n y2: 7,\n id: \"Path-4-Copy\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 13,\n x2: 20,\n y2: 13,\n id: \"Path-4-Copy-2\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 19,\n x2: 12,\n y2: 19,\n id: \"Path-4-Copy-3\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.20ca66ec.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/listing/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 1,\n x2: 20,\n y2: 1,\n id: \"Path-4\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 7,\n x2: 9,\n y2: 7,\n id: \"Path-4-Copy\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 13,\n x2: 20,\n y2: 13,\n id: \"Path-4-Copy-2\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 19,\n x2: 12,\n y2: 19,\n id: \"Path-4-Copy-3\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.e161cf6b.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 12,\n height: 12,\n rx: 3,\n ry: 3,\n fill: \"#44e188\"\n});\n\nfunction SvgSpring2(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 12,\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSpring2);\nexport default __webpack_public_path__ + \"static/media/spring2.9f3bb2f7.svg\";\nexport { ForwardRef as ReactComponent };","import * as R from 'ramda'\nimport React, { useState, memo } from 'react'\n\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport Section from 'src/components/layout/Section'\nimport {\n mainFields,\n overrides,\n getSchema,\n getOverridesSchema,\n defaults,\n overridesDefaults,\n getOrder\n} from 'src/pages/Commissions/helper'\n\nconst CommissionsDetails = memo(\n ({ config, locale, currency, data, error, save, saveOverrides }) => {\n const [isEditingDefault, setEditingDefault] = useState(false)\n const [isEditingOverrides, setEditingOverrides] = useState(false)\n\n const commission = config && !R.isEmpty(config) ? config : defaults\n const commissionOverrides = commission?.overrides ?? []\n\n const orderedCommissionsOverrides = R.sortWith([\n R.ascend(getOrder),\n R.ascend(R.prop('machine'))\n ])(commissionOverrides)\n\n const onEditingDefault = (it, editing) => setEditingDefault(editing)\n const onEditingOverrides = (it, editing) => setEditingOverrides(editing)\n\n return (\n <>\n \n \n >\n )\n }\n)\n\nexport default CommissionsDetails\n","import { makeStyles } from '@material-ui/core'\nimport * as R from 'ramda'\nimport React, { memo, useState } from 'react'\n\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport { Select } from 'src/components/inputs'\nimport {\n overridesDefaults,\n getCommissions,\n getListCommissionsSchema,\n commissionsList\n} from 'src/pages/Commissions/helper'\n\nconst styles = {\n headerLine: {\n display: 'flex',\n justifyContent: '',\n marginBottom: 24\n },\n select: {\n marginRight: 24\n },\n tableWrapper: {\n flex: 1,\n display: 'block',\n overflowY: 'auto',\n width: '100%',\n maxHeight: '70vh'\n }\n}\n\nconst SHOW_ALL = {\n code: 'SHOW_ALL',\n display: 'Show all'\n}\n\nconst ORDER_OPTIONS = [\n {\n code: 'machine',\n display: 'Machine Name'\n },\n {\n code: 'cryptoCurrencies',\n display: 'Cryptocurrency'\n },\n {\n code: 'cashIn',\n display: 'Cash-in'\n },\n {\n code: 'cashOut',\n display: 'Cash-out'\n },\n {\n code: 'fixedFee',\n display: 'Fixed Fee'\n },\n {\n code: 'minimumTx',\n display: 'Minimum Tx'\n }\n]\n\nconst useStyles = makeStyles(styles)\n\nconst getElement = (code, display) => ({\n code: code,\n display: display || code\n})\n\nconst sortCommissionsBy = prop => {\n switch (prop) {\n case ORDER_OPTIONS[0]:\n return R.sortBy(R.find(R.propEq('code', R.prop('machine'))))\n case ORDER_OPTIONS[1]:\n return R.sortBy(R.path(['cryptoCurrencies', 0]))\n default:\n return R.sortBy(R.prop(prop.code))\n }\n}\n\nconst filterCommissions = (coinFilter, machineFilter) =>\n R.compose(\n R.filter(\n it => (machineFilter === SHOW_ALL) | (machineFilter.code === it.machine)\n ),\n R.filter(\n it =>\n (coinFilter === SHOW_ALL) | (coinFilter.code === it.cryptoCurrencies[0])\n )\n )\n\nconst CommissionsList = memo(\n ({ config, localeConfig, currency, data, error, saveOverrides }) => {\n const classes = useStyles()\n\n const [machineFilter, setMachineFilter] = useState(SHOW_ALL)\n const [coinFilter, setCoinFilter] = useState(SHOW_ALL)\n const [orderProp, setOrderProp] = useState(ORDER_OPTIONS[0])\n\n const coins = R.prop('cryptoCurrencies', localeConfig) ?? []\n\n const getMachineCoins = deviceId => {\n const override = R.prop('overrides', localeConfig)?.find(\n R.propEq('machine', deviceId)\n )\n\n const machineCoins = override\n ? R.prop('cryptoCurrencies', override)\n : coins\n\n return R.xprod([deviceId], machineCoins)\n }\n\n const getMachineElement = it =>\n getElement(R.prop('deviceId', it), R.prop('name', it))\n\n const cryptoData = R.map(getElement)(coins)\n\n const machineData = R.sortBy(\n R.prop('display'),\n R.map(getMachineElement)(R.prop('machines', data))\n )\n\n const machinesCoinsTuples = R.unnest(\n R.map(getMachineCoins)(machineData.map(R.prop('code')))\n )\n\n const commissions = R.map(([deviceId, cryptoCode]) =>\n getCommissions(cryptoCode, deviceId, config)\n )(machinesCoinsTuples)\n\n const tableData = R.compose(\n sortCommissionsBy(orderProp),\n filterCommissions(coinFilter, machineFilter)\n )(commissions)\n\n return (\n \n
\n \n \n \n
\n
\n \n
\n
\n )\n }\n)\n\nexport default CommissionsList\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport TitleSection from 'src/components/layout/TitleSection'\nimport { ReactComponent as ReverseListingViewIcon } from 'src/styling/icons/circle buttons/listing-view/white.svg'\nimport { ReactComponent as ListingViewIcon } from 'src/styling/icons/circle buttons/listing-view/zodiac.svg'\nimport { ReactComponent as OverrideLabelIcon } from 'src/styling/icons/status/spring2.svg'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nimport CommissionsDetails from './components/CommissionsDetails'\nimport CommissionsList from './components/CommissionsList'\n\nconst styles = {\n listViewButton: {\n marginLeft: 4\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst GET_DATA = gql`\n query getData {\n config\n cryptoCurrencies {\n code\n display\n }\n machines {\n name\n deviceId\n }\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\nconst removeCoinFromOverride = crypto => override =>\n R.mergeRight(override, {\n cryptoCurrencies: R.without([crypto], override.cryptoCurrencies)\n })\n\nconst Commissions = ({ name: SCREEN_KEY }) => {\n const classes = useStyles()\n const [showMachines, setShowMachines] = useState(false)\n const [error, setError] = useState(null)\n const { data, loading } = useQuery(GET_DATA)\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n refetchQueries: () => ['getData'],\n onError: error => setError(error)\n })\n\n const config = data?.config && fromNamespace(SCREEN_KEY)(data.config)\n const localeConfig =\n data?.config && fromNamespace(namespaces.LOCALE)(data.config)\n\n const currency = R.prop('fiatCurrency')(localeConfig)\n const overrides = R.prop('overrides')(config)\n\n const save = it => {\n const config = toNamespace(SCREEN_KEY)(it.commissions[0])\n return saveConfig({ variables: { config } })\n }\n\n const saveOverrides = it => {\n const config = toNamespace(SCREEN_KEY)(it)\n setError(null)\n return saveConfig({ variables: { config } })\n }\n\n const saveOverridesFromList = it => (_, override) => {\n const cryptoOverriden = R.path(['cryptoCurrencies', 0], override)\n\n const sameMachine = R.eqProps('machine', override)\n const notSameOverride = it => !R.eqProps('cryptoCurrencies', override, it)\n\n const filterMachine = R.filter(R.both(sameMachine, notSameOverride))\n const removeCoin = removeCoinFromOverride(cryptoOverriden)\n\n const machineOverrides = R.map(removeCoin)(filterMachine(it))\n\n const overrides = machineOverrides.concat(\n R.filter(it => !sameMachine(it), it)\n )\n\n const config = {\n commissions_overrides: R.prepend(override, overrides)\n }\n\n return saveConfig({ variables: { config } })\n }\n\n const labels = showMachines\n ? [\n {\n label: 'Override value',\n icon: \n }\n ]\n : []\n\n return (\n <>\n \n\n {!showMachines && !loading && (\n \n )}\n {showMachines && !loading && (\n \n )}\n >\n )\n}\n\nexport default Commissions\n","import Commissions from './Commissions'\n\nexport default Commissions\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/authorize/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n stroke: \"#FFFFFF\",\n cx: 6,\n cy: 6,\n r: 5\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-13\",\n stroke: \"#FFFFFF\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n points: \"4 6.66666667 5 8 8 4\"\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.51296906.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/authorize/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-9\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n cx: 6,\n cy: 6,\n r: 5\n})), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-13\",\n stroke: \"#1B2559\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n points: \"4 6.66666667 5 8 8 4\"\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.2fe856d5.svg\";\nexport { ForwardRef as ReactComponent };","import { white, tomato, spring4, comet } from 'src/styling/variables'\n\nconst propertyCardStyles = {\n label1: {\n display: 'flex',\n marginBottom: 2,\n marginTop: 'auto',\n width: 85\n },\n label1Pending: {\n color: comet\n },\n label1Rejected: {\n color: tomato\n },\n label1Accepted: {\n color: spring4\n },\n cardActionButton: {\n display: 'flex',\n height: 28,\n marginRight: 'auto',\n marginLeft: 12\n },\n propertyCardTopRow: {\n display: 'flex',\n margin: [[0, 10, 5, 0]]\n },\n propertyCardBottomRow: {\n display: 'flex',\n flexDirection: 'row',\n height: 45\n },\n propertyCard: {\n display: 'flex',\n flexDirection: 'column',\n borderRadius: 8,\n width: '100%',\n height: 100,\n padding: [[20]],\n boxSizing: 'border-box',\n boxShadow: '0 0 8px 0 rgba(0, 0, 0, 0.04)',\n border: 'solid 0',\n backgroundColor: white,\n margin: [[20, 0, 0, 0]]\n },\n rowSpaceBetween: {\n display: 'flex',\n flexFlow: 'row nowrap',\n alignItems: 'center',\n justifyContent: 'space-between'\n },\n columnSpaceBetween: {\n display: 'flex',\n flexFlow: 'column nowrap',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: 90\n },\n buttonsWrapper: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n marginLeft: 'auto',\n marginTop: 'auto'\n }\n}\n\nexport { propertyCardStyles }\n","import { Paper } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport { MainStatus } from 'src/components/Status'\nimport { ActionButton } from 'src/components/buttons'\nimport { H3 } from 'src/components/typography'\nimport { ReactComponent as AuthorizeReversedIcon } from 'src/styling/icons/button/authorize/white.svg'\nimport { ReactComponent as AuthorizeIcon } from 'src/styling/icons/button/authorize/zodiac.svg'\nimport { ReactComponent as RejectReversedIcon } from 'src/styling/icons/button/cancel/white.svg'\nimport { ReactComponent as RejectIcon } from 'src/styling/icons/button/cancel/zodiac.svg'\nimport { ReactComponent as EditReversedIcon } from 'src/styling/icons/button/edit/white.svg'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/button/edit/zodiac.svg'\n\nimport { propertyCardStyles } from './PropertyCard.styles'\n\nconst useStyles = makeStyles(propertyCardStyles)\n\nconst OVERRIDE_PENDING = 'automatic'\nconst OVERRIDE_AUTHORIZED = 'verified'\nconst OVERRIDE_REJECTED = 'blocked'\n\nconst PropertyCard = memo(\n ({\n className,\n contentClassName,\n title,\n state,\n authorize,\n reject,\n edit,\n confirm,\n isEditing,\n formName,\n children\n }) => {\n const classes = useStyles()\n\n const label1ClassNames = {\n [classes.label1]: true,\n [classes.label1Pending]: state === OVERRIDE_PENDING,\n [classes.label1Rejected]: state === OVERRIDE_REJECTED,\n [classes.label1Accepted]: state === OVERRIDE_AUTHORIZED\n }\n\n const AuthorizeButton = () => (\n authorize()}>\n Authorize\n \n )\n\n const RejectButton = () => (\n reject()}>\n Reject\n \n )\n\n const EditButton = () => (\n edit()}>\n Edit\n \n )\n\n const ConfirmButton = () => (\n \n Confirm\n \n )\n\n const authorized =\n state === OVERRIDE_PENDING\n ? { label: 'Pending', type: 'neutral' }\n : state === OVERRIDE_REJECTED\n ? { label: 'Rejected', type: 'error' }\n : { label: 'Accepted', type: 'success' }\n\n return (\n \n {title} \n \n {state && (\n
\n \n
\n )}\n {children}\n
\n {authorize && state !== OVERRIDE_AUTHORIZED && AuthorizeButton()}\n {reject && state !== OVERRIDE_REJECTED && RejectButton()}\n {edit && !isEditing && EditButton()}\n {confirm && isEditing && ConfirmButton()}\n
\n
\n \n )\n }\n)\n\nexport {\n PropertyCard,\n OVERRIDE_PENDING,\n OVERRIDE_AUTHORIZED,\n OVERRIDE_REJECTED\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/block/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\",\n stroke: \"#FFFFFF\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n cx: 6,\n cy: 6,\n r: 5\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 9,\n y1: 3,\n x2: 3,\n y2: 9,\n id: \"Stroke-3\"\n})));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.e72682b5.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/block/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n cx: 6,\n cy: 6,\n r: 5\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 9,\n y1: 3,\n x2: 3,\n y2: 9,\n id: \"Stroke-3\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.bb7722c5.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/data/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Data-icon---small\",\n transform: \"translate(0.500000, 0.500000)\",\n stroke: \"#FFFFFF\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11,2.44444444 L11,5.5 C11,6.85002939 8.53756612,7.94444444 5.5,7.94444444 C2.521994,7.94444444 0.0939612041,6.81341452 1.11160464e-12,5.5 L0.00282594991,2.44444444\",\n id: \"oval-3\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11,5.5 L11,8.55555556 C11,9.90558494 8.53756612,11 5.5,11 C2.521994,11 0.0939612041,9.86897007 1.11160464e-12,8.55555556 L0.00282594991,5.5\",\n id: \"oval-2\"\n}), /*#__PURE__*/React.createElement(\"ellipse\", {\n id: \"oval-1\",\n cx: 5.5,\n cy: 2.44444444,\n rx: 5.5,\n ry: 2.44444444\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-9\",\n transform: \"translate(0.000000, 4.000000)\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n stroke: \"#FFFFFF\",\n fill: \"#5F668A\",\n cx: 4,\n cy: 4,\n r: 3.5\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Path\",\n fill: \"#FFFFFF\",\n fillRule: \"nonzero\",\n points: \"4.33333333 3.66666667 6 3.66666667 6 4.33333333 4.33333333 4.33333333 4.33333333 6 3.66666667 6 3.66666667 4.33333333 2 4.33333333 2 3.66666667 3.66666667 3.66666667 3.66666667 2 4.33333333 2\"\n})));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.4676bf59.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/data/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Data-icon---small\",\n transform: \"translate(1.500000, 0.500000)\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10,2 L10,4.77777778 C10,6.00507722 7.76142375,7 5,7 C2.29272181,7 0.0854192765,5.97179097 0,4.77777778 L0.00256904537,2\",\n id: \"oval-3\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10,5 L10,7.77777778 C10,9.00507722 7.76142375,10 5,10 C2.29272181,10 0.0854192765,8.97179097 0,7.77777778 L0.00256904537,5\",\n id: \"oval-2\"\n}), /*#__PURE__*/React.createElement(\"ellipse\", {\n id: \"oval-1\",\n cx: 5,\n cy: 2,\n rx: 5,\n ry: 2\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-9\",\n transform: \"translate(0.000000, 4.000000)\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n stroke: \"#1B2559\",\n fill: \"#EBEFFF\",\n cx: 4,\n cy: 4,\n r: 3.5\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Path\",\n fill: \"#1B2559\",\n fillRule: \"nonzero\",\n points: \"4.33333333 3.66666667 6 3.66666667 6 4.33333333 4.33333333 4.33333333 4.33333333 6 3.66666667 6 3.66666667 4.33333333 2 4.33333333 2 3.66666667 3.66666667 3.66666667 3.66666667 2 4.33333333 2\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.cfe5467c.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/search/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.8635238,8.17028571 C15.8635238,12.4198095 12.4187619,15.8645714 8.1692381,15.8645714 C3.92066667,15.8645714 0.475904762,12.4198095 0.475904762,8.17028571 C0.475904762,3.9207619 3.92066667,0.476 8.1692381,0.476 C12.4187619,0.476 15.8635238,3.9207619 15.8635238,8.17028571 Z\",\n id: \"Stroke-1\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 13.7035238,\n y1: 13.7046667,\n x2: 19.4844762,\n y2: 19.485619,\n id: \"Stroke-3\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n strokeLinecap: \"round\"\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.e8851a0a.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/search/dark02\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group\",\n transform: \"translate(1.000000, 1.000000)\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.2771714,7.35325714 C14.2771714,11.1778286 11.1768857,14.2781143 7.35231429,14.2781143 C3.5286,14.2781143 0.428314286,11.1778286 0.428314286,7.35325714 C0.428314286,3.52868571 3.5286,0.4284 7.35231429,0.4284 C11.1768857,0.4284 14.2771714,3.52868571 14.2771714,7.35325714 Z\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 12.3331714,\n y1: 12.3342,\n x2: 17.5360286,\n y2: 17.5370571,\n id: \"Stroke-3\",\n strokeLinecap: \"round\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/search/dark02\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.eea12e4f.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles, ClickAwayListener } from '@material-ui/core'\nimport classnames from 'classnames'\nimport React, { memo, useState } from 'react'\n\nimport Popper from 'src/components/Popper'\nimport { FeatureButton } from 'src/components/buttons'\nimport { ReactComponent as ZoomIconInverse } from 'src/styling/icons/circle buttons/search/white.svg'\nimport { ReactComponent as ZoomIcon } from 'src/styling/icons/circle buttons/search/zodiac.svg'\n\nimport imagePopperStyles from './ImagePopper.styles'\n\nconst useStyles = makeStyles(imagePopperStyles)\n\nconst ImagePopper = memo(\n ({ className, width, height, popupWidth, popupHeight, src }) => {\n const classes = useStyles({\n width,\n height,\n popupWidth,\n popupHeight\n })\n const [popperAnchorEl, setPopperAnchorEl] = useState(null)\n\n const handleOpenPopper = event => {\n setPopperAnchorEl(popperAnchorEl ? null : event.currentTarget)\n }\n\n const handleClosePopper = () => {\n setPopperAnchorEl(null)\n }\n\n const popperOpen = Boolean(popperAnchorEl)\n\n const Image = ({ className }) => (\n \n )\n\n return (\n \n \n \n )\n }\n)\n\nexport default ImagePopper\n","export default {\n row: {\n display: 'flex',\n flexDirection: 'row'\n },\n image: ({ width, height }) => ({\n objectFit: 'cover',\n borderRadius: '8px 0px 0px 8px',\n width,\n height\n }),\n popupImage: ({ popupWidth, popupHeight }) => ({\n objectFit: 'cover',\n width: popupWidth,\n height: popupHeight\n }),\n button: ({ height }) => ({\n borderRadius: '0px 8px 8px 0px',\n height\n }),\n popoverContent: {\n display: 'block',\n padding: [[10, 15]]\n }\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/ID/card/new/comet\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-1\",\n stroke: \"#5F668A\",\n strokeWidth: 1.6,\n points: \"1 17 23 17 23 1 1 1\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 12.7857143,\n y1: 5,\n x2: 19.8571429,\n y2: 5,\n id: \"Stroke-3\",\n stroke: \"#5F668A\",\n strokeWidth: 1.6\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 12.7857143,\n y1: 8.2,\n x2: 19.8571429,\n y2: 8.2,\n id: \"Stroke-4\",\n stroke: \"#5F668A\",\n strokeWidth: 1.6\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-5\",\n stroke: \"#5F668A\",\n strokeWidth: 1.6,\n points: \"4.14285714 12.2 9.64285714 12.2 9.64285714 5 4.14285714 5\"\n}));\n\nfunction SvgComet(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"24px\",\n height: \"18px\",\n viewBox: \"0 0 24 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/ID/card/new/comet\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgComet);\nexport default __webpack_public_path__ + \"static/media/comet.aaf93613.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/ID/phone/new/comet\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.47150618,13.52898 C10.939556,16.9970298 14.7804112,17.1146315 16.4756355,16.9586292 C17.0220434,16.9090285 17.5308507,16.6578249 17.9188563,16.2698193 L20.0004862,14.1881894 L18.0220577,12.210561 L16.0436293,11.5505516 L14.7244104,12.8697705 C14.7244104,12.8697705 13.4059914,14.1881894 10.1091441,10.8905421 C6.81229671,7.59449473 8.13071565,6.27527578 8.13071565,6.27527578 L9.4499346,4.95605683 L8.78992512,2.97842842 L6.81229671,1 L4.73066681,3.0816299 C4.34186123,3.46963548 4.09145763,3.97844279 4.04105691,4.52485063 C3.88585468,6.22007499 4.00345637,10.0601301 7.47150618,13.52898 Z\",\n id: \"Stroke-1-Copy\",\n stroke: \"#5F668A\",\n strokeWidth: 1.6\n}));\n\nfunction SvgComet(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"24px\",\n height: \"18px\",\n viewBox: \"0 0 24 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/ID/phone/new/comet\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgComet);\nexport default __webpack_public_path__ + \"static/media/comet.c4eaa20d.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/crossed-camera\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"crossed-camera\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/ID/cam/zodiac\",\n transform: \"translate(0.000000, 3.657143)\",\n fill: \"#1B2559\",\n fillRule: \"nonzero\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16,19.1876029 C12.4482116,19.1876029 9.56809571,16.389776 9.56809571,12.9394673 C9.56809571,9.48915858 12.4482116,6.69133172 16,6.69133172 C19.5517884,6.69133172 22.4319043,9.48915858 22.4319043,12.9394673 C22.4319043,16.389776 19.5517884,19.1876029 16,19.1876029 Z M16,17.104891 C18.3677075,17.104891 20.2879362,15.239526 20.2879362,12.9394673 C20.2879362,10.6394086 18.3677075,8.77404358 16,8.77404358 C13.6322925,8.77404358 11.7120638,10.6394086 11.7120638,12.9394673 C11.7120638,15.239526 13.6322925,17.104891 16,17.104891 Z M22.7667469,3.30692494 L30.7397807,3.30692494 C31.3318211,3.30692494 31.8117647,3.77315587 31.8117647,4.34828087 L31.8117647,22.0513317 C31.8117647,22.6264567 31.3318211,23.0926877 30.7397807,23.0926877 L1.26021934,23.0926877 C0.6681789,23.0926877 0.188235294,22.6264567 0.188235294,22.0513317 L0.188235294,4.34828087 C0.188235294,3.77315587 0.6681789,3.30692494 1.26021934,3.30692494 L9.23325311,3.30692494 L12.0766705,0.494526627 C12.2782333,0.295162767 12.5538198,0.182857143 12.8414756,0.182857143 L19.1585244,0.182857143 C19.4461802,0.182857143 19.7217667,0.295162767 19.9233295,0.494526627 L22.7667469,3.30692494 Z M29.6677966,5.3896368 L22.3170489,5.3896368 C22.0293931,5.3896368 21.7538065,5.27733118 21.5522438,5.07796732 L18.7088264,2.26556901 L13.2911736,2.26556901 L10.4477562,5.07796732 C10.2461935,5.27733118 9.97060695,5.3896368 9.68295115,5.3896368 L2.33220339,5.3896368 L2.33220339,21.0099758 L29.6677966,21.0099758 L29.6677966,5.3896368 Z\",\n id: \"Stroke-1\"\n})), /*#__PURE__*/React.createElement(\"line\", {\n x1: 32,\n y1: 0,\n x2: 0,\n y2: 32,\n id: \"Line\",\n stroke: \"#FF584A\",\n strokeWidth: 2,\n strokeLinecap: \"square\"\n}))));\n\nfunction SvgCrossedCamera(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"32px\",\n height: \"32px\",\n viewBox: \"0 0 32 32\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCrossedCamera);\nexport default __webpack_public_path__ + \"static/media/crossed-camera.28e8f7eb.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/edit/disabled\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1,18 L1,18 C1,19.657 2.343,21 4,21 L18,21 C19.657,21 21,19.657 21,18\",\n id: \"Stroke-1\",\n stroke: \"#5f668a\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-3\",\n stroke: \"#5f668a\",\n strokeWidth: 2,\n points: \"6 12 17 1 21 5 10 16 6 16\"\n}));\n\nfunction SvgComet(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"22px\",\n height: \"22px\",\n viewBox: \"0 0 22 22\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgComet);\nexport default __webpack_public_path__ + \"static/media/comet.77ebaba5.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/listing/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 1,\n y1: 1,\n x2: 19.0952381,\n y2: 1,\n id: \"Path-4\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 1,\n y1: 7,\n x2: 19.0952381,\n y2: 7,\n id: \"Path-4-Copy\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 1,\n y1: 13,\n x2: 19.0952381,\n y2: 13,\n id: \"Path-4-Copy-2\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 1,\n y1: 19,\n x2: 19.0952381,\n y2: 19,\n id: \"Path-4-Copy-3\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.b7754662.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/listing/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 1,\n y1: 1,\n x2: 19.0952381,\n y2: 1,\n id: \"Path-4\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 1,\n y1: 7,\n x2: 19.0952381,\n y2: 7,\n id: \"Path-4-Copy\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 1,\n y1: 13,\n x2: 19.0952381,\n y2: 13,\n id: \"Path-4-Copy-2\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 1,\n y1: 19,\n x2: 19.0952381,\n y2: 19,\n id: \"Path-4-Copy-3\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.84e03611.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/overview/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n x: 1,\n y: 1,\n width: 7,\n height: 7,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-2\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n x: 1,\n y: 12,\n width: 7,\n height: 7,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n x: 12,\n y: 1,\n width: 7,\n height: 7,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-3\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n x: 12,\n y: 12,\n width: 7,\n height: 7,\n rx: 2\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.1ca0dea7.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/overview/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n x: 1,\n y: 1,\n width: 7,\n height: 7,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-2\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n x: 1,\n y: 12,\n width: 7,\n height: 7,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n x: 12,\n y: 1,\n width: 7,\n height: 7,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-3\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n x: 12,\n y: 12,\n width: 7,\n height: 7,\n rx: 2\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.74570495.svg\";\nexport { ForwardRef as ReactComponent };","import { offColor, spacer } from 'src/styling/variables'\n\nexport default {\n header: {\n display: 'flex',\n flexDirection: 'row',\n marginBottom: 15\n },\n title: {\n marginTop: 7,\n marginRight: 24\n },\n editIcon: {\n marginTop: 5\n },\n cardIcon: {\n marginTop: 7\n },\n viewIcons: {\n marginRight: 12\n },\n wrapper: {\n display: 'block',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n },\n separator: {\n color: offColor,\n margin: [[8, 0, 8, 150]],\n position: 'relative',\n display: 'inline-block',\n '&:before, &:after': {\n content: '\"\"',\n position: 'absolute',\n background: offColor,\n top: '50%',\n width: 1000,\n height: 1\n },\n '&:before': {\n right: '100%',\n marginRight: 15\n },\n '&:after': {\n left: '100%',\n marginLeft: 15\n }\n },\n closeButton: {\n display: 'flex',\n padding: [[spacer * 2, spacer * 2, 0, spacer * 2]],\n paddingRight: spacer * 1.5,\n justifyContent: 'end'\n },\n dialogTitle: {\n margin: [[0, spacer * 2, spacer, spacer * 4 + spacer]]\n },\n dialogContent: {\n width: 615,\n marginLeft: 16\n },\n dialogActions: {\n padding: spacer * 4,\n paddingTop: spacer * 2\n },\n cancelButton: {\n marginRight: 8,\n padding: 0\n }\n}\n","import { makeStyles, Box } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { parse, isValid, format } from 'date-fns/fp'\nimport { Field, useFormikContext } from 'formik'\nimport { parsePhoneNumberFromString } from 'libphonenumber-js'\nimport * as R from 'ramda'\nimport * as uuid from 'uuid'\nimport * as Yup from 'yup'\n\nimport {\n RadioGroup,\n TextInput,\n Autocomplete\n} from 'src/components/inputs/formik'\nimport { H4 } from 'src/components/typography'\nimport { errorColor } from 'src/styling/variables'\nimport { MANUAL } from 'src/utils/constants'\n\nimport { Upload } from './components'\n\nconst useStyles = makeStyles({\n radio: {\n padding: 4,\n margin: 4\n },\n radioGroup: {\n flexDirection: 'row'\n },\n error: {\n color: errorColor\n },\n specialLabel: {\n height: 40,\n padding: 0,\n width: 250\n },\n label: {\n height: 40,\n padding: 0\n },\n specialGrid: {\n display: 'grid',\n gridTemplateColumns: [[182, 162, 141]]\n },\n picker: {\n width: 150\n },\n field: {\n '& > *:last-child': {\n marginBottom: 24\n }\n }\n})\n\nconst CUSTOMER_BLOCKED = 'blocked'\nconst CUSTOM = 'custom'\nconst REQUIREMENT = 'requirement'\nconst ID_CARD_DATA = 'idCardData'\n\nconst getAuthorizedStatus = (it, triggers, customRequests) => {\n const fields = R.concat(\n ['frontCamera', 'idCardData', 'idCardPhoto', 'usSsn', 'sanctions'],\n R.map(ite => ite.id, customRequests)\n )\n const fieldsWithPathSuffix = ['frontCamera', 'idCardPhoto']\n\n const isManualField = fieldName => {\n const triggerName = R.equals(fieldName, 'frontCamera')\n ? 'facephoto'\n : fieldName\n const manualOverrides = R.filter(\n ite => R.equals(R.toLower(ite.automation), MANUAL),\n triggers?.overrides ?? []\n )\n\n return (\n !!R.find(\n ite => R.equals(ite.requirement, triggerName),\n manualOverrides\n ) || R.equals(R.toLower(triggers.automation), MANUAL)\n )\n }\n\n const pendingFieldStatus = R.map(ite => {\n if (isManualField(ite)) {\n if (uuid.validate(ite)) {\n const request = R.find(\n iter => iter.infoRequestId === ite,\n it.customInfoRequests\n )\n return !R.isNil(request) && R.equals(request.override, 'automatic')\n }\n\n const regularFieldValue = R.includes(ite, fieldsWithPathSuffix)\n ? it[`${ite}Path`]\n : it[`${ite}`]\n if (R.isNil(regularFieldValue)) return false\n return R.equals(it[`${ite}Override`], 'automatic')\n }\n return false\n }, fields)\n\n const rejectedFieldStatus = R.map(ite => {\n if (isManualField(ite)) {\n if (uuid.validate(ite)) {\n const request = R.find(\n iter => iter.infoRequestId === ite,\n it.customInfoRequests\n )\n return !R.isNil(request) && R.equals(request.override, 'blocked')\n }\n\n const regularFieldValue = R.includes(ite, fieldsWithPathSuffix)\n ? it[`${ite}Path`]\n : it[`${ite}`]\n if (R.isNil(regularFieldValue)) return false\n return R.equals(it[`${ite}Override`], 'blocked')\n }\n return false\n }, fields)\n\n if (it.authorizedOverride === CUSTOMER_BLOCKED)\n return { label: 'Blocked', type: 'error' }\n if (it.isSuspended)\n return it.daysSuspended > 0\n ? { label: `${it.daysSuspended} day suspension`, type: 'warning' }\n : { label: `< 1 day suspension`, type: 'warning' }\n if (R.any(ite => ite === true, rejectedFieldStatus))\n return { label: 'Rejected', type: 'error' }\n if (R.any(ite => ite === true, pendingFieldStatus))\n return { label: 'Pending', type: 'warning' }\n return { label: 'Authorized', type: 'success' }\n}\n\nconst getFormattedPhone = (phone, country) => {\n const phoneNumber =\n phone && country ? parsePhoneNumberFromString(phone, country) : null\n\n return phoneNumber ? phoneNumber.formatInternational() : phone\n}\n\nconst getName = it => {\n const idData = R.path(['idCardData'])(it)\n\n return `${R.path(['firstName'])(idData) ?? ''} ${R.path(['lastName'])(\n idData\n ) ?? ''}`.trim()\n}\n\n// Manual Entry Wizard\n\nconst entryOptions = [\n { display: 'Custom entry', code: 'custom' },\n { display: 'Populate existing requirement', code: 'requirement' }\n]\n\nconst dataOptions = [\n { display: 'Text', code: 'text' }\n // TODO: Requires backend modifications to support File and Image\n // { display: 'File', code: 'file' },\n // { display: 'Image', code: 'image' }\n]\n\nconst requirementOptions = [\n { display: 'ID card image', code: 'idCardPhoto' },\n { display: 'ID data', code: 'idCardData' },\n { display: 'US SSN', code: 'usSsn' },\n { display: 'Customer camera', code: 'frontCamera' }\n]\n\nconst customTextOptions = [\n { label: 'Data entry title', name: 'title' },\n { label: 'Data entry', name: 'data' }\n]\n\nconst customUploadOptions = [{ label: 'Data entry title', name: 'title' }]\n\nconst entryTypeSchema = Yup.lazy(values => {\n if (values.entryType === 'custom') {\n return Yup.object().shape({\n entryType: Yup.string().required(),\n dataType: Yup.string().required()\n })\n } else if (values.entryType === 'requirement') {\n return Yup.object().shape({\n entryType: Yup.string().required(),\n requirement: Yup.string().required()\n })\n }\n})\n\nconst customFileSchema = Yup.object().shape({\n title: Yup.string().required(),\n file: Yup.mixed().required()\n})\n\nconst customImageSchema = Yup.object().shape({\n title: Yup.string().required(),\n image: Yup.mixed().required()\n})\n\nconst customTextSchema = Yup.object().shape({\n title: Yup.string().required(),\n data: Yup.string().required()\n})\n\nconst updateRequirementOptions = it => [\n {\n display: 'Custom information requirement',\n code: 'custom'\n },\n ...it\n]\n\nconst EntryType = ({ customInfoRequirementOptions }) => {\n const classes = useStyles()\n const { values } = useFormikContext()\n\n const displayCustomOptions = values.entryType === CUSTOM\n const displayRequirementOptions = values.entryType === REQUIREMENT\n\n return (\n <>\n \n Type of entry \n \n \n {displayCustomOptions && (\n \n \n Type of data \n \n \n
\n )}\n {displayRequirementOptions && (\n \n \n Requirements \n \n \n
\n )}\n >\n )\n}\n\nconst ManualDataEntry = ({ selectedValues, customInfoRequirementOptions }) => {\n const classes = useStyles()\n\n const typeOfEntrySelected = selectedValues?.entryType\n const dataTypeSelected = selectedValues?.dataType\n const requirementSelected = selectedValues?.requirement\n\n const displayRequirements = typeOfEntrySelected === 'requirement'\n\n const isCustomInfoRequirement = requirementSelected === CUSTOM\n\n const updatedRequirementOptions = !R.isEmpty(customInfoRequirementOptions)\n ? updateRequirementOptions(requirementOptions)\n : requirementOptions\n\n const requirementName = displayRequirements\n ? R.find(R.propEq('code', requirementSelected))(updatedRequirementOptions)\n .display\n : ''\n\n const title = displayRequirements\n ? `Requirement ${requirementName}`\n : `Custom ${dataTypeSelected} entry`\n\n const elements = displayRequirements\n ? requirementElements[requirementSelected]\n : customElements[dataTypeSelected]\n\n const upload = displayRequirements\n ? requirementSelected === 'idCardPhoto' ||\n requirementSelected === 'frontCamera'\n : dataTypeSelected === 'file' || dataTypeSelected === 'image'\n\n return (\n <>\n \n {title} \n \n {isCustomInfoRequirement && (\n {}}\n />\n )}\n \n {!upload &&\n !isCustomInfoRequirement &&\n elements.options.map(({ label, name }) => (\n \n ))}\n
\n {upload && (\n \n )}\n >\n )\n}\n\nconst customElements = {\n text: {\n schema: customTextSchema,\n options: customTextOptions,\n Component: ManualDataEntry,\n initialValues: { data: '', title: '' },\n saveType: 'customEntry'\n },\n file: {\n schema: customFileSchema,\n options: customUploadOptions,\n Component: ManualDataEntry,\n initialValues: { file: null, title: '' },\n saveType: 'customEntryUpload'\n },\n image: {\n schema: customImageSchema,\n options: customUploadOptions,\n Component: ManualDataEntry,\n initialValues: { image: null, title: '' },\n saveType: 'customEntryUpload'\n }\n}\n\nconst entryType = {\n schema: entryTypeSchema,\n options: entryOptions,\n Component: EntryType,\n initialValues: { entryType: '' }\n}\n\n// Customer data\n\nconst customerDataElements = {\n idCardData: [\n {\n name: 'firstName',\n label: 'First name',\n component: TextInput,\n editable: true\n },\n {\n name: 'documentNumber',\n label: 'ID number',\n component: TextInput,\n editable: true\n },\n {\n name: 'dateOfBirth',\n label: 'Birthdate',\n component: TextInput,\n editable: true\n },\n {\n name: 'gender',\n label: 'Gender',\n component: TextInput,\n editable: true\n },\n {\n name: 'lastName',\n label: 'Last name',\n component: TextInput,\n editable: true\n },\n {\n name: 'expirationDate',\n label: 'Expiration Date',\n component: TextInput,\n editable: true\n },\n {\n name: 'country',\n label: 'Country',\n component: TextInput,\n editable: true\n }\n ],\n usSsn: [\n {\n name: 'usSsn',\n label: 'US SSN',\n component: TextInput,\n size: 190,\n editable: true\n }\n ],\n idCardPhoto: [{ name: 'idCardPhoto' }],\n frontCamera: [{ name: 'frontCamera' }]\n}\n\nconst customerDataSchemas = {\n idCardData: Yup.object().shape({\n firstName: Yup.string().required(),\n lastName: Yup.string().required(),\n documentNumber: Yup.string().required(),\n dateOfBirth: Yup.string()\n .test({\n test: val => isValid(parse(new Date(), 'yyyy-MM-dd', val))\n })\n .required(),\n gender: Yup.string().required(),\n country: Yup.string().required(),\n expirationDate: Yup.string()\n .test({\n test: val => isValid(parse(new Date(), 'yyyy-MM-dd', val))\n })\n .required()\n }),\n usSsn: Yup.object().shape({\n usSsn: Yup.string().required()\n }),\n idCardPhoto: Yup.object().shape({\n idCardPhoto: Yup.mixed().required()\n }),\n frontCamera: Yup.object().shape({\n frontCamera: Yup.mixed().required()\n })\n}\n\nconst requirementElements = {\n idCardData: {\n schema: customerDataSchemas.idCardData,\n options: customerDataElements.idCardData,\n Component: ManualDataEntry,\n initialValues: {\n firstName: '',\n lastName: '',\n documentNumber: '',\n dateOfBirth: '',\n gender: '',\n country: '',\n expirationDate: ''\n },\n saveType: 'customerData'\n },\n usSsn: {\n schema: customerDataSchemas.usSsn,\n options: customerDataElements.usSsn,\n Component: ManualDataEntry,\n initialValues: { usSsn: '' },\n saveType: 'customerData'\n },\n idCardPhoto: {\n schema: customerDataSchemas.idCardPhoto,\n options: customerDataElements.idCardPhoto,\n Component: ManualDataEntry,\n initialValues: { idCardPhoto: null },\n saveType: 'customerDataUpload'\n },\n frontCamera: {\n schema: customerDataSchemas.frontCamera,\n options: customerDataElements.frontCamera,\n Component: ManualDataEntry,\n initialValues: { frontCamera: null },\n saveType: 'customerDataUpload'\n },\n custom: {\n // schema: customerDataSchemas.customInfoRequirement,\n Component: ManualDataEntry,\n initialValues: { customInfoRequirement: null },\n saveType: 'customInfoRequirement'\n }\n}\n\nconst formatDates = values => {\n R.map(\n elem =>\n (values[elem] = format('yyyyMMdd')(\n parse(new Date(), 'yyyy-MM-dd', values[elem])\n ))\n )(['dateOfBirth', 'expirationDate'])\n return values\n}\n\nconst mapKeys = pair => {\n const [key, value] = pair\n if (key === 'txCustomerPhotoPath' || key === 'frontCameraPath') {\n return ['path', value]\n }\n if (key === 'txCustomerPhotoAt' || key === 'frontCameraAt') {\n return ['date', value]\n }\n return pair\n}\n\nconst addPhotoDir = R.map(it => {\n const hasFrontCameraData = R.has('id')(it)\n return hasFrontCameraData\n ? { ...it, photoDir: 'operator-data/customersphotos' }\n : { ...it, photoDir: 'front-camera-photo' }\n})\n\nconst standardizeKeys = R.map(R.compose(R.fromPairs, R.map(mapKeys), R.toPairs))\n\nconst filterByPhotoAvailable = R.filter(\n tx => !R.isNil(tx.date) && !R.isNil(tx.path)\n)\n\nconst formatPhotosData = R.compose(\n filterByPhotoAvailable,\n addPhotoDir,\n standardizeKeys\n)\n\nexport {\n getAuthorizedStatus,\n getFormattedPhone,\n getName,\n entryType,\n customElements,\n requirementElements,\n formatPhotosData,\n customerDataElements,\n customerDataSchemas,\n formatDates,\n REQUIREMENT,\n CUSTOM,\n ID_CARD_DATA\n}\n","import { makeStyles } from '@material-ui/core'\nimport { Form, Formik } from 'formik'\nimport * as R from 'ramda'\nimport React, { useState, Fragment } from 'react'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Modal from 'src/components/Modal'\nimport Stepper from 'src/components/Stepper'\nimport { Button } from 'src/components/buttons'\nimport { comet } from 'src/styling/variables'\n\nimport {\n entryType,\n customElements,\n requirementElements,\n formatDates,\n REQUIREMENT,\n ID_CARD_DATA\n} from './helper'\n\nconst LAST_STEP = 2\n\nconst styles = {\n stepper: {\n margin: [[16, 0, 14, 0]]\n },\n submit: {\n display: 'flex',\n flexDirection: 'row',\n margin: [['auto', 0, 24]]\n },\n button: {\n marginLeft: 'auto'\n },\n form: {\n height: '100%',\n display: 'flex',\n flexDirection: 'column'\n },\n infoTitle: {\n margin: [[18, 0, 20, 0]]\n },\n infoCurrentText: {\n color: comet\n },\n blankSpace: {\n padding: [[0, 30]],\n margin: [[0, 4, 0, 2]],\n borderBottom: `1px solid ${comet}`,\n display: 'inline-block'\n },\n dropdownField: {\n marginTop: 16,\n minWidth: 155\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst getStep = (step, selectedValues) => {\n const elements =\n selectedValues?.entryType === REQUIREMENT &&\n !R.isNil(selectedValues?.requirement)\n ? requirementElements[selectedValues?.requirement]\n : customElements[selectedValues?.dataType]\n\n switch (step) {\n case 1:\n return entryType\n case 2:\n return elements\n default:\n return Fragment\n }\n}\n\nconst Wizard = ({\n onClose,\n save,\n error,\n customInfoRequirementOptions,\n addCustomerData,\n addPhoto\n}) => {\n const classes = useStyles()\n\n const [selectedValues, setSelectedValues] = useState(null)\n\n const [{ step, config }, setState] = useState({\n step: 1\n })\n\n const isIdCardData = values => values?.requirement === ID_CARD_DATA\n const formatCustomerData = (it, newConfig) =>\n isIdCardData(newConfig) ? { [newConfig.requirement]: formatDates(it) } : it\n\n const isLastStep = step === LAST_STEP\n const stepOptions = getStep(step, selectedValues)\n\n const onContinue = async it => {\n const newConfig = R.merge(config, stepOptions.schema.cast(it))\n setSelectedValues(newConfig)\n\n if (isLastStep) {\n switch (stepOptions.saveType) {\n case 'customerData':\n return addCustomerData(formatCustomerData(it, newConfig))\n case 'customerDataUpload':\n return addPhoto({\n newPhoto: R.head(R.values(it)),\n photoType: R.head(R.keys(it))\n })\n case 'customEntry':\n return save(newConfig)\n case 'customInfoRequirement':\n return\n // case 'customerEntryUpload':\n // break\n default:\n break\n }\n }\n\n setState({\n step: step + 1,\n config: newConfig\n })\n }\n\n return (\n <>\n \n \n \n \n \n \n >\n )\n}\n\nexport default Wizard\n","import typographyStyles from 'src/components/typography/styles'\nimport baseStyles from 'src/pages/Logs.styles'\nimport { zircon, comet, primaryColor, fontSize4 } from 'src/styling/variables'\n\nconst { label1 } = typographyStyles\nconst { titleWrapper, titleAndButtonsContainer } = baseStyles\n\nexport default {\n titleWrapper,\n titleAndButtonsContainer,\n row: {\n display: 'flex',\n flexFlow: 'row nowrap'\n },\n rowSpaceBetween: {\n display: 'flex',\n flexFlow: 'row nowrap',\n alignItems: 'center',\n justifyContent: 'space-between'\n },\n column: {\n display: 'flex',\n flexFlow: 'column nowrap',\n width: '100%',\n height: '100%',\n justifyContent: 'space-between'\n },\n textInput: {\n width: 144\n },\n p: {\n fontFamily: 'MuseoSans',\n fontSize: fontSize4,\n fontWeight: 500,\n fontStretch: 'normal',\n fontStyle: 'normal',\n lineHeight: 1.14,\n letterSpacing: 'normal',\n color: primaryColor\n },\n txId: {\n fontFamily: 'MuseoSans',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n txClassIconLeft: {\n marginRight: 11\n },\n txClassIconRight: {\n marginLeft: 11\n },\n headerLabels: {\n display: 'flex',\n flexDirection: 'row',\n '& div': {\n display: 'flex',\n alignItems: 'center'\n },\n '& > div:first-child': {\n marginRight: 24\n },\n '& span': {\n extend: label1,\n marginLeft: 6\n }\n },\n photo: {\n width: 92,\n height: 92,\n borderRadius: 8,\n backgroundColor: zircon,\n margin: [[0, 28, 0, 0]],\n alignItems: 'center',\n justifyContent: 'center',\n display: 'flex'\n },\n img: {\n width: 80\n },\n customerName: {\n marginBottom: 32\n },\n icon: {\n marginRight: 11\n },\n name: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center'\n },\n value: {\n height: 16\n },\n label: {\n marginBottom: 4,\n color: comet\n },\n txSummaryValue: {\n height: 16,\n marginRight: 25\n },\n txSummaryLabel: {\n marginBottom: 4,\n color: comet,\n marginRight: 25\n },\n idIcon: {\n marginRight: 10\n },\n subpageButton: {\n marginLeft: 16\n },\n txTableSpacing: {\n marginTop: 40\n }\n}\n","import { Dialog, DialogContent, makeStyles } from '@material-ui/core'\nimport React, { memo } from 'react'\n\nimport { IconButton } from 'src/components/buttons'\nimport { H1 } from 'src/components/typography'\nimport { ReactComponent as CloseIcon } from 'src/styling/icons/action/close/zodiac.svg'\nimport { spacer } from 'src/styling/variables'\n\nconst useStyles = makeStyles({\n closeButton: {\n display: 'flex',\n padding: [[spacer * 2, spacer * 2, 0, spacer * 2]],\n paddingRight: spacer * 1.5,\n justifyContent: 'end'\n },\n title: {\n margin: [[0, spacer * 2, spacer, spacer * 2 + 4]]\n }\n})\n\nexport const DialogTitle = ({ children, onClose }) => {\n const classes = useStyles()\n return (\n \n {children}\n {onClose && (\n \n \n \n )}\n
\n )\n}\n\nexport const InformativeDialog = memo(\n ({ title = '', open, onDissmised, disabled = false, data, ...props }) => {\n const classes = useStyles()\n\n const innerOnClose = () => {\n onDissmised()\n }\n\n return (\n \n \n \n \n \n
\n {title} \n {data} \n \n )\n }\n)\n","import { zircon, backgroundColor } from 'src/styling/variables'\n\nexport default {\n photo: {\n width: 135,\n height: 135,\n borderRadius: 8,\n backgroundColor: zircon,\n margin: [[0, 28, 0, 0]],\n alignItems: 'center',\n justifyContent: 'center',\n display: 'flex'\n },\n img: {\n objectFit: 'cover',\n objectPosition: 'center',\n width: 135,\n height: 135\n },\n container: {\n position: 'relative',\n '& > img': {\n display: 'block'\n },\n '& > circle': {\n position: 'absolute',\n top: '0',\n right: '0',\n marginRight: 5,\n marginTop: 5\n }\n },\n circle: {\n background: backgroundColor,\n borderRadius: '50%',\n width: 25,\n height: 25,\n alignItems: 'center',\n justifyContent: 'center',\n display: 'flex'\n }\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Simple-Arrow-White\",\n fill: \"#1b2559\",\n fillRule: \"nonzero\",\n points: \"12.1912718 1.56064837 10.8306233 0.395663059 0.196798664 16.2200463 10.8250965 32.3956631 12.1967987 31.2473125 2.33241023 16.233075\"\n}));\n\nfunction SvgCarouselLeftArrow(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"13px\",\n height: \"33px\",\n viewBox: \"0 0 13 33\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCarouselLeftArrow);\nexport default __webpack_public_path__ + \"static/media/carousel-left-arrow.c6575d9d.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2-Copy\",\n transform: \"translate(1.000000, 1.000000)\",\n stroke: \"#1b2559\",\n strokeWidth: 2\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path-4-Copy\",\n points: \"0 0 12 15.8202247 0 32\"\n})));\n\nfunction SvgCarouselRightArrow(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"15px\",\n height: \"34px\",\n viewBox: \"0 0 15 34\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCarouselRightArrow);\nexport default __webpack_public_path__ + \"static/media/carousel-right-arrow.1d5e04d1.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core/styles'\nimport React, { memo } from 'react'\nimport ReactCarousel from 'react-material-ui-carousel'\n\nimport { ReactComponent as LeftArrow } from 'src/styling/icons/arrow/carousel-left-arrow.svg'\nimport { ReactComponent as RightArrow } from 'src/styling/icons/arrow/carousel-right-arrow.svg'\nimport { URI } from 'src/utils/apollo'\n\nconst useStyles = makeStyles({\n imgWrapper: {\n alignItems: 'center',\n justifyContent: 'center',\n display: 'flex'\n },\n imgInner: {\n objectFit: 'cover',\n objectPosition: 'center',\n width: 500,\n marginBottom: 40\n }\n})\n\nexport const Carousel = memo(({ photosData, slidePhoto }) => {\n const classes = useStyles()\n\n return (\n <>\n }\n NextIcon={ }\n navButtonsProps={{\n style: {\n backgroundColor: 'transparent',\n borderRadius: 0,\n color: 'transparent',\n opacity: 1\n }\n }}\n navButtonsWrapperProps={{\n style: {\n marginLeft: -22,\n marginRight: -22\n }\n }}\n autoPlay={false}\n indicators={false}\n navButtonsAlwaysVisible={true}\n next={activeIndex => slidePhoto(activeIndex)}\n prev={activeIndex => slidePhoto(activeIndex)}>\n {photosData.map((item, i) => (\n \n
\n
\n
\n
\n ))}\n \n >\n )\n})\n","import typographyStyles from 'src/components/typography/styles'\nimport { offColor } from 'src/styling/variables'\n\nconst { p } = typographyStyles\n\nexport default {\n label: {\n color: offColor,\n margin: [[0, 0, 6, 0]]\n },\n firstRow: {\n padding: [[8]],\n display: 'flex',\n flexDirection: 'column'\n },\n secondRow: {\n extend: p,\n display: 'flex',\n padding: [[8]],\n '& > div': {\n display: 'flex',\n flexDirection: 'column',\n '& > div': {\n height: 37,\n marginBottom: 15,\n marginRight: 55\n }\n }\n }\n}\n","import { makeStyles } from '@material-ui/core/styles'\nimport * as R from 'ramda'\nimport React, { memo, useState } from 'react'\n\nimport { Carousel } from 'src/components/Carousel'\nimport { Label1 } from 'src/components/typography'\n\nimport CopyToClipboard from '../../Transactions/CopyToClipboard'\n\nimport styles from './PhotosCarousel.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst PhotosCarousel = memo(({ photosData }) => {\n const classes = useStyles()\n const [currentIndex, setCurrentIndex] = useState(0)\n\n const Label = ({ children }) => {\n const classes = useStyles()\n return {children} \n }\n\n const isFaceCustomerPhoto = !R.has('id')(photosData[currentIndex])\n\n const slidePhoto = index => setCurrentIndex(index)\n\n return (\n <>\n \n {!isFaceCustomerPhoto && (\n \n Session ID \n \n {photosData && photosData[currentIndex]?.id}\n \n
\n )}\n \n
\n
\n
Date \n
{photosData && photosData[currentIndex]?.date}
\n
\n
\n
\n
Taken by \n
\n {!isFaceCustomerPhoto ? 'Acceptance of T&C' : 'Compliance scan'}\n
\n
\n
\n >\n )\n})\n\nexport default PhotosCarousel\n","import ButtonBase from '@material-ui/core/ButtonBase'\nimport Paper from '@material-ui/core/Card'\nimport { makeStyles } from '@material-ui/core/styles'\nimport * as R from 'ramda'\nimport React, { memo, useState } from 'react'\n\nimport { InformativeDialog } from 'src/components/InformativeDialog'\nimport { Info2 } from 'src/components/typography'\nimport { ReactComponent as CrossedCameraIcon } from 'src/styling/icons/ID/photo/crossed-camera.svg'\nimport { URI } from 'src/utils/apollo'\n\nimport styles from './PhotosCard.styles'\nimport PhotosCarousel from './PhotosCarousel'\n\nconst useStyles = makeStyles(styles)\n\nconst PhotosCard = memo(({ photosData }) => {\n const classes = useStyles()\n\n const [photosDialog, setPhotosDialog] = useState(false)\n\n const singlePhoto = R.head(photosData)\n\n return (\n <>\n \n {\n setPhotosDialog(true)\n }}>\n {singlePhoto ? (\n \n
\n
\n \n {photosData.length} \n
\n \n
\n ) : (\n \n )}\n \n \n }\n onDissmised={() => {\n setPhotosDialog(false)\n }}\n />\n >\n )\n})\n\nexport default PhotosCard\n","import { makeStyles, Box } from '@material-ui/core'\nimport * as R from 'ramda'\nimport React, { memo } from 'react'\n\nimport { H2, Label1, P } from 'src/components/typography'\nimport { ReactComponent as IdIcon } from 'src/styling/icons/ID/card/zodiac.svg'\n\nimport mainStyles from '../CustomersList.styles'\nimport { getFormattedPhone, getName } from '../helper'\n\nimport PhotosCard from './PhotosCard'\n\nconst useStyles = makeStyles(mainStyles)\n\nconst CustomerDetails = memo(({ customer, photosData, locale }) => {\n const classes = useStyles()\n\n const idNumber = R.path(['idCardData', 'documentNumber'])(customer)\n const usSsn = R.path(['usSsn'])(customer)\n\n const elements = [\n {\n header: 'Phone number',\n size: 172,\n value: getFormattedPhone(customer.phone, locale.country)\n }\n ]\n\n if (idNumber)\n elements.push({\n header: 'ID number',\n size: 172,\n value: idNumber\n })\n\n if (usSsn)\n elements.push({\n header: 'US SSN',\n size: 127,\n value: usSsn\n })\n\n const name = getName(customer)\n\n return (\n \n \n \n \n \n
\n {name.length\n ? name\n : getFormattedPhone(R.path(['phone'])(customer), locale.country)}\n \n \n \n {elements.map(({ size, header }, idx) => (\n \n {header}\n \n ))}\n \n \n {elements.map(({ size, value }, idx) => (\n \n {value}\n
\n ))}\n \n \n \n )\n})\n\nexport default CustomerDetails\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/customer-nav/data/comet\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19,5 L19,10 C19,12.209139 14.9705627,14 10,14 C5.12689927,14 1.1537547,12.1492238 1,10 L1.00462428,5\",\n id: \"Path-Copy-3\",\n stroke: \"#5F668A\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19,10 L19,15 C19,17.209139 14.9705627,19 10,19 C5.12689927,19 1.1537547,17.1492238 1,15 L1.00462428,10\",\n id: \"Path-Copy-3\",\n stroke: \"#5F668A\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"ellipse\", {\n id: \"Oval-Copy-3\",\n stroke: \"#5F668A\",\n strokeWidth: 2,\n cx: 10,\n cy: 5,\n rx: 9,\n ry: 4\n}));\n\nfunction SvgComet(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgComet);\nexport default __webpack_public_path__ + \"static/media/comet.8aef4281.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/customer-nav/data/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19,5 L19,10 C19,12.209139 14.9705627,14 10,14 C5.12689927,14 1.1537547,12.1492238 1,10 L1.00462428,5\",\n id: \"Path-Copy-3\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19,10 L19,15 C19,17.209139 14.9705627,19 10,19 C5.12689927,19 1.1537547,17.1492238 1,15 L1.00462428,10\",\n id: \"Path-Copy-3\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"ellipse\", {\n id: \"Oval-Copy-3\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n cx: 10,\n cy: 5,\n rx: 9,\n ry: 4\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.460daa02.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/customer-nav/note/comet\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18,1 C18.2761424,1 18.5261424,1.11192881 18.7071068,1.29289322 C18.8880712,1.47385763 19,1.72385763 19,2 L19,2 L19,18 C19,18.2761424 18.8880712,18.5261424 18.7071068,18.7071068 C18.5261424,18.8880712 18.2761424,19 18,19 L18,19 L2,19 C1.72385763,19 1.47385763,18.8880712 1.29289322,18.7071068 C1.11192881,18.5261424 1,18.2761424 1,18 L1,18 L1,2 C1,1.72385763 1.11192881,1.47385763 1.29289322,1.29289322 C1.47385763,1.11192881 1.72385763,1 2,1 L2,1 Z\",\n id: \"Rectangle\",\n stroke: \"#5F668A\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 5,\n y1: 5,\n x2: 15,\n y2: 5,\n id: \"Line-4\",\n stroke: \"#5F668A\",\n strokeWidth: 2,\n strokeLinecap: \"round\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 5,\n y1: 13,\n x2: 10,\n y2: 13,\n id: \"Line-4-Copy\",\n stroke: \"#5F668A\",\n strokeWidth: 2,\n strokeLinecap: \"round\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 5,\n y1: 9,\n x2: 15,\n y2: 9,\n id: \"Line-4\",\n stroke: \"#5F668A\",\n strokeWidth: 2,\n strokeLinecap: \"round\"\n}));\n\nfunction SvgComet(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgComet);\nexport default __webpack_public_path__ + \"static/media/comet.0a722656.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/customer-nav/note/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18,1 C18.2761424,1 18.5261424,1.11192881 18.7071068,1.29289322 C18.8880712,1.47385763 19,1.72385763 19,2 L19,2 L19,18 C19,18.2761424 18.8880712,18.5261424 18.7071068,18.7071068 C18.5261424,18.8880712 18.2761424,19 18,19 L18,19 L2,19 C1.72385763,19 1.47385763,18.8880712 1.29289322,18.7071068 C1.11192881,18.5261424 1,18.2761424 1,18 L1,18 L1,2 C1,1.72385763 1.11192881,1.47385763 1.29289322,1.29289322 C1.47385763,1.11192881 1.72385763,1 2,1 L2,1 Z\",\n id: \"Rectangle\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 5,\n y1: 5,\n x2: 15,\n y2: 5,\n id: \"Line-4\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n strokeLinecap: \"round\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 5,\n y1: 13,\n x2: 10,\n y2: 13,\n id: \"Line-4-Copy\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n strokeLinecap: \"round\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 5,\n y1: 9,\n x2: 15,\n y2: 9,\n id: \"Line-4\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n strokeLinecap: \"round\"\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.87f75e06.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/customer-nav/overview/comet\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle\",\n stroke: \"#5F668A\",\n strokeWidth: 2,\n x: 1,\n y: 1,\n width: 7,\n height: 7,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-2\",\n stroke: \"#5F668A\",\n strokeWidth: 2,\n x: 1,\n y: 12,\n width: 7,\n height: 7,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy\",\n stroke: \"#5F668A\",\n strokeWidth: 2,\n x: 12,\n y: 1,\n width: 7,\n height: 7,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-3\",\n stroke: \"#5F668A\",\n strokeWidth: 2,\n x: 12,\n y: 12,\n width: 7,\n height: 7,\n rx: 2\n}));\n\nfunction SvgComet(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgComet);\nexport default __webpack_public_path__ + \"static/media/comet.56af080c.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/customer-nav/overview/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n x: 1,\n y: 1,\n width: 7,\n height: 7,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-2\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n x: 1,\n y: 12,\n width: 7,\n height: 7,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n x: 12,\n y: 1,\n width: 7,\n height: 7,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-3\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n x: 12,\n y: 12,\n width: 7,\n height: 7,\n rx: 2\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.5a37327b.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/customer-nav/photos/comet\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle\",\n stroke: \"#5F668A\",\n strokeWidth: 2,\n x: 1,\n y: 1,\n width: 18,\n height: 18,\n rx: 1\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n stroke: \"#5F668A\",\n strokeWidth: 2,\n cx: 15,\n cy: 5,\n r: 1\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path\",\n stroke: \"#5F668A\",\n strokeWidth: 2,\n strokeLinejoin: \"round\",\n points: \"1 19 7 13 13 19\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.3333333,14 L18,19 L13.3333333,19 L11,16.5 L13.3333333,14 Z\",\n id: \"Combined-Shape\",\n stroke: \"#5F668A\",\n strokeWidth: 2,\n strokeLinejoin: \"round\"\n}));\n\nfunction SvgComet(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/customer-nav/photos/comet\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgComet);\nexport default __webpack_public_path__ + \"static/media/comet.431ab3d7.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/customer-nav/photos/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n x: 1,\n y: 1,\n width: 18,\n height: 18,\n rx: 1\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n cx: 15,\n cy: 5,\n r: 1\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n strokeLinejoin: \"round\",\n points: \"1 19 7 13 13 19\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.3333333,14 L18,19 L13.3333333,19 L11,16.5 L13.3333333,14 Z\",\n id: \"Combined-Shape\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n strokeLinejoin: \"round\"\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/customer-nav/photos/white\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.636f4cd1.svg\";\nexport { ForwardRef as ReactComponent };","import typographyStyles from 'src/components/typography/styles'\nimport { zircon, offDarkColor, white } from 'src/styling/variables'\n\nconst { tl2, p } = typographyStyles\n\nconst sidebarColor = zircon\n\nexport default {\n sidebar: {\n display: 'flex',\n backgroundColor: sidebarColor,\n width: 219,\n flexDirection: 'column',\n borderRadius: 5\n },\n link: {\n alignItems: 'center',\n display: 'flex',\n extend: p,\n position: 'relative',\n color: offDarkColor,\n padding: 15,\n cursor: 'pointer'\n },\n activeLink: {\n display: 'flex',\n alignItems: 'center',\n extend: tl2,\n color: white,\n backgroundColor: offDarkColor,\n '&:first-child': {\n borderRadius: [[5, 5, 0, 0]]\n },\n '&:last-child': {\n borderRadius: [[0, 0, 5, 5]]\n }\n },\n icon: {\n marginRight: 15\n }\n}\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport { ReactComponent as CustomerDataReversedIcon } from 'src/styling/icons/customer-nav/data/comet.svg'\nimport { ReactComponent as CustomerDataIcon } from 'src/styling/icons/customer-nav/data/white.svg'\nimport { ReactComponent as NoteReversedIcon } from 'src/styling/icons/customer-nav/note/comet.svg'\nimport { ReactComponent as NoteIcon } from 'src/styling/icons/customer-nav/note/white.svg'\nimport { ReactComponent as OverviewReversedIcon } from 'src/styling/icons/customer-nav/overview/comet.svg'\nimport { ReactComponent as OverviewIcon } from 'src/styling/icons/customer-nav/overview/white.svg'\nimport { ReactComponent as PhotosReversedIcon } from 'src/styling/icons/customer-nav/photos/comet.svg'\nimport { ReactComponent as Photos } from 'src/styling/icons/customer-nav/photos/white.svg'\n\nimport styles from './CustomerSidebar.styles.js'\n\nconst useStyles = makeStyles(styles)\n\nconst CustomerSidebar = ({ isSelected, onClick }) => {\n const classes = useStyles()\n const sideBarOptions = [\n {\n code: 'overview',\n display: 'Overview',\n Icon: OverviewIcon,\n InverseIcon: OverviewReversedIcon\n },\n {\n code: 'customerData',\n display: 'Customer Data',\n Icon: CustomerDataIcon,\n InverseIcon: CustomerDataReversedIcon\n },\n {\n code: 'notes',\n display: 'Notes',\n Icon: NoteIcon,\n InverseIcon: NoteReversedIcon\n },\n {\n code: 'photos',\n display: 'Photos & files',\n Icon: Photos,\n InverseIcon: PhotosReversedIcon\n }\n ]\n\n return (\n \n {sideBarOptions?.map(({ Icon, InverseIcon, display, code }) => (\n
onClick(code)}>\n
\n {isSelected(code) ? : }\n
\n {display}\n
\n ))}\n
\n )\n}\n\nexport default CustomerSidebar\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"path-1\",\n x: 0,\n y: 0,\n width: 22,\n height: 22\n}));\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/delete/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask-2\",\n fill: \"white\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#path-1\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Background\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 9,\n y1: 9,\n x2: 9,\n y2: 18,\n id: \"Stroke-1\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n mask: \"url(#mask-2)\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 13,\n y1: 9,\n x2: 13,\n y2: 18,\n id: \"Stroke-2\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n mask: \"url(#mask-2)\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-9\",\n mask: \"url(#mask-2)\",\n stroke: \"#FFFFFF\",\n strokeLinecap: \"round\",\n strokeWidth: 2\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(1.000000, 1.000000)\"\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n strokeLinejoin: \"round\",\n points: \"2 5 4 20 16 20 18 5\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 4,\n x2: 20,\n y2: 4,\n id: \"Stroke-5\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13,3 C13,1.343 11.657,0 10,0 C8.343,0 7,1.343 7,3\",\n id: \"Stroke-7\"\n}))));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"22px\",\n height: \"22px\",\n viewBox: \"0 0 22 22\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.144118ff.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/edit/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1,18 L1,18 C1,19.657 2.343,21 4,21 L18,21 C19.657,21 21,19.657 21,18\",\n id: \"Stroke-1\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-3\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n points: \"6 12 17 1 21 5 10 16 6 16\"\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"22px\",\n height: \"22px\",\n viewBox: \"0 0 22 22\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.5f161f2c.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/replace/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-3\",\n transform: \"translate(0.500000, 0.500000)\",\n stroke: \"#FFFFFF\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.27636475,10.2264084 C2.67216087,9.96069246 2.10487152,9.58126145 1.60869691,9.087544 C-0.521488181,6.9675304 -0.538316861,3.54693703 1.57123953,1.44692357 C1.86137314,1.15837428 2.17625375,0.909794042 2.50930653,0.701182852\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"3.0943493 1.69429658 3.08837783 0.545717786 1.99994228 0\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2\",\n transform: \"translate(8.999987, 5.500035) scale(-1, -1) translate(-8.999987, -5.500035) translate(6.999974, 0.000000)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.27636475,10.2264084 C2.67216087,9.96069246 2.10487152,9.58126145 1.60869691,9.087544 C-0.521488181,6.9675304 -0.538316861,3.54693703 1.57123953,1.44692357 C1.86137314,1.15837428 2.17625375,0.909794042 2.50930653,0.701182852\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"3.0943493 1.69429658 3.08837783 0.545717786 1.99994228 3.80623901e-14\"\n}))));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.16f4b162.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"path-1\",\n points: \"0 21 21 21 21 0 0 0\"\n}));\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/save/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-1\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n points: \"20.5 20.5 0.5 20.5 0.5 0.5 16.75 0.5 20.5 4.25\"\n}), /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask-2\",\n fill: \"white\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#path-1\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Clip-4\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-5\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n mask: \"url(#mask-2)\",\n points: \"4.25 7.5 16.75 7.5 16.75 0.5 4.25 0.5\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n mask: \"url(#mask-2)\",\n cx: 11,\n cy: 14,\n r: 3\n})));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.8ccc4767.svg\";\nexport { ForwardRef as ReactComponent };","import { tomato, spring4, comet } from 'src/styling/variables'\n\nexport default {\n label1: {\n display: 'flex',\n width: 85,\n justifyContent: 'right'\n },\n label1Pending: {\n color: comet\n },\n label1Rejected: {\n color: tomato\n },\n label1Accepted: {\n color: spring4\n },\n editButton: {\n marginTop: 20,\n display: 'flex',\n justifyContent: 'right'\n },\n deleteButton: {\n marginRight: 8\n },\n headerWrapper: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n height: 40\n },\n editingWrapper: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n marginTop: 20\n },\n replace: {\n marginRight: 5\n },\n input: {\n display: 'none'\n },\n button: {\n marginRight: 5\n },\n editingButtons: {\n display: 'flex',\n justifyContent: 'right'\n },\n card: {\n borderRadius: 10,\n marginRight: 15,\n marginBottom: 15\n },\n cardHeader: {\n display: 'flex',\n flexDirection: 'row',\n marginBottom: 15\n },\n editIcon: {\n marginTop: 5\n },\n cardIcon: {\n marginTop: 7\n },\n cardTitle: {\n margin: [[8, 15, 15, 15]]\n }\n}\n","import { CardContent, Card, Grid } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport { Form, Formik, Field as FormikField } from 'formik'\nimport * as R from 'ramda'\nimport { useState, React } from 'react'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport PromptWhenDirty from 'src/components/PromptWhenDirty'\nimport { MainStatus } from 'src/components/Status'\n// import { HoverableTooltip } from 'src/components/Tooltip'\nimport { ActionButton } from 'src/components/buttons'\nimport { Label1, P, H3 } from 'src/components/typography'\nimport {\n OVERRIDE_AUTHORIZED,\n OVERRIDE_REJECTED,\n OVERRIDE_PENDING\n} from 'src/pages/Customers/components/propertyCard'\nimport { ReactComponent as DeleteIcon } from 'src/styling/icons/action/delete/enabled.svg'\nimport { ReactComponent as DeleteReversedIcon } from 'src/styling/icons/action/delete/white.svg'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/action/edit/enabled.svg'\nimport { ReactComponent as EditReversedIcon } from 'src/styling/icons/action/edit/white.svg'\nimport { ReactComponent as AuthorizeIcon } from 'src/styling/icons/button/authorize/white.svg'\nimport { ReactComponent as BlockIcon } from 'src/styling/icons/button/block/white.svg'\nimport { ReactComponent as CancelReversedIcon } from 'src/styling/icons/button/cancel/white.svg'\nimport { ReactComponent as DataReversedIcon } from 'src/styling/icons/button/data/white.svg'\nimport { ReactComponent as DataIcon } from 'src/styling/icons/button/data/zodiac.svg'\nimport { ReactComponent as ReplaceReversedIcon } from 'src/styling/icons/button/replace/white.svg'\nimport { ReactComponent as SaveReversedIcon } from 'src/styling/icons/circle buttons/save/white.svg'\nimport { comet } from 'src/styling/variables'\n\nimport styles from './EditableCard.styles.js'\n\nconst useStyles = makeStyles(styles)\n\nconst fieldStyles = {\n field: {\n position: 'relative',\n width: 280,\n height: 48,\n padding: [[0, 4, 4, 0]],\n marginTop: 2\n },\n label: {\n color: comet,\n margin: [[0, 0, 0, 0]]\n },\n notEditing: {\n display: 'flex',\n flexDirection: 'column',\n '& > p:first-child': {\n height: 16,\n lineHeight: '16px',\n transformOrigin: 'left',\n paddingLeft: 0,\n margin: [[3, 0, 3, 0]]\n },\n '& > p:last-child': {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n margin: 0\n }\n },\n editing: {\n '& > div': {\n '& > input': {\n padding: 0,\n fontSize: 14\n }\n }\n },\n readOnlyLabel: {\n color: comet,\n margin: [[3, 0, 3, 0]]\n },\n readOnlyValue: {\n margin: 0\n }\n}\n\nconst fieldUseStyles = makeStyles(fieldStyles)\n\nconst EditableField = ({ editing, field, value, size, ...props }) => {\n const classes = fieldUseStyles()\n const classNames = {\n [classes.field]: true,\n [classes.notEditing]: !editing\n }\n\n return (\n \n {!editing && (\n <>\n
{field.label} \n
{value}
\n >\n )}\n {editing && (\n <>\n
{field.label} \n
\n >\n )}\n
\n )\n}\n\nconst ReadOnlyField = ({ field, value, ...props }) => {\n const classes = fieldUseStyles()\n const classNames = {\n [classes.field]: true,\n [classes.notEditing]: true\n }\n\n return (\n <>\n \n
{field.label} \n
{value}
\n
\n >\n )\n}\n\nconst EditableCard = ({\n fields,\n save,\n authorize,\n hasImage,\n reject,\n state,\n title,\n titleIcon,\n children,\n validationSchema,\n initialValues,\n deleteEditedData,\n retrieveAdditionalData,\n hasAdditionalData = true\n}) => {\n const classes = useStyles()\n\n const [editing, setEditing] = useState(false)\n const [input, setInput] = useState(null)\n const [error, setError] = useState(null)\n\n const triggerInput = () => input.click()\n\n const label1ClassNames = {\n [classes.label1]: true,\n [classes.label1Pending]: state === OVERRIDE_PENDING,\n [classes.label1Rejected]: state === OVERRIDE_REJECTED,\n [classes.label1Accepted]: state === OVERRIDE_AUTHORIZED\n }\n const authorized =\n state === OVERRIDE_PENDING\n ? { label: 'Pending', type: 'neutral' }\n : state === OVERRIDE_REJECTED\n ? { label: 'Rejected', type: 'error' }\n : { label: 'Accepted', type: 'success' }\n\n return (\n \n
\n \n \n
\n {titleIcon}\n
{title} \n {\n // TODO: Enable for next release\n /* */\n }\n \n {state && authorize && (\n
\n \n
\n )}\n
\n {children}\n {\n save(values)\n setEditing(false)\n }}\n onReset={() => {\n setEditing(false)\n setError(false)\n }}>\n {({ setFieldValue }) => (\n \n )}\n \n \n \n
\n )\n}\n\nexport default EditableCard\n","import * as R from 'ramda'\n\nconst ifNotNull = (value, valueIfNotNull) => {\n return R.isNil(value) ? '' : valueIfNotNull\n}\n\nexport { ifNotNull }\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport { Info3, Label1 } from 'src/components/typography'\nimport { comet } from 'src/styling/variables'\n\nconst useStyles = makeStyles({\n field: {\n height: 46\n },\n label: {\n color: comet,\n margin: [[0, 3]]\n },\n value: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n margin: 0,\n paddingLeft: 4\n }\n})\n\nconst Field = memo(({ label, display, size, className }) => {\n const classes = useStyles()\n\n return (\n \n {label} \n {display} \n
\n )\n})\n\nexport default Field\n","import { makeStyles, Box } from '@material-ui/core'\nimport BigNumber from 'bignumber.js'\nimport classnames from 'classnames'\nimport { utils as coinUtils } from 'lamassu-coins'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport DataTable from 'src/components/tables/DataTable'\nimport { H3, H4, Label1, Label2, P } from 'src/components/typography'\nimport { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport { ifNotNull } from 'src/utils/nullCheck'\nimport { formatDate } from 'src/utils/timezones'\n\nimport CopyToClipboard from '../../Transactions/CopyToClipboard'\nimport mainStyles from '../CustomersList.styles'\n\nconst useStyles = makeStyles(mainStyles)\n\nconst TransactionsList = ({ customer, data, loading, locale }) => {\n const classes = useStyles()\n const LastTxIcon = customer.lastTxClass === 'cashOut' ? TxOutIcon : TxInIcon\n const hasData = !(R.isEmpty(data) || R.isNil(data))\n\n const timezone = locale.timezone\n const tableSpacingClasses = {\n [classes.titleAndButtonsContainer]: loading || (!loading && !hasData),\n [classes.txTableSpacing]: !loading && hasData\n }\n\n const summaryElements = [\n {\n header: 'Transactions',\n size: 127,\n value: ifNotNull(\n customer.totalTxs,\n `${Number.parseInt(customer.totalTxs)}`\n )\n },\n {\n header: 'Transaction volume',\n size: 167,\n value: ifNotNull(\n customer.totalSpent,\n `${Number.parseFloat(customer.totalSpent)} ${customer.lastTxFiatCode}`\n )\n },\n {\n header: 'Last active',\n size: 142,\n value:\n !R.isNil(timezone) &&\n ((customer.lastActive &&\n formatDate(customer.lastActive, timezone, 'yyyy-MM-dd')) ??\n '')\n },\n {\n header: 'Last transaction',\n size: 198,\n value: ifNotNull(\n customer.lastTxFiat,\n <>\n \n {`${Number.parseFloat(customer.lastTxFiat)} \n ${customer.lastTxFiatCode}`}\n >\n )\n }\n ]\n\n const tableElements = [\n {\n width: 40,\n view: it => (\n <>\n {it.txClass === 'cashOut' ? (\n \n ) : (\n \n )}\n >\n )\n },\n {\n header: 'Machine',\n width: 160,\n view: R.path(['machineName'])\n },\n {\n header: 'Transaction ID',\n width: 145,\n view: it => (\n {it.id} \n )\n },\n {\n header: 'Cash',\n width: 155,\n textAlign: 'right',\n view: it => (\n <>\n {`${Number.parseFloat(it.fiat)} `}\n {it.fiatCode} \n >\n )\n },\n {\n header: 'Crypto',\n width: 145,\n textAlign: 'right',\n view: it => (\n <>\n {`${coinUtils\n .toUnit(new BigNumber(it.cryptoAtoms), it.cryptoCode)\n .toFormat(5)} `}\n {it.cryptoCode} \n >\n )\n },\n {\n header: 'Date',\n width: 100,\n view: it => formatDate(it.created, timezone, 'yyyy-MM-dd')\n },\n {\n header: 'Time (h:m:s)',\n width: 130,\n view: it => formatDate(it.created, timezone, 'HH:mm:ss')\n }\n ]\n\n return (\n <>\n Transactions \n \n \n {summaryElements.map(({ size, header }, idx) => (\n \n {header}\n \n ))}\n \n \n {summaryElements.map(({ size, value }, idx) => (\n \n {value}\n
\n ))}\n \n \n \n
\n {loading ? (\n
Loading \n ) : hasData ? (\n ''\n ) : (\n No transactions so far \n )}\n \n
\n {hasData && }\n >\n )\n}\n\nexport default TransactionsList\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/photo/zodiac-resized\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group\",\n transform: \"translate(11.666667, 8.333333) scale(-1, 1) translate(-11.666667, -8.333333) translate(3.333333, 0.000000)\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy\",\n x: 0.5,\n y: 0.5,\n width: 15.6666667,\n height: 15.6666667,\n rx: 1\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-Copy\",\n fill: \"#1B2559\",\n cx: 12.5,\n cy: 4.16666667,\n r: 1\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-14\",\n transform: \"translate(0.775621, 9.722222)\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path-Copy-2\",\n points: \"0 4.58204149 5.10673153 0 11.6154223 6.31150113\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path\",\n points: \"9.02830015 3.23981481 11.3158819 0.925925926 15.0663146 4.81868037\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-9\",\n transform: \"translate(0.000000, 6.666667)\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n stroke: \"#1B2559\",\n fill: \"#EBEFFF\",\n cx: 6.66666667,\n cy: 6.66666667,\n r: 6.16666667\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Path\",\n fill: \"#1B2559\",\n fillRule: \"nonzero\",\n points: \"7.22222222 6.11111111 10 6.11111111 10 7.22222222 7.22222222 7.22222222 7.22222222 10 6.11111111 10 6.11111111 7.22222222 3.33333333 7.22222222 3.33333333 6.11111111 6.11111111 6.11111111 6.11111111 3.33333333 7.22222222 3.33333333\"\n}))));\n\nfunction SvgZodiacResized(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiacResized);\nexport default __webpack_public_path__ + \"static/media/zodiac-resized.70523fd1.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/upload-file/zodiac-resized\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Add-File-Icon\",\n transform: \"translate(0.000000, 0.500000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"file-icon\",\n transform: \"translate(5.934783, 0.000000)\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"lines\",\n transform: \"translate(3.130435, 7.826087)\",\n strokeLinecap: \"round\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 7.04347826,\n x2: 7.82608696,\n y2: 7.04347826,\n id: \"line-3\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 3.91304348,\n x2: 7.82608696,\n y2: 3.91304348,\n id: \"line-2\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 0.782608696,\n x2: 5.47826087,\n y2: 0.782608696,\n id: \"line-1\"\n})), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"paper\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n points: \"13.5652174 18.6521739 0 18.6521739 -1.18243096e-12 0 8.47826087 2.91569667e-12 13.5652174 5.08695652\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"fold\",\n strokeLinejoin: \"round\",\n points: \"8.47826087 0 8.47826087 5.08695652 13.5652174 5.08695652\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"plus-sign\",\n transform: \"translate(0.000000, 5.934783)\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n stroke: \"#1B2559\",\n fill: \"#EBEFFF\",\n cx: 6.7826087,\n cy: 6.7826087,\n r: 6.2826087\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Path\",\n fill: \"#1B2559\",\n fillRule: \"nonzero\",\n points: \"7.34782609 6.2173913 10.173913 6.2173913 10.173913 7.34782609 7.34782609 7.34782609 7.34782609 10.173913 6.2173913 10.173913 6.2173913 7.34782609 3.39130435 7.34782609 3.39130435 6.2173913 6.2173913 6.2173913 6.2173913 3.39130435 7.34782609 3.39130435\"\n}))));\n\nfunction SvgZodiacResized(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiacResized);\nexport default __webpack_public_path__ + \"static/media/zodiac-resized.c4907e4b.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core/styles'\nimport { useFormikContext } from 'formik'\nimport * as R from 'ramda'\nimport React, { useState, useCallback } from 'react'\nimport { useDropzone } from 'react-dropzone'\n\nimport { Label3, H3 } from 'src/components/typography'\nimport { ReactComponent as UploadPhotoIcon } from 'src/styling/icons/button/photo/zodiac-resized.svg'\nimport { ReactComponent as UploadFileIcon } from 'src/styling/icons/button/upload-file/zodiac-resized.svg'\nimport { offColor, subheaderColor } from 'src/styling/variables'\n\nconst useStyles = makeStyles({\n box: {\n boxSizing: 'border-box',\n width: 450,\n height: 120,\n borderStyle: 'dashed',\n borderColor: offColor,\n borderRadius: 4,\n borderWidth: 1,\n backgroundColor: subheaderColor,\n display: 'flex',\n justifyContent: 'center'\n },\n inputContent: {\n marginTop: 35,\n display: 'flex'\n },\n uploadContent: {\n marginTop: 50,\n display: 'flex'\n },\n board: {\n marginTop: 40,\n width: 450,\n height: 120\n },\n icon: {\n margin: [[14, 20, 0, 0]]\n }\n})\n\nconst Upload = ({ type }) => {\n const classes = useStyles()\n\n const [data, setData] = useState({})\n\n const { setFieldValue } = useFormikContext()\n\n const IMAGE = 'image'\n const ID_CARD_PHOTO = 'idCardPhoto'\n const FRONT_CAMERA = 'frontCamera'\n\n const isImage =\n type === IMAGE || type === FRONT_CAMERA || type === ID_CARD_PHOTO\n\n const onDrop = useCallback(\n acceptedData => {\n setFieldValue(type, R.head(acceptedData))\n\n setData({\n preview: isImage\n ? URL.createObjectURL(R.head(acceptedData))\n : R.head(acceptedData).name\n })\n },\n [isImage, type, setFieldValue]\n )\n\n const { getRootProps, getInputProps } = useDropzone({ onDrop })\n\n return (\n <>\n \n {R.isEmpty(data) && (\n
\n
\n
\n {isImage ? (\n \n ) : (\n \n )}\n {`Drag and drop ${\n isImage ? 'an image' : 'a file'\n } or click to open the explorer`} \n
\n
\n )}\n {!R.isEmpty(data) && isImage && (\n
\n
\n
\n )}\n {!R.isEmpty(data) && !isImage && (\n
\n
{data.preview} \n \n )}\n
\n >\n )\n}\n\nexport default Upload\n","import { DialogActions, DialogContent, Dialog } from '@material-ui/core'\nimport Grid from '@material-ui/core/Grid'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { parse, format } from 'date-fns/fp'\nimport * as R from 'ramda'\nimport { useState, React } from 'react'\nimport * as Yup from 'yup'\n\nimport ImagePopper from 'src/components/ImagePopper'\nimport { FeatureButton, Button, IconButton } from 'src/components/buttons'\nimport { TextInput } from 'src/components/inputs/formik'\nimport { H3, Info3, H2 } from 'src/components/typography'\nimport {\n OVERRIDE_AUTHORIZED,\n OVERRIDE_REJECTED\n} from 'src/pages/Customers/components/propertyCard'\nimport { ReactComponent as CardIcon } from 'src/styling/icons/ID/card/comet.svg'\nimport { ReactComponent as PhoneIcon } from 'src/styling/icons/ID/phone/comet.svg'\nimport { ReactComponent as CrossedCameraIcon } from 'src/styling/icons/ID/photo/crossed-camera.svg'\nimport { ReactComponent as CloseIcon } from 'src/styling/icons/action/close/zodiac.svg'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/action/edit/comet.svg'\nimport { ReactComponent as CustomerListViewReversedIcon } from 'src/styling/icons/circle buttons/customer-list-view/white.svg'\nimport { ReactComponent as CustomerListViewIcon } from 'src/styling/icons/circle buttons/customer-list-view/zodiac.svg'\nimport { ReactComponent as OverviewReversedIcon } from 'src/styling/icons/circle buttons/overview/white.svg'\nimport { ReactComponent as OverviewIcon } from 'src/styling/icons/circle buttons/overview/zodiac.svg'\nimport { URI } from 'src/utils/apollo'\nimport { onlyFirstToUpper } from 'src/utils/string'\n\nimport styles from './CustomerData.styles.js'\nimport { EditableCard } from './components'\nimport {\n customerDataElements,\n customerDataSchemas,\n formatDates,\n getFormattedPhone\n} from './helper.js'\n\nconst useStyles = makeStyles(styles)\n\nconst IMAGE_WIDTH = 165\nconst IMAGE_HEIGHT = 32\nconst POPUP_IMAGE_WIDTH = 360\nconst POPUP_IMAGE_HEIGHT = 240\n\nconst Photo = ({ show, src }) => {\n const classes = useStyles({ width: IMAGE_WIDTH })\n\n return (\n <>\n {show ? (\n \n ) : (\n \n \n
\n )}\n >\n )\n}\n\nconst CustomerData = ({\n locale,\n customer,\n updateCustomer,\n replacePhoto,\n editCustomer,\n deleteEditedData,\n updateCustomRequest,\n authorizeCustomRequest,\n updateCustomEntry,\n retrieveAdditionalData\n}) => {\n const classes = useStyles()\n const [listView, setListView] = useState(false)\n const [retrieve, setRetrieve] = useState(false)\n\n const idData = R.path(['idCardData'])(customer)\n const rawExpirationDate = R.path(['expirationDate'])(idData)\n const rawDob = R.path(['dateOfBirth'])(idData)\n\n const sanctions = R.path(['sanctions'])(customer)\n const sanctionsAt = R.path(['sanctionsAt'])(customer)\n const sanctionsDisplay = !sanctionsAt\n ? 'Not checked yet'\n : sanctions\n ? 'Passed'\n : 'Failed'\n\n const sortByName = R.sortBy(\n R.compose(R.toLower, R.path(['customInfoRequest', 'customRequest', 'name']))\n )\n\n const customFields = []\n const customRequirements = []\n const customInfoRequests = sortByName(\n R.path(['customInfoRequests'])(customer) ?? []\n )\n\n const phone = R.path(['phone'])(customer)\n const smsData = R.path(['subscriberInfo', 'result'])(customer)\n\n const isEven = elem => elem % 2 === 0\n\n const getVisibleCards = R.filter(elem => elem.isAvailable)\n\n const initialValues = {\n idCardData: {\n firstName: R.path(['firstName'])(idData) ?? '',\n lastName: R.path(['lastName'])(idData) ?? '',\n documentNumber: R.path(['documentNumber'])(idData) ?? '',\n dateOfBirth:\n (rawDob &&\n format('yyyy-MM-dd')(parse(new Date(), 'yyyyMMdd', rawDob))) ??\n '',\n gender: R.path(['gender'])(idData) ?? '',\n country: R.path(['country'])(idData) ?? '',\n expirationDate:\n (rawExpirationDate &&\n format('yyyy-MM-dd')(\n parse(new Date(), 'yyyyMMdd', rawExpirationDate)\n )) ??\n ''\n },\n usSsn: {\n usSsn: customer.usSsn ?? ''\n },\n frontCamera: {\n frontCamera: null\n },\n idCardPhoto: {\n idCardPhoto: null\n },\n smsData: {\n phoneNumber: getFormattedPhone(phone, locale.country)\n }\n }\n\n const smsDataElements = [\n {\n name: 'phoneNumber',\n label: 'Phone number',\n component: TextInput,\n editable: false\n }\n ]\n\n const smsDataSchema = {\n smsData: Yup.lazy(values => {\n const additionalData = R.omit(['phoneNumber'])(values)\n const fields = R.keys(additionalData)\n if (R.length(fields) === 2) {\n return Yup.object().shape({\n [R.head(fields)]: Yup.string().required(),\n [R.last(fields)]: Yup.string().required()\n })\n }\n })\n }\n\n const cards = [\n {\n fields: customerDataElements.idCardData,\n title: 'ID Scan',\n titleIcon: ,\n state: R.path(['idCardDataOverride'])(customer),\n authorize: () =>\n updateCustomer({ idCardDataOverride: OVERRIDE_AUTHORIZED }),\n reject: () => updateCustomer({ idCardDataOverride: OVERRIDE_REJECTED }),\n deleteEditedData: () => deleteEditedData({ idCardData: null }),\n save: values =>\n editCustomer({\n idCardData: R.merge(idData, formatDates(values))\n }),\n validationSchema: customerDataSchemas.idCardData,\n initialValues: initialValues.idCardData,\n isAvailable: !R.isNil(idData)\n },\n {\n fields: smsDataElements,\n title: 'SMS data',\n titleIcon: ,\n state: R.path(['phoneOverride'])(customer),\n authorize: () => updateCustomer({ phoneOverride: OVERRIDE_AUTHORIZED }),\n reject: () => updateCustomer({ phoneOverride: OVERRIDE_REJECTED }),\n save: values => {\n editCustomer({\n subscriberInfo: {\n result: R.merge(smsData, R.omit(['phoneNumber'])(values))\n }\n })\n },\n validationSchema: smsDataSchema.smsData,\n retrieveAdditionalData: () => setRetrieve(true),\n initialValues: initialValues.smsData,\n isAvailable: !R.isNil(phone),\n hasAdditionalData: !R.isNil(smsData) && !R.isEmpty(smsData)\n },\n {\n title: 'Name',\n titleIcon: ,\n authorize: () => {},\n reject: () => {},\n save: () => {},\n isAvailable: false\n },\n {\n title: 'Sanctions check',\n titleIcon: ,\n state: R.path(['sanctionsOverride'])(customer),\n authorize: () =>\n updateCustomer({ sanctionsOverride: OVERRIDE_AUTHORIZED }),\n reject: () => updateCustomer({ sanctionsOverride: OVERRIDE_REJECTED }),\n children: {sanctionsDisplay} ,\n isAvailable: !R.isNil(sanctions)\n },\n {\n fields: customerDataElements.frontCamera,\n title: 'Front facing camera',\n titleIcon: ,\n state: R.path(['frontCameraOverride'])(customer),\n authorize: () =>\n updateCustomer({ frontCameraOverride: OVERRIDE_AUTHORIZED }),\n reject: () => updateCustomer({ frontCameraOverride: OVERRIDE_REJECTED }),\n save: values =>\n replacePhoto({\n newPhoto: values.frontCamera,\n photoType: 'frontCamera'\n }),\n deleteEditedData: () => deleteEditedData({ frontCamera: null }),\n children: customer.frontCameraPath ? (\n \n ) : null,\n hasImage: true,\n validationSchema: customerDataSchemas.frontCamera,\n initialValues: initialValues.frontCamera,\n isAvailable: !R.isNil(customer.frontCameraPath)\n },\n {\n fields: customerDataElements.idCardPhoto,\n title: 'ID card image',\n titleIcon: ,\n state: R.path(['idCardPhotoOverride'])(customer),\n authorize: () =>\n updateCustomer({ idCardPhotoOverride: OVERRIDE_AUTHORIZED }),\n reject: () => updateCustomer({ idCardPhotoOverride: OVERRIDE_REJECTED }),\n save: values =>\n replacePhoto({\n newPhoto: values.idCardPhoto,\n photoType: 'idCardPhoto'\n }),\n deleteEditedData: () => deleteEditedData({ idCardPhoto: null }),\n children: customer.idCardPhotoPath ? (\n \n ) : null,\n hasImage: true,\n validationSchema: customerDataSchemas.idCardPhoto,\n initialValues: initialValues.idCardPhoto,\n isAvailable: !R.isNil(customer.idCardPhotoPath)\n },\n {\n fields: customerDataElements.usSsn,\n title: 'US SSN',\n titleIcon: ,\n state: R.path(['usSsnOverride'])(customer),\n authorize: () => updateCustomer({ usSsnOverride: OVERRIDE_AUTHORIZED }),\n reject: () => updateCustomer({ usSsnOverride: OVERRIDE_REJECTED }),\n save: values => editCustomer(values),\n deleteEditedData: () => deleteEditedData({ usSsn: null }),\n validationSchema: customerDataSchemas.usSsn,\n initialValues: initialValues.usSsn,\n isAvailable: !R.isNil(customer.usSsn)\n }\n ]\n\n R.forEach(it => {\n customRequirements.push({\n fields: [\n {\n name: it.customInfoRequest.id,\n label: it.customInfoRequest.customRequest.name,\n value: it.customerData.data ?? '',\n component: TextInput,\n editable: true\n }\n ],\n title: it.customInfoRequest.customRequest.name,\n titleIcon: ,\n state: R.path(['override'])(it),\n authorize: () =>\n authorizeCustomRequest({\n variables: {\n customerId: it.customerId,\n infoRequestId: it.customInfoRequest.id,\n override: OVERRIDE_AUTHORIZED\n }\n }),\n reject: () =>\n authorizeCustomRequest({\n variables: {\n customerId: it.customerId,\n infoRequestId: it.customInfoRequest.id,\n override: OVERRIDE_REJECTED\n }\n }),\n save: values => {\n updateCustomRequest({\n variables: {\n customerId: it.customerId,\n infoRequestId: it.customInfoRequest.id,\n data: {\n info_request_id: it.customInfoRequest.id,\n data: values[it.customInfoRequest.id]\n }\n }\n })\n },\n deleteEditedData: () => {},\n validationSchema: Yup.object().shape({\n [it.customInfoRequest.id]: Yup.string()\n }),\n initialValues: {\n [it.customInfoRequest.id]: it.customerData.data ?? ''\n }\n })\n }, customInfoRequests)\n\n R.forEach(it => {\n customFields.push({\n fields: [\n {\n name: it.label,\n label: it.label,\n value: it.value ?? '',\n component: TextInput,\n editable: true\n }\n ],\n title: it.label,\n titleIcon: ,\n save: values => {\n updateCustomEntry({\n fieldId: it.id,\n value: values[it.label]\n })\n },\n deleteEditedData: () => {},\n validationSchema: Yup.object().shape({\n [it.label]: Yup.string()\n }),\n initialValues: {\n [it.label]: it.value ?? ''\n }\n })\n }, R.path(['customFields'])(customer) ?? [])\n\n R.forEach(it => {\n initialValues.smsData[it] = smsData[it]\n smsDataElements.push({\n name: it,\n label: onlyFirstToUpper(it),\n component: TextInput,\n editable: true\n })\n }, R.keys(smsData) ?? [])\n\n const editableCard = (\n {\n title,\n authorize,\n reject,\n state,\n titleIcon,\n fields,\n save,\n deleteEditedData,\n retrieveAdditionalData,\n children,\n validationSchema,\n initialValues,\n hasImage,\n hasAdditionalData\n },\n idx\n ) => {\n return (\n \n )\n }\n\n const visibleCards = getVisibleCards(cards)\n\n return (\n \n
\n
{'Customer data'} \n {// TODO: Remove false condition for next release\n false && (\n <>\n setListView(false)}\n />\n setListView(true)}> \n >\n )}\n \n
\n {!listView && customer && (\n
\n \n {visibleCards.map((elem, idx) => {\n return isEven(idx) ? editableCard(elem, idx) : null\n })}\n \n \n {visibleCards.map((elem, idx) => {\n return !isEven(idx) ? editableCard(elem, idx) : null\n })}\n \n \n )}\n {!R.isEmpty(customFields) && (\n
\n Custom data entry \n \n \n {customFields.map((elem, idx) => {\n return isEven(idx) ? editableCard(elem, idx) : null\n })}\n \n \n {customFields.map((elem, idx) => {\n return !isEven(idx) ? editableCard(elem, idx) : null\n })}\n \n \n
\n )}\n {!R.isEmpty(customRequirements) && (\n
\n Custom requirements \n \n \n {customRequirements.map((elem, idx) => {\n return isEven(idx) ? editableCard(elem, idx) : null\n })}\n \n \n {customRequirements.map((elem, idx) => {\n return !isEven(idx) ? editableCard(elem, idx) : null\n })}\n \n \n
\n )}\n
\n
\n
\n )\n}\n\nconst RetrieveDataDialog = ({\n setRetrieve,\n retrieveAdditionalData,\n open,\n props\n}) => {\n const classes = useStyles()\n\n return (\n \n \n setRetrieve(false)}>\n \n \n
\n {'Retrieve API data from Twilio'} \n \n {`With this action you'll be using Twilio's API to retrieve additional\n data from this user. This includes name and address, if available.\\n`} \n {` There is a small cost from Twilio for each retrieval. Would you like\n to proceed?`} \n \n \n setRetrieve(false)}>\n Cancel\n \n {\n retrieveAdditionalData()\n setRetrieve(false)\n }}>\n Confirm\n \n \n \n )\n}\n\nexport default CustomerData\n","const styles = {\n header: {\n display: 'flex',\n flexDirection: 'row'\n },\n title: {\n marginTop: 7,\n marginRight: 24\n },\n notesChipList: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap'\n }\n}\n\nexport default styles\n","import { zircon } from 'src/styling/variables'\n\nconst styles = {\n noteCardWrapper: {\n flexGrow: 0,\n flexShrink: 0,\n flexBasis: `25%`,\n minWidth: 0,\n maxWidth: 500,\n '&:nth-child(4n+1)': {\n '& > div': {\n margin: [[0, 10, 0, 0]]\n }\n },\n '&:nth-child(4n)': {\n '& > div': {\n margin: [[0, 0, 0, 10]]\n }\n },\n margin: [[10, 0]]\n },\n noteCardChip: {\n height: 200,\n margin: [[0, 10]],\n padding: [[10, 10]],\n cursor: 'pointer'\n },\n newNoteCard: {\n backgroundColor: zircon,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center'\n },\n noteCardHeader: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n width: '100%'\n },\n noteCardTitle: {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n marginRight: 10\n },\n noteCardContent: {\n display: 'box',\n lineClamp: 7,\n boxOrient: 'vertical',\n margin: [[15, 0]],\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n wordWrap: 'break-word'\n },\n editCardChip: {\n height: 325,\n padding: 15\n },\n editCardHeader: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginBottom: 15\n },\n editCardActions: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n '& > *': {\n marginRight: 10\n },\n '& > *:last-child': {\n marginRight: 0\n }\n },\n editNotesContent: {\n '& > div': {\n '&:after': {\n borderBottom: 'none'\n },\n '&:before': {\n borderBottom: 'none'\n },\n '&:hover:not(.Mui-disabled)::before': {\n borderBottom: 'none'\n }\n }\n }\n}\n\nexport default styles\n","import { makeStyles, Paper } from '@material-ui/core'\nimport classNames from 'classnames'\nimport { React } from 'react'\n\nimport { P } from 'src/components/typography'\nimport { ReactComponent as AddIcon } from 'src/styling/icons/button/add/zodiac.svg'\n\nimport styles from './NoteCard.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst NewNoteCard = ({ setOpenModal }) => {\n const classes = useStyles()\n return (\n setOpenModal(true)}>\n
\n \n Add new
\n \n
\n )\n}\n\nexport default NewNoteCard\n","import { spacer } from 'src/styling/variables'\n\nconst styles = {\n form: {\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n '& > *': {\n marginTop: 20\n },\n '& > *:last-child': {\n marginTop: 'auto'\n }\n },\n submit: {\n margin: [['auto', 0, 0, 'auto']]\n },\n footer: {\n display: 'flex',\n flexDirection: 'row',\n margin: [['auto', 0, spacer * 3, 0]]\n }\n}\n\nexport default styles\n","import { makeStyles } from '@material-ui/core/styles'\nimport { Form, Formik, Field } from 'formik'\nimport { React } from 'react'\nimport * as Yup from 'yup'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Modal from 'src/components/Modal'\nimport { Button } from 'src/components/buttons'\nimport { TextInput } from 'src/components/inputs/formik'\n\nimport styles from './NewNoteModal.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst initialValues = {\n title: '',\n content: ''\n}\n\nconst validationSchema = Yup.object().shape({\n title: Yup.string()\n .required()\n .trim()\n .max(25),\n content: Yup.string().required()\n})\n\nconst NewNoteModal = ({ showModal, onClose, onSubmit, errorMsg }) => {\n const classes = useStyles()\n\n return (\n <>\n \n {\n onSubmit({ title, content })\n }}>\n \n \n \n >\n )\n}\n\nexport default NewNoteModal\n","import { makeStyles, Paper } from '@material-ui/core'\nimport * as R from 'ramda'\nimport { React } from 'react'\n\nimport { H3, P } from 'src/components/typography'\nimport { ReactComponent as DeleteIcon } from 'src/styling/icons/action/delete/enabled.svg'\nimport { formatDate } from 'src/utils/timezones'\n\nimport styles from './NoteCard.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst formatContent = content => {\n const fragments = R.split(/\\n/)(content)\n return R.map((it, idx) => {\n if (idx === fragments.length) return <>{it}>\n return (\n <>\n {it}\n \n >\n )\n }, fragments)\n}\n\nconst NoteCard = ({ note, deleteNote, handleClick, timezone }) => {\n const classes = useStyles()\n\n return (\n \n
handleClick(note)}>\n \n
\n
{note?.title} \n
{formatDate(note?.created, timezone, 'yyyy-MM-dd')}
\n
\n
\n {\n e.stopPropagation()\n deleteNote({ noteId: note.id })\n }}\n />\n
\n
\n \n {formatContent(note?.content)}\n
\n \n
\n )\n}\n\nexport default NoteCard\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"path-1\",\n points: \"0 21 21 21 21 0 0 0\"\n}));\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/save/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-10\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-6\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-1\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n points: \"20.5 20.5 0.5 20.5 0.5 0.5 16.75 0.5 20.5 4.25\"\n}), /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask-2\",\n fill: \"white\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#path-1\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Clip-4\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-5\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n mask: \"url(#mask-2)\",\n points: \"4.25 7.5 16.75 7.5 16.75 0.5 4.25 0.5\"\n}))), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n cx: 11,\n cy: 14,\n r: 3\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.9be6e999.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles, Paper } from '@material-ui/core'\nimport { formatDurationWithOptions, intervalToDuration } from 'date-fns/fp'\nimport { Form, Formik, Field } from 'formik'\nimport { React, useRef } from 'react'\nimport * as Yup from 'yup'\n\nimport { ActionButton } from 'src/components/buttons'\nimport { TextInput } from 'src/components/inputs/formik'\nimport { P } from 'src/components/typography'\nimport { ReactComponent as CancelIconInverse } from 'src/styling/icons/button/cancel/white.svg'\nimport { ReactComponent as CancelIcon } from 'src/styling/icons/button/cancel/zodiac.svg'\nimport { ReactComponent as SaveIconInverse } from 'src/styling/icons/circle buttons/save/white.svg'\nimport { ReactComponent as SaveIcon } from 'src/styling/icons/circle buttons/save/zodiac.svg'\nimport { toTimezone } from 'src/utils/timezones'\n\nimport styles from './NoteCard.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst NoteEdit = ({ note, cancel, edit, timezone }) => {\n const formRef = useRef()\n const classes = useStyles()\n\n const validationSchema = Yup.object().shape({\n content: Yup.string()\n })\n\n const initialValues = {\n content: note.content\n }\n\n return (\n \n \n
\n {`Last edited `}\n {formatDurationWithOptions(\n { delimited: ', ' },\n intervalToDuration({\n start: toTimezone(new Date(note.lastEditedAt), timezone),\n end: toTimezone(new Date(), timezone)\n })\n )}\n {` ago`}\n
\n
\n
\n {`Cancel`}\n \n
\n {`Save changes`}\n \n
formRef.current.setFieldValue('content', '')}>\n {`Clear content`}\n \n
\n
\n \n edit({\n noteId: note.id,\n newContent: content,\n oldContent: note.content\n })\n }\n innerRef={formRef}>\n \n \n \n )\n}\n\nexport default NoteEdit\n","import { makeStyles } from '@material-ui/core'\nimport * as R from 'ramda'\nimport { React, useState } from 'react'\n\nimport { H3 } from 'src/components/typography'\n\nimport styles from './CustomerNotes.styles'\nimport NewNoteCard from './components/notes/NewNoteCard'\nimport NewNoteModal from './components/notes/NewNoteModal'\nimport NoteCard from './components/notes/NoteCard'\nimport NoteEdit from './components/notes/NoteEdit'\n\nconst useStyles = makeStyles(styles)\n\nconst CustomerNotes = ({\n customer,\n createNote,\n deleteNote,\n editNote,\n timezone\n}) => {\n const classes = useStyles()\n const [openModal, setOpenModal] = useState(false)\n const [editing, setEditing] = useState(null)\n\n const customerNotes = R.sort(\n (a, b) => new Date(b?.created).getTime() - new Date(a?.created).getTime(),\n customer.notes ?? []\n )\n\n const handleModalClose = () => {\n setOpenModal(false)\n }\n\n const handleModalSubmit = it => {\n createNote(it)\n return handleModalClose()\n }\n\n const cancelNoteEditing = () => {\n setEditing(null)\n }\n\n const submitNoteEditing = it => {\n if (!R.equals(it.newContent, it.oldContent)) {\n editNote({\n noteId: it.noteId,\n newContent: it.newContent\n })\n }\n setEditing(null)\n }\n\n return (\n \n
\n
{'Notes'} \n \n {R.isNil(editing) && (\n
\n \n {R.map(\n it => (\n \n ),\n customerNotes\n )}\n
\n )}\n {!R.isNil(editing) && (\n
\n )}\n {openModal && (\n
\n )}\n
\n )\n}\n\nexport default CustomerNotes\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/ID/photo/new/comet\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12,14 C9.7912,14 8,12.2088 8,10 C8,7.7912 9.7912,6 12,6 C14.2088,6 16,7.7912 16,10 C16,12.2088 14.2088,14 12,14 Z M16.7142857,3.4 L14.3571429,1 L9.64285714,1 L7.28571429,3.4 L1,3.4 L1,17 L23,17 L23,3.4 L16.7142857,3.4 Z\",\n id: \"Stroke-1\",\n stroke: \"#5F668A\",\n strokeWidth: 1.6\n}));\n\nfunction SvgComet(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"24px\",\n height: \"18px\",\n viewBox: \"0 0 24 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/ID/photo/new/comet\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgComet);\nexport default __webpack_public_path__ + \"static/media/comet.8877f6c3.svg\";\nexport { ForwardRef as ReactComponent };","const styles = {\n header: {\n display: 'flex',\n flexDirection: 'row'\n },\n title: {\n marginTop: 7,\n marginRight: 24,\n marginBottom: 32\n },\n photosChipList: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap'\n },\n image: {\n objectFit: 'cover',\n objectPosition: 'center',\n width: 224,\n height: 200,\n borderTopLeftRadius: 4,\n borderTopRightRadius: 4\n },\n photoCardChip: {\n margin: [[0, 16, 0, 0]]\n },\n footer: {\n display: 'flex',\n flexDirection: 'row',\n margin: [[8, 0, 0, 8]]\n },\n date: {\n margin: [[0, 0, 8, 12]]\n }\n}\n\nexport default styles\n","import { makeStyles, Paper } from '@material-ui/core'\nimport { format } from 'date-fns/fp'\nimport * as R from 'ramda'\nimport { React, useState } from 'react'\n\nimport { InformativeDialog } from 'src/components/InformativeDialog'\nimport { Label2, H3 } from 'src/components/typography'\nimport { ReactComponent as CameraIcon } from 'src/styling/icons/ID/photo/comet.svg'\nimport { URI } from 'src/utils/apollo'\n\nimport styles from './CustomerPhotos.styles'\nimport PhotosCarousel from './components/PhotosCarousel'\n\nconst useStyles = makeStyles(styles)\n\nconst CustomerPhotos = ({ photosData }) => {\n const classes = useStyles()\n\n const [photosDialog, setPhotosDialog] = useState(false)\n const [photoClickedIndex, setPhotoClickIndex] = useState(null)\n const orderedPhotosData = !R.isNil(photoClickedIndex)\n ? R.compose(R.flatten, R.reverse, R.splitAt(photoClickedIndex))(photosData)\n : photosData\n\n return (\n \n
\n
{'Photos & files'} \n \n
\n {photosData.map((elem, idx) => (\n
\n ))}\n
\n
}\n onDissmised={() => {\n setPhotosDialog(false)\n setPhotoClickIndex(null)\n }}\n />\n
\n )\n}\n\nexport const PhotoCard = ({\n idx,\n date,\n src,\n setPhotosDialog,\n setPhotoClickIndex\n}) => {\n const classes = useStyles()\n\n return (\n {\n setPhotoClickIndex(idx)\n setPhotosDialog(true)\n }}>\n \n \n \n \n {format('yyyy-MM-dd', new Date(date))}\n \n
\n \n )\n}\n\nexport default CustomerPhotos\n","import { comet, subheaderColor } from 'src/styling/variables'\n\nexport default {\n labelLink: {\n cursor: 'pointer',\n color: comet\n },\n breadcrumbs: {\n margin: [[20, 0]]\n },\n actionLabel: {\n color: comet,\n margin: [[4, 0]]\n },\n customerDetails: {\n marginBottom: 18\n },\n actionButton: {\n margin: [[0, 0, 4, 0]],\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center'\n },\n actionBar: {\n display: 'flex',\n flexDirection: 'column',\n width: 219\n },\n panels: {\n display: 'flex'\n },\n rightSidePanel: {\n display: 'block',\n width: 1100\n },\n leftSidePanel: {\n width: 300,\n '& > *': {\n marginBottom: 25\n },\n '& > *:last-child': {\n marginBottom: 0\n },\n '& > *:first-child': {\n marginBottom: 50\n }\n },\n userStatusAction: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n backgroundColor: subheaderColor,\n borderRadius: 8,\n padding: [[0, 5]]\n }\n}\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles, Breadcrumbs, Box } from '@material-ui/core'\nimport NavigateNextIcon from '@material-ui/icons/NavigateNext'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { memo, useState } from 'react'\nimport { useHistory, useParams } from 'react-router-dom'\n\nimport { ActionButton } from 'src/components/buttons'\nimport { Switch } from 'src/components/inputs'\nimport { Label1, Label2 } from 'src/components/typography'\nimport {\n OVERRIDE_AUTHORIZED,\n OVERRIDE_REJECTED\n} from 'src/pages/Customers/components/propertyCard'\nimport { ReactComponent as AuthorizeReversedIcon } from 'src/styling/icons/button/authorize/white.svg'\nimport { ReactComponent as AuthorizeIcon } from 'src/styling/icons/button/authorize/zodiac.svg'\nimport { ReactComponent as BlockReversedIcon } from 'src/styling/icons/button/block/white.svg'\nimport { ReactComponent as BlockIcon } from 'src/styling/icons/button/block/zodiac.svg'\nimport { ReactComponent as DataReversedIcon } from 'src/styling/icons/button/data/white.svg'\nimport { ReactComponent as DataIcon } from 'src/styling/icons/button/data/zodiac.svg'\n// TODO: Enable for next release\n// import { ReactComponent as DiscountReversedIcon } from 'src/styling/icons/button/discount/white.svg'\n// import { ReactComponent as Discount } from 'src/styling/icons/button/discount/zodiac.svg'\nimport { fromNamespace, namespaces } from 'src/utils/config'\n\nimport CustomerData from './CustomerData'\nimport CustomerNotes from './CustomerNotes'\nimport CustomerPhotos from './CustomerPhotos'\nimport styles from './CustomerProfile.styles'\nimport {\n CustomerDetails,\n TransactionsList,\n CustomerSidebar,\n Wizard\n} from './components'\nimport { getFormattedPhone, getName, formatPhotosData } from './helper'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_CUSTOMER = gql`\n query customer($customerId: ID!) {\n config\n customer(customerId: $customerId) {\n id\n authorizedOverride\n frontCameraPath\n frontCameraAt\n frontCameraOverride\n phone\n isAnonymous\n smsOverride\n idCardData\n idCardDataOverride\n idCardDataExpiration\n idCardPhotoPath\n idCardPhotoOverride\n usSsn\n usSsnOverride\n sanctions\n sanctionsAt\n sanctionsOverride\n totalTxs\n totalSpent\n lastActive\n lastTxFiat\n lastTxFiatCode\n lastTxClass\n daysSuspended\n isSuspended\n isTestCustomer\n subscriberInfo\n phoneOverride\n customFields {\n id\n label\n value\n }\n notes {\n id\n customerId\n title\n content\n created\n lastEditedAt\n }\n transactions {\n txClass\n id\n fiat\n fiatCode\n cryptoAtoms\n cryptoCode\n created\n machineName\n errorMessage: error\n error: errorCode\n txCustomerPhotoAt\n txCustomerPhotoPath\n }\n customInfoRequests {\n customerId\n override\n overrideBy\n overrideAt\n customerData\n customInfoRequest {\n id\n enabled\n customRequest\n }\n }\n }\n }\n`\n\nconst SET_CUSTOMER = gql`\n mutation setCustomer($customerId: ID!, $customerInput: CustomerInput) {\n setCustomer(customerId: $customerId, customerInput: $customerInput) {\n id\n authorizedOverride\n frontCameraPath\n frontCameraOverride\n phone\n smsOverride\n idCardData\n idCardDataOverride\n idCardDataExpiration\n idCardPhotoPath\n idCardPhotoOverride\n usSsn\n usSsnOverride\n sanctions\n sanctionsAt\n sanctionsOverride\n totalTxs\n totalSpent\n lastActive\n lastTxFiat\n lastTxFiatCode\n lastTxClass\n subscriberInfo\n phoneOverride\n }\n }\n`\nconst EDIT_CUSTOMER = gql`\n mutation editCustomer($customerId: ID!, $customerEdit: CustomerEdit) {\n editCustomer(customerId: $customerId, customerEdit: $customerEdit) {\n id\n idCardData\n usSsn\n }\n }\n`\n\nconst REPLACE_CUSTOMER_PHOTO = gql`\n mutation replacePhoto(\n $customerId: ID!\n $photoType: String\n $newPhoto: Upload\n ) {\n replacePhoto(\n customerId: $customerId\n photoType: $photoType\n newPhoto: $newPhoto\n ) {\n id\n newPhoto\n photoType\n }\n }\n`\n\nconst DELETE_EDITED_CUSTOMER = gql`\n mutation deleteEditedData($customerId: ID!, $customerEdit: CustomerEdit) {\n deleteEditedData(customerId: $customerId, customerEdit: $customerEdit) {\n id\n frontCameraPath\n idCardData\n idCardPhotoPath\n usSsn\n }\n }\n`\n\nconst SET_AUTHORIZED_REQUEST = gql`\n mutation setAuthorizedCustomRequest(\n $customerId: ID!\n $infoRequestId: ID!\n $override: String!\n ) {\n setAuthorizedCustomRequest(\n customerId: $customerId\n infoRequestId: $infoRequestId\n override: $override\n )\n }\n`\n\nconst SET_CUSTOMER_CUSTOM_INFO_REQUEST = gql`\n mutation setCustomerCustomInfoRequest(\n $customerId: ID!\n $infoRequestId: ID!\n $data: JSON!\n ) {\n setCustomerCustomInfoRequest(\n customerId: $customerId\n infoRequestId: $infoRequestId\n data: $data\n )\n }\n`\n\nconst CREATE_NOTE = gql`\n mutation createCustomerNote(\n $customerId: ID!\n $title: String!\n $content: String!\n ) {\n createCustomerNote(\n customerId: $customerId\n title: $title\n content: $content\n )\n }\n`\n\nconst DELETE_NOTE = gql`\n mutation deleteCustomerNote($noteId: ID!) {\n deleteCustomerNote(noteId: $noteId)\n }\n`\n\nconst EDIT_NOTE = gql`\n mutation editCustomerNote($noteId: ID!, $newContent: String!) {\n editCustomerNote(noteId: $noteId, newContent: $newContent)\n }\n`\n\nconst ENABLE_TEST_CUSTOMER = gql`\n mutation enableTestCustomer($customerId: ID!) {\n enableTestCustomer(customerId: $customerId)\n }\n`\n\nconst DISABLE_TEST_CUSTOMER = gql`\n mutation disableTestCustomer($customerId: ID!) {\n disableTestCustomer(customerId: $customerId)\n }\n`\n\nconst GET_DATA = gql`\n query getData {\n config\n }\n`\n\nconst SET_CUSTOM_ENTRY = gql`\n mutation addCustomField($customerId: ID!, $label: String!, $value: String!) {\n addCustomField(customerId: $customerId, label: $label, value: $value)\n }\n`\n\nconst EDIT_CUSTOM_ENTRY = gql`\n mutation saveCustomField($customerId: ID!, $fieldId: ID!, $value: String!) {\n saveCustomField(customerId: $customerId, fieldId: $fieldId, value: $value)\n }\n`\n\nconst GET_ACTIVE_CUSTOM_REQUESTS = gql`\n query customInfoRequests($onlyEnabled: Boolean) {\n customInfoRequests(onlyEnabled: $onlyEnabled) {\n id\n customRequest\n }\n }\n`\n\nconst CustomerProfile = memo(() => {\n const history = useHistory()\n\n const [showCompliance, setShowCompliance] = useState(false)\n const [wizard, setWizard] = useState(false)\n const [error] = useState(null)\n const [clickedItem, setClickedItem] = useState('overview')\n const { id: customerId } = useParams()\n\n const {\n data: customerResponse,\n refetch: getCustomer,\n loading: customerLoading\n } = useQuery(GET_CUSTOMER, {\n variables: { customerId }\n })\n\n const { data: configResponse, loading: configLoading } = useQuery(GET_DATA)\n\n const { data: activeCustomRequests } = useQuery(GET_ACTIVE_CUSTOM_REQUESTS, {\n variables: {\n onlyEnabled: true\n }\n })\n\n const [setCustomEntry] = useMutation(SET_CUSTOM_ENTRY, {\n onCompleted: () => getCustomer()\n })\n\n const [editCustomEntry] = useMutation(EDIT_CUSTOM_ENTRY, {\n onCompleted: () => getCustomer()\n })\n\n const [replaceCustomerPhoto] = useMutation(REPLACE_CUSTOMER_PHOTO, {\n onCompleted: () => getCustomer()\n })\n\n const [editCustomerData] = useMutation(EDIT_CUSTOMER, {\n onCompleted: () => getCustomer()\n })\n\n const [deleteCustomerEditedData] = useMutation(DELETE_EDITED_CUSTOMER, {\n onCompleted: () => getCustomer()\n })\n\n const [setCustomer] = useMutation(SET_CUSTOMER, {\n onCompleted: () => getCustomer()\n })\n\n const [authorizeCustomRequest] = useMutation(SET_AUTHORIZED_REQUEST, {\n onCompleted: () => getCustomer()\n })\n\n const [setCustomerCustomInfoRequest] = useMutation(\n SET_CUSTOMER_CUSTOM_INFO_REQUEST,\n {\n onCompleted: () => getCustomer()\n }\n )\n\n const [createNote] = useMutation(CREATE_NOTE, {\n onCompleted: () => getCustomer()\n })\n\n const [deleteNote] = useMutation(DELETE_NOTE, {\n onCompleted: () => getCustomer()\n })\n\n const [editNote] = useMutation(EDIT_NOTE, {\n onCompleted: () => getCustomer()\n })\n\n const saveCustomEntry = it => {\n setCustomEntry({\n variables: {\n customerId,\n label: it.title,\n value: it.data\n }\n })\n setWizard(null)\n }\n\n const updateCustomEntry = it => {\n editCustomEntry({\n variables: {\n customerId,\n fieldId: it.fieldId,\n value: it.value\n }\n })\n }\n\n const [enableTestCustomer] = useMutation(ENABLE_TEST_CUSTOMER, {\n variables: { customerId },\n onCompleted: () => getCustomer()\n })\n\n const [disableTestCustomer] = useMutation(DISABLE_TEST_CUSTOMER, {\n variables: { customerId },\n onCompleted: () => getCustomer()\n })\n\n const updateCustomer = it =>\n setCustomer({\n variables: {\n customerId,\n customerInput: it\n }\n })\n\n const replacePhoto = it => {\n replaceCustomerPhoto({\n variables: {\n customerId,\n newPhoto: it.newPhoto,\n photoType: it.photoType\n }\n })\n setWizard(null)\n }\n\n const editCustomer = it => {\n editCustomerData({\n variables: {\n customerId,\n customerEdit: it\n }\n })\n setWizard(null)\n }\n\n const deleteEditedData = it =>\n deleteCustomerEditedData({\n variables: {\n customerId,\n customerEdit: it\n }\n })\n\n const createCustomerNote = it =>\n createNote({\n variables: {\n customerId,\n title: it.title,\n content: it.content\n }\n })\n\n const deleteCustomerNote = it =>\n deleteNote({\n variables: {\n noteId: it.noteId\n }\n })\n\n const editCustomerNote = it =>\n editNote({\n variables: {\n noteId: it.noteId,\n newContent: it.newContent\n }\n })\n\n const retrieveAdditionalData = () =>\n setCustomer({\n variables: {\n customerId,\n customerInput: {\n subscriberInfo: true\n }\n }\n })\n\n const onClickSidebarItem = code => setClickedItem(code)\n\n const configData = R.path(['config'])(customerResponse) ?? []\n const locale = configData && fromNamespace(namespaces.LOCALE, configData)\n const customerData = R.path(['customer'])(customerResponse) ?? []\n const rawTransactions = R.path(['transactions'])(customerData) ?? []\n const sortedTransactions = R.sort(R.descend(R.prop('cryptoAtoms')))(\n rawTransactions\n )\n const name = getName(customerData)\n const blocked =\n R.path(['authorizedOverride'])(customerData) === OVERRIDE_REJECTED\n\n const isSuspended = customerData.isSuspended\n const isCustomerData = clickedItem === 'customerData'\n const isOverview = clickedItem === 'overview'\n const isNotes = clickedItem === 'notes'\n const isPhotos = clickedItem === 'photos'\n\n const frontCameraData = R.pick(['frontCameraPath', 'frontCameraAt'])(\n customerData\n )\n const txPhotosData =\n sortedTransactions &&\n R.map(R.pick(['id', 'txCustomerPhotoPath', 'txCustomerPhotoAt']))(\n sortedTransactions\n )\n\n const photosData = formatPhotosData(R.append(frontCameraData, txPhotosData))\n\n const loading = customerLoading || configLoading\n\n const timezone = R.path(['config', 'locale_timezone'], configResponse)\n\n const customInfoRequirementOptions =\n activeCustomRequests?.customInfoRequests?.map(it => ({\n value: it.id,\n display: it.customRequest.name\n })) ?? []\n\n const classes = useStyles()\n\n return (\n <>\n }\n aria-label=\"breadcrumb\">\n history.push('/compliance/customers')}>\n Customers\n \n \n {name.length\n ? name\n : getFormattedPhone(\n R.path(['phone'])(customerData),\n locale.country\n )}\n \n \n \n
\n {!loading && !customerData.isAnonymous && (\n <>\n
code === clickedItem}\n onClick={onClickSidebarItem}\n />\n \n
Actions \n
\n
setWizard(true)}>\n {`Manual data entry`}\n \n {/*
{}}>\n {`Add individual discount`}\n */}\n {isSuspended && (\n
\n updateCustomer({\n suspendedUntil: null\n })\n }>\n {`Unsuspend customer`}\n \n )}\n
\n updateCustomer({\n authorizedOverride: blocked\n ? OVERRIDE_AUTHORIZED\n : OVERRIDE_REJECTED\n })\n }>\n {`${blocked ? 'Authorize' : 'Block'} customer`}\n \n
\n
\n \n
\n {`Special user status`}\n \n
\n
\n \n R.path(['isTestCustomer'])(customerData)\n ? disableTestCustomer()\n : enableTestCustomer()\n }\n />\n {`Test user`}\n
\n
\n
\n >\n )}\n \n
\n {isOverview && (\n
\n
\n setShowCompliance(!showCompliance)}\n />\n \n
\n \n
\n
\n )}\n {isCustomerData && (\n
\n \n
\n )}\n {isNotes && (\n
\n \n
\n )}\n {isPhotos && (\n
\n \n
\n )}\n
\n {wizard && (\n
setWizard(null)}\n customInfoRequirementOptions={customInfoRequirementOptions}\n />\n )}\n \n >\n )\n})\n\nexport default CustomerProfile\n","import baseButtonStyles from 'src/components/buttons/BaseButton.styles'\nimport { bySize, bold } from 'src/styling/helpers'\nimport { zircon, comet, primaryColor } from 'src/styling/variables'\n\nconst { baseButton } = baseButtonStyles\n\nconst searchBoxBorderRadius = baseButton.height / 2\nconst searchBoxHeight = 32\nconst popupBorderRadiusFocus = baseButton.height / 4\n\nconst hoverColor = 'rgba(0, 0, 0, 0.08)'\nconst boxShadow = `0 4px 4px 0 ${hoverColor}`\n\nconst styles = {\n size: ({ size }) => ({\n marginTop: size === 'lg' ? 0 : 2,\n ...bySize(size)\n }),\n bold,\n autocomplete: {\n '&[data-focus=\"true\"]': {\n backgroundColor: hoverColor\n }\n },\n popup: {\n display: 'flex',\n flexDirection: 'column',\n borderRadius: [[0, 0, popupBorderRadiusFocus, popupBorderRadiusFocus]],\n backgroundColor: zircon,\n boxShadow\n },\n separator: {\n width: '88%',\n height: 1,\n margin: '0 auto',\n border: 'solid 0.5px',\n borderColor: comet\n },\n item: {\n display: 'flex',\n flexDirection: 'row',\n width: '100%',\n height: 36,\n alignItems: 'center'\n },\n itemLabel: {\n margin: [0],\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n itemType: {\n marginLeft: 'auto',\n fontSize: 12,\n color: comet,\n margin: [0]\n },\n input: {\n display: 'flex',\n flex: 1,\n width: 273,\n padding: [[8, 12]],\n alignItems: 'center',\n height: searchBoxHeight,\n borderRadius: searchBoxBorderRadius,\n backgroundColor: zircon,\n color: primaryColor\n },\n inputWithPopup: {\n borderRadius: [[popupBorderRadiusFocus, popupBorderRadiusFocus, 0, 0]],\n boxShadow\n },\n iconButton: {\n marginRight: 12\n }\n}\n\nexport default styles\n","import InputBase from '@material-ui/core/InputBase'\nimport Paper from '@material-ui/core/Paper'\nimport { makeStyles } from '@material-ui/core/styles'\nimport MAutocomplete from '@material-ui/lab/Autocomplete'\nimport classnames from 'classnames'\nimport React, { memo, useState } from 'react'\n\nimport { P } from 'src/components/typography'\nimport { ReactComponent as SearchIcon } from 'src/styling/icons/circle buttons/search/zodiac.svg'\n\nimport styles from './SearchBox.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst SearchBox = memo(\n ({\n loading = false,\n filters = [],\n options = [],\n inputPlaceholder = '',\n size,\n onChange,\n ...props\n }) => {\n const classes = useStyles({ size })\n\n const [popupOpen, setPopupOpen] = useState(false)\n\n const inputClasses = {\n [classes.input]: true,\n [classes.inputWithPopup]: popupOpen\n }\n\n const innerOnChange = filters => onChange(filters)\n\n return (\n it.value}\n renderOption={it => (\n \n
{it.value}
\n
{it.type}
\n
\n )}\n autoHighlight\n disableClearable\n clearOnEscape\n multiple\n filterSelectedOptions\n getOptionSelected={(option, value) => option.type === value.type}\n PaperComponent={({ children }) => (\n \n
\n {children}\n \n )}\n renderInput={params => {\n return (\n }\n placeholder={inputPlaceholder}\n inputProps={{\n className: classes.bold,\n classes: {\n root: classes.size\n },\n ...params.inputProps\n }}\n />\n )\n }}\n onOpen={() => setPopupOpen(true)}\n onClose={() => setPopupOpen(false)}\n onChange={(_, filters) => innerOnChange(filters)}\n {...props}\n />\n )\n }\n)\n\nexport default SearchBox\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/filter/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0.6,-3.33066907e-16 L0.509218076,0.00652107669 C0.068925647,0.0708166555 -0.160361948,0.596737342 0.124968515,0.966531156 L4.166,6.204 L4.16660432,9.6 C4.16660432,9.79162756 4.25813682,9.97172829 4.41293455,10.0846831 L6.8797259,11.8846831 L6.96095139,11.9350192 C7.34801849,12.1353088 7.83339568,11.8580867 7.83339568,11.4 L7.833,6.204 L11.8750315,0.966531156 C12.179384,0.572084421 11.8982155,-3.33066907e-16 11.4,-3.33066907e-16 L0.6,-3.33066907e-16 Z M10.179,1.199 L6.75836419,5.63346884 L6.70465653,5.71638775 C6.65811535,5.80315577 6.63339568,5.90052663 6.63339568,6 L6.633,10.219 L5.366,9.294 L5.36660432,6 L5.35847177,5.90154229 C5.34231401,5.80441508 5.30240262,5.71222382 5.24163581,5.63346884 L1.82,1.199 L10.179,1.199 Z\",\n id: \"Path\",\n fill: \"#FFFFFF\",\n fillRule: \"nonzero\"\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/button/filter/white\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.158a991b.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/filter/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0.6,-4.56301663e-14 L0.509218076,0.00652107669 C0.068925647,0.0708166555 -0.160361948,0.596737342 0.124968515,0.966531156 L4.166,6.204 L4.16660432,9.6 C4.16660432,9.79162756 4.25813682,9.97172829 4.41293455,10.0846831 L6.8797259,11.8846831 L6.96095139,11.9350192 C7.34801849,12.1353088 7.83339568,11.8580867 7.83339568,11.4 L7.833,6.204 L11.8750315,0.966531156 C12.179384,0.572084421 11.8982155,-4.56301663e-14 11.4,-4.56301663e-14 L0.6,-4.56301663e-14 Z M10.179,1.199 L6.75836419,5.63346884 L6.70465653,5.71638775 C6.65811535,5.80315577 6.63339568,5.90052663 6.63339568,6 L6.633,10.219 L5.366,9.294 L5.36660432,6 L5.35847177,5.90154229 C5.34231401,5.80441508 5.30240262,5.71222382 5.24163581,5.63346884 L1.82,1.199 L10.179,1.199 Z\",\n id: \"Path\",\n fill: \"#1B2559\",\n fillRule: \"nonzero\"\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/button/filter/zodiac\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.779a5bbc.svg\";\nexport { ForwardRef as ReactComponent };","import {\n primaryColor,\n zircon,\n smallestFontSize,\n inputFontFamily,\n inputFontWeight,\n spacer,\n offColor\n} from 'src/styling/variables'\n\nconst chipStyles = {\n root: {\n marginLeft: 0,\n height: 20,\n backgroundColor: zircon,\n '&:hover, &:focus, &:active': {\n backgroundColor: zircon\n },\n marginBottom: 'auto'\n },\n label: {\n fontSize: smallestFontSize,\n fontWeight: inputFontWeight,\n fontFamily: inputFontFamily,\n paddingRight: 0,\n paddingLeft: spacer,\n color: primaryColor\n }\n}\n\nconst styles = {\n button: {\n width: 8,\n height: 8,\n marginLeft: 8,\n marginRight: 8\n },\n text: {\n marginTop: 0,\n marginBottom: 0\n },\n filters: {\n display: 'flex',\n marginBottom: 16\n },\n deleteWrapper: {\n display: 'flex',\n marginLeft: 'auto',\n justifyContent: 'flex-end',\n flexDirection: 'row'\n },\n entries: {\n color: offColor,\n margin: 'auto',\n marginRight: 12\n },\n chips: {\n marginTop: 'auto'\n }\n}\n\nexport { chipStyles, styles }\n","import { makeStyles } from '@material-ui/core'\nimport React from 'react'\n\nimport Chip from 'src/components/Chip'\nimport { ActionButton } from 'src/components/buttons'\nimport { P, Label3 } from 'src/components/typography'\nimport { ReactComponent as CloseIcon } from 'src/styling/icons/action/close/zodiac.svg'\nimport { ReactComponent as FilterIcon } from 'src/styling/icons/button/filter/white.svg'\nimport { ReactComponent as ReverseFilterIcon } from 'src/styling/icons/button/filter/zodiac.svg'\nimport { onlyFirstToUpper } from 'src/utils/string'\n\nimport { chipStyles, styles } from './SearchFilter.styles'\n\nconst useChipStyles = makeStyles(chipStyles)\nconst useStyles = makeStyles(styles)\n\nconst SearchFilter = ({\n filters,\n onFilterDelete,\n deleteAllFilters,\n entries\n}) => {\n const chipClasses = useChipStyles()\n const classes = useStyles()\n\n return (\n <>\n {'Filters:'}
\n \n
\n {filters.map((f, idx) => (\n onFilterDelete(f)}\n deleteIcon={ }\n />\n ))}\n
\n
\n {\n
{`${entries ??\n 0} entries`} \n }\n
\n Delete filters\n \n
\n
\n >\n )\n}\n\nexport default SearchFilter\n","import { makeStyles } from '@material-ui/core/styles'\nimport { format } from 'date-fns/fp'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport { MainStatus } from 'src/components/Status'\nimport DataTable from 'src/components/tables/DataTable'\nimport { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\n\nimport styles from './CustomersList.styles'\nimport { getAuthorizedStatus, getFormattedPhone, getName } from './helper'\n\nconst useStyles = makeStyles(styles)\n\nconst CustomersList = ({\n data,\n locale,\n onClick,\n loading,\n triggers,\n customRequests\n}) => {\n const classes = useStyles()\n\n const elements = [\n {\n header: 'Phone',\n width: 199,\n view: it => getFormattedPhone(it.phone, locale.country)\n },\n {\n header: 'Name',\n width: 241,\n view: getName\n },\n {\n header: 'Total TXs',\n width: 126,\n textAlign: 'right',\n view: it => `${Number.parseInt(it.totalTxs)}`\n },\n {\n header: 'Total spent',\n width: 152,\n textAlign: 'right',\n view: it =>\n `${Number.parseFloat(it.totalSpent)} ${it.lastTxFiatCode ?? ''}`\n },\n {\n header: 'Last active',\n width: 133,\n view: it =>\n (it.lastActive && format('yyyy-MM-dd', new Date(it.lastActive))) ?? ''\n },\n {\n header: 'Last transaction',\n width: 161,\n textAlign: 'right',\n view: it => {\n const hasLastTx = !R.isNil(it.lastTxFiatCode)\n const LastTxIcon = it.lastTxClass === 'cashOut' ? TxOutIcon : TxInIcon\n const lastIcon = \n return (\n <>\n {hasLastTx &&\n `${parseFloat(it.lastTxFiat)} ${it.lastTxFiatCode ?? ''}`}\n {hasLastTx && lastIcon}\n >\n )\n }\n },\n {\n header: 'Status',\n width: 191,\n view: it => (\n \n )\n }\n ]\n\n return (\n <>\n \n >\n )\n}\n\nexport default CustomersList\n","import { makeStyles } from '@material-ui/core/styles'\nimport { Field, Form, Formik } from 'formik'\nimport { PhoneNumberFormat, PhoneNumberUtil } from 'google-libphonenumber'\nimport * as R from 'ramda'\nimport React from 'react'\nimport * as Yup from 'yup'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Modal from 'src/components/Modal'\nimport { Button } from 'src/components/buttons'\nimport { TextInput } from 'src/components/inputs/formik'\nimport { H1 } from 'src/components/typography'\nimport { spacer, primaryColor, fontPrimary } from 'src/styling/variables'\n\nconst styles = {\n modalTitle: {\n marginTop: -5,\n color: primaryColor,\n fontFamily: fontPrimary\n },\n footer: {\n display: 'flex',\n flexDirection: 'row',\n margin: [['auto', 0, spacer * 3, 0]]\n },\n form: {\n display: 'flex',\n flexDirection: 'column',\n height: '100%'\n },\n submit: {\n margin: [['auto', 0, 0, 'auto']]\n }\n}\n\nconst pnUtilInstance = PhoneNumberUtil.getInstance()\n\nconst getValidationSchema = countryCodes =>\n Yup.object().shape({\n phoneNumber: Yup.string()\n .required('A phone number is required')\n .test('is-valid-number', 'That is not a valid phone number', value => {\n try {\n const validMap = R.map(it => {\n const number = pnUtilInstance.parseAndKeepRawInput(value, it)\n return pnUtilInstance.isValidNumber(number)\n }, countryCodes)\n\n return R.any(it => it === true, validMap)\n } catch (e) {}\n })\n .trim()\n })\n\nconst formatPhoneNumber = (countryCodes, numberStr) => {\n const matchedCountry = R.find(it => {\n const number = pnUtilInstance.parseAndKeepRawInput(numberStr, it)\n return pnUtilInstance.isValidNumber(number)\n }, countryCodes)\n\n const matchedNumber = pnUtilInstance.parseAndKeepRawInput(\n numberStr,\n matchedCountry\n )\n\n return pnUtilInstance.format(matchedNumber, PhoneNumberFormat.E164)\n}\n\nconst initialValues = {\n phoneNumber: ''\n}\n\nconst useStyles = makeStyles(styles)\n\nconst getErrorMsg = (formikErrors, formikTouched) => {\n if (!formikErrors || !formikTouched) return null\n if (formikErrors.phoneNumber && formikTouched.phoneNumber)\n return formikErrors.phoneNumber\n return null\n}\n\nconst CreateCustomerModal = ({ showModal, handleClose, onSubmit, locale }) => {\n const classes = useStyles()\n\n const possibleCountries = R.append(\n locale?.country,\n R.map(it => it.country, locale?.overrides ?? [])\n )\n\n return (\n \n {\n onSubmit({\n variables: {\n phoneNumber: formatPhoneNumber(\n possibleCountries,\n values.phoneNumber\n )\n }\n })\n }}>\n {({ errors, touched }) => (\n \n )}\n \n \n )\n}\n\nexport default CreateCustomerModal\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { Box, makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\nimport { useHistory } from 'react-router-dom'\n\nimport SearchBox from 'src/components/SearchBox'\nimport SearchFilter from 'src/components/SearchFilter'\nimport { Link } from 'src/components/buttons'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport baseStyles from 'src/pages/Logs.styles'\nimport { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport { fromNamespace, namespaces } from 'src/utils/config'\n\nimport CustomersList from './CustomersList'\nimport CreateCustomerModal from './components/CreateCustomerModal'\n\nconst GET_CUSTOMER_FILTERS = gql`\n query filters {\n customerFilters {\n type\n value\n }\n }\n`\n\nconst GET_CUSTOMERS = gql`\n query configAndCustomers(\n $phone: String\n $name: String\n $address: String\n $id: String\n ) {\n config\n customers(phone: $phone, name: $name, address: $address, id: $id) {\n id\n idCardData\n phone\n totalTxs\n totalSpent\n lastActive\n lastTxFiat\n lastTxFiatCode\n lastTxClass\n authorizedOverride\n frontCameraPath\n frontCameraOverride\n idCardPhotoPath\n idCardPhotoOverride\n idCardData\n idCardDataOverride\n usSsn\n usSsnOverride\n sanctions\n sanctionsOverride\n daysSuspended\n isSuspended\n customInfoRequests {\n customerId\n infoRequestId\n override\n overrideAt\n overrideBy\n customerData\n customInfoRequest {\n id\n enabled\n customRequest\n }\n }\n }\n customInfoRequests {\n id\n }\n }\n`\n\nconst CREATE_CUSTOMER = gql`\n mutation createCustomer($phoneNumber: String) {\n createCustomer(phoneNumber: $phoneNumber) {\n phone\n }\n }\n`\n\nconst useBaseStyles = makeStyles(baseStyles)\n\nconst getFiltersObj = filters =>\n R.reduce((s, f) => ({ ...s, [f.type]: f.value }), {}, filters)\n\nconst Customers = () => {\n const baseStyles = useBaseStyles()\n const history = useHistory()\n\n const handleCustomerClicked = customer =>\n history.push(`/compliance/customer/${customer.id}`)\n\n const [filteredCustomers, setFilteredCustomers] = useState([])\n const [variables, setVariables] = useState({})\n const [filters, setFilters] = useState([])\n const [showCreationModal, setShowCreationModal] = useState(false)\n\n const {\n data: customersResponse,\n loading: customerLoading,\n refetch\n } = useQuery(GET_CUSTOMERS, {\n variables,\n onCompleted: data => setFilteredCustomers(R.path(['customers'])(data))\n })\n\n const { data: filtersResponse, loading: loadingFilters } = useQuery(\n GET_CUSTOMER_FILTERS\n )\n\n const [createNewCustomer] = useMutation(CREATE_CUSTOMER, {\n onCompleted: () => setShowCreationModal(false),\n refetchQueries: () => [\n {\n query: GET_CUSTOMERS,\n variables\n }\n ]\n })\n\n const configData = R.path(['config'])(customersResponse) ?? []\n const customRequirementsData =\n R.path(['customInfoRequests'], customersResponse) ?? []\n const locale = configData && fromNamespace(namespaces.LOCALE, configData)\n const triggers = configData && fromNamespace(namespaces.TRIGGERS, configData)\n const customersData = R.sortWith([\n R.descend(it => new Date(R.prop('lastActive', it) ?? '0'))\n ])(filteredCustomers ?? [])\n\n const onFilterChange = filters => {\n const filtersObject = getFiltersObj(filters)\n\n setFilters(filters)\n\n setVariables({\n phone: filtersObject.phone,\n name: filtersObject.name,\n address: filtersObject.address,\n id: filtersObject.id\n })\n\n refetch && refetch()\n }\n\n const onFilterDelete = filter => {\n const newFilters = R.filter(\n f => !R.whereEq(R.pick(['type', 'value'], f), filter)\n )(filters)\n\n setFilters(newFilters)\n\n const filtersObject = getFiltersObj(newFilters)\n\n setVariables({\n phone: filtersObject.phone,\n name: filtersObject.name,\n address: filtersObject.address,\n id: filtersObject.id\n })\n\n refetch && refetch()\n }\n\n const deleteAllFilters = () => {\n setFilters([])\n const filtersObject = getFiltersObj([])\n\n setVariables({\n phone: filtersObject.phone,\n name: filtersObject.name,\n address: filtersObject.address,\n id: filtersObject.id\n })\n\n refetch && refetch()\n }\n\n const filterOptions = R.path(['customerFilters'])(filtersResponse)\n\n return (\n <>\n \n \n \n }\n appendixRight={\n \n setShowCreationModal(true)}>\n Add new user\n \n \n }\n labels={[\n { label: 'Cash-in', icon: },\n { label: 'Cash-out', icon: }\n ]}\n />\n {filters.length > 0 && (\n \n )}\n \n setShowCreationModal(false)}\n locale={locale}\n onSubmit={createNewCustomer}\n />\n >\n )\n}\n\nexport default Customers\n","import { makeStyles } from '@material-ui/styles'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport { Label1 } from './typography'\n\nconst useStyles = makeStyles({\n wrapper: {\n display: 'flex',\n alignItems: 'center'\n },\n colorIndicator: {\n borderRadius: 3,\n height: 12,\n width: 12,\n marginRight: 8\n }\n})\n\nconst TableLabel = ({ className, label, color, ...props }) => {\n const classes = useStyles()\n return (\n \n {color && (\n
\n )}\n
{label} \n
\n )\n}\n\nexport default TableLabel\n","import typographyStyles from 'src/components/typography/styles'\nimport {\n disabledColor2,\n spacer,\n subheaderColor,\n errorColor,\n placeholderColor,\n comet\n} from 'src/styling/variables'\n\nconst { label1, mono } = typographyStyles\n\nexport default {\n wrapper: {\n display: 'flex',\n flex: 1,\n flexDirection: 'row',\n height: '100%'\n },\n main: {\n display: 'flex',\n flex: 1\n },\n firstSide: {\n margin: `0 ${spacer * 8}px 0 ${spacer * 6}px`\n },\n secondSide: {\n marginTop: -29\n },\n error: {\n color: errorColor\n },\n coinTotal: {\n margin: `${spacer * 1.5}px 0`\n },\n leftSpacer: {\n marginLeft: spacer\n },\n topSpacer: {\n marginTop: spacer * 5\n },\n addressWrapper: {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n backgroundColor: subheaderColor\n },\n address: {\n width: 375,\n margin: `${spacer * 1.5}px ${spacer * 3}px`\n },\n itemWrapper: {\n textAlign: 'end'\n },\n item: {\n extend: label1,\n margin: 2\n },\n inactiveItem: {\n color: comet\n },\n firstItem: {\n fontWeight: 700,\n margin: 2\n },\n total: {\n marginTop: 'auto',\n textAlign: 'right',\n marginRight: 24\n },\n totalPending: {\n marginTop: 2\n },\n totalTitle: {\n color: placeholderColor,\n marginBottom: 2\n },\n table: {\n marginTop: spacer,\n marginLeft: spacer * 6\n },\n tableLabel: {\n justifyContent: 'end',\n marginTop: -38\n },\n pending: {\n backgroundColor: disabledColor2\n },\n copyToClipboard: {\n marginLeft: 'auto',\n paddingTop: 6,\n paddingLeft: 15,\n marginRight: -11\n },\n mono: {\n extend: mono,\n width: 375,\n margin: `${spacer * 1.5}px ${spacer * 3}px`\n }\n}\n","import { useQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport BigNumber from 'bignumber.js'\nimport classnames from 'classnames'\nimport { format } from 'date-fns/fp'\nimport gql from 'graphql-tag'\nimport { utils as coinUtils } from 'lamassu-coins'\nimport QRCode from 'qrcode.react'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport TableLabel from 'src/components/TableLabel'\nimport Title from 'src/components/Title'\nimport { Tr, Td, THead, TBody, Table } from 'src/components/fake-table/Table'\nimport Sidebar from 'src/components/layout/Sidebar'\nimport {\n H3,\n Info1,\n Info2,\n Info3,\n Label1,\n Label3\n} from 'src/components/typography'\nimport CopyToClipboard from 'src/pages/Transactions/CopyToClipboard'\nimport { primaryColor } from 'src/styling/variables'\n\nimport styles from './Funding.styles'\n\nconst useStyles = makeStyles(styles)\nconst sizes = {\n big: 165,\n time: 140,\n date: 130\n}\n\nconst GET_FUNDING = gql`\n {\n funding {\n cryptoCode\n errorMsg\n fundingAddress\n fundingAddressUrl\n confirmedBalance\n pending\n fiatConfirmedBalance\n fiatPending\n fiatCode\n display\n unitScale\n }\n }\n`\n\nconst formatAddress = (cryptoCode = '', address = '') =>\n coinUtils.formatCryptoAddress(cryptoCode, address).replace(/(.{4})/g, '$1 ')\nconst sumReducer = (acc, value) => acc.plus(value)\nconst formatNumber = it => new BigNumber(it).toFormat(2)\n\nconst getConfirmedTotal = list => {\n return formatNumber(\n list\n .filter(it => !it.errorMsg)\n .map(it => new BigNumber(it.fiatConfirmedBalance))\n .reduce(sumReducer, new BigNumber(0))\n )\n}\n\nconst getPendingTotal = list => {\n return formatNumber(\n list\n .filter(it => !it.errorMsg)\n .map(it => new BigNumber(it.fiatPending))\n .reduce(sumReducer, new BigNumber(0))\n )\n}\n\nconst Funding = () => {\n const [selected, setSelected] = useState(null)\n const [viewHistory] = useState(false)\n const classes = useStyles()\n const fundingHistory = [\n {\n cryptoAmount: 2.0,\n balance: 10.23,\n fiatValue: 1000.0,\n date: new Date(),\n performedBy: null,\n pending: true\n },\n {\n cryptoAmount: 10.0,\n balance: 12.23,\n fiatValue: 12000.0,\n date: new Date(),\n performedBy: null\n },\n {\n cryptoAmount: 5.0,\n balance: 5.0,\n fiatValue: 50000.0,\n date: new Date(),\n performedBy: null\n }\n ]\n\n const isSelected = it => {\n return selected && selected.cryptoCode === it.cryptoCode\n }\n\n const { data: fundingResponse, loading } = useQuery(GET_FUNDING)\n const funding = R.path(['funding'])(fundingResponse) ?? []\n\n if (funding.length && !selected) {\n setSelected(funding[0])\n }\n\n const itemRender = (it, active) => {\n const itemClass = {\n [classes.item]: true,\n [classes.inactiveItem]: !active\n }\n const wrapperClass = {\n [classes.itemWrapper]: true,\n [classes.error]: it.errorMsg\n }\n\n return (\n \n
{it.display}
\n {!it.errorMsg && (\n <>\n
\n {formatNumber(it.fiatConfirmedBalance)} {it.fiatCode}\n
\n
\n {it.confirmedBalance} {it.cryptoCode}\n
\n >\n )}\n
\n )\n }\n\n const pendingTotal = getPendingTotal(funding)\n const signIfPositive = num => (num >= 0 ? '+' : '')\n\n return (\n <>\n \n
Funding \n {/* setViewHistory(!viewHistory)}>history */}\n \n \n
it.display}\n itemRender={itemRender}\n loading={loading}>\n {funding.length && (\n \n \n Total Crypto Balance\n \n \n {getConfirmedTotal(funding)}\n {funding[0].fiatCode}\n \n \n ({signIfPositive(pendingTotal)} {pendingTotal} pending)\n \n
\n )}\n \n {selected && !viewHistory && selected.errorMsg && (\n
\n
\n {selected.errorMsg} \n
\n
\n )}\n {selected && !viewHistory && !selected.errorMsg && (\n
\n
\n
Balance ({selected.display}) \n
\n \n {`${selected.confirmedBalance} ${selected.cryptoCode}`}\n \n \n {`(${signIfPositive(selected.pending)} ${\n selected.pending\n } pending)`}\n \n
\n\n
\n \n {`= ${formatNumber(selected.fiatConfirmedBalance)} ${\n selected.fiatCode\n }`}\n \n \n {`(${signIfPositive(selected.fiatPending)} ${formatNumber(\n selected.fiatPending\n )} pending)`}\n \n
\n\n
Address \n
\n
\n \n \n {formatAddress(\n selected.cryptoCode,\n selected.fundingAddress\n )}\n \n \n
\n
\n
\n\n
\n Scan to send {selected.display} \n \n
\n
\n )}\n {selected && viewHistory && (\n
\n
\n
\n \n \n Amount Entered\n \n \n Balance After\n \n \n Cash Value\n \n \n Date\n \n \n Time (h:m:s)\n \n \n Performed By\n \n \n \n {fundingHistory.map((it, idx) => (\n \n \n {it.cryptoAmount} {selected.cryptoCode}\n \n \n {it.balance} {selected.cryptoCode}\n \n \n {it.fiatValue} {selected.fiatCode}\n \n {format('yyyy-MM-dd', it.date)} \n {format('hh:mm:ss', it.date)} \n add \n \n ))}\n \n
\n
\n )}\n
\n >\n )\n}\n\nexport default Funding\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 52,\n cy: 32,\n r: 32,\n fill: \"#F7931A\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m66.1 27.4c0.6-4.3-2.6-6.5-7-8.1l1.4-5.8-3.5-0.9-1.4 5.6c-0.9-0.2-1.9-0.4-2.8-0.7l1.4-5.7-3.5-0.9-1.4 5.8c-0.8-0.2-1.5-0.3-2.2-0.5l0 0-4.8-1.2-0.9 3.8s2.6 0.6 2.6 0.6c1.4 0.4 1.7 1.3 1.6 2l-1.6 6.6c0.1 0 0.2 0.1 0.4 0.1-0.1 0-0.2-0.1-0.4-0.1l-2.3 9.2c-0.2 0.4-0.6 1.1-1.6 0.8 0 0.1-2.6-0.6-2.6-0.6l-1.7 4 4.6 1.1c0.9 0.2 1.7 0.4 2.5 0.6l-1.5 5.8 3.5 0.9 1.4-5.8c1 0.3 1.9 0.5 2.8 0.7l-1.4 5.7 3.5 0.9 1.5-5.8c6 1.1 10.5 0.7 12.4-4.7 1.5-4.4-0.1-6.9-3.2-8.5 2.3-0.5 4-2 4.5-5.2zm-8 11.2c-1.1 4.4-8.4 2-10.8 1.4l1.9-7.7c2.4 0.6 10 1.8 8.9 6.3zm1.1-11.3c-1 4-7.1 2-9.1 1.5l1.7-7c2 0.5 8.4 1.4 7.3 5.6z\",\n fill: \"#FFF\"\n});\n\nfunction SvgIconBitcoinColour(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 104,\n height: 64,\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIconBitcoinColour);\nexport default __webpack_public_path__ + \"static/media/icon-bitcoin-colour.bd8da481.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0AC18E\",\n d: \"m0,0l29.7,0a39,39,0,0,0,0,64l-29.7,0zm52,0a32,32,0,0,0,0,64a32,32,0,0,0,0,-64m52,0l-29.7,0a39,39,0,0,1,0,64l29.7,0z\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n transform: \"rotate(-28 52 32)\",\n d: \"m66.103,27.444c0.637-4.258-2.605-6.547-7.038-8.074l1.438-5.768-3.511-0.875-1.4,5.616c-0.923-0.23-1.871-0.447-2.813-0.662l1.41-5.653-3.509-0.875-1.439,5.766c-0.764-0.174-1.514-0.346-2.242-0.527l0.004-0.018-4.842-1.209-0.934,3.75s2.605,0.597,2.55,0.634c1.422,0.355,1.679,1.296,1.636,2.042l-1.638,6.571c0.098,0.025,0.225,0.061,0.365,0.117-0.117-0.029-0.242-0.061-0.371-0.092l-2.296,9.205c-0.174,0.432-0.615,1.08-1.609,0.834,0.035,0.051-2.552-0.637-2.552-0.637l-1.743,4.019,4.569,1.139c0.85,0.213,1.683,0.436,2.503,0.646l-1.453,5.834,3.507,0.875,1.439-5.772c0.958,0.26,1.888,0.5,2.798,0.726l-1.434,5.745,3.511,0.875,1.453-5.823c5.987,1.133,10.489,0.676,12.384-4.739,1.527-4.36-0.076-6.875-3.226-8.515,2.294-0.529,4.022-2.038,4.483-5.155zm-8.022,11.249c-1.085,4.36-8.426,2.003-10.806,1.412l1.928-7.729c2.38,0.594,10.012,1.77,8.878,6.317zm1.086-11.312c-0.99,3.966-7.1,1.951-9.082,1.457l1.748-7.01c1.982,0.494,8.365,1.416,7.334,5.553z\"\n});\n\nfunction SvgIconBitcoincashColour(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 104,\n height: 64,\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIconBitcoincashColour);\nexport default __webpack_public_path__ + \"static/media/icon-bitcoincash-colour.ed917caa.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 1000,\n cy: 1000,\n r: 1000,\n fill: \"#2573c2\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#fff\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1652.6 736.8a143.65 143.65 0 0 0-19.2-63.6c-10-20-27.8-35.6-48.6-43.6a143.51 143.51 0 0 0-68.4-15H628.8l-63.6 190.6h804.2l-127 389.6h-804l-63.6 190.6h891.8a246.33 246.33 0 0 0 77.8-15c25-14.2 53.6-28.6 77.8-48.6a382.69 382.69 0 0 0 63.6-63.6 432.2 432.2 0 0 0 39.2-73.4l117.8-370.4a137.38 137.38 0 0 0 9.8-77.6z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M882.2 911.6H409l-63.6 176.2h478z\"\n}));\n\nfunction SvgIconDashColour(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 2000 2000\",\n width: 2500,\n height: 2500,\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIconDashColour);\nexport default __webpack_public_path__ + \"static/media/icon-dash-colour.e01c021b.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"polygon\", {\n fill: \"#343434\",\n points: \"127.9611 0 125.1661 9.5 125.1661 285.168 127.9611 287.958 255.9231 212.32\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n fill: \"#8C8C8C\",\n points: \"127.962 0 0 212.32 127.962 287.959 127.962 154.158\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n fill: \"#3C3C3B\",\n points: \"127.9611 312.1866 126.3861 314.1066 126.3861 412.3056 127.9611 416.9066 255.9991 236.5866\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n fill: \"#8C8C8C\",\n points: \"127.962 416.9052 127.962 312.1852 0 236.5852\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n fill: \"#141414\",\n points: \"127.9611 287.9577 255.9211 212.3207 127.9611 154.1587\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n fill: \"#393939\",\n points: \"0.0009 212.3208 127.9609 287.9578 127.9609 154.1588\"\n}));\n\nfunction SvgIconEthereumColour(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"256px\",\n height: \"417px\",\n viewBox: \"0 0 256 417\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n preserveAspectRatio: \"xMidYMid\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIconEthereumColour);\nexport default __webpack_public_path__ + \"static/media/icon-ethereum-colour.761723a2.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#989898\",\n cx: 52,\n cy: 32,\n r: 32\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"m46.92598,12.31703l-4.97801,18.8088l-3.42705,1.32711l-1.64691,6.17189l3.42705,-1.29514l-2.8461,10.76083l30.60893,0l2.09993,-7.98401l-18.42505,0l2.09993,-7.82412l3.3631,-1.26316l1.6469,-6.17188l-3.36309,1.29513l3.6509,-13.83611l-12.21053,0z\"\n});\n\nfunction SvgIconLitecoinColour(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 104,\n height: 64,\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIconLitecoinColour);\nexport default __webpack_public_path__ + \"static/media/icon-litecoin-colour.bd861b5e.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M127.998 0C57.318 0 0 57.317 0 127.999c0 14.127 2.29 27.716 6.518 40.43H44.8V60.733l83.2 83.2 83.198-83.2v107.695h38.282c4.231-12.714 6.521-26.303 6.521-40.43C256 57.314 198.681 0 127.998 0\",\n fill: \"#F60\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.867 163.062l-36.31-36.311v67.765H18.623c22.47 36.863 63.051 61.48 109.373 61.48s86.907-24.617 109.374-61.48h-53.933V126.75l-36.31 36.31-19.13 19.129-19.128-19.128h-.002z\",\n fill: \"#4C4C4C\"\n});\n\nfunction SvgIconMoneroColour(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 2500,\n height: 2500,\n viewBox: \"0 0 256 256\",\n xmlns: \"http://www.w3.org/2000/svg\",\n preserveAspectRatio: \"xMidYMid\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIconMoneroColour);\nexport default __webpack_public_path__ + \"static/media/icon-monero-colour.650b7bd1.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1000 0c552.26 0 1000 447.74 1000 1000s-447.76 1000-1000 1000S0 1552.38 0 1000 447.68 0 1000 0\",\n fill: \"#53ae94\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1123.42 866.76V718h340.18V491.34H537.28V718H877.5v148.64C601 879.34 393.1 934.1 393.1 999.7s208 120.36 484.4 133.14v476.5h246V1132.8c276-12.74 483.48-67.46 483.48-133s-207.48-120.26-483.48-133m0 225.64v-.12c-6.94.44-42.6 2.58-122 2.58-63.48 0-108.14-1.8-123.88-2.62v.2C633.34 1081.66 451 1039.12 451 988.22S633.36 894.84 877.62 884v166.1c16 1.1 61.76 3.8 124.92 3.8 75.86 0 114-3.16 121-3.8V884c243.8 10.86 425.72 53.44 425.72 104.16s-182 93.32-425.72 104.18\",\n fill: \"#fff\"\n});\n\nfunction SvgIconTetherColour(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 2000 2000\",\n width: 2500,\n height: 2500,\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIconTetherColour);\nexport default __webpack_public_path__ + \"static/media/icon-tether-colour.92d7fda4.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n}, \"\\n\\t.st0{fill:#231F20;}\\n\\t.st1{fill:#F4B728;}\\n\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M245.4,20C121.1,20,20,121.1,20,245.4s101.1,225.4,225.4,225.4s225.4-101.1,225.4-225.4S369.7,20,245.4,20z M245.4,433.6c-103.8,0-188.2-84.4-188.2-188.2S141.6,57.2,245.4,57.2s188.2,84.4,188.2,188.2S349.2,433.6,245.4,433.6z\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"st1\",\n cx: 245.4,\n cy: 245.4,\n r: 177.6\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"st0\",\n points: \"165,315.5 165,349.9 226.5,349.9 226.5,387.6 264.3,387.6 264.3,349.9 325.8,349.9 325.8,304.4 230.4,304.4 325.8,175 325.8,140.6 264.3,140.6 264.3,103 226.5,103 226.5,140.6 165,140.6 165,186.2 260.4,186.2 \"\n});\n\nfunction SvgIconZcashColour(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 493.3 490.2\",\n style: {\n enableBackground: \"new 0 0 493.3 490.2\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), _ref2, title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"headerArtboard 7\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref3, _ref4, _ref5);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIconZcashColour);\nexport default __webpack_public_path__ + \"static/media/icon-zcash-colour.68b1c20b.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core'\nimport React from 'react'\n\nimport { Button } from 'src/components/buttons'\nimport { H1, P } from 'src/components/typography'\nimport { ReactComponent as BitcoinLogo } from 'src/styling/logos/icon-bitcoin-colour.svg'\nimport { ReactComponent as BitcoinCashLogo } from 'src/styling/logos/icon-bitcoincash-colour.svg'\nimport { ReactComponent as DashLogo } from 'src/styling/logos/icon-dash-colour.svg'\nimport { ReactComponent as EthereumLogo } from 'src/styling/logos/icon-ethereum-colour.svg'\nimport { ReactComponent as LitecoinLogo } from 'src/styling/logos/icon-litecoin-colour.svg'\nimport { ReactComponent as MoneroLogo } from 'src/styling/logos/icon-monero-colour.svg'\nimport { ReactComponent as TetherLogo } from 'src/styling/logos/icon-tether-colour.svg'\nimport { ReactComponent as ZCashLogo } from 'src/styling/logos/icon-zcash-colour.svg'\n\nconst styles = {\n logo: {\n maxHeight: 80,\n maxWidth: 200\n },\n title: {\n margin: [[24, 0, 32, 0]]\n },\n text: {\n margin: 0\n },\n button: {\n marginTop: 'auto',\n marginBottom: 58\n },\n modalContent: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n padding: [[0, 42]],\n flex: 1\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst getLogo = code => {\n switch (code) {\n case 'BTC':\n return BitcoinLogo\n case 'BCH':\n return BitcoinCashLogo\n case 'DASH':\n return DashLogo\n case 'ETH':\n return EthereumLogo\n case 'LTC':\n return LitecoinLogo\n case 'ZEC':\n return ZCashLogo\n case 'USDT':\n return TetherLogo\n case 'XMR':\n return MoneroLogo\n default:\n return null\n }\n}\n\nconst WizardSplash = ({ code, name, onContinue }) => {\n const classes = useStyles()\n const Logo = getLogo(code)\n\n return (\n \n
\n
Enable {name} \n
\n You are about to enable {name} on your system. This will allow you to\n use this cryptocurrency on your machines. To be able to do that, you’ll\n have to set up all the necessary 3rd party services.\n
\n
\n Start configuration\n \n
\n )\n}\n\nexport default WizardSplash\n","import { errorColor, fontSize1, fontPrimary } from 'src/styling/variables'\n\nconst LABEL_WIDTH = 150\n\nexport default {\n title: {\n margin: [[0, 0, 12, 0]]\n },\n subtitle: {\n margin: [[32, 0, 21, 0]]\n },\n error: {\n color: errorColor\n },\n button: {\n marginLeft: 'auto'\n },\n submit: {\n display: 'flex',\n flexDirection: 'row',\n margin: [['auto', 0, 24]]\n },\n radioGroup: {\n flexDirection: 'row'\n },\n radioLabel: {\n width: LABEL_WIDTH,\n height: 48\n },\n radio: {\n padding: 4,\n margin: 4\n },\n setupNew: {\n display: 'flex',\n alignItems: 'center',\n height: 48\n },\n picker: {\n width: LABEL_WIDTH\n },\n horizontalAlign: {\n display: 'flex',\n flexDirection: 'row'\n },\n centerAlignment: {\n alignItems: 'center'\n },\n zeroConfLimit: {\n marginRight: 5,\n '& > div': {\n fontSize: fontSize1,\n fontFamily: fontPrimary,\n fontWeight: 300,\n '& > input': {\n padding: [[6, 0, 2]]\n }\n }\n }\n}\n","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { Formik, Form, Field } from 'formik'\nimport * as R from 'ramda'\nimport React, { useReducer, useEffect } from 'react'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Stepper from 'src/components/Stepper'\nimport { Button } from 'src/components/buttons'\nimport { RadioGroup, Autocomplete } from 'src/components/inputs'\nimport { NumberInput } from 'src/components/inputs/formik'\nimport { H4, Info2 } from 'src/components/typography'\nimport FormRenderer from 'src/pages/Services/FormRenderer'\nimport schema from 'src/pages/Services/schemas'\nimport { startCase } from 'src/utils/string'\n\nimport styles from './WizardStep.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst initialState = {\n form: null,\n selected: null,\n isNew: false,\n iError: false\n}\n\nconst reducer = (state, action) => {\n switch (action.type) {\n case 'select':\n return {\n form: null,\n selected: action.selected,\n isNew: null,\n iError: false\n }\n case 'new':\n return { form: state.form, selected: null, isNew: true, iError: false }\n case 'form':\n return {\n form: action.form,\n selected: action.form.code,\n isNew: true,\n iError: false\n }\n case 'error':\n return R.merge(state, { innerError: true })\n case 'reset':\n return initialState\n default:\n throw new Error()\n }\n}\n\nconst WizardStep = ({\n type,\n schema: stepSchema,\n coin,\n name,\n step,\n error,\n lastStep,\n onContinue,\n fiatCurrency,\n filled,\n unfilled,\n getValue\n}) => {\n const classes = useStyles()\n const [{ innerError, selected, form, isNew }, dispatch] = useReducer(\n reducer,\n initialState\n )\n\n useEffect(() => {\n dispatch({ type: 'reset' })\n }, [step])\n\n const innerContinue = (config, account) => {\n if (!config || !config[type]) {\n return dispatch({ type: 'error' })\n }\n onContinue(config, account)\n }\n\n const label = lastStep ? 'Finish' : 'Next'\n const displayName = name ?? type\n const subtitleClass = {\n [classes.subtitle]: true,\n [classes.error]: innerError\n }\n return (\n <>\n {startCase(displayName)} \n \n \n {step < 4\n ? `Select a ${displayName} or set up a new one`\n : `Select ${displayName} for ${coin}`}\n \n {step !== 5 && (\n {\n dispatch({ type: 'select', selected: it })\n }}\n labelClassName={classes.radioLabel}\n radioClassName={classes.radio}\n />\n )}\n {step === 5 && (\n \n {({ values, setFieldValue }) => (\n \n )}\n \n )}\n \n {!R.isEmpty(unfilled) && !R.isNil(unfilled) && (\n
{\n dispatch({ type: 'new' })\n }}\n labelClassName={classes.radioLabel}\n radioClassName={classes.radio}\n options={[{ display: 'Set up new', code: true }]}\n />\n )}\n {isNew && (\n {\n dispatch({ type: 'form', form: it })\n }}\n />\n )}\n \n {form && (\n innerContinue({ [type]: form.code }, { [form.code]: it })}\n elements={schema[form.code].elements}\n validationSchema={schema[form.code].validationSchema}\n value={getValue(form.code)}\n buttonLabel={label}\n />\n )}\n {!form && (\n \n {error && Failed to save }\n innerContinue({ [type]: selected })}>\n {label}\n \n
\n )}\n >\n )\n}\n\nexport default WizardStep\n","import { utils as coinUtils } from 'lamassu-coins'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\nimport * as Yup from 'yup'\n\nimport Modal from 'src/components/Modal'\nimport schema from 'src/pages/Services/schemas'\nimport { toNamespace } from 'src/utils/config'\n\nimport WizardSplash from './WizardSplash'\nimport WizardStep from './WizardStep'\n\nconst LAST_STEP = 5\nconst MODAL_WIDTH = 554\n\nconst contains = crypto => R.compose(R.contains(crypto), R.prop('cryptos'))\nconst sameClass = type => R.propEq('class', type)\nconst filterConfig = (crypto, type) =>\n R.filter(it => sameClass(type)(it) && contains(crypto)(it))\nconst removeDeprecated = R.filter(({ deprecated }) => !deprecated)\n\nconst getItems = (accountsConfig, accounts, type, crypto) => {\n const fConfig = removeDeprecated(filterConfig(crypto, type)(accountsConfig))\n\n const find = code => accounts && accounts[code]\n\n const [filled, unfilled] = R.partition(({ code }) => {\n const account = find(code)\n if (!schema[code]) return true\n\n const { getValidationSchema } = schema[code]\n return getValidationSchema(account).isValidSync(account)\n })(fConfig)\n\n return { filled, unfilled }\n}\n\nconst Wizard = ({\n coin,\n onClose,\n accountsConfig,\n accounts,\n fiatCurrency,\n save,\n error\n}) => {\n const [{ step, config, accountsToSave }, setState] = useState({\n step: 0,\n config: { active: true },\n accountsToSave: {}\n })\n\n const title = `Enable ${coin.display}`\n const isLastStep = step === LAST_STEP\n\n const tickers = { filled: filterConfig(coin.code, 'ticker')(accountsConfig) }\n const wallets = getItems(accountsConfig, accounts, 'wallet', coin.code)\n const exchanges = getItems(accountsConfig, accounts, 'exchange', coin.code)\n const zeroConfs = getItems(accountsConfig, accounts, 'zeroConf', coin.code)\n\n const getValue = code => R.find(R.propEq('code', code))(accounts)\n\n const onContinue = async (stepConfig, stepAccount) => {\n const newConfig = R.merge(config, stepConfig)\n const newAccounts = stepAccount\n ? R.merge(accountsToSave, stepAccount)\n : accountsToSave\n\n if (isLastStep) {\n const defaultCryptoUnit = R.head(\n R.keys(coinUtils.getCryptoCurrency(coin.code).units)\n )\n const configToSave = {\n ...newConfig,\n cryptoUnits: defaultCryptoUnit\n }\n return save(toNamespace(coin.code, configToSave), newAccounts)\n }\n\n setState({\n step: step + 1,\n config: newConfig,\n accountsToSave: newAccounts\n })\n }\n\n const getStepData = () => {\n switch (step) {\n case 1:\n return { type: 'ticker', ...tickers }\n case 2:\n return { type: 'wallet', ...wallets }\n case 3:\n return { type: 'exchange', ...exchanges }\n case 4:\n return {\n type: 'zeroConf',\n name: 'confidence checking',\n schema: Yup.object().shape({\n zeroConfLimit: Yup.number().required()\n }),\n ...zeroConfs\n }\n case 5:\n return { type: 'zeroConfLimit', name: '0-conf limit', ...zeroConfs }\n default:\n return null\n }\n }\n\n return (\n \n {step === 0 && (\n onContinue()}\n />\n )}\n {step !== 0 && (\n \n )}\n \n )\n}\n\nexport default Wizard\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport Modal from 'src/components/Modal'\nimport { Link } from 'src/components/buttons'\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport Section from 'src/components/layout/Section'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport { P } from 'src/components/typography'\nimport Wizard from 'src/pages/Wallet/Wizard'\nimport { WalletSchema } from 'src/pages/Wallet/helper'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nimport { styles } from './Locales.styles'\nimport {\n mainFields,\n overrides,\n LocaleSchema,\n OverridesSchema,\n localeDefaults,\n overridesDefaults\n} from './helper'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_DATA = gql`\n query getData {\n config\n accounts\n accountsConfig {\n code\n display\n class\n cryptos\n }\n currencies {\n code\n display\n }\n countries {\n code\n display\n }\n cryptoCurrencies {\n code\n display\n }\n languages {\n code\n display\n }\n machines {\n name\n deviceId\n }\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst FiatCurrencyChangeAlert = ({ open, close, save }) => {\n const classes = useStyles()\n\n return (\n \n \n Please note that all values you set that were based on your prior fiat\n currency are still the same. If you need to adjust these to reflect the\n new fiat currency (such as minimum transaction amounts, fixed fees, and\n compliance triggers, for example), please do so now.\n
\n \n Also, if you have cash-out enabled, you must define new dispenser bill\n counts for the new currency for cash-out on the new currency to work.\n
\n \n \n Cancel\n \n \n Save\n \n
\n \n )\n}\n\nconst Locales = ({ name: SCREEN_KEY }) => {\n const [wizard, setWizard] = useState(false)\n const [onChangeFunction, setOnChangeFunction] = useState(null)\n const [error, setError] = useState(null)\n const [isEditingDefault, setEditingDefault] = useState(false)\n const [isEditingOverrides, setEditingOverrides] = useState(false)\n const { data } = useQuery(GET_DATA)\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n onCompleted: () => setWizard(false),\n refetchQueries: () => ['getData'],\n onError: error => setError(error)\n })\n\n const [dataToSave, setDataToSave] = useState(null)\n\n const config = data?.config && fromNamespace(SCREEN_KEY)(data.config)\n const wallets = data?.config && fromNamespace(namespaces.WALLETS)(data.config)\n\n const accountsConfig = data?.accountsConfig\n const accounts = data?.accounts ?? []\n const cryptoCurrencies = data?.cryptoCurrencies ?? []\n const locale = config && !R.isEmpty(config) ? config : localeDefaults\n const localeOverrides = locale.overrides ?? []\n\n const handleSave = it => {\n const newConfig = toNamespace(SCREEN_KEY)(it.locale[0])\n\n if (\n config.fiatCurrency &&\n newConfig.locale_fiatCurrency !== config.fiatCurrency\n )\n return setDataToSave(newConfig)\n\n return save(newConfig)\n }\n\n const save = config => {\n setDataToSave(null)\n return saveConfig({ variables: { config } })\n }\n\n const saveOverrides = it => {\n const config = toNamespace(SCREEN_KEY)(it)\n setError(null)\n return saveConfig({ variables: { config } })\n }\n\n const onChangeCoin = (prev, curr, setValue) => {\n const coin = R.difference(curr, prev)[0]\n if (!coin) return setValue(curr)\n\n const namespaced = fromNamespace(coin)(wallets)\n if (!WalletSchema.isValidSync(namespaced)) {\n setOnChangeFunction(() => () => setValue(curr))\n setWizard(coin)\n return\n }\n\n setValue(curr)\n }\n\n const onEditingDefault = (it, editing) => setEditingDefault(editing)\n const onEditingOverrides = (it, editing) => setEditingOverrides(editing)\n\n const wizardSave = it =>\n save(toNamespace(namespaces.WALLETS)(it)).then(it => {\n onChangeFunction()\n setOnChangeFunction(null)\n return it\n })\n\n return (\n <>\n setDataToSave(null)}\n save={() => dataToSave && save(dataToSave)}\n />\n \n \n \n m.deviceId) ?? [],\n localeOverrides?.map(o => o.machine) ?? []\n )}\n setEditing={onEditingOverrides}\n forceDisable={isEditingDefault}\n />\n \n {wizard && (\n setWizard(false)}\n save={wizardSave}\n error={error?.message}\n cryptoCurrencies={cryptoCurrencies}\n userAccounts={data?.config?.accounts}\n accounts={accounts}\n accountsConfig={accountsConfig}\n />\n )}\n >\n )\n}\n\nexport default Locales\n","const styles = {\n rightAligned: {\n marginTop: '20px',\n marginLeft: 'auto',\n marginBottom: '20px'\n },\n rightLink: {\n marginLeft: '20px'\n }\n}\n\nexport { styles }\n","import Locales from './Locales'\n\nexport default Locales\n","import { spacer, errorColor } from 'src/styling/variables'\n\nconst styles = {\n identification: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n '& > *:first-child': {\n marginLeft: 0\n },\n '& > *': {\n marginLeft: 6\n },\n '& > *:nth-child(3)': {\n marginLeft: 15\n }\n },\n form: {\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n '& > *:first-child': {\n marginTop: 10\n },\n '& > *': {\n marginBottom: 20\n }\n },\n customerAutocomplete: {\n width: 350\n },\n discountRateWrapper: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center'\n },\n discountInput: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center'\n },\n footer: {\n display: 'flex',\n flexDirection: 'row',\n margin: [['auto', 0, spacer * 3, 0]]\n },\n submit: {\n margin: [['auto', 0, 0, 'auto']]\n },\n error: {\n color: errorColor\n }\n}\n\nexport default styles\n","import { makeStyles } from '@material-ui/core/styles'\nimport { Form, Formik, Field } from 'formik'\nimport * as R from 'ramda'\nimport React from 'react'\nimport * as Yup from 'yup'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Modal from 'src/components/Modal'\nimport { HoverableTooltip } from 'src/components/Tooltip'\nimport { Button } from 'src/components/buttons'\nimport { NumberInput, Autocomplete } from 'src/components/inputs/formik'\nimport { H3, TL1, P } from 'src/components/typography'\n\nimport styles from './IndividualDiscount.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst initialValues = {\n customer: '',\n discount: ''\n}\n\nconst validationSchema = Yup.object().shape({\n customer: Yup.string().required('A customer is required!'),\n discount: Yup.number()\n .required('A discount rate is required!')\n .min(0, 'Discount rate should be a positive number!')\n .max(100, 'Discount rate should have a maximum value of 100%!')\n})\n\nconst getErrorMsg = (formikErrors, formikTouched, mutationError) => {\n if (!formikErrors || !formikTouched) return null\n if (mutationError) return 'Internal server error'\n if (formikErrors.customer && formikTouched.customer)\n return formikErrors.customer\n if (formikErrors.discount && formikTouched.discount)\n return formikErrors.discount\n return null\n}\n\nconst IndividualDiscountModal = ({\n showModal,\n setShowModal,\n onClose,\n creationError,\n addDiscount,\n customers\n}) => {\n const classes = useStyles()\n\n const handleAddDiscount = (customer, discount) => {\n addDiscount({\n variables: {\n customerId: customer,\n discount: parseInt(discount)\n }\n })\n setShowModal(false)\n }\n\n return (\n <>\n {showModal && (\n \n {\n handleAddDiscount(customer, discount)\n }}>\n {({ errors, touched }) => (\n \n )}\n \n \n )}\n >\n )\n}\n\nexport default IndividualDiscountModal\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles, Box } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { DeleteDialog } from 'src/components/DeleteDialog'\nimport { Link, Button, IconButton } from 'src/components/buttons'\nimport DataTable from 'src/components/tables/DataTable'\nimport { Label3, TL1 } from 'src/components/typography'\nimport { ReactComponent as PhoneIdIcon } from 'src/styling/icons/ID/phone/zodiac.svg'\nimport { ReactComponent as DeleteIcon } from 'src/styling/icons/action/delete/enabled.svg'\n\nimport styles from './IndividualDiscount.styles'\nimport IndividualDiscountModal from './IndividualDiscountModal'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_INDIVIDUAL_DISCOUNTS = gql`\n query individualDiscounts {\n individualDiscounts {\n id\n customerId\n discount\n }\n }\n`\n\nconst DELETE_DISCOUNT = gql`\n mutation deleteIndividualDiscount($discountId: ID!) {\n deleteIndividualDiscount(discountId: $discountId) {\n id\n }\n }\n`\n\nconst CREATE_DISCOUNT = gql`\n mutation createIndividualDiscount($customerId: ID!, $discount: Int!) {\n createIndividualDiscount(customerId: $customerId, discount: $discount) {\n id\n }\n }\n`\n\nconst GET_CUSTOMERS = gql`\n {\n customers {\n id\n phone\n idCardData\n }\n }\n`\n\nconst IndividualDiscounts = () => {\n const classes = useStyles()\n\n const [deleteDialog, setDeleteDialog] = useState(false)\n const [toBeDeleted, setToBeDeleted] = useState()\n\n const [errorMsg, setErrorMsg] = useState('')\n const [showModal, setShowModal] = useState(false)\n const toggleModal = () => setShowModal(!showModal)\n\n const { data: discountResponse, loading: discountLoading } = useQuery(\n GET_INDIVIDUAL_DISCOUNTS\n )\n const { data: customerData, loading: customerLoading } = useQuery(\n GET_CUSTOMERS\n )\n\n const [createDiscount, { error: creationError }] = useMutation(\n CREATE_DISCOUNT,\n {\n refetchQueries: () => ['individualDiscounts']\n }\n )\n\n const getCustomer = id => {\n const customers = R.path(['customers'])(customerData)\n return R.find(R.propEq('id', id))(customers)\n }\n\n const [deleteDiscount] = useMutation(DELETE_DISCOUNT, {\n onError: ({ message }) => {\n const errorMessage = message ?? 'Error while deleting row'\n setErrorMsg(errorMessage)\n },\n onCompleted: () => setDeleteDialog(false),\n refetchQueries: () => ['individualDiscounts']\n })\n\n const elements = [\n {\n header: 'Identification',\n width: 312,\n textAlign: 'left',\n size: 'sm',\n view: t => {\n const customer = getCustomer(t.customerId)\n return (\n \n )\n }\n },\n {\n header: 'Name',\n width: 300,\n textAlign: 'left',\n size: 'sm',\n view: t => {\n const customer = getCustomer(t.customerId)\n if (R.isNil(customer.idCardData)) {\n return <>{'-'}>\n }\n\n return (\n <>{`${customer.idCardData.firstName ?? ``}${\n customer.idCardData.firstName && customer.idCardData.lastName\n ? ` `\n : ``\n }${customer.idCardData.lastName ?? ``}`}>\n )\n }\n },\n {\n header: 'Discount rate',\n width: 220,\n textAlign: 'left',\n size: 'sm',\n view: t => (\n <>\n {t.discount} %\n >\n )\n },\n {\n header: 'Revoke',\n width: 100,\n textAlign: 'center',\n size: 'sm',\n view: t => (\n {\n setDeleteDialog(true)\n setToBeDeleted({ variables: { discountId: t.id } })\n }}>\n \n \n )\n }\n ]\n\n const loading = discountLoading || customerLoading\n\n return (\n <>\n {!loading && !R.isEmpty(discountResponse.individualDiscounts) && (\n <>\n \n \n Add new code\n \n \n \n {\n setDeleteDialog(false)\n setErrorMsg(null)\n }}\n onConfirmed={() => {\n setErrorMsg(null)\n deleteDiscount(toBeDeleted)\n }}\n errorMessage={errorMsg}\n />\n >\n )}\n {!loading && R.isEmpty(discountResponse.individualDiscounts) && (\n \n \n It seems there are no active individual customer discounts on your\n network.\n \n Add individual discount \n \n )}\n {\n setShowModal(false)\n }}\n creationError={creationError}\n addDiscount={createDiscount}\n customers={R.path(['customers'])(customerData)}\n />\n >\n )\n}\n\nexport default IndividualDiscounts\n","import {\n spacer,\n fontPrimary,\n primaryColor,\n errorColor\n} from 'src/styling/variables'\n\nconst styles = {\n footer: {\n display: 'flex',\n flexDirection: 'row',\n margin: [['auto', 0, spacer * 3, 0]]\n },\n modalLabel1: {\n marginTop: 20\n },\n modalLabel2Wrapper: {\n marginTop: 40,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-start'\n },\n discountInput: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'flex-start'\n },\n inputLabel: {\n color: primaryColor,\n fontFamily: fontPrimary,\n fontSize: 24,\n marginLeft: 8,\n marginTop: 15\n },\n tableWidth: {\n width: 620\n },\n error: {\n color: errorColor\n },\n form: {\n display: 'flex',\n flexDirection: 'column',\n height: '100%'\n },\n submit: {\n margin: [['auto', 0, 0, 'auto']]\n }\n}\n\nexport default styles\n","import { makeStyles } from '@material-ui/core/styles'\nimport { Form, Formik, Field } from 'formik'\nimport * as R from 'ramda'\nimport React from 'react'\nimport * as Yup from 'yup'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Modal from 'src/components/Modal'\nimport { HoverableTooltip } from 'src/components/Tooltip'\nimport { Button } from 'src/components/buttons'\nimport { TextInput, NumberInput } from 'src/components/inputs/formik'\nimport { H3, TL1, P } from 'src/components/typography'\n\nimport styles from './PromoCodes.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst initialValues = {\n code: '',\n discount: ''\n}\n\nconst validationSchema = Yup.object().shape({\n code: Yup.string()\n .required()\n .trim()\n .max(25),\n discount: Yup.number()\n .required()\n .min(0)\n .max(100)\n})\n\nconst PromoCodesModal = ({ showModal, onClose, errorMsg, addCode }) => {\n const classes = useStyles()\n\n const handleAddCode = (code, discount) => {\n addCode(R.toUpper(code), parseInt(discount))\n }\n\n return (\n <>\n {showModal && (\n \n {\n handleAddCode(code, discount)\n }}>\n \n \n \n )}\n >\n )\n}\n\nexport default PromoCodesModal\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles, Box } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { DeleteDialog } from 'src/components/DeleteDialog'\nimport { Link, Button, IconButton } from 'src/components/buttons'\nimport DataTable from 'src/components/tables/DataTable'\nimport { Label3, TL1 } from 'src/components/typography'\nimport { ReactComponent as DeleteIcon } from 'src/styling/icons/action/delete/enabled.svg'\n\nimport styles from './PromoCodes.styles'\nimport PromoCodesModal from './PromoCodesModal'\n\nconst useStyles = makeStyles(styles)\n\nconst DUPLICATE_ERROR_MSG = 'There is already a promotion with that code!'\nconst DEFAULT_ERROR_MSG = 'Failed to save'\n\nconst GET_PROMO_CODES = gql`\n query promoCodes {\n promoCodes {\n id\n code\n discount\n }\n }\n`\n\nconst DELETE_CODE = gql`\n mutation deletePromoCode($codeId: ID!) {\n deletePromoCode(codeId: $codeId) {\n id\n }\n }\n`\n\nconst CREATE_CODE = gql`\n mutation createPromoCode($code: String!, $discount: Int!) {\n createPromoCode(code: $code, discount: $discount) {\n id\n code\n discount\n }\n }\n`\n\nconst PromoCodes = () => {\n const classes = useStyles()\n\n const [deleteDialog, setDeleteDialog] = useState(false)\n const [toBeDeleted, setToBeDeleted] = useState()\n\n const [showModal, setShowModal] = useState(false)\n const [errorMsg, setErrorMsg] = useState(null)\n const toggleModal = () => setShowModal(!showModal)\n\n const { data: codeResponse, loading } = useQuery(GET_PROMO_CODES)\n\n const [deleteCode] = useMutation(DELETE_CODE, {\n onError: ({ message }) => {\n const errorMessage = message ?? 'Error while deleting row'\n setErrorMsg(errorMessage)\n },\n onCompleted: () => setDeleteDialog(false),\n refetchQueries: () => ['promoCodes']\n })\n\n const [createCode] = useMutation(CREATE_CODE, {\n refetchQueries: () => ['promoCodes']\n })\n\n const addCode = (code, discount) => {\n setErrorMsg(null)\n createCode({\n variables: { code: code, discount: discount }\n })\n .then(res => {\n if (!res.errors) return setShowModal(false)\n\n const duplicateCodeError = R.any(it =>\n R.includes('duplicate', it?.message)\n )(res.errors)\n\n const msg = duplicateCodeError ? DUPLICATE_ERROR_MSG : DEFAULT_ERROR_MSG\n setErrorMsg(msg)\n })\n .catch(err => {\n setErrorMsg(DEFAULT_ERROR_MSG)\n console.log(err)\n })\n }\n\n const elements = [\n {\n header: 'Code',\n width: 300,\n textAlign: 'left',\n size: 'sm',\n view: t => t.code\n },\n {\n header: 'Discount',\n width: 220,\n textAlign: 'left',\n size: 'sm',\n view: t => (\n <>\n {t.discount} % in commissions\n >\n )\n },\n {\n header: 'Delete',\n width: 100,\n textAlign: 'center',\n size: 'sm',\n view: t => (\n {\n setDeleteDialog(true)\n setToBeDeleted({ variables: { codeId: t.id } })\n }}>\n \n \n )\n }\n ]\n\n return (\n <>\n {!loading && !R.isEmpty(codeResponse.promoCodes) && (\n \n \n Add new code\n \n \n )}\n {!loading && !R.isEmpty(codeResponse.promoCodes) && (\n <>\n \n {\n setDeleteDialog(false)\n setErrorMsg(null)\n }}\n onConfirmed={() => {\n setErrorMsg(null)\n deleteCode(toBeDeleted)\n }}\n errorMessage={errorMsg}\n />\n >\n )}\n {!loading && R.isEmpty(codeResponse.promoCodes) && (\n \n \n Currently, there are no active promo codes on your network.\n \n Add Code \n \n )}\n {\n setErrorMsg(null)\n setShowModal(false)\n }}\n errorMsg={errorMsg}\n addCode={addCode}\n />\n >\n )\n}\nexport default PromoCodes\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"pop-up/action/download-logs/date-range-copy-3\",\n transform: \"translate(-117.000000, -116.000000)\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"arrow-download-logs\",\n transform: \"translate(128.500000, 124.500000) rotate(-90.000000) translate(-128.500000, -124.500000) translate(121.000000, 114.000000)\"\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path-3\",\n points: \"0 13.3571429 7.14285714 20.5 14.2857143 13.3571429\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 7.14285714,\n y1: 0.142857143,\n x2: 7.14285714,\n y2: 20.1428571,\n id: \"Path-4\"\n}))));\n\nfunction SvgDownloadLogs(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"23px\",\n height: \"17px\",\n viewBox: \"0 0 23 17\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"arrow download logs\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDownloadLogs);\nexport default __webpack_public_path__ + \"static/media/download_logs.219c88ac.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"pop-up/action/download-logs/date-range-copy-2\",\n transform: \"translate(-20.000000, -187.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-contain-b-copy-5\",\n transform: \"translate(30.000000, 197.000000) rotate(-270.000000) translate(-30.000000, -197.000000) translate(20.000000, 187.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/wizzard\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(6.666667, 6.000000)\",\n id: \"Group\"\n}, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path-3\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n points: \"0 4.83333333 3.33333333 8.16666667 6.66666667 4.83333333\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 3.33333333,\n y1: 0.25,\n x2: 3.33333333,\n y2: 6.5,\n id: \"Path-4\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n})))))));\n\nfunction SvgMonthChange(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMonthChange);\nexport default __webpack_public_path__ + \"static/media/month_change.58940268.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"pop-up/action/download-logs/date-range-copy-2\",\n transform: \"translate(-20.000000, -187.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-contain-b-copy-5\",\n transform: \"translate(30.000000, 197.000000) rotate(270.000000) translate(-30.000000, -197.000000) translate(20.000000, 187.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/wizzard\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(6.666667, 6.000000)\",\n id: \"Group\"\n}, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path-3\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n points: \"0 4.83333333 3.33333333 8.16666667 6.66666667 4.83333333\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 3.33333333,\n y1: 0.25,\n x2: 3.33333333,\n y2: 6.5,\n id: \"Path-4\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n})))))));\n\nfunction SvgMonthChangeRight(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMonthChangeRight);\nexport default __webpack_public_path__ + \"static/media/month_change_right.0c3eb9a1.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport typographyStyles from 'src/components/typography/styles'\nimport {\n primaryColor,\n spring2,\n spring3,\n disabledColor\n} from 'src/styling/variables'\n\nconst { label1 } = typographyStyles\n\nconst styles = {\n wrapper: {\n height: 26,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n overflow: 'hidden'\n },\n button: {\n outline: 'none',\n extend: label1,\n border: 'none',\n cursor: 'pointer',\n backgroundColor: 'transparent',\n color: primaryColor,\n zIndex: 2\n },\n lowerBound: {\n left: '50%'\n },\n upperBound: {\n right: '50%'\n },\n selected: {\n width: 26,\n height: 26,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: spring2,\n borderRadius: '50%',\n position: 'absolute',\n zIndex: 1\n },\n between: {\n position: 'absolute',\n width: '100%',\n height: '100%',\n zIndex: 0,\n backgroundColor: spring3\n },\n disabled: {\n color: disabledColor,\n cursor: 'default'\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst Tile = ({\n isLowerBound,\n isUpperBound,\n isBetween,\n isDisabled,\n children,\n ...props\n}) => {\n const classes = useStyles()\n const selected = isLowerBound || isUpperBound\n\n const rangeClasses = {\n [classes.between]: isBetween && !(isLowerBound && isUpperBound),\n [classes.lowerBound]: isLowerBound && !isUpperBound,\n [classes.upperBound]: isUpperBound && !isLowerBound\n }\n\n const buttonWrapperClasses = {\n [classes.wrapper]: true,\n [classes.selected]: selected\n }\n\n const buttonClasses = {\n [classes.button]: true,\n [classes.disabled]: isDisabled\n }\n\n return (\n \n )\n}\n\nexport default Tile\n","import { makeStyles } from '@material-ui/core/styles'\nimport {\n add,\n differenceInMonths,\n format,\n getDay,\n getDaysInMonth,\n isAfter,\n isSameDay,\n isSameMonth,\n lastDayOfMonth,\n startOfMonth,\n startOfWeek,\n sub\n} from 'date-fns/fp'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport typographyStyles from 'src/components/typography/styles'\nimport { ReactComponent as Arrow } from 'src/styling/icons/arrow/month_change.svg'\nimport { ReactComponent as RightArrow } from 'src/styling/icons/arrow/month_change_right.svg'\nimport { primaryColor, zircon } from 'src/styling/variables'\n\nimport Tile from './Tile'\n\nconst { p, label2 } = typographyStyles\n\nconst styles = {\n wrapper: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center'\n },\n button: {\n outline: 'none'\n },\n navbar: {\n extend: p,\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n padding: [[15, 15]],\n color: primaryColor,\n '& button': {\n display: 'flex',\n alignItems: 'center',\n padding: 0,\n border: 'none',\n backgroundColor: zircon,\n cursor: 'pointer',\n borderRadius: '50%',\n width: 20,\n height: 20,\n position: 'relative',\n overflow: 'hidden',\n '& svg': {\n position: 'absolute',\n left: 0\n }\n }\n },\n table: {\n borderCollapse: 'collapse',\n width: '100%',\n color: primaryColor,\n '& tr': {\n '&:first-child': {\n paddingLeft: 5\n },\n '&:last-child': {\n paddingRight: 5\n }\n },\n '& th, & td': {\n margin: 0,\n padding: [[3, 0, 3, 0]]\n },\n '& th': {\n extend: label2\n }\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst Calendar = ({ minDate, maxDate, handleSelect, ...props }) => {\n const [currentDisplayedMonth, setCurrentDisplayedMonth] = useState(new Date())\n\n const classes = useStyles()\n\n const weekdays = Array.from(Array(7)).map((_, i) =>\n format('EEEEE', add({ days: i }, startOfWeek(new Date())))\n )\n\n const monthLength = month => getDaysInMonth(month)\n\n const monthdays = month => {\n const lastMonth = sub({ months: 1 }, month)\n const lastMonthRange = R.range(0, getDay(startOfMonth(month))).reverse()\n const lastMonthDays = R.map(i =>\n sub({ days: i }, lastDayOfMonth(lastMonth))\n )(lastMonthRange)\n\n const thisMonthRange = R.range(0, monthLength(month))\n const thisMonthDays = R.map(i => add({ days: i }, startOfMonth(month)))(\n thisMonthRange\n )\n\n const nextMonth = add({ months: 1 }, month)\n const nextMonthRange = R.range(\n 0,\n 42 - lastMonthDays.length - thisMonthDays.length\n )\n const nextMonthDays = R.map(i => add({ days: i }, startOfMonth(nextMonth)))(\n nextMonthRange\n )\n\n return R.concat(R.concat(lastMonthDays, thisMonthDays), nextMonthDays)\n }\n\n const getRow = (month, row) => monthdays(month).slice(row * 7 - 7, row * 7)\n\n const handleNavPrev = currentMonth => {\n const prevMonth = sub({ months: 1 }, currentMonth)\n if (!minDate) setCurrentDisplayedMonth(prevMonth)\n else {\n setCurrentDisplayedMonth(\n isSameMonth(minDate, prevMonth) ||\n differenceInMonths(minDate, prevMonth) > 0\n ? prevMonth\n : currentDisplayedMonth\n )\n }\n }\n const handleNavNext = currentMonth => {\n const nextMonth = add({ months: 1 }, currentMonth)\n if (!maxDate) setCurrentDisplayedMonth(nextMonth)\n else {\n setCurrentDisplayedMonth(\n isSameMonth(maxDate, nextMonth) ||\n differenceInMonths(nextMonth, maxDate) > 0\n ? nextMonth\n : currentDisplayedMonth\n )\n }\n }\n\n return (\n \n
\n
handleNavPrev(currentDisplayedMonth)}>\n \n \n
\n {`${format('MMMM', currentDisplayedMonth)} ${format(\n 'yyyy',\n currentDisplayedMonth\n )}`}\n \n
handleNavNext(currentDisplayedMonth)}>\n \n \n
\n
\n \n \n {weekdays.map((day, key) => (\n {day} \n ))}\n \n \n \n {R.range(1, 8).map((row, key) => (\n \n {getRow(currentDisplayedMonth, row).map((day, key) => (\n handleSelect(day, minDate, maxDate)}>\n \n {format('d', day)}\n \n \n ))}\n \n ))}\n \n
\n
\n )\n}\n\nexport default Calendar\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport {\n differenceInDays,\n differenceInMonths,\n isSameMonth,\n set\n} from 'date-fns/fp'\nimport React, { useState, useEffect } from 'react'\n\nimport Calendar from './Calendar'\n\nconst styles = {\n wrapper: {\n backgroundColor: 'white',\n borderRadius: 10\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst DateRangePicker = ({ minDate, maxDate, className, onRangeChange }) => {\n const [from, setFrom] = useState(null)\n const [to, setTo] = useState(null)\n\n useEffect(() => {\n onRangeChange(from, to)\n }, [from, onRangeChange, to])\n\n const classes = useStyles()\n\n const handleSelect = (day, minDate, maxDate) => {\n if (\n (maxDate && differenceInDays(maxDate, day) > 0) ||\n (minDate && differenceInDays(day, minDate) > 0)\n )\n return\n\n if (from && !to && differenceInDays(day, from) > 0) {\n setTo(from)\n setFrom(day)\n return\n }\n\n if (\n from &&\n !to &&\n (isSameMonth(from, day) || differenceInMonths(from, day) > 0)\n ) {\n setTo(\n set({ hours: 23, minutes: 59, seconds: 59, milliseconds: 999 }, day)\n )\n return\n }\n\n setFrom(day)\n setTo(null)\n }\n\n return (\n <>\n \n \n
\n >\n )\n}\n\nexport default DateRangePicker\n","import { useLazyQuery } from '@apollo/react-hooks'\nimport { makeStyles, ClickAwayListener } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { format } from 'date-fns/fp'\nimport FileSaver from 'file-saver'\nimport * as R from 'ramda'\nimport React, { useState, useCallback } from 'react'\n\nimport { FeatureButton, Link } from 'src/components/buttons'\nimport { ReactComponent as Arrow } from 'src/styling/icons/arrow/download_logs.svg'\nimport { ReactComponent as DownloadInverseIcon } from 'src/styling/icons/button/download/white.svg'\nimport { ReactComponent as Download } from 'src/styling/icons/button/download/zodiac.svg'\nimport { primaryColor, offColor, zircon } from 'src/styling/variables'\nimport { formatDate } from 'src/utils/timezones'\n\nimport Popper from './Popper'\nimport DateRangePicker from './date-range-picker/DateRangePicker'\nimport { RadioGroup } from './inputs'\nimport typographyStyles from './typography/styles'\n\nconst { info1, label1, label2, h4 } = typographyStyles\n\nconst dateContainerStyles = {\n wrapper: {\n height: 46,\n width: 99\n },\n container: {\n display: 'flex'\n },\n monthWeekDayContainer: {\n display: 'flex',\n flexDirection: 'column'\n },\n label: {\n extend: label1,\n lineHeight: 1.33,\n color: primaryColor\n },\n bigNumber: {\n extend: info1,\n lineHeight: 1,\n marginRight: 7\n },\n monthYear: {\n extend: label2,\n lineHeight: 1.17,\n color: primaryColor\n },\n weekDay: {\n extend: label1,\n lineHeight: 1.33,\n color: offColor\n }\n}\n\nconst dateContainerUseStyles = makeStyles(dateContainerStyles)\n\nconst DateContainer = ({ date, children, ...props }) => {\n const classes = dateContainerUseStyles()\n\n return (\n \n
{children}
\n {date && (\n <>\n
\n
{format('d', date)}
\n
\n {`${format(\n 'MMM',\n date\n )} ${format('yyyy', date)}`} \n {format('EEEE', date)} \n
\n
\n >\n )}\n
\n )\n}\n\nconst styles = {\n popoverContent: {\n width: 280\n },\n popoverHeader: {\n extend: h4,\n padding: [[15, 15, 0, 15]]\n },\n radioButtonsContainer: {\n padding: [[5, 15, 5, 15]]\n },\n radioButtons: {\n display: 'flex',\n justifyContent: 'space-between',\n flexDirection: 'row',\n color: primaryColor\n },\n dateRangePickerShowing: {\n display: 'block',\n height: '100%'\n },\n dateRangePickerHidden: {\n display: 'none',\n height: 0\n },\n download: {\n padding: [[10, 15]]\n },\n dateContainerWrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n position: 'relative',\n backgroundColor: zircon,\n padding: [[0, 15]],\n minHeight: 70\n },\n arrowContainer: {\n position: 'absolute',\n left: 125,\n top: 26\n },\n arrow: {\n margin: 'auto'\n }\n}\n\nconst useStyles = makeStyles(styles)\nconst ALL = 'all'\nconst RANGE = 'range'\nconst ADVANCED = 'advanced'\nconst SIMPLIFIED = 'simplified'\n\nconst LogsDownloaderPopover = ({\n name,\n query,\n args,\n title,\n getLogs,\n timezone,\n simplified\n}) => {\n const [selectedRadio, setSelectedRadio] = useState(ALL)\n const [selectedAdvancedRadio, setSelectedAdvancedRadio] = useState(ADVANCED)\n\n const [range, setRange] = useState({ from: null, until: null })\n const [anchorEl, setAnchorEl] = useState(null)\n const [fetchLogs] = useLazyQuery(query, {\n onCompleted: data => createLogsFile(getLogs(data), range)\n })\n\n const classes = useStyles()\n\n const dateRangePickerClasses = {\n [classes.dateRangePickerShowing]: selectedRadio === RANGE,\n [classes.dateRangePickerHidden]: selectedRadio === ALL\n }\n\n const handleRadioButtons = evt => {\n const selectedRadio = R.path(['target', 'value'])(evt)\n setSelectedRadio(selectedRadio)\n if (selectedRadio === ALL) setRange({ from: null, until: null })\n }\n\n const handleAdvancedRadioButtons = evt => {\n const selectedAdvancedRadio = R.path(['target', 'value'])(evt)\n setSelectedAdvancedRadio(selectedAdvancedRadio)\n }\n\n const handleRangeChange = useCallback(\n (from, until) => {\n setRange({ from, until })\n },\n [setRange]\n )\n\n const downloadLogs = (range, args) => {\n if (selectedRadio === ALL) {\n fetchLogs({\n variables: {\n ...args,\n simplified: selectedAdvancedRadio === SIMPLIFIED,\n excludeTestingCustomers: true\n }\n })\n }\n\n if (!range || !range.from) return\n if (range.from && !range.until) range.until = new Date()\n\n if (selectedRadio === RANGE) {\n fetchLogs({\n variables: {\n ...args,\n from: range.from,\n until: range.until,\n simplified: selectedAdvancedRadio === SIMPLIFIED,\n excludeTestingCustomers: true\n }\n })\n }\n }\n\n const createLogsFile = (logs, range) => {\n const formatDateFile = date => {\n return formatDate(date, timezone, 'yyyy-MM-dd_HH-mm')\n }\n\n const blob = new window.Blob([logs], {\n type: 'text/plain;charset=utf-8'\n })\n\n FileSaver.saveAs(\n blob,\n selectedRadio === ALL\n ? `${formatDateFile(new Date())}_${name}.csv`\n : `${formatDateFile(range.from)}_${formatDateFile(\n range.until\n )}_${name}.csv`\n )\n }\n\n const handleOpenRangePicker = event => {\n setAnchorEl(anchorEl ? null : event.currentTarget)\n }\n\n const handleClickAway = () => {\n setAnchorEl(null)\n }\n\n const radioButtonOptions = [\n { display: 'All logs', code: ALL },\n { display: 'Date range', code: RANGE }\n ]\n\n const advancedRadioButtonOptions = [\n { display: 'Advanced logs', code: ADVANCED },\n { display: 'Simplified logs', code: SIMPLIFIED }\n ]\n\n const open = Boolean(anchorEl)\n const id = open ? 'date-range-popover' : undefined\n\n return (\n \n \n
\n
\n \n
{title}
\n
\n \n
\n {selectedRadio === RANGE && (\n
\n
\n {range && (\n <>\n
From \n
\n
To \n >\n )}\n
\n
\n
\n )}\n {simplified && (\n
\n \n
\n )}\n
\n downloadLogs(range, args)}>\n Download\n \n
\n
\n \n
\n \n )\n}\n\nexport default LogsDownloaderPopover\n","import { useQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport LogsDowloaderPopover from 'src/components/LogsDownloaderPopper'\nimport Title from 'src/components/Title'\nimport Sidebar from 'src/components/layout/Sidebar'\nimport {\n Table,\n TableHead,\n TableRow,\n TableHeader,\n TableBody,\n TableCell\n} from 'src/components/table'\nimport { Info3, H4 } from 'src/components/typography'\nimport { formatDate } from 'src/utils/timezones'\n\nimport styles from './Logs.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_MACHINES = gql`\n {\n machines {\n name\n deviceId\n }\n }\n`\n\nconst NUM_LOG_RESULTS = 500\n\nconst GET_MACHINE_LOGS_CSV = gql`\n query MachineLogs(\n $deviceId: ID!\n $limit: Int\n $from: Date\n $until: Date\n $timezone: String\n ) {\n machineLogsCsv(\n deviceId: $deviceId\n limit: $limit\n from: $from\n until: $until\n timezone: $timezone\n )\n }\n`\n\nconst GET_MACHINE_LOGS = gql`\n query MachineLogs($deviceId: ID!, $limit: Int, $from: Date, $until: Date) {\n machineLogs(\n deviceId: $deviceId\n limit: $limit\n from: $from\n until: $until\n ) {\n logLevel\n id\n timestamp\n message\n }\n }\n`\n\nconst GET_DATA = gql`\n query getData {\n config\n }\n`\n\nconst Logs = () => {\n const classes = useStyles()\n\n const [selected, setSelected] = useState(null)\n const [saveMessage, setSaveMessage] = useState(null)\n\n const deviceId = selected?.deviceId\n\n const { data: machineResponse, loading: machinesLoading } = useQuery(\n GET_MACHINES\n )\n\n const { data: configResponse, loading: configLoading } = useQuery(GET_DATA)\n const timezone = R.path(['config', 'locale_timezone'], configResponse)\n\n const { data: logsResponse, loading: logsLoading } = useQuery(\n GET_MACHINE_LOGS,\n {\n variables: { deviceId, limit: NUM_LOG_RESULTS },\n skip: !selected,\n onCompleted: () => setSaveMessage('')\n }\n )\n\n if (machineResponse?.machines?.length && !selected) {\n setSelected(machineResponse?.machines[0])\n }\n\n const isSelected = it => {\n return R.path(['deviceId'])(selected) === it.deviceId\n }\n\n const loading = machinesLoading || configLoading || logsLoading\n\n return (\n <>\n \n
\n
Machine Logs \n {logsResponse && (\n
\n R.path(['machineLogsCsv'])(logs)}\n timezone={timezone}\n />\n {saveMessage} \n
\n )}\n
\n
\n \n
it.name}\n data={machineResponse?.machines || []}\n isSelected={isSelected}\n onClick={setSelected}\n />\n \n
\n \n \n Date \n Level \n \n \n \n \n {logsResponse &&\n logsResponse.machineLogs.map((log, idx) => (\n \n \n {timezone &&\n formatDate(log.timestamp, timezone, 'yyyy-MM-dd HH:mm')}\n \n {log.logLevel} \n {log.message} \n \n ))}\n \n
\n {loading &&
{'Loading...'} }\n {!loading && !logsResponse?.machineLogs?.length && (\n
{'No activity so far'} \n )}\n
\n \n >\n )\n}\n\nexport default Logs\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/clock/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-7\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0,10 C0,15.522 4.478,20 10,20 C15.522,20 20,15.522 20,10 C20,4.478 15.522,0 10,0 C7.749,0 5.671,0.744 4,1.999\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"13 11 10 11.063 10 7\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-5\",\n points: \"3 0 3 3 5 4\"\n})));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.5750bfd1.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/clock/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-7\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0,10 C0,15.522 4.478,20 10,20 C15.522,20 20,15.522 20,10 C20,4.478 15.522,0 10,0 C7.749,0 5.671,0.744 4,1.999\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"13 11 10 11.063 10 7\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-5\",\n points: \"3 0 3 3 5 4\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.ce4a1545.svg\";\nexport { ForwardRef as ReactComponent };","import { offColor } from 'src/styling/variables'\n\nexport default {\n cashbox: {\n height: 36\n },\n tBody: {\n maxHeight: '65vh',\n overflow: 'auto'\n },\n tableWidth: {\n display: 'flex',\n alignItems: 'center',\n marginRight: 1\n },\n descriptions: {\n color: offColor,\n marginTop: 0\n },\n cashboxReset: {\n color: offColor,\n margin: [[13, 0, -5, 20]]\n },\n selection: {\n marginRight: 12\n }\n}\n","import { comet } from 'src/styling/variables'\n\nexport default {\n footerLabel: {\n color: comet,\n alignSelf: 'center'\n },\n footerContent: {\n width: 1200,\n maxHeight: 64,\n display: 'flex',\n justifyContent: 'space-around',\n position: 'fixed'\n },\n footerContainer: {\n position: 'fixed',\n height: 64,\n left: 0,\n bottom: 0,\n width: '100vw',\n backgroundColor: 'white',\n display: 'flex',\n justifyContent: 'space-around',\n boxShadow: [[0, -1, 10, 0, 'rgba(50, 50, 50, 0.1)']]\n },\n flex: {\n display: 'flex'\n },\n icon: {\n alignSelf: 'center',\n height: 20,\n width: 20,\n marginRight: 8\n },\n iconLabel: {\n alignSelf: 'center',\n marginRight: 8\n },\n valueDisplay: {\n alignSelf: 'center'\n }\n}\n","import { makeStyles } from '@material-ui/core'\nimport BigNumber from 'bignumber.js'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport { Info1, Info2, Info3 } from 'src/components/typography/index'\nimport { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport { fromNamespace } from 'src/utils/config'\nimport { numberToFiatAmount } from 'src/utils/number.js'\n\nimport styles from './CashCassettesFooter.styles.js'\nconst useStyles = makeStyles(styles)\n\nconst CashCassettesFooter = ({\n machines,\n config,\n currencyCode,\n bills,\n deviceIds\n}) => {\n const classes = useStyles()\n const cashout = config && fromNamespace('cashOut')(config)\n const getCashoutSettings = id => fromNamespace(id)(cashout)\n const reducerFn = (\n acc,\n { cassette1, cassette2, cassette3, cassette4, id }\n ) => {\n const cassette1Denomination = getCashoutSettings(id).cassette1 ?? 0\n const cassette2Denomination = getCashoutSettings(id).cassette2 ?? 0\n const cassette3Denomination = getCashoutSettings(id).cassette3 ?? 0\n const cassette4Denomination = getCashoutSettings(id).cassette4 ?? 0\n return [\n (acc[0] += cassette1 * cassette1Denomination),\n (acc[1] += cassette2 * cassette2Denomination),\n (acc[2] += cassette3 * cassette3Denomination),\n (acc[3] += cassette4 * cassette4Denomination)\n ]\n }\n\n const totalInCassettes = R.sum(R.reduce(reducerFn, [0, 0, 0, 0], machines))\n\n const totalInCashBox = R.sum(R.map(it => it.fiat)(bills))\n\n const total = new BigNumber(totalInCassettes + totalInCashBox).toFormat(0)\n\n return (\n \n
\n
Cash value in System \n
\n \n Cash-in: \n \n {numberToFiatAmount(totalInCashBox)} {currencyCode}\n \n
\n
\n \n Cash-out: \n \n {numberToFiatAmount(totalInCassettes)} {currencyCode}\n \n
\n
\n Total: \n \n {numberToFiatAmount(total)} {currencyCode}\n \n
\n
\n
\n )\n}\n\nexport default CashCassettesFooter\n","import { useQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React from 'react'\n// import * as Yup from 'yup'\n\n// import { Link, IconButton } from 'src/components/buttons'\n// import { TextInput } from 'src/components/inputs'\nimport { NumberInput } from 'src/components/inputs/formik'\nimport DataTable from 'src/components/tables/DataTable'\n// import { ReactComponent as EditIconDisabled } from 'src/styling/icons/action/edit/disabled.svg'\n// import { ReactComponent as EditIcon } from 'src/styling/icons/action/edit/enabled.svg'\nimport { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport { formatDate } from 'src/utils/timezones'\n\nconst GET_BATCHES = gql`\n query cashboxBatches {\n cashboxBatches {\n id\n deviceId\n created\n operationType\n customBillCount\n performedBy\n bills {\n fiat\n deviceId\n created\n }\n }\n }\n`\n\n/* const EDIT_BATCH = gql`\n mutation editBatch($id: ID, $performedBy: String) {\n editBatch(id: $id, performedBy: $performedBy) {\n id\n }\n }\n` */\n\nconst GET_DATA = gql`\n query getData {\n config\n }\n`\n\nconst styles = {\n operationType: {\n marginLeft: 8\n },\n operationTypeWrapper: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center'\n },\n saveAndCancel: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between'\n }\n}\n\n/* const schema = Yup.object().shape({\n performedBy: Yup.string().nullable()\n}) */\n\nconst useStyles = makeStyles(styles)\n\nconst CashboxHistory = ({ machines, currency }) => {\n const classes = useStyles()\n\n /* const [error, setError] = useState(false)\n const [field, setField] = useState(null)\n const [editing, setEditing] = useState(false) */\n\n const { data: batchesData, loading: batchesLoading } = useQuery(GET_BATCHES)\n\n /* const [editBatch] = useMutation(EDIT_BATCH, {\n refetchQueries: () => ['cashboxBatches']\n }) */\n\n const { data: configData, loading: configLoading } = useQuery(GET_DATA)\n const timezone = R.path(['config', 'locale_timezone'], configData)\n\n const loading = batchesLoading || configLoading\n\n const batches = R.path(['cashboxBatches'])(batchesData)\n\n const getOperationRender = R.reduce(\n (ret, i) =>\n R.pipe(\n R.assoc(\n `cash-cassette-${i}-refill`,\n <>\n \n \n Cash cassette {i} refill\n \n >\n ),\n R.assoc(\n `cash-cassette-${i}-empty`,\n <>\n \n \n Cash cassette {i} emptied\n \n >\n )\n )(ret),\n {\n 'cash-box-empty': (\n <>\n \n Cash box emptied \n >\n )\n },\n R.range(1, 5)\n )\n\n /* const save = row => {\n const performedBy = field.performedBy === '' ? null : field.performedBy\n\n schema\n .isValid(field)\n .then(() => {\n setError(false)\n editBatch({\n variables: { id: row.id, performedBy: performedBy }\n })\n })\n .catch(setError(true))\n return close()\n }\n\n const close = () => {\n setEditing(false)\n setField(null)\n }\n\n const notEditing = id => field?.id !== id */\n\n const elements = [\n {\n name: 'operation',\n header: 'Operation',\n width: 200,\n textAlign: 'left',\n view: it => (\n \n {getOperationRender[it.operationType]}\n
\n )\n },\n {\n name: 'machine',\n header: 'Machine',\n width: 200,\n textAlign: 'left',\n view: it => {\n return R.find(R.propEq('id', it.deviceId))(machines).name\n }\n },\n {\n name: 'billCount',\n header: 'Bill Count',\n width: 115,\n textAlign: 'left',\n input: NumberInput,\n inputProps: {\n decimalPlaces: 0\n },\n view: it =>\n R.isNil(it.customBillCount) ? it.bills.length : it.customBillCount\n },\n {\n name: 'total',\n header: 'Total',\n width: 180,\n textAlign: 'right',\n view: it => (\n \n {R.sum(R.map(b => R.prop('fiat', b), it.bills))} {currency}\n \n )\n },\n {\n name: 'date',\n header: 'Date',\n width: 135,\n textAlign: 'right',\n view: it => formatDate(it.created, timezone, 'yyyy-MM-dd')\n },\n {\n name: 'time',\n header: 'Time (h:m)',\n width: 125,\n textAlign: 'right',\n view: it => formatDate(it.created, timezone, 'HH:mm')\n }\n /* {\n name: 'performedBy',\n header: 'Performed by',\n width: 180,\n textAlign: 'left',\n view: it => {\n if (notEditing(it.id))\n return R.isNil(it.performedBy) ? 'Unknown entity' : it.performedBy\n return (\n setField({ ...field, performedBy: e.target.value })}\n error={error}\n width={190 * 0.85}\n value={field?.performedBy}\n />\n )\n }\n },\n {\n name: '',\n header: 'Edit',\n width: 80,\n textAlign: 'right',\n view: it => {\n if (notEditing(it.id))\n return (\n {\n setField({ id: it.id, performedBy: it.performedBy })\n setEditing(true)\n }}>\n {editing ? : }\n \n )\n return (\n \n save(it)}>\n Save\n \n \n Cancel\n \n
\n )\n }\n } */\n ]\n\n return (\n \n )\n}\n\nexport default CashboxHistory\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { DialogActions, makeStyles, Box } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\nimport * as Yup from 'yup'\n\nimport Modal from 'src/components/Modal'\nimport { IconButton, Button } from 'src/components/buttons'\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport { RadioGroup } from 'src/components/inputs'\nimport { CashOut, CashIn } from 'src/components/inputs/cashbox/Cashbox'\nimport { NumberInput, CashCassetteInput } from 'src/components/inputs/formik'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport { EmptyTable } from 'src/components/table'\nimport { P, Label1 } from 'src/components/typography'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/action/edit/enabled.svg'\nimport { ReactComponent as ReverseHistoryIcon } from 'src/styling/icons/circle buttons/history/white.svg'\nimport { ReactComponent as HistoryIcon } from 'src/styling/icons/circle buttons/history/zodiac.svg'\nimport { fromNamespace, toNamespace } from 'src/utils/config'\nimport { MANUAL, AUTOMATIC } from 'src/utils/constants.js'\nimport { onlyFirstToUpper } from 'src/utils/string'\n\nimport styles from './CashCassettes.styles.js'\nimport CashCassettesFooter from './CashCassettesFooter'\nimport CashboxHistory from './CashboxHistory'\nimport Wizard from './Wizard/Wizard'\n\nconst useStyles = makeStyles(styles)\n\nconst widthsByNumberOfCassettes = {\n 2: {\n machine: 250,\n cashbox: 260,\n cassette: 300,\n cassetteGraph: 80,\n editWidth: 90\n },\n 3: {\n machine: 220,\n cashbox: 215,\n cassette: 225,\n cassetteGraph: 60,\n editWidth: 90\n },\n 4: {\n machine: 190,\n cashbox: 180,\n cassette: 185,\n cassetteGraph: 50,\n editWidth: 90\n }\n}\n\nconst ValidationSchema = Yup.object().shape({\n name: Yup.string().required(),\n cashbox: Yup.number()\n .label('Cash box')\n .required()\n .integer()\n .min(0)\n .max(1000),\n cassette1: Yup.number()\n .label('Cassette 1')\n .required()\n .integer()\n .min(0)\n .max(500),\n cassette2: Yup.number()\n .label('Cassette 2')\n .required()\n .integer()\n .min(0)\n .max(500),\n cassette3: Yup.number()\n .label('Cassette 3')\n .required()\n .integer()\n .min(0)\n .max(500),\n cassette4: Yup.number()\n .label('Cassette 4')\n .required()\n .integer()\n .min(0)\n .max(500)\n})\n\nconst GET_MACHINES_AND_CONFIG = gql`\n query getData($billFilters: JSONObject) {\n machines {\n name\n id: deviceId\n cashbox\n cassette1\n cassette2\n cassette3\n cassette4\n numberOfCassettes\n }\n config\n bills(filters: $billFilters) {\n id\n fiat\n created\n deviceId\n }\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst SET_CASSETTE_BILLS = gql`\n mutation MachineAction(\n $deviceId: ID!\n $action: MachineAction!\n $cashbox: Int!\n $cassette1: Int!\n $cassette2: Int!\n $cassette3: Int!\n $cassette4: Int!\n ) {\n machineAction(\n deviceId: $deviceId\n action: $action\n cashbox: $cashbox\n cassette1: $cassette1\n cassette2: $cassette2\n cassette3: $cassette3\n cassette4: $cassette4\n ) {\n deviceId\n cashbox\n cassette1\n cassette2\n cassette3\n cassette4\n }\n }\n`\n\nconst CashCassettes = () => {\n const classes = useStyles()\n const [showHistory, setShowHistory] = useState(false)\n const [editingSchema, setEditingSchema] = useState(null)\n const [selectedRadio, setSelectedRadio] = useState(null)\n\n const { data, loading: dataLoading } = useQuery(GET_MACHINES_AND_CONFIG, {\n variables: {\n billFilters: {\n batch: 'none'\n }\n }\n })\n const [wizard, setWizard] = useState(false)\n const [machineId, setMachineId] = useState('')\n\n const machines = R.path(['machines'])(data) ?? []\n const config = R.path(['config'])(data) ?? {}\n const fillingPercentageSettings = fromNamespace('notifications', config)\n const [setCassetteBills, { error }] = useMutation(SET_CASSETTE_BILLS, {\n refetchQueries: () => ['getData']\n })\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n onCompleted: () => setEditingSchema(false),\n refetchQueries: () => ['getData']\n })\n\n const bills = R.groupBy(bill => bill.deviceId)(R.path(['bills'])(data) ?? [])\n const deviceIds = R.uniq(\n R.map(R.prop('deviceId'))(R.path(['bills'])(data) ?? [])\n )\n const cashout = data?.config && fromNamespace('cashOut')(data.config)\n const locale = data?.config && fromNamespace('locale')(data.config)\n const fiatCurrency = locale?.fiatCurrency\n const maxNumberOfCassettes = Math.max(\n ...R.map(it => it.numberOfCassettes, machines),\n 0\n )\n\n const getCashoutSettings = id => fromNamespace(id)(cashout)\n const isCashOutDisabled = ({ id }) => !getCashoutSettings(id).active\n\n const onSave = (id, cashbox, cassettes) => {\n return setCassetteBills({\n variables: {\n action: 'setCassetteBills',\n deviceId: id,\n cashbox,\n ...cassettes\n }\n })\n }\n\n const cashboxReset =\n data?.config && fromNamespace('cashIn')(data.config).cashboxReset\n\n const cashboxResetSave = rawConfig => {\n const config = toNamespace('cashIn')(rawConfig)\n return saveConfig({ variables: { config } })\n }\n\n const saveCashboxOption = selection => {\n if (selection) {\n cashboxResetSave({ cashboxReset: selection })\n setEditingSchema(false)\n }\n }\n\n const radioButtonOptions = [\n { display: 'Automatic', code: AUTOMATIC },\n { display: 'Manual', code: MANUAL }\n ]\n\n const handleRadioButtons = evt => {\n const selectedRadio = R.path(['target', 'value'])(evt)\n setSelectedRadio(selectedRadio)\n }\n\n const elements = [\n {\n name: 'name',\n header: 'Machine',\n width: widthsByNumberOfCassettes[maxNumberOfCassettes]?.machine,\n view: name => <>{name}>,\n input: ({ field: { value: name } }) => <>{name}>\n },\n {\n name: 'cashbox',\n header: 'Cash box',\n width: widthsByNumberOfCassettes[maxNumberOfCassettes]?.cashbox,\n view: (value, { id }) => (\n it.fiat, bills[id] ?? []))}\n />\n ),\n input: NumberInput,\n inputProps: {\n decimalPlaces: 0\n }\n }\n ]\n\n R.until(\n R.gt(R.__, maxNumberOfCassettes),\n it => {\n elements.push({\n name: `cassette${it}`,\n header: `Cassette ${it}`,\n width: widthsByNumberOfCassettes[maxNumberOfCassettes]?.cassette,\n stripe: true,\n doubleHeader: 'Cash-out',\n view: (value, { id }) => (\n \n ),\n isHidden: ({ numberOfCassettes }) => it > numberOfCassettes,\n input: CashCassetteInput,\n inputProps: {\n decimalPlaces: 0,\n width: widthsByNumberOfCassettes[maxNumberOfCassettes]?.cassetteGraph,\n inputClassName: classes.cashbox\n }\n })\n return R.add(1, it)\n },\n 1\n )\n\n elements.push({\n name: 'edit',\n header: 'Edit',\n width: widthsByNumberOfCassettes[maxNumberOfCassettes]?.editWidth,\n textAlign: 'center',\n view: (value, { id }) => {\n return (\n {\n setMachineId(id)\n setWizard(true)\n }}>\n \n \n )\n }\n })\n\n return (\n !dataLoading && (\n <>\n \n {!showHistory && (\n \n Cash box resets \n \n {cashboxReset && (\n \n {onlyFirstToUpper(cashboxReset)}\n
\n )}\n setEditingSchema(true)}\n className={classes.button}>\n \n \n \n \n )}\n \n {!showHistory && (\n <>\n \n\n {data && R.isEmpty(machines) && (\n \n )}\n >\n )}\n {showHistory && (\n \n )}\n \n {wizard && (\n {\n setWizard(false)\n }}\n error={error?.message}\n save={onSave}\n locale={locale}\n />\n )}\n {editingSchema && (\n setEditingSchema(null)}\n open={true}>\n \n We can automatically assume you emptied a bill validator's cash\n box when the machine detects that it has been removed.\n
\n \n \n Assume the cash box is emptied whenever it's removed, creating a\n new batch on the history screen and setting its current balance to\n zero.\n
\n \n \n Cash boxes won't be assumed emptied when removed, nor their counts\n modified. Instead, to update the count and create a new batch,\n you'll click the 'Edit' button on this panel.\n
\n \n saveCashboxOption(selectedRadio)}>\n Confirm\n \n \n \n )}\n >\n )\n )\n}\n\nexport default CashCassettes\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 12,\n height: 12,\n rx: 3,\n ry: 3,\n fill: \"#ff7311\"\n});\n\nfunction SvgPumpkin(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 12,\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgPumpkin);\nexport default __webpack_public_path__ + \"static/media/pumpkin.877c3432.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 12,\n height: 12,\n rx: 3,\n ry: 3,\n fill: \"#ff584a\"\n});\n\nfunction SvgTomato(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 12,\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTomato);\nexport default __webpack_public_path__ + \"static/media/tomato.b3903800.svg\";\nexport { ForwardRef as ReactComponent };","import { fade } from '@material-ui/core/styles/colorManipulator'\n\nimport {\n detailsRowStyles,\n labelStyles\n} from 'src/pages/Transactions/Transactions.styles'\nimport { spacer, comet, primaryColor, fontSize4 } from 'src/styling/variables'\n\nconst machineDetailsStyles = {\n ...detailsRowStyles,\n wrapper: {\n display: 'flex',\n // marginTop: 24,\n // marginBottom: 32,\n marginTop: 12,\n marginBottom: 16,\n fontSize: fontSize4\n },\n row: {\n display: 'flex',\n flexDirection: 'row'\n // marginBottom: 36\n },\n list: {\n padding: 0,\n margin: 0,\n listStyle: 'none'\n },\n item: {\n height: spacer * 3,\n marginBottom: spacer * 1.5\n },\n link: {\n color: primaryColor,\n textDecoration: 'none'\n },\n separator: {\n width: 1,\n height: 170,\n zIndex: 1,\n marginRight: 60,\n marginLeft: 'auto',\n background: fade(comet, 0.5)\n }\n}\n\nexport { labelStyles, machineDetailsStyles }\n","import { Grid /*, Divider */ } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport BigNumber from 'bignumber.js'\nimport React from 'react'\n\n// import { Status } from 'src/components/Status'\n// import { ReactComponent as LinkIcon } from 'src/styling/icons/button/link/zodiac.svg'\nimport MachineActions from 'src/components/machineActions/MachineActions'\nimport { modelPrettifier } from 'src/utils/machine'\nimport { formatDate } from 'src/utils/timezones'\n\nimport { labelStyles, machineDetailsStyles } from './MachineDetailsCard.styles'\n\n// const supportArtices = [\n// {\n// // Default article for non-maped statuses\n// code: undefined,\n// label: 'Troubleshooting',\n// article:\n// 'https://support.lamassu.is/hc/en-us/categories/115000075249-Troubleshooting'\n// }\n// // TODO add Stuck and Fully Functional statuses articles for the new-admins\n// ]\n\n// const article = ({ code: status }) =>\n// supportArtices.find(({ code: article }) => article === status)\n\nconst useLStyles = makeStyles(labelStyles)\n\nconst Label = ({ children }) => {\n const classes = useLStyles()\n\n return {children}
\n}\n\nconst useMDStyles = makeStyles(machineDetailsStyles)\n\nconst Container = ({ children, ...props }) => (\n \n {children}\n \n)\n\nconst Item = ({ children, ...props }) => (\n \n {children}\n \n)\n\nconst MachineDetailsRow = ({ it: machine, onActionSuccess, timezone }) => {\n const classes = useMDStyles()\n\n return (\n \n {/* - \n
\n - \n
Statuses \n \n {machine.statuses.map((status, index) => (\n \n \n \n ))}\n \n \n - \n
Lamassu Support article \n \n {machine.statuses\n .map(article)\n .map(({ label, article }, index) => (\n \n \n '{label}' \n \n \n ))}\n \n \n \n \n */}\n - \n
\n - \n
Machine Model \n {modelPrettifier[machine.model]} \n \n - \n
Paired at \n \n {timezone &&\n formatDate(machine.pairedAt, timezone, 'yyyy-MM-dd HH:mm:ss')}\n \n \n - \n
\n \n - \n
Network speed \n \n {machine.downloadSpeed\n ? new BigNumber(machine.downloadSpeed).toFixed(4).toString() +\n ' MB/s'\n : 'unavailable'}\n \n \n - \n
Latency \n \n {machine.responseTime\n ? new BigNumber(machine.responseTime).toFixed(3).toString() +\n ' ms'\n : 'unavailable'}\n \n \n - \n
Packet Loss \n \n {machine.packetLoss\n ? new BigNumber(machine.packetLoss).toFixed(3).toString() +\n ' %'\n : 'unavailable'}\n \n \n \n \n \n )\n}\n\nexport default MachineDetailsRow\n","import { useQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport { formatDistance } from 'date-fns'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React from 'react'\nimport { useHistory, useLocation } from 'react-router-dom'\n\nimport { MainStatus } from 'src/components/Status'\nimport Title from 'src/components/Title'\nimport DataTable from 'src/components/tables/DataTable'\nimport { mainStyles } from 'src/pages/Transactions/Transactions.styles'\nimport { ReactComponent as MachineRedirectIcon } from 'src/styling/icons/month arrows/right.svg'\nimport { ReactComponent as WarningIcon } from 'src/styling/icons/status/pumpkin.svg'\nimport { ReactComponent as ErrorIcon } from 'src/styling/icons/status/tomato.svg'\n\nimport MachineDetailsRow from './MachineDetailsCard'\n\nconst GET_MACHINES = gql`\n {\n machines {\n name\n deviceId\n lastPing\n pairedAt\n version\n paired\n cashbox\n cassette1\n cassette2\n version\n model\n statuses {\n label\n type\n }\n downloadSpeed\n responseTime\n packetLoss\n }\n }\n`\n\nconst GET_DATA = gql`\n query getData {\n config\n }\n`\n\nconst useStyles = makeStyles(mainStyles)\n\nconst MachineStatus = () => {\n const classes = useStyles()\n const history = useHistory()\n const { state } = useLocation()\n const addedMachineId = state?.id\n const {\n data: machinesResponse,\n refetch,\n loading: machinesLoading\n } = useQuery(GET_MACHINES)\n const { data: configResponse, configLoading } = useQuery(GET_DATA)\n const timezone = R.path(['config', 'locale_timezone'], configResponse)\n\n const elements = [\n {\n header: 'Machine Name',\n width: 250,\n size: 'sm',\n textAlign: 'left',\n view: m => (\n \n {m.name}\n
{\n history.push(`/machines/${m.deviceId}`)\n }}>\n \n
\n
\n )\n },\n {\n header: 'Status',\n width: 350,\n size: 'sm',\n textAlign: 'left',\n view: m => \n },\n {\n header: 'Last ping',\n width: 200,\n size: 'sm',\n textAlign: 'left',\n view: m =>\n m.lastPing\n ? formatDistance(new Date(m.lastPing), new Date(), {\n addSuffix: true\n })\n : 'unknown'\n },\n {\n header: 'Software Version',\n width: 200,\n size: 'sm',\n textAlign: 'left',\n view: m => m.version || 'unknown'\n }\n ]\n\n const machines = R.path(['machines'])(machinesResponse) ?? []\n const expandedIndex = R.findIndex(R.propEq('deviceId', addedMachineId))(\n machines\n )\n\n const InnerMachineDetailsRow = ({ it }) => (\n \n )\n\n const loading = machinesLoading || configLoading\n\n return (\n <>\n \n
\n
Machine Status \n \n
\n
\n \n Warning \n
\n
\n \n Error \n
\n
\n
\n \n >\n )\n}\n\nexport default MachineStatus\n","import React from 'react'\n\nexport default React.createContext()\n","import { makeStyles } from '@material-ui/core'\nimport React from 'react'\n\nimport { Link, IconButton } from 'src/components/buttons'\nimport { H4 } from 'src/components/typography'\nimport { ReactComponent as DisabledEditIcon } from 'src/styling/icons/action/edit/disabled.svg'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/action/edit/enabled.svg'\n\nimport styles from './EditHeader.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst Header = ({ title, editing, disabled, setEditing }) => {\n const classes = useStyles()\n\n return (\n \n
{title} \n {!editing && (\n
setEditing(true)}\n className={classes.button}\n disabled={disabled}>\n {disabled ? : }\n \n )}\n {editing && (\n
\n \n Save\n \n \n Cancel\n \n
\n )}\n
\n )\n}\n\nexport default Header\n","export default {\n header: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: 16,\n height: 26,\n margin: 0\n },\n title: {\n flexShrink: 2,\n margin: 0,\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis'\n },\n button: {\n border: 'none',\n backgroundColor: 'transparent',\n cursor: 'pointer',\n marginLeft: 8\n },\n editingButtons: {\n display: 'flex',\n flexShrink: 0,\n marginLeft: 16,\n justifyContent: 'space-between',\n width: 110\n }\n}\n","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { useFormikContext, Field as FormikField } from 'formik'\nimport React from 'react'\n\nimport { NumberInput } from 'src/components/inputs/formik'\nimport { Label1, Info1, TL2 } from 'src/components/typography'\n\nimport styles from './EditableNumber.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst EditableNumber = ({\n label,\n name,\n editing,\n displayValue,\n decoration,\n className,\n decimalPlaces = 0,\n width = 80\n}) => {\n const classes = useStyles({ width, editing })\n const { values } = useFormikContext()\n\n const classNames = {\n [classes.fieldWrapper]: true,\n className\n }\n\n return (\n \n {label &&
{label} }\n
\n {!editing && (\n {displayValue(values[name])} \n )}\n {editing && (\n \n )}\n {decoration} \n
\n
\n )\n}\n\nexport default EditableNumber\n","export default {\n text: {\n margin: [[7, 0, 7, 1]]\n },\n fieldWrapper: {\n height: 53\n },\n valueWrapper: {\n display: 'flex',\n alignItems: 'baseline'\n },\n label: {\n margin: 0\n },\n decoration: {\n margin: [[0, 0, 0, 7]]\n }\n}\n","import { Form, Formik } from 'formik'\nimport React, { useContext, useState } from 'react'\nimport * as Yup from 'yup'\n\nimport PromptWhenDirty from 'src/components/PromptWhenDirty'\nimport { transformNumber } from 'src/utils/number'\n\nimport NotificationsCtx from '../NotificationsContext'\n\nimport Header from './EditHeader'\nimport EditableNumber from './EditableNumber'\n\nconst SingleFieldEditableNumber = ({\n title,\n label,\n width = 80,\n min = 0,\n max = 9999999,\n name,\n section,\n className\n}) => {\n const [saving, setSaving] = useState(false)\n\n const innerSave = async (section, value) => {\n if (saving) return\n\n setSaving(true)\n\n // no response means the save failed\n await save(section, value)\n\n setSaving(false)\n }\n\n const {\n save,\n data,\n currency,\n isEditing,\n isDisabled,\n setEditing\n } = useContext(NotificationsCtx)\n\n const schema = Yup.object().shape({\n [name]: Yup.number()\n .transform(transformNumber)\n .integer()\n .min(min)\n .max(max)\n .nullable()\n })\n\n return (\n innerSave(section, schema.cast(it))}\n onReset={() => {\n setEditing(name, false)\n }}>\n \n \n )\n}\n\nexport default SingleFieldEditableNumber\n","import { makeStyles } from '@material-ui/core'\nimport React, { useContext } from 'react'\n\nimport NotificationsCtx from '../NotificationsContext'\nimport SingleFieldEditableNumber from '../components/SingleFieldEditableNumber'\n\nimport styles from './CryptoBalanceAlerts.styles'\n\nconst LOW_BALANCE_KEY = 'cryptoLowBalance'\nconst HIGH_BALANCE_KEY = 'cryptoHighBalance'\n\nconst useStyles = makeStyles(styles)\n\nconst CryptoBalanceAlerts = ({ section, fieldWidth }) => {\n const classes = useStyles()\n\n const {\n data,\n save,\n currency,\n setEditing,\n isEditing,\n isDisabled\n } = useContext(NotificationsCtx)\n\n return (\n \n
setEditing(LOW_BALANCE_KEY, it)}\n width={fieldWidth}\n />\n\n
\n\n setEditing(HIGH_BALANCE_KEY, it)}\n width={fieldWidth}\n />\n \n )\n}\n\nexport default CryptoBalanceAlerts\n","export default {\n cryptoBalanceAlerts: {\n display: 'flex',\n marginBottom: 36,\n height: 135,\n alignItems: 'center'\n },\n cryptoBalanceAlertsForm: {\n width: 222,\n marginRight: 32\n },\n cryptoBalanceAlertsSecondForm: {\n marginLeft: 50\n },\n vertSeparator: {\n width: 1,\n height: '100%',\n borderRight: [[1, 'solid', 'black']]\n }\n}\n","import * as R from 'ramda'\nimport React, { useContext } from 'react'\nimport * as Yup from 'yup'\n\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport { NumberInput } from 'src/components/inputs/formik'\nimport Autocomplete from 'src/components/inputs/formik/Autocomplete.js'\nimport { CURRENCY_MAX } from 'src/utils/constants'\nimport { transformNumber } from 'src/utils/number'\n\nimport NotificationsCtx from '../NotificationsContext'\n\nconst HIGH_BALANCE_KEY = 'highBalance'\nconst LOW_BALANCE_KEY = 'lowBalance'\nconst CRYPTOCURRENCY_KEY = 'cryptoCurrency'\nconst NAME = 'cryptoBalanceOverrides'\n\nconst CryptoBalanceOverrides = ({ section }) => {\n const {\n cryptoCurrencies = [],\n data,\n save,\n error,\n currency,\n isDisabled,\n setEditing\n } = useContext(NotificationsCtx)\n const setupValues = data?.cryptoBalanceOverrides ?? []\n const innerSetEditing = it => setEditing(NAME, it)\n\n const onDelete = id => {\n const newOverrides = {\n cryptoBalanceOverrides: R.reject(it => it.id === id, setupValues)\n }\n return save(newOverrides)\n }\n\n const overridenCryptos = R.map(R.prop(CRYPTOCURRENCY_KEY))(setupValues)\n const suggestionFilter = R.filter(\n it => !R.contains(it.code, overridenCryptos)\n )\n const suggestions = suggestionFilter(cryptoCurrencies)\n\n const findSuggestion = it => {\n const coin = R.compose(R.find(R.propEq('code', it?.cryptoCurrency)))(\n cryptoCurrencies\n )\n return coin ? [coin] : []\n }\n\n const initialValues = {\n [CRYPTOCURRENCY_KEY]: null,\n [LOW_BALANCE_KEY]: '',\n [HIGH_BALANCE_KEY]: ''\n }\n\n const notesMin = 0\n const validationSchema = Yup.object().shape(\n {\n [CRYPTOCURRENCY_KEY]: Yup.string()\n .label('Cryptocurrency')\n .nullable()\n .required(),\n [LOW_BALANCE_KEY]: Yup.number()\n .label('Low Balance')\n .when(HIGH_BALANCE_KEY, {\n is: HIGH_BALANCE_KEY => !HIGH_BALANCE_KEY,\n then: Yup.number().required()\n })\n .transform(transformNumber)\n .integer()\n .min(notesMin)\n .max(CURRENCY_MAX)\n .nullable(),\n [HIGH_BALANCE_KEY]: Yup.number()\n .label('High Balance')\n .when(LOW_BALANCE_KEY, {\n is: LOW_BALANCE_KEY => !LOW_BALANCE_KEY,\n then: Yup.number().required()\n })\n .transform(transformNumber)\n .integer()\n .min(notesMin)\n .max(CURRENCY_MAX)\n .nullable()\n },\n [LOW_BALANCE_KEY, HIGH_BALANCE_KEY]\n )\n\n const viewCrypto = it =>\n R.compose(\n R.path(['display']),\n R.find(R.propEq('code', it))\n )(cryptoCurrencies)\n\n const elements = [\n {\n name: CRYPTOCURRENCY_KEY,\n header: 'Cryptocurrency',\n width: 166,\n size: 'sm',\n view: viewCrypto,\n input: Autocomplete,\n inputProps: {\n options: it => R.concat(suggestions, findSuggestion(it)),\n optionsLimit: null,\n valueProp: 'code',\n labelProp: 'display'\n }\n },\n {\n name: LOW_BALANCE_KEY,\n width: 155,\n textAlign: 'right',\n bold: true,\n input: NumberInput,\n suffix: currency,\n inputProps: {\n decimalPlaces: 2\n }\n },\n {\n name: HIGH_BALANCE_KEY,\n width: 155,\n textAlign: 'right',\n bold: true,\n input: NumberInput,\n suffix: currency,\n inputProps: {\n decimalPlaces: 2\n }\n }\n ]\n\n return (\n save(section, it)}\n initialValues={initialValues}\n validationSchema={validationSchema}\n forceDisable={isDisabled(NAME) || !cryptoCurrencies}\n data={setupValues}\n elements={elements}\n disableAdd={!suggestions?.length}\n onDelete={onDelete}\n setEditing={innerSetEditing}\n />\n )\n}\n\nexport default CryptoBalanceOverrides\n","import { backgroundColor } from 'src/styling/variables'\n\nexport default {\n wrapper: {\n display: 'flex'\n },\n form: {\n marginBottom: 36\n },\n title: {\n marginTop: 0\n },\n row: {\n width: 236,\n display: 'grid',\n gridTemplateColumns: 'repeat(2,1fr)',\n gridTemplateRows: '1fr',\n gridColumnGap: 18,\n gridRowGap: 0\n },\n col2: {\n width: 136\n },\n cashboxLabel: {\n marginRight: 4,\n fontSize: 20\n },\n cashboxEmptyPart: {\n backgroundColor: `${backgroundColor}`\n }\n}\n","import { makeStyles } from '@material-ui/core'\nimport { Form, Formik } from 'formik'\nimport * as R from 'ramda'\nimport React, { useContext } from 'react'\nimport * as Yup from 'yup'\n\nimport PromptWhenDirty from 'src/components/PromptWhenDirty'\nimport { TL2 } from 'src/components/typography'\nimport { transformNumber } from 'src/utils/number'\n\nimport { Cashbox } from '../../../components/inputs/cashbox/Cashbox'\nimport NotificationsCtx from '../NotificationsContext'\nimport Header from '../components/EditHeader'\nimport EditableNumber from '../components/EditableNumber'\n\nimport styles from './FiatBalanceAlerts.styles.js'\n\nconst useStyles = makeStyles(styles)\n\nconst NAME = 'fiatBalanceAlerts'\nconst DEFAULT_NUMBER_OF_CASSETTES = 2\n\nconst FiatBalance = ({ section, min = 0, max = 100, fieldWidth = 80 }) => {\n const {\n isEditing,\n isDisabled,\n setEditing,\n data,\n save,\n machines = []\n } = useContext(NotificationsCtx)\n const classes = useStyles()\n\n const maxNumberOfCassettes = Math.max(\n ...R.map(it => it.numberOfCassettes, machines),\n DEFAULT_NUMBER_OF_CASSETTES\n )\n\n const editing = isEditing(NAME)\n\n const schema = Yup.object().shape({\n fillingPercentageCassette1: Yup.number()\n .transform(transformNumber)\n .integer()\n .min(min)\n .max(max)\n .nullable(),\n fillingPercentageCassette2: Yup.number()\n .transform(transformNumber)\n .integer()\n .min(min)\n .max(max)\n .nullable(),\n fiatBalanceCassette3: Yup.number()\n .transform(transformNumber)\n .integer()\n .min(min)\n .max(max)\n .nullable(),\n fiatBalanceCassette4: Yup.number()\n .transform(transformNumber)\n .integer()\n .min(min)\n .max(max)\n .nullable()\n })\n\n return (\n save(section, schema.cast(it))}\n onReset={() => {\n setEditing(NAME, false)\n }}>\n {({ values }) => (\n \n )}\n \n )\n}\n\nexport default FiatBalance\n","import * as R from 'ramda'\nimport React, { useContext } from 'react'\nimport * as Yup from 'yup'\n\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport { NumberInput } from 'src/components/inputs/formik/'\nimport Autocomplete from 'src/components/inputs/formik/Autocomplete'\nimport { fromNamespace } from 'src/utils/config'\nimport { transformNumber } from 'src/utils/number'\n\nimport NotificationsCtx from '../NotificationsContext'\n\nconst CASSETTE_1_KEY = 'fillingPercentageCassette1'\nconst CASSETTE_2_KEY = 'fillingPercentageCassette2'\nconst CASSETTE_3_KEY = 'fillingPercentageCassette3'\nconst CASSETTE_4_KEY = 'fillingPercentageCassette4'\nconst MACHINE_KEY = 'machine'\nconst NAME = 'fiatBalanceOverrides'\n\nconst CASSETTE_LIST = [\n CASSETTE_1_KEY,\n CASSETTE_2_KEY,\n CASSETTE_3_KEY,\n CASSETTE_4_KEY\n]\n\nconst widthsByNumberOfCassettes = {\n 2: { machine: 230, cassette: 250 },\n 3: { machine: 216, cassette: 270 },\n 4: { machine: 210, cassette: 204 }\n}\n\nconst FiatBalanceOverrides = ({ config, section }) => {\n const {\n machines = [],\n data,\n save,\n isDisabled,\n setEditing,\n error\n } = useContext(NotificationsCtx)\n\n const setupValues = data?.fiatBalanceOverrides ?? []\n const innerSetEditing = it => setEditing(NAME, it)\n\n const cashoutConfig = it => fromNamespace(it)(config)\n\n const overridenMachines = R.map(override => override.machine, setupValues)\n const suggestionFilter = R.filter(\n it =>\n !R.includes(it.deviceId, overridenMachines) &&\n cashoutConfig(it.deviceId).active\n )\n const suggestions = suggestionFilter(machines)\n\n const findSuggestion = it => {\n const coin = R.compose(R.find(R.propEq('deviceId', it?.machine)))(machines)\n return coin ? [coin] : []\n }\n\n const initialValues = {\n [MACHINE_KEY]: null,\n [CASSETTE_1_KEY]: '',\n [CASSETTE_2_KEY]: '',\n [CASSETTE_3_KEY]: '',\n [CASSETTE_4_KEY]: ''\n }\n\n const maxNumberOfCassettes = Math.max(\n ...R.map(it => it.numberOfCassettes, machines),\n 0\n )\n\n const percentMin = 0\n const percentMax = 100\n const validationSchema = Yup.object()\n .shape({\n [MACHINE_KEY]: Yup.string()\n .label('Machine')\n .nullable()\n .required(),\n [CASSETTE_1_KEY]: Yup.number()\n .label('Cassette 1')\n .transform(transformNumber)\n .integer()\n .min(percentMin)\n .max(percentMax)\n .nullable(),\n [CASSETTE_2_KEY]: Yup.number()\n .label('Cassette 2')\n .transform(transformNumber)\n .integer()\n .min(percentMin)\n .max(percentMax)\n .nullable(),\n [CASSETTE_3_KEY]: Yup.number()\n .label('Cassette 3')\n .transform(transformNumber)\n .integer()\n .min(percentMin)\n .max(percentMax)\n .nullable(),\n [CASSETTE_4_KEY]: Yup.number()\n .label('Cassette 4')\n .transform(transformNumber)\n .integer()\n .min(percentMin)\n .max(percentMax)\n .nullable()\n })\n .test((values, context) => {\n const picked = R.pick(CASSETTE_LIST, values)\n\n if (CASSETTE_LIST.some(it => !R.isNil(picked[it]))) return\n\n return context.createError({\n path: CASSETTE_1_KEY,\n message: 'At least one of the cassettes must have a value'\n })\n })\n\n const viewMachine = it =>\n R.compose(R.path(['name']), R.find(R.propEq('deviceId', it)))(machines)\n\n const elements = [\n {\n name: MACHINE_KEY,\n width: widthsByNumberOfCassettes[maxNumberOfCassettes].machine,\n size: 'sm',\n view: viewMachine,\n input: Autocomplete,\n inputProps: {\n options: it => R.concat(suggestions, findSuggestion(it)),\n valueProp: 'deviceId',\n labelProp: 'name'\n }\n }\n ]\n\n R.until(\n R.gt(R.__, maxNumberOfCassettes),\n it => {\n elements.push({\n name: `fillingPercentageCassette${it}`,\n display: `Cash cassette ${it}`,\n width: widthsByNumberOfCassettes[maxNumberOfCassettes].cassette,\n textAlign: 'right',\n doubleHeader: 'Cash Cassette Empty',\n bold: true,\n input: NumberInput,\n suffix: '%',\n inputProps: {\n decimalPlaces: 0\n },\n view: it => it?.toString() ?? '—',\n isHidden: value =>\n it >\n machines.find(({ deviceId }) => deviceId === value.machine)\n ?.numberOfCassettes\n })\n return R.add(1, it)\n },\n 1\n )\n\n return (\n save(section, validationSchema.cast(it))}\n initialValues={initialValues}\n validationSchema={validationSchema}\n forceDisable={isDisabled(NAME) || !machines}\n data={setupValues}\n elements={elements}\n disableAdd={!suggestions?.length}\n setEditing={innerSetEditing}\n />\n )\n}\n\nexport default FiatBalanceOverrides\n","import { makeStyles } from '@material-ui/core'\nimport * as R from 'ramda'\nimport React, { useContext } from 'react'\n\nimport {\n Table,\n THead,\n TBody,\n Tr,\n Td,\n Th\n} from 'src/components/fake-table/Table'\nimport { Switch } from 'src/components/inputs'\nimport { fromNamespace, toNamespace } from 'src/utils/config'\nimport { startCase } from 'src/utils/string'\n\nimport NotificationsCtx from '../NotificationsContext'\n\nconst channelSize = 229\nconst sizes = {\n balance: 152,\n transactions: 184,\n compliance: 178,\n errors: 142,\n security: 152,\n active: 263\n}\n\nconst Row = ({ namespace, forceDisable, shouldUpperCase }) => {\n const { data: rawData, save: rawSave } = useContext(NotificationsCtx)\n\n const save = R.compose(rawSave(null), toNamespace(namespace))\n const data = fromNamespace(namespace)(rawData)\n\n const disabled = forceDisable || !data || !data.active\n\n const Cell = ({ name, disabled }) => {\n const value = !!(data && data[name])\n\n return (\n \n {\n save({ [name]: event.target.checked })\n }}\n value={value}\n />\n \n )\n }\n\n return (\n \n \n {shouldUpperCase ? R.toUpper(namespace) : startCase(namespace)}\n \n | \n | \n | \n | \n | \n | \n \n )\n}\n\nconst useStyles = makeStyles({\n wizardTable: {\n width: 930\n }\n})\nconst Setup = ({ wizard, forceDisable }) => {\n const widthAdjust = wizard ? 20 : 0\n const classes = useStyles()\n return (\n \n \n Channel \n {Object.keys(sizes).map(it => (\n \n {startCase(it)}\n \n ))}\n \n \n
\n
\n
\n \n
\n )\n}\n\nexport default Setup\n","import React from 'react'\n\nimport SingleFieldEditableNumber from '../components/SingleFieldEditableNumber'\n\nconst NAME = 'highValueTransaction'\n\nconst TransactionAlerts = ({ section, fieldWidth }) => {\n return (\n \n )\n}\n\nexport default TransactionAlerts\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport TitleSection from 'src/components/layout/TitleSection'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nimport Section from '../../components/layout/Section'\n\nimport NotificationsCtx from './NotificationsContext'\nimport CryptoBalanceAlerts from './sections/CryptoBalanceAlerts'\nimport CryptoBalanceOverrides from './sections/CryptoBalanceOverrides'\nimport FiatBalanceAlerts from './sections/FiatBalanceAlerts'\nimport FiatBalanceOverrides from './sections/FiatBalanceOverrides'\nimport Setup from './sections/Setup'\nimport TransactionAlerts from './sections/TransactionAlerts'\n\nconst GET_INFO = gql`\n query getData {\n config\n machines {\n name\n deviceId\n numberOfCassettes\n }\n cryptoCurrencies {\n code\n display\n }\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst FIELDS_WIDTH = 130\n\nconst Notifications = ({\n name: SCREEN_KEY,\n displaySetup = true,\n displayTransactionAlerts = true,\n displayFiatAlerts = true,\n displayCryptoAlerts = true,\n displayOverrides = true,\n displayTitle = true,\n wizard = false\n}) => {\n const [section, setSection] = useState(null)\n const [error, setError] = useState(null)\n const [editingKey, setEditingKey] = useState(null)\n\n const { data, loading } = useQuery(GET_INFO)\n\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n refetchQueries: ['getData'],\n onCompleted: () => setEditingKey(null),\n onError: error => setError(error)\n })\n\n const config = fromNamespace(SCREEN_KEY)(data?.config)\n const machines = data?.machines\n const cryptoCurrencies = data?.cryptoCurrencies\n\n const currency = R.path(['fiatCurrency'])(\n fromNamespace(namespaces.LOCALE)(data?.config)\n )\n\n const save = R.curry((section, rawConfig) => {\n const config = toNamespace(SCREEN_KEY)(rawConfig)\n setSection(section)\n setError(null)\n return saveConfig({ variables: { config } })\n })\n\n const setEditing = (key, state) => {\n if (!state) {\n setError(null)\n }\n setEditingKey(state ? key : null)\n }\n\n const isEditing = key => editingKey === key\n const isDisabled = key => editingKey && editingKey !== key\n\n const contextValue = {\n save,\n error,\n editingKey,\n data: config,\n currency,\n isEditing,\n isDisabled,\n setEditing,\n setSection,\n machines,\n cryptoCurrencies\n }\n\n return (\n !loading && (\n \n {displayTitle && }\n {displaySetup && (\n \n )}\n {displayTransactionAlerts && (\n \n )}\n {displayFiatAlerts && (\n \n \n {displayOverrides && (\n \n )}\n \n )}\n {displayCryptoAlerts && (\n \n \n {displayOverrides && (\n \n )}\n \n )}\n \n )\n )\n}\n\nexport default Notifications\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"\\\\u21B3\\\\u21B3-Coin-ATM-Radar\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"operator-info_v4-CAR#1\",\n transform: \"translate(-832.000000, -608.000000)\",\n fill: \"#FF584A\",\n fillRule: \"nonzero\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group\",\n transform: \"translate(832.000000, 608.000000)\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Line-7\",\n points: \"13.0484874 0 16 2.95151255 2.95151255 16 0 13.0484874\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Line-7\",\n transform: \"translate(8.000000, 8.000000) scale(-1, 1) translate(-8.000000, -8.000000) \",\n points: \"13.0484874 0 16 2.95151255 2.95151255 16 0 13.0484874\"\n}))));\n\nfunction SvgFalse(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"16px\",\n height: \"16px\",\n viewBox: \"0 0 16 16\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"Group\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgFalse);\nexport default __webpack_public_path__ + \"static/media/false.347e5864.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/table/true\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.17451294,13.3251347 L0.599425104,9.29667256 C-0.199808368,8.3960844 -0.199808368,6.94040225 0.599425104,6.03981409 C1.39865858,5.13922593 2.69051421,5.13922593 3.48974768,6.03981409 L5.61967423,8.439847 L12.5102523,0.675441122 C13.3094858,-0.225147041 14.6033855,-0.225147041 15.4005749,0.675441122 C16.1998084,1.57372599 16.1998084,3.03171143 15.4005749,3.93229959 L7.06483552,13.3251347 C6.66624082,13.7742771 6.14295752,14 5.61967423,14 C5.09639093,14 4.57310763,13.7742771 4.17451294,13.3251347 Z\",\n id: \"Fill-1\",\n fill: \"#48F694\"\n}));\n\nfunction SvgTrue(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"16px\",\n height: \"14px\",\n viewBox: \"0 0 16 14\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/table/true\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTrue);\nexport default __webpack_public_path__ + \"static/media/true.b3b76849.svg\";\nexport { ForwardRef as ReactComponent };","import baseStyles from 'src/pages/Logs.styles'\nimport { backgroundColor, zircon } from 'src/styling/variables'\n\nconst { fillColumn } = baseStyles\n\nconst booleanPropertiesTableStyles = {\n booleanPropertiesTableWrapper: {\n display: 'flex',\n flexDirection: 'column',\n width: 396\n },\n tableRow: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n '&:nth-child(even)': {\n backgroundColor: backgroundColor\n },\n '&:nth-child(odd)': {\n backgroundColor: zircon\n },\n minHeight: 32,\n height: 'auto',\n padding: [[8, 16, 8, 24]],\n boxShadow: '0 0 0 0 rgba(0, 0, 0, 0)'\n },\n leftTableCell: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'left',\n width: 200,\n padding: [0]\n },\n rightTableCell: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'right',\n padding: [0]\n },\n transparentButton: {\n '& > *': {\n margin: 'auto 12px'\n },\n '& button': {\n border: 'none',\n backgroundColor: 'transparent',\n cursor: 'pointer'\n }\n },\n rowWrapper: {\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n flex: 'wrap'\n },\n rightAligned: {\n marginLeft: 'auto'\n },\n radioButtons: {\n display: 'flex',\n flexDirection: 'row',\n margin: [-15]\n },\n rightLink: {\n marginLeft: '20px'\n },\n fillColumn,\n popoverContent: {\n width: 272,\n padding: [[10, 15]]\n }\n}\n\nexport { booleanPropertiesTableStyles }\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport { useFormikContext, Form, Formik, Field as FormikField } from 'formik'\nimport * as R from 'ramda'\nimport React, { useState, memo } from 'react'\nimport * as Yup from 'yup'\n\nimport PromptWhenDirty from 'src/components/PromptWhenDirty'\nimport { Link, IconButton } from 'src/components/buttons'\nimport { RadioGroup } from 'src/components/inputs/formik'\nimport { Table, TableBody, TableRow, TableCell } from 'src/components/table'\nimport { H4 } from 'src/components/typography'\nimport { ReactComponent as EditIconDisabled } from 'src/styling/icons/action/edit/disabled.svg'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/action/edit/enabled.svg'\nimport { ReactComponent as FalseIcon } from 'src/styling/icons/table/false.svg'\nimport { ReactComponent as TrueIcon } from 'src/styling/icons/table/true.svg'\n\nimport { booleanPropertiesTableStyles } from './BooleanPropertiesTable.styles'\n\nconst useStyles = makeStyles(booleanPropertiesTableStyles)\n\nconst BooleanCell = ({ name }) => {\n const { values } = useFormikContext()\n return values[name] === 'true' ? : \n}\n\nconst BooleanPropertiesTable = memo(\n ({ title, disabled, data, elements, save, forcedEditing = false }) => {\n const initialValues = R.fromPairs(\n elements.map(it => [it.name, data[it.name].toString() ?? null])\n )\n\n const schemaValidation = R.fromPairs(\n elements.map(it => [it.name, Yup.boolean().required()])\n )\n\n const [editing, setEditing] = useState(forcedEditing)\n\n const classes = useStyles()\n\n const innerSave = async values => {\n const toBoolean = (num, _) => R.equals(num, 'true')\n save(R.mapObjIndexed(toBoolean, R.filter(R.complement(R.isNil))(values)))\n setEditing(false)\n }\n\n const radioButtonOptions = [\n { display: 'Yes', code: 'true' },\n { display: 'No', code: 'false' }\n ]\n return (\n \n
\n {({ resetForm }) => {\n return (\n \n )\n }}\n \n
\n )\n }\n)\n\nexport default BooleanPropertiesTable\n","import { offColor } from 'src/styling/variables'\n\nconst global = {\n content: {\n display: 'flex'\n },\n header: {\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n flex: 'wrap'\n },\n section: {\n marginBottom: 52\n },\n row: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n marginBottom: 28,\n width: 600,\n '&:last-child': {\n marginBottom: 0\n }\n },\n switchRow: {\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n flex: 'wrap',\n justifyContent: 'space-between',\n width: 396\n },\n switch: {\n display: 'flex',\n alignItems: 'center'\n },\n submit: {\n justifyContent: 'flex-start',\n alignItems: 'center',\n padding: [[0, 4, 4, 4]],\n '& > button': {\n marginRight: 40\n }\n },\n transparentButton: {\n '& > *': {\n margin: 'auto 12px'\n },\n '& button': {\n border: 'none',\n backgroundColor: 'transparent',\n cursor: 'pointer'\n }\n },\n infoMessage: {\n display: 'flex',\n marginBottom: 52,\n '& > p': {\n width: 330,\n color: offColor,\n marginTop: 4,\n marginLeft: 16\n }\n },\n formErrorMsg: {\n margin: [[0, 0, 20, 0]]\n }\n}\n\nconst fieldStyles = {\n field: {\n position: 'relative',\n width: 280,\n padding: [[0, 4, 4, 0]]\n },\n notEditing: {\n display: 'flex',\n flexDirection: 'column'\n },\n notEditingSingleLine: {\n '& > p:first-child': {\n height: 16,\n lineHeight: '16px',\n transform: 'scale(0.75)',\n transformOrigin: 'left',\n paddingLeft: 0,\n margin: [[1, 0, 6, 0]]\n },\n '& > p:last-child': {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n height: 25,\n margin: 0\n }\n },\n notEditingMultiline: {\n '& > p:first-child': {\n height: 16,\n lineHeight: '16px',\n transform: 'scale(0.75)',\n transformOrigin: 'left',\n paddingLeft: 0,\n margin: [[1, 0, 5, 0]]\n },\n '& > p:last-child': {\n width: 502,\n height: 121,\n overflowY: 'auto',\n lineHeight: '19px',\n wordWrap: 'anywhere',\n margin: 0\n }\n }\n}\n\nexport { global, fieldStyles }\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport React, { memo } from 'react'\n\nimport { HoverableTooltip } from 'src/components/Tooltip'\nimport { BooleanPropertiesTable } from 'src/components/booleanPropertiesTable'\nimport { Switch } from 'src/components/inputs'\nimport { H4, P, Label2 } from 'src/components/typography'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nimport { global } from './OperatorInfo.styles'\n\nconst useStyles = makeStyles(global)\n\nconst GET_CONFIG = gql`\n query getData {\n config\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst Row = memo(({ title, disabled = false, checked, save, label }) => {\n const classes = useStyles()\n\n return (\n \n
{title}
\n
\n save && save(event.target.checked)}\n />\n {label && {label} }\n
\n
\n )\n})\n\nconst CoinATMRadar = memo(({ wizard }) => {\n const classes = useStyles()\n\n const { data } = useQuery(GET_CONFIG)\n\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n refetchQueries: ['getData']\n })\n\n const save = it =>\n saveConfig({\n variables: { config: toNamespace(namespaces.COIN_ATM_RADAR, it) }\n })\n\n const coinAtmRadarConfig =\n data?.config && fromNamespace(namespaces.COIN_ATM_RADAR, data.config)\n if (!coinAtmRadarConfig) return null\n\n return (\n \n
\n
\n
Coin ATM Radar share settings \n
\n \n For details on configuring this panel, please read the relevant\n knowledgebase article{' '}\n \n here\n \n .\n
\n \n
\n
save({ active: value })}\n label={coinAtmRadarConfig.active ? 'Yes' : 'No'}\n />\n \n
\n
\n )\n})\n\nexport default CoinATMRadar\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { Form, Formik, Field as FormikField } from 'formik'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\nimport * as Yup from 'yup'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport PromptWhenDirty from 'src/components/PromptWhenDirty'\nimport { Link, IconButton } from 'src/components/buttons'\nimport Switch from 'src/components/inputs/base/Switch'\nimport { TextInput } from 'src/components/inputs/formik'\nimport { P, H4, Info3, Label1, Label2, Label3 } from 'src/components/typography'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/action/edit/enabled.svg'\nimport { ReactComponent as WarningIcon } from 'src/styling/icons/warning-icon/comet.svg'\nimport { fontSize5 } from 'src/styling/variables'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nimport { global } from './OperatorInfo.styles'\n\nconst FIELD_WIDTH = 280\n\nconst fieldStyles = {\n field: {\n position: 'relative',\n width: 280,\n height: 48,\n padding: [[0, 4, 4, 0]]\n },\n notEditing: {\n display: 'flex',\n flexDirection: 'column',\n '& > p:first-child': {\n height: 16,\n lineHeight: '16px',\n fontSize: fontSize5,\n transformOrigin: 'left',\n paddingLeft: 0,\n margin: [[3, 0, 3, 0]]\n },\n '& > p:last-child': {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n margin: 0\n }\n }\n}\n\nconst fieldUseStyles = makeStyles(fieldStyles)\n\nconst Field = ({ editing, field, displayValue, ...props }) => {\n const classes = fieldUseStyles()\n\n const classNames = {\n [classes.field]: true,\n [classes.notEditing]: !editing\n }\n\n return (\n \n {!editing && (\n <>\n {field.label} \n {displayValue(field.value)} \n >\n )}\n {editing && (\n \n )}\n
\n )\n}\n\nconst GET_CONFIG = gql`\n query getData {\n config\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst contactUseStyles = makeStyles(global)\n\nconst ContactInfo = ({ wizard }) => {\n const classes = contactUseStyles()\n\n const [editing, setEditing] = useState(wizard || false)\n const [error, setError] = useState(null)\n\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n onCompleted: () => setEditing(false),\n refetchQueries: () => ['getData'],\n onError: e => setError(e)\n })\n\n const { data } = useQuery(GET_CONFIG)\n\n const save = it => {\n return saveConfig({\n variables: { config: toNamespace(namespaces.OPERATOR_INFO, it) }\n })\n }\n\n const info =\n data?.config && fromNamespace(namespaces.OPERATOR_INFO, data.config)\n\n if (!info) return null\n\n const validationSchema = Yup.object().shape({\n active: Yup.boolean(),\n name: Yup.string(),\n phone: Yup.string(),\n email: Yup.string()\n .email('Please enter a valid email address')\n .required('An email is required'),\n website: Yup.string(),\n companyNumber: Yup.string()\n })\n\n const fields = [\n {\n name: 'name',\n label: 'Full name',\n value: info.name ?? '',\n component: TextInput\n },\n {\n name: 'phone',\n label: 'Phone number',\n value: info.phone,\n component: TextInput\n },\n {\n name: 'email',\n label: 'Email',\n value: info.email ?? '',\n component: TextInput\n },\n {\n name: 'website',\n label: 'Website',\n value: info.website ?? '',\n component: TextInput\n },\n {\n name: 'companyNumber',\n label: 'Company number',\n value: info.companyNumber ?? '',\n component: TextInput\n }\n ]\n\n const findField = name => R.find(R.propEq('name', name))(fields)\n const findValue = name => findField(name).value\n\n const displayTextValue = value => value\n\n const form = {\n initialValues: {\n active: info.active,\n name: findValue('name'),\n phone: findValue('phone'),\n email: findValue('email'),\n website: findValue('website'),\n companyNumber: findValue('companyNumber')\n }\n }\n\n const getErrorMsg = formikErrors =>\n !R.isNil(formikErrors.email) ? formikErrors.email : null\n\n return (\n <>\n \n
Contact information \n \n \n
Info card enabled?
\n
\n \n save({\n active: event.target.checked\n })\n }\n />\n {info.active ? 'Yes' : 'No'} \n
\n
\n \n
\n
Info card \n {!editing && (\n setEditing(true)}>\n \n \n )}\n \n
save(validationSchema.cast(values))}\n onReset={() => {\n setEditing(false)\n setError(null)\n }}>\n {({ errors }) => (\n \n )}\n \n
\n {!wizard && (\n \n \n \n Sharing your information with your customers through your machines\n allows them to contact you in case there's a problem with a machine\n in your network or a transaction.\n \n
\n )}\n >\n )\n}\n\nexport default ContactInfo\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { memo } from 'react'\n\nimport { BooleanPropertiesTable } from 'src/components/booleanPropertiesTable'\nimport { Switch } from 'src/components/inputs'\nimport { H4, P, Label2 } from 'src/components/typography'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nimport { global } from './OperatorInfo.styles'\n\nconst useStyles = makeStyles(global)\n\nconst GET_CONFIG = gql`\n query getData {\n config\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst ReceiptPrinting = memo(({ wizard }) => {\n const classes = useStyles()\n\n const { data } = useQuery(GET_CONFIG)\n\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n refetchQueries: () => ['getData']\n })\n\n const save = it =>\n saveConfig({\n variables: { config: toNamespace(namespaces.RECEIPT, it) }\n })\n\n const receiptPrintingConfig =\n data?.config && fromNamespace(namespaces.RECEIPT, data.config)\n if (!receiptPrintingConfig) return null\n\n return (\n <>\n \n
Receipt options \n \n \n
Enable receipt printing
\n
\n \n saveConfig({\n variables: {\n config: toNamespace(\n namespaces.RECEIPT,\n R.merge(receiptPrintingConfig, {\n active: event.target.checked\n })\n )\n }\n })\n }\n />\n {receiptPrintingConfig.active ? 'Yes' : 'No'} \n
\n
\n \n
Offer SMS receipt
\n
\n \n saveConfig({\n variables: {\n config: toNamespace(\n namespaces.RECEIPT,\n R.merge(receiptPrintingConfig, {\n sms: event.target.checked\n })\n )\n }\n })\n }\n />\n {receiptPrintingConfig.sms ? 'Yes' : 'No'} \n
\n
\n \n >\n )\n})\n\nexport default ReceiptPrinting\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.8413132,12.8764646 C17.8413132,12.8764646 16.6555879,12.5091919 15.661533,12.2855556 C15.661533,12.2855556 15.3477198,10.3246465 14.8939121,8.23646465 C14.8939121,8.23646465 15.1560495,8.21373737 15.3383242,8.8710101 L16.0223242,12.0219192 C16.0223242,12.0219192 17.2343571,12.2991919 18.1795549,12.6537374 L17.8413132,12.8764646 Z M15.2603407,6.10282828 L15.5328132,5.80555556 C16.0627253,5.87828283 16.3483516,6.02828283 16.3483516,6.02828283 L16.291978,6.11191919 L16.3972088,6.9310101 C16.2440604,6.93646465 16.0091703,7.05919192 16.0091703,7.05919192 L15.8315934,6.95010101 L15.8315934,6.38282828 C15.3026209,6.29919192 15.2556429,6.21828283 15.2556429,6.21828283 L15.2603407,6.10282828 Z M12.4557527,18.2873737 C11.2831813,18.4964646 9.84565385,18.2237374 9.84565385,18.2237374 L9.89732967,17.9991919 C9.89732967,17.9991919 11.6496099,18.1955556 12.6248736,17.8973737 C12.5553462,18.0628283 12.5356154,18.1137374 12.4557527,18.2873737 L12.4557527,18.2873737 Z M9.18984066,14.5464646 C8.379,15.1364646 7.56064286,15.6791919 7.00442308,16.1091919 C6.9705989,16.6955556 6.91516484,17.6464646 6.91516484,17.6464646 L5.46448352,18.5182828 L5.22207692,18.3737374 C5.27845055,17.9219192 5.34891758,17.5882828 5.34891758,17.5882828 L5.55186264,17.4410101 C5.50676374,17.7282828 5.48515385,18.1346465 5.48515385,18.1346465 L6.5928956,17.440101 C6.63705495,16.7019192 6.72443407,15.960101 6.72443407,15.960101 C6.9705989,15.7373737 8.73697253,14.5237374 10.0100803,13.6864646 C10.0100803,13.6864646 10.018533,13.9437374 9.18984066,14.5464646 L9.18984066,14.5464646 Z M14.977533,0.195555556 C15.2612802,0.167373737 15.5065055,0.184646465 15.7103901,0.228282828 L15.7103901,0.228282828 L15.8813901,0.697373737 L16.1003077,0.361919192 C16.2694286,0.447373737 16.3746593,0.547373737 16.4056648,0.624646465 C16.4056648,0.624646465 16.3615055,0.909191919 16.4319725,1.36464646 C16.5005604,1.80373737 16.6988077,2.78191919 16.6988077,2.78191919 C16.9740989,3.00646465 17.2850934,3.51282828 17.2850934,3.51282828 C17.4758242,4.41737374 17.4645495,5.04919192 17.4636099,5.1210101 C16.6734396,4.68646465 15.6173736,4.58555556 15.6173736,4.58555556 L15.6173736,4.58555556 L15.2481264,4.90828283 C15.9753462,5.00828283 16.8792033,5.26555556 17.1122143,5.44555556 C17.2484505,5.74737374 17.3386484,6.22828283 17.3386484,6.22828283 L17.3386484,6.22828283 L17.0445659,6.58919192 L17.3198571,6.8810101 C17.3386484,7.22464646 17.2183846,7.56919192 17.2183846,7.56919192 C17.7905769,7.93010101 17.9512418,8.79373737 18.3101538,10.250101 C18.6700055,11.7064646 18.9903956,12.9055556 18.9903956,12.9055556 L18.9903956,12.9055556 L18.4567253,13.2019192 C19.1623352,15.7282828 18.444511,17.7391919 17.5378352,19.0664646 C16.6320989,20.3946465 16.0862143,21.7137374 16.1031264,22.8910101 L16.1031264,22.8910101 L16.5475385,23.2346465 L16.7749121,23.9491919 L14.3048077,23.9491919 L14.293533,23.2728283 C14.2925934,21.5619192 14.9230385,20.1328283 14.9230385,20.1328283 C15.2857088,20.0473737 15.6596538,19.7628283 15.6596538,19.7628283 C15.0733681,19.8828283 14.3414505,19.7964646 14.3414505,19.7964646 C14.8676044,18.8537374 15.0292088,18.1773737 15.0292088,18.1773737 L15.0292088,18.1773737 L14.7811648,18.1228283 C14.6956648,18.310101 14.6073462,18.4937374 14.5133901,18.6710101 C13.8754286,19.8864646 13.1735769,20.6628283 12.7554725,22.4055556 L12.7554725,22.4055556 L13.1933077,22.7455556 L13.6987912,23.9491919 L10.8509835,23.9491919 C10.8340714,21.8246465 11.495522,20.2273737 11.7341703,19.7628283 C10.2233571,19.9264646 8.42128022,19.1782828 6.99314835,19.4664646 C6.60041209,21.9473737 4.59257143,22.4355556 3.65019231,22.300101 L3.65019231,22.300101 L2.97652747,23.4146465 L3.58724176,23.9491919 L1.33135714,23.9491919 C1.32008242,23.8546465 1.2918956,23.7537374 1.22988462,23.6591919 C1.22988462,23.6591919 1.97401648,22.5882828 2.48231868,21.150101 C2.89008791,21.3255556 3.75166484,20.9928283 3.78736813,20.1055556 C3.82401099,19.2191919 3.67086264,17.8419192 4.46854945,16.7891919 C5.2652967,15.7355556 6.12687363,15.1655556 7.25152747,14.3328283 C7.98250549,13.7910101 9.22084615,12.8755556 9.99974176,12.3010101 L9.99974176,12.3010101 L9.61546154,12.3864646 L6.81087363,14.6491919 L5.82997253,14.6491919 L8.66368681,12.1164646 L8.29725824,12.1091919 L5.33576374,14.6491919 L4.34170879,14.6491919 L7.27313736,11.720101 L6.9208022,11.7173737 L3.88038462,14.6491919 L2.86565934,14.6491919 L5.8093022,11.3037374 L5.46918132,11.3055556 L2.43534066,14.6491919 L1.36706044,14.6491919 L4.22614286,10.8528283 L3.89635714,10.8573737 L0.963989011,14.6491919 L0,14.6491919 C0,14.6491919 4.11809341,8.22464646 4.92893407,7.00737374 C5.73883516,5.79010101 6.6192033,4.62282828 8.06894505,4.38464646 C9.53465934,4.14282828 10.5343516,4.46646465 11.2502967,5.63373737 C11.636456,6.2610101 12.1034176,6.97828283 12.4698462,7.55919192 C12.0968407,8.1510101 11.6298791,8.6110101 11.5857198,9.32282828 C11.534044,10.1419192 12.0921429,10.6373737 12.6558791,10.6773737 C12.2321374,10.5282828 11.8976538,10.0337374 12.0489231,9.37646465 C12.2058297,8.69737374 12.7554725,8.35191919 13.1726374,7.80282828 C13.5315495,7.32828283 13.5371868,6.63282828 13.5108791,6.4010101 C13.4836319,6.16919192 13.2167967,5.98828283 13.2167967,5.98828283 C13.2167967,5.98828283 13.2252527,5.52373737 13.2167967,5.01646465 C13.2083407,4.51010101 13.4300769,4.21828283 13.4300769,4.21828283 C13.4300769,4.21828283 13.4216209,3.4610101 13.3943736,2.57646465 C13.3671264,1.72555556 13.2863242,1.46828283 13.205522,1.35464646 C13.205522,1.35464646 13.2694121,1.10919192 13.5099396,0.844646465 L13.5099396,0.844646465 L13.7542253,1.06282828 L13.8284505,0.571919192 C13.9825385,0.469191919 14.1723297,0.375555556 14.4072198,0.307373737 C14.4325879,0.30010101 14.4570165,0.294646465 14.4823846,0.288282828 L14.4823846,0.288282828 L14.7896209,0.644646465 Z M7.71628243,19.8937938 C8.32897736,19.8402566 9.02386307,19.9393405 9.75797621,20.0432188 L9.75797621,20.0432188 L9.86538462,20.058401 C9.7449004,20.8103202 9.02106112,21.7691969 7.79193531,22.0896215 L7.79193531,22.0896215 L9.01358923,23.5151515 L7.36136769,23.5151515 C7.15589073,23.2226941 6.50396838,22.32135 6.16586538,21.9681638 C6.72065317,21.6525335 7.42954868,21.0388524 7.71628243,19.8937938 Z\",\n id: \"path-1\"\n}));\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"nav-/-primary-/-1440\",\n transform: \"translate(-128.000000, -14.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/lamassu-logo\",\n transform: \"translate(128.000000, 14.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"color/amaz/default\"\n}, /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask-2\",\n fill: \"white\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#path-1\"\n})), /*#__PURE__*/React.createElement(\"use\", {\n id: \"Mask\",\n fill: \"#FFFFFF\",\n xlinkHref: \"#path-1\"\n})))));\n\nfunction SvgLogoWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"19px\",\n height: \"24px\",\n viewBox: \"0 0 19 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogoWhite);\nexport default __webpack_public_path__ + \"static/media/logo-white.d997c674.svg\";\nexport { ForwardRef as ReactComponent };","import {\n spacer,\n fontMonospaced,\n fontSize5,\n fontColor\n} from 'src/styling/variables'\n\nconst styles = {\n header: {\n display: 'flex',\n position: 'relative',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: 800\n },\n form: {\n '& > *': {\n marginTop: 20\n },\n display: 'flex',\n flexDirection: 'column',\n height: '100%'\n },\n footer: {\n display: 'flex',\n flexDirection: 'row',\n margin: [['auto', 0, spacer * 3, 0]]\n },\n submit: {\n margin: [['auto', 0, 0, 'auto']]\n },\n smsPreview: {\n position: 'absolute',\n left: ({ x }) => x,\n bottom: ({ y }) => y,\n width: 350,\n overflow: 'visible'\n },\n smsPreviewContainer: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'flex-end',\n '& > *': {\n marginRight: 10\n }\n },\n smsPreviewIcon: {\n display: 'flex',\n width: 36,\n height: 36,\n borderRadius: 18,\n backgroundColor: '#16D6D3',\n alignItems: 'center',\n justifyContent: 'center'\n },\n smsPreviewContent: {\n width: 225,\n padding: 15,\n borderRadius: '15px 15px 15px 0px'\n },\n chipButtons: {\n width: 480,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'space-between',\n '& > div': {\n marginTop: 15\n },\n '& > div:first-child': {\n marginTop: 0\n },\n '& > div > div': {\n margin: [[0, 5, 0, 5]]\n },\n '& > div > div > span': {\n lineHeight: '120%',\n color: fontColor,\n fontSize: fontSize5,\n fontFamily: fontMonospaced,\n fontWeight: 500\n },\n marginLeft: 'auto',\n marginRight: 'auto'\n },\n resetToDefault: {\n width: 145\n },\n messageWithTooltip: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center'\n }\n}\n\nexport default styles\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/retry/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-7\",\n stroke: \"#FFFFFF\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.1942452e-14,9.603 L0.002,3.598 C0.003,1.611 1.614,-5.86197757e-14 3.602,-5.86197757e-14 L8.4,-5.86197757e-14 C10.39,-5.86197757e-14 12.001,1.613 12,3.601 L11.998,7.205 C11.998,9.192 10.386,10.803 8.398,10.803 L3,10.803\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"4.2002 9.601 3.0002 10.8 4.2002 12\"\n})));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.4532ac56.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/retry/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-7\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.1942452e-14,9.603 L0.002,3.598 C0.003,1.611 1.614,-5.86197757e-14 3.602,-5.86197757e-14 L8.4,-5.86197757e-14 C10.39,-5.86197757e-14 12.001,1.613 12,3.601 L11.998,7.205 C11.998,9.192 10.386,10.803 8.398,10.803 L3,10.803\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"4.2002 9.601 3.0002 10.8 4.2002 12\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.e42149ea.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles, Chip } from '@material-ui/core'\nimport { Form, Formik, Field } from 'formik'\nimport * as R from 'ramda'\nimport React from 'react'\nimport * as Yup from 'yup'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Modal from 'src/components/Modal'\nimport { ActionButton, Button } from 'src/components/buttons'\nimport { TextInput } from 'src/components/inputs/formik'\nimport { Info2 } from 'src/components/typography'\nimport { ReactComponent as DefaultIconReverse } from 'src/styling/icons/button/retry/white.svg'\nimport { ReactComponent as DefaultIcon } from 'src/styling/icons/button/retry/zodiac.svg'\nimport { zircon } from 'src/styling/variables'\n\nimport styles from './SMSNotices.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst getErrorMsg = (formikErrors, formikTouched, mutationError) => {\n if (!formikErrors || !formikTouched) return null\n if (mutationError) return 'Internal server error'\n if (formikErrors.event && formikTouched.event) return formikErrors.event\n if (formikErrors.message && formikTouched.message) return formikErrors.message\n return null\n}\n\nconst PREFILL = {\n smsCode: {\n validator: Yup.string()\n .required('The message content is required!')\n .trim()\n .test({\n name: 'has-code',\n message: 'The confirmation code is missing from the message!',\n exclusive: false,\n test: value => value?.match(/#code/g || [])?.length > 0\n })\n .test({\n name: 'has-single-code',\n message: 'There should be a single confirmation code!',\n exclusive: false,\n test: value => value?.match(/#code/g || [])?.length === 1\n })\n },\n cashOutDispenseReady: {\n validator: Yup.string()\n .required('The message content is required!')\n .trim()\n },\n smsReceipt: {\n validator: Yup.string().trim()\n }\n}\n\nconst CHIPS = {\n smsCode: [\n { code: '#code', display: 'Confirmation code', obligatory: true },\n { code: '#timestamp', display: 'Timestamp', obligatory: false }\n ],\n cashOutDispenseReady: [\n { code: '#timestamp', display: 'Timestamp', obligatory: false }\n ],\n smsReceipt: [{ code: '#timestamp', display: 'Timestamp', obligatory: false }]\n}\n\nconst DEFAULT_MESSAGES = {\n smsCode: 'Your cryptomat code: #code',\n cashOutDispenseReady:\n 'Your cash is waiting! Go to the Cryptomat and press Redeem within 24 hours. [#timestamp]',\n smsReceipt: ''\n}\n\nconst SMSNoticesModal = ({\n showModal,\n onClose,\n sms,\n creationError,\n submit\n}) => {\n const classes = useStyles()\n\n const initialValues = {\n event: !R.isNil(sms) ? sms.event : '',\n message: !R.isNil(sms) ? sms.message : ''\n }\n\n const validationSchema = Yup.object().shape({\n event: Yup.string().required('An event is required!'),\n message:\n PREFILL[sms?.event]?.validator ??\n Yup.string()\n .required('The message content is required!')\n .trim()\n })\n\n const handleSubmit = values => {\n sms\n ? submit({\n variables: {\n id: sms.id,\n event: values.event,\n message: values.message\n }\n })\n : submit({\n variables: {\n event: values.event,\n message: values.message\n }\n })\n onClose()\n }\n\n return (\n <>\n {showModal && (\n \n \n handleSubmit(values, errors, touched)\n }>\n {({ values, errors, touched, setFieldValue }) => (\n \n )}\n \n \n )}\n >\n )\n}\n\nexport default SMSNoticesModal\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles, Paper } from '@material-ui/core'\nimport { format } from 'date-fns/fp'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { HoverableTooltip } from 'src/components/Tooltip'\nimport { IconButton } from 'src/components/buttons'\nimport { Switch } from 'src/components/inputs'\nimport DataTable from 'src/components/tables/DataTable'\nimport { H4, P, Label3 } from 'src/components/typography'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/action/edit/enabled.svg'\nimport { ReactComponent as ExpandIconClosed } from 'src/styling/icons/action/expand/closed.svg'\nimport { ReactComponent as ExpandIconOpen } from 'src/styling/icons/action/expand/open.svg'\nimport { ReactComponent as WhiteLogo } from 'src/styling/icons/menu/logo-white.svg'\n\nimport styles from './SMSNotices.styles'\nimport CustomSMSModal from './SMSNoticesModal'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_SMS_NOTICES = gql`\n query SMSNotices {\n SMSNotices {\n id\n event\n message\n messageName\n enabled\n allowToggle\n }\n }\n`\n\nconst EDIT_SMS_NOTICE = gql`\n mutation editSMSNotice($id: ID!, $event: SMSNoticeEvent!, $message: String!) {\n editSMSNotice(id: $id, event: $event, message: $message) {\n id\n }\n }\n`\n\nconst ENABLE_SMS_NOTICE = gql`\n mutation enableSMSNotice($id: ID!) {\n enableSMSNotice(id: $id) {\n id\n }\n }\n`\n\nconst DISABLE_SMS_NOTICE = gql`\n mutation disableSMSNotice($id: ID!) {\n disableSMSNotice(id: $id) {\n id\n }\n }\n`\n\nconst multiReplace = (str, obj) => {\n var re = new RegExp(Object.keys(obj).join('|'), 'gi')\n\n return str.replace(re, function(matched) {\n return obj[matched.toLowerCase()]\n })\n}\n\nconst formatContent = content => {\n const fragments = R.split(/\\n/)(content)\n return R.map((it, idx) => {\n if (idx === fragments.length) return <>{it}>\n return (\n <>\n {it}\n \n >\n )\n }, fragments)\n}\n\nconst TOOLTIPS = {\n smsCode: ``,\n cashOutDispenseReady: ``,\n smsReceipt: formatContent(`The contents of this notice will be appended to the end of the SMS receipt sent, and not replace it.\\n\n To edit the contents of the SMS receipt, please go to the 'Receipt' tab`)\n}\n\nconst SMSPreview = ({ sms, coords }) => {\n const classes = useStyles(coords)\n\n const matches = {\n '#code': 123,\n '#timestamp': format('HH:mm', new Date())\n }\n\n return (\n \n
\n
\n \n
\n
\n \n {R.isEmpty(sms?.message) ? (\n No content available \n ) : (\n formatContent(multiReplace(sms?.message, matches))\n )}\n
\n \n
{format('HH:mm', new Date())} \n
\n
\n )\n}\n\nconst SMSNotices = () => {\n const classes = useStyles()\n\n const [showModal, setShowModal] = useState(false)\n const [selectedSMS, setSelectedSMS] = useState(null)\n const [previewOpen, setPreviewOpen] = useState(false)\n const [previewCoords, setPreviewCoords] = useState({ x: 0, y: 0 })\n const [errorMsg, setErrorMsg] = useState('')\n\n const { data: messagesData, loading: messagesLoading } = useQuery(\n GET_SMS_NOTICES\n )\n\n const [editMessage] = useMutation(EDIT_SMS_NOTICE, {\n onError: ({ msg }) => setErrorMsg(msg),\n refetchQueries: () => ['SMSNotices']\n })\n\n const [enableMessage] = useMutation(ENABLE_SMS_NOTICE, {\n onError: ({ msg }) => setErrorMsg(msg),\n refetchQueries: () => ['SMSNotices']\n })\n\n const [disableMessage] = useMutation(DISABLE_SMS_NOTICE, {\n onError: ({ msg }) => setErrorMsg(msg),\n refetchQueries: () => ['SMSNotices']\n })\n\n const loading = messagesLoading\n\n const handleClose = () => {\n setShowModal(false)\n setSelectedSMS(null)\n }\n\n const elements = [\n {\n header: 'Message name',\n width: 500,\n size: 'sm',\n textAlign: 'left',\n view: it =>\n !R.isEmpty(TOOLTIPS[it.event]) ? (\n \n {R.prop('messageName', it)}\n
\n {TOOLTIPS[it.event]}
\n \n
\n ) : (\n R.prop('messageName', it)\n )\n },\n {\n header: 'Edit',\n width: 100,\n size: 'sm',\n textAlign: 'center',\n view: it => (\n {\n setPreviewOpen(false)\n setSelectedSMS(it)\n setShowModal(true)\n }}>\n \n \n )\n },\n {\n header: 'Enable',\n width: 100,\n size: 'sm',\n textAlign: 'center',\n view: it => (\n {\n it.enabled\n ? disableMessage({ variables: { id: it.id } })\n : enableMessage({ variables: { id: it.id } })\n }}\n checked={it.enabled}\n />\n )\n },\n {\n header: '',\n width: 100,\n size: 'sm',\n textAlign: 'center',\n view: it => (\n {\n setSelectedSMS(it)\n setPreviewCoords({\n x: e.currentTarget.getBoundingClientRect().right + 50,\n y:\n window.innerHeight -\n 5 -\n e.currentTarget.getBoundingClientRect().bottom\n })\n R.equals(selectedSMS, it)\n ? setPreviewOpen(!previewOpen)\n : setPreviewOpen(true)\n }}>\n {R.equals(selectedSMS, it) && previewOpen ? (\n \n ) : (\n \n )}\n \n )\n }\n ]\n\n return (\n <>\n \n
SMS notices \n \n {showModal && (\n \n )}\n {previewOpen && }\n \n >\n )\n}\n\nexport default SMSNotices\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { Form, Formik, Field as FormikField } from 'formik'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\nimport * as Yup from 'yup'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport PromptWhenDirty from 'src/components/PromptWhenDirty'\nimport { Link, IconButton } from 'src/components/buttons'\nimport { Switch } from 'src/components/inputs'\nimport { TextInput } from 'src/components/inputs/formik'\nimport { H4, Info2, Info3, Label2, Label3, P } from 'src/components/typography'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/action/edit/enabled.svg'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nimport { global, fieldStyles } from './OperatorInfo.styles'\n\nconst useFieldStyles = makeStyles(fieldStyles)\n\nconst Field = ({\n editing,\n name,\n width,\n placeholder,\n label,\n value,\n multiline = false,\n rows,\n onFocus,\n ...props\n}) => {\n const classes = useFieldStyles()\n\n const classNames = {\n [classes.field]: true,\n [classes.notEditing]: !editing,\n [classes.notEditingSingleLine]: !editing && !multiline,\n [classes.notEditingMultiline]: !editing && multiline\n }\n\n return (\n \n {!editing && (\n <>\n {label} \n {value} \n >\n )}\n {editing && (\n \n )}\n
\n )\n}\n\nconst GET_CONFIG = gql`\n query getData {\n config\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst useTermsConditionsStyles = makeStyles(global)\n\nconst TermsConditions = () => {\n const [error, setError] = useState(null)\n const [editing, setEditing] = useState(false)\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n onCompleted: () => {\n setError(null)\n setEditing(false)\n },\n refetchQueries: () => ['getData'],\n onError: e => setError(e)\n })\n\n const classes = useTermsConditionsStyles()\n\n const { data } = useQuery(GET_CONFIG)\n\n const termsAndConditions =\n data?.config && fromNamespace(namespaces.TERMS_CONDITIONS, data.config)\n const formData = termsAndConditions ?? {}\n const showOnScreen = termsAndConditions?.active ?? false\n const addDelayOnScreen = termsAndConditions?.delay ?? false\n\n const save = it =>\n saveConfig({\n variables: { config: toNamespace(namespaces.TERMS_CONDITIONS, it) }\n })\n\n const fields = [\n {\n name: 'title',\n label: 'Screen title',\n value: formData.title ?? '',\n width: 282\n },\n {\n name: 'text',\n label: 'Text content',\n value: formData.text ?? '',\n width: 502,\n multiline: true,\n rows: 6\n },\n {\n name: 'acceptButtonText',\n label: 'Accept button text',\n value: formData.acceptButtonText ?? '',\n placeholder: 'I accept',\n width: 282\n },\n {\n name: 'cancelButtonText',\n label: 'Cancel button text',\n value: formData.cancelButtonText ?? '',\n placeholder: 'Cancel',\n width: 282\n }\n ]\n\n const findField = name => R.find(R.propEq('name', name))(fields)\n const findValue = name => findField(name).value\n\n const initialValues = {\n title: findValue('title'),\n text: findValue('text'),\n acceptButtonText: findValue('acceptButtonText'),\n cancelButtonText: findValue('cancelButtonText')\n }\n\n const validationSchema = Yup.object().shape({\n title: Yup.string()\n .required()\n .max(50, 'Too long'),\n text: Yup.string().required(),\n acceptButtonText: Yup.string()\n .required()\n .max(50, 'Too long'),\n cancelButtonText: Yup.string()\n .required()\n .max(50, 'Too long')\n })\n\n return (\n <>\n \n
Terms & Conditions \n \n \n
Show on screen
\n
\n \n save({\n active: event.target.checked\n })\n }\n />\n {showOnScreen ? 'Yes' : 'No'} \n
\n
\n \n
Add 7 seconds delay on screen
\n
\n \n save({\n delay: event.target.checked\n })\n }\n />\n {addDelayOnScreen ? 'Yes' : 'No'} \n
\n
\n \n Info card \n {!editing && (\n setEditing(true)}>\n \n \n )}\n
\n save(values)}\n onReset={() => {\n setEditing(false)\n setError(null)\n }}>\n \n \n >\n )\n}\n\nexport default TermsConditions\n","import { makeStyles } from '@material-ui/core'\nimport Chip from '@material-ui/core/Chip'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport {\n secondaryColorLighter,\n secondaryColorDarker,\n offErrorColor,\n errorColor,\n offColor,\n inputFontWeight,\n smallestFontSize,\n inputFontFamily,\n spacer\n} from 'src/styling/variables'\nimport { onlyFirstToUpper } from 'src/utils/string'\n\nimport typographyStyles from './typography/styles'\nconst { label1 } = typographyStyles\n\nconst colors = {\n running: secondaryColorDarker,\n notRunning: offErrorColor\n}\n\nconst backgroundColors = {\n running: secondaryColorLighter,\n notRunning: errorColor\n}\n\nconst styles = {\n uptimeContainer: {\n display: 'inline-block',\n minWidth: 104,\n margin: [[0, 20]]\n },\n name: {\n extend: label1,\n paddingLeft: 4,\n color: offColor\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst useChipStyles = makeStyles({\n root: {\n borderRadius: spacer / 2,\n marginTop: spacer / 2,\n marginRight: spacer / 4,\n marginBottom: spacer / 2,\n marginLeft: spacer / 4,\n height: spacer * 3,\n backgroundColor: ({ type }) => backgroundColors[type]\n },\n label: {\n fontSize: smallestFontSize,\n fontWeight: inputFontWeight,\n fontFamily: inputFontFamily,\n padding: [[spacer / 2, spacer]],\n color: ({ type }) => colors[type]\n }\n})\n\nconst Uptime = ({ process, ...props }) => {\n const classes = useStyles()\n\n const uptime = time => {\n if (time < 60) return `${time}s`\n if (time < 3600) return `${Math.floor(time / 60)}m`\n if (time < 86400) return `${Math.floor(time / 60 / 60)}h`\n return `${Math.floor(time / 60 / 60 / 24)}d`\n }\n\n return (\n \n
{R.toLower(process.name)}
\n
\n
\n )\n}\n\nexport default Uptime\n","import { useQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState, useRef } from 'react'\n\nimport LogsDowloaderPopover from 'src/components/LogsDownloaderPopper'\nimport Title from 'src/components/Title'\nimport Uptime from 'src/components/Uptime'\nimport { Select } from 'src/components/inputs'\nimport {\n Table,\n TableHead,\n TableRow,\n TableHeader,\n TableBody,\n TableCell\n} from 'src/components/table'\nimport { Info3, H4 } from 'src/components/typography'\nimport typographyStyles from 'src/components/typography/styles'\nimport { offColor } from 'src/styling/variables'\nimport { startCase } from 'src/utils/string'\nimport { formatDate } from 'src/utils/timezones'\n\nimport logsStyles from './Logs.styles'\n\nconst { p } = typographyStyles\nconst { tableWrapper } = logsStyles\n\nconst localStyles = {\n serverTableWrapper: {\n extend: tableWrapper,\n maxWidth: '100%',\n marginLeft: 0\n },\n serverVersion: {\n extend: p,\n color: offColor,\n margin: 'auto 0 auto 0'\n },\n headerLine2: {\n display: 'flex',\n justifyContent: 'space-between',\n marginBottom: 24\n },\n uptimeContainer: {\n margin: 'auto 0 auto 0'\n }\n}\n\nconst styles = R.merge(logsStyles, localStyles)\n\nconst useStyles = makeStyles(styles)\n\nconst SHOW_ALL = { code: 'SHOW_ALL', display: 'Show all' }\n\nconst NUM_LOG_RESULTS = 500\n\nconst GET_CSV = gql`\n query ServerData($limit: Int, $from: Date, $until: Date, $timezone: String) {\n serverLogsCsv(\n limit: $limit\n from: $from\n until: $until\n timezone: $timezone\n )\n }\n`\n\nconst GET_SERVER_DATA = gql`\n query ServerData($limit: Int, $from: Date, $until: Date) {\n serverVersion\n uptime {\n name\n state\n uptime\n }\n serverLogs(limit: $limit, from: $from, until: $until) {\n logLevel\n id\n timestamp\n message\n }\n }\n`\n\nconst GET_DATA = gql`\n query getData {\n config\n }\n`\n\nconst Logs = () => {\n const classes = useStyles()\n\n const tableEl = useRef()\n\n const [saveMessage, setSaveMessage] = useState(null)\n const [logLevel, setLogLevel] = useState(SHOW_ALL)\n\n const { data, loading: dataLoading } = useQuery(GET_SERVER_DATA, {\n onCompleted: () => setSaveMessage(''),\n variables: {\n limit: NUM_LOG_RESULTS\n }\n })\n const { data: configResponse, loading: configLoading } = useQuery(GET_DATA)\n const timezone = R.path(['config', 'locale_timezone'], configResponse)\n\n const defaultLogLevels = [\n { code: 'error', display: 'Error' },\n { code: 'info', display: 'Info' },\n { code: 'debug', display: 'Debug' }\n ]\n const serverVersion = data?.serverVersion\n const processStates = data?.uptime ?? []\n\n const getLogLevels = R.compose(\n R.prepend(SHOW_ALL),\n R.uniq,\n R.concat(defaultLogLevels),\n R.map(it => ({\n code: R.path(['logLevel'])(it),\n display: startCase(R.path(['logLevel'])(it))\n })),\n R.path(['serverLogs'])\n )\n\n const handleLogLevelChange = logLevel => {\n if (tableEl.current) tableEl.current.scrollTo(0, 0)\n\n setLogLevel(logLevel)\n }\n\n const loading = dataLoading || configLoading\n\n return (\n <>\n \n
\n
Server \n {data && (\n
\n R.path(['serverLogsCsv'])(logs)}\n timezone={timezone}\n />\n {saveMessage} \n
\n )}\n
\n
\n {serverVersion && Server version: v{serverVersion} }\n
\n
\n \n {data && (\n
\n )}\n
\n {processStates &&\n processStates.map((process, idx) => (\n \n ))}\n
\n
\n \n
\n
\n \n \n Date \n Level \n \n \n \n \n {data &&\n data.serverLogs\n .filter(\n log =>\n logLevel === SHOW_ALL || log.logLevel === logLevel.code\n )\n .map((log, idx) => (\n \n \n {timezone &&\n formatDate(\n log.timestamp,\n timezone,\n 'yyyy-MM-dd HH:mm'\n )}\n \n {log.logLevel} \n {log.message} \n \n ))}\n \n
\n {loading &&
{'Loading...'} }\n {!loading && !data?.serverLogs?.length && (\n
{'No activity so far'} \n )}\n
\n
\n >\n )\n}\n\nexport default Logs\n","import typographyStyles from 'src/components/typography/styles'\nimport { offColor } from 'src/styling/variables'\n\nconst { label1, p } = typographyStyles\n\nexport default {\n tr: ({ height }) => ({\n margin: 0,\n height\n }),\n table: ({ width }) => ({\n width\n }),\n head: {\n display: 'flex',\n flex: 1,\n justifyContent: 'space-between',\n alignItems: 'center',\n paddingRight: 12\n },\n button: {\n marginBottom: 1\n },\n itemWrapper: {\n display: 'flex',\n flexDirection: 'column',\n marginTop: 16,\n minHeight: 35\n },\n label: {\n extend: label1,\n color: offColor,\n marginBottom: 4\n },\n item: {\n extend: p,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap'\n }\n}\n","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport { IconButton } from 'src/components/buttons'\nimport {\n Table,\n THead,\n TBody,\n Td,\n Th,\n Tr\n} from 'src/components/fake-table/Table'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/action/edit/white.svg'\n\nimport styles from './SingleRowTable.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst SingleRowTable = ({\n width = 378,\n height = 128,\n title,\n items,\n onEdit,\n className\n}) => {\n const classes = useStyles({ width, height })\n\n return (\n <>\n \n \n \n {title}\n \n \n \n \n \n \n \n \n {items && (\n <>\n {items[0] && (\n \n
{items[0].label}
\n
{items[0].value}
\n
\n )}\n {items[1] && (\n \n
{items[1].label}
\n
{items[1].value}
\n
\n )}\n >\n )}\n \n \n \n
\n >\n )\n}\n\nexport default SingleRowTable\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles, Grid } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport Modal from 'src/components/Modal'\nimport { SecretInput } from 'src/components/inputs/formik'\nimport CheckboxInput from 'src/components/inputs/formik/Checkbox'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport SingleRowTable from 'src/components/single-row-table/SingleRowTable'\nimport { formatLong } from 'src/utils/string'\n\nimport FormRenderer from './FormRenderer'\nimport schemas from './schemas'\n\nconst GET_INFO = gql`\n query getData {\n accounts\n config\n }\n`\n\nconst SAVE_ACCOUNT = gql`\n mutation Save($accounts: JSONObject) {\n saveAccounts(accounts: $accounts)\n }\n`\n\nconst styles = {\n wrapper: {\n // widths + spacing is a little over 1200 on the design\n // this adjusts the margin after a small reduction on card size\n marginLeft: 1\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst Services = () => {\n const [editingSchema, setEditingSchema] = useState(null)\n\n const { data } = useQuery(GET_INFO)\n const [saveAccount] = useMutation(SAVE_ACCOUNT, {\n onCompleted: () => setEditingSchema(null),\n refetchQueries: ['getData']\n })\n\n const classes = useStyles()\n\n const accounts = data?.accounts ?? {}\n\n const getItems = (code, elements) => {\n const faceElements = R.filter(R.prop('face'))(elements)\n const values = accounts[code] || {}\n return R.map(({ display, code, long }) => ({\n label: display,\n value: long ? formatLong(values[code]) : values[code]\n }))(faceElements)\n }\n\n const updateSettings = element => {\n const settings = element.settings\n const field = R.lensPath(['config', settings.field])\n const isEnabled = R.isNil(settings.requirement)\n ? true\n : R.equals(R.view(field, data), settings.requirement)\n settings.enabled = isEnabled\n return element\n }\n\n const getElements = ({ code, elements }) => {\n return R.map(elem => {\n if (elem.component === CheckboxInput) return updateSettings(elem)\n if (elem.component !== SecretInput) return elem\n return {\n ...elem,\n inputProps: {\n isPasswordFilled:\n !R.isNil(accounts[code]) &&\n !R.isNil(R.path([elem.code], accounts[code]))\n }\n }\n }, elements)\n }\n\n const getAccounts = ({ elements, code }) => {\n const account = accounts[code]\n const filterBySecretComponent = R.filter(R.propEq('component', SecretInput))\n const mapToCode = R.map(R.prop(['code']))\n const passwordFields = R.compose(\n mapToCode,\n filterBySecretComponent\n )(elements)\n return R.mapObjIndexed(\n (value, key) => (R.includes(key, passwordFields) ? '' : value),\n account\n )\n }\n\n const getValidationSchema = ({ code, getValidationSchema }) =>\n getValidationSchema(accounts[code])\n\n return (\n \n \n \n {R.values(schemas).map(schema => (\n \n setEditingSchema(schema)}\n items={getItems(schema.code, schema.elements)}\n />\n \n ))}\n \n {editingSchema && (\n setEditingSchema(null)}\n open={true}>\n \n saveAccount({\n variables: { accounts: { [editingSchema.code]: it } }\n })\n }\n elements={getElements(editingSchema)}\n validationSchema={getValidationSchema(editingSchema)}\n value={getAccounts(editingSchema)}\n />\n \n )}\n
\n )\n}\n\nexport default Services\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React from 'react'\nimport parser from 'ua-parser-js'\n\nimport { IconButton } from 'src/components/buttons'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport DataTable from 'src/components/tables/DataTable'\nimport { ReactComponent as DeleteIcon } from 'src/styling/icons/action/delete/enabled.svg'\nimport { formatDate } from 'src/utils/timezones'\n\nconst GET_SESSIONS = gql`\n query sessions {\n sessions {\n sid\n sess\n expire\n }\n }\n`\n\nconst DELETE_SESSION = gql`\n mutation deleteSession($sid: String!) {\n deleteSession(sid: $sid) {\n sid\n }\n }\n`\n\nconst GET_DATA = gql`\n query getData {\n config\n }\n`\n\nconst isLocalhost = ip => {\n return ip === 'localhost' || ip === '::1' || ip === '127.0.0.1'\n}\n\nconst SessionManagement = () => {\n const { data: tknResponse, loading: sessionsLoading } = useQuery(GET_SESSIONS)\n\n const [deleteSession] = useMutation(DELETE_SESSION, {\n refetchQueries: () => ['sessions']\n })\n\n const { data: configResponse, loading: configLoading } = useQuery(GET_DATA)\n const timezone = R.path(['config', 'locale_timezone'], configResponse)\n\n const loading = sessionsLoading || configLoading\n\n const elements = [\n {\n header: 'Login',\n width: 207,\n textAlign: 'left',\n size: 'sm',\n view: s => s.sess.user.username\n },\n {\n header: 'Last known use',\n width: 305,\n textAlign: 'left',\n size: 'sm',\n view: s => {\n if (R.isNil(s.sess.ua)) return 'No Record'\n const ua = parser(s.sess.ua)\n return `${ua.browser.name} ${ua.browser.version} on ${ua.os.name} ${ua.os.version}`\n }\n },\n {\n header: 'Last known location',\n width: 250,\n textAlign: 'left',\n size: 'sm',\n view: s => {\n return isLocalhost(s.sess.ipAddress) ? 'This device' : s.sess.ipAddress\n }\n },\n {\n header: 'Expiration date',\n width: 290,\n textAlign: 'right',\n size: 'sm',\n view: s =>\n `${formatDate(s.expire, timezone, 'yyyy-MM-dd')} ${formatDate(\n s.expire,\n timezone,\n 'HH:mm:ss'\n )}`\n },\n {\n header: '',\n width: 80,\n textAlign: 'center',\n size: 'sm',\n view: s => (\n {\n deleteSession({ variables: { sid: s.sid } })\n }}>\n \n \n )\n }\n ]\n\n return (\n <>\n \n \n >\n )\n}\n\nexport default SessionManagement\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"path-1-right\",\n cx: 10,\n cy: 10,\n r: 10\n}));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"pop-up/action/download-logs/date-range-copy-2\",\n transform: \"translate(-232.000000, -187.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-contain-b-copy-4\",\n transform: \"translate(242.000000, 197.000000) scale(-1, 1) rotate(-270.000000) translate(-242.000000, -197.000000) translate(232.000000, 187.000000)\"\n}, /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask-2\",\n fill: \"white\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#path-1-right\"\n})), /*#__PURE__*/React.createElement(\"use\", {\n id: \"Mask\",\n fill: \"#FFFFFF\",\n fillRule: \"nonzero\",\n xlinkHref: \"#path-1-right\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/wizzard\",\n mask: \"url(#mask-2)\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(6.666667, 6.000000)\",\n id: \"Group\"\n}, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path-3\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n points: \"0 4.83333333 3.33333333 8.16666667 6.66666667 4.83333333\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 3.33333333,\n y1: 0.25,\n x2: 3.33333333,\n y2: 6.5,\n id: \"Path-4\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n})))))));\n\nfunction SvgRightWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgRightWhite);\nexport default __webpack_public_path__ + \"static/media/right_white.3e1a2119.svg\";\nexport { ForwardRef as ReactComponent };","import { useQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport BigNumber from 'bignumber.js'\nimport gql from 'graphql-tag'\nimport { utils as coinUtils } from 'lamassu-coins'\nimport * as R from 'ramda'\nimport React, { useEffect, useState } from 'react'\nimport { useHistory } from 'react-router-dom'\n\nimport LogsDowloaderPopover from 'src/components/LogsDownloaderPopper'\nimport SearchBox from 'src/components/SearchBox'\nimport SearchFilter from 'src/components/SearchFilter'\nimport Title from 'src/components/Title'\nimport DataTable from 'src/components/tables/DataTable'\nimport { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport { ReactComponent as CustomerLinkIcon } from 'src/styling/icons/month arrows/right.svg'\nimport { ReactComponent as CustomerLinkWhiteIcon } from 'src/styling/icons/month arrows/right_white.svg'\nimport { errorColor } from 'src/styling/variables'\nimport { formatDate } from 'src/utils/timezones'\n\nimport DetailsRow from './DetailsCard'\nimport { mainStyles } from './Transactions.styles'\nimport { getStatus } from './helper'\n\nconst useStyles = makeStyles(mainStyles)\n\nconst NUM_LOG_RESULTS = 1000\n\nconst GET_DATA = gql`\n query getData {\n config\n }\n`\n\nconst GET_TRANSACTIONS_CSV = gql`\n query transactions(\n $simplified: Boolean\n $limit: Int\n $from: Date\n $until: Date\n $timezone: String\n $excludeTestingCustomers: Boolean\n ) {\n transactionsCsv(\n simplified: $simplified\n limit: $limit\n from: $from\n until: $until\n timezone: $timezone\n excludeTestingCustomers: $excludeTestingCustomers\n )\n }\n`\n\nconst GET_TRANSACTION_FILTERS = gql`\n query filters {\n transactionFilters {\n type\n value\n }\n }\n`\n\nconst GET_TRANSACTIONS = gql`\n query transactions(\n $limit: Int\n $from: Date\n $until: Date\n $txClass: String\n $machineName: String\n $customerName: String\n $fiatCode: String\n $cryptoCode: String\n $toAddress: String\n $status: String\n ) {\n transactions(\n limit: $limit\n from: $from\n until: $until\n txClass: $txClass\n machineName: $machineName\n customerName: $customerName\n fiatCode: $fiatCode\n cryptoCode: $cryptoCode\n toAddress: $toAddress\n status: $status\n ) {\n id\n txClass\n txHash\n toAddress\n commissionPercentage\n expired\n machineName\n operatorCompleted\n sendConfirmed\n dispense\n hasError: error\n deviceId\n fiat\n cashInFee\n fiatCode\n cryptoAtoms\n cryptoCode\n toAddress\n created\n customerName\n customerIdCardData\n customerIdCardPhotoPath\n customerFrontCameraPath\n customerPhone\n discount\n customerId\n isAnonymous\n batched\n batchTime\n rawTickerPrice\n batchError\n walletScore\n }\n }\n`\n\nconst getFiltersObj = filters =>\n R.reduce((s, f) => ({ ...s, [f.type]: f.value }), {}, filters)\n\nconst Transactions = () => {\n const classes = useStyles()\n const history = useHistory()\n\n const [filters, setFilters] = useState([])\n const { data: filtersResponse, loading: filtersLoading } = useQuery(\n GET_TRANSACTION_FILTERS\n )\n const [variables, setVariables] = useState({ limit: NUM_LOG_RESULTS })\n const {\n data: txData,\n loading: transactionsLoading,\n refetch,\n startPolling,\n stopPolling\n } = useQuery(GET_TRANSACTIONS, { variables })\n\n useEffect(() => {\n startPolling(10000)\n return stopPolling\n })\n\n const txList = txData?.transactions ?? []\n\n const { data: configResponse, configLoading } = useQuery(GET_DATA)\n const timezone = R.path(['config', 'locale_timezone'], configResponse)\n\n const redirect = customerId => {\n return history.push(`/compliance/customer/${customerId}`)\n }\n\n const formatCustomerName = customer => {\n const { firstName, lastName } = customer\n\n return `${R.o(R.toUpper, R.head)(firstName)}. ${lastName}`\n }\n\n const getCustomerDisplayName = tx => {\n if (tx.isAnonymous) return 'Anonymous'\n if (tx.customerName) return tx.customerName\n if (tx.customerIdCardData) return formatCustomerName(tx.customerIdCardData)\n return tx.customerPhone\n }\n const elements = [\n {\n header: '',\n width: 32,\n size: 'sm',\n view: it => (it.txClass === 'cashOut' ? : )\n },\n {\n header: 'Machine',\n name: 'machineName',\n width: 160,\n size: 'sm',\n view: R.path(['machineName'])\n },\n {\n header: 'Customer',\n width: 202,\n size: 'sm',\n view: it => (\n \n
{getCustomerDisplayName(it)}
\n {!it.isAnonymous && (\n
redirect(it.customerId)}>\n {it.hasError || it.batchError ? (\n \n ) : (\n \n )}\n
\n )}\n
\n )\n },\n {\n header: 'Cash',\n width: 144,\n textAlign: 'right',\n size: 'sm',\n view: it => `${Number.parseFloat(it.fiat)} ${it.fiatCode}`\n },\n {\n header: 'Crypto',\n width: 150,\n textAlign: 'right',\n size: 'sm',\n view: it =>\n `${coinUtils.toUnit(new BigNumber(it.cryptoAtoms), it.cryptoCode)} ${\n it.cryptoCode\n }`\n },\n {\n header: 'Address',\n view: it => coinUtils.formatCryptoAddress(it.cryptoCode, it.toAddress),\n className: classes.overflowTd,\n size: 'sm',\n width: 140\n },\n {\n header: 'Date',\n view: it =>\n timezone && formatDate(it.created, timezone, 'yyyy-MM-dd HH:mm'),\n textAlign: 'right',\n size: 'sm',\n width: 195\n },\n {\n header: 'Status',\n view: it => getStatus(it),\n textAlign: 'left',\n size: 'sm',\n width: 80\n }\n ]\n\n const onFilterChange = filters => {\n const filtersObject = getFiltersObj(filters)\n\n setFilters(filters)\n\n setVariables({\n limit: NUM_LOG_RESULTS,\n txClass: filtersObject.type,\n machineName: filtersObject.machine,\n customerName: filtersObject.customer,\n fiatCode: filtersObject.fiat,\n cryptoCode: filtersObject.crypto,\n toAddress: filtersObject.address,\n status: filtersObject.status\n })\n\n refetch && refetch()\n }\n\n const onFilterDelete = filter => {\n const newFilters = R.filter(\n f => !R.whereEq(R.pick(['type', 'value'], f), filter)\n )(filters)\n\n setFilters(newFilters)\n\n const filtersObject = getFiltersObj(newFilters)\n\n setVariables({\n limit: NUM_LOG_RESULTS,\n txClass: filtersObject.type,\n machineName: filtersObject.machine,\n customerName: filtersObject.customer,\n fiatCode: filtersObject.fiat,\n cryptoCode: filtersObject.crypto,\n toAddress: filtersObject.address,\n status: filtersObject.status\n })\n\n refetch && refetch()\n }\n\n const deleteAllFilters = () => {\n setFilters([])\n const filtersObject = getFiltersObj([])\n\n setVariables({\n limit: NUM_LOG_RESULTS,\n txClass: filtersObject.type,\n machineName: filtersObject.machine,\n customerName: filtersObject.customer,\n fiatCode: filtersObject.fiat,\n cryptoCode: filtersObject.crypto,\n toAddress: filtersObject.address,\n status: filtersObject.status\n })\n\n refetch && refetch()\n }\n\n const filterOptions = R.path(['transactionFilters'])(filtersResponse)\n\n const loading = transactionsLoading || filtersLoading || configLoading\n\n const errorLabel = (\n \n \n \n )\n\n return (\n <>\n \n
\n
Transactions \n
\n \n
\n {txList && (\n
\n R.path(['transactionsCsv'])(logs)}\n simplified\n timezone={timezone}\n args={{ timezone }}\n />\n
\n )}\n
\n
\n
\n \n Cash-in \n
\n
\n \n Cash-out \n
\n
\n {errorLabel}\n Transaction error \n
\n
\n
\n {filters.length > 0 && (\n \n )}\n \n >\n )\n}\n\nexport default Transactions\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/filter/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19,2.5 C19,1.11909091 17.8809091,0 16.5,0 C15.1190909,0 14,1.11909091 14,2.5 C14,3.88090909 15.1190909,5 16.5,5 C17.8809091,5 19,3.88090909 19,2.5 Z\",\n id: \"Stroke-1\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5,9.5 C5,8.11909091 3.88090909,7 2.5,7 C1.11909091,7 0,8.11909091 0,9.5 C0,10.8818182 1.11909091,12 2.5,12 C3.88090909,12 5,10.8818182 5,9.5 Z\",\n id: \"Stroke-7\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19,17.5 C19,16.1190909 17.8809091,15 16.5,15 C15.1190909,15 14,16.1190909 14,17.5 C14,18.8809091 15.1190909,20 16.5,20 C17.8809091,20 19,18.8809091 19,17.5 Z\",\n id: \"Stroke-9\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 14,\n y1: 2.5,\n x2: 0.498999482,\n y2: 2.5,\n id: \"Line-3\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n strokeLinecap: \"square\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 20,\n y1: 9.5,\n x2: 6.49899948,\n y2: 9.5,\n id: \"Line-3-Copy\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n strokeLinecap: \"square\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 14,\n y1: 17.5,\n x2: 0.498999482,\n y2: 17.5,\n id: \"Line-3-Copy-2\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n strokeLinecap: \"square\"\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.8406a3ba.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/filter/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19,2.5 C19,1.11909091 17.8809091,0 16.5,0 C15.1190909,0 14,1.11909091 14,2.5 C14,3.88090909 15.1190909,5 16.5,5 C17.8809091,5 19,3.88090909 19,2.5 Z\",\n id: \"Stroke-1\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5,9.5 C5,8.11909091 3.88090909,7 2.5,7 C1.11909091,7 0,8.11909091 0,9.5 C0,10.8818182 1.11909091,12 2.5,12 C3.88090909,12 5,10.8818182 5,9.5 Z\",\n id: \"Stroke-7\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19,17.5 C19,16.1190909 17.8809091,15 16.5,15 C15.1190909,15 14,16.1190909 14,17.5 C14,18.8809091 15.1190909,20 16.5,20 C17.8809091,20 19,18.8809091 19,17.5 Z\",\n id: \"Stroke-9\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 14,\n y1: 2.5,\n x2: 0.498999482,\n y2: 2.5,\n id: \"Line-3\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n strokeLinecap: \"square\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 20,\n y1: 9.5,\n x2: 6.49899948,\n y2: 9.5,\n id: \"Line-3-Copy\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n strokeLinecap: \"square\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 14,\n y1: 17.5,\n x2: 0.498999482,\n y2: 17.5,\n id: \"Line-3-Copy-2\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n strokeLinecap: \"square\"\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.8bc58042.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/settings/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10,13 C8.34325,13 7,11.65675 7,10 C7,8.34325 8.34325,7 10,7 C11.65675,7 13,8.34325 13,10 C13,11.65675 11.65675,13 10,13 Z M19.843,11.816 C19.945,11.391 20,10.45 20,10 C20,9.55 19.945,8.609 19.843,8.184 L17.649,7.656 C17.499,7.166 17.302,6.695 17.065,6.25 L18.244,4.324 C18.016,3.951 17.39,3.247 17.071,2.929 C16.753,2.61 16.049,1.984 15.676,1.756 L13.75,2.935 C13.305,2.698 12.834,2.501 12.344,2.351 L11.816,0.157 C11.391,0.055 10.45,0 10,0 C9.55,0 8.609,0.055 8.184,0.157 L7.656,2.351 C7.166,2.501 6.695,2.698 6.25,2.935 L4.324,1.756 C3.951,1.984 3.247,2.61 2.929,2.929 C2.61,3.247 1.984,3.951 1.756,4.324 L2.935,6.25 C2.698,6.695 2.501,7.166 2.351,7.656 L0.157,8.184 C0.055,8.609 0,9.55 0,10 C0,10.45 0.055,11.391 0.157,11.816 L2.351,12.344 C2.501,12.834 2.698,13.304 2.935,13.75 L1.756,15.676 C1.984,16.049 2.61,16.753 2.929,17.071 C3.247,17.39 3.951,18.016 4.324,18.244 L6.25,17.065 C6.696,17.302 7.166,17.499 7.656,17.649 L8.184,19.843 C8.609,19.945 9.55,20 10,20 C10.45,20 11.391,19.945 11.816,19.843 L12.344,17.649 C12.834,17.499 13.304,17.302 13.75,17.065 L15.676,18.244 C16.049,18.016 16.753,17.39 17.071,17.071 C17.39,16.753 18.016,16.049 18.244,15.676 L17.065,13.75 C17.302,13.304 17.499,12.834 17.649,12.344 L19.843,11.816 Z\",\n id: \"Stroke-1\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.6dd4c28a.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/settings/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10,13 C8.34325,13 7,11.65675 7,10 C7,8.34325 8.34325,7 10,7 C11.65675,7 13,8.34325 13,10 C13,11.65675 11.65675,13 10,13 Z M19.843,11.816 C19.945,11.391 20,10.45 20,10 C20,9.55 19.945,8.609 19.843,8.184 L17.649,7.656 C17.499,7.166 17.302,6.695 17.065,6.25 L18.244,4.324 C18.016,3.951 17.39,3.247 17.071,2.929 C16.753,2.61 16.049,1.984 15.676,1.756 L13.75,2.935 C13.305,2.698 12.834,2.501 12.344,2.351 L11.816,0.157 C11.391,0.055 10.45,0 10,0 C9.55,0 8.609,0.055 8.184,0.157 L7.656,2.351 C7.166,2.501 6.695,2.698 6.25,2.935 L4.324,1.756 C3.951,1.984 3.247,2.61 2.929,2.929 C2.61,3.247 1.984,3.951 1.756,4.324 L2.935,6.25 C2.698,6.695 2.501,7.166 2.351,7.656 L0.157,8.184 C0.055,8.609 0,9.55 0,10 C0,10.45 0.055,11.391 0.157,11.816 L2.351,12.344 C2.501,12.834 2.698,13.304 2.935,13.75 L1.756,15.676 C1.984,16.049 2.61,16.753 2.929,17.071 C3.247,17.39 3.951,18.016 4.324,18.244 L6.25,17.065 C6.696,17.302 7.166,17.499 7.656,17.649 L8.184,19.843 C8.609,19.945 9.55,20 10,20 C10.45,20 11.391,19.945 11.816,19.843 L12.344,17.649 C12.834,17.499 13.304,17.302 13.75,17.065 L15.676,18.244 C16.049,18.016 16.753,17.39 17.071,17.071 C17.39,16.753 18.016,16.049 18.244,15.676 L17.065,13.75 C17.302,13.304 17.499,12.834 17.649,12.344 L19.843,11.816 Z\",\n id: \"Stroke-1\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.8c3f113c.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport { Label1, Info2 } from 'src/components/typography'\n\nconst styles = {\n flex: {\n display: 'flex'\n },\n column: {\n flexDirection: 'column'\n },\n halfWidth: {\n width: '50%',\n marginBottom: 15,\n marginRight: 50\n },\n marginTop: {\n marginTop: 20\n },\n marginBottom: {\n marginBottom: 20\n }\n}\nconst useStyles = makeStyles(styles)\nconst DetailsCard = ({ it }) => {\n const customRequest = it.customRequest\n const classes = useStyles()\n\n const getScreen2Data = () => {\n const label1Display =\n customRequest.input.constraintType === 'spaceSeparation'\n ? 'First word label'\n : 'Text entry label'\n switch (customRequest.input.type) {\n case 'text':\n return (\n <>\n \n {label1Display} \n {customRequest.input.label1} \n
\n {customRequest.input.constraintType === 'spaceSeparation' && (\n \n Second word label \n {customRequest.input.label2} \n
\n )}\n >\n )\n default:\n return (\n <>\n \n Screen 2 input title \n {customRequest.screen2.title} \n
\n \n Screen 2 input description \n {customRequest.screen2.text} \n
\n >\n )\n }\n }\n\n const getInputData = () => {\n return (\n <>\n {customRequest.input.choiceList && (\n <>\n Choices \n {customRequest.input.choiceList.map((choice, idx) => {\n return {choice} \n })}\n >\n )}\n {customRequest.input.numDigits && (\n <>\n Number of digits \n {customRequest.input.numDigits} \n >\n )}\n >\n )\n }\n\n return (\n \n
\n
\n Screen 1 title \n {customRequest.screen1.title} \n
\n
\n {getScreen2Data()}\n
\n
\n
\n
\n Screen 1 text \n {customRequest.screen1.text} \n
\n
{getInputData()}
\n
\n
\n )\n}\n\nexport default DetailsCard\n","import React, { memo } from 'react'\n\nimport { ToggleButtonGroup } from '../base'\n\nconst ToggleButtonGroupFormik = memo(({ enforceValueSet = true, ...props }) => {\n const { name, value } = props.field\n const { setFieldValue } = props.form\n return (\n {\n // enforceValueSet prevents you from not having any button selected\n // after selecting one the first time\n if (enforceValueSet && !value) return null\n setFieldValue(name, value)\n props.resetError && props.resetError()\n }}\n className={props.className}\n {...props}\n />\n )\n})\n\nexport default ToggleButtonGroupFormik\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"entry-icon/keyboard\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2-Copy-2\",\n transform: \"translate(0.000000, 6.000000)\",\n fill: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle\",\n x: 0,\n y: 0,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-5\",\n x: 0,\n y: 12,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-8\",\n x: 0,\n y: 24,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-3\",\n x: 12,\n y: 1.13686838e-13,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-6\",\n x: 12,\n y: 12,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-9\",\n x: 12,\n y: 24,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-11\",\n x: 64,\n y: 24,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-32\",\n x: 52,\n y: 24,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-4\",\n x: 24,\n y: 1.13686838e-13,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-26\",\n x: 36,\n y: 1.13686838e-13,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-27\",\n x: 48,\n y: 1.13686838e-13,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-28\",\n x: 60,\n y: 1.13686838e-13,\n width: 12,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-7\",\n x: 24,\n y: 12,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-29\",\n x: 36,\n y: 12,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-30\",\n x: 48,\n y: 12,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-31\",\n x: 60,\n y: 12,\n width: 12,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-10\",\n x: 24,\n y: 24,\n width: 24,\n height: 8,\n rx: 2\n})));\n\nfunction SvgKeyboard(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"72px\",\n height: \"44px\",\n viewBox: \"0 0 72 44\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"entry-icon/keyboard\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgKeyboard);\nexport default __webpack_public_path__ + \"static/media/keyboard.cc22b859.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"entry-icon/keypad\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group\",\n transform: \"translate(20.000000, 0.000000)\",\n fill: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle\",\n x: 0,\n y: 0,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-5\",\n x: 0,\n y: 12,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-8\",\n x: 0,\n y: 24,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-3\",\n x: 12,\n y: 0,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-6\",\n x: 12,\n y: 12,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-9\",\n x: 12,\n y: 24,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-11\",\n x: 12,\n y: 36,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-4\",\n x: 24,\n y: 0,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-7\",\n x: 24,\n y: 12,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-10\",\n x: 24,\n y: 24,\n width: 8,\n height: 8,\n rx: 2\n})));\n\nfunction SvgKeypad(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"72px\",\n height: \"44px\",\n viewBox: \"0 0 72 44\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"entry-icon/keypad\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgKeypad);\nexport default __webpack_public_path__ + \"static/media/keypad.dfb6094e.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"entry-icon/list\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-4\",\n transform: \"translate(8.000000, 0.000000)\",\n fill: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-33\",\n x: 0,\n y: 0,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-35\",\n x: 0,\n y: 12,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-37\",\n x: 0,\n y: 24,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-39\",\n x: 0,\n y: 36,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-34\",\n x: 12,\n y: 2,\n width: 44,\n height: 4,\n rx: 1\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-36\",\n x: 12,\n y: 14,\n width: 44,\n height: 4,\n rx: 1\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-38\",\n x: 12,\n y: 26,\n width: 44,\n height: 4,\n rx: 1\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-40\",\n x: 12,\n y: 38,\n width: 44,\n height: 4,\n rx: 1\n})));\n\nfunction SvgList(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"72px\",\n height: \"44px\",\n viewBox: \"0 0 72 44\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"entry-icon/list\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgList);\nexport default __webpack_public_path__ + \"static/media/list.65e6f8cb.svg\";\nexport { ForwardRef as ReactComponent };","import { Field } from 'formik'\nimport React from 'react'\nimport * as Yup from 'yup'\n\nimport ToggleButtonGroup from 'src/components/inputs/formik/ToggleButtonGroup'\nimport { H4 } from 'src/components/typography'\nimport { ReactComponent as Keyboard } from 'src/styling/icons/compliance/keyboard.svg'\nimport { ReactComponent as Keypad } from 'src/styling/icons/compliance/keypad.svg'\nimport { ReactComponent as List } from 'src/styling/icons/compliance/list.svg'\nimport { zircon } from 'src/styling/variables'\n\nconst MakeIcon = IconSvg => (\n \n \n
\n)\n\nconst ChooseType = () => {\n const options = [\n {\n value: 'numerical',\n title: 'Numerical entry',\n description:\n 'User will enter information with a keypad. Good for dates, ID numbers, etc.',\n icon: () => MakeIcon(Keypad)\n },\n {\n value: 'text',\n title: 'Text entry',\n description:\n 'User will entry information with a keyboard. Good for names, email, address, etc.',\n icon: () => MakeIcon(Keyboard)\n },\n {\n value: 'choiceList',\n title: 'Choice list',\n description: 'Gives user multiple options to choose from.',\n icon: () => MakeIcon(List)\n }\n ]\n\n return (\n <>\n Choose the type of data entry \n \n >\n )\n}\n\nconst validationSchema = Yup.object().shape({\n inputType: Yup.string().required()\n})\n\nconst defaultValues = {\n inputType: ''\n}\n\nexport default ChooseType\nexport { validationSchema, defaultValues }\n","import { Field } from 'formik'\nimport React from 'react'\nimport * as Yup from 'yup'\n\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\nimport { H4, P } from 'src/components/typography'\n\nconst NameOfRequirement = () => {\n return (\n <>\n Name of the requirement {/* TODO Add ? icon */}\n \n The name of the requirement will only be visible to you on the dashboard\n on the requirement list, as well as on the custom information request\n list. The user won't see this name. Make sure to make it distinguishable\n and short.\n
\n \n >\n )\n}\n\nconst validationSchema = Yup.object().shape({\n requirementName: Yup.string().required()\n})\n\nconst defaultValues = {\n requirementName: ''\n}\n\nexport default NameOfRequirement\nexport { validationSchema, defaultValues }\n","import { Field } from 'formik'\nimport React from 'react'\nimport * as Yup from 'yup'\n\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\nimport { H4, P } from 'src/components/typography'\n\nconst Screen1Information = () => {\n return (\n <>\n Screen 1 Information {/* TODO Add ? icon */}\n \n On screen 1 you will request the user if he agrees on providing this\n information, or if he wishes to terminate the transaction instead.\n
\n \n \n >\n )\n}\n\nconst validationSchema = Yup.object().shape({\n screen1Title: Yup.string().required(),\n screen1Text: Yup.string().required()\n})\n\nconst defaultValues = {\n screen1Title: '',\n screen1Text: ''\n}\n\nexport default Screen1Information\nexport { validationSchema, defaultValues }\n","import { Field } from 'formik'\nimport React from 'react'\nimport * as Yup from 'yup'\n\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\nimport { H4, P } from 'src/components/typography'\n\nconst ScreenInformation = () => {\n return (\n <>\n Screen 2 Information {/* TODO Add ? icon */}\n \n If the user agrees, on screen 2 is where the user will enter the custom\n information.\n
\n \n \n >\n )\n}\n\nconst validationSchema = Yup.object().shape({\n screen2Title: Yup.string().required(),\n screen2Text: Yup.string().required()\n})\n\nconst defaultValues = {\n screen2Title: '',\n screen2Text: ''\n}\n\nexport default ScreenInformation\nexport { validationSchema, defaultValues }\n","import { errorColor, spacer } from 'src/styling/variables'\n\nconst styles = {\n flex: {\n display: 'flex'\n },\n column: {\n flexDirection: 'column'\n },\n choiceList: {\n display: 'flex',\n flexDirection: 'column',\n maxHeight: 240,\n overflowY: 'auto'\n },\n button: {\n width: 120,\n height: 28,\n marginTop: 28\n },\n textInput: {\n width: 420\n },\n row: {\n flexDirection: 'row'\n },\n subtitle: {\n marginBottom: 0\n },\n radioSubtitle: {\n marginBottom: 0\n },\n error: {\n color: errorColor\n },\n tl1: {\n marginLeft: 8,\n marginTop: 25\n },\n numberField: {\n marginTop: 109,\n maxWidth: 115\n },\n label: {\n width: 200,\n marginRight: spacer\n }\n}\n\nexport default styles\n","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { Field, useFormikContext, FieldArray } from 'formik'\nimport * as R from 'ramda'\nimport React, { useEffect, useRef } from 'react'\n\nimport Button from 'src/components/buttons/ActionButton'\nimport RadioGroup from 'src/components/inputs/formik/RadioGroup'\nimport TextInput from 'src/components/inputs/formik/TextInput'\nimport { H4 } from 'src/components/typography'\nimport { ReactComponent as AddIconInverse } from 'src/styling/icons/button/add/white.svg'\nimport { ReactComponent as AddIcon } from 'src/styling/icons/button/add/zodiac.svg'\n\nimport styles from './formStyles.styles'\nconst useStyles = makeStyles(styles)\n\nconst nonEmptyStr = obj => obj.text && obj.text.length\n\nconst options = [\n { display: 'Select just one', code: 'selectOne' },\n { display: 'Select multiple', code: 'selectMultiple' }\n]\n\nconst ChoiceList = () => {\n const classes = useStyles()\n const context = useFormikContext()\n const choiceListRef = useRef(null)\n const listChoices = R.path(['values', 'listChoices'])(context) ?? []\n const choiceListError = R.path(['errors', 'listChoices'])(context) ?? false\n\n const showErrorColor = {\n [classes.radioSubtitle]: true,\n [classes.error]:\n !R.path(['values', 'constraintType'])(context) &&\n R.path(['errors', 'constraintType'])(context)\n }\n\n const hasError = choice => {\n return (\n choiceListError &&\n R.filter(nonEmptyStr)(listChoices).length < 2 &&\n choice.text.length === 0\n )\n }\n\n useEffect(() => {\n scrollToBottom()\n }, [listChoices.length])\n\n const scrollToBottom = () => {\n choiceListRef.current?.scrollIntoView()\n }\n\n return (\n <>\n Choice list constraints \n \n \n {({ push }) => {\n return (\n \n
Choices \n
\n {listChoices.map((choice, idx) => {\n return (\n
\n \n
\n )\n })}\n
\n
{\n e.preventDefault()\n return push({ text: '' })\n }}>\n Add choice\n \n
\n )\n }}\n \n >\n )\n}\n\nexport default ChoiceList\n","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { Field, useFormikContext } from 'formik'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport NumberInput from 'src/components/inputs/formik/NumberInput'\nimport RadioGroup from 'src/components/inputs/formik/RadioGroup'\nimport { TL1, H4 } from 'src/components/typography'\n\nimport styles from './formStyles.styles'\nconst useStyles = makeStyles(styles)\n\nconst options = [\n { display: 'None', code: 'none' },\n { display: 'Date', code: 'date' },\n { display: 'Length', code: 'length' }\n]\n\nconst NumericalEntry = () => {\n const classes = useStyles()\n const context = useFormikContext()\n\n const isLength =\n (R.path(['values', 'constraintType'])(useFormikContext()) ?? null) ===\n 'length'\n\n const showErrorColor = {\n [classes.radioSubtitle]: true,\n [classes.error]:\n !R.path(['values', 'constraintType'])(context) &&\n R.path(['errors', 'constraintType'])(context)\n }\n\n return (\n <>\n \n Numerical entry constraints\n \n \n {isLength && (\n \n \n digits \n
\n )}\n >\n )\n}\n\nexport default NumericalEntry\n","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { Field, useFormikContext } from 'formik'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport RadioGroup from 'src/components/inputs/formik/RadioGroup'\nimport TextInput from 'src/components/inputs/formik/TextInput'\nimport { H4 } from 'src/components/typography'\n\nimport styles from './formStyles.styles'\nconst useStyles = makeStyles(styles)\n\nconst options = [\n { display: 'None', code: 'none' },\n { display: 'Email', code: 'email' },\n {\n display: 'Space separation',\n subtitle: '(e.g. first and last name)',\n code: 'spaceSeparation'\n }\n]\n\nconst TextEntry = () => {\n const classes = useStyles()\n const context = useFormikContext()\n const showErrorColor = {\n [classes.radioSubtitle]: true,\n [classes.error]:\n !R.path(['values', 'constraintType'])(context) &&\n R.path(['errors', 'constraintType'])(context)\n }\n\n const getLabelInputs = () => {\n switch (context.values.constraintType) {\n case 'spaceSeparation':\n return (\n \n \n \n
\n )\n default:\n return (\n \n )\n }\n }\n\n return (\n <>\n Text entry constraints \n \n {getLabelInputs()}\n >\n )\n}\n\nexport default TextEntry\n","import { useFormikContext } from 'formik'\nimport * as R from 'ramda'\nimport React from 'react'\nimport * as Yup from 'yup'\n\nimport ChoiceList from './ChoiceList'\nimport NumericalEntry from './NumericalEntry'\nimport TextEntry from './TextEntry'\n\nconst nonEmptyStr = obj => obj.text && obj.text.length\n\nconst getForm = inputType => {\n switch (inputType) {\n case 'numerical':\n return NumericalEntry\n case 'text':\n return TextEntry\n case 'choiceList':\n return ChoiceList\n default:\n return NumericalEntry\n }\n}\n\nconst TypeFields = () => {\n const inputType = R.path(['values', 'inputType'])(useFormikContext()) ?? null\n const Component = getForm(inputType)\n return inputType && \n}\n\nconst defaultValues = {\n constraintType: '',\n inputLength: '',\n inputLabel1: '',\n inputLabel2: '',\n listChoices: [{ text: '' }, { text: '' }]\n}\n\nconst validationSchema = Yup.lazy(values => {\n switch (values.inputType) {\n case 'numerical':\n return Yup.object({\n constraintType: Yup.string().required(),\n inputLength: Yup.number().when('constraintType', {\n is: 'length',\n then: Yup.number()\n .min(0)\n .required(),\n else: Yup.mixed().notRequired()\n })\n })\n case 'text':\n return Yup.object({\n constraintType: Yup.string().required(),\n inputLabel1: Yup.string().required(),\n inputLabel2: Yup.string().when('constraintType', {\n is: 'spaceSeparation',\n then: Yup.string().required(),\n else: Yup.mixed().notRequired()\n })\n })\n case 'choiceList':\n return Yup.object({\n constraintType: Yup.string().required(),\n listChoices: Yup.array().test(\n 'has-2-or-more',\n 'Choice list needs to have two or more non empty fields',\n (values, ctx) => {\n return R.filter(nonEmptyStr)(values).length > 1\n }\n )\n })\n default:\n return Yup.mixed().notRequired()\n }\n})\n\nexport default TypeFields\nexport { defaultValues, validationSchema }\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1,.cls-9{fill:#dee5fc;}.cls-2,.cls-9{opacity:0.8;}.cls-3{isolation:isolate;}.cls-4{clip-path:url(#clip-path);}.cls-5{clip-path:url(#clip-path-2);}.cls-6{fill:#ccd8ff;opacity:0.74;}.cls-7{clip-path:url(#clip-path-3);}.cls-8{fill:#ebefff;}.cls-10{clip-path:url(#clip-path-4);}.cls-11{clip-path:url(#clip-path-5);}.cls-12{clip-path:url(#clip-path-6);}.cls-13{clip-path:url(#clip-path-7);}.cls-14{clip-path:url(#clip-path-8);}.cls-15{clip-path:url(#clip-path-9);}.cls-16{clip-path:url(#clip-path-10);}.cls-17{clip-path:url(#clip-path-11);}.cls-18{clip-path:url(#clip-path-12);}.cls-19{clip-path:url(#clip-path-13);}.cls-20{clip-path:url(#clip-path-14);}.cls-21{clip-path:url(#clip-path-15);}.cls-22{clip-path:url(#clip-path-16);}.cls-23{clip-path:url(#clip-path-17);}.cls-24{clip-path:url(#clip-path-18);}.cls-25{clip-path:url(#clip-path-19);}.cls-26{clip-path:url(#clip-path-20);}.cls-27{clip-path:url(#clip-path-21);}.cls-28{clip-path:url(#clip-path-22);}.cls-29{clip-path:url(#clip-path-23);}.cls-30{clip-path:url(#clip-path-24);}.cls-31{clip-path:url(#clip-path-25);}.cls-32{clip-path:url(#clip-path-26);}.cls-33{clip-path:url(#clip-path-27);}.cls-34{clip-path:url(#clip-path-28);}.cls-35{clip-path:url(#clip-path-29);}.cls-36{clip-path:url(#clip-path-30);}.cls-37{clip-path:url(#clip-path-31);}.cls-38{clip-path:url(#clip-path-32);}.cls-39{clip-path:url(#clip-path-33);}.cls-40{clip-path:url(#clip-path-34);}.cls-41{clip-path:url(#clip-path-35);}.cls-42{clip-path:url(#clip-path-36);}.cls-43{clip-path:url(#clip-path-37);}.cls-44{clip-path:url(#clip-path-38);}.cls-45{clip-path:url(#clip-path-39);}.cls-46{clip-path:url(#clip-path-40);}.cls-47{clip-path:url(#clip-path-41);}.cls-48{clip-path:url(#clip-path-42);}.cls-49{clip-path:url(#clip-path-43);}.cls-50{clip-path:url(#clip-path-44);}.cls-51{clip-path:url(#clip-path-45);}.cls-52{clip-path:url(#clip-path-46);}.cls-53{clip-path:url(#clip-path-47);}.cls-54{clip-path:url(#clip-path-48);}.cls-55{clip-path:url(#clip-path-49);}.cls-56{clip-path:url(#clip-path-50);}.cls-57{clip-path:url(#clip-path-51);}.cls-58{clip-path:url(#clip-path-52);}.cls-59{clip-path:url(#clip-path-53);}.cls-60{clip-path:url(#clip-path-54);}.cls-61{clip-path:url(#clip-path-55);}.cls-62{clip-path:url(#clip-path-56);}.cls-63{clip-path:url(#clip-path-57);}.cls-64{clip-path:url(#clip-path-58);}.cls-65{clip-path:url(#clip-path-59);}.cls-66{clip-path:url(#clip-path-60);}.cls-67{clip-path:url(#clip-path-61);}.cls-68{clip-path:url(#clip-path-62);}.cls-69{clip-path:url(#clip-path-63);}.cls-70{clip-path:url(#clip-path-64);}.cls-71{clip-path:url(#clip-path-65);}.cls-72{clip-path:url(#clip-path-66);}.cls-73{clip-path:url(#clip-path-69);}.cls-74{clip-path:url(#clip-path-70);}.cls-75{clip-path:url(#clip-path-71);}.cls-76{clip-path:url(#clip-path-72);}.cls-77{clip-path:url(#clip-path-73);}.cls-78{clip-path:url(#clip-path-74);}.cls-79{clip-path:url(#clip-path-75);}.cls-80{clip-path:url(#clip-path-76);}.cls-81{clip-path:url(#clip-path-77);}.cls-82{clip-path:url(#clip-path-78);}.cls-83{clip-path:url(#clip-path-79);}.cls-84{clip-path:url(#clip-path-80);}.cls-85{clip-path:url(#clip-path-81);}.cls-86{clip-path:url(#clip-path-82);}.cls-87{fill:#4b5fef;}.cls-88{clip-path:url(#clip-path-83);}.cls-89{fill:#5a67ff;}.cls-90{fill:#7687ff;}\"), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 54.32 77.66 65.53 77.66 87.95 58.25 76.74 58.25 54.32\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-2\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 65.53 77.66 87.95 58.25 99.16 58.25 76.74 77.66 65.53\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 76.74 58.25 99.16 38.83 87.95 38.83 65.53 58.25 76.74\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-4\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 65.53 97.08 76.74 97.08 99.16 77.66 87.95 77.66 65.53\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-5\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 76.74 97.08 99.16 77.66 110.37 77.66 87.95 97.08 76.74\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-6\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 87.95 77.66 110.37 58.25 99.16 58.25 76.74 77.66 87.95\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-7\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 76.74 77.66 87.95 77.66 110.37 58.25 99.16 58.25 76.74\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-8\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 87.95 77.66 110.37 58.25 121.58 58.25 99.16 77.66 87.95\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-9\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 99.16 58.25 121.58 38.83 110.37 38.83 87.95 58.25 99.16\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-10\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 65.53 58.25 76.74 58.25 99.16 38.83 87.95 38.83 65.53\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-11\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 76.74 58.25 99.16 38.83 110.37 38.83 87.95 58.25 76.74\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-12\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 87.95 38.83 110.37 19.42 99.16 19.42 76.74 38.83 87.95\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-13\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"19.42 76.74 38.83 87.95 38.83 110.37 19.42 99.16 19.42 76.74\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-14\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 87.95 38.83 110.37 19.42 121.58 19.42 99.16 38.83 87.95\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-15\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"19.42 99.16 19.42 121.58 0 110.37 0 87.95 19.42 99.16\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-16\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 87.95 58.25 99.16 58.25 121.58 38.83 110.37 38.83 87.95\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-17\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 99.16 58.25 121.58 38.83 132.79 38.83 110.37 58.25 99.16\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-18\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 110.37 38.83 132.79 19.42 121.58 19.42 99.16 38.83 110.37\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-19\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 76.74 116.5 87.95 116.5 110.37 97.08 99.16 97.08 76.74\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-20\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"116.5 87.95 116.5 110.37 97.08 121.58 97.08 99.16 116.5 87.95\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-21\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 99.16 97.08 121.58 77.66 110.37 77.66 87.95 97.08 99.16\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-22\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 87.95 97.08 99.16 97.08 121.58 77.66 110.37 77.66 87.95\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-23\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 99.16 97.08 121.58 77.66 132.79 77.66 110.37 97.08 99.16\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-24\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 110.37 77.66 132.79 58.25 121.58 58.25 99.16 77.66 110.37\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-25\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 99.16 77.66 110.37 77.66 132.79 58.25 121.58 58.25 99.16\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-26\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 110.37 77.66 132.79 58.25 144 58.25 121.58 77.66 110.37\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-27\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 121.58 58.25 144 38.83 132.79 38.83 110.37 58.25 121.58\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-28\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 31.9 77.66 43.11 77.66 65.53 58.25 54.32 58.25 31.9\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-29\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 43.11 77.66 65.53 58.25 76.74 58.25 54.32 77.66 43.11\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-30\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 54.32 58.25 76.74 38.83 65.53 38.83 43.11 58.25 54.32\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-31\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 43.11 97.08 54.32 97.08 76.74 77.66 65.53 77.66 43.11\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-32\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 54.32 97.08 76.74 77.66 87.95 77.66 65.53 97.08 54.32\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-33\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 65.53 77.66 87.95 58.25 76.74 58.25 54.32 77.66 65.53\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-34\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 54.32 116.5 65.53 116.5 87.95 97.08 76.74 97.08 54.32\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-35\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"116.5 65.53 116.5 87.95 97.08 99.16 97.08 76.74 116.5 65.53\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-36\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 76.74 97.08 99.16 77.66 87.95 77.66 65.53 97.08 76.74\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-37\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 54.32 77.66 65.53 77.66 87.95 58.25 76.74 58.25 54.32\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-38\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 65.53 77.66 87.95 58.25 99.16 58.25 76.74 77.66 65.53\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-39\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 76.74 58.25 99.16 38.83 87.95 38.83 65.53 58.25 76.74\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-40\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 43.11 58.25 54.32 58.25 76.74 38.83 65.53 38.83 43.11\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-41\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 54.32 58.25 76.74 38.83 87.95 38.83 65.53 58.25 54.32\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-42\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 65.53 38.83 87.95 19.42 76.74 19.42 54.32 38.83 65.53\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-43\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 65.53 97.08 76.74 97.08 99.16 77.66 87.95 77.66 65.53\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-44\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 76.74 97.08 99.16 77.66 110.37 77.66 87.95 97.08 76.74\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-45\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 87.95 77.66 110.37 58.25 99.16 58.25 76.74 77.66 87.95\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-46\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"19.42 54.32 38.83 65.53 38.83 87.95 19.42 76.74 19.42 54.32\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-47\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 65.53 38.83 87.95 19.42 99.16 19.42 76.74 38.83 65.53\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-48\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"19.42 76.74 19.42 99.16 0 87.95 0 65.53 19.42 76.74\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-49\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 65.53 58.25 76.74 58.25 99.16 38.83 87.95 38.83 65.53\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-50\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 76.74 58.25 99.16 38.83 110.37 38.83 87.95 58.25 76.74\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-51\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 87.95 38.83 110.37 19.42 99.16 19.42 76.74 38.83 87.95\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-52\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 76.74 77.66 87.95 77.66 110.37 58.25 99.16 58.25 76.74\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-53\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 87.95 77.66 110.37 58.25 121.58 58.25 99.16 77.66 87.95\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-54\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 99.16 58.25 121.58 38.83 110.37 38.83 87.95 58.25 99.16\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-55\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 9.48 77.66 20.69 77.66 43.11 58.25 31.9 58.25 9.48\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-56\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 20.69 77.66 43.11 58.25 54.32 58.25 31.9 77.66 20.69\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-57\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 31.9 58.25 54.32 38.83 43.11 38.83 20.69 58.25 31.9\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-58\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 31.9 77.66 43.11 77.66 65.53 58.25 54.32 58.25 31.9\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-59\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 43.11 77.66 65.53 58.25 76.74 58.25 54.32 77.66 43.11\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-60\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 54.32 58.25 76.74 38.83 65.53 38.83 43.11 58.25 54.32\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-61\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 20.69 97.08 31.9 97.08 54.32 77.66 43.11 77.66 20.69\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-62\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 31.9 97.08 54.32 77.66 65.53 77.66 43.11 97.08 31.9\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-63\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 43.11 77.66 65.53 58.25 54.32 58.25 31.9 77.66 43.11\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-64\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 20.69 58.25 31.9 58.25 54.32 38.83 43.11 38.83 20.69\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-65\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 31.9 58.25 54.32 38.83 65.53 38.83 43.11 58.25 31.9\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-66\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 43.11 38.83 65.53 19.42 54.32 19.42 31.9 38.83 43.11\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-69\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"19.42 31.9 38.83 43.11 38.83 65.53 19.42 54.32 19.42 31.9\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-70\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 43.11 38.83 65.53 19.42 76.74 19.42 54.32 38.83 43.11\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-71\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"19.42 54.32 19.42 76.74 0 65.53 0 43.11 19.42 54.32\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-72\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 43.11 58.25 54.32 58.25 76.74 38.83 65.53 38.83 43.11\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-73\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 54.32 58.25 76.74 38.83 87.95 38.83 65.53 58.25 54.32\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-74\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 65.53 38.83 87.95 19.42 76.74 19.42 54.32 38.83 65.53\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-75\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 31.9 116.5 43.11 116.5 65.53 97.08 54.32 97.08 31.9\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-76\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"116.5 43.11 116.5 65.53 97.08 76.74 97.08 54.32 116.5 43.11\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-77\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 54.32 97.08 76.74 77.66 65.53 77.66 43.11 97.08 54.32\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-78\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 43.11 97.08 54.32 97.08 76.74 77.66 65.53 77.66 43.11\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-79\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 54.32 97.08 76.74 77.66 87.95 77.66 65.53 97.08 54.32\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-80\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 65.53 77.66 87.95 58.25 76.74 58.25 54.32 77.66 65.53\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-81\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 0 77.66 11.21 77.66 33.63 58.25 22.42 58.25 0\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-82\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 11.21 77.66 33.63 58.25 44.84 58.25 22.42 77.66 11.21\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-83\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 22.42 58.25 44.84 38.83 33.63 38.83 11.21 58.25 22.42\"\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 54.32 77.66 65.53 77.66 87.95 58.25 76.74 58.25 54.32\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-4\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 54.32 77.66 65.53 77.66 87.95 58.25 76.74 58.25 54.32\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 65.53 77.66 87.95 58.25 99.16 58.25 76.74 77.66 65.53\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-5\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"77.66 65.53 77.66 87.95 58.25 99.16 58.25 76.74 77.66 65.53\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 76.74 58.25 99.16 38.83 87.95 38.83 65.53 58.25 76.74\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-7\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"58.25 76.74 58.25 99.16 38.83 87.95 38.83 65.53 58.25 76.74\"\n})))));\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"38.83 65.53 58.25 54.32 77.66 65.53 58.25 76.74 38.83 65.53\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 65.53 97.08 76.74 97.08 99.16 77.66 87.95 77.66 65.53\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-10\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 65.53 97.08 76.74 97.08 99.16 77.66 87.95 77.66 65.53\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 76.74 97.08 99.16 77.66 110.37 77.66 87.95 97.08 76.74\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-11\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"97.08 76.74 97.08 99.16 77.66 110.37 77.66 87.95 97.08 76.74\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 87.95 77.66 110.37 58.25 99.16 58.25 76.74 77.66 87.95\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-12\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"77.66 87.95 77.66 110.37 58.25 99.16 58.25 76.74 77.66 87.95\"\n})))));\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"58.25 76.74 77.66 65.53 97.08 76.74 77.66 87.95 58.25 76.74\"\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 76.74 77.66 87.95 77.66 110.37 58.25 99.16 58.25 76.74\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-13\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 76.74 77.66 87.95 77.66 110.37 58.25 99.16 58.25 76.74\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 87.95 77.66 110.37 58.25 121.58 58.25 99.16 77.66 87.95\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-14\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"77.66 87.95 77.66 110.37 58.25 121.58 58.25 99.16 77.66 87.95\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 99.16 58.25 121.58 38.83 110.37 38.83 87.95 58.25 99.16\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-15\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"58.25 99.16 58.25 121.58 38.83 110.37 38.83 87.95 58.25 99.16\"\n})))));\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"38.83 87.95 58.25 76.74 77.66 87.95 58.25 99.16 38.83 87.95\"\n});\n\nvar _ref9 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 65.53 58.25 76.74 58.25 99.16 38.83 87.95 38.83 65.53\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-16\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 65.53 58.25 76.74 58.25 99.16 38.83 87.95 38.83 65.53\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 76.74 58.25 99.16 38.83 110.37 38.83 87.95 58.25 76.74\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-17\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"58.25 76.74 58.25 99.16 38.83 110.37 38.83 87.95 58.25 76.74\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 87.95 38.83 110.37 19.42 99.16 19.42 76.74 38.83 87.95\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-18\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"38.83 87.95 38.83 110.37 19.42 99.16 19.42 76.74 38.83 87.95\"\n})))));\n\nvar _ref10 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"19.42 76.74 38.83 65.53 58.25 76.74 38.83 87.95 19.42 76.74\"\n});\n\nvar _ref11 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"19.42 76.74 38.83 87.95 38.83 110.37 19.42 99.16 19.42 76.74\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-19\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"19.42 76.74 38.83 87.95 38.83 110.37 19.42 99.16 19.42 76.74\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 87.95 38.83 110.37 19.42 121.58 19.42 99.16 38.83 87.95\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-20\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"38.83 87.95 38.83 110.37 19.42 121.58 19.42 99.16 38.83 87.95\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"19.42 99.16 19.42 121.58 0 110.37 0 87.95 19.42 99.16\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-21\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"19.42 99.16 19.42 121.58 0 110.37 0 87.95 19.42 99.16\"\n})))));\n\nvar _ref12 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"0 87.95 19.42 76.74 38.83 87.95 19.42 99.16 0 87.95\"\n});\n\nvar _ref13 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 87.95 58.25 99.16 58.25 121.58 38.83 110.37 38.83 87.95\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-22\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 87.95 58.25 99.16 58.25 121.58 38.83 110.37 38.83 87.95\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 99.16 58.25 121.58 38.83 132.79 38.83 110.37 58.25 99.16\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-23\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"58.25 99.16 58.25 121.58 38.83 132.79 38.83 110.37 58.25 99.16\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 110.37 38.83 132.79 19.42 121.58 19.42 99.16 38.83 110.37\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-24\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"38.83 110.37 38.83 132.79 19.42 121.58 19.42 99.16 38.83 110.37\"\n})))));\n\nvar _ref14 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"19.42 99.16 38.83 87.95 58.25 99.16 38.83 110.37 19.42 99.16\"\n});\n\nvar _ref15 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 76.74 116.5 87.95 116.5 110.37 97.08 99.16 97.08 76.74\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-25\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 76.74 116.5 87.95 116.5 110.37 97.08 99.16 97.08 76.74\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"116.5 87.95 116.5 110.37 97.08 121.58 97.08 99.16 116.5 87.95\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-26\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"116.5 87.95 116.5 110.37 97.08 121.58 97.08 99.16 116.5 87.95\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 99.16 97.08 121.58 77.66 110.37 77.66 87.95 97.08 99.16\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-27\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"97.08 99.16 97.08 121.58 77.66 110.37 77.66 87.95 97.08 99.16\"\n})))));\n\nvar _ref16 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"77.66 87.95 97.08 76.74 116.5 87.95 97.08 99.16 77.66 87.95\"\n});\n\nvar _ref17 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 87.95 97.08 99.16 97.08 121.58 77.66 110.37 77.66 87.95\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-28\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 87.95 97.08 99.16 97.08 121.58 77.66 110.37 77.66 87.95\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 99.16 97.08 121.58 77.66 132.79 77.66 110.37 97.08 99.16\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-29\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"97.08 99.16 97.08 121.58 77.66 132.79 77.66 110.37 97.08 99.16\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 110.37 77.66 132.79 58.25 121.58 58.25 99.16 77.66 110.37\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-30\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"77.66 110.37 77.66 132.79 58.25 121.58 58.25 99.16 77.66 110.37\"\n})))));\n\nvar _ref18 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"58.25 99.16 77.66 87.95 97.08 99.16 77.66 110.37 58.25 99.16\"\n});\n\nvar _ref19 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 99.16 77.66 110.37 77.66 132.79 58.25 121.58 58.25 99.16\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-31\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 99.16 77.66 110.37 77.66 132.79 58.25 121.58 58.25 99.16\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 110.37 77.66 132.79 58.25 144 58.25 121.58 77.66 110.37\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-32\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"77.66 110.37 77.66 132.79 58.25 144 58.25 121.58 77.66 110.37\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 121.58 58.25 144 38.83 132.79 38.83 110.37 58.25 121.58\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-33\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"58.25 121.58 58.25 144 38.83 132.79 38.83 110.37 58.25 121.58\"\n})))));\n\nvar _ref20 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"38.83 110.37 58.25 99.16 77.66 110.37 58.25 121.58 38.83 110.37\"\n});\n\nvar _ref21 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 31.9 77.66 43.11 77.66 65.53 58.25 54.32 58.25 31.9\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-34\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 31.9 77.66 43.11 77.66 65.53 58.25 54.32 58.25 31.9\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 43.11 77.66 65.53 58.25 76.74 58.25 54.32 77.66 43.11\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-35\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"77.66 43.11 77.66 65.53 58.25 76.74 58.25 54.32 77.66 43.11\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 54.32 58.25 76.74 38.83 65.53 38.83 43.11 58.25 54.32\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-36\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"58.25 54.32 58.25 76.74 38.83 65.53 38.83 43.11 58.25 54.32\"\n})))));\n\nvar _ref22 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"38.83 43.11 58.25 31.9 77.66 43.11 58.25 54.32 38.83 43.11\"\n});\n\nvar _ref23 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 43.11 97.08 54.32 97.08 76.74 77.66 65.53 77.66 43.11\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-37\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 43.11 97.08 54.32 97.08 76.74 77.66 65.53 77.66 43.11\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 54.32 97.08 76.74 77.66 87.95 77.66 65.53 97.08 54.32\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-38\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"97.08 54.32 97.08 76.74 77.66 87.95 77.66 65.53 97.08 54.32\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 65.53 77.66 87.95 58.25 76.74 58.25 54.32 77.66 65.53\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-39\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"77.66 65.53 77.66 87.95 58.25 76.74 58.25 54.32 77.66 65.53\"\n})))));\n\nvar _ref24 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"58.25 54.32 77.66 43.11 97.08 54.32 77.66 65.53 58.25 54.32\"\n});\n\nvar _ref25 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 54.32 116.5 65.53 116.5 87.95 97.08 76.74 97.08 54.32\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-40\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 54.32 116.5 65.53 116.5 87.95 97.08 76.74 97.08 54.32\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"116.5 65.53 116.5 87.95 97.08 99.16 97.08 76.74 116.5 65.53\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-41\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"116.5 65.53 116.5 87.95 97.08 99.16 97.08 76.74 116.5 65.53\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 76.74 97.08 99.16 77.66 87.95 77.66 65.53 97.08 76.74\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-42\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"97.08 76.74 97.08 99.16 77.66 87.95 77.66 65.53 97.08 76.74\"\n})))));\n\nvar _ref26 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"77.66 65.53 97.08 54.32 116.5 65.53 97.08 76.74 77.66 65.53\"\n});\n\nvar _ref27 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 54.32 77.66 65.53 77.66 87.95 58.25 76.74 58.25 54.32\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-43\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 54.32 77.66 65.53 77.66 87.95 58.25 76.74 58.25 54.32\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 65.53 77.66 87.95 58.25 99.16 58.25 76.74 77.66 65.53\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-44\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"77.66 65.53 77.66 87.95 58.25 99.16 58.25 76.74 77.66 65.53\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 76.74 58.25 99.16 38.83 87.95 38.83 65.53 58.25 76.74\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-45\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"58.25 76.74 58.25 99.16 38.83 87.95 38.83 65.53 58.25 76.74\"\n})))));\n\nvar _ref28 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"38.83 65.53 58.25 54.32 77.66 65.53 58.25 76.74 38.83 65.53\"\n});\n\nvar _ref29 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 43.11 58.25 54.32 58.25 76.74 38.83 65.53 38.83 43.11\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-46\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 43.11 58.25 54.32 58.25 76.74 38.83 65.53 38.83 43.11\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 54.32 58.25 76.74 38.83 87.95 38.83 65.53 58.25 54.32\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-47\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"58.25 54.32 58.25 76.74 38.83 87.95 38.83 65.53 58.25 54.32\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 65.53 38.83 87.95 19.42 76.74 19.42 54.32 38.83 65.53\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-48\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"38.83 65.53 38.83 87.95 19.42 76.74 19.42 54.32 38.83 65.53\"\n})))));\n\nvar _ref30 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"19.42 54.32 38.83 43.11 58.25 54.32 38.83 65.53 19.42 54.32\"\n});\n\nvar _ref31 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 65.53 97.08 76.74 97.08 99.16 77.66 87.95 77.66 65.53\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-49\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 65.53 97.08 76.74 97.08 99.16 77.66 87.95 77.66 65.53\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 76.74 97.08 99.16 77.66 110.37 77.66 87.95 97.08 76.74\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-50\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"97.08 76.74 97.08 99.16 77.66 110.37 77.66 87.95 97.08 76.74\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 87.95 77.66 110.37 58.25 99.16 58.25 76.74 77.66 87.95\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-51\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"77.66 87.95 77.66 110.37 58.25 99.16 58.25 76.74 77.66 87.95\"\n})))));\n\nvar _ref32 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"58.25 76.74 77.66 65.53 97.08 76.74 77.66 87.95 58.25 76.74\"\n});\n\nvar _ref33 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"19.42 54.32 38.83 65.53 38.83 87.95 19.42 76.74 19.42 54.32\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-52\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"19.42 54.32 38.83 65.53 38.83 87.95 19.42 76.74 19.42 54.32\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 65.53 38.83 87.95 19.42 99.16 19.42 76.74 38.83 65.53\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-53\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"38.83 65.53 38.83 87.95 19.42 99.16 19.42 76.74 38.83 65.53\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"19.42 76.74 19.42 99.16 0 87.95 0 65.53 19.42 76.74\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-54\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"19.42 76.74 19.42 99.16 0 87.95 0 65.53 19.42 76.74\"\n})))));\n\nvar _ref34 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"0 65.53 19.42 54.32 38.83 65.53 19.42 76.74 0 65.53\"\n});\n\nvar _ref35 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 65.53 58.25 76.74 58.25 99.16 38.83 87.95 38.83 65.53\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-55\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 65.53 58.25 76.74 58.25 99.16 38.83 87.95 38.83 65.53\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 76.74 58.25 99.16 38.83 110.37 38.83 87.95 58.25 76.74\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-56\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"58.25 76.74 58.25 99.16 38.83 110.37 38.83 87.95 58.25 76.74\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 87.95 38.83 110.37 19.42 99.16 19.42 76.74 38.83 87.95\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-57\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"38.83 87.95 38.83 110.37 19.42 99.16 19.42 76.74 38.83 87.95\"\n})))));\n\nvar _ref36 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"19.42 76.74 38.83 65.53 58.25 76.74 38.83 87.95 19.42 76.74\"\n});\n\nvar _ref37 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 76.74 77.66 87.95 77.66 110.37 58.25 99.16 58.25 76.74\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-58\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 76.74 77.66 87.95 77.66 110.37 58.25 99.16 58.25 76.74\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 87.95 77.66 110.37 58.25 121.58 58.25 99.16 77.66 87.95\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-59\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"77.66 87.95 77.66 110.37 58.25 121.58 58.25 99.16 77.66 87.95\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 99.16 58.25 121.58 38.83 110.37 38.83 87.95 58.25 99.16\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-60\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"58.25 99.16 58.25 121.58 38.83 110.37 38.83 87.95 58.25 99.16\"\n})))));\n\nvar _ref38 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"38.83 87.95 58.25 76.74 77.66 87.95 58.25 99.16 38.83 87.95\"\n});\n\nvar _ref39 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 9.48 77.66 20.69 77.66 43.11 58.25 31.9 58.25 9.48\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-61\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 9.48 77.66 20.69 77.66 43.11 58.25 31.9 58.25 9.48\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 20.69 77.66 43.11 58.25 54.32 58.25 31.9 77.66 20.69\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-62\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"77.66 20.69 77.66 43.11 58.25 54.32 58.25 31.9 77.66 20.69\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 31.9 58.25 54.32 38.83 43.11 38.83 20.69 58.25 31.9\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-63\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"58.25 31.9 58.25 54.32 38.83 43.11 38.83 20.69 58.25 31.9\"\n})))));\n\nvar _ref40 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"38.83 20.69 58.25 9.48 77.66 20.69 58.25 31.9 38.83 20.69\"\n});\n\nvar _ref41 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 31.9 77.66 43.11 77.66 65.53 58.25 54.32 58.25 31.9\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-64\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 31.9 77.66 43.11 77.66 65.53 58.25 54.32 58.25 31.9\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 43.11 77.66 65.53 58.25 76.74 58.25 54.32 77.66 43.11\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-65\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"77.66 43.11 77.66 65.53 58.25 76.74 58.25 54.32 77.66 43.11\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 54.32 58.25 76.74 38.83 65.53 38.83 43.11 58.25 54.32\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-66\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"58.25 54.32 58.25 76.74 38.83 65.53 38.83 43.11 58.25 54.32\"\n})))));\n\nvar _ref42 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"38.83 43.11 58.25 31.9 77.66 43.11 58.25 54.32 38.83 43.11\"\n});\n\nvar _ref43 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 20.69 97.08 31.9 97.08 54.32 77.66 43.11 77.66 20.69\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-67\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 20.69 97.08 31.9 97.08 54.32 77.66 43.11 77.66 20.69\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 31.9 97.08 54.32 77.66 65.53 77.66 43.11 97.08 31.9\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-68\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"97.08 31.9 97.08 54.32 77.66 65.53 77.66 43.11 97.08 31.9\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 43.11 77.66 65.53 58.25 54.32 58.25 31.9 77.66 43.11\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-69\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"77.66 43.11 77.66 65.53 58.25 54.32 58.25 31.9 77.66 43.11\"\n})))));\n\nvar _ref44 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"58.25 31.9 77.66 20.69 97.08 31.9 77.66 43.11 58.25 31.9\"\n});\n\nvar _ref45 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 20.69 58.25 31.9 58.25 54.32 38.83 43.11 38.83 20.69\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-70\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 20.69 58.25 31.9 58.25 54.32 38.83 43.11 38.83 20.69\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 31.9 58.25 54.32 38.83 65.53 38.83 43.11 58.25 31.9\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-71\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"58.25 31.9 58.25 54.32 38.83 65.53 38.83 43.11 58.25 31.9\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 43.11 38.83 65.53 19.42 54.32 19.42 31.9 38.83 43.11\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-72\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"38.83 43.11 38.83 65.53 19.42 54.32 19.42 31.9 38.83 43.11\"\n})))));\n\nvar _ref46 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"19.42 31.9 38.83 20.69 58.25 31.9 38.83 43.11 19.42 31.9\"\n});\n\nvar _ref47 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 43.11 77.66 65.53 58.25 76.74 58.25 54.32 77.66 43.11\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-35\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"77.66 43.11 77.66 65.53 58.25 76.74 58.25 54.32 77.66 43.11\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 54.32 58.25 76.74 38.83 65.53 38.83 43.11 58.25 54.32\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-36\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"58.25 54.32 58.25 76.74 38.83 65.53 38.83 43.11 58.25 54.32\"\n}))), /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 43.11 58.25 31.9 77.66 43.11 58.25 54.32 38.83 43.11\"\n})));\n\nvar _ref48 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"19.42 31.9 38.83 43.11 38.83 65.53 19.42 54.32 19.42 31.9\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-73\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"19.42 31.9 38.83 43.11 38.83 65.53 19.42 54.32 19.42 31.9\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 43.11 38.83 65.53 19.42 76.74 19.42 54.32 38.83 43.11\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-74\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"38.83 43.11 38.83 65.53 19.42 76.74 19.42 54.32 38.83 43.11\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"19.42 54.32 19.42 76.74 0 65.53 0 43.11 19.42 54.32\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-75\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"19.42 54.32 19.42 76.74 0 65.53 0 43.11 19.42 54.32\"\n})))));\n\nvar _ref49 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"0 43.11 19.42 31.9 38.83 43.11 19.42 54.32 0 43.11\"\n});\n\nvar _ref50 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 43.11 58.25 54.32 58.25 76.74 38.83 65.53 38.83 43.11\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-76\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 43.11 58.25 54.32 58.25 76.74 38.83 65.53 38.83 43.11\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 54.32 58.25 76.74 38.83 87.95 38.83 65.53 58.25 54.32\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-77\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"58.25 54.32 58.25 76.74 38.83 87.95 38.83 65.53 58.25 54.32\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 65.53 38.83 87.95 19.42 76.74 19.42 54.32 38.83 65.53\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-78\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"38.83 65.53 38.83 87.95 19.42 76.74 19.42 54.32 38.83 65.53\"\n})))));\n\nvar _ref51 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"19.42 54.32 38.83 43.11 58.25 54.32 38.83 65.53 19.42 54.32\"\n});\n\nvar _ref52 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 31.9 116.5 43.11 116.5 65.53 97.08 54.32 97.08 31.9\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-79\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 31.9 116.5 43.11 116.5 65.53 97.08 54.32 97.08 31.9\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"116.5 43.11 116.5 65.53 97.08 76.74 97.08 54.32 116.5 43.11\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-80\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"116.5 43.11 116.5 65.53 97.08 76.74 97.08 54.32 116.5 43.11\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 54.32 97.08 76.74 77.66 65.53 77.66 43.11 97.08 54.32\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-81\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"97.08 54.32 97.08 76.74 77.66 65.53 77.66 43.11 97.08 54.32\"\n})))));\n\nvar _ref53 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"77.66 43.11 97.08 31.9 116.5 43.11 97.08 54.32 77.66 43.11\"\n});\n\nvar _ref54 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 43.11 97.08 54.32 97.08 76.74 77.66 65.53 77.66 43.11\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-82\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 43.11 97.08 54.32 97.08 76.74 77.66 65.53 77.66 43.11\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 54.32 97.08 76.74 77.66 87.95 77.66 65.53 97.08 54.32\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-83\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"97.08 54.32 97.08 76.74 77.66 87.95 77.66 65.53 97.08 54.32\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 65.53 77.66 87.95 58.25 76.74 58.25 54.32 77.66 65.53\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-84\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"77.66 65.53 77.66 87.95 58.25 76.74 58.25 54.32 77.66 65.53\"\n})))));\n\nvar _ref55 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"58.25 54.32 77.66 43.11 97.08 54.32 77.66 65.53 58.25 54.32\"\n});\n\nvar _ref56 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 0 77.66 11.21 77.66 33.63 58.25 22.42 58.25 0\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-85\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 0 77.66 11.21 77.66 33.63 58.25 22.42 58.25 0\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 11.21 77.66 33.63 58.25 44.84 58.25 22.42 77.66 11.21\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-86\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-87\",\n points: \"77.66 11.21 77.66 33.63 58.25 44.84 58.25 22.42 77.66 11.21\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 22.42 58.25 44.84 38.83 33.63 38.83 11.21 58.25 22.42\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-88\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-89\",\n points: \"58.25 22.42 58.25 44.84 38.83 33.63 38.83 11.21 58.25 22.42\"\n})))));\n\nvar _ref57 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-90\",\n points: \"38.83 11.21 58.25 0 77.66 11.21 58.25 22.42 38.83 11.21\"\n});\n\nfunction SvgCustomRequirement(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n \"data-name\": \"Layer 1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n viewBox: \"0 0 116.5 144\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref10, _ref11, _ref12, _ref13, _ref14, _ref15, _ref16, _ref17, _ref18, _ref19, _ref20, _ref21, _ref22, _ref23, _ref24, _ref25, _ref26, _ref27, _ref28, _ref29, _ref30, _ref31, _ref32, _ref33, _ref34, _ref35, _ref36, _ref37, _ref38, _ref39, _ref40, _ref41, _ref42, _ref43, _ref44, _ref45, _ref46, _ref47, _ref48, _ref49, _ref50, _ref51, _ref52, _ref53, _ref54, _ref55, _ref56, _ref57);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCustomRequirement);\nexport default __webpack_public_path__ + \"static/media/custom-requirement.38819635.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core'\nimport React from 'react'\n\nimport { Button } from 'src/components/buttons'\nimport { H1, P } from 'src/components/typography'\nimport { ReactComponent as CustomReqLogo } from 'src/styling/icons/compliance/custom-requirement.svg'\n\nconst styles = {\n logo: {\n maxHeight: 150,\n maxWidth: 200\n },\n title: {\n margin: [[24, 0, 32, 0]]\n },\n text: {\n margin: 0\n },\n button: {\n marginTop: 'auto',\n marginBottom: 58\n },\n modalContent: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n padding: [[0, 42]],\n flex: 1\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst WizardSplash = ({ onContinue }) => {\n const classes = useStyles()\n return (\n \n
\n
Custom information request \n
\n A custom information request allows you to have an extra option to ask\n specific information about your customers when adding a trigger that\n isn't an option on the default requirements list.\n
\n
\n Note that adding a custom information request isn't the same as adding\n triggers. You will still need to add a trigger with the new requirement\n to get this information from your customers.\n
\n
\n Get started\n \n
\n )\n}\n\nexport default WizardSplash\n","import { makeStyles } from '@material-ui/core'\nimport { Form, Formik } from 'formik'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Modal from 'src/components/Modal'\nimport Stepper from 'src/components/Stepper'\nimport { Button } from 'src/components/buttons'\n\nimport ChooseType, {\n validationSchema as chooseTypeSchema,\n defaultValues as chooseTypeDefaults\n} from './Forms/ChooseType'\nimport NameOfRequirement, {\n validationSchema as nameOfReqSchema,\n defaultValues as nameOfReqDefaults\n} from './Forms/NameOfRequirement'\nimport Screen1Information, {\n validationSchema as screen1InfoSchema,\n defaultValues as screen1InfoDefaults\n} from './Forms/Screen1Information'\nimport Screen2Information, {\n validationSchema as screen2InfoSchema,\n defaultValues as screen2InfoDefaults\n} from './Forms/Screen2Information'\nimport TypeFields, {\n defaultValues as typeFieldsDefaults,\n validationSchema as typeFieldsValidationSchema\n} from './Forms/TypeFields'\nimport WizardSplash from './WizardSplash'\n\nconst LAST_STEP = 5\n\nconst styles = {\n stepper: {\n margin: [[16, 0, 14, 0]]\n },\n submit: {\n display: 'flex',\n flexDirection: 'row',\n margin: [['auto', 0, 24]]\n },\n button: {\n marginLeft: 'auto'\n },\n form: {\n height: '100%',\n display: 'flex',\n flexDirection: 'column'\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst getStep = step => {\n switch (step) {\n case 1:\n return {\n schema: nameOfReqSchema,\n Component: NameOfRequirement\n }\n case 2:\n return {\n schema: screen1InfoSchema,\n Component: Screen1Information\n }\n case 3:\n return { schema: chooseTypeSchema, Component: ChooseType }\n case 4:\n return {\n schema: screen2InfoSchema,\n Component: Screen2Information\n }\n case 5:\n return {\n schema: typeFieldsValidationSchema,\n Component: TypeFields\n }\n default:\n return {\n schema: {},\n Component: () => {\n return Default component step \n }\n }\n }\n}\n\nconst nonEmptyStr = obj => obj.text && obj.text.length\n\nconst formatValues = (values, isEditing) => {\n const isChoiceList = values.inputType === 'choiceList'\n const choices = isChoiceList\n ? isEditing\n ? R.path(['listChoices'])(values)\n : R.map(o => o.text)(R.filter(nonEmptyStr)(values.listChoices) ?? [])\n : []\n\n const hasInputLength = values.constraintType === 'length'\n const inputLength = hasInputLength ? values.inputLength : ''\n\n let resObj = {\n name: values.requirementName,\n screen1: {\n text: values.screen1Text,\n title: values.screen1Title\n },\n screen2: {\n title: values.screen2Title,\n text: values.screen2Text\n },\n input: {\n type: values.inputType,\n constraintType: values.constraintType\n }\n }\n\n if (isChoiceList) {\n resObj = R.assocPath(['input', 'choiceList'], choices, resObj)\n }\n\n if (hasInputLength) {\n resObj = R.assocPath(['input', 'numDigits'], inputLength, resObj)\n }\n\n if (values.inputLabel1) {\n resObj = R.assocPath(['input', 'label1'], values.inputLabel1, resObj)\n }\n\n if (values.inputLabel2) {\n resObj = R.assocPath(['input', 'label2'], values.inputLabel2, resObj)\n }\n\n if (isEditing) {\n resObj = R.assocPath(['id'], values.id, resObj)\n }\n\n return resObj\n}\n\nconst makeEditingValues = it => {\n const { customRequest } = it\n return {\n id: it.id,\n requirementName: customRequest.name,\n screen1Title: customRequest.screen1.title,\n screen1Text: customRequest.screen1.text,\n screen2Title: customRequest.screen2.title,\n screen2Text: customRequest.screen2.text,\n inputType: customRequest.input.type,\n inputLabel1: customRequest.input.label1,\n inputLabel2: customRequest.input.label2,\n listChoices: customRequest.input.choiceList,\n constraintType: customRequest.input.constraintType,\n inputLength: customRequest.input.numDigits\n }\n}\n\nconst chooseNotNull = (a, b) => {\n if (!R.isNil(b)) return b\n return a\n}\n\nconst Wizard = ({ onClose, error = false, toBeEdited, onSave, hasError }) => {\n const classes = useStyles()\n const isEditing = !R.isNil(toBeEdited)\n const [step, setStep] = useState(isEditing ? 1 : 0)\n const stepOptions = getStep(step)\n const isLastStep = step === LAST_STEP\n\n const onContinue = (values, actions) => {\n const showScreen2 =\n values.inputType === 'numerical' || values.inputType === 'choiceList'\n if (isEditing && step === 2) {\n return showScreen2\n ? setStep(4)\n : onSave(formatValues(values, isEditing), isEditing)\n }\n if (isEditing && step === 4) {\n return onSave(formatValues(values, isEditing), isEditing)\n }\n if (step === 3) {\n return showScreen2 ? setStep(step + 1) : setStep(step + 2)\n }\n if (!isLastStep) {\n return setStep(step + 1)\n }\n return onSave(formatValues(values, isEditing), isEditing)\n }\n\n const editingValues = isEditing ? makeEditingValues(toBeEdited) : {}\n const wizardTitle = isEditing\n ? 'Editing custom requirement'\n : 'New custom requirement'\n return (\n 0 ? wizardTitle : ''}\n handleClose={onClose}\n width={520}\n height={620}\n open={true}>\n {step > 0 && (\n \n )}\n {step === 0 && !isEditing && }\n {step > 0 && (\n \n \n \n )}\n \n )\n}\n\nexport default Wizard\n","import { useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { DeleteDialog } from 'src/components/DeleteDialog'\nimport { IconButton, Button, Link } from 'src/components/buttons'\nimport DataTable from 'src/components/tables/DataTable'\nimport { Info1, Info3 } from 'src/components/typography'\nimport { ReactComponent as DeleteIcon } from 'src/styling/icons/action/delete/enabled.svg'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/action/edit/enabled.svg'\n\nimport styles from './CustomInfoRequests.styles'\nimport DetailsRow from './DetailsCard'\nimport Wizard from './Wizard'\nconst useStyles = makeStyles(styles)\n\nconst inputTypeDisplay = {\n numerical: 'Numerical',\n text: 'Text',\n choiceList: 'Choice list'\n}\n\nconst constraintTypeDisplay = {\n date: 'Date',\n none: 'None',\n email: 'Email',\n length: 'Length',\n selectOne: 'Select one',\n selectMultiple: 'Select multiple',\n spaceSeparation: 'Space separation'\n}\n\nconst ADD_ROW = gql`\n mutation insertCustomInfoRequest($customRequest: CustomRequestInput!) {\n insertCustomInfoRequest(customRequest: $customRequest) {\n id\n }\n }\n`\nconst EDIT_ROW = gql`\n mutation editCustomInfoRequest(\n $id: ID!\n $customRequest: CustomRequestInput!\n ) {\n editCustomInfoRequest(id: $id, customRequest: $customRequest) {\n id\n }\n }\n`\n\nconst REMOVE_ROW = gql`\n mutation removeCustomInfoRequest($id: ID!) {\n removeCustomInfoRequest(id: $id) {\n id\n }\n }\n`\n\nconst CustomInfoRequests = ({\n showWizard,\n toggleWizard,\n data: customRequests\n}) => {\n const classes = useStyles()\n\n const [toBeDeleted, setToBeDeleted] = useState()\n const [toBeEdited, setToBeEdited] = useState()\n const [deleteDialog, setDeleteDialog] = useState(false)\n const [hasError, setHasError] = useState(false)\n\n const [addEntry] = useMutation(ADD_ROW, {\n onError: () => {\n console.log('Error while adding custom info request')\n setHasError(true)\n },\n onCompleted: () => {\n setHasError(false)\n toggleWizard()\n },\n refetchQueries: () => ['customInfoRequests']\n })\n\n const [editEntry] = useMutation(EDIT_ROW, {\n onError: () => {\n console.log('Error while editing custom info request')\n setHasError(true)\n },\n onCompleted: () => {\n setHasError(false)\n setToBeEdited(null)\n toggleWizard()\n },\n refetchQueries: () => ['getData', 'customInfoRequests']\n })\n\n const [removeEntry] = useMutation(REMOVE_ROW, {\n onError: () => {\n console.log('Error while removing custom info request')\n setHasError(true)\n },\n onCompleted: () => {\n setDeleteDialog(false)\n setHasError(false)\n },\n refetchQueries: () => ['getData', 'customInfoRequests']\n })\n\n const handleDelete = id => {\n removeEntry({\n variables: {\n id\n }\n })\n }\n\n const handleSave = (values, isEditing) => {\n if (isEditing) {\n return editEntry({\n variables: {\n id: values.id,\n customRequest: R.omit(['id'])(values)\n }\n })\n }\n return addEntry({\n variables: {\n customRequest: {\n ...values\n }\n }\n })\n }\n\n return (\n <>\n {customRequests.length > 0 && (\n it.customRequest.name\n },\n {\n header: 'Data entry type',\n width: 300,\n textAlign: 'left',\n size: 'sm',\n view: it => inputTypeDisplay[it.customRequest.input.type]\n },\n {\n header: 'Constraints',\n width: 300,\n textAlign: 'left',\n size: 'sm',\n view: it =>\n constraintTypeDisplay[it.customRequest.input.constraintType]\n },\n {\n header: 'Edit',\n width: 100,\n textAlign: 'center',\n size: 'sm',\n view: it => {\n return (\n {\n setToBeEdited(it)\n return toggleWizard()\n }}>\n \n \n )\n }\n },\n {\n header: 'Delete',\n width: 100,\n textAlign: 'center',\n size: 'sm',\n view: it => {\n return (\n {\n setToBeDeleted(it.id)\n return setDeleteDialog(true)\n }}>\n \n \n )\n }\n }\n ]}\n data={customRequests}\n Details={DetailsRow}\n expandable\n rowSize=\"sm\"\n />\n )}\n {!customRequests.length && (\n \n
\n It seems you haven't added any custom information requests yet.\n \n
\n Please read our{' '}\n \n Support Article\n {' '}\n on Compliance before adding new information requests.\n \n
toggleWizard()}>\n Add custom information request\n \n
\n )}\n {showWizard && (\n {\n setToBeEdited(null)\n setHasError(false)\n toggleWizard()\n }}\n toBeEdited={toBeEdited}\n onSave={(...args) => handleSave(...args)}\n />\n )}\n\n {\n setDeleteDialog(false)\n setHasError(false)\n }}\n onConfirmed={() => handleDelete(toBeDeleted)}\n />\n >\n )\n}\n\nexport default CustomInfoRequests\n","export default {\n m0: {\n margin: 0\n },\n mb10: {\n marginBottom: 10\n },\n centerItems: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n height: '50%',\n justifyContent: 'center'\n },\n alignWithTitleSection: {\n marginTop: -47,\n display: 'flex'\n }\n}\n","import CustomInfoRequests from './CustomInfoRequests'\nexport default CustomInfoRequests\n","export default {\n switchLabel: {\n margin: 6,\n width: 24\n },\n tableRadioGroup: {\n flexDirection: 'row',\n justifyContent: 'space-between'\n },\n tableRadioLabel: {\n marginRight: 0\n },\n tableWidth: {\n width: 918\n }\n}\n","import { makeStyles, Box } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { Field, useFormikContext } from 'formik'\nimport * as R from 'ramda'\nimport React, { memo } from 'react'\nimport * as Yup from 'yup'\n\nimport { NumberInput, RadioGroup, Dropdown } from 'src/components/inputs/formik'\nimport { H4, Label2, Label1, Info1, Info2 } from 'src/components/typography'\nimport { errorColor } from 'src/styling/variables'\nimport { transformNumber } from 'src/utils/number'\n\n// import { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\n// import { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\n\nconst useStyles = makeStyles({\n radioLabel: {\n height: 40,\n padding: [[0, 10]]\n },\n radio: {\n padding: 4,\n margin: 4\n },\n radioGroup: {\n flexDirection: 'row'\n },\n error: {\n color: errorColor\n },\n specialLabel: {\n height: 40,\n padding: 0\n },\n specialGrid: {\n display: 'grid',\n gridTemplateColumns: [[182, 162, 181]]\n },\n directionIcon: {\n marginRight: 2\n },\n directionName: {\n marginLeft: 6\n },\n thresholdWrapper: {\n display: 'flex',\n flexDirection: 'column'\n },\n thresholdTitle: {\n marginTop: 50\n },\n thresholdContentWrapper: {\n display: 'flex',\n flexDirection: 'row'\n },\n thresholdField: {\n marginRight: 6,\n width: 75\n },\n description: {\n marginTop: 7\n },\n space: {\n marginLeft: 6,\n marginRight: 6\n },\n lastSpace: {\n marginLeft: 6\n },\n suspensionDays: {\n width: 34\n },\n input: {\n marginTop: -2\n },\n limitedInput: {\n width: 50\n },\n daysInput: {\n width: 60\n },\n dropdownField: {\n marginTop: 16,\n minWidth: 155\n }\n})\n\n// const direction = Yup.string().required()\n\nconst triggerType = Yup.string().required()\nconst threshold = Yup.object().shape({\n threshold: Yup.number()\n .nullable()\n .transform(transformNumber)\n .label('Invalid threshold'),\n thresholdDays: Yup.number()\n .transform(transformNumber)\n .nullable()\n .label('Invalid threshold days')\n})\n\nconst requirement = Yup.object().shape({\n requirement: Yup.string().required(),\n suspensionDays: Yup.number()\n .transform(transformNumber)\n .nullable()\n})\n\nconst Schema = Yup.object()\n .shape({\n triggerType,\n requirement,\n threshold\n // direction\n })\n .test(({ threshold, triggerType }, context) => {\n const errorMessages = {\n txAmount: threshold => 'Amount must be greater than or equal to 0',\n txVolume: threshold => {\n const thresholdMessage = 'Volume must be greater than or equal to 0'\n const thresholdDaysMessage = 'Days must be greater than 0'\n const message = []\n if (threshold.threshold < 0) message.push(thresholdMessage)\n if (threshold.thresholdDays <= 0) message.push(thresholdDaysMessage)\n return message.join(', ')\n },\n txVelocity: threshold => {\n const thresholdMessage = 'Transactions must be greater than 0'\n const thresholdDaysMessage = 'Days must be greater than 0'\n const message = []\n if (threshold.threshold <= 0) message.push(thresholdMessage)\n if (threshold.thresholdDays <= 0) message.push(thresholdDaysMessage)\n return message.join(', ')\n },\n consecutiveDays: threshold => 'Days must be greater than 0'\n }\n const thresholdValidator = {\n txAmount: threshold => threshold.threshold >= 0,\n txVolume: threshold =>\n threshold.threshold >= 0 && threshold.thresholdDays > 0,\n txVelocity: threshold =>\n threshold.threshold > 0 && threshold.thresholdDays > 0,\n consecutiveDays: threshold => threshold.thresholdDays > 0\n }\n\n if (triggerType && thresholdValidator[triggerType](threshold)) return\n\n return context.createError({\n path: 'threshold',\n message: errorMessages[triggerType](threshold)\n })\n })\n .test(({ requirement }, context) => {\n const requirementValidator = requirement =>\n requirement.requirement === 'suspend'\n ? requirement.suspensionDays > 0\n : true\n\n if (requirement && requirementValidator(requirement)) return\n\n return context.createError({\n path: 'requirement',\n message: 'Suspension days must be greater than 0'\n })\n })\n\n// Direction V2 only\n// const directionSchema = Yup.object().shape({ direction })\n\n// const directionOptions = [\n// {\n// display: 'Both',\n// code: 'both'\n// },\n// {\n// display: 'Only cash-in',\n// code: 'cashIn'\n// },\n// {\n// display: 'Only cash-out',\n// code: 'cashOut'\n// }\n// ]\n\n// const directionOptions2 = [\n// {\n// display: (\n// <>\n// in\n// >\n// ),\n// code: 'cashIn'\n// },\n// {\n// display: (\n// <>\n// out\n// >\n// ),\n// code: 'cashOut'\n// },\n// {\n// display: (\n// <>\n// \n// \n// \n// \n// \n// \n// \n// \n// >\n// ),\n// code: 'both'\n// }\n// ]\n\n// const Direction = () => {\n// const classes = useStyles()\n// const { errors } = useFormikContext()\n\n// const titleClass = {\n// [classes.error]: errors.direction\n// }\n\n// return (\n// <>\n// \n// \n// In which type of transactions will it trigger?\n// \n// \n// \n// >\n// )\n// }\n\n// const txDirection = {\n// schema: directionSchema,\n// options: directionOptions,\n// Component: Direction,\n// initialValues: { direction: '' }\n// }\n\n// TYPE\nconst typeSchema = Yup.object()\n .shape({\n triggerType: Yup.string().required(),\n threshold: Yup.object({\n threshold: Yup.number()\n .transform(transformNumber)\n .nullable(),\n thresholdDays: Yup.number()\n .transform(transformNumber)\n .nullable()\n })\n })\n .test(({ threshold, triggerType }, context) => {\n const errorMessages = {\n txAmount: threshold => 'Amount must be greater than or equal to 0',\n txVolume: threshold => {\n const thresholdMessage = 'Volume must be greater than or equal to 0'\n const thresholdDaysMessage = 'Days must be greater than 0'\n const message = []\n if (!threshold.threshold || threshold.threshold < 0)\n message.push(thresholdMessage)\n if (!threshold.thresholdDays || threshold.thresholdDays <= 0)\n message.push(thresholdDaysMessage)\n return message.join(', ')\n },\n txVelocity: threshold => {\n const thresholdMessage = 'Transactions must be greater than 0'\n const thresholdDaysMessage = 'Days must be greater than 0'\n const message = []\n if (!threshold.threshold || threshold.threshold <= 0)\n message.push(thresholdMessage)\n if (!threshold.thresholdDays || threshold.thresholdDays <= 0)\n message.push(thresholdDaysMessage)\n return message.join(', ')\n },\n consecutiveDays: threshold => 'Days must be greater than 0'\n }\n const thresholdValidator = {\n txAmount: threshold => threshold.threshold >= 0,\n txVolume: threshold =>\n threshold.threshold >= 0 && threshold.thresholdDays > 0,\n txVelocity: threshold =>\n threshold.threshold > 0 && threshold.thresholdDays > 0,\n consecutiveDays: threshold => threshold.thresholdDays > 0\n }\n\n if (triggerType && thresholdValidator[triggerType](threshold)) return\n\n return context.createError({\n path: 'threshold',\n message: errorMessages[triggerType](threshold)\n })\n })\n\nconst typeOptions = [\n { display: 'Transaction amount', code: 'txAmount' },\n { display: 'Transaction volume', code: 'txVolume' },\n { display: 'Transaction velocity', code: 'txVelocity' },\n { display: 'Consecutive days', code: 'consecutiveDays' }\n]\n\nconst Type = ({ ...props }) => {\n const classes = useStyles()\n const {\n errors,\n touched,\n values,\n setTouched,\n handleChange\n } = useFormikContext()\n\n const typeClass = {\n [classes.error]: errors.triggerType && touched.triggerType\n }\n\n const containsType = R.contains(values?.triggerType)\n const isThresholdCurrencyEnabled = containsType(['txAmount', 'txVolume'])\n const isTransactionAmountEnabled = containsType(['txVelocity'])\n const isThresholdDaysEnabled = containsType(['txVolume', 'txVelocity'])\n const isConsecutiveDaysEnabled = containsType(['consecutiveDays'])\n\n const hasAmountError =\n !!errors.threshold &&\n !!touched.threshold?.threshold &&\n !isConsecutiveDaysEnabled &&\n (!values.threshold?.threshold || values.threshold?.threshold < 0)\n const hasDaysError =\n !!errors.threshold &&\n !!touched.threshold?.thresholdDays &&\n !containsType(['txAmount']) &&\n (!values.threshold?.thresholdDays || values.threshold?.thresholdDays < 0)\n\n const triggerTypeError = !!(hasDaysError || hasAmountError)\n\n const thresholdClass = {\n [classes.error]: triggerTypeError\n }\n\n const isRadioGroupActive = () => {\n return (\n isThresholdCurrencyEnabled ||\n isTransactionAmountEnabled ||\n isThresholdDaysEnabled ||\n isConsecutiveDaysEnabled\n )\n }\n\n return (\n <>\n \n Choose trigger type \n \n {\n handleChange(e)\n setTouched({\n threshold: false,\n thresholdDays: false\n })\n }}\n />\n\n \n {isRadioGroupActive() && (\n
\n Threshold\n \n )}\n
\n {isThresholdCurrencyEnabled && (\n <>\n \n \n {props.currency}\n \n >\n )}\n {isTransactionAmountEnabled && (\n <>\n \n \n transactions\n \n >\n )}\n {isThresholdDaysEnabled && (\n <>\n \n in\n \n \n days \n >\n )}\n {isConsecutiveDaysEnabled && (\n <>\n \n \n consecutive days\n \n >\n )}\n
\n
\n >\n )\n}\n\nconst type = currency => ({\n schema: typeSchema,\n options: typeOptions,\n Component: Type,\n props: { currency },\n initialValues: {\n triggerType: '',\n threshold: { threshold: '', thresholdDays: '' }\n }\n})\n\nconst requirementSchema = Yup.object()\n .shape({\n requirement: Yup.object({\n requirement: Yup.string().required(),\n suspensionDays: Yup.number().when('requirement', {\n is: value => value === 'suspend',\n then: Yup.number()\n .nullable()\n .transform(transformNumber),\n otherwise: Yup.number()\n .nullable()\n .transform(() => null)\n }),\n customInfoRequestId: Yup.string().when('requirement', {\n is: value => value === 'custom',\n then: Yup.string(),\n otherwise: Yup.string()\n .nullable()\n .transform(() => '')\n })\n }).required()\n })\n .test(({ requirement }, context) => {\n const requirementValidator = (requirement, type) => {\n switch (type) {\n case 'suspend':\n return requirement.requirement === type\n ? requirement.suspensionDays > 0\n : true\n case 'custom':\n return requirement.requirement === type\n ? !R.isNil(requirement.customInfoRequestId)\n : true\n default:\n return true\n }\n }\n\n if (requirement && !requirementValidator(requirement, 'suspend'))\n return context.createError({\n path: 'requirement',\n message: 'Suspension days must be greater than 0'\n })\n\n if (requirement && !requirementValidator(requirement, 'custom'))\n return context.createError({\n path: 'requirement',\n message: 'You must select an item'\n })\n })\n\nconst requirementOptions = [\n { display: 'SMS verification', code: 'sms' },\n { display: 'ID card image', code: 'idCardPhoto' },\n { display: 'ID data', code: 'idCardData' },\n { display: 'Customer camera', code: 'facephoto' },\n { display: 'Sanctions', code: 'sanctions' },\n { display: 'US SSN', code: 'usSsn' },\n // { display: 'Super user', code: 'superuser' },\n { display: 'Suspend', code: 'suspend' },\n { display: 'Block', code: 'block' }\n]\n\nconst hasRequirementError = (errors, touched, values) =>\n !!errors.requirement &&\n !!touched.requirement?.suspensionDays &&\n (!values.requirement?.suspensionDays ||\n values.requirement?.suspensionDays < 0)\n\nconst hasCustomRequirementError = (errors, touched, values) =>\n !!errors.requirement &&\n !!touched.requirement?.customInfoRequestId &&\n (!values.requirement?.customInfoRequestId ||\n !R.isNil(values.requirement?.customInfoRequestId))\n\nconst Requirement = ({ customInfoRequests }) => {\n const classes = useStyles()\n const {\n touched,\n errors,\n values,\n handleChange,\n setTouched\n } = useFormikContext()\n\n const isSuspend = values?.requirement?.requirement === 'suspend'\n const isCustom = values?.requirement?.requirement === 'custom'\n const makeCustomReqOptions = () =>\n customInfoRequests.map(it => ({\n value: it.id,\n display: it.customRequest.name\n }))\n\n const enableCustomRequirement = customInfoRequests?.length > 0\n const customInfoOption = {\n display: 'Custom information requirement',\n code: 'custom'\n }\n const options = enableCustomRequirement\n ? [...requirementOptions, customInfoOption]\n : [...requirementOptions]\n const titleClass = {\n [classes.error]:\n (!!errors.requirement && !isSuspend && !isCustom) ||\n (isSuspend && hasRequirementError(errors, touched, values)) ||\n (isCustom && hasCustomRequirementError(errors, touched, values))\n }\n\n return (\n <>\n \n Choose a requirement \n \n {\n handleChange(e)\n setTouched({\n suspensionDays: false\n })\n }}\n />\n {isSuspend && (\n \n )}\n {isCustom && (\n \n \n
\n )}\n >\n )\n}\n\nconst requirements = customInfoRequests => ({\n schema: requirementSchema,\n options: requirementOptions,\n Component: Requirement,\n props: { customInfoRequests },\n hasRequirementError: hasRequirementError,\n hasCustomRequirementError: hasCustomRequirementError,\n initialValues: {\n requirement: {\n requirement: '',\n suspensionDays: '',\n customInfoRequestId: ''\n }\n }\n})\n\nconst getView = (data, code, compare) => it => {\n if (!data) return ''\n\n return R.compose(R.prop(code), R.find(R.propEq(compare ?? 'code', it)))(data)\n}\n\n// const DirectionDisplay = ({ code }) => {\n// const classes = useStyles()\n// const displayName = getView(directionOptions, 'display')(code)\n// const showCashIn = code === 'cashIn' || code === 'both'\n// const showCashOut = code === 'cashOut' || code === 'both'\n\n// return (\n// \n// {showCashOut && }\n// {showCashIn && }\n// {displayName} \n//
\n// )\n// }\n\nconst customReqIdMatches = customReqId => it => {\n return it.id === customReqId\n}\n\nconst RequirementInput = ({ customInfoRequests }) => {\n const { values } = useFormikContext()\n const classes = useStyles()\n\n const requirement = values?.requirement?.requirement\n const customRequestId =\n R.path(['requirement', 'customInfoRequestId'])(values) ?? ''\n const isSuspend = requirement === 'suspend'\n const display = customRequestId\n ? R.path(['customRequest', 'name'])(\n R.find(customReqIdMatches(customRequestId))(customInfoRequests)\n ) ?? ''\n : getView(requirementOptions, 'display')(requirement)\n\n return (\n \n {`${display} ${isSuspend ? 'for' : ''}`}\n {isSuspend && (\n \n )}\n {isSuspend && 'days'}\n \n )\n}\n\nconst RequirementView = ({\n requirement,\n suspensionDays,\n customInfoRequestId,\n customInfoRequests\n}) => {\n const classes = useStyles()\n const display =\n requirement === 'custom'\n ? R.path(['customRequest', 'name'])(\n R.find(customReqIdMatches(customInfoRequestId))(customInfoRequests)\n ) ?? ''\n : getView(requirementOptions, 'display')(requirement)\n const isSuspend = requirement === 'suspend'\n return (\n \n {`${display} ${isSuspend ? 'for' : ''}`}\n {isSuspend && (\n \n {suspensionDays}\n \n )}\n {isSuspend && 'days'}\n \n )\n}\n\nconst DisplayThreshold = ({ config, currency, isEdit }) => {\n const classes = useStyles()\n\n const inputClasses = {\n [classes.input]: true,\n [classes.limitedInput]: config?.triggerType === 'txVelocity',\n [classes.daysInput]: config?.triggerType === 'consecutiveDays'\n }\n\n const threshold = config?.threshold?.threshold\n const thresholdDays = config?.threshold?.thresholdDays\n\n const Threshold = isEdit ? (\n \n ) : (\n {threshold} \n )\n const ThresholdDays = isEdit ? (\n \n ) : (\n {thresholdDays} \n )\n\n switch (config?.triggerType) {\n case 'txAmount':\n return (\n \n {Threshold}\n \n {currency}\n \n \n )\n case 'txVolume':\n return (\n \n {Threshold}\n \n {currency}\n \n \n in\n \n {ThresholdDays}\n \n days\n \n \n )\n case 'txVelocity':\n return (\n \n {Threshold}\n \n transactions in\n \n {ThresholdDays}\n \n days\n \n \n )\n case 'consecutiveDays':\n return (\n \n {ThresholdDays}\n \n days\n \n \n )\n default:\n return ''\n }\n}\n\nconst ThresholdInput = memo(({ currency }) => {\n const { values } = useFormikContext()\n\n return \n})\n\nconst ThresholdView = ({ config, currency }) => {\n return \n}\n\nconst getElements = (currency, classes, customInfoRequests) => [\n {\n name: 'triggerType',\n size: 'sm',\n width: 230,\n input: ({ field: { value: name } }) => (\n <>{getView(typeOptions, 'display')(name)}>\n ),\n view: getView(typeOptions, 'display'),\n inputProps: {\n options: typeOptions,\n valueProp: 'code',\n labelProp: 'display',\n optionsLimit: null\n }\n },\n {\n name: 'requirement',\n size: 'sm',\n width: 230,\n bypassField: true,\n input: () => ,\n view: it => (\n \n )\n },\n {\n name: 'threshold',\n size: 'sm',\n width: 284,\n textAlign: 'right',\n input: () => ,\n view: (it, config) => \n }\n // {\n // name: 'direction',\n // size: 'sm',\n // width: 282,\n // view: it => ,\n // input: RadioGroup,\n // inputProps: {\n // labelClassName: classes.tableRadioLabel,\n // className: classes.tableRadioGroup,\n // options: directionOptions2\n // }\n // }\n]\n\nconst triggerOrder = R.map(R.prop('code'))(typeOptions)\nconst sortBy = [\n R.comparator(\n (a, b) =>\n triggerOrder.indexOf(a.triggerType) < triggerOrder.indexOf(b.triggerType)\n )\n]\n\nconst fromServer = (triggers, customInfoRequests) => {\n return R.map(\n ({\n requirement,\n suspensionDays,\n threshold,\n thresholdDays,\n customInfoRequestId,\n ...rest\n }) => ({\n requirement: {\n requirement,\n suspensionDays,\n customInfoRequestId\n },\n threshold: {\n threshold,\n thresholdDays\n },\n ...rest\n })\n )(triggers)\n}\n\nconst toServer = triggers =>\n R.map(({ requirement, threshold, ...rest }) => ({\n requirement: requirement.requirement,\n suspensionDays: requirement.suspensionDays,\n threshold: threshold.threshold,\n thresholdDays: threshold.thresholdDays,\n customInfoRequestId: requirement.customInfoRequestId,\n ...rest\n }))(triggers)\n\nexport {\n Schema,\n getElements,\n // txDirection,\n type,\n requirements,\n sortBy,\n fromServer,\n toServer,\n getView,\n requirementOptions\n}\n","import { makeStyles } from '@material-ui/core'\nimport { Form, Formik, useFormikContext } from 'formik'\nimport * as R from 'ramda'\nimport React, { useState, Fragment, useEffect } from 'react'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Modal from 'src/components/Modal'\nimport Stepper from 'src/components/Stepper'\nimport { Button } from 'src/components/buttons'\nimport { H5, Info3 } from 'src/components/typography'\nimport { comet } from 'src/styling/variables'\nimport { singularOrPlural } from 'src/utils/string'\n\nimport { type, requirements } from './helper'\n\nconst LAST_STEP = 2\n\nconst styles = {\n stepper: {\n margin: [[16, 0, 14, 0]]\n },\n submit: {\n display: 'flex',\n flexDirection: 'row',\n margin: [['auto', 0, 24]]\n },\n button: {\n marginLeft: 'auto'\n },\n form: {\n height: '100%',\n display: 'flex',\n flexDirection: 'column'\n },\n infoTitle: {\n margin: [[18, 0, 20, 0]]\n },\n infoCurrentText: {\n color: comet\n },\n blankSpace: {\n padding: [[0, 30]],\n margin: [[0, 4, 0, 2]],\n borderBottom: `1px solid ${comet}`,\n display: 'inline-block'\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst getStep = (step, currency, customInfoRequests) => {\n switch (step) {\n // case 1:\n // return txDirection\n case 1:\n return type(currency)\n case 2:\n return requirements(customInfoRequests)\n default:\n return Fragment\n }\n}\n\nconst getText = (step, config, currency, classes) => {\n switch (step) {\n // case 1:\n // return `In ${getDirectionText(config)} transactions`\n case 1:\n return <>If the user {getTypeText(config, currency, classes)}>\n case 2:\n return <>the user will be {getRequirementText(config, classes)}.>\n default:\n return <>>\n }\n}\n\nconst orUnderline = (value, classes) => {\n const blankSpaceEl = \n return R.isEmpty(value) || R.isNil(value) ? blankSpaceEl : value\n}\n\n// const getDirectionText = config => {\n// switch (config.direction) {\n// case 'both':\n// return 'both cash-in and cash-out'\n// case 'cashIn':\n// return 'cash-in'\n// case 'cashOut':\n// return 'cash-out'\n// default:\n// return orUnderline(null)\n// }\n// }\n\nconst getTypeText = (config, currency, classes) => {\n switch (config.triggerType) {\n case 'txAmount':\n return (\n <>\n makes a single transaction over{' '}\n {orUnderline(config.threshold.threshold, classes)} {currency}\n >\n )\n case 'txVolume':\n return (\n <>\n makes more than {orUnderline(config.threshold.threshold, classes)}{' '}\n {currency} worth of transactions within{' '}\n {orUnderline(config.threshold.thresholdDays, classes)}{' '}\n {singularOrPlural(config.threshold.thresholdDays, 'day', 'days')}\n >\n )\n case 'txVelocity':\n return (\n <>\n makes more than {orUnderline(config.threshold.threshold, classes)}{' '}\n {singularOrPlural(\n config.threshold.threshold,\n 'transaction',\n 'transactions'\n )}{' '}\n in {orUnderline(config.threshold.thresholdDays, classes)}{' '}\n {singularOrPlural(config.threshold.thresholdDays, 'day', 'days')}\n >\n )\n case 'consecutiveDays':\n return (\n <>\n at least one transaction every day for{' '}\n {orUnderline(config.threshold.thresholdDays, classes)}{' '}\n {singularOrPlural(config.threshold.thresholdDays, 'day', 'days')}\n >\n )\n default:\n return <>>\n }\n}\n\nconst getRequirementText = (config, classes) => {\n switch (config.requirement?.requirement) {\n case 'sms':\n return <>asked to enter code provided through SMS verification>\n case 'idCardPhoto':\n return <>asked to scan a ID with photo>\n case 'idCardData':\n return <>asked to scan a ID>\n case 'facephoto':\n return <>asked to have a photo taken>\n case 'usSsn':\n return <>asked to input his social security number>\n case 'sanctions':\n return <>matched against the OFAC sanctions list>\n case 'superuser':\n return <>>\n case 'suspend':\n return (\n <>\n suspended for{' '}\n {orUnderline(config.requirement.suspensionDays, classes)}{' '}\n {singularOrPlural(config.requirement.suspensionDays, 'day', 'days')}\n >\n )\n case 'block':\n return <>blocked>\n case 'custom':\n return <>asked to fulfill a custom requirement>\n default:\n return orUnderline(null, classes)\n }\n}\n\nconst InfoPanel = ({ step, config = {}, liveValues = {}, currency }) => {\n const classes = useStyles()\n\n const oldText = R.range(1, step).map((it, idx) => (\n \n {getText(it, config, currency, classes)}\n \n ))\n const newText = getText(step, liveValues, currency, classes)\n const isLastStep = step === LAST_STEP\n\n return (\n <>\n Trigger overview so far \n \n {oldText}\n {step !== 1 && ', '}\n {newText} \n {!isLastStep && '...'}\n \n >\n )\n}\n\nconst GetValues = ({ setValues }) => {\n const { values } = useFormikContext()\n useEffect(() => {\n setValues && values && setValues(values)\n }, [setValues, values])\n\n return null\n}\n\nconst Wizard = ({ onClose, save, error, currency, customInfoRequests }) => {\n const classes = useStyles()\n\n const [liveValues, setLiveValues] = useState({})\n const [{ step, config }, setState] = useState({\n step: 1\n })\n\n const isLastStep = step === LAST_STEP\n const stepOptions = getStep(step, currency, customInfoRequests)\n\n const onContinue = async it => {\n const newConfig = R.merge(config, stepOptions.schema.cast(it))\n\n if (isLastStep) {\n return save(newConfig)\n }\n\n setState({\n step: step + 1,\n config: newConfig\n })\n }\n\n const createErrorMessage = (errors, touched, values) => {\n const triggerType = values?.triggerType\n const containsType = R.contains(triggerType)\n const isSuspend = values?.requirement?.requirement === 'suspend'\n const isCustom = values?.requirement?.requirement === 'custom'\n\n const hasRequirementError = requirements().hasRequirementError(\n errors,\n touched,\n values\n )\n const hasCustomRequirementError = requirements().hasCustomRequirementError(\n errors,\n touched,\n values\n )\n\n const hasAmountError =\n !!errors.threshold &&\n !!touched.threshold?.threshold &&\n !containsType(['consecutiveDays']) &&\n (!values.threshold?.threshold || values.threshold?.threshold < 0)\n\n const hasDaysError =\n !!errors.threshold &&\n !!touched.threshold?.thresholdDays &&\n !containsType(['txAmount']) &&\n (!values.threshold?.thresholdDays || values.threshold?.thresholdDays < 0)\n\n if (containsType(['txAmount', 'txVolume', 'txVelocity']) && hasAmountError)\n return errors.threshold\n\n if (\n containsType(['txVolume', 'txVelocity', 'consecutiveDays']) &&\n hasDaysError\n )\n return errors.threshold\n\n if (\n (isSuspend && hasRequirementError) ||\n (isCustom && hasCustomRequirementError)\n )\n return errors.requirement\n }\n\n return (\n <>\n \n }\n infoPanelHeight={172}\n open={true}>\n \n \n {({ errors, touched, values }) => (\n \n )}\n \n \n >\n )\n}\n\nexport default Wizard\n","import { useMutation } from '@apollo/react-hooks'\nimport { makeStyles, Box } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\nimport { v4 } from 'uuid'\n\nimport { Button } from 'src/components/buttons'\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport { H2 } from 'src/components/typography'\nimport { fromNamespace, namespaces } from 'src/utils/config'\n\nimport styles from './Triggers.styles'\nimport Wizard from './Wizard'\nimport { Schema, getElements, sortBy, toServer } from './helper'\n\nconst useStyles = makeStyles(styles)\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst TriggerView = ({\n triggers,\n showWizard,\n config,\n toggleWizard,\n customInfoRequests\n}) => {\n const currency = R.path(['fiatCurrency'])(\n fromNamespace(namespaces.LOCALE)(config)\n )\n const classes = useStyles()\n const [error, setError] = useState(null)\n\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n onCompleted: () => toggleWizard('off'),\n refetchQueries: () => ['getData'],\n onError: error => setError(error)\n })\n\n const save = config => {\n setError(null)\n return saveConfig({\n variables: { config: { triggers: toServer(config.triggers) } }\n })\n }\n\n const add = rawConfig => {\n const toSave = R.concat([{ id: v4(), direction: 'both', ...rawConfig }])(\n triggers\n )\n return saveConfig({ variables: { config: { triggers: toServer(toSave) } } })\n }\n\n return (\n <>\n \n {showWizard && (\n \n )}\n {R.isEmpty(triggers) && (\n \n \n It seems there are no active compliance triggers on your network\n \n toggleWizard()}>Add first trigger \n \n )}\n >\n )\n}\n\nexport default TriggerView\n","import * as R from 'ramda'\nimport * as Yup from 'yup'\n\nimport Autocomplete from 'src/components/inputs/formik/Autocomplete.js'\nimport { getView } from 'src/pages/Triggers/helper'\n\nconst buildAdvancedRequirementOptions = customInfoRequests => {\n const base = [\n { display: 'Sanctions', code: 'sanctions' },\n { display: 'ID card image', code: 'idCardPhoto' },\n { display: 'ID data', code: 'idCardData' },\n { display: 'Customer camera', code: 'facephoto' },\n { display: 'US SSN', code: 'usSsn' }\n ]\n\n const custom = R.map(it => ({\n display: it.customRequest.name,\n code: it.id\n }))(customInfoRequests)\n\n return R.concat(base, custom)\n}\n\nconst displayRequirement = (code, customInfoRequests) => {\n return R.prop(\n 'display',\n R.find(R.propEq('code', code))(\n buildAdvancedRequirementOptions(customInfoRequests)\n )\n )\n}\n\nconst defaultSchema = Yup.object().shape({\n expirationTime: Yup.string()\n .label('Expiration time')\n .required(),\n automation: Yup.string()\n .label('Automation')\n .matches(/(Manual|Automatic)/)\n .required()\n})\n\nconst getOverridesSchema = (values, customInfoRequests) => {\n return Yup.object().shape({\n id: Yup.string()\n .label('Requirement')\n .required()\n .test({\n test() {\n const { requirement } = this.parent\n if (R.find(R.propEq('requirement', requirement))(values)) {\n return this.createError({\n message: `Requirement ${displayRequirement(\n requirement,\n customInfoRequests\n )} already overriden`\n })\n }\n return true\n }\n }),\n expirationTime: Yup.string()\n .label('Expiration time')\n .required(),\n automation: Yup.string()\n .label('Automation')\n .matches(/(Manual|Automatic)/)\n .required()\n })\n}\n\nconst getDefaultSettings = () => {\n return [\n {\n name: 'expirationTime',\n header: 'Expiration time',\n width: 196,\n size: 'sm',\n editable: false\n },\n {\n name: 'automation',\n header: 'Automation',\n width: 196,\n size: 'sm',\n input: Autocomplete,\n inputProps: {\n options: [\n { code: 'Automatic', display: 'Automatic' },\n { code: 'Manual', display: 'Manual' }\n ],\n labelProp: 'display',\n valueProp: 'code'\n }\n }\n ]\n}\n\nconst getOverrides = customInfoRequests => {\n return [\n {\n name: 'requirement',\n header: 'Requirement',\n width: 196,\n size: 'sm',\n view: getView(\n buildAdvancedRequirementOptions(customInfoRequests),\n 'display'\n ),\n input: Autocomplete,\n inputProps: {\n options: buildAdvancedRequirementOptions(customInfoRequests),\n labelProp: 'display',\n valueProp: 'code'\n }\n },\n {\n name: 'expirationTime',\n header: 'Expiration time',\n width: 196,\n size: 'sm',\n editable: false\n },\n {\n name: 'automation',\n header: 'Automation',\n width: 196,\n size: 'sm',\n input: Autocomplete,\n inputProps: {\n options: [\n { code: 'Automatic', display: 'Automatic' },\n { code: 'Manual', display: 'Manual' }\n ],\n labelProp: 'display',\n valueProp: 'code'\n }\n }\n ]\n}\n\nconst defaults = [\n {\n expirationTime: 'Forever',\n automation: 'Automatic'\n }\n]\n\nconst overridesDefaults = {\n requirement: '',\n expirationTime: 'Forever',\n automation: 'Automatic'\n}\n\nexport {\n defaultSchema,\n getOverridesSchema,\n defaults,\n overridesDefaults,\n getDefaultSettings,\n getOverrides\n}\n","import { useMutation, useQuery } from '@apollo/react-hooks'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { memo, useState } from 'react'\n\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport Section from 'src/components/layout/Section'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nimport {\n defaultSchema,\n getOverridesSchema,\n defaults,\n overridesDefaults,\n getDefaultSettings,\n getOverrides\n} from './helper'\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst GET_INFO = gql`\n query getData {\n config\n }\n`\n\nconst GET_CUSTOM_REQUESTS = gql`\n query customInfoRequests {\n customInfoRequests {\n id\n customRequest\n enabled\n }\n }\n`\n\nconst AdvancedTriggersSettings = memo(() => {\n const SCREEN_KEY = namespaces.TRIGGERS\n const [error, setError] = useState(null)\n const [isEditingDefault, setEditingDefault] = useState(false)\n const [isEditingOverrides, setEditingOverrides] = useState(false)\n\n const { data, loading: configLoading } = useQuery(GET_INFO)\n const { data: customInfoReqData, loading: customInfoLoading } = useQuery(\n GET_CUSTOM_REQUESTS\n )\n\n const customInfoRequests =\n R.path(['customInfoRequests'])(customInfoReqData) ?? []\n const enabledCustomInfoRequests = R.filter(R.propEq('enabled', true))(\n customInfoRequests\n )\n\n const loading = configLoading || customInfoLoading\n\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n refetchQueries: () => ['getData'],\n onError: error => setError(error)\n })\n\n const saveDefaults = it => {\n const newConfig = toNamespace(SCREEN_KEY)(it.triggersConfig[0])\n setError(null)\n return saveConfig({\n variables: { config: newConfig }\n })\n }\n\n const saveOverrides = it => {\n const config = toNamespace(SCREEN_KEY)(it)\n setError(null)\n return saveConfig({ variables: { config } })\n }\n\n const requirementsData =\n data?.config && fromNamespace(SCREEN_KEY)(data?.config)\n const requirementsDefaults =\n requirementsData && !R.isEmpty(requirementsData)\n ? requirementsData\n : defaults\n const requirementsOverrides = requirementsData?.overrides ?? []\n\n const onEditingDefault = (it, editing) => setEditingDefault(editing)\n const onEditingOverrides = (it, editing) => setEditingOverrides(editing)\n\n return (\n !loading && (\n <>\n \n \n >\n )\n )\n})\n\nexport default AdvancedTriggersSettings\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles, Box } from '@material-ui/core'\nimport classnames from 'classnames'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { HoverableTooltip } from 'src/components/Tooltip'\nimport { Link } from 'src/components/buttons'\nimport { Switch } from 'src/components/inputs'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport { P, Label2 } from 'src/components/typography'\nimport { ReactComponent as ReverseCustomInfoIcon } from 'src/styling/icons/circle buttons/filter/white.svg'\nimport { ReactComponent as CustomInfoIcon } from 'src/styling/icons/circle buttons/filter/zodiac.svg'\nimport { ReactComponent as ReverseSettingsIcon } from 'src/styling/icons/circle buttons/settings/white.svg'\nimport { ReactComponent as SettingsIcon } from 'src/styling/icons/circle buttons/settings/zodiac.svg'\nimport { fromNamespace, toNamespace } from 'src/utils/config'\n\nimport CustomInfoRequests from './CustomInfoRequests'\nimport TriggerView from './TriggerView'\nimport styles from './Triggers.styles'\nimport AdvancedTriggers from './components/AdvancedTriggers'\nimport { fromServer } from './helper'\nconst useStyles = makeStyles(styles)\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst GET_CONFIG = gql`\n query getData {\n config\n }\n`\n\nconst GET_CUSTOM_REQUESTS = gql`\n query customInfoRequests {\n customInfoRequests {\n id\n customRequest\n enabled\n }\n }\n`\n\nconst Triggers = () => {\n const classes = useStyles()\n const [wizardType, setWizard] = useState(false)\n const { data, loading: configLoading } = useQuery(GET_CONFIG)\n const { data: customInfoReqData, loading: customInfoLoading } = useQuery(\n GET_CUSTOM_REQUESTS\n )\n const [error, setError] = useState(null)\n const [subMenu, setSubMenu] = useState(false)\n\n const customInfoRequests =\n R.path(['customInfoRequests'])(customInfoReqData) ?? []\n const enabledCustomInfoRequests = R.filter(R.propEq('enabled', true))(\n customInfoRequests\n )\n\n const triggers = fromServer(data?.config?.triggers ?? [])\n const complianceConfig =\n data?.config && fromNamespace('compliance')(data.config)\n const rejectAddressReuse = complianceConfig?.rejectAddressReuse ?? false\n\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n onCompleted: () => setWizard(false),\n refetchQueries: () => ['getData'],\n onError: error => setError(error)\n })\n\n const addressReuseSave = rawConfig => {\n const config = toNamespace('compliance')(rawConfig)\n return saveConfig({ variables: { config } })\n }\n\n const titleSectionWidth = {\n [classes.tableWidth]: !subMenu === 'customInfoRequests'\n }\n\n const setBlur = shouldBlur => {\n return shouldBlur\n ? document.querySelector('#root').classList.add('root-blur')\n : document.querySelector('#root').classList.remove('root-blur')\n }\n\n const toggleWizard = wizardName => forceDisable => {\n if (wizardType === wizardName || forceDisable) {\n setBlur(false)\n return setWizard(null)\n }\n setBlur(true)\n return setWizard(wizardName)\n }\n\n const loading = configLoading || customInfoLoading\n\n return (\n <>\n {\n setSubMenu(show ? 'advancedSettings' : false)\n }\n },\n {\n text: 'Custom info requests',\n icon: CustomInfoIcon,\n inverseIcon: ReverseCustomInfoIcon,\n forceDisable: !(subMenu === 'customInfoRequests'),\n toggle: show => {\n setSubMenu(show ? 'customInfoRequests' : false)\n }\n }\n ]}\n className={classnames(titleSectionWidth)}>\n {!subMenu && (\n \n \n Reject reused addresses
\n {\n addressReuseSave({ rejectAddressReuse: event.target.checked })\n }}\n value={rejectAddressReuse}\n />\n \n {rejectAddressReuse ? 'On' : 'Off'}\n \n \n \n This option requires a user to scan a different cryptocurrency\n address if they attempt to scan one that had been previously\n used for a transaction in your network\n
\n \n \n \n )}\n {subMenu === 'customInfoRequests' &&\n !R.isEmpty(enabledCustomInfoRequests) && (\n \n toggleWizard('newCustomRequest')()}>\n + Add new custom info request\n \n \n )}\n {!loading && !subMenu && !R.isEmpty(triggers) && (\n \n toggleWizard('newTrigger')()}>\n + Add new trigger\n \n \n )}\n \n {!loading && subMenu === 'customInfoRequests' && (\n \n )}\n {!loading && !subMenu && (\n \n )}\n {!loading && subMenu === 'advancedSettings' && (\n \n )}\n >\n )\n}\n\nexport default Triggers\n","import Triggers from './Triggers'\n\nexport default Triggers\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/key/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group\",\n transform: \"translate(0.500000, 0.500000)\",\n stroke: \"#FFFFFF\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n cx: 2.75,\n cy: 8.25,\n r: 2.75\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 5.04166667,\n y1: 5.95833333,\n x2: 11,\n y2: 0,\n id: \"Path-13\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 8.25,\n y1: 3.66666667,\n x2: 10.5416667,\n y2: 1.375,\n id: \"Path-13-Copy\",\n strokeWidth: 2,\n strokeLinejoin: \"round\"\n})));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/button/key/white\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.8c4085b7.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/key/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group\",\n transform: \"translate(0.500000, 0.500000)\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n cx: 2.75,\n cy: 8.25,\n r: 2.75\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 5.04166667,\n y1: 5.95833333,\n x2: 11,\n y2: 0,\n id: \"Path-13\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 8.25,\n y1: 3.66666667,\n x2: 10.5416667,\n y2: 1.375,\n id: \"Path-13-Copy\",\n strokeWidth: 2,\n strokeLinejoin: \"round\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/button/key/zodiac\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.e181d06a.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/lock/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Lock-Icon-White\",\n transform: \"translate(0.500000, 0.500000)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.98058644,2.48058644 C7.98058644,1.11059638 6.86999006,0 5.5,0 C4.13000994,0 3.01941356,1.11059638 3.01941356,2.48058644 C3.01941356,3.39391315 3.01941356,4.09482878 3.01941356,4.58333333 L7.98058644,4.58333333 C7.98058644,4.09482878 7.98058644,3.39391315 7.98058644,2.48058644 Z\",\n id: \"Lock\",\n stroke: \"#FFFFFF\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Body\",\n stroke: \"#FFFFFF\",\n strokeLinejoin: \"round\",\n x: 0,\n y: 4.58333333,\n width: 11,\n height: 6.41666667\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Key-Hole\",\n fill: \"#FFFFFF\",\n cx: 5.5,\n cy: 7.33333333,\n r: 1\n})));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/button/lock/white\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.9f2c5216.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/lock/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Lock-Icon-Zodiac\",\n transform: \"translate(0.500000, 0.500000)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.98058644,2.48058644 C7.98058644,1.11059638 6.86999006,0 5.5,0 C4.13000994,0 3.01941356,1.11059638 3.01941356,2.48058644 C3.01941356,3.39391315 3.01941356,4.09482878 3.01941356,4.58333333 L7.98058644,4.58333333 C7.98058644,4.09482878 7.98058644,3.39391315 7.98058644,2.48058644 Z\",\n id: \"Lock\",\n stroke: \"#1B2559\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Body\",\n stroke: \"#1B2559\",\n strokeLinejoin: \"round\",\n x: 0,\n y: 4.58333333,\n width: 11,\n height: 6.41666667\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Key-Hole\",\n fill: \"#1B2559\",\n cx: 5.5,\n cy: 7.33333333,\n r: 1\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/button/lock/zodiac\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.f3536991.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/user-role/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"User-Role-Icon-White\",\n transform: \"translate(2.500000, 0.500000)\",\n stroke: \"#FFFFFF\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.50008791,6.84274776 L5.5,11 L3.66666667,9.35927189 L1.83333333,11 L1.83223109,6.84216075 C2.37179795,7.15453375 2.99835187,7.33333333 3.66666667,7.33333333 C4.33456272,7.33333333 4.96075021,7.15475774 5.50008791,6.84274776 Z\",\n id: \"Bottom\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Top\",\n cx: 3.66666667,\n cy: 3.66666667,\n r: 3.66666667\n})));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/button/user-role/white\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.47196e40.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/user-role/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"User-Role-Icon-Zodiac\",\n transform: \"translate(2.500000, 0.500000)\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.50008791,6.84274776 L5.5,11 L3.66666667,9.35927189 L1.83333333,11 L1.83223109,6.84216075 C2.37179795,7.15453375 2.99835187,7.33333333 3.66666667,7.33333333 C4.33456272,7.33333333 4.96075021,7.15475774 5.50008791,6.84274776 Z\",\n id: \"Bottom\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Top\",\n cx: 3.66666667,\n cy: 3.66666667,\n r: 3.66666667\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/button/user-role/zodiac\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.71910a69.svg\";\nexport { ForwardRef as ReactComponent };","import {\n spacer,\n fontPrimary,\n fontSecondary,\n primaryColor,\n subheaderColor,\n errorColor\n} from 'src/styling/variables'\n\nconst styles = {\n footer: {\n display: 'flex',\n flexDirection: 'row',\n margin: [['auto', 0, spacer * 3, 0]]\n },\n modalTitle: {\n marginTop: -5,\n color: primaryColor,\n fontFamily: fontPrimary\n },\n modalLabel1: {\n marginTop: 20\n },\n modalLabel2: {\n marginTop: 40\n },\n inputLabel: {\n color: primaryColor,\n fontFamily: fontPrimary,\n fontSize: 24,\n marginLeft: 8,\n marginTop: 15\n },\n tableWidth: {\n width: 1132\n },\n radioGroup: {\n flexDirection: 'row',\n width: 500\n },\n radioLabel: {\n width: 150,\n height: 48\n },\n copyToClipboard: {\n marginLeft: 'auto',\n paddingTop: 7,\n marginRight: -5\n },\n chip: {\n backgroundColor: subheaderColor,\n fontFamily: fontPrimary,\n marginLeft: 10\n },\n info: {\n fontFamily: fontSecondary,\n textAlign: 'justify'\n },\n addressWrapper: {\n backgroundColor: subheaderColor,\n marginTop: 8,\n height: 35\n },\n address: {\n margin: `0px ${spacer * 2}px 0px ${spacer * 2}px`,\n paddingRight: -15\n },\n errorMessage: {\n fontFamily: fontSecondary,\n color: errorColor\n },\n codeContainer: {\n marginTop: 15,\n marginBottom: 15\n },\n form: {\n display: 'flex',\n flexDirection: 'column',\n height: '100%'\n },\n submit: {\n margin: [['auto', 0, 0, 'auto']]\n },\n error: {\n color: errorColor\n },\n link: {\n position: 'absolute',\n top: 10,\n left: 0,\n bottom: '-20px',\n right: '-20px',\n whiteSpace: 'nowrap',\n overflowX: 'auto',\n width: '92.5%'\n },\n linkWrapper: {\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n position: 'relative'\n },\n loginWrapper: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between'\n },\n username: {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n width: '100%'\n },\n roleSwitch: {\n marginLeft: 15\n },\n actionButtonWrapper: {\n display: 'flex',\n gap: 12\n },\n enterButton: {\n display: 'none'\n }\n}\n\nexport default styles\n","import { useLazyQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { Form, Formik } from 'formik'\nimport gql from 'graphql-tag'\nimport React, { useState } from 'react'\n\nimport Modal from 'src/components/Modal'\nimport { Button } from 'src/components/buttons'\nimport { CodeInput } from 'src/components/inputs/base'\nimport { Info2, P } from 'src/components/typography'\n\nimport styles from '../UserManagement.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst CONFIRM_2FA = gql`\n query confirm2FA($code: String!) {\n confirm2FA(code: $code)\n }\n`\n\nconst Input2FAModal = ({ showModal, handleClose, setConfirmation }) => {\n const classes = useStyles()\n\n const [twoFACode, setTwoFACode] = useState('')\n const [invalidCode, setInvalidCode] = useState(false)\n\n const handleCodeChange = value => {\n setTwoFACode(value)\n setInvalidCode(false)\n }\n\n const onContinue = () => {\n setConfirmation(twoFACode)\n setTwoFACode('')\n setInvalidCode(false)\n }\n\n const [confirm2FA, { error: queryError }] = useLazyQuery(CONFIRM_2FA, {\n onCompleted: ({ confirm2FA: success }) =>\n !success ? setInvalidCode(true) : onContinue()\n })\n\n const getErrorMsg = () => {\n if (queryError) return 'Internal server error'\n if (twoFACode.length !== 6 && invalidCode)\n return 'The code should have 6 characters!'\n if (invalidCode) return 'Code is invalid. Please try again.'\n return null\n }\n\n const handleSubmit = () => {\n if (twoFACode.length !== 6) {\n setInvalidCode(true)\n return\n }\n confirm2FA({ variables: { code: twoFACode } })\n }\n\n return (\n showModal && (\n \n Confirm action \n \n To make changes on this user, please confirm this action by entering\n your two-factor authentication code below.\n
\n {/* TODO: refactor the 2FA CodeInput to properly use Formik */}\n {}} initialValues={{}}>\n \n \n {getErrorMsg() && (\n {getErrorMsg()}
\n )}\n \n \n Confirm\n \n
\n \n )\n )\n}\n\nexport default Input2FAModal\n","import { useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport React, { useState } from 'react'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Modal from 'src/components/Modal'\nimport { Button } from 'src/components/buttons'\nimport { Info2, P } from 'src/components/typography'\n\nimport styles from '../UserManagement.styles'\n\nimport Input2FAModal from './Input2FAModal'\n\nconst CHANGE_USER_ROLE = gql`\n mutation changeUserRole(\n $confirmationCode: String\n $id: ID!\n $newRole: String!\n ) {\n changeUserRole(\n confirmationCode: $confirmationCode\n id: $id\n newRole: $newRole\n ) {\n id\n }\n }\n`\n\nconst useStyles = makeStyles(styles)\n\nconst ChangeRoleModal = ({ state, dispatch, user, requiresConfirmation }) => {\n const classes = useStyles()\n\n const [changeUserRole, { error }] = useMutation(CHANGE_USER_ROLE, {\n onCompleted: () => handleClose(),\n refetchQueries: () => ['users']\n })\n\n const [confirmation, setConfirmation] = useState(null)\n\n const submit = () => {\n changeUserRole({\n variables: {\n confirmationCode: confirmation,\n id: user.id,\n newRole: user.role === 'superuser' ? 'user' : 'superuser'\n }\n })\n }\n\n const handleClose = () => {\n setConfirmation(null)\n dispatch({\n type: 'close',\n payload: 'showRoleModal'\n })\n }\n\n return (\n (state.showRoleModal && requiresConfirmation && !confirmation && (\n \n )) ||\n (state.showRoleModal && (\n \n \n Change {user.username}'s role?\n \n \n You are about to alter {user.username}'s role. This will change this\n user's permission to access certain resources.\n
\n Do you wish to proceed?
\n \n {error && {error} }\n submit()}>\n Confirm\n \n
\n \n ))\n )\n}\n\nexport default ChangeRoleModal\n","const url = `https://${\n process.env.NODE_ENV === 'development'\n ? window.location.host\n : window.location.hostname\n}`\n\nconst urlResolver = content => `${url}${content}`\n\nexport { urlResolver }\n","import { useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport base64 from 'base-64'\nimport classnames from 'classnames'\nimport { Field, Form, Formik } from 'formik'\nimport gql from 'graphql-tag'\nimport React, { useState } from 'react'\nimport * as Yup from 'yup'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Modal from 'src/components/Modal'\nimport { Button } from 'src/components/buttons'\nimport { TextInput, RadioGroup } from 'src/components/inputs/formik'\nimport { H1, H3, Info2, P, Mono } from 'src/components/typography'\nimport CopyToClipboard from 'src/pages/Transactions/CopyToClipboard'\nimport { urlResolver } from 'src/utils/urlResolver'\n\nimport styles from '../UserManagement.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst CREATE_USER = gql`\n mutation createRegisterToken($username: String!, $role: String!) {\n createRegisterToken(username: $username, role: $role) {\n token\n expire\n }\n }\n`\n\nconst validationSchema = Yup.object().shape({\n username: Yup.string()\n .email('Username field should be in an email format!')\n .required('Username field is required!'),\n role: Yup.string().required('Role field is required!')\n})\n\nconst initialValues = {\n username: '',\n role: ''\n}\n\nconst radioOptions = [\n {\n code: 'user',\n display: 'Regular user'\n },\n {\n code: 'superuser',\n display: 'Superuser'\n }\n]\n\nconst getErrorMsg = (formikErrors, formikTouched, mutationError) => {\n if (!formikErrors || !formikTouched) return null\n if (mutationError) return 'Internal server error'\n if (formikErrors.username && formikTouched.username)\n return formikErrors.username\n return null\n}\n\nconst CreateUserModal = ({ state, dispatch }) => {\n const classes = useStyles()\n\n const [usernameField, setUsernameField] = useState('')\n const [createUserURL, setCreateUserURL] = useState(null)\n\n const handleClose = () => {\n setCreateUserURL(null)\n dispatch({\n type: 'close',\n payload: 'showCreateUserModal'\n })\n }\n\n const [createUser, { error }] = useMutation(CREATE_USER, {\n onCompleted: ({ createRegisterToken: token }) => {\n const queryParams =\n // Pazuz-created register tokens add a field to identify the creator\n process.env.REACT_APP_BUILD_TARGET === 'LAMASSU'\n ? `t=${token.token}`\n : `t=${token.token}&id=${base64.encode(usernameField)}`\n setCreateUserURL(urlResolver(`/register?${queryParams}`))\n }\n })\n\n const roleClass = (formikErrors, formikTouched) => ({\n [classes.error]: formikErrors.role && formikTouched.role\n })\n\n return (\n <>\n {state.showCreateUserModal && !createUserURL && (\n \n {\n setUsernameField(values.username)\n createUser({\n variables: { username: values.username, role: values.role }\n })\n }}>\n {({ errors, touched }) => (\n \n )}\n \n \n )}\n {state.showCreateUserModal && createUserURL && (\n \n \n Creating {usernameField}...\n \n \n Safely share this link with {usernameField} to finish the\n registration process.\n
\n \n \n \n \n {createUserURL}\n \n \n \n
\n \n )}\n >\n )\n}\n\nexport default CreateUserModal\n","import { useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport React, { useState } from 'react'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Modal from 'src/components/Modal'\nimport { Button } from 'src/components/buttons'\nimport { Info2, P } from 'src/components/typography'\n\nimport styles from '../UserManagement.styles'\n\nimport Input2FAModal from './Input2FAModal'\n\nconst ENABLE_USER = gql`\n mutation enableUser($confirmationCode: String, $id: ID!) {\n enableUser(confirmationCode: $confirmationCode, id: $id) {\n id\n }\n }\n`\n\nconst DISABLE_USER = gql`\n mutation disableUser($confirmationCode: String, $id: ID!) {\n disableUser(confirmationCode: $confirmationCode, id: $id) {\n id\n }\n }\n`\n\nconst useStyles = makeStyles(styles)\n\nconst EnableUserModal = ({ state, dispatch, user, requiresConfirmation }) => {\n const classes = useStyles()\n\n const [enableUser, { error: enableError }] = useMutation(ENABLE_USER, {\n onCompleted: () => handleClose(),\n refetchQueries: () => ['users']\n })\n\n const [disableUser, { error: disableError }] = useMutation(DISABLE_USER, {\n onCompleted: () => handleClose(),\n refetchQueries: () => ['users']\n })\n\n const [confirmation, setConfirmation] = useState(null)\n\n const disable = () => {\n disableUser({\n variables: {\n confirmationCode: confirmation,\n id: user.id\n }\n })\n }\n\n const enable = () => {\n enableUser({\n variables: {\n confirmationCode: confirmation,\n id: user.id\n }\n })\n }\n\n const submit = () => {\n user?.enabled ? disable() : enable()\n }\n\n const handleClose = () => {\n setConfirmation(null)\n dispatch({\n type: 'close',\n payload: 'showEnableUserModal'\n })\n }\n\n return (\n (state.showEnableUserModal && requiresConfirmation && !confirmation && (\n \n )) ||\n (state.showEnableUserModal && (\n \n {!user.enabled && (\n <>\n \n Enable {user.username}?\n \n \n You are about to enable {user.username} into the system,\n activating previous eligible sessions and grant permissions to\n access the system.\n
\n Do you wish to proceed?
\n >\n )}\n {user.enabled && (\n <>\n \n Disable {user.username}?\n \n \n You are about to disable {user.username} from the system,\n deactivating previous eligible sessions and removing permissions\n to access the system.\n
\n Do you wish to proceed?
\n >\n )}\n \n {disableError && {disableError} }\n {enableError && {enableError} }\n submit()}>\n Confirm\n \n
\n \n ))\n )\n}\n\nexport default EnableUserModal\n","import { makeStyles } from '@material-ui/core/styles'\nimport React from 'react'\n\nimport Modal from 'src/components/Modal'\nimport { Button } from 'src/components/buttons'\nimport { Info2, P } from 'src/components/typography'\n\nimport styles from '../UserManagement.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst ChangeRoleModal = ({ state, dispatch }) => {\n const classes = useStyles()\n\n const handleClose = () => {\n dispatch({\n type: 'close',\n payload: 'showFIDOModal'\n })\n }\n\n return (\n \n About FIDO authentication \n \n This feature is only available for websites with configured domains, and\n we detected that a domain is not configured at the moment.\n
\n \n Make sure that a domain is configured for this website and try again\n later.\n
\n \n handleClose()}>\n Confirm\n \n
\n \n )\n}\n\nexport default ChangeRoleModal\n","import { useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport React, { useEffect, useState } from 'react'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Modal from 'src/components/Modal'\nimport { Info2, P, Mono } from 'src/components/typography'\nimport CopyToClipboard from 'src/pages/Transactions/CopyToClipboard'\nimport { urlResolver } from 'src/utils/urlResolver'\n\nimport styles from '../UserManagement.styles'\n\nimport Input2FAModal from './Input2FAModal'\n\nconst CREATE_RESET_2FA_TOKEN = gql`\n mutation createReset2FAToken($confirmationCode: String, $userID: ID!) {\n createReset2FAToken(confirmationCode: $confirmationCode, userID: $userID) {\n token\n user_id\n expire\n }\n }\n`\n\nconst useStyles = makeStyles(styles)\n\nconst Reset2FAModal = ({ state, dispatch, user, requiresConfirmation }) => {\n const classes = useStyles()\n const [reset2FAUrl, setReset2FAUrl] = useState('')\n\n const [createReset2FAToken, { loading, error }] = useMutation(\n CREATE_RESET_2FA_TOKEN,\n {\n onCompleted: ({ createReset2FAToken: token }) => {\n setReset2FAUrl(urlResolver(`/reset2fa?t=${token.token}`))\n }\n }\n )\n\n const [confirmation, setConfirmation] = useState(null)\n\n useEffect(() => {\n state.showReset2FAModal &&\n (confirmation || !requiresConfirmation) &&\n createReset2FAToken({\n variables: {\n confirmationCode: confirmation,\n userID: user?.id\n }\n })\n }, [\n confirmation,\n createReset2FAToken,\n requiresConfirmation,\n state.showReset2FAModal,\n user?.id\n ])\n\n const handleClose = () => {\n setConfirmation(null)\n dispatch({\n type: 'close',\n payload: 'showReset2FAModal'\n })\n }\n\n return (\n (state.showReset2FAModal && requiresConfirmation && !confirmation && (\n \n )) ||\n (state.showReset2FAModal &&\n (confirmation || !requiresConfirmation) &&\n !loading && (\n \n \n Reset 2FA for {user.username}\n \n \n Safely share this link with {user.username} for a two-factor\n authentication reset.\n
\n {!error && (\n \n \n \n \n {reset2FAUrl}\n \n \n \n
\n )}\n {error && {error} }\n \n ))\n )\n}\n\nexport default Reset2FAModal\n","import { useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport React, { useEffect, useState } from 'react'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Modal from 'src/components/Modal'\nimport { Info2, P, Mono } from 'src/components/typography'\nimport CopyToClipboard from 'src/pages/Transactions/CopyToClipboard'\nimport { urlResolver } from 'src/utils/urlResolver'\n\nimport styles from '../UserManagement.styles'\n\nimport Input2FAModal from './Input2FAModal'\n\nconst CREATE_RESET_PASSWORD_TOKEN = gql`\n mutation createResetPasswordToken($confirmationCode: String, $userID: ID!) {\n createResetPasswordToken(\n confirmationCode: $confirmationCode\n userID: $userID\n ) {\n token\n user_id\n expire\n }\n }\n`\n\nconst useStyles = makeStyles(styles)\n\nconst ResetPasswordModal = ({\n state,\n dispatch,\n user,\n requiresConfirmation\n}) => {\n const classes = useStyles()\n const [resetPasswordUrl, setResetPasswordUrl] = useState('')\n\n const [createResetPasswordToken, { loading, error }] = useMutation(\n CREATE_RESET_PASSWORD_TOKEN,\n {\n onCompleted: ({ createResetPasswordToken: token }) => {\n setResetPasswordUrl(urlResolver(`/resetpassword?t=${token.token}`))\n }\n }\n )\n\n const [confirmation, setConfirmation] = useState(null)\n\n useEffect(() => {\n state.showResetPasswordModal &&\n (confirmation || !requiresConfirmation) &&\n createResetPasswordToken({\n variables: {\n confirmationCode: confirmation,\n userID: user?.id\n }\n })\n }, [\n confirmation,\n createResetPasswordToken,\n requiresConfirmation,\n state.showResetPasswordModal,\n user?.id\n ])\n\n const handleClose = () => {\n setConfirmation(null)\n dispatch({\n type: 'close',\n payload: 'showResetPasswordModal'\n })\n }\n\n return (\n (state.showResetPasswordModal && requiresConfirmation && !confirmation && (\n \n )) ||\n (state.showResetPasswordModal &&\n (confirmation || !requiresConfirmation) &&\n !loading && (\n \n \n Reset password for {user.username}\n \n \n Safely share this link with {user.username} for a password reset.\n
\n {!error && (\n \n \n \n \n {resetPasswordUrl}\n \n \n \n
\n )}\n {error && {error} }\n \n ))\n )\n}\n\nexport default ResetPasswordModal\n","import { useQuery, useMutation, useLazyQuery } from '@apollo/react-hooks'\nimport { makeStyles, Box, Chip } from '@material-ui/core'\nimport { startAttestation } from '@simplewebauthn/browser'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useReducer, useState, useContext } from 'react'\n\nimport AppContext from 'src/AppContext'\nimport { ActionButton, Link } from 'src/components/buttons'\nimport { Switch } from 'src/components/inputs'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport DataTable from 'src/components/tables/DataTable'\nimport { ReactComponent as WhiteKeyIcon } from 'src/styling/icons/button/key/white.svg'\nimport { ReactComponent as KeyIcon } from 'src/styling/icons/button/key/zodiac.svg'\nimport { ReactComponent as WhiteLockIcon } from 'src/styling/icons/button/lock/white.svg'\nimport { ReactComponent as LockIcon } from 'src/styling/icons/button/lock/zodiac.svg'\nimport { ReactComponent as WhiteUserRoleIcon } from 'src/styling/icons/button/user-role/white.svg'\nimport { ReactComponent as UserRoleIcon } from 'src/styling/icons/button/user-role/zodiac.svg'\nimport { IP_CHECK_REGEX } from 'src/utils/constants'\n\nimport styles from './UserManagement.styles'\nimport ChangeRoleModal from './modals/ChangeRoleModal'\nimport CreateUserModal from './modals/CreateUserModal'\nimport EnableUserModal from './modals/EnableUserModal'\nimport FIDOModal from './modals/FIDOModal'\nimport Reset2FAModal from './modals/Reset2FAModal'\nimport ResetPasswordModal from './modals/ResetPasswordModal'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_USERS = gql`\n query users {\n users {\n id\n username\n role\n enabled\n last_accessed\n last_accessed_from\n last_accessed_address\n }\n }\n`\n\nconst GENERATE_ATTESTATION = gql`\n query generateAttestationOptions($userID: ID!, $domain: String!) {\n generateAttestationOptions(userID: $userID, domain: $domain)\n }\n`\n\nconst VALIDATE_ATTESTATION = gql`\n mutation validateAttestation(\n $userID: ID!\n $attestationResponse: JSONObject!\n $domain: String!\n ) {\n validateAttestation(\n userID: $userID\n attestationResponse: $attestationResponse\n domain: $domain\n )\n }\n`\n\nconst initialState = {\n showCreateUserModal: false,\n showResetPasswordModal: false,\n showReset2FAModal: false,\n showRoleModal: false,\n showEnableUserModal: false\n}\n\nconst reducer = (_, action) => {\n const { type, payload } = action\n switch (type) {\n case 'close':\n return initialState\n case 'open':\n return { ...initialState, [payload]: true }\n default:\n return initialState\n }\n}\n\nconst roleMapper = {\n user: 'Regular',\n superuser: 'Superuser'\n}\n\nconst Users = () => {\n const classes = useStyles()\n const { userData } = useContext(AppContext)\n\n const { data: userResponse } = useQuery(GET_USERS)\n const [state, dispatch] = useReducer(reducer, initialState)\n\n const [userInfo, setUserInfo] = useState(null)\n\n const [validateAttestation] = useMutation(VALIDATE_ATTESTATION, {\n onCompleted: res => {\n // TODO: show a brief popup to have UX feedback?\n }\n })\n\n const [generateAttestationOptions] = useLazyQuery(GENERATE_ATTESTATION, {\n onCompleted: ({ generateAttestationOptions: options }) => {\n return startAttestation(options).then(res => {\n validateAttestation({\n variables: {\n userID: userInfo.id,\n attestationResponse: res,\n domain: window.location.hostname\n }\n })\n })\n }\n })\n\n const elements = [\n {\n header: 'Login',\n width: 307,\n textAlign: 'left',\n size: 'sm',\n view: u => {\n if (userData.id === u.id)\n return (\n \n {u.username} \n \n
\n )\n return {u.username} \n }\n },\n {\n header: 'Role',\n width: 160,\n textAlign: 'left',\n size: 'sm',\n view: u => (\n \n {roleMapper[u.role]} \n {\n setUserInfo(u)\n dispatch({\n type: 'open',\n payload: 'showRoleModal'\n })\n }}\n value={u.role === 'superuser'}\n />\n
\n )\n },\n {\n header: 'Actions',\n width: 565,\n textAlign: 'left',\n size: 'sm',\n view: u => {\n return (\n \n
{\n setUserInfo(u)\n dispatch({\n type: 'open',\n payload: 'showResetPasswordModal'\n })\n }}>\n Reset password\n \n
{\n setUserInfo(u)\n dispatch({\n type: 'open',\n payload: 'showReset2FAModal'\n })\n }}>\n Reset 2FA\n \n
{\n if (IP_CHECK_REGEX.test(window.location.hostname)) {\n dispatch({\n type: 'open',\n payload: 'showFIDOModal'\n })\n } else {\n setUserInfo(u)\n generateAttestationOptions({\n variables: {\n userID: u.id,\n domain: window.location.hostname\n }\n })\n }\n }}>\n Add FIDO\n \n
\n )\n }\n },\n {\n header: 'Enabled',\n width: 100,\n textAlign: 'center',\n size: 'sm',\n view: u => (\n {\n setUserInfo(u)\n dispatch({\n type: 'open',\n payload: 'showEnableUserModal'\n })\n }}\n value={u.enabled}\n />\n )\n }\n ]\n\n return (\n <>\n \n \n {\n dispatch({\n type: 'open',\n payload: 'showCreateUserModal'\n })\n }}>\n Add new user\n \n \n \n \n \n \n \n \n \n >\n )\n}\n\nexport default Users\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport gql from 'graphql-tag'\nimport { utils as coinUtils } from 'lamassu-coins'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport Section from 'src/components/layout/Section'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nimport {\n AdvancedWalletSchema,\n getAdvancedWalletElements,\n getAdvancedWalletElementsOverrides,\n OverridesDefaults,\n OverridesSchema\n} from './helper'\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\nconst GET_INFO = gql`\n query getData {\n config\n cryptoCurrencies {\n code\n display\n }\n }\n`\n\nconst AdvancedWallet = () => {\n const ADVANCED = namespaces.ADVANCED\n const CRYPTOCURRENCY_KEY = 'cryptoCurrency'\n const SCREEN_KEY = namespaces.WALLETS\n const { data } = useQuery(GET_INFO)\n\n const [isEditingDefault, setEditingDefault] = useState(false)\n const [isEditingOverrides, setEditingOverrides] = useState(false)\n\n const [saveConfig, { error }] = useMutation(SAVE_CONFIG, {\n refetchQueries: () => ['getData']\n })\n\n const save = rawConfig => {\n const config = toNamespace(SCREEN_KEY)(\n toNamespace(ADVANCED)(rawConfig.wallets[0])\n )\n return saveConfig({ variables: { config } })\n }\n\n const saveOverrides = rawConfig => {\n const config = toNamespace(SCREEN_KEY)(toNamespace(ADVANCED)(rawConfig))\n return saveConfig({ variables: { config } })\n }\n\n const onEditingDefault = (it, editing) => setEditingDefault(editing)\n const onEditingOverrides = (it, editing) => setEditingOverrides(editing)\n\n const cryptoCurrencies = data?.cryptoCurrencies ?? []\n\n const AdvancedWalletSettings = fromNamespace(ADVANCED)(\n fromNamespace(SCREEN_KEY)(data?.config)\n )\n\n const AdvancedWalletSettingsOverrides = AdvancedWalletSettings.overrides ?? []\n\n const overridenCryptos = R.map(R.prop(CRYPTOCURRENCY_KEY))(\n AdvancedWalletSettingsOverrides\n )\n const suggestionFilter = R.filter(\n it => !R.contains(it.code, overridenCryptos)\n )\n const coinSuggestions = suggestionFilter(cryptoCurrencies)\n\n const findSuggestion = it => {\n const coin = R.compose(R.find(R.propEq('code', it?.cryptoCurrency)))(\n cryptoCurrencies\n )\n return coin ? [coin] : []\n }\n\n return (\n <>\n \n !AdvancedWalletSchema.isValidSync(it)}\n inialValues={R.of(AdvancedWalletSettings)}\n validationSchema={AdvancedWalletSchema}\n elements={getAdvancedWalletElements(\n coinUtils,\n AdvancedWalletSettings\n )}\n setEditing={onEditingDefault}\n forceDisable={isEditingOverrides}\n />\n \n \n >\n )\n}\n\nexport default AdvancedWallet\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport Modal from 'src/components/Modal'\nimport { NamespacedTable as EditableTable } from 'src/components/editableTable'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport FormRenderer from 'src/pages/Services/FormRenderer'\nimport schemas from 'src/pages/Services/schemas'\nimport { ReactComponent as ReverseSettingsIcon } from 'src/styling/icons/circle buttons/settings/white.svg'\nimport { ReactComponent as SettingsIcon } from 'src/styling/icons/circle buttons/settings/zodiac.svg'\nimport { fromNamespace, toNamespace } from 'src/utils/config'\n\nimport AdvancedWallet from './AdvancedWallet'\nimport styles from './Wallet.styles.js'\nimport Wizard from './Wizard'\nimport { WalletSchema, getElements } from './helper'\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject, $accounts: JSONObject) {\n saveConfig(config: $config)\n saveAccounts(accounts: $accounts)\n }\n`\n\nconst SAVE_ACCOUNT = gql`\n mutation Save($accounts: JSONObject) {\n saveAccounts(accounts: $accounts)\n }\n`\n\nconst GET_INFO = gql`\n query getData {\n config\n accounts\n accountsConfig {\n code\n display\n class\n cryptos\n deprecated\n }\n cryptoCurrencies {\n code\n display\n }\n }\n`\n\nconst LOCALE = 'locale'\n\nconst useStyles = makeStyles(styles)\n\nconst Wallet = ({ name: SCREEN_KEY }) => {\n const classes = useStyles()\n const [editingSchema, setEditingSchema] = useState(null)\n const [onChangeFunction, setOnChangeFunction] = useState(null)\n const [wizard, setWizard] = useState(false)\n const [advancedSettings, setAdvancedSettings] = useState(false)\n const { data } = useQuery(GET_INFO)\n\n const [saveConfig, { error }] = useMutation(SAVE_CONFIG, {\n onCompleted: () => setWizard(false),\n refetchQueries: () => ['getData']\n })\n\n const [saveAccount] = useMutation(SAVE_ACCOUNT, {\n onCompleted: () => setEditingSchema(null),\n refetchQueries: () => ['getData']\n })\n\n const save = (rawConfig, accounts) => {\n const config = toNamespace(SCREEN_KEY)(rawConfig)\n return saveConfig({ variables: { config, accounts } })\n }\n\n const fiatCurrency =\n data?.config && fromNamespace(LOCALE)(data.config).fiatCurrency\n\n const config = data?.config && fromNamespace(SCREEN_KEY)(data.config)\n const accountsConfig = data?.accountsConfig\n const cryptoCurrencies = data?.cryptoCurrencies ?? []\n const accounts = data?.accounts ?? []\n\n const onChange = (previous, current, setValue) => {\n if (!current) return setValue(current)\n\n if (!accounts[current] && schemas[current]) {\n setEditingSchema(schemas[current])\n setOnChangeFunction(() => () => setValue(current))\n return\n }\n\n setValue(current)\n }\n\n const shouldOverrideEdit = it => {\n const namespaced = fromNamespace(it)(config)\n return !WalletSchema.isValidSync(namespaced)\n }\n\n const wizardSave = it =>\n saveAccount({\n variables: { accounts: { [editingSchema.code]: it } }\n }).then(it => {\n onChangeFunction()\n setOnChangeFunction(null)\n return it\n })\n\n return (\n <>\n \n \n
\n {!advancedSettings && (\n <>\n !WalletSchema.isValidSync(it)}\n enableEdit\n shouldOverrideEdit={shouldOverrideEdit}\n editOverride={setWizard}\n editWidth={174}\n save={save}\n validationSchema={WalletSchema}\n elements={getElements(cryptoCurrencies, accountsConfig, onChange)}\n />\n {wizard && (\n setWizard(false)}\n save={save}\n error={error?.message}\n cryptoCurrencies={cryptoCurrencies}\n fiatCurrency={fiatCurrency}\n userAccounts={data?.config?.accounts}\n accounts={accounts}\n accountsConfig={accountsConfig}\n />\n )}\n {editingSchema && (\n setEditingSchema(null)}\n open={true}>\n \n \n )}\n >\n )}\n {advancedSettings && }\n >\n )\n}\n\nexport default Wallet\n","export default {\n header: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between'\n }\n}\n","import React from 'react'\nimport { Redirect } from 'react-router-dom'\n\nimport Analytics from 'src/pages/Analytics/Analytics'\nimport Blacklist from 'src/pages/Blacklist'\nimport Cashout from 'src/pages/Cashout'\nimport Commissions from 'src/pages/Commissions'\nimport { Customers, CustomerProfile } from 'src/pages/Customers'\nimport Funding from 'src/pages/Funding'\nimport Locales from 'src/pages/Locales'\nimport IndividualDiscounts from 'src/pages/LoyaltyPanel/IndividualDiscounts'\nimport PromoCodes from 'src/pages/LoyaltyPanel/PromoCodes'\nimport MachineLogs from 'src/pages/MachineLogs'\nimport CashCassettes from 'src/pages/Maintenance/CashCassettes'\nimport MachineStatus from 'src/pages/Maintenance/MachineStatus'\nimport Notifications from 'src/pages/Notifications/Notifications'\nimport CoinAtmRadar from 'src/pages/OperatorInfo/CoinATMRadar'\nimport ContactInfo from 'src/pages/OperatorInfo/ContactInfo'\nimport ReceiptPrinting from 'src/pages/OperatorInfo/ReceiptPrinting'\nimport SMSNotices from 'src/pages/OperatorInfo/SMSNotices/SMSNotices'\nimport TermsConditions from 'src/pages/OperatorInfo/TermsConditions'\nimport ServerLogs from 'src/pages/ServerLogs'\nimport Services from 'src/pages/Services/Services'\nimport SessionManagement from 'src/pages/SessionManagement/SessionManagement'\nimport Transactions from 'src/pages/Transactions/Transactions'\nimport Triggers from 'src/pages/Triggers'\nimport UserManagement from 'src/pages/UserManagement/UserManagement'\nimport WalletSettings from 'src/pages/Wallet/Wallet'\nimport { namespaces } from 'src/utils/config'\n\nimport { ROLES } from './utils'\n\nconst getLamassuRoutes = () => [\n {\n key: 'transactions',\n label: 'Transactions',\n route: '/transactions',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: Transactions\n },\n {\n key: 'maintenance',\n label: 'Maintenance',\n route: '/maintenance',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n get component() {\n return () => \n },\n children: [\n {\n key: 'cash_cassettes',\n label: 'Cash Cassettes',\n route: '/maintenance/cash-cassettes',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: CashCassettes\n },\n {\n key: 'funding',\n label: 'Funding',\n route: '/maintenance/funding',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: Funding\n },\n {\n key: 'logs',\n label: 'Machine Logs',\n route: '/maintenance/logs',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: MachineLogs\n },\n {\n key: 'machine-status',\n label: 'Machine Status',\n route: '/maintenance/machine-status',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: MachineStatus\n },\n {\n key: 'server-logs',\n label: 'Server',\n route: '/maintenance/server-logs',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: ServerLogs\n }\n ]\n },\n {\n key: 'analytics',\n label: 'Analytics',\n route: '/analytics',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: Analytics\n },\n {\n key: 'settings',\n label: 'Settings',\n route: '/settings',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n get component() {\n return () => \n },\n children: [\n {\n key: namespaces.COMMISSIONS,\n label: 'Commissions',\n route: '/settings/commissions',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: Commissions\n },\n {\n key: namespaces.LOCALE,\n label: 'Locales',\n route: '/settings/locale',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: Locales\n },\n {\n key: namespaces.CASH_OUT,\n label: 'Cash-out',\n route: '/settings/cash-out',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: Cashout\n },\n {\n key: namespaces.NOTIFICATIONS,\n label: 'Notifications',\n route: '/settings/notifications',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: Notifications\n },\n {\n key: 'services',\n label: '3rd Party Services',\n route: '/settings/3rd-party-services',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: Services\n },\n {\n key: namespaces.WALLETS,\n label: 'Wallet',\n route: '/settings/wallet-settings',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: WalletSettings\n },\n {\n key: namespaces.OPERATOR_INFO,\n label: 'Operator Info',\n route: '/settings/operator-info',\n title: 'Operator Information',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n get component() {\n return () => (\n \n )\n },\n children: [\n {\n key: 'contact-info',\n label: 'Contact information',\n route: '/settings/operator-info/contact-info',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: ContactInfo\n },\n {\n key: 'receipt-printing',\n label: 'Receipt',\n route: '/settings/operator-info/receipt-printing',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: ReceiptPrinting\n },\n {\n key: 'sms-notices',\n label: 'SMS notices',\n route: '/settings/operator-info/sms-notices',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: SMSNotices\n },\n {\n key: 'coin-atm-radar',\n label: 'Coin ATM Radar',\n route: '/settings/operator-info/coin-atm-radar',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: CoinAtmRadar\n },\n {\n key: 'terms-conditions',\n label: 'Terms & Conditions',\n route: '/settings/operator-info/terms-conditions',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: TermsConditions\n }\n ]\n }\n ]\n },\n {\n key: 'compliance',\n label: 'Compliance',\n route: '/compliance',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n get component() {\n return () => \n },\n children: [\n {\n key: 'triggers',\n label: 'Triggers',\n route: '/compliance/triggers',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: Triggers\n },\n {\n key: 'customers',\n label: 'Customers',\n route: '/compliance/customers',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: Customers\n },\n {\n key: 'blacklist',\n label: 'Blacklist',\n route: '/compliance/blacklist',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: Blacklist\n },\n {\n key: 'loyalty',\n label: 'Loyalty',\n route: '/compliance/loyalty',\n title: 'Loyalty Panel',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n get component() {\n return () => (\n \n )\n },\n children: [\n {\n key: 'individual-discounts',\n label: 'Individual Discounts',\n route: '/compliance/loyalty/individual-discounts',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: IndividualDiscounts\n },\n {\n key: 'promo-codes',\n label: 'Promo Codes',\n route: '/compliance/loyalty/codes',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: PromoCodes\n }\n ]\n },\n {\n key: 'customer',\n route: '/compliance/customer/:id',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: CustomerProfile\n }\n ]\n },\n {\n key: 'system',\n label: 'System',\n route: '/system',\n allowedRoles: [ROLES.SUPERUSER],\n get component() {\n return () => \n },\n children: [\n {\n key: 'user-management',\n label: 'User Management',\n route: '/system/user-management',\n allowedRoles: [ROLES.SUPERUSER],\n component: UserManagement\n },\n {\n key: 'session-management',\n label: 'Session Management',\n route: '/system/session-management',\n allowedRoles: [ROLES.SUPERUSER],\n component: SessionManagement\n }\n ]\n }\n]\n\nexport default getLamassuRoutes\n","import { offColor } from 'src/styling/variables'\n\nconst styles = ({ numberOfChips }) => ({\n totalAssetWrapper: {\n display: 'flex',\n flexDirection: 'row'\n },\n totalAssetFieldWrapper: {\n display: 'flex',\n flexDirection: 'column'\n },\n fieldHeader: {\n color: offColor,\n marginBottom: 5\n },\n fieldValue: {\n fontSize: 36\n },\n fieldCurrency: {\n fontSize: 20,\n alignSelf: 'flex-end',\n margin: [[0, 0, 5, 5]]\n },\n separator: {\n fontSize: 32,\n alignSelf: 'center',\n margin: [[25, 20, 0, 20]]\n },\n walletChipList: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap'\n },\n walletChipWrapper: {\n flexGrow: 0,\n flexShrink: 0,\n flexBasis: `16.66667%`,\n '&:nth-child(6n+1)': {\n '& > div': {\n margin: [[0, 10, 0, 0]]\n }\n },\n '&:nth-child(6n)': {\n '& > div': {\n margin: [[0, 0, 0, 10]]\n }\n },\n margin: [[10, 0]]\n },\n walletChip: {\n height: 200,\n margin: [[0, 10]]\n },\n walletHeader: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n height: 50\n },\n logo: {\n transform: `scale(0.4, 0.4)`,\n height: 80,\n maxWidth: 110,\n margin: [[-14, 0, 0, -26]]\n },\n zecLogo: {\n margin: [[-15, 0, 0, -10]]\n },\n bchLogo: {\n margin: [[-12, 0, 0, -18]]\n },\n hedgedText: {\n color: offColor,\n margin: [[13, 12, 0, 0]]\n },\n walletValueWrapper: {\n display: 'flex',\n flexDirection: 'column',\n margin: [[0, 0, 0, 15]]\n },\n walletValue: {\n fontSize: 18,\n margin: [[0, 0, 10, 0]]\n },\n walletChipTitle: {\n marginTop: 50\n }\n})\n\nexport default styles\n","import { offColor } from 'src/styling/variables'\n\nconst styles = () => ({\n totalAssetWrapper: {\n display: 'flex',\n flexDirection: 'row'\n },\n totalAssetFieldWrapper: {\n display: 'flex',\n flexDirection: 'column'\n },\n fieldHeader: {\n color: offColor,\n marginBottom: 5\n },\n fieldValue: {\n fontSize: 36\n },\n fieldCurrency: {\n fontSize: 20,\n alignSelf: 'flex-end',\n margin: [[0, 0, 5, 5]]\n },\n separator: {\n fontSize: 32,\n alignSelf: 'center',\n margin: [[25, 20, 0, 20]]\n },\n tableTitle: {\n marginTop: 35\n },\n operation: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center'\n }\n})\n\nexport default styles\n","import { useQuery } from '@apollo/react-hooks'\nimport { Paper } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useContext } from 'react'\n\nimport AppContext from 'src/AppContext'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport { H3, Info2, Label2, Label3, P } from 'src/components/typography'\nimport { ReactComponent as BitcoinLogo } from 'src/styling/logos/icon-bitcoin-colour.svg'\nimport { ReactComponent as BitcoinCashLogo } from 'src/styling/logos/icon-bitcoincash-colour.svg'\nimport { ReactComponent as DashLogo } from 'src/styling/logos/icon-dash-colour.svg'\nimport { ReactComponent as EthereumLogo } from 'src/styling/logos/icon-ethereum-colour.svg'\nimport { ReactComponent as LitecoinLogo } from 'src/styling/logos/icon-litecoin-colour.svg'\nimport { ReactComponent as ZCashLogo } from 'src/styling/logos/icon-zcash-colour.svg'\nimport { numberToFiatAmount } from 'src/utils/number'\n\nimport styles from './ATMWallet.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_OPERATOR_BY_USERNAME = gql`\n query operatorByUsername($username: String) {\n operatorByUsername(username: $username) {\n id\n entityId\n name\n fiatBalances\n cryptoBalances\n machines\n joined\n assetValue\n preferredFiatCurrency\n contactInfo {\n name\n email\n }\n fundings {\n id\n origin\n destination\n fiatAmount\n fiatBalanceAfter\n fiatCurrency\n created\n status\n description\n }\n }\n }\n`\n\nconst CHIPS_PER_ROW = 6\n\nconst Assets = ({ balance, wallets, currency }) => {\n const classes = useStyles({ numberOfChips: CHIPS_PER_ROW })\n\n const walletFiatSum = () => {\n return R.sum(R.map(it => it.fiatValue, wallets))\n }\n\n return (\n \n
\n
Available balance
\n
\n \n {numberToFiatAmount(balance)}\n \n \n {R.toUpper(currency)}\n \n
\n
\n
+ \n
\n
Total balance in wallets
\n
\n \n {numberToFiatAmount(walletFiatSum())}\n \n \n {R.toUpper(currency)}\n \n
\n
\n
= \n
\n
Total assets
\n
\n \n {numberToFiatAmount(balance)}\n \n \n {R.toUpper(currency)}\n \n
\n
\n
\n )\n}\n\nconst WalletInfoChip = ({ wallet, currency }) => {\n const classes = useStyles({ numberOfChips: CHIPS_PER_ROW })\n\n const getLogo = cryptoCode => {\n switch (cryptoCode) {\n case 'BTC':\n return \n case 'ETH':\n return \n case 'LTC':\n return \n case 'ZEC':\n return (\n \n )\n case 'BCH':\n return (\n \n )\n case 'DASH':\n return \n default:\n return \n }\n }\n\n return (\n \n
\n \n {getLogo(wallet.cryptoCode)}\n \n {wallet.isHedged ? 'Hedged' : 'Not hedged'}\n \n
\n \n {wallet.name} value \n \n {numberToFiatAmount(wallet.amount.toFixed(1))} {wallet.cryptoCode}\n \n Hedged value \n \n {numberToFiatAmount(wallet.fiatValue)} {currency}\n \n
\n \n
\n )\n}\n\nconst ATMWallet = () => {\n const classes = useStyles({ numberOfChips: CHIPS_PER_ROW })\n const { userData } = useContext(AppContext)\n\n const { data, loading } = useQuery(GET_OPERATOR_BY_USERNAME, {\n context: { clientName: 'pazuz' },\n variables: { username: userData?.username }\n })\n\n const operatorData = R.path(['operatorByUsername'], data)\n\n const wallets = [\n {\n cryptoCode: 'BTC',\n name: 'Bitcoin',\n amount: operatorData?.cryptoBalances.xbt ?? 0,\n fiatValue: 0,\n isHedged: true\n },\n {\n cryptoCode: 'ETH',\n name: 'Ethereum',\n amount: operatorData?.cryptoBalances.eth ?? 0,\n fiatValue: 0,\n isHedged: true\n },\n {\n cryptoCode: 'LTC',\n name: 'Litecoin',\n amount: operatorData?.cryptoBalances.ltc ?? 0,\n fiatValue: 0,\n isHedged: true\n },\n {\n cryptoCode: 'ZEC',\n name: 'Z-Cash',\n amount: operatorData?.cryptoBalances.zec ?? 0,\n fiatValue: 0,\n isHedged: false\n },\n {\n cryptoCode: 'BCH',\n name: 'Bitcoin Cash',\n amount: operatorData?.cryptoBalances.bch ?? 0,\n fiatValue: 0,\n isHedged: true\n },\n {\n cryptoCode: 'DASH',\n name: 'Dash',\n amount: operatorData?.cryptoBalances.dash ?? 0,\n fiatValue: 0,\n isHedged: false\n }\n ]\n\n return (\n !loading && (\n <>\n \n \n ATM Wallets \n \n {R.map(\n it => (\n \n ),\n wallets\n )}\n
\n >\n )\n )\n}\n\nexport default ATMWallet\n","import {\n white,\n offColor,\n backgroundColor,\n subheaderColor\n} from 'src/styling/variables'\n\nconst styles = () => ({\n card: {\n wordWrap: 'break-word',\n boxShadow: '0 0 4px 0 rgba(0, 0, 0, 0.08)',\n borderRadius: 12,\n padding: 24,\n backgroundColor: white\n },\n h4: {\n marginTop: 0\n },\n label: {\n margin: 0,\n color: offColor\n },\n asset: {\n float: 'left'\n },\n amount: {\n float: 'right'\n },\n row: {\n backgroundColor: backgroundColor,\n borderBottom: 'none'\n },\n totalRow: {\n backgroundColor: subheaderColor,\n borderBottom: 'none'\n },\n leftSide: {\n margin: [[0, 10, 20, 0]]\n },\n rightSide: {\n margin: [[0, 0, 0, 10]]\n }\n})\n\nexport default styles\n","import { useQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useContext } from 'react'\n\nimport AppContext from 'src/AppContext'\nimport { HoverableTooltip } from 'src/components/Tooltip'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport DataTable from 'src/components/tables/DataTable'\nimport { H4, Info2, P } from 'src/components/typography'\nimport { numberToFiatAmount } from 'src/utils/number'\nimport { formatDate } from 'src/utils/timezones'\n\nimport styles from './Accounting.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_OPERATOR_BY_USERNAME = gql`\n query operatorByUsername($username: String) {\n operatorByUsername(username: $username) {\n id\n entityId\n name\n fiatBalances\n cryptoBalances\n machines\n joined\n assetValue\n preferredFiatCurrency\n contactInfo {\n name\n email\n }\n fundings {\n id\n origin\n destination\n fiatAmount\n fiatBalanceAfter\n fiatCurrency\n created\n status\n description\n }\n }\n }\n`\n\nconst GET_DATA = gql`\n query getData {\n config\n }\n`\n\nconst Assets = ({ balance, hedgingReserve, currency }) => {\n const classes = useStyles()\n\n return (\n \n
\n
Pazuz fiat balance
\n
\n \n {numberToFiatAmount(balance)}\n \n \n {R.toUpper(currency)}\n \n
\n
\n
- \n
\n
Hedging reserve
\n
\n \n {numberToFiatAmount(hedgingReserve)}\n \n \n {R.toUpper(currency)}\n \n
\n
\n
= \n
\n
Available balance
\n
\n \n {numberToFiatAmount(balance - hedgingReserve)}\n \n \n {R.toUpper(currency)}\n \n
\n
\n
\n )\n}\n\nconst Accounting = () => {\n const classes = useStyles()\n const { userData } = useContext(AppContext)\n\n const { data: opData, loading: operatorLoading } = useQuery(\n GET_OPERATOR_BY_USERNAME,\n {\n context: { clientName: 'pazuz' },\n variables: { username: userData?.username }\n }\n )\n\n const { data: configResponse, loading: configLoading } = useQuery(GET_DATA)\n const timezone = R.path(['config', 'locale_timezone'], configResponse)\n\n const loading = operatorLoading || configLoading\n\n const operatorData = R.path(['operatorByUsername'], opData)\n\n const elements = [\n {\n header: 'Operation',\n width: 500,\n size: 'sm',\n textAlign: 'left',\n view: it => {\n return (\n \n {it.description}\n {!!it.extraInfo && (\n \n {it.extraInfo}
\n \n )}\n \n )\n }\n },\n {\n header: 'Amount',\n width: 147,\n size: 'sm',\n textAlign: 'right',\n view: it =>\n `${numberToFiatAmount(it.fiatAmount)} ${R.toUpper(it.fiatCurrency)}`\n },\n {\n header: 'Balance after operation',\n width: 250,\n size: 'sm',\n textAlign: 'right',\n view: it =>\n `${numberToFiatAmount(it.fiatBalanceAfter)} ${R.toUpper(\n it.fiatCurrency\n )}`\n },\n {\n header: 'Date',\n width: 150,\n size: 'sm',\n textAlign: 'right',\n view: it => formatDate(it.created, timezone, 'yyyy-MM-dd')\n },\n {\n header: 'Time',\n width: 150,\n size: 'sm',\n textAlign: 'right',\n view: it => formatDate(it.created, timezone, 'yyyy-MM-dd')\n }\n ]\n\n return (\n <>\n \n \n Fiat balance history \n \n >\n )\n}\n\nexport default Accounting\n","import { useQuery } from '@apollo/react-hooks'\nimport Grid from '@material-ui/core/Grid'\nimport Table from '@material-ui/core/Table'\nimport TableBody from '@material-ui/core/TableBody'\nimport TableCell from '@material-ui/core/TableCell'\nimport TableContainer from '@material-ui/core/TableContainer'\nimport TableHead from '@material-ui/core/TableHead'\nimport TableRow from '@material-ui/core/TableRow'\nimport { makeStyles, withStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useContext } from 'react'\n\nimport AppContext from 'src/AppContext'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport { H4, Label2, P, Info2 } from 'src/components/typography'\nimport { numberToFiatAmount } from 'src/utils/number'\n\nimport styles from './Assets.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_OPERATOR_BY_USERNAME = gql`\n query operatorByUsername($username: String) {\n operatorByUsername(username: $username) {\n id\n entityId\n name\n fiatBalances\n cryptoBalances\n machines\n joined\n assetValue\n preferredFiatCurrency\n contactInfo {\n name\n email\n }\n fundings {\n id\n origin\n destination\n fiatAmount\n fiatBalanceAfter\n fiatCurrency\n created\n status\n description\n }\n }\n }\n`\n\nconst cellStyling = {\n borderBottom: '4px solid white',\n padding: 0,\n paddingLeft: 20,\n paddingRight: 20\n}\n\nconst Cell = withStyles({\n root: cellStyling\n})(TableCell)\n\nconst HeaderCell = withStyles({\n root: {\n ...cellStyling,\n backgroundColor: 'white'\n }\n})(TableCell)\n\nconst AssetsAmountTable = ({ title, data = [], numToRender }) => {\n const classes = useStyles()\n\n const totalAmount = R.compose(R.sum, R.map(R.path(['amount'])))(data) ?? 0\n const currency = data[0]?.currency ?? ''\n const selectAmountPrefix = it =>\n it.direction === 'in' ? '+' : R.isNil(it.direction) ? '' : '-'\n\n return (\n <>\n \n {title} \n \n \n \n \n \n \n Asset \n
\n \n \n \n Amount \n
\n \n \n \n \n {data?.map((asset, idx) => {\n if (!(idx < numToRender)) return <>>\n return (\n \n | \n {asset.display} \n | \n \n {`${selectAmountPrefix(asset)}\n ${numberToFiatAmount(Math.abs(asset.amount))} ${\n asset.currency\n }`} \n | \n \n )\n })}\n \n \n {`Total ${R.toLower(title)}`} \n | \n \n {`${numberToFiatAmount(\n totalAmount\n )} ${currency}`} \n | \n \n \n
\n \n \n >\n )\n}\n\nconst Assets = () => {\n const classes = useStyles()\n const { userData } = useContext(AppContext)\n\n const { data, loading } = useQuery(GET_OPERATOR_BY_USERNAME, {\n context: { clientName: 'pazuz' },\n variables: { username: userData?.username }\n })\n\n const operatorData = R.path(['operatorByUsername'], data)\n\n const balanceData = [\n {\n id: 'fiatBalance',\n display: 'Fiat balance',\n amount:\n operatorData?.fiatBalances[operatorData?.preferredFiatCurrency] ?? 0,\n currency: R.toUpper(operatorData?.preferredFiatCurrency ?? ''),\n class: 'Available balance'\n },\n {\n id: 'hedgingReserve',\n display: 'Hedging reserve',\n amount:\n operatorData?.fiatBalances[operatorData?.preferredFiatCurrency] ?? 0,\n currency: R.toUpper(operatorData?.preferredFiatCurrency ?? ''),\n class: 'Available balance',\n direction: 'out'\n }\n ]\n\n const walletData = [\n {\n id: 'hedgedWalletAssets',\n display: 'Hedged wallet assets',\n amount: 0,\n currency: R.toUpper(operatorData?.preferredFiatCurrency ?? ''),\n class: 'Wallet assets',\n direction: 'in'\n },\n {\n id: 'unhedgedWalletAssets',\n display: 'Unhedged wallet assets',\n amount: 0,\n currency: R.toUpper(operatorData?.preferredFiatCurrency ?? ''),\n class: 'Wallet assets',\n direction: 'in'\n }\n ]\n\n const totalData = [\n {\n id: 'fiatBalance',\n display: 'Fiat balance',\n amount:\n operatorData?.fiatBalances[operatorData?.preferredFiatCurrency] ?? 0,\n currency: R.toUpper(operatorData?.preferredFiatCurrency ?? '')\n },\n {\n id: 'hedgingReserve',\n display: 'Hedging reserve',\n amount: 0,\n currency: R.toUpper(operatorData?.preferredFiatCurrency ?? ''),\n direction: 'out'\n },\n {\n id: 'hedgedWalletAssets',\n display: 'Market value of hedged wallet assets',\n amount: 0,\n currency: R.toUpper(operatorData?.preferredFiatCurrency ?? ''),\n direction: 'in'\n },\n {\n id: 'unhedgedWalletAssets',\n display: 'Unhedged wallet assets',\n amount: 0,\n currency: R.toUpper(operatorData?.preferredFiatCurrency ?? ''),\n direction: 'in'\n }\n ]\n\n return (\n !loading && (\n <>\n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n >\n )\n )\n}\n\nexport default Assets\n","import Fade from '@material-ui/core/Fade'\nimport Slide from '@material-ui/core/Slide'\nimport { makeStyles } from '@material-ui/core/styles'\nimport * as R from 'ramda'\nimport React, { useContext } from 'react'\nimport {\n matchPath,\n Redirect,\n Switch,\n useHistory,\n useLocation\n} from 'react-router-dom'\n\nimport AppContext from 'src/AppContext'\nimport Login from 'src/pages/Authentication/Login'\nimport Register from 'src/pages/Authentication/Register'\nimport Reset2FA from 'src/pages/Authentication/Reset2FA'\nimport ResetPassword from 'src/pages/Authentication/ResetPassword'\nimport Dashboard from 'src/pages/Dashboard'\nimport Machines from 'src/pages/Machines'\nimport Wizard from 'src/pages/Wizard'\n\nimport PrivateRoute from './PrivateRoute'\nimport PublicRoute from './PublicRoute'\nimport getLamassuRoutes from './lamassu.routes'\nimport getPazuzRoutes from './pazuz.routes'\n\nconst useStyles = makeStyles({\n wrapper: {\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n height: '100%'\n }\n})\n\nconst getTree = () => {\n const buildTarget = process.env.REACT_APP_BUILD_TARGET\n\n if (buildTarget === 'LAMASSU') {\n return getLamassuRoutes()\n }\n\n if (buildTarget === 'PAZUZ') {\n return getPazuzRoutes()\n }\n}\n\nconst tree = getTree()\n\nconst map = R.map(R.when(R.has('children'), R.prop('children')))\nconst mappedRoutes = R.compose(R.flatten, map)(tree)\nconst parentRoutes = R.filter(R.has('children'))(mappedRoutes).concat(\n R.filter(R.has('children'))(tree)\n)\nconst leafRoutes = R.compose(R.flatten, map)(mappedRoutes)\n\nconst flattened = R.concat(leafRoutes, parentRoutes)\n\nconst hasSidebar = route =>\n R.any(r => r.route === route)(\n R.compose(\n R.flatten,\n R.map(R.prop('children')),\n R.filter(R.has('children'))\n )(mappedRoutes)\n )\n\nconst getParent = route =>\n R.find(\n R.propEq(\n 'route',\n R.dropLast(\n 1,\n R.dropLastWhile(x => x !== '/', route)\n )\n )\n )(flattened)\n\nconst Routes = () => {\n const classes = useStyles()\n\n const history = useHistory()\n const location = useLocation()\n const { wizardTested, userData } = useContext(AppContext)\n\n const dontTriggerPages = [\n '/404',\n '/register',\n '/wizard',\n '/login',\n '/register',\n '/resetpassword',\n '/reset2fa'\n ]\n\n if (!wizardTested && !R.contains(location.pathname)(dontTriggerPages)) {\n history.push('/wizard')\n return null\n }\n\n const getFilteredRoutes = () => {\n if (!userData) return []\n\n return flattened.filter(value => {\n const keys = value.allowedRoles\n return R.includes(userData.role, keys)\n })\n }\n\n const Transition = location.state ? Slide : Fade\n\n const transitionProps =\n Transition === Slide\n ? {\n direction:\n R.findIndex(R.propEq('route', location.state.prev))(leafRoutes) >\n R.findIndex(R.propEq('route', location.pathname))(leafRoutes)\n ? 'right'\n : 'left'\n }\n : { timeout: 400 }\n\n return (\n \n \n \n \n \n \n \n \n }\n />\n \n \n \n \n {/* */}\n \n \n \n {getFilteredRoutes().map(({ route, component: Page, key }) => (\n \n \n \n \n \n \n }\n />\n \n ))}\n \n \n \n \n \n )\n}\nexport { tree, getParent, hasSidebar, Routes }\n","import { mainWidth } from 'src/styling/variables'\n\nimport fonts from './fonts'\n\nconst fill = '100%'\n\nexport default {\n '@global': {\n ...fonts,\n '#root': {\n width: fill,\n minHeight: fill\n },\n '.root-notifcenter-open': {\n // for when notification center is open\n overflowY: 'auto',\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0\n },\n '.body-notifcenter-open': {\n // for when notification center is open\n overflow: 'hidden'\n },\n '.root-blur': {\n filter: 'blur(1px)',\n pointerEvents: 'none'\n },\n html: {\n height: fill,\n '@media screen and (max-height: 900px)': {\n scrollbarGutter: 'stable'\n }\n },\n body: {\n width: mainWidth,\n display: 'flex',\n minHeight: fill,\n '@media screen and (min-width: 1200px)': {\n width: 'auto'\n }\n },\n [`a::-moz-focus-inner,\n 'input[type=\"submit\"]::-moz-focus-inner,\n input[type=\"button\"]::-moz-focus-inner`]: {\n border: 0\n },\n [`a::-moz-focus-inner,\n input[type=\"submit\"]::-moz-focus-inner,\n input[type=\"button\"]::-moz-focus-inner`]: {\n border: 0\n },\n [`a,\n a:visited,\n a:focus,\n a:active,\n a:hover`]: {\n outline: '0 none'\n },\n 'button::-moz-focus-inner': {\n border: 0\n },\n // forcing styling onto inner container\n '.ReactVirtualized__Grid__innerScrollContainer': {\n overflow: 'inherit !important'\n }\n }\n}\n","export default {\n // /*!\n // * Web Fonts from Fontspring.com\n // *\n // * All OpenType features and all extended glyphs have been removed.\n // * Fully installable fonts can be purchased at http://www.fontspring.com\n // *\n // * The fonts included in this stylesheet are subject to the End User License you purchased\n // * from Fontspring. The fonts are protected under domestic and international trademark and\n // * copyright law. You are prohibited from modifying, reverse engineering, duplicating, or\n // * distributing this font software.\n // *\n // * (c) 2010-2018 Fontspring\n // *\n // *\n // *\n // *\n // * The fonts included are copyrighted by the vendor listed below.\n // *\n // * Vendor: Fontfabric\n // * License URL: https://www.fontspring.com/licenses/fontfabric/webfont\n // *\n // *\n // */\n\n '@font-face': [\n {\n fontFamily: 'Mont',\n src: [\n 'url(\"/fonts/MontHeavy/mont-heavy-webfont.woff2\") format(\"woff2\")',\n 'url(\"/fonts/MontHeavy/mont-heavy-webfont.woff\") format(\"woff\")'\n ],\n fontWeight: 900,\n fontStyle: 'normal'\n },\n {\n fontFamily: 'Mont',\n src: [\n 'url(\"/fonts/MontHeavy/mont-bold-webfont.woff2\") format(\"woff2\")',\n 'url(\"/fonts/MontHeavy/mont-bold-webfont.woff\") format(\"woff\")'\n ],\n fontWeight: 700,\n fontStyle: 'normal'\n },\n // /*!\n // * Web Fonts from Fontspring.com\n // *\n // * All OpenType features and all extended glyphs have been removed.\n // * Fully installable fonts can be purchased at http://www.fontspring.com\n // *\n // * The fonts included in this stylesheet are subject to the End User License you purchased\n // * from Fontspring. The fonts are protected under domestic and international trademark and\n // * copyright law. You are prohibited from modifying, reverse engineering, duplicating, or\n // * distributing this font software.\n // *\n // * (c) 2010-2018 Fontspring\n // *\n // *\n // *\n // *\n // * The fonts included are copyrighted by the vendor listed below.\n // *\n // * Vendor: exljbris Font Foundry\n // * License URL: https://www.fontspring.com/licenses/exljbris/webfont\n // *\n // *\n // */\n {\n fontFamily: 'MuseoSans',\n src: [\n 'url(\"/fonts/MuseoSans/MuseoSans_500-webfont.woff2\") format(\"woff2\")',\n 'url(\"/fonts/MuseoSans/MuseoSans_500-webfont.woff\") format(\"woff\")'\n ],\n fontWeight: 500,\n fontStyle: 'normal'\n },\n {\n fontFamily: 'MuseoSans',\n src: [\n 'url(\"/fonts/MuseoSans/MuseoSans_700-webfont.woff2\") format(\"woff2\")',\n 'url(\"/fonts/MuseoSans/MuseoSans_700-webfont.woff\") format(\"woff\")'\n ],\n fontWeight: 700,\n fontStyle: 'normal'\n },\n\n // // BP-mono Freely distributed at http://backpacker.gr/fonts/5\n {\n fontFamily: 'BPmono',\n src: 'url(\"/fonts/BPmono/BPmono.ttf\") format(\"truetype\")',\n fontWeight: 500,\n fontStyle: 'normal'\n }\n ]\n}\n","import { createMuiTheme } from '@material-ui/core/styles'\n\nimport typographyStyles from 'src/components/typography/styles'\n\nimport {\n backgroundColor,\n inputFontFamily,\n secondaryColor,\n fontColor,\n offColor,\n subheaderColor,\n fontSize3,\n fontSize5,\n zircon,\n zircon2,\n primaryColor\n} from './variables'\n\nconst { p } = typographyStyles\n\nexport default createMuiTheme({\n typography: {\n fontFamily: inputFontFamily,\n body1: { ...p }\n },\n MuiButtonBase: {\n disableRipple: true\n },\n palette: {\n primary: {\n light: secondaryColor,\n dark: secondaryColor,\n main: secondaryColor\n },\n secondary: {\n light: secondaryColor,\n dark: secondaryColor,\n main: secondaryColor\n },\n background: {\n default: backgroundColor\n }\n },\n overrides: {\n MuiRadio: {\n colorSecondary: {\n color: secondaryColor\n }\n },\n MuiAutocomplete: {\n root: {\n color: fontColor\n },\n noOptions: {\n padding: [[6, 16]]\n },\n option: {\n '&[data-focus=\"true\"]': {\n backgroundColor: subheaderColor\n }\n },\n paper: {\n color: fontColor,\n margin: 0\n },\n listbox: {\n padding: 0\n },\n tag: {\n '&[data-tag-index=\"0\"]': {\n marginLeft: 0\n },\n margin: 2,\n backgroundColor: subheaderColor,\n borderRadius: 4,\n height: 18\n }\n },\n MuiChip: {\n label: {\n paddingLeft: 4,\n paddingRight: 4,\n color: fontColor,\n fontSize: fontSize5\n }\n },\n MuiInput: {\n root: {\n color: fontColor\n },\n underline: {\n '&:before': {\n borderBottom: [[2, 'solid', fontColor]]\n }\n }\n },\n MuiInputLabel: {\n root: {\n font: 'inherit',\n fontSize: fontSize3,\n color: offColor\n },\n shrink: {\n color: fontColor,\n transform: 'translate(0, 1.7px) scale(0.83)'\n }\n },\n MuiFormLabel: {\n root: {\n '&$focused': {\n color: fontColor\n }\n }\n },\n MuiListItem: {\n root: {\n '&:nth-of-type(odd)': {\n backgroundColor: backgroundColor\n }\n }\n },\n MuiToggleButton: {\n root: {\n '&$selected': {\n backgroundColor: zircon,\n borderColor: primaryColor,\n borderTopColor: [primaryColor, '!important'],\n '&:hover': {\n backgroundColor: zircon2\n }\n },\n '&:hover': {\n backgroundColor: zircon2\n }\n }\n },\n MuiToggleButtonGroup: {\n groupedVertical: {\n borderRadius: 8,\n border: '1px solid',\n borderColor: zircon,\n '&:not(:first-child)': {\n borderTop: '1px solid',\n borderTopColor: zircon,\n borderTopRightRadius: 8,\n borderTopLeftRadius: 8,\n borderBottomRightRadius: 8,\n borderBottomLeftRadius: 8\n },\n '&:not(:last-child)': {\n borderTop: '1px solid',\n borderTopColor: zircon,\n borderTopRightRadius: 8,\n borderTopLeftRadius: 8,\n borderBottomRightRadius: 8,\n borderBottomLeftRadius: 8\n }\n }\n }\n }\n})\n","import { useQuery } from '@apollo/react-hooks'\nimport CssBaseline from '@material-ui/core/CssBaseline'\nimport Grid from '@material-ui/core/Grid'\nimport Slide from '@material-ui/core/Slide'\nimport {\n StylesProvider,\n jssPreset,\n MuiThemeProvider,\n makeStyles\n} from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport { create } from 'jss'\nimport extendJss from 'jss-plugin-extend'\nimport React, { useContext, useState } from 'react'\nimport {\n useLocation,\n useHistory,\n BrowserRouter as Router\n} from 'react-router-dom'\n\nimport AppContext from 'src/AppContext'\nimport Header from 'src/components/layout/Header'\nimport Sidebar from 'src/components/layout/Sidebar'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport { tree, hasSidebar, Routes, getParent } from 'src/routing/routes'\nimport global from 'src/styling/global'\nimport theme from 'src/styling/theme'\nimport { backgroundColor, mainWidth } from 'src/styling/variables'\nimport ApolloProvider from 'src/utils/apollo'\n\nif (process.env.NODE_ENV !== 'production') {\n const whyDidYouRender = require('@welldone-software/why-did-you-render')\n whyDidYouRender(React)\n}\n\nconst jss = create({\n plugins: [extendJss(), ...jssPreset().plugins]\n})\n\nconst fill = '100%'\nconst flexDirection = 'column'\n\nconst useStyles = makeStyles({\n ...global,\n root: {\n backgroundColor,\n width: fill,\n minHeight: fill,\n display: 'flex',\n flexDirection\n },\n wrapper: {\n width: mainWidth,\n height: fill,\n margin: '0 auto',\n flex: 1,\n display: 'flex',\n flexDirection\n },\n grid: {\n flex: 1,\n height: '100%'\n },\n contentWithSidebar: {\n flex: 1,\n marginLeft: 48,\n paddingTop: 15\n },\n contentWithoutSidebar: {\n width: mainWidth\n }\n})\n\nconst GET_USER_DATA = gql`\n query userData {\n userData {\n id\n username\n role\n enabled\n last_accessed\n last_accessed_from\n last_accessed_address\n }\n }\n`\n\nconst Main = () => {\n const classes = useStyles()\n const location = useLocation()\n const history = useHistory()\n const { wizardTested, userData, setUserData } = useContext(AppContext)\n\n const { loading } = useQuery(GET_USER_DATA, {\n onCompleted: userResponse => {\n if (!userData && userResponse?.userData)\n setUserData(userResponse.userData)\n }\n })\n\n const route = location.pathname\n\n const sidebar = hasSidebar(route)\n const parent = sidebar ? getParent(route) : {}\n\n const is404 = location.pathname === '/404'\n\n const isSelected = it => location.pathname === it.route\n\n const onClick = it => history.push(it.route)\n\n const contentClassName = sidebar\n ? classes.contentWithSidebar\n : classes.contentWithoutSidebar\n\n return (\n \n {!is404 && wizardTested && userData && (\n \n )}\n \n {sidebar && !is404 && wizardTested && (\n \n \n
\n }\n />\n )}\n\n \n {sidebar && !is404 && wizardTested && (\n it.label}\n onClick={onClick}\n />\n )}\n {!loading && }
\n \n \n \n )\n}\n\nconst App = () => {\n const [wizardTested, setWizardTested] = useState(false)\n const [userData, setUserData] = useState(null)\n\n const setRole = role => {\n if (userData && role && userData.role !== role) {\n setUserData({ ...userData, role })\n }\n }\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default App\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n)\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href)\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config)\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n )\n })\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config)\n }\n })\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing\n if (installingWorker == null) {\n return\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n )\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration)\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.')\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration)\n }\n }\n }\n }\n }\n })\n .catch(error => {\n console.error('Error during service worker registration:', error)\n })\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type')\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload()\n })\n })\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config)\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n )\n })\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister()\n })\n }\n}\n","import React from 'react'\nimport ReactDOM from 'react-dom'\n\nimport App from './App'\nimport * as serviceWorker from './serviceWorker'\n\nfunction checkBuildTarget() {\n const buildTarget = process.env.REACT_APP_BUILD_TARGET\n\n if (buildTarget !== 'LAMASSU' && buildTarget !== 'PAZUZ') {\n return Promise.reject(\n new Error('No such build target: ' + process.env.REACT_APP_BUILD_TARGET)\n )\n }\n\n return Promise.resolve()\n}\n\ncheckBuildTarget().then(() =>\n ReactDOM.render(\n \n \n ,\n document.getElementById('root')\n )\n)\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister()\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["AppContext.js","styling/variables.js","components/typography/styles.js","components/buttons/ActionButton.styles.js","components/buttons/ActionButton.js","components/typography/index.js","styling/icons/menu/notification-zodiac.svg","styling/icons/stage/spring/empty.svg","styling/icons/stage/zodiac/empty.svg","styling/icons/stage/zodiac/full.svg","components/NotificationCenter/NotificationCenter.styles.js","styling/icons/action/wrench/zodiac.svg","styling/icons/arrow/transaction.svg","styling/icons/warning-icon/tomato.svg","components/NotificationCenter/NotificationRow.js","components/NotificationCenter/NotificationCenter.js","components/NotificationCenter/index.js","components/Title.js","styling/icons/button/add/zodiac.svg","components/buttons/AddButton.js","components/buttons/Button.styles.js","components/buttons/Button.js","components/buttons/BaseButton.styles.js","components/buttons/FeatureButton.js","components/Popper.js","components/buttons/IDButton.js","components/buttons/IconButton.js","components/buttons/Link.styles.js","components/buttons/Link.js","components/buttons/SimpleButton.js","styling/icons/button/cancel/white.svg","components/buttons/SubpageButton.styles.js","components/buttons/SubpageButton.js","styling/icons/action/external link/white.svg","styling/icons/action/external link/zodiac.svg","components/buttons/SupportLinkButton.js","styling/helpers.js","components/inputs/base/TextInput.styles.js","components/inputs/base/TextInput.js","components/inputs/base/Autocomplete.js","styling/icons/warning-icon/comet.svg","components/inputs/base/Checkbox.js","components/inputs/base/CodeInput.styles.js","components/inputs/base/CodeInput.js","components/inputs/base/Dropdown.js","components/inputs/base/NumberInput.js","components/inputs/base/RadioGroup.js","components/inputs/base/SecretInput.js","components/inputs/base/Switch.js","components/inputs/base/ToggleButtonGroup.js","components/inputs/formik/Autocomplete.js","components/Chip.js","utils/number.js","components/inputs/cashbox/Cashbox.styles.js","components/inputs/cashbox/Cashbox.js","components/inputs/formik/CashCassetteInput.js","components/inputs/formik/Checkbox.js","components/inputs/formik/Dropdown.js","components/inputs/formik/NumberInput.js","components/inputs/formik/RadioGroup.js","components/inputs/formik/SecretInput.js","components/inputs/formik/TextInput.js","styling/icons/stage/zodiac/complete.svg","styling/icons/stage/zodiac/current.svg","components/layout/Sidebar.styles.js","components/layout/Sidebar.js","styling/icons/ID/photo/zodiac.svg","styling/icons/action/close/zodiac.svg","styling/icons/stage/spring/complete.svg","pages/AddMachine/styles.js","pages/AddMachine/AddMachine.js","pages/AddMachine/index.js","styling/icons/button/add/white.svg","styling/icons/menu/logo.svg","styling/icons/menu/notification.svg","components/layout/Header.styles.js","components/layout/Header.js","components/ErrorMessage.js","components/layout/TitleSection.styles.js","components/layout/TitleSection.js","pages/Authentication/shared.styles.js","pages/Authentication/states.js","pages/Authentication/Input2FAState.js","pages/Authentication/InputFIDOState.js","pages/Authentication/LoginState.js","pages/Authentication/Setup2FAState.js","pages/Authentication/LoginCard.js","pages/Authentication/Login.js","pages/Authentication/Register.js","pages/Authentication/Reset2FA.js","pages/Authentication/ResetPassword.js","styling/icons/direction/cash-in.svg","styling/icons/direction/cash-out.svg","pages/Dashboard/Dashboard.styles.js","utils/config.js","pages/Dashboard/Footer/Footer.styles.js","pages/Dashboard/Footer/Footer.js","pages/Dashboard/Footer/index.js","styling/icons/table/empty-table.svg","components/table/EmptyTable.js","components/table/Table.js","components/table/TableBody.js","components/table/TableCell.js","components/table/TableHead.js","components/table/TableHeader.js","components/table/TableRow.js","styling/icons/dashboard/down.svg","styling/icons/dashboard/equal.svg","styling/icons/dashboard/up.svg","utils/timezone-list.js","utils/timezones.js","pages/Dashboard/SystemPerformance/Graphs/PercentageChart.js","pages/Dashboard/SystemPerformance/Graphs/RefLineChart.js","utils/time.js","pages/Dashboard/SystemPerformance/Graphs/RefScatterplot.js","pages/Dashboard/SystemPerformance/InfoWithLabel.js","pages/Dashboard/SystemPerformance/SystemPerformance.styles.js","pages/Dashboard/SystemPerformance/Nav.js","pages/Dashboard/SystemPerformance/SystemPerformance.js","pages/Dashboard/SystemPerformance/index.js","pages/Dashboard/LeftSide.js","components/CollapsibleCard.js","pages/Dashboard/Alerts/Alerts.styles.js","styling/icons/cassettes/cashbox-empty.svg","styling/icons/month arrows/right.svg","pages/Dashboard/Alerts/AlertsTable.js","pages/Dashboard/Alerts/Alerts.js","pages/Dashboard/Alerts/index.js","components/Status.js","pages/Dashboard/SystemStatus/MachinesTable.styles.js","pages/Dashboard/SystemStatus/MachinesTable.js","pages/Dashboard/SystemStatus/SystemStatus.js","pages/Dashboard/SystemStatus/index.js","pages/Dashboard/RightSide.js","pages/Dashboard/Dashboard.js","pages/Dashboard/index.js","components/PromptWhenDirty.js","components/fake-table/Table.styles.js","components/fake-table/Table.js","components/editableTable/Context.js","utils/sanctuary.js","utils/string.js","components/editableTable/Header.js","components/DeleteDialog.js","styling/icons/action/arrow/regular.svg","components/inputs/base/Select.styles.js","components/inputs/base/Select.js","styling/icons/action/delete/disabled.svg","styling/icons/action/delete/enabled.svg","styling/icons/action/edit/disabled.svg","styling/icons/action/edit/enabled.svg","styling/icons/stripes.svg","components/editableTable/Row.styles.js","components/editableTable/Row.js","components/editableTable/Table.styles.js","components/editableTable/Table.js","components/editableTable/NamespacedTable.js","components/Modal.js","utils/constants.js","styling/icons/cassettes/both-filled.svg","pages/Maintenance/Wizard/WizardSplash.js","styling/icons/stage/spring/current.svg","components/Stepper.js","styling/icons/action/help/zodiac.svg","components/Tooltip.js","styling/icons/cassettes/acceptor-left.svg","styling/icons/cassettes/dispenser-1.svg","styling/icons/cassettes/dispenser-2.svg","styling/icons/cassettes/tejo/3-cassettes/3-cassettes-open-1-left.svg","styling/icons/cassettes/tejo/3-cassettes/3-cassettes-open-2-left.svg","styling/icons/cassettes/tejo/3-cassettes/3-cassettes-open-3-left.svg","styling/icons/cassettes/tejo/4-cassettes/4-cassettes-open-1-left.svg","styling/icons/cassettes/tejo/4-cassettes/4-cassettes-open-2-left.svg","styling/icons/cassettes/tejo/4-cassettes/4-cassettes-open-3-left.svg","styling/icons/cassettes/tejo/4-cassettes/4-cassettes-open-4-left.svg","pages/Maintenance/Wizard/WizardStep.js","pages/Maintenance/Wizard/Wizard.js","pages/Machines/MachineComponents/Cassettes/Cassettes.styles.js","pages/Machines/MachineComponents/Cassettes/Cassettes.js","pages/Machines/MachineComponents/Cassettes/index.js","pages/Machines/MachineComponents/Commissions/helper.js","pages/Machines/MachineComponents/Commissions/Commissions.js","pages/Machines/MachineComponents/Commissions/index.js","utils/machine.js","pages/Machines/Machines.styles.js","pages/Machines/MachineComponents/Details.js","components/ConfirmDialog.js","styling/icons/button/edit/white.svg","styling/icons/button/edit/zodiac.svg","styling/icons/button/reboot/white.svg","styling/icons/button/reboot/zodiac.svg","styling/icons/button/shut down/white.svg","styling/icons/button/shut down/zodiac.svg","styling/icons/button/unpair/white.svg","styling/icons/button/unpair/zodiac.svg","components/machineActions/MachineActions.styles.js","components/machineActions/MachineActions.js","styling/icons/action/copy/copy.svg","pages/Logs.styles.js","pages/Transactions/Transactions.styles.js","pages/Transactions/CopyToClipboard.js","pages/Machines/MachineComponents/Overview.js","styling/icons/ID/card/white.svg","styling/icons/ID/card/zodiac.svg","styling/icons/ID/phone/white.svg","styling/icons/ID/phone/zodiac.svg","styling/icons/ID/photo/white.svg","styling/icons/button/cancel/zodiac.svg","styling/icons/button/download/white.svg","styling/icons/button/download/zodiac.svg","utils/apollo.js","pages/Transactions/DetailsCard.styles.js","pages/Transactions/helper.js","pages/Transactions/DetailsCard.js","components/tables/DataTable.styles.js","styling/icons/action/expand/closed.svg","styling/icons/action/expand/open.svg","pages/Machines/MachineComponents/Transactions/DataTable.js","pages/Machines/MachineComponents/Transactions/Transactions.js","pages/Machines/MachineComponents/Transactions/index.js","pages/Machines/Machines.js","pages/Machines/index.js","utils/bill-denominations.js","utils/bill-options.js","pages/Commissions/helper.js","pages/Locales/helper.js","pages/Wallet/helper.js","components/Subtitle.js","components/layout/Section.js","components/layout/Section.styles.js","pages/Wizard/components/Commissions.js","pages/Wizard/components/Locales.js","components/InfoMessage.js","pages/Services/FormRenderer.js","pages/Services/schemas/helper.js","pages/Services/schemas/twilio.js","pages/Wizard/components/Wallet/Shared.styles.js","pages/Wizard/components/Twilio.js","pages/Wizard/components/Wallet/AllSet.js","pages/Services/schemas/binanceus.js","pages/Services/schemas/bitgo.js","pages/Services/schemas/bitstamp.js","pages/Services/schemas/blockcypher.js","pages/Services/schemas/cex.js","pages/Services/schemas/ciphertrace.js","pages/Services/schemas/ftx.js","pages/Services/schemas/infura.js","pages/Services/schemas/itbit.js","pages/Services/schemas/kraken.js","pages/Services/schemas/mailgun.js","pages/Services/schemas/index.js","pages/Wizard/components/Wallet/Blockcypher.js","pages/Wizard/components/Wallet/ChooseCoin.js","pages/Wizard/components/Wallet/getItems.js","pages/Wizard/components/Wallet/ChooseExchange.js","pages/Wizard/components/Wallet/ChooseTicker.js","pages/Services/schemas/singlebitgo.js","pages/Wizard/components/Wallet/ChooseWallet.js","pages/Wizard/components/Wallet/Wallet.js","pages/Wizard/components/Welcome.js","pages/Wizard/helper.js","pages/Wizard/components/Footer.js","pages/Wizard/Wizard.js","pages/Wizard/index.js","routing/utils.js","routing/PrivateRoute.js","routing/PublicRoute.js","pages/Analytics/Analytics.styles.js","pages/Analytics/components/LegendEntry.js","pages/Analytics/components/tooltips/GraphTooltip.styles.js","pages/Analytics/components/tooltips/GraphTooltip.js","pages/Analytics/graphs/HourOfDayBarGraph.js","pages/Analytics/graphs/OverTimeDotGraph.js","pages/Analytics/graphs/TopMachinesBarGraph.js","pages/Analytics/graphs/Graph.js","pages/Analytics/components/wrappers/HourOfDayWrapper.js","pages/Analytics/components/wrappers/OverTimeWrapper.js","pages/Analytics/components/wrappers/TopMachinesWrapper.js","pages/Analytics/Analytics.js","pages/Blacklist/Blacklist.styles.js","pages/Blacklist/BlacklistModal.js","components/tables/DataTable.js","pages/Blacklist/BlacklistTable.js","pages/Blacklist/Blacklist.js","pages/Blacklist/index.js","pages/Cashout/WizardSplash.js","styling/icons/cassettes/cashout-cassette-1.svg","styling/icons/cassettes/cashout-cassette-2.svg","pages/Cashout/WizardStep.styles.js","pages/Cashout/WizardStep.js","pages/Cashout/helper.js","pages/Cashout/Wizard.js","pages/Cashout/Cashout.js","pages/Cashout/index.js","styling/icons/circle buttons/listing-view/white.svg","styling/icons/circle buttons/listing-view/zodiac.svg","styling/icons/status/spring2.svg","pages/Commissions/components/CommissionsDetails.js","pages/Commissions/components/CommissionsList.js","pages/Commissions/Commissions.js","pages/Commissions/index.js","styling/icons/button/authorize/white.svg","styling/icons/button/authorize/zodiac.svg","pages/Customers/components/propertyCard/PropertyCard.styles.js","pages/Customers/components/propertyCard/PropertyCard.js","styling/icons/button/block/white.svg","styling/icons/button/block/zodiac.svg","styling/icons/button/data/white.svg","styling/icons/button/data/zodiac.svg","styling/icons/circle buttons/search/white.svg","styling/icons/circle buttons/search/zodiac.svg","components/ImagePopper.js","components/ImagePopper.styles.js","styling/icons/ID/card/comet.svg","styling/icons/ID/phone/comet.svg","styling/icons/ID/photo/crossed-camera.svg","styling/icons/action/edit/comet.svg","styling/icons/circle buttons/customer-list-view/white.svg","styling/icons/circle buttons/customer-list-view/zodiac.svg","styling/icons/circle buttons/overview/white.svg","styling/icons/circle buttons/overview/zodiac.svg","pages/Customers/CustomerData.styles.js","pages/Customers/helper.js","pages/Customers/Wizard.js","pages/Customers/CustomersList.styles.js","components/InformativeDialog.js","pages/Customers/components/PhotosCard.styles.js","styling/icons/arrow/carousel-left-arrow.svg","styling/icons/arrow/carousel-right-arrow.svg","components/Carousel.js","pages/Customers/components/PhotosCarousel.styles.js","pages/Customers/components/PhotosCarousel.js","pages/Customers/components/PhotosCard.js","pages/Customers/components/CustomerDetails.js","styling/icons/customer-nav/data/comet.svg","styling/icons/customer-nav/data/white.svg","styling/icons/customer-nav/note/comet.svg","styling/icons/customer-nav/note/white.svg","styling/icons/customer-nav/overview/comet.svg","styling/icons/customer-nav/overview/white.svg","styling/icons/customer-nav/photos/comet.svg","styling/icons/customer-nav/photos/white.svg","pages/Customers/components/CustomerSidebar.styles.js","pages/Customers/components/CustomerSidebar.js","styling/icons/action/delete/white.svg","styling/icons/action/edit/white.svg","styling/icons/button/replace/white.svg","styling/icons/circle buttons/save/white.svg","pages/Customers/components/EditableCard.styles.js","pages/Customers/components/EditableCard.js","utils/nullCheck.js","pages/Customers/components/Field.js","pages/Customers/components/TransactionsList.js","styling/icons/button/photo/zodiac-resized.svg","styling/icons/button/upload-file/zodiac-resized.svg","pages/Customers/components/Upload.js","pages/Customers/CustomerData.js","pages/Customers/CustomerNotes.styles.js","pages/Customers/components/notes/NoteCard.styles.js","pages/Customers/components/notes/NewNoteCard.js","pages/Customers/components/notes/NewNoteModal.styles.js","pages/Customers/components/notes/NewNoteModal.js","pages/Customers/components/notes/NoteCard.js","styling/icons/circle buttons/save/zodiac.svg","pages/Customers/components/notes/NoteEdit.js","pages/Customers/CustomerNotes.js","styling/icons/ID/photo/comet.svg","pages/Customers/CustomerPhotos.styles.js","pages/Customers/CustomerPhotos.js","pages/Customers/CustomerProfile.styles.js","pages/Customers/CustomerProfile.js","components/SearchBox.styles.js","components/SearchBox.js","styling/icons/button/filter/white.svg","styling/icons/button/filter/zodiac.svg","components/SearchFilter.styles.js","components/SearchFilter.js","pages/Customers/CustomersList.js","pages/Customers/components/CreateCustomerModal.js","pages/Customers/Customers.js","components/TableLabel.js","pages/Funding.styles.js","pages/Funding.js","styling/logos/icon-bitcoin-colour.svg","styling/logos/icon-bitcoincash-colour.svg","styling/logos/icon-dash-colour.svg","styling/logos/icon-ethereum-colour.svg","styling/logos/icon-litecoin-colour.svg","styling/logos/icon-monero-colour.svg","styling/logos/icon-tether-colour.svg","styling/logos/icon-zcash-colour.svg","pages/Wallet/WizardSplash.js","pages/Wallet/WizardStep.styles.js","pages/Wallet/WizardStep.js","pages/Wallet/Wizard.js","pages/Locales/Locales.js","pages/Locales/Locales.styles.js","pages/Locales/index.js","pages/LoyaltyPanel/IndividualDiscount.styles.js","pages/LoyaltyPanel/IndividualDiscountModal.js","pages/LoyaltyPanel/IndividualDiscounts.js","pages/LoyaltyPanel/PromoCodes.styles.js","pages/LoyaltyPanel/PromoCodesModal.js","pages/LoyaltyPanel/PromoCodes.js","styling/icons/arrow/download_logs.svg","styling/icons/arrow/month_change.svg","styling/icons/arrow/month_change_right.svg","components/date-range-picker/Tile.js","components/date-range-picker/Calendar.js","components/date-range-picker/DateRangePicker.js","components/LogsDownloaderPopper.js","pages/MachineLogs.js","styling/icons/circle buttons/history/white.svg","styling/icons/circle buttons/history/zodiac.svg","pages/Maintenance/CashCassettes.styles.js","pages/Maintenance/CashCassettesFooter.styles.js","pages/Maintenance/CashCassettesFooter.js","pages/Maintenance/CashboxHistory.js","pages/Maintenance/CashCassettes.js","styling/icons/status/pumpkin.svg","styling/icons/status/tomato.svg","pages/Maintenance/MachineDetailsCard.styles.js","pages/Maintenance/MachineDetailsCard.js","pages/Maintenance/MachineStatus.js","pages/Notifications/NotificationsContext.js","pages/Notifications/components/EditHeader.js","pages/Notifications/components/EditHeader.styles.js","pages/Notifications/components/EditableNumber.js","pages/Notifications/components/EditableNumber.styles.js","pages/Notifications/components/SingleFieldEditableNumber.js","pages/Notifications/sections/CryptoBalanceAlerts.js","pages/Notifications/sections/CryptoBalanceAlerts.styles.js","pages/Notifications/sections/CryptoBalanceOverrides.js","pages/Notifications/sections/FiatBalanceAlerts.styles.js","pages/Notifications/sections/FiatBalanceAlerts.js","pages/Notifications/sections/FiatBalanceOverrides.js","pages/Notifications/sections/Setup.js","pages/Notifications/sections/TransactionAlerts.js","pages/Notifications/Notifications.js","styling/icons/table/false.svg","styling/icons/table/true.svg","components/booleanPropertiesTable/BooleanPropertiesTable.styles.js","components/booleanPropertiesTable/BooleanPropertiesTable.js","pages/OperatorInfo/OperatorInfo.styles.js","pages/OperatorInfo/CoinATMRadar.js","pages/OperatorInfo/ContactInfo.js","pages/OperatorInfo/ReceiptPrinting.js","styling/icons/menu/logo-white.svg","pages/OperatorInfo/SMSNotices/SMSNotices.styles.js","styling/icons/button/retry/white.svg","styling/icons/button/retry/zodiac.svg","pages/OperatorInfo/SMSNotices/SMSNoticesModal.js","pages/OperatorInfo/SMSNotices/SMSNotices.js","pages/OperatorInfo/TermsConditions.js","components/Uptime.js","pages/ServerLogs.js","components/single-row-table/SingleRowTable.styles.js","components/single-row-table/SingleRowTable.js","pages/Services/Services.js","pages/SessionManagement/SessionManagement.js","styling/icons/month arrows/right_white.svg","pages/Transactions/Transactions.js","styling/icons/circle buttons/filter/white.svg","styling/icons/circle buttons/filter/zodiac.svg","styling/icons/circle buttons/settings/white.svg","styling/icons/circle buttons/settings/zodiac.svg","pages/Triggers/CustomInfoRequests/DetailsCard.js","components/inputs/formik/ToggleButtonGroup.js","styling/icons/compliance/keyboard.svg","styling/icons/compliance/keypad.svg","styling/icons/compliance/list.svg","pages/Triggers/CustomInfoRequests/Forms/ChooseType.js","pages/Triggers/CustomInfoRequests/Forms/NameOfRequirement.js","pages/Triggers/CustomInfoRequests/Forms/Screen1Information.js","pages/Triggers/CustomInfoRequests/Forms/Screen2Information.js","pages/Triggers/CustomInfoRequests/Forms/TypeFields/formStyles.styles.js","pages/Triggers/CustomInfoRequests/Forms/TypeFields/ChoiceList.js","pages/Triggers/CustomInfoRequests/Forms/TypeFields/NumericalEntry.js","pages/Triggers/CustomInfoRequests/Forms/TypeFields/TextEntry.js","pages/Triggers/CustomInfoRequests/Forms/TypeFields/index.js","styling/icons/compliance/custom-requirement.svg","pages/Triggers/CustomInfoRequests/WizardSplash.js","pages/Triggers/CustomInfoRequests/Wizard.js","pages/Triggers/CustomInfoRequests/CustomInfoRequests.js","pages/Triggers/CustomInfoRequests/CustomInfoRequests.styles.js","pages/Triggers/CustomInfoRequests/index.js","pages/Triggers/Triggers.styles.js","pages/Triggers/helper.js","pages/Triggers/Wizard.js","pages/Triggers/TriggerView.js","pages/Triggers/components/helper.js","pages/Triggers/components/AdvancedTriggers.js","pages/Triggers/Triggers.js","pages/Triggers/index.js","styling/icons/button/key/white.svg","styling/icons/button/key/zodiac.svg","styling/icons/button/lock/white.svg","styling/icons/button/lock/zodiac.svg","styling/icons/button/user-role/white.svg","styling/icons/button/user-role/zodiac.svg","pages/UserManagement/UserManagement.styles.js","pages/UserManagement/modals/Input2FAModal.js","pages/UserManagement/modals/ChangeRoleModal.js","utils/urlResolver.js","pages/UserManagement/modals/CreateUserModal.js","pages/UserManagement/modals/EnableUserModal.js","pages/UserManagement/modals/FIDOModal.js","pages/UserManagement/modals/Reset2FAModal.js","pages/UserManagement/modals/ResetPasswordModal.js","pages/UserManagement/UserManagement.js","pages/Wallet/AdvancedWallet.js","pages/Wallet/Wallet.js","pages/Wallet/Wallet.styles.js","routing/lamassu.routes.js","pages/ATMWallet/ATMWallet.styles.js","pages/Accounting/Accounting.styles.js","pages/ATMWallet/ATMWallet.js","pages/Assets/Assets.styles.js","pages/Accounting/Accounting.js","pages/Assets/Assets.js","routing/routes.js","styling/global/index.js","styling/global/fonts.js","styling/theme.js","App.js","serviceWorker.js","index.js"],"names":["React","createContext","comet","spring2","spring3","spring4","zircon","zircon2","java","neon","white","tomato","mistyRose","primaryColor","secondaryColor","secondaryColorDark","secondaryColorDarker","backgroundColor","subheaderColor","subheaderDarkColor","disabledColor","disabledColor2","fontColor","offColor","offDarkColor","offDarkerColor","placeholderColor","errorColor","offErrorColor","mainWidth","linkPrimaryColor","fontPrimary","fontSecondary","fontMonospaced","fontSize1","fontSize2","fontSize3","fontSize4","fontSize5","smallestFontSize","inputFontSizeSm","inputFontSize","inputFontSizeLg","inputFontWeight","inputFontFamily","tableHeaderHeight","spacer","tableCellHeight","tableDoubleHeaderHeight","tableHeaderColor","tableErrorColor","tableSuccessColor","base","lineHeight","color","h1","extend","fontSize","fontFamily","fontWeight","h2","h3","h4","h5","p","tl1","tl2","info1","info2","info3","mono","monoBold","monoSmall","inputFont","regularLabel","label1","label2","label3","confirmationCode","inline","display","noMargin","margin","colors","color1","color2","color3","actionButton","typographyStyles","cursor","border","height","outline","borderRadius","padding","alignItems","primary","secondary","spring","actionButtonIcon","paddingRight","svg","width","actionButtonIconActive","useStyles","makeStyles","styles","ActionButton","memo","className","Icon","InverseIcon","children","props","classes","classNames","classnames","H1","H2","H3","H4","H5","P","pBuilder","Info1","Info2","Info3","Mono","TL1","TL2","Label1","Label2","Label3","elementClass","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","id","stroke","strokeWidth","fill","fillRule","transform","d","strokeLinejoin","SvgNotificationZodiac","_ref","svgRef","title","titleId","viewBox","xmlns","xmlnsXlink","ref","ForwardRef","cx","cy","r","SvgEmpty","SvgFull","container","right","boxShadow","header","justifyContent","headerText","marginTop","marginLeft","actionButtons","notificationIcon","buttonCoords","xOffset","position","top","y","left","x","background","textShadow","clearAllButton","notificationsList","maxHeight","overflowY","overflowX","zIndex","notificationRow","flexDirection","marginBottom","paddingTop","marginRight","notificationContent","unread","notificationRowIcon","alignSelf","readIconWrapper","flexGrow","unreadIcon","readIcon","notificationTitle","notificationBody","notificationSubtitle","stripes","opacity","hasUnread","strokeLinecap","SvgZodiac","x1","y1","x2","y2","points","SvgTransaction","rx","SvgTomato","types","transaction","icon","highValueTransaction","fiatBalance","cryptoBalance","compliance","error","NotificationRow","type","message","detail","deviceName","created","read","valid","toggleClear","typeDisplay","R","age","prettyMs","Date","getTime","compact","verbose","iconClass","onClick","GET_NOTIFICATIONS","gql","TOGGLE_CLEAR_NOTIFICATION","CLEAR_ALL_NOTIFICATIONS","NotificationCenter","close","hasUnreadProp","popperRef","refetchHasUnreadHeader","useQuery","pollInterval","data","loading","useState","setXoffset","showingUnread","setShowingUnread","machines","notifications","setHasUnread","useMutation","onError","console","refetchQueries","toggleClearNotification","clearAllNotifications","useEffect","current","getBoundingClientRect","hasUnreadNotifications","ShowUnreadIcon","ClearAllIconInverse","ClearAllIcon","map","n","deviceId","variables","Title","button","SimpleButton","pickSize","size","wrapper","shadowSize","isGrey","buttonClassName","baseButton","baseButtonStyles","featureButton","buttonIcon","overflow","buttonIconActive","FeatureButton","Popover","bgColor","arrowSize","arrowRef","setArrowRef","popover","arrow","arrowBottom","borderLeft","borderRight","borderBottom","content","bottom","borderColor","transformOrigin","arrowTop","borderTop","arrowRight","arrowLeft","root","arrowClasses","placement","modifiers","flip","enabled","preventOverflow","boundariesElement","offset","element","computeStyle","gpuAcceleration","disablePortal","Paper","idButton","closed","open","popoverContent","IDButton","name","popoverWidth","popoverClassname","anchorEl","setAnchorEl","Boolean","undefined","iconClassNames","handleClose","ClickAwayListener","onClickAway","aria-describedby","event","currentTarget","onClose","label","flex","IconButton","disableRipple","fade","link","textDecoration","noColor","action","Link","submit","SvgWhite","normalButton","activeButton","buttonIconActiveLeft","buttonIconActiveRight","subpageButtonStyles","SubpageButton","toggle","forceDisable","active","setActive","isActive","newActiveState","actionButtonLink","SupportLinkButton","rel","href","LinkIcon","InverseLinkIcon","bySize","bold","textAlign","underline","borderBottomColor","TextInput","isPasswordFilled","onChange","onBlur","value","suffix","InputProps","isTextFilled","filled","inputClasses","TextField","Autocomplete","optionsLimit","limit","options","valueProp","multiple","labelProp","outsideValue","shouldStayOpen","fullWidth","autoFocus","mapFromValue","it","mapToValue","valueArray","evt","rValue","getOptionLabel","forcePopupIcon","filterOptions","array","inputValue","input","sort","filter","slice","Math","max","openOnFocus","autoHighlight","disableClearable","ChipProps","onDelete","clearOnEscape","getOptionSelected","renderInput","params","SvgComet","checked","checkBoxLabel","whiteSpace","CheckboxInput","settings","disabledMessage","rightSideLabel","Checkbox","style","checkedIcon","focus","useTypographyStyles","CodeInput","numInputs","inputStyle","containerStyle","typographyClasses","separator","focusStyle","errorStyle","hasErrored","isInputNum","Dropdown","FormControl","InputLabel","Select","autoWidth","labelId","option","index","MenuItem","NumberInput","decimalPlaces","customInput","decimalScale","onValueChange","values","floatValue","paddingLeft","subtitle","RadioGroup","labelClassName","radioClassName","idx","Fragment","FormControlLabel","disabled","code","control","Radio","SecretInput","onFocus","focused","setFocused","InputLabelProps","shrink","placeholder","theme","spacing","switchBase","palette","common","thumb","track","transition","transitions","create","focusVisible","SwitchInput","Switch","focusVisibleClassName","noTextTransform","textTransform","buttonTextContent","paragraph","ToggleButtonGroup","orientation","exclusive","ToggleButton","aria-label","description","AutocompleteFormik","setOpen","field","form","touched","errors","setFieldValue","setFieldTouched","useFormikContext","initialValues","innerOptions","onChangeHandler","item","onOpen","reason","LsChip","Chip","withStyles","isValidNumber","Number","NaN","transformNumber","numberToFiatAmount","toLocaleString","maximumFractionDigits","cashOut","empty","full","zodiac","cashIn","colorPicker","applyColorVariant","isLow","cashboxStyles","cashbox","fiatBalanceAlertCashbox","emptyPart","percent","fullPart","gridStyles","row","innerRow","col2","noMarginText","chip","cashboxClasses","gridClasses","Cashbox","emptyPartClassName","applyFiatBalanceAlertsStyling","omitInnerPercentage","ltHalf","showCashBox","toFixed","CashIn","currency","notes","total","CashOut","capacity","denomination","editingMode","threshold","col","cashCassette","CashCassetteInput","inputClassName","setNotes","e","RadioGroupFormik","ariaLabel","resetError","NumberInputFormik","SecretInputFormik","TextInputFormik","SvgComplete","SvgCurrent","breakpoint","sidebarColor","sidebar","minWidth","linkWrapper","activeLink","customRenderLink","customRenderActiveLink","itemText","itemTextActive","itemTextPast","stepperPath","stepperPast","Sidebar","displayName","isSelected","itemRender","Stepper","step","steps","past","future","enableBackground","xmlSpace","dialog","minHeight","contentDiv","headerDiv","contentWrapper","nameTitle","qrTitle","qrCodeWrapper","qrTextInfoWrapper","qrTextWrapper","textWrapper","qrTextIcon","qrText","successMessageWrapper","successMessage","successMessageIcon","errorMessage","qrCodeImageWrapper","qrCodeScanMessage","SAVE_CONFIG","GET_MACHINES","getSize","validationSchema","Yup","shape","required","test","context","machineNames","includes","component","nextStep","setQrCode","setName","onCompleted","createPairingTotem","log","register","validateOnBlur","validateOnChange","validate","validateSync","onSubmit","Button","qrCode","count","onPaired","timeout","useRef","clearTimeout","addedMachine","find","m","hasNewMachine","setTimeout","fgColor","includeMargin","qrCodeBorder","AddMachine","setStep","Component","Dialog","fullScreen","aria-labelledby","DialogContent","SvgIcon","renderStepper","xlinkHref","SvgLogo","SvgNotification","headerHeight","subheaderHeight","headerContainer","maxWidth","nav","ul","li","listStyle","forceSize","visibility","addMachine","subheader","subheaderUl","subheaderLi","subheaderLink","activeSubheaderLink","logo","logoLink","actionButtonsContainer","popper","HAS_UNREAD","Subheader","user","prev","setPrev","role","allowedRoles","to","pathname","route","state","activeClassName","match","notNil","Header","tree","notifButtonCoords","setNotifButtonCoords","refetch","startPolling","stopPolling","notifCenterButtonRef","history","useHistory","document","querySelector","classList","remove","popperOpen","push","whiteLink","forcesize","AddIcon","AddIconReverse","coords","add","Popper","machine","ErrorMessage","titleWrapper","titleAndButtonsContainer","subpageButton","buttonText","TitleSection","labels","buttons","appendix","appendixRight","inverseIcon","text","Box","rememberMeWrapper","checkbox","footer","twofaFooter","fidoLoginButtonWrapper","loginButton","welcomeBackground","backgroundSize","info","infoWrapper","secretWrapper","secretLabel","secret","hiddenSecret","confirm2FAInput","confirmPassword","enterButton","STATES","INPUT_2FA","GET_USER_DATA","Input2FAState","dispatch","setUserData","useContext","AppContext","invalidToken","setInvalidToken","useLazyQuery","userData","getUserData","queryError","input2FA","headers","base64","encode","clientField","mutationError","handleSubmit","twoFAField","username","password","passwordField","rememberMe","rememberMeField","payload","shouldAutoFocus","localClient","email","localRememberMe","InputFIDOState","strategy","GENERATE_ASSERTION","VALIDATE_ASSERTION","localClientField","setLocalClientField","localRememberMeField","setLocalRememberMeField","invalidUsername","setInvalidUsername","validateAssertion","domain","window","location","hostname","generateAssertionOptions","startAssertion","then","res","assertionResponse","catch","err","assertionOptions","assertionQueryError","getErrorMsg","formikErrors","formikTouched","client","onKeyUp","inputLabel","LOGIN","LoginState","login","loginMutationError","submitLogin","a","loginResponse","FIDOMutationError","userDataQueryError","SETUP_2FA","GET_2FA_SECRET","Setup2FAState","setSecret","otpauth","setOtpauth","isShowing","setShowing","twoFAConfirmation","setTwoFAConfirmation","queryOptions","get2FASecret","mutationOptions","codeConfirmation","success","setup2FA","AUTHENTICATION_STRATEGY","initialState","loginState","reducer","LoginCard","useReducer","elevation","renderState","Login","Grid","direction","justify","QueryParams","URLSearchParams","useLocation","search","VALIDATE_REGISTER_LINK","REGISTER","min","oneOf","result","Register","token","get","identifier","validateRegisterLink","fromAuthRegister","VALIDATE_RESET_2FA_LINK","RESET_2FA","userID","Reset2FA","validateReset2FALink","user_id","reset2FA","VALIDATE_RESET_PASSWORD_LINK","RESET_PASSWORD","val","ResetPassword","setUserID","isLoading","setLoading","wasSuccessful","setSuccess","validateResetPasswordLink","resetPassword","newPassword","SvgCashIn","SvgCashOut","headerLabels","emptyMachinesRoot","card","wordWrap","upperButtonLabel","alertsCard","centerLabel","systemStatusCard","expandedCard","shrunkCard","displayFlex","emptyMachinesContent","namespaces","mapKeys","fn","obj","filterByKey","stripl","q","str","fromNamespace","config","stripped","filtered","toNamespace","headerLabel","txOutMargin","tickerLabel","footer1","content1","GET_DATA","BigNumber","ROUNDING_MODE","ROUND_HALF_UP","Footer","withCommissions","wallets","cryptoCurrencies","accountsConfig","localeFiatCurrency","footerContainer1","tickerCode","tickerIdx","tickerName","cashInNoCommission","parseFloat","cashOutNoCommission","avgOfAskBid","toFormat","xs","renderFooterItem","filterUnits","dx","dy","in","stdDeviation","maskContentUnits","maskUnits","mask","fillOpacity","strokeDasharray","SvgEmptyTable","emptyTable","EmptyTable","table","tableLayout","borderCollapse","borderSpacing","Table","TableBody","td","alignRight","TableCell","colspan","rightAlign","colSpan","TableHead","th","TableHeaderCell","tr","lg","sm","TableRow","classnamesObj","SvgDown","SvgEqual","SvgUp","timezones","short","long","GMT","timezoneList","pairs","acc","isNegative","getTimezoneOffset","duration","intervalToDuration","start","end","abs","hours","minimumIntegerDigits","useGrouping","minutes","prefix","buildTzLabels","toUtc","date","browserTimezone","Intl","DateTimeFormat","resolvedOptions","timeZone","zonedTimeToUtc","toTimezone","timezone","utcToZonedTime","formatDate","pattern","newDate","format","formatDateNonUtc","percentageBox","inColor","outColor","other","inWidth","outWidth","PercentageChart","buildPercentageView","percentageClasses","transactionProfit","tx","cashInFee","commissionPercentage","fiat","mockPoint","offsetMs","profit","toISOString","formatDay","substring","formatHour","currentProfit","timeFrameMS","Day","Week","Month","RefLineChart","realData","previousTimeData","previousProfit","timeFrame","drawGraph","useCallback","d3","method","aggregatedTX","mockPoint1","now","massageData","zeroProfit","attr","append","selectAll","enter","g","xDomain","t","yDomain","range","line","area","y0","datum","MINUTE","DAY","WEEK","MONTH","Graph","GRAPH_HEIGHT","GRAPH_WIDTH","GRAPH_MARGIN","useMemo","NOW","periodDomains","dataPoints","freq","tick","every","labelFormat","filterDay","getUTCHours","getUTCDate","getPastAndCurrentDayLabels","currentDate","currentDateDay","currentDateWeekday","getUTCDay","currentDateMonth","getUTCMonth","previousDate","setUTCDate","previousDateDay","previousDateWeekday","previousDateMonth","daysOfWeek","Array","from","_","days","startOfWeek","months","startOfYear","previous","buildTicks","roundDate","ceil","valueOf","stepDate","toNumber","nice","buildBackground","buildXAxis","ticks","tickFormat","select","buildYAxis","buildGrid","join","scale","node","getBBox","formatTicksText","formatText","formatTicks","drawData","setTime","txClass","drawChart","InfoWithLabel","newHighlightedLabel","navButton","navContainer","percentUp","percentDown","percentNeutral","profitContainer","profitLabel","directionIcon","emptyTransactions","commissionProfitTitle","graphHeader","labelWrapper","txGraphContainer","commissionsGraphContainer","verticalLine","ranges","Nav","handleSetRange","showPicker","clickedItem","setClickedItem","innerText","getFiats","mapToFee","getDateSecondsAgo","seconds","startDate","sub","SystemPerformance","selectedRange","setSelectedRange","excludeTestingCustomers","fiatLocale","fiatCurrency","isInRangeAndNoError","getLastTimePeriod","isAfter","convertFiatToLocale","fiatCode","itemRate","fiatRates","multiplier","rate","transactionsToShow","transactions","transactionsLastTimePeriod","getProfit","cashInFees","commissionFees","getDirectionPercent","totalLength","round","percentChange","thisTimePeriodProfit","previousTimePeriodProfit","eq","minus","times","div","getPercentChange","locale_fiatCurrency","commissionGraphContainer","LeftSide","cardState","freeze","DEFAULT","SHRUNK","EXPANDED","CollapsibleCard","shrunkComponent","alertsTableContainer","expandedAlertsTableContainer","noAlertsLabel","listItemText","linkIcon","SvgCashboxEmpty","SvgRight","icons","links","AlertsTable","numToRender","alerts","alertsToRender","alertMessage","alert","List","dense","ListItem","GET_ALERTS","Alerts","onReset","onExpand","showAllItems","alertsLength","alertsTableContainerClasses","disableFocusRipple","warning","neutral","backgroundColors","Status","status","MainStatus","statuses","mainStatus","s","plus","clickableRow","buttonLabel","statusHeader","tableBody","machinesTableContainer","expandedMachinesTableContainer","machineNameWrapper","machineRedirectIcon","GET_CONFIG","StyledCell","HeaderCell","MachinesTable","fillingPercentageSettings","getPercent","makePercentageText","cassetteIdx","percentageThreshold","redirect","selectedMachine","maxNumberOfCassettes","numberOfCassettes","TableContainer","align","SystemStatus","cardState_","machinesTableContainerClasses","serverVersion","Infinity","ShrunkCard","buttonName","onUnshrink","RightSide","systemStatusSize","setSystemStatusSize","alertsSize","setAlertsSize","Dashboard","PROMPT_DEFAULT_MESSAGE","PromptWhenDirty","formik","hasChanges","dirty","submitCount","onbeforeunload","confirmExit","when","doubleHeader","thDoubleLevel","verticalAlign","cellDoubleLevel","tdHeader","trError","trAdding","mainContent","cardContentRoot","actionCol","errorContent","THead","TDoubleLevelHead","TBody","Td","Th","ThDoubleLevel","Tr","shouldShowError","newRow","cardClasses","Card","CardContent","S","sanctuary","checkTypes","process","env","toFirstLower","compose","joinWith","toLower","toFirstUpper","toUpper","onlyFirstToUpper","splitOnUpper","splitOn","startCase","singularOrPlural","amount","singularStr","pluralStr","parseInt","orderedBySpan","TableCtx","elements","enableEdit","enableEditText","editWidth","enableDelete","deleteWidth","enableToggle","toggleWidth","orderedBy","DEFAULT_COL_SIZE","mapElement","orderClasses","cloneHeader","spanChild","attachOrderedByToComplexHeader","toSHeader","noSHeader","groupSecondHeader","innerElements","HeaderElement","titleSection","actions","closeButton","DialogTitle","DeleteDialog","onConfirmed","onDismissed","confirmationMessage","split","DialogActions","SvgRegular","WIDTH","selectedItem","listStyleType","selectFiltered","items","useSelect","onSelectedItemChange","isOpen","getToggleButtonProps","getLabelProps","getMenuProps","getItemProps","selectClassNames","defaultAsFilter","default","SvgDisabled","SvgEnabled","patternUnits","patternTransform","SvgStripes","saveButton","lastOfGroup","extraPadding","extraPaddingRight","withSuffix","ActionCol","editing","submitForm","resetForm","onEdit","disableRowEdit","onToggle","forceAdd","clearError","actionColSize","disableEdit","deleteDialog","setDeleteDialog","editButton","ECol","bypassField","editable","editingAlign","SuffixComponent","textStyle","isHidden","view","toString","inputProps","isEditing","isEditable","isField","innerProps","ERow","rowSize","stripeWhen","toStripe","noStripe","groupStriped","extraPaddingIndex","extraPaddingRightIndex","elementToFocusIndex","findIndex","touchedErrors","hasErrors","addLink","outerHeader","getWidth","ETable","titleLg","save","externalError","enableCreate","outerEditWidth","disableAdd","setEditing","shouldOverrideEdit","editOverride","groupBy","sortBy","createText","tbodyWrapperClass","editingId","setEditingId","adding","setAdding","saving","setSaving","setError","innerSave","cast","list","addField","widthIfEditNull","ACTION_COL_SIZE","showButtonOnEmpty","canAdd","showTable","innerData","ctxValue","Provider","AddButton","v4","nextElement","canGroup","groupFunction","isLastOfGroup","enableReinitialize","NamespacedTable","modal","infoPanelWrapper","infoPanelHeight","panelContent","small","xl","Modal","infoPanel","secondaryModal","closeOnEscape","closeOnBackdropClick","TitleCase","closeSize","CURRENCY_MAX","MANUAL","IP_CHECK_REGEX","modalContent","splashTitle","warningInfo","warningIcon","warningText","flexBasis","machineName","WizardSplash","onContinue","alt","src","filledCassettes","stages","stage","separatorSpring","separatorZodiac","separatorSpringEmpty","separatorZodiacEmpty","currentStep","Error","separatorClasses","separatorEmptyClasses","transparentButton","usePopperHandler","helpPopperAnchorEl","setHelpPopperAnchorEl","helpPopperOpen","handleOpenHelpPopper","handleCloseHelpPopper","HoverableTooltip","parentElements","handler","onMouseEnter","onMouseLeave","paddingBottom","titleDiv","stepImage","horizontalAlign","centerAlignment","lineAlignment","formWrapper","float","cashboxBills","cassetteCashbox","cassetteFormTitle","cassetteFormTitleContent","smBottomMargin","fiatTotal","cassetesArtworks","cassetteOne","cassetteTwo","tejo3CassetteOne","tejo3CassetteTwo","tejo3CassetteThree","tejo4CassetteOne","tejo4CassetteTwo","tejo4CassetteThree","tejo4CassetteFour","WizardStep","cashoutSettings","cassetteCapacity","lastStep","stepOneRadioOptions","cassetteField","originalCassetteCount","cassetteDenomination","cassetteCount","cassetteTotal","getPercentage","wasCashboxEmptied","schema","CASSETTE_FIELDS","MAX_NUMBER_OF_CASSETTES","Wizard","locale","setState","isLastStep","buildCassetteObj","cassetteInput","defaultToZero","newConfig","cassettes","makeCassetteSteps","positive","integer","cashoutRequired","widthsByNumberOfCassettes","2","cassette","cassetteGraph","3","4","ValidationSchema","cassette1","cassette2","cassette3","cassette4","SET_CASSETTE_BILLS","Cassettes","refetchData","bills","wizard","setWizard","cashout","getCashoutSettings","isCashOutDisabled","stripe","setCassetteBills","onSave","cashInAndOutHeaderStyle","cashInHeader","cashOutHeader","overrides","getOverridesFields","Commissions","SCREEN_KEY","saveConfig","machineCommissions","commissions","fixedFee","minimumTx","isId","generalOverrides","overrideInfo","o","machineOverrides","getMachineCommissions","modelPrettifier","douro1","sintra","gaia","tejo","grid","rowItem","detailItem","breadcrumbsContainer","breadcrumbLink","detailsMargin","sidebarContainer","contentContainer","Details","pairedAt","model","version","dialogContent","dialogTitle","dialogActions","ConfirmDialog","toBeConfirmed","saveButtonAlwaysEnabled","initialValue","setValue","isOnErrorState","htmlFor","machineActionsStyles","inlineChip","marginInlineEnd","stack","flexWrap","mr","MACHINE_ACTION","MACHINE","MachineActions","onActionSuccess","command","setAction","preflightOptions","setPreflightOptions","setErrorMessage","warningMessage","fetchMachineEvents","loadingEvents","machineAction","confirmDialogOpen","machineStatusPreflight","actionToDo","machineEventsLazy","machineState","JSON","parse","latestEvent","note","getState","EditIcon","EditReversedIcon","UnpairIcon","UnpairReversedIcon","RebootIcon","RebootReversedIcon","ShutdownIcon","ShutdownReversedIcon","newName","SvgCopy","tableWrapper","dateColumn","levelColumn","fillColumn","shareButton","shareIcon","buttonsWrapper","cpcStyles","address","lineBreak","buttonWrapper","detailsRowStyles","idCardDataCard","labelStyles","mainStyles","baseStyles","overflowTd","textOverflow","flexWrapper","customerLinkIcon","flexRow","machineRedirectContainer","CopyToClipboard","buttonClassname","wrapperClassname","handleClick","Overview","responseTime","lastPing","formatDistance","addSuffix","downloadSpeed","copyToClipboard","URI","uploadLink","createUploadLink","credentials","uri","uploadLinkALT","setRole","ApolloClient","ApolloLink","graphQLErrors","networkError","forEach","locations","path","extensions","operation","forward","response","getContext","clientName","cache","InMemoryCache","defaultOptions","watchQuery","fetchPolicy","errorPolicy","query","mutate","getClient","secondRow","lastRow","txIcon","clipboardPopover","availableIds","exchangeRate","commission","downloadRawLogs","cancelTransaction","transactionId","sessionId","chipLabel","otherActionsGroup","addressHeader","walletScore","getStatus","hasError","dispense","expired","getCashOutStatus","operatorCompleted","batchError","sendConfirmed","batched","getCashInStatus","getStatusDetails","TX_SUMMARY","CANCEL_CASH_OUT_TRANSACTION","CANCEL_CASH_IN_TRANSACTION","getCryptoAmount","coinUtils","toUnit","cryptoAtoms","cryptoCode","formatAddress","formatCryptoAddress","replace","Label","DetailsRow","isCashIn","zip","JSZip","createCsv","fetchSummary","crypto","tickerPrice","rawTickerPrice","fee","calcCashInProfit","calcCashOutProfit","getCommission","displayExRate","discount","parseDateString","customer","customerIdCardData","firstName","lastName","dateOfBirth","differenceInYears","country","idCardNumber","documentNumber","idCardExpirationDate","expirationDate","until","logs","zipFilename","filesNames","file","generateAsync","FileSaver","saveAs","errorElements","walletScoreEl","customerPhone","PhoneIdIcon","PhoneIdInverseIcon","customerIdCardPhotoPath","CardIdIcon","CardIdInverseIcon","idCardPhoto","customerFrontCameraPath","CamIdIcon","CamIdInverseIcon","toAddress","txHash","CancelIcon","CancelInverseIcon","Download","DownloadInverseIcon","txId","next","expandButton","rowWrapper","expanded","before","after","pointer","body","SvgClosed","SvgOpen","Row","expandRow","expWidth","expandable","hasPointer","trClasses","DataTable","initialExpanded","emptyText","extraHeight","setExpanded","coreWidth","CellMeasurerCache","defaultHeight","fixedWidth","rowRenderer","parent","columnIndex","rowIndex","disableWidth","disableHeight","rowCount","rowHeight","overscanRowCount","deferredMeasurementCache","GET_TRANSACTIONS","Transactions","setExtraHeight","clickedId","setClickedId","getTx","txResponse","txLoading","configData","configLoading","splice","customerName","formatCustomerName","GET_INFO","Machines","reload","machineID","Breadcrumbs","transactionsItem","lastIndexOf","getMachineID","billFilters","batch","denomiations","AUD","5","10","20","50","100","BBD","CAD","CHF","200","1000","DKK","500","EUR","GBP","HKD","HUF","2000","5000","10000","20000","ILS","JMD","JPY","KZT","MXN","MYR","1","NZD","PHP","PLN","SGD","TWD","UAH","USD","VND","50000","100000","200000","500000","ZAR","getBillOptions","ALL_MACHINES","ALL_COINS","getView","compare","attribute","displayCodeArray","onCryptoChange","curr","hasAllCoins","hadAllCoins","mainFields","auxData","auxElements","getData","machineData","concat","rawCryptos","cryptoData","percentMax","getSchema","denominations","highestBill","getOverridesSchema","rawData","nullable","alreadyUsed","getCrypto","getMachineId","filteredOverrides","originalValue","originalCryptos","originalMachineId","getAlreadyUsed","isAllMachines","isAllCoins","createError","repeated","codes","machineView","defaults","overridesDefaults","getOrder","createCommissions","isDefault","getListCommissionsSchema","getTextStyle","commissionsList","getListCommissionsFields","greenText","getFields","names","allFields","overridenMachines","override","suggestionFilter","countryData","currencyData","languageData","timezonesData","findSuggestion","configureCoin","LocaleSchema","languages","OverridesSchema","localeDefaults","editDisabled","filterClass","class","filterCoins","cryptos","WalletSchema","ticker","wallet","exchange","zeroConf","zeroConfLimit","AdvancedWalletSchema","cryptoUnits","feeMultiplier","allowTransactionBatching","cryptoCurrency","OverridesDefaults","viewFeeMultiplier","feeOptions","cryptoUnitsDefaultOptions","getCryptoUnitsOptions","getCryptoCurrency","units","getAdvancedWalletElementsOverrides","coinSuggestions","ite","getElements","accounts","widthAdjust","viewCryptoCurrency","getDisplayName","getOptions","extraMarginTop","Subtitle","section","sectionHeader","sectionTitle","Section","useCommissionStyles","autoComplete","doContinue","Locales","getConfiguredCoins","InfoMessage","FormRenderer","buttonClass","emptySecretFields","elem","secretTest","leadingZerosTest","face","getValidationSchema","account","accountSid","authToken","fromNumber","radioGroup","radioLabel","mdForm","infoMessage","formButton","SAVE_ACCOUNTS","Twilio","selected","setSelected","saveAccounts","titleClasses","twilio","AllSet","currentData","coin","defaultCryptoUnit","adjustedData","isValidSync","withCoin","apiKey","privateKey","isDefined","buildTestValidation","passphrase","is","BTCWalletId","BTCWalletPassphrase","LTCWalletId","LTCWalletPassphrase","ZECWalletId","ZECWalletPassphrase","BCHWalletId","BCHWalletPassphrase","DASHWalletId","DASHWalletPassphrase","environment","matches","clientId","requirement","confidenceFactor","CheckboxFormik","authorizationValue","scoreThreshold","apiSecret","endpoint","userId","walletId","clientKey","clientSecret","fromEmail","toEmail","bitgo","bitstamp","blockcypher","infura","itbit","kraken","mailgun","binanceus","cex","ftx","ciphertrace","Blockcypher","addData","ChooseCoin","filterConfig","sameClass","contains","getItems","fConfig","unfilled","isConfigurable","ChooseExchange","exchanges","ChooseTicker","tickers","singleBitgo","ChooseWallet","saveWallet","Wallet","setData","mySteps","welcome","getStarted","Welcome","getWizardStep","coins","hasValidWallet","hasValidLocale","CommissionsSchema","hasValidCommissions","STEPS","exImage","Locale","drawer","smallWrapper","fullExample","setFullExample","wrapperClassNames","Drawer","anchor","variant","paperAnchorDockedBottom","blurred","pointerEvents","setWizardTested","footerExp","setFooterExp","wizardStep","shouldGoBack","goBack","isWelcome","isLoggedIn","ROLES","PrivateRoute","rest","PublicRoute","restricted","render","overviewLegend","legendEntry","dropdownsOverviewWrapper","borderWidth","dropdowns","overview","overviewFieldWrapper","overviewGrowth","growthPercentage","growth","decline","graphHeaderWrapper","graphHeaderLeft","graphHeaderRight","graphLegend","machineSelector","cashInIcon","cashOutIcon","topMachinesRadio","LegendEntry","IconElement","IconComponent","dotOtWrapper","dotOtTransactionAmount","dotOtTransactionVolume","dotOtTransactionClasses","GraphTooltip","dateInterval","period","representing","formattedDateInterval","volume","setSelectionCoords","setSelectionData","setSelectionDateInterval","BAR_MARGIN","getTickIntervals","interval","setUTCHours","filterByHourInterval","lowerBound","upperBound","tzCreated","txClassByHourInterval","startOfDay","rangeRound","groupedByDateInterval","groupedByTxClass","tickSize","buildVerticalLines","xValue","intervals","buildHoverableEventRects","on","__data__","endDate","filteredData","rectXCoords","xCoord","baseVal","yCoord","buildEventRects","drawCashIn","drawCashOut","selectedDay","day","week","month","buildAreas","getAreaInterval","breakpoints","limits","fullBreakpoints","clone","getAreaIntervalByX","areas","flattenIntervals","getDateIntervalByX","buildAvg","BAR_PADDING","machinesClone","filledMachines","txByDevice","devicesByVolume","b","topMachines","txClassVolumeByDevice","v","paddingInner","tickPadding","buildXAxis2","positionXAxisLabels","widthPerEntry","positionXAxis2Labels","domainIndex","paddedXValue","bandwidth","GraphWrapper","selectionCoords","selectionDateInterval","selectionData","OverTimeDotGraph","TopMachinesBarGraph","HourOfDayBarGraph","getGraph","dayOptions","HourOfDayBarGraphHeader","handleMachineChange","graphType","setGraphType","setSelectedDay","legend","txsPerWeekday","getDay","sunday","monday","tuesday","wednesday","thursday","friday","saturday","OverTimeDotGraphHeader","average","TopMachinesBarGraphHeader","MACHINE_OPTIONS","REPRESENTING_OPTIONS","PERIOD_OPTIONS","TIME_OPTIONS","OverviewEntry","oldValue","growthRate","growthClasses","overviewEntry","Analytics","subDays","endOfToday","configResponse","setRepresenting","setPeriod","setMachine","rates","locale_timezone","localeRate","dispensed","machineOptions","machineTxs","timeInterval","txs","avgAmount","txVolume","UpIcon","DownIcon","EqualIcon","OverTimeWrapper","TopMachinesWrapper","HourOfDayWrapper","getGraphInfo","modalTitle","deleteButton","addressRow","cancelButton","BlackListModal","selectedCoin","addToBlacklist","errorMsg","trim","startsWith","handleAddToBlacklist","BTC","ETH","LTC","DASH","ZEC","BCH","USDT","XMR","clear","registerChild","BlacklistTable","handleDeleteEntry","toBeDeleted","setToBeDeleted","dataToShow","groupByCode","DELETE_ROW","GET_BLACKLIST","ADD_ROW","PaperWalletDialog","onDissmised","PaperProps","Blacklist","blacklistResponse","showModal","setShowModal","setErrorMsg","confirmDialog","setConfirmDialog","deleteEntry","addEntry","blacklistData","availableCurrencies","formattedData","complianceConfig","rejectAddressReuse","enablePaperWalletOnly","addressReuseSave","rawConfig","validateAddress","parseUrl","duplicateKeyError","some","confirm","mb","innerContent","titleDecorator","edit","bill","billInput","picker","thirdStepHeader","disclaimer","disclaimerIcon","DenominationsSchema","cassetteProps","LAST_STEP","assert","fudgeFactor","switchLabel","Cashout","fudgeFactorActive","namespaced","ry","SvgSpring2","CommissionsDetails","saveOverrides","isEditingDefault","setEditingDefault","isEditingOverrides","setEditingOverrides","commissionOverrides","orderedCommissionsOverrides","SHOW_ALL","ORDER_OPTIONS","headerLine","getElement","CommissionsList","localeConfig","machineFilter","setMachineFilter","coinFilter","setCoinFilter","orderProp","setOrderProp","machinesCoinsTuples","machineCoins","specificOverride","machineOverride","coinOverride","getCommissions","tableData","prop","sortCommissionsBy","filterCommissions","listViewButton","showMachines","setShowMachines","ListingViewIcon","ReverseListingViewIcon","iconClassName","cryptoOverriden","sameMachine","filterMachine","removeCoin","commissions_overrides","propertyCardStyles","label1Pending","label1Rejected","label1Accepted","cardActionButton","propertyCardTopRow","propertyCardBottomRow","propertyCard","boxSizing","rowSpaceBetween","flexFlow","columnSpaceBetween","OVERRIDE_PENDING","OVERRIDE_AUTHORIZED","OVERRIDE_REJECTED","image","objectFit","popupImage","popupWidth","popupHeight","ImagePopper","popperAnchorEl","setPopperAnchorEl","Image","ZoomIcon","ZoomIconInverse","SvgCrossedCamera","editIcon","cardIcon","viewIcons","radio","specialLabel","specialGrid","gridTemplateColumns","CUSTOM","REQUIREMENT","getAuthorizedStatus","triggers","customRequests","fields","fieldsWithPathSuffix","isManualField","fieldName","triggerName","manualOverrides","automation","pendingFieldStatus","uuid","request","iter","infoRequestId","customInfoRequests","regularFieldValue","rejectedFieldStatus","authorizedOverride","isSuspended","daysSuspended","getFormattedPhone","phone","phoneNumber","parsePhoneNumberFromString","formatInternational","getName","idData","entryOptions","dataOptions","requirementOptions","customUploadOptions","entryTypeSchema","entryType","dataType","customFileSchema","customImageSchema","customTextSchema","ManualDataEntry","selectedValues","customInfoRequirementOptions","typeOfEntrySelected","dataTypeSelected","requirementSelected","displayRequirements","isCustomInfoRequirement","updatedRequirementOptions","requirementName","requirementElements","customElements","upload","saveType","displayCustomOptions","displayRequirementOptions","customerDataElements","idCardData","usSsn","frontCamera","customerDataSchemas","isValid","gender","custom","customInfoRequirement","formatDates","addPhotoDir","photoDir","standardizeKeys","pair","filterByPhotoAvailable","formatPhotosData","stepper","infoTitle","infoCurrentText","blankSpace","dropdownField","addCustomerData","addPhoto","setSelectedValues","formatCustomerData","stepOptions","getStep","newPhoto","photoType","column","textInput","fontStretch","fontStyle","letterSpacing","txClassIconLeft","txClassIconRight","photo","img","txSummaryValue","txSummaryLabel","idIcon","txTableSpacing","InformativeDialog","objectPosition","circle","SvgCarouselLeftArrow","SvgCarouselRightArrow","imgWrapper","imgInner","Carousel","photosData","slidePhoto","PrevIcon","NextIcon","navButtonsProps","navButtonsWrapperProps","autoPlay","indicators","navButtonsAlwaysVisible","activeIndex","firstRow","PhotosCarousel","currentIndex","setCurrentIndex","isFaceCustomerPhoto","PhotosCard","photosDialog","setPhotosDialog","singlePhoto","ButtonBase","CustomerDetails","idNumber","mt","CustomerSidebar","sideBarOptions","OverviewIcon","OverviewReversedIcon","CustomerDataIcon","CustomerDataReversedIcon","NoteIcon","NoteReversedIcon","Photos","PhotosReversedIcon","headerWrapper","editingWrapper","editingButtons","cardHeader","cardTitle","fieldStyles","notEditing","readOnlyLabel","readOnlyValue","fieldUseStyles","EditableField","ReadOnlyField","EditableCard","authorize","hasImage","reject","titleIcon","retrieveAdditionalData","deleteEditedData","hasAdditionalData","setInput","label1ClassNames","authorized","DataIcon","DataReversedIcon","ReplaceReversedIcon","click","accept","fileInput","files","SaveReversedIcon","CancelReversedIcon","AuthorizeIcon","BlockIcon","ifNotNull","valueIfNotNull","TransactionsList","LastTxIcon","lastTxClass","TxOutIcon","TxInIcon","hasData","tableSpacingClasses","summaryElements","totalTxs","totalSpent","lastTxFiatCode","lastActive","lastTxFiat","tableElements","SvgZodiacResized","box","borderStyle","inputContent","uploadContent","board","Upload","isImage","onDrop","acceptedData","preview","URL","createObjectURL","useDropzone","getRootProps","getInputProps","Photo","show","photoWrapper","RetrieveDataDialog","setRetrieve","CustomerData","updateCustomer","replacePhoto","editCustomer","updateCustomRequest","authorizeCustomRequest","updateCustomEntry","listView","retrieve","rawExpirationDate","rawDob","sanctions","sanctionsDisplay","sortByName","customFields","customRequirements","smsData","isEven","getVisibleCards","isAvailable","smsDataElements","smsDataSchema","additionalData","cards","idCardDataOverride","phoneOverride","subscriberInfo","sanctionsOverride","frontCameraOverride","frontCameraPath","idCardPhotoOverride","idCardPhotoPath","usSsnOverride","customInfoRequest","customRequest","customerData","customerId","info_request_id","fieldId","editableCard","visibleCards","notesChipList","noteCardWrapper","flexShrink","noteCardChip","newNoteCard","noteCardHeader","noteCardTitle","noteCardContent","lineClamp","boxOrient","editCardChip","editCardHeader","editCardActions","editNotesContent","NewNoteCard","setOpenModal","NewNoteModal","autofocus","multiline","rows","formatContent","fragments","NoteCard","deleteNote","deleteIcon","stopPropagation","noteId","NoteEdit","cancel","formRef","formatDurationWithOptions","delimited","lastEditedAt","CancelIconInverse","SaveIcon","SaveIconInverse","newContent","oldContent","innerRef","CustomerNotes","createNote","editNote","openModal","customerNotes","handleModalClose","photosChipList","borderTopLeftRadius","borderTopRightRadius","photoCardChip","PhotoCard","setPhotoClickIndex","CustomerPhotos","photoClickedIndex","orderedPhotosData","labelLink","breadcrumbs","actionLabel","customerDetails","actionBar","panels","rightSidePanel","leftSidePanel","userStatusAction","GET_CUSTOMER","SET_CUSTOMER","EDIT_CUSTOMER","REPLACE_CUSTOMER_PHOTO","DELETE_EDITED_CUSTOMER","SET_AUTHORIZED_REQUEST","SET_CUSTOMER_CUSTOM_INFO_REQUEST","CREATE_NOTE","DELETE_NOTE","EDIT_NOTE","ENABLE_TEST_CUSTOMER","DISABLE_TEST_CUSTOMER","SET_CUSTOM_ENTRY","EDIT_CUSTOM_ENTRY","GET_ACTIVE_CUSTOM_REQUESTS","CustomerProfile","showCompliance","setShowCompliance","useParams","customerResponse","getCustomer","customerLoading","activeCustomRequests","onlyEnabled","setCustomEntry","editCustomEntry","replaceCustomerPhoto","editCustomerData","deleteCustomerEditedData","setCustomer","setCustomerCustomInfoRequest","enableTestCustomer","disableTestCustomer","customerInput","customerEdit","rawTransactions","sortedTransactions","blocked","isCustomerData","isOverview","isNotes","isPhotos","frontCameraData","txPhotosData","isAnonymous","AuthorizeReversedIcon","suspendedUntil","BlockReversedIcon","searchBoxBorderRadius","popupBorderRadiusFocus","hoverColor","autocomplete","popup","itemLabel","itemType","inputWithPopup","iconButton","SearchBox","filters","inputPlaceholder","popupOpen","setPopupOpen","innerOnChange","renderOption","filterSelectedOptions","PaperComponent","InputBase","startAdornment","chipStyles","deleteWrapper","entries","chips","useChipStyles","SearchFilter","onFilterDelete","deleteAllFilters","chipClasses","f","ReverseFilterIcon","FilterIcon","CustomersList","hasLastTx","lastIcon","pnUtilInstance","PhoneNumberUtil","getInstance","formatPhoneNumber","countryCodes","numberStr","matchedCountry","number","parseAndKeepRawInput","matchedNumber","PhoneNumberFormat","E164","CreateCustomerModal","possibleCountries","validMap","GET_CUSTOMER_FILTERS","GET_CUSTOMERS","CREATE_CUSTOMER","useBaseStyles","getFiltersObj","Customers","filteredCustomers","setFilteredCustomers","setVariables","setFilters","showCreationModal","setShowCreationModal","customersResponse","filtersResponse","loadingFilters","createNewCustomer","customRequirementsData","customersData","filtersObject","newFilters","colorIndicator","TableLabel","main","firstSide","secondSide","coinTotal","leftSpacer","topSpacer","addressWrapper","itemWrapper","inactiveItem","firstItem","totalPending","totalTitle","tableLabel","pending","sizes","GET_FUNDING","sumReducer","formatNumber","getConfirmedTotal","fiatConfirmedBalance","reduce","Funding","viewHistory","fundingHistory","cryptoAmount","balance","fiatValue","performedBy","fundingResponse","funding","pendingTotal","fiatPending","signIfPositive","num","itemClass","wrapperClass","confirmedBalance","fundingAddress","fundingAddressUrl","SvgIconBitcoinColour","SvgIconBitcoincashColour","SvgIconDashColour","SvgIconEthereumColour","preserveAspectRatio","SvgIconLitecoinColour","SvgIconMoneroColour","SvgIconTetherColour","SvgIconZcashColour","Logo","BitcoinLogo","BitcoinCashLogo","DashLogo","EthereumLogo","LitecoinLogo","ZCashLogo","TetherLogo","MoneroLogo","getLogo","setupNew","isNew","iError","innerError","stepSchema","getValue","innerContinue","subtitleClass","removeDeprecated","deprecated","accountsToSave","zeroConfs","stepConfig","stepAccount","newAccounts","configToSave","getStepData","rightAligned","rightLink","FiatCurrencyChangeAlert","onChangeFunction","setOnChangeFunction","dataToSave","setDataToSave","localeOverrides","onChangeCoin","userAccounts","identification","customerAutocomplete","discountRateWrapper","discountInput","IndividualDiscountModal","creationError","addDiscount","customers","handleAddDiscount","discountInputField","GET_INDIVIDUAL_DISCOUNTS","DELETE_DISCOUNT","CREATE_DISCOUNT","IndividualDiscounts","toggleModal","discountResponse","discountLoading","createDiscount","deleteDiscount","discountId","individualDiscounts","tableWidth","modalLabel1","modalLabel2Wrapper","PromoCodesModal","addCode","handleAddCode","modalLabel2","DEFAULT_ERROR_MSG","GET_PROMO_CODES","DELETE_CODE","CREATE_CODE","PromoCodes","codeResponse","deleteCode","createCode","codeId","promoCodes","duplicateCodeError","SvgDownloadLogs","SvgMonthChange","SvgMonthChangeRight","between","Tile","isLowerBound","isUpperBound","isBetween","isDisabled","rangeClasses","buttonWrapperClasses","buttonClasses","navbar","Calendar","minDate","maxDate","handleSelect","currentDisplayedMonth","setCurrentDisplayedMonth","weekdays","monthdays","lastMonth","lastMonthRange","startOfMonth","reverse","lastMonthDays","lastDayOfMonth","thisMonthRange","getDaysInMonth","monthLength","thisMonthDays","nextMonth","nextMonthRange","nextMonthDays","getRow","currentMonth","prevMonth","isSameMonth","differenceInMonths","handleNavPrev","handleNavNext","isSameDay","DateRangePicker","onRangeChange","setFrom","setTo","differenceInDays","set","milliseconds","dateContainerStyles","monthWeekDayContainer","bigNumber","monthYear","weekDay","dateContainerUseStyles","DateContainer","popoverHeader","radioButtonsContainer","radioButtons","dateRangePickerShowing","dateRangePickerHidden","download","dateContainerWrapper","arrowContainer","ALL","RANGE","ADVANCED","SIMPLIFIED","LogsDownloaderPopover","args","getLogs","simplified","selectedRadio","setSelectedRadio","selectedAdvancedRadio","setSelectedAdvancedRadio","setRange","createLogsFile","fetchLogs","dateRangePickerClasses","handleRangeChange","formatDateFile","blob","Blob","radioButtonOptions","advancedRadioButtonOptions","downloadLogs","GET_MACHINE_LOGS_CSV","GET_MACHINE_LOGS","Logs","saveMessage","setSaveMessage","machineResponse","machinesLoading","skip","logsResponse","logsLoading","TableHeader","machineLogs","timestamp","logLevel","tBody","descriptions","cashboxReset","selection","footerLabel","footerContent","footerContainer","iconLabel","valueDisplay","CashCassettesFooter","currencyCode","deviceIds","totalInCassettes","cassette1Denomination","cassette2Denomination","cassette3Denomination","cassette4Denomination","totalInCashBox","GET_BATCHES","operationType","operationTypeWrapper","saveAndCancel","CashboxHistory","batchesData","batchesLoading","batches","getOperationRender","ret","customBillCount","GET_MACHINES_AND_CONFIG","CashCassettes","showHistory","setShowHistory","editingSchema","setEditingSchema","dataLoading","machineId","setMachineId","saveCashboxOption","cashboxResetSave","handleRadioButtons","HistoryIcon","ReverseHistoryIcon","SvgPumpkin","machineDetailsStyles","useLStyles","useMDStyles","Container","Item","MachineDetailsRow","packetLoss","MachineStatus","addedMachineId","machinesResponse","expandedIndex","fieldWrapper","valueWrapper","decoration","EditableNumber","displayValue","SingleFieldEditableNumber","NotificationsCtx","LOW_BALANCE_KEY","HIGH_BALANCE_KEY","cryptoBalanceAlerts","cryptoBalanceAlertsForm","cryptoBalanceAlertsSecondForm","vertSeparator","CryptoBalanceAlerts","fieldWidth","CRYPTOCURRENCY_KEY","NAME","CryptoBalanceOverrides","setupValues","cryptoBalanceOverrides","overridenCryptos","suggestions","newOverrides","gridTemplateRows","gridColumnGap","gridRowGap","cashboxLabel","cashboxEmptyPart","FiatBalance","fillingPercentageCassette1","fillingPercentageCassette2","fiatBalanceCassette3","fiatBalanceCassette4","fillingPercentageCassette3","fillingPercentageCassette4","CASSETTE_1_KEY","CASSETTE_2_KEY","CASSETTE_3_KEY","CASSETTE_4_KEY","MACHINE_KEY","CASSETTE_LIST","FiatBalanceOverrides","fiatBalanceOverrides","cashoutConfig","picked","security","namespace","shouldUpperCase","rawSave","Cell","wizardTable","Setup","TransactionAlerts","Notifications","displaySetup","displayTransactionAlerts","displayFiatAlerts","displayCryptoAlerts","displayOverrides","displayTitle","setSection","editingKey","setEditingKey","contextValue","FiatBalanceAlerts","SvgFalse","SvgTrue","booleanPropertiesTableStyles","booleanPropertiesTableWrapper","tableRow","leftTableCell","rightTableCell","BooleanCell","BooleanPropertiesTable","forcedEditing","schemaValidation","toBoolean","global","switchRow","switch","formErrorMsg","CoinATMRadar","coinAtmRadarConfig","Field","contactUseStyles","ContactInfo","website","companyNumber","findField","findValue","displayTextValue","ReceiptPrinting","receiptPrintingConfig","sms","SvgLogoWhite","smsPreview","smsPreviewContainer","smsPreviewIcon","smsPreviewContent","chipButtons","resetToDefault","messageWithTooltip","PREFILL","smsCode","validator","cashOutDispenseReady","smsReceipt","CHIPS","obligatory","DEFAULT_MESSAGES","SMSNoticesModal","messageName","DefaultIcon","DefaultIconReverse","GET_SMS_NOTICES","EDIT_SMS_NOTICE","ENABLE_SMS_NOTICE","DISABLE_SMS_NOTICE","multiReplace","re","RegExp","matched","toLowerCase","TOOLTIPS","SMSPreview","SMSNotices","selectedSMS","setSelectedSMS","previewOpen","setPreviewOpen","previewCoords","setPreviewCoords","messagesData","messagesLoading","msg","editMessage","enableMessage","disableMessage","allowToggle","innerHeight","useFieldStyles","notEditingSingleLine","notEditingMultiline","rowsMax","useTermsConditionsStyles","TermsConditions","termsAndConditions","formData","showOnScreen","addDelayOnScreen","delay","acceptButtonText","cancelButtonText","running","notRunning","uptimeContainer","Uptime","time","uptime","floor","localStyles","serverTableWrapper","logsStyles","headerLine2","GET_CSV","GET_SERVER_DATA","tableEl","setLogLevel","processStates","getLogLevels","serverLogs","scrollTo","head","SingleRowTable","SAVE_ACCOUNT","Services","saveAccount","faceElements","schemas","isEnabled","updateSettings","filterBySecretComponent","mapToCode","passwordFields","getAccounts","GET_SESSIONS","DELETE_SESSION","SessionManagement","tknResponse","sessionsLoading","deleteSession","sess","ua","parser","browser","os","ip","ipAddress","expire","sid","SvgRightWhite","NUM_LOG_RESULTS","GET_TRANSACTIONS_CSV","GET_TRANSACTION_FILTERS","filtersLoading","txData","transactionsLoading","txList","getCustomerDisplayName","errorLabel","halfWidth","DetailsCard","screen1","label1Display","constraintType","screen2","getScreen2Data","choiceList","choice","numDigits","ToggleButtonGroupFormik","enforceValueSet","SvgKeyboard","SvgKeypad","SvgList","MakeIcon","IconSvg","inputType","defaultValues","ChooseType","Keypad","Keyboard","NameOfRequirement","screen1Title","screen1Text","Screen1Information","screen2Title","screen2Text","ScreenInformation","radioSubtitle","numberField","nonEmptyStr","ChoiceList","choiceListRef","listChoices","choiceListError","showErrorColor","scrollToBottom","scrollIntoView","AddIconInverse","preventDefault","NumericalEntry","isLength","allowNegative","TextEntry","getLabelInputs","inputLength","inputLabel1","inputLabel2","else","notRequired","ctx","TypeFields","getForm","_ref15","_ref16","_ref17","_ref18","_ref19","_ref20","_ref21","_ref22","_ref23","_ref24","_ref25","_ref26","_ref27","_ref28","_ref29","_ref30","_ref31","_ref32","_ref33","_ref34","_ref35","_ref36","_ref37","_ref38","_ref39","_ref40","_ref41","_ref42","_ref43","_ref44","_ref45","_ref46","_ref47","_ref48","_ref49","_ref50","_ref51","_ref52","_ref53","_ref54","_ref55","_ref56","_ref57","SvgCustomRequirement","formatValues","isChoiceList","choices","hasInputLength","resObj","chooseNotNull","toBeEdited","nameOfReqSchema","screen1InfoSchema","chooseTypeSchema","screen2InfoSchema","Screen2Information","typeFieldsValidationSchema","showScreen2","editingValues","makeEditingValues","wizardTitle","nameOfReqDefaults","screen1InfoDefaults","screen2InfoDefaults","chooseTypeDefaults","typeFieldsDefaults","m0","mb10","centerItems","alignWithTitleSection","inputTypeDisplay","numerical","constraintTypeDisplay","none","selectOne","selectMultiple","spaceSeparation","EDIT_ROW","REMOVE_ROW","CustomInfoRequests","showWizard","toggleWizard","setToBeEdited","setHasError","editEntry","removeEntry","handleSave","tableRadioGroup","tableRadioLabel","directionName","thresholdWrapper","thresholdTitle","thresholdContentWrapper","thresholdField","space","lastSpace","suspensionDays","limitedInput","daysInput","triggerType","thresholdDays","Schema","txAmount","txVelocity","consecutiveDays","requirementValidator","typeSchema","typeOptions","Type","setTouched","handleChange","typeClass","containsType","isThresholdCurrencyEnabled","isTransactionAmountEnabled","isThresholdDaysEnabled","isConsecutiveDaysEnabled","hasAmountError","hasDaysError","triggerTypeError","thresholdClass","requirementSchema","otherwise","customInfoRequestId","hasRequirementError","hasCustomRequirementError","Requirement","isSuspend","isCustom","titleClass","requirements","customReqIdMatches","customReqId","RequirementInput","customRequestId","RequirementView","DisplayThreshold","isEdit","Threshold","ThresholdDays","ThresholdInput","ThresholdView","triggerOrder","toServer","getText","getTypeText","getRequirementText","orUnderline","blankSpaceEl","InfoPanel","liveValues","oldText","newText","GetValues","setValues","setLiveValues","createErrorMessage","TriggerView","toSave","buildAdvancedRequirementOptions","displayRequirement","defaultSchema","expirationTime","getOverrides","GET_CUSTOM_REQUESTS","AdvancedTriggersSettings","customInfoReqData","customInfoLoading","enabledCustomInfoRequests","requirementsData","requirementsDefaults","requirementsOverrides","triggersConfig","Triggers","wizardType","subMenu","setSubMenu","fromServer","titleSectionWidth","setBlur","shouldBlur","wizardName","SettingsIcon","ReverseSettingsIcon","CustomInfoIcon","ReverseCustomInfoIcon","AdvancedTriggers","codeContainer","loginWrapper","roleSwitch","actionButtonWrapper","gap","CONFIRM_2FA","Input2FAModal","setConfirmation","twoFACode","setTwoFACode","invalidCode","setInvalidCode","confirm2FA","CHANGE_USER_ROLE","ChangeRoleModal","requiresConfirmation","changeUserRole","confirmation","showRoleModal","newRole","url","urlResolver","CREATE_USER","radioOptions","CreateUserModal","usernameField","setUsernameField","createUserURL","setCreateUserURL","createRegisterToken","queryParams","createUser","showCreateUserModal","ENABLE_USER","DISABLE_USER","EnableUserModal","enableUser","enableError","disableUser","disableError","showEnableUserModal","showFIDOModal","CREATE_RESET_2FA_TOKEN","Reset2FAModal","reset2FAUrl","setReset2FAUrl","createReset2FAToken","showReset2FAModal","CREATE_RESET_PASSWORD_TOKEN","ResetPasswordModal","resetPasswordUrl","setResetPasswordUrl","createResetPasswordToken","showResetPasswordModal","GET_USERS","GENERATE_ATTESTATION","VALIDATE_ATTESTATION","roleMapper","superuser","Users","userResponse","userInfo","setUserInfo","validateAttestation","generateAttestationOptions","startAttestation","attestationResponse","u","KeyIcon","WhiteKeyIcon","LockIcon","WhiteLockIcon","UserRoleIcon","WhiteUserRoleIcon","FIDOModal","AdvancedWallet","AdvancedWalletSettings","AdvancedWalletSettingsOverrides","inialValues","advancedSettings","setAdvancedSettings","getLamassuRoutes","MachineLogs","ServerLogs","WalletSettings","CoinAtmRadar","UserManagement","numberOfChips","totalAssetWrapper","totalAssetFieldWrapper","fieldHeader","fieldValue","fieldCurrency","walletChipList","walletChipWrapper","walletChip","walletHeader","zecLogo","bchLogo","hedgedText","walletValueWrapper","walletValue","walletChipTitle","tableTitle","asset","totalRow","leftSide","rightSide","cellStyling","mappedRoutes","parentRoutes","leafRoutes","flattened","Routes","wizardTested","Transition","Slide","Fade","transitionProps","exact","mountOnEnter","unmountOnExit","Page","matchPath","html","scrollbarGutter","createMuiTheme","typography","body1","MuiButtonBase","light","dark","MuiRadio","colorSecondary","MuiAutocomplete","noOptions","paper","listbox","tag","MuiChip","MuiInput","MuiInputLabel","font","MuiFormLabel","MuiListItem","MuiToggleButton","borderTopColor","MuiToggleButtonGroup","groupedVertical","borderBottomRightRadius","borderBottomLeftRadius","jss","plugins","extendJss","jssPreset","contentWithSidebar","contentWithoutSidebar","Main","hasSidebar","getParent","is404","contentClassName","App","StylesProvider","CssBaseline","Promise","resolve","ReactDOM","StrictMode","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.473b3df4.chunk.js","sourcesContent":["import React from 'react'\n\nexport default React.createContext()\n","const version = 9\n\n// Primary\nconst zodiac = '#1b2559'\nconst spring = '#48f694'\n\n// Secondary\nconst comet = '#5f668a'\nconst comet2 = '#72799d'\nconst comet3 = '#525772'\nconst spring2 = '#44e188'\nconst spring3 = '#ecfbef'\nconst spring4 = '#3fd07e'\nconst zircon = '#ebefff'\nconst zircon2 = '#dbdfed'\n\n// Cash-in/cash-out\nconst java = '#16d6d3'\nconst neon = '#5a67ff'\n\n// Neutral\nconst dust = '#dddddd'\nconst concrete = '#f2f2f2'\nconst ghost = '#fafbff'\nconst white = '#ffffff'\n\n// Error\nconst tomato = '#ff584a'\nconst tomato1 = '#E45043'\nconst tomato2 = '#CE463A'\nconst mistyRose = '#ffeceb'\nconst pumpkin = '#ff7311'\nconst linen = '#fbf3ec'\n\n// Color Variables\nconst primaryColor = zodiac\n\nconst secondaryColor = spring\nconst secondaryColorDark = spring2\nconst secondaryColorDarker = spring4\nconst secondaryColorLighter = spring3\n\nconst backgroundColor = ghost\nconst subheaderColor = zircon\nconst subheaderDarkColor = zircon2\nconst disabledColor = dust\nconst disabledColor2 = concrete\nconst fontColor = primaryColor\nconst offColor = comet\nconst offDarkColor = comet2\nconst offDarkerColor = comet3\nconst placeholderColor = comet\nconst errorColor = tomato\nconst errorColorDark = tomato1\nconst errorColorDarker = tomato2\nconst offErrorColor = mistyRose\nconst inputBorderColor = primaryColor\n\n// General\nconst spacer = 8\nconst mainWidth = 1200\n\n// Buttons\nconst linkPrimaryColor = secondaryColor\nconst linkSecondaryColor = tomato\n\n// Fonts\nconst fontPrimary = 'Mont'\nconst fontSecondary = 'MuseoSans'\nconst fontMonospaced = 'BPmono'\n\nlet fontSize1 = 24\nlet fontSize2 = 20\nlet fontSize3 = 16\nlet fontSize4 = 14\nlet fontSize5 = 13\n\nif (version === 8) {\n fontSize1 = 32\n fontSize2 = 24\n fontSize3 = 20\n fontSize4 = 16\n fontSize5 = 14\n}\n\nconst smallestFontSize = fontSize5\nconst inputFontSizeSm = fontSize4\nconst inputFontSize = fontSize3\nconst inputFontSizeLg = fontSize1\nconst inputFontWeight = 500\nconst inputFontWeightBold = 700\nconst inputFontFamily = fontSecondary\nconst codeInputFontSize = 35\n\n// Breakpoints\nconst sm = 576\nconst md = 768\nconst lg = 992\nconst xl = 1200\nconst xxl = 1440\n\n// Table\nlet tableHeaderHeight = spacer * 4\nlet tableCellHeight = spacer * 6\n\nif (version === 8) {\n tableHeaderHeight = spacer * 5\n tableCellHeight = spacer * 7 - 2\n}\n\nconst tableDoubleHeaderHeight = tableHeaderHeight * 2\n\nconst tableSmCellHeight = 30\nconst tableLgCellHeight = 76\n\nconst tableHeaderColor = primaryColor\nconst tableDisabledHeaderColor = zircon\nconst tableNewDisabledHeaderColor = spring3\nconst tableCellColor = white\nconst tableErrorColor = mistyRose\nconst tableSuccessColor = spring3\n\nexport {\n version,\n // colors\n white,\n zircon,\n zircon2,\n comet,\n spring2,\n spring3,\n spring4,\n tomato,\n pumpkin,\n mistyRose,\n java,\n neon,\n linen,\n // named colors\n primaryColor,\n secondaryColor,\n secondaryColorDark,\n secondaryColorDarker,\n secondaryColorLighter,\n subheaderColor,\n subheaderDarkColor,\n backgroundColor,\n placeholderColor,\n offColor,\n offDarkColor,\n offDarkerColor,\n fontColor,\n disabledColor,\n disabledColor2,\n linkPrimaryColor,\n linkSecondaryColor,\n errorColor,\n errorColorDarker,\n errorColorDark,\n offErrorColor,\n inputBorderColor,\n // font sizes\n fontSize1,\n fontSize2,\n fontSize3,\n fontSize4,\n fontSize5,\n fontPrimary,\n fontSecondary,\n fontMonospaced,\n // named font sizes\n smallestFontSize,\n inputFontSize,\n inputFontSizeSm,\n inputFontSizeLg,\n inputFontFamily,\n inputFontWeight,\n inputFontWeightBold,\n codeInputFontSize,\n // screen sizes\n sm,\n md,\n lg,\n xl,\n xxl,\n // sizes\n spacer,\n mainWidth,\n // table sizes\n tableHeaderHeight,\n tableDoubleHeaderHeight,\n tableCellHeight,\n tableSmCellHeight,\n tableLgCellHeight,\n tableHeaderColor,\n tableDisabledHeaderColor,\n tableNewDisabledHeaderColor,\n tableCellColor,\n tableErrorColor,\n tableSuccessColor\n}\n","import {\n fontColor,\n fontSize1,\n fontSize2,\n fontSize3,\n fontSize4,\n fontSize5,\n fontPrimary,\n fontSecondary,\n fontMonospaced,\n codeInputFontSize\n} from 'src/styling/variables'\n\nconst base = {\n lineHeight: '120%',\n color: fontColor\n}\n\nexport default {\n h1: {\n extend: base,\n fontSize: fontSize1,\n fontFamily: fontPrimary,\n fontWeight: 900\n },\n h2: {\n extend: base,\n fontSize: fontSize2,\n fontFamily: fontPrimary,\n fontWeight: 900\n },\n h3: {\n extend: base,\n fontSize: fontSize4,\n fontFamily: fontPrimary,\n fontWeight: 900\n },\n h4: {\n extend: base,\n fontSize: fontSize4,\n fontFamily: fontPrimary,\n fontWeight: 700\n },\n h5: {\n extend: base,\n fontSize: fontSize3,\n fontFamily: fontPrimary,\n fontWeight: 700\n },\n p: {\n extend: base,\n fontSize: fontSize4,\n fontFamily: fontSecondary,\n fontWeight: 500\n },\n tl1: {\n extend: base,\n fontSize: fontSize2,\n fontFamily: fontSecondary,\n fontWeight: 700\n },\n tl2: {\n extend: base,\n fontSize: fontSize4,\n fontFamily: fontSecondary,\n fontWeight: 700\n },\n info1: {\n extend: base,\n fontSize: fontSize1,\n fontFamily: fontSecondary,\n fontWeight: 700\n },\n info2: {\n extend: base,\n fontSize: fontSize3,\n fontFamily: fontSecondary,\n fontWeight: 700\n },\n info3: {\n extend: base,\n fontSize: fontSize3,\n fontFamily: fontSecondary,\n fontWeight: 500\n },\n mono: {\n extend: base,\n fontSize: fontSize4,\n fontFamily: fontMonospaced,\n fontWeight: 500\n },\n monoBold: {\n fontWeight: 700\n },\n monoSmall: {\n fontSize: fontSize5\n },\n inputFont: {\n fontSize: fontSize2,\n fontFamily: fontSecondary,\n fontWeight: 500,\n lineHeight: '110%',\n color: fontColor\n },\n regularLabel: {\n fontSize: fontSize4,\n fontFamily: fontSecondary,\n fontWeight: 500,\n lineHeight: '110%'\n },\n label1: {\n fontSize: fontSize5,\n fontFamily: fontSecondary,\n fontWeight: 500,\n color: fontColor\n },\n label2: {\n fontSize: fontSize5,\n fontFamily: fontSecondary,\n fontWeight: 700,\n color: fontColor\n },\n label3: {\n fontSize: fontSize4,\n fontFamily: fontSecondary,\n fontWeight: 500,\n color: fontColor\n },\n confirmationCode: {\n extend: base,\n fontSize: codeInputFontSize,\n fontFamily: fontSecondary,\n fontWeight: 900\n },\n inline: {\n display: 'inline'\n },\n noMargin: {\n margin: 0\n }\n}\n","import typographyStyles from 'src/components/typography/styles'\nimport {\n white,\n subheaderColor,\n subheaderDarkColor,\n offColor,\n offDarkColor,\n offDarkerColor,\n secondaryColor,\n secondaryColorDark,\n secondaryColorDarker,\n errorColor,\n errorColorDark,\n errorColorDarker\n} from 'src/styling/variables'\n\nconst { p } = typographyStyles\n\nconst colors = (color1, color2, color3) => {\n return {\n backgroundColor: color1,\n '&:hover': {\n backgroundColor: color2\n },\n '&:active': {\n backgroundColor: color3\n }\n }\n}\n\nexport default {\n actionButton: {\n extend: p,\n cursor: 'pointer',\n border: 'none',\n height: 28,\n outline: 0,\n borderRadius: 6,\n padding: '0 8px',\n display: 'flex',\n alignItems: 'center'\n },\n primary: {\n extend: colors(subheaderColor, subheaderDarkColor, offColor),\n '&:active': {\n color: white,\n '& $actionButtonIcon': {\n display: 'none'\n },\n '& $actionButtonIconActive': {\n display: 'flex'\n }\n },\n '& $actionButtonIconActive': {\n display: 'none'\n }\n },\n secondary: {\n extend: colors(offColor, offDarkColor, offDarkerColor),\n color: white,\n '&:active': {\n '& $actionButtonIcon': {\n display: 'flex'\n },\n '& $actionButtonIconActive': {\n display: 'none'\n }\n },\n '& $actionButtonIcon': {\n display: 'none'\n },\n '& $actionButtonIconActive': {\n display: 'flex'\n }\n },\n spring: {\n extend: colors(secondaryColorDark, secondaryColor, secondaryColorDarker),\n color: white,\n '&:active': {\n '& $actionButtonIcon': {\n display: 'flex'\n },\n '& $actionButtonIconActive': {\n display: 'none'\n }\n },\n '& $actionButtonIcon': {\n display: 'none'\n },\n '& $actionButtonIconActive': {\n display: 'flex'\n }\n },\n tomato: {\n extend: colors(errorColorDark, errorColor, errorColorDarker),\n color: white,\n '&:active': {\n '& $actionButtonIcon': {\n display: 'flex'\n },\n '& $actionButtonIconActive': {\n display: 'none'\n }\n },\n '& $actionButtonIcon': {\n display: 'none'\n },\n '& $actionButtonIconActive': {\n display: 'flex'\n }\n },\n actionButtonIcon: {\n display: 'flex',\n paddingRight: 7,\n '@global': {\n svg: {\n width: 14,\n height: 14\n }\n }\n },\n actionButtonIconActive: {}\n}\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport styles from './ActionButton.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst ActionButton = memo(\n ({ className, Icon, InverseIcon, color, children, ...props }) => {\n const classes = useStyles()\n const classNames = {\n [classes.actionButton]: true,\n [classes.primary]: color === 'primary',\n [classes.secondary]: color === 'secondary',\n [classes.spring]: color === 'spring',\n [classes.tomato]: color === 'tomato'\n }\n\n return (\n \n {Icon && (\n \n \n
\n )}\n {InverseIcon && (\n \n \n
\n )}\n {children && {children}
}\n \n )\n }\n)\n\nexport default ActionButton\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport styles from './styles'\n\nconst useStyles = makeStyles(styles)\n\nfunction H1({ children, noMargin, className, ...props }) {\n const classes = useStyles()\n const classNames = {\n [classes.h1]: true,\n [classes.noMargin]: noMargin,\n [className]: !!className\n }\n\n return (\n \n {children}\n \n )\n}\n\nfunction H2({ children, noMargin, className, ...props }) {\n const classes = useStyles()\n const classNames = {\n [classes.h2]: true,\n [classes.noMargin]: noMargin,\n [className]: !!className\n }\n\n return (\n \n {children}\n \n )\n}\n\nfunction H3({ children, noMargin, className, ...props }) {\n const classes = useStyles()\n const classNames = {\n [classes.h3]: true,\n [classes.noMargin]: noMargin,\n [className]: !!className\n }\n\n return (\n \n {children}\n \n )\n}\n\nfunction H4({ children, noMargin, className, ...props }) {\n const classes = useStyles()\n const classNames = {\n [classes.h4]: true,\n [classes.noMargin]: noMargin,\n [className]: !!className\n }\n\n return (\n \n {children}\n \n )\n}\n\nfunction H5({ children, noMargin, className, ...props }) {\n const classes = useStyles()\n const classNames = {\n [classes.h5]: true,\n [classes.noMargin]: noMargin,\n [className]: !!className\n }\n\n return (\n \n {children}\n \n )\n}\n\nconst P = pBuilder('p')\nconst Info1 = pBuilder('info1')\nconst Info2 = pBuilder('info2')\nconst Info3 = pBuilder('info3')\nconst Mono = pBuilder('mono')\nconst TL1 = pBuilder('tl1')\nconst TL2 = pBuilder('tl2')\nconst Label1 = pBuilder('label1')\nconst Label2 = pBuilder('label2')\nconst Label3 = pBuilder('label3')\n\nfunction pBuilder(elementClass) {\n return ({ inline, noMargin, className, children, ...props }) => {\n const classes = useStyles()\n const classNames = {\n [className]: !!className,\n [classes[elementClass]]: elementClass,\n [classes.inline]: inline,\n [classes.noMargin]: noMargin\n }\n return (\n \n {children}\n
\n )\n }\n}\n\nexport {\n H1,\n H2,\n H3,\n H4,\n H5,\n TL1,\n TL2,\n P,\n Info1,\n Info2,\n Info3,\n Mono,\n Label1,\n Label2,\n Label3\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"nav-/-primary-/-1440\",\n transform: \"translate(-1295.000000, -19.000000)\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/menu/notification\",\n transform: \"translate(1296.000000, 20.000000)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.1052632,14.3157895 C10.1052632,15.2454737 9.35073684,16 8.42105263,16 C7.49136842,16 6.73684211,15.2454737 6.73684211,14.3157895\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.6,14.3157895 C0.7168,14.3157895 0,13.6031813 0,12.7251462 C0,11.8471111 0.7168,11.1345029 1.6,11.1345029 L1.6,6.3625731 C1.6,2.84884211 4.4656,0 8,0 C11.5344,0 14.4,2.84884211 14.4,6.3625731 L14.4,11.1345029 C15.2832,11.1345029 16,11.8471111 16,12.7251462 C16,13.6031813 15.2832,14.3157895 14.4,14.3157895 L1.6,14.3157895 Z\",\n id: \"Stroke-3\",\n strokeLinejoin: \"round\"\n}))));\n\nfunction SvgNotificationZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"18px\",\n viewBox: \"0 0 18 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgNotificationZodiac);\nexport default __webpack_public_path__ + \"static/media/notification-zodiac.e2897b39.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/stage/spring/empty\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-Copy-6\",\n stroke: \"#DDDDDD\",\n strokeWidth: 2,\n transform: \"translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) \",\n cx: 9,\n cy: 9,\n r: 8\n}));\n\nfunction SvgEmpty(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"18px\",\n viewBox: \"0 0 18 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmpty);\nexport default __webpack_public_path__ + \"static/media/empty.862ae4bb.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/stage/zodiac/empty\",\n stroke: \"none\",\n strokeWidth: 2,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-Copy-6\",\n stroke: \"#5F668A\",\n transform: \"translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) \",\n cx: 9,\n cy: 9,\n r: 8\n}));\n\nfunction SvgEmpty(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"18px\",\n viewBox: \"0 0 18 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmpty);\nexport default __webpack_public_path__ + \"static/media/empty.631601f2.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/stage/zodiac/full\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-2-Copy\",\n fill: \"#1B2559\",\n cx: 9,\n cy: 9,\n r: 8\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-Copy-5\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n transform: \"translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) \",\n cx: 9,\n cy: 9,\n r: 8\n}));\n\nfunction SvgFull(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"18px\",\n viewBox: \"0 0 18 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgFull);\nexport default __webpack_public_path__ + \"static/media/full.67b8cd67.svg\";\nexport { ForwardRef as ReactComponent };","import {\n spacer,\n white,\n zircon,\n secondaryColor,\n spring3,\n comet\n} from 'src/styling/variables'\n\nconst styles = {\n container: {\n '@media only screen and (max-width: 1920px)': {\n width: '30vw'\n },\n width: '40vw',\n height: '110vh',\n right: 0,\n backgroundColor: white,\n boxShadow: '0 0 14px 0 rgba(0, 0, 0, 0.24)'\n },\n header: {\n display: 'flex',\n justifyContent: 'space-between'\n },\n headerText: {\n marginTop: spacer * 2.5,\n marginLeft: spacer * 3\n },\n actionButtons: {\n display: 'flex',\n marginLeft: spacer * 2,\n height: 0\n },\n notificationIcon: ({ buttonCoords, xOffset }) => ({\n position: 'absolute',\n top: buttonCoords ? buttonCoords.y : 0,\n left: buttonCoords ? buttonCoords.x - xOffset : 0,\n cursor: 'pointer',\n background: 'transparent',\n boxShadow: '0px 0px 0px transparent',\n border: '0px solid transparent',\n textShadow: '0px 0px 0px transparent',\n outline: 'none'\n }),\n clearAllButton: {\n marginTop: -spacer * 2,\n marginLeft: spacer,\n backgroundColor: zircon\n },\n notificationsList: {\n height: '90vh',\n maxHeight: '100vh',\n marginTop: spacer * 3,\n marginLeft: 0,\n overflowY: 'auto',\n overflowX: 'hidden',\n backgroundColor: white,\n zIndex: 10\n },\n notificationRow: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-start',\n position: 'relative',\n marginBottom: spacer / 2,\n paddingTop: spacer * 1.5,\n '& > *:first-child': {\n marginRight: 24\n },\n '& > *': {\n marginRight: 10\n },\n '& > *:last-child': {\n marginRight: 0\n }\n },\n notificationContent: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n width: 300\n },\n unread: {\n backgroundColor: spring3\n },\n notificationRowIcon: {\n alignSelf: 'center',\n '& > *': {\n marginLeft: spacer * 3\n }\n },\n readIconWrapper: {\n flexGrow: 1\n },\n unreadIcon: {\n marginTop: 2,\n width: '12px',\n height: '12px',\n backgroundColor: secondaryColor,\n borderRadius: '50%',\n cursor: 'pointer',\n zIndex: 1\n },\n readIcon: {\n marginLeft: spacer,\n marginTop: 5,\n width: '12px',\n height: '12px',\n border: [[1, 'solid', comet]],\n borderRadius: '50%',\n cursor: 'pointer',\n zIndex: 1\n },\n notificationTitle: {\n margin: 0,\n color: comet\n },\n notificationBody: {\n margin: 0\n },\n notificationSubtitle: {\n margin: 0,\n marginBottom: spacer,\n color: comet\n },\n stripes: {\n position: 'absolute',\n height: '100%',\n top: '0px',\n opacity: '60%'\n },\n hasUnread: {\n position: 'absolute',\n top: 0,\n left: 16,\n width: '9px',\n height: '9px',\n backgroundColor: secondaryColor,\n borderRadius: '50%'\n }\n}\n\nexport default styles\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"\\\\u21B3-notification-center\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"notification-center_v01a#2-(open)\",\n transform: \"translate(-1023.000000, -459.000000)\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\",\n transform: \"translate(1000.000000, 0.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/wrench\",\n transform: \"translate(24.000000, 460.000000)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.7602493,3.10720971 L13.1962412,5.67121772 L10.3290323,5.67121772 L10.3290323,2.80400876 L12.8930403,0.24000075 C12.4378389,0.0872002725 11.9506373,0 11.4434358,0 C8.9282279,0 6.88822153,2.04000637 6.88822153,4.55681424 C6.88822153,5.08081588 6.98102182,5.58321745 7.14422233,6.05201891 L0.580201813,12.6168394 C-0.193400604,13.3904418 -0.193400604,14.6456458 0.580201813,15.4200482 C1.35460423,16.1936506 2.60980816,16.1936506 3.38341057,15.4200482 L9.94823109,8.85602767 C10.4170326,9.01922818 10.9186341,9.11202847 11.4434358,9.11202847 C13.9602436,9.11202847 16.00025,7.0720221 16.00025,4.55681424 C16.00025,4.04961265 15.9130497,3.56241113 15.7602493,3.10720971 Z\",\n id: \"Stroke-1\"\n})))));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"32px\",\n height: \"32px\",\n viewBox: \"0 0 18 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.1806a875.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"\\\\u21B3-notification-center\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"notification-center_v01a#1-(marked-one-as-read)\",\n transform: \"translate(-1023.000000, -123.000000)\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\",\n transform: \"translate(1000.000000, 0.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-4\",\n transform: \"translate(24.000000, 124.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-3\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 4,\n x2: 16,\n y2: 4,\n id: \"Path-2\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path-3\",\n points: \"12 0 16 4 12 8\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2\",\n transform: \"translate(8.000000, 12.000000) scale(-1, 1) translate(-8.000000, -12.000000) translate(0.000000, 8.000000)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 4,\n x2: 16,\n y2: 4,\n id: \"Path-2-Copy\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path-3-Copy\",\n points: \"12 0 16 4 12 8\"\n}))))));\n\nfunction SvgTransaction(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"24px\",\n height: \"24px\",\n viewBox: \"0 0 18 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTransaction);\nexport default __webpack_public_path__ + \"static/media/transaction.d1309f34.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/warning-icon/tomato\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle\",\n stroke: \"#FF584A\",\n strokeWidth: 2,\n x: 1,\n y: 1,\n width: 22,\n height: 22,\n rx: 11\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.2971429,14.4857143 L11.1085714,5.82857143 L13.3714286,5.82857143 L13.2,14.4857143 L11.2971429,14.4857143 Z M11.1942857,18 L11.1942857,15.9771429 L13.3028571,15.9771429 L13.3028571,18 L11.1942857,18 Z\",\n id: \"!\",\n fill: \"#FF584A\",\n fillRule: \"nonzero\"\n})));\n\nfunction SvgTomato(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"24px\",\n height: \"24px\",\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTomato);\nexport default __webpack_public_path__ + \"static/media/tomato.4b561f6f.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport prettyMs from 'pretty-ms'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport { Label1, Label2, TL2 } from 'src/components/typography'\nimport { ReactComponent as Wrench } from 'src/styling/icons/action/wrench/zodiac.svg'\nimport { ReactComponent as Transaction } from 'src/styling/icons/arrow/transaction.svg'\nimport { ReactComponent as WarningIcon } from 'src/styling/icons/warning-icon/tomato.svg'\n\nimport styles from './NotificationCenter.styles'\nconst useStyles = makeStyles(styles)\n\nconst types = {\n transaction: {\n display: 'Transactions',\n icon: \n },\n highValueTransaction: {\n display: 'Transactions',\n icon: \n },\n fiatBalance: {\n display: 'Maintenance',\n icon: \n },\n cryptoBalance: {\n display: 'Maintenance',\n icon: \n },\n compliance: {\n display: 'Compliance',\n icon: \n },\n error: { display: 'Error', icon: }\n}\n\nconst NotificationRow = ({\n id,\n type,\n detail,\n message,\n deviceName,\n created,\n read,\n valid,\n toggleClear\n}) => {\n const classes = useStyles()\n\n const typeDisplay = R.path([type, 'display'])(types) ?? null\n const icon = R.path([type, 'icon'])(types) ?? (\n \n )\n const age = prettyMs(new Date().getTime() - new Date(created).getTime(), {\n compact: true,\n verbose: true\n })\n const notificationTitle =\n typeDisplay && deviceName\n ? `${typeDisplay} - ${deviceName}`\n : !typeDisplay && deviceName\n ? `${deviceName}`\n : `${typeDisplay}`\n\n const iconClass = {\n [classes.readIcon]: read,\n [classes.unreadIcon]: !read\n }\n return (\n \n
\n
\n \n {notificationTitle}\n \n {message} \n {age} \n
\n
\n
toggleClear(id)}\n className={classnames(iconClass)}\n />\n
\n
\n )\n}\n\nexport default NotificationRow\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState, useEffect } from 'react'\n\nimport ActionButton from 'src/components/buttons/ActionButton'\nimport { H5 } from 'src/components/typography'\nimport { ReactComponent as NotificationIconZodiac } from 'src/styling/icons/menu/notification-zodiac.svg'\nimport { ReactComponent as ClearAllIconInverse } from 'src/styling/icons/stage/spring/empty.svg'\nimport { ReactComponent as ClearAllIcon } from 'src/styling/icons/stage/zodiac/empty.svg'\nimport { ReactComponent as ShowUnreadIcon } from 'src/styling/icons/stage/zodiac/full.svg'\n\nimport styles from './NotificationCenter.styles'\nimport NotificationRow from './NotificationRow'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_NOTIFICATIONS = gql`\n query getNotifications {\n notifications {\n id\n type\n detail\n message\n created\n read\n valid\n }\n hasUnreadNotifications\n machines {\n deviceId\n name\n }\n }\n`\n\nconst TOGGLE_CLEAR_NOTIFICATION = gql`\n mutation toggleClearNotification($id: ID!, $read: Boolean!) {\n toggleClearNotification(id: $id, read: $read) {\n id\n read\n }\n }\n`\n\nconst CLEAR_ALL_NOTIFICATIONS = gql`\n mutation clearAllNotifications {\n clearAllNotifications {\n id\n }\n }\n`\n\nconst NotificationCenter = ({\n close,\n hasUnreadProp,\n buttonCoords,\n popperRef,\n refetchHasUnreadHeader\n}) => {\n const { data, loading } = useQuery(GET_NOTIFICATIONS, {\n pollInterval: 60000\n })\n const [xOffset, setXoffset] = useState(300)\n\n const [showingUnread, setShowingUnread] = useState(false)\n const classes = useStyles({ buttonCoords, xOffset })\n const machines = R.compose(\n R.map(R.prop('name')),\n R.indexBy(R.prop('deviceId'))\n )(R.path(['machines'])(data) ?? [])\n const notifications = R.path(['notifications'])(data) ?? []\n const [hasUnread, setHasUnread] = useState(hasUnreadProp)\n\n const [toggleClearNotification] = useMutation(TOGGLE_CLEAR_NOTIFICATION, {\n onError: () => console.error('Error while clearing notification'),\n refetchQueries: () => ['getNotifications']\n })\n const [clearAllNotifications] = useMutation(CLEAR_ALL_NOTIFICATIONS, {\n onError: () => console.error('Error while clearing all notifications'),\n refetchQueries: () => ['getNotifications']\n })\n\n useEffect(() => {\n setXoffset(popperRef.current.getBoundingClientRect().x)\n if (data && data.hasUnreadNotifications !== hasUnread) {\n refetchHasUnreadHeader()\n setHasUnread(!hasUnread)\n }\n }, [popperRef, data, hasUnread, refetchHasUnreadHeader])\n\n const buildNotifications = () => {\n const notificationsToShow =\n !showingUnread || !hasUnread\n ? notifications\n : R.filter(R.propEq('read', false))(notifications)\n return notificationsToShow.map(n => {\n return (\n
\n toggleClearNotification({\n variables: { id: n.id, read: !n.read }\n })\n }\n />\n )\n })\n }\n\n return (\n <>\n \n
\n
Notifications \n
\n \n {hasUnread &&
}\n \n
\n
\n {hasUnread && (\n
setShowingUnread(!showingUnread)}>\n {showingUnread ? 'Show all' : 'Show unread'}\n \n )}\n {hasUnread && (\n
\n Mark all as read\n \n )}\n
\n
\n {!loading && buildNotifications()}\n
\n
\n >\n )\n}\n\nexport default NotificationCenter\n","import NotificationCenter from './NotificationCenter'\nexport default NotificationCenter\n","import { makeStyles } from '@material-ui/core/styles'\nimport React, { memo } from 'react'\n\nimport { spacer } from 'src/styling/variables'\n\nimport { H1 } from './typography'\n\nconst useStyles = makeStyles({\n title: {\n marginTop: spacer * 3,\n marginBottom: spacer * 3\n }\n})\n\nconst Title = memo(({ children }) => {\n const classes = useStyles()\n return {children} \n})\n\nexport default Title\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/add/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.5384615,6 C11.5384615,9.05815385 9.05815385,11.5384615 6,11.5384615 C2.94184615,11.5384615 0.461538462,9.05815385 0.461538462,6 C0.461538462,2.94184615 2.94184615,0.461538462 6,0.461538462 C9.05815385,0.461538462 11.5384615,2.94184615 11.5384615,6 Z\",\n id: \"Stroke-1\",\n stroke: \"#1B2559\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 6,\n y1: 3.69230769,\n x2: 6,\n y2: 8.30769231,\n id: \"Stroke-3\",\n stroke: \"#1B2559\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 3.69230769,\n y1: 6,\n x2: 8.30769231,\n y2: 6,\n id: \"Stroke-5\",\n stroke: \"#1B2559\"\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.a976fef2.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport typographyStyles from 'src/components/typography/styles'\nimport { ReactComponent as AddIcon } from 'src/styling/icons/button/add/zodiac.svg'\nimport { zircon, zircon2, comet, fontColor, white } from 'src/styling/variables'\n\nconst { p } = typographyStyles\n\nconst styles = {\n button: {\n extend: p,\n border: 'none',\n backgroundColor: zircon,\n cursor: 'pointer',\n outline: 0,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n width: 167,\n height: 48,\n color: fontColor,\n '&:hover': {\n backgroundColor: zircon2\n },\n '&:active': {\n backgroundColor: comet,\n color: white,\n '& svg g *': {\n stroke: white\n }\n },\n '& svg': {\n marginRight: 8\n }\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst SimpleButton = memo(({ className, children, ...props }) => {\n const classes = useStyles()\n\n return (\n \n \n {children}\n \n )\n})\n\nexport default SimpleButton\n","import typographyStyles from 'src/components/typography/styles'\nimport {\n white,\n disabledColor,\n secondaryColor,\n secondaryColorDark,\n secondaryColorDarker,\n offColor,\n offDarkColor,\n offDarkerColor,\n spacer\n} from 'src/styling/variables'\n\nconst { h1, h3 } = typographyStyles\n\nconst pickSize = size => {\n switch (size) {\n case 'xl':\n return spacer * 7.625\n case 'sm':\n return spacer * 4\n case 'lg':\n default:\n return spacer * 5\n }\n}\n\nexport default {\n wrapper: ({ size }) => {\n const height = pickSize(size)\n const shadowSize = height / 12\n return { height: height + shadowSize / 2 }\n },\n button: ({ size, backgroundColor }) => {\n const height = pickSize(size)\n const shadowSize = size === 'xl' ? 3 : height / 12\n const padding = size === 'xl' ? 20 : height / 2\n const isGrey = backgroundColor === 'grey'\n\n return {\n extend: size === 'xl' ? h1 : h3,\n border: 'none',\n color: white,\n cursor: 'pointer',\n fontWeight: 900,\n outline: 0,\n backgroundColor: isGrey ? offDarkColor : secondaryColor,\n '&:disabled': {\n backgroundColor: disabledColor,\n boxShadow: 'none',\n '&:hover': {\n backgroundColor: disabledColor,\n boxShadow: 'none'\n },\n '&:active': {\n marginTop: 0\n }\n },\n shadowSize,\n height,\n padding: `0 ${padding}px`,\n borderRadius: height / 4,\n boxShadow: `0 ${shadowSize}px ${isGrey ? offColor : secondaryColorDark}`,\n '&:hover': {\n backgroundColor: isGrey ? offColor : secondaryColorDark,\n boxShadow: `0 ${shadowSize}px ${\n isGrey ? offDarkerColor : secondaryColorDarker\n }`\n },\n '&:active': {\n marginTop: shadowSize / 2,\n backgroundColor: isGrey ? offDarkColor : secondaryColorDark,\n boxShadow: `0 ${shadowSize / 2}px ${\n isGrey ? offDarkerColor : secondaryColorDarker\n }`\n }\n }\n }\n}\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport styles from './Button.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst ActionButton = memo(\n ({\n size = 'lg',\n children,\n className,\n buttonClassName,\n backgroundColor,\n ...props\n }) => {\n const classes = useStyles({ size, backgroundColor })\n return (\n \n \n {children}\n \n
\n )\n }\n)\n\nexport default ActionButton\n","import {\n white,\n fontColor,\n subheaderColor,\n subheaderDarkColor,\n offColor,\n offDarkColor\n} from 'src/styling/variables'\n\nconst colors = (color1, color2, color3) => {\n return {\n backgroundColor: color1,\n '&:hover': {\n backgroundColor: color2\n },\n '&:active': {\n backgroundColor: color3\n }\n }\n}\n\nconst buttonHeight = 32\n\nexport default {\n baseButton: {\n extend: colors(subheaderColor, subheaderDarkColor, offColor),\n cursor: 'pointer',\n border: 'none',\n outline: 0,\n height: buttonHeight,\n color: fontColor,\n '&:active': {\n color: white\n }\n },\n primary: {\n extend: colors(subheaderColor, subheaderDarkColor, offColor),\n '&:active': {\n color: white,\n '& $buttonIcon': {\n display: 'none'\n },\n '& $buttonIconActive': {\n display: 'block'\n }\n },\n '& $buttonIconActive': {\n display: 'none'\n }\n },\n secondary: {\n extend: colors(offColor, offDarkColor, white),\n color: white,\n '&:active': {\n color: fontColor,\n '& $buttonIcon': {\n display: 'flex'\n },\n '& $buttonIconActive': {\n display: 'none'\n }\n },\n '& $buttonIcon': {\n display: 'none'\n },\n '& $buttonIconActive': {\n display: 'flex'\n }\n }\n}\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport baseButtonStyles from './BaseButton.styles'\n\nconst { baseButton, primary } = baseButtonStyles\n\nconst styles = {\n featureButton: {\n extend: baseButton,\n width: baseButton.height,\n borderRadius: baseButton.height / 2,\n display: 'flex',\n padding: 0\n },\n primary,\n buttonIcon: {\n margin: 'auto',\n '& svg': {\n width: 16,\n height: 16,\n overflow: 'visible',\n '& g': {\n strokeWidth: 1.8\n }\n }\n },\n buttonIconActive: {} // required to extend primary\n}\n\nconst useStyles = makeStyles(styles)\n\nconst FeatureButton = memo(\n ({ className, Icon, InverseIcon, children, ...props }) => {\n const classes = useStyles()\n\n const classNames = {\n [classes.featureButton]: true,\n [classes.primary]: true\n }\n\n return (\n \n {Icon && (\n \n \n
\n )}\n {InverseIcon && (\n \n \n
\n )}\n {children}\n \n )\n }\n)\n\nexport default FeatureButton\n","import { makeStyles, Popper as MaterialPopper, Paper } from '@material-ui/core'\nimport classnames from 'classnames'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { white } from 'src/styling/variables'\n\nconst Popover = ({\n children,\n bgColor = white,\n arrowSize = 6,\n className,\n ...props\n}) => {\n const [arrowRef, setArrowRef] = useState(null)\n\n const styles = {\n popover: {\n zIndex: 3000,\n backgroundColor: bgColor,\n borderRadius: 4\n },\n arrow: {\n position: 'absolute',\n fontSize: arrowSize,\n width: '3em',\n height: '3em'\n },\n arrowBottom: {\n top: 0,\n width: 0,\n height: 0,\n borderLeft: [['2em', 'solid', 'transparent']],\n borderRight: [['2em', 'solid', 'transparent']],\n borderBottom: [['2em', 'solid', bgColor]],\n marginTop: '-1.9em',\n '&:after': {\n zIndex: -10,\n content: '\"\"',\n position: 'absolute',\n width: arrowSize * 3,\n height: arrowSize * 3,\n marginLeft: 0,\n bottom: 0,\n top: 'calc(50% - 0px)',\n left: 0,\n border: '5px solid #fff',\n borderColor: 'transparent transparent #fff #fff',\n transformOrigin: '0 0',\n transform: 'rotate(45deg)',\n boxShadow:\n '0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12)'\n }\n },\n arrowTop: {\n bottom: 0,\n width: 0,\n height: 0,\n borderLeft: [['2em', 'solid', 'transparent']],\n borderRight: [['2em', 'solid', 'transparent']],\n borderTop: [['2em', 'solid', bgColor]],\n marginBottom: '-1.9em',\n '&:after': {\n zIndex: -10,\n content: '\"\"',\n position: 'absolute',\n width: arrowSize * 3,\n height: arrowSize * 3,\n marginLeft: 0,\n bottom: 0,\n top: -(arrowSize * 4 + 2),\n left: 0,\n border: '5px solid #fff',\n borderColor: 'transparent transparent #fff #fff',\n transformOrigin: '0 0',\n transform: 'rotate(45deg)',\n boxShadow:\n '0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12)'\n }\n },\n arrowRight: {\n left: 0,\n width: 0,\n height: 0,\n borderTop: [['2em', 'solid', 'transparent']],\n borderBottom: [['2em', 'solid', 'transparent']],\n borderRight: [['2em', 'solid', bgColor]],\n marginLeft: '-1.9em'\n },\n arrowLeft: {\n right: 0,\n width: 0,\n height: 0,\n borderTop: [['2em', 'solid', 'transparent']],\n borderBottom: [['2em', 'solid', 'transparent']],\n borderLeft: [['2em', 'solid', bgColor]],\n marginRight: '-1.9em'\n },\n root: {\n backgroundColor: bgColor\n }\n }\n\n const useStyles = makeStyles(styles)\n\n const classes = useStyles()\n\n const arrowClasses = {\n [classes.arrow]: true,\n [classes.arrowBottom]: props.placement === 'bottom',\n [classes.arrowTop]: props.placement === 'top',\n [classes.arrowRight]: props.placement === 'right',\n [classes.arrowLeft]: props.placement === 'left'\n }\n\n const modifiers = R.merge(props.modifiers, {\n flip: {\n enabled: false\n },\n preventOverflow: {\n enabled: true,\n boundariesElement: 'scrollParent'\n },\n offset: {\n enabled: true,\n offset: '0, 10'\n },\n arrow: {\n enabled: true,\n element: arrowRef\n },\n computeStyle: {\n gpuAcceleration: false\n }\n })\n\n return (\n <>\n \n \n \n {children}\n \n \n >\n )\n}\n\nexport default Popover\n","import { ClickAwayListener } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { useState, memo } from 'react'\n\nimport Popover from 'src/components/Popper'\nimport typographyStyles from 'src/components/typography/styles'\nimport {\n subheaderColor,\n subheaderDarkColor,\n offColor\n} from 'src/styling/variables'\n\nconst { info2 } = typographyStyles\n\nconst colors = (color1, color2, color3) => {\n return {\n backgroundColor: color1,\n '&:hover': {\n backgroundColor: color2\n },\n '&:active': {\n backgroundColor: color3\n }\n }\n}\n\nconst styles = {\n idButton: {\n width: 34,\n height: 28,\n display: 'flex',\n borderRadius: 4,\n padding: 0,\n border: 'none',\n cursor: 'pointer'\n },\n buttonIcon: {\n margin: 'auto',\n lineHeight: 1,\n '& svg': {\n overflow: 'visible'\n }\n },\n closed: {\n extend: colors(subheaderColor, subheaderDarkColor, offColor)\n },\n open: {\n extend: colors(offColor, offColor, offColor)\n },\n popoverContent: {\n extend: info2,\n padding: 8,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: 4,\n '& img': {\n maxHeight: 145\n }\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst IDButton = memo(\n ({\n name,\n className,\n Icon,\n InverseIcon,\n popoverWidth = 152,\n children,\n popoverClassname,\n ...props\n }) => {\n const [anchorEl, setAnchorEl] = useState(null)\n\n const classes = useStyles()\n\n const open = Boolean(anchorEl)\n const id = open ? `simple-popper-${name}` : undefined\n\n const classNames = {\n [classes.idButton]: true,\n [classes.primary]: true,\n [classes.open]: open,\n [classes.closed]: !open\n }\n\n const iconClassNames = {\n [classes.buttonIcon]: true\n }\n\n const handleClick = event => {\n setAnchorEl(anchorEl ? null : event.currentTarget)\n }\n\n const handleClose = () => {\n setAnchorEl(null)\n }\n\n return (\n <>\n \n \n {Icon && !open && (\n \n \n
\n )}\n {InverseIcon && open && (\n \n \n
\n )}\n \n \n \n \n \n >\n )\n }\n)\n\nexport default IDButton\n","import { makeStyles, IconButton as IconB } from '@material-ui/core'\nimport React from 'react'\n\nimport { comet } from 'src/styling/variables'\n\nconst styles = {\n label: ({ size }) => ({\n width: size,\n height: size\n }),\n root: {\n '& svg': {\n flex: 1\n },\n '&:hover': {\n backgroundColor: 'inherit'\n },\n '&:hover rect': {\n stroke: comet\n },\n '&:hover polygon': {\n stroke: comet\n },\n '&:hover path': {\n stroke: comet\n }\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst IconButton = ({ size, children, onClick, ...props }) => {\n const classes = useStyles({ size })\n return (\n \n {children}\n \n )\n}\n\nexport default IconButton\n","import { fade } from '@material-ui/core/styles/colorManipulator'\n\nimport typographyStyles from 'src/components/typography/styles'\nimport {\n white,\n linkPrimaryColor,\n linkSecondaryColor,\n zircon\n} from 'src/styling/variables'\n\nconst { h4 } = typographyStyles\n\nconst color = color => ({\n boxShadow: `inset 0 -4px 0 0 ${fade(color, 0.8)}`,\n '&:hover': {\n boxShadow: 'none',\n backgroundColor: fade(color, 0.8)\n }\n})\n\nexport default {\n link: {\n extend: h4,\n textDecoration: 'none',\n border: 'none',\n backgroundColor: 'transparent',\n cursor: 'pointer',\n padding: '0',\n height: '100%'\n },\n primary: {\n extend: color(linkPrimaryColor)\n },\n secondary: {\n extend: color(linkSecondaryColor),\n '&:hover': {\n color: white\n }\n },\n noColor: {\n extend: color(white)\n },\n action: {\n extend: color(linkPrimaryColor),\n color: zircon\n }\n}\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport styles from './Link.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst Link = memo(\n ({ submit, className, children, color = 'primary', ...props }) => {\n const classes = useStyles()\n const classNames = {\n [classes.link]: true,\n [classes.primary]: color === 'primary',\n [classes.secondary]: color === 'secondary',\n [classes.noColor]: color === 'noColor',\n [classes.action]: color === 'action'\n }\n\n return (\n \n {children}\n \n )\n }\n)\n\nexport default Link\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport baseButtonStyles from './BaseButton.styles'\n\nconst { baseButton, primary } = baseButtonStyles\n\nconst styles = {\n button: {\n extend: baseButton,\n borderRadius: baseButton.height / 2,\n outline: 0,\n padding: '0 20px'\n },\n primary,\n buttonIcon: {\n marginTop: 4,\n marginRight: 4,\n '& svg': {\n width: 20,\n height: 20,\n overflow: 'visible'\n }\n },\n buttonIconActive: {} // required to extend primary\n}\n\nconst useStyles = makeStyles(styles)\n\nconst SimpleButton = memo(\n ({ className, Icon, InverseIcon, children, color, size, ...props }) => {\n const classes = useStyles()\n\n return (\n \n {Icon && (\n \n \n
\n )}\n {InverseIcon && (\n \n \n
\n )}\n {children}\n \n )\n }\n)\n\nexport default SimpleButton\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/cancel/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\",\n transform: \"translate(1.000000, 1.000000)\",\n stroke: \"#FFFFFF\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 10,\n y1: 0,\n x2: 0,\n y2: 10,\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 0,\n x2: 10,\n y2: 10,\n id: \"Stroke-3\"\n})));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.41439910.svg\";\nexport { ForwardRef as ReactComponent };","import baseButtonStyles from 'src/components/buttons/BaseButton.styles'\nimport { offColor, white } from 'src/styling/variables'\n\nconst { baseButton } = baseButtonStyles\n\nexport default {\n button: {\n extend: baseButton,\n padding: 0,\n color: white,\n borderRadius: baseButton.height / 2\n },\n normalButton: {\n width: baseButton.height\n },\n activeButton: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n backgroundColor: offColor,\n fontWeight: 'bold',\n padding: '0 5px',\n '&:hover': {\n backgroundColor: offColor\n }\n },\n buttonIcon: {\n width: 16,\n height: 16,\n overflow: 'visible',\n '& g': {\n strokeWidth: 1.8\n }\n },\n buttonIconActiveLeft: {\n marginRight: 12,\n marginLeft: 4\n },\n buttonIconActiveRight: {\n marginRight: 5,\n marginLeft: 20\n },\n white: {\n color: white\n }\n}\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo, useState } from 'react'\n\nimport { H4 } from 'src/components/typography'\nimport { ReactComponent as CancelIconInverse } from 'src/styling/icons/button/cancel/white.svg'\n\nimport subpageButtonStyles from './SubpageButton.styles'\n\nconst useStyles = makeStyles(subpageButtonStyles)\n\nconst SubpageButton = memo(\n ({\n className,\n Icon,\n InverseIcon,\n toggle,\n forceDisable = false,\n children\n }) => {\n const [active, setActive] = useState(false)\n const isActive = forceDisable ? false : active\n const classes = useStyles()\n const classNames = {\n [classes.button]: true,\n [classes.normalButton]: !isActive,\n [classes.activeButton]: isActive\n }\n\n const normalButton = \n\n const activeButton = (\n <>\n \n {children} \n \n >\n )\n\n const innerToggle = () => {\n forceDisable = false\n const newActiveState = !isActive\n toggle(newActiveState)\n setActive(newActiveState)\n }\n\n return (\n \n {isActive ? activeButton : normalButton}\n \n )\n }\n)\n\nexport default SubpageButton\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/external-link/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-1\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n points: \"20 12.1113 20 21.0003 0 21.0003 0 1.0003 8.889 1.0003\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n points: \"14.4443 1 20.0003 1 20.0003 6.556\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 10,\n y1: 11,\n x2: 20,\n y2: 1,\n id: \"Stroke-5\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.9814829c.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/external-link/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-7\",\n transform: \"translate(0.000000, 1.000000)\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-1\",\n points: \"20 11.1113 20 20.0003 0 20.0003 0 0.0003 8.889 0.0003\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"14.4443 0 20.0003 0 20.0003 5.556\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 10,\n y1: 10,\n x2: 20,\n y2: 0,\n id: \"Stroke-5\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.6cff3051.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core'\nimport React from 'react'\n\nimport { ActionButton } from 'src/components/buttons'\nimport { ReactComponent as InverseLinkIcon } from 'src/styling/icons/action/external link/white.svg'\nimport { ReactComponent as LinkIcon } from 'src/styling/icons/action/external link/zodiac.svg'\nimport { spacer, primaryColor } from 'src/styling/variables'\n\nconst useStyles = makeStyles({\n actionButton: {\n marginBottom: spacer * 4\n },\n actionButtonLink: {\n textDecoration: 'none',\n color: primaryColor\n }\n})\n\nconst SupportLinkButton = ({ link, label }) => {\n const classes = useStyles()\n return (\n \n \n {label}\n \n \n )\n}\n\nexport default SupportLinkButton\n","import {\n inputFontSize,\n inputFontSizeLg,\n inputFontSizeSm,\n inputFontWeightBold\n} from './variables'\n\nconst respondTo = breakpoint =>\n `@media only screen and (max-width: ${breakpoint})`\n\nconst bySize = size => {\n switch (size) {\n case 'sm':\n return { fontSize: inputFontSizeSm }\n case 'lg':\n return { fontSize: inputFontSizeLg, fontWeight: inputFontWeightBold }\n default:\n return { fontSize: inputFontSize }\n }\n}\n\nconst bold = {\n fontWeight: inputFontWeightBold\n}\n\nexport { respondTo, bySize, bold }\n","import { bySize, bold } from 'src/styling/helpers'\nimport { secondaryColor } from 'src/styling/variables'\n\nexport default {\n size: ({ size }) => ({\n marginTop: size === 'lg' ? 0 : 2,\n ...bySize(size)\n }),\n bold,\n root: ({ width, textAlign }) => ({\n width,\n '& input': {\n textAlign\n }\n }),\n underline: {\n '&:before': {\n borderBottomColor: secondaryColor\n },\n '&:hover:not(.Mui-disabled)::before': {\n borderBottomColor: secondaryColor\n }\n }\n}\n","import { makeStyles } from '@material-ui/core'\nimport TextField from '@material-ui/core/TextField'\nimport classnames from 'classnames'\nimport * as R from 'ramda'\nimport React, { memo } from 'react'\n\nimport styles from './TextInput.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst TextInput = memo(\n ({\n name,\n isPasswordFilled,\n onChange,\n onBlur,\n value,\n error,\n suffix,\n textAlign,\n width,\n // lg or sm\n size,\n bold,\n className,\n InputProps,\n ...props\n }) => {\n const classes = useStyles({ textAlign, width, size })\n const isTextFilled = !error && !R.isNil(value) && !R.isEmpty(value)\n const filled = isPasswordFilled || isTextFilled\n const inputClasses = {\n [classes.bold]: bold\n }\n\n return (\n \n )\n }\n)\n\nexport default TextInput\n","import MAutocomplete from '@material-ui/lab/Autocomplete'\nimport sort from 'match-sorter'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport TextInput from './TextInput'\n\nconst Autocomplete = ({\n optionsLimit = 5, // set limit = null for no limit\n limit,\n options,\n label,\n valueProp,\n multiple,\n onChange,\n labelProp,\n shouldStayOpen,\n value: outsideValue,\n error,\n fullWidth,\n textAlign,\n size,\n autoFocus,\n ...props\n}) => {\n const mapFromValue = options => it => R.find(R.propEq(valueProp, it))(options)\n const mapToValue = R.prop(valueProp)\n\n const getValue = () => {\n if (!valueProp) return outsideValue\n\n const transform = multiple\n ? R.map(mapFromValue(options))\n : mapFromValue(options)\n\n return transform(outsideValue)\n }\n\n const value = getValue()\n\n const innerOnChange = (evt, value) => {\n if (!valueProp) return onChange(evt, value)\n\n const rValue = multiple ? R.map(mapToValue)(value) : mapToValue(value)\n onChange(evt, rValue)\n }\n\n const valueArray = () => {\n if (R.isNil(value)) return []\n return multiple ? value : [value]\n }\n\n const filter = (array, input) => {\n if (!input) return array\n return sort(array, input, { keys: [valueProp, labelProp] })\n }\n\n const filterOptions = (array, { inputValue }) =>\n R.union(\n R.isEmpty(inputValue) ? valueArray() : [],\n filter(array, inputValue)\n ).slice(\n 0,\n R.defaultTo(undefined)(limit) &&\n Math.max(limit, R.isEmpty(inputValue) ? valueArray().length : 0)\n )\n\n return (\n {\n return (\n \n )\n }}\n />\n )\n}\n\nexport default Autocomplete\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/warning-icon/comet\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle\",\n stroke: \"#5F668A\",\n strokeWidth: 2,\n x: 1,\n y: 1,\n width: 22,\n height: 22,\n rx: 11\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.2971429,14.4857143 L11.1085714,5.82857143 L13.3714286,5.82857143 L13.2,14.4857143 L11.2971429,14.4857143 Z M11.1942857,18 L11.1942857,15.9771429 L13.3028571,15.9771429 L13.3028571,18 L11.1942857,18 Z\",\n id: \"!\",\n fill: \"#5F668A\",\n fillRule: \"nonzero\"\n})));\n\nfunction SvgComet(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"24px\",\n height: \"24px\",\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgComet);\nexport default __webpack_public_path__ + \"static/media/comet.9dc291f2.svg\";\nexport { ForwardRef as ReactComponent };","import Checkbox from '@material-ui/core/Checkbox'\nimport { makeStyles } from '@material-ui/core/styles'\nimport CheckBoxIcon from '@material-ui/icons/CheckBox'\nimport CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank'\nimport React from 'react'\n\nimport { Label2, Info3 } from 'src/components/typography'\nimport { ReactComponent as WarningIcon } from 'src/styling/icons/warning-icon/comet.svg'\nimport {\n fontSize2,\n fontSize3,\n secondaryColor,\n offColor\n} from 'src/styling/variables'\n\nconst useStyles = makeStyles({\n root: {\n color: secondaryColor,\n '&$checked': {\n color: secondaryColor\n }\n },\n checked: {},\n checkBoxLabel: {\n display: 'flex'\n },\n wrapper: {\n display: 'flex',\n alignItems: 'center',\n '& > svg': {\n marginRight: 10\n }\n },\n message: {\n display: 'flex',\n alignItems: 'center',\n color: offColor,\n margin: 0,\n whiteSpace: 'break-spaces'\n }\n})\n\nconst CheckboxInput = ({ name, onChange, value, settings, ...props }) => {\n const { enabled, label, disabledMessage, rightSideLabel } = settings\n const classes = useStyles()\n\n return (\n <>\n {enabled ? (\n \n {!rightSideLabel && {label} }\n \n }\n checkedIcon={ }\n disableRipple\n {...props}\n />\n {rightSideLabel && {label} }\n
\n ) : (\n \n \n {disabledMessage} \n
\n )}\n >\n )\n}\n\nexport default CheckboxInput\n","import { primaryColor, zircon, errorColor } from 'src/styling/variables'\n\nconst styles = {\n input: {\n width: '3.5rem !important',\n height: '5rem',\n border: '2px solid',\n borderColor: zircon,\n borderRadius: '4px'\n },\n focus: {\n border: '2px solid',\n borderColor: primaryColor,\n borderRadius: '4px',\n '&:focus': {\n outline: 'none'\n }\n },\n error: {\n borderColor: errorColor\n },\n container: {\n justifyContent: 'space-evenly'\n }\n}\n\nexport default styles\n","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport React from 'react'\nimport OtpInput from 'react-otp-input'\n\nimport typographyStyles from 'src/components/typography/styles'\n\nimport styles from './CodeInput.styles'\n\nconst useStyles = makeStyles(styles)\nconst useTypographyStyles = makeStyles(typographyStyles)\n\nconst CodeInput = ({\n name,\n value,\n onChange,\n numInputs,\n error,\n inputStyle,\n containerStyle,\n ...props\n}) => {\n const classes = useStyles()\n const typographyClasses = useTypographyStyles()\n\n return (\n }\n containerStyle={classnames(containerStyle, classes.container)}\n inputStyle={classnames(\n inputStyle,\n classes.input,\n typographyClasses.confirmationCode\n )}\n focusStyle={classes.focus}\n errorStyle={classes.error}\n hasErrored={error}\n isInputNum={true}\n {...props}\n />\n )\n}\n\nexport default CodeInput\n","import FormControl from '@material-ui/core/FormControl'\nimport InputLabel from '@material-ui/core/InputLabel'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport Select from '@material-ui/core/Select'\nimport classnames from 'classnames'\nimport React from 'react'\n\nconst Dropdown = ({ label, name, options, onChange, value, className }) => {\n return (\n \n {label} \n \n {options.map((option, index) => (\n \n {option.display}\n \n ))}\n \n \n )\n}\n\nexport default Dropdown\n","import React, { memo } from 'react'\nimport NumberFormat from 'react-number-format'\n\nimport TextInput from './TextInput'\n\nconst NumberInput = memo(\n ({\n name,\n onChange,\n onBlur,\n value,\n error,\n suffix,\n textAlign,\n width,\n // lg or sm\n size,\n bold,\n className,\n decimalPlaces,\n InputProps,\n ...props\n }) => {\n return (\n {\n onChange({\n target: {\n id: name,\n value: values.floatValue\n }\n })\n }}\n {...props}\n />\n )\n }\n)\n\nexport default NumberInput\n","import {\n Radio,\n RadioGroup as MRadioGroup,\n FormControlLabel,\n makeStyles\n} from '@material-ui/core'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport { Label1 } from 'src/components/typography'\nimport { offColor } from 'src/styling/variables'\nconst styles = {\n label: {\n height: 16,\n lineHeight: '16px',\n margin: [[0, 0, 4, 0]],\n paddingLeft: 3\n },\n subtitle: {\n marginTop: -8,\n marginLeft: 32,\n color: offColor\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst RadioGroup = ({\n name,\n label,\n value,\n options,\n onChange,\n className,\n labelClassName,\n radioClassName\n}) => {\n const classes = useStyles()\n return (\n <>\n {label && {label} }\n \n {options.map((option, idx) => (\n \n \n }\n label={option.display}\n className={classnames(labelClassName)}\n />\n {option.subtitle && (\n {option.subtitle} \n )}\n
\n \n ))}\n \n >\n )\n}\n\nexport default RadioGroup\n","import React, { memo, useState } from 'react'\n\nimport { TextInput } from '../base'\n\nconst SecretInput = memo(\n ({ value, onFocus, isPasswordFilled, onBlur, ...props }) => {\n const [focused, setFocused] = useState(false)\n const placeholder = '⚬ ⚬ ⚬ This field is set ⚬ ⚬ ⚬'\n const innerOnFocus = event => {\n setFocused(true)\n onFocus && onFocus(event)\n }\n\n const innerOnBlur = event => {\n setFocused(false)\n onBlur && onBlur(event)\n }\n\n return (\n \n )\n }\n)\n\nexport default SecretInput\n","import Switch from '@material-ui/core/Switch'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React, { memo } from 'react'\n\nimport {\n secondaryColor,\n offColor,\n disabledColor,\n disabledColor2\n} from '../../../styling/variables'\n\nconst useStyles = makeStyles(theme => ({\n root: {\n width: 32,\n height: 20,\n padding: 0,\n margin: theme.spacing(1)\n },\n switchBase: {\n padding: 2,\n '&$disabled': {\n color: disabledColor2,\n '& + $track': {\n backgroundColor: disabledColor,\n opacity: 1\n }\n },\n '&$checked': {\n transform: 'translateX(58%)',\n color: theme.palette.common.white,\n '&$disabled': {\n color: disabledColor2\n },\n '& + $track': {\n backgroundColor: secondaryColor,\n opacity: 1,\n border: 'none'\n }\n },\n '&$focusVisible $thumb': {\n border: '6px solid #fff',\n boxShadow: '0 0 4px 0 rgba(0,0,0,0.24)'\n }\n },\n thumb: {\n width: 16,\n height: 16\n },\n track: {\n borderRadius: 17,\n border: 'none',\n backgroundColor: offColor,\n opacity: 1,\n transition: theme.transitions.create(['background-color', 'border'])\n },\n disabled: {},\n checked: {},\n focusVisible: {}\n}))\n\nconst SwitchInput = memo(({ ...props }) => {\n const classes = useStyles()\n return (\n \n )\n})\n\nexport default SwitchInput\n","import { makeStyles } from '@material-ui/core'\nimport { ToggleButtonGroup as MUIToggleButtonGroup } from '@material-ui/lab'\nimport ToggleButton from '@material-ui/lab/ToggleButton'\nimport React from 'react'\n\nimport { H4, P } from 'src/components/typography'\nimport { backgroundColor, comet } from 'src/styling/variables'\nconst styles = {\n noTextTransform: {\n textTransform: 'none'\n },\n flex: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'start',\n width: '90%',\n overflow: 'hidden',\n maxHeight: 80\n },\n buttonTextContent: {\n marginLeft: 32,\n textTransform: 'none',\n textAlign: 'left'\n },\n button: {\n backgroundColor: backgroundColor,\n marginBottom: 16\n },\n paragraph: {\n color: comet,\n marginTop: -10\n }\n}\n\nconst useStyles = makeStyles(styles)\nconst ToggleButtonGroup = ({\n name,\n orientation = 'vertical',\n value,\n exclusive = true,\n onChange,\n size = 'small',\n ...props\n}) => {\n const classes = useStyles()\n return (\n \n {props.options.map(option => {\n return (\n \n \n
\n
\n
{option.title} \n
{option.description}
\n
\n
\n \n )\n })}\n \n )\n}\n\nexport default ToggleButtonGroup\n","import { useFormikContext } from 'formik'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { Autocomplete } from '../base'\n\nconst AutocompleteFormik = ({ options, onChange, ...props }) => {\n const [open, setOpen] = useState(false)\n\n const { name, onBlur, value } = props.field\n const { touched, errors, setFieldValue, setFieldTouched } = props.form\n const error = !!(touched[name] && errors[name])\n const { initialValues, values } = useFormikContext()\n\n const innerOptions =\n R.type(options) === 'Function' ? options(initialValues, values) : options\n\n const innerOnBlur = event => {\n name && setFieldTouched(name, true)\n onBlur && onBlur(event)\n }\n\n const onChangeHandler = value => setFieldValue(name, value)\n const shouldStayOpen = !!props.shouldStayOpen\n\n return (\n {\n if (onChange) return onChange(value, item, onChangeHandler)\n setFieldValue(name, item)\n }}\n onBlur={innerOnBlur}\n value={value}\n error={error}\n open={open}\n options={innerOptions}\n onOpen={() => {\n if (!props.multiple) return setOpen(true)\n setOpen(value?.length !== props.limit)\n }}\n onClose={(event, reason) => {\n if (shouldStayOpen && reason !== 'blur') setOpen(true)\n else setOpen(false)\n }}\n {...props}\n />\n )\n}\n\nexport default AutocompleteFormik\n","import Chip from '@material-ui/core/Chip'\nimport { withStyles } from '@material-ui/core/styles'\nimport React, { memo } from 'react'\n\nimport {\n fontColor,\n inputFontWeight,\n subheaderColor,\n smallestFontSize,\n inputFontFamily\n} from 'src/styling/variables'\n\nconst styles = theme => ({\n root: {\n backgroundColor: subheaderColor,\n borderRadius: 4,\n margin: theme.spacing(0.5, 0.25),\n height: 18\n },\n label: {\n fontSize: smallestFontSize,\n color: fontColor,\n fontWeight: inputFontWeight,\n fontFamily: inputFontFamily,\n paddingRight: 4,\n paddingLeft: 4\n }\n})\n\nconst LsChip = memo(({ classes, ...props }) => (\n \n))\n\nexport default withStyles(styles)(LsChip)\n","import * as R from 'ramda'\n\nconst isValidNumber = R.both(R.is(Number), R.complement(R.equals(NaN)))\n\nconst transformNumber = value => (isValidNumber(value) ? value : null)\n\nconst defaultToZero = value =>\n isValidNumber(parseInt(value)) ? parseInt(value) : 0\n\nconst numberToFiatAmount = value =>\n value.toLocaleString('en-US', { maximumFractionDigits: 2 })\n\nexport { defaultToZero, transformNumber, numberToFiatAmount }\n","import { spacer, tomato, primaryColor as zodiac } from 'src/styling/variables'\n\nconst colors = {\n cashOut: {\n empty: tomato,\n full: zodiac\n },\n cashIn: {\n empty: zodiac,\n full: tomato\n }\n}\n\nconst colorPicker = ({ cashOut, applyColorVariant, isLow }) => {\n return colors[cashOut ? 'cashOut' : 'cashIn'][\n applyColorVariant || !isLow ? 'full' : 'empty'\n ]\n}\n\nconst cashboxStyles = {\n cashbox: {\n borderColor: colorPicker,\n backgroundColor: colorPicker,\n height: 118,\n width: ({ width }) => width ?? 80,\n border: '2px solid',\n textAlign: 'end',\n display: 'inline-block'\n },\n fiatBalanceAlertCashbox: {\n borderColor: colorPicker,\n backgroundColor: colorPicker,\n height: 118,\n width: 80,\n border: '4px solid'\n },\n emptyPart: {\n backgroundColor: 'white',\n height: ({ percent }) => `${100 - percent}%`,\n position: 'relative',\n '& > p': {\n color: colorPicker,\n display: 'inline-block',\n position: 'absolute',\n margin: 0,\n bottom: 0,\n right: 0\n }\n },\n fullPart: {\n backgroundColor: colorPicker,\n '& > p': {\n color: 'white',\n display: 'inline'\n }\n }\n}\n\nconst gridStyles = {\n row: {\n display: 'flex'\n },\n innerRow: {\n display: 'flex',\n justifyContent: 'flex-start'\n },\n col2: {\n marginLeft: 14\n },\n noMarginText: {\n marginTop: 0,\n marginBottom: 0\n },\n link: {\n marginTop: spacer\n },\n chip: {\n margin: [[0, 0, 0, 7]]\n }\n}\n\nexport { cashboxStyles, gridStyles }\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport Chip from 'src/components/Chip'\nimport { Info2, Label1, Label2 } from 'src/components/typography'\nimport { numberToFiatAmount } from 'src/utils/number'\n\nimport { cashboxStyles, gridStyles } from './Cashbox.styles'\n\nconst cashboxClasses = makeStyles(cashboxStyles)\nconst gridClasses = makeStyles(gridStyles)\n\nconst Cashbox = ({\n percent = 0,\n cashOut = false,\n width,\n className,\n emptyPartClassName,\n labelClassName,\n applyColorVariant,\n applyFiatBalanceAlertsStyling,\n omitInnerPercentage,\n isLow\n}) => {\n const classes = cashboxClasses({\n percent,\n cashOut,\n width,\n applyColorVariant,\n isLow\n })\n const ltHalf = percent <= 51\n\n const showCashBox = {\n [classes.fiatBalanceAlertCashbox]: applyFiatBalanceAlertsStyling,\n [classes.cashbox]: !applyFiatBalanceAlertsStyling\n }\n\n return (\n \n
\n {!omitInnerPercentage && ltHalf && (\n {percent.toFixed(0)}% \n )}\n
\n
\n {!omitInnerPercentage && !ltHalf && (\n {percent.toFixed(0)}% \n )}\n
\n
\n )\n}\n\n// https://support.lamassu.is/hc/en-us/articles/360025595552-Installing-the-Sintra-Forte\n// Sintra and Sintra Forte can have up to 500 notes per cashOut box and up to 1000 per cashIn box\nconst CashIn = ({ currency, notes, total }) => {\n const classes = gridClasses()\n return (\n <>\n \n
\n
\n {notes} notes \n
\n
\n \n {total} {currency.code}\n \n
\n
\n
\n >\n )\n}\n\nconst CashOut = ({\n capacity = 500,\n denomination = 0,\n currency,\n notes,\n className,\n editingMode = false,\n threshold,\n width\n}) => {\n const percent = (100 * notes) / capacity\n const isLow = percent < threshold\n const classes = gridClasses()\n return (\n <>\n \n
\n \n
\n {!editingMode && (\n
\n
\n {notes} \n \n
\n
\n \n {numberToFiatAmount(notes * denomination)} {currency.code}\n \n
\n
\n )}\n
\n >\n )\n}\n\nexport { Cashbox, CashIn, CashOut }\n","import { makeStyles } from '@material-ui/core'\nimport classNames from 'classnames'\nimport React, { memo, useState } from 'react'\n\nimport { CashOut } from 'src/components/inputs/cashbox/Cashbox'\n\nimport { NumberInput } from '../base'\nconst useStyles = makeStyles({\n flex: {\n display: 'flex'\n },\n cashCassette: {\n height: 36,\n marginRight: 14\n }\n})\n\nconst CashCassetteInput = memo(\n ({ decimalPlaces, width, threshold, inputClassName, ...props }) => {\n const classes = useStyles()\n const { name, onChange, onBlur, value } = props.field\n const { touched, errors } = props.form\n const [notes, setNotes] = useState(value)\n const error = !!(touched[name] && errors[name])\n return (\n \n \n {\n setNotes(e.target.value)\n return onChange(e)\n }}\n onBlur={onBlur}\n value={value}\n error={error}\n decimalPlaces={decimalPlaces}\n {...props}\n />\n
\n )\n }\n)\n\nexport default CashCassetteInput\n","import React, { memo } from 'react'\n\nimport { Checkbox } from '../base'\n\nconst CheckboxInput = memo(\n ({\n label,\n textAlign,\n fullWidth,\n enabled = true,\n disabledMessage = '',\n ...props\n }) => {\n const { name, onChange, value = true } = props.field\n\n const settings = {\n enabled: enabled,\n label: label,\n disabledMessage: disabledMessage\n }\n\n return (\n \n )\n }\n)\n\nexport default CheckboxInput\n","import React, { memo } from 'react'\n\nimport { Dropdown } from '../base'\n\nconst RadioGroupFormik = memo(({ label, ...props }) => {\n const { name, value } = props.field\n const { setFieldValue } = props.form\n return (\n {\n setFieldValue(name, e.target.value)\n props.resetError && props.resetError()\n }}\n className={props.className}\n {...props}\n />\n )\n})\n\nexport default RadioGroupFormik\n","import React, { memo } from 'react'\n\nimport { NumberInput } from '../base'\n\nconst NumberInputFormik = memo(({ decimalPlaces, ...props }) => {\n const { name, onChange, onBlur, value } = props.field\n const { touched, errors } = props.form\n\n const error = !!(touched[name] && errors[name])\n\n return (\n \n )\n})\n\nexport default NumberInputFormik\n","import React, { memo } from 'react'\n\nimport { RadioGroup } from '../base'\n\nconst RadioGroupFormik = memo(({ label, ...props }) => {\n const { name, onChange, value } = props.field\n\n return (\n {\n onChange(e)\n props.resetError && props.resetError()\n }}\n className={props.className}\n {...props}\n />\n )\n})\n\nexport default RadioGroupFormik\n","import React, { memo } from 'react'\r\n\r\nimport { SecretInput } from '../base'\r\n\r\nconst SecretInputFormik = memo(({ isPasswordFilled, ...props }) => {\r\n const { name, onChange, onBlur, value } = props.field\r\n const { touched, errors } = props.form\r\n\r\n const error = !isPasswordFilled && !!(touched[name] && errors[name])\r\n\r\n return (\r\n \r\n )\r\n})\r\n\r\nexport default SecretInputFormik\r\n","import React, { memo } from 'react'\n\nimport { TextInput } from '../base'\n\nconst TextInputFormik = memo(({ ...props }) => {\n const { name, onChange, onBlur, value } = props.field\n const { touched, errors } = props.form\n\n const error = !!(touched[name] && errors[name])\n\n return (\n \n )\n})\n\nexport default TextInputFormik\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/stage/zodiac/complete\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n stroke: \"#1B2559\",\n transform: \"translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) \",\n cx: 9,\n cy: 9,\n r: 8\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.80983711,12 C7.54819546,12 7.28655382,11.9032616 7.08725647,11.710772 L5.29971255,9.98428824 C4.90009582,9.59832189 4.90009582,8.97445811 5.29971255,8.58849175 C5.69932929,8.2025254 6.34525711,8.2025254 6.74487384,8.58849175 L7.80983711,9.61707728 L11.2551262,6.28947477 C11.6547429,5.90350841 12.3016927,5.90350841 12.7002874,6.28947477 C13.0999042,6.674454 13.0999042,7.2993049 12.7002874,7.68527125 L8.53241776,11.710772 C8.33312041,11.9032616 8.07147876,12 7.80983711,12\",\n id: \"Path\",\n fill: \"#1B2559\"\n}));\n\nfunction SvgComplete(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"18px\",\n viewBox: \"0 0 18 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgComplete);\nexport default __webpack_public_path__ + \"static/media/complete.99ba27f3.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/stage/zodiac/current\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-2-Copy\",\n fill: \"#1B2559\",\n cx: 9,\n cy: 9,\n r: 4\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-Copy-5\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n transform: \"translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) \",\n cx: 9,\n cy: 9,\n r: 8\n}));\n\nfunction SvgCurrent(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"18px\",\n viewBox: \"0 0 18 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCurrent);\nexport default __webpack_public_path__ + \"static/media/current.68045777.svg\";\nexport { ForwardRef as ReactComponent };","import typographyStyles from 'src/components/typography/styles'\nimport { respondTo } from 'src/styling/helpers'\nimport {\n primaryColor,\n spacer,\n placeholderColor,\n zircon,\n xxl\n} from 'src/styling/variables'\n\nconst { tl2, p } = typographyStyles\n\nconst sidebarColor = zircon\n\nexport default {\n sidebar: {\n display: 'flex',\n backgroundColor: sidebarColor,\n width: 520,\n marginLeft: -300,\n boxShadow: `-500px 0px 0px 0px ${sidebarColor}`,\n borderRadius: '0 20px 0 0',\n alignItems: 'flex-end',\n padding: spacer * 3,\n flexDirection: 'column',\n [respondTo(xxl)]: {\n width: 'auto',\n marginLeft: 0,\n minWidth: 250,\n boxShadow: `-200px 0px 0px 0px ${sidebarColor}`\n }\n },\n linkWrapper: {\n cursor: 'pointer'\n },\n link: {\n extend: p,\n position: 'relative',\n color: placeholderColor,\n margin: '12px 24px 12px 0',\n cursor: 'pointer',\n '&:hover::after': {\n height: '140%'\n },\n '&:after': {\n content: '\"\"',\n display: 'block',\n background: primaryColor,\n width: 4,\n height: 0,\n left: '100%',\n marginLeft: 20,\n bottom: -2,\n position: 'absolute',\n borderRadius: 1000,\n transition: 'all 0.2s cubic-bezier(0.95, 0.1, 0.45, 0.94)'\n }\n },\n activeLink: {\n extend: tl2,\n color: primaryColor,\n '&::after': {\n height: '140%'\n }\n },\n customRenderLink: {\n '&:hover::after': {\n height: '100%'\n },\n '&:after': {\n bottom: 0\n }\n },\n customRenderActiveLink: {\n '&::after': {\n height: '100%'\n }\n },\n item: {\n position: 'relative',\n margin: '12px 0 12px 0',\n display: 'flex'\n },\n itemText: {\n extend: p,\n color: placeholderColor,\n marginRight: 24\n },\n itemTextActive: {\n extend: tl2,\n color: primaryColor\n },\n itemTextPast: {\n color: primaryColor\n },\n stepperPath: {\n position: 'absolute',\n height: 25,\n width: 1,\n border: [[1, 'solid', placeholderColor]],\n right: 8,\n top: 18\n },\n stepperPast: {\n border: [[1, 'solid', primaryColor]]\n }\n}\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport { P } from 'src/components/typography'\nimport { ReactComponent as CompleteStageIconZodiac } from 'src/styling/icons/stage/zodiac/complete.svg'\nimport { ReactComponent as CurrentStageIconZodiac } from 'src/styling/icons/stage/zodiac/current.svg'\nimport { ReactComponent as EmptyStageIconZodiac } from 'src/styling/icons/stage/zodiac/empty.svg'\n\nimport styles from './Sidebar.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst Sidebar = ({\n data,\n displayName,\n isSelected,\n onClick,\n children,\n itemRender,\n loading = false\n}) => {\n const classes = useStyles()\n\n return (\n \n {loading &&
Loading...
}\n {!loading &&\n data?.map((it, idx) => (\n
onClick(it)}>\n
\n {itemRender ? itemRender(it, isSelected(it)) : displayName(it)}\n
\n
\n ))}\n {!loading && children}\n
\n )\n}\n\nexport default Sidebar\n\nconst Stepper = ({ step, it, idx, steps }) => {\n const classes = useStyles()\n const active = step === idx\n const past = idx < step\n const future = idx > step\n\n return (\n \n
\n {it.label}\n \n {active &&
}\n {past &&
}\n {future &&
}\n {idx < steps.length - 1 && (\n
\n )}\n
\n )\n}\n\nexport { Stepper }\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/ID/photo/new/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12,14 C9.7912,14 8,12.2088 8,10 C8,7.7912 9.7912,6 12,6 C14.2088,6 16,7.7912 16,10 C16,12.2088 14.2088,14 12,14 Z M16.7142857,3.4 L14.3571429,1 L9.64285714,1 L7.28571429,3.4 L1,3.4 L1,17 L23,17 L23,3.4 L16.7142857,3.4 Z\",\n id: \"Stroke-1\",\n stroke: \"#1B2559\",\n strokeWidth: 1.6\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"24px\",\n height: \"18px\",\n viewBox: \"0 0 24 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/ID/photo/new/zodiac\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.088002a2.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n}, \"\\n\\t.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#1B2559;}\\n\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"color_x2F_primary_x2F_zodiac\",\n transform: \"translate(-0.000000, 0.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Mask\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"path-1_1_\",\n className: \"st0\",\n d: \"M11.1,9l6.5,6.5c0.6,0.6,0.6,1.5,0,2.1c-0.3,0.3-0.7,0.4-1.1,0.4c-0.4,0-0.8-0.2-1.1-0.4 L9,11.1l-6.5,6.5C2.3,17.8,1.9,18,1.5,18c-0.4,0-0.8-0.2-1.1-0.4c-0.6-0.6-0.6-1.5,0-2.1L6.9,9L0.4,2.5C-0.1,2-0.1,1,0.4,0.4 C1-0.1,2-0.1,2.5,0.4L9,6.9l6.5-6.5c0.6-0.6,1.5-0.6,2.1,0c0.6,0.6,0.6,1.5,0,2.1L11.1,9z\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 18 18\",\n style: {\n enableBackground: \"new 0 0 18 18\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.5547e32c.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/stage/spring/complete\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n stroke: \"#48F694\",\n strokeWidth: 2,\n transform: \"translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) \",\n cx: 9,\n cy: 9,\n r: 8\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.80983711,12 C7.54819546,12 7.28655382,11.9032616 7.08725647,11.710772 L5.29971255,9.98428824 C4.90009582,9.59832189 4.90009582,8.97445811 5.29971255,8.58849175 C5.69932929,8.2025254 6.34525711,8.2025254 6.74487384,8.58849175 L7.80983711,9.61707728 L11.2551262,6.28947477 C11.6547429,5.90350841 12.3016927,5.90350841 12.7002874,6.28947477 C13.0999042,6.674454 13.0999042,7.2993049 12.7002874,7.68527125 L8.53241776,11.710772 C8.33312041,11.9032616 8.07147876,12 7.80983711,12\",\n id: \"Path\",\n fill: \"#48F694\"\n}));\n\nfunction SvgComplete(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"18px\",\n viewBox: \"0 0 18 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgComplete);\nexport default __webpack_public_path__ + \"static/media/complete.d94d5045.svg\";\nexport { ForwardRef as ReactComponent };","import typographyStyles from 'src/components/typography/styles'\nimport {\n placeholderColor,\n backgroundColor,\n primaryColor,\n mainWidth,\n spring2,\n spring3,\n errorColor\n} from 'src/styling/variables'\n\nconst { tl2, p } = typographyStyles\n\nconst fill = '100%'\nconst flexDirection = 'column'\n\nconst styles = {\n dialog: {\n backgroundColor,\n width: fill,\n minHeight: fill,\n display: 'flex',\n flexDirection,\n padding: 0\n },\n wrapper: {\n width: mainWidth,\n height: fill,\n margin: '0 auto',\n flex: 1,\n display: 'flex',\n flexDirection\n },\n contentDiv: {\n display: 'flex',\n flex: 1,\n flexDirection: 'row'\n },\n headerDiv: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center'\n },\n contentWrapper: {\n marginLeft: 48\n },\n button: {\n marginTop: 64\n },\n nameTitle: {\n marginTop: 16,\n marginBottom: 25\n },\n qrTitle: {\n marginTop: 12,\n marginBottom: 40\n },\n qrCodeWrapper: {\n display: 'flex'\n },\n qrTextInfoWrapper: {\n display: 'flex',\n flexDirection: 'row'\n },\n qrTextWrapper: {\n width: 381,\n marginLeft: 80,\n display: 'flex',\n flexDirection: 'column'\n },\n textWrapper: {\n display: 'flex',\n flexDirection: 'column'\n },\n qrTextIcon: {\n marginRight: 16\n },\n qrText: {\n marginTop: 0\n },\n item: {\n position: 'relative',\n margin: '12px 0 12px 0',\n display: 'flex'\n },\n itemText: {\n extend: p,\n color: placeholderColor,\n marginRight: 24\n },\n itemTextActive: {\n extend: tl2,\n color: primaryColor\n },\n itemTextPast: {\n color: primaryColor\n },\n stepperPath: {\n position: 'absolute',\n height: 25,\n width: 1,\n border: [[1, 'solid', placeholderColor]],\n right: 8,\n top: 18\n },\n stepperPast: {\n border: [[1, 'solid', primaryColor]]\n },\n successMessageWrapper: {\n backgroundColor: spring3,\n display: 'flex',\n flexDirection: 'row',\n padding: '0px 10px',\n borderRadius: '8px'\n },\n successMessage: {\n color: spring2,\n margin: '8px 0px'\n },\n successMessageIcon: {\n marginRight: 16,\n marginBottom: 2,\n display: 'flex',\n flexDirection: 'col',\n alignItems: 'center'\n },\n errorMessage: {\n color: errorColor\n },\n qrCodeImageWrapper: {\n display: 'flex',\n flexDirection: 'column',\n backgroundColor: 'white',\n border: `5px solid ${primaryColor}`,\n padding: 5,\n borderRadius: 15\n },\n qrCodeScanMessage: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n margin: [[0, 0, 20, 20]],\n '& > p': {\n marginLeft: 10\n }\n }\n}\n\nexport default styles\n","import { useMutation, useQuery } from '@apollo/react-hooks'\nimport { Dialog, DialogContent, SvgIcon, IconButton } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport { Form, Formik, FastField } from 'formik'\nimport gql from 'graphql-tag'\nimport QRCode from 'qrcode.react'\nimport * as R from 'ramda'\nimport React, { memo, useState, useEffect, useRef } from 'react'\nimport * as Yup from 'yup'\n\nimport Title from 'src/components/Title'\nimport { Button } from 'src/components/buttons'\nimport { TextInput } from 'src/components/inputs/formik'\nimport Sidebar from 'src/components/layout/Sidebar'\nimport { Info2, P } from 'src/components/typography'\nimport { ReactComponent as CameraIcon } from 'src/styling/icons/ID/photo/zodiac.svg'\nimport { ReactComponent as CloseIcon } from 'src/styling/icons/action/close/zodiac.svg'\nimport { ReactComponent as CompleteStageIconSpring } from 'src/styling/icons/stage/spring/complete.svg'\nimport { ReactComponent as CompleteStageIconZodiac } from 'src/styling/icons/stage/zodiac/complete.svg'\nimport { ReactComponent as CurrentStageIconZodiac } from 'src/styling/icons/stage/zodiac/current.svg'\nimport { ReactComponent as EmptyStageIconZodiac } from 'src/styling/icons/stage/zodiac/empty.svg'\nimport { ReactComponent as WarningIcon } from 'src/styling/icons/warning-icon/comet.svg'\nimport { primaryColor } from 'src/styling/variables'\n\nimport styles from './styles'\n\nconst SAVE_CONFIG = gql`\n mutation createPairingTotem($name: String!) {\n createPairingTotem(name: $name)\n }\n`\nconst GET_MACHINES = gql`\n {\n machines {\n name\n deviceId\n }\n }\n`\n\nconst useStyles = makeStyles(styles)\n\nconst getSize = R.compose(R.length, R.pathOr([], ['machines']))\n\nconst QrCodeComponent = ({ classes, qrCode, name, count, onPaired }) => {\n const timeout = useRef(null)\n const CLOSE_SCREEN_TIMEOUT = 2000\n const { data } = useQuery(GET_MACHINES, { pollInterval: 10000 })\n\n useEffect(() => {\n return () => {\n if (timeout.current) {\n clearTimeout(timeout.current)\n }\n }\n }, [])\n\n const addedMachine = data?.machines?.find(m => m.name === name)\n const hasNewMachine = getSize(data) > count && addedMachine\n if (hasNewMachine) {\n timeout.current = setTimeout(\n () => onPaired(addedMachine),\n CLOSE_SCREEN_TIMEOUT\n )\n }\n\n return (\n <>\n \n Scan QR code with your new cryptomat\n \n \n
\n
\n
\n
\n
Snap a picture and scan
\n
\n
\n
\n
\n
\n \n
\n
\n
\n To pair the machine you need scan the QR code with your machine.\n To do this either snap a picture of this QR code or download it\n through the button above and scan it with the scanning bay on\n your machine.\n
\n
\n
\n {hasNewMachine && (\n
\n
\n \n
\n
\n Machine has been successfully paired!\n \n
\n )}\n
\n
\n >\n )\n}\n\nconst initialValues = {\n name: ''\n}\n\nconst validationSchema = Yup.object().shape({\n name: Yup.string()\n .required('Machine name is required.')\n .max(50)\n .test(\n 'unique-name',\n 'Machine name is already in use.',\n (value, context) => !context.options.context.machineNames.includes(value)\n )\n})\n\nconst MachineNameComponent = ({ nextStep, classes, setQrCode, setName }) => {\n const [register] = useMutation(SAVE_CONFIG, {\n onCompleted: ({ createPairingTotem }) => {\n if (process.env.NODE_ENV === 'development') {\n console.log(`totem: \"${createPairingTotem}\" `)\n }\n setQrCode(createPairingTotem)\n nextStep()\n },\n onError: e => console.log(e)\n })\n\n const { data } = useQuery(GET_MACHINES)\n const machineNames = R.map(R.prop('name'), data?.machines || {})\n\n const uniqueNameValidator = value => {\n try {\n validationSchema.validateSync(value, {\n context: { machineNames: machineNames }\n })\n } catch (error) {\n return error\n }\n }\n\n return (\n <>\n \n Machine Name (ex: Coffee shop 01)\n \n {\n setName(name)\n register({ variables: { name } })\n }}>\n {({ errors }) => (\n \n )}\n \n >\n )\n}\n\nconst steps = [\n {\n label: 'Machine name',\n component: MachineNameComponent\n },\n {\n label: 'Scan QR code',\n component: QrCodeComponent\n }\n]\n\nconst renderStepper = (step, it, idx, classes) => {\n const active = step === idx\n const past = idx < step\n const future = idx > step\n\n return (\n \n
\n {it.label}\n \n {active &&
}\n {past &&
}\n {future &&
}\n {idx < steps.length - 1 && (\n
\n )}\n
\n )\n}\n\nconst AddMachine = memo(({ close, onPaired }) => {\n const classes = useStyles()\n const { data } = useQuery(GET_MACHINES)\n const [qrCode, setQrCode] = useState('')\n const [name, setName] = useState('')\n const [step, setStep] = useState(0)\n const count = getSize(data)\n\n const Component = steps[step].component\n\n return (\n \n
\n \n \n
\n
Add Machine \n \n \n \n \n \n \n
\n
\n {steps.map((it, idx) => renderStepper(step, it, idx, classes))}\n \n
\n setStep(1)}\n count={count}\n onPaired={onPaired}\n qrCode={qrCode}\n setQrCode={setQrCode}\n name={name}\n setName={setName}\n />\n
\n
\n
\n \n \n
\n )\n})\n\nexport default AddMachine\n","import AddMachine from './AddMachine'\n\nexport default AddMachine\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/add/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.5384615,6 C11.5384615,9.05815385 9.05815385,11.5384615 6,11.5384615 C2.94184615,11.5384615 0.461538462,9.05815385 0.461538462,6 C0.461538462,2.94184615 2.94184615,0.461538462 6,0.461538462 C9.05815385,0.461538462 11.5384615,2.94184615 11.5384615,6 Z\",\n id: \"Stroke-1\",\n stroke: \"#FFFFFF\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 6,\n y1: 3.69230769,\n x2: 6,\n y2: 8.30769231,\n id: \"Stroke-3\",\n stroke: \"#FFFFFF\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 3.69230769,\n y1: 6,\n x2: 8.30769231,\n y2: 6,\n id: \"Stroke-5\",\n stroke: \"#FFFFFF\"\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.cc7667ff.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.8413132,12.8764646 C17.8413132,12.8764646 16.6555879,12.5091919 15.661533,12.2855556 C15.661533,12.2855556 15.3477198,10.3246465 14.8939121,8.23646465 C14.8939121,8.23646465 15.1560495,8.21373737 15.3383242,8.8710101 L16.0223242,12.0219192 C16.0223242,12.0219192 17.2343571,12.2991919 18.1795549,12.6537374 L17.8413132,12.8764646 Z M15.2603407,6.10282828 L15.5328132,5.80555556 C16.0627253,5.87828283 16.3483516,6.02828283 16.3483516,6.02828283 L16.291978,6.11191919 L16.3972088,6.9310101 C16.2440604,6.93646465 16.0091703,7.05919192 16.0091703,7.05919192 L15.8315934,6.95010101 L15.8315934,6.38282828 C15.3026209,6.29919192 15.2556429,6.21828283 15.2556429,6.21828283 L15.2603407,6.10282828 Z M12.4557527,18.2873737 C11.2831813,18.4964646 9.84565385,18.2237374 9.84565385,18.2237374 L9.89732967,17.9991919 C9.89732967,17.9991919 11.6496099,18.1955556 12.6248736,17.8973737 C12.5553462,18.0628283 12.5356154,18.1137374 12.4557527,18.2873737 L12.4557527,18.2873737 Z M9.18984066,14.5464646 C8.379,15.1364646 7.56064286,15.6791919 7.00442308,16.1091919 C6.9705989,16.6955556 6.91516484,17.6464646 6.91516484,17.6464646 L5.46448352,18.5182828 L5.22207692,18.3737374 C5.27845055,17.9219192 5.34891758,17.5882828 5.34891758,17.5882828 L5.55186264,17.4410101 C5.50676374,17.7282828 5.48515385,18.1346465 5.48515385,18.1346465 L6.5928956,17.440101 C6.63705495,16.7019192 6.72443407,15.960101 6.72443407,15.960101 C6.9705989,15.7373737 8.73697253,14.5237374 10.0100803,13.6864646 C10.0100803,13.6864646 10.018533,13.9437374 9.18984066,14.5464646 L9.18984066,14.5464646 Z M14.977533,0.195555556 C15.2612802,0.167373737 15.5065055,0.184646465 15.7103901,0.228282828 L15.7103901,0.228282828 L15.8813901,0.697373737 L16.1003077,0.361919192 C16.2694286,0.447373737 16.3746593,0.547373737 16.4056648,0.624646465 C16.4056648,0.624646465 16.3615055,0.909191919 16.4319725,1.36464646 C16.5005604,1.80373737 16.6988077,2.78191919 16.6988077,2.78191919 C16.9740989,3.00646465 17.2850934,3.51282828 17.2850934,3.51282828 C17.4758242,4.41737374 17.4645495,5.04919192 17.4636099,5.1210101 C16.6734396,4.68646465 15.6173736,4.58555556 15.6173736,4.58555556 L15.6173736,4.58555556 L15.2481264,4.90828283 C15.9753462,5.00828283 16.8792033,5.26555556 17.1122143,5.44555556 C17.2484505,5.74737374 17.3386484,6.22828283 17.3386484,6.22828283 L17.3386484,6.22828283 L17.0445659,6.58919192 L17.3198571,6.8810101 C17.3386484,7.22464646 17.2183846,7.56919192 17.2183846,7.56919192 C17.7905769,7.93010101 17.9512418,8.79373737 18.3101538,10.250101 C18.6700055,11.7064646 18.9903956,12.9055556 18.9903956,12.9055556 L18.9903956,12.9055556 L18.4567253,13.2019192 C19.1623352,15.7282828 18.444511,17.7391919 17.5378352,19.0664646 C16.6320989,20.3946465 16.0862143,21.7137374 16.1031264,22.8910101 L16.1031264,22.8910101 L16.5475385,23.2346465 L16.7749121,23.9491919 L14.3048077,23.9491919 L14.293533,23.2728283 C14.2925934,21.5619192 14.9230385,20.1328283 14.9230385,20.1328283 C15.2857088,20.0473737 15.6596538,19.7628283 15.6596538,19.7628283 C15.0733681,19.8828283 14.3414505,19.7964646 14.3414505,19.7964646 C14.8676044,18.8537374 15.0292088,18.1773737 15.0292088,18.1773737 L15.0292088,18.1773737 L14.7811648,18.1228283 C14.6956648,18.310101 14.6073462,18.4937374 14.5133901,18.6710101 C13.8754286,19.8864646 13.1735769,20.6628283 12.7554725,22.4055556 L12.7554725,22.4055556 L13.1933077,22.7455556 L13.6987912,23.9491919 L10.8509835,23.9491919 C10.8340714,21.8246465 11.495522,20.2273737 11.7341703,19.7628283 C10.2233571,19.9264646 8.42128022,19.1782828 6.99314835,19.4664646 C6.60041209,21.9473737 4.59257143,22.4355556 3.65019231,22.300101 L3.65019231,22.300101 L2.97652747,23.4146465 L3.58724176,23.9491919 L1.33135714,23.9491919 C1.32008242,23.8546465 1.2918956,23.7537374 1.22988462,23.6591919 C1.22988462,23.6591919 1.97401648,22.5882828 2.48231868,21.150101 C2.89008791,21.3255556 3.75166484,20.9928283 3.78736813,20.1055556 C3.82401099,19.2191919 3.67086264,17.8419192 4.46854945,16.7891919 C5.2652967,15.7355556 6.12687363,15.1655556 7.25152747,14.3328283 C7.98250549,13.7910101 9.22084615,12.8755556 9.99974176,12.3010101 L9.99974176,12.3010101 L9.61546154,12.3864646 L6.81087363,14.6491919 L5.82997253,14.6491919 L8.66368681,12.1164646 L8.29725824,12.1091919 L5.33576374,14.6491919 L4.34170879,14.6491919 L7.27313736,11.720101 L6.9208022,11.7173737 L3.88038462,14.6491919 L2.86565934,14.6491919 L5.8093022,11.3037374 L5.46918132,11.3055556 L2.43534066,14.6491919 L1.36706044,14.6491919 L4.22614286,10.8528283 L3.89635714,10.8573737 L0.963989011,14.6491919 L0,14.6491919 C0,14.6491919 4.11809341,8.22464646 4.92893407,7.00737374 C5.73883516,5.79010101 6.6192033,4.62282828 8.06894505,4.38464646 C9.53465934,4.14282828 10.5343516,4.46646465 11.2502967,5.63373737 C11.636456,6.2610101 12.1034176,6.97828283 12.4698462,7.55919192 C12.0968407,8.1510101 11.6298791,8.6110101 11.5857198,9.32282828 C11.534044,10.1419192 12.0921429,10.6373737 12.6558791,10.6773737 C12.2321374,10.5282828 11.8976538,10.0337374 12.0489231,9.37646465 C12.2058297,8.69737374 12.7554725,8.35191919 13.1726374,7.80282828 C13.5315495,7.32828283 13.5371868,6.63282828 13.5108791,6.4010101 C13.4836319,6.16919192 13.2167967,5.98828283 13.2167967,5.98828283 C13.2167967,5.98828283 13.2252527,5.52373737 13.2167967,5.01646465 C13.2083407,4.51010101 13.4300769,4.21828283 13.4300769,4.21828283 C13.4300769,4.21828283 13.4216209,3.4610101 13.3943736,2.57646465 C13.3671264,1.72555556 13.2863242,1.46828283 13.205522,1.35464646 C13.205522,1.35464646 13.2694121,1.10919192 13.5099396,0.844646465 L13.5099396,0.844646465 L13.7542253,1.06282828 L13.8284505,0.571919192 C13.9825385,0.469191919 14.1723297,0.375555556 14.4072198,0.307373737 C14.4325879,0.30010101 14.4570165,0.294646465 14.4823846,0.288282828 L14.4823846,0.288282828 L14.7896209,0.644646465 Z M7.71628243,19.8937938 C8.32897736,19.8402566 9.02386307,19.9393405 9.75797621,20.0432188 L9.75797621,20.0432188 L9.86538462,20.058401 C9.7449004,20.8103202 9.02106112,21.7691969 7.79193531,22.0896215 L7.79193531,22.0896215 L9.01358923,23.5151515 L7.36136769,23.5151515 C7.15589073,23.2226941 6.50396838,22.32135 6.16586538,21.9681638 C6.72065317,21.6525335 7.42954868,21.0388524 7.71628243,19.8937938 Z\",\n id: \"path-1\"\n}));\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"nav-/-primary-/-1440\",\n transform: \"translate(-128.000000, -14.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/lamassu-logo\",\n transform: \"translate(128.000000, 14.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"color/amaz/default\"\n}, /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask-2\",\n fill: \"white\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#path-1\"\n})), /*#__PURE__*/React.createElement(\"use\", {\n id: \"Mask\",\n fill: \"#16D6D3\",\n xlinkHref: \"#path-1\"\n})))));\n\nfunction SvgLogo(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"19px\",\n height: \"24px\",\n viewBox: \"0 0 19 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogo);\nexport default __webpack_public_path__ + \"static/media/logo.8ee79eab.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"nav-/-primary-/-1440\",\n transform: \"translate(-1295.000000, -19.000000)\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/menu/notification\",\n transform: \"translate(1296.000000, 20.000000)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.1052632,14.3157895 C10.1052632,15.2454737 9.35073684,16 8.42105263,16 C7.49136842,16 6.73684211,15.2454737 6.73684211,14.3157895\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.6,14.3157895 C0.7168,14.3157895 0,13.6031813 0,12.7251462 C0,11.8471111 0.7168,11.1345029 1.6,11.1345029 L1.6,6.3625731 C1.6,2.84884211 4.4656,0 8,0 C11.5344,0 14.4,2.84884211 14.4,6.3625731 L14.4,11.1345029 C15.2832,11.1345029 16,11.8471111 16,12.7251462 C16,13.6031813 15.2832,14.3157895 14.4,14.3157895 L1.6,14.3157895 Z\",\n id: \"Stroke-3\",\n strokeLinejoin: \"round\"\n}))));\n\nfunction SvgNotification(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"18px\",\n viewBox: \"0 0 18 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgNotification);\nexport default __webpack_public_path__ + \"static/media/notification.a9712ffd.svg\";\nexport { ForwardRef as ReactComponent };","import typographyStyles from 'src/components/typography/styles'\nimport {\n version,\n mainWidth,\n spacer,\n white,\n primaryColor,\n secondaryColor,\n placeholderColor,\n subheaderColor,\n fontColor\n} from 'src/styling/variables'\n\nconst { p } = typographyStyles\n\nlet headerHeight = spacer * 7\nlet subheaderHeight = spacer * 5\n\nif (version === 8) {\n headerHeight = spacer * 8\n subheaderHeight = spacer * 7\n}\n\nconst styles = {\n headerContainer: {\n position: 'relative'\n },\n header: {\n backgroundColor: primaryColor,\n color: white,\n height: headerHeight,\n display: 'flex'\n },\n content: {\n maxWidth: mainWidth,\n flex: 1,\n display: 'flex',\n alignItems: 'center',\n margin: '0 auto'\n },\n nav: {\n flex: 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between'\n },\n ul: {\n display: 'flex',\n paddingLeft: spacer * 4.5,\n height: spacer * 7,\n margin: 0\n },\n li: {\n // extend: tl2,\n // height: spacer * 7,\n listStyle: 'none',\n color: white,\n margin: [[spacer * 2.5, spacer * 2.5, 0, spacer * 2.5]],\n '&:hover': {\n color: white\n },\n '&:hover::after': {\n width: '50%',\n marginLeft: '-25%'\n },\n position: 'relative',\n '&:after': {\n content: '\"\"',\n display: 'block',\n background: white,\n width: 0,\n height: 4,\n left: '50%',\n marginLeft: 0,\n bottom: -8,\n position: 'absolute',\n borderRadius: 1000,\n transition: [['all', '0.2s', 'cubic-bezier(0.95, 0.1, 0.45, 0.94)']]\n }\n },\n link: {\n extend: p,\n textDecoration: 'none',\n border: 'none',\n color: white,\n backgroundColor: 'transparent'\n },\n forceSize: {\n display: 'inline-block',\n textAlign: 'center',\n '&:after': {\n display: 'block',\n content: 'attr(forcesize)',\n fontWeight: 700,\n height: 0,\n overflow: 'hidden',\n visibility: 'hidden'\n }\n },\n activeLink: {\n color: white,\n '& li::after': {\n width: '50%',\n marginLeft: '-25%'\n }\n },\n addMachine: {\n marginLeft: 'auto'\n },\n subheader: {\n backgroundColor: subheaderColor,\n color: white,\n height: subheaderHeight,\n display: 'flex'\n },\n subheaderUl: {\n display: 'flex',\n paddingLeft: 0,\n margin: 0\n },\n subheaderLi: {\n listStyle: 'none',\n padding: [[0, spacer * 2.5]],\n '&:first-child': {\n paddingLeft: 0\n }\n },\n subheaderLink: {\n extend: p,\n textDecoration: 'none',\n border: 'none',\n color: placeholderColor\n },\n activeSubheaderLink: {\n textShadow: '0.2px 0 0 currentColor',\n color: fontColor\n },\n white: {\n color: white\n },\n logo: {\n display: 'flex',\n alignItems: 'center',\n '& > svg': {\n marginRight: 16\n }\n },\n logoLink: {\n cursor: 'pointer'\n },\n actionButtonsContainer: {\n zIndex: 1,\n position: 'relative',\n display: 'flex',\n justifyContent: 'space-between',\n minWidth: 200,\n transform: 'translateZ(0)'\n },\n notificationIcon: {\n marginTop: spacer / 2,\n cursor: 'pointer',\n background: 'transparent',\n boxShadow: '0px 0px 0px transparent',\n border: '0px solid transparent',\n textShadow: '0px 0px 0px transparent',\n outline: 'none'\n },\n hasUnread: {\n position: 'absolute',\n top: 4,\n left: 186,\n width: '9px',\n height: '9px',\n backgroundColor: secondaryColor,\n borderRadius: '50%'\n },\n popper: {\n zIndex: 1\n }\n}\n\nexport default styles\n","import { useQuery } from '@apollo/react-hooks'\nimport ClickAwayListener from '@material-ui/core/ClickAwayListener'\nimport Popper from '@material-ui/core/Popper'\nimport { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { memo, useState, useEffect, useRef } from 'react'\nimport { NavLink, useHistory } from 'react-router-dom'\n\nimport NotificationCenter from 'src/components/NotificationCenter'\nimport ActionButton from 'src/components/buttons/ActionButton'\nimport { H4 } from 'src/components/typography'\nimport AddMachine from 'src/pages/AddMachine'\nimport { ReactComponent as AddIconReverse } from 'src/styling/icons/button/add/white.svg'\nimport { ReactComponent as AddIcon } from 'src/styling/icons/button/add/zodiac.svg'\nimport { ReactComponent as Logo } from 'src/styling/icons/menu/logo.svg'\nimport { ReactComponent as NotificationIcon } from 'src/styling/icons/menu/notification.svg'\n\nimport styles from './Header.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst HAS_UNREAD = gql`\n query getUnread {\n hasUnreadNotifications\n }\n`\n\nconst Subheader = ({ item, classes, user }) => {\n const [prev, setPrev] = useState(null)\n\n return (\n \n
\n
\n \n {item.children.map((it, idx) => {\n if (!R.includes(user.role, it.allowedRoles)) return <>>\n return (\n \n {\n if (!match) return false\n setPrev(it.route)\n return true\n }}>\n {it.label}\n \n \n )\n })}\n \n \n
\n
\n )\n}\n\nconst notNil = R.compose(R.not, R.isNil)\n\nconst Header = memo(({ tree, user }) => {\n const [open, setOpen] = useState(false)\n const [anchorEl, setAnchorEl] = useState(null)\n const [notifButtonCoords, setNotifButtonCoords] = useState({ x: 0, y: 0 })\n const [active, setActive] = useState()\n const [hasUnread, setHasUnread] = useState(false)\n\n const { data, refetch, startPolling, stopPolling } = useQuery(HAS_UNREAD)\n const notifCenterButtonRef = useRef()\n const popperRef = useRef()\n const history = useHistory()\n const classes = useStyles()\n\n useEffect(() => {\n if (data?.hasUnreadNotifications) return setHasUnread(true)\n // if not true, make sure it's false and not undefined\n if (notNil(data?.hasUnreadNotifications)) return setHasUnread(false)\n }, [data])\n\n useEffect(() => {\n startPolling(60000)\n return stopPolling\n })\n\n const onPaired = machine => {\n setOpen(false)\n history.push('/maintenance/machine-status', { id: machine.deviceId })\n }\n\n // these inline styles prevent scroll bubbling: when the user reaches the bottom of the notifications list and keeps scrolling,\n // the body scrolls, stealing the focus from the notification center, preventing the admin from scrolling the notifications back up\n // on the first scroll, needing to move the mouse to recapture the focus on the notification center\n // it also disables the scrollbars caused by the notification center's background to the right of the page, but keeps the scrolling on the body enabled\n const onClickAway = () => {\n setAnchorEl(null)\n document.querySelector('#root').classList.remove('root-notifcenter-open')\n document.querySelector('body').classList.remove('body-notifcenter-open')\n }\n\n const handleClick = event => {\n const coords = notifCenterButtonRef.current.getBoundingClientRect()\n setNotifButtonCoords({ x: coords.x, y: coords.y + 5 })\n\n setAnchorEl(anchorEl ? null : event.currentTarget)\n document.querySelector('#root').classList.add('root-notifcenter-open')\n document.querySelector('body').classList.add('body-notifcenter-open')\n }\n\n const popperOpen = Boolean(anchorEl)\n const id = popperOpen ? 'notifications-popper' : undefined\n return (\n \n \n
\n
{\n setActive(false)\n history.push('/dashboard')\n }}\n className={classnames(classes.logo, classes.logoLink)}>\n \n
Lamassu Admin \n \n
\n \n {tree.map((it, idx) => {\n if (!R.includes(user.role, it.allowedRoles)) return <>>\n return (\n {\n if (!match) return false\n setActive(it)\n return true\n }}\n className={classnames(classes.link, classes.whiteLink)}\n activeClassName={classes.activeLink}>\n \n \n {it.label}\n \n \n \n )\n })}\n \n \n
\n
setOpen(true)}>\n Add machine\n \n
\n \n
\n \n {hasUnread &&
}\n \n
\n \n \n
\n \n
\n
\n
\n {active && active.children && (\n \n )}\n {open && setOpen(false)} onPaired={onPaired} />}\n \n )\n})\n\nexport default Header\n","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport { ReactComponent as ErrorIcon } from 'src/styling/icons/warning-icon/tomato.svg'\nimport { errorColor } from 'src/styling/variables'\n\nimport { Info3 } from './typography'\n\nconst styles = {\n wrapper: {\n display: 'flex',\n alignItems: 'center',\n '& > svg': {\n marginRight: 10\n }\n },\n message: {\n display: 'flex',\n alignItems: 'center',\n color: errorColor,\n margin: 0,\n whiteSpace: 'break-spaces'\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst ErrorMessage = ({ className, children, ...props }) => {\n const classes = useStyles()\n\n return (\n \n \n {children} \n
\n )\n}\n\nexport default ErrorMessage\n","import { backgroundColor } from 'src/styling/variables'\n\nexport default {\n titleWrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n flexDirection: 'row'\n },\n titleAndButtonsContainer: {\n display: 'flex',\n alignItems: 'center'\n },\n error: {\n marginLeft: 12\n },\n subpageButton: {\n marginLeft: 12\n },\n buttonText: {\n color: backgroundColor,\n fontFamily: 'Mont',\n fontSize: 15\n },\n icon: {\n marginRight: 6\n },\n label: {\n marginRight: 24\n }\n}\n","import { makeStyles, Box } from '@material-ui/core'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Title from 'src/components/Title'\nimport { SubpageButton } from 'src/components/buttons'\nimport { Info1, Label1 } from 'src/components/typography'\n\nimport styles from './TitleSection.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst TitleSection = ({\n className,\n title,\n error,\n labels,\n buttons = [],\n children,\n appendix,\n appendixRight\n}) => {\n const classes = useStyles()\n return (\n \n
\n
{title} \n {!!appendix && appendix}\n {error && (\n Failed to save \n )}\n {buttons.length > 0 && (\n <>\n {buttons.map((button, idx) => (\n \n {button.text} \n \n ))}\n >\n )}\n \n
\n {(labels ?? []).map(({ icon, label }, idx) => (\n \n {icon}
\n {label} \n \n ))}\n {appendixRight}\n \n {children}\n
\n )\n}\n\nexport default TitleSection\n","import { backgroundColor, errorColor } from 'src/styling/variables'\n\nconst styles = {\n title: {\n paddingTop: 8\n },\n input: {\n marginBottom: 25,\n marginTop: -15\n },\n wrapper: {\n padding: '2.5em 4em',\n width: 575,\n display: 'flex',\n flexDirection: 'column'\n },\n titleWrapper: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n marginBottom: 30\n },\n rememberMeWrapper: {\n marginTop: 35,\n display: 'flex',\n flexDirection: 'row'\n },\n icon: {\n transform: 'scale(1.5)',\n marginRight: 25\n },\n checkbox: {\n transform: 'scale(1.5)',\n marginRight: 5,\n marginLeft: -5\n },\n footer: {\n marginTop: '10vh'\n },\n twofaFooter: {\n marginTop: '6vh'\n },\n fidoLoginButtonWrapper: {\n marginBottom: 12\n },\n loginButton: {\n display: 'block',\n width: '100%'\n },\n welcomeBackground: {\n background: 'url(/wizard-background.svg) no-repeat center center fixed',\n backgroundColor: backgroundColor,\n backgroundSize: 'cover',\n height: '100vh',\n width: '100vw',\n position: 'relative',\n left: '50%',\n right: '50%',\n marginLeft: '-50vw',\n marginRight: '-50vw',\n minHeight: '100vh'\n },\n info: {\n marginBottom: '5vh'\n },\n info2: {\n textAlign: 'justify'\n },\n infoWrapper: {\n marginBottom: '3vh'\n },\n errorMessage: {\n color: errorColor\n },\n qrCodeWrapper: {\n display: 'flex',\n justifyContent: 'center',\n marginBottom: '3vh'\n },\n secretWrapper: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n },\n secretLabel: {\n marginRight: 15\n },\n secret: {\n marginRight: 35\n },\n hiddenSecret: {\n marginRight: 35,\n filter: 'blur(8px)'\n },\n confirm2FAInput: {\n marginTop: 25\n },\n confirmPassword: {\n marginTop: 25\n },\n error: {\n color: errorColor\n },\n enterButton: {\n display: 'none'\n }\n}\n\nexport default styles\n","const STATES = {\n LOGIN: 'LOGIN',\n SETUP_2FA: 'SETUP2FA',\n INPUT_2FA: 'INPUT2FA',\n FIDO: 'FIDO'\n}\n\nexport { STATES }\n","import { useMutation, useLazyQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport base64 from 'base-64'\nimport { Form, Formik } from 'formik'\nimport gql from 'graphql-tag'\nimport React, { useContext, useState } from 'react'\nimport { useHistory } from 'react-router-dom'\n\nimport AppContext from 'src/AppContext'\nimport { Button } from 'src/components/buttons'\nimport { CodeInput } from 'src/components/inputs/base'\nimport { TL1, P } from 'src/components/typography'\n\nimport styles from './shared.styles'\nimport { STATES } from './states'\n\nconst useStyles = makeStyles(styles)\n\nconst INPUT_2FA = gql`\n mutation input2FA(\n $username: String!\n $password: String!\n $code: String!\n $rememberMe: Boolean!\n ) {\n input2FA(\n username: $username\n password: $password\n code: $code\n rememberMe: $rememberMe\n )\n }\n`\n\nconst GET_USER_DATA = gql`\n {\n userData {\n id\n username\n role\n }\n }\n`\n\nconst Input2FAState = ({ state, dispatch }) => {\n const classes = useStyles()\n const history = useHistory()\n const { setUserData } = useContext(AppContext)\n\n const [invalidToken, setInvalidToken] = useState(false)\n\n const [getUserData, { error: queryError }] = useLazyQuery(GET_USER_DATA, {\n onCompleted: ({ userData }) => {\n setUserData(userData)\n history.push('/')\n }\n })\n\n const [input2FA, { error: mutationError }] = useMutation(INPUT_2FA, {\n onCompleted: ({ input2FA: success }) => {\n if (success) {\n const options = {\n context: {\n headers: {\n 'Pazuz-Operator-Identifier': base64.encode(state.clientField)\n }\n }\n }\n return getUserData(options)\n }\n return setInvalidToken(true)\n }\n })\n\n const handle2FAChange = value => {\n dispatch({\n type: STATES.INPUT_2FA,\n payload: {\n twoFAField: value\n }\n })\n setInvalidToken(false)\n }\n\n const handleSubmit = () => {\n if (state.twoFAField.length !== 6) {\n setInvalidToken(true)\n return\n }\n\n const options = {\n variables: {\n username: state.clientField,\n password: state.passwordField,\n code: state.twoFAField,\n rememberMe: state.rememberMeField\n },\n context: {\n headers: {\n 'Pazuz-Operator-Identifier': base64.encode(state.clientField)\n }\n }\n }\n\n input2FA(options)\n }\n\n const getErrorMsg = () => {\n if (queryError) return 'Internal server error'\n if (state.twoFAField.length !== 6 && invalidToken)\n return 'The code should have 6 characters!'\n if (mutationError || invalidToken)\n return 'Code is invalid. Please try again.'\n return null\n }\n\n const errorMessage = getErrorMsg()\n\n return (\n <>\n \n Enter your two-factor authentication code\n \n {/* TODO: refactor the 2FA CodeInput to properly use Formik */}\n {}} initialValues={{}}>\n \n \n \n {errorMessage &&
{errorMessage}
}\n
\n Login\n \n
\n >\n )\n}\n\nexport default Input2FAState\n","import { useMutation, useLazyQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport { startAssertion } from '@simplewebauthn/browser'\nimport { Field, Form, Formik } from 'formik'\nimport gql from 'graphql-tag'\nimport React, { useState, useContext } from 'react'\nimport { useHistory } from 'react-router-dom'\nimport * as Yup from 'yup'\n\nimport AppContext from 'src/AppContext'\nimport { Button } from 'src/components/buttons'\nimport { Checkbox, TextInput } from 'src/components/inputs/formik'\nimport { H2, Label2, P } from 'src/components/typography'\n\nimport styles from './shared.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_USER_DATA = gql`\n {\n userData {\n id\n username\n role\n }\n }\n`\n\nconst validationSchema = Yup.object().shape({\n localClient: Yup.string()\n .required('Client field is required!')\n .email('Username field should be in an email format!'),\n localRememberMe: Yup.boolean()\n})\n\nconst initialValues = {\n localClient: '',\n localRememberMe: false\n}\n\nconst InputFIDOState = ({ state, strategy }) => {\n const GENERATE_ASSERTION = gql`\n query generateAssertionOptions($username: String!${\n strategy === 'FIDO2FA' ? `, $password: String!` : ``\n }, $domain: String!) {\n generateAssertionOptions(username: $username${\n strategy === 'FIDO2FA' ? `, password: $password` : ``\n }, domain: $domain)\n }\n `\n\n const VALIDATE_ASSERTION = gql`\n mutation validateAssertion(\n $username: String!\n ${strategy === 'FIDO2FA' ? `, $password: String!` : ``}\n $rememberMe: Boolean!\n $assertionResponse: JSONObject!\n $domain: String!\n ) {\n validateAssertion(\n username: $username\n ${strategy === 'FIDO2FA' ? `password: $password` : ``}\n rememberMe: $rememberMe\n assertionResponse: $assertionResponse\n domain: $domain\n )\n }\n `\n\n const classes = useStyles()\n const history = useHistory()\n const { setUserData } = useContext(AppContext)\n\n const [localClientField, setLocalClientField] = useState('')\n const [localRememberMeField, setLocalRememberMeField] = useState(false)\n const [invalidUsername, setInvalidUsername] = useState(false)\n const [invalidToken, setInvalidToken] = useState(false)\n\n const [validateAssertion, { error: mutationError }] = useMutation(\n VALIDATE_ASSERTION,\n {\n onCompleted: ({ validateAssertion: success }) => {\n success ? getUserData() : setInvalidToken(true)\n }\n }\n )\n\n const [assertionOptions, { error: assertionQueryError }] = useLazyQuery(\n GENERATE_ASSERTION,\n {\n variables:\n strategy === 'FIDO2FA'\n ? {\n username: state.clientField,\n password: state.passwordField,\n domain: window.location.hostname\n }\n : {\n username: localClientField,\n domain: window.location.hostname\n },\n onCompleted: ({ generateAssertionOptions: options }) => {\n startAssertion(options)\n .then(res => {\n const variables =\n strategy === 'FIDO2FA'\n ? {\n username: state.clientField,\n password: state.passwordField,\n rememberMe: state.rememberMeField,\n assertionResponse: res,\n domain: window.location.hostname\n }\n : {\n username: localClientField,\n rememberMe: localRememberMeField,\n assertionResponse: res,\n domain: window.location.hostname\n }\n validateAssertion({\n variables\n })\n })\n .catch(err => {\n console.error(err)\n setInvalidToken(true)\n })\n }\n }\n )\n\n const [getUserData, { error: queryError }] = useLazyQuery(GET_USER_DATA, {\n onCompleted: ({ userData }) => {\n setUserData(userData)\n history.push('/')\n }\n })\n\n const getErrorMsg = (formikErrors, formikTouched) => {\n if (!formikErrors || !formikTouched) return null\n if (assertionQueryError || queryError || mutationError)\n return 'Internal server error'\n if (formikErrors.client && formikTouched.client) return formikErrors.client\n if (invalidUsername) return 'Invalid login.'\n if (invalidToken) return 'Code is invalid. Please try again.'\n return null\n }\n\n return (\n <>\n {strategy === 'FIDOPasswordless' && (\n {\n setInvalidUsername(false)\n setLocalClientField(values.localClient)\n setLocalRememberMeField(values.localRememberMe)\n assertionOptions()\n }}>\n {({ errors, touched }) => (\n \n )}\n \n )}\n {strategy === 'FIDO2FA' && (\n <>\n \n Insert your hardware key and follow the instructions\n \n assertionOptions()}\n buttonClassName={classes.loginButton}>\n Use FIDO\n \n >\n )}\n >\n )\n}\n\nexport default InputFIDOState\n","import { useMutation, useLazyQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { startAssertion } from '@simplewebauthn/browser'\nimport base64 from 'base-64'\nimport { Field, Form, Formik } from 'formik'\nimport gql from 'graphql-tag'\nimport React, { useContext } from 'react'\nimport { useHistory } from 'react-router-dom'\nimport * as Yup from 'yup'\n\nimport AppContext from 'src/AppContext'\nimport { Button } from 'src/components/buttons'\nimport { Checkbox, SecretInput, TextInput } from 'src/components/inputs/formik'\nimport { Label3, P } from 'src/components/typography'\n\nimport styles from './shared.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst LOGIN = gql`\n mutation login($username: String!, $password: String!) {\n login(username: $username, password: $password)\n }\n`\n\nconst GENERATE_ASSERTION = gql`\n query generateAssertionOptions($domain: String!) {\n generateAssertionOptions(domain: $domain)\n }\n`\n\nconst VALIDATE_ASSERTION = gql`\n mutation validateAssertion(\n $assertionResponse: JSONObject!\n $domain: String!\n ) {\n validateAssertion(assertionResponse: $assertionResponse, domain: $domain)\n }\n`\n\nconst GET_USER_DATA = gql`\n {\n userData {\n id\n username\n role\n }\n }\n`\n\nconst validationSchema = Yup.object().shape({\n email: Yup.string()\n .label('Email')\n .required()\n .email(),\n password: Yup.string().required('Password field is required'),\n rememberMe: Yup.boolean()\n})\n\nconst initialValues = {\n email: '',\n password: '',\n rememberMe: false\n}\n\nconst getErrorMsg = (formikErrors, formikTouched, mutationError) => {\n if (!formikErrors || !formikTouched) return null\n if (mutationError) return 'Invalid email/password combination'\n if (formikErrors.email && formikTouched.email) return formikErrors.email\n if (formikErrors.password && formikTouched.password)\n return formikErrors.password\n return null\n}\n\nconst LoginState = ({ state, dispatch, strategy }) => {\n const classes = useStyles()\n const history = useHistory()\n const { setUserData } = useContext(AppContext)\n\n const [login, { error: loginMutationError }] = useMutation(LOGIN)\n\n const submitLogin = async (username, password, rememberMe) => {\n const options = {\n variables: {\n username,\n password\n },\n context: {\n headers: {\n 'Pazuz-Operator-Identifier': base64.encode(username)\n }\n }\n }\n const { data: loginResponse } = await login(options)\n\n if (!loginResponse.login) return\n\n return dispatch({\n type: loginResponse.login,\n payload: {\n clientField: username,\n passwordField: password,\n rememberMeField: rememberMe\n }\n })\n }\n\n const [validateAssertion, { error: FIDOMutationError }] = useMutation(\n VALIDATE_ASSERTION,\n {\n onCompleted: ({ validateAssertion: success }) => success && getUserData()\n }\n )\n\n const [assertionOptions, { error: assertionQueryError }] = useLazyQuery(\n GENERATE_ASSERTION,\n {\n onCompleted: ({ generateAssertionOptions: options }) => {\n startAssertion(options)\n .then(res => {\n validateAssertion({\n variables: {\n assertionResponse: res,\n domain: window.location.hostname\n }\n })\n })\n .catch(err => {\n console.error(err)\n })\n }\n }\n )\n\n const [getUserData, { error: userDataQueryError }] = useLazyQuery(\n GET_USER_DATA,\n {\n onCompleted: ({ userData }) => {\n setUserData(userData)\n history.push('/')\n }\n }\n )\n\n return (\n \n submitLogin(values.email, values.password, values.rememberMe)\n }>\n {({ errors, touched }) => (\n \n )}\n \n )\n}\n\nexport default LoginState\n","import { useMutation, useQuery, useLazyQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport base64 from 'base-64'\nimport { Form, Formik } from 'formik'\nimport gql from 'graphql-tag'\nimport QRCode from 'qrcode.react'\nimport React, { useContext, useState } from 'react'\nimport { useHistory } from 'react-router-dom'\n\nimport AppContext from 'src/AppContext'\nimport { ActionButton, Button } from 'src/components/buttons'\nimport { CodeInput } from 'src/components/inputs/base'\nimport { Label3, P } from 'src/components/typography'\nimport { primaryColor } from 'src/styling/variables'\n\nimport styles from './shared.styles'\n\nconst SETUP_2FA = gql`\n mutation setup2FA(\n $username: String!\n $password: String!\n $rememberMe: Boolean!\n $codeConfirmation: String!\n ) {\n setup2FA(\n username: $username\n password: $password\n rememberMe: $rememberMe\n codeConfirmation: $codeConfirmation\n )\n }\n`\n\nconst GET_2FA_SECRET = gql`\n query get2FASecret($username: String!, $password: String!) {\n get2FASecret(username: $username, password: $password) {\n secret\n otpauth\n }\n }\n`\n\nconst GET_USER_DATA = gql`\n {\n userData {\n id\n username\n role\n }\n }\n`\n\nconst useStyles = makeStyles(styles)\n\nconst Setup2FAState = ({ state, dispatch }) => {\n const classes = useStyles()\n const history = useHistory()\n const { setUserData } = useContext(AppContext)\n\n const [secret, setSecret] = useState(null)\n const [otpauth, setOtpauth] = useState(null)\n const [isShowing, setShowing] = useState(false)\n\n const [invalidToken, setInvalidToken] = useState(false)\n const [twoFAConfirmation, setTwoFAConfirmation] = useState('')\n\n const handle2FAChange = value => {\n setTwoFAConfirmation(value)\n setInvalidToken(false)\n }\n\n const queryOptions = {\n variables: { username: state.clientField, password: state.passwordField },\n context: {\n headers: {\n 'Pazuz-Operator-Identifier': base64.encode(state.clientField)\n }\n },\n onCompleted: ({ get2FASecret }) => {\n setSecret(get2FASecret.secret)\n setOtpauth(get2FASecret.otpauth)\n }\n }\n\n const mutationOptions = {\n variables: {\n username: state.clientField,\n password: state.passwordField,\n rememberMe: state.rememberMeField,\n codeConfirmation: twoFAConfirmation\n },\n context: {\n headers: {\n 'Pazuz-Operator-Identifier': base64.encode(state.clientField)\n }\n }\n }\n\n const { error: queryError } = useQuery(GET_2FA_SECRET, queryOptions)\n\n const [getUserData] = useLazyQuery(GET_USER_DATA, {\n onCompleted: ({ userData }) => {\n setUserData(userData)\n history.push('/')\n }\n })\n\n const [setup2FA, { error: mutationError }] = useMutation(SETUP_2FA, {\n onCompleted: ({ setup2FA: success }) => {\n const options = {\n context: {\n headers: {\n 'Pazuz-Operator-Identifier': base64.encode(state.clientField)\n }\n }\n }\n success ? getUserData(options) : setInvalidToken(true)\n }\n })\n\n const getErrorMsg = () => {\n if (mutationError || queryError) return 'Internal server error.'\n if (twoFAConfirmation.length !== 6 && invalidToken)\n return 'The code should have 6 characters!'\n if (invalidToken) return 'Code is invalid. Please try again.'\n return null\n }\n\n const handleSubmit = () => {\n if (twoFAConfirmation.length !== 6) {\n setInvalidToken(true)\n return\n }\n setup2FA(mutationOptions)\n }\n\n return (\n secret &&\n otpauth && (\n <>\n \n \n This account does not yet have two-factor authentication enabled. To\n secure the admin, two-factor authentication is required.\n \n \n To complete the registration process, scan the following QR code or\n insert the secret below on a 2FA app, such as Google Authenticator\n or AndOTP.\n \n
\n \n \n
\n \n
Your secret: \n
\n {secret}\n \n
{\n setShowing(!isShowing)\n }}>\n {isShowing ? 'Hide' : 'Show'}\n \n
\n \n {/* TODO: refactor the 2FA CodeInput to properly use Formik */}\n {}} initialValues={{}}>\n \n \n
\n \n {getErrorMsg() && (\n
{getErrorMsg()}
\n )}\n
\n Done\n \n
\n >\n )\n )\n}\n\nexport default Setup2FAState\n","import Paper from '@material-ui/core/Paper'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React, { useReducer } from 'react'\n\nimport { H5 } from 'src/components/typography'\nimport { ReactComponent as Logo } from 'src/styling/icons/menu/logo.svg'\n\nimport Input2FAState from './Input2FAState'\nimport InputFIDOState from './InputFIDOState'\nimport LoginState from './LoginState'\nimport Setup2FAState from './Setup2FAState'\nimport styles from './shared.styles'\nimport { STATES } from './states'\n\n// FIDO2FA, FIDOPasswordless or FIDOUsernameless\nconst AUTHENTICATION_STRATEGY = 'FIDO2FA'\n\nconst useStyles = makeStyles(styles)\n\nconst initialState = {\n twoFAField: '',\n clientField: '',\n passwordField: '',\n rememberMeField: false,\n loginState: STATES.LOGIN\n}\n\nconst reducer = (state, action) => {\n const { type, payload } = action\n return { ...state, ...payload, loginState: type }\n}\n\nconst LoginCard = () => {\n const classes = useStyles()\n\n const [state, dispatch] = useReducer(reducer, initialState)\n\n const renderState = () => {\n switch (state.loginState) {\n case STATES.LOGIN:\n return (\n \n )\n case STATES.INPUT_2FA:\n return \n case STATES.SETUP_2FA:\n return \n case STATES.FIDO:\n return (\n \n )\n default:\n break\n }\n }\n\n return (\n \n \n
\n \n
Lamassu Admin \n \n {renderState()}\n
\n \n )\n}\n\nexport default LoginCard\n","import { makeStyles, Grid } from '@material-ui/core'\nimport React from 'react'\n\nimport LoginCard from './LoginCard'\nimport styles from './shared.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst Login = () => {\n const classes = useStyles()\n\n return (\n \n \n \n \n \n )\n}\n\nexport default Login\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles, Grid } from '@material-ui/core'\nimport Paper from '@material-ui/core/Paper'\nimport { Field, Form, Formik } from 'formik'\nimport gql from 'graphql-tag'\nimport React, { useReducer } from 'react'\nimport { useLocation, useHistory } from 'react-router-dom'\nimport * as Yup from 'yup'\n\nimport { Button } from 'src/components/buttons'\nimport { SecretInput } from 'src/components/inputs/formik'\nimport { H2, Label3, P } from 'src/components/typography'\nimport { ReactComponent as Logo } from 'src/styling/icons/menu/logo.svg'\n\nimport styles from './shared.styles'\n\nconst QueryParams = () => new URLSearchParams(useLocation().search)\nconst useStyles = makeStyles(styles)\n\nconst VALIDATE_REGISTER_LINK = gql`\n query validateRegisterLink($token: String!) {\n validateRegisterLink(token: $token) {\n username\n role\n }\n }\n`\n\nconst REGISTER = gql`\n mutation register(\n $token: String!\n $username: String!\n $password: String!\n $role: String!\n ) {\n register(\n token: $token\n username: $username\n password: $password\n role: $role\n )\n }\n`\n\nconst PASSWORD_MIN_LENGTH = 8\nconst validationSchema = Yup.object({\n password: Yup.string()\n .required('A password is required')\n .min(\n PASSWORD_MIN_LENGTH,\n `Your password must contain at least ${PASSWORD_MIN_LENGTH} characters`\n ),\n confirmPassword: Yup.string()\n .required('Please confirm the password')\n .oneOf([Yup.ref('password')], 'Passwords must match')\n})\n\nconst initialValues = {\n password: '',\n confirmPassword: ''\n}\n\nconst initialState = {\n username: null,\n role: null,\n result: ''\n}\n\nconst reducer = (state, action) => {\n const { type, payload } = action\n return { ...state, ...payload, result: type }\n}\n\nconst getErrorMsg = (\n formikErrors,\n formikTouched,\n queryError,\n mutationError\n) => {\n if (!formikErrors || !formikTouched) return null\n if (queryError || mutationError) return 'Internal server error'\n if (formikErrors.password && formikTouched.password)\n return formikErrors.password\n if (formikErrors.confirmPassword && formikTouched.confirmPassword)\n return formikErrors.confirmPassword\n return null\n}\n\nconst Register = () => {\n const classes = useStyles()\n const history = useHistory()\n const token = QueryParams().get('t')\n const identifier = QueryParams().get('id') ?? null\n\n const [state, dispatch] = useReducer(reducer, initialState)\n\n const queryOptions = {\n context: {\n headers: {\n 'Pazuz-Operator-Identifier': identifier\n }\n },\n variables: { token: token },\n onCompleted: ({ validateRegisterLink: info }) => {\n if (!info) {\n return dispatch({\n type: 'failure'\n })\n }\n dispatch({\n type: 'success',\n payload: {\n username: info.username,\n role: info.role\n }\n })\n },\n onError: () =>\n dispatch({\n type: 'failure'\n })\n }\n\n const { error: queryError, loading } = useQuery(\n VALIDATE_REGISTER_LINK,\n queryOptions\n )\n\n const [register, { error: mutationError }] = useMutation(REGISTER, {\n onCompleted: ({ register: success }) => {\n if (success) history.push('/wizard', { fromAuthRegister: true })\n }\n })\n\n return (\n \n \n \n
\n \n
\n \n
Lamassu Admin \n \n {!loading && state.result === 'success' && (\n
{\n register({\n variables: {\n token: token,\n username: state.username,\n password: values.password,\n role: state.role\n }\n })\n }}>\n {({ errors, touched }) => (\n \n )}\n \n )}\n {!loading && state.result === 'failure' && (\n <>\n
Link has expired \n
\n To obtain a new link, run the command{' '}\n lamassu-register in your server’s terminal.\n \n >\n )}\n
\n \n
\n \n \n )\n}\n\nexport default Register\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles, Grid } from '@material-ui/core'\nimport Paper from '@material-ui/core/Paper'\nimport { Form, Formik } from 'formik'\nimport gql from 'graphql-tag'\nimport QRCode from 'qrcode.react'\nimport React, { useReducer, useState } from 'react'\nimport { useLocation, useHistory } from 'react-router-dom'\n\nimport { ActionButton, Button } from 'src/components/buttons'\nimport { CodeInput } from 'src/components/inputs/base'\nimport { H2, Label2, Label3, P } from 'src/components/typography'\nimport { ReactComponent as Logo } from 'src/styling/icons/menu/logo.svg'\nimport { primaryColor } from 'src/styling/variables'\n\nimport styles from './shared.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst VALIDATE_RESET_2FA_LINK = gql`\n query validateReset2FALink($token: String!) {\n validateReset2FALink(token: $token) {\n user_id\n secret\n otpauth\n }\n }\n`\n\nconst RESET_2FA = gql`\n mutation reset2FA($token: String!, $userID: ID!, $code: String!) {\n reset2FA(token: $token, userID: $userID, code: $code)\n }\n`\n\nconst initialState = {\n userID: null,\n secret: null,\n otpauth: null,\n result: null\n}\n\nconst reducer = (state, action) => {\n const { type, payload } = action\n return { ...state, ...payload, result: type }\n}\n\nconst Reset2FA = () => {\n const classes = useStyles()\n const history = useHistory()\n const QueryParams = () => new URLSearchParams(useLocation().search)\n const token = QueryParams().get('t')\n\n const [isShowing, setShowing] = useState(false)\n const [invalidToken, setInvalidToken] = useState(false)\n const [twoFAConfirmation, setTwoFAConfirmation] = useState('')\n\n const [state, dispatch] = useReducer(reducer, initialState)\n\n const handle2FAChange = value => {\n setTwoFAConfirmation(value)\n setInvalidToken(false)\n }\n\n const { error: queryError, loading } = useQuery(VALIDATE_RESET_2FA_LINK, {\n variables: { token: token },\n onCompleted: ({ validateReset2FALink: info }) => {\n if (!info) {\n dispatch({\n type: 'failure'\n })\n } else {\n dispatch({\n type: 'success',\n payload: {\n userID: info.user_id,\n secret: info.secret,\n otpauth: info.otpauth\n }\n })\n }\n },\n onError: () => {\n dispatch({\n type: 'failure'\n })\n }\n })\n\n const [reset2FA, { error: mutationError }] = useMutation(RESET_2FA, {\n onCompleted: ({ reset2FA: success }) => {\n success ? history.push('/') : setInvalidToken(true)\n }\n })\n\n const getErrorMsg = () => {\n if (queryError) return 'Internal server error'\n if (twoFAConfirmation.length !== 6 && invalidToken)\n return 'The code should have 6 characters!'\n if (mutationError || invalidToken)\n return 'Code is invalid. Please try again.'\n return null\n }\n\n const handleSubmit = () => {\n if (twoFAConfirmation.length !== 6) {\n setInvalidToken(true)\n return\n }\n reset2FA({\n variables: {\n token: token,\n userID: state.userID,\n code: twoFAConfirmation\n }\n })\n }\n\n return (\n \n \n \n
\n \n
\n \n
Lamassu Admin \n \n {!loading && state.result === 'success' && (\n <>\n
\n \n To finish this process, please scan the following QR code\n or insert the secret further below on an authentication\n app of your choice, such Google Authenticator or Authy.\n \n
\n
\n \n
\n
\n
\n Your secret:\n \n
\n {state.secret}\n \n
{\n setShowing(!isShowing)\n }}>\n {isShowing ? 'Hide' : 'Show'}\n \n
\n
\n {/* TODO: refactor the 2FA CodeInput to properly use Formik */}\n {}} initialValues={{}}>\n \n \n
\n
\n {getErrorMsg() && (\n
{getErrorMsg()}
\n )}\n
\n Done\n \n
\n >\n )}\n {!loading && state.result === 'failure' && (\n <>\n
Link has expired \n >\n )}\n
\n \n
\n \n \n )\n}\n\nexport default Reset2FA\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles, Grid } from '@material-ui/core'\nimport Paper from '@material-ui/core/Paper'\nimport { Field, Form, Formik } from 'formik'\nimport gql from 'graphql-tag'\nimport React, { useState } from 'react'\nimport { useLocation, useHistory } from 'react-router-dom'\nimport * as Yup from 'yup'\n\nimport { Button } from 'src/components/buttons'\nimport { SecretInput } from 'src/components/inputs/formik/'\nimport { H2, Label3, P } from 'src/components/typography'\nimport { ReactComponent as Logo } from 'src/styling/icons/menu/logo.svg'\n\nimport styles from './shared.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst VALIDATE_RESET_PASSWORD_LINK = gql`\n query validateResetPasswordLink($token: String!) {\n validateResetPasswordLink(token: $token) {\n id\n }\n }\n`\n\nconst RESET_PASSWORD = gql`\n mutation resetPassword($token: String!, $userID: ID!, $newPassword: String!) {\n resetPassword(token: $token, userID: $userID, newPassword: $newPassword)\n }\n`\n\nconst validationSchema = Yup.object().shape({\n password: Yup.string()\n .required('A new password is required')\n .test(\n 'len',\n 'New password must contain more than 8 characters',\n val => val.length >= 8\n ),\n confirmPassword: Yup.string().oneOf(\n [Yup.ref('password'), null],\n 'Passwords must match'\n )\n})\n\nconst initialValues = {\n password: '',\n confirmPassword: ''\n}\n\nconst getErrorMsg = (formikErrors, formikTouched, mutationError) => {\n if (!formikErrors || !formikTouched) return null\n if (mutationError) return 'Internal server error'\n if (formikErrors.password && formikTouched.password)\n return formikErrors.password\n if (formikErrors.confirmPassword && formikTouched.confirmPassword)\n return formikErrors.confirmPassword\n return null\n}\n\nconst ResetPassword = () => {\n const classes = useStyles()\n const history = useHistory()\n const QueryParams = () => new URLSearchParams(useLocation().search)\n const token = QueryParams().get('t')\n const [userID, setUserID] = useState(null)\n const [isLoading, setLoading] = useState(true)\n const [wasSuccessful, setSuccess] = useState(false)\n\n useQuery(VALIDATE_RESET_PASSWORD_LINK, {\n variables: { token: token },\n onCompleted: ({ validateResetPasswordLink: info }) => {\n setLoading(false)\n if (!info) {\n setSuccess(false)\n } else {\n setSuccess(true)\n setUserID(info.id)\n }\n },\n onError: () => {\n setLoading(false)\n setSuccess(false)\n }\n })\n\n const [resetPassword, { error }] = useMutation(RESET_PASSWORD, {\n onCompleted: ({ resetPassword: success }) => {\n if (success) history.push('/')\n }\n })\n\n return (\n \n \n \n
\n \n
\n \n
Lamassu Admin \n \n {!isLoading && wasSuccessful && (\n
{\n resetPassword({\n variables: {\n token: token,\n userID: userID,\n newPassword: values.confirmPassword\n }\n })\n }}>\n {({ errors, touched }) => (\n \n )}\n \n )}\n {!isLoading && !wasSuccessful && (\n <>\n
Link has expired \n >\n )}\n
\n \n
\n \n \n )\n}\n\nexport default ResetPassword\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Styleguide\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/direction/cash-in\",\n transform: \"translate(-1.000000, 0.000000)\",\n fill: \"#16D6D3\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.99134364,0.321790399 L10.1430099,4.40569595 C11.0271728,4.99266501 11.2660914,6.1822461 10.6766494,7.06269968 C10.5357408,7.27317585 10.3543728,7.45378298 10.1430099,7.59410043 L3.99134364,11.678006 C3.10718075,12.264975 1.91258801,12.0270588 1.32314609,11.1466052 C1.11243854,10.8318699 1,10.4620686 1,10.0838037 L1,1.91599264 C1,0.857819122 1.86143307,0 2.92406462,0 C3.30392305,0 3.67528233,0.11196683 3.99134364,0.321790399 Z\",\n id: \"Path-3\"\n})));\n\nfunction SvgCashIn(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"10px\",\n height: \"12px\",\n viewBox: \"0 0 10 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCashIn);\nexport default __webpack_public_path__ + \"static/media/cash-in.c06970a7.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Styleguide\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/direction/cash-out\",\n transform: \"translate(-1.000000, 0.000000)\",\n fill: \"#5A67FF\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.99134364,0.321790399 L10.1430099,4.40569595 C11.0271728,4.99266501 11.2660914,6.1822461 10.6766494,7.06269968 C10.5357408,7.27317585 10.3543728,7.45378298 10.1430099,7.59410043 L3.99134364,11.678006 C3.10718075,12.264975 1.91258801,12.0270588 1.32314609,11.1466052 C1.11243854,10.8318699 1,10.4620686 1,10.0838037 L1,1.91599264 C1,0.857819122 1.86143307,0 2.92406462,0 C3.30392305,0 3.67528233,0.11196683 3.99134364,0.321790399 Z\",\n id: \"Path-3\",\n transform: \"translate(6.000000, 6.000000) scale(-1, 1) translate(-6.000000, -6.000000) \"\n})));\n\nfunction SvgCashOut(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"10px\",\n height: \"12px\",\n viewBox: \"0 0 10 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCashOut);\nexport default __webpack_public_path__ + \"static/media/cash-out.f029ae96.svg\";\nexport { ForwardRef as ReactComponent };","import typographyStyles from 'src/components/typography/styles'\nimport {\n spacer,\n white,\n primaryColor,\n zircon,\n zircon2,\n offDarkColor\n} from 'src/styling/variables'\nconst { label1 } = typographyStyles\n\nconst styles = {\n headerLabels: {\n display: 'flex',\n flexDirection: 'row',\n '& > div:first-child': {\n display: 'flex',\n alignItems: 'center',\n marginLeft: 0\n },\n '& > div': {\n display: 'flex',\n alignItems: 'center',\n marginLeft: 25\n },\n '& > div:last-child': {\n display: 'flex',\n alignItems: 'center',\n marginLeft: 64\n },\n '& > div > span': {\n extend: label1,\n marginLeft: 7\n }\n },\n root: {\n flexGrow: 1,\n display: 'flex',\n marginBottom: 120\n },\n emptyMachinesRoot: {\n height: 300,\n backgroundColor: zircon,\n border: `solid 2px ${zircon2}`\n },\n card: {\n wordWrap: 'break-word',\n boxShadow: '0 0 4px 0 rgba(0, 0, 0, 0.08)',\n borderRadius: 12,\n padding: 24,\n backgroundColor: white,\n flex: 1,\n marginRight: 24\n },\n container: {\n display: 'flex',\n justifyContent: 'space-between'\n },\n button: {\n color: primaryColor,\n minHeight: 0,\n minWidth: 0,\n padding: 0,\n textTransform: 'none',\n '&:hover': {\n backgroundColor: 'transparent'\n }\n },\n upperButtonLabel: {\n textAlign: 'center',\n marginBottom: 0,\n marginTop: 0,\n marginLeft: spacer\n },\n alertsCard: {\n marginBottom: spacer\n },\n h4: {\n marginTop: 0\n },\n centerLabel: {\n marginTop: 40,\n marginBottom: 0\n },\n systemStatusCard: {\n flex: 1,\n marginTop: spacer\n },\n expandedCard: {\n flex: 0.9\n },\n shrunkCard: {\n flex: 0.1\n },\n displayFlex: {\n display: 'flex',\n flexDirection: 'column'\n },\n inline: {\n display: 'inline'\n },\n emptyMachinesContent: {\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n justifyContent: 'center',\n alignItems: 'center',\n '& > :first-child': {\n marginTop: 0\n },\n '& > *': {\n marginTop: 25\n }\n },\n offColor: {\n color: offDarkColor\n }\n}\n\nexport default styles\n","import * as R from 'ramda'\n\nconst namespaces = {\n ADVANCED: 'advanced',\n CASH_IN: 'cashIn',\n CASH_OUT: 'cashOut',\n WALLETS: 'wallets',\n OPERATOR_INFO: 'operatorInfo',\n NOTIFICATIONS: 'notifications',\n LOCALE: 'locale',\n COMMISSIONS: 'commissions',\n RECEIPT: 'receipt',\n COIN_ATM_RADAR: 'coinAtmRadar',\n TERMS_CONDITIONS: 'termsConditions',\n TRIGGERS: 'triggersConfig'\n}\n\nconst mapKeys = R.curry((fn, obj) =>\n R.fromPairs(R.map(R.adjust(0, fn), R.toPairs(obj)))\n)\n\nconst filterByKey = R.curry((fn, obj) =>\n R.fromPairs(R.filter(it => fn(it[0]), R.toPairs(obj)))\n)\n\nconst stripl = R.curry((q, str) =>\n R.startsWith(q, str) ? str.slice(q.length) : str\n)\n\nconst filtered = key => filterByKey(R.startsWith(`${key}_`))\nconst stripped = key => mapKeys(stripl(`${key}_`))\n\nconst fromNamespace = R.curry((key, config) =>\n R.compose(stripped(key), filtered(key))(config)\n)\n\nconst toNamespace = R.curry((key, config) =>\n mapKeys(it => `${key}_${it}`)(config)\n)\n\nexport { fromNamespace, toNamespace, namespaces }\n","import { offColor, white, spacer } from 'src/styling/variables'\n\nconst styles = {\n label: {\n color: offColor\n },\n headerLabels: {\n whiteSpace: 'pre',\n display: 'flex',\n flexDirection: 'row',\n marginTop: -20\n },\n headerLabel: {\n display: 'flex',\n alignItems: 'center'\n },\n txOutMargin: {\n marginLeft: spacer * 3\n },\n tickerLabel: {\n color: offColor,\n marginTop: -5\n },\n footer1: {\n left: 0,\n bottom: 0,\n position: 'fixed',\n width: '100vw',\n backgroundColor: white,\n textAlign: 'left',\n zIndex: 1,\n boxShadow: '0px -1px 10px 0px rgba(50, 50, 50, 0.1)',\n minHeight: spacer * 12,\n transition: 'min-height 0.5s ease-out',\n '&:hover': {\n transition: 'min-height 0.5s ease-in',\n minHeight: 200\n }\n },\n content1: {\n width: 1200,\n maxHeight: 100,\n backgroundColor: white,\n zIndex: 2,\n bottom: -spacer,\n margin: '0 auto'\n }\n}\n\nexport default styles\n","/* eslint-disable no-unused-vars */\nimport { useQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport Grid from '@material-ui/core/Grid'\nimport BigNumber from 'bignumber.js'\nimport classnames from 'classnames'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { Label2 } from 'src/components/typography'\nimport { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport { fromNamespace } from 'src/utils/config'\n\nimport styles from './Footer.styles'\nconst GET_DATA = gql`\n query getData {\n cryptoRates\n cryptoCurrencies {\n code\n display\n }\n config\n accountsConfig {\n code\n display\n }\n }\n`\n\nBigNumber.config({ ROUNDING_MODE: BigNumber.ROUND_HALF_UP })\n\nconst useStyles = makeStyles(styles)\nconst Footer = () => {\n const { data } = useQuery(GET_DATA)\n\n const withCommissions = R.path(['cryptoRates', 'withCommissions'])(data) ?? {}\n const classes = useStyles()\n const config = R.path(['config'])(data) ?? {}\n const canExpand = R.keys(withCommissions).length > 4\n\n const wallets = fromNamespace('wallets')(config)\n const cryptoCurrencies = R.path(['cryptoCurrencies'])(data) ?? []\n const accountsConfig = R.path(['accountsConfig'])(data) ?? []\n const localeFiatCurrency = R.path(['locale_fiatCurrency'])(config) ?? ''\n\n const renderFooterItem = key => {\n const idx = R.findIndex(R.propEq('code', key))(cryptoCurrencies)\n const tickerCode = wallets[`${key}_ticker`]\n const tickerIdx = R.findIndex(R.propEq('code', tickerCode))(accountsConfig)\n\n const tickerName = tickerIdx > -1 ? accountsConfig[tickerIdx].display : ''\n\n const cashInNoCommission = parseFloat(\n R.path(['cryptoRates', 'withoutCommissions', key, 'cashIn'])(data)\n )\n const cashOutNoCommission = parseFloat(\n R.path(['cryptoRates', 'withoutCommissions', key, 'cashOut'])(data)\n )\n\n const avgOfAskBid = new BigNumber(\n (cashInNoCommission + cashOutNoCommission) / 2\n ).toFormat(2)\n const cashIn = new BigNumber(\n parseFloat(\n R.path(['cryptoRates', 'withCommissions', key, 'cashIn'])(data)\n )\n ).toFormat(2)\n const cashOut = new BigNumber(\n parseFloat(\n R.path(['cryptoRates', 'withCommissions', key, 'cashOut'])(data)\n )\n ).toFormat(2)\n\n return (\n \n \n {cryptoCurrencies[idx].display}\n \n \n
\n \n {` ${cashIn} ${localeFiatCurrency}`} \n
\n
\n \n {` ${cashOut} ${localeFiatCurrency}`} \n
\n
\n {`${tickerName}: ${avgOfAskBid} ${localeFiatCurrency}`} \n \n )\n }\n\n return (\n \n
\n \n \n {R.keys(withCommissions).map(key => renderFooterItem(key))}\n \n \n
\n
\n )\n}\n\nexport default Footer\n","import Footer from './Footer'\nexport default Footer\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"path-100\",\n cx: 80,\n cy: 80,\n r: 80\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"path-300\",\n x: 28,\n y: 44,\n width: 104,\n height: 116,\n rx: 4\n}), /*#__PURE__*/React.createElement(\"filter\", {\n x: \"-23.1%\",\n y: \"-20.7%\",\n width: \"146.2%\",\n height: \"141.4%\",\n filterUnits: \"objectBoundingBox\",\n id: \"filter-4\"\n}, /*#__PURE__*/React.createElement(\"feOffset\", {\n dx: 0,\n dy: 0,\n in: \"SourceAlpha\",\n result: \"shadowOffsetOuter1\"\n}), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 8,\n in: \"shadowOffsetOuter1\",\n result: \"shadowBlurOuter1\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08 0\",\n type: \"matrix\",\n in: \"shadowBlurOuter1\"\n})), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"path-5\",\n x: 37,\n y: 66,\n width: 84,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask-6\",\n maskContentUnits: \"userSpaceOnUse\",\n maskUnits: \"objectBoundingBox\",\n x: 0,\n y: 0,\n width: 84,\n height: 8,\n fill: \"white\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#path-5\"\n})), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"path-7\",\n x: 37,\n y: 78,\n width: 84,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask-8\",\n maskContentUnits: \"userSpaceOnUse\",\n maskUnits: \"objectBoundingBox\",\n x: 0,\n y: 0,\n width: 84,\n height: 8,\n fill: \"white\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#path-7\"\n})), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"path-9\",\n x: 37,\n y: 90,\n width: 84,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask-10\",\n maskContentUnits: \"userSpaceOnUse\",\n maskUnits: \"objectBoundingBox\",\n x: 0,\n y: 0,\n width: 84,\n height: 8,\n fill: \"white\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#path-9\"\n})), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"path-11\",\n x: 37,\n y: 102,\n width: 84,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask-12\",\n maskContentUnits: \"userSpaceOnUse\",\n maskUnits: \"objectBoundingBox\",\n x: 0,\n y: 0,\n width: 84,\n height: 8,\n fill: \"white\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#path-11\"\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"\\\\u21B3-v13a\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"transactions_v13a#1-(empty-table)\",\n transform: \"translate(-640.000000, -220.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2\",\n transform: \"translate(640.000000, 220.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Rectangle\"\n}, /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask-200\",\n fill: \"white\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#path-100\"\n})), /*#__PURE__*/React.createElement(\"use\", {\n id: \"Mask\",\n fill: \"#EBEFFF\",\n xlinkHref: \"#path-100\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n mask: \"url(#mask-200)\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n fill: \"black\",\n fillOpacity: 1,\n filter: \"url(#filter-4)\",\n xlinkHref: \"#path-300\"\n}), /*#__PURE__*/React.createElement(\"use\", {\n fill: \"#FFFFFF\",\n fillRule: \"evenodd\",\n xlinkHref: \"#path-300\"\n}))), /*#__PURE__*/React.createElement(\"use\", {\n id: \"Rectangle\",\n stroke: \"#5F668A\",\n mask: \"url(#mask-6)\",\n strokeDasharray: 1,\n xlinkHref: \"#path-5\"\n}), /*#__PURE__*/React.createElement(\"use\", {\n id: \"Rectangle-Copy\",\n stroke: \"#5F668A\",\n mask: \"url(#mask-8)\",\n strokeDasharray: 1,\n xlinkHref: \"#path-7\"\n}), /*#__PURE__*/React.createElement(\"use\", {\n id: \"Rectangle-Copy-2\",\n stroke: \"#5F668A\",\n mask: \"url(#mask-10)\",\n strokeDasharray: 1,\n xlinkHref: \"#path-9\"\n}), /*#__PURE__*/React.createElement(\"use\", {\n id: \"Rectangle-Copy-3\",\n stroke: \"#5F668A\",\n mask: \"url(#mask-12)\",\n strokeDasharray: 1,\n xlinkHref: \"#path-11\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle\",\n fill: \"#EBEFFF\",\n x: 37,\n y: 56,\n width: 84,\n height: 6,\n rx: 2\n}))));\n\nfunction SvgEmptyTable(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"160px\",\n height: \"160px\",\n viewBox: \"0 0 160 160\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmptyTable);\nexport default __webpack_public_path__ + \"static/media/empty-table.250884a9.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core'\nimport classNames from 'classnames'\nimport React, { memo } from 'react'\n\nimport { H4 } from 'src/components/typography'\nimport { ReactComponent as EmptyTableIcon } from 'src/styling/icons/table/empty-table.svg'\n\nconst styles = {\n emptyTable: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n marginTop: 52\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst EmptyTable = memo(({ message, className }) => {\n const classes = useStyles()\n\n return (\n \n \n
{message} \n \n )\n})\n\nexport default EmptyTable\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nconst useStyles = makeStyles({\n table: {\n // backgroundColor: tableHeaderColor,\n tableLayout: 'fixed',\n borderCollapse: 'separate',\n borderSpacing: '0 0'\n }\n})\n\nconst Table = memo(({ className, children, ...props }) => {\n const classes = useStyles()\n return (\n \n )\n})\n\nexport default Table\n","import React, { memo } from 'react'\n\nconst TableBody = memo(({ children, ...props }) => (\n {children} \n))\n\nexport default TableBody\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport { spacer } from 'src/styling/variables'\n\nconst useStyles = makeStyles({\n td: {\n padding: [[0, spacer * 3]]\n },\n alignRight: {\n textAlign: 'right'\n }\n})\n\nconst TableCell = memo(\n ({ colspan, rightAlign, className, children, ...props }) => {\n const classes = useStyles()\n const styles = {\n [classes.td]: true,\n [classes.alignRight]: rightAlign\n }\n\n return (\n \n {children}\n \n )\n }\n)\n\nexport default TableCell\n","import React, { memo } from 'react'\n\nconst TableHead = memo(({ children, ...props }) => (\n {children} \n))\n\nexport default TableHead\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport typographyStyles from 'src/components/typography/styles'\nimport {\n tableHeaderColor,\n tableHeaderHeight,\n spacer,\n white\n} from 'src/styling/variables'\n\nconst { tl2 } = typographyStyles\n\nconst useStyles = makeStyles({\n th: {\n extend: tl2,\n backgroundColor: tableHeaderColor,\n height: tableHeaderHeight,\n textAlign: 'left',\n color: white,\n padding: `0 ${spacer * 3}px`\n },\n alignRight: {\n textAlign: 'right'\n }\n})\n\nconst TableHeaderCell = memo(\n ({ rightAlign, children, className, ...props }) => {\n const classes = useStyles()\n const styles = {\n [classes.th]: true,\n [classes.alignRight]: rightAlign\n }\n\n return (\n \n {children}\n \n )\n }\n)\n\nexport default TableHeaderCell\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport typographyStyles from 'src/components/typography/styles'\nimport {\n tableCellColor,\n tableCellHeight,\n tableSmCellHeight,\n tableLgCellHeight,\n tableErrorColor,\n tableSuccessColor\n} from 'src/styling/variables'\n\nconst { info2, p } = typographyStyles\n\nconst useStyles = makeStyles({\n tr: {\n extend: p,\n padding: 4,\n height: tableCellHeight,\n backgroundColor: tableCellColor\n },\n lg: {\n extend: info2,\n height: tableLgCellHeight\n },\n sm: {\n height: tableSmCellHeight\n },\n error: {\n backgroundColor: tableErrorColor\n },\n success: {\n backgroundColor: tableSuccessColor\n }\n})\n\nconst TableRow = memo(\n ({ className, children, header, error, success, size = 'sm', ...props }) => {\n const classes = useStyles()\n const classnamesObj = {\n [classes.tr]: !header,\n [classes.sm]: !header && size === 'sm',\n [classes.lg]: !header && size === 'lg',\n [classes.error]: error,\n [classes.success]: success\n }\n\n return (\n \n {children}\n \n )\n }\n)\n\nexport default TableRow\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/label/icon/down\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-6\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n fill: \"#FFECEB\",\n cx: 6,\n cy: 6,\n r: 6\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\",\n transform: \"translate(6.096194, 6.096194) rotate(-315.000000) translate(-6.096194, -6.096194) translate(2.596194, 3.096194)\",\n stroke: \"#FF584A\"\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path-2\",\n points: \"3.15780333 -4.54747351e-13 6.15780333 2.82998193 3.15780333 5.65996386\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 5.42178888,\n y1: 2.82998193,\n x2: -5.45696821e-13,\n y2: 2.82998193,\n id: \"Path-3\"\n}))));\n\nfunction SvgDown(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDown);\nexport default __webpack_public_path__ + \"static/media/down.919a0c2a.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/label/icon/equal\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-6\",\n fill: \"#EBEFFF\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n cx: 6,\n cy: 6,\n r: 6\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group\",\n transform: \"translate(4.000000, 4.000000)\",\n stroke: \"#5F668A\",\n strokeLinecap: \"square\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 1,\n x2: 4,\n y2: 1,\n id: \"Line-12\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 3,\n x2: 4,\n y2: 3,\n id: \"Line-12\"\n})));\n\nfunction SvgEqual(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEqual);\nexport default __webpack_public_path__ + \"static/media/equal.f4103789.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/label/icon/up\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-6\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n fill: \"#ECFBEF\",\n cx: 6,\n cy: 6,\n r: 6\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\",\n transform: \"translate(6.096194, 6.096194) rotate(-45.000000) translate(-6.096194, -6.096194) translate(2.596194, 3.096194)\",\n stroke: \"#00CD5A\"\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path-2\",\n points: \"3.15780333 -4.54747351e-13 6.15780333 2.82998193 3.15780333 5.65996386\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 5.42178888,\n y1: 2.82998193,\n x2: -5.45696821e-13,\n y2: 2.82998193,\n id: \"Path-3\"\n}))));\n\nfunction SvgUp(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgUp);\nexport default __webpack_public_path__ + \"static/media/up.bcdf0fc7.svg\";\nexport { ForwardRef as ReactComponent };","import { intervalToDuration } from 'date-fns'\nimport { getTimezoneOffset } from 'date-fns-tz'\nimport * as R from 'ramda'\n\nconst timezones = {\n 'Pacific/Midway': { short: 'SST', long: 'Midway Island, Samoa' },\n 'Pacific/Honolulu': { short: 'HAST', long: 'Hawaii' },\n 'America/Juneau': { short: 'AKST', long: 'Alaska' },\n 'America/Boise': { short: 'MST', long: 'Mountain Time' },\n 'America/Dawson': { short: 'MST', long: 'Dawson, Yukon' },\n 'America/Chihuahua': { short: null, long: 'Chihuahua, La Paz, Mazatlan' },\n 'America/Phoenix': { short: 'MST', long: 'Arizona' },\n 'America/Chicago': { short: 'CST', long: 'Central Time' },\n 'America/Regina': { short: 'CST', long: 'Saskatchewan' },\n 'America/Mexico_City': {\n short: 'CST',\n long: 'Guadalajara, Mexico City, Monterrey'\n },\n 'America/Belize': { short: 'CST', long: 'Central America' },\n 'America/Detroit': { short: 'EST', long: 'Eastern Time' },\n 'America/Bogota': { short: 'COT', long: 'Bogota, Lima, Quito' },\n 'America/Caracas': { short: 'VET', long: 'Caracas, La Paz' },\n 'America/Santiago': { short: 'CLST', long: 'Santiago' },\n 'America/St_Johns': { short: 'HNTN', long: 'Newfoundland and Labrador' },\n 'America/Sao_Paulo': { short: 'BRT', long: 'Brasilia' },\n 'America/Tijuana': { short: 'PST', long: 'Tijuana' },\n 'America/Montevideo': { short: 'UYT', long: 'Montevideo' },\n 'America/Argentina/Buenos_Aires': {\n short: null,\n long: 'Buenos Aires, Georgetown'\n },\n 'America/Godthab': { short: null, long: 'Greenland' },\n 'America/Los_Angeles': { short: 'PST', long: 'Pacific Time' },\n 'Atlantic/Azores': { short: 'AZOT', long: 'Azores' },\n 'Atlantic/Cape_Verde': { short: 'CVT', long: 'Cape Verde Islands' },\n GMT: { short: 'GMT', long: 'UTC' },\n 'Europe/London': { short: 'GMT', long: 'Edinburgh, London' },\n 'Europe/Dublin': { short: 'GMT', long: 'Dublin' },\n 'Europe/Lisbon': { short: 'WET', long: 'Lisbon' },\n 'Africa/Casablanca': { short: 'WET', long: 'Casablanca, Monrovia' },\n 'Atlantic/Canary': { short: 'WET', long: 'Canary Islands' },\n 'Europe/Belgrade': {\n short: 'CET',\n long: 'Belgrade, Bratislava, Budapest, Ljubljana, Prague'\n },\n 'Europe/Sarajevo': { short: 'CET', long: 'Sarajevo, Skopje, Warsaw, Zagreb' },\n 'Europe/Brussels': {\n short: 'CET',\n long: 'Brussels, Copenhagen, Madrid, Paris'\n },\n 'Europe/Amsterdam': {\n short: 'CET',\n long: 'Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna'\n },\n 'Africa/Algiers': { short: 'CET', long: 'West Central Africa' },\n 'Europe/Bucharest': { short: 'EET', long: 'Bucharest' },\n 'Africa/Cairo': { short: 'EET', long: 'Cairo' },\n 'Europe/Helsinki': {\n short: 'EET',\n long: 'Helsinki, Kiev, Riga, Sofia, Tallinn, Vilnius'\n },\n 'Europe/Athens': { short: 'EET', long: 'Athens, Istanbul, Minsk' },\n 'Asia/Jerusalem': { short: 'IST', long: 'Jerusalem' },\n 'Africa/Harare': { short: 'CAT', long: 'Harare, Pretoria' },\n 'Europe/Moscow': { short: 'MSK', long: 'Moscow, St. Petersburg, Volgograd' },\n 'Asia/Kuwait': { short: 'AST', long: 'Kuwait, Riyadh' },\n 'Africa/Nairobi': { short: 'EAT', long: 'Nairobi' },\n 'Asia/Baghdad': { short: 'AST', long: 'Baghdad' },\n 'Asia/Tehran': { short: 'IRST', long: 'Tehran' },\n 'Asia/Dubai': { short: 'GST', long: 'Abu Dhabi, Muscat' },\n 'Asia/Baku': { short: 'AZT', long: 'Baku, Tbilisi, Yerevan' },\n 'Asia/Kabul': { short: 'AFT', long: 'Kabul' },\n 'Asia/Yekaterinburg': { short: 'YEKT', long: 'Ekaterinburg' },\n 'Asia/Karachi': { short: 'PKT', long: 'Islamabad, Karachi, Tashkent' },\n 'Asia/Kolkata': { short: 'IST', long: 'Chennai, Kolkata, Mumbai, New Delhi' },\n 'Asia/Kathmandu': { short: null, long: 'Kathmandu' },\n 'Asia/Dhaka': { short: 'BST', long: 'Astana, Dhaka' },\n 'Asia/Colombo': { short: 'IST', long: 'Sri Jayawardenepura' },\n 'Asia/Almaty': { short: 'ALMT', long: 'Almaty, Novosibirsk' },\n 'Asia/Rangoon': { short: null, long: 'Yangon Rangoon' },\n 'Asia/Bangkok': { short: 'ICT', long: 'Bangkok, Hanoi, Jakarta' },\n 'Asia/Krasnoyarsk': { short: 'KRAT', long: 'Krasnoyarsk' },\n 'Asia/Shanghai': {\n short: 'CST',\n long: 'Beijing, Chongqing, Hong Kong SAR, Urumqi'\n },\n 'Asia/Kuala_Lumpur': { short: 'MYT', long: 'Kuala Lumpur, Singapore' },\n 'Asia/Taipei': { short: 'CST', long: 'Taipei' },\n 'Australia/Perth': { short: 'AWST', long: 'Perth' },\n 'Asia/Irkutsk': { short: 'IRKT', long: 'Irkutsk, Ulaanbaatar' },\n 'Asia/Seoul': { short: 'KST', long: 'Seoul' },\n 'Asia/Tokyo': { short: 'JST', long: 'Osaka, Sapporo, Tokyo' },\n 'Asia/Yakutsk': { short: 'YAKT', long: 'Yakutsk' },\n 'Australia/Darwin': { short: 'ACST', long: 'Darwin' },\n 'Australia/Adelaide': { short: 'ACDT', long: 'Adelaide' },\n 'Australia/Sydney': { short: 'AEDT', long: 'Canberra, Melbourne, Sydney' },\n 'Australia/Brisbane': { short: 'AEST', long: 'Brisbane' },\n 'Australia/Hobart': { short: 'AEDT', long: 'Hobart' },\n 'Asia/Vladivostok': { short: 'VLAT', long: 'Vladivostok' },\n 'Pacific/Guam': { short: 'ChST', long: 'Guam, Port Moresby' },\n 'Asia/Magadan': {\n short: 'MAGT',\n long: 'Magadan, Solomon Islands, New Caledonia'\n },\n 'Asia/Kamchatka': { short: 'PETT', long: 'Kamchatka, Marshall Islands' },\n 'Pacific/Fiji': { short: 'FJT', long: 'Fiji Islands' },\n 'Pacific/Auckland': { short: 'NZDT', long: 'Auckland, Wellington' },\n 'Pacific/Tongatapu': { short: null, long: \"Nuku'alofa\" }\n}\n\nconst buildTzLabels = timezoneList => {\n const pairs = R.toPairs(timezoneList)\n return R.reduce(\n (acc, value) => {\n const isNegative = getTimezoneOffset(value[0]) < 0\n const duration = intervalToDuration({\n start: 0,\n end: Math.abs(getTimezoneOffset(value[0]))\n })\n\n const hours = duration.hours.toLocaleString('en-US', {\n minimumIntegerDigits: 2,\n useGrouping: false\n })\n const minutes = duration.minutes.toLocaleString('en-US', {\n minimumIntegerDigits: 2,\n useGrouping: false\n })\n\n const prefix = `(GMT${isNegative ? `-` : `+`}${hours}:${minutes})`\n\n acc.push({\n label: `${prefix} - ${value[1].long}`,\n code: value[0]\n })\n\n return acc\n },\n [],\n pairs\n )\n}\n\nconst labels = buildTzLabels(timezones)\n\nexport { labels, timezones }\n","import { zonedTimeToUtc, utcToZonedTime } from 'date-fns-tz/fp'\nimport { format } from 'date-fns/fp'\n\nconst toUtc = date => {\n const browserTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone\n return zonedTimeToUtc(browserTimezone, date)\n}\n\nconst toTimezone = (date, timezone) => {\n const browserTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone\n return utcToZonedTime(timezone, zonedTimeToUtc(browserTimezone, date))\n}\n\nconst formatDate = (date, timezone, pattern) => {\n const browserTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone\n const newDate = utcToZonedTime(\n timezone,\n zonedTimeToUtc(browserTimezone, date)\n )\n return format(pattern, newDate)\n}\n\nconst formatDateNonUtc = (date, pattern) => format(pattern, date)\n\nexport { toUtc, toTimezone, formatDate, formatDateNonUtc }\n","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport { Label1 } from 'src/components/typography/index'\nimport { java, neon, white } from 'src/styling/variables'\n\nconst styles = {\n wrapper: {\n display: 'flex',\n height: 142\n },\n percentageBox: {\n height: 142,\n borderRadius: 4,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n whiteSpace: 'pre'\n },\n label: {\n color: white\n },\n inColor: {\n backgroundColor: java\n },\n outColor: {\n backgroundColor: neon\n },\n other: {\n minWidth: '6px',\n borderRadius: 2\n },\n inWidth: {\n width: value => `${value}%`,\n marginRight: value => (value === 100 ? 0 : 4)\n },\n outWidth: {\n width: value => `${100 - value}%`\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst PercentageChart = ({ cashIn, cashOut }) => {\n const value = cashIn || cashOut !== 0 ? cashIn : 50\n const classes = useStyles(value)\n\n const buildPercentageView = value => {\n if (value <= 15) return\n return {value}% \n }\n\n const percentageClasses = {\n [classes.percentageBox]: true,\n [classes.other]: value < 5 && value > 0\n }\n\n return (\n \n
\n {buildPercentageView(value, 'cashIn')}\n
\n
\n {buildPercentageView(100 - value, 'cashOut')}\n
\n
\n )\n}\n\nexport default PercentageChart\n","import * as d3 from 'd3'\nimport * as R from 'ramda'\nimport React, { useEffect, useRef, useCallback } from 'react'\n\nimport { backgroundColor, zircon, primaryColor } from 'src/styling/variables'\n\nconst transactionProfit = tx => {\n const cashInFee = tx.cashInFee ? Number.parseFloat(tx.cashInFee) : 0\n const commission =\n Number.parseFloat(tx.commissionPercentage) * Number.parseFloat(tx.fiat)\n return commission + cashInFee\n}\n\nconst mockPoint = (tx, offsetMs, profit) => {\n const date = new Date(new Date(tx.created).getTime() + offsetMs).toISOString()\n return { created: date, profit }\n}\n\n// if we're viewing transactions for the past day, then we group by hour. If not, we group by day\nconst formatDay = ({ created }) =>\n new Date(created).toISOString().substring(0, 10)\nconst formatHour = ({ created }) =>\n new Date(created).toISOString().substring(0, 13)\n\nconst reducer = (acc, tx) => {\n const currentProfit = acc.profit || 0\n return { ...tx, profit: currentProfit + transactionProfit(tx) }\n}\n\nconst timeFrameMS = {\n Day: 24 * 3600 * 1000,\n Week: 7 * 24 * 3600 * 1000,\n Month: 30 * 24 * 3600 * 1000\n}\n\nconst RefLineChart = ({\n data: realData,\n previousTimeData,\n previousProfit,\n timeFrame\n}) => {\n const svgRef = useRef()\n\n const drawGraph = useCallback(() => {\n const svg = d3.select(svgRef.current)\n const margin = { top: 0, right: 0, bottom: 0, left: 0 }\n const width = 336 - margin.left - margin.right\n const height = 140 - margin.top - margin.bottom\n\n const massageData = () => {\n // if we're viewing transactions for the past day, then we group by hour. If not, we group by day\n const method = timeFrame === 'Day' ? formatHour : formatDay\n\n const aggregatedTX = R.values(R.reduceBy(reducer, [], method, realData))\n // if no point exists, then return 2 points at y = 0\n if (!aggregatedTX.length && !previousTimeData.length) {\n const mockPoint1 = { created: new Date().toISOString(), profit: 0 }\n const mockPoint2 = mockPoint(mockPoint1, -3600000, 0)\n return [[mockPoint1, mockPoint2], true]\n }\n // if this time period has no txs, but previous time period has, then % change is -100%\n if (!aggregatedTX.length && previousTimeData.length) {\n const mockPoint1 = {\n created: new Date().toISOString(),\n profit: 0\n }\n const mockPoint2 = mockPoint(mockPoint1, -timeFrameMS[timeFrame], 1)\n return [[mockPoint1, mockPoint2], false]\n }\n // if this time period has txs, but previous doesn't, then % change is +100%\n if (aggregatedTX.length && !previousTimeData.length) {\n const mockPoint1 = {\n created: new Date().toISOString(),\n profit: 1\n }\n const mockPoint2 = mockPoint(mockPoint1, -timeFrameMS[timeFrame], 0)\n return [[mockPoint1, mockPoint2], false]\n }\n // if only one point exists, create point on the left - otherwise the line won't be drawn\n if (aggregatedTX.length === 1) {\n return [\n R.append(\n {\n created: new Date(\n Date.now() - timeFrameMS[timeFrame]\n ).toISOString(),\n profit: previousProfit\n },\n aggregatedTX\n ),\n false\n ]\n }\n // the boolean value is for zeroProfit. It makes the line render at y = 0 instead of y = 50% of container height\n return [aggregatedTX, false]\n }\n\n /* Important step to make the graph look good!\n This function groups transactions by either day or hour depending on the time frame\n This makes the line look smooth and not all wonky when there are many transactions in a given time\n */\n const [data, zeroProfit] = massageData()\n\n // sets width of the graph\n svg.attr('width', width)\n\n // background color for the graph\n svg\n .append('rect')\n .attr('x', 0)\n .attr('y', -margin.top)\n .attr('width', width + margin.left + margin.right)\n .attr('height', height + margin.top)\n .attr('fill', backgroundColor)\n .attr('transform', `translate(${0},${margin.top})`)\n\n // gradient color for the graph (creates the \"url\", the color is applied by calling the url, in the area color fill )\n svg\n .append('linearGradient')\n .attr('id', 'area-gradient')\n .attr('gradientUnits', 'userSpaceOnUse')\n .attr('x1', 0)\n .attr('y1', 0)\n .attr('x2', 0)\n .attr('y2', '100%')\n .selectAll('stop')\n .data([\n { offset: '0%', color: zircon },\n { offset: '25%', color: zircon },\n { offset: '100%', color: backgroundColor }\n ])\n .enter()\n .append('stop')\n .attr('offset', function(d) {\n return d.offset\n })\n .attr('stop-color', function(d) {\n return d.color\n })\n\n const g = svg\n .append('g')\n .attr('transform', `translate(${margin.left},${margin.top})`)\n\n const xDomain = d3.extent(data, t => t.created)\n const yDomain = zeroProfit ? [0, 0.1] : [0, d3.max(data, t => t.profit)]\n\n const y = d3\n .scaleLinear()\n // 30 is a margin so that the labels and the percentage change label can fit and not overlay the line path\n .range([height, 40])\n .domain([0, yDomain[1]])\n const x = d3\n .scaleTime()\n .domain([new Date(xDomain[0]), new Date(xDomain[1])])\n .range([0, width])\n\n const line = d3\n .line()\n .x(function(d) {\n return x(new Date(d.created))\n })\n .y(function(d) {\n return y(d.profit)\n })\n\n const area = d3\n .area()\n .x(function(d) {\n return x(new Date(d.created))\n })\n .y0(height)\n .y1(function(d) {\n return y(d.profit)\n })\n\n // area color fill\n g.append('path')\n .datum(data)\n .attr('d', area)\n .attr('fill', 'url(#area-gradient)')\n // draw the line\n g.append('path')\n .datum(data)\n .attr('d', line)\n .attr('fill', 'none')\n .attr('stroke-width', '2')\n .attr('stroke-linejoin', 'round')\n .attr('stroke', primaryColor)\n }, [realData, timeFrame, previousTimeData, previousProfit])\n\n useEffect(() => {\n // first we clear old chart DOM elements on component update\n d3.select(svgRef.current)\n .selectAll('*')\n .remove()\n drawGraph()\n }, [drawGraph, realData])\n\n return (\n <>\n \n >\n )\n}\nexport default RefLineChart\n","const MINUTE = 60 * 1000\nconst HOUR = 60 * 60 * 1000\nconst DAY = 24 * 60 * 60 * 1000\nconst WEEK = 7 * 24 * 60 * 60 * 1000\nconst MONTH = 30 * 24 * 60 * 60 * 1000\n\nexport { MINUTE, HOUR, DAY, WEEK, MONTH }\n","import BigNumber from 'bignumber.js'\nimport * as d3 from 'd3'\nimport { getTimezoneOffset } from 'date-fns-tz'\nimport { add, format, startOfWeek, startOfYear } from 'date-fns/fp'\nimport React, { useCallback, useEffect, useMemo, useRef } from 'react'\n\nimport {\n java,\n neon,\n subheaderDarkColor,\n offColor,\n fontSecondary,\n backgroundColor\n} from 'src/styling/variables'\nimport { MINUTE, DAY, WEEK, MONTH } from 'src/utils/time'\n\nconst Graph = ({ data, timeFrame, timezone }) => {\n const ref = useRef(null)\n\n const GRAPH_HEIGHT = 250\n const GRAPH_WIDTH = 555\n const GRAPH_MARGIN = useMemo(\n () => ({\n top: 20,\n right: 0.5,\n bottom: 27,\n left: 43.5\n }),\n []\n )\n\n const offset = getTimezoneOffset(timezone)\n const NOW = Date.now() + offset\n\n const periodDomains = {\n Day: [NOW - DAY, NOW],\n Week: [NOW - WEEK, NOW],\n Month: [NOW - MONTH, NOW]\n }\n\n const dataPoints = useMemo(\n () => ({\n Day: {\n freq: 24,\n step: 60 * 60 * 1000,\n tick: d3.utcHour.every(4),\n labelFormat: '%H:%M'\n },\n Week: {\n freq: 7,\n step: 24 * 60 * 60 * 1000,\n tick: d3.utcDay.every(1),\n labelFormat: '%a %d'\n },\n Month: {\n freq: 30,\n step: 24 * 60 * 60 * 1000,\n tick: d3.utcDay.every(2),\n labelFormat: '%d'\n }\n }),\n []\n )\n\n const filterDay = useCallback(\n x => (timeFrame === 'day' ? x.getUTCHours() === 0 : x.getUTCDate() === 1),\n [timeFrame]\n )\n\n const getPastAndCurrentDayLabels = useCallback(d => {\n const currentDate = new Date(d)\n const currentDateDay = currentDate.getUTCDate()\n const currentDateWeekday = currentDate.getUTCDay()\n const currentDateMonth = currentDate.getUTCMonth()\n\n const previousDate = new Date(currentDate.getTime())\n previousDate.setUTCDate(currentDateDay - 1)\n\n const previousDateDay = previousDate.getUTCDate()\n const previousDateWeekday = previousDate.getUTCDay()\n const previousDateMonth = previousDate.getUTCMonth()\n\n const daysOfWeek = Array.from(Array(7)).map((_, i) =>\n format('EEE', add({ days: i }, startOfWeek(new Date())))\n )\n\n const months = Array.from(Array(12)).map((_, i) =>\n format('LLL', add({ months: i }, startOfYear(new Date())))\n )\n\n return {\n previous:\n currentDateMonth !== previousDateMonth\n ? months[previousDateMonth]\n : `${daysOfWeek[previousDateWeekday]} ${previousDateDay}`,\n current:\n currentDateMonth !== previousDateMonth\n ? months[currentDateMonth]\n : `${daysOfWeek[currentDateWeekday]} ${currentDateDay}`\n }\n }, [])\n\n const buildTicks = useCallback(\n domain => {\n const points = []\n\n const roundDate = d => {\n const step = dataPoints[timeFrame].step\n return new Date(Math.ceil(d.valueOf() / step) * step)\n }\n\n for (let i = 0; i <= dataPoints[timeFrame].freq; i++) {\n const stepDate = new Date(NOW - i * dataPoints[timeFrame].step)\n if (roundDate(stepDate) > domain[1]) continue\n if (stepDate < domain[0]) continue\n points.push(roundDate(stepDate))\n }\n\n return points\n },\n [NOW, dataPoints, timeFrame]\n )\n\n const x = d3\n .scaleUtc()\n .domain(periodDomains[timeFrame])\n .range([GRAPH_MARGIN.left, GRAPH_WIDTH - GRAPH_MARGIN.right])\n\n const y = d3\n .scaleLinear()\n .domain([\n 0,\n (d3.max(data, d => new BigNumber(d.fiat).toNumber()) ?? 1000) * 1.05\n ])\n .nice()\n .range([GRAPH_HEIGHT - GRAPH_MARGIN.bottom, GRAPH_MARGIN.top])\n\n const buildBackground = useCallback(\n g => {\n g.append('rect')\n .attr('x', 0)\n .attr('y', GRAPH_MARGIN.top)\n .attr('width', GRAPH_WIDTH)\n .attr('height', GRAPH_HEIGHT - GRAPH_MARGIN.top - GRAPH_MARGIN.bottom)\n .attr('fill', backgroundColor)\n },\n [GRAPH_MARGIN]\n )\n\n const buildXAxis = useCallback(\n g =>\n g\n .attr(\n 'transform',\n `translate(0, ${GRAPH_HEIGHT - GRAPH_MARGIN.bottom})`\n )\n .call(\n d3\n .axisBottom(x)\n .ticks(dataPoints[timeFrame].tick)\n .tickFormat(d => {\n return d3.timeFormat(dataPoints[timeFrame].labelFormat)(\n d.getTime() + d.getTimezoneOffset() * MINUTE\n )\n })\n )\n .call(g => g.select('.domain').remove()),\n [GRAPH_MARGIN, dataPoints, timeFrame, x]\n )\n\n const buildYAxis = useCallback(\n g =>\n g\n .attr('transform', `translate(${GRAPH_MARGIN.left}, 0)`)\n .call(d3.axisLeft(y).ticks(5))\n .call(g => g.select('.domain').remove())\n .selectAll('text')\n .attr('dy', '-0.25rem'),\n [GRAPH_MARGIN, y]\n )\n\n const buildGrid = useCallback(\n g => {\n g.attr('stroke', subheaderDarkColor)\n .attr('fill', subheaderDarkColor)\n // Vertical lines\n .call(g =>\n g\n .append('g')\n .selectAll('line')\n .data(buildTicks(x.domain()))\n .join('line')\n .attr('x1', d => 0.5 + x(d))\n .attr('x2', d => 0.5 + x(d))\n .attr('y1', GRAPH_MARGIN.top)\n .attr('y2', GRAPH_HEIGHT - GRAPH_MARGIN.bottom)\n .attr('stroke-width', 1)\n )\n // Horizontal lines\n .call(g =>\n g\n .append('g')\n .selectAll('line')\n .data(\n d3\n .axisLeft(y)\n .scale()\n .ticks(5)\n )\n .join('line')\n .attr('y1', d => 0.5 + y(d))\n .attr('y2', d => 0.5 + y(d))\n .attr('x1', GRAPH_MARGIN.left)\n .attr('x2', GRAPH_WIDTH - GRAPH_MARGIN.right)\n )\n // Thick vertical lines\n .call(g =>\n g\n .append('g')\n .selectAll('line')\n .data(buildTicks(x.domain()).filter(filterDay))\n .join('line')\n .attr('class', 'dateSeparator')\n .attr('x1', d => 0.5 + x(d))\n .attr('x2', d => 0.5 + x(d))\n .attr('y1', GRAPH_MARGIN.top - 10)\n .attr('y2', GRAPH_HEIGHT - GRAPH_MARGIN.bottom)\n .attr('stroke-width', 2)\n .join('text')\n )\n // Left side breakpoint label\n .call(g => {\n const separator = d3\n ?.select('.dateSeparator')\n ?.node()\n ?.getBBox()\n\n if (!separator) return\n\n const breakpoint = buildTicks(x.domain()).filter(filterDay)\n\n const labels = getPastAndCurrentDayLabels(breakpoint)\n\n return g\n .append('text')\n .attr('x', separator.x - 7)\n .attr('y', separator.y)\n .attr('text-anchor', 'end')\n .attr('dy', '.25em')\n .text(labels.previous)\n })\n // Right side breakpoint label\n .call(g => {\n const separator = d3\n ?.select('.dateSeparator')\n ?.node()\n ?.getBBox()\n\n if (!separator) return\n\n const breakpoint = buildTicks(x.domain()).filter(filterDay)\n\n const labels = getPastAndCurrentDayLabels(breakpoint)\n\n return g\n .append('text')\n .attr('x', separator.x + 7)\n .attr('y', separator.y)\n .attr('text-anchor', 'start')\n .attr('dy', '.25em')\n .text(labels.current)\n })\n },\n [GRAPH_MARGIN, buildTicks, getPastAndCurrentDayLabels, x, y, filterDay]\n )\n\n const formatTicksText = useCallback(\n () =>\n d3\n .selectAll('.tick text')\n .style('stroke', offColor)\n .style('fill', offColor)\n .style('stroke-width', 0)\n .style('font-family', fontSecondary),\n []\n )\n\n const formatText = useCallback(\n () =>\n d3\n .selectAll('text')\n .style('stroke', offColor)\n .style('fill', offColor)\n .style('stroke-width', 0)\n .style('font-family', fontSecondary),\n []\n )\n\n const formatTicks = useCallback(() => {\n d3.selectAll('.tick line')\n .style('stroke', 'transparent')\n .style('fill', 'transparent')\n }, [])\n\n const drawData = useCallback(\n g => {\n g.selectAll('circle')\n .data(data)\n .join('circle')\n .attr('cx', d => {\n const created = new Date(d.created)\n return x(created.setTime(created.getTime() + offset))\n })\n .attr('cy', d => y(new BigNumber(d.fiat).toNumber()))\n .attr('fill', d => (d.txClass === 'cashIn' ? java : neon))\n .attr('r', 3.5)\n },\n [data, offset, x, y]\n )\n\n const drawChart = useCallback(() => {\n const svg = d3\n .select(ref.current)\n .attr('viewBox', [0, 0, GRAPH_WIDTH, GRAPH_HEIGHT])\n\n svg.append('g').call(buildBackground)\n svg.append('g').call(buildGrid)\n svg.append('g').call(buildXAxis)\n svg.append('g').call(buildYAxis)\n svg.append('g').call(formatTicksText)\n svg.append('g').call(formatText)\n svg.append('g').call(formatTicks)\n svg.append('g').call(drawData)\n\n return svg.node()\n }, [\n buildBackground,\n buildGrid,\n buildXAxis,\n buildYAxis,\n drawData,\n formatText,\n formatTicks,\n formatTicksText\n ])\n\n useEffect(() => {\n d3.select(ref.current)\n .selectAll('*')\n .remove()\n drawChart()\n }, [drawChart])\n\n return \n}\n\nexport default Graph\n","import React from 'react'\n\nimport { Info1, Label1 } from 'src/components/typography/index'\nconst InfoWithLabel = ({ info, label }) => {\n return (\n <>\n {info} \n {label} \n >\n )\n}\n\nexport default InfoWithLabel\n","import {\n offColor,\n offDarkColor,\n spacer,\n primaryColor,\n fontSize3,\n fontSecondary,\n fontColor,\n spring4,\n tomato,\n comet\n} from 'src/styling/variables'\n\nconst styles = {\n titleWrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n flexDirection: 'row'\n },\n titleAndButtonsContainer: {\n display: 'flex'\n },\n error: {\n marginLeft: 12\n },\n icon: {\n marginRight: 6\n },\n h4: {\n margin: 0,\n marginRight: spacer * 8\n },\n label: {\n cursor: 'pointer',\n minHeight: 0,\n minWidth: 0,\n padding: 0,\n color: offColor,\n textTransform: 'none',\n borderBottom: `2px solid transparent`,\n display: 'inline-block',\n lineHeight: 1.5,\n '&:hover': {\n backgroundColor: 'transparent'\n }\n },\n newHighlightedLabel: {\n cursor: 'pointer',\n color: primaryColor,\n fontWeight: 700,\n borderRadius: 0,\n minHeight: 0,\n minWidth: 0,\n textTransform: 'none',\n borderBottom: `2px solid ${primaryColor}`,\n display: 'inline-block',\n lineHeight: 1.5,\n '&:hover': {\n backgroundColor: 'transparent'\n }\n },\n navButton: {\n marginLeft: 24\n },\n navContainer: {\n display: 'flex'\n },\n percentUp: {\n fontSize: fontSize3,\n fontFamily: fontSecondary,\n fontWeight: 700,\n color: spring4,\n height: 10\n },\n percentDown: {\n fontSize: fontSize3,\n fontFamily: fontSecondary,\n fontWeight: 700,\n color: tomato,\n height: 13\n },\n percentNeutral: {\n fontSize: fontSize3,\n fontFamily: fontSecondary,\n fontWeight: 700,\n color: comet\n },\n profitContainer: {\n display: 'flex',\n justifyContent: 'space-between',\n margin: '23px 26px -30px 16px',\n position: 'relative'\n },\n profitLabel: {\n fontSize: fontSize3,\n fontFamily: fontSecondary,\n fontWeight: 700,\n color: fontColor\n },\n directionIcon: {\n width: 16,\n height: 16,\n marginBottom: -2,\n marginRight: 4\n },\n emptyTransactions: {\n paddingTop: 40\n },\n commissionProfitTitle: {\n marginBottom: 16\n },\n graphHeader: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n marginBottom: 16\n },\n labelWrapper: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n '& > div': {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n marginLeft: 15,\n '&:first-child': {\n marginLeft: 0\n },\n '& > p': {\n marginLeft: 8\n }\n }\n },\n txGraphContainer: {\n height: 300,\n marginTop: 30\n },\n commissionsGraphContainer: {\n height: 250,\n marginTop: 30\n },\n verticalLine: {\n height: 15,\n width: 1,\n backgroundColor: offDarkColor,\n marginLeft: 31,\n marginRight: 16\n }\n}\n\nexport default styles\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { H4 } from 'src/components/typography'\n\nimport styles from './SystemPerformance.styles'\n\nconst useStyles = makeStyles(styles)\nconst ranges = ['Month', 'Week', 'Day']\n\nconst Nav = ({ handleSetRange, showPicker }) => {\n const classes = useStyles()\n const [clickedItem, setClickedItem] = useState('Day')\n\n const isSelected = R.equals(clickedItem)\n const handleClick = range => {\n setClickedItem(range)\n handleSetRange(range)\n }\n\n return (\n \n
\n
{'System performance'} \n \n {showPicker && (\n
\n {ranges.map((it, idx) => {\n return (\n
handleClick(e.target.innerText)}\n className={\n isSelected(it)\n ? classnames(classes.newHighlightedLabel, classes.navButton)\n : classnames(classes.label, classes.navButton)\n }>\n {it}\n
\n )\n })}\n
\n )}\n
\n )\n}\n\nexport default Nav\n","import { useQuery } from '@apollo/react-hooks'\nimport Grid from '@material-ui/core/Grid'\nimport { makeStyles } from '@material-ui/core/styles'\nimport BigNumber from 'bignumber.js'\nimport classnames from 'classnames'\nimport { isAfter, sub } from 'date-fns/fp'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { EmptyTable } from 'src/components/table'\nimport { Label1, Label2, P } from 'src/components/typography/index'\nimport { ReactComponent as PercentDownIcon } from 'src/styling/icons/dashboard/down.svg'\nimport { ReactComponent as PercentNeutralIcon } from 'src/styling/icons/dashboard/equal.svg'\nimport { ReactComponent as PercentUpIcon } from 'src/styling/icons/dashboard/up.svg'\nimport { java, neon } from 'src/styling/variables'\nimport { fromNamespace } from 'src/utils/config'\nimport { timezones } from 'src/utils/timezone-list'\nimport { toTimezone } from 'src/utils/timezones'\n\nimport PercentageChart from './Graphs/PercentageChart'\nimport LineChart from './Graphs/RefLineChart'\nimport Scatterplot from './Graphs/RefScatterplot'\nimport InfoWithLabel from './InfoWithLabel'\nimport Nav from './Nav'\nimport styles from './SystemPerformance.styles'\n\nBigNumber.config({ ROUNDING_MODE: BigNumber.ROUND_HALF_UP })\n\nconst getFiats = R.map(R.prop('fiat'))\nconst useStyles = makeStyles(styles)\nconst mapToFee = R.map(R.prop('cashInFee'))\n\nconst getDateSecondsAgo = (seconds = 0, startDate = null) => {\n const date = startDate ? new Date(startDate) : new Date()\n return sub({ seconds: seconds }, date)\n}\n\nconst ranges = {\n Day: {\n left: getDateSecondsAgo(2 * 24 * 3600, new Date()),\n right: getDateSecondsAgo(24 * 3600, new Date())\n },\n Week: {\n left: getDateSecondsAgo(14 * 24 * 3600, new Date()),\n right: getDateSecondsAgo(7 * 24 * 3600, new Date())\n },\n Month: {\n left: getDateSecondsAgo(60 * 24 * 3600, new Date()),\n right: getDateSecondsAgo(30 * 24 * 3600, new Date())\n }\n}\n\nconst GET_DATA = gql`\n query getData($excludeTestingCustomers: Boolean) {\n transactions(excludeTestingCustomers: $excludeTestingCustomers) {\n fiatCode\n fiat\n cashInFee\n commissionPercentage\n created\n txClass\n error\n }\n fiatRates {\n code\n name\n rate\n }\n config\n }\n`\n\nconst reducer = (acc, it) =>\n (acc +=\n Number.parseFloat(it.commissionPercentage) * Number.parseFloat(it.fiat))\n\nconst SystemPerformance = () => {\n const classes = useStyles()\n const [selectedRange, setSelectedRange] = useState('Day')\n const { data, loading } = useQuery(GET_DATA, {\n variables: { excludeTestingCustomers: true }\n })\n const fiatLocale = fromNamespace('locale')(data?.config).fiatCurrency\n const timezone = fromNamespace('locale')(data?.config).timezone\n\n const isInRangeAndNoError = getLastTimePeriod => t => {\n if (t.error !== null) return false\n if (!getLastTimePeriod) {\n return (\n t.error === null &&\n isAfter(ranges[selectedRange].right, toTimezone(t.created, timezone)) &&\n isAfter(toTimezone(t.created, timezone), new Date())\n )\n }\n return (\n t.error === null &&\n isAfter(ranges[selectedRange].left, toTimezone(t.created, timezone)) &&\n isAfter(toTimezone(t.created, timezone), ranges[selectedRange].right)\n )\n }\n\n const convertFiatToLocale = item => {\n if (item.fiatCode === fiatLocale) return item\n const itemRate = R.find(R.propEq('code', item.fiatCode))(data.fiatRates)\n const localeRate = R.find(R.propEq('code', fiatLocale))(data.fiatRates)\n const multiplier = localeRate.rate / itemRate.rate\n return { ...item, fiat: parseFloat(item.fiat) * multiplier }\n }\n\n const transactionsToShow = R.map(convertFiatToLocale)(\n R.filter(isInRangeAndNoError(false), data?.transactions ?? [])\n )\n const transactionsLastTimePeriod = R.map(convertFiatToLocale)(\n R.filter(isInRangeAndNoError(true), data?.transactions ?? [])\n )\n\n const getNumTransactions = () => {\n return R.length(transactionsToShow)\n }\n\n const getFiatVolume = () =>\n new BigNumber(R.sum(getFiats(transactionsToShow))).toFormat(2)\n\n const getProfit = transactions => {\n const cashInFees = R.sum(mapToFee(transactions))\n const commissionFees = R.reduce(reducer, 0, transactions)\n\n return new BigNumber(commissionFees + cashInFees)\n }\n\n const getPercentChange = () => {\n const thisTimePeriodProfit = getProfit(transactionsToShow)\n const previousTimePeriodProfit = getProfit(transactionsLastTimePeriod)\n\n if (thisTimePeriodProfit.eq(previousTimePeriodProfit)) return 0\n if (previousTimePeriodProfit.eq(0)) return 100\n\n return thisTimePeriodProfit\n .minus(previousTimePeriodProfit)\n .times(100)\n .div(previousTimePeriodProfit)\n .toNumber()\n }\n\n const getDirectionPercent = () => {\n const [cashIn, cashOut] = R.partition(R.propEq('txClass', 'cashIn'))(\n transactionsToShow\n )\n const totalLength = cashIn.length + cashOut.length\n if (totalLength === 0) {\n return { cashIn: 0, cashOut: 0 }\n }\n\n return {\n cashIn: Math.round((cashIn.length / totalLength) * 100),\n cashOut: Math.round((cashOut.length / totalLength) * 100)\n }\n }\n\n const percentChange = getPercentChange()\n\n const percentageClasses = {\n [classes.percentDown]: percentChange < 0,\n [classes.percentUp]: percentChange > 0,\n [classes.percentNeutral]: percentChange === 0\n }\n\n const getPercentageIcon = () => {\n if (percentChange === 0)\n return \n if (percentChange > 0)\n return \n return \n }\n\n return (\n <>\n \n {!loading && R.isEmpty(data.transactions) && (\n \n )}\n {!loading && !R.isEmpty(data.transactions) && (\n <>\n \n \n \n \n \n \n \n {/* todo new customers */}\n \n \n \n \n
Transactions \n
\n
\n {timezones[timezone].short ?? timezones[timezone].long}{' '}\n timezone\n
\n
\n
\n \n \n \n In \n
\n
\n \n \n \n Out \n
\n
\n
\n \n \n \n \n \n \n Profit from commissions\n \n \n
\n {`${getProfit(transactionsToShow).toFormat(2)} ${\n data?.config.locale_fiatCurrency\n }`}\n
\n
\n {getPercentageIcon()}\n {`${new BigNumber(percentChange).toFormat(2)}%`}\n
\n
\n \n \n \n \n Direction \n \n
\n \n \n \n In \n
\n
\n \n \n \n Out \n
\n
\n \n \n \n \n \n \n >\n )}\n >\n )\n}\n\nexport default SystemPerformance\n","import SystemPerformance from './SystemPerformance'\nexport default SystemPerformance\n","import Grid from '@material-ui/core/Grid'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React from 'react'\n\nimport styles from './Dashboard.styles'\nimport SystemPerformance from './SystemPerformance'\n\nconst useStyles = makeStyles(styles)\n\nconst LeftSide = () => {\n const classes = useStyles()\n\n return (\n \n \n \n
\n \n )\n}\n\nexport default LeftSide\n","import Grid from '@material-ui/core/Grid'\nimport { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport PropTypes from 'prop-types'\nimport React from 'react'\n\nimport { white } from 'src/styling/variables'\n\nconst cardState = Object.freeze({\n DEFAULT: 'default',\n SHRUNK: 'shrunk',\n EXPANDED: 'expanded'\n})\n\nconst styles = {\n card: {\n wordWrap: 'break-word',\n boxShadow: '0 0 4px 0 rgba(0, 0, 0, 0.08)',\n borderRadius: 12,\n padding: 24,\n backgroundColor: white\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst CollapsibleCard = ({ className, state, shrunkComponent, children }) => {\n const classes = useStyles()\n return (\n \n {state === cardState.SHRUNK ? shrunkComponent : children}\n \n )\n}\n\nCollapsibleCard.propTypes = {\n shrunkComponent: PropTypes.node.isRequired\n}\n\nexport default CollapsibleCard\nexport { cardState }\n","import { primaryColor, comet } from 'src/styling/variables'\n\nconst styles = {\n container: {\n display: 'flex',\n justifyContent: 'space-between'\n },\n h4: {\n margin: 0,\n marginBottom: 10\n },\n centerLabel: {\n marginBottom: 0,\n padding: 0,\n textAlign: 'center'\n },\n upperButtonLabel: {\n marginTop: -3,\n marginBottom: 24\n },\n button: {\n color: primaryColor,\n marginTop: 0,\n minHeight: 0,\n minWidth: 0,\n padding: 0,\n textTransform: 'none',\n '&:hover': {\n backgroundColor: 'transparent'\n }\n },\n alertsTableContainer: {\n margin: 0\n },\n expandedAlertsTableContainer: {\n margin: 0,\n maxHeight: 460\n },\n noAlertsLabel: {\n color: comet,\n marginLeft: -5,\n height: 100\n },\n table: {\n maxHeight: 465,\n overflowX: 'hidden',\n overflowY: 'auto'\n },\n listItemText: {\n margin: '8px 0 8px 0'\n },\n linkIcon: {\n marginLeft: 'auto',\n cursor: 'pointer'\n }\n}\nexport default styles\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"DASHBOARD\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"dashboard_v9#1-(week)\",\n transform: \"translate(-772.000000, -212.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"dashboard/row/alert/positive\",\n transform: \"translate(756.000000, 204.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2\",\n transform: \"translate(16.000000, 8.000000)\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Rectangle-2-Copy-45\",\n fill: \"#FF584A\",\n fillRule: \"nonzero\",\n points: \"0 11 16 11 16 16 0 16\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-10\",\n stroke: \"#FF584A\",\n strokeWidth: 2,\n x: 1,\n y: 1,\n width: 14,\n height: 14\n})))));\n\nfunction SvgCashboxEmpty(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"16px\",\n height: \"16px\",\n viewBox: \"0 0 16 16\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"07E3DD15-D5E4-46A8-BF7B-064F598230CE\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCashboxEmpty);\nexport default __webpack_public_path__ + \"static/media/cashbox-empty.828bd3b9.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"path-1-right\",\n cx: 10,\n cy: 10,\n r: 10\n}));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"pop-up/action/download-logs/date-range-copy-2\",\n transform: \"translate(-232.000000, -187.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-contain-b-copy-4\",\n transform: \"translate(242.000000, 197.000000) scale(-1, 1) rotate(-270.000000) translate(-242.000000, -197.000000) translate(232.000000, 187.000000)\"\n}, /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask-2\",\n fill: \"white\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#path-1-right\"\n})), /*#__PURE__*/React.createElement(\"use\", {\n id: \"Mask\",\n fill: \"#EBEFFF\",\n fillRule: \"nonzero\",\n xlinkHref: \"#path-1-right\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/wizzard\",\n mask: \"url(#mask-2)\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(6.666667, 6.000000)\",\n id: \"Group\"\n}, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path-3\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n points: \"0 4.83333333 3.33333333 8.16666667 6.66666667 4.83333333\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 3.33333333,\n y1: 0.25,\n x2: 3.33333333,\n y2: 6.5,\n id: \"Path-4\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n})))))));\n\nfunction SvgRight(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgRight);\nexport default __webpack_public_path__ + \"static/media/right.d3dd4af6.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core'\nimport List from '@material-ui/core/List'\nimport ListItem from '@material-ui/core/ListItem'\nimport * as R from 'ramda'\nimport React from 'react'\nimport { useHistory } from 'react-router-dom'\n\nimport { P } from 'src/components/typography/index'\nimport { ReactComponent as Wrench } from 'src/styling/icons/action/wrench/zodiac.svg'\nimport { ReactComponent as CashBoxEmpty } from 'src/styling/icons/cassettes/cashbox-empty.svg'\nimport { ReactComponent as AlertLinkIcon } from 'src/styling/icons/month arrows/right.svg'\nimport { ReactComponent as WarningIcon } from 'src/styling/icons/warning-icon/tomato.svg'\n\nimport styles from './Alerts.styles'\nconst useStyles = makeStyles(styles)\n\nconst icons = {\n error: ,\n fiatBalance: (\n \n )\n}\n\nconst links = {\n error: '/maintenance/machine-status',\n fiatBalance: '/maintenance/cash-cassettes',\n cryptoBalance: '/maintenance/funding'\n}\n\nconst AlertsTable = ({ numToRender, alerts, machines }) => {\n const history = useHistory()\n const classes = useStyles()\n const alertsToRender = R.slice(0, numToRender, alerts)\n\n const alertMessage = alert => {\n const deviceId = alert.detail.deviceId\n if (!deviceId) return `${alert.message}`\n\n const deviceName = R.defaultTo('Unpaired device', machines[deviceId])\n return `${alert.message} - ${deviceName}`\n }\n\n return (\n \n {alertsToRender.map((alert, idx) => {\n return (\n \n {icons[alert.type] || (\n \n )}\n {alertMessage(alert)}
\n history.push(links[alert.type] || '/dashboard')}\n />\n \n )\n })}\n
\n )\n}\n\nexport default AlertsTable\n","import { useQuery } from '@apollo/react-hooks'\nimport Button from '@material-ui/core/Button'\nimport Grid from '@material-ui/core/Grid'\nimport { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport { cardState } from 'src/components/CollapsibleCard'\nimport { Label1, H4 } from 'src/components/typography'\n\nimport styles from './Alerts.styles'\nimport AlertsTable from './AlertsTable'\n\nconst NUM_TO_RENDER = 3\n\nconst GET_ALERTS = gql`\n query getAlerts {\n alerts {\n id\n type\n detail\n message\n created\n read\n valid\n }\n machines {\n deviceId\n name\n }\n }\n`\n\nconst useStyles = makeStyles(styles)\n\nconst Alerts = ({ onReset, onExpand, size }) => {\n const classes = useStyles()\n const showAllItems = size === cardState.EXPANDED\n const { data } = useQuery(GET_ALERTS)\n const alerts = R.path(['alerts'])(data) ?? []\n const machines = R.compose(\n R.map(R.prop('name')),\n R.indexBy(R.prop('deviceId'))\n )(data?.machines ?? [])\n const alertsLength = alerts.length\n\n const alertsTableContainerClasses = {\n [classes.alertsTableContainer]: !showAllItems,\n [classes.expandedAlertsTableContainer]: showAllItems\n }\n\n return (\n <>\n \n
{`Alerts (${alertsLength})`} \n {showAllItems && (\n \n \n {'Show less'}\n \n \n )}\n \n \n \n {!alerts.length && (\n \n No new alerts. Your system is running smoothly.\n \n )}\n \n \n \n {!showAllItems && alertsLength > NUM_TO_RENDER && (\n \n \n onExpand('alerts')}\n size=\"small\"\n disableRipple\n disableFocusRipple\n className={classes.button}>\n {`Show all (${alerts.length})`}\n \n \n \n )}\n >\n )\n}\nexport default Alerts\n","import Alerts from './Alerts'\nexport default Alerts\n","import Chip from '@material-ui/core/Chip'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React from 'react'\n\nimport {\n tomato,\n mistyRose,\n pumpkin,\n secondaryColorDarker as spring4,\n inputFontWeight,\n spring3,\n zircon,\n primaryColor,\n smallestFontSize,\n inputFontFamily,\n spacer,\n linen\n} from '../styling/variables'\n\nconst colors = {\n error: tomato,\n warning: pumpkin,\n success: spring4,\n neutral: primaryColor\n}\n\nconst backgroundColors = {\n error: mistyRose,\n warning: linen,\n success: spring3,\n neutral: zircon\n}\n\nconst useStyles = makeStyles({\n root: {\n borderRadius: spacer / 2,\n marginTop: spacer / 2,\n marginRight: spacer / 4,\n marginBottom: spacer / 2,\n marginLeft: spacer / 4,\n height: spacer * 3,\n backgroundColor: ({ type }) => backgroundColors[type]\n },\n label: {\n fontSize: smallestFontSize,\n fontWeight: inputFontWeight,\n fontFamily: inputFontFamily,\n paddingRight: spacer / 2,\n paddingLeft: spacer / 2,\n color: ({ type }) => colors[type]\n }\n})\n\nconst Status = ({ status }) => {\n const classes = useStyles({ type: status.type })\n return \n}\n\nconst MainStatus = ({ statuses }) => {\n const mainStatus =\n statuses.find(s => s.type === 'error') ||\n statuses.find(s => s.type === 'warning') ||\n statuses[0]\n const plus = { label: `+${statuses.length - 1}`, type: mainStatus.type }\n\n return (\n \n \n {statuses.length > 1 && }\n
\n )\n}\n\nexport { Status, MainStatus }\n","import {\n backgroundColor,\n offColor,\n errorColor,\n primaryColor\n} from 'src/styling/variables'\n\nconst styles = {\n container: {\n display: 'flex',\n justifyContent: 'space-between'\n },\n label: {\n margin: 0,\n color: offColor\n },\n row: {\n backgroundColor: backgroundColor,\n borderBottom: 'none'\n },\n clickableRow: {\n cursor: 'pointer'\n },\n header: {\n display: 'flex',\n alignItems: 'center',\n whiteSpace: 'pre'\n },\n error: {\n color: errorColor\n },\n button: {\n color: primaryColor,\n minHeight: 0,\n minWidth: 0,\n padding: 0,\n textTransform: 'none',\n '&:hover': {\n backgroundColor: 'transparent'\n },\n marginBottom: -40\n },\n buttonLabel: {\n position: 'absolute',\n bottom: 160,\n marginBottom: 0\n },\n upperButtonLabel: {\n textAlign: 'center',\n marginBottom: 0,\n marginTop: 0\n },\n statusHeader: {\n marginLeft: 2\n },\n table: {\n maxHeight: 440,\n '&::-webkit-scrollbar': {\n width: 7\n },\n '&::-webkit-scrollbar-thumb': {\n backgroundColor: offColor,\n borderRadius: 5\n }\n },\n tableBody: {\n overflow: 'auto'\n },\n h4: {\n marginTop: 0\n },\n tl2: {\n display: 'inline'\n },\n label1: {\n display: 'inline'\n },\n machinesTableContainer: {\n marginTop: 10,\n height: 220\n },\n expandedMachinesTableContainer: {\n marginTop: 10,\n height: 414\n },\n centerLabel: {\n marginBottom: 0,\n padding: 0,\n textAlign: 'center'\n },\n machineNameWrapper: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center'\n },\n machineRedirectIcon: {\n marginLeft: 10\n }\n}\n\nexport default styles\n","import { useQuery } from '@apollo/react-hooks'\nimport { makeStyles, withStyles } from '@material-ui/core'\nimport Table from '@material-ui/core/Table'\nimport TableBody from '@material-ui/core/TableBody'\nimport TableCell from '@material-ui/core/TableCell'\nimport TableContainer from '@material-ui/core/TableContainer'\nimport TableHead from '@material-ui/core/TableHead'\nimport TableRow from '@material-ui/core/TableRow'\nimport classnames from 'classnames'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React from 'react'\nimport { useHistory } from 'react-router-dom'\n\nimport { Status } from 'src/components/Status'\nimport { Label2, TL2 } from 'src/components/typography'\n// import { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport { ReactComponent as MachineLinkIcon } from 'src/styling/icons/month arrows/right.svg'\nimport { fromNamespace } from 'src/utils/config'\n\nimport styles from './MachinesTable.styles'\n\n// percentage threshold where below this number the text in the cash cassettes percentage turns red\nconst PERCENTAGE_THRESHOLD = 20\n\nconst GET_CONFIG = gql`\n query getConfig {\n config\n }\n`\n\nconst useStyles = makeStyles(styles)\n\nconst StyledCell = withStyles({\n root: {\n borderBottom: '4px solid white',\n padding: 0,\n paddingLeft: 15\n }\n})(TableCell)\n\nconst HeaderCell = withStyles({\n root: {\n borderBottom: '4px solid white',\n padding: 0,\n paddingLeft: 15,\n backgroundColor: 'white'\n }\n})(TableCell)\n\nconst MachinesTable = ({ machines = [], numToRender }) => {\n const classes = useStyles()\n const history = useHistory()\n\n const { data } = useQuery(GET_CONFIG)\n const fillingPercentageSettings = fromNamespace(\n 'notifications',\n R.path(['config'], data) ?? {}\n )\n\n const getPercent = (notes, capacity = 500) => {\n return Math.round((notes / capacity) * 100)\n }\n\n const makePercentageText = (cassetteIdx, notes, capacity = 500) => {\n const percent = getPercent(notes, capacity)\n const percentageThreshold = R.pipe(\n R.path([`fillingPercentageCassette${cassetteIdx}`]),\n R.defaultTo(PERCENTAGE_THRESHOLD)\n )(fillingPercentageSettings)\n return percent < percentageThreshold ? (\n {`${percent}%`} \n ) : (\n {`${percent}%`} \n )\n }\n\n const redirect = ({ name, deviceId }) => {\n return history.push(`/machines/${deviceId}`, {\n selectedMachine: name\n })\n }\n\n const maxNumberOfCassettes = Math.max(\n ...R.map(it => it.numberOfCassettes, machines),\n 0\n )\n\n return (\n \n \n \n \n \n \n Machines \n
\n \n \n \n Status \n
\n \n {/* \n \n \n
\n */}\n {R.map(\n it => (\n \n \n \n {it + 1} \n
\n \n ),\n R.times(R.identity, maxNumberOfCassettes)\n )}\n \n \n \n {machines.map((machine, idx) => {\n if (idx < numToRender) {\n return (\n redirect(machine)}\n className={classnames(classes.row)}\n key={machine.deviceId + idx}>\n \n \n {machine.name} \n redirect(machine)}\n />\n
\n \n \n \n \n {R.map(\n it =>\n machine.numberOfCassettes >= it ? (\n \n {makePercentageText(it, machine[`cassette${it}`])}\n \n ) : (\n \n {`— %`} \n \n ),\n R.range(1, maxNumberOfCassettes + 1)\n )}\n \n )\n }\n return null\n })}\n \n
\n \n )\n}\n\nexport default MachinesTable\n","import { useQuery } from '@apollo/react-hooks'\nimport Button from '@material-ui/core/Button'\nimport Grid from '@material-ui/core/Grid'\nimport { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport { cardState as cardState_ } from 'src/components/CollapsibleCard'\n// import ActionButton from 'src/components/buttons/ActionButton'\nimport { H4, TL2, Label1 } from 'src/components/typography'\n\nimport MachinesTable from './MachinesTable'\nimport styles from './MachinesTable.styles'\n\nconst useStyles = makeStyles(styles)\n\n// number of machines in the table to render on page load\nconst NUM_TO_RENDER = 4\n\nconst GET_DATA = gql`\n query getData {\n machines {\n name\n deviceId\n cashbox\n cassette1\n cassette2\n cassette3\n cassette4\n numberOfCassettes\n statuses {\n label\n type\n }\n }\n serverVersion\n uptime {\n name\n state\n uptime\n }\n }\n`\n\n/* const parseUptime = time => {\n if (time < 60) return `${time}s`\n if (time < 3600) return `${Math.floor(time / 60)}m`\n if (time < 86400) return `${Math.floor(time / 60 / 60)}h`\n return `${Math.floor(time / 60 / 60 / 24)}d`\n} */\n\nconst SystemStatus = ({ onReset, onExpand, size }) => {\n const classes = useStyles()\n const { data, loading } = useQuery(GET_DATA)\n\n const machines = R.path(['machines'])(data) ?? []\n const showAllItems = size === cardState_.EXPANDED\n\n const machinesTableContainerClasses = {\n [classes.machinesTableContainer]: !showAllItems,\n [classes.expandedMachinesTableContainer]: showAllItems\n }\n // const uptime = data?.uptime ?? [{}]\n return (\n <>\n \n
System status {' '}\n {showAllItems && (\n \n \n {'Show less'}\n \n \n )}\n \n {!loading && (\n <>\n \n {/* \n On hold until system uptime is implemented\n \n \n {parseUptime(uptime[0].time)}\n \n System up time \n */}\n \n {data?.serverVersion} \n server version \n \n \n {/*\n On hold until system update features are implemented\n console.log('Upgrade button clicked')}>\n Update to v10.6.0\n */}\n \n \n \n \n \n \n \n {!showAllItems && machines.length > NUM_TO_RENDER && (\n \n \n onExpand()}\n size=\"small\"\n disableRipple\n disableFocusRipple\n className={classes.button}>\n {`Show all (${machines.length})`}\n \n \n \n )}\n >\n )}\n >\n )\n}\n\nexport default SystemStatus\n","import SystemStatus from './SystemStatus'\nexport default SystemStatus\n","import Button from '@material-ui/core/Button'\nimport Grid from '@material-ui/core/Grid'\nimport { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { useState } from 'react'\n\nimport CollapsibleCard, { cardState } from 'src/components/CollapsibleCard'\nimport { H4, Label1 } from 'src/components/typography'\n\nimport Alerts from './Alerts'\nimport styles from './Dashboard.styles'\nimport SystemStatus from './SystemStatus'\n\nconst useStyles = makeStyles(styles)\n\nconst ShrunkCard = ({ title, buttonName, onUnshrink }) => {\n const classes = useStyles()\n return (\n \n
{title} \n \n \n {buttonName}\n \n \n \n )\n}\n\nconst RightSide = () => {\n const classes = useStyles()\n const [systemStatusSize, setSystemStatusSize] = useState(cardState.DEFAULT)\n const [alertsSize, setAlertsSize] = useState(cardState.DEFAULT)\n\n const onReset = () => {\n setAlertsSize(cardState.DEFAULT)\n setSystemStatusSize(cardState.DEFAULT)\n }\n return (\n \n \n <>\n
\n }>\n
{\n setAlertsSize(cardState.EXPANDED)\n setSystemStatusSize(cardState.SHRUNK)\n }}\n onReset={onReset}\n size={alertsSize}\n />\n \n \n }>\n {\n setSystemStatusSize(cardState.EXPANDED)\n setAlertsSize(cardState.SHRUNK)\n }}\n onReset={onReset}\n size={systemStatusSize}\n />\n \n >\n \n \n )\n}\n\nexport default RightSide\n","import { useQuery } from '@apollo/react-hooks'\nimport Grid from '@material-ui/core/Grid'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\nimport { useHistory } from 'react-router-dom'\n\nimport { Button } from 'src/components/buttons'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport { H1, Info2, TL2, Label1 } from 'src/components/typography'\nimport AddMachine from 'src/pages/AddMachine'\nimport { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport { errorColor } from 'src/styling/variables'\n\nimport styles from './Dashboard.styles'\nimport Footer from './Footer'\nimport LeftSide from './LeftSide'\nimport RightSide from './RightSide'\nconst useStyles = makeStyles(styles)\n\nconst GET_DATA = gql`\n query getData {\n machines {\n name\n }\n serverVersion\n }\n`\n\nconst Dashboard = () => {\n const history = useHistory()\n const classes = useStyles()\n const [open, setOpen] = useState(false)\n\n const { data, loading } = useQuery(GET_DATA)\n\n const onPaired = machine => {\n setOpen(false)\n history.push('/maintenance/machine-status', { id: machine.deviceId })\n }\n\n return !loading ? (\n !R.isEmpty(data.machines) ? (\n <>\n \n \n
\n \n Cash-in \n
\n
\n \n Cash-out \n
\n
\n \n \n \n Action Required \n
\n
\n \n \n \n \n \n \n \n \n \n \n
\n \n >\n ) : (\n <>\n {open && (\n setOpen(false)} onPaired={onPaired} />\n )}\n \n \n \n {data?.serverVersion} {' '}\n server version \n \n
\n \n \n
\n
No machines on your system yet \n \n To fully take advantage of Lamassu Admin, add a new machine to\n your system\n \n setOpen(true)}>+ Add new machine \n \n
\n \n >\n )\n ) : (\n <>>\n )\n}\n\nexport default Dashboard\n","import Dashboard from './Dashboard'\nexport default Dashboard\n","import { useFormikContext } from 'formik'\nimport React, { useEffect } from 'react'\nimport { Prompt } from 'react-router-dom'\n\nconst PROMPT_DEFAULT_MESSAGE =\n 'You have unsaved changes on this page. Are you sure you want to leave?'\n\nconst PromptWhenDirty = ({ message = PROMPT_DEFAULT_MESSAGE }) => {\n const formik = useFormikContext()\n\n const hasChanges = formik.dirty && formik.submitCount === 0\n\n useEffect(() => {\n if (hasChanges) {\n window.onbeforeunload = confirmExit\n } else {\n window.onbeforeunload = undefined\n }\n }, [hasChanges])\n\n const confirmExit = () => {\n return PROMPT_DEFAULT_MESSAGE\n }\n\n return \n}\n\nexport default PromptWhenDirty\n","import typographyStyles from 'src/components/typography/styles'\nimport { bySize, bold } from 'src/styling/helpers'\nimport {\n tableHeaderColor,\n tableHeaderHeight,\n tableErrorColor,\n tableSuccessColor,\n spacer,\n white,\n tableDoubleHeaderHeight,\n offColor,\n errorColor\n} from 'src/styling/variables'\n\nconst { tl2, p, label1 } = typographyStyles\n\nexport default {\n size: ({ size }) => bySize(size),\n bold,\n header: {\n extend: tl2,\n backgroundColor: tableHeaderColor,\n height: tableHeaderHeight,\n textAlign: 'left',\n color: white,\n display: 'flex',\n alignItems: 'center'\n },\n doubleHeader: {\n extend: tl2,\n backgroundColor: tableHeaderColor,\n height: tableDoubleHeaderHeight,\n color: white,\n display: 'table-row'\n },\n thDoubleLevel: ({ width }) => ({\n width,\n display: 'table-cell',\n '& > :first-child': {\n margin: [[0, 10]],\n extend: label1,\n fontWeight: 700,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: offColor,\n color: white,\n borderRadius: [[0, 0, 8, 8]],\n height: 28\n },\n '& > :last-child': {\n padding: [[0, 11]],\n display: 'table-cell',\n verticalAlign: 'middle',\n height: tableDoubleHeaderHeight - 28\n }\n }),\n cellDoubleLevel: {\n display: 'flex',\n padding: [[0, spacer * 2]]\n },\n td: ({ textAlign, width }) => ({\n width,\n padding: [[1, spacer * 3, 0, spacer * 3]],\n textAlign\n }),\n tdHeader: {\n verticalAlign: 'middle',\n display: 'table-cell',\n padding: [[0, spacer * 3]]\n },\n trError: {\n backgroundColor: tableErrorColor\n },\n trAdding: {\n backgroundColor: tableSuccessColor\n },\n mainContent: ({ size }) => {\n const sizes = {\n sm: 34,\n lg: 68\n }\n const minHeight = sizes[size] || 48\n return {\n display: 'flex',\n alignItems: 'center',\n minHeight\n }\n },\n // mui-overrides\n cardContentRoot: {\n margin: 0,\n padding: 0,\n '&:last-child': {\n padding: 0\n }\n },\n card: {\n extend: p,\n '&:before': {\n height: 0\n },\n margin: [[4, 0, 0, 0]],\n width: '100%',\n boxShadow: [[0, 0, 4, 0, 'rgba(0, 0, 0, 0.08)']]\n },\n actionCol: {\n marginLeft: 'auto'\n },\n errorContent: {\n padding: [[12, 0, 12, 24]],\n color: errorColor\n }\n}\n","import Card from '@material-ui/core/Card'\nimport CardContent from '@material-ui/core/CardContent'\nimport { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport { Link } from 'src/components/buttons'\n\nimport styles from './Table.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst Table = ({ children, className, ...props }) => (\n \n {children}\n
\n)\n\nconst THead = ({ children, className }) => {\n const classes = useStyles()\n return {children}
\n}\n\nconst TDoubleLevelHead = ({ children, className }) => {\n const classes = useStyles()\n\n return (\n \n {children}\n
\n )\n}\n\nconst TBody = ({ children, className }) => {\n return {children}
\n}\n\nconst Td = ({\n children,\n header,\n className,\n width = 100,\n size,\n bold,\n textAlign,\n action\n}) => {\n const classes = useStyles({ textAlign, width, size })\n const classNames = {\n [classes.td]: true,\n [classes.tdHeader]: header,\n [classes.actionCol]: action,\n [classes.size]: !header,\n [classes.bold]: !header && bold\n }\n return {children}
\n}\n\nconst Th = ({ children, ...props }) => {\n return (\n \n {children}\n \n )\n}\n\nconst ThDoubleLevel = ({ title, children, className, width }) => {\n const classes = useStyles({ width })\n\n return (\n \n
{title}
\n
{children}
\n
\n )\n}\n\nconst Tr = ({\n onClick,\n error,\n errorMessage,\n shouldShowError,\n children,\n className,\n size,\n newRow\n}) => {\n const classes = useStyles({ size })\n const cardClasses = { root: classes.cardContentRoot }\n const classNames = {\n [classes.tr]: true,\n [classes.trError]: error,\n [classes.card]: true,\n [classes.trAdding]: newRow,\n className\n }\n\n return (\n <>\n \n \n {children}
\n {error && shouldShowError && (\n {errorMessage}
\n )}\n \n \n >\n )\n}\n\nconst EditCell = ({ save, cancel }) => (\n \n \n Cancel\n \n \n Save\n \n \n)\n\nexport {\n Table,\n THead,\n TDoubleLevelHead,\n TBody,\n Tr,\n Td,\n Th,\n ThDoubleLevel,\n EditCell\n}\n","import React from 'react'\n\nexport default React.createContext()\n","import * as sanctuary from 'sanctuary'\n\nconst checkOnlyDev = () => {\n if (process.env.NODE_ENV !== 'production') return false\n\n return (\n process.env.NODE_ENV === 'development' &&\n process.env.REACT_APP_TYPE_CHECK_SANCTUARY === 'true'\n )\n}\n\nconst S = sanctuary.create({\n checkTypes: checkOnlyDev(),\n env: sanctuary.env\n})\n\nexport default S\n","import * as R from 'ramda'\n\nimport S from './sanctuary'\n\nconst formatLong = value => {\n if (!value || value.length <= 20) return value\n\n return `${value.slice(0, 8)}(...)${value.slice(\n value.length - 8,\n value.length\n )}`\n}\n\nconst toFirstLower = S.compose(S.joinWith(''))(R.adjust(0, S.toLower))\nconst toFirstUpper = S.compose(S.joinWith(''))(R.adjust(0, S.toUpper))\nconst onlyFirstToUpper = S.compose(toFirstUpper)(S.toLower)\n\nconst splitOnUpper = R.compose(\n S.splitOn(' '),\n R.replace(/([A-Z])/g, ' $1'),\n toFirstLower\n)\nconst startCase = R.compose(\n S.joinWith(' '),\n S.map(onlyFirstToUpper),\n splitOnUpper\n)\n\nconst singularOrPlural = (amount, singularStr, pluralStr) =>\n parseInt(amount) === 1 ? singularStr : pluralStr\n\nexport { startCase, onlyFirstToUpper, formatLong, singularOrPlural }\n","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport * as R from 'ramda'\nimport React, { useContext } from 'react'\n\nimport {\n Td,\n THead,\n TDoubleLevelHead,\n ThDoubleLevel\n} from 'src/components/fake-table/Table'\nimport { startCase } from 'src/utils/string'\n\nimport TableCtx from './Context'\n\nconst styles = {\n orderedBySpan: {\n whiteSpace: 'nowrap'\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst groupSecondHeader = elements => {\n const [toSHeader, noSHeader] = R.partition(R.has('doubleHeader'))(elements)\n\n if (!toSHeader.length) {\n return [elements, THead]\n }\n\n const index = R.indexOf(toSHeader[0], elements)\n const width = R.compose(R.sum, R.map(R.path(['width'])))(toSHeader)\n\n const innerElements = R.insert(\n index,\n { width, elements: toSHeader, name: toSHeader[0].doubleHeader },\n noSHeader\n )\n\n return [innerElements, TDoubleLevelHead]\n}\n\nconst Header = () => {\n const classes = useStyles()\n const {\n elements,\n enableEdit,\n enableEditText,\n editWidth,\n enableDelete,\n deleteWidth,\n enableToggle,\n toggleWidth,\n orderedBy,\n DEFAULT_COL_SIZE\n } = useContext(TableCtx)\n\n const mapElement2 = (it, idx) => {\n const { width, elements, name } = it\n\n if (elements && elements.length) {\n return (\n \n {elements.map(mapElement)}\n \n )\n }\n\n return mapElement(it, idx)\n }\n\n const mapElement = (\n { name, width = DEFAULT_COL_SIZE, header, textAlign },\n idx\n ) => {\n const orderClasses = classnames({\n [classes.orderedBySpan]:\n R.isNil(header) && !R.isNil(orderedBy) && R.equals(name, orderedBy.code)\n })\n\n const attachOrderedByToComplexHeader = header => {\n if (!R.isNil(orderedBy) && R.equals(name, orderedBy.code)) {\n try {\n const cloneHeader = R.clone(header)\n const children = R.path(['props', 'children'], cloneHeader)\n const spanChild = R.find(it => R.equals(it.type, 'span'), children)\n spanChild.props.children = R.append(' -', spanChild.props.children)\n return cloneHeader\n } catch (e) {\n return header\n }\n }\n return header\n }\n\n return (\n \n {!R.isNil(header) ? (\n <>{attachOrderedByToComplexHeader(header) ?? header}>\n ) : (\n \n {startCase(name)}{' '}\n {!R.isNil(orderedBy) && R.equals(name, orderedBy.code) && '-'}\n \n )}\n \n )\n }\n\n const [innerElements, HeaderElement] = groupSecondHeader(elements)\n\n return (\n \n {innerElements.map(mapElement2)}\n {enableEdit && (\n \n {enableEditText ?? `Edit`}\n \n )}\n {enableDelete && (\n \n Delete\n \n )}\n {enableToggle && (\n \n Enable\n \n )}\n \n )\n}\n\nexport default Header\n","import {\r\n Dialog,\r\n DialogActions,\r\n DialogContent,\r\n makeStyles\r\n} from '@material-ui/core'\r\nimport React from 'react'\r\n\r\nimport { Button, IconButton } from 'src/components/buttons'\r\nimport { H4, P } from 'src/components/typography'\r\nimport { ReactComponent as CloseIcon } from 'src/styling/icons/action/close/zodiac.svg'\r\nimport { spacer } from 'src/styling/variables'\r\n\r\nimport ErrorMessage from './ErrorMessage'\r\n\r\nconst useStyles = makeStyles({\r\n content: {\r\n width: 434,\r\n padding: spacer * 2,\r\n paddingRight: spacer * 3.5\r\n },\r\n titleSection: {\r\n padding: spacer * 2,\r\n paddingRight: spacer * 1.5,\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n margin: 0\r\n },\r\n actions: {\r\n padding: spacer * 4,\r\n paddingTop: spacer * 2\r\n },\r\n title: {\r\n margin: 0\r\n },\r\n closeButton: {\r\n padding: 0,\r\n marginTop: -(spacer / 2)\r\n }\r\n})\r\n\r\nexport const DialogTitle = ({ children, close }) => {\r\n const classes = useStyles()\r\n return (\r\n \r\n {children}\r\n {close && (\r\n \r\n \r\n \r\n )}\r\n
\r\n )\r\n}\r\n\r\nexport const DeleteDialog = ({\r\n title = 'Confirm Delete',\r\n open = false,\r\n onConfirmed,\r\n onDismissed,\r\n item = 'item',\r\n confirmationMessage = `Are you sure you want to delete this ${item}?`,\r\n errorMessage = ''\r\n}) => {\r\n const classes = useStyles()\r\n\r\n return (\r\n \r\n onDismissed()}>\r\n {title} \r\n \r\n {errorMessage && (\r\n \r\n \r\n {errorMessage.split(':').map(error => (\r\n <>\r\n {error}\r\n \r\n >\r\n ))}\r\n \r\n \r\n )}\r\n \r\n {confirmationMessage && {confirmationMessage}
}\r\n \r\n \r\n Confirm \r\n \r\n \r\n )\r\n}\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: \"arrow-path\",\n d: \"M5.3501239,7.53208616 L0.473798314,2.73082122 C-0.158421727,2.1051411 -0.158421727,1.0952488 0.476737158,0.466675069 C1.11220338,-0.155816755 2.1378971,-0.155816755 2.77494316,0.468226909 L6.49990857,4.13723769 L10.2264532,0.466675069 C10.8619195,-0.155816755 11.8876132,-0.155816755 12.5260183,0.469568675 C13.1582383,1.0952488 13.1582383,2.1051411 12.5245507,2.73226987 L7.64673876,7.53497972 C7.33802629,7.83583835 6.92590837,8 6.49990828,8 C6.0739082,8 5.66179027,7.83583835 5.3501239,7.53208616 Z\"\n}));\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Styleguide\",\n stroke: \"none\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/arrow/regular\"\n}, /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask-2\",\n fill: \"white\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#path-1\"\n})), /*#__PURE__*/React.createElement(\"use\", {\n id: \"Mask\",\n fillRule: \"nonzero\",\n xlinkHref: \"#arrow-path\"\n})));\n\nfunction SvgRegular(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"13px\",\n height: \"8px\",\n viewBox: \"0 0 13 8\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgRegular);\nexport default __webpack_public_path__ + \"static/media/regular.3140e691.svg\";\nexport { ForwardRef as ReactComponent };","import { subheaderColor, offColor, white } from '../../../styling/variables'\nimport typographyStyles from '../../typography/styles'\n\nconst { p, label1 } = typographyStyles\n\nconst WIDTH = 152\n\nexport default {\n selectedItem: {\n width: WIDTH - 41,\n display: 'block',\n whiteSpace: 'nowrap',\n overflow: 'hidden'\n },\n select: {\n width: WIDTH,\n zIndex: 1,\n '& label': {\n extend: label1,\n color: offColor,\n paddingLeft: 10\n },\n '& button': {\n extend: p,\n position: 'relative',\n border: 0,\n backgroundColor: subheaderColor,\n width: WIDTH,\n padding: [[6, 0, 6, 12]],\n borderRadius: 20,\n lineHeight: '1.14',\n textAlign: 'left',\n color: offColor,\n cursor: 'pointer',\n outline: '0 none'\n },\n '& ul': {\n maxHeight: '200px',\n width: WIDTH,\n overflowY: 'auto',\n position: 'absolute',\n margin: 0,\n borderTop: 0,\n padding: 0,\n borderRadius: [[0, 0, 8, 8]],\n backgroundColor: subheaderColor,\n outline: '0 none',\n '& li': {\n extend: p,\n listStyleType: 'none',\n padding: [[6, 12]],\n cursor: 'pointer',\n '& span': {\n width: '100%',\n display: 'block',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n }\n },\n '& li:hover': {\n backgroundColor: offColor,\n color: white\n }\n },\n '& svg': {\n position: 'absolute',\n top: 12,\n right: 14,\n fill: offColor\n }\n },\n selectFiltered: {\n '& button': {\n backgroundColor: offColor,\n color: white\n },\n '& ul': {\n '& li': {\n backgroundColor: offColor,\n color: white\n },\n '& li:hover': {\n backgroundColor: subheaderColor,\n color: offColor\n }\n },\n '& svg': {\n fill: [[white], '!important']\n }\n },\n open: {\n '& button': {\n borderRadius: [[8, 8, 0, 0]]\n }\n }\n}\n","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { useSelect } from 'downshift'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport { ReactComponent as Arrowdown } from 'src/styling/icons/action/arrow/regular.svg'\n\nimport styles from './Select.styles'\n\nconst useStyles = makeStyles(styles)\n\nfunction Select({ className, label, items, ...props }) {\n const classes = useStyles()\n\n const {\n isOpen,\n selectedItem,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getItemProps\n } = useSelect({\n items,\n selectedItem: props.selectedItem,\n onSelectedItemChange: item => {\n props.onSelectedItemChange(item.selectedItem)\n }\n })\n\n const selectClassNames = {\n [classes.select]: true,\n [classes.selectFiltered]: props.defaultAsFilter\n ? true\n : !R.equals(selectedItem, props.default),\n [classes.open]: isOpen\n }\n\n return (\n \n
{label} \n
\n {selectedItem.display} \n \n \n
\n {isOpen &&\n items.map(({ code, display }, index) => (\n \n {display} \n \n ))}\n \n
\n )\n}\n\nexport default Select\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: \"a\",\n d: \"M0 0h22v22H0z\"\n}));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"mask\", {\n id: \"b\",\n fill: \"#fff\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#a\"\n})), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#9B9B9B\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n mask: \"url(#b)\",\n d: \"M9 9v9M13 9v9\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n mask: \"url(#b)\",\n stroke: \"#9B9B9B\",\n strokeLinecap: \"round\",\n strokeWidth: 2\n}, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinejoin: \"round\",\n d: \"M3 6l2 15h12l2-15\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1 5h20M14 4a3 3 0 10-6 0\"\n})));\n\nfunction SvgDisabled(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 22,\n height: 22,\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDisabled);\nexport default __webpack_public_path__ + \"static/media/disabled.347e2b5e.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/delete/enabled\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 9,\n y1: 9,\n x2: 9,\n y2: 18,\n id: \"Stroke-1\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 13,\n y1: 9,\n x2: 13,\n y2: 18,\n id: \"Stroke-2\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n strokeLinejoin: \"round\",\n points: \"3 6 5 21 17 21 19 6\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 1,\n y1: 5,\n x2: 21,\n y2: 5,\n id: \"Stroke-5\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14,4 C14,2.343 12.657,1 11,1 C9.343,1 8,2.343 8,4\",\n id: \"Stroke-7\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}));\n\nfunction SvgEnabled(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"22px\",\n height: \"22px\",\n viewBox: \"0 0 22 22\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEnabled);\nexport default __webpack_public_path__ + \"static/media/enabled.a058fdfc.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/edit/disabled\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1,18 L1,18 C1,19.657 2.343,21 4,21 L18,21 C19.657,21 21,19.657 21,18\",\n id: \"Stroke-1\",\n stroke: \"#9B9B9B\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-3\",\n stroke: \"#9B9B9B\",\n strokeWidth: 2,\n points: \"6 12 17 1 21 5 10 16 6 16\"\n}));\n\nfunction SvgDisabled(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"22px\",\n height: \"22px\",\n viewBox: \"0 0 22 22\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDisabled);\nexport default __webpack_public_path__ + \"static/media/disabled.aede2073.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/edit/enabled\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1,18 L1,18 C1,19.657 2.343,21 4,21 L18,21 C19.657,21 21,19.657 21,18\",\n id: \"Stroke-1\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-3\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n points: \"6 12 17 1 21 5 10 16 6 16\"\n}));\n\nfunction SvgEnabled(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"22px\",\n height: \"22px\",\n viewBox: \"0 0 22 22\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEnabled);\nexport default __webpack_public_path__ + \"static/media/enabled.5aae4510.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"pattern\", {\n id: \"pattern_68JiZ\",\n patternUnits: \"userSpaceOnUse\",\n width: 5.5,\n height: 5.5,\n patternTransform: \"rotate(45)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y: 0,\n x2: 0,\n y2: 5.5,\n stroke: \"#DBDFED\",\n strokeWidth: 3\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: \"100%\",\n height: \"100%\",\n fill: \"url(#pattern_68JiZ)\",\n opacity: 1\n});\n\nfunction SvgStripes(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"100%\",\n height: \"36px\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, \"{' '}\\n \", _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgStripes);\nexport default __webpack_public_path__ + \"static/media/stripes.876e4081.svg\";\nexport { ForwardRef as ReactComponent };","import { bySize, bold } from 'src/styling/helpers'\n\nexport default {\n saveButton: {\n marginRight: 20\n },\n lastOfGroup: {\n marginBottom: 24\n },\n extraPadding: {\n paddingLeft: 35,\n paddingRight: 30\n },\n extraPaddingRight: {\n paddingRight: 39\n },\n withSuffix: ({ textAlign }) => {\n const justifyContent = textAlign === 'right' ? 'flex-end' : textAlign\n return {\n display: 'flex',\n alignItems: 'center',\n justifyContent\n }\n },\n suffix: {\n margin: [[0, 0, 0, 7]]\n },\n size: ({ size }) => bySize(size),\n bold\n}\n","import { makeStyles } from '@material-ui/core'\r\nimport classnames from 'classnames'\r\nimport { Field, useFormikContext } from 'formik'\r\nimport * as R from 'ramda'\r\nimport React, { useContext, useState } from 'react'\r\n\r\nimport { DeleteDialog } from 'src/components/DeleteDialog'\r\nimport { Link, IconButton } from 'src/components/buttons'\r\nimport { Td, Tr } from 'src/components/fake-table/Table'\r\nimport { Switch } from 'src/components/inputs'\r\nimport { Label2 } from 'src/components/typography'\r\nimport { ReactComponent as DisabledDeleteIcon } from 'src/styling/icons/action/delete/disabled.svg'\r\nimport { ReactComponent as DeleteIcon } from 'src/styling/icons/action/delete/enabled.svg'\r\nimport { ReactComponent as DisabledEditIcon } from 'src/styling/icons/action/edit/disabled.svg'\r\nimport { ReactComponent as EditIcon } from 'src/styling/icons/action/edit/enabled.svg'\r\nimport { ReactComponent as StripesSvg } from 'src/styling/icons/stripes.svg'\r\n\r\nimport TableCtx from './Context'\r\nimport styles from './Row.styles'\r\n\r\nconst useStyles = makeStyles(styles)\r\n\r\nconst ActionCol = ({ disabled, editing }) => {\r\n const classes = useStyles()\r\n const { values, submitForm, resetForm } = useFormikContext()\r\n const {\r\n editWidth,\r\n onEdit,\r\n enableEdit,\r\n enableDelete,\r\n disableRowEdit,\r\n onDelete,\r\n deleteWidth,\r\n enableToggle,\r\n onToggle,\r\n toggleWidth,\r\n forceAdd,\r\n clearError,\r\n actionColSize,\r\n error\r\n } = useContext(TableCtx)\r\n\r\n const disableEdit = disabled || (disableRowEdit && disableRowEdit(values))\r\n const cancel = () => {\r\n clearError()\r\n resetForm()\r\n }\r\n\r\n const [deleteDialog, setDeleteDialog] = useState(false)\r\n\r\n const onConfirmed = () => {\r\n onDelete(values.id).then(res => {\r\n if (!R.isNil(res)) setDeleteDialog(false)\r\n })\r\n }\r\n\r\n return (\r\n <>\r\n {editing && (\r\n \r\n \r\n Save\r\n \r\n {!forceAdd && (\r\n \r\n Cancel\r\n \r\n )}\r\n \r\n )}\r\n {!editing && enableEdit && (\r\n \r\n onEdit && onEdit(values.id)}>\r\n {disableEdit ? : }\r\n \r\n \r\n )}\r\n {!editing && enableDelete && (\r\n \r\n {\r\n setDeleteDialog(true)\r\n }}>\r\n {disabled ? : }\r\n \r\n {\r\n setDeleteDialog(false)\r\n clearError()\r\n }}\r\n errorMessage={error}\r\n />\r\n \r\n )}\r\n {!editing && enableToggle && (\r\n \r\n onToggle(values.id)}\r\n />\r\n \r\n )}\r\n >\r\n )\r\n}\r\n\r\nconst ECol = ({ editing, focus, config, extraPaddingRight, extraPadding }) => {\r\n const {\r\n name,\r\n bypassField,\r\n input,\r\n editable = true,\r\n size,\r\n bold,\r\n width,\r\n textAlign,\r\n editingAlign = textAlign,\r\n suffix,\r\n SuffixComponent = Label2,\r\n textStyle = it => {},\r\n isHidden = it => false,\r\n view = it => it?.toString(),\r\n inputProps = {}\r\n } = config\r\n\r\n const { values } = useFormikContext()\r\n const isEditable = editable => {\r\n if (typeof editable === 'function') return editable(values)\r\n return editable\r\n }\r\n const isEditing = editing && isEditable(editable)\r\n const isField = !bypassField\r\n\r\n const classes = useStyles({\r\n textAlign: isEditing ? editingAlign : textAlign,\r\n size\r\n })\r\n\r\n const innerProps = {\r\n fullWidth: true,\r\n autoFocus: focus,\r\n size,\r\n bold,\r\n textAlign: isEditing ? editingAlign : textAlign,\r\n ...inputProps\r\n }\r\n\r\n return (\r\n \r\n {isEditing && isField && !isHidden(values) && (\r\n \r\n )}\r\n {isEditing && !isField && !isHidden(values) && (\r\n \r\n )}\r\n {!isEditing && values && !isHidden(values) && (\r\n \r\n {view(values[name], values)}\r\n
\r\n )}\r\n {suffix && !isHidden(values) && (\r\n \r\n {suffix}\r\n \r\n )}\r\n {isHidden(values) && }\r\n \r\n )\r\n}\r\n\r\nconst groupStriped = elements => {\r\n const [toStripe, noStripe] = R.partition(R.propEq('stripe', true))(elements)\r\n\r\n if (!toStripe.length) {\r\n return elements\r\n }\r\n\r\n const index = R.indexOf(toStripe[0], elements)\r\n const width = R.compose(R.sum, R.map(R.path(['width'])))(toStripe)\r\n\r\n return R.insert(\r\n index,\r\n { width, editable: false, view: () => },\r\n noStripe\r\n )\r\n}\r\n\r\nconst ERow = ({ editing, disabled, lastOfGroup, newRow }) => {\r\n const { touched, errors, values } = useFormikContext()\r\n const {\r\n elements,\r\n enableEdit,\r\n enableDelete,\r\n error,\r\n enableToggle,\r\n rowSize,\r\n stripeWhen\r\n } = useContext(TableCtx)\r\n\r\n const classes = useStyles()\r\n\r\n const shouldStripe = !editing && stripeWhen && stripeWhen(values)\r\n\r\n const innerElements = shouldStripe ? groupStriped(elements) : elements\r\n const [toSHeader] = R.partition(R.has('doubleHeader'))(elements)\r\n\r\n const extraPaddingIndex = toSHeader?.length\r\n ? R.indexOf(toSHeader[0], elements)\r\n : -1\r\n\r\n const extraPaddingRightIndex = toSHeader?.length\r\n ? R.indexOf(toSHeader[toSHeader.length - 1], elements)\r\n : -1\r\n\r\n const elementToFocusIndex = innerElements.findIndex(\r\n it => it.editable === undefined || it.editable\r\n )\r\n\r\n const classNames = {\r\n [classes.lastOfGroup]: lastOfGroup\r\n }\r\n\r\n const touchedErrors = R.pick(R.keys(touched), errors)\r\n const hasTouchedErrors = touchedErrors && R.keys(touchedErrors).length > 0\r\n const hasErrors = hasTouchedErrors || !!error\r\n\r\n const errorMessage =\r\n error || (touchedErrors && R.values(touchedErrors).join(', '))\r\n\r\n return (\r\n \r\n {innerElements.map((it, idx) => {\r\n return (\r\n \r\n )\r\n })}\r\n {(enableEdit || enableDelete || enableToggle) && (\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default ERow\r\n","import { offColor } from 'src/styling/variables'\n\nexport default {\n wrapper: ({ width }) => ({\n width: width\n }),\n addLink: {\n marginLeft: 'auto'\n },\n title: {\n margin: 0,\n color: offColor\n },\n outerHeader: {\n minHeight: 16,\n marginBottom: 24,\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center'\n }\n}\n","import { makeStyles } from '@material-ui/core'\nimport { Form, Formik } from 'formik'\nimport * as R from 'ramda'\nimport React, { useState, useEffect } from 'react'\nimport { v4 } from 'uuid'\n\nimport PromptWhenDirty from 'src/components/PromptWhenDirty'\nimport Link from 'src/components/buttons/Link.js'\nimport { AddButton } from 'src/components/buttons/index.js'\nimport { TBody, Table } from 'src/components/fake-table/Table'\nimport { Info2, TL1 } from 'src/components/typography'\n\nimport TableCtx from './Context'\nimport Header from './Header'\nimport ERow from './Row'\nimport styles from './Table.styles'\n\nconst ACTION_COL_SIZE = 87\nconst DEFAULT_COL_SIZE = 100\n\nconst useStyles = makeStyles(styles)\n\nconst getWidth = R.compose(\n R.reduce(R.add)(0),\n R.map(it => it.width ?? DEFAULT_COL_SIZE)\n)\n\nconst ETable = ({\n name,\n title,\n titleLg,\n elements = [],\n data = [],\n save,\n error: externalError,\n rowSize = 'md',\n validationSchema,\n enableCreate,\n enableEdit,\n enableEditText,\n editWidth: outerEditWidth,\n enableDelete,\n deleteWidth = ACTION_COL_SIZE,\n enableToggle,\n toggleWidth = ACTION_COL_SIZE,\n onToggle,\n forceDisable,\n disableAdd,\n initialValues,\n setEditing,\n shouldOverrideEdit,\n editOverride,\n stripeWhen,\n disableRowEdit,\n groupBy,\n sortBy,\n createText = 'Add override',\n forceAdd = false,\n tbodyWrapperClass,\n orderedBy = null\n}) => {\n const [editingId, setEditingId] = useState(null)\n const [adding, setAdding] = useState(false)\n const [saving, setSaving] = useState(false)\n const [error, setError] = useState(null)\n\n useEffect(() => setError(externalError), [externalError])\n useEffect(() => {\n setError(null)\n setAdding(forceAdd)\n }, [forceAdd])\n\n const innerSave = async value => {\n if (saving) return\n\n setSaving(true)\n\n const it = validationSchema.cast(value)\n const index = R.findIndex(R.propEq('id', it.id))(data)\n const list = index !== -1 ? R.update(index, it, data) : R.prepend(it, data)\n\n if (!R.equals(data[index], it)) {\n try {\n await save({ [name]: list }, it)\n } catch (err) {\n setSaving(false)\n return\n }\n }\n\n setAdding(false)\n setEditing && setEditing(false)\n setSaving(false)\n }\n\n const onDelete = id => {\n const list = R.reject(it => it.id === id, data)\n return save({ [name]: list })\n }\n\n const onReset = () => {\n setAdding(false)\n setEditingId(null)\n setEditing && setEditing(false)\n }\n\n const onEdit = it => {\n if (shouldOverrideEdit && shouldOverrideEdit(it)) return editOverride(it)\n setEditingId(it)\n setError(null)\n setEditing && setEditing(it, true)\n }\n\n const addField = () => {\n setAdding(true)\n setError(null)\n setEditing && setEditing(true, true)\n }\n\n const widthIfEditNull =\n enableDelete || enableToggle ? ACTION_COL_SIZE : ACTION_COL_SIZE * 2\n\n const editWidth = R.defaultTo(widthIfEditNull)(outerEditWidth)\n\n const actionColSize =\n ((enableDelete && deleteWidth) ?? 0) +\n ((enableEdit && editWidth) ?? 0) +\n ((enableToggle && toggleWidth) ?? 0)\n\n const width = getWidth(elements) + actionColSize\n\n const classes = useStyles({ width })\n\n const showButtonOnEmpty = !data.length && enableCreate && !adding\n const canAdd = !forceDisable && !editingId && !disableAdd && !adding\n const showTable = adding || data.length !== 0\n\n const innerData = sortBy ? R.sortWith(sortBy)(data) : data\n\n const ctxValue = {\n elements,\n enableEdit,\n enableEditText,\n onEdit,\n clearError: () => setError(null),\n error: error,\n disableRowEdit,\n editWidth,\n enableDelete,\n onDelete,\n deleteWidth,\n enableToggle,\n rowSize,\n onToggle,\n toggleWidth,\n actionColSize,\n stripeWhen,\n forceAdd,\n orderedBy,\n DEFAULT_COL_SIZE\n }\n\n return (\n \n \n {showButtonOnEmpty && canAdd && (\n
{createText} \n )}\n {showTable && (\n <>\n {(title || enableCreate) && (\n
\n {title && titleLg && (\n {title} \n )}\n {title && !titleLg && (\n {title} \n )}\n {enableCreate && canAdd && (\n \n {createText}\n \n )}\n
\n )}\n
\n \n \n
\n {adding && (\n \n \n \n )}\n {innerData.map((it, idx) => {\n const nextElement = innerData[idx + 1]\n\n const canGroup = !!groupBy && nextElement\n const isFunction = R.type(groupBy) === 'Function'\n const groupFunction = isFunction ? groupBy : R.prop(groupBy)\n\n const isLastOfGroup =\n canGroup &&\n groupFunction(it) !== groupFunction(nextElement)\n\n return (\n \n \n \n )\n })}\n \n
\n
\n >\n )}\n
\n \n )\n}\n\nexport default ETable\n","import * as R from 'ramda'\nimport React from 'react'\n\nimport { fromNamespace, toNamespace } from 'src/utils/config'\n\nimport EditableTable from './Table'\n\nconst NamespacedTable = ({\n name,\n save,\n data = {},\n namespaces = [],\n ...props\n}) => {\n const innerSave = (...[, it]) => {\n return save(toNamespace(it.id)(R.omit(['id2'], it)))\n }\n\n const innerData = R.map(it => ({\n id: it,\n ...fromNamespace(it)(data)\n }))(namespaces)\n\n return (\n \n )\n}\n\nexport default NamespacedTable\n","import { makeStyles, Modal as MaterialModal, Paper } from '@material-ui/core'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport { IconButton } from 'src/components/buttons'\nimport { H1, H4 } from 'src/components/typography'\nimport { ReactComponent as CloseIcon } from 'src/styling/icons/action/close/zodiac.svg'\n\nconst styles = {\n modal: {\n display: 'flex',\n justifyContent: 'center',\n flexDirection: 'column',\n alignItems: 'center'\n },\n wrapper: ({ width, height }) => ({\n width,\n height,\n display: 'flex',\n flexDirection: 'column',\n minHeight: height ?? 400,\n maxHeight: '90vh',\n overflowY: 'auto',\n borderRadius: 8,\n outline: 0\n }),\n infoPanelWrapper: ({ width, infoPanelHeight }) => ({\n width,\n height: infoPanelHeight,\n marginTop: 16,\n display: 'flex',\n flexDirection: 'column',\n minHeight: infoPanelHeight ?? 200,\n maxHeight: '90vh',\n overflowY: 'auto',\n borderRadius: 8,\n outline: 0\n }),\n panelContent: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n padding: [[0, 24]]\n },\n content: ({ small, xl }) => ({\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n padding: xl ? [[0, 60 + 28]] : small ? [[0, 16]] : [[0, 32]]\n }),\n button: ({ small, xl }) => ({\n padding: [[0, 0, xl ? 26 : 0, 0]],\n margin: xl\n ? [[0, 0, 'auto', 'auto']]\n : small\n ? [[12, 12, 'auto', 'auto']]\n : [[16, 16, 'auto', 'auto']]\n }),\n header: {\n display: 'flex'\n },\n title: ({ small }) => ({\n margin: small ? [[20, 0, 8, 16]] : [[28, 0, 8, 32]]\n })\n}\n\nconst useStyles = makeStyles(styles)\n\nconst Modal = ({\n width,\n height,\n infoPanelHeight,\n title,\n small,\n xl,\n infoPanel,\n handleClose,\n children,\n secondaryModal,\n className,\n closeOnEscape,\n closeOnBackdropClick,\n ...props\n}) => {\n const classes = useStyles({ width, height, small, infoPanelHeight, xl })\n const TitleCase = small ? H4 : H1\n const closeSize = xl ? 28 : small ? 16 : 20\n\n const innerClose = (evt, reason) => {\n if (!closeOnBackdropClick && reason === 'backdropClick') return\n if (!closeOnEscape && reason === 'escapeKeyDown') return\n handleClose()\n }\n\n return (\n \n <>\n \n \n {title && {title} }\n handleClose()}>\n \n \n
\n {children}
\n \n {infoPanel && (\n \n {infoPanel}
\n \n )}\n >\n \n )\n}\n\nexport default Modal\n","const CURRENCY_MAX = 9999999\nconst MIN_NUMBER_OF_CASSETTES = 2\nconst MAX_NUMBER_OF_CASSETTES = 4\nconst WALLET_SCORING_DEFAULT_THRESHOLD = 9\n\nconst AUTOMATIC = 'automatic'\nconst MANUAL = 'manual'\n\nconst IP_CHECK_REGEX = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/\n\nexport {\n CURRENCY_MAX,\n MIN_NUMBER_OF_CASSETTES,\n MAX_NUMBER_OF_CASSETTES,\n AUTOMATIC,\n MANUAL,\n WALLET_SCORING_DEFAULT_THRESHOLD,\n IP_CHECK_REGEX\n}\n","export default __webpack_public_path__ + \"static/media/both-filled.7af80d5f.svg\";","import { makeStyles } from '@material-ui/core'\nimport React from 'react'\n\nimport { Button } from 'src/components/buttons'\nimport { H1, P, Info2 } from 'src/components/typography'\nimport filledCassettes from 'src/styling/icons/cassettes/both-filled.svg'\nimport { ReactComponent as WarningIcon } from 'src/styling/icons/warning-icon/comet.svg'\nimport { comet } from 'src/styling/variables'\n\nconst styles = {\n button: {\n margin: [[35, 'auto', 0, 'auto']]\n },\n modalContent: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n flex: 1,\n padding: [[0, 34]]\n },\n splashTitle: {\n marginTop: 15\n },\n warningInfo: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n marginTop: 15\n },\n warningIcon: {\n width: 25,\n height: 25,\n marginRight: 8,\n display: 'block'\n },\n warningText: {\n flexBasis: '100%',\n flexGrow: 1\n },\n machineName: {\n margin: [[5, 0]],\n color: comet\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst WizardSplash = ({ name, onContinue }) => {\n const classes = useStyles()\n\n return (\n \n
\n
\n Update counts\n \n
\n {name}\n \n
\n
\n
\n Before updating counts on Lamassu Admin, make sure you've done it\n before on the machines.\n
\n
\n
\n
\n
\n For cash cassettes, please make sure you've removed the remaining\n bills before adding the new ones.\n
\n
\n
\n Get started\n \n
\n )\n}\n\nexport default WizardSplash\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/stage/spring/current\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-2-Copy\",\n fill: \"#48F694\",\n cx: 9,\n cy: 9,\n r: 4\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-Copy-5\",\n stroke: \"#48F694\",\n strokeWidth: 2,\n transform: \"translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) \",\n cx: 9,\n cy: 9,\n r: 8\n}));\n\nfunction SvgCurrent(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"18px\",\n viewBox: \"0 0 18 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCurrent);\nexport default __webpack_public_path__ + \"static/media/current.9bbfa93f.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport * as R from 'ramda'\nimport React, { memo } from 'react'\n\nimport { ReactComponent as CompleteStageIconSpring } from 'src/styling/icons/stage/spring/complete.svg'\nimport { ReactComponent as CurrentStageIconSpring } from 'src/styling/icons/stage/spring/current.svg'\nimport { ReactComponent as EmptyStageIconSpring } from 'src/styling/icons/stage/spring/empty.svg'\nimport { ReactComponent as CompleteStageIconZodiac } from 'src/styling/icons/stage/zodiac/complete.svg'\nimport { ReactComponent as CurrentStageIconZodiac } from 'src/styling/icons/stage/zodiac/current.svg'\nimport { ReactComponent as EmptyStageIconZodiac } from 'src/styling/icons/stage/zodiac/empty.svg'\nimport {\n primaryColor,\n secondaryColor,\n offColor,\n disabledColor\n} from 'src/styling/variables'\n\nconst styles = {\n stages: {\n display: 'flex',\n alignItems: 'center'\n },\n wrapper: {\n display: 'flex',\n alignItems: 'center',\n margin: 0\n },\n stage: {\n display: 'flex',\n height: 28,\n width: 28,\n zIndex: 2,\n '& > svg': {\n height: '100%',\n width: '100%',\n overflow: 'visible'\n }\n },\n separator: {\n width: 28,\n height: 2,\n border: [[2, 'solid']],\n zIndex: 1\n },\n separatorSpring: {\n borderColor: secondaryColor\n },\n separatorZodiac: {\n borderColor: primaryColor\n },\n separatorSpringEmpty: {\n borderColor: disabledColor\n },\n separatorZodiacEmpty: {\n borderColor: offColor\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst Stepper = memo(({ steps, currentStep, color = 'spring', className }) => {\n if (currentStep < 1 || currentStep > steps)\n throw Error('Value of currentStage is invalid')\n if (steps < 1) throw Error('Value of stages is invalid')\n\n const classes = useStyles()\n\n const separatorClasses = {\n [classes.separator]: true,\n [classes.separatorSpring]: color === 'spring',\n [classes.separatorZodiac]: color === 'zodiac'\n }\n\n const separatorEmptyClasses = {\n [classes.separator]: true,\n [classes.separatorSpringEmpty]: color === 'spring',\n [classes.separatorZodiacEmpty]: color === 'zodiac'\n }\n\n return (\n \n {R.range(1, currentStep).map(idx => (\n
\n {idx > 1 &&
}\n
\n {color === 'spring' && }\n {color === 'zodiac' && }\n
\n
\n ))}\n
\n {currentStep > 1 &&
}\n
\n {color === 'spring' && }\n {color === 'zodiac' && }\n
\n
\n {R.range(currentStep + 1, steps + 1).map(idx => (\n
\n
\n
\n {color === 'spring' && }\n {color === 'zodiac' && }\n
\n
\n ))}\n
\n )\n})\n\nexport default Stepper\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/help/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.0004,11 C20.0004,6.03028475 15.9701153,2 11.0004,2 C6.03004556,2 2.0004,6.02992391 2.0004,11 C2.0004,15.9700761 6.03004556,20 11.0004,20 C15.9701153,20 20.0004,15.9697153 20.0004,11 Z M22.0004,11 C22.0004,17.0742847 17.0746847,22 11.0004,22 C4.92544514,22 0.000400000001,17.0746147 0.000400000001,11 C0.000400000001,4.92538534 4.92544514,0 11.0004,0 C17.0746847,0 22.0004,4.92571525 22.0004,11 Z\",\n id: \"Stroke-1\",\n fill: \"#1B2559\",\n fillRule: \"nonzero\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.9164,8.9063 C9.9164,9.45858475 9.46868475,9.9063 8.9164,9.9063 C8.36411525,9.9063 7.9164,9.45858475 7.9164,8.9063 C7.9164,6.89094438 9.72972438,5.35290249 11.7463843,5.7072003 C13.0663562,5.93764844 14.1348314,7.00654285 14.3652323,8.32479116 C14.6130182,9.7312185 13.941375,11.0876584 12.732214,11.7545735 C12.370484,11.9534687 12.1664,12.2664153 12.1664,12.5913 L12.1664,12.6563 C12.1664,13.2085847 11.7186847,13.6563 11.1664,13.6563 C10.6141153,13.6563 10.1664,13.2085847 10.1664,12.6563 L10.1664,12.5913 C10.1664,11.5009567 10.7946963,10.5375141 11.7674377,10.0026589 C12.2360927,9.74417086 12.493064,9.22519581 12.3953326,8.67046887 C12.3098185,8.1811985 11.8915858,7.76280177 11.4013649,7.67721566 C10.6126181,7.53864454 9.9164,8.1291691 9.9164,8.9063 Z\",\n id: \"Stroke-3\",\n fill: \"#1B2559\",\n fillRule: \"nonzero\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.1039,15.2188 C10.1039,14.6318 10.5799,14.1568 11.1659,14.1568 C11.7529,14.1568 12.2289,14.6318 12.2289,15.2188 C12.2289,15.8058 11.7529,16.2808 11.1659,16.2808 C10.5799,16.2808 10.1039,15.8058 10.1039,15.2188\",\n id: \"Fill-5\",\n fill: \"#1B2559\"\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"22px\",\n height: \"22px\",\n viewBox: \"0 0 22 22\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.1bd00dea.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles, ClickAwayListener } from '@material-ui/core'\nimport * as R from 'ramda'\nimport React, { useState, memo } from 'react'\n\nimport Popper from 'src/components/Popper'\nimport { ReactComponent as HelpIcon } from 'src/styling/icons/action/help/zodiac.svg'\n\nconst useStyles = makeStyles({\n transparentButton: {\n border: 'none',\n backgroundColor: 'transparent',\n outline: 'none',\n cursor: 'pointer',\n marginTop: 4\n },\n popoverContent: ({ width }) => ({\n width,\n padding: [[10, 15]]\n })\n})\n\nconst usePopperHandler = width => {\n const classes = useStyles({ width })\n const [helpPopperAnchorEl, setHelpPopperAnchorEl] = useState(null)\n\n const handleOpenHelpPopper = event => {\n setHelpPopperAnchorEl(helpPopperAnchorEl ? null : event.currentTarget)\n }\n\n const handleCloseHelpPopper = () => {\n setHelpPopperAnchorEl(null)\n }\n\n const helpPopperOpen = Boolean(helpPopperAnchorEl)\n\n return {\n classes,\n helpPopperAnchorEl,\n helpPopperOpen,\n handleOpenHelpPopper,\n handleCloseHelpPopper\n }\n}\n\nconst Tooltip = memo(({ children, width, Icon = HelpIcon }) => {\n const handler = usePopperHandler(width)\n\n return (\n \n \n
\n \n \n
\n {children}
\n \n
\n \n )\n})\n\nconst HoverableTooltip = memo(({ parentElements, children, width }) => {\n const handler = usePopperHandler(width)\n\n return (\n \n {!R.isNil(parentElements) && (\n
\n {parentElements}\n
\n )}\n {R.isNil(parentElements) && (\n
\n \n \n )}\n
\n {children}
\n \n
\n )\n})\n\nexport { Tooltip, HoverableTooltip }\n","export default __webpack_public_path__ + \"static/media/acceptor-left.f37bcb1a.svg\";","export default __webpack_public_path__ + \"static/media/dispenser-1.e4200f4e.svg\";","export default __webpack_public_path__ + \"static/media/dispenser-2.9f7807a5.svg\";","export default __webpack_public_path__ + \"static/media/3-cassettes-open-1-left.d6d9aa73.svg\";","export default __webpack_public_path__ + \"static/media/3-cassettes-open-2-left.a9ee8d4c.svg\";","export default __webpack_public_path__ + \"static/media/3-cassettes-open-3-left.08fed660.svg\";","export default __webpack_public_path__ + \"static/media/4-cassettes-open-1-left.7b00c51f.svg\";","export default __webpack_public_path__ + \"static/media/4-cassettes-open-2-left.b3d9541c.svg\";","export default __webpack_public_path__ + \"static/media/4-cassettes-open-3-left.e8f1667c.svg\";","export default __webpack_public_path__ + \"static/media/4-cassettes-open-4-left.bc1a9829.svg\";","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { Formik, Form, Field } from 'formik'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport Stepper from 'src/components/Stepper'\nimport { HoverableTooltip } from 'src/components/Tooltip'\nimport { Button } from 'src/components/buttons'\nimport { Cashbox } from 'src/components/inputs/cashbox/Cashbox'\nimport { NumberInput, RadioGroup } from 'src/components/inputs/formik'\nimport { Info2, H4, P, Info1 } from 'src/components/typography'\nimport cashbox from 'src/styling/icons/cassettes/acceptor-left.svg'\nimport cassetteOne from 'src/styling/icons/cassettes/dispenser-1.svg'\nimport cassetteTwo from 'src/styling/icons/cassettes/dispenser-2.svg'\nimport tejo3CassetteOne from 'src/styling/icons/cassettes/tejo/3-cassettes/3-cassettes-open-1-left.svg'\nimport tejo3CassetteTwo from 'src/styling/icons/cassettes/tejo/3-cassettes/3-cassettes-open-2-left.svg'\nimport tejo3CassetteThree from 'src/styling/icons/cassettes/tejo/3-cassettes/3-cassettes-open-3-left.svg'\nimport tejo4CassetteOne from 'src/styling/icons/cassettes/tejo/4-cassettes/4-cassettes-open-1-left.svg'\nimport tejo4CassetteTwo from 'src/styling/icons/cassettes/tejo/4-cassettes/4-cassettes-open-2-left.svg'\nimport tejo4CassetteThree from 'src/styling/icons/cassettes/tejo/4-cassettes/4-cassettes-open-3-left.svg'\nimport tejo4CassetteFour from 'src/styling/icons/cassettes/tejo/4-cassettes/4-cassettes-open-4-left.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport { comet, errorColor } from 'src/styling/variables'\nimport { numberToFiatAmount } from 'src/utils/number'\n\nconst styles = {\n content: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n flex: 1,\n paddingBottom: 32\n },\n titleDiv: {\n marginBottom: 32\n },\n title: {\n margin: [[0, 0, 12, 0]],\n color: comet\n },\n stepImage: {\n width: 148,\n height: 196\n },\n form: {\n paddingBottom: 95\n },\n verticalAlign: {\n display: 'flex',\n flexDirection: 'column'\n },\n horizontalAlign: {\n display: 'flex',\n flexDirection: 'row'\n },\n centerAlignment: {\n alignItems: 'center'\n },\n lineAlignment: {\n alignItems: 'baseline'\n },\n fullWidth: {\n margin: [[0, 'auto']],\n flexBasis: 'auto'\n },\n formWrapper: {\n flexBasis: '100%',\n display: 'flex',\n justifyContent: 'center'\n },\n submit: {\n float: 'right'\n },\n cashboxBills: {\n marginRight: 5\n },\n cassetteCashbox: {\n width: 40,\n height: 35\n },\n cassetteFormTitle: {\n marginTop: 18\n },\n cassetteFormTitleContent: {\n marginLeft: 10,\n marginRight: 25\n },\n smBottomMargin: {\n marginBottom: 25\n },\n fiatTotal: {\n color: comet\n },\n errorMessage: {\n color: errorColor\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst cassetesArtworks = (numberOfCassettes, step) =>\n [\n [cassetteOne, cassetteTwo],\n [tejo3CassetteOne, tejo3CassetteTwo, tejo3CassetteThree],\n [tejo4CassetteOne, tejo4CassetteTwo, tejo4CassetteThree, tejo4CassetteFour]\n ][numberOfCassettes - 2][step - 2]\n\nconst WizardStep = ({\n step,\n name,\n machine,\n cashoutSettings,\n cassetteCapacity,\n error,\n lastStep,\n steps,\n fiatCurrency,\n onContinue,\n initialValues\n}) => {\n const classes = useStyles()\n\n const label = lastStep ? 'Finish' : 'Confirm'\n\n const stepOneRadioOptions = [\n { display: 'Yes', code: 'YES' },\n { display: 'No', code: 'NO' }\n ]\n\n const cassetteField = `cassette${step - 1}`\n const numberOfCassettes = machine.numberOfCassettes\n const originalCassetteCount = machine?.[cassetteField]\n const cassetteDenomination = cashoutSettings?.[cassetteField]\n\n const cassetteCount = values => values[cassetteField] || originalCassetteCount\n const cassetteTotal = values => cassetteCount(values) * cassetteDenomination\n const getPercentage = R.pipe(\n cassetteCount,\n count => 100 * (count / cassetteCapacity),\n R.clamp(0, 100)\n )\n\n return (\n \n
\n {name} \n \n
\n\n {step === 1 && (\n
\n {({ values, errors }) => (\n \n )}\n \n )}\n\n {step > 1 && (\n
\n {({ values, errors }) => (\n \n )}\n \n )}\n
\n )\n}\n\nexport default WizardStep\n","import * as R from 'ramda'\nimport React, { useState } from 'react'\nimport * as Yup from 'yup'\n\nimport Modal from 'src/components/Modal'\nimport { MAX_NUMBER_OF_CASSETTES } from 'src/utils/constants'\nimport { defaultToZero } from 'src/utils/number'\n\nimport WizardSplash from './WizardSplash'\nimport WizardStep from './WizardStep'\n\nconst MODAL_WIDTH = 554\nconst MODAL_HEIGHT = 520\nconst CASHBOX_DEFAULT_CAPACITY = 500\n\nconst CASSETTE_FIELDS = R.map(\n it => `cassette${it}`,\n R.range(1, MAX_NUMBER_OF_CASSETTES + 1)\n)\n\nconst Wizard = ({ machine, cashoutSettings, locale, onClose, save, error }) => {\n const [{ step, config }, setState] = useState({\n step: 0,\n config: { active: true }\n })\n\n const isCashOutDisabled =\n R.isEmpty(cashoutSettings) || !cashoutSettings?.active\n\n const numberOfCassettes = isCashOutDisabled ? 0 : machine.numberOfCassettes\n\n const LAST_STEP = numberOfCassettes + 1\n\n const title = `Update counts`\n const isLastStep = step === LAST_STEP\n\n const buildCassetteObj = cassetteInput => {\n return R.reduce(\n (acc, value) => {\n acc[value] = defaultToZero(cassetteInput[value])\n return acc\n },\n {},\n CASSETTE_FIELDS\n )\n }\n\n const onContinue = it => {\n const newConfig = R.merge(config, it)\n if (isLastStep) {\n const wasCashboxEmptied = [\n config?.wasCashboxEmptied,\n it?.wasCashboxEmptied\n ].includes('YES')\n\n const cashbox = wasCashboxEmptied ? 0 : machine?.cashbox\n const cassettes = buildCassetteObj(it)\n\n save(machine.id, cashbox, cassettes)\n return onClose()\n }\n\n setState({\n step: step + 1,\n config: newConfig\n })\n }\n\n const makeCassetteSteps = R.pipe(\n R.add(1),\n R.range(1),\n R.map(i => ({\n type: `cassette ${i}`,\n schema: Yup.object().shape({\n [`cassette${i}`]: Yup.number()\n .label('Bill count')\n .positive()\n .integer()\n .required()\n .min(0)\n .max(CASHBOX_DEFAULT_CAPACITY)\n })\n }))\n )\n\n const makeInitialValues = () =>\n !R.isEmpty(cashoutSettings)\n ? R.reduce(\n (acc, value) => {\n acc[`cassette${value}`] = ''\n return acc\n },\n {},\n R.range(1, numberOfCassettes + 1)\n )\n : {}\n\n const steps = R.prepend(\n {\n type: 'cashbox',\n schema: Yup.object().shape({\n wasCashboxEmptied: Yup.string().required('Select one option.')\n }),\n cashoutRequired: false\n },\n makeCassetteSteps(numberOfCassettes)\n )\n\n return (\n \n {step === 0 && (\n onContinue()} />\n )}\n {step !== 0 && (\n \n )}\n \n )\n}\n\nexport default Wizard\n","const styles = {\n cashbox: {\n height: 36\n }\n}\n\nexport default styles\n","import { useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\nimport * as Yup from 'yup'\n\nimport { IconButton } from 'src/components/buttons'\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport { CashOut, CashIn } from 'src/components/inputs/cashbox/Cashbox'\nimport { NumberInput, CashCassetteInput } from 'src/components/inputs/formik'\nimport Wizard from 'src/pages/Maintenance/Wizard/Wizard'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/action/edit/enabled.svg'\nimport { fromNamespace } from 'src/utils/config'\n\nimport styles from './Cassettes.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst widthsByNumberOfCassettes = {\n 2: { cashbox: 203, cassette: 280, cassetteGraph: 80, editWidth: 87 },\n 3: { cashbox: 164, cassette: 200, cassetteGraph: 60, editWidth: 87 },\n 4: { cashbox: 131, cassette: 158, cassetteGraph: 40, editWidth: 87 }\n}\n\nconst ValidationSchema = Yup.object().shape({\n name: Yup.string().required('Required'),\n cashbox: Yup.number()\n .label('Cash box')\n .required()\n .integer()\n .min(0)\n .max(1000),\n cassette1: Yup.number()\n .required('Required')\n .integer()\n .min(0)\n .max(500),\n cassette2: Yup.number()\n .required('Required')\n .integer()\n .min(0)\n .max(500),\n cassette3: Yup.number()\n .required('Required')\n .integer()\n .min(0)\n .max(500),\n cassette4: Yup.number()\n .required('Required')\n .integer()\n .min(0)\n .max(500)\n})\n\nconst SET_CASSETTE_BILLS = gql`\n mutation MachineAction(\n $deviceId: ID!\n $action: MachineAction!\n $cashbox: Int!\n $cassette1: Int!\n $cassette2: Int!\n $cassette3: Int!\n $cassette4: Int!\n ) {\n machineAction(\n deviceId: $deviceId\n action: $action\n cashbox: $cashbox\n cassette1: $cassette1\n cassette2: $cassette2\n cassette3: $cassette3\n cassette4: $cassette4\n ) {\n deviceId\n cashbox\n cassette1\n cassette2\n cassette3\n cassette4\n }\n }\n`\n\nconst CashCassettes = ({ machine, config, refetchData, bills }) => {\n const classes = useStyles()\n\n const [wizard, setWizard] = useState(false)\n\n const cashout = config && fromNamespace('cashOut')(config)\n const locale = config && fromNamespace('locale')(config)\n const fillingPercentageSettings =\n config && fromNamespace('notifications', config)\n const fiatCurrency = locale?.fiatCurrency\n const numberOfCassettes = machine.numberOfCassettes\n\n const getCashoutSettings = deviceId => fromNamespace(deviceId)(cashout)\n const isCashOutDisabled = ({ deviceId }) =>\n !getCashoutSettings(deviceId).active\n\n const elements = [\n {\n name: 'cashbox',\n header: 'Cash box',\n width: widthsByNumberOfCassettes[numberOfCassettes].cashbox,\n stripe: false,\n view: value => (\n it.fiat)(bills))}\n />\n ),\n input: NumberInput,\n inputProps: {\n decimalPlaces: 0\n }\n }\n ]\n\n R.until(\n R.gt(R.__, numberOfCassettes),\n it => {\n elements.push({\n name: `cassette${it}`,\n header: `Cash cassette ${it}`,\n width: widthsByNumberOfCassettes[numberOfCassettes].cassette,\n stripe: true,\n doubleHeader: 'Cash-out',\n view: value => {\n return (\n \n )\n },\n isHidden: ({ numberOfCassettes }) => it > numberOfCassettes,\n input: CashCassetteInput,\n inputProps: {\n decimalPlaces: 0,\n width: widthsByNumberOfCassettes[numberOfCassettes].cassetteGraph,\n inputClassName: classes.cashbox\n }\n })\n return R.add(1, it)\n },\n 1\n )\n\n elements.push({\n name: 'edit',\n header: 'Edit',\n width: widthsByNumberOfCassettes[numberOfCassettes].editWidth,\n view: () => {\n return (\n {\n setWizard(true)\n }}>\n \n \n )\n }\n })\n\n const [setCassetteBills, { error }] = useMutation(SET_CASSETTE_BILLS, {\n refetchQueries: () => refetchData()\n })\n\n const onSave = (_, cashbox, cassettes) =>\n setCassetteBills({\n variables: {\n action: 'setCassetteBills',\n deviceId: machine.deviceId,\n cashbox,\n ...cassettes\n }\n })\n\n return machine.name ? (\n <>\n \n {wizard && (\n {\n setWizard(false)\n }}\n error={error?.message}\n save={onSave}\n locale={locale}\n />\n )}\n >\n ) : null\n}\n\nexport default CashCassettes\n","import Cassettes from './Cassettes'\nexport default Cassettes\n","import React from 'react'\n\nimport { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\n\nconst cashInAndOutHeaderStyle = { marginLeft: 6 }\n\nconst cashInHeader = (\n \n \n Cash-in \n
\n)\n\nconst cashOutHeader = (\n \n \n Cash-out \n
\n)\n\nconst getOverridesFields = currency => {\n return [\n {\n name: 'name',\n width: 280,\n size: 'sm',\n view: it => `${it}`\n },\n {\n header: cashInHeader,\n name: 'cashIn',\n display: 'Cash-in',\n width: 130,\n textAlign: 'right',\n suffix: '%'\n },\n {\n header: cashOutHeader,\n name: 'cashOut',\n display: 'Cash-out',\n width: 130,\n textAlign: 'right',\n suffix: '%',\n inputProps: {\n decimalPlaces: 3\n }\n },\n {\n name: 'fixedFee',\n display: 'Fixed fee',\n width: 155,\n doubleHeader: 'Cash-in only',\n textAlign: 'right',\n suffix: currency\n },\n {\n name: 'minimumTx',\n display: 'Minimun Tx',\n width: 155,\n doubleHeader: 'Cash-in only',\n textAlign: 'right',\n suffix: currency\n }\n ]\n}\n\nconst overrides = currency => {\n return getOverridesFields(currency)\n}\n\nexport { overrides }\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nimport { overrides } from './helper'\n\nconst GET_DATA = gql`\n query getData {\n config\n cryptoCurrencies {\n code\n display\n }\n machines {\n name\n deviceId\n }\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst Commissions = ({ name: SCREEN_KEY, id: deviceId }) => {\n const { data, loading } = useQuery(GET_DATA)\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n refetchQueries: () => ['getData']\n })\n\n const config = data?.config && fromNamespace(SCREEN_KEY)(data.config)\n const currency = R.path(['fiatCurrency'])(\n fromNamespace(namespaces.LOCALE)(data?.config)\n )\n\n const saveOverrides = it => {\n const config = toNamespace(SCREEN_KEY)(it)\n return saveConfig({ variables: { config } })\n }\n\n const getMachineCommissions = () => {\n if (loading || !deviceId || !config) {\n return []\n }\n const commissions = {}\n\n // first, get general non overridden commissions\n const makeInfo = x =>\n (commissions[R.prop('code')(x)] = {\n code: x.code,\n name: x.display,\n cashIn: config.cashIn,\n cashOut: config.cashOut,\n fixedFee: config.fixedFee,\n minimumTx: config.minimumTx\n })\n R.forEach(makeInfo)(data.cryptoCurrencies)\n\n // second, get overrides for all machines\n const isId = id => R.propEq('machine', id)\n const generalOverrides = config.overrides\n ? R.filter(isId('ALL_MACHINES'))(config.overrides)\n : []\n\n const overrideInfo = o => {\n commissions[o.cryptoCurrencies[0]].cashIn = o.cashIn\n commissions[o.cryptoCurrencies[0]].cashOut = o.cashOut\n commissions[o.cryptoCurrencies[0]].fixedFee = o.fixedFee\n commissions[o.cryptoCurrencies[0]].minimumTx = o.minimumTx\n }\n R.forEach(overrideInfo)(generalOverrides)\n\n // third, get overrides for this machine\n const machineOverrides = config.overrides\n ? R.filter(isId(deviceId))(config.overrides)\n : []\n R.forEach(overrideInfo)(machineOverrides)\n\n // in the end, the machine specific overrides overwrite the less general ALL_MACHINE overrides or the general overrides\n return R.values(commissions)\n }\n\n const machineCommissions = getMachineCommissions()\n\n return (\n \n )\n}\n\nexport default Commissions\n","import Commissions from './Commissions'\n\nexport default Commissions\n","const modelPrettifier = {\n douro1: 'Douro',\n sintra: 'Sintra',\n gaia: 'Gaia',\n tejo: 'Tejo'\n}\n\nexport { modelPrettifier }\n","import { spacer, comet } from 'src/styling/variables'\n\nconst styles = {\n grid: {\n flex: 1,\n height: '100%'\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n marginLeft: spacer * 6,\n maxWidth: 900\n },\n subtitle: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n flexDirection: 'row',\n color: comet\n },\n label3: {\n color: comet,\n marginTop: 0,\n fontSize: 12\n },\n row: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-around'\n },\n rowItem: {\n flex: 1,\n marginBottom: spacer * 2\n },\n detailItem: {\n marginBottom: spacer * 4\n },\n actionButtonsContainer: {\n display: 'flex',\n flexDirection: 'row'\n },\n breadcrumbsContainer: {\n marginTop: 32\n },\n breadcrumbLink: {\n textDecoration: 'none'\n },\n detailsMargin: {\n marginTop: 24\n },\n sidebarContainer: {\n height: 400,\n overflowY: 'auto'\n },\n contentContainer: {\n '& > *': {\n marginTop: 26\n },\n '& > *:first-child': {\n marginTop: 0\n }\n }\n}\n\nexport default styles\n","import { makeStyles } from '@material-ui/core/styles'\nimport React from 'react'\n\nimport { Label3, P } from 'src/components/typography'\nimport { modelPrettifier } from 'src/utils/machine'\nimport { formatDate } from 'src/utils/timezones'\n\nimport styles from '../Machines.styles'\nconst useStyles = makeStyles(styles)\n\nconst Details = ({ data, timezone }) => {\n const classes = useStyles()\n return (\n \n
\n
Paired at \n
\n {data.pairedAt\n ? formatDate(data.pairedAt, timezone, 'yyyy-MM-dd HH:mm:ss')\n : ''}\n
\n
\n
\n
Machine model \n
{modelPrettifier[data.model]}
\n
\n
\n
Software version \n
{data.version}
\n
\n
\n )\n}\n\nexport default Details\n","import {\n Dialog,\n DialogActions,\n DialogContent,\n makeStyles,\n InputLabel\n} from '@material-ui/core'\nimport React, { memo, useState } from 'react'\n\nimport { Button, IconButton } from 'src/components/buttons'\nimport { TextInput } from 'src/components/inputs'\nimport { H4, P } from 'src/components/typography'\nimport { ReactComponent as CloseIcon } from 'src/styling/icons/action/close/zodiac.svg'\nimport { spacer } from 'src/styling/variables'\n\nimport ErrorMessage from './ErrorMessage'\n\nconst useStyles = makeStyles({\n dialogContent: {\n width: 434,\n padding: spacer * 2,\n paddingRight: spacer * 3.5\n },\n dialogTitle: {\n padding: spacer * 2,\n paddingRight: spacer * 1.5,\n display: 'flex',\n 'justify-content': 'space-between',\n '& > h4': {\n margin: 0\n },\n '& > button': {\n padding: 0,\n marginTop: -(spacer / 2)\n }\n },\n dialogActions: {\n padding: spacer * 4,\n paddingTop: spacer * 2\n }\n})\n\nexport const DialogTitle = ({ children, onClose }) => {\n const classes = useStyles()\n return (\n \n {children}\n {onClose && (\n \n \n \n )}\n
\n )\n}\n\nexport const ConfirmDialog = memo(\n ({\n title = 'Confirm action',\n errorMessage = 'This action requires confirmation',\n open,\n toBeConfirmed,\n saveButtonAlwaysEnabled = false,\n message,\n confirmationMessage = `Write '${toBeConfirmed}' to confirm this action`,\n onConfirmed,\n onDismissed,\n initialValue = '',\n disabled = false,\n ...props\n }) => {\n const classes = useStyles()\n const [value, setValue] = useState(initialValue)\n const [error, setError] = useState(false)\n const handleChange = event => setValue(event.target.value)\n\n const innerOnClose = () => {\n setValue('')\n setError(false)\n onDismissed()\n }\n\n const isOnErrorState =\n (!saveButtonAlwaysEnabled && toBeConfirmed !== value) || value === ''\n\n return (\n \n \n {title} \n \n {errorMessage && (\n \n \n {errorMessage.split(':').map(error => (\n <>\n {error}\n \n >\n ))}\n \n \n )}\n \n {message && {message}
}\n {confirmationMessage} \n \n \n \n onConfirmed(value)}>\n Confirm\n \n \n \n )\n }\n)\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/edit/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0,10 L0,10 C0,10.9942 0.8058,11.8 1.8,11.8 L10.2,11.8 C11.1942,11.8 12,10.9942 12,10\",\n id: \"Stroke-1\",\n stroke: \"#FFFFFF\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-3\",\n stroke: \"#FFFFFF\",\n points: \"3 6.86666667 8.86666667 1 11 3.13333333 5.13333333 9 3 9\"\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.958fe55d.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/edit/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0,10 L0,10 C0,10.9942 0.8058,11.8 1.8,11.8 L10.2,11.8 C11.1942,11.8 12,10.9942 12,10\",\n id: \"Stroke-1\",\n stroke: \"#1B2559\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-3\",\n stroke: \"#1B2559\",\n points: \"3 6.86666667 8.86666667 1 11 3.13333333 5.13333333 9 3 9\"\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.1bc04c23.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/reboot/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-3\",\n stroke: \"#FFFFFF\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.57419317,11.1560104 C2.91506589,10.8661403 2.29620875,10.4522182 1.75493083,9.91362078 C-0.568892549,7.60089351 -0.587250991,3.86936104 1.71406849,1.57845195 C2.03057585,1.26367293 2.37407977,0.992496226 2.73740775,0.764921841\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"3.37563213 1.84831169 3.36911784 0.595324675 2.18174122 4.15223411e-14\"\n})), /*#__PURE__*/React.createElement(\"line\", {\n x1: 5.92223784,\n y1: 7.57277922,\n x2: 5.92223784,\n y2: 3.98212987,\n id: \"Stroke-9\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2\",\n transform: \"translate(9.818105, 6.000000) scale(-1, -1) translate(-9.818105, -6.000000) translate(7.636287, 0.000000)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.57419317,11.1560104 C2.91506589,10.8661403 2.29620875,10.4522182 1.75493083,9.91362078 C-0.568892549,7.60089351 -0.587250991,3.86936104 1.71406849,1.57845195 C2.03057585,1.26367293 2.37407977,0.992496226 2.73740775,0.764921841\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"3.37563213 1.84831169 3.36911784 0.595324675 2.18174122 4.15223411e-14\"\n}))));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"-0.493 -0.5 12.993 13\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.fe6ed797.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/reboot/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-3\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.57419317,11.1560104 C2.91506589,10.8661403 2.29620875,10.4522182 1.75493083,9.91362078 C-0.568892549,7.60089351 -0.587250991,3.86936104 1.71406849,1.57845195 C2.03057585,1.26367293 2.37407977,0.992496226 2.73740775,0.764921841\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"3.37563213 1.84831169 3.36911784 0.595324675 2.18174122 4.15223411e-14\"\n})), /*#__PURE__*/React.createElement(\"line\", {\n x1: 5.92223784,\n y1: 7.57277922,\n x2: 5.92223784,\n y2: 3.98212987,\n id: \"Stroke-9\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2\",\n transform: \"translate(9.818105, 6.000000) scale(-1, -1) translate(-9.818105, -6.000000) translate(7.636287, 0.000000)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.57419317,11.1560104 C2.91506589,10.8661403 2.29620875,10.4522182 1.75493083,9.91362078 C-0.568892549,7.60089351 -0.587250991,3.86936104 1.71406849,1.57845195 C2.03057585,1.26367293 2.37407977,0.992496226 2.73740775,0.764921841\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"3.37563213 1.84831169 3.36911784 0.595324675 2.18174122 4.15223411e-14\"\n}))));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"-0.493 -0.5 12.993 13\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.9cfc97dd.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/shut-down/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\",\n transform: \"translate(1.000000, 0.000000)\",\n stroke: \"#FFFFFF\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.7735,2 C9.116,2.89710351 10,4.4271328 10,6.16330077 C10,8.92665975 7.7615,11.1666667 5,11.1666667 C2.2385,11.1666667 0,8.92665975 0,6.16330077 C0,4.43663919 0.8745,2.91361461 2.204,2.01450976\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 5,\n y1: 0.75,\n x2: 5,\n y2: 3.25,\n id: \"Stroke-3\"\n})));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.fa4681e8.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/shut-down/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\",\n transform: \"translate(1.000000, 0.000000)\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.7735,2 C9.116,2.89710351 10,4.4271328 10,6.16330077 C10,8.92665975 7.7615,11.1666667 5,11.1666667 C2.2385,11.1666667 0,8.92665975 0,6.16330077 C0,4.43663919 0.8745,2.91361461 2.204,2.01450976\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 5,\n y1: 0.75,\n x2: 5,\n y2: 3.25,\n id: \"Stroke-3\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.b27733af.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/unpair/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-12\",\n stroke: \"#FFFFFF\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\"\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-1\",\n points: \"3.75 6 2.25 6 0 3.75 3.75 0 6.75 3\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"8.25 6 9.75 6 12 8.25 8.25 12 5.25 9\"\n})), /*#__PURE__*/React.createElement(\"line\", {\n x1: 8.25,\n y1: 3,\n x2: 8.25,\n y2: 1.5,\n id: \"Stroke-6\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 9.75,\n y1: 3,\n x2: 10.5,\n y2: 2.25,\n id: \"Stroke-7\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 9.75,\n y1: 4.5,\n x2: 11.25,\n y2: 4.5,\n id: \"Stroke-8\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 2.25,\n y1: 7.5,\n x2: 0.75,\n y2: 7.5,\n id: \"Stroke-9\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 2.25,\n y1: 9,\n x2: 1.5,\n y2: 9.75,\n id: \"Stroke-10\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 3.75,\n y1: 9,\n x2: 3.75,\n y2: 10.5,\n id: \"Stroke-11\"\n})));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.f97c75d2.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/unpair/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-12\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\"\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-1\",\n points: \"3.75 6 2.25 6 0 3.75 3.75 0 6.75 3\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"8.25 6 9.75 6 12 8.25 8.25 12 5.25 9\"\n})), /*#__PURE__*/React.createElement(\"line\", {\n x1: 8.25,\n y1: 3,\n x2: 8.25,\n y2: 1.5,\n id: \"Stroke-6\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 9.75,\n y1: 3,\n x2: 10.5,\n y2: 2.25,\n id: \"Stroke-7\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 9.75,\n y1: 4.5,\n x2: 11.25,\n y2: 4.5,\n id: \"Stroke-8\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 2.25,\n y1: 7.5,\n x2: 0.75,\n y2: 7.5,\n id: \"Stroke-9\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 2.25,\n y1: 9,\n x2: 1.5,\n y2: 9.75,\n id: \"Stroke-10\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 3.75,\n y1: 9,\n x2: 3.75,\n y2: 10.5,\n id: \"Stroke-11\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.aa028a2c.svg\";\nexport { ForwardRef as ReactComponent };","import typographyStyles from 'src/components/typography/styles'\nimport { offColor, spacer, errorColor } from 'src/styling/variables'\n\nconst { label1 } = typographyStyles\n\nconst machineActionsStyles = {\n label: {\n extend: label1,\n color: offColor,\n marginBottom: 4\n },\n inlineChip: {\n marginInlineEnd: '0.25em'\n },\n stack: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n justifyContent: 'start'\n },\n mr: {\n marginRight: spacer,\n marginBottom: spacer\n },\n warning: {\n color: errorColor\n }\n}\n\nexport { machineActionsStyles }\n","import { useMutation, useLazyQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport React, { memo, useState } from 'react'\n\nimport { ConfirmDialog } from 'src/components/ConfirmDialog'\nimport ActionButton from 'src/components/buttons/ActionButton'\nimport { H3 } from 'src/components/typography'\nimport { ReactComponent as EditReversedIcon } from 'src/styling/icons/button/edit/white.svg'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/button/edit/zodiac.svg'\nimport { ReactComponent as RebootReversedIcon } from 'src/styling/icons/button/reboot/white.svg'\nimport { ReactComponent as RebootIcon } from 'src/styling/icons/button/reboot/zodiac.svg'\nimport { ReactComponent as ShutdownReversedIcon } from 'src/styling/icons/button/shut down/white.svg'\nimport { ReactComponent as ShutdownIcon } from 'src/styling/icons/button/shut down/zodiac.svg'\nimport { ReactComponent as UnpairReversedIcon } from 'src/styling/icons/button/unpair/white.svg'\nimport { ReactComponent as UnpairIcon } from 'src/styling/icons/button/unpair/zodiac.svg'\n\nimport { machineActionsStyles } from './MachineActions.styles'\n\nconst useStyles = makeStyles(machineActionsStyles)\n\nconst MACHINE_ACTION = gql`\n mutation MachineAction(\n $deviceId: ID!\n $action: MachineAction!\n $newName: String\n ) {\n machineAction(deviceId: $deviceId, action: $action, newName: $newName) {\n deviceId\n }\n }\n`\n\nconst MACHINE = gql`\n query getMachine($deviceId: ID!) {\n machine(deviceId: $deviceId) {\n latestEvent {\n note\n }\n }\n }\n`\n\nconst isStaticState = machineState => {\n if (!machineState) {\n return true\n }\n const staticStates = [\n 'chooseCoin',\n 'idle',\n 'pendingIdle',\n 'dualIdle',\n 'networkDown',\n 'unpaired',\n 'maintenance',\n 'virgin',\n 'wifiList'\n ]\n return staticStates.includes(machineState)\n}\n\nconst getState = machineEventsLazy =>\n JSON.parse(machineEventsLazy.machine.latestEvent?.note ?? '{\"state\": null}')\n .state\n\nconst MachineActions = memo(({ machine, onActionSuccess }) => {\n const [action, setAction] = useState({ command: null })\n const [preflightOptions, setPreflightOptions] = useState({})\n const [errorMessage, setErrorMessage] = useState(null)\n const classes = useStyles()\n\n const warningMessage = (\n \n A user may be in the middle of a transaction and they could lose their\n funds if you continue.\n \n )\n\n const [fetchMachineEvents, { loading: loadingEvents }] = useLazyQuery(\n MACHINE,\n preflightOptions\n )\n\n const [machineAction, { loading }] = useMutation(MACHINE_ACTION, {\n onError: ({ message }) => {\n const errorMessage = message ?? 'An error ocurred'\n setErrorMessage(errorMessage)\n },\n onCompleted: () => {\n onActionSuccess && onActionSuccess()\n setAction({ display: action.display, command: null })\n }\n })\n\n const confirmDialogOpen = Boolean(action.command)\n const disabled = !!(action?.command === 'restartServices' && loadingEvents)\n\n const machineStatusPreflight = actionToDo => {\n setPreflightOptions({\n variables: { deviceId: machine.deviceId },\n onCompleted: machineEventsLazy => {\n const message = !isStaticState(getState(machineEventsLazy))\n ? warningMessage\n : null\n setAction({ ...actionToDo, message })\n }\n })\n fetchMachineEvents()\n }\n\n return (\n \n
Actions \n
\n
\n setAction({\n command: 'rename',\n display: 'Rename',\n confirmationMessage: 'Write the new name for this machine'\n })\n }>\n Rename\n \n
\n setAction({\n command: 'unpair',\n display: 'Unpair'\n })\n }>\n Unpair\n \n
\n setAction({\n command: 'reboot',\n display: 'Reboot'\n })\n }>\n Reboot\n \n
\n setAction({\n command: 'shutdown',\n display: 'Shutdown',\n message:\n 'In order to bring it back online, the machine will need to be visited and its power reset.'\n })\n }>\n Shutdown\n \n
{\n machineStatusPreflight({\n command: 'restartServices',\n display: 'Restart services for'\n })\n }}>\n Restart Services\n \n
\n
{\n setErrorMessage(null)\n machineAction({\n variables: {\n deviceId: machine.deviceId,\n action: `${action?.command}`,\n ...(action?.command === 'rename' && { newName: value })\n }\n })\n }}\n onDismissed={() => {\n setAction({ display: action.display, command: null })\n setErrorMessage(null)\n }}\n />\n \n )\n})\n\nexport default MachineActions\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Styleguide\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/copy\",\n transform: \"translate(1.000000, 1.000000)\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5-Copy-2\"\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-1\",\n strokeWidth: 2,\n points: \"6 1.2 6 -0.00024 16 -0.00024 16 13.06376 12 13.06376\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-3\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n points: \"0 15.9368 10 15.9368 10 2.9368 0 2.9368\"\n}))));\n\nfunction SvgCopy(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"18px\",\n viewBox: \"0 0 18 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCopy);\nexport default __webpack_public_path__ + \"static/media/copy.f4cea549.svg\";\nexport { ForwardRef as ReactComponent };","import { fontSize5 } from 'src/styling/variables'\n\nexport default {\n titleWrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n flexDirection: 'row'\n },\n wrapper: {\n flex: 1,\n display: 'flex',\n flexDirection: 'row',\n height: '100%'\n },\n tableWrapper: {\n flex: 1,\n marginLeft: 40,\n display: 'block',\n overflowX: 'auto',\n width: '100%',\n maxWidth: '78%',\n maxHeight: '70vh'\n },\n table: {\n whiteSpace: 'nowrap',\n display: 'block',\n '& th': {\n position: 'sticky',\n top: 0\n }\n },\n dateColumn: {\n minWidth: 160\n },\n levelColumn: {\n minWidth: 100\n },\n fillColumn: {\n width: '100%'\n },\n shareButton: {\n margin: 8,\n display: 'flex',\n alignItems: 'center',\n fontSize: fontSize5,\n padding: [[0, 12]]\n },\n shareIcon: {\n marginRight: 6\n },\n button: {\n margin: 8\n },\n titleAndButtonsContainer: {\n display: 'flex'\n },\n buttonsWrapper: {\n display: 'flex',\n marginLeft: 16,\n '& > *': {\n margin: 'auto 6px'\n }\n }\n}\n","import typographyStyles from 'src/components/typography/styles'\nimport baseStyles from 'src/pages/Logs.styles'\nimport {\n offColor,\n white,\n primaryColor,\n zircon,\n smallestFontSize,\n inputFontFamily,\n inputFontWeight,\n spacer\n} from 'src/styling/variables'\n\nconst { label1, mono, p } = typographyStyles\nconst { titleWrapper, titleAndButtonsContainer, buttonsWrapper } = baseStyles\n\nconst cpcStyles = {\n wrapper: {\n extend: mono,\n display: 'flex',\n alignItems: 'center'\n },\n address: {\n lineBreak: 'anywhere'\n },\n buttonWrapper: {\n '& button': {\n border: 'none',\n backgroundColor: 'transparent',\n cursor: 'pointer'\n }\n },\n popoverContent: {\n extend: label1,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n color: white,\n borderRadius: 4,\n padding: [[5, 9]]\n }\n}\n\nconst detailsRowStyles = {\n idCardDataCard: {\n extend: p,\n display: 'flex',\n padding: [[11, 8]],\n '& > div': {\n display: 'flex',\n flexDirection: 'column',\n '& > div': {\n width: 144,\n height: 37,\n marginBottom: 15,\n '&:last-child': {\n marginBottom: 0\n }\n }\n }\n }\n}\n\nconst labelStyles = {\n label: {\n extend: label1,\n color: offColor,\n marginBottom: 4\n }\n}\n\nconst mainStyles = {\n titleWrapper,\n titleAndButtonsContainer,\n buttonsWrapper,\n headerLabels: {\n display: 'flex',\n flexDirection: 'row',\n '& div': {\n display: 'flex',\n alignItems: 'center'\n },\n '& > div': {\n marginLeft: 24\n },\n '& > div:first-child': {\n marginLeft: 0\n },\n '& span': {\n extend: label1,\n marginLeft: 6\n }\n },\n overflowTd: {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis'\n },\n flexWrapper: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n marginRight: 16\n },\n customerLinkIcon: {\n marginLeft: 2\n },\n flexRow: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center'\n },\n machineRedirectContainer: {\n marginLeft: 10,\n paddingLeft: 5,\n paddingRight: 5\n }\n}\n\nconst chipStyles = {\n root: {\n borderRadius: spacer / 2,\n marginTop: spacer / 2,\n marginRight: spacer / 4,\n marginBottom: spacer / 2,\n marginLeft: spacer / 4,\n height: spacer * 3,\n backgroundColor: zircon,\n '&:hover, &:focus, &:active': {\n backgroundColor: zircon\n }\n },\n label: {\n fontSize: smallestFontSize,\n fontWeight: inputFontWeight,\n fontFamily: inputFontFamily,\n paddingRight: spacer / 2,\n paddingLeft: spacer / 2,\n color: primaryColor\n }\n}\n\nexport { cpcStyles, detailsRowStyles, labelStyles, mainStyles, chipStyles }\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport * as R from 'ramda'\nimport React, { useState, useEffect } from 'react'\nimport { CopyToClipboard as ReactCopyToClipboard } from 'react-copy-to-clipboard'\n\nimport Popover from 'src/components/Popper'\nimport { ReactComponent as CopyIcon } from 'src/styling/icons/action/copy/copy.svg'\nimport { comet } from 'src/styling/variables'\n\nimport { cpcStyles } from './Transactions.styles'\n\nconst useStyles = makeStyles(cpcStyles)\n\nconst CopyToClipboard = ({\n className,\n buttonClassname,\n children,\n wrapperClassname,\n ...props\n}) => {\n const [anchorEl, setAnchorEl] = useState(null)\n\n useEffect(() => {\n if (anchorEl) setTimeout(() => setAnchorEl(null), 3000)\n }, [anchorEl])\n\n const classes = useStyles()\n\n const handleClick = event => {\n setAnchorEl(anchorEl ? null : event.currentTarget)\n }\n\n const handleClose = () => {\n setAnchorEl(null)\n }\n\n const open = Boolean(anchorEl)\n const id = open ? 'simple-popper' : undefined\n\n return (\n \n {children && (\n <>\n
\n {children}\n
\n
\n \n handleClick(event)}>\n \n \n \n
\n
\n \n
Copied to clipboard!
\n
\n \n >\n )}\n
\n )\n}\n\nexport default CopyToClipboard\n","import { makeStyles } from '@material-ui/core/styles'\nimport BigNumber from 'bignumber.js'\nimport { formatDistance } from 'date-fns'\nimport React from 'react'\n\nimport { Status } from 'src/components/Status'\nimport MachineActions from 'src/components/machineActions/MachineActions'\nimport { H3, Label1, P } from 'src/components/typography'\nimport CopyToClipboard from 'src/pages/Transactions/CopyToClipboard.js'\n\nimport styles from '../Machines.styles'\nconst useStyles = makeStyles(styles)\n\nconst Overview = ({ data, onActionSuccess }) => {\n const classes = useStyles()\n\n return (\n \n
\n
\n
\n Status \n {data && data.statuses ? : null}\n
\n
\n
\n
\n
Ping \n
\n {data.responseTime\n ? new BigNumber(data.responseTime).toFixed(3).toString() + ' ms'\n : 'unavailable'}\n
\n
\n
\n
Last ping \n
\n {data.lastPing\n ? formatDistance(new Date(data.lastPing), new Date(), {\n addSuffix: true\n })\n : 'unknown'}\n
\n
\n
\n
Network speed \n
\n {data.downloadSpeed\n ? new BigNumber(data.downloadSpeed).toFixed(4).toString() +\n ' MB/s'\n : 'unavailable'}\n
\n
\n
\n
\n
\n
Device ID \n
\n \n {data.deviceId}\n \n
\n
\n
\n
\n \n
\n
\n )\n}\n\nexport default Overview\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/ID/card/new/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-1\",\n stroke: \"#FFFFFF\",\n strokeWidth: 1.6,\n points: \"1 17 23 17 23 1 1 1\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 12.7857143,\n y1: 5,\n x2: 19.8571429,\n y2: 5,\n id: \"Stroke-3\",\n stroke: \"#FFFFFF\",\n strokeWidth: 1.6\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 12.7857143,\n y1: 8.2,\n x2: 19.8571429,\n y2: 8.2,\n id: \"Stroke-4\",\n stroke: \"#FFFFFF\",\n strokeWidth: 1.6\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-5\",\n stroke: \"#FFFFFF\",\n strokeWidth: 1.6,\n points: \"4.14285714 12.2 9.64285714 12.2 9.64285714 5 4.14285714 5\"\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"24px\",\n height: \"18px\",\n viewBox: \"0 0 24 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/ID/card/new/white\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.bd0d7dca.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/ID/card/new/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2\",\n transform: \"translate(1.000000, 1.000000)\",\n stroke: \"#1B2559\",\n strokeWidth: 1.6\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"id-copy\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-1\",\n points: \"0 16 22 16 22 0 0 0\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 11.7857143,\n y1: 4,\n x2: 18.8571429,\n y2: 4,\n id: \"Stroke-3\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 11.7857143,\n y1: 7.2,\n x2: 18.8571429,\n y2: 7.2,\n id: \"Stroke-4\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-5\",\n points: \"3.14285714 11.2 8.64285714 11.2 8.64285714 4 3.14285714 4\"\n}))));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"24px\",\n height: \"18px\",\n viewBox: \"0 0 24 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/ID/card/new/zodiac\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.8c7b512b.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/ID/phone/new/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.47150618,13.52898 C10.939556,16.9970298 14.7804112,17.1146315 16.4756355,16.9586292 C17.0220434,16.9090285 17.5308507,16.6578249 17.9188563,16.2698193 L20.0004862,14.1881894 L18.0220577,12.210561 L16.0436293,11.5505516 L14.7244104,12.8697705 C14.7244104,12.8697705 13.4059914,14.1881894 10.1091441,10.8905421 C6.81229671,7.59449473 8.13071565,6.27527578 8.13071565,6.27527578 L9.4499346,4.95605683 L8.78992512,2.97842842 L6.81229671,1 L4.73066681,3.0816299 C4.34186123,3.46963548 4.09145763,3.97844279 4.04105691,4.52485063 C3.88585468,6.22007499 4.00345637,10.0601301 7.47150618,13.52898 Z\",\n id: \"Stroke-1-Copy\",\n stroke: \"#FFFFFF\",\n strokeWidth: 1.6\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"24px\",\n height: \"18px\",\n viewBox: \"0 0 24 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/ID/phone/new/white\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.341f0eae.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/ID/phone/new/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.47150618,13.52898 C10.939556,16.9970298 14.7804112,17.1146315 16.4756355,16.9586292 C17.0220434,16.9090285 17.5308507,16.6578249 17.9188563,16.2698193 L20.0004862,14.1881894 L18.0220577,12.210561 L16.0436293,11.5505516 L14.7244104,12.8697705 C14.7244104,12.8697705 13.4059914,14.1881894 10.1091441,10.8905421 C6.81229671,7.59449473 8.13071565,6.27527578 8.13071565,6.27527578 L9.4499346,4.95605683 L8.78992512,2.97842842 L6.81229671,1 L4.73066681,3.0816299 C4.34186123,3.46963548 4.09145763,3.97844279 4.04105691,4.52485063 C3.88585468,6.22007499 4.00345637,10.0601301 7.47150618,13.52898 Z\",\n id: \"Stroke-1-Copy\",\n stroke: \"#1B2559\",\n strokeWidth: 1.6\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"24px\",\n height: \"18px\",\n viewBox: \"0 0 24 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/ID/phone/new/zodiac\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.594ae9e7.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/ID/photo/new/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12,14 C9.7912,14 8,12.2088 8,10 C8,7.7912 9.7912,6 12,6 C14.2088,6 16,7.7912 16,10 C16,12.2088 14.2088,14 12,14 Z M16.7142857,3.4 L14.3571429,1 L9.64285714,1 L7.28571429,3.4 L1,3.4 L1,17 L23,17 L23,3.4 L16.7142857,3.4 Z\",\n id: \"Stroke-1\",\n stroke: \"#FFFFFF\",\n strokeWidth: 1.6\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"24px\",\n height: \"18px\",\n viewBox: \"0 0 24 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/ID/photo/new/white\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.e53d9d4a.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/cancel/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\",\n stroke: \"#1B2559\",\n strokeWidth: 1.2\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 12,\n y1: 0,\n x2: 0,\n y2: 12,\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 0,\n x2: 12,\n y2: 12,\n id: \"Stroke-3\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.3b13c0b7.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/download/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/wizzard\",\n stroke: \"#FFFFFF\"\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path-3\",\n points: \"3.6 5.4 6 7.8 8.4 5.4\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 6,\n y1: 0.5,\n x2: 6,\n y2: 7.4,\n id: \"Path-4\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0,10 L0,10 C0,10.9942 0.8058,11.8 1.8,11.8 L10.2,11.8 C11.1942,11.8 12,10.9942 12,10\",\n id: \"Stroke-1\"\n})));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.81edd31f.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/download/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/wizzard\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path-3\",\n points: \"3.6 5.4 6 7.8 8.4 5.4\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 6,\n y1: 0.5,\n x2: 6,\n y2: 7.4,\n id: \"Path-4\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0,10 L0,10 C0,10.9942 0.8058,11.8 1.8,11.8 L10.2,11.8 C11.1942,11.8 12,10.9942 12,10\",\n id: \"Stroke-1\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.13543418.svg\";\nexport { ForwardRef as ReactComponent };","import { ApolloProvider } from '@apollo/react-hooks'\nimport { InMemoryCache } from 'apollo-cache-inmemory'\nimport { ApolloClient } from 'apollo-client'\nimport { ApolloLink } from 'apollo-link'\nimport { onError } from 'apollo-link-error'\nimport { createUploadLink } from 'apollo-upload-client'\nimport React, { useContext } from 'react'\nimport { useHistory, useLocation } from 'react-router-dom'\n\nimport AppContext from 'src/AppContext'\n\nconst URI =\n process.env.NODE_ENV === 'development' ? 'https://localhost:8070' : ''\n\nconst ALT_URI =\n process.env.NODE_ENV === 'development' ? 'http://localhost:4001' : ''\n\nconst uploadLink = createUploadLink({\n credentials: 'include',\n uri: `${URI}/graphql`\n})\n\nconst uploadLinkALT = createUploadLink({\n credentials: 'include',\n uri: `${ALT_URI}/graphql`\n})\n\nconst getClient = (history, location, getUserData, setUserData, setRole) =>\n new ApolloClient({\n link: ApolloLink.from([\n onError(({ graphQLErrors, networkError }) => {\n if (graphQLErrors)\n graphQLErrors.forEach(({ message, locations, path, extensions }) => {\n if (extensions?.code === 'UNAUTHENTICATED') {\n setUserData(null)\n if (location.pathname !== '/login') history.push('/login')\n }\n console.log(\n `[GraphQL error]: Message: ${message}, Location: ${locations}, Path: ${path}`\n )\n })\n if (networkError) console.log(`[Network error]: ${networkError}`)\n }),\n new ApolloLink((operation, forward) => {\n return forward(operation).map(response => {\n const context = operation.getContext()\n const {\n response: { headers }\n } = context\n\n if (headers) {\n const role = headers.get('lamassu_role')\n setRole(role)\n }\n\n return response\n })\n }),\n ApolloLink.split(\n operation => operation.getContext().clientName === 'pazuz',\n uploadLinkALT,\n uploadLink\n )\n ]),\n cache: new InMemoryCache(),\n defaultOptions: {\n watchQuery: {\n fetchPolicy: 'no-cache',\n errorPolicy: 'ignore'\n },\n query: {\n fetchPolicy: 'no-cache',\n errorPolicy: 'all'\n },\n mutate: {\n errorPolicy: 'all'\n }\n }\n })\n\nconst Provider = ({ children }) => {\n const history = useHistory()\n const location = useLocation()\n const { userData, setUserData, setRole } = useContext(AppContext)\n const client = getClient(\n history,\n location,\n () => userData,\n setUserData,\n setRole\n )\n\n return {children} \n}\n\nexport default Provider\nexport { URI }\n","import typographyStyles from 'src/components/typography/styles'\nimport { offColor, comet, white, tomato } from 'src/styling/variables'\n\nconst { p } = typographyStyles\n\nexport default {\n wrapper: {\n display: 'flex',\n flexDirection: 'column',\n marginTop: 24\n },\n row: {\n display: 'flex',\n flexDirection: 'row',\n marginBottom: 36\n },\n secondRow: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n marginBottom: 36\n },\n lastRow: {\n display: 'flex',\n flexDirection: 'row',\n marginBottom: 32\n },\n label: {\n color: offColor,\n margin: [[0, 0, 6, 0]],\n whiteSpace: 'nowrap'\n },\n txIcon: {\n marginRight: 10\n },\n clipboardPopover: {\n height: 164,\n width: 215\n },\n idButton: {\n marginRight: 4\n },\n idCardDataCard: {\n extend: p,\n display: 'flex',\n padding: [[11, 8]],\n '& > div': {\n display: 'flex',\n flexDirection: 'column',\n '& > div': {\n width: 144,\n height: 37,\n marginBottom: 15,\n '&:last-child': {\n marginBottom: 0\n }\n }\n }\n },\n bold: {\n fontWeight: 700\n },\n direction: {\n width: 233\n },\n availableIds: {\n width: 232\n },\n exchangeRate: {\n width: 250\n },\n commission: {\n width: 217\n },\n address: {\n width: 280\n },\n downloadRawLogs: {\n width: 180\n },\n cancelTransaction: {\n width: 160\n },\n status: {\n width: 230,\n '& > button': {\n marginTop: 20\n }\n },\n transactionId: {\n width: 280\n },\n sessionId: {\n width: 215\n },\n container: {\n display: 'flex'\n },\n chip: {\n display: 'flex',\n alignItems: 'center',\n padding: '4px 8px 4px 8px',\n backgroundColor: comet,\n color: white,\n height: 24,\n marginBottom: -24,\n marginTop: -3,\n marginLeft: 7,\n borderRadius: 4\n },\n chipLabel: {\n color: white\n },\n otherActionsGroup: {\n display: 'flex',\n flexDirection: 'row'\n },\n addressHeader: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center'\n },\n walletScore: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n '& > p': {\n marginLeft: 5\n }\n },\n error: {\n color: tomato\n }\n}\n","import * as R from 'ramda'\n\nconst getCashOutStatus = it => {\n if (it.hasError === 'Operator cancel') return 'Cancelled'\n if (it.hasError) return 'Error'\n if (it.dispense) return 'Success'\n if (it.expired) return 'Expired'\n return 'Pending'\n}\n\nconst getCashInStatus = it => {\n if (it.operatorCompleted) return 'Cancelled'\n if (it.hasError || it.batchError) return 'Error'\n if (it.sendConfirmed) return 'Sent'\n if (it.expired) return 'Expired'\n if (it.batched) return 'Batched'\n return 'Pending'\n}\n\nconst getStatus = it => {\n if (it.txClass === 'cashOut') {\n return getCashOutStatus(it)\n }\n return getCashInStatus(it)\n}\n\nconst getStatusDetails = it => {\n if (!R.isNil(it.hasError)) return it.hasError\n if (!R.isNil(it.batchError)) return `Batch error: ${it.batchError}`\n return null\n}\n\nconst getStatusProperties = status => ({\n hasError: status === 'Error' || null,\n batchError: status === 'Error' || null,\n dispense: status === 'Success' || null,\n expired: status === 'Expired' || null,\n operatorCompleted: status === 'Cancelled' || null,\n sendConfirmed: status === 'Sent' || null\n})\n\nexport { getStatus, getStatusProperties, getStatusDetails }\n","import { useLazyQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles, Box } from '@material-ui/core'\nimport BigNumber from 'bignumber.js'\nimport classNames from 'classnames'\nimport { add, differenceInYears, format, sub, parse } from 'date-fns/fp'\nimport FileSaver from 'file-saver'\nimport gql from 'graphql-tag'\nimport JSZip from 'jszip'\nimport { utils as coinUtils } from '@lamassu/coins'\nimport * as R from 'ramda'\nimport React, { memo, useState } from 'react'\n\nimport { ConfirmDialog } from 'src/components/ConfirmDialog'\nimport { HoverableTooltip } from 'src/components/Tooltip'\nimport { IDButton, ActionButton } from 'src/components/buttons'\nimport { P, Label1 } from 'src/components/typography'\nimport { ReactComponent as CardIdInverseIcon } from 'src/styling/icons/ID/card/white.svg'\nimport { ReactComponent as CardIdIcon } from 'src/styling/icons/ID/card/zodiac.svg'\nimport { ReactComponent as PhoneIdInverseIcon } from 'src/styling/icons/ID/phone/white.svg'\nimport { ReactComponent as PhoneIdIcon } from 'src/styling/icons/ID/phone/zodiac.svg'\nimport { ReactComponent as CamIdInverseIcon } from 'src/styling/icons/ID/photo/white.svg'\nimport { ReactComponent as CamIdIcon } from 'src/styling/icons/ID/photo/zodiac.svg'\nimport { ReactComponent as CancelInverseIcon } from 'src/styling/icons/button/cancel/white.svg'\nimport { ReactComponent as CancelIcon } from 'src/styling/icons/button/cancel/zodiac.svg'\nimport { ReactComponent as DownloadInverseIcon } from 'src/styling/icons/button/download/white.svg'\nimport { ReactComponent as Download } from 'src/styling/icons/button/download/zodiac.svg'\nimport { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport {\n primaryColor,\n subheaderColor,\n errorColor,\n offErrorColor\n} from 'src/styling/variables'\nimport { URI } from 'src/utils/apollo'\nimport { onlyFirstToUpper } from 'src/utils/string'\n\nimport CopyToClipboard from './CopyToClipboard'\nimport styles from './DetailsCard.styles'\nimport { getStatus, getStatusDetails } from './helper'\n\nconst useStyles = makeStyles(styles)\nconst MINUTES_OFFSET = 3\nconst TX_SUMMARY = gql`\n query txSummaryAndLogs(\n $txId: ID!\n $deviceId: ID!\n $limit: Int\n $from: Date\n $until: Date\n $txClass: String\n $timezone: String\n ) {\n serverLogsCsv(\n limit: $limit\n from: $from\n until: $until\n timezone: $timezone\n )\n machineLogsCsv(\n deviceId: $deviceId\n limit: $limit\n from: $from\n until: $until\n timezone: $timezone\n )\n transactionCsv(id: $txId, txClass: $txClass, timezone: $timezone)\n txAssociatedDataCsv(id: $txId, txClass: $txClass, timezone: $timezone)\n }\n`\n\nconst CANCEL_CASH_OUT_TRANSACTION = gql`\n mutation cancelCashOutTransaction($id: ID!) {\n cancelCashOutTransaction(id: $id) {\n id\n }\n }\n`\n\nconst CANCEL_CASH_IN_TRANSACTION = gql`\n mutation cancelCashInTransaction($id: ID!) {\n cancelCashInTransaction(id: $id) {\n id\n }\n }\n`\n\nconst getCryptoAmount = tx =>\n coinUtils.toUnit(new BigNumber(tx.cryptoAtoms), tx.cryptoCode).toNumber()\n\n/* Port of getProfit() from lib/new-admin/services/transactions.js */\nconst getCommission = tx => {\n const calcCashInProfit = (fiat, crypto, tickerPrice, fee) =>\n fiat - crypto * tickerPrice + fee\n const calcCashOutProfit = (fiat, crypto, tickerPrice) =>\n crypto * tickerPrice - fiat\n\n const fiat = Number.parseFloat(tx.fiat)\n const crypto = getCryptoAmount(tx)\n const tickerPrice = Number.parseFloat(tx.rawTickerPrice)\n const isCashIn = tx.txClass === 'cashIn'\n const cashInFee = isCashIn ? Number.parseFloat(tx.cashInFee) : 0\n\n return isCashIn\n ? calcCashInProfit(fiat, crypto, tickerPrice, cashInFee)\n : calcCashOutProfit(fiat, crypto, tickerPrice)\n}\n\nconst formatAddress = (cryptoCode = '', address = '') =>\n coinUtils.formatCryptoAddress(cryptoCode, address).replace(/(.{5})/g, '$1 ')\n\nconst Label = ({ children }) => {\n const classes = useStyles()\n return {children} \n}\n\nconst DetailsRow = ({ it: tx, timezone }) => {\n const classes = useStyles()\n const [action, setAction] = useState({ command: null })\n const [errorMessage, setErrorMessage] = useState('')\n\n const isCashIn = tx.txClass === 'cashIn'\n\n const zip = new JSZip()\n\n const [fetchSummary] = useLazyQuery(TX_SUMMARY, {\n onCompleted: data => createCsv(data)\n })\n\n const [cancelTransaction] = useMutation(\n isCashIn ? CANCEL_CASH_IN_TRANSACTION : CANCEL_CASH_OUT_TRANSACTION,\n {\n onError: ({ message }) =>\n setErrorMessage(message ?? 'An error occurred.'),\n refetchQueries: () => ['transactions']\n }\n )\n\n const commission = getCommission(tx).toFixed(2)\n const commissionPercentage =\n Number.parseFloat(tx.commissionPercentage, 2) * 100\n const cashInFee = isCashIn ? Number.parseFloat(tx.cashInFee) : 0\n const fiat = Number.parseFloat(tx.fiat)\n const crypto = getCryptoAmount(tx)\n const exchangeRate = (fiat / crypto).toFixed(2)\n const displayExRate = `1 ${tx.cryptoCode} = ${exchangeRate} ${tx.fiatCode}`\n const discount = tx.discount ? `-${tx.discount}%` : null\n\n const parseDateString = parse(new Date(), 'yyyyMMdd')\n\n const customer = tx.customerIdCardData && {\n name: `${onlyFirstToUpper(\n tx.customerIdCardData.firstName\n )} ${onlyFirstToUpper(tx.customerIdCardData.lastName)}`,\n age:\n (tx.customerIdCardData.dateOfBirth &&\n differenceInYears(\n parseDateString(tx.customerIdCardData.dateOfBirth),\n new Date()\n )) ??\n '',\n country: tx.customerIdCardData.country,\n idCardNumber: tx.customerIdCardData.documentNumber,\n idCardExpirationDate:\n (tx.customerIdCardData.expirationDate &&\n format('yyyy-MM-dd')(\n parseDateString(tx.customerIdCardData.expirationDate)\n )) ??\n ''\n }\n\n const from = sub({ minutes: MINUTES_OFFSET }, new Date(tx.created))\n const until = add({ minutes: MINUTES_OFFSET }, new Date(tx.created))\n\n const downloadRawLogs = ({ id: txId, deviceId, txClass }, timezone) => {\n fetchSummary({\n variables: { txId, from, until, deviceId, txClass, timezone }\n })\n }\n\n const createCsv = async logs => {\n const zipFilename = `tx_${tx.id}_summary.zip`\n const filesNames = R.keys(logs)\n R.map(name => zip.file(name + '.csv', logs[name]), filesNames)\n const content = await zip.generateAsync({ type: 'blob' })\n FileSaver.saveAs(content, zipFilename)\n }\n\n const errorElements = (\n <>\n Transaction status \n {getStatus(tx)} \n >\n )\n\n const walletScoreEl = (\n \n
\n {R.map(\n it => (\n \n ),\n R.range(0, 10)\n )}\n \n
\n {tx.walletScore}\n
\n
\n )\n\n const getCancelMessage = () => {\n const cashInMessage = `The user will not be able to redeem the inserted bills, even if they subsequently confirm the transaction. If they've already deposited bills, you'll need to reconcile this transaction with them manually.`\n const cashOutMessage = `The user will not be able to redeem the cash, even if they subsequently send the required coins. If they've already sent you coins, you'll need to reconcile this transaction with them manually.`\n\n return isCashIn ? cashInMessage : cashOutMessage\n }\n\n return (\n \n
\n
\n
Direction \n
\n \n {!isCashIn ? : }\n \n {!isCashIn ? 'Cash-out' : 'Cash-in'} \n
\n
\n\n
\n
Available IDs \n
\n {tx.customerPhone && (\n \n {tx.customerPhone}\n \n )}\n {tx.customerIdCardPhotoPath && !tx.customerIdCardData && (\n \n \n \n )}\n {tx.customerIdCardData && (\n \n \n
\n
\n
Name \n
{customer.name}
\n
\n
\n
Age \n
{customer.age}
\n
\n
\n
Country \n
{customer.country}
\n
\n
\n
\n
\n
ID number \n
{customer.idCardNumber}
\n
\n
\n
Expiration date \n
{customer.idCardExpirationDate}
\n
\n
\n
\n \n )}\n {tx.customerFrontCameraPath && (\n \n \n \n )}\n \n
\n
\n
Exchange rate \n
{crypto > 0 ? displayExRate : '-'}
\n
\n
\n
Commission \n
\n {`${commission} ${tx.fiatCode} (${commissionPercentage} %)`}\n {discount && (\n
\n {discount} \n
\n )}\n
\n
\n
\n
Fixed fee \n
{isCashIn ? `${cashInFee} ${tx.fiatCode}` : 'N/A'}
\n
\n
\n
\n
\n
\n Address \n {!R.isNil(tx.walletScore) && (\n \n {`CipherTrace score: ${tx.walletScore}/10`}\n \n )}\n
\n
\n \n {formatAddress(tx.cryptoCode, tx.toAddress)}\n \n
\n
\n
\n
Transaction ID \n
\n {tx.txClass === 'cashOut' ? (\n 'N/A'\n ) : (\n {tx.txHash} \n )}\n
\n
\n
\n Session ID \n {tx.id} \n
\n
\n
\n
\n {getStatusDetails(tx) ? (\n
\n {getStatusDetails(tx)}
\n \n ) : (\n errorElements\n )}\n {tx.txClass === 'cashOut' && getStatus(tx) === 'Pending' && (\n
\n setAction({\n command: 'cancelTx'\n })\n }>\n Cancel transaction\n \n )}\n
\n
\n
Other actions \n
\n
downloadRawLogs(tx, timezone)}>\n Download raw logs\n \n
\n
\n
\n
{\n setErrorMessage(null)\n setAction({ command: null })\n cancelTransaction({\n variables: {\n id: tx.id\n }\n })\n }}\n onDismissed={() => {\n setAction({ command: null })\n setErrorMessage(null)\n }}\n />\n \n )\n}\n\nexport default memo(\n DetailsRow,\n (prev, next) =>\n prev.it.id === next.it.id &&\n prev.it.hasError === next.it.hasError &&\n prev.it.batchError === next.it.batchError &&\n getStatus(prev.it) === getStatus(next.it)\n)\n","import { zircon } from 'src/styling/variables'\n\nexport default {\n expandButton: {\n outline: 'none',\n border: 'none',\n backgroundColor: 'transparent',\n cursor: 'pointer',\n padding: 4\n },\n rowWrapper: {\n // workaround to shadows cut by r-virtualized when scroll is visible\n padding: 1\n },\n row: {\n border: [[2, 'solid', 'transparent']],\n borderRadius: 0\n },\n expanded: {\n border: [[2, 'solid', zircon]],\n boxShadow: '0 0 8px 0 rgba(0,0,0,0.08)'\n },\n before: {\n paddingTop: 12\n },\n after: {\n paddingBottom: 12\n },\n pointer: {\n cursor: 'pointer'\n },\n body: {\n flex: [[1, 1, 'auto']]\n },\n table: ({ width }) => ({\n marginBottom: 30,\n minHeight: 200,\n width,\n flex: 1,\n display: 'flex',\n flexDirection: 'column'\n }),\n emptyTable: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n marginTop: 52\n }\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Styleguide\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/expand/closed\",\n transform: \"translate(1.000000, 1.000000)\",\n stroke: \"#1B2559\",\n strokeWidth: 1.5\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-4\",\n cx: 14,\n cy: 2,\n r: 2\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-4-Copy\",\n cx: 8,\n cy: 2,\n r: 2\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-4-Copy-2\",\n cx: 2,\n cy: 2,\n r: 2\n})));\n\nfunction SvgClosed(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"6px\",\n viewBox: \"0 0 18 6\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgClosed);\nexport default __webpack_public_path__ + \"static/media/closed.b853a619.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Styleguide\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/expand/open\",\n transform: \"translate(1.000000, 1.000000)\",\n fill: \"#1B2559\",\n stroke: \"#1B2559\",\n strokeWidth: 1.5\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-4\",\n cx: 14,\n cy: 2,\n r: 2\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-4-Copy\",\n cx: 8,\n cy: 2,\n r: 2\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-4-Copy-2\",\n cx: 2,\n cy: 2,\n r: 2\n})));\n\nfunction SvgOpen(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"6px\",\n viewBox: \"0 0 18 6\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgOpen);\nexport default __webpack_public_path__ + \"static/media/open.7196c113.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles, Box } from '@material-ui/core'\nimport classnames from 'classnames'\nimport * as R from 'ramda'\nimport React, { useState, useEffect } from 'react'\nimport {\n AutoSizer,\n List,\n CellMeasurer,\n CellMeasurerCache\n} from 'react-virtualized'\n\nimport {\n Table,\n TBody,\n THead,\n Tr,\n Td,\n Th\n} from 'src/components/fake-table/Table'\nimport styles from 'src/components/tables/DataTable.styles'\nimport { H4 } from 'src/components/typography'\nimport { ReactComponent as ExpandClosedIcon } from 'src/styling/icons/action/expand/closed.svg'\nimport { ReactComponent as ExpandOpenIcon } from 'src/styling/icons/action/expand/open.svg'\n\nconst useStyles = makeStyles(styles)\n\nconst Row = ({\n id,\n elements,\n data,\n width,\n Details,\n expanded,\n expandRow,\n expWidth,\n expandable,\n onClick\n}) => {\n const classes = useStyles()\n\n const hasPointer = onClick || expandable\n const trClasses = {\n [classes.pointer]: hasPointer,\n [classes.row]: true,\n [classes.expanded]: expanded\n }\n\n return (\n \n
\n
{\n expandable && expandRow(id)\n onClick && onClick(data)\n }}\n error={data.error}\n errorMessage={data.errorMessage}>\n {elements.map(({ view = it => it?.toString(), ...props }, idx) => (\n \n {view(data)}\n \n ))}\n {expandable && (\n \n expandRow(id)}\n className={classes.expandButton}>\n {expanded && }\n {!expanded && }\n \n \n )}\n \n \n {expandable && expanded && (\n
\n
\n \n \n \n \n \n )}\n
\n )\n}\n\nconst DataTable = ({\n elements = [],\n data = [],\n Details,\n className,\n expandable,\n initialExpanded,\n onClick,\n loading,\n emptyText,\n extraHeight,\n ...props\n}) => {\n const [expanded, setExpanded] = useState(initialExpanded)\n\n useEffect(() => setExpanded(initialExpanded), [initialExpanded])\n\n const coreWidth = R.compose(R.sum, R.map(R.prop('width')))(elements)\n const expWidth = 850 - coreWidth\n const width = coreWidth + (expandable ? expWidth : 0)\n\n const classes = useStyles({ width })\n\n const expandRow = id => {\n setExpanded(id === expanded ? null : id)\n }\n\n const cache = new CellMeasurerCache({\n defaultHeight: 62,\n fixedWidth: true\n })\n\n function rowRenderer({ index, key, parent, style }) {\n return (\n \n \n
\n
\n \n )\n }\n\n return (\n \n \n \n {elements.map(({ width, className, textAlign, header }, idx) => (\n \n {header}\n \n ))}\n {expandable && }\n \n \n {loading && Loading... }\n {!loading && R.isEmpty(data) && {emptyText} }\n \n {() => (\n
\n )}\n \n \n
\n \n )\n}\n\nexport default DataTable\n","import { useQuery, useLazyQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport BigNumber from 'bignumber.js'\nimport gql from 'graphql-tag'\nimport { utils as coinUtils } from '@lamassu/coins'\nimport * as R from 'ramda'\nimport React, { useEffect, useState } from 'react'\n\nimport DetailsRow from 'src/pages/Transactions/DetailsCard'\nimport { mainStyles } from 'src/pages/Transactions/Transactions.styles'\nimport { getStatus } from 'src/pages/Transactions/helper'\nimport { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport { formatDate } from 'src/utils/timezones'\n\nimport DataTable from './DataTable'\nconst useStyles = makeStyles(mainStyles)\n\nconst NUM_LOG_RESULTS = 5\n\nconst GET_TRANSACTIONS = gql`\n query transactions($limit: Int, $from: Date, $until: Date, $deviceId: ID) {\n transactions(\n limit: $limit\n from: $from\n until: $until\n deviceId: $deviceId\n ) {\n id\n txClass\n txHash\n toAddress\n commissionPercentage\n expired\n machineName\n operatorCompleted\n sendConfirmed\n dispense\n hasError: error\n deviceId\n fiat\n cashInFee\n fiatCode\n cryptoAtoms\n cryptoCode\n toAddress\n created\n customerName\n customerIdCardData\n customerIdCardPhotoPath\n customerFrontCameraPath\n customerPhone\n discount\n customerId\n isAnonymous\n rawTickerPrice\n }\n }\n`\n\nconst GET_DATA = gql`\n query getData {\n config\n }\n`\n\nconst Transactions = ({ id }) => {\n const classes = useStyles()\n\n const [extraHeight, setExtraHeight] = useState(0)\n const [clickedId, setClickedId] = useState('')\n\n const [getTx, { data: txResponse, loading: txLoading }] = useLazyQuery(\n GET_TRANSACTIONS,\n {\n variables: {\n limit: NUM_LOG_RESULTS,\n deviceId: id\n }\n }\n )\n\n const { data: configData, loading: configLoading } = useQuery(GET_DATA)\n const timezone = R.path(['config', 'locale_timezone'], configData)\n\n const loading = txLoading || configLoading\n\n if (!loading && txResponse) {\n txResponse.transactions = txResponse.transactions.splice(0, 5)\n }\n\n useEffect(() => {\n if (id !== null) {\n getTx()\n }\n }, [getTx, id])\n\n const formatCustomerName = customer => {\n const { firstName, lastName } = customer\n\n return `${R.o(R.toUpper, R.head)(firstName)}. ${lastName}`\n }\n\n const getCustomerDisplayName = tx => {\n if (tx.customerName) return tx.customerName\n if (tx.customerIdCardData) return formatCustomerName(tx.customerIdCardData)\n return tx.customerPhone\n }\n\n const elements = [\n {\n header: '',\n width: 0,\n size: 'sm',\n view: it => (it.txClass === 'cashOut' ? : )\n },\n {\n header: 'Customer',\n width: 122,\n size: 'sm',\n view: getCustomerDisplayName\n },\n {\n header: 'Cash',\n width: 144,\n textAlign: 'right',\n size: 'sm',\n view: it => `${Number.parseFloat(it.fiat)} ${it.fiatCode}`\n },\n {\n header: 'Crypto',\n width: 164,\n textAlign: 'right',\n size: 'sm',\n view: it =>\n `${coinUtils\n .toUnit(new BigNumber(it.cryptoAtoms), it.cryptoCode)\n .toFormat(5)} ${it.cryptoCode}`\n },\n {\n header: 'Address',\n view: it => coinUtils.formatCryptoAddress(it.cryptoCode, it.toAddress),\n className: classes.overflowTd,\n size: 'sm',\n textAlign: 'left',\n width: 140\n },\n {\n header: 'Date',\n view: it => formatDate(it.created, timezone, 'yyyy‑MM‑dd'),\n textAlign: 'left',\n size: 'sm',\n width: 140\n },\n {\n header: 'Status',\n view: it => getStatus(it),\n size: 'sm',\n width: 20\n }\n ]\n\n const handleClick = e => {\n if (clickedId === e.id) {\n setClickedId('')\n setExtraHeight(0)\n } else {\n setClickedId(e.id)\n setExtraHeight(310)\n }\n }\n\n return (\n \n )\n}\n\nexport default Transactions\n","import Transactions from './Transactions'\nexport default Transactions\n","import { useQuery } from '@apollo/react-hooks'\nimport Breadcrumbs from '@material-ui/core/Breadcrumbs'\nimport Grid from '@material-ui/core/Grid'\nimport { makeStyles } from '@material-ui/core/styles'\nimport NavigateNextIcon from '@material-ui/icons/NavigateNext'\nimport classnames from 'classnames'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\nimport { Link, useLocation, useHistory } from 'react-router-dom'\n\nimport { TL1, TL2, Label3 } from 'src/components/typography'\n\nimport Cassettes from './MachineComponents/Cassettes'\nimport Commissions from './MachineComponents/Commissions'\nimport Details from './MachineComponents/Details'\nimport Overview from './MachineComponents/Overview'\nimport Transactions from './MachineComponents/Transactions'\nimport styles from './Machines.styles'\nconst useStyles = makeStyles(styles)\n\nconst GET_INFO = gql`\n query getMachine($deviceId: ID!, $billFilters: JSONObject) {\n machine(deviceId: $deviceId) {\n name\n deviceId\n paired\n lastPing\n pairedAt\n version\n model\n cashbox\n cassette1\n cassette2\n cassette3\n cassette4\n numberOfCassettes\n statuses {\n label\n type\n }\n downloadSpeed\n responseTime\n packetLoss\n latestEvent {\n note\n }\n }\n bills(filters: $billFilters) {\n id\n fiat\n deviceId\n created\n }\n config\n }\n`\n\nconst getMachineID = path => path.slice(path.lastIndexOf('/') + 1)\n\nconst MachineRoute = () => {\n const location = useLocation()\n const history = useHistory()\n\n const id = getMachineID(location.pathname)\n\n const [loading, setLoading] = useState(true)\n\n const { data, refetch } = useQuery(GET_INFO, {\n onCompleted: data => {\n if (data.machine === null)\n return history.push('/maintenance/machine-status')\n\n setLoading(false)\n },\n variables: {\n deviceId: id\n },\n billFilters: {\n deviceId: id,\n batch: 'none'\n }\n })\n\n const reload = () => {\n return history.push(location.pathname)\n }\n\n return (\n !loading && (\n \n )\n )\n}\n\nconst Machines = ({ data, refetch, reload }) => {\n const classes = useStyles()\n\n const timezone = R.path(['config', 'locale_timezone'], data) ?? {}\n\n const machine = R.path(['machine'])(data) ?? {}\n const config = R.path(['config'])(data) ?? {}\n const bills = R.path(['bills'])(data) ?? []\n\n const machineName = R.path(['name'])(machine) ?? null\n const machineID = R.path(['deviceId'])(machine) ?? null\n\n return (\n \n \n \n \n }>\n \n \n Dashboard\n \n \n \n {machineName}\n \n \n \n
\n \n \n \n \n
\n {'Details'} \n \n
\n
\n {'Cash box & cassettes'} \n \n
\n
\n {'Latest transactions'} \n \n
\n
\n {'Commissions'} \n \n
\n
\n \n \n )\n}\n\nexport default MachineRoute\n","import Machines from './Machines'\n\nexport default Machines\n","const denomiations = {\n AUD: {\n 5: 130,\n 10: 137,\n 20: 144,\n 50: 151,\n 100: 158\n },\n BBD: {\n 2: 150,\n 5: 150,\n 10: 150,\n 20: 150,\n 50: 150,\n 100: 150\n },\n CAD: {\n 5: 152,\n 10: 152,\n 20: 152,\n 50: 152,\n 100: 152\n },\n CHF: {\n 10: 126,\n 20: 137,\n 50: 148,\n 100: 159,\n 200: 170,\n 1000: 181\n },\n DKK: {\n 50: 125,\n 100: 135,\n 200: 145,\n 500: 155,\n 1000: 165\n },\n EUR: {\n 5: 120,\n 10: 127,\n 20: 133,\n 50: 140,\n 100: 147,\n 200: 153,\n 500: 160\n },\n GBP: {\n 5: 135,\n 10: 142,\n 20: 149,\n 50: 156\n },\n HKD: {\n 10: 134,\n 20: 143,\n 50: 148,\n 100: 153,\n 500: 158,\n 1000: 163\n },\n HUF: {\n 200: 154,\n 500: 154,\n 1000: 154,\n 2000: 154,\n 5000: 154,\n 10000: 154,\n 20000: 154\n },\n ILS: {\n 20: 129,\n 50: 136,\n 100: 143,\n 200: 150\n },\n JMD: {\n 50: 145,\n 100: 145,\n 500: 145,\n 1000: 145,\n 5000: 145\n },\n JPY: {\n 1000: 150,\n 2000: 154,\n 5000: 156,\n 10000: 160\n },\n KZT: {\n 200: 126,\n 500: 130,\n 1000: 134,\n 2000: 139,\n 5000: 144,\n 10000: 155,\n 20000: 155\n },\n MXN: {\n 20: 120,\n 50: 127,\n 100: 134,\n 200: 141,\n 500: 148,\n 1000: 155\n },\n MYR: {\n 1: 120,\n 5: 135,\n 10: 140,\n 20: 145,\n 50: 145,\n 100: 150\n },\n NZD: {\n 5: 135,\n 10: 140,\n 20: 145,\n 50: 150,\n 100: 155\n },\n PHP: {\n 20: 160,\n 50: 160,\n 100: 160,\n 200: 160,\n 500: 160,\n 1000: 160\n },\n PLN: {\n 10: 120,\n 20: 126,\n 50: 132,\n 100: 138,\n 200: 144,\n 500: 150\n },\n SGD: {\n 2: 126,\n 5: 133,\n 10: 141,\n 50: 156,\n 100: 162,\n 1000: 170\n },\n TWD: {\n 100: 145,\n 200: 150,\n 500: 155,\n 1000: 160,\n 2000: 165\n },\n UAH: {\n 1: 118,\n 2: 118,\n 5: 118,\n 10: 124,\n 20: 130,\n 50: 136,\n 100: 142,\n 200: 148,\n 500: 154\n },\n USD: {\n 1: 156,\n 5: 156,\n 10: 156,\n 20: 156,\n 50: 156,\n 100: 156\n },\n VND: {\n 10000: 132,\n 20000: 136,\n 50000: 140,\n 100000: 144,\n 200000: 148,\n 500000: 152\n },\n ZAR: {\n 10: 128,\n 20: 134,\n 50: 140,\n 100: 146,\n 200: 152\n }\n}\n\nexport default denomiations\n","import * as R from 'ramda'\n\nconst getBillOptions = R.curry((locale, denomiations) => {\n const currency = R.prop('fiatCurrency')(locale)\n return R.compose(\n R.map(code => ({ code: parseInt(code), display: code })),\n R.keys,\n R.path([currency])\n )(denomiations)\n})\n\nexport { getBillOptions }\n","import * as _ from 'lodash/fp'\nimport * as R from 'ramda'\nimport React from 'react'\nimport { v4 } from 'uuid'\nimport * as Yup from 'yup'\n\nimport { Autocomplete, NumberInput } from 'src/components/inputs/formik'\nimport { bold } from 'src/styling/helpers'\nimport { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport { primaryColor, secondaryColorDark } from 'src/styling/variables'\nimport denominations from 'src/utils/bill-denominations'\nimport { getBillOptions } from 'src/utils/bill-options'\nimport { CURRENCY_MAX } from 'src/utils/constants'\n\nconst ALL_MACHINES = {\n name: 'All Machines',\n deviceId: 'ALL_MACHINES'\n}\n\nconst ALL_COINS = {\n display: 'All Coins',\n code: 'ALL_COINS'\n}\n\nconst cashInAndOutHeaderStyle = { marginLeft: 6, whiteSpace: 'nowrap' }\n\nconst cashInHeader = (\n \n \n Cash-in \n
\n)\n\nconst cashOutHeader = (\n \n \n Cash-out \n
\n)\n\nconst getView = (data, code, compare) => it => {\n if (!data) return ''\n\n // The following boolean should come undefined if it is rendering an unpaired machine\n const attribute = R.find(R.propEq(compare ?? 'code', it))(data)\n\n return attribute ? R.prop(code, attribute) : 'Unpaired machine'\n}\n\nconst displayCodeArray = data => it => {\n if (!it) return it\n\n return R.compose(R.join(', '), R.map(getView(data, 'display')))(it)\n}\n\nconst onCryptoChange = (prev, curr, setValue) => {\n const hasAllCoins = R.includes(ALL_COINS.code)(curr)\n const hadAllCoins = R.includes(ALL_COINS.code)(prev)\n\n if (hasAllCoins && hadAllCoins && R.length(curr) > 1) {\n return setValue(R.reject(R.equals(ALL_COINS.code))(curr))\n }\n\n if (hasAllCoins && !hadAllCoins) {\n return setValue([ALL_COINS.code])\n }\n\n setValue(curr)\n}\n\nconst getOverridesFields = (getData, currency, auxElements) => {\n const machineData = [ALL_MACHINES].concat(getData(['machines']))\n const rawCryptos = getData(['cryptoCurrencies'])\n const cryptoData = [ALL_COINS].concat(\n R.map(it => ({ display: it.code, code: it.code }))(rawCryptos ?? [])\n )\n\n return [\n {\n name: 'machine',\n width: 196,\n size: 'sm',\n view: getView(machineData, 'name', 'deviceId'),\n input: Autocomplete,\n inputProps: {\n options: machineData,\n valueProp: 'deviceId',\n labelProp: 'name'\n }\n },\n {\n name: 'cryptoCurrencies',\n width: 280,\n size: 'sm',\n view: displayCodeArray(cryptoData),\n input: Autocomplete,\n inputProps: {\n options: cryptoData,\n valueProp: 'code',\n labelProp: 'display',\n multiple: true,\n onChange: onCryptoChange,\n shouldStayOpen: true\n }\n },\n {\n header: cashInHeader,\n name: 'cashIn',\n display: 'Cash-in',\n width: 130,\n input: NumberInput,\n textAlign: 'right',\n suffix: '%',\n bold: bold,\n inputProps: {\n decimalPlaces: 3\n }\n },\n {\n header: cashOutHeader,\n name: 'cashOut',\n display: 'Cash-out',\n width: 130,\n input: NumberInput,\n textAlign: 'right',\n suffix: '%',\n bold: bold,\n inputProps: {\n decimalPlaces: 3\n }\n },\n {\n name: 'fixedFee',\n display: 'Fixed fee',\n width: 144,\n input: NumberInput,\n doubleHeader: 'Cash-in only',\n textAlign: 'right',\n suffix: currency,\n bold: bold,\n inputProps: {\n decimalPlaces: 2\n }\n },\n {\n name: 'minimumTx',\n display: 'Minimun Tx',\n width: 169,\n doubleHeader: 'Cash-in only',\n textAlign: 'center',\n editingAlign: 'right',\n input: NumberInput,\n suffix: currency,\n bold: bold,\n inputProps: {\n decimalPlaces: 2\n }\n }\n ]\n}\n\nconst mainFields = currency => [\n {\n header: cashInHeader,\n name: 'cashIn',\n display: 'Cash-in',\n width: 169,\n size: 'lg',\n editingAlign: 'right',\n input: NumberInput,\n suffix: '%',\n bold: bold,\n inputProps: {\n decimalPlaces: 3\n }\n },\n {\n header: cashOutHeader,\n name: 'cashOut',\n display: 'Cash-out',\n width: 169,\n size: 'lg',\n editingAlign: 'right',\n input: NumberInput,\n suffix: '%',\n bold: bold,\n inputProps: {\n decimalPlaces: 3\n }\n },\n {\n name: 'fixedFee',\n display: 'Fixed fee',\n width: 169,\n size: 'lg',\n doubleHeader: 'Cash-in only',\n textAlign: 'center',\n editingAlign: 'right',\n input: NumberInput,\n suffix: currency,\n bold: bold,\n inputProps: {\n decimalPlaces: 2\n }\n },\n {\n name: 'minimumTx',\n display: 'Minimun Tx',\n width: 169,\n size: 'lg',\n doubleHeader: 'Cash-in only',\n textAlign: 'center',\n editingAlign: 'right',\n input: NumberInput,\n suffix: currency,\n bold: bold,\n inputProps: {\n decimalPlaces: 2\n }\n }\n]\n\nconst overrides = (auxData, currency, auxElements) => {\n const getData = R.path(R.__, auxData)\n\n return getOverridesFields(getData, currency, auxElements)\n}\n\nconst percentMax = 100\nconst getSchema = locale => {\n const bills = getBillOptions(locale, denominations).map(it =>\n parseInt(it.code)\n )\n const highestBill = R.isEmpty(bills) ? CURRENCY_MAX : Math.max(...bills)\n\n return Yup.object().shape({\n cashIn: Yup.number()\n .label('Cash-in')\n .min(0)\n .max(percentMax)\n .required(),\n cashOut: Yup.number()\n .label('Cash-out')\n .min(0)\n .max(percentMax)\n .required(),\n fixedFee: Yup.number()\n .label('Fixed Fee')\n .min(0)\n .max(highestBill)\n .required(),\n minimumTx: Yup.number()\n .label('Minimum Tx')\n .min(0)\n .max(highestBill)\n .required()\n })\n}\n\nconst getAlreadyUsed = (id, machine, values) => {\n const getCrypto = R.prop('cryptoCurrencies')\n const getMachineId = R.prop('machine')\n\n const filteredOverrides = R.filter(R.propEq('machine', machine))(values)\n const originalValue = R.find(R.propEq('id', id))(values)\n\n const originalCryptos = getCrypto(originalValue)\n const originalMachineId = getMachineId(originalValue)\n\n const alreadyUsed = R.compose(\n R.uniq,\n R.flatten,\n R.map(getCrypto)\n )(filteredOverrides)\n\n if (machine !== originalMachineId) return alreadyUsed ?? []\n\n return R.difference(alreadyUsed, originalCryptos)\n}\n\nconst getOverridesSchema = (values, rawData, locale) => {\n const getData = R.path(R.__, rawData)\n const machineData = [ALL_MACHINES].concat(getData(['machines']))\n const rawCryptos = getData(['cryptoCurrencies'])\n const cryptoData = [ALL_COINS].concat(\n R.map(it => ({ display: it.code, code: it.code }))(rawCryptos ?? [])\n )\n\n const bills = getBillOptions(locale, denominations).map(it =>\n parseInt(it.code)\n )\n const highestBill = R.isEmpty(bills) ? CURRENCY_MAX : Math.max(...bills)\n\n return Yup.object().shape({\n machine: Yup.string()\n .nullable()\n .label('Machine')\n .required(),\n cryptoCurrencies: Yup.array()\n .test({\n test() {\n const { id, machine, cryptoCurrencies } = this.parent\n const alreadyUsed = getAlreadyUsed(id, machine, values)\n\n const isAllMachines = machine === ALL_MACHINES.deviceId\n const isAllCoins = R.includes(ALL_COINS.code, cryptoCurrencies)\n if (isAllMachines && isAllCoins) {\n return this.createError({\n message: `All machines and all coins should be configured in the default setup table`\n })\n }\n\n const repeated = R.intersection(alreadyUsed, cryptoCurrencies)\n if (!R.isEmpty(repeated)) {\n const codes = displayCodeArray(cryptoData)(repeated)\n const machineView = getView(\n machineData,\n 'name',\n 'deviceId'\n )(machine)\n\n const message = `${codes} already overriden for machine: ${machineView}`\n\n return this.createError({ message })\n }\n return true\n }\n })\n .label('Crypto Currencies')\n .required()\n .min(1),\n cashIn: Yup.number()\n .label('Cash-in')\n .min(0)\n .max(percentMax)\n .required(),\n cashOut: Yup.number()\n .label('Cash-out')\n .min(0)\n .max(percentMax)\n .required(),\n fixedFee: Yup.number()\n .label('Fixed Fee')\n .min(0)\n .max(highestBill)\n .required(),\n minimumTx: Yup.number()\n .label('Minimum Tx')\n .min(0)\n .max(highestBill)\n .required()\n })\n}\n\nconst defaults = {\n cashIn: '',\n cashOut: '',\n fixedFee: '',\n minimumTx: ''\n}\n\nconst overridesDefaults = {\n machine: null,\n cryptoCurrencies: [],\n cashIn: '',\n cashOut: '',\n fixedFee: '',\n minimumTx: ''\n}\n\nconst getOrder = ({ machine, cryptoCurrencies }) => {\n const isAllMachines = machine === ALL_MACHINES.deviceId\n const isAllCoins = R.contains(ALL_COINS.code, cryptoCurrencies)\n\n if (isAllMachines && isAllCoins) return 0\n if (isAllMachines) return 1\n if (isAllCoins) return 2\n\n return 3\n}\n\nconst createCommissions = (cryptoCode, deviceId, isDefault, config) => {\n return {\n minimumTx: config.minimumTx,\n fixedFee: config.fixedFee,\n cashOut: config.cashOut,\n cashIn: config.cashIn,\n machine: deviceId,\n cryptoCurrencies: [cryptoCode],\n default: isDefault,\n id: v4()\n }\n}\n\nconst getCommissions = (cryptoCode, deviceId, config) => {\n const overrides = R.prop('overrides', config) ?? []\n\n if (!overrides && R.isEmpty(overrides)) {\n return createCommissions(cryptoCode, deviceId, true, config)\n }\n\n const specificOverride = R.find(\n it => it.machine === deviceId && _.includes(cryptoCode)(it.cryptoCurrencies)\n )(overrides)\n\n if (specificOverride !== undefined)\n return createCommissions(cryptoCode, deviceId, false, specificOverride)\n\n const machineOverride = R.find(\n it =>\n it.machine === deviceId && _.includes('ALL_COINS')(it.cryptoCurrencies)\n )(overrides)\n\n if (machineOverride !== undefined)\n return createCommissions(cryptoCode, deviceId, false, machineOverride)\n\n const coinOverride = R.find(\n it =>\n it.machine === 'ALL_MACHINES' &&\n _.includes(cryptoCode)(it.cryptoCurrencies)\n )(overrides)\n\n if (coinOverride !== undefined)\n return createCommissions(cryptoCode, deviceId, false, coinOverride)\n\n return createCommissions(cryptoCode, deviceId, true, config)\n}\n\nconst getListCommissionsSchema = locale => {\n const bills = getBillOptions(locale, denominations).map(it =>\n parseInt(it.code)\n )\n const highestBill = R.isEmpty(bills) ? CURRENCY_MAX : Math.max(...bills)\n\n return Yup.object().shape({\n machine: Yup.string()\n .label('Machine')\n .required(),\n cryptoCurrencies: Yup.array()\n .label('Crypto Currency')\n .required()\n .min(1),\n cashIn: Yup.number()\n .label('Cash-in')\n .min(0)\n .max(percentMax)\n .required(),\n cashOut: Yup.number()\n .label('Cash-out')\n .min(0)\n .max(percentMax)\n .required(),\n fixedFee: Yup.number()\n .label('Fixed Fee')\n .min(0)\n .max(highestBill)\n .required(),\n minimumTx: Yup.number()\n .label('Minimum Tx')\n .min(0)\n .max(highestBill)\n .required()\n })\n}\n\nconst getTextStyle = (obj, isEditing) => {\n return { color: obj.default ? primaryColor : secondaryColorDark }\n}\n\nconst commissionsList = (auxData, currency, auxElements) => {\n const getData = R.path(R.__, auxData)\n\n return getListCommissionsFields(getData, currency, defaults)\n}\n\nconst getListCommissionsFields = (getData, currency, defaults) => {\n const machineData = [ALL_MACHINES].concat(getData(['machines']))\n\n return [\n {\n name: 'machine',\n width: 196,\n size: 'sm',\n view: getView(machineData, 'name', 'deviceId'),\n editable: false\n },\n {\n name: 'cryptoCurrencies',\n display: 'Crypto Currency',\n width: 255,\n view: R.prop(0),\n size: 'sm',\n editable: false\n },\n {\n header: cashInHeader,\n name: 'cashIn',\n display: 'Cash-in',\n width: 130,\n input: NumberInput,\n textAlign: 'right',\n suffix: '%',\n textStyle: obj => getTextStyle(obj),\n inputProps: {\n decimalPlaces: 3\n }\n },\n {\n header: cashOutHeader,\n name: 'cashOut',\n display: 'Cash-out',\n width: 140,\n input: NumberInput,\n textAlign: 'right',\n greenText: true,\n suffix: '%',\n textStyle: obj => getTextStyle(obj),\n inputProps: {\n decimalPlaces: 3\n }\n },\n {\n name: 'fixedFee',\n display: 'Fixed fee',\n width: 144,\n input: NumberInput,\n doubleHeader: 'Cash-in only',\n textAlign: 'right',\n suffix: currency,\n textStyle: obj => getTextStyle(obj),\n inputProps: {\n decimalPlaces: 2\n }\n },\n {\n name: 'minimumTx',\n display: 'Minimun Tx',\n width: 144,\n input: NumberInput,\n doubleHeader: 'Cash-in only',\n textAlign: 'right',\n suffix: currency,\n textStyle: obj => getTextStyle(obj),\n inputProps: {\n decimalPlaces: 2\n }\n }\n ]\n}\n\nexport {\n mainFields,\n overrides,\n getSchema,\n getOverridesSchema,\n defaults,\n overridesDefaults,\n getOrder,\n getCommissions,\n getListCommissionsSchema,\n commissionsList\n}\n","import * as R from 'ramda'\nimport * as Yup from 'yup'\n\nimport Autocomplete from 'src/components/inputs/formik/Autocomplete.js'\nimport { labels as timezoneList } from 'src/utils/timezone-list'\n\nconst getFields = (getData, names, onChange, auxElements = []) => {\n return R.filter(\n it => R.includes(it.name, names),\n allFields(getData, onChange, auxElements)\n )\n}\n\nconst allFields = (getData, onChange, auxElements = []) => {\n const getView = (data, code, compare) => it => {\n if (!data) return ''\n\n return R.compose(\n R.prop(code),\n R.find(R.propEq(compare ?? 'code', it))\n )(data)\n }\n\n const displayCodeArray = data => it => {\n if (!it) return it\n\n return R.compose(R.join(', '), R.map(getView(data, 'code')))(it)\n }\n\n const overridenMachines = R.map(override => override.machine, auxElements)\n\n const suggestionFilter = it =>\n R.differenceWith((x, y) => x.deviceId === y, it, overridenMachines)\n\n const machineData = getData(['machines'])\n const countryData = getData(['countries'])\n const currencyData = getData(['currencies'])\n const languageData = getData(['languages'])\n const cryptoData = getData(['cryptoCurrencies'])\n const timezonesData = timezoneList\n\n const findSuggestion = it => {\n const machine = R.find(R.propEq('deviceId', it.machine))(machineData)\n return machine ? [machine] : []\n }\n\n return [\n {\n name: 'machine',\n width: 200,\n size: 'sm',\n view: getView(machineData, 'name', 'deviceId'),\n input: Autocomplete,\n inputProps: {\n options: it =>\n R.concat(findSuggestion(it))(suggestionFilter(machineData)),\n valueProp: 'deviceId',\n labelProp: 'name'\n }\n },\n {\n name: 'country',\n width: 200,\n size: 'sm',\n view: getView(countryData, 'display'),\n input: Autocomplete,\n inputProps: {\n options: countryData,\n valueProp: 'code',\n labelProp: 'display'\n }\n },\n {\n name: 'fiatCurrency',\n width: 150,\n size: 'sm',\n view: getView(currencyData, 'code'),\n input: Autocomplete,\n inputProps: {\n options: currencyData,\n valueProp: 'code',\n labelProp: 'code'\n }\n },\n {\n name: 'languages',\n width: 200,\n size: 'sm',\n view: displayCodeArray(languageData),\n input: Autocomplete,\n inputProps: {\n options: languageData,\n valueProp: 'code',\n labelProp: 'display',\n multiple: true\n }\n },\n {\n name: 'cryptoCurrencies',\n width: 170,\n size: 'sm',\n view: displayCodeArray(cryptoData),\n input: Autocomplete,\n inputProps: {\n options: cryptoData,\n valueProp: 'code',\n labelProp: 'code',\n multiple: true,\n optionsLimit: null,\n onChange\n }\n },\n {\n name: 'timezone',\n width: 320,\n size: 'sm',\n view: getView(timezonesData, 'label'),\n input: Autocomplete,\n inputProps: {\n options: timezonesData,\n valueProp: 'code',\n labelProp: 'label'\n }\n }\n ]\n}\n\nconst mainFields = (auxData, configureCoin) => {\n const getData = R.path(R.__, auxData)\n\n return getFields(\n getData,\n ['country', 'fiatCurrency', 'languages', 'cryptoCurrencies', 'timezone'],\n configureCoin,\n undefined\n )\n}\n\nconst overrides = (auxData, auxElements, configureCoin) => {\n const getData = R.path(R.__, auxData)\n\n return getFields(\n getData,\n ['machine', 'country', 'languages', 'cryptoCurrencies'],\n configureCoin,\n auxElements\n )\n}\n\nconst LocaleSchema = Yup.object().shape({\n country: Yup.string()\n .label('Country')\n .required(),\n fiatCurrency: Yup.string()\n .label('Fiat Currency')\n .required(),\n languages: Yup.array()\n .label('Languages')\n .required()\n .min(1)\n .max(4),\n cryptoCurrencies: Yup.array()\n .label('Crypto Currencies')\n .required()\n .min(1),\n timezone: Yup.string()\n .label('Timezone')\n .required()\n})\n\nconst OverridesSchema = Yup.object().shape({\n machine: Yup.string()\n .label('Machine')\n .required(),\n country: Yup.string()\n .label('Country')\n .required(),\n languages: Yup.array()\n .label('Languages')\n .required()\n .min(1)\n .max(4),\n cryptoCurrencies: Yup.array()\n .label('Crypto Currencies')\n .required()\n .min(1)\n})\n\nconst localeDefaults = {\n country: '',\n fiatCurrency: '',\n languages: [],\n cryptoCurrencies: [],\n timezone: ''\n}\n\nconst overridesDefaults = {\n machine: '',\n country: '',\n languages: [],\n cryptoCurrencies: []\n}\n\nexport {\n mainFields,\n overrides,\n LocaleSchema,\n OverridesSchema,\n localeDefaults,\n overridesDefaults\n}\n","import * as R from 'ramda'\nimport * as Yup from 'yup'\n\nimport {\n Autocomplete,\n Checkbox,\n NumberInput\n} from 'src/components/inputs/formik'\nimport { disabledColor } from 'src/styling/variables'\nimport { CURRENCY_MAX } from 'src/utils/constants'\nimport { transformNumber } from 'src/utils/number'\n\nconst classes = {\n editDisabled: {\n color: disabledColor\n }\n}\nconst filterClass = type => R.filter(it => it.class === type)\nconst filterCoins = ({ id }) => R.filter(it => R.contains(id)(it.cryptos))\n\nconst WalletSchema = Yup.object().shape({\n ticker: Yup.string().required(),\n wallet: Yup.string().required(),\n exchange: Yup.string().required(),\n zeroConf: Yup.string().required(),\n zeroConfLimit: Yup.number()\n .integer()\n .required('Zero Conf Limit is a required field')\n .min(0)\n .max(CURRENCY_MAX)\n .transform(transformNumber)\n})\n\nconst AdvancedWalletSchema = Yup.object().shape({\n cryptoUnits: Yup.string().required(),\n feeMultiplier: Yup.string().required(),\n allowTransactionBatching: Yup.boolean()\n})\n\nconst OverridesSchema = Yup.object().shape({\n cryptoUnits: Yup.string().required(),\n feeMultiplier: Yup.string().required(),\n cryptoCurrency: Yup.string().required(),\n allowTransactionBatching: Yup.boolean()\n})\n\nconst OverridesDefaults = {\n cryptoUnits: '',\n feeMultiplier: '',\n cryptoCurrency: '',\n allowTransactionBatching: null\n}\n\nconst viewFeeMultiplier = it =>\n R.compose(R.prop(['display']), R.find(R.propEq('code', it)))(feeOptions)\n\nconst feeOptions = [\n { display: '+20%', code: '1.2' },\n { display: 'Default', code: '1' },\n { display: '-20%', code: '0.8' },\n { display: '-40%', code: '0.6' },\n { display: '-60%', code: '0.4' }\n]\n\nconst cryptoUnitsDefaultOptions = [\n { display: 'mili', code: 'mili' },\n { display: 'full', code: 'full' }\n]\n\nconst getCryptoUnitsOptions = R.curry((coinUtils, it) => {\n if (R.isNil(it.cryptoCurrency)) return cryptoUnitsDefaultOptions\n const options = R.keys(coinUtils.getCryptoCurrency(it.cryptoCurrency).units)\n return R.map(option => {\n return { code: option, display: option }\n })(options)\n})\n\nconst getAdvancedWalletElements = () => {\n return [\n {\n name: 'cryptoUnits',\n size: 'sm',\n stripe: true,\n width: 190,\n input: Autocomplete,\n inputProps: {\n options: cryptoUnitsDefaultOptions,\n valueProp: 'code',\n labelProp: 'display'\n }\n },\n {\n name: 'allowTransactionBatching',\n size: 'sm',\n stripe: true,\n width: 250,\n view: (_, ite) => {\n return ite.allowTransactionBatching ? 'Yes' : `No`\n },\n input: Checkbox\n },\n {\n name: 'feeMultiplier',\n header: `Miner's Fee`,\n size: 'sm',\n stripe: true,\n width: 250,\n view: viewFeeMultiplier,\n input: Autocomplete,\n inputProps: {\n options: feeOptions,\n valueProp: 'code',\n labelProp: 'display'\n }\n }\n ]\n}\n\nconst getAdvancedWalletElementsOverrides = (\n coinSuggestions,\n findSuggestion,\n coinUtils\n) => {\n return [\n {\n name: 'cryptoCurrency',\n width: 180,\n input: Autocomplete,\n inputProps: {\n options: it => R.concat(coinSuggestions, findSuggestion(it)),\n optionsLimit: null,\n valueProp: 'code',\n labelProp: 'display'\n },\n size: 'sm'\n },\n {\n name: 'cryptoUnits',\n size: 'sm',\n stripe: true,\n width: 190,\n input: Autocomplete,\n inputProps: {\n options: getCryptoUnitsOptions(coinUtils),\n valueProp: 'code',\n labelProp: 'display'\n }\n },\n {\n name: 'allowTransactionBatching',\n size: 'sm',\n stripe: true,\n width: 250,\n view: (_, ite) => {\n if (ite.cryptoCurrency !== 'BTC')\n return {`No`} \n return ite.allowTransactionBatching ? 'Yes' : 'No'\n },\n input: Checkbox,\n editable: it => it.cryptoCurrency === 'BTC'\n },\n {\n name: 'feeMultiplier',\n header: `Miner's Fee`,\n size: 'sm',\n stripe: true,\n width: 250,\n view: viewFeeMultiplier,\n input: Autocomplete,\n inputProps: {\n options: feeOptions,\n valueProp: 'code',\n labelProp: 'display'\n }\n }\n ]\n}\n\nconst getElements = (cryptoCurrencies, accounts, onChange, wizard = false) => {\n const widthAdjust = wizard ? 11 : 0\n const viewCryptoCurrency = it => {\n const currencyDisplay = R.compose(\n R.prop(['display']),\n R.find(R.propEq('code', it))\n )(cryptoCurrencies)\n return currencyDisplay\n }\n const filterOptions = type => filterClass(type)(accounts || [])\n\n const getDisplayName = type => it =>\n R.compose(\n R.prop('display'),\n R.find(R.propEq('code', it))\n )(filterOptions(type))\n\n const getOptions = R.curry((option, it) =>\n filterCoins(it)(filterOptions(option))\n )\n\n return [\n {\n name: 'id',\n header: 'Cryptocurrency',\n width: 150 - widthAdjust,\n view: viewCryptoCurrency,\n size: 'sm',\n editable: false\n },\n {\n name: 'ticker',\n size: 'sm',\n stripe: true,\n view: getDisplayName('ticker'),\n width: 175 - widthAdjust,\n input: Autocomplete,\n inputProps: {\n options: getOptions('ticker'),\n valueProp: 'code',\n labelProp: 'display',\n optionsLimit: null\n }\n },\n {\n name: 'wallet',\n size: 'sm',\n stripe: true,\n view: getDisplayName('wallet'),\n width: 175 - widthAdjust,\n input: Autocomplete,\n inputProps: {\n options: getOptions('wallet'),\n valueProp: 'code',\n labelProp: 'display',\n optionsLimit: null,\n onChange\n }\n },\n {\n name: 'exchange',\n size: 'sm',\n stripe: true,\n view: getDisplayName('exchange'),\n width: 175 - widthAdjust,\n input: Autocomplete,\n inputProps: {\n options: getOptions('exchange'),\n valueProp: 'code',\n labelProp: 'display',\n optionsLimit: null,\n onChange\n }\n },\n {\n name: 'zeroConf',\n header: 'Confidence Checking',\n size: 'sm',\n stripe: true,\n view: getDisplayName('zeroConf'),\n input: Autocomplete,\n width: 210 - widthAdjust,\n inputProps: {\n options: getOptions('zeroConf'),\n valueProp: 'code',\n labelProp: 'display',\n optionsLimit: null,\n onChange\n }\n },\n {\n name: 'zeroConfLimit',\n header: '0-conf Limit',\n size: 'sm',\n stripe: true,\n view: (it, row) =>\n row.id === 'ETH' ? {it} : it,\n input: NumberInput,\n width: 145 - widthAdjust,\n inputProps: {\n decimalPlaces: 0\n },\n editable: row => row.id !== 'ETH'\n }\n ]\n}\n\nexport {\n WalletSchema,\n AdvancedWalletSchema,\n getElements,\n filterClass,\n getAdvancedWalletElements,\n getAdvancedWalletElementsOverrides,\n OverridesDefaults,\n OverridesSchema\n}\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport { spacer, offColor } from 'src/styling/variables'\n\nimport { TL1 } from './typography'\n\nconst useStyles = makeStyles({\n subtitle: {\n color: offColor,\n marginTop: spacer * 2,\n marginBottom: spacer * 2\n },\n extraMarginTop: {\n marginTop: spacer * 9\n }\n})\n\nconst Subtitle = memo(({ children, className, extraMarginTop }) => {\n const classes = useStyles()\n const classNames = {\n [classes.subtitle]: true,\n [classes.extraMarginTop]: extraMarginTop\n }\n\n return {children} \n})\n\nexport default Subtitle\n","import { makeStyles } from '@material-ui/core'\nimport React from 'react'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Subtitle from 'src/components/Subtitle'\n\nimport styles from './Section.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst Section = ({ error, children, title }) => {\n const classes = useStyles()\n return (\n \n {(title || error) && (\n
\n {title} \n {error && Failed to save changes }\n
\n )}\n {children}\n
\n )\n}\n\nexport default Section\n","export default {\n section: {\n marginBottom: 72\n },\n sectionHeader: {\n display: 'flex',\n alignItems: 'center'\n },\n sectionTitle: {\n margin: [[16, 20, 23, 0]]\n }\n}\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport Section from 'src/components/layout/Section'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport styles from 'src/pages/AddMachine/styles'\nimport { mainFields, defaults, getSchema } from 'src/pages/Commissions/helper'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nconst useStyles = makeStyles(styles)\nconst useCommissionStyles = makeStyles({\n autoComplete: {\n width: '100%'\n }\n})\n\nconst GET_DATA = gql`\n query getData {\n config\n }\n`\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nfunction Commissions({ isActive, doContinue }) {\n const classes = useStyles()\n const commissionClasses = useCommissionStyles()\n const { data } = useQuery(GET_DATA)\n\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n onCompleted: doContinue\n })\n\n const save = it => {\n const config = toNamespace('commissions')(it.commissions[0])\n return saveConfig({ variables: { config } })\n }\n\n const currency = R.path(['fiatCurrency'])(\n fromNamespace(namespaces.LOCALE)(data?.config)\n )\n\n const locale = fromNamespace(namespaces.LOCALE)(data?.config)\n\n return (\n \n \n \n
\n )\n}\n\nexport default Commissions\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport Section from 'src/components/layout/Section'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport styles from 'src/pages/AddMachine/styles'\nimport {\n mainFields,\n localeDefaults as defaults,\n LocaleSchema as schema\n} from 'src/pages/Locales/helper'\nimport { toNamespace } from 'src/utils/config'\n\nimport { getConfiguredCoins } from '../helper'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_DATA = gql`\n query getData {\n config\n accounts\n currencies {\n code\n display\n }\n countries {\n code\n display\n }\n cryptoCurrencies {\n code\n display\n }\n languages {\n code\n display\n }\n machines {\n name\n deviceId\n }\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nfunction Locales({ isActive, doContinue }) {\n const classes = useStyles()\n const { data } = useQuery(GET_DATA)\n\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n onCompleted: doContinue\n })\n\n const save = it => {\n const config = toNamespace('locale')(it.locale[0])\n return saveConfig({ variables: { config } })\n }\n\n const cryptoCurrencies = getConfiguredCoins(\n data?.config || {},\n data?.cryptoCurrencies || []\n )\n\n const onChangeCoin = (prev, curr, setValue) => setValue(curr)\n\n return (\n \n \n \n
\n )\n}\n\nexport default Locales\n","import { Box, makeStyles } from '@material-ui/core'\nimport React from 'react'\n\nimport { Label1 } from 'src/components/typography'\nimport { ReactComponent as WarningIcon } from 'src/styling/icons/warning-icon/comet.svg'\n\nconst useStyles = makeStyles({\n message: ({ width }) => ({\n width,\n marginTop: 4,\n marginLeft: 16\n })\n})\n\nconst InfoMessage = ({ children, width = 330, className }) => {\n const classes = useStyles({ width })\n\n return (\n \n \n {children} \n \n )\n}\n\nexport default InfoMessage\n","import { makeStyles, Grid } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { Formik, Form, FastField } from 'formik'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport { Button } from 'src/components/buttons'\nimport { SecretInput } from 'src/components/inputs/formik'\nimport { spacer } from 'src/styling/variables'\n\nconst styles = {\n footer: {\n display: 'flex',\n flexDirection: 'row',\n margin: [['auto', 0, spacer * 4, 0]]\n },\n button: {\n margin: [['auto', 0, 0, 'auto']]\n },\n form: {\n flex: 1,\n display: 'flex',\n flexDirection: 'column'\n },\n grid: {\n marginBottom: 24,\n marginTop: 12\n }\n}\n\nconst useStyles = makeStyles(styles)\nconst FormRenderer = ({\n validationSchema,\n elements,\n value,\n save,\n buttonLabel = 'Save changes',\n buttonClass,\n xs = 12\n}) => {\n const classes = useStyles()\n\n const initialValues = R.compose(\n R.mergeAll,\n R.map(({ code }) => ({ [code]: (value && value[code]) ?? '' }))\n )(elements)\n\n const values = R.merge(initialValues, value)\n\n const saveNonEmptySecret = it => {\n const emptySecretFields = R.compose(\n R.map(R.prop('code')),\n R.filter(\n elem =>\n R.prop('component', elem) === SecretInput &&\n R.isEmpty(it[R.prop('code', elem)])\n )\n )(elements)\n return save(R.omit(emptySecretFields, it))\n }\n\n return (\n \n {({ errors }) => (\n \n )}\n \n )\n}\n\nexport default FormRenderer\n","import * as R from 'ramda'\r\n\r\nconst secretTest = secret => ({\r\n test(val) {\r\n if (R.isNil(secret) && R.isNil(val)) {\r\n return this.createError()\r\n }\r\n return true\r\n }\r\n})\r\n\r\nconst leadingZerosTest = (value, context) => {\r\n if (\r\n R.startsWith('0', context.originalValue) &&\r\n R.length(context.originalValue) > 1\r\n ) {\r\n return context.createError()\r\n }\r\n return true\r\n}\r\n\r\nexport { secretTest, leadingZerosTest }\r\n","import * as Yup from 'yup'\n\nimport SecretInputFormik from 'src/components/inputs/formik/SecretInput'\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\n\nimport { secretTest } from './helper'\n\nexport default {\n code: 'twilio',\n name: 'Twilio',\n title: 'Twilio (SMS)',\n elements: [\n {\n code: 'accountSid',\n display: 'Account SID',\n component: TextInputFormik\n },\n {\n code: 'authToken',\n display: 'Auth Token',\n component: SecretInputFormik\n },\n {\n code: 'fromNumber',\n display: 'Twilio Number (international format)',\n component: TextInputFormik,\n face: true\n },\n {\n code: 'toNumber',\n display: 'Notifications Number (international format)',\n component: TextInputFormik,\n face: true\n }\n ],\n getValidationSchema: account => {\n return Yup.object().shape({\n accountSid: Yup.string('The account SID must be a string')\n .max(100, 'The account SID is too long')\n .required('The account SID is required'),\n authToken: Yup.string('The auth token must be a string')\n .max(100, 'The auth token is too long')\n .test(secretTest(account?.authToken)),\n fromNumber: Yup.string('The from number must be a string')\n .max(100, 'The from number is too long')\n .required('The from number is required'),\n toNumber: Yup.string('The to number must be a string')\n .max(100, 'The to number is too long')\n .required('The to number is required')\n })\n }\n}\n","import { errorColor, spacer, primaryColor } from 'src/styling/variables'\n\nconst LABEL_WIDTH = 150\n\nexport default {\n radioGroup: {\n flexDirection: 'row',\n width: 600\n },\n radioLabel: {\n width: LABEL_WIDTH,\n height: 48\n },\n mdForm: {\n width: 385\n },\n infoMessage: {\n display: 'flex',\n marginBottom: 20,\n '& > p': {\n width: 330,\n marginTop: 4,\n marginLeft: 16\n }\n },\n actionButton: {\n marginBottom: spacer * 4\n },\n actionButtonLink: {\n textDecoration: 'none',\n color: primaryColor\n },\n error: {\n color: errorColor\n },\n button: {\n marginTop: spacer * 5\n },\n formButton: {\n margin: [[spacer * 3, 0, 0]]\n }\n}\n","import { useMutation, useQuery } from '@apollo/react-hooks'\nimport { makeStyles, Box } from '@material-ui/core'\nimport classnames from 'classnames'\nimport gql from 'graphql-tag'\nimport React, { useState } from 'react'\n\nimport InfoMessage from 'src/components/InfoMessage'\nimport { HoverableTooltip } from 'src/components/Tooltip'\nimport { Button, SupportLinkButton } from 'src/components/buttons'\nimport { RadioGroup } from 'src/components/inputs'\nimport { H1, H4, P } from 'src/components/typography'\nimport FormRenderer from 'src/pages/Services/FormRenderer'\nimport twilio from 'src/pages/Services/schemas/twilio'\n\nimport styles from './Wallet/Shared.styles'\n\nconst GET_CONFIG = gql`\n {\n config\n accounts\n }\n`\n\nconst SAVE_ACCOUNTS = gql`\n mutation Save($accounts: JSONObject) {\n saveAccounts(accounts: $accounts)\n }\n`\n\nconst useStyles = makeStyles({\n ...styles,\n content: {\n width: 820\n },\n radioLabel: {\n ...styles.radioLabel,\n width: 280\n },\n wrapper: {\n width: 1200,\n height: 100,\n margin: [[0, 'auto']]\n },\n title: {\n marginLeft: 8,\n marginBottom: 5\n },\n info: {\n marginTop: 20,\n marginBottom: 20\n }\n})\n\nconst options = [\n {\n code: 'enable',\n display: 'Yes, I will'\n },\n {\n code: 'disable',\n display: 'No, not for now'\n }\n]\n\nfunction Twilio({ doContinue }) {\n const classes = useStyles()\n const [selected, setSelected] = useState(null)\n const [error, setError] = useState(false)\n\n const { data, refetch } = useQuery(GET_CONFIG)\n const [saveAccounts] = useMutation(SAVE_ACCOUNTS, {\n onCompleted: doContinue\n })\n\n const accounts = data?.accounts ?? []\n\n const onSelect = e => {\n setSelected(e.target.value)\n setError(false)\n }\n\n const clickContinue = () => {\n if (!selected) return setError(true)\n doContinue()\n }\n\n const save = twilio => {\n const accounts = { twilio }\n return saveAccounts({ variables: { accounts } }).then(() => refetch())\n }\n\n const titleClasses = {\n [classes.title]: true,\n [classes.error]: error\n }\n\n return (\n \n
\n
Twilio (SMS service) \n
\n \n Will you setup a two way machine or compliance?\n \n \n \n Two-way machines allow your customers not only to buy (cash-in)\n but also sell cryptocurrencies (cash-out).\n
\n \n You’ll need an SMS service for cash-out transactions and for any\n compliance triggers\n
\n \n \n\n
\n\n
\n To set up Twilio please read the instructions from our support portal.\n \n
\n\n {selected === 'enable' && (\n <>\n
Enter credentials \n
\n >\n )}\n {selected !== 'enable' && (\n
\n Continue\n \n )}\n
\n
\n )\n}\n\nexport default Twilio\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport { utils as coinUtils } from '@lamassu/coins'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { Button } from 'src/components/buttons'\nimport { NamespacedTable as EditableTable } from 'src/components/editableTable'\nimport { P, H4 } from 'src/components/typography'\nimport { getElements, WalletSchema } from 'src/pages/Wallet/helper'\nimport { toNamespace, namespaces } from 'src/utils/config'\n\nimport styles from './Shared.styles'\n\nconst useStyles = makeStyles(styles)\nconst GET_INFO = gql`\n query getData {\n config\n accounts\n accountsConfig {\n code\n display\n class\n cryptos\n }\n cryptoCurrencies {\n code\n display\n }\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject, $accounts: JSONObject) {\n saveConfig(config: $config)\n saveAccounts(accounts: $accounts)\n }\n`\n\nconst AllSet = ({ data: currentData, doContinue }) => {\n const classes = useStyles()\n\n const { data } = useQuery(GET_INFO)\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n onCompleted: doContinue\n })\n\n const [error, setError] = useState(false)\n\n const coin = currentData?.coin\n\n const accountsConfig = data?.accountsConfig\n const cryptoCurrencies = data?.cryptoCurrencies ?? []\n\n const save = () => {\n const defaultCryptoUnit = R.head(\n R.keys(coinUtils.getCryptoCurrency(coin).units)\n )\n const adjustedData = {\n zeroConfLimit: 0,\n ...currentData,\n cryptoUnits: defaultCryptoUnit\n }\n if (!WalletSchema.isValidSync(adjustedData)) return setError(true)\n\n const withCoin = toNamespace(coin, R.omit('coin', adjustedData))\n const config = toNamespace(namespaces.WALLETS)(withCoin)\n setError(false)\n return saveConfig({ variables: { config } })\n }\n\n return (\n <>\n All set \n \n These are your wallet settings. You can later edit these and add\n additional coins.\n
\n \n \n Continue\n \n >\n )\n}\n\nexport default AllSet\n","import * as Yup from 'yup'\n\nimport SecretInputFormik from 'src/components/inputs/formik/SecretInput'\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\n\nimport { secretTest } from './helper'\n\nexport default {\n code: 'binanceus',\n name: 'Binance.us',\n title: 'Binance.us (Exchange)',\n elements: [\n {\n code: 'apiKey',\n display: 'API Key',\n component: TextInputFormik,\n face: true,\n long: true\n },\n {\n code: 'privateKey',\n display: 'Private Key',\n component: SecretInputFormik\n }\n ],\n getValidationSchema: account => {\n return Yup.object().shape({\n apiKey: Yup.string('The API key must be a string')\n .max(100, 'The API key is too long')\n .required('The API key is required'),\n privateKey: Yup.string('The private key must be a string')\n .max(100, 'The private key is too long')\n .test(secretTest(account?.privateKey))\n })\n }\n}\n","import * as Yup from 'yup'\n\nimport {\n TextInput,\n SecretInput,\n Autocomplete\n} from 'src/components/inputs/formik'\n\nimport { secretTest } from './helper'\n\nconst isDefined = it => it && it.length\n\nconst buildTestValidation = (id, passphrase) => {\n return Yup.string()\n .max(100, 'Too long')\n .when(id, {\n is: isDefined,\n then: Yup.string().test(secretTest(passphrase))\n })\n}\n\nexport default {\n code: 'bitgo',\n name: 'BitGo',\n title: 'BitGo (Wallet)',\n elements: [\n {\n code: 'token',\n display: 'API Token',\n component: TextInput,\n face: true,\n long: true\n },\n {\n code: 'environment',\n display: 'Environment',\n component: Autocomplete,\n inputProps: {\n options: [\n { code: 'prod', display: 'prod' },\n { code: 'test', display: 'test' }\n ],\n labelProp: 'display',\n valueProp: 'code'\n },\n face: true\n },\n {\n code: 'BTCWalletId',\n display: 'BTC Wallet ID',\n component: TextInput\n },\n {\n code: 'BTCWalletPassphrase',\n display: 'BTC Wallet Passphrase',\n component: SecretInput\n },\n {\n code: 'LTCWalletId',\n display: 'LTC Wallet ID',\n component: TextInput\n },\n {\n code: 'LTCWalletPassphrase',\n display: 'LTC Wallet Passphrase',\n component: SecretInput\n },\n {\n code: 'ZECWalletId',\n display: 'ZEC Wallet ID',\n component: TextInput\n },\n {\n code: 'ZECWalletPassphrase',\n display: 'ZEC Wallet Passphrase',\n component: SecretInput\n },\n {\n code: 'BCHWalletId',\n display: 'BCH Wallet ID',\n component: TextInput\n },\n {\n code: 'BCHWalletPassphrase',\n display: 'BCH Wallet Passphrase',\n component: SecretInput\n },\n {\n code: 'DASHWalletId',\n display: 'DASH Wallet ID',\n component: TextInput\n },\n {\n code: 'DASHWalletPassphrase',\n display: 'DASH Wallet Passphrase',\n component: SecretInput\n }\n ],\n getValidationSchema: account => {\n return Yup.object().shape({\n token: Yup.string('The token must be a string')\n .max(100, 'The token is too long')\n .required('The token is required'),\n BTCWalletId: Yup.string('The BTC wallet ID must be a string').max(\n 100,\n 'The BTC wallet ID is too long'\n ),\n BTCWalletPassphrase: buildTestValidation(\n 'BTCWalletId',\n account?.BTCWalletPassphrase\n ),\n LTCWalletId: Yup.string('The LTC wallet ID must be a string').max(\n 100,\n 'The LTC wallet ID is too long'\n ),\n LTCWalletPassphrase: buildTestValidation(\n 'LTCWalletId',\n account?.LTCWalletPassphrase\n ),\n ZECWalletId: Yup.string('The ZEC wallet ID must be a string').max(\n 100,\n 'The ZEC wallet ID is too long'\n ),\n ZECWalletPassphrase: buildTestValidation(\n 'ZECWalletId',\n account?.ZECWalletPassphrase\n ),\n BCHWalletId: Yup.string('The BCH wallet ID must be a string').max(\n 100,\n 'The BCH wallet ID is too long'\n ),\n BCHWalletPassphrase: buildTestValidation(\n 'BCHWalletId',\n account?.BCHWalletPassphrase\n ),\n DASHWalletId: Yup.string('The DASH wallet ID must be a string').max(\n 100,\n 'The DASH wallet ID is too long'\n ),\n DASHWalletPassphrase: buildTestValidation(\n 'DASHWalletId',\n account?.DASHWalletPassphrase\n ),\n environment: Yup.string('The environment must be a string')\n .matches(/(prod|test)/)\n .required('The environment is required')\n })\n }\n}\n","import * as Yup from 'yup'\n\nimport SecretInputFormik from 'src/components/inputs/formik/SecretInput'\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\n\nimport { secretTest } from './helper'\n\nexport default {\n code: 'bitstamp',\n name: 'Bitstamp',\n title: 'Bitstamp (Exchange)',\n elements: [\n {\n code: 'clientId',\n display: 'Client ID',\n component: TextInputFormik,\n face: true,\n long: true\n },\n {\n code: 'key',\n display: 'API Key',\n component: TextInputFormik,\n face: true,\n long: true\n },\n {\n code: 'secret',\n display: 'API Secret',\n component: SecretInputFormik\n }\n ],\n getValidationSchema: account => {\n return Yup.object().shape({\n clientId: Yup.string('The client ID must be a string')\n .max(100, 'The client ID is too long')\n .required('The client ID is required'),\n key: Yup.string('The key must be a string')\n .max(100, 'The key is too long')\n .required('The key is required'),\n secret: Yup.string('The secret must be a string')\n .max(100, 'The secret is too long')\n .test(secretTest(account?.secret))\n })\n }\n}\n","import * as Yup from 'yup'\n\nimport CheckboxInput from 'src/components/inputs/formik/Checkbox'\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\n\nexport default {\n code: 'blockcypher',\n name: 'Blockcypher',\n title: 'Blockcypher (Payments)',\n elements: [\n {\n code: 'token',\n display: 'API Token',\n component: TextInputFormik,\n face: true,\n long: true\n },\n {\n code: 'confidenceFactor',\n display: 'Confidence Factor',\n component: TextInputFormik,\n face: true\n },\n {\n code: 'rbf',\n component: CheckboxInput,\n settings: {\n field: 'wallets_BTC_wallet',\n enabled: true,\n disabledMessage:\n 'Lower the confidence of RBF transactions (Available when using bitcoind.)',\n label: 'Lower the confidence of RBF transactions',\n requirement: 'bitcoind',\n rightSideLabel: true\n },\n face: true\n }\n ],\n getValidationSchema: () => {\n return Yup.object().shape({\n token: Yup.string('The token must be a string')\n .max(100, 'The token is too long')\n .required('The token is required'),\n confidenceFactor: Yup.number('The confidence factor must be a number')\n .integer('The confidence factor must be an integer')\n .positive('The confidence factor must be positive')\n .required('The confidence factor is required')\n })\n }\n}\n","import * as Yup from 'yup'\n\nimport SecretInputFormik from 'src/components/inputs/formik/SecretInput'\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\n\nimport { secretTest } from './helper'\n\nexport default {\n code: 'cex',\n name: 'Cex',\n title: 'Cex (Exchange)',\n elements: [\n {\n code: 'apiKey',\n display: 'API Key',\n component: TextInputFormik,\n face: true,\n long: true\n },\n {\n code: 'privateKey',\n display: 'Private Key',\n component: SecretInputFormik\n }\n ],\n getValidationSchema: account => {\n return Yup.object().shape({\n apiKey: Yup.string('The API key must be a string')\n .max(100, 'The API key is too long')\n .required('The API key is required'),\n privateKey: Yup.string('The private key must be a string')\n .max(100, 'The private key is too long')\n .test(secretTest(account?.privateKey))\n })\n }\n}\n","import * as Yup from 'yup'\n\nimport CheckboxFormik from 'src/components/inputs/formik/Checkbox'\nimport NumberInputFormik from 'src/components/inputs/formik/NumberInput'\nimport SecretInputFormik from 'src/components/inputs/formik/SecretInput'\n\nimport { secretTest, leadingZerosTest } from './helper'\n\nexport default {\n code: 'ciphertrace',\n name: 'CipherTrace',\n title: 'CipherTrace (Scoring)',\n elements: [\n {\n code: 'authorizationValue',\n display: 'Authorization value',\n component: SecretInputFormik\n },\n {\n code: 'scoreThreshold',\n display: 'Score threshold',\n component: NumberInputFormik,\n face: true,\n long: false\n },\n {\n code: 'enabled',\n component: CheckboxFormik,\n settings: {\n enabled: true,\n disabledMessage: 'This plugin is disabled',\n label: 'Enabled',\n requirement: null\n },\n face: true\n }\n ],\n getValidationSchema: account => {\n return Yup.object().shape({\n authorizationValue: Yup.string('The authorization value must be a string')\n .max(100, 'Too long')\n .test(secretTest(account?.authorizationValue)),\n scoreThreshold: Yup.number('The score threshold must be a number')\n .required('A score threshold is required')\n .min(1, 'The score threshold must be between 1 and 10')\n .max(10, 'The score threshold must be between 1 and 10')\n .integer('The score threshold must be an integer')\n .test(\n 'no-leading-zeros',\n 'The score threshold must not have leading zeros',\n leadingZerosTest\n )\n })\n }\n}\n","import * as Yup from 'yup'\n\nimport SecretInputFormik from 'src/components/inputs/formik/SecretInput'\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\n\nimport { secretTest } from './helper'\n\nexport default {\n code: 'ftx',\n name: 'Ftx',\n title: 'Ftx (Exchange)',\n elements: [\n {\n code: 'apiKey',\n display: 'API Key',\n component: TextInputFormik,\n face: true,\n long: true\n },\n {\n code: 'privateKey',\n display: 'Private Key',\n component: SecretInputFormik\n }\n ],\n getValidationSchema: account => {\n return Yup.object().shape({\n apiKey: Yup.string('The API key must be a string')\n .max(100, 'The API key is too long')\n .required('The API key is required'),\n privateKey: Yup.string('The private key must be a string')\n .max(100, 'The private key is too long')\n .test(secretTest(account?.privateKey))\n })\n }\n}\n","import * as Yup from 'yup'\n\nimport SecretInputFormik from 'src/components/inputs/formik/SecretInput'\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\n\nimport { secretTest } from './helper'\n\nexport default {\n code: 'infura',\n name: 'Infura',\n title: 'Infura (Wallet)',\n elements: [\n {\n code: 'apiKey',\n display: 'Project ID',\n component: TextInputFormik,\n face: true,\n long: true\n },\n {\n code: 'apiSecret',\n display: 'Project Secret',\n component: SecretInputFormik\n },\n {\n code: 'endpoint',\n display: 'Endpoint',\n component: TextInputFormik,\n face: true\n }\n ],\n getValidationSchema: account => {\n return Yup.object().shape({\n apiKey: Yup.string('The API key must be a string')\n .max(100, 'The API key is too long')\n .required('The API key is required'),\n apiSecret: Yup.string('The API secret must be a string')\n .max(100, 'The API secret is too long')\n .test(secretTest(account?.apiSecret)),\n endpoint: Yup.string('The endpoint must be a string')\n .max(100, 'The endpoint is too long')\n .required('The endpoint is required')\n })\n }\n}\n","import * as Yup from 'yup'\n\nimport SecretInputFormik from 'src/components/inputs/formik/SecretInput'\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\n\nimport { secretTest } from './helper'\n\nexport default {\n code: 'itbit',\n name: 'itBit',\n title: 'itBit (Exchange)',\n elements: [\n {\n code: 'userId',\n display: 'User ID',\n component: TextInputFormik,\n face: true,\n long: true\n },\n {\n code: 'walletId',\n display: 'Wallet ID',\n component: TextInputFormik,\n face: true,\n long: true\n },\n {\n code: 'clientKey',\n display: 'Client Key',\n component: TextInputFormik\n },\n {\n code: 'clientSecret',\n display: 'Client Secret',\n component: SecretInputFormik\n }\n ],\n getValidationSchema: account => {\n return Yup.object().shape({\n userId: Yup.string('The user ID must be a string')\n .max(100, 'The user ID is too long')\n .required('The user ID is required'),\n walletId: Yup.string('The wallet ID must be a string')\n .max(100, 'The wallet ID is too long')\n .required('The wallet ID is required'),\n clientKey: Yup.string('The client key must be a string')\n .max(100, 'The client key is too long')\n .required('The client key is required'),\n clientSecret: Yup.string('The client secret must be a string')\n .max(100, 'The client secret is too long')\n .test(secretTest(account?.clientSecret))\n })\n }\n}\n","import * as Yup from 'yup'\n\nimport SecretInputFormik from 'src/components/inputs/formik/SecretInput'\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\n\nimport { secretTest } from './helper'\n\nexport default {\n code: 'kraken',\n name: 'Kraken',\n title: 'Kraken (Exchange)',\n elements: [\n {\n code: 'apiKey',\n display: 'API Key',\n component: TextInputFormik,\n face: true,\n long: true\n },\n {\n code: 'privateKey',\n display: 'Private Key',\n component: SecretInputFormik\n }\n ],\n getValidationSchema: account => {\n return Yup.object().shape({\n apiKey: Yup.string('The API key must be a string')\n .max(100, 'The API key is too long')\n .required('The API key is required'),\n privateKey: Yup.string('The private key must be a string')\n .max(100, 'The private key is too long')\n .test(secretTest(account?.privateKey))\n })\n }\n}\n","import * as Yup from 'yup'\n\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\n\nexport default {\n code: 'mailgun',\n name: 'Mailgun',\n title: 'Mailgun (Email)',\n elements: [\n {\n code: 'apiKey',\n display: 'API Key',\n component: TextInputFormik\n },\n {\n code: 'domain',\n display: 'Domain',\n component: TextInputFormik\n },\n {\n code: 'fromEmail',\n display: 'From Email',\n component: TextInputFormik,\n face: true\n },\n {\n code: 'toEmail',\n display: 'To Email',\n component: TextInputFormik,\n face: true\n }\n ],\n getValidationSchema: () => {\n return Yup.object().shape({\n apiKey: Yup.string('The API key must be a string')\n .max(100, 'The API key is too long')\n .required('The API key is required'),\n domain: Yup.string('The domain must be a string')\n .max(100, 'The domain is too long')\n .required('The domain is required'),\n fromEmail: Yup.string('The from email must be a string')\n .max(100, 'The from email is too long')\n .email('The from email must be a valid email address')\n .required('The from email is required'),\n toEmail: Yup.string('The to email must be a string')\n .max(100, 'The to email is too long')\n .email('The to email must be a valid email address')\n .required('The to email is required')\n })\n }\n}\n","import binanceus from './binanceus'\nimport bitgo from './bitgo'\nimport bitstamp from './bitstamp'\nimport blockcypher from './blockcypher'\nimport cex from './cex'\nimport ciphertrace from './ciphertrace'\nimport ftx from './ftx'\nimport infura from './infura'\nimport itbit from './itbit'\nimport kraken from './kraken'\nimport mailgun from './mailgun'\nimport twilio from './twilio'\n\nexport default {\n [bitgo.code]: bitgo,\n [bitstamp.code]: bitstamp,\n [blockcypher.code]: blockcypher,\n [infura.code]: infura,\n [itbit.code]: itbit,\n [kraken.code]: kraken,\n [mailgun.code]: mailgun,\n [twilio.code]: twilio,\n [binanceus.code]: binanceus,\n [cex.code]: cex,\n [ftx.code]: ftx,\n [ciphertrace.code]: ciphertrace\n}\n","import { useMutation, useQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport React, { useState } from 'react'\n\nimport { SupportLinkButton, Button } from 'src/components/buttons'\nimport { RadioGroup } from 'src/components/inputs'\nimport { P, H4 } from 'src/components/typography'\nimport FormRenderer from 'src/pages/Services/FormRenderer'\nimport schema from 'src/pages/Services/schemas'\n\nimport styles from './Shared.styles'\n\nconst useStyles = makeStyles({\n ...styles,\n radioGroup: styles.radioGroup,\n radioLabel: {\n ...styles.radioLabel,\n width: 200\n }\n})\n\nconst GET_CONFIG = gql`\n {\n accounts\n }\n`\nconst SAVE_ACCOUNTS = gql`\n mutation SaveAccountsBC($accounts: JSONObject) {\n saveAccounts(accounts: $accounts)\n }\n`\n\nconst options = [\n {\n code: 'enable',\n display: 'I will enable cash-out'\n },\n {\n code: 'disable',\n display: \"I won't enable cash-out\"\n }\n]\n\nconst Blockcypher = ({ addData }) => {\n const classes = useStyles()\n\n const { data } = useQuery(GET_CONFIG)\n const [saveConfig] = useMutation(SAVE_ACCOUNTS, {\n onCompleted: () => addData({ zeroConf: 'blockcypher' })\n })\n\n const [selected, setSelected] = useState(null)\n const [error, setError] = useState(false)\n\n const accounts = data?.accounts ?? []\n\n const onSelect = e => {\n setSelected(e.target.value)\n setError(false)\n }\n\n const save = blockcypher => {\n const accounts = { blockcypher }\n return saveConfig({ variables: { accounts } })\n }\n\n return (\n <>\n Blockcypher \n \n If you are enabling cash-out services, create a Blockcypher account.\n
\n \n \n \n {selected === 'disable' && (\n addData({ zeroConf: 'none', zeroConfLimit: 0 })}\n className={classes.button}>\n Continue\n \n )}\n {selected === 'enable' && (\n \n )}\n
\n >\n )\n}\n\nexport default Blockcypher\n","import { useQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport { Formik, Form, Field } from 'formik'\nimport gql from 'graphql-tag'\nimport React, { useState } from 'react'\nimport * as Yup from 'yup'\n\nimport PromptWhenDirty from 'src/components/PromptWhenDirty'\nimport { Button } from 'src/components/buttons'\nimport { RadioGroup } from 'src/components/inputs/formik'\nimport { H4 } from 'src/components/typography'\n\nimport styles from './Shared.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_CONFIG = gql`\n {\n cryptoCurrencies {\n code\n display\n }\n }\n`\n\nconst schema = Yup.object().shape({\n coin: Yup.string().required()\n})\n\nconst ChooseCoin = ({ addData }) => {\n const classes = useStyles()\n const [error, setError] = useState(false)\n\n const { data } = useQuery(GET_CONFIG)\n const cryptoCurrencies = data?.cryptoCurrencies ?? []\n\n const onSubmit = it => {\n if (!schema.isValidSync(it)) return setError(true)\n\n if (it.coin !== 'BTC') {\n return addData({ coin: it.coin, zeroConf: 'none', zeroConfLimit: 0 })\n }\n\n addData(it)\n }\n\n return (\n <>\n \n Choose your first cryptocurrency\n \n\n \n \n \n >\n )\n}\n\nexport default ChooseCoin\n","import * as R from 'ramda'\n\nimport schema from 'src/pages/Services/schemas'\nconst contains = crypto => R.compose(R.contains(crypto), R.prop('cryptos'))\nconst sameClass = type => R.propEq('class', type)\nconst filterConfig = (crypto, type) =>\n R.filter(it => sameClass(type)(it) && contains(crypto)(it))\nexport const getItems = (accountsConfig, accounts, type, crypto) => {\n const fConfig = filterConfig(crypto, type)(accountsConfig)\n const find = code => accounts && accounts[code]\n\n const [filled, unfilled] = R.partition(({ code }) => {\n const account = find(code)\n if (!schema[code]) return true\n\n const { getValidationSchema } = schema[code]\n return getValidationSchema(account).isValidSync(account)\n })(fConfig)\n\n return { filled, unfilled }\n}\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { Button, SupportLinkButton } from 'src/components/buttons'\nimport { RadioGroup } from 'src/components/inputs'\nimport { H4, Info3 } from 'src/components/typography'\nimport FormRenderer from 'src/pages/Services/FormRenderer'\nimport schema from 'src/pages/Services/schemas'\nimport { ReactComponent as WarningIcon } from 'src/styling/icons/warning-icon/comet.svg'\n\nimport styles from './Shared.styles'\nimport { getItems } from './getItems'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_CONFIG = gql`\n {\n accounts\n accountsConfig {\n code\n display\n class\n cryptos\n }\n cryptoCurrencies {\n code\n display\n }\n }\n`\n\nconst SAVE_ACCOUNTS = gql`\n mutation Save($accounts: JSONObject) {\n saveAccounts(accounts: $accounts)\n }\n`\n\nconst isConfigurable = it =>\n !R.isNil(it) && !R.contains(it)(['mock-exchange', 'no-exchange'])\n\nconst ChooseExchange = ({ data: currentData, addData }) => {\n const classes = useStyles()\n const { data } = useQuery(GET_CONFIG)\n const [saveAccounts] = useMutation(SAVE_ACCOUNTS, {\n onCompleted: () => submit()\n })\n\n const [selected, setSelected] = useState(null)\n const [error, setError] = useState(false)\n\n const accounts = data?.accounts ?? []\n const accountsConfig = data?.accountsConfig ?? []\n\n const coin = currentData.coin\n const exchanges = getItems(accountsConfig, accounts, 'exchange', coin)\n\n const submit = () => {\n if (!selected) return setError(true)\n addData({ exchange: selected })\n }\n\n const saveExchange = name => exchange => {\n const accounts = { [name]: exchange }\n return saveAccounts({ variables: { accounts } })\n }\n\n const onSelect = e => {\n setSelected(e.target.value)\n setError(false)\n }\n\n const supportArticles = {\n kraken:\n 'https://support.lamassu.is/hc/en-us/articles/115001206891-Kraken-trading',\n itbit:\n 'https://support.lamassu.is/hc/en-us/articles/360026195032-itBit-trading',\n bitstamp:\n 'https://support.lamassu.is/hc/en-us/articles/115001206911-Bitstamp-trading'\n }\n\n return (\n \n
Choose your exchange \n
\n {!isConfigurable(selected) && (\n
\n Continue\n \n )}\n {isConfigurable(selected) && (\n <>\n
\n \n \n Make sure you set up {schema[selected].name} to enter the\n necessary information below. Please follow the instructions on our\n support page if you haven’t.\n \n
\n
\n\n
Enter exchange information \n
\n >\n )}\n
\n )\n}\n\nexport default ChooseExchange\n","import { useQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { Button } from 'src/components/buttons'\nimport { RadioGroup } from 'src/components/inputs'\nimport { H4 } from 'src/components/typography'\n\nimport styles from './Shared.styles'\nimport { getItems } from './getItems'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_CONFIG = gql`\n {\n accountsConfig {\n code\n display\n class\n cryptos\n }\n }\n`\n\nconst ChooseTicker = ({ data: currentData, addData }) => {\n const classes = useStyles()\n const { data } = useQuery(GET_CONFIG)\n\n const [selected, setSelected] = useState(null)\n const [error, setError] = useState(false)\n\n const accounts = data?.accounts ?? []\n const accountsConfig = data?.accountsConfig ?? []\n\n const coin = currentData.coin\n const tickers = getItems(accountsConfig, accounts, 'ticker', coin)\n\n const submit = () => {\n if (!selected) return setError(true)\n addData({ ticker: selected })\n }\n\n const onSelect = e => {\n setSelected(e.target.value)\n setError(false)\n }\n\n return (\n \n
Choose your ticker \n \n \n Continue\n \n \n )\n}\n\nexport default ChooseTicker\n","import * as Yup from 'yup'\n\nimport {\n TextInput,\n SecretInput,\n Autocomplete\n} from 'src/components/inputs/formik'\n\nconst singleBitgo = code => ({\n code: 'bitgo',\n name: 'BitGo',\n title: 'BitGo (Wallet)',\n elements: [\n {\n code: 'token',\n display: 'API Token',\n component: TextInput,\n face: true,\n long: true\n },\n {\n code: 'environment',\n display: 'Environment',\n component: Autocomplete,\n inputProps: {\n options: [\n { code: 'prod', display: 'prod' },\n { code: 'test', display: 'test' }\n ],\n labelProp: 'display',\n valueProp: 'code'\n },\n face: true\n },\n {\n code: `${code}WalletId`,\n display: `${code} Wallet ID`,\n component: TextInput\n },\n {\n code: `${code}WalletPassphrase`,\n display: `${code} Wallet Passphrase`,\n component: SecretInput\n }\n ],\n validationSchema: Yup.object().shape({\n token: Yup.string('The token must be a string')\n .max(100, 'The token is too long')\n .required('The token is required'),\n environment: Yup.string('The environment must be a string')\n .matches(/(prod|test)/)\n .required('The environment is required'),\n [`${code}WalletId`]: Yup.string(`The ${code} wallet ID must be a string`)\n .max(100, `The ${code} wallet ID is too long`)\n .required(`The ${code} wallet ID is required`),\n [`${code}WalletPassphrase`]: Yup.string(\n `The ${code} passphrase must be a string`\n )\n .max(100, `The ${code} wallet passphrase is too long`)\n .required(`The ${code} wallet passphrase is required`)\n })\n})\n\nexport default singleBitgo\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { Button, SupportLinkButton } from 'src/components/buttons'\nimport { RadioGroup } from 'src/components/inputs'\nimport { H4, Info3 } from 'src/components/typography'\nimport FormRenderer from 'src/pages/Services/FormRenderer'\nimport schema from 'src/pages/Services/schemas'\nimport bitgo from 'src/pages/Services/schemas/singlebitgo'\nimport { ReactComponent as WarningIcon } from 'src/styling/icons/warning-icon/comet.svg'\n\nimport styles from './Shared.styles'\nimport { getItems } from './getItems'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_CONFIG = gql`\n {\n accounts\n accountsConfig {\n code\n display\n class\n cryptos\n }\n cryptoCurrencies {\n code\n display\n }\n }\n`\n\nconst SAVE_ACCOUNTS = gql`\n mutation Save($accounts: JSONObject) {\n saveAccounts(accounts: $accounts)\n }\n`\n\nconst isConfigurable = it => R.contains(it)(['infura', 'bitgo'])\n\nconst isLocalHosted = it =>\n R.contains(it)([\n 'bitcoind',\n 'geth',\n 'litecoind',\n 'dashd',\n 'zcashd',\n 'bitcoincashd'\n ])\n\nconst ChooseWallet = ({ data: currentData, addData }) => {\n const classes = useStyles()\n const { data } = useQuery(GET_CONFIG)\n const [saveAccounts] = useMutation(SAVE_ACCOUNTS, {\n onCompleted: () => submit()\n })\n\n const [selected, setSelected] = useState(null)\n const [error, setError] = useState(false)\n\n const accounts = data?.accounts ?? []\n const accountsConfig = data?.accountsConfig ?? []\n\n const coin = currentData.coin\n const wallets = getItems(accountsConfig, accounts, 'wallet', coin)\n\n const saveWallet = name => wallet => {\n const accounts = { [name]: wallet }\n return saveAccounts({ variables: { accounts } })\n }\n\n const submit = () => {\n if (!selected) return setError(true)\n addData({ wallet: selected })\n }\n\n const onSelect = e => {\n setSelected(e.target.value)\n setError(false)\n }\n\n return (\n \n
Choose your wallet \n
\n {isLocalHosted(selected) && (\n <>\n
\n \n \n To set up {selected} please read the node wallet instructions from\n our support portal.\n \n
\n
\n >\n )}\n {!isConfigurable(selected) && (\n
\n Continue\n \n )}\n {selected === 'bitgo' && (\n <>\n
\n \n \n Make sure you set up a BitGo wallet to enter the necessary\n information below. Please follow the instructions on our support\n page if you haven’t.\n \n
\n
\n
Enter wallet information \n
\n >\n )}\n {selected === 'infura' && (\n <>\n
Enter wallet information \n
\n >\n )}\n
\n )\n}\n\nexport default ChooseWallet\n","import { makeStyles } from '@material-ui/core'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport Sidebar, { Stepper } from 'src/components/layout/Sidebar'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport styles from 'src/pages/AddMachine/styles'\n\nimport AllSet from './AllSet'\nimport Blockcypher from './Blockcypher'\nimport ChooseCoin from './ChooseCoin'\nimport ChooseExchange from './ChooseExchange'\nimport ChooseTicker from './ChooseTicker'\nimport ChooseWallet from './ChooseWallet'\n\nconst useStyles = makeStyles(styles)\n\nconst steps = [\n {\n label: 'Choose cryptocurrency',\n component: ChooseCoin\n },\n {\n label: 'Choose wallet',\n component: ChooseWallet\n },\n {\n label: 'Choose ticker',\n component: ChooseTicker\n },\n {\n label: 'Exchange',\n component: ChooseExchange\n },\n {\n label: 'Blockcypher',\n component: Blockcypher\n },\n {\n label: 'All set',\n component: AllSet\n }\n]\n\nconst Wallet = ({ doContinue }) => {\n const [step, setStep] = useState(0)\n const [data, setData] = useState({})\n\n const classes = useStyles()\n const mySteps = data?.coin === 'BTC' ? steps : R.remove(4, 1, steps)\n\n const Component = mySteps[step].component\n\n const addData = it => {\n setData(R.merge(data, it))\n setStep(step + 1)\n }\n\n return (\n \n
\n \n
\n
\n
\n {mySteps.map((it, idx) => (\n \n ))}\n \n
\n \n
\n
\n
\n )\n}\n\nexport default Wallet\n","import { makeStyles } from '@material-ui/core'\nimport React from 'react'\n\nimport { Button } from 'src/components/buttons'\nimport { H1, P } from 'src/components/typography'\nimport { comet } from 'src/styling/variables'\n\nconst styles = {\n welcome: {\n textAlign: 'center',\n paddingTop: 256\n },\n title: {\n lineHeight: 1,\n fontSize: 48\n },\n getStarted: {\n fontSize: 24,\n fontWeight: 500,\n marginBottom: 54,\n color: comet\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nfunction Welcome({ doContinue }) {\n const classes = useStyles()\n\n return (\n \n
Welcome to the Lamassu Admin \n
\n To get you started, we’ve put together a wizard that will\n \n help set up what you need before pairing your machines.\n
\n
\n Get started\n \n
\n )\n}\n\nexport default Welcome\n","import * as R from 'ramda'\nimport React from 'react'\n\nimport { getSchema as CommissionsSchema } from 'src/pages/Commissions/helper'\nimport { LocaleSchema } from 'src/pages/Locales/helper'\nimport { WalletSchema } from 'src/pages/Wallet/helper'\nimport { fromNamespace, namespaces } from 'src/utils/config'\n\nimport Commissions from './components/Commissions'\nimport Locale from './components/Locales'\n// import Notifications from './components/Notifications'\n// import WizardOperatorInfo from './components/OperatorInfo'\nimport Twilio from './components/Twilio'\nimport Wallet from './components/Wallet/Wallet'\nimport Welcome from './components/Welcome'\n\nconst getConfiguredCoins = (config, crypto) => {\n const wallet = fromNamespace(namespaces.WALLETS, config)\n return R.filter(it =>\n WalletSchema.isValidSync(fromNamespace(it.code, wallet))\n )(crypto)\n}\n\nconst hasValidWallet = (config, crypto) => {\n const wallet = fromNamespace(namespaces.WALLETS, config)\n const coins = R.map(it => fromNamespace(it.code, wallet))(crypto)\n\n const hasValidConfig = R.compose(\n R.any(R.identity),\n R.map(it => WalletSchema.isValidSync(it))\n )(coins)\n\n return hasValidConfig\n}\n\nconst hasValidLocale = config => {\n const locale = fromNamespace(namespaces.LOCALE, config)\n return LocaleSchema.isValidSync(locale)\n}\n\nconst hasValidCommissions = config => {\n const commission = fromNamespace(namespaces.COMMISSIONS, config)\n const locale = fromNamespace(namespaces.LOCALE, config)\n return CommissionsSchema(locale).isValidSync(commission)\n}\n\nconst getWizardStep = (config, crypto) => {\n if (!config) return 0\n\n const validWallet = hasValidWallet(config, crypto)\n if (!validWallet) return 1\n\n const validLocale = hasValidLocale(config)\n if (!validLocale) return 2\n\n const validCommission = hasValidCommissions(config)\n if (!validCommission) return 3\n\n return 0\n}\n\nconst STEPS = [\n {\n id: 'welcome',\n Component: Welcome\n },\n {\n id: 'wallet',\n Component: Wallet,\n exImage: '/assets/wizard/fullexample.wallet.png',\n subtitle: 'Wallet settings',\n text: `Your wallet settings are the first step for this wizard. \n We'll start by setting up one of cryptocurrencies to get you up and running,\n but you can later set up as many as you want.`\n },\n {\n id: 'locale',\n Component: Locale,\n exImage: '/assets/wizard/fullexample.locale.png',\n subtitle: 'Locales',\n text: `From the Locales panel, you can define default settings\n that will be applied to all machines you add to your network later on.\n These settings may be overridden for specific machines in the Overrides section.`\n },\n {\n id: 'twilio',\n Component: Twilio,\n exImage: '/assets/wizard/fullexample.twilio.png',\n subtitle: 'Twilio (SMS service)',\n text: (\n <>\n Twilio is used for SMS operator notifications, phone number collection\n for compliance, and 1-confirmation redemptions on cash-out transactions.\n \n You'll need to configure Twilio if you're offering cash-out or any\n compliance options\n >\n )\n },\n {\n id: 'commissions',\n Component: Commissions,\n exImage: '/assets/wizard/fullexample.commissions.png',\n subtitle: 'Commissions',\n text: `From the Commissions page, you can define all the commissions of your\n machines. The values set here will be default values of all machines\n you'll later add to your network. Default settings keep you from\n having to enter the same values everytime you add a new machine. Once\n a machine is added, you may override these values per machine and per\n cryptocurrency in the overrides section.`\n }\n // {\n // id: 'notifications',\n // Component: Notifications,\n // exImage: '/assets/wizard/fullexample.notifications.png',\n // subtitle: 'Notifications',\n // text: `Your notification settings will allow customize what notifications you\n // get and where. You can later override all default balance alerts setup\n // here.`\n // },\n // {\n // id: 'operatorInfo',\n // Component: WizardOperatorInfo,\n // exImage: '/assets/wizard/fullexample.operatorinfo.png',\n // subtitle: 'Operator info',\n // text: `Your contact information is important for your customer to be able\n // to contact you in case there’s a problem with one of your machines.\n // In this page, you also be able to set up what you want to share with\n // Coin ATM Radar and add the Terms & Services text that is displayed by your machines.`\n // }\n]\n\nexport { getWizardStep, STEPS, getConfiguredCoins }\n","import { makeStyles, Drawer, Grid } from '@material-ui/core'\nimport classnames from 'classnames'\nimport React, { useState } from 'react'\n\nimport Modal from 'src/components/Modal'\nimport Stepper from 'src/components/Stepper'\nimport { Button, Link } from 'src/components/buttons'\nimport { P, H2, Info2 } from 'src/components/typography'\nimport { spacer } from 'src/styling/variables'\n\nconst useStyles = makeStyles(() => ({\n drawer: {\n borderTop: 'none',\n boxShadow: '0 0 4px 0 rgba(0, 0, 0, 0.08)'\n },\n wrapper: {\n padding: '32px 0',\n flexGrow: 1,\n height: 264\n },\n smallWrapper: {\n height: 84\n },\n title: {\n margin: [[0, spacer * 4, 0, 0]]\n },\n subtitle: {\n marginTop: spacer,\n marginBottom: 6,\n lineHeight: 1.25,\n display: 'inline'\n },\n modal: {\n background: 'none',\n boxShadow: 'none'\n }\n}))\n\nfunction Footer({ currentStep, steps, subtitle, text, exImage, open, start }) {\n const classes = useStyles()\n const [fullExample, setFullExample] = useState(false)\n\n const wrapperClassNames = {\n [classes.wrapper]: true,\n [classes.smallWrapper]: !open\n }\n\n return (\n \n \n
\n \n Setup Lamassu Admin \n {subtitle} \n {open && {text}
}\n \n \n \n {steps && currentStep && (\n \n )}\n \n \n \n {open && (\n
\n \n {\n setFullExample(true)\n }}>\n See full example\n \n \n \n \n \n Get Started\n \n \n \n \n )}\n
\n {\n setFullExample(false)\n }}\n open={fullExample}>\n \n \n \n )\n}\n\nexport default Footer\n","import { useQuery } from '@apollo/react-hooks'\nimport { makeStyles, Dialog, DialogContent } from '@material-ui/core'\nimport classnames from 'classnames'\nimport gql from 'graphql-tag'\nimport React, { useState, useContext } from 'react'\nimport { useHistory } from 'react-router-dom'\n\nimport AppContext from 'src/AppContext'\nimport { getWizardStep, STEPS } from 'src/pages/Wizard/helper'\nimport { backgroundColor } from 'src/styling/variables'\n\nimport Footer from './components/Footer'\n\nconst useStyles = makeStyles({\n wrapper: {\n display: 'flex',\n padding: [[16, 0]],\n flexDirection: 'column',\n justifyContent: 'space-between',\n backgroundColor: backgroundColor\n },\n welcomeBackground: {\n background: 'url(/wizard-background.svg) no-repeat center center fixed',\n backgroundColor: backgroundColor,\n backgroundSize: 'cover'\n },\n blurred: {\n filter: 'blur(4px)',\n pointerEvents: 'none'\n }\n})\n\nconst GET_DATA = gql`\n query getData {\n config\n accounts\n cryptoCurrencies {\n code\n display\n }\n }\n`\n\nconst Wizard = ({ fromAuthRegister }) => {\n const classes = useStyles()\n const { data, loading } = useQuery(GET_DATA)\n const history = useHistory()\n const { setWizardTested } = useContext(AppContext)\n\n const [step, setStep] = useState(0)\n const [open, setOpen] = useState(true)\n\n const [footerExp, setFooterExp] = useState(false)\n\n if (loading) {\n return <>>\n }\n\n const wizardStep = getWizardStep(data?.config, data?.cryptoCurrencies)\n\n const shouldGoBack =\n history.length && !history.location.state?.fromAuthRegister\n\n if (wizardStep === 0) {\n setWizardTested(true)\n shouldGoBack ? history.goBack() : history.push('/')\n }\n\n const isWelcome = step === 0\n const classNames = {\n [classes.blurred]: footerExp,\n [classes.wrapper]: true,\n [classes.welcomeBackground]: isWelcome\n }\n\n const start = () => {\n setFooterExp(false)\n }\n\n const doContinue = () => {\n if (step >= STEPS.length - 1) {\n setOpen(false)\n history.push('/')\n }\n\n const nextStep = step === 0 && wizardStep ? wizardStep : step + 1\n\n setFooterExp(true)\n setStep(nextStep)\n }\n\n const current = STEPS[step]\n\n return (\n \n \n \n \n {!isWelcome && (\n \n )}\n \n )\n}\n\nexport default Wizard\n","import Wizard from './Wizard'\n\nexport default Wizard\n","import * as R from 'ramda'\n\nexport const isLoggedIn = userData =>\n !R.isNil(userData?.id) &&\n !R.isNil(userData?.username) &&\n !R.isNil(userData?.role)\n\nexport const ROLES = {\n USER: 'user',\n SUPERUSER: 'superuser'\n}\n\nexport const BUILD_TARGETS = {\n LAMASSU: 'LAMASSU',\n PAZUZ: 'PAZUZ'\n}\n","import React, { useContext } from 'react'\nimport { Route, Redirect } from 'react-router-dom'\n\nimport AppContext from 'src/AppContext'\n\nimport { isLoggedIn } from './utils'\n\nconst PrivateRoute = ({ ...rest }) => {\n const { userData } = useContext(AppContext)\n\n return isLoggedIn(userData) ? : \n}\n\nexport default PrivateRoute\n","import React, { useContext } from 'react'\nimport { Route, Redirect } from 'react-router-dom'\n\nimport AppContext from 'src/AppContext'\n\nimport { isLoggedIn } from './utils'\n\nconst PublicRoute = ({ component: Component, restricted, ...rest }) => {\n const { userData } = useContext(AppContext)\n\n return (\n \n isLoggedIn(userData) && restricted ? (\n \n ) : (\n \n )\n }\n />\n )\n}\n\nexport default PublicRoute\n","import { offDarkColor, tomato, neon, java } from 'src/styling/variables'\n\nconst styles = {\n overviewLegend: {\n display: 'flex',\n justifyContent: 'flex-end',\n '& span': {\n marginRight: 24\n },\n '& > :last-child': {\n marginRight: 0\n }\n },\n legendEntry: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n '& > :first-child': {\n marginRight: 8\n }\n },\n dropdownsOverviewWrapper: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginBottom: 16\n },\n verticalLine: {\n height: 64,\n width: 1,\n border: 'solid',\n borderWidth: 0.5,\n borderColor: offDarkColor\n },\n dropdowns: {\n display: 'flex',\n flexDirection: 'row',\n '& div': {\n marginRight: 24\n },\n '& > :last-child': {\n marginRight: 0\n }\n },\n overview: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n '& div': {\n marginRight: 40\n },\n '& > :last-child': {\n marginRight: 0\n }\n },\n overviewFieldWrapper: {\n marginTop: 6,\n marginBottom: 6,\n '& span': {\n fontSize: 24\n }\n },\n overviewGrowth: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n '& p': {\n marginLeft: 4\n }\n },\n growthPercentage: {\n fontWeight: 'bold'\n },\n growth: {\n color: '#00CD5A'\n },\n decline: {\n color: tomato\n },\n // Graph\n graphHeaderWrapper: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n marginBottom: 40\n },\n graphHeaderLeft: {\n display: 'flex',\n flexDirection: 'column'\n },\n graphHeaderRight: {\n marginTop: 15,\n display: 'flex',\n flexDirection: 'row',\n '& > *': {\n marginRight: 30,\n '&:last-child': {\n marginRight: 0\n }\n }\n },\n graphLegend: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n '& span': {\n marginRight: 24\n },\n '& > :last-child': {\n marginRight: 0\n }\n },\n machineSelector: {\n width: 248\n },\n cashInIcon: {\n width: 12,\n height: 12,\n borderRadius: 12,\n backgroundColor: java\n },\n cashOutIcon: {\n width: 12,\n height: 12,\n borderRadius: 12,\n backgroundColor: neon\n },\n txIcon: {\n width: 12,\n height: 12,\n borderRadius: 12,\n backgroundColor: '#000'\n },\n topMachinesRadio: {\n display: 'flex',\n flexDirection: 'row'\n }\n}\n\nexport default styles\n","import { makeStyles } from '@material-ui/core/styles'\nimport React from 'react'\n\nimport { P } from 'src/components/typography'\n\nimport styles from '../Analytics.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst LegendEntry = ({ IconElement, IconComponent, label }) => {\n const classes = useStyles()\n\n return (\n \n {!!IconComponent && }\n {!!IconElement && IconElement}\n {label}
\n \n )\n}\n\nexport default LegendEntry\n","import { comet } from 'src/styling/variables'\n\nconst styles = {\n dotOtWrapper: {\n position: 'absolute',\n top: coords => coords?.y ?? 0,\n left: coords => coords?.x ?? 0,\n width: 150,\n padding: 12,\n borderRadius: 8\n },\n dotOtTransactionAmount: {\n margin: [[8, 0, 8, 0]]\n },\n dotOtTransactionVolume: {\n color: comet\n },\n dotOtTransactionClasses: {\n marginTop: 15,\n '& p > span': {\n marginLeft: 5\n },\n '& p:last-child': {\n marginTop: 5\n }\n }\n}\n\nexport default styles\n","import { Paper } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport * as R from 'ramda'\nimport React, { memo } from 'react'\n\nimport { Info2, Label3, P } from 'src/components/typography'\nimport { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport { numberToFiatAmount } from 'src/utils/number'\nimport { singularOrPlural } from 'src/utils/string'\nimport { formatDate, formatDateNonUtc } from 'src/utils/timezones'\n\nimport styles from './GraphTooltip.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst GraphTooltip = ({\n coords,\n data,\n dateInterval,\n period,\n currency,\n representing\n}) => {\n const classes = useStyles(coords)\n\n const formattedDateInterval = !R.includes('hourOfDay', representing.code)\n ? [\n formatDate(\n dateInterval[1],\n null,\n period.code === 'day' ? 'MMM d, HH:mm' : 'MMM d'\n ),\n formatDate(\n dateInterval[0],\n null,\n period.code === 'day' ? 'HH:mm' : 'MMM d'\n )\n ]\n : [\n formatDateNonUtc(dateInterval[1], 'HH:mm'),\n formatDateNonUtc(dateInterval[0], 'HH:mm')\n ]\n\n const transactions = R.reduce(\n (acc, value) => {\n acc.volume += parseInt(value.fiat)\n if (value.txClass === 'cashIn') acc.cashIn++\n if (value.txClass === 'cashOut') acc.cashOut++\n return acc\n },\n { volume: 0, cashIn: 0, cashOut: 0 },\n data\n )\n\n return (\n \n \n {period.code === 'day' || R.includes('hourOfDay', representing.code)\n ? `${formattedDateInterval[0]} - ${formattedDateInterval[1]}`\n : `${formattedDateInterval[0]}`}\n \n \n {R.length(data)}{' '}\n {singularOrPlural(R.length(data), 'transaction', 'transactions')}\n
\n \n {numberToFiatAmount(transactions.volume)} {currency} in volume\n
\n \n \n \n {transactions.cashIn} cash-in \n \n \n \n {transactions.cashOut} cash-out \n \n
\n \n )\n}\n\nexport default memo(GraphTooltip, (prev, next) => prev.coords === next.coords)\n","import BigNumber from 'bignumber.js'\nimport * as d3 from 'd3'\nimport { getTimezoneOffset } from 'date-fns-tz'\nimport { add, startOfDay } from 'date-fns/fp'\nimport * as R from 'ramda'\nimport React, { memo, useCallback, useEffect, useMemo, useRef } from 'react'\n\nimport {\n java,\n neon,\n subheaderDarkColor,\n fontColor,\n fontSecondary,\n subheaderColor\n} from 'src/styling/variables'\nimport { MINUTE } from 'src/utils/time'\nimport { toUtc } from 'src/utils/timezones'\n\nconst Graph = ({\n data,\n timezone,\n setSelectionCoords,\n setSelectionData,\n setSelectionDateInterval,\n selectedMachine\n}) => {\n const ref = useRef(null)\n\n const GRAPH_POPOVER_WIDTH = 150\n const GRAPH_POPOVER_MARGIN = 25\n const BAR_MARGIN = 10\n const GRAPH_HEIGHT = 401\n const GRAPH_WIDTH = 1163\n const GRAPH_MARGIN = useMemo(\n () => ({\n top: 25,\n right: 0.5,\n bottom: 27,\n left: 36.5\n }),\n []\n )\n\n const offset = getTimezoneOffset(timezone)\n\n const getTickIntervals = (domain, interval) => {\n const ticks = []\n const start = new Date(domain[0])\n const end = new Date(domain[1])\n\n const step = R.clone(start)\n\n // eslint-disable-next-line no-unmodified-loop-condition\n while (step <= end) {\n ticks.push(R.clone(step))\n step.setUTCHours(step.getUTCHours() + interval)\n }\n\n return ticks\n }\n\n const filterByHourInterval = useCallback(\n (lowerBound, upperBound) =>\n R.filter(it => {\n const tzCreated = new Date(it.created).setTime(\n new Date(it.created).getTime() +\n new Date(it.created).getTimezoneOffset() * MINUTE +\n offset\n )\n const created = new Date(tzCreated)\n\n return (\n (lowerBound.getUTCHours() < upperBound.getUTCHours() &&\n created.getUTCHours() >= new Date(lowerBound).getUTCHours() &&\n created.getUTCHours() < new Date(upperBound).getUTCHours()) ||\n (lowerBound.getUTCHours() > upperBound.getUTCHours() &&\n created.getUTCHours() <= new Date(lowerBound).getUTCHours() &&\n created.getUTCHours() < new Date(upperBound).getUTCHours())\n )\n }, data),\n [data, offset]\n )\n\n const txClassByHourInterval = useCallback(\n (lowerBound, upperBound) =>\n R.reduce(\n (acc, value) => {\n if (value.txClass === 'cashIn')\n acc.cashIn += BigNumber(value.fiat).toNumber()\n if (value.txClass === 'cashOut')\n acc.cashOut += BigNumber(value.fiat).toNumber()\n return acc\n },\n { cashIn: 0, cashOut: 0 },\n filterByHourInterval(lowerBound, upperBound)\n ),\n [filterByHourInterval]\n )\n\n const x = d3\n .scaleUtc()\n .domain([\n toUtc(startOfDay(new Date())),\n toUtc(add({ days: 1 }, startOfDay(new Date())))\n ])\n .rangeRound([GRAPH_MARGIN.left, GRAPH_WIDTH - GRAPH_MARGIN.right])\n\n const groupedByDateInterval = R.map(it => {\n const lowerBound = R.clone(it)\n it.setUTCHours(it.getUTCHours() + 2)\n const upperBound = R.clone(it)\n return [lowerBound, filterByHourInterval(lowerBound, upperBound)]\n }, R.init(getTickIntervals(x.domain(), 2)))\n\n const groupedByTxClass = R.map(it => {\n const lowerBound = R.clone(it)\n it.setUTCHours(it.getUTCHours() + 2)\n const upperBound = R.clone(it)\n return [lowerBound, txClassByHourInterval(lowerBound, upperBound)]\n }, R.init(getTickIntervals(x.domain(), 2)))\n\n const y = d3\n .scaleLinear()\n .domain([\n 0,\n d3.max(\n groupedByTxClass.map(it => it[1]),\n d => d.cashIn + d.cashOut\n ) !== 0\n ? d3.max(\n groupedByTxClass.map(it => it[1]),\n d => d.cashIn + d.cashOut\n )\n : 50\n ])\n .range([GRAPH_HEIGHT - GRAPH_MARGIN.bottom, GRAPH_MARGIN.top])\n\n const buildXAxis = useCallback(\n g =>\n g\n .attr(\n 'transform',\n `translate(0, ${GRAPH_HEIGHT - GRAPH_MARGIN.bottom})`\n )\n .call(\n d3\n .axisBottom(x)\n .ticks(d3.timeHour.every(2))\n .tickFormat(d3.timeFormat('%H:%M'))\n ),\n [GRAPH_MARGIN, x]\n )\n\n const buildYAxis = useCallback(\n g =>\n g\n .attr('transform', `translate(${GRAPH_MARGIN.left}, 0)`)\n .call(\n d3\n .axisLeft(y)\n .ticks(GRAPH_HEIGHT / 100)\n .tickSize(0)\n .tickFormat(``)\n )\n .call(g => g.select('.domain').remove()),\n [GRAPH_MARGIN, y]\n )\n\n const buildVerticalLines = useCallback(\n g =>\n g\n .attr('stroke', subheaderDarkColor)\n .append('g')\n .selectAll('line')\n .data(getTickIntervals(x.domain(), 2))\n .join('line')\n .attr('x1', d => {\n const xValue = x(d)\n const intervals = getTickIntervals(x.domain(), 2)\n return xValue === x(intervals[R.length(intervals) - 1])\n ? xValue - 1\n : 0.5 + xValue\n })\n .attr('x2', d => {\n const xValue = x(d)\n const intervals = getTickIntervals(x.domain(), 2)\n return xValue === x(intervals[R.length(intervals) - 1])\n ? xValue - 1\n : 0.5 + xValue\n })\n .attr('y1', GRAPH_MARGIN.top)\n .attr('y2', GRAPH_HEIGHT - GRAPH_MARGIN.bottom),\n [GRAPH_MARGIN, x]\n )\n\n const buildHoverableEventRects = useCallback(\n g =>\n g\n .append('g')\n .selectAll('line')\n .data(getTickIntervals(x.domain(), 2))\n .join('rect')\n .attr('x', d => x(d))\n .attr('y', GRAPH_MARGIN.top)\n .attr('width', d => {\n const xValue = Math.round(x(d) * 100) / 100\n const ticks = getTickIntervals(x.domain(), 2).map(it => x(it))\n\n const index = R.findIndex(it => it === xValue, ticks)\n const width =\n index + 1 === R.length(ticks) ? 0 : ticks[index + 1] - ticks[index]\n\n return Math.round(width * 100) / 100\n })\n .attr('height', GRAPH_HEIGHT - GRAPH_MARGIN.bottom - GRAPH_MARGIN.top)\n .attr('stroke', 'transparent')\n .attr('fill', 'transparent')\n .on('mouseover', d => {\n const date = R.clone(new Date(d.target.__data__))\n const startDate = R.clone(date)\n date.setUTCHours(date.getUTCHours() + 2)\n const endDate = R.clone(date)\n\n const filteredData = groupedByDateInterval.find(it =>\n R.equals(startDate, it[0])\n )[1]\n\n const rectXCoords = {\n left: R.clone(d.target.getBoundingClientRect().x),\n right: R.clone(\n d.target.getBoundingClientRect().x +\n d.target.getBoundingClientRect().width\n )\n }\n\n const xCoord =\n d.target.x.baseVal.value < 0.75 * GRAPH_WIDTH\n ? rectXCoords.right + GRAPH_POPOVER_MARGIN\n : rectXCoords.left - GRAPH_POPOVER_WIDTH - GRAPH_POPOVER_MARGIN\n const yCoord = R.clone(d.target.getBoundingClientRect().y)\n\n setSelectionDateInterval([endDate, startDate])\n setSelectionData(filteredData)\n setSelectionCoords({\n x: Math.round(xCoord),\n y: Math.round(yCoord)\n })\n\n d3.select(`#event-rect-${x(d.target.__data__)}`).attr(\n 'fill',\n subheaderColor\n )\n })\n .on('mouseleave', d => {\n d3.select(`#event-rect-${x(d.target.__data__)}`).attr(\n 'fill',\n 'transparent'\n )\n setSelectionDateInterval(null)\n setSelectionData(null)\n setSelectionCoords(null)\n }),\n [\n GRAPH_MARGIN,\n groupedByDateInterval,\n setSelectionCoords,\n setSelectionData,\n setSelectionDateInterval,\n x\n ]\n )\n\n const buildEventRects = useCallback(\n g =>\n g\n .append('g')\n .selectAll('line')\n .data(getTickIntervals(x.domain(), 2))\n .join('rect')\n .attr('id', d => `event-rect-${x(d)}`)\n .attr('x', d => x(d))\n .attr('y', GRAPH_MARGIN.top)\n .attr('width', d => {\n const xValue = Math.round(x(d) * 100) / 100\n const ticks = getTickIntervals(x.domain(), 2).map(it => x(it))\n\n const index = R.findIndex(it => it === xValue, ticks)\n const width =\n index + 1 === R.length(ticks) ? 0 : ticks[index + 1] - ticks[index]\n\n return Math.round(width * 100) / 100\n })\n .attr('height', GRAPH_HEIGHT - GRAPH_MARGIN.bottom - GRAPH_MARGIN.top)\n .attr('stroke', 'transparent')\n .attr('fill', 'transparent'),\n [GRAPH_MARGIN, x]\n )\n\n const formatTicksText = useCallback(\n () =>\n d3\n .selectAll('.tick text')\n .style('stroke', fontColor)\n .style('fill', fontColor)\n .style('stroke-width', 0.5)\n .style('font-family', fontSecondary),\n []\n )\n\n const drawCashIn = useCallback(\n g => {\n g.selectAll('rect')\n .data(R.init(getTickIntervals(x.domain(), 2)))\n .join('rect')\n .attr('stroke', java)\n .attr('fill', java)\n .attr('x', d => {\n return x(d) + BAR_MARGIN / 2\n })\n .attr('y', d => {\n const interval = R.find(it => R.equals(it[0], d), groupedByTxClass)\n return y(interval[1].cashIn) - GRAPH_MARGIN.top + GRAPH_MARGIN.bottom\n })\n .attr('height', d => {\n const interval = R.find(it => R.equals(it[0], d), groupedByTxClass)\n return R.clamp(\n 0,\n GRAPH_HEIGHT,\n GRAPH_HEIGHT -\n y(interval[1].cashIn) -\n GRAPH_MARGIN.bottom -\n BAR_MARGIN / 2\n )\n })\n .attr('width', d => {\n const xValue = Math.round(x(d) * 100) / 100\n const ticks = getTickIntervals(x.domain(), 2).map(it => x(it))\n\n const index = R.findIndex(it => it === xValue, ticks)\n const width =\n index === R.length(ticks) ? 0 : ticks[index + 1] - ticks[index]\n return Math.round((width - BAR_MARGIN) * 100) / 100\n })\n .attr('rx', 2.5)\n },\n [x, y, GRAPH_MARGIN, groupedByTxClass]\n )\n\n const drawCashOut = useCallback(\n g => {\n g.selectAll('rect')\n .data(R.init(getTickIntervals(x.domain(), 2)))\n .join('rect')\n .attr('stroke', neon)\n .attr('fill', neon)\n .attr('x', d => {\n return x(d) + BAR_MARGIN / 2\n })\n .attr('y', d => {\n const interval = R.find(it => R.equals(it[0], d), groupedByTxClass)\n return (\n y(interval[1].cashIn + interval[1].cashOut) -\n GRAPH_MARGIN.top +\n GRAPH_MARGIN.bottom\n )\n })\n .attr('height', d => {\n const interval = R.find(it => R.equals(it[0], d), groupedByTxClass)\n return R.clamp(\n 0,\n GRAPH_HEIGHT,\n GRAPH_HEIGHT -\n y(interval[1].cashOut) -\n GRAPH_MARGIN.bottom -\n BAR_MARGIN / 2\n )\n })\n .attr('width', d => {\n const xValue = Math.round(x(d) * 100) / 100\n const ticks = getTickIntervals(x.domain(), 2).map(it => x(it))\n\n const index = R.findIndex(it => it === xValue, ticks)\n const width =\n index === R.length(ticks) ? 0 : ticks[index + 1] - ticks[index]\n return Math.round((width - BAR_MARGIN) * 100) / 100\n })\n .attr('rx', 2.5)\n },\n [x, y, GRAPH_MARGIN, groupedByTxClass]\n )\n\n const drawChart = useCallback(() => {\n const svg = d3\n .select(ref.current)\n .attr('viewBox', [0, 0, GRAPH_WIDTH, GRAPH_HEIGHT])\n\n svg.append('g').call(buildXAxis)\n svg.append('g').call(buildYAxis)\n svg.append('g').call(buildVerticalLines)\n svg.append('g').call(buildEventRects)\n svg.append('g').call(formatTicksText)\n svg.append('g').call(drawCashIn)\n svg.append('g').call(drawCashOut)\n svg.append('g').call(buildHoverableEventRects)\n\n return svg.node()\n }, [\n buildXAxis,\n buildYAxis,\n buildEventRects,\n buildHoverableEventRects,\n buildVerticalLines,\n drawCashIn,\n formatTicksText,\n drawCashOut\n ])\n\n useEffect(() => {\n d3.select(ref.current)\n .selectAll('*')\n .remove()\n drawChart()\n }, [drawChart])\n\n return \n}\n\nexport default memo(\n Graph,\n (prev, next) =>\n R.equals(prev.period, next.period) &&\n R.equals(prev.selectedDay, next.selectedDay) &&\n R.equals(prev.selectedMachine, next.selectedMachine)\n)\n","import BigNumber from 'bignumber.js'\nimport * as d3 from 'd3'\nimport { getTimezoneOffset } from 'date-fns-tz'\nimport { add, format, startOfWeek, startOfYear } from 'date-fns/fp'\nimport * as R from 'ramda'\nimport React, { memo, useCallback, useEffect, useMemo, useRef } from 'react'\n\nimport {\n java,\n neon,\n subheaderDarkColor,\n offColor,\n fontColor,\n primaryColor,\n fontSecondary,\n subheaderColor\n} from 'src/styling/variables'\nimport { MINUTE, DAY, WEEK, MONTH } from 'src/utils/time'\n\nconst Graph = ({\n data,\n period,\n timezone,\n setSelectionCoords,\n setSelectionData,\n setSelectionDateInterval\n}) => {\n const ref = useRef(null)\n\n const GRAPH_POPOVER_WIDTH = 150\n const GRAPH_POPOVER_MARGIN = 25\n const GRAPH_HEIGHT = 401\n const GRAPH_WIDTH = 1163\n const GRAPH_MARGIN = useMemo(\n () => ({\n top: 25,\n right: 0.5,\n bottom: 27,\n left: 36.5\n }),\n []\n )\n\n const offset = getTimezoneOffset(timezone)\n const NOW = Date.now() + offset\n\n const periodDomains = {\n day: [NOW - DAY, NOW],\n week: [NOW - WEEK, NOW],\n month: [NOW - MONTH, NOW]\n }\n\n const dataPoints = useMemo(\n () => ({\n day: {\n freq: 24,\n step: 60 * 60 * 1000,\n tick: d3.utcHour.every(1),\n labelFormat: '%H:%M'\n },\n week: {\n freq: 7,\n step: 24 * 60 * 60 * 1000,\n tick: d3.utcDay.every(1),\n labelFormat: '%a %d'\n },\n month: {\n freq: 30,\n step: 24 * 60 * 60 * 1000,\n tick: d3.utcDay.every(1),\n labelFormat: '%d'\n }\n }),\n []\n )\n\n const getPastAndCurrentDayLabels = useCallback(d => {\n const currentDate = new Date(d)\n const currentDateDay = currentDate.getUTCDate()\n const currentDateWeekday = currentDate.getUTCDay()\n const currentDateMonth = currentDate.getUTCMonth()\n\n const previousDate = new Date(currentDate.getTime())\n previousDate.setUTCDate(currentDateDay - 1)\n\n const previousDateDay = previousDate.getUTCDate()\n const previousDateWeekday = previousDate.getUTCDay()\n const previousDateMonth = previousDate.getUTCMonth()\n\n const daysOfWeek = Array.from(Array(7)).map((_, i) =>\n format('EEE', add({ days: i }, startOfWeek(new Date())))\n )\n\n const months = Array.from(Array(12)).map((_, i) =>\n format('LLL', add({ months: i }, startOfYear(new Date())))\n )\n\n return {\n previous:\n currentDateMonth !== previousDateMonth\n ? months[previousDateMonth]\n : `${daysOfWeek[previousDateWeekday]} ${previousDateDay}`,\n current:\n currentDateMonth !== previousDateMonth\n ? months[currentDateMonth]\n : `${daysOfWeek[currentDateWeekday]} ${currentDateDay}`\n }\n }, [])\n\n const buildTicks = useCallback(\n domain => {\n const points = []\n\n const roundDate = d => {\n const step = dataPoints[period.code].step\n return new Date(Math.ceil(d.valueOf() / step) * step)\n }\n\n for (let i = 0; i <= dataPoints[period.code].freq; i++) {\n const stepDate = new Date(NOW - i * dataPoints[period.code].step)\n if (roundDate(stepDate) > domain[1]) continue\n if (stepDate < domain[0]) continue\n points.push(roundDate(stepDate))\n }\n\n return points\n },\n [NOW, dataPoints, period.code]\n )\n\n const buildAreas = useCallback(\n domain => {\n const points = []\n\n points.push(domain[1])\n\n const roundDate = d => {\n const step = dataPoints[period.code].step\n return new Date(Math.ceil(d.valueOf() / step) * step)\n }\n\n for (let i = 0; i <= dataPoints[period.code].freq; i++) {\n const stepDate = new Date(NOW - i * dataPoints[period.code].step)\n if (roundDate(stepDate) > new Date(domain[1])) continue\n if (stepDate < new Date(domain[0])) continue\n points.push(roundDate(stepDate))\n }\n\n points.push(domain[0])\n\n return points\n },\n [NOW, dataPoints, period.code]\n )\n\n const x = d3\n .scaleUtc()\n .domain(periodDomains[period.code])\n .range([GRAPH_MARGIN.left, GRAPH_WIDTH - GRAPH_MARGIN.right])\n\n const y = d3\n .scaleLinear()\n .domain([\n 0,\n (d3.max(data, d => new BigNumber(d.fiat).toNumber()) ?? 1000) * 1.03\n ])\n .nice()\n .range([GRAPH_HEIGHT - GRAPH_MARGIN.bottom, GRAPH_MARGIN.top])\n\n const getAreaInterval = (breakpoints, limits) => {\n const fullBreakpoints = [\n limits[1],\n ...R.filter(it => it > limits[0] && it < limits[1], breakpoints),\n limits[0]\n ]\n\n const intervals = []\n for (let i = 0; i < fullBreakpoints.length - 1; i++) {\n intervals.push([fullBreakpoints[i], fullBreakpoints[i + 1]])\n }\n\n return intervals\n }\n\n const getAreaIntervalByX = (intervals, xValue) => {\n return R.find(it => xValue <= it[0] && xValue >= it[1], intervals) ?? [0, 0]\n }\n\n const getDateIntervalByX = (areas, intervals, xValue) => {\n const flattenIntervals = R.uniq(R.flatten(intervals))\n\n // flattenIntervals and areas should have the same number of elements\n for (let i = intervals.length - 1; i >= 0; i--) {\n if (xValue < flattenIntervals[i]) {\n return [areas[i], areas[i + 1]]\n }\n }\n }\n\n const buildXAxis = useCallback(\n g =>\n g\n .attr(\n 'transform',\n `translate(0, ${GRAPH_HEIGHT - GRAPH_MARGIN.bottom})`\n )\n .call(\n d3\n .axisBottom(x)\n .ticks(dataPoints[period.code].tick)\n .tickFormat(d => {\n return d3.timeFormat(dataPoints[period.code].labelFormat)(\n d.getTime() + d.getTimezoneOffset() * MINUTE\n )\n })\n )\n .call(g => g.select('.domain').remove())\n .call(g =>\n g\n .append('line')\n .attr('x1', GRAPH_MARGIN.left)\n .attr('y1', -GRAPH_HEIGHT + GRAPH_MARGIN.top + GRAPH_MARGIN.bottom)\n .attr('x2', GRAPH_MARGIN.left)\n .attr('stroke', primaryColor)\n .attr('stroke-width', 1)\n ),\n [GRAPH_MARGIN, dataPoints, period.code, x]\n )\n\n const buildYAxis = useCallback(\n g =>\n g\n .attr('transform', `translate(${GRAPH_MARGIN.left}, 0)`)\n .call(d3.axisLeft(y).ticks(GRAPH_HEIGHT / 100))\n .call(g => g.select('.domain').remove())\n .call(g =>\n g\n .selectAll('.tick line')\n .filter(d => d === 0)\n .clone()\n .attr('x2', GRAPH_WIDTH - GRAPH_MARGIN.right - GRAPH_MARGIN.left)\n .attr('stroke-width', 1)\n .attr('stroke', primaryColor)\n ),\n [GRAPH_MARGIN, y]\n )\n\n const buildGrid = useCallback(\n g => {\n g.attr('stroke', subheaderDarkColor)\n .attr('fill', subheaderDarkColor)\n // Vertical lines\n .call(g =>\n g\n .append('g')\n .selectAll('line')\n .data(buildTicks(x.domain()))\n .join('line')\n .attr('x1', d => 0.5 + x(d))\n .attr('x2', d => 0.5 + x(d))\n .attr('y1', GRAPH_MARGIN.top)\n .attr('y2', GRAPH_HEIGHT - GRAPH_MARGIN.bottom)\n )\n // Horizontal lines\n .call(g =>\n g\n .append('g')\n .selectAll('line')\n .data(\n d3\n .axisLeft(y)\n .scale()\n .ticks(GRAPH_HEIGHT / 100)\n )\n .join('line')\n .attr('y1', d => 0.5 + y(d))\n .attr('y2', d => 0.5 + y(d))\n .attr('x1', GRAPH_MARGIN.left)\n .attr('x2', GRAPH_WIDTH - GRAPH_MARGIN.right)\n )\n // Vertical transparent rectangles for events\n .call(g =>\n g\n .append('g')\n .selectAll('line')\n .data(buildAreas(x.domain()))\n .join('rect')\n .attr('x', d => x(d))\n .attr('y', GRAPH_MARGIN.top)\n .attr('width', d => {\n const xValue = Math.round(x(d) * 100) / 100\n const intervals = getAreaInterval(\n buildAreas(x.domain()).map(it => Math.round(x(it) * 100) / 100),\n x.range()\n )\n const interval = getAreaIntervalByX(intervals, xValue)\n return Math.round((interval[0] - interval[1]) * 100) / 100\n })\n .attr(\n 'height',\n GRAPH_HEIGHT - GRAPH_MARGIN.bottom - GRAPH_MARGIN.top\n )\n .attr('stroke', 'transparent')\n .attr('fill', 'transparent')\n .on('mouseover', d => {\n const xValue = Math.round(d.target.x.baseVal.value * 100) / 100\n const areas = buildAreas(x.domain())\n const intervals = getAreaInterval(\n buildAreas(x.domain()).map(it => Math.round(x(it) * 100) / 100),\n x.range()\n )\n\n const dateInterval = getDateIntervalByX(areas, intervals, xValue)\n const filteredData = data.filter(it => {\n const created = new Date(it.created)\n const tzCreated = created.setTime(created.getTime() + offset)\n return (\n tzCreated > new Date(dateInterval[1]) &&\n tzCreated <= new Date(dateInterval[0])\n )\n })\n\n const rectXCoords = {\n left: R.clone(d.target.getBoundingClientRect().x),\n right: R.clone(\n d.target.getBoundingClientRect().x +\n d.target.getBoundingClientRect().width\n )\n }\n\n const xCoord =\n d.target.x.baseVal.value < 0.75 * GRAPH_WIDTH\n ? rectXCoords.right + GRAPH_POPOVER_MARGIN\n : rectXCoords.left -\n GRAPH_POPOVER_WIDTH -\n GRAPH_POPOVER_MARGIN\n const yCoord = R.clone(d.target.getBoundingClientRect().y)\n\n setSelectionDateInterval(dateInterval)\n setSelectionData(filteredData)\n setSelectionCoords({\n x: Math.round(xCoord),\n y: Math.round(yCoord)\n })\n\n d3.select(d.target).attr('fill', subheaderColor)\n })\n .on('mouseleave', d => {\n d3.select(d.target).attr('fill', 'transparent')\n setSelectionDateInterval(null)\n setSelectionData(null)\n setSelectionCoords(null)\n })\n )\n // Thick vertical lines\n .call(g =>\n g\n .append('g')\n .selectAll('line')\n .data(\n buildTicks(x.domain()).filter(x => {\n if (period.code === 'day') return x.getUTCHours() === 0\n return x.getUTCDate() === 1\n })\n )\n .join('line')\n .attr('class', 'dateSeparator')\n .attr('x1', d => 0.5 + x(d))\n .attr('x2', d => 0.5 + x(d))\n .attr('y1', GRAPH_MARGIN.top - 50)\n .attr('y2', GRAPH_HEIGHT - GRAPH_MARGIN.bottom)\n .attr('stroke-width', 5)\n .join('text')\n )\n // Left side breakpoint label\n .call(g => {\n const separator = d3\n ?.select('.dateSeparator')\n ?.node()\n ?.getBBox()\n\n if (!separator) return\n\n const breakpoint = buildTicks(x.domain()).filter(x => {\n if (period.code === 'day') return x.getUTCHours() === 0\n return x.getUTCDate() === 1\n })\n\n const labels = getPastAndCurrentDayLabels(breakpoint)\n\n return g\n .append('text')\n .attr('x', separator.x - 10)\n .attr('y', separator.y + 33)\n .attr('text-anchor', 'end')\n .attr('dy', '.25em')\n .text(labels.previous)\n })\n // Right side breakpoint label\n .call(g => {\n const separator = d3\n ?.select('.dateSeparator')\n ?.node()\n ?.getBBox()\n\n if (!separator) return\n\n const breakpoint = buildTicks(x.domain()).filter(x => {\n if (period.code === 'day') return x.getUTCHours() === 0\n return x.getUTCDate() === 1\n })\n\n const labels = getPastAndCurrentDayLabels(breakpoint)\n\n return g\n .append('text')\n .attr('x', separator.x + 10)\n .attr('y', separator.y + 33)\n .attr('text-anchor', 'start')\n .attr('dy', '.25em')\n .text(labels.current)\n })\n },\n [\n GRAPH_MARGIN,\n buildTicks,\n getPastAndCurrentDayLabels,\n x,\n y,\n period,\n buildAreas,\n data,\n offset,\n setSelectionCoords,\n setSelectionData,\n setSelectionDateInterval\n ]\n )\n\n const formatTicksText = useCallback(\n () =>\n d3\n .selectAll('.tick text')\n .style('stroke', fontColor)\n .style('fill', fontColor)\n .style('stroke-width', 0.5)\n .style('font-family', fontSecondary),\n []\n )\n\n const formatText = useCallback(\n () =>\n d3\n .selectAll('text')\n .style('stroke', offColor)\n .style('fill', offColor)\n .style('stroke-width', 0.5)\n .style('font-family', fontSecondary),\n []\n )\n\n const formatTicks = useCallback(() => {\n d3.selectAll('.tick line')\n .style('stroke', primaryColor)\n .style('fill', primaryColor)\n }, [])\n\n const buildAvg = useCallback(\n g => {\n g.attr('stroke', primaryColor)\n .attr('stroke-width', 3)\n .attr('stroke-dasharray', '10, 5')\n .call(g =>\n g\n .append('line')\n .attr(\n 'y1',\n 0.5 + y(d3.mean(data, d => new BigNumber(d.fiat).toNumber()) ?? 0)\n )\n .attr(\n 'y2',\n 0.5 + y(d3.mean(data, d => new BigNumber(d.fiat).toNumber()) ?? 0)\n )\n .attr('x1', GRAPH_MARGIN.left)\n .attr('x2', GRAPH_WIDTH - GRAPH_MARGIN.right)\n )\n },\n [GRAPH_MARGIN, y, data]\n )\n\n const drawData = useCallback(\n g => {\n g.selectAll('circle')\n .data(data)\n .join('circle')\n .attr('cx', d => {\n const created = new Date(d.created)\n return x(created.setTime(created.getTime() + offset))\n })\n .attr('cy', d => y(new BigNumber(d.fiat).toNumber()))\n .attr('fill', d => (d.txClass === 'cashIn' ? java : neon))\n .attr('r', 3.5)\n },\n [data, offset, x, y]\n )\n\n const drawChart = useCallback(() => {\n const svg = d3\n .select(ref.current)\n .attr('viewBox', [0, 0, GRAPH_WIDTH, GRAPH_HEIGHT])\n\n svg.append('g').call(buildGrid)\n svg.append('g').call(buildAvg)\n svg.append('g').call(buildXAxis)\n svg.append('g').call(buildYAxis)\n svg.append('g').call(formatTicksText)\n svg.append('g').call(formatText)\n svg.append('g').call(formatTicks)\n svg.append('g').call(drawData)\n\n return svg.node()\n }, [\n buildAvg,\n buildGrid,\n buildXAxis,\n buildYAxis,\n drawData,\n formatText,\n formatTicks,\n formatTicksText\n ])\n\n useEffect(() => {\n d3.select(ref.current)\n .selectAll('*')\n .remove()\n drawChart()\n }, [drawChart])\n\n return \n}\n\nexport default memo(\n Graph,\n (prev, next) =>\n R.equals(prev.period, next.period) &&\n R.equals(prev.selectedMachine, next.selectedMachine)\n)\n","import BigNumber from 'bignumber.js'\nimport * as d3 from 'd3'\nimport * as R from 'ramda'\nimport React, { memo, useCallback, useEffect, useMemo, useRef } from 'react'\n\nimport {\n java,\n neon,\n subheaderDarkColor,\n fontColor,\n fontSecondary\n} from 'src/styling/variables'\n\nconst Graph = ({ data, machines, currency, selectedMachine }) => {\n const ref = useRef(null)\n\n const AMOUNT_OF_MACHINES = 5\n const BAR_PADDING = 0.15\n const BAR_MARGIN = 10\n const GRAPH_HEIGHT = 401\n const GRAPH_WIDTH = 1163\n const GRAPH_MARGIN = useMemo(\n () => ({\n top: 25,\n right: 0.5,\n bottom: 27,\n left: 36.5\n }),\n []\n )\n\n const machinesClone = R.clone(machines)\n\n // This ensures that the graph renders a minimum amount of machines\n // and avoids having a single bar for cases with one machine\n const filledMachines =\n R.length(machines) >= AMOUNT_OF_MACHINES\n ? machinesClone\n : R.map(it => {\n if (!R.isNil(machinesClone[it])) return machinesClone[it]\n return { code: `ghostMachine${it}`, display: `` }\n }, R.times(R.identity, AMOUNT_OF_MACHINES))\n\n const txByDevice = R.reduce(\n (acc, value) => {\n acc[value.code] = R.filter(it => it.deviceId === value.code, data)\n return acc\n },\n {},\n filledMachines\n )\n\n const getDeviceVolume = deviceId =>\n R.reduce(\n (acc, value) => acc + BigNumber(value.fiat).toNumber(),\n 0,\n txByDevice[deviceId]\n )\n\n const getDeviceVolumeByTxClass = deviceId =>\n R.reduce(\n (acc, value) => {\n if (value.txClass === 'cashIn')\n acc.cashIn += BigNumber(value.fiat).toNumber()\n if (value.txClass === 'cashOut')\n acc.cashOut += BigNumber(value.fiat).toNumber()\n return acc\n },\n { cashIn: 0, cashOut: 0 },\n txByDevice[deviceId]\n )\n\n const devicesByVolume = R.sort(\n (a, b) => b[1] - a[1],\n R.map(m => [m.code, getDeviceVolume(m.code)], filledMachines)\n )\n\n const topMachines = R.take(AMOUNT_OF_MACHINES, devicesByVolume)\n\n const txClassVolumeByDevice = R.fromPairs(\n R.map(v => [v[0], getDeviceVolumeByTxClass(v[0])], topMachines)\n )\n\n const x = d3\n .scaleBand()\n .domain(topMachines)\n .range([GRAPH_MARGIN.left, GRAPH_WIDTH - GRAPH_MARGIN.right])\n .paddingInner(BAR_PADDING)\n\n const y = d3\n .scaleLinear()\n .domain([\n 0,\n d3.max(topMachines, d => d[1]) !== 0 ? d3.max(topMachines, d => d[1]) : 50\n ])\n .range([GRAPH_HEIGHT - GRAPH_MARGIN.bottom, GRAPH_MARGIN.top])\n\n const buildXAxis = useCallback(\n g =>\n g\n .attr('class', 'x-axis-1')\n .attr(\n 'transform',\n `translate(0, ${GRAPH_HEIGHT - GRAPH_MARGIN.bottom})`\n )\n .call(\n d3\n .axisBottom(x)\n .tickFormat(\n d =>\n `${R.find(it => it.code === d[0], filledMachines).display ??\n ''}`\n )\n .tickSize(0)\n .tickPadding(10)\n ),\n [GRAPH_MARGIN, x, filledMachines]\n )\n\n const buildXAxis2 = useCallback(\n g => {\n g.attr('class', 'x-axis-2')\n .attr(\n 'transform',\n `translate(0, ${GRAPH_HEIGHT - GRAPH_MARGIN.bottom})`\n )\n .call(\n d3\n .axisBottom(x)\n .tickFormat(d =>\n R.includes(`ghostMachine`, d[0])\n ? ``\n : `${d[1].toFixed(2)} ${currency}`\n )\n .tickSize(0)\n .tickPadding(10)\n )\n },\n [GRAPH_MARGIN, x, currency]\n )\n\n const positionXAxisLabels = useCallback(() => {\n d3.selectAll('.x-axis-1 .tick text').attr('transform', function(d) {\n const widthPerEntry = (x.range()[1] - x.range()[0]) / AMOUNT_OF_MACHINES\n return `translate(${-widthPerEntry / 2.25 + this.getBBox().width / 2}, 0)`\n })\n }, [x])\n\n const positionXAxis2Labels = useCallback(() => {\n d3.selectAll('.x-axis-2 .tick text').attr('transform', function(d) {\n const widthPerEntry = (x.range()[1] - x.range()[0]) / AMOUNT_OF_MACHINES\n return `translate(${widthPerEntry / 2.25 - this.getBBox().width / 2}, 0)`\n })\n }, [x])\n\n const buildYAxis = useCallback(\n g =>\n g\n .attr('transform', `translate(${GRAPH_MARGIN.left}, 0)`)\n .call(\n d3\n .axisLeft(y)\n .ticks(GRAPH_HEIGHT / 100)\n .tickSize(0)\n .tickFormat(``)\n )\n .call(g => g.select('.domain').remove()),\n [GRAPH_MARGIN, y]\n )\n\n const formatTicksText = useCallback(\n () =>\n d3\n .selectAll('.tick text')\n .style('stroke', fontColor)\n .style('fill', fontColor)\n .style('stroke-width', 0.5)\n .style('font-family', fontSecondary),\n []\n )\n\n const buildGrid = useCallback(\n g => {\n g.attr('stroke', subheaderDarkColor)\n .attr('fill', subheaderDarkColor)\n // Vertical lines\n .call(g =>\n g\n .append('g')\n .selectAll('line')\n .data(R.tail(x.domain()))\n .join('line')\n .attr('x1', d => {\n const domainIndex = R.findIndex(it => R.equals(it, d), x.domain())\n\n const xValue =\n x(x.domain()[domainIndex]) - x(x.domain()[domainIndex - 1])\n\n const paddedXValue = xValue * (BAR_PADDING / 2)\n return 0.5 + x(d) - paddedXValue\n })\n .attr('x2', d => {\n const domainIndex = R.findIndex(it => R.equals(it, d), x.domain())\n\n const xValue =\n x(x.domain()[domainIndex]) - x(x.domain()[domainIndex - 1])\n\n const paddedXValue = xValue * (BAR_PADDING / 2)\n return 0.5 + x(d) - paddedXValue\n })\n .attr('y1', GRAPH_MARGIN.top)\n .attr('y2', GRAPH_HEIGHT - GRAPH_MARGIN.bottom)\n )\n },\n [GRAPH_MARGIN, x]\n )\n\n const drawCashIn = useCallback(\n g => {\n g.selectAll('rect')\n .data(R.toPairs(txClassVolumeByDevice))\n .join('rect')\n .attr('fill', java)\n .attr('x', d => x([d[0], d[1].cashIn + d[1].cashOut]))\n .attr('y', d => y(d[1].cashIn) - GRAPH_MARGIN.top + GRAPH_MARGIN.bottom)\n .attr('height', d =>\n R.clamp(\n 0,\n GRAPH_HEIGHT,\n GRAPH_HEIGHT - y(d[1].cashIn) - GRAPH_MARGIN.bottom - BAR_MARGIN\n )\n )\n .attr('width', x.bandwidth())\n .attr('rx', 2.5)\n },\n [txClassVolumeByDevice, x, y, GRAPH_MARGIN]\n )\n\n const drawCashOut = useCallback(\n g => {\n g.selectAll('rect')\n .data(R.toPairs(txClassVolumeByDevice))\n .join('rect')\n .attr('fill', neon)\n .attr('x', d => x([d[0], d[1].cashIn + d[1].cashOut]))\n .attr(\n 'y',\n d =>\n y(d[1].cashIn + d[1].cashOut) -\n GRAPH_MARGIN.top +\n GRAPH_MARGIN.bottom\n )\n .attr('height', d => {\n return R.clamp(\n 0,\n GRAPH_HEIGHT,\n GRAPH_HEIGHT -\n y(d[1].cashOut) -\n GRAPH_MARGIN.bottom -\n BAR_MARGIN / 2\n )\n })\n .attr('width', x.bandwidth())\n .attr('rx', 2.5)\n },\n [txClassVolumeByDevice, x, y, GRAPH_MARGIN]\n )\n\n const drawChart = useCallback(() => {\n const svg = d3\n .select(ref.current)\n .attr('viewBox', [0, 0, GRAPH_WIDTH, GRAPH_HEIGHT])\n\n svg.append('g').call(buildXAxis)\n svg.append('g').call(buildXAxis2)\n svg.append('g').call(buildYAxis)\n svg.append('g').call(formatTicksText)\n svg.append('g').call(buildGrid)\n svg.append('g').call(drawCashIn)\n svg.append('g').call(drawCashOut)\n svg.append('g').call(positionXAxisLabels)\n svg.append('g').call(positionXAxis2Labels)\n\n return svg.node()\n }, [\n buildXAxis,\n buildXAxis2,\n positionXAxisLabels,\n positionXAxis2Labels,\n buildYAxis,\n formatTicksText,\n buildGrid,\n drawCashIn,\n drawCashOut\n ])\n\n useEffect(() => {\n d3.select(ref.current)\n .selectAll('*')\n .remove()\n drawChart()\n }, [drawChart])\n\n return \n}\n\nexport default memo(\n Graph,\n (prev, next) =>\n R.equals(prev.period, next.period) &&\n R.equals(prev.selectedMachine, next.selectedMachine)\n)\n","import * as R from 'ramda'\nimport React, { memo, useState } from 'react'\n\nimport GraphTooltip from '../components/tooltips/GraphTooltip'\n\nimport HourOfDayBarGraph from './HourOfDayBarGraph'\nimport OverTimeDotGraph from './OverTimeDotGraph'\nimport TopMachinesBarGraph from './TopMachinesBarGraph'\n\nconst GraphWrapper = ({\n data,\n representing,\n period,\n timezone,\n currency,\n selectedMachine,\n machines,\n selectedDay\n}) => {\n const [selectionCoords, setSelectionCoords] = useState(null)\n const [selectionDateInterval, setSelectionDateInterval] = useState(null)\n const [selectionData, setSelectionData] = useState(null)\n\n const getGraph = representing => {\n switch (representing.code) {\n case 'overTime':\n return (\n \n )\n case 'topMachinesVolume':\n return (\n it.code !== 'all', machines)}\n currency={currency}\n />\n )\n case 'topMachinesTransactions':\n return (\n it.code !== 'all', machines)}\n currency={currency}\n />\n )\n case 'hourOfDayVolume':\n return (\n it.code !== 'all', machines)}\n currency={currency}\n selectedDay={selectedDay}\n />\n )\n case 'hourOfDayTransactions':\n return (\n it.code !== 'all', machines)}\n currency={currency}\n selectedDay={selectedDay}\n />\n )\n default:\n throw new Error(`There's no graph to represent ${representing}`)\n }\n }\n\n return (\n \n {!R.isNil(selectionCoords) && (\n \n )}\n {getGraph(representing)}\n
\n )\n}\n\nexport default memo(GraphWrapper)\n","import { Box } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { getTimezoneOffset } from 'date-fns-tz'\nimport { format, add, startOfWeek } from 'date-fns/fp'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { RadioGroup, Select } from 'src/components/inputs'\nimport { H2 } from 'src/components/typography'\nimport { MINUTE } from 'src/utils/time'\n\nimport styles from '../../Analytics.styles'\nimport Graph from '../../graphs/Graph'\nimport LegendEntry from '../LegendEntry'\n\nconst useStyles = makeStyles(styles)\n\nconst options = [\n { code: 'hourOfDayTransactions', display: 'Transactions' },\n { code: 'hourOfDayVolume', display: 'Volume' }\n]\n\nconst dayOptions = R.map(\n it => ({\n code: R.toLower(it),\n display: it\n }),\n Array.from(Array(7)).map((_, i) =>\n format('EEEE', add({ days: i }, startOfWeek(new Date())))\n )\n)\n\nconst HourOfDayBarGraphHeader = ({\n title,\n period,\n data,\n machines,\n selectedMachine,\n handleMachineChange,\n timezone,\n currency\n}) => {\n const classes = useStyles()\n\n const [graphType, setGraphType] = useState(options[0].code)\n const [selectedDay, setSelectedDay] = useState(dayOptions[0])\n\n const legend = {\n cashIn:
,\n cashOut:
\n }\n\n const offset = getTimezoneOffset(timezone)\n\n const txsPerWeekday = R.reduce(\n (acc, value) => {\n const created = new Date(value.created)\n created.setTime(\n created.getTime() + created.getTimezoneOffset() * MINUTE + offset\n )\n switch (created.getDay()) {\n case 0:\n acc.sunday.push(value)\n break\n case 1:\n acc.monday.push(value)\n break\n case 2:\n acc.tuesday.push(value)\n break\n case 3:\n acc.wednesday.push(value)\n break\n case 4:\n acc.thursday.push(value)\n break\n case 5:\n acc.friday.push(value)\n break\n case 6:\n acc.saturday.push(value)\n break\n default:\n throw new Error('Day of week not recognized')\n }\n return acc\n },\n R.fromPairs(R.map(it => [it.code, []], dayOptions)),\n data\n )\n\n return (\n <>\n \n
\n
{title} \n \n \n \n \n \n
\n setGraphType(e.target.value)}\n />\n \n \n
\n
\n it.code === graphType)(options)}\n period={period}\n data={txsPerWeekday[selectedDay.code]}\n timezone={timezone}\n currency={currency}\n selectedMachine={selectedMachine}\n machines={machines}\n selectedDay={selectedDay}\n />\n >\n )\n}\n\nexport default HourOfDayBarGraphHeader\n","import { Box } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React from 'react'\n\nimport { Select } from 'src/components/inputs'\nimport { H2 } from 'src/components/typography'\nimport { primaryColor } from 'src/styling/variables'\n\nimport styles from '../../Analytics.styles'\nimport Graph from '../../graphs/Graph'\nimport LegendEntry from '../LegendEntry'\n\nconst useStyles = makeStyles(styles)\n\nconst OverTimeDotGraphHeader = ({\n title,\n representing,\n period,\n data,\n machines,\n selectedMachine,\n handleMachineChange,\n timezone,\n currency\n}) => {\n const classes = useStyles()\n\n const legend = {\n cashIn:
,\n cashOut:
,\n transaction:
,\n average: (\n \n \n \n )\n }\n\n return (\n <>\n \n
\n
{title} \n \n \n \n \n \n \n \n
\n \n
\n
\n \n >\n )\n}\n\nexport default OverTimeDotGraphHeader\n","import { Box } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { RadioGroup } from 'src/components/inputs'\nimport { H2 } from 'src/components/typography'\n\nimport styles from '../../Analytics.styles'\nimport Graph from '../../graphs/Graph'\nimport LegendEntry from '../LegendEntry'\n\nconst useStyles = makeStyles(styles)\n\nconst options = [\n { code: 'topMachinesTransactions', display: 'Transactions' },\n { code: 'topMachinesVolume', display: 'Volume' }\n]\n\nconst TopMachinesBarGraphHeader = ({\n title,\n period,\n data,\n machines,\n selectedMachine,\n timezone,\n currency\n}) => {\n const classes = useStyles()\n\n const [graphType, setGraphType] = useState(options[0].code)\n\n const legend = {\n cashIn:
,\n cashOut:
\n }\n\n return (\n <>\n \n
\n
{title} \n \n \n \n \n \n
\n setGraphType(e.target.value)}\n />\n
\n
\n \n >\n )\n}\n\nexport default TopMachinesBarGraphHeader\n","import { useQuery } from '@apollo/react-hooks'\nimport { Box } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport { endOfToday } from 'date-fns'\nimport { subDays } from 'date-fns/fp'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { Select } from 'src/components/inputs'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport { Info2, P } from 'src/components/typography'\nimport { ReactComponent as DownIcon } from 'src/styling/icons/dashboard/down.svg'\nimport { ReactComponent as EqualIcon } from 'src/styling/icons/dashboard/equal.svg'\nimport { ReactComponent as UpIcon } from 'src/styling/icons/dashboard/up.svg'\nimport { fromNamespace } from 'src/utils/config'\nimport { numberToFiatAmount } from 'src/utils/number'\nimport { DAY, WEEK, MONTH } from 'src/utils/time'\n\nimport styles from './Analytics.styles'\nimport LegendEntry from './components/LegendEntry'\nimport HourOfDayWrapper from './components/wrappers/HourOfDayWrapper'\nimport OverTimeWrapper from './components/wrappers/OverTimeWrapper'\nimport TopMachinesWrapper from './components/wrappers/TopMachinesWrapper'\n\nconst useStyles = makeStyles(styles)\n\nconst MACHINE_OPTIONS = [{ code: 'all', display: 'All machines' }]\nconst REPRESENTING_OPTIONS = [\n { code: 'overTime', display: 'Over time' },\n { code: 'topMachines', display: 'Top Machines' },\n { code: 'hourOfTheDay', display: 'Hour of the day' }\n]\nconst PERIOD_OPTIONS = [\n { code: 'day', display: 'Last 24 hours' },\n { code: 'week', display: 'Last 7 days' },\n { code: 'month', display: 'Last 30 days' }\n]\nconst TIME_OPTIONS = {\n day: DAY,\n week: WEEK,\n month: MONTH\n}\n\nconst GET_TRANSACTIONS = gql`\n query transactions(\n $from: Date\n $until: Date\n $excludeTestingCustomers: Boolean\n ) {\n transactions(\n from: $from\n until: $until\n excludeTestingCustomers: $excludeTestingCustomers\n ) {\n id\n txClass\n txHash\n toAddress\n commissionPercentage\n expired\n machineName\n operatorCompleted\n sendConfirmed\n dispense\n hasError: error\n deviceId\n fiat\n cashInFee\n fiatCode\n cryptoAtoms\n cryptoCode\n toAddress\n created\n }\n }\n`\n\nconst GET_DATA = gql`\n query getData {\n config\n machines {\n name\n deviceId\n }\n fiatRates {\n code\n name\n rate\n }\n }\n`\n\nconst OverviewEntry = ({ label, value, oldValue, currency }) => {\n const classes = useStyles()\n\n const _oldValue = !oldValue || R.equals(oldValue, 0) ? 1 : oldValue\n const growthRate = ((value - oldValue) * 100) / _oldValue\n\n const growthClasses = {\n [classes.growthPercentage]: true,\n [classes.growth]: R.gt(value, oldValue),\n [classes.decline]: R.gt(oldValue, value)\n }\n\n return (\n \n
{label}
\n
\n {numberToFiatAmount(value)} \n {!!currency && ` ${currency}`}\n \n
\n {R.gt(growthRate, 0) && }\n {R.lt(growthRate, 0) && }\n {R.equals(growthRate, 0) && }\n \n {numberToFiatAmount(growthRate)}%\n
\n \n
\n )\n}\n\nconst Analytics = () => {\n const classes = useStyles()\n\n const { data: txResponse, loading: txLoading } = useQuery(GET_TRANSACTIONS, {\n variables: {\n from: subDays(65, endOfToday()),\n until: endOfToday(),\n excludeTestingCustomers: true\n }\n })\n const { data: configResponse, loading: configLoading } = useQuery(GET_DATA)\n\n const [representing, setRepresenting] = useState(REPRESENTING_OPTIONS[0])\n const [period, setPeriod] = useState(PERIOD_OPTIONS[0])\n const [machine, setMachine] = useState(MACHINE_OPTIONS[0])\n\n const loading = txLoading || configLoading\n\n const transactions = R.path(['transactions'])(txResponse) ?? []\n const machines = R.path(['machines'])(configResponse) ?? []\n const config = R.path(['config'])(configResponse) ?? []\n const rates = R.path(['fiatRates'])(configResponse) ?? []\n const fiatLocale = fromNamespace('locale')(config).fiatCurrency\n\n const timezone = config?.locale_timezone\n\n const convertFiatToLocale = item => {\n if (item.fiatCode === fiatLocale) return item\n const itemRate = R.find(R.propEq('code', item.fiatCode))(rates)\n const localeRate = R.find(R.propEq('code', fiatLocale))(rates)\n const multiplier = localeRate?.rate / itemRate?.rate\n return { ...item, fiat: parseFloat(item.fiat) * multiplier }\n }\n\n const data =\n R.map(convertFiatToLocale)(\n transactions?.filter(\n tx =>\n (!tx.dispensed || !tx.expired) && (tx.sendConfirmed || tx.dispense)\n )\n ) ?? []\n\n const machineOptions = R.clone(MACHINE_OPTIONS)\n\n R.forEach(\n m => machineOptions.push({ code: m.deviceId, display: m.name }),\n machines\n )\n\n const machineTxs = R.filter(\n tx => (machine.code === 'all' ? true : tx.deviceId === machine.code),\n data\n )\n\n const filteredData = timeInterval => ({\n current:\n machineTxs.filter(\n d => new Date(d.created) >= Date.now() - TIME_OPTIONS[timeInterval]\n ) ?? [],\n previous:\n machineTxs.filter(\n d =>\n new Date(d.created) < Date.now() - TIME_OPTIONS[timeInterval] &&\n new Date(d.created) >= Date.now() - 2 * TIME_OPTIONS[timeInterval]\n ) ?? []\n })\n\n const txs = {\n current: filteredData(period.code).current.length,\n previous: filteredData(period.code).previous.length\n }\n\n const avgAmount = {\n current:\n R.sum(R.map(d => d.fiat, filteredData(period.code).current)) /\n (txs.current === 0 ? 1 : txs.current),\n previous:\n R.sum(R.map(d => d.fiat, filteredData(period.code).previous)) /\n (txs.previous === 0 ? 1 : txs.previous)\n }\n\n const txVolume = {\n current: R.sum(R.map(d => d.fiat, filteredData(period.code).current)),\n previous: R.sum(R.map(d => d.fiat, filteredData(period.code).previous))\n }\n\n const commissions = {\n current: R.sum(\n R.map(\n d => d.fiat * d.commissionPercentage,\n filteredData(period.code).current\n )\n ),\n previous: R.sum(\n R.map(\n d => d.fiat * d.commissionPercentage,\n filteredData(period.code).previous\n )\n )\n }\n\n const getGraphInfo = representing => {\n switch (representing.code) {\n case 'overTime':\n return (\n \n )\n case 'topMachines':\n return (\n \n )\n case 'hourOfTheDay':\n return (\n \n )\n default:\n throw new Error(`There's no graph info to represent ${representing}`)\n }\n }\n\n return (\n !loading && (\n <>\n \n \n \n \n \n \n \n \n {getGraphInfo(representing)}\n >\n )\n )\n}\n\nexport default Analytics\n","import { spacer, white } from 'src/styling/variables'\nconst styles = {\n grid: {\n flex: 1,\n height: '100%'\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n marginLeft: spacer * 6\n },\n footer: {\n margin: [['auto', 0, spacer * 3, 'auto']]\n },\n modalTitle: {\n margin: [['auto', 0, 8.5, 'auto']]\n },\n subtitle: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n flexDirection: 'row'\n },\n white: {\n color: white\n },\n deleteButton: {\n paddingLeft: 13\n },\n addressRow: {\n marginLeft: 8\n },\n error: {\n marginTop: 20\n },\n closeButton: {\n display: 'flex',\n padding: [[spacer * 2, spacer * 2, 0, spacer * 2]],\n paddingRight: spacer * 1.5,\n justifyContent: 'end'\n },\n dialogTitle: {\n margin: [[0, spacer * 2, spacer, spacer * 4 + spacer]]\n },\n dialogContent: {\n width: 615,\n marginLeft: 16\n },\n dialogActions: {\n padding: spacer * 4,\n paddingTop: spacer * 2\n },\n cancelButton: {\n marginRight: 8,\n padding: 0\n }\n}\n\nexport default styles\n","import { Box } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { Formik, Form, Field } from 'formik'\nimport * as R from 'ramda'\nimport React from 'react'\nimport * as Yup from 'yup'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Modal from 'src/components/Modal'\nimport { Link } from 'src/components/buttons'\nimport { TextInput } from 'src/components/inputs/formik'\nimport { H3 } from 'src/components/typography'\n\nimport styles from './Blacklist.styles'\nconst useStyles = makeStyles(styles)\n\nconst BlackListModal = ({\n onClose,\n selectedCoin,\n addToBlacklist,\n errorMsg\n}) => {\n const classes = useStyles()\n const handleAddToBlacklist = address => {\n if (selectedCoin.code === 'BCH' && !address.startsWith('bitcoincash:')) {\n address = 'bitcoincash:' + address\n }\n addToBlacklist(selectedCoin.code, address)\n }\n const placeholderAddress = {\n BTC: '1ADwinnimZKGgQ3dpyfoUZvJh4p1UWSSpD',\n ETH: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F',\n LTC: 'LPKvbjwV1Kaksktzkr7TMK3FQtQEEe6Wqa',\n DASH: 'XqQ7gU8eM76rEfey726cJpT2RGKyJyBrcn',\n ZEC: 't1KGyyv24eL354C9gjveBGEe8Xz9UoPKvHR',\n BCH: 'qrd6za97wm03lfyg82w0c9vqgc727rhemg5yd9k3dm',\n USDT: '0x5754284f345afc66a98fbb0a0afe71e0f007b949',\n XMR:\n '888tNkZrPN6JsEgekjMnABU4TBzc2Dt29EPAvkRxbANsAnjyPbb3iQ1YBRk1UXcdRsiKc9dhwMVgN5S9cQUiyoogDavup3H'\n }\n\n return (\n \n {\n handleAddToBlacklist(address.trim())\n }}>\n \n \n \n \n \n Blacklist address\n \n \n
\n \n )\n}\n\nexport default BlackListModal\n","import { makeStyles, Box } from '@material-ui/core'\nimport classnames from 'classnames'\nimport * as R from 'ramda'\nimport React, { useState, useEffect } from 'react'\nimport {\n AutoSizer,\n List,\n CellMeasurer,\n CellMeasurerCache\n} from 'react-virtualized'\n\nimport {\n Table,\n TBody,\n THead,\n Tr,\n Td,\n Th\n} from 'src/components/fake-table/Table'\nimport { EmptyTable } from 'src/components/table'\nimport { H4 } from 'src/components/typography'\nimport { ReactComponent as ExpandClosedIcon } from 'src/styling/icons/action/expand/closed.svg'\nimport { ReactComponent as ExpandOpenIcon } from 'src/styling/icons/action/expand/open.svg'\n\nimport styles from './DataTable.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst Row = ({\n id,\n index,\n elements,\n data,\n width,\n Details,\n expanded,\n expandRow,\n expWidth,\n expandable,\n onClick,\n size,\n ...props\n}) => {\n const classes = useStyles()\n\n const hasPointer = onClick || expandable\n const trClasses = {\n [classes.pointer]: hasPointer,\n [classes.row]: true,\n [classes.expanded]: expanded\n }\n\n return (\n \n
\n
{\n expandable && expandRow(id, data)\n onClick && onClick(data)\n }}\n error={data.error || data.hasError || data.batchError}\n shouldShowError={false}\n errorMessage={data.errorMessage || data.hasError || data.batchError}>\n {elements.map(({ view = it => it?.toString(), ...props }, idx) => (\n \n {view(data)}\n \n ))}\n {expandable && (\n \n expandRow(id, data)}\n className={classes.expandButton}>\n {expanded && }\n {!expanded && }\n \n \n )}\n \n \n {expandable && expanded && (\n
\n
\n \n \n \n \n \n )}\n
\n )\n}\n\nconst DataTable = ({\n elements = [],\n data = [],\n Details,\n className,\n expandable,\n initialExpanded,\n onClick,\n loading,\n emptyText,\n rowSize,\n ...props\n}) => {\n const [expanded, setExpanded] = useState(initialExpanded)\n\n useEffect(() => setExpanded(initialExpanded), [initialExpanded])\n\n const coreWidth = R.compose(R.sum, R.map(R.prop('width')))(elements)\n const expWidth = 1200 - coreWidth\n const width = coreWidth + (expandable ? expWidth : 0)\n\n const classes = useStyles({ width })\n\n const expandRow = (id, data) => {\n if (data.id) {\n cache.clear(data.id)\n setExpanded(data.id === expanded ? null : data.id)\n } else {\n cache.clear(id)\n setExpanded(id === expanded ? null : id)\n }\n }\n\n const cache = new CellMeasurerCache({\n defaultHeight: 58,\n fixedWidth: true\n })\n\n function rowRenderer({ index, key, parent, style }) {\n return (\n \n {({ registerChild }) => (\n \n
\n
\n )}\n \n )\n }\n\n return (\n \n \n \n {elements.map(({ width, className, textAlign, header }, idx) => (\n \n {header}\n \n ))}\n {expandable && }\n \n \n {loading && Loading... }\n {!loading && R.isEmpty(data) && }\n {!loading && !R.isEmpty(data) && (\n \n {({ height }) => (\n
\n )}\n \n )}\n \n
\n \n )\n}\n\nexport default DataTable\n","import { makeStyles } from '@material-ui/core/styles'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { DeleteDialog } from 'src/components/DeleteDialog'\nimport { IconButton } from 'src/components/buttons'\nimport DataTable from 'src/components/tables/DataTable'\nimport { Label1 } from 'src/components/typography'\nimport CopyToClipboard from 'src/pages/Transactions/CopyToClipboard'\nimport { ReactComponent as DeleteIcon } from 'src/styling/icons/action/delete/enabled.svg'\n\nimport styles from './Blacklist.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst BlacklistTable = ({\n data,\n selectedCoin,\n handleDeleteEntry,\n errorMessage,\n setErrorMessage,\n deleteDialog,\n setDeleteDialog\n}) => {\n const classes = useStyles()\n\n const [toBeDeleted, setToBeDeleted] = useState()\n\n const elements = [\n {\n name: 'address',\n header: {'Addresses'} ,\n width: 800,\n textAlign: 'left',\n size: 'sm',\n view: it => (\n \n {R.path(['address'], it)} \n
\n )\n },\n {\n name: 'deleteButton',\n header: {'Delete'} ,\n width: 130,\n textAlign: 'center',\n size: 'sm',\n view: it => (\n {\n setDeleteDialog(true)\n setToBeDeleted(it)\n }}>\n \n \n )\n }\n ]\n const dataToShow = selectedCoin\n ? data[selectedCoin.code]\n : data[R.keys(data)[0]]\n\n return (\n <>\n \n {\n setDeleteDialog(false)\n setErrorMessage(null)\n }}\n onConfirmed={() => {\n setErrorMessage(null)\n handleDeleteEntry(\n R.path(['cryptoCode'], toBeDeleted),\n R.path(['address'], toBeDeleted)\n )\n }}\n errorMessage={errorMessage}\n />\n >\n )\n}\n\nexport default BlacklistTable\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { Box, Dialog, DialogContent, DialogActions } from '@material-ui/core'\nimport Grid from '@material-ui/core/Grid'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport { utils as coinUtils } from '@lamassu/coins'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { HoverableTooltip } from 'src/components/Tooltip'\nimport { Link, Button, IconButton } from 'src/components/buttons'\nimport { Switch } from 'src/components/inputs'\nimport Sidebar from 'src/components/layout/Sidebar'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport { H4, H2, Label2, P, Info3, Info2 } from 'src/components/typography'\nimport { ReactComponent as CloseIcon } from 'src/styling/icons/action/close/zodiac.svg'\nimport { fromNamespace, toNamespace } from 'src/utils/config'\n\nimport styles from './Blacklist.styles'\nimport BlackListModal from './BlacklistModal'\nimport BlacklistTable from './BlacklistTable'\n\nconst useStyles = makeStyles(styles)\n\nconst groupByCode = R.groupBy(obj => obj.cryptoCode)\n\nconst DELETE_ROW = gql`\n mutation DeleteBlacklistRow($cryptoCode: String!, $address: String!) {\n deleteBlacklistRow(cryptoCode: $cryptoCode, address: $address) {\n cryptoCode\n address\n }\n }\n`\n\nconst GET_BLACKLIST = gql`\n query getBlacklistData {\n blacklist {\n cryptoCode\n address\n }\n cryptoCurrencies {\n display\n code\n }\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst GET_INFO = gql`\n query getData {\n config\n }\n`\n\nconst ADD_ROW = gql`\n mutation InsertBlacklistRow($cryptoCode: String!, $address: String!) {\n insertBlacklistRow(cryptoCode: $cryptoCode, address: $address) {\n cryptoCode\n address\n }\n }\n`\n\nconst PaperWalletDialog = ({ onConfirmed, onDissmised, open, props }) => {\n const classes = useStyles()\n\n return (\n \n \n \n \n \n
\n \n {'Are you sure you want to enable this?'}\n \n \n {`This mode means that only paper wallets will be printed for users, and they won't be permitted to scan an address from their own wallet.`} \n {`This mode is only useful for countries like Switzerland which mandates such a feature.\\n`} \n {`Don't enable this if you want users to be able to scan an address of their choosing.`} \n \n \n onDissmised()}>\n Cancel\n \n onConfirmed(true)}>Confirm \n \n \n )\n}\n\nconst Blacklist = () => {\n const { data: blacklistResponse } = useQuery(GET_BLACKLIST)\n const { data: configData } = useQuery(GET_INFO)\n const [showModal, setShowModal] = useState(false)\n const [clickedItem, setClickedItem] = useState({\n code: 'BTC',\n display: 'Bitcoin'\n })\n const [errorMsg, setErrorMsg] = useState(null)\n const [deleteDialog, setDeleteDialog] = useState(false)\n const [confirmDialog, setConfirmDialog] = useState(false)\n\n const [deleteEntry] = useMutation(DELETE_ROW, {\n onError: ({ message }) => {\n const errorMessage = message ?? 'Error while deleting row'\n setErrorMsg(errorMessage)\n },\n onCompleted: () => setDeleteDialog(false),\n refetchQueries: () => ['getBlacklistData']\n })\n\n const [addEntry] = useMutation(ADD_ROW, {\n onError: () => console.log('Error while adding row'),\n refetchQueries: () => ['getBlacklistData']\n })\n\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n refetchQueries: () => ['getData']\n })\n\n const classes = useStyles()\n\n const blacklistData = R.path(['blacklist'])(blacklistResponse) ?? []\n const availableCurrencies =\n R.path(['cryptoCurrencies'], blacklistResponse) ?? []\n\n const formattedData = groupByCode(blacklistData)\n\n const complianceConfig =\n configData?.config && fromNamespace('compliance')(configData.config)\n\n const rejectAddressReuse = !!complianceConfig?.rejectAddressReuse\n\n const enablePaperWalletOnly = !!complianceConfig?.enablePaperWalletOnly\n\n const addressReuseSave = rawConfig => {\n const config = toNamespace('compliance')(rawConfig)\n return saveConfig({ variables: { config } })\n }\n\n const onClickSidebarItem = e => {\n setClickedItem({ code: e.code, display: e.display })\n }\n\n const handleDeleteEntry = (cryptoCode, address) => {\n deleteEntry({ variables: { cryptoCode, address } })\n }\n\n const handleConfirmDialog = confirm => {\n addressReuseSave({\n enablePaperWalletOnly: confirm\n })\n setConfirmDialog(false)\n }\n\n const validateAddress = (cryptoCode, address) => {\n try {\n return !R.isNil(coinUtils.parseUrl(cryptoCode, 'main', address))\n } catch {\n return false\n }\n }\n\n const addToBlacklist = async (cryptoCode, address) => {\n setErrorMsg(null)\n if (!validateAddress(cryptoCode, address)) {\n setErrorMsg('Invalid address')\n return\n }\n const res = await addEntry({ variables: { cryptoCode, address } })\n if (!res.errors) {\n return setShowModal(false)\n }\n const duplicateKeyError = res.errors.some(e => {\n return e.message.includes('duplicate')\n })\n if (duplicateKeyError) {\n setErrorMsg('This address is already being blocked')\n } else {\n setErrorMsg('Server error')\n }\n }\n\n return (\n <>\n {\n setConfirmDialog(false)\n }}\n />\n \n \n setShowModal(true)}>\n Blacklist new addresses\n \n \n \n \n it.display}\n onClick={onClickSidebarItem}\n />\n \n
\n \n {clickedItem.display\n ? `${clickedItem.display} blacklisted addresses`\n : ''}{' '}\n \n \n Enable paper wallet (only)
\n \n enablePaperWalletOnly\n ? addressReuseSave({\n enablePaperWalletOnly: e.target.checked\n })\n : setConfirmDialog(true)\n }\n value={enablePaperWalletOnly}\n />\n {enablePaperWalletOnly ? 'On' : 'Off'} \n \n \n The \"Enable paper wallet (only)\" option means that only paper\n wallets will be printed for users, and they won't be permitted\n to scan an address from their own wallet.\n
\n \n \n \n Reject reused addresses
\n {\n addressReuseSave({ rejectAddressReuse: event.target.checked })\n }}\n value={rejectAddressReuse}\n />\n {rejectAddressReuse ? 'On' : 'Off'} \n \n \n The \"Reject reused addresses\" option means that all addresses\n that are used once will be automatically rejected if there's\n an attempt to use them again on a new transaction.\n
\n \n \n \n
\n
\n \n {showModal && (\n {\n setErrorMsg(null)\n setShowModal(false)\n }}\n errorMsg={errorMsg}\n selectedCoin={clickedItem}\n addToBlacklist={addToBlacklist}\n />\n )}\n >\n )\n}\n\nexport default Blacklist\n","import Blacklist from './Blacklist'\n\nexport default Blacklist\n","import { makeStyles } from '@material-ui/core'\nimport React from 'react'\n\nimport { Button } from 'src/components/buttons'\nimport { H1, P, Info2 } from 'src/components/typography'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport { neon, spacer } from 'src/styling/variables'\n\nconst styles = {\n logo: {\n maxHeight: 80,\n maxWidth: 200\n },\n subtitle: {\n margin: 0,\n marginBottom: 42,\n textAlign: 'center'\n },\n text: {\n margin: 0\n },\n button: {\n margin: [[0, 'auto']]\n },\n modalContent: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n flex: 1,\n padding: [[0, 34, 107, 34]]\n },\n innerContent: {\n paddingBottom: 72\n },\n title: {\n color: neon,\n marginBottom: 12,\n marginTop: 30,\n textAlign: 'center'\n },\n titleDecorator: {\n verticalAlign: 'bottom',\n marginRight: spacer * 1.5,\n width: spacer * 3,\n height: spacer * 3.25\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst WizardSplash = ({ name, onContinue }) => {\n const classes = useStyles()\n\n return (\n \n
\n
\n \n Enable cash-out \n \n
{name} \n
\n You are about to activate cash-out functionality on your {name}{' '}\n machine which will allow your customers to sell crypto to you.\n
\n
\n In order to activate cash-out for this machine, please enter the\n denominations for the machine.\n
\n
\n
\n Start configuration\n \n
\n )\n}\n\nexport default WizardSplash\n","export default __webpack_public_path__ + \"static/media/cashout-cassette-1.fac6c691.svg\";","export default __webpack_public_path__ + \"static/media/cashout-cassette-2.34a98cfa.svg\";","import { errorColor, spacer } from 'src/styling/variables'\n\nconst LABEL_WIDTH = 150\n\nexport default {\n title: {\n margin: [[0, 0, 12, 0]]\n },\n titleDiv: {\n paddingBottom: 32\n },\n subtitle: {\n margin: [[32, 0, 21, 0]]\n },\n edit: {\n margin: [[0, 0, 0, 0]]\n },\n error: {\n color: errorColor\n },\n bill: {\n width: 131,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'end'\n },\n billInput: {\n width: '100%'\n },\n suffix: {\n paddingLeft: spacer * 2\n },\n button: {\n marginLeft: 'auto'\n },\n submit: {\n float: 'right'\n },\n picker: {\n width: LABEL_WIDTH\n },\n header: {\n display: 'flex',\n marginBottom: 95\n },\n thirdStepHeader: {\n display: 'flex',\n paddingBottom: 188\n },\n step: {\n flex: 1\n },\n stepImage: {\n position: 'relative',\n top: -20,\n right: 14\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n flex: 1,\n paddingBottom: 32\n },\n disclaimer: {\n display: 'flex',\n flex: 1,\n flexDirection: 'column',\n justifyContent: 'space-between'\n },\n disclaimerIcon: {\n float: 'left',\n margin: [[-4, 16, 48, 0]]\n }\n}\n","import { makeStyles } from '@material-ui/core'\nimport { Formik, Form, Field } from 'formik'\nimport React from 'react'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Stepper from 'src/components/Stepper'\nimport { Button } from 'src/components/buttons'\nimport { NumberInput } from 'src/components/inputs/formik'\nimport { Info2, H4, P, Info1, Label1 } from 'src/components/typography'\nimport cassetteOne from 'src/styling/icons/cassettes/cashout-cassette-1.svg'\nimport cassetteTwo from 'src/styling/icons/cassettes/cashout-cassette-2.svg'\nimport tejo3CassetteOne from 'src/styling/icons/cassettes/tejo/3-cassettes/3-cassettes-open-1-left.svg'\nimport tejo3CassetteTwo from 'src/styling/icons/cassettes/tejo/3-cassettes/3-cassettes-open-2-left.svg'\nimport tejo3CassetteThree from 'src/styling/icons/cassettes/tejo/3-cassettes/3-cassettes-open-3-left.svg'\nimport tejo4CassetteOne from 'src/styling/icons/cassettes/tejo/4-cassettes/4-cassettes-open-1-left.svg'\nimport tejo4CassetteTwo from 'src/styling/icons/cassettes/tejo/4-cassettes/4-cassettes-open-2-left.svg'\nimport tejo4CassetteThree from 'src/styling/icons/cassettes/tejo/4-cassettes/4-cassettes-open-3-left.svg'\nimport tejo4CassetteFour from 'src/styling/icons/cassettes/tejo/4-cassettes/4-cassettes-open-4-left.svg'\nimport { ReactComponent as WarningIcon } from 'src/styling/icons/warning-icon/comet.svg'\n\nimport styles from './WizardStep.styles'\nconst useStyles = makeStyles(styles)\n\nconst getCassetesArtworks = () => ({\n 2: {\n 1: cassetteOne,\n 2: cassetteTwo\n },\n 3: {\n 1: tejo3CassetteOne,\n 2: tejo3CassetteTwo,\n 3: tejo3CassetteThree\n },\n 4: {\n 1: tejo4CassetteOne,\n 2: tejo4CassetteTwo,\n 3: tejo4CassetteThree,\n 4: tejo4CassetteFour\n }\n})\n\nconst WizardStep = ({\n name,\n step,\n schema,\n error,\n lastStep,\n onContinue,\n steps,\n fiatCurrency,\n options,\n numberOfCassettes\n}) => {\n const classes = useStyles()\n\n const label = lastStep ? 'Finish' : 'Next'\n\n return (\n <>\n \n {name} \n \n
\n\n {step <= numberOfCassettes && (\n \n \n \n )}\n\n {step === numberOfCassettes + 1 && (\n \n \n \n )}\n\n {lastStep && (\n \n
Cash Cassette Bill Count \n
\n \n When enabling cash-out, your bill count will be automatically set to\n zero. Make sure you physically put cash inside the cash cassettes to\n allow the machine to dispense it to your users. If you already did,\n make sure you set the correct cash cassette bill count for this\n machine on your Cash Boxes & Cassettes tab under Maintenance.\n
\n\n
Default Commissions \n
\n \n When enabling cash-out, default commissions will be set. To change\n commissions for this machine, please go to the Commissions tab under\n Settings where you can set exceptions for each of the available\n cryptocurrencies.\n
\n
\n {error && Failed to save }\n onContinue()}>\n {label}\n \n
\n
\n )}\n >\n )\n}\n\nexport default WizardStep\n","import * as R from 'ramda'\nimport * as Yup from 'yup'\n\nimport { Autocomplete, NumberInput } from 'src/components/inputs/formik'\nimport { bold } from 'src/styling/helpers'\nimport denominations from 'src/utils/bill-denominations'\nimport { getBillOptions } from 'src/utils/bill-options'\nimport { CURRENCY_MAX } from 'src/utils/constants'\nimport { transformNumber } from 'src/utils/number'\n\nconst widthsByNumberOfCassettes = {\n 2: { machine: 300, cassette: 225, zeroConf: 200 },\n 3: { machine: 210, cassette: 180, zeroConf: 200 },\n 4: { machine: 200, cassette: 150, zeroConf: 150 }\n}\n\nconst DenominationsSchema = Yup.object().shape({\n cassette1: Yup.number()\n .label('Cassette 1')\n .required()\n .min(1)\n .max(CURRENCY_MAX),\n cassette2: Yup.number()\n .label('Cassette 2')\n .required()\n .min(1)\n .max(CURRENCY_MAX),\n cassette3: Yup.number()\n .label('Cassette 3')\n .min(1)\n .max(CURRENCY_MAX)\n .nullable()\n .transform(transformNumber),\n cassette4: Yup.number()\n .label('Cassette 4')\n .min(1)\n .max(CURRENCY_MAX)\n .nullable()\n .transform(transformNumber)\n})\n\nconst getElements = (machines, locale = {}, classes) => {\n const fiatCurrency = R.prop('fiatCurrency')(locale)\n const maxNumberOfCassettes = Math.max(\n ...R.map(it => it.numberOfCassettes, machines),\n 0\n )\n\n const options = getBillOptions(locale, denominations)\n const cassetteProps =\n options?.length > 0\n ? {\n options: options,\n labelProp: 'display',\n valueProp: 'code',\n className: classes.autoComplete\n }\n : { decimalPlaces: 0 }\n\n const elements = [\n {\n name: 'id',\n header: 'Machine',\n width: widthsByNumberOfCassettes[maxNumberOfCassettes]?.machine,\n view: it => machines.find(({ deviceId }) => deviceId === it).name,\n size: 'sm',\n editable: false\n }\n ]\n\n R.until(\n R.gt(R.__, maxNumberOfCassettes),\n it => {\n elements.push({\n name: `cassette${it}`,\n header: `Cassette ${it}`,\n size: 'sm',\n stripe: true,\n textAlign: 'right',\n width: widthsByNumberOfCassettes[maxNumberOfCassettes]?.cassette,\n suffix: fiatCurrency,\n bold: bold,\n view: it => it,\n input: options?.length > 0 ? Autocomplete : NumberInput,\n inputProps: cassetteProps,\n doubleHeader: 'Denominations',\n isHidden: machine =>\n it >\n machines.find(({ deviceId }) => deviceId === machine.id)\n .numberOfCassettes\n })\n return R.add(1, it)\n },\n 1\n )\n\n return elements\n}\n\nexport { DenominationsSchema, getElements }\n","import * as R from 'ramda'\nimport React, { useState } from 'react'\nimport * as Yup from 'yup'\n\nimport Modal from 'src/components/Modal'\nimport { Autocomplete } from 'src/components/inputs/formik'\nimport denominations from 'src/utils/bill-denominations'\nimport { getBillOptions } from 'src/utils/bill-options'\nimport { toNamespace } from 'src/utils/config'\nimport { transformNumber } from 'src/utils/number'\n\nimport WizardSplash from './WizardSplash'\nimport WizardStep from './WizardStep'\nimport { DenominationsSchema } from './helper'\n\nconst MODAL_WIDTH = 554\nconst MODAL_HEIGHT = 520\n\nconst Wizard = ({ machine, locale, onClose, save, error }) => {\n const LAST_STEP = machine.numberOfCassettes + 2\n const [{ step, config }, setState] = useState({\n step: 0,\n config: { active: true }\n })\n\n const options = getBillOptions(locale, denominations)\n\n const title = `Enable cash-out`\n const isLastStep = step === LAST_STEP\n\n const onContinue = async it => {\n if (isLastStep) {\n return save(\n toNamespace(\n machine.deviceId,\n DenominationsSchema.cast(config, { assert: false })\n )\n )\n }\n\n const newConfig = R.merge(config, it)\n\n setState({\n step: step + 1,\n config: newConfig\n })\n }\n\n const steps = []\n\n R.until(\n R.gt(R.__, machine.numberOfCassettes),\n it => {\n steps.push({\n type: `cassette${it}`,\n display: `Cassette ${it}`,\n component: Autocomplete,\n inputProps: {\n options: R.map(it => ({ code: it, display: it }))(options),\n labelProp: 'display',\n valueProp: 'code'\n }\n })\n return R.add(1, it)\n },\n 1\n )\n\n steps.push({\n type: 'zeroConfLimit',\n display: '0-conf Limit',\n schema: Yup.object().shape({\n zeroConfLimit: Yup.number().required()\n })\n })\n\n const schema = () =>\n Yup.object().shape({\n cassette1: Yup.number().required(),\n cassette2:\n machine.numberOfCassettes > 1 && step >= 2\n ? Yup.number().required()\n : Yup.number()\n .transform(transformNumber)\n .nullable(),\n cassette3:\n machine.numberOfCassettes > 2 && step >= 3\n ? Yup.number().required()\n : Yup.number()\n .transform(transformNumber)\n .nullable(),\n cassette4:\n machine.numberOfCassettes > 3 && step >= 4\n ? Yup.number().required()\n : Yup.number()\n .transform(transformNumber)\n .nullable()\n })\n\n return (\n \n {step === 0 && (\n onContinue()} />\n )}\n {step !== 0 && (\n \n )}\n \n )\n}\n\nexport default Wizard\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { HoverableTooltip } from 'src/components/Tooltip'\nimport { NamespacedTable as EditableTable } from 'src/components/editableTable'\nimport { Switch } from 'src/components/inputs'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport { EmptyTable } from 'src/components/table'\nimport { P, Label2 } from 'src/components/typography'\nimport { fromNamespace, toNamespace } from 'src/utils/config'\n\nimport Wizard from './Wizard'\nimport { DenominationsSchema, getElements } from './helper'\n\nconst useStyles = makeStyles({\n fudgeFactor: {\n display: 'flex',\n alignItems: 'center'\n },\n switchLabel: {\n margin: 6,\n width: 24\n },\n autoComplete: {\n width: '100%'\n }\n})\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst GET_INFO = gql`\n query getData {\n machines {\n name\n deviceId\n cashbox\n cassette1\n cassette2\n cassette3\n cassette4\n numberOfCassettes\n }\n config\n }\n`\n\nconst CashOut = ({ name: SCREEN_KEY }) => {\n const classes = useStyles()\n const [wizard, setWizard] = useState(false)\n const { data, loading } = useQuery(GET_INFO)\n\n const [saveConfig, { error }] = useMutation(SAVE_CONFIG, {\n onCompleted: () => setWizard(false),\n refetchQueries: () => ['getData']\n })\n\n const save = (rawConfig, accounts) => {\n const config = toNamespace(SCREEN_KEY)(rawConfig)\n return saveConfig({ variables: { config, accounts } })\n }\n\n const config = data?.config && fromNamespace(SCREEN_KEY)(data.config)\n\n const fudgeFactorActive = config?.fudgeFactorActive ?? false\n const locale = data?.config && fromNamespace('locale')(data.config)\n const machines = data?.machines ?? []\n\n const onToggle = id => {\n const namespaced = fromNamespace(id)(config)\n if (!DenominationsSchema.isValidSync(namespaced)) return setWizard(id)\n save(toNamespace(id, { active: !namespaced?.active }))\n }\n\n const wasNeverEnabled = it => R.compose(R.length, R.keys)(it) === 1\n\n return (\n !loading && (\n <>\n \n \n
Transaction fudge factor
\n
{\n save({ fudgeFactorActive: event.target.checked })\n }}\n value={fudgeFactorActive}\n />\n \n {fudgeFactorActive ? 'On' : 'Off'}\n \n \n \n Automatically accept customer deposits as complete if their\n received amount is 100 crypto atoms or less.\n
\n \n (Crypto atoms are the smallest unit in each cryptocurrency.\n E.g., satoshis in Bitcoin, or wei in Ethereum.)\n
\n \n \n \n \n {R.isEmpty(machines) && }\n {wizard && (\n setWizard(false)}\n save={save}\n error={error?.message}\n locale={locale}\n />\n )}\n >\n )\n )\n}\n\nexport default CashOut\n","import Cashout from './Cashout'\n\nexport default Cashout\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/listing/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 1,\n x2: 20,\n y2: 1,\n id: \"Path-4\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 7,\n x2: 9,\n y2: 7,\n id: \"Path-4-Copy\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 13,\n x2: 20,\n y2: 13,\n id: \"Path-4-Copy-2\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 19,\n x2: 12,\n y2: 19,\n id: \"Path-4-Copy-3\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.20ca66ec.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/listing/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 1,\n x2: 20,\n y2: 1,\n id: \"Path-4\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 7,\n x2: 9,\n y2: 7,\n id: \"Path-4-Copy\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 13,\n x2: 20,\n y2: 13,\n id: \"Path-4-Copy-2\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 19,\n x2: 12,\n y2: 19,\n id: \"Path-4-Copy-3\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.e161cf6b.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 12,\n height: 12,\n rx: 3,\n ry: 3,\n fill: \"#44e188\"\n});\n\nfunction SvgSpring2(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 12,\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSpring2);\nexport default __webpack_public_path__ + \"static/media/spring2.9f3bb2f7.svg\";\nexport { ForwardRef as ReactComponent };","import * as R from 'ramda'\nimport React, { useState, memo } from 'react'\n\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport Section from 'src/components/layout/Section'\nimport {\n mainFields,\n overrides,\n getSchema,\n getOverridesSchema,\n defaults,\n overridesDefaults,\n getOrder\n} from 'src/pages/Commissions/helper'\n\nconst CommissionsDetails = memo(\n ({ config, locale, currency, data, error, save, saveOverrides }) => {\n const [isEditingDefault, setEditingDefault] = useState(false)\n const [isEditingOverrides, setEditingOverrides] = useState(false)\n\n const commission = config && !R.isEmpty(config) ? config : defaults\n const commissionOverrides = commission?.overrides ?? []\n\n const orderedCommissionsOverrides = R.sortWith([\n R.ascend(getOrder),\n R.ascend(R.prop('machine'))\n ])(commissionOverrides)\n\n const onEditingDefault = (it, editing) => setEditingDefault(editing)\n const onEditingOverrides = (it, editing) => setEditingOverrides(editing)\n\n return (\n <>\n \n \n >\n )\n }\n)\n\nexport default CommissionsDetails\n","import { makeStyles } from '@material-ui/core'\nimport * as R from 'ramda'\nimport React, { memo, useState } from 'react'\n\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport { Select } from 'src/components/inputs'\nimport {\n overridesDefaults,\n getCommissions,\n getListCommissionsSchema,\n commissionsList\n} from 'src/pages/Commissions/helper'\n\nconst styles = {\n headerLine: {\n display: 'flex',\n justifyContent: '',\n marginBottom: 24\n },\n select: {\n marginRight: 24\n },\n tableWrapper: {\n flex: 1,\n display: 'block',\n overflowY: 'auto',\n width: '100%',\n maxHeight: '70vh'\n }\n}\n\nconst SHOW_ALL = {\n code: 'SHOW_ALL',\n display: 'Show all'\n}\n\nconst ORDER_OPTIONS = [\n {\n code: 'machine',\n display: 'Machine Name'\n },\n {\n code: 'cryptoCurrencies',\n display: 'Cryptocurrency'\n },\n {\n code: 'cashIn',\n display: 'Cash-in'\n },\n {\n code: 'cashOut',\n display: 'Cash-out'\n },\n {\n code: 'fixedFee',\n display: 'Fixed Fee'\n },\n {\n code: 'minimumTx',\n display: 'Minimum Tx'\n }\n]\n\nconst useStyles = makeStyles(styles)\n\nconst getElement = (code, display) => ({\n code: code,\n display: display || code\n})\n\nconst sortCommissionsBy = prop => {\n switch (prop) {\n case ORDER_OPTIONS[0]:\n return R.sortBy(R.find(R.propEq('code', R.prop('machine'))))\n case ORDER_OPTIONS[1]:\n return R.sortBy(R.path(['cryptoCurrencies', 0]))\n default:\n return R.sortBy(R.prop(prop.code))\n }\n}\n\nconst filterCommissions = (coinFilter, machineFilter) =>\n R.compose(\n R.filter(\n it => (machineFilter === SHOW_ALL) | (machineFilter.code === it.machine)\n ),\n R.filter(\n it =>\n (coinFilter === SHOW_ALL) | (coinFilter.code === it.cryptoCurrencies[0])\n )\n )\n\nconst CommissionsList = memo(\n ({ config, localeConfig, currency, data, error, saveOverrides }) => {\n const classes = useStyles()\n\n const [machineFilter, setMachineFilter] = useState(SHOW_ALL)\n const [coinFilter, setCoinFilter] = useState(SHOW_ALL)\n const [orderProp, setOrderProp] = useState(ORDER_OPTIONS[0])\n\n const coins = R.prop('cryptoCurrencies', localeConfig) ?? []\n\n const getMachineCoins = deviceId => {\n const override = R.prop('overrides', localeConfig)?.find(\n R.propEq('machine', deviceId)\n )\n\n const machineCoins = override\n ? R.prop('cryptoCurrencies', override)\n : coins\n\n return R.xprod([deviceId], machineCoins)\n }\n\n const getMachineElement = it =>\n getElement(R.prop('deviceId', it), R.prop('name', it))\n\n const cryptoData = R.map(getElement)(coins)\n\n const machineData = R.sortBy(\n R.prop('display'),\n R.map(getMachineElement)(R.prop('machines', data))\n )\n\n const machinesCoinsTuples = R.unnest(\n R.map(getMachineCoins)(machineData.map(R.prop('code')))\n )\n\n const commissions = R.map(([deviceId, cryptoCode]) =>\n getCommissions(cryptoCode, deviceId, config)\n )(machinesCoinsTuples)\n\n const tableData = R.compose(\n sortCommissionsBy(orderProp),\n filterCommissions(coinFilter, machineFilter)\n )(commissions)\n\n return (\n \n
\n \n \n \n
\n
\n \n
\n
\n )\n }\n)\n\nexport default CommissionsList\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport TitleSection from 'src/components/layout/TitleSection'\nimport { ReactComponent as ReverseListingViewIcon } from 'src/styling/icons/circle buttons/listing-view/white.svg'\nimport { ReactComponent as ListingViewIcon } from 'src/styling/icons/circle buttons/listing-view/zodiac.svg'\nimport { ReactComponent as OverrideLabelIcon } from 'src/styling/icons/status/spring2.svg'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nimport CommissionsDetails from './components/CommissionsDetails'\nimport CommissionsList from './components/CommissionsList'\n\nconst styles = {\n listViewButton: {\n marginLeft: 4\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst GET_DATA = gql`\n query getData {\n config\n cryptoCurrencies {\n code\n display\n }\n machines {\n name\n deviceId\n }\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\nconst removeCoinFromOverride = crypto => override =>\n R.mergeRight(override, {\n cryptoCurrencies: R.without([crypto], override.cryptoCurrencies)\n })\n\nconst Commissions = ({ name: SCREEN_KEY }) => {\n const classes = useStyles()\n const [showMachines, setShowMachines] = useState(false)\n const [error, setError] = useState(null)\n const { data, loading } = useQuery(GET_DATA)\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n refetchQueries: () => ['getData'],\n onError: error => setError(error)\n })\n\n const config = data?.config && fromNamespace(SCREEN_KEY)(data.config)\n const localeConfig =\n data?.config && fromNamespace(namespaces.LOCALE)(data.config)\n\n const currency = R.prop('fiatCurrency')(localeConfig)\n const overrides = R.prop('overrides')(config)\n\n const save = it => {\n const config = toNamespace(SCREEN_KEY)(it.commissions[0])\n return saveConfig({ variables: { config } })\n }\n\n const saveOverrides = it => {\n const config = toNamespace(SCREEN_KEY)(it)\n setError(null)\n return saveConfig({ variables: { config } })\n }\n\n const saveOverridesFromList = it => (_, override) => {\n const cryptoOverriden = R.path(['cryptoCurrencies', 0], override)\n\n const sameMachine = R.eqProps('machine', override)\n const notSameOverride = it => !R.eqProps('cryptoCurrencies', override, it)\n\n const filterMachine = R.filter(R.both(sameMachine, notSameOverride))\n const removeCoin = removeCoinFromOverride(cryptoOverriden)\n\n const machineOverrides = R.map(removeCoin)(filterMachine(it))\n\n const overrides = machineOverrides.concat(\n R.filter(it => !sameMachine(it), it)\n )\n\n const config = {\n commissions_overrides: R.prepend(override, overrides)\n }\n\n return saveConfig({ variables: { config } })\n }\n\n const labels = showMachines\n ? [\n {\n label: 'Override value',\n icon: \n }\n ]\n : []\n\n return (\n <>\n \n\n {!showMachines && !loading && (\n \n )}\n {showMachines && !loading && (\n \n )}\n >\n )\n}\n\nexport default Commissions\n","import Commissions from './Commissions'\n\nexport default Commissions\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/authorize/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n stroke: \"#FFFFFF\",\n cx: 6,\n cy: 6,\n r: 5\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-13\",\n stroke: \"#FFFFFF\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n points: \"4 6.66666667 5 8 8 4\"\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.51296906.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/authorize/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-9\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n cx: 6,\n cy: 6,\n r: 5\n})), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-13\",\n stroke: \"#1B2559\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n points: \"4 6.66666667 5 8 8 4\"\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.2fe856d5.svg\";\nexport { ForwardRef as ReactComponent };","import { white, tomato, spring4, comet } from 'src/styling/variables'\n\nconst propertyCardStyles = {\n label1: {\n display: 'flex',\n marginBottom: 2,\n marginTop: 'auto',\n width: 85\n },\n label1Pending: {\n color: comet\n },\n label1Rejected: {\n color: tomato\n },\n label1Accepted: {\n color: spring4\n },\n cardActionButton: {\n display: 'flex',\n height: 28,\n marginRight: 'auto',\n marginLeft: 12\n },\n propertyCardTopRow: {\n display: 'flex',\n margin: [[0, 10, 5, 0]]\n },\n propertyCardBottomRow: {\n display: 'flex',\n flexDirection: 'row',\n height: 45\n },\n propertyCard: {\n display: 'flex',\n flexDirection: 'column',\n borderRadius: 8,\n width: '100%',\n height: 100,\n padding: [[20]],\n boxSizing: 'border-box',\n boxShadow: '0 0 8px 0 rgba(0, 0, 0, 0.04)',\n border: 'solid 0',\n backgroundColor: white,\n margin: [[20, 0, 0, 0]]\n },\n rowSpaceBetween: {\n display: 'flex',\n flexFlow: 'row nowrap',\n alignItems: 'center',\n justifyContent: 'space-between'\n },\n columnSpaceBetween: {\n display: 'flex',\n flexFlow: 'column nowrap',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: 90\n },\n buttonsWrapper: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n marginLeft: 'auto',\n marginTop: 'auto'\n }\n}\n\nexport { propertyCardStyles }\n","import { Paper } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport { MainStatus } from 'src/components/Status'\nimport { ActionButton } from 'src/components/buttons'\nimport { H3 } from 'src/components/typography'\nimport { ReactComponent as AuthorizeReversedIcon } from 'src/styling/icons/button/authorize/white.svg'\nimport { ReactComponent as AuthorizeIcon } from 'src/styling/icons/button/authorize/zodiac.svg'\nimport { ReactComponent as RejectReversedIcon } from 'src/styling/icons/button/cancel/white.svg'\nimport { ReactComponent as RejectIcon } from 'src/styling/icons/button/cancel/zodiac.svg'\nimport { ReactComponent as EditReversedIcon } from 'src/styling/icons/button/edit/white.svg'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/button/edit/zodiac.svg'\n\nimport { propertyCardStyles } from './PropertyCard.styles'\n\nconst useStyles = makeStyles(propertyCardStyles)\n\nconst OVERRIDE_PENDING = 'automatic'\nconst OVERRIDE_AUTHORIZED = 'verified'\nconst OVERRIDE_REJECTED = 'blocked'\n\nconst PropertyCard = memo(\n ({\n className,\n contentClassName,\n title,\n state,\n authorize,\n reject,\n edit,\n confirm,\n isEditing,\n formName,\n children\n }) => {\n const classes = useStyles()\n\n const label1ClassNames = {\n [classes.label1]: true,\n [classes.label1Pending]: state === OVERRIDE_PENDING,\n [classes.label1Rejected]: state === OVERRIDE_REJECTED,\n [classes.label1Accepted]: state === OVERRIDE_AUTHORIZED\n }\n\n const AuthorizeButton = () => (\n authorize()}>\n Authorize\n \n )\n\n const RejectButton = () => (\n reject()}>\n Reject\n \n )\n\n const EditButton = () => (\n edit()}>\n Edit\n \n )\n\n const ConfirmButton = () => (\n \n Confirm\n \n )\n\n const authorized =\n state === OVERRIDE_PENDING\n ? { label: 'Pending', type: 'neutral' }\n : state === OVERRIDE_REJECTED\n ? { label: 'Rejected', type: 'error' }\n : { label: 'Accepted', type: 'success' }\n\n return (\n \n {title} \n \n {state && (\n
\n \n
\n )}\n {children}\n
\n {authorize && state !== OVERRIDE_AUTHORIZED && AuthorizeButton()}\n {reject && state !== OVERRIDE_REJECTED && RejectButton()}\n {edit && !isEditing && EditButton()}\n {confirm && isEditing && ConfirmButton()}\n
\n
\n \n )\n }\n)\n\nexport {\n PropertyCard,\n OVERRIDE_PENDING,\n OVERRIDE_AUTHORIZED,\n OVERRIDE_REJECTED\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/block/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\",\n stroke: \"#FFFFFF\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n cx: 6,\n cy: 6,\n r: 5\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 9,\n y1: 3,\n x2: 3,\n y2: 9,\n id: \"Stroke-3\"\n})));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.e72682b5.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/block/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n cx: 6,\n cy: 6,\n r: 5\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 9,\n y1: 3,\n x2: 3,\n y2: 9,\n id: \"Stroke-3\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.bb7722c5.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/data/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Data-icon---small\",\n transform: \"translate(0.500000, 0.500000)\",\n stroke: \"#FFFFFF\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11,2.44444444 L11,5.5 C11,6.85002939 8.53756612,7.94444444 5.5,7.94444444 C2.521994,7.94444444 0.0939612041,6.81341452 1.11160464e-12,5.5 L0.00282594991,2.44444444\",\n id: \"oval-3\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11,5.5 L11,8.55555556 C11,9.90558494 8.53756612,11 5.5,11 C2.521994,11 0.0939612041,9.86897007 1.11160464e-12,8.55555556 L0.00282594991,5.5\",\n id: \"oval-2\"\n}), /*#__PURE__*/React.createElement(\"ellipse\", {\n id: \"oval-1\",\n cx: 5.5,\n cy: 2.44444444,\n rx: 5.5,\n ry: 2.44444444\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-9\",\n transform: \"translate(0.000000, 4.000000)\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n stroke: \"#FFFFFF\",\n fill: \"#5F668A\",\n cx: 4,\n cy: 4,\n r: 3.5\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Path\",\n fill: \"#FFFFFF\",\n fillRule: \"nonzero\",\n points: \"4.33333333 3.66666667 6 3.66666667 6 4.33333333 4.33333333 4.33333333 4.33333333 6 3.66666667 6 3.66666667 4.33333333 2 4.33333333 2 3.66666667 3.66666667 3.66666667 3.66666667 2 4.33333333 2\"\n})));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.4676bf59.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/data/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Data-icon---small\",\n transform: \"translate(1.500000, 0.500000)\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10,2 L10,4.77777778 C10,6.00507722 7.76142375,7 5,7 C2.29272181,7 0.0854192765,5.97179097 0,4.77777778 L0.00256904537,2\",\n id: \"oval-3\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10,5 L10,7.77777778 C10,9.00507722 7.76142375,10 5,10 C2.29272181,10 0.0854192765,8.97179097 0,7.77777778 L0.00256904537,5\",\n id: \"oval-2\"\n}), /*#__PURE__*/React.createElement(\"ellipse\", {\n id: \"oval-1\",\n cx: 5,\n cy: 2,\n rx: 5,\n ry: 2\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-9\",\n transform: \"translate(0.000000, 4.000000)\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n stroke: \"#1B2559\",\n fill: \"#EBEFFF\",\n cx: 4,\n cy: 4,\n r: 3.5\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Path\",\n fill: \"#1B2559\",\n fillRule: \"nonzero\",\n points: \"4.33333333 3.66666667 6 3.66666667 6 4.33333333 4.33333333 4.33333333 4.33333333 6 3.66666667 6 3.66666667 4.33333333 2 4.33333333 2 3.66666667 3.66666667 3.66666667 3.66666667 2 4.33333333 2\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.cfe5467c.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/search/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.8635238,8.17028571 C15.8635238,12.4198095 12.4187619,15.8645714 8.1692381,15.8645714 C3.92066667,15.8645714 0.475904762,12.4198095 0.475904762,8.17028571 C0.475904762,3.9207619 3.92066667,0.476 8.1692381,0.476 C12.4187619,0.476 15.8635238,3.9207619 15.8635238,8.17028571 Z\",\n id: \"Stroke-1\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 13.7035238,\n y1: 13.7046667,\n x2: 19.4844762,\n y2: 19.485619,\n id: \"Stroke-3\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n strokeLinecap: \"round\"\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.e8851a0a.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/search/dark02\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group\",\n transform: \"translate(1.000000, 1.000000)\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.2771714,7.35325714 C14.2771714,11.1778286 11.1768857,14.2781143 7.35231429,14.2781143 C3.5286,14.2781143 0.428314286,11.1778286 0.428314286,7.35325714 C0.428314286,3.52868571 3.5286,0.4284 7.35231429,0.4284 C11.1768857,0.4284 14.2771714,3.52868571 14.2771714,7.35325714 Z\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 12.3331714,\n y1: 12.3342,\n x2: 17.5360286,\n y2: 17.5370571,\n id: \"Stroke-3\",\n strokeLinecap: \"round\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/search/dark02\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.eea12e4f.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles, ClickAwayListener } from '@material-ui/core'\nimport classnames from 'classnames'\nimport React, { memo, useState } from 'react'\n\nimport Popper from 'src/components/Popper'\nimport { FeatureButton } from 'src/components/buttons'\nimport { ReactComponent as ZoomIconInverse } from 'src/styling/icons/circle buttons/search/white.svg'\nimport { ReactComponent as ZoomIcon } from 'src/styling/icons/circle buttons/search/zodiac.svg'\n\nimport imagePopperStyles from './ImagePopper.styles'\n\nconst useStyles = makeStyles(imagePopperStyles)\n\nconst ImagePopper = memo(\n ({ className, width, height, popupWidth, popupHeight, src }) => {\n const classes = useStyles({\n width,\n height,\n popupWidth,\n popupHeight\n })\n const [popperAnchorEl, setPopperAnchorEl] = useState(null)\n\n const handleOpenPopper = event => {\n setPopperAnchorEl(popperAnchorEl ? null : event.currentTarget)\n }\n\n const handleClosePopper = () => {\n setPopperAnchorEl(null)\n }\n\n const popperOpen = Boolean(popperAnchorEl)\n\n const Image = ({ className }) => (\n \n )\n\n return (\n \n \n \n )\n }\n)\n\nexport default ImagePopper\n","export default {\n row: {\n display: 'flex',\n flexDirection: 'row'\n },\n image: ({ width, height }) => ({\n objectFit: 'cover',\n borderRadius: '8px 0px 0px 8px',\n width,\n height\n }),\n popupImage: ({ popupWidth, popupHeight }) => ({\n objectFit: 'cover',\n width: popupWidth,\n height: popupHeight\n }),\n button: ({ height }) => ({\n borderRadius: '0px 8px 8px 0px',\n height\n }),\n popoverContent: {\n display: 'block',\n padding: [[10, 15]]\n }\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/ID/card/new/comet\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-1\",\n stroke: \"#5F668A\",\n strokeWidth: 1.6,\n points: \"1 17 23 17 23 1 1 1\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 12.7857143,\n y1: 5,\n x2: 19.8571429,\n y2: 5,\n id: \"Stroke-3\",\n stroke: \"#5F668A\",\n strokeWidth: 1.6\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 12.7857143,\n y1: 8.2,\n x2: 19.8571429,\n y2: 8.2,\n id: \"Stroke-4\",\n stroke: \"#5F668A\",\n strokeWidth: 1.6\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-5\",\n stroke: \"#5F668A\",\n strokeWidth: 1.6,\n points: \"4.14285714 12.2 9.64285714 12.2 9.64285714 5 4.14285714 5\"\n}));\n\nfunction SvgComet(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"24px\",\n height: \"18px\",\n viewBox: \"0 0 24 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/ID/card/new/comet\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgComet);\nexport default __webpack_public_path__ + \"static/media/comet.aaf93613.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/ID/phone/new/comet\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.47150618,13.52898 C10.939556,16.9970298 14.7804112,17.1146315 16.4756355,16.9586292 C17.0220434,16.9090285 17.5308507,16.6578249 17.9188563,16.2698193 L20.0004862,14.1881894 L18.0220577,12.210561 L16.0436293,11.5505516 L14.7244104,12.8697705 C14.7244104,12.8697705 13.4059914,14.1881894 10.1091441,10.8905421 C6.81229671,7.59449473 8.13071565,6.27527578 8.13071565,6.27527578 L9.4499346,4.95605683 L8.78992512,2.97842842 L6.81229671,1 L4.73066681,3.0816299 C4.34186123,3.46963548 4.09145763,3.97844279 4.04105691,4.52485063 C3.88585468,6.22007499 4.00345637,10.0601301 7.47150618,13.52898 Z\",\n id: \"Stroke-1-Copy\",\n stroke: \"#5F668A\",\n strokeWidth: 1.6\n}));\n\nfunction SvgComet(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"24px\",\n height: \"18px\",\n viewBox: \"0 0 24 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/ID/phone/new/comet\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgComet);\nexport default __webpack_public_path__ + \"static/media/comet.c4eaa20d.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/crossed-camera\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"crossed-camera\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/ID/cam/zodiac\",\n transform: \"translate(0.000000, 3.657143)\",\n fill: \"#1B2559\",\n fillRule: \"nonzero\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16,19.1876029 C12.4482116,19.1876029 9.56809571,16.389776 9.56809571,12.9394673 C9.56809571,9.48915858 12.4482116,6.69133172 16,6.69133172 C19.5517884,6.69133172 22.4319043,9.48915858 22.4319043,12.9394673 C22.4319043,16.389776 19.5517884,19.1876029 16,19.1876029 Z M16,17.104891 C18.3677075,17.104891 20.2879362,15.239526 20.2879362,12.9394673 C20.2879362,10.6394086 18.3677075,8.77404358 16,8.77404358 C13.6322925,8.77404358 11.7120638,10.6394086 11.7120638,12.9394673 C11.7120638,15.239526 13.6322925,17.104891 16,17.104891 Z M22.7667469,3.30692494 L30.7397807,3.30692494 C31.3318211,3.30692494 31.8117647,3.77315587 31.8117647,4.34828087 L31.8117647,22.0513317 C31.8117647,22.6264567 31.3318211,23.0926877 30.7397807,23.0926877 L1.26021934,23.0926877 C0.6681789,23.0926877 0.188235294,22.6264567 0.188235294,22.0513317 L0.188235294,4.34828087 C0.188235294,3.77315587 0.6681789,3.30692494 1.26021934,3.30692494 L9.23325311,3.30692494 L12.0766705,0.494526627 C12.2782333,0.295162767 12.5538198,0.182857143 12.8414756,0.182857143 L19.1585244,0.182857143 C19.4461802,0.182857143 19.7217667,0.295162767 19.9233295,0.494526627 L22.7667469,3.30692494 Z M29.6677966,5.3896368 L22.3170489,5.3896368 C22.0293931,5.3896368 21.7538065,5.27733118 21.5522438,5.07796732 L18.7088264,2.26556901 L13.2911736,2.26556901 L10.4477562,5.07796732 C10.2461935,5.27733118 9.97060695,5.3896368 9.68295115,5.3896368 L2.33220339,5.3896368 L2.33220339,21.0099758 L29.6677966,21.0099758 L29.6677966,5.3896368 Z\",\n id: \"Stroke-1\"\n})), /*#__PURE__*/React.createElement(\"line\", {\n x1: 32,\n y1: 0,\n x2: 0,\n y2: 32,\n id: \"Line\",\n stroke: \"#FF584A\",\n strokeWidth: 2,\n strokeLinecap: \"square\"\n}))));\n\nfunction SvgCrossedCamera(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"32px\",\n height: \"32px\",\n viewBox: \"0 0 32 32\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCrossedCamera);\nexport default __webpack_public_path__ + \"static/media/crossed-camera.28e8f7eb.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/edit/disabled\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1,18 L1,18 C1,19.657 2.343,21 4,21 L18,21 C19.657,21 21,19.657 21,18\",\n id: \"Stroke-1\",\n stroke: \"#5f668a\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-3\",\n stroke: \"#5f668a\",\n strokeWidth: 2,\n points: \"6 12 17 1 21 5 10 16 6 16\"\n}));\n\nfunction SvgComet(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"22px\",\n height: \"22px\",\n viewBox: \"0 0 22 22\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgComet);\nexport default __webpack_public_path__ + \"static/media/comet.77ebaba5.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/listing/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 1,\n y1: 1,\n x2: 19.0952381,\n y2: 1,\n id: \"Path-4\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 1,\n y1: 7,\n x2: 19.0952381,\n y2: 7,\n id: \"Path-4-Copy\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 1,\n y1: 13,\n x2: 19.0952381,\n y2: 13,\n id: \"Path-4-Copy-2\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 1,\n y1: 19,\n x2: 19.0952381,\n y2: 19,\n id: \"Path-4-Copy-3\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.b7754662.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/listing/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 1,\n y1: 1,\n x2: 19.0952381,\n y2: 1,\n id: \"Path-4\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 1,\n y1: 7,\n x2: 19.0952381,\n y2: 7,\n id: \"Path-4-Copy\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 1,\n y1: 13,\n x2: 19.0952381,\n y2: 13,\n id: \"Path-4-Copy-2\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 1,\n y1: 19,\n x2: 19.0952381,\n y2: 19,\n id: \"Path-4-Copy-3\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.84e03611.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/overview/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n x: 1,\n y: 1,\n width: 7,\n height: 7,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-2\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n x: 1,\n y: 12,\n width: 7,\n height: 7,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n x: 12,\n y: 1,\n width: 7,\n height: 7,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-3\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n x: 12,\n y: 12,\n width: 7,\n height: 7,\n rx: 2\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.1ca0dea7.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/overview/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n x: 1,\n y: 1,\n width: 7,\n height: 7,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-2\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n x: 1,\n y: 12,\n width: 7,\n height: 7,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n x: 12,\n y: 1,\n width: 7,\n height: 7,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-3\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n x: 12,\n y: 12,\n width: 7,\n height: 7,\n rx: 2\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.74570495.svg\";\nexport { ForwardRef as ReactComponent };","import { offColor, spacer } from 'src/styling/variables'\n\nexport default {\n header: {\n display: 'flex',\n flexDirection: 'row',\n marginBottom: 15\n },\n title: {\n marginTop: 7,\n marginRight: 24\n },\n editIcon: {\n marginTop: 5\n },\n cardIcon: {\n marginTop: 7\n },\n viewIcons: {\n marginRight: 12\n },\n wrapper: {\n display: 'block',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n },\n separator: {\n color: offColor,\n margin: [[8, 0, 8, 150]],\n position: 'relative',\n display: 'inline-block',\n '&:before, &:after': {\n content: '\"\"',\n position: 'absolute',\n background: offColor,\n top: '50%',\n width: 1000,\n height: 1\n },\n '&:before': {\n right: '100%',\n marginRight: 15\n },\n '&:after': {\n left: '100%',\n marginLeft: 15\n }\n },\n closeButton: {\n display: 'flex',\n padding: [[spacer * 2, spacer * 2, 0, spacer * 2]],\n paddingRight: spacer * 1.5,\n justifyContent: 'end'\n },\n dialogTitle: {\n margin: [[0, spacer * 2, spacer, spacer * 4 + spacer]]\n },\n dialogContent: {\n width: 615,\n marginLeft: 16\n },\n dialogActions: {\n padding: spacer * 4,\n paddingTop: spacer * 2\n },\n cancelButton: {\n marginRight: 8,\n padding: 0\n }\n}\n","import { makeStyles, Box } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { parse, isValid, format } from 'date-fns/fp'\nimport { Field, useFormikContext } from 'formik'\nimport { parsePhoneNumberFromString } from 'libphonenumber-js'\nimport * as R from 'ramda'\nimport * as uuid from 'uuid'\nimport * as Yup from 'yup'\n\nimport {\n RadioGroup,\n TextInput,\n Autocomplete\n} from 'src/components/inputs/formik'\nimport { H4 } from 'src/components/typography'\nimport { errorColor } from 'src/styling/variables'\nimport { MANUAL } from 'src/utils/constants'\n\nimport { Upload } from './components'\n\nconst useStyles = makeStyles({\n radio: {\n padding: 4,\n margin: 4\n },\n radioGroup: {\n flexDirection: 'row'\n },\n error: {\n color: errorColor\n },\n specialLabel: {\n height: 40,\n padding: 0,\n width: 250\n },\n label: {\n height: 40,\n padding: 0\n },\n specialGrid: {\n display: 'grid',\n gridTemplateColumns: [[182, 162, 141]]\n },\n picker: {\n width: 150\n },\n field: {\n '& > *:last-child': {\n marginBottom: 24\n }\n }\n})\n\nconst CUSTOMER_BLOCKED = 'blocked'\nconst CUSTOM = 'custom'\nconst REQUIREMENT = 'requirement'\nconst ID_CARD_DATA = 'idCardData'\n\nconst getAuthorizedStatus = (it, triggers, customRequests) => {\n const fields = R.concat(\n ['frontCamera', 'idCardData', 'idCardPhoto', 'usSsn', 'sanctions'],\n R.map(ite => ite.id, customRequests)\n )\n const fieldsWithPathSuffix = ['frontCamera', 'idCardPhoto']\n\n const isManualField = fieldName => {\n const triggerName = R.equals(fieldName, 'frontCamera')\n ? 'facephoto'\n : fieldName\n const manualOverrides = R.filter(\n ite => R.equals(R.toLower(ite.automation), MANUAL),\n triggers?.overrides ?? []\n )\n\n return (\n !!R.find(\n ite => R.equals(ite.requirement, triggerName),\n manualOverrides\n ) || R.equals(R.toLower(triggers.automation), MANUAL)\n )\n }\n\n const pendingFieldStatus = R.map(ite => {\n if (isManualField(ite)) {\n if (uuid.validate(ite)) {\n const request = R.find(\n iter => iter.infoRequestId === ite,\n it.customInfoRequests\n )\n return !R.isNil(request) && R.equals(request.override, 'automatic')\n }\n\n const regularFieldValue = R.includes(ite, fieldsWithPathSuffix)\n ? it[`${ite}Path`]\n : it[`${ite}`]\n if (R.isNil(regularFieldValue)) return false\n return R.equals(it[`${ite}Override`], 'automatic')\n }\n return false\n }, fields)\n\n const rejectedFieldStatus = R.map(ite => {\n if (isManualField(ite)) {\n if (uuid.validate(ite)) {\n const request = R.find(\n iter => iter.infoRequestId === ite,\n it.customInfoRequests\n )\n return !R.isNil(request) && R.equals(request.override, 'blocked')\n }\n\n const regularFieldValue = R.includes(ite, fieldsWithPathSuffix)\n ? it[`${ite}Path`]\n : it[`${ite}`]\n if (R.isNil(regularFieldValue)) return false\n return R.equals(it[`${ite}Override`], 'blocked')\n }\n return false\n }, fields)\n\n if (it.authorizedOverride === CUSTOMER_BLOCKED)\n return { label: 'Blocked', type: 'error' }\n if (it.isSuspended)\n return it.daysSuspended > 0\n ? { label: `${it.daysSuspended} day suspension`, type: 'warning' }\n : { label: `< 1 day suspension`, type: 'warning' }\n if (R.any(ite => ite === true, rejectedFieldStatus))\n return { label: 'Rejected', type: 'error' }\n if (R.any(ite => ite === true, pendingFieldStatus))\n return { label: 'Pending', type: 'warning' }\n return { label: 'Authorized', type: 'success' }\n}\n\nconst getFormattedPhone = (phone, country) => {\n const phoneNumber =\n phone && country ? parsePhoneNumberFromString(phone, country) : null\n\n return phoneNumber ? phoneNumber.formatInternational() : phone\n}\n\nconst getName = it => {\n const idData = R.path(['idCardData'])(it)\n\n return `${R.path(['firstName'])(idData) ?? ''} ${R.path(['lastName'])(\n idData\n ) ?? ''}`.trim()\n}\n\n// Manual Entry Wizard\n\nconst entryOptions = [\n { display: 'Custom entry', code: 'custom' },\n { display: 'Populate existing requirement', code: 'requirement' }\n]\n\nconst dataOptions = [\n { display: 'Text', code: 'text' }\n // TODO: Requires backend modifications to support File and Image\n // { display: 'File', code: 'file' },\n // { display: 'Image', code: 'image' }\n]\n\nconst requirementOptions = [\n { display: 'ID card image', code: 'idCardPhoto' },\n { display: 'ID data', code: 'idCardData' },\n { display: 'US SSN', code: 'usSsn' },\n { display: 'Customer camera', code: 'frontCamera' }\n]\n\nconst customTextOptions = [\n { label: 'Data entry title', name: 'title' },\n { label: 'Data entry', name: 'data' }\n]\n\nconst customUploadOptions = [{ label: 'Data entry title', name: 'title' }]\n\nconst entryTypeSchema = Yup.lazy(values => {\n if (values.entryType === 'custom') {\n return Yup.object().shape({\n entryType: Yup.string().required(),\n dataType: Yup.string().required()\n })\n } else if (values.entryType === 'requirement') {\n return Yup.object().shape({\n entryType: Yup.string().required(),\n requirement: Yup.string().required()\n })\n }\n})\n\nconst customFileSchema = Yup.object().shape({\n title: Yup.string().required(),\n file: Yup.mixed().required()\n})\n\nconst customImageSchema = Yup.object().shape({\n title: Yup.string().required(),\n image: Yup.mixed().required()\n})\n\nconst customTextSchema = Yup.object().shape({\n title: Yup.string().required(),\n data: Yup.string().required()\n})\n\nconst updateRequirementOptions = it => [\n {\n display: 'Custom information requirement',\n code: 'custom'\n },\n ...it\n]\n\nconst EntryType = ({ customInfoRequirementOptions }) => {\n const classes = useStyles()\n const { values } = useFormikContext()\n\n const displayCustomOptions = values.entryType === CUSTOM\n const displayRequirementOptions = values.entryType === REQUIREMENT\n\n return (\n <>\n \n Type of entry \n \n \n {displayCustomOptions && (\n \n \n Type of data \n \n \n
\n )}\n {displayRequirementOptions && (\n \n \n Requirements \n \n \n
\n )}\n >\n )\n}\n\nconst ManualDataEntry = ({ selectedValues, customInfoRequirementOptions }) => {\n const classes = useStyles()\n\n const typeOfEntrySelected = selectedValues?.entryType\n const dataTypeSelected = selectedValues?.dataType\n const requirementSelected = selectedValues?.requirement\n\n const displayRequirements = typeOfEntrySelected === 'requirement'\n\n const isCustomInfoRequirement = requirementSelected === CUSTOM\n\n const updatedRequirementOptions = !R.isEmpty(customInfoRequirementOptions)\n ? updateRequirementOptions(requirementOptions)\n : requirementOptions\n\n const requirementName = displayRequirements\n ? R.find(R.propEq('code', requirementSelected))(updatedRequirementOptions)\n .display\n : ''\n\n const title = displayRequirements\n ? `Requirement ${requirementName}`\n : `Custom ${dataTypeSelected} entry`\n\n const elements = displayRequirements\n ? requirementElements[requirementSelected]\n : customElements[dataTypeSelected]\n\n const upload = displayRequirements\n ? requirementSelected === 'idCardPhoto' ||\n requirementSelected === 'frontCamera'\n : dataTypeSelected === 'file' || dataTypeSelected === 'image'\n\n return (\n <>\n \n {title} \n \n {isCustomInfoRequirement && (\n {}}\n />\n )}\n \n {!upload &&\n !isCustomInfoRequirement &&\n elements.options.map(({ label, name }) => (\n \n ))}\n
\n {upload && (\n \n )}\n >\n )\n}\n\nconst customElements = {\n text: {\n schema: customTextSchema,\n options: customTextOptions,\n Component: ManualDataEntry,\n initialValues: { data: '', title: '' },\n saveType: 'customEntry'\n },\n file: {\n schema: customFileSchema,\n options: customUploadOptions,\n Component: ManualDataEntry,\n initialValues: { file: null, title: '' },\n saveType: 'customEntryUpload'\n },\n image: {\n schema: customImageSchema,\n options: customUploadOptions,\n Component: ManualDataEntry,\n initialValues: { image: null, title: '' },\n saveType: 'customEntryUpload'\n }\n}\n\nconst entryType = {\n schema: entryTypeSchema,\n options: entryOptions,\n Component: EntryType,\n initialValues: { entryType: '' }\n}\n\n// Customer data\n\nconst customerDataElements = {\n idCardData: [\n {\n name: 'firstName',\n label: 'First name',\n component: TextInput,\n editable: true\n },\n {\n name: 'documentNumber',\n label: 'ID number',\n component: TextInput,\n editable: true\n },\n {\n name: 'dateOfBirth',\n label: 'Birthdate',\n component: TextInput,\n editable: true\n },\n {\n name: 'gender',\n label: 'Gender',\n component: TextInput,\n editable: true\n },\n {\n name: 'lastName',\n label: 'Last name',\n component: TextInput,\n editable: true\n },\n {\n name: 'expirationDate',\n label: 'Expiration Date',\n component: TextInput,\n editable: true\n },\n {\n name: 'country',\n label: 'Country',\n component: TextInput,\n editable: true\n }\n ],\n usSsn: [\n {\n name: 'usSsn',\n label: 'US SSN',\n component: TextInput,\n size: 190,\n editable: true\n }\n ],\n idCardPhoto: [{ name: 'idCardPhoto' }],\n frontCamera: [{ name: 'frontCamera' }]\n}\n\nconst customerDataSchemas = {\n idCardData: Yup.object().shape({\n firstName: Yup.string().required(),\n lastName: Yup.string().required(),\n documentNumber: Yup.string().required(),\n dateOfBirth: Yup.string()\n .test({\n test: val => isValid(parse(new Date(), 'yyyy-MM-dd', val))\n })\n .required(),\n gender: Yup.string().required(),\n country: Yup.string().required(),\n expirationDate: Yup.string()\n .test({\n test: val => isValid(parse(new Date(), 'yyyy-MM-dd', val))\n })\n .required()\n }),\n usSsn: Yup.object().shape({\n usSsn: Yup.string().required()\n }),\n idCardPhoto: Yup.object().shape({\n idCardPhoto: Yup.mixed().required()\n }),\n frontCamera: Yup.object().shape({\n frontCamera: Yup.mixed().required()\n })\n}\n\nconst requirementElements = {\n idCardData: {\n schema: customerDataSchemas.idCardData,\n options: customerDataElements.idCardData,\n Component: ManualDataEntry,\n initialValues: {\n firstName: '',\n lastName: '',\n documentNumber: '',\n dateOfBirth: '',\n gender: '',\n country: '',\n expirationDate: ''\n },\n saveType: 'customerData'\n },\n usSsn: {\n schema: customerDataSchemas.usSsn,\n options: customerDataElements.usSsn,\n Component: ManualDataEntry,\n initialValues: { usSsn: '' },\n saveType: 'customerData'\n },\n idCardPhoto: {\n schema: customerDataSchemas.idCardPhoto,\n options: customerDataElements.idCardPhoto,\n Component: ManualDataEntry,\n initialValues: { idCardPhoto: null },\n saveType: 'customerDataUpload'\n },\n frontCamera: {\n schema: customerDataSchemas.frontCamera,\n options: customerDataElements.frontCamera,\n Component: ManualDataEntry,\n initialValues: { frontCamera: null },\n saveType: 'customerDataUpload'\n },\n custom: {\n // schema: customerDataSchemas.customInfoRequirement,\n Component: ManualDataEntry,\n initialValues: { customInfoRequirement: null },\n saveType: 'customInfoRequirement'\n }\n}\n\nconst formatDates = values => {\n R.map(\n elem =>\n (values[elem] = format('yyyyMMdd')(\n parse(new Date(), 'yyyy-MM-dd', values[elem])\n ))\n )(['dateOfBirth', 'expirationDate'])\n return values\n}\n\nconst mapKeys = pair => {\n const [key, value] = pair\n if (key === 'txCustomerPhotoPath' || key === 'frontCameraPath') {\n return ['path', value]\n }\n if (key === 'txCustomerPhotoAt' || key === 'frontCameraAt') {\n return ['date', value]\n }\n return pair\n}\n\nconst addPhotoDir = R.map(it => {\n const hasFrontCameraData = R.has('id')(it)\n return hasFrontCameraData\n ? { ...it, photoDir: 'operator-data/customersphotos' }\n : { ...it, photoDir: 'front-camera-photo' }\n})\n\nconst standardizeKeys = R.map(R.compose(R.fromPairs, R.map(mapKeys), R.toPairs))\n\nconst filterByPhotoAvailable = R.filter(\n tx => !R.isNil(tx.date) && !R.isNil(tx.path)\n)\n\nconst formatPhotosData = R.compose(\n filterByPhotoAvailable,\n addPhotoDir,\n standardizeKeys\n)\n\nexport {\n getAuthorizedStatus,\n getFormattedPhone,\n getName,\n entryType,\n customElements,\n requirementElements,\n formatPhotosData,\n customerDataElements,\n customerDataSchemas,\n formatDates,\n REQUIREMENT,\n CUSTOM,\n ID_CARD_DATA\n}\n","import { makeStyles } from '@material-ui/core'\nimport { Form, Formik } from 'formik'\nimport * as R from 'ramda'\nimport React, { useState, Fragment } from 'react'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Modal from 'src/components/Modal'\nimport Stepper from 'src/components/Stepper'\nimport { Button } from 'src/components/buttons'\nimport { comet } from 'src/styling/variables'\n\nimport {\n entryType,\n customElements,\n requirementElements,\n formatDates,\n REQUIREMENT,\n ID_CARD_DATA\n} from './helper'\n\nconst LAST_STEP = 2\n\nconst styles = {\n stepper: {\n margin: [[16, 0, 14, 0]]\n },\n submit: {\n display: 'flex',\n flexDirection: 'row',\n margin: [['auto', 0, 24]]\n },\n button: {\n marginLeft: 'auto'\n },\n form: {\n height: '100%',\n display: 'flex',\n flexDirection: 'column'\n },\n infoTitle: {\n margin: [[18, 0, 20, 0]]\n },\n infoCurrentText: {\n color: comet\n },\n blankSpace: {\n padding: [[0, 30]],\n margin: [[0, 4, 0, 2]],\n borderBottom: `1px solid ${comet}`,\n display: 'inline-block'\n },\n dropdownField: {\n marginTop: 16,\n minWidth: 155\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst getStep = (step, selectedValues) => {\n const elements =\n selectedValues?.entryType === REQUIREMENT &&\n !R.isNil(selectedValues?.requirement)\n ? requirementElements[selectedValues?.requirement]\n : customElements[selectedValues?.dataType]\n\n switch (step) {\n case 1:\n return entryType\n case 2:\n return elements\n default:\n return Fragment\n }\n}\n\nconst Wizard = ({\n onClose,\n save,\n error,\n customInfoRequirementOptions,\n addCustomerData,\n addPhoto\n}) => {\n const classes = useStyles()\n\n const [selectedValues, setSelectedValues] = useState(null)\n\n const [{ step, config }, setState] = useState({\n step: 1\n })\n\n const isIdCardData = values => values?.requirement === ID_CARD_DATA\n const formatCustomerData = (it, newConfig) =>\n isIdCardData(newConfig) ? { [newConfig.requirement]: formatDates(it) } : it\n\n const isLastStep = step === LAST_STEP\n const stepOptions = getStep(step, selectedValues)\n\n const onContinue = async it => {\n const newConfig = R.merge(config, stepOptions.schema.cast(it))\n setSelectedValues(newConfig)\n\n if (isLastStep) {\n switch (stepOptions.saveType) {\n case 'customerData':\n return addCustomerData(formatCustomerData(it, newConfig))\n case 'customerDataUpload':\n return addPhoto({\n newPhoto: R.head(R.values(it)),\n photoType: R.head(R.keys(it))\n })\n case 'customEntry':\n return save(newConfig)\n case 'customInfoRequirement':\n return\n // case 'customerEntryUpload':\n // break\n default:\n break\n }\n }\n\n setState({\n step: step + 1,\n config: newConfig\n })\n }\n\n return (\n <>\n \n \n \n \n \n \n >\n )\n}\n\nexport default Wizard\n","import typographyStyles from 'src/components/typography/styles'\nimport baseStyles from 'src/pages/Logs.styles'\nimport { zircon, comet, primaryColor, fontSize4 } from 'src/styling/variables'\n\nconst { label1 } = typographyStyles\nconst { titleWrapper, titleAndButtonsContainer } = baseStyles\n\nexport default {\n titleWrapper,\n titleAndButtonsContainer,\n row: {\n display: 'flex',\n flexFlow: 'row nowrap'\n },\n rowSpaceBetween: {\n display: 'flex',\n flexFlow: 'row nowrap',\n alignItems: 'center',\n justifyContent: 'space-between'\n },\n column: {\n display: 'flex',\n flexFlow: 'column nowrap',\n width: '100%',\n height: '100%',\n justifyContent: 'space-between'\n },\n textInput: {\n width: 144\n },\n p: {\n fontFamily: 'MuseoSans',\n fontSize: fontSize4,\n fontWeight: 500,\n fontStretch: 'normal',\n fontStyle: 'normal',\n lineHeight: 1.14,\n letterSpacing: 'normal',\n color: primaryColor\n },\n txId: {\n fontFamily: 'MuseoSans',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n txClassIconLeft: {\n marginRight: 11\n },\n txClassIconRight: {\n marginLeft: 11\n },\n headerLabels: {\n display: 'flex',\n flexDirection: 'row',\n '& div': {\n display: 'flex',\n alignItems: 'center'\n },\n '& > div:first-child': {\n marginRight: 24\n },\n '& span': {\n extend: label1,\n marginLeft: 6\n }\n },\n photo: {\n width: 92,\n height: 92,\n borderRadius: 8,\n backgroundColor: zircon,\n margin: [[0, 28, 0, 0]],\n alignItems: 'center',\n justifyContent: 'center',\n display: 'flex'\n },\n img: {\n width: 80\n },\n customerName: {\n marginBottom: 32\n },\n icon: {\n marginRight: 11\n },\n name: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center'\n },\n value: {\n height: 16\n },\n label: {\n marginBottom: 4,\n color: comet\n },\n txSummaryValue: {\n height: 16,\n marginRight: 25\n },\n txSummaryLabel: {\n marginBottom: 4,\n color: comet,\n marginRight: 25\n },\n idIcon: {\n marginRight: 10\n },\n subpageButton: {\n marginLeft: 16\n },\n txTableSpacing: {\n marginTop: 40\n }\n}\n","import { Dialog, DialogContent, makeStyles } from '@material-ui/core'\nimport React, { memo } from 'react'\n\nimport { IconButton } from 'src/components/buttons'\nimport { H1 } from 'src/components/typography'\nimport { ReactComponent as CloseIcon } from 'src/styling/icons/action/close/zodiac.svg'\nimport { spacer } from 'src/styling/variables'\n\nconst useStyles = makeStyles({\n closeButton: {\n display: 'flex',\n padding: [[spacer * 2, spacer * 2, 0, spacer * 2]],\n paddingRight: spacer * 1.5,\n justifyContent: 'end'\n },\n title: {\n margin: [[0, spacer * 2, spacer, spacer * 2 + 4]]\n }\n})\n\nexport const DialogTitle = ({ children, onClose }) => {\n const classes = useStyles()\n return (\n \n {children}\n {onClose && (\n \n \n \n )}\n
\n )\n}\n\nexport const InformativeDialog = memo(\n ({ title = '', open, onDissmised, disabled = false, data, ...props }) => {\n const classes = useStyles()\n\n const innerOnClose = () => {\n onDissmised()\n }\n\n return (\n \n \n \n \n \n
\n {title} \n {data} \n \n )\n }\n)\n","import { zircon, backgroundColor } from 'src/styling/variables'\n\nexport default {\n photo: {\n width: 135,\n height: 135,\n borderRadius: 8,\n backgroundColor: zircon,\n margin: [[0, 28, 0, 0]],\n alignItems: 'center',\n justifyContent: 'center',\n display: 'flex'\n },\n img: {\n objectFit: 'cover',\n objectPosition: 'center',\n width: 135,\n height: 135\n },\n container: {\n position: 'relative',\n '& > img': {\n display: 'block'\n },\n '& > circle': {\n position: 'absolute',\n top: '0',\n right: '0',\n marginRight: 5,\n marginTop: 5\n }\n },\n circle: {\n background: backgroundColor,\n borderRadius: '50%',\n width: 25,\n height: 25,\n alignItems: 'center',\n justifyContent: 'center',\n display: 'flex'\n }\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Simple-Arrow-White\",\n fill: \"#1b2559\",\n fillRule: \"nonzero\",\n points: \"12.1912718 1.56064837 10.8306233 0.395663059 0.196798664 16.2200463 10.8250965 32.3956631 12.1967987 31.2473125 2.33241023 16.233075\"\n}));\n\nfunction SvgCarouselLeftArrow(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"13px\",\n height: \"33px\",\n viewBox: \"0 0 13 33\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCarouselLeftArrow);\nexport default __webpack_public_path__ + \"static/media/carousel-left-arrow.c6575d9d.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2-Copy\",\n transform: \"translate(1.000000, 1.000000)\",\n stroke: \"#1b2559\",\n strokeWidth: 2\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path-4-Copy\",\n points: \"0 0 12 15.8202247 0 32\"\n})));\n\nfunction SvgCarouselRightArrow(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"15px\",\n height: \"34px\",\n viewBox: \"0 0 15 34\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCarouselRightArrow);\nexport default __webpack_public_path__ + \"static/media/carousel-right-arrow.1d5e04d1.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core/styles'\nimport React, { memo } from 'react'\nimport ReactCarousel from 'react-material-ui-carousel'\n\nimport { ReactComponent as LeftArrow } from 'src/styling/icons/arrow/carousel-left-arrow.svg'\nimport { ReactComponent as RightArrow } from 'src/styling/icons/arrow/carousel-right-arrow.svg'\nimport { URI } from 'src/utils/apollo'\n\nconst useStyles = makeStyles({\n imgWrapper: {\n alignItems: 'center',\n justifyContent: 'center',\n display: 'flex'\n },\n imgInner: {\n objectFit: 'cover',\n objectPosition: 'center',\n width: 500,\n marginBottom: 40\n }\n})\n\nexport const Carousel = memo(({ photosData, slidePhoto }) => {\n const classes = useStyles()\n\n return (\n <>\n }\n NextIcon={ }\n navButtonsProps={{\n style: {\n backgroundColor: 'transparent',\n borderRadius: 0,\n color: 'transparent',\n opacity: 1\n }\n }}\n navButtonsWrapperProps={{\n style: {\n marginLeft: -22,\n marginRight: -22\n }\n }}\n autoPlay={false}\n indicators={false}\n navButtonsAlwaysVisible={true}\n next={activeIndex => slidePhoto(activeIndex)}\n prev={activeIndex => slidePhoto(activeIndex)}>\n {photosData.map((item, i) => (\n \n
\n
\n
\n
\n ))}\n \n >\n )\n})\n","import typographyStyles from 'src/components/typography/styles'\nimport { offColor } from 'src/styling/variables'\n\nconst { p } = typographyStyles\n\nexport default {\n label: {\n color: offColor,\n margin: [[0, 0, 6, 0]]\n },\n firstRow: {\n padding: [[8]],\n display: 'flex',\n flexDirection: 'column'\n },\n secondRow: {\n extend: p,\n display: 'flex',\n padding: [[8]],\n '& > div': {\n display: 'flex',\n flexDirection: 'column',\n '& > div': {\n height: 37,\n marginBottom: 15,\n marginRight: 55\n }\n }\n }\n}\n","import { makeStyles } from '@material-ui/core/styles'\nimport * as R from 'ramda'\nimport React, { memo, useState } from 'react'\n\nimport { Carousel } from 'src/components/Carousel'\nimport { Label1 } from 'src/components/typography'\n\nimport CopyToClipboard from '../../Transactions/CopyToClipboard'\n\nimport styles from './PhotosCarousel.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst PhotosCarousel = memo(({ photosData }) => {\n const classes = useStyles()\n const [currentIndex, setCurrentIndex] = useState(0)\n\n const Label = ({ children }) => {\n const classes = useStyles()\n return {children} \n }\n\n const isFaceCustomerPhoto = !R.has('id')(photosData[currentIndex])\n\n const slidePhoto = index => setCurrentIndex(index)\n\n return (\n <>\n \n {!isFaceCustomerPhoto && (\n \n Session ID \n \n {photosData && photosData[currentIndex]?.id}\n \n
\n )}\n \n
\n
\n
Date \n
{photosData && photosData[currentIndex]?.date}
\n
\n
\n
\n
Taken by \n
\n {!isFaceCustomerPhoto ? 'Acceptance of T&C' : 'Compliance scan'}\n
\n
\n
\n >\n )\n})\n\nexport default PhotosCarousel\n","import ButtonBase from '@material-ui/core/ButtonBase'\nimport Paper from '@material-ui/core/Card'\nimport { makeStyles } from '@material-ui/core/styles'\nimport * as R from 'ramda'\nimport React, { memo, useState } from 'react'\n\nimport { InformativeDialog } from 'src/components/InformativeDialog'\nimport { Info2 } from 'src/components/typography'\nimport { ReactComponent as CrossedCameraIcon } from 'src/styling/icons/ID/photo/crossed-camera.svg'\nimport { URI } from 'src/utils/apollo'\n\nimport styles from './PhotosCard.styles'\nimport PhotosCarousel from './PhotosCarousel'\n\nconst useStyles = makeStyles(styles)\n\nconst PhotosCard = memo(({ photosData }) => {\n const classes = useStyles()\n\n const [photosDialog, setPhotosDialog] = useState(false)\n\n const singlePhoto = R.head(photosData)\n\n return (\n <>\n \n {\n setPhotosDialog(true)\n }}>\n {singlePhoto ? (\n \n
\n
\n \n {photosData.length} \n
\n \n
\n ) : (\n \n )}\n \n \n }\n onDissmised={() => {\n setPhotosDialog(false)\n }}\n />\n >\n )\n})\n\nexport default PhotosCard\n","import { makeStyles, Box } from '@material-ui/core'\nimport * as R from 'ramda'\nimport React, { memo } from 'react'\n\nimport { H2, Label1, P } from 'src/components/typography'\nimport { ReactComponent as IdIcon } from 'src/styling/icons/ID/card/zodiac.svg'\n\nimport mainStyles from '../CustomersList.styles'\nimport { getFormattedPhone, getName } from '../helper'\n\nimport PhotosCard from './PhotosCard'\n\nconst useStyles = makeStyles(mainStyles)\n\nconst CustomerDetails = memo(({ customer, photosData, locale }) => {\n const classes = useStyles()\n\n const idNumber = R.path(['idCardData', 'documentNumber'])(customer)\n const usSsn = R.path(['usSsn'])(customer)\n\n const elements = [\n {\n header: 'Phone number',\n size: 172,\n value: getFormattedPhone(customer.phone, locale.country)\n }\n ]\n\n if (idNumber)\n elements.push({\n header: 'ID number',\n size: 172,\n value: idNumber\n })\n\n if (usSsn)\n elements.push({\n header: 'US SSN',\n size: 127,\n value: usSsn\n })\n\n const name = getName(customer)\n\n return (\n \n \n \n \n \n
\n {name.length\n ? name\n : getFormattedPhone(R.path(['phone'])(customer), locale.country)}\n \n \n \n {elements.map(({ size, header }, idx) => (\n \n {header}\n \n ))}\n \n \n {elements.map(({ size, value }, idx) => (\n \n {value}\n
\n ))}\n \n \n \n )\n})\n\nexport default CustomerDetails\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/customer-nav/data/comet\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19,5 L19,10 C19,12.209139 14.9705627,14 10,14 C5.12689927,14 1.1537547,12.1492238 1,10 L1.00462428,5\",\n id: \"Path-Copy-3\",\n stroke: \"#5F668A\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19,10 L19,15 C19,17.209139 14.9705627,19 10,19 C5.12689927,19 1.1537547,17.1492238 1,15 L1.00462428,10\",\n id: \"Path-Copy-3\",\n stroke: \"#5F668A\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"ellipse\", {\n id: \"Oval-Copy-3\",\n stroke: \"#5F668A\",\n strokeWidth: 2,\n cx: 10,\n cy: 5,\n rx: 9,\n ry: 4\n}));\n\nfunction SvgComet(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgComet);\nexport default __webpack_public_path__ + \"static/media/comet.8aef4281.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/customer-nav/data/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19,5 L19,10 C19,12.209139 14.9705627,14 10,14 C5.12689927,14 1.1537547,12.1492238 1,10 L1.00462428,5\",\n id: \"Path-Copy-3\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19,10 L19,15 C19,17.209139 14.9705627,19 10,19 C5.12689927,19 1.1537547,17.1492238 1,15 L1.00462428,10\",\n id: \"Path-Copy-3\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"ellipse\", {\n id: \"Oval-Copy-3\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n cx: 10,\n cy: 5,\n rx: 9,\n ry: 4\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.460daa02.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/customer-nav/note/comet\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18,1 C18.2761424,1 18.5261424,1.11192881 18.7071068,1.29289322 C18.8880712,1.47385763 19,1.72385763 19,2 L19,2 L19,18 C19,18.2761424 18.8880712,18.5261424 18.7071068,18.7071068 C18.5261424,18.8880712 18.2761424,19 18,19 L18,19 L2,19 C1.72385763,19 1.47385763,18.8880712 1.29289322,18.7071068 C1.11192881,18.5261424 1,18.2761424 1,18 L1,18 L1,2 C1,1.72385763 1.11192881,1.47385763 1.29289322,1.29289322 C1.47385763,1.11192881 1.72385763,1 2,1 L2,1 Z\",\n id: \"Rectangle\",\n stroke: \"#5F668A\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 5,\n y1: 5,\n x2: 15,\n y2: 5,\n id: \"Line-4\",\n stroke: \"#5F668A\",\n strokeWidth: 2,\n strokeLinecap: \"round\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 5,\n y1: 13,\n x2: 10,\n y2: 13,\n id: \"Line-4-Copy\",\n stroke: \"#5F668A\",\n strokeWidth: 2,\n strokeLinecap: \"round\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 5,\n y1: 9,\n x2: 15,\n y2: 9,\n id: \"Line-4\",\n stroke: \"#5F668A\",\n strokeWidth: 2,\n strokeLinecap: \"round\"\n}));\n\nfunction SvgComet(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgComet);\nexport default __webpack_public_path__ + \"static/media/comet.0a722656.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/customer-nav/note/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18,1 C18.2761424,1 18.5261424,1.11192881 18.7071068,1.29289322 C18.8880712,1.47385763 19,1.72385763 19,2 L19,2 L19,18 C19,18.2761424 18.8880712,18.5261424 18.7071068,18.7071068 C18.5261424,18.8880712 18.2761424,19 18,19 L18,19 L2,19 C1.72385763,19 1.47385763,18.8880712 1.29289322,18.7071068 C1.11192881,18.5261424 1,18.2761424 1,18 L1,18 L1,2 C1,1.72385763 1.11192881,1.47385763 1.29289322,1.29289322 C1.47385763,1.11192881 1.72385763,1 2,1 L2,1 Z\",\n id: \"Rectangle\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 5,\n y1: 5,\n x2: 15,\n y2: 5,\n id: \"Line-4\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n strokeLinecap: \"round\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 5,\n y1: 13,\n x2: 10,\n y2: 13,\n id: \"Line-4-Copy\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n strokeLinecap: \"round\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 5,\n y1: 9,\n x2: 15,\n y2: 9,\n id: \"Line-4\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n strokeLinecap: \"round\"\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.87f75e06.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/customer-nav/overview/comet\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle\",\n stroke: \"#5F668A\",\n strokeWidth: 2,\n x: 1,\n y: 1,\n width: 7,\n height: 7,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-2\",\n stroke: \"#5F668A\",\n strokeWidth: 2,\n x: 1,\n y: 12,\n width: 7,\n height: 7,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy\",\n stroke: \"#5F668A\",\n strokeWidth: 2,\n x: 12,\n y: 1,\n width: 7,\n height: 7,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-3\",\n stroke: \"#5F668A\",\n strokeWidth: 2,\n x: 12,\n y: 12,\n width: 7,\n height: 7,\n rx: 2\n}));\n\nfunction SvgComet(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgComet);\nexport default __webpack_public_path__ + \"static/media/comet.56af080c.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/customer-nav/overview/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n x: 1,\n y: 1,\n width: 7,\n height: 7,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-2\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n x: 1,\n y: 12,\n width: 7,\n height: 7,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n x: 12,\n y: 1,\n width: 7,\n height: 7,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-3\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n x: 12,\n y: 12,\n width: 7,\n height: 7,\n rx: 2\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.5a37327b.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/customer-nav/photos/comet\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle\",\n stroke: \"#5F668A\",\n strokeWidth: 2,\n x: 1,\n y: 1,\n width: 18,\n height: 18,\n rx: 1\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n stroke: \"#5F668A\",\n strokeWidth: 2,\n cx: 15,\n cy: 5,\n r: 1\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path\",\n stroke: \"#5F668A\",\n strokeWidth: 2,\n strokeLinejoin: \"round\",\n points: \"1 19 7 13 13 19\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.3333333,14 L18,19 L13.3333333,19 L11,16.5 L13.3333333,14 Z\",\n id: \"Combined-Shape\",\n stroke: \"#5F668A\",\n strokeWidth: 2,\n strokeLinejoin: \"round\"\n}));\n\nfunction SvgComet(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/customer-nav/photos/comet\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgComet);\nexport default __webpack_public_path__ + \"static/media/comet.431ab3d7.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/customer-nav/photos/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n x: 1,\n y: 1,\n width: 18,\n height: 18,\n rx: 1\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n cx: 15,\n cy: 5,\n r: 1\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n strokeLinejoin: \"round\",\n points: \"1 19 7 13 13 19\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.3333333,14 L18,19 L13.3333333,19 L11,16.5 L13.3333333,14 Z\",\n id: \"Combined-Shape\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n strokeLinejoin: \"round\"\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/customer-nav/photos/white\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.636f4cd1.svg\";\nexport { ForwardRef as ReactComponent };","import typographyStyles from 'src/components/typography/styles'\nimport { zircon, offDarkColor, white } from 'src/styling/variables'\n\nconst { tl2, p } = typographyStyles\n\nconst sidebarColor = zircon\n\nexport default {\n sidebar: {\n display: 'flex',\n backgroundColor: sidebarColor,\n width: 219,\n flexDirection: 'column',\n borderRadius: 5\n },\n link: {\n alignItems: 'center',\n display: 'flex',\n extend: p,\n position: 'relative',\n color: offDarkColor,\n padding: 15,\n cursor: 'pointer'\n },\n activeLink: {\n display: 'flex',\n alignItems: 'center',\n extend: tl2,\n color: white,\n backgroundColor: offDarkColor,\n '&:first-child': {\n borderRadius: [[5, 5, 0, 0]]\n },\n '&:last-child': {\n borderRadius: [[0, 0, 5, 5]]\n }\n },\n icon: {\n marginRight: 15\n }\n}\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport { ReactComponent as CustomerDataReversedIcon } from 'src/styling/icons/customer-nav/data/comet.svg'\nimport { ReactComponent as CustomerDataIcon } from 'src/styling/icons/customer-nav/data/white.svg'\nimport { ReactComponent as NoteReversedIcon } from 'src/styling/icons/customer-nav/note/comet.svg'\nimport { ReactComponent as NoteIcon } from 'src/styling/icons/customer-nav/note/white.svg'\nimport { ReactComponent as OverviewReversedIcon } from 'src/styling/icons/customer-nav/overview/comet.svg'\nimport { ReactComponent as OverviewIcon } from 'src/styling/icons/customer-nav/overview/white.svg'\nimport { ReactComponent as PhotosReversedIcon } from 'src/styling/icons/customer-nav/photos/comet.svg'\nimport { ReactComponent as Photos } from 'src/styling/icons/customer-nav/photos/white.svg'\n\nimport styles from './CustomerSidebar.styles.js'\n\nconst useStyles = makeStyles(styles)\n\nconst CustomerSidebar = ({ isSelected, onClick }) => {\n const classes = useStyles()\n const sideBarOptions = [\n {\n code: 'overview',\n display: 'Overview',\n Icon: OverviewIcon,\n InverseIcon: OverviewReversedIcon\n },\n {\n code: 'customerData',\n display: 'Customer Data',\n Icon: CustomerDataIcon,\n InverseIcon: CustomerDataReversedIcon\n },\n {\n code: 'notes',\n display: 'Notes',\n Icon: NoteIcon,\n InverseIcon: NoteReversedIcon\n },\n {\n code: 'photos',\n display: 'Photos & files',\n Icon: Photos,\n InverseIcon: PhotosReversedIcon\n }\n ]\n\n return (\n \n {sideBarOptions?.map(({ Icon, InverseIcon, display, code }) => (\n
onClick(code)}>\n
\n {isSelected(code) ? : }\n
\n {display}\n
\n ))}\n
\n )\n}\n\nexport default CustomerSidebar\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"path-1\",\n x: 0,\n y: 0,\n width: 22,\n height: 22\n}));\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/delete/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask-2\",\n fill: \"white\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#path-1\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Background\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 9,\n y1: 9,\n x2: 9,\n y2: 18,\n id: \"Stroke-1\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n mask: \"url(#mask-2)\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 13,\n y1: 9,\n x2: 13,\n y2: 18,\n id: \"Stroke-2\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n mask: \"url(#mask-2)\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-9\",\n mask: \"url(#mask-2)\",\n stroke: \"#FFFFFF\",\n strokeLinecap: \"round\",\n strokeWidth: 2\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(1.000000, 1.000000)\"\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n strokeLinejoin: \"round\",\n points: \"2 5 4 20 16 20 18 5\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 4,\n x2: 20,\n y2: 4,\n id: \"Stroke-5\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13,3 C13,1.343 11.657,0 10,0 C8.343,0 7,1.343 7,3\",\n id: \"Stroke-7\"\n}))));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"22px\",\n height: \"22px\",\n viewBox: \"0 0 22 22\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.144118ff.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/edit/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1,18 L1,18 C1,19.657 2.343,21 4,21 L18,21 C19.657,21 21,19.657 21,18\",\n id: \"Stroke-1\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-3\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n points: \"6 12 17 1 21 5 10 16 6 16\"\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"22px\",\n height: \"22px\",\n viewBox: \"0 0 22 22\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.5f161f2c.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/replace/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-3\",\n transform: \"translate(0.500000, 0.500000)\",\n stroke: \"#FFFFFF\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.27636475,10.2264084 C2.67216087,9.96069246 2.10487152,9.58126145 1.60869691,9.087544 C-0.521488181,6.9675304 -0.538316861,3.54693703 1.57123953,1.44692357 C1.86137314,1.15837428 2.17625375,0.909794042 2.50930653,0.701182852\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"3.0943493 1.69429658 3.08837783 0.545717786 1.99994228 0\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2\",\n transform: \"translate(8.999987, 5.500035) scale(-1, -1) translate(-8.999987, -5.500035) translate(6.999974, 0.000000)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.27636475,10.2264084 C2.67216087,9.96069246 2.10487152,9.58126145 1.60869691,9.087544 C-0.521488181,6.9675304 -0.538316861,3.54693703 1.57123953,1.44692357 C1.86137314,1.15837428 2.17625375,0.909794042 2.50930653,0.701182852\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"3.0943493 1.69429658 3.08837783 0.545717786 1.99994228 3.80623901e-14\"\n}))));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.16f4b162.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"path-1\",\n points: \"0 21 21 21 21 0 0 0\"\n}));\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/save/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-1\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n points: \"20.5 20.5 0.5 20.5 0.5 0.5 16.75 0.5 20.5 4.25\"\n}), /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask-2\",\n fill: \"white\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#path-1\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Clip-4\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-5\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n mask: \"url(#mask-2)\",\n points: \"4.25 7.5 16.75 7.5 16.75 0.5 4.25 0.5\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n mask: \"url(#mask-2)\",\n cx: 11,\n cy: 14,\n r: 3\n})));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.8ccc4767.svg\";\nexport { ForwardRef as ReactComponent };","import { tomato, spring4, comet } from 'src/styling/variables'\n\nexport default {\n label1: {\n display: 'flex',\n width: 85,\n justifyContent: 'right'\n },\n label1Pending: {\n color: comet\n },\n label1Rejected: {\n color: tomato\n },\n label1Accepted: {\n color: spring4\n },\n editButton: {\n marginTop: 20,\n display: 'flex',\n justifyContent: 'right'\n },\n deleteButton: {\n marginRight: 8\n },\n headerWrapper: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n height: 40\n },\n editingWrapper: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n marginTop: 20\n },\n replace: {\n marginRight: 5\n },\n input: {\n display: 'none'\n },\n button: {\n marginRight: 5\n },\n editingButtons: {\n display: 'flex',\n justifyContent: 'right'\n },\n card: {\n borderRadius: 10,\n marginRight: 15,\n marginBottom: 15\n },\n cardHeader: {\n display: 'flex',\n flexDirection: 'row',\n marginBottom: 15\n },\n editIcon: {\n marginTop: 5\n },\n cardIcon: {\n marginTop: 7\n },\n cardTitle: {\n margin: [[8, 15, 15, 15]]\n }\n}\n","import { CardContent, Card, Grid } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport { Form, Formik, Field as FormikField } from 'formik'\nimport * as R from 'ramda'\nimport { useState, React } from 'react'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport PromptWhenDirty from 'src/components/PromptWhenDirty'\nimport { MainStatus } from 'src/components/Status'\n// import { HoverableTooltip } from 'src/components/Tooltip'\nimport { ActionButton } from 'src/components/buttons'\nimport { Label1, P, H3 } from 'src/components/typography'\nimport {\n OVERRIDE_AUTHORIZED,\n OVERRIDE_REJECTED,\n OVERRIDE_PENDING\n} from 'src/pages/Customers/components/propertyCard'\nimport { ReactComponent as DeleteIcon } from 'src/styling/icons/action/delete/enabled.svg'\nimport { ReactComponent as DeleteReversedIcon } from 'src/styling/icons/action/delete/white.svg'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/action/edit/enabled.svg'\nimport { ReactComponent as EditReversedIcon } from 'src/styling/icons/action/edit/white.svg'\nimport { ReactComponent as AuthorizeIcon } from 'src/styling/icons/button/authorize/white.svg'\nimport { ReactComponent as BlockIcon } from 'src/styling/icons/button/block/white.svg'\nimport { ReactComponent as CancelReversedIcon } from 'src/styling/icons/button/cancel/white.svg'\nimport { ReactComponent as DataReversedIcon } from 'src/styling/icons/button/data/white.svg'\nimport { ReactComponent as DataIcon } from 'src/styling/icons/button/data/zodiac.svg'\nimport { ReactComponent as ReplaceReversedIcon } from 'src/styling/icons/button/replace/white.svg'\nimport { ReactComponent as SaveReversedIcon } from 'src/styling/icons/circle buttons/save/white.svg'\nimport { comet } from 'src/styling/variables'\n\nimport styles from './EditableCard.styles.js'\n\nconst useStyles = makeStyles(styles)\n\nconst fieldStyles = {\n field: {\n position: 'relative',\n width: 280,\n height: 48,\n padding: [[0, 4, 4, 0]],\n marginTop: 2\n },\n label: {\n color: comet,\n margin: [[0, 0, 0, 0]]\n },\n notEditing: {\n display: 'flex',\n flexDirection: 'column',\n '& > p:first-child': {\n height: 16,\n lineHeight: '16px',\n transformOrigin: 'left',\n paddingLeft: 0,\n margin: [[3, 0, 3, 0]]\n },\n '& > p:last-child': {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n margin: 0\n }\n },\n editing: {\n '& > div': {\n '& > input': {\n padding: 0,\n fontSize: 14\n }\n }\n },\n readOnlyLabel: {\n color: comet,\n margin: [[3, 0, 3, 0]]\n },\n readOnlyValue: {\n margin: 0\n }\n}\n\nconst fieldUseStyles = makeStyles(fieldStyles)\n\nconst EditableField = ({ editing, field, value, size, ...props }) => {\n const classes = fieldUseStyles()\n const classNames = {\n [classes.field]: true,\n [classes.notEditing]: !editing\n }\n\n return (\n \n {!editing && (\n <>\n
{field.label} \n
{value}
\n >\n )}\n {editing && (\n <>\n
{field.label} \n
\n >\n )}\n
\n )\n}\n\nconst ReadOnlyField = ({ field, value, ...props }) => {\n const classes = fieldUseStyles()\n const classNames = {\n [classes.field]: true,\n [classes.notEditing]: true\n }\n\n return (\n <>\n \n
{field.label} \n
{value}
\n
\n >\n )\n}\n\nconst EditableCard = ({\n fields,\n save,\n authorize,\n hasImage,\n reject,\n state,\n title,\n titleIcon,\n children,\n validationSchema,\n initialValues,\n deleteEditedData,\n retrieveAdditionalData,\n hasAdditionalData = true\n}) => {\n const classes = useStyles()\n\n const [editing, setEditing] = useState(false)\n const [input, setInput] = useState(null)\n const [error, setError] = useState(null)\n\n const triggerInput = () => input.click()\n\n const label1ClassNames = {\n [classes.label1]: true,\n [classes.label1Pending]: state === OVERRIDE_PENDING,\n [classes.label1Rejected]: state === OVERRIDE_REJECTED,\n [classes.label1Accepted]: state === OVERRIDE_AUTHORIZED\n }\n const authorized =\n state === OVERRIDE_PENDING\n ? { label: 'Pending', type: 'neutral' }\n : state === OVERRIDE_REJECTED\n ? { label: 'Rejected', type: 'error' }\n : { label: 'Accepted', type: 'success' }\n\n return (\n \n
\n \n \n
\n {titleIcon}\n
{title} \n {\n // TODO: Enable for next release\n /* */\n }\n \n {state && authorize && (\n
\n \n
\n )}\n
\n {children}\n {\n save(values)\n setEditing(false)\n }}\n onReset={() => {\n setEditing(false)\n setError(false)\n }}>\n {({ setFieldValue }) => (\n \n )}\n \n \n \n
\n )\n}\n\nexport default EditableCard\n","import * as R from 'ramda'\n\nconst ifNotNull = (value, valueIfNotNull) => {\n return R.isNil(value) ? '' : valueIfNotNull\n}\n\nexport { ifNotNull }\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport { Info3, Label1 } from 'src/components/typography'\nimport { comet } from 'src/styling/variables'\n\nconst useStyles = makeStyles({\n field: {\n height: 46\n },\n label: {\n color: comet,\n margin: [[0, 3]]\n },\n value: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n margin: 0,\n paddingLeft: 4\n }\n})\n\nconst Field = memo(({ label, display, size, className }) => {\n const classes = useStyles()\n\n return (\n \n {label} \n {display} \n
\n )\n})\n\nexport default Field\n","import { makeStyles, Box } from '@material-ui/core'\nimport BigNumber from 'bignumber.js'\nimport classnames from 'classnames'\nimport { utils as coinUtils } from '@lamassu/coins'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport DataTable from 'src/components/tables/DataTable'\nimport { H3, H4, Label1, Label2, P } from 'src/components/typography'\nimport { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport { ifNotNull } from 'src/utils/nullCheck'\nimport { formatDate } from 'src/utils/timezones'\n\nimport CopyToClipboard from '../../Transactions/CopyToClipboard'\nimport mainStyles from '../CustomersList.styles'\n\nconst useStyles = makeStyles(mainStyles)\n\nconst TransactionsList = ({ customer, data, loading, locale }) => {\n const classes = useStyles()\n const LastTxIcon = customer.lastTxClass === 'cashOut' ? TxOutIcon : TxInIcon\n const hasData = !(R.isEmpty(data) || R.isNil(data))\n\n const timezone = locale.timezone\n const tableSpacingClasses = {\n [classes.titleAndButtonsContainer]: loading || (!loading && !hasData),\n [classes.txTableSpacing]: !loading && hasData\n }\n\n const summaryElements = [\n {\n header: 'Transactions',\n size: 127,\n value: ifNotNull(\n customer.totalTxs,\n `${Number.parseInt(customer.totalTxs)}`\n )\n },\n {\n header: 'Transaction volume',\n size: 167,\n value: ifNotNull(\n customer.totalSpent,\n `${Number.parseFloat(customer.totalSpent)} ${customer.lastTxFiatCode}`\n )\n },\n {\n header: 'Last active',\n size: 142,\n value:\n !R.isNil(timezone) &&\n ((customer.lastActive &&\n formatDate(customer.lastActive, timezone, 'yyyy-MM-dd')) ??\n '')\n },\n {\n header: 'Last transaction',\n size: 198,\n value: ifNotNull(\n customer.lastTxFiat,\n <>\n \n {`${Number.parseFloat(customer.lastTxFiat)} \n ${customer.lastTxFiatCode}`}\n >\n )\n }\n ]\n\n const tableElements = [\n {\n width: 40,\n view: it => (\n <>\n {it.txClass === 'cashOut' ? (\n \n ) : (\n \n )}\n >\n )\n },\n {\n header: 'Machine',\n width: 160,\n view: R.path(['machineName'])\n },\n {\n header: 'Transaction ID',\n width: 145,\n view: it => (\n {it.id} \n )\n },\n {\n header: 'Cash',\n width: 155,\n textAlign: 'right',\n view: it => (\n <>\n {`${Number.parseFloat(it.fiat)} `}\n {it.fiatCode} \n >\n )\n },\n {\n header: 'Crypto',\n width: 145,\n textAlign: 'right',\n view: it => (\n <>\n {`${coinUtils\n .toUnit(new BigNumber(it.cryptoAtoms), it.cryptoCode)\n .toFormat(5)} `}\n {it.cryptoCode} \n >\n )\n },\n {\n header: 'Date',\n width: 100,\n view: it => formatDate(it.created, timezone, 'yyyy-MM-dd')\n },\n {\n header: 'Time (h:m:s)',\n width: 130,\n view: it => formatDate(it.created, timezone, 'HH:mm:ss')\n }\n ]\n\n return (\n <>\n Transactions \n \n \n {summaryElements.map(({ size, header }, idx) => (\n \n {header}\n \n ))}\n \n \n {summaryElements.map(({ size, value }, idx) => (\n \n {value}\n
\n ))}\n \n \n \n
\n {loading ? (\n
Loading \n ) : hasData ? (\n ''\n ) : (\n No transactions so far \n )}\n \n
\n {hasData && }\n >\n )\n}\n\nexport default TransactionsList\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/photo/zodiac-resized\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group\",\n transform: \"translate(11.666667, 8.333333) scale(-1, 1) translate(-11.666667, -8.333333) translate(3.333333, 0.000000)\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy\",\n x: 0.5,\n y: 0.5,\n width: 15.6666667,\n height: 15.6666667,\n rx: 1\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-Copy\",\n fill: \"#1B2559\",\n cx: 12.5,\n cy: 4.16666667,\n r: 1\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-14\",\n transform: \"translate(0.775621, 9.722222)\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path-Copy-2\",\n points: \"0 4.58204149 5.10673153 0 11.6154223 6.31150113\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path\",\n points: \"9.02830015 3.23981481 11.3158819 0.925925926 15.0663146 4.81868037\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-9\",\n transform: \"translate(0.000000, 6.666667)\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n stroke: \"#1B2559\",\n fill: \"#EBEFFF\",\n cx: 6.66666667,\n cy: 6.66666667,\n r: 6.16666667\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Path\",\n fill: \"#1B2559\",\n fillRule: \"nonzero\",\n points: \"7.22222222 6.11111111 10 6.11111111 10 7.22222222 7.22222222 7.22222222 7.22222222 10 6.11111111 10 6.11111111 7.22222222 3.33333333 7.22222222 3.33333333 6.11111111 6.11111111 6.11111111 6.11111111 3.33333333 7.22222222 3.33333333\"\n}))));\n\nfunction SvgZodiacResized(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiacResized);\nexport default __webpack_public_path__ + \"static/media/zodiac-resized.70523fd1.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/upload-file/zodiac-resized\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Add-File-Icon\",\n transform: \"translate(0.000000, 0.500000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"file-icon\",\n transform: \"translate(5.934783, 0.000000)\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"lines\",\n transform: \"translate(3.130435, 7.826087)\",\n strokeLinecap: \"round\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 7.04347826,\n x2: 7.82608696,\n y2: 7.04347826,\n id: \"line-3\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 3.91304348,\n x2: 7.82608696,\n y2: 3.91304348,\n id: \"line-2\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 0.782608696,\n x2: 5.47826087,\n y2: 0.782608696,\n id: \"line-1\"\n})), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"paper\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n points: \"13.5652174 18.6521739 0 18.6521739 -1.18243096e-12 0 8.47826087 2.91569667e-12 13.5652174 5.08695652\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"fold\",\n strokeLinejoin: \"round\",\n points: \"8.47826087 0 8.47826087 5.08695652 13.5652174 5.08695652\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"plus-sign\",\n transform: \"translate(0.000000, 5.934783)\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n stroke: \"#1B2559\",\n fill: \"#EBEFFF\",\n cx: 6.7826087,\n cy: 6.7826087,\n r: 6.2826087\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Path\",\n fill: \"#1B2559\",\n fillRule: \"nonzero\",\n points: \"7.34782609 6.2173913 10.173913 6.2173913 10.173913 7.34782609 7.34782609 7.34782609 7.34782609 10.173913 6.2173913 10.173913 6.2173913 7.34782609 3.39130435 7.34782609 3.39130435 6.2173913 6.2173913 6.2173913 6.2173913 3.39130435 7.34782609 3.39130435\"\n}))));\n\nfunction SvgZodiacResized(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiacResized);\nexport default __webpack_public_path__ + \"static/media/zodiac-resized.c4907e4b.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core/styles'\nimport { useFormikContext } from 'formik'\nimport * as R from 'ramda'\nimport React, { useState, useCallback } from 'react'\nimport { useDropzone } from 'react-dropzone'\n\nimport { Label3, H3 } from 'src/components/typography'\nimport { ReactComponent as UploadPhotoIcon } from 'src/styling/icons/button/photo/zodiac-resized.svg'\nimport { ReactComponent as UploadFileIcon } from 'src/styling/icons/button/upload-file/zodiac-resized.svg'\nimport { offColor, subheaderColor } from 'src/styling/variables'\n\nconst useStyles = makeStyles({\n box: {\n boxSizing: 'border-box',\n width: 450,\n height: 120,\n borderStyle: 'dashed',\n borderColor: offColor,\n borderRadius: 4,\n borderWidth: 1,\n backgroundColor: subheaderColor,\n display: 'flex',\n justifyContent: 'center'\n },\n inputContent: {\n marginTop: 35,\n display: 'flex'\n },\n uploadContent: {\n marginTop: 50,\n display: 'flex'\n },\n board: {\n marginTop: 40,\n width: 450,\n height: 120\n },\n icon: {\n margin: [[14, 20, 0, 0]]\n }\n})\n\nconst Upload = ({ type }) => {\n const classes = useStyles()\n\n const [data, setData] = useState({})\n\n const { setFieldValue } = useFormikContext()\n\n const IMAGE = 'image'\n const ID_CARD_PHOTO = 'idCardPhoto'\n const FRONT_CAMERA = 'frontCamera'\n\n const isImage =\n type === IMAGE || type === FRONT_CAMERA || type === ID_CARD_PHOTO\n\n const onDrop = useCallback(\n acceptedData => {\n setFieldValue(type, R.head(acceptedData))\n\n setData({\n preview: isImage\n ? URL.createObjectURL(R.head(acceptedData))\n : R.head(acceptedData).name\n })\n },\n [isImage, type, setFieldValue]\n )\n\n const { getRootProps, getInputProps } = useDropzone({ onDrop })\n\n return (\n <>\n \n {R.isEmpty(data) && (\n
\n
\n
\n {isImage ? (\n \n ) : (\n \n )}\n {`Drag and drop ${\n isImage ? 'an image' : 'a file'\n } or click to open the explorer`} \n
\n
\n )}\n {!R.isEmpty(data) && isImage && (\n
\n
\n
\n )}\n {!R.isEmpty(data) && !isImage && (\n
\n
{data.preview} \n \n )}\n
\n >\n )\n}\n\nexport default Upload\n","import { DialogActions, DialogContent, Dialog } from '@material-ui/core'\nimport Grid from '@material-ui/core/Grid'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { parse, format } from 'date-fns/fp'\nimport * as R from 'ramda'\nimport { useState, React } from 'react'\nimport * as Yup from 'yup'\n\nimport ImagePopper from 'src/components/ImagePopper'\nimport { FeatureButton, Button, IconButton } from 'src/components/buttons'\nimport { TextInput } from 'src/components/inputs/formik'\nimport { H3, Info3, H2 } from 'src/components/typography'\nimport {\n OVERRIDE_AUTHORIZED,\n OVERRIDE_REJECTED\n} from 'src/pages/Customers/components/propertyCard'\nimport { ReactComponent as CardIcon } from 'src/styling/icons/ID/card/comet.svg'\nimport { ReactComponent as PhoneIcon } from 'src/styling/icons/ID/phone/comet.svg'\nimport { ReactComponent as CrossedCameraIcon } from 'src/styling/icons/ID/photo/crossed-camera.svg'\nimport { ReactComponent as CloseIcon } from 'src/styling/icons/action/close/zodiac.svg'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/action/edit/comet.svg'\nimport { ReactComponent as CustomerListViewReversedIcon } from 'src/styling/icons/circle buttons/customer-list-view/white.svg'\nimport { ReactComponent as CustomerListViewIcon } from 'src/styling/icons/circle buttons/customer-list-view/zodiac.svg'\nimport { ReactComponent as OverviewReversedIcon } from 'src/styling/icons/circle buttons/overview/white.svg'\nimport { ReactComponent as OverviewIcon } from 'src/styling/icons/circle buttons/overview/zodiac.svg'\nimport { URI } from 'src/utils/apollo'\nimport { onlyFirstToUpper } from 'src/utils/string'\n\nimport styles from './CustomerData.styles.js'\nimport { EditableCard } from './components'\nimport {\n customerDataElements,\n customerDataSchemas,\n formatDates,\n getFormattedPhone\n} from './helper.js'\n\nconst useStyles = makeStyles(styles)\n\nconst IMAGE_WIDTH = 165\nconst IMAGE_HEIGHT = 32\nconst POPUP_IMAGE_WIDTH = 360\nconst POPUP_IMAGE_HEIGHT = 240\n\nconst Photo = ({ show, src }) => {\n const classes = useStyles({ width: IMAGE_WIDTH })\n\n return (\n <>\n {show ? (\n \n ) : (\n \n \n
\n )}\n >\n )\n}\n\nconst CustomerData = ({\n locale,\n customer,\n updateCustomer,\n replacePhoto,\n editCustomer,\n deleteEditedData,\n updateCustomRequest,\n authorizeCustomRequest,\n updateCustomEntry,\n retrieveAdditionalData\n}) => {\n const classes = useStyles()\n const [listView, setListView] = useState(false)\n const [retrieve, setRetrieve] = useState(false)\n\n const idData = R.path(['idCardData'])(customer)\n const rawExpirationDate = R.path(['expirationDate'])(idData)\n const rawDob = R.path(['dateOfBirth'])(idData)\n\n const sanctions = R.path(['sanctions'])(customer)\n const sanctionsAt = R.path(['sanctionsAt'])(customer)\n const sanctionsDisplay = !sanctionsAt\n ? 'Not checked yet'\n : sanctions\n ? 'Passed'\n : 'Failed'\n\n const sortByName = R.sortBy(\n R.compose(R.toLower, R.path(['customInfoRequest', 'customRequest', 'name']))\n )\n\n const customFields = []\n const customRequirements = []\n const customInfoRequests = sortByName(\n R.path(['customInfoRequests'])(customer) ?? []\n )\n\n const phone = R.path(['phone'])(customer)\n const smsData = R.path(['subscriberInfo', 'result'])(customer)\n\n const isEven = elem => elem % 2 === 0\n\n const getVisibleCards = R.filter(elem => elem.isAvailable)\n\n const initialValues = {\n idCardData: {\n firstName: R.path(['firstName'])(idData) ?? '',\n lastName: R.path(['lastName'])(idData) ?? '',\n documentNumber: R.path(['documentNumber'])(idData) ?? '',\n dateOfBirth:\n (rawDob &&\n format('yyyy-MM-dd')(parse(new Date(), 'yyyyMMdd', rawDob))) ??\n '',\n gender: R.path(['gender'])(idData) ?? '',\n country: R.path(['country'])(idData) ?? '',\n expirationDate:\n (rawExpirationDate &&\n format('yyyy-MM-dd')(\n parse(new Date(), 'yyyyMMdd', rawExpirationDate)\n )) ??\n ''\n },\n usSsn: {\n usSsn: customer.usSsn ?? ''\n },\n frontCamera: {\n frontCamera: null\n },\n idCardPhoto: {\n idCardPhoto: null\n },\n smsData: {\n phoneNumber: getFormattedPhone(phone, locale.country)\n }\n }\n\n const smsDataElements = [\n {\n name: 'phoneNumber',\n label: 'Phone number',\n component: TextInput,\n editable: false\n }\n ]\n\n const smsDataSchema = {\n smsData: Yup.lazy(values => {\n const additionalData = R.omit(['phoneNumber'])(values)\n const fields = R.keys(additionalData)\n if (R.length(fields) === 2) {\n return Yup.object().shape({\n [R.head(fields)]: Yup.string().required(),\n [R.last(fields)]: Yup.string().required()\n })\n }\n })\n }\n\n const cards = [\n {\n fields: customerDataElements.idCardData,\n title: 'ID Scan',\n titleIcon: ,\n state: R.path(['idCardDataOverride'])(customer),\n authorize: () =>\n updateCustomer({ idCardDataOverride: OVERRIDE_AUTHORIZED }),\n reject: () => updateCustomer({ idCardDataOverride: OVERRIDE_REJECTED }),\n deleteEditedData: () => deleteEditedData({ idCardData: null }),\n save: values =>\n editCustomer({\n idCardData: R.merge(idData, formatDates(values))\n }),\n validationSchema: customerDataSchemas.idCardData,\n initialValues: initialValues.idCardData,\n isAvailable: !R.isNil(idData)\n },\n {\n fields: smsDataElements,\n title: 'SMS data',\n titleIcon: ,\n state: R.path(['phoneOverride'])(customer),\n authorize: () => updateCustomer({ phoneOverride: OVERRIDE_AUTHORIZED }),\n reject: () => updateCustomer({ phoneOverride: OVERRIDE_REJECTED }),\n save: values => {\n editCustomer({\n subscriberInfo: {\n result: R.merge(smsData, R.omit(['phoneNumber'])(values))\n }\n })\n },\n validationSchema: smsDataSchema.smsData,\n retrieveAdditionalData: () => setRetrieve(true),\n initialValues: initialValues.smsData,\n isAvailable: !R.isNil(phone),\n hasAdditionalData: !R.isNil(smsData) && !R.isEmpty(smsData)\n },\n {\n title: 'Name',\n titleIcon: ,\n authorize: () => {},\n reject: () => {},\n save: () => {},\n isAvailable: false\n },\n {\n title: 'Sanctions check',\n titleIcon: ,\n state: R.path(['sanctionsOverride'])(customer),\n authorize: () =>\n updateCustomer({ sanctionsOverride: OVERRIDE_AUTHORIZED }),\n reject: () => updateCustomer({ sanctionsOverride: OVERRIDE_REJECTED }),\n children: {sanctionsDisplay} ,\n isAvailable: !R.isNil(sanctions)\n },\n {\n fields: customerDataElements.frontCamera,\n title: 'Front facing camera',\n titleIcon: ,\n state: R.path(['frontCameraOverride'])(customer),\n authorize: () =>\n updateCustomer({ frontCameraOverride: OVERRIDE_AUTHORIZED }),\n reject: () => updateCustomer({ frontCameraOverride: OVERRIDE_REJECTED }),\n save: values =>\n replacePhoto({\n newPhoto: values.frontCamera,\n photoType: 'frontCamera'\n }),\n deleteEditedData: () => deleteEditedData({ frontCamera: null }),\n children: customer.frontCameraPath ? (\n \n ) : null,\n hasImage: true,\n validationSchema: customerDataSchemas.frontCamera,\n initialValues: initialValues.frontCamera,\n isAvailable: !R.isNil(customer.frontCameraPath)\n },\n {\n fields: customerDataElements.idCardPhoto,\n title: 'ID card image',\n titleIcon: ,\n state: R.path(['idCardPhotoOverride'])(customer),\n authorize: () =>\n updateCustomer({ idCardPhotoOverride: OVERRIDE_AUTHORIZED }),\n reject: () => updateCustomer({ idCardPhotoOverride: OVERRIDE_REJECTED }),\n save: values =>\n replacePhoto({\n newPhoto: values.idCardPhoto,\n photoType: 'idCardPhoto'\n }),\n deleteEditedData: () => deleteEditedData({ idCardPhoto: null }),\n children: customer.idCardPhotoPath ? (\n \n ) : null,\n hasImage: true,\n validationSchema: customerDataSchemas.idCardPhoto,\n initialValues: initialValues.idCardPhoto,\n isAvailable: !R.isNil(customer.idCardPhotoPath)\n },\n {\n fields: customerDataElements.usSsn,\n title: 'US SSN',\n titleIcon: ,\n state: R.path(['usSsnOverride'])(customer),\n authorize: () => updateCustomer({ usSsnOverride: OVERRIDE_AUTHORIZED }),\n reject: () => updateCustomer({ usSsnOverride: OVERRIDE_REJECTED }),\n save: values => editCustomer(values),\n deleteEditedData: () => deleteEditedData({ usSsn: null }),\n validationSchema: customerDataSchemas.usSsn,\n initialValues: initialValues.usSsn,\n isAvailable: !R.isNil(customer.usSsn)\n }\n ]\n\n R.forEach(it => {\n customRequirements.push({\n fields: [\n {\n name: it.customInfoRequest.id,\n label: it.customInfoRequest.customRequest.name,\n value: it.customerData.data ?? '',\n component: TextInput,\n editable: true\n }\n ],\n title: it.customInfoRequest.customRequest.name,\n titleIcon: ,\n state: R.path(['override'])(it),\n authorize: () =>\n authorizeCustomRequest({\n variables: {\n customerId: it.customerId,\n infoRequestId: it.customInfoRequest.id,\n override: OVERRIDE_AUTHORIZED\n }\n }),\n reject: () =>\n authorizeCustomRequest({\n variables: {\n customerId: it.customerId,\n infoRequestId: it.customInfoRequest.id,\n override: OVERRIDE_REJECTED\n }\n }),\n save: values => {\n updateCustomRequest({\n variables: {\n customerId: it.customerId,\n infoRequestId: it.customInfoRequest.id,\n data: {\n info_request_id: it.customInfoRequest.id,\n data: values[it.customInfoRequest.id]\n }\n }\n })\n },\n deleteEditedData: () => {},\n validationSchema: Yup.object().shape({\n [it.customInfoRequest.id]: Yup.string()\n }),\n initialValues: {\n [it.customInfoRequest.id]: it.customerData.data ?? ''\n }\n })\n }, customInfoRequests)\n\n R.forEach(it => {\n customFields.push({\n fields: [\n {\n name: it.label,\n label: it.label,\n value: it.value ?? '',\n component: TextInput,\n editable: true\n }\n ],\n title: it.label,\n titleIcon: ,\n save: values => {\n updateCustomEntry({\n fieldId: it.id,\n value: values[it.label]\n })\n },\n deleteEditedData: () => {},\n validationSchema: Yup.object().shape({\n [it.label]: Yup.string()\n }),\n initialValues: {\n [it.label]: it.value ?? ''\n }\n })\n }, R.path(['customFields'])(customer) ?? [])\n\n R.forEach(it => {\n initialValues.smsData[it] = smsData[it]\n smsDataElements.push({\n name: it,\n label: onlyFirstToUpper(it),\n component: TextInput,\n editable: true\n })\n }, R.keys(smsData) ?? [])\n\n const editableCard = (\n {\n title,\n authorize,\n reject,\n state,\n titleIcon,\n fields,\n save,\n deleteEditedData,\n retrieveAdditionalData,\n children,\n validationSchema,\n initialValues,\n hasImage,\n hasAdditionalData\n },\n idx\n ) => {\n return (\n \n )\n }\n\n const visibleCards = getVisibleCards(cards)\n\n return (\n \n
\n
{'Customer data'} \n {// TODO: Remove false condition for next release\n false && (\n <>\n setListView(false)}\n />\n setListView(true)}> \n >\n )}\n \n
\n {!listView && customer && (\n
\n \n {visibleCards.map((elem, idx) => {\n return isEven(idx) ? editableCard(elem, idx) : null\n })}\n \n \n {visibleCards.map((elem, idx) => {\n return !isEven(idx) ? editableCard(elem, idx) : null\n })}\n \n \n )}\n {!R.isEmpty(customFields) && (\n
\n Custom data entry \n \n \n {customFields.map((elem, idx) => {\n return isEven(idx) ? editableCard(elem, idx) : null\n })}\n \n \n {customFields.map((elem, idx) => {\n return !isEven(idx) ? editableCard(elem, idx) : null\n })}\n \n \n
\n )}\n {!R.isEmpty(customRequirements) && (\n
\n Custom requirements \n \n \n {customRequirements.map((elem, idx) => {\n return isEven(idx) ? editableCard(elem, idx) : null\n })}\n \n \n {customRequirements.map((elem, idx) => {\n return !isEven(idx) ? editableCard(elem, idx) : null\n })}\n \n \n
\n )}\n
\n
\n
\n )\n}\n\nconst RetrieveDataDialog = ({\n setRetrieve,\n retrieveAdditionalData,\n open,\n props\n}) => {\n const classes = useStyles()\n\n return (\n \n \n setRetrieve(false)}>\n \n \n
\n {'Retrieve API data from Twilio'} \n \n {`With this action you'll be using Twilio's API to retrieve additional\n data from this user. This includes name and address, if available.\\n`} \n {` There is a small cost from Twilio for each retrieval. Would you like\n to proceed?`} \n \n \n setRetrieve(false)}>\n Cancel\n \n {\n retrieveAdditionalData()\n setRetrieve(false)\n }}>\n Confirm\n \n \n \n )\n}\n\nexport default CustomerData\n","const styles = {\n header: {\n display: 'flex',\n flexDirection: 'row'\n },\n title: {\n marginTop: 7,\n marginRight: 24\n },\n notesChipList: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap'\n }\n}\n\nexport default styles\n","import { zircon } from 'src/styling/variables'\n\nconst styles = {\n noteCardWrapper: {\n flexGrow: 0,\n flexShrink: 0,\n flexBasis: `25%`,\n minWidth: 0,\n maxWidth: 500,\n '&:nth-child(4n+1)': {\n '& > div': {\n margin: [[0, 10, 0, 0]]\n }\n },\n '&:nth-child(4n)': {\n '& > div': {\n margin: [[0, 0, 0, 10]]\n }\n },\n margin: [[10, 0]]\n },\n noteCardChip: {\n height: 200,\n margin: [[0, 10]],\n padding: [[10, 10]],\n cursor: 'pointer'\n },\n newNoteCard: {\n backgroundColor: zircon,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center'\n },\n noteCardHeader: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n width: '100%'\n },\n noteCardTitle: {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n marginRight: 10\n },\n noteCardContent: {\n display: 'box',\n lineClamp: 7,\n boxOrient: 'vertical',\n margin: [[15, 0]],\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n wordWrap: 'break-word'\n },\n editCardChip: {\n height: 325,\n padding: 15\n },\n editCardHeader: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginBottom: 15\n },\n editCardActions: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n '& > *': {\n marginRight: 10\n },\n '& > *:last-child': {\n marginRight: 0\n }\n },\n editNotesContent: {\n '& > div': {\n '&:after': {\n borderBottom: 'none'\n },\n '&:before': {\n borderBottom: 'none'\n },\n '&:hover:not(.Mui-disabled)::before': {\n borderBottom: 'none'\n }\n }\n }\n}\n\nexport default styles\n","import { makeStyles, Paper } from '@material-ui/core'\nimport classNames from 'classnames'\nimport { React } from 'react'\n\nimport { P } from 'src/components/typography'\nimport { ReactComponent as AddIcon } from 'src/styling/icons/button/add/zodiac.svg'\n\nimport styles from './NoteCard.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst NewNoteCard = ({ setOpenModal }) => {\n const classes = useStyles()\n return (\n setOpenModal(true)}>\n
\n \n Add new
\n \n
\n )\n}\n\nexport default NewNoteCard\n","import { spacer } from 'src/styling/variables'\n\nconst styles = {\n form: {\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n '& > *': {\n marginTop: 20\n },\n '& > *:last-child': {\n marginTop: 'auto'\n }\n },\n submit: {\n margin: [['auto', 0, 0, 'auto']]\n },\n footer: {\n display: 'flex',\n flexDirection: 'row',\n margin: [['auto', 0, spacer * 3, 0]]\n }\n}\n\nexport default styles\n","import { makeStyles } from '@material-ui/core/styles'\nimport { Form, Formik, Field } from 'formik'\nimport { React } from 'react'\nimport * as Yup from 'yup'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Modal from 'src/components/Modal'\nimport { Button } from 'src/components/buttons'\nimport { TextInput } from 'src/components/inputs/formik'\n\nimport styles from './NewNoteModal.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst initialValues = {\n title: '',\n content: ''\n}\n\nconst validationSchema = Yup.object().shape({\n title: Yup.string()\n .required()\n .trim()\n .max(25),\n content: Yup.string().required()\n})\n\nconst NewNoteModal = ({ showModal, onClose, onSubmit, errorMsg }) => {\n const classes = useStyles()\n\n return (\n <>\n \n {\n onSubmit({ title, content })\n }}>\n \n \n \n >\n )\n}\n\nexport default NewNoteModal\n","import { makeStyles, Paper } from '@material-ui/core'\nimport * as R from 'ramda'\nimport { React } from 'react'\n\nimport { H3, P } from 'src/components/typography'\nimport { ReactComponent as DeleteIcon } from 'src/styling/icons/action/delete/enabled.svg'\nimport { formatDate } from 'src/utils/timezones'\n\nimport styles from './NoteCard.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst formatContent = content => {\n const fragments = R.split(/\\n/)(content)\n return R.map((it, idx) => {\n if (idx === fragments.length) return <>{it}>\n return (\n <>\n {it}\n \n >\n )\n }, fragments)\n}\n\nconst NoteCard = ({ note, deleteNote, handleClick, timezone }) => {\n const classes = useStyles()\n\n return (\n \n
handleClick(note)}>\n \n
\n
{note?.title} \n
{formatDate(note?.created, timezone, 'yyyy-MM-dd')}
\n
\n
\n {\n e.stopPropagation()\n deleteNote({ noteId: note.id })\n }}\n />\n
\n
\n \n {formatContent(note?.content)}\n
\n \n
\n )\n}\n\nexport default NoteCard\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"path-1\",\n points: \"0 21 21 21 21 0 0 0\"\n}));\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/save/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-10\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-6\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-1\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n points: \"20.5 20.5 0.5 20.5 0.5 0.5 16.75 0.5 20.5 4.25\"\n}), /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask-2\",\n fill: \"white\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#path-1\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Clip-4\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-5\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n mask: \"url(#mask-2)\",\n points: \"4.25 7.5 16.75 7.5 16.75 0.5 4.25 0.5\"\n}))), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n cx: 11,\n cy: 14,\n r: 3\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.9be6e999.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles, Paper } from '@material-ui/core'\nimport { formatDurationWithOptions, intervalToDuration } from 'date-fns/fp'\nimport { Form, Formik, Field } from 'formik'\nimport { React, useRef } from 'react'\nimport * as Yup from 'yup'\n\nimport { ActionButton } from 'src/components/buttons'\nimport { TextInput } from 'src/components/inputs/formik'\nimport { P } from 'src/components/typography'\nimport { ReactComponent as CancelIconInverse } from 'src/styling/icons/button/cancel/white.svg'\nimport { ReactComponent as CancelIcon } from 'src/styling/icons/button/cancel/zodiac.svg'\nimport { ReactComponent as SaveIconInverse } from 'src/styling/icons/circle buttons/save/white.svg'\nimport { ReactComponent as SaveIcon } from 'src/styling/icons/circle buttons/save/zodiac.svg'\nimport { toTimezone } from 'src/utils/timezones'\n\nimport styles from './NoteCard.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst NoteEdit = ({ note, cancel, edit, timezone }) => {\n const formRef = useRef()\n const classes = useStyles()\n\n const validationSchema = Yup.object().shape({\n content: Yup.string()\n })\n\n const initialValues = {\n content: note.content\n }\n\n return (\n \n \n
\n {`Last edited `}\n {formatDurationWithOptions(\n { delimited: ', ' },\n intervalToDuration({\n start: toTimezone(new Date(note.lastEditedAt), timezone),\n end: toTimezone(new Date(), timezone)\n })\n )}\n {` ago`}\n
\n
\n
\n {`Cancel`}\n \n
\n {`Save changes`}\n \n
formRef.current.setFieldValue('content', '')}>\n {`Clear content`}\n \n
\n
\n \n edit({\n noteId: note.id,\n newContent: content,\n oldContent: note.content\n })\n }\n innerRef={formRef}>\n \n \n \n )\n}\n\nexport default NoteEdit\n","import { makeStyles } from '@material-ui/core'\nimport * as R from 'ramda'\nimport { React, useState } from 'react'\n\nimport { H3 } from 'src/components/typography'\n\nimport styles from './CustomerNotes.styles'\nimport NewNoteCard from './components/notes/NewNoteCard'\nimport NewNoteModal from './components/notes/NewNoteModal'\nimport NoteCard from './components/notes/NoteCard'\nimport NoteEdit from './components/notes/NoteEdit'\n\nconst useStyles = makeStyles(styles)\n\nconst CustomerNotes = ({\n customer,\n createNote,\n deleteNote,\n editNote,\n timezone\n}) => {\n const classes = useStyles()\n const [openModal, setOpenModal] = useState(false)\n const [editing, setEditing] = useState(null)\n\n const customerNotes = R.sort(\n (a, b) => new Date(b?.created).getTime() - new Date(a?.created).getTime(),\n customer.notes ?? []\n )\n\n const handleModalClose = () => {\n setOpenModal(false)\n }\n\n const handleModalSubmit = it => {\n createNote(it)\n return handleModalClose()\n }\n\n const cancelNoteEditing = () => {\n setEditing(null)\n }\n\n const submitNoteEditing = it => {\n if (!R.equals(it.newContent, it.oldContent)) {\n editNote({\n noteId: it.noteId,\n newContent: it.newContent\n })\n }\n setEditing(null)\n }\n\n return (\n \n
\n
{'Notes'} \n \n {R.isNil(editing) && (\n
\n \n {R.map(\n it => (\n \n ),\n customerNotes\n )}\n
\n )}\n {!R.isNil(editing) && (\n
\n )}\n {openModal && (\n
\n )}\n
\n )\n}\n\nexport default CustomerNotes\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/ID/photo/new/comet\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12,14 C9.7912,14 8,12.2088 8,10 C8,7.7912 9.7912,6 12,6 C14.2088,6 16,7.7912 16,10 C16,12.2088 14.2088,14 12,14 Z M16.7142857,3.4 L14.3571429,1 L9.64285714,1 L7.28571429,3.4 L1,3.4 L1,17 L23,17 L23,3.4 L16.7142857,3.4 Z\",\n id: \"Stroke-1\",\n stroke: \"#5F668A\",\n strokeWidth: 1.6\n}));\n\nfunction SvgComet(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"24px\",\n height: \"18px\",\n viewBox: \"0 0 24 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/ID/photo/new/comet\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgComet);\nexport default __webpack_public_path__ + \"static/media/comet.8877f6c3.svg\";\nexport { ForwardRef as ReactComponent };","const styles = {\n header: {\n display: 'flex',\n flexDirection: 'row'\n },\n title: {\n marginTop: 7,\n marginRight: 24,\n marginBottom: 32\n },\n photosChipList: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap'\n },\n image: {\n objectFit: 'cover',\n objectPosition: 'center',\n width: 224,\n height: 200,\n borderTopLeftRadius: 4,\n borderTopRightRadius: 4\n },\n photoCardChip: {\n margin: [[0, 16, 0, 0]]\n },\n footer: {\n display: 'flex',\n flexDirection: 'row',\n margin: [[8, 0, 0, 8]]\n },\n date: {\n margin: [[0, 0, 8, 12]]\n }\n}\n\nexport default styles\n","import { makeStyles, Paper } from '@material-ui/core'\nimport { format } from 'date-fns/fp'\nimport * as R from 'ramda'\nimport { React, useState } from 'react'\n\nimport { InformativeDialog } from 'src/components/InformativeDialog'\nimport { Label2, H3 } from 'src/components/typography'\nimport { ReactComponent as CameraIcon } from 'src/styling/icons/ID/photo/comet.svg'\nimport { URI } from 'src/utils/apollo'\n\nimport styles from './CustomerPhotos.styles'\nimport PhotosCarousel from './components/PhotosCarousel'\n\nconst useStyles = makeStyles(styles)\n\nconst CustomerPhotos = ({ photosData }) => {\n const classes = useStyles()\n\n const [photosDialog, setPhotosDialog] = useState(false)\n const [photoClickedIndex, setPhotoClickIndex] = useState(null)\n const orderedPhotosData = !R.isNil(photoClickedIndex)\n ? R.compose(R.flatten, R.reverse, R.splitAt(photoClickedIndex))(photosData)\n : photosData\n\n return (\n \n
\n
{'Photos & files'} \n \n
\n {photosData.map((elem, idx) => (\n
\n ))}\n
\n
}\n onDissmised={() => {\n setPhotosDialog(false)\n setPhotoClickIndex(null)\n }}\n />\n
\n )\n}\n\nexport const PhotoCard = ({\n idx,\n date,\n src,\n setPhotosDialog,\n setPhotoClickIndex\n}) => {\n const classes = useStyles()\n\n return (\n {\n setPhotoClickIndex(idx)\n setPhotosDialog(true)\n }}>\n \n \n \n \n {format('yyyy-MM-dd', new Date(date))}\n \n
\n \n )\n}\n\nexport default CustomerPhotos\n","import { comet, subheaderColor } from 'src/styling/variables'\n\nexport default {\n labelLink: {\n cursor: 'pointer',\n color: comet\n },\n breadcrumbs: {\n margin: [[20, 0]]\n },\n actionLabel: {\n color: comet,\n margin: [[4, 0]]\n },\n customerDetails: {\n marginBottom: 18\n },\n actionButton: {\n margin: [[0, 0, 4, 0]],\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center'\n },\n actionBar: {\n display: 'flex',\n flexDirection: 'column',\n width: 219\n },\n panels: {\n display: 'flex'\n },\n rightSidePanel: {\n display: 'block',\n width: 1100\n },\n leftSidePanel: {\n width: 300,\n '& > *': {\n marginBottom: 25\n },\n '& > *:last-child': {\n marginBottom: 0\n },\n '& > *:first-child': {\n marginBottom: 50\n }\n },\n userStatusAction: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n backgroundColor: subheaderColor,\n borderRadius: 8,\n padding: [[0, 5]]\n }\n}\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles, Breadcrumbs, Box } from '@material-ui/core'\nimport NavigateNextIcon from '@material-ui/icons/NavigateNext'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { memo, useState } from 'react'\nimport { useHistory, useParams } from 'react-router-dom'\n\nimport { ActionButton } from 'src/components/buttons'\nimport { Switch } from 'src/components/inputs'\nimport { Label1, Label2 } from 'src/components/typography'\nimport {\n OVERRIDE_AUTHORIZED,\n OVERRIDE_REJECTED\n} from 'src/pages/Customers/components/propertyCard'\nimport { ReactComponent as AuthorizeReversedIcon } from 'src/styling/icons/button/authorize/white.svg'\nimport { ReactComponent as AuthorizeIcon } from 'src/styling/icons/button/authorize/zodiac.svg'\nimport { ReactComponent as BlockReversedIcon } from 'src/styling/icons/button/block/white.svg'\nimport { ReactComponent as BlockIcon } from 'src/styling/icons/button/block/zodiac.svg'\nimport { ReactComponent as DataReversedIcon } from 'src/styling/icons/button/data/white.svg'\nimport { ReactComponent as DataIcon } from 'src/styling/icons/button/data/zodiac.svg'\n// TODO: Enable for next release\n// import { ReactComponent as DiscountReversedIcon } from 'src/styling/icons/button/discount/white.svg'\n// import { ReactComponent as Discount } from 'src/styling/icons/button/discount/zodiac.svg'\nimport { fromNamespace, namespaces } from 'src/utils/config'\n\nimport CustomerData from './CustomerData'\nimport CustomerNotes from './CustomerNotes'\nimport CustomerPhotos from './CustomerPhotos'\nimport styles from './CustomerProfile.styles'\nimport {\n CustomerDetails,\n TransactionsList,\n CustomerSidebar,\n Wizard\n} from './components'\nimport { getFormattedPhone, getName, formatPhotosData } from './helper'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_CUSTOMER = gql`\n query customer($customerId: ID!) {\n config\n customer(customerId: $customerId) {\n id\n authorizedOverride\n frontCameraPath\n frontCameraAt\n frontCameraOverride\n phone\n isAnonymous\n smsOverride\n idCardData\n idCardDataOverride\n idCardDataExpiration\n idCardPhotoPath\n idCardPhotoOverride\n usSsn\n usSsnOverride\n sanctions\n sanctionsAt\n sanctionsOverride\n totalTxs\n totalSpent\n lastActive\n lastTxFiat\n lastTxFiatCode\n lastTxClass\n daysSuspended\n isSuspended\n isTestCustomer\n subscriberInfo\n phoneOverride\n customFields {\n id\n label\n value\n }\n notes {\n id\n customerId\n title\n content\n created\n lastEditedAt\n }\n transactions {\n txClass\n id\n fiat\n fiatCode\n cryptoAtoms\n cryptoCode\n created\n machineName\n errorMessage: error\n error: errorCode\n txCustomerPhotoAt\n txCustomerPhotoPath\n }\n customInfoRequests {\n customerId\n override\n overrideBy\n overrideAt\n customerData\n customInfoRequest {\n id\n enabled\n customRequest\n }\n }\n }\n }\n`\n\nconst SET_CUSTOMER = gql`\n mutation setCustomer($customerId: ID!, $customerInput: CustomerInput) {\n setCustomer(customerId: $customerId, customerInput: $customerInput) {\n id\n authorizedOverride\n frontCameraPath\n frontCameraOverride\n phone\n smsOverride\n idCardData\n idCardDataOverride\n idCardDataExpiration\n idCardPhotoPath\n idCardPhotoOverride\n usSsn\n usSsnOverride\n sanctions\n sanctionsAt\n sanctionsOverride\n totalTxs\n totalSpent\n lastActive\n lastTxFiat\n lastTxFiatCode\n lastTxClass\n subscriberInfo\n phoneOverride\n }\n }\n`\nconst EDIT_CUSTOMER = gql`\n mutation editCustomer($customerId: ID!, $customerEdit: CustomerEdit) {\n editCustomer(customerId: $customerId, customerEdit: $customerEdit) {\n id\n idCardData\n usSsn\n }\n }\n`\n\nconst REPLACE_CUSTOMER_PHOTO = gql`\n mutation replacePhoto(\n $customerId: ID!\n $photoType: String\n $newPhoto: Upload\n ) {\n replacePhoto(\n customerId: $customerId\n photoType: $photoType\n newPhoto: $newPhoto\n ) {\n id\n newPhoto\n photoType\n }\n }\n`\n\nconst DELETE_EDITED_CUSTOMER = gql`\n mutation deleteEditedData($customerId: ID!, $customerEdit: CustomerEdit) {\n deleteEditedData(customerId: $customerId, customerEdit: $customerEdit) {\n id\n frontCameraPath\n idCardData\n idCardPhotoPath\n usSsn\n }\n }\n`\n\nconst SET_AUTHORIZED_REQUEST = gql`\n mutation setAuthorizedCustomRequest(\n $customerId: ID!\n $infoRequestId: ID!\n $override: String!\n ) {\n setAuthorizedCustomRequest(\n customerId: $customerId\n infoRequestId: $infoRequestId\n override: $override\n )\n }\n`\n\nconst SET_CUSTOMER_CUSTOM_INFO_REQUEST = gql`\n mutation setCustomerCustomInfoRequest(\n $customerId: ID!\n $infoRequestId: ID!\n $data: JSON!\n ) {\n setCustomerCustomInfoRequest(\n customerId: $customerId\n infoRequestId: $infoRequestId\n data: $data\n )\n }\n`\n\nconst CREATE_NOTE = gql`\n mutation createCustomerNote(\n $customerId: ID!\n $title: String!\n $content: String!\n ) {\n createCustomerNote(\n customerId: $customerId\n title: $title\n content: $content\n )\n }\n`\n\nconst DELETE_NOTE = gql`\n mutation deleteCustomerNote($noteId: ID!) {\n deleteCustomerNote(noteId: $noteId)\n }\n`\n\nconst EDIT_NOTE = gql`\n mutation editCustomerNote($noteId: ID!, $newContent: String!) {\n editCustomerNote(noteId: $noteId, newContent: $newContent)\n }\n`\n\nconst ENABLE_TEST_CUSTOMER = gql`\n mutation enableTestCustomer($customerId: ID!) {\n enableTestCustomer(customerId: $customerId)\n }\n`\n\nconst DISABLE_TEST_CUSTOMER = gql`\n mutation disableTestCustomer($customerId: ID!) {\n disableTestCustomer(customerId: $customerId)\n }\n`\n\nconst GET_DATA = gql`\n query getData {\n config\n }\n`\n\nconst SET_CUSTOM_ENTRY = gql`\n mutation addCustomField($customerId: ID!, $label: String!, $value: String!) {\n addCustomField(customerId: $customerId, label: $label, value: $value)\n }\n`\n\nconst EDIT_CUSTOM_ENTRY = gql`\n mutation saveCustomField($customerId: ID!, $fieldId: ID!, $value: String!) {\n saveCustomField(customerId: $customerId, fieldId: $fieldId, value: $value)\n }\n`\n\nconst GET_ACTIVE_CUSTOM_REQUESTS = gql`\n query customInfoRequests($onlyEnabled: Boolean) {\n customInfoRequests(onlyEnabled: $onlyEnabled) {\n id\n customRequest\n }\n }\n`\n\nconst CustomerProfile = memo(() => {\n const history = useHistory()\n\n const [showCompliance, setShowCompliance] = useState(false)\n const [wizard, setWizard] = useState(false)\n const [error] = useState(null)\n const [clickedItem, setClickedItem] = useState('overview')\n const { id: customerId } = useParams()\n\n const {\n data: customerResponse,\n refetch: getCustomer,\n loading: customerLoading\n } = useQuery(GET_CUSTOMER, {\n variables: { customerId }\n })\n\n const { data: configResponse, loading: configLoading } = useQuery(GET_DATA)\n\n const { data: activeCustomRequests } = useQuery(GET_ACTIVE_CUSTOM_REQUESTS, {\n variables: {\n onlyEnabled: true\n }\n })\n\n const [setCustomEntry] = useMutation(SET_CUSTOM_ENTRY, {\n onCompleted: () => getCustomer()\n })\n\n const [editCustomEntry] = useMutation(EDIT_CUSTOM_ENTRY, {\n onCompleted: () => getCustomer()\n })\n\n const [replaceCustomerPhoto] = useMutation(REPLACE_CUSTOMER_PHOTO, {\n onCompleted: () => getCustomer()\n })\n\n const [editCustomerData] = useMutation(EDIT_CUSTOMER, {\n onCompleted: () => getCustomer()\n })\n\n const [deleteCustomerEditedData] = useMutation(DELETE_EDITED_CUSTOMER, {\n onCompleted: () => getCustomer()\n })\n\n const [setCustomer] = useMutation(SET_CUSTOMER, {\n onCompleted: () => getCustomer()\n })\n\n const [authorizeCustomRequest] = useMutation(SET_AUTHORIZED_REQUEST, {\n onCompleted: () => getCustomer()\n })\n\n const [setCustomerCustomInfoRequest] = useMutation(\n SET_CUSTOMER_CUSTOM_INFO_REQUEST,\n {\n onCompleted: () => getCustomer()\n }\n )\n\n const [createNote] = useMutation(CREATE_NOTE, {\n onCompleted: () => getCustomer()\n })\n\n const [deleteNote] = useMutation(DELETE_NOTE, {\n onCompleted: () => getCustomer()\n })\n\n const [editNote] = useMutation(EDIT_NOTE, {\n onCompleted: () => getCustomer()\n })\n\n const saveCustomEntry = it => {\n setCustomEntry({\n variables: {\n customerId,\n label: it.title,\n value: it.data\n }\n })\n setWizard(null)\n }\n\n const updateCustomEntry = it => {\n editCustomEntry({\n variables: {\n customerId,\n fieldId: it.fieldId,\n value: it.value\n }\n })\n }\n\n const [enableTestCustomer] = useMutation(ENABLE_TEST_CUSTOMER, {\n variables: { customerId },\n onCompleted: () => getCustomer()\n })\n\n const [disableTestCustomer] = useMutation(DISABLE_TEST_CUSTOMER, {\n variables: { customerId },\n onCompleted: () => getCustomer()\n })\n\n const updateCustomer = it =>\n setCustomer({\n variables: {\n customerId,\n customerInput: it\n }\n })\n\n const replacePhoto = it => {\n replaceCustomerPhoto({\n variables: {\n customerId,\n newPhoto: it.newPhoto,\n photoType: it.photoType\n }\n })\n setWizard(null)\n }\n\n const editCustomer = it => {\n editCustomerData({\n variables: {\n customerId,\n customerEdit: it\n }\n })\n setWizard(null)\n }\n\n const deleteEditedData = it =>\n deleteCustomerEditedData({\n variables: {\n customerId,\n customerEdit: it\n }\n })\n\n const createCustomerNote = it =>\n createNote({\n variables: {\n customerId,\n title: it.title,\n content: it.content\n }\n })\n\n const deleteCustomerNote = it =>\n deleteNote({\n variables: {\n noteId: it.noteId\n }\n })\n\n const editCustomerNote = it =>\n editNote({\n variables: {\n noteId: it.noteId,\n newContent: it.newContent\n }\n })\n\n const retrieveAdditionalData = () =>\n setCustomer({\n variables: {\n customerId,\n customerInput: {\n subscriberInfo: true\n }\n }\n })\n\n const onClickSidebarItem = code => setClickedItem(code)\n\n const configData = R.path(['config'])(customerResponse) ?? []\n const locale = configData && fromNamespace(namespaces.LOCALE, configData)\n const customerData = R.path(['customer'])(customerResponse) ?? []\n const rawTransactions = R.path(['transactions'])(customerData) ?? []\n const sortedTransactions = R.sort(R.descend(R.prop('cryptoAtoms')))(\n rawTransactions\n )\n const name = getName(customerData)\n const blocked =\n R.path(['authorizedOverride'])(customerData) === OVERRIDE_REJECTED\n\n const isSuspended = customerData.isSuspended\n const isCustomerData = clickedItem === 'customerData'\n const isOverview = clickedItem === 'overview'\n const isNotes = clickedItem === 'notes'\n const isPhotos = clickedItem === 'photos'\n\n const frontCameraData = R.pick(['frontCameraPath', 'frontCameraAt'])(\n customerData\n )\n const txPhotosData =\n sortedTransactions &&\n R.map(R.pick(['id', 'txCustomerPhotoPath', 'txCustomerPhotoAt']))(\n sortedTransactions\n )\n\n const photosData = formatPhotosData(R.append(frontCameraData, txPhotosData))\n\n const loading = customerLoading || configLoading\n\n const timezone = R.path(['config', 'locale_timezone'], configResponse)\n\n const customInfoRequirementOptions =\n activeCustomRequests?.customInfoRequests?.map(it => ({\n value: it.id,\n display: it.customRequest.name\n })) ?? []\n\n const classes = useStyles()\n\n return (\n <>\n }\n aria-label=\"breadcrumb\">\n history.push('/compliance/customers')}>\n Customers\n \n \n {name.length\n ? name\n : getFormattedPhone(\n R.path(['phone'])(customerData),\n locale.country\n )}\n \n \n \n
\n {!loading && !customerData.isAnonymous && (\n <>\n
code === clickedItem}\n onClick={onClickSidebarItem}\n />\n \n
Actions \n
\n
setWizard(true)}>\n {`Manual data entry`}\n \n {/*
{}}>\n {`Add individual discount`}\n */}\n {isSuspended && (\n
\n updateCustomer({\n suspendedUntil: null\n })\n }>\n {`Unsuspend customer`}\n \n )}\n
\n updateCustomer({\n authorizedOverride: blocked\n ? OVERRIDE_AUTHORIZED\n : OVERRIDE_REJECTED\n })\n }>\n {`${blocked ? 'Authorize' : 'Block'} customer`}\n \n
\n
\n \n
\n {`Special user status`}\n \n
\n
\n \n R.path(['isTestCustomer'])(customerData)\n ? disableTestCustomer()\n : enableTestCustomer()\n }\n />\n {`Test user`}\n
\n
\n
\n >\n )}\n \n
\n {isOverview && (\n
\n
\n setShowCompliance(!showCompliance)}\n />\n \n
\n \n
\n
\n )}\n {isCustomerData && (\n
\n \n
\n )}\n {isNotes && (\n
\n \n
\n )}\n {isPhotos && (\n
\n \n
\n )}\n
\n {wizard && (\n
setWizard(null)}\n customInfoRequirementOptions={customInfoRequirementOptions}\n />\n )}\n \n >\n )\n})\n\nexport default CustomerProfile\n","import baseButtonStyles from 'src/components/buttons/BaseButton.styles'\nimport { bySize, bold } from 'src/styling/helpers'\nimport { zircon, comet, primaryColor } from 'src/styling/variables'\n\nconst { baseButton } = baseButtonStyles\n\nconst searchBoxBorderRadius = baseButton.height / 2\nconst searchBoxHeight = 32\nconst popupBorderRadiusFocus = baseButton.height / 4\n\nconst hoverColor = 'rgba(0, 0, 0, 0.08)'\nconst boxShadow = `0 4px 4px 0 ${hoverColor}`\n\nconst styles = {\n size: ({ size }) => ({\n marginTop: size === 'lg' ? 0 : 2,\n ...bySize(size)\n }),\n bold,\n autocomplete: {\n '&[data-focus=\"true\"]': {\n backgroundColor: hoverColor\n }\n },\n popup: {\n display: 'flex',\n flexDirection: 'column',\n borderRadius: [[0, 0, popupBorderRadiusFocus, popupBorderRadiusFocus]],\n backgroundColor: zircon,\n boxShadow\n },\n separator: {\n width: '88%',\n height: 1,\n margin: '0 auto',\n border: 'solid 0.5px',\n borderColor: comet\n },\n item: {\n display: 'flex',\n flexDirection: 'row',\n width: '100%',\n height: 36,\n alignItems: 'center'\n },\n itemLabel: {\n margin: [0],\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n itemType: {\n marginLeft: 'auto',\n fontSize: 12,\n color: comet,\n margin: [0]\n },\n input: {\n display: 'flex',\n flex: 1,\n width: 273,\n padding: [[8, 12]],\n alignItems: 'center',\n height: searchBoxHeight,\n borderRadius: searchBoxBorderRadius,\n backgroundColor: zircon,\n color: primaryColor\n },\n inputWithPopup: {\n borderRadius: [[popupBorderRadiusFocus, popupBorderRadiusFocus, 0, 0]],\n boxShadow\n },\n iconButton: {\n marginRight: 12\n }\n}\n\nexport default styles\n","import InputBase from '@material-ui/core/InputBase'\nimport Paper from '@material-ui/core/Paper'\nimport { makeStyles } from '@material-ui/core/styles'\nimport MAutocomplete from '@material-ui/lab/Autocomplete'\nimport classnames from 'classnames'\nimport React, { memo, useState } from 'react'\n\nimport { P } from 'src/components/typography'\nimport { ReactComponent as SearchIcon } from 'src/styling/icons/circle buttons/search/zodiac.svg'\n\nimport styles from './SearchBox.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst SearchBox = memo(\n ({\n loading = false,\n filters = [],\n options = [],\n inputPlaceholder = '',\n size,\n onChange,\n ...props\n }) => {\n const classes = useStyles({ size })\n\n const [popupOpen, setPopupOpen] = useState(false)\n\n const inputClasses = {\n [classes.input]: true,\n [classes.inputWithPopup]: popupOpen\n }\n\n const innerOnChange = filters => onChange(filters)\n\n return (\n it.value}\n renderOption={it => (\n \n
{it.value}
\n
{it.type}
\n
\n )}\n autoHighlight\n disableClearable\n clearOnEscape\n multiple\n filterSelectedOptions\n getOptionSelected={(option, value) => option.type === value.type}\n PaperComponent={({ children }) => (\n \n
\n {children}\n \n )}\n renderInput={params => {\n return (\n }\n placeholder={inputPlaceholder}\n inputProps={{\n className: classes.bold,\n classes: {\n root: classes.size\n },\n ...params.inputProps\n }}\n />\n )\n }}\n onOpen={() => setPopupOpen(true)}\n onClose={() => setPopupOpen(false)}\n onChange={(_, filters) => innerOnChange(filters)}\n {...props}\n />\n )\n }\n)\n\nexport default SearchBox\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/filter/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0.6,-3.33066907e-16 L0.509218076,0.00652107669 C0.068925647,0.0708166555 -0.160361948,0.596737342 0.124968515,0.966531156 L4.166,6.204 L4.16660432,9.6 C4.16660432,9.79162756 4.25813682,9.97172829 4.41293455,10.0846831 L6.8797259,11.8846831 L6.96095139,11.9350192 C7.34801849,12.1353088 7.83339568,11.8580867 7.83339568,11.4 L7.833,6.204 L11.8750315,0.966531156 C12.179384,0.572084421 11.8982155,-3.33066907e-16 11.4,-3.33066907e-16 L0.6,-3.33066907e-16 Z M10.179,1.199 L6.75836419,5.63346884 L6.70465653,5.71638775 C6.65811535,5.80315577 6.63339568,5.90052663 6.63339568,6 L6.633,10.219 L5.366,9.294 L5.36660432,6 L5.35847177,5.90154229 C5.34231401,5.80441508 5.30240262,5.71222382 5.24163581,5.63346884 L1.82,1.199 L10.179,1.199 Z\",\n id: \"Path\",\n fill: \"#FFFFFF\",\n fillRule: \"nonzero\"\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/button/filter/white\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.158a991b.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/filter/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0.6,-4.56301663e-14 L0.509218076,0.00652107669 C0.068925647,0.0708166555 -0.160361948,0.596737342 0.124968515,0.966531156 L4.166,6.204 L4.16660432,9.6 C4.16660432,9.79162756 4.25813682,9.97172829 4.41293455,10.0846831 L6.8797259,11.8846831 L6.96095139,11.9350192 C7.34801849,12.1353088 7.83339568,11.8580867 7.83339568,11.4 L7.833,6.204 L11.8750315,0.966531156 C12.179384,0.572084421 11.8982155,-4.56301663e-14 11.4,-4.56301663e-14 L0.6,-4.56301663e-14 Z M10.179,1.199 L6.75836419,5.63346884 L6.70465653,5.71638775 C6.65811535,5.80315577 6.63339568,5.90052663 6.63339568,6 L6.633,10.219 L5.366,9.294 L5.36660432,6 L5.35847177,5.90154229 C5.34231401,5.80441508 5.30240262,5.71222382 5.24163581,5.63346884 L1.82,1.199 L10.179,1.199 Z\",\n id: \"Path\",\n fill: \"#1B2559\",\n fillRule: \"nonzero\"\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/button/filter/zodiac\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.779a5bbc.svg\";\nexport { ForwardRef as ReactComponent };","import {\n primaryColor,\n zircon,\n smallestFontSize,\n inputFontFamily,\n inputFontWeight,\n spacer,\n offColor\n} from 'src/styling/variables'\n\nconst chipStyles = {\n root: {\n marginLeft: 0,\n height: 20,\n backgroundColor: zircon,\n '&:hover, &:focus, &:active': {\n backgroundColor: zircon\n },\n marginBottom: 'auto'\n },\n label: {\n fontSize: smallestFontSize,\n fontWeight: inputFontWeight,\n fontFamily: inputFontFamily,\n paddingRight: 0,\n paddingLeft: spacer,\n color: primaryColor\n }\n}\n\nconst styles = {\n button: {\n width: 8,\n height: 8,\n marginLeft: 8,\n marginRight: 8\n },\n text: {\n marginTop: 0,\n marginBottom: 0\n },\n filters: {\n display: 'flex',\n marginBottom: 16\n },\n deleteWrapper: {\n display: 'flex',\n marginLeft: 'auto',\n justifyContent: 'flex-end',\n flexDirection: 'row'\n },\n entries: {\n color: offColor,\n margin: 'auto',\n marginRight: 12\n },\n chips: {\n marginTop: 'auto'\n }\n}\n\nexport { chipStyles, styles }\n","import { makeStyles } from '@material-ui/core'\nimport React from 'react'\n\nimport Chip from 'src/components/Chip'\nimport { ActionButton } from 'src/components/buttons'\nimport { P, Label3 } from 'src/components/typography'\nimport { ReactComponent as CloseIcon } from 'src/styling/icons/action/close/zodiac.svg'\nimport { ReactComponent as FilterIcon } from 'src/styling/icons/button/filter/white.svg'\nimport { ReactComponent as ReverseFilterIcon } from 'src/styling/icons/button/filter/zodiac.svg'\nimport { onlyFirstToUpper } from 'src/utils/string'\n\nimport { chipStyles, styles } from './SearchFilter.styles'\n\nconst useChipStyles = makeStyles(chipStyles)\nconst useStyles = makeStyles(styles)\n\nconst SearchFilter = ({\n filters,\n onFilterDelete,\n deleteAllFilters,\n entries\n}) => {\n const chipClasses = useChipStyles()\n const classes = useStyles()\n\n return (\n <>\n {'Filters:'}
\n \n
\n {filters.map((f, idx) => (\n onFilterDelete(f)}\n deleteIcon={ }\n />\n ))}\n
\n
\n {\n
{`${entries ??\n 0} entries`} \n }\n
\n Delete filters\n \n
\n
\n >\n )\n}\n\nexport default SearchFilter\n","import { makeStyles } from '@material-ui/core/styles'\nimport { format } from 'date-fns/fp'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport { MainStatus } from 'src/components/Status'\nimport DataTable from 'src/components/tables/DataTable'\nimport { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\n\nimport styles from './CustomersList.styles'\nimport { getAuthorizedStatus, getFormattedPhone, getName } from './helper'\n\nconst useStyles = makeStyles(styles)\n\nconst CustomersList = ({\n data,\n locale,\n onClick,\n loading,\n triggers,\n customRequests\n}) => {\n const classes = useStyles()\n\n const elements = [\n {\n header: 'Phone',\n width: 199,\n view: it => getFormattedPhone(it.phone, locale.country)\n },\n {\n header: 'Name',\n width: 241,\n view: getName\n },\n {\n header: 'Total TXs',\n width: 126,\n textAlign: 'right',\n view: it => `${Number.parseInt(it.totalTxs)}`\n },\n {\n header: 'Total spent',\n width: 152,\n textAlign: 'right',\n view: it =>\n `${Number.parseFloat(it.totalSpent)} ${it.lastTxFiatCode ?? ''}`\n },\n {\n header: 'Last active',\n width: 133,\n view: it =>\n (it.lastActive && format('yyyy-MM-dd', new Date(it.lastActive))) ?? ''\n },\n {\n header: 'Last transaction',\n width: 161,\n textAlign: 'right',\n view: it => {\n const hasLastTx = !R.isNil(it.lastTxFiatCode)\n const LastTxIcon = it.lastTxClass === 'cashOut' ? TxOutIcon : TxInIcon\n const lastIcon = \n return (\n <>\n {hasLastTx &&\n `${parseFloat(it.lastTxFiat)} ${it.lastTxFiatCode ?? ''}`}\n {hasLastTx && lastIcon}\n >\n )\n }\n },\n {\n header: 'Status',\n width: 191,\n view: it => (\n \n )\n }\n ]\n\n return (\n <>\n \n >\n )\n}\n\nexport default CustomersList\n","import { makeStyles } from '@material-ui/core/styles'\nimport { Field, Form, Formik } from 'formik'\nimport { PhoneNumberFormat, PhoneNumberUtil } from 'google-libphonenumber'\nimport * as R from 'ramda'\nimport React from 'react'\nimport * as Yup from 'yup'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Modal from 'src/components/Modal'\nimport { Button } from 'src/components/buttons'\nimport { TextInput } from 'src/components/inputs/formik'\nimport { H1 } from 'src/components/typography'\nimport { spacer, primaryColor, fontPrimary } from 'src/styling/variables'\n\nconst styles = {\n modalTitle: {\n marginTop: -5,\n color: primaryColor,\n fontFamily: fontPrimary\n },\n footer: {\n display: 'flex',\n flexDirection: 'row',\n margin: [['auto', 0, spacer * 3, 0]]\n },\n form: {\n display: 'flex',\n flexDirection: 'column',\n height: '100%'\n },\n submit: {\n margin: [['auto', 0, 0, 'auto']]\n }\n}\n\nconst pnUtilInstance = PhoneNumberUtil.getInstance()\n\nconst getValidationSchema = countryCodes =>\n Yup.object().shape({\n phoneNumber: Yup.string()\n .required('A phone number is required')\n .test('is-valid-number', 'That is not a valid phone number', value => {\n try {\n const validMap = R.map(it => {\n const number = pnUtilInstance.parseAndKeepRawInput(value, it)\n return pnUtilInstance.isValidNumber(number)\n }, countryCodes)\n\n return R.any(it => it === true, validMap)\n } catch (e) {}\n })\n .trim()\n })\n\nconst formatPhoneNumber = (countryCodes, numberStr) => {\n const matchedCountry = R.find(it => {\n const number = pnUtilInstance.parseAndKeepRawInput(numberStr, it)\n return pnUtilInstance.isValidNumber(number)\n }, countryCodes)\n\n const matchedNumber = pnUtilInstance.parseAndKeepRawInput(\n numberStr,\n matchedCountry\n )\n\n return pnUtilInstance.format(matchedNumber, PhoneNumberFormat.E164)\n}\n\nconst initialValues = {\n phoneNumber: ''\n}\n\nconst useStyles = makeStyles(styles)\n\nconst getErrorMsg = (formikErrors, formikTouched) => {\n if (!formikErrors || !formikTouched) return null\n if (formikErrors.phoneNumber && formikTouched.phoneNumber)\n return formikErrors.phoneNumber\n return null\n}\n\nconst CreateCustomerModal = ({ showModal, handleClose, onSubmit, locale }) => {\n const classes = useStyles()\n\n const possibleCountries = R.append(\n locale?.country,\n R.map(it => it.country, locale?.overrides ?? [])\n )\n\n return (\n \n {\n onSubmit({\n variables: {\n phoneNumber: formatPhoneNumber(\n possibleCountries,\n values.phoneNumber\n )\n }\n })\n }}>\n {({ errors, touched }) => (\n \n )}\n \n \n )\n}\n\nexport default CreateCustomerModal\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { Box, makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\nimport { useHistory } from 'react-router-dom'\n\nimport SearchBox from 'src/components/SearchBox'\nimport SearchFilter from 'src/components/SearchFilter'\nimport { Link } from 'src/components/buttons'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport baseStyles from 'src/pages/Logs.styles'\nimport { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport { fromNamespace, namespaces } from 'src/utils/config'\n\nimport CustomersList from './CustomersList'\nimport CreateCustomerModal from './components/CreateCustomerModal'\n\nconst GET_CUSTOMER_FILTERS = gql`\n query filters {\n customerFilters {\n type\n value\n }\n }\n`\n\nconst GET_CUSTOMERS = gql`\n query configAndCustomers(\n $phone: String\n $name: String\n $address: String\n $id: String\n ) {\n config\n customers(phone: $phone, name: $name, address: $address, id: $id) {\n id\n idCardData\n phone\n totalTxs\n totalSpent\n lastActive\n lastTxFiat\n lastTxFiatCode\n lastTxClass\n authorizedOverride\n frontCameraPath\n frontCameraOverride\n idCardPhotoPath\n idCardPhotoOverride\n idCardData\n idCardDataOverride\n usSsn\n usSsnOverride\n sanctions\n sanctionsOverride\n daysSuspended\n isSuspended\n customInfoRequests {\n customerId\n infoRequestId\n override\n overrideAt\n overrideBy\n customerData\n customInfoRequest {\n id\n enabled\n customRequest\n }\n }\n }\n customInfoRequests {\n id\n }\n }\n`\n\nconst CREATE_CUSTOMER = gql`\n mutation createCustomer($phoneNumber: String) {\n createCustomer(phoneNumber: $phoneNumber) {\n phone\n }\n }\n`\n\nconst useBaseStyles = makeStyles(baseStyles)\n\nconst getFiltersObj = filters =>\n R.reduce((s, f) => ({ ...s, [f.type]: f.value }), {}, filters)\n\nconst Customers = () => {\n const baseStyles = useBaseStyles()\n const history = useHistory()\n\n const handleCustomerClicked = customer =>\n history.push(`/compliance/customer/${customer.id}`)\n\n const [filteredCustomers, setFilteredCustomers] = useState([])\n const [variables, setVariables] = useState({})\n const [filters, setFilters] = useState([])\n const [showCreationModal, setShowCreationModal] = useState(false)\n\n const {\n data: customersResponse,\n loading: customerLoading,\n refetch\n } = useQuery(GET_CUSTOMERS, {\n variables,\n onCompleted: data => setFilteredCustomers(R.path(['customers'])(data))\n })\n\n const { data: filtersResponse, loading: loadingFilters } = useQuery(\n GET_CUSTOMER_FILTERS\n )\n\n const [createNewCustomer] = useMutation(CREATE_CUSTOMER, {\n onCompleted: () => setShowCreationModal(false),\n refetchQueries: () => [\n {\n query: GET_CUSTOMERS,\n variables\n }\n ]\n })\n\n const configData = R.path(['config'])(customersResponse) ?? []\n const customRequirementsData =\n R.path(['customInfoRequests'], customersResponse) ?? []\n const locale = configData && fromNamespace(namespaces.LOCALE, configData)\n const triggers = configData && fromNamespace(namespaces.TRIGGERS, configData)\n const customersData = R.sortWith([\n R.descend(it => new Date(R.prop('lastActive', it) ?? '0'))\n ])(filteredCustomers ?? [])\n\n const onFilterChange = filters => {\n const filtersObject = getFiltersObj(filters)\n\n setFilters(filters)\n\n setVariables({\n phone: filtersObject.phone,\n name: filtersObject.name,\n address: filtersObject.address,\n id: filtersObject.id\n })\n\n refetch && refetch()\n }\n\n const onFilterDelete = filter => {\n const newFilters = R.filter(\n f => !R.whereEq(R.pick(['type', 'value'], f), filter)\n )(filters)\n\n setFilters(newFilters)\n\n const filtersObject = getFiltersObj(newFilters)\n\n setVariables({\n phone: filtersObject.phone,\n name: filtersObject.name,\n address: filtersObject.address,\n id: filtersObject.id\n })\n\n refetch && refetch()\n }\n\n const deleteAllFilters = () => {\n setFilters([])\n const filtersObject = getFiltersObj([])\n\n setVariables({\n phone: filtersObject.phone,\n name: filtersObject.name,\n address: filtersObject.address,\n id: filtersObject.id\n })\n\n refetch && refetch()\n }\n\n const filterOptions = R.path(['customerFilters'])(filtersResponse)\n\n return (\n <>\n \n \n \n }\n appendixRight={\n \n setShowCreationModal(true)}>\n Add new user\n \n \n }\n labels={[\n { label: 'Cash-in', icon: },\n { label: 'Cash-out', icon: }\n ]}\n />\n {filters.length > 0 && (\n \n )}\n \n setShowCreationModal(false)}\n locale={locale}\n onSubmit={createNewCustomer}\n />\n >\n )\n}\n\nexport default Customers\n","import { makeStyles } from '@material-ui/styles'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport { Label1 } from './typography'\n\nconst useStyles = makeStyles({\n wrapper: {\n display: 'flex',\n alignItems: 'center'\n },\n colorIndicator: {\n borderRadius: 3,\n height: 12,\n width: 12,\n marginRight: 8\n }\n})\n\nconst TableLabel = ({ className, label, color, ...props }) => {\n const classes = useStyles()\n return (\n \n {color && (\n
\n )}\n
{label} \n
\n )\n}\n\nexport default TableLabel\n","import typographyStyles from 'src/components/typography/styles'\nimport {\n disabledColor2,\n spacer,\n subheaderColor,\n errorColor,\n placeholderColor,\n comet\n} from 'src/styling/variables'\n\nconst { label1, mono } = typographyStyles\n\nexport default {\n wrapper: {\n display: 'flex',\n flex: 1,\n flexDirection: 'row',\n height: '100%'\n },\n main: {\n display: 'flex',\n flex: 1\n },\n firstSide: {\n margin: `0 ${spacer * 8}px 0 ${spacer * 6}px`\n },\n secondSide: {\n marginTop: -29\n },\n error: {\n color: errorColor\n },\n coinTotal: {\n margin: `${spacer * 1.5}px 0`\n },\n leftSpacer: {\n marginLeft: spacer\n },\n topSpacer: {\n marginTop: spacer * 5\n },\n addressWrapper: {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n backgroundColor: subheaderColor\n },\n address: {\n width: 375,\n margin: `${spacer * 1.5}px ${spacer * 3}px`\n },\n itemWrapper: {\n textAlign: 'end'\n },\n item: {\n extend: label1,\n margin: 2\n },\n inactiveItem: {\n color: comet\n },\n firstItem: {\n fontWeight: 700,\n margin: 2\n },\n total: {\n marginTop: 'auto',\n textAlign: 'right',\n marginRight: 24\n },\n totalPending: {\n marginTop: 2\n },\n totalTitle: {\n color: placeholderColor,\n marginBottom: 2\n },\n table: {\n marginTop: spacer,\n marginLeft: spacer * 6\n },\n tableLabel: {\n justifyContent: 'end',\n marginTop: -38\n },\n pending: {\n backgroundColor: disabledColor2\n },\n copyToClipboard: {\n marginLeft: 'auto',\n paddingTop: 6,\n paddingLeft: 15,\n marginRight: -11\n },\n mono: {\n extend: mono,\n width: 375,\n margin: `${spacer * 1.5}px ${spacer * 3}px`\n }\n}\n","import { useQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport BigNumber from 'bignumber.js'\nimport classnames from 'classnames'\nimport { format } from 'date-fns/fp'\nimport gql from 'graphql-tag'\nimport { utils as coinUtils } from '@lamassu/coins'\nimport QRCode from 'qrcode.react'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport TableLabel from 'src/components/TableLabel'\nimport Title from 'src/components/Title'\nimport { Tr, Td, THead, TBody, Table } from 'src/components/fake-table/Table'\nimport Sidebar from 'src/components/layout/Sidebar'\nimport {\n H3,\n Info1,\n Info2,\n Info3,\n Label1,\n Label3\n} from 'src/components/typography'\nimport CopyToClipboard from 'src/pages/Transactions/CopyToClipboard'\nimport { primaryColor } from 'src/styling/variables'\n\nimport styles from './Funding.styles'\n\nconst useStyles = makeStyles(styles)\nconst sizes = {\n big: 165,\n time: 140,\n date: 130\n}\n\nconst GET_FUNDING = gql`\n {\n funding {\n cryptoCode\n errorMsg\n fundingAddress\n fundingAddressUrl\n confirmedBalance\n pending\n fiatConfirmedBalance\n fiatPending\n fiatCode\n display\n unitScale\n }\n }\n`\n\nconst formatAddress = (cryptoCode = '', address = '') =>\n coinUtils.formatCryptoAddress(cryptoCode, address).replace(/(.{4})/g, '$1 ')\nconst sumReducer = (acc, value) => acc.plus(value)\nconst formatNumber = it => new BigNumber(it).toFormat(2)\n\nconst getConfirmedTotal = list => {\n return formatNumber(\n list\n .filter(it => !it.errorMsg)\n .map(it => new BigNumber(it.fiatConfirmedBalance))\n .reduce(sumReducer, new BigNumber(0))\n )\n}\n\nconst getPendingTotal = list => {\n return formatNumber(\n list\n .filter(it => !it.errorMsg)\n .map(it => new BigNumber(it.fiatPending))\n .reduce(sumReducer, new BigNumber(0))\n )\n}\n\nconst Funding = () => {\n const [selected, setSelected] = useState(null)\n const [viewHistory] = useState(false)\n const classes = useStyles()\n const fundingHistory = [\n {\n cryptoAmount: 2.0,\n balance: 10.23,\n fiatValue: 1000.0,\n date: new Date(),\n performedBy: null,\n pending: true\n },\n {\n cryptoAmount: 10.0,\n balance: 12.23,\n fiatValue: 12000.0,\n date: new Date(),\n performedBy: null\n },\n {\n cryptoAmount: 5.0,\n balance: 5.0,\n fiatValue: 50000.0,\n date: new Date(),\n performedBy: null\n }\n ]\n\n const isSelected = it => {\n return selected && selected.cryptoCode === it.cryptoCode\n }\n\n const { data: fundingResponse, loading } = useQuery(GET_FUNDING)\n const funding = R.path(['funding'])(fundingResponse) ?? []\n\n if (funding.length && !selected) {\n setSelected(funding[0])\n }\n\n const itemRender = (it, active) => {\n const itemClass = {\n [classes.item]: true,\n [classes.inactiveItem]: !active\n }\n const wrapperClass = {\n [classes.itemWrapper]: true,\n [classes.error]: it.errorMsg\n }\n\n return (\n \n
{it.display}
\n {!it.errorMsg && (\n <>\n
\n {formatNumber(it.fiatConfirmedBalance)} {it.fiatCode}\n
\n
\n {it.confirmedBalance} {it.cryptoCode}\n
\n >\n )}\n
\n )\n }\n\n const pendingTotal = getPendingTotal(funding)\n const signIfPositive = num => (num >= 0 ? '+' : '')\n\n return (\n <>\n \n
Funding \n {/* setViewHistory(!viewHistory)}>history */}\n \n \n
it.display}\n itemRender={itemRender}\n loading={loading}>\n {funding.length && (\n \n \n Total Crypto Balance\n \n \n {getConfirmedTotal(funding)}\n {funding[0].fiatCode}\n \n \n ({signIfPositive(pendingTotal)} {pendingTotal} pending)\n \n
\n )}\n \n {selected && !viewHistory && selected.errorMsg && (\n
\n
\n {selected.errorMsg} \n
\n
\n )}\n {selected && !viewHistory && !selected.errorMsg && (\n
\n
\n
Balance ({selected.display}) \n
\n \n {`${selected.confirmedBalance} ${selected.cryptoCode}`}\n \n \n {`(${signIfPositive(selected.pending)} ${\n selected.pending\n } pending)`}\n \n
\n\n
\n \n {`= ${formatNumber(selected.fiatConfirmedBalance)} ${\n selected.fiatCode\n }`}\n \n \n {`(${signIfPositive(selected.fiatPending)} ${formatNumber(\n selected.fiatPending\n )} pending)`}\n \n
\n\n
Address \n
\n
\n \n \n {formatAddress(\n selected.cryptoCode,\n selected.fundingAddress\n )}\n \n \n
\n
\n
\n\n
\n Scan to send {selected.display} \n \n
\n
\n )}\n {selected && viewHistory && (\n
\n
\n
\n \n \n Amount Entered\n \n \n Balance After\n \n \n Cash Value\n \n \n Date\n \n \n Time (h:m:s)\n \n \n Performed By\n \n \n \n {fundingHistory.map((it, idx) => (\n \n \n {it.cryptoAmount} {selected.cryptoCode}\n \n \n {it.balance} {selected.cryptoCode}\n \n \n {it.fiatValue} {selected.fiatCode}\n \n {format('yyyy-MM-dd', it.date)} \n {format('hh:mm:ss', it.date)} \n add \n \n ))}\n \n
\n
\n )}\n
\n >\n )\n}\n\nexport default Funding\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 52,\n cy: 32,\n r: 32,\n fill: \"#F7931A\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m66.1 27.4c0.6-4.3-2.6-6.5-7-8.1l1.4-5.8-3.5-0.9-1.4 5.6c-0.9-0.2-1.9-0.4-2.8-0.7l1.4-5.7-3.5-0.9-1.4 5.8c-0.8-0.2-1.5-0.3-2.2-0.5l0 0-4.8-1.2-0.9 3.8s2.6 0.6 2.6 0.6c1.4 0.4 1.7 1.3 1.6 2l-1.6 6.6c0.1 0 0.2 0.1 0.4 0.1-0.1 0-0.2-0.1-0.4-0.1l-2.3 9.2c-0.2 0.4-0.6 1.1-1.6 0.8 0 0.1-2.6-0.6-2.6-0.6l-1.7 4 4.6 1.1c0.9 0.2 1.7 0.4 2.5 0.6l-1.5 5.8 3.5 0.9 1.4-5.8c1 0.3 1.9 0.5 2.8 0.7l-1.4 5.7 3.5 0.9 1.5-5.8c6 1.1 10.5 0.7 12.4-4.7 1.5-4.4-0.1-6.9-3.2-8.5 2.3-0.5 4-2 4.5-5.2zm-8 11.2c-1.1 4.4-8.4 2-10.8 1.4l1.9-7.7c2.4 0.6 10 1.8 8.9 6.3zm1.1-11.3c-1 4-7.1 2-9.1 1.5l1.7-7c2 0.5 8.4 1.4 7.3 5.6z\",\n fill: \"#FFF\"\n});\n\nfunction SvgIconBitcoinColour(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 104,\n height: 64,\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIconBitcoinColour);\nexport default __webpack_public_path__ + \"static/media/icon-bitcoin-colour.bd8da481.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0AC18E\",\n d: \"m0,0l29.7,0a39,39,0,0,0,0,64l-29.7,0zm52,0a32,32,0,0,0,0,64a32,32,0,0,0,0,-64m52,0l-29.7,0a39,39,0,0,1,0,64l29.7,0z\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n transform: \"rotate(-28 52 32)\",\n d: \"m66.103,27.444c0.637-4.258-2.605-6.547-7.038-8.074l1.438-5.768-3.511-0.875-1.4,5.616c-0.923-0.23-1.871-0.447-2.813-0.662l1.41-5.653-3.509-0.875-1.439,5.766c-0.764-0.174-1.514-0.346-2.242-0.527l0.004-0.018-4.842-1.209-0.934,3.75s2.605,0.597,2.55,0.634c1.422,0.355,1.679,1.296,1.636,2.042l-1.638,6.571c0.098,0.025,0.225,0.061,0.365,0.117-0.117-0.029-0.242-0.061-0.371-0.092l-2.296,9.205c-0.174,0.432-0.615,1.08-1.609,0.834,0.035,0.051-2.552-0.637-2.552-0.637l-1.743,4.019,4.569,1.139c0.85,0.213,1.683,0.436,2.503,0.646l-1.453,5.834,3.507,0.875,1.439-5.772c0.958,0.26,1.888,0.5,2.798,0.726l-1.434,5.745,3.511,0.875,1.453-5.823c5.987,1.133,10.489,0.676,12.384-4.739,1.527-4.36-0.076-6.875-3.226-8.515,2.294-0.529,4.022-2.038,4.483-5.155zm-8.022,11.249c-1.085,4.36-8.426,2.003-10.806,1.412l1.928-7.729c2.38,0.594,10.012,1.77,8.878,6.317zm1.086-11.312c-0.99,3.966-7.1,1.951-9.082,1.457l1.748-7.01c1.982,0.494,8.365,1.416,7.334,5.553z\"\n});\n\nfunction SvgIconBitcoincashColour(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 104,\n height: 64,\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIconBitcoincashColour);\nexport default __webpack_public_path__ + \"static/media/icon-bitcoincash-colour.ed917caa.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 1000,\n cy: 1000,\n r: 1000,\n fill: \"#2573c2\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#fff\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1652.6 736.8a143.65 143.65 0 0 0-19.2-63.6c-10-20-27.8-35.6-48.6-43.6a143.51 143.51 0 0 0-68.4-15H628.8l-63.6 190.6h804.2l-127 389.6h-804l-63.6 190.6h891.8a246.33 246.33 0 0 0 77.8-15c25-14.2 53.6-28.6 77.8-48.6a382.69 382.69 0 0 0 63.6-63.6 432.2 432.2 0 0 0 39.2-73.4l117.8-370.4a137.38 137.38 0 0 0 9.8-77.6z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M882.2 911.6H409l-63.6 176.2h478z\"\n}));\n\nfunction SvgIconDashColour(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 2000 2000\",\n width: 2500,\n height: 2500,\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIconDashColour);\nexport default __webpack_public_path__ + \"static/media/icon-dash-colour.e01c021b.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"polygon\", {\n fill: \"#343434\",\n points: \"127.9611 0 125.1661 9.5 125.1661 285.168 127.9611 287.958 255.9231 212.32\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n fill: \"#8C8C8C\",\n points: \"127.962 0 0 212.32 127.962 287.959 127.962 154.158\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n fill: \"#3C3C3B\",\n points: \"127.9611 312.1866 126.3861 314.1066 126.3861 412.3056 127.9611 416.9066 255.9991 236.5866\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n fill: \"#8C8C8C\",\n points: \"127.962 416.9052 127.962 312.1852 0 236.5852\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n fill: \"#141414\",\n points: \"127.9611 287.9577 255.9211 212.3207 127.9611 154.1587\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n fill: \"#393939\",\n points: \"0.0009 212.3208 127.9609 287.9578 127.9609 154.1588\"\n}));\n\nfunction SvgIconEthereumColour(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"256px\",\n height: \"417px\",\n viewBox: \"0 0 256 417\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n preserveAspectRatio: \"xMidYMid\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIconEthereumColour);\nexport default __webpack_public_path__ + \"static/media/icon-ethereum-colour.761723a2.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#989898\",\n cx: 52,\n cy: 32,\n r: 32\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"m46.92598,12.31703l-4.97801,18.8088l-3.42705,1.32711l-1.64691,6.17189l3.42705,-1.29514l-2.8461,10.76083l30.60893,0l2.09993,-7.98401l-18.42505,0l2.09993,-7.82412l3.3631,-1.26316l1.6469,-6.17188l-3.36309,1.29513l3.6509,-13.83611l-12.21053,0z\"\n});\n\nfunction SvgIconLitecoinColour(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 104,\n height: 64,\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIconLitecoinColour);\nexport default __webpack_public_path__ + \"static/media/icon-litecoin-colour.bd861b5e.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M127.998 0C57.318 0 0 57.317 0 127.999c0 14.127 2.29 27.716 6.518 40.43H44.8V60.733l83.2 83.2 83.198-83.2v107.695h38.282c4.231-12.714 6.521-26.303 6.521-40.43C256 57.314 198.681 0 127.998 0\",\n fill: \"#F60\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.867 163.062l-36.31-36.311v67.765H18.623c22.47 36.863 63.051 61.48 109.373 61.48s86.907-24.617 109.374-61.48h-53.933V126.75l-36.31 36.31-19.13 19.129-19.128-19.128h-.002z\",\n fill: \"#4C4C4C\"\n});\n\nfunction SvgIconMoneroColour(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 2500,\n height: 2500,\n viewBox: \"0 0 256 256\",\n xmlns: \"http://www.w3.org/2000/svg\",\n preserveAspectRatio: \"xMidYMid\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIconMoneroColour);\nexport default __webpack_public_path__ + \"static/media/icon-monero-colour.650b7bd1.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1000 0c552.26 0 1000 447.74 1000 1000s-447.76 1000-1000 1000S0 1552.38 0 1000 447.68 0 1000 0\",\n fill: \"#53ae94\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1123.42 866.76V718h340.18V491.34H537.28V718H877.5v148.64C601 879.34 393.1 934.1 393.1 999.7s208 120.36 484.4 133.14v476.5h246V1132.8c276-12.74 483.48-67.46 483.48-133s-207.48-120.26-483.48-133m0 225.64v-.12c-6.94.44-42.6 2.58-122 2.58-63.48 0-108.14-1.8-123.88-2.62v.2C633.34 1081.66 451 1039.12 451 988.22S633.36 894.84 877.62 884v166.1c16 1.1 61.76 3.8 124.92 3.8 75.86 0 114-3.16 121-3.8V884c243.8 10.86 425.72 53.44 425.72 104.16s-182 93.32-425.72 104.18\",\n fill: \"#fff\"\n});\n\nfunction SvgIconTetherColour(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 2000 2000\",\n width: 2500,\n height: 2500,\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIconTetherColour);\nexport default __webpack_public_path__ + \"static/media/icon-tether-colour.92d7fda4.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n}, \"\\n\\t.st0{fill:#231F20;}\\n\\t.st1{fill:#F4B728;}\\n\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M245.4,20C121.1,20,20,121.1,20,245.4s101.1,225.4,225.4,225.4s225.4-101.1,225.4-225.4S369.7,20,245.4,20z M245.4,433.6c-103.8,0-188.2-84.4-188.2-188.2S141.6,57.2,245.4,57.2s188.2,84.4,188.2,188.2S349.2,433.6,245.4,433.6z\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"st1\",\n cx: 245.4,\n cy: 245.4,\n r: 177.6\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"st0\",\n points: \"165,315.5 165,349.9 226.5,349.9 226.5,387.6 264.3,387.6 264.3,349.9 325.8,349.9 325.8,304.4 230.4,304.4 325.8,175 325.8,140.6 264.3,140.6 264.3,103 226.5,103 226.5,140.6 165,140.6 165,186.2 260.4,186.2 \"\n});\n\nfunction SvgIconZcashColour(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 493.3 490.2\",\n style: {\n enableBackground: \"new 0 0 493.3 490.2\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), _ref2, title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"headerArtboard 7\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref3, _ref4, _ref5);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIconZcashColour);\nexport default __webpack_public_path__ + \"static/media/icon-zcash-colour.68b1c20b.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core'\nimport React from 'react'\n\nimport { Button } from 'src/components/buttons'\nimport { H1, P } from 'src/components/typography'\nimport { ReactComponent as BitcoinLogo } from 'src/styling/logos/icon-bitcoin-colour.svg'\nimport { ReactComponent as BitcoinCashLogo } from 'src/styling/logos/icon-bitcoincash-colour.svg'\nimport { ReactComponent as DashLogo } from 'src/styling/logos/icon-dash-colour.svg'\nimport { ReactComponent as EthereumLogo } from 'src/styling/logos/icon-ethereum-colour.svg'\nimport { ReactComponent as LitecoinLogo } from 'src/styling/logos/icon-litecoin-colour.svg'\nimport { ReactComponent as MoneroLogo } from 'src/styling/logos/icon-monero-colour.svg'\nimport { ReactComponent as TetherLogo } from 'src/styling/logos/icon-tether-colour.svg'\nimport { ReactComponent as ZCashLogo } from 'src/styling/logos/icon-zcash-colour.svg'\n\nconst styles = {\n logo: {\n maxHeight: 80,\n maxWidth: 200\n },\n title: {\n margin: [[24, 0, 32, 0]]\n },\n text: {\n margin: 0\n },\n button: {\n marginTop: 'auto',\n marginBottom: 58\n },\n modalContent: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n padding: [[0, 42]],\n flex: 1\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst getLogo = code => {\n switch (code) {\n case 'BTC':\n return BitcoinLogo\n case 'BCH':\n return BitcoinCashLogo\n case 'DASH':\n return DashLogo\n case 'ETH':\n return EthereumLogo\n case 'LTC':\n return LitecoinLogo\n case 'ZEC':\n return ZCashLogo\n case 'USDT':\n return TetherLogo\n case 'XMR':\n return MoneroLogo\n default:\n return null\n }\n}\n\nconst WizardSplash = ({ code, name, onContinue }) => {\n const classes = useStyles()\n const Logo = getLogo(code)\n\n return (\n \n
\n
Enable {name} \n
\n You are about to enable {name} on your system. This will allow you to\n use this cryptocurrency on your machines. To be able to do that, you’ll\n have to set up all the necessary 3rd party services.\n
\n
\n Start configuration\n \n
\n )\n}\n\nexport default WizardSplash\n","import { errorColor, fontSize1, fontPrimary } from 'src/styling/variables'\n\nconst LABEL_WIDTH = 150\n\nexport default {\n title: {\n margin: [[0, 0, 12, 0]]\n },\n subtitle: {\n margin: [[32, 0, 21, 0]]\n },\n error: {\n color: errorColor\n },\n button: {\n marginLeft: 'auto'\n },\n submit: {\n display: 'flex',\n flexDirection: 'row',\n margin: [['auto', 0, 24]]\n },\n radioGroup: {\n flexDirection: 'row'\n },\n radioLabel: {\n width: LABEL_WIDTH,\n height: 48\n },\n radio: {\n padding: 4,\n margin: 4\n },\n setupNew: {\n display: 'flex',\n alignItems: 'center',\n height: 48\n },\n picker: {\n width: LABEL_WIDTH\n },\n horizontalAlign: {\n display: 'flex',\n flexDirection: 'row'\n },\n centerAlignment: {\n alignItems: 'center'\n },\n zeroConfLimit: {\n marginRight: 5,\n '& > div': {\n fontSize: fontSize1,\n fontFamily: fontPrimary,\n fontWeight: 300,\n '& > input': {\n padding: [[6, 0, 2]]\n }\n }\n }\n}\n","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { Formik, Form, Field } from 'formik'\nimport * as R from 'ramda'\nimport React, { useReducer, useEffect } from 'react'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Stepper from 'src/components/Stepper'\nimport { Button } from 'src/components/buttons'\nimport { RadioGroup, Autocomplete } from 'src/components/inputs'\nimport { NumberInput } from 'src/components/inputs/formik'\nimport { H4, Info2 } from 'src/components/typography'\nimport FormRenderer from 'src/pages/Services/FormRenderer'\nimport schema from 'src/pages/Services/schemas'\nimport { startCase } from 'src/utils/string'\n\nimport styles from './WizardStep.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst initialState = {\n form: null,\n selected: null,\n isNew: false,\n iError: false\n}\n\nconst reducer = (state, action) => {\n switch (action.type) {\n case 'select':\n return {\n form: null,\n selected: action.selected,\n isNew: null,\n iError: false\n }\n case 'new':\n return { form: state.form, selected: null, isNew: true, iError: false }\n case 'form':\n return {\n form: action.form,\n selected: action.form.code,\n isNew: true,\n iError: false\n }\n case 'error':\n return R.merge(state, { innerError: true })\n case 'reset':\n return initialState\n default:\n throw new Error()\n }\n}\n\nconst WizardStep = ({\n type,\n schema: stepSchema,\n coin,\n name,\n step,\n error,\n lastStep,\n onContinue,\n fiatCurrency,\n filled,\n unfilled,\n getValue\n}) => {\n const classes = useStyles()\n const [{ innerError, selected, form, isNew }, dispatch] = useReducer(\n reducer,\n initialState\n )\n\n useEffect(() => {\n dispatch({ type: 'reset' })\n }, [step])\n\n const innerContinue = (config, account) => {\n if (!config || !config[type]) {\n return dispatch({ type: 'error' })\n }\n onContinue(config, account)\n }\n\n const label = lastStep ? 'Finish' : 'Next'\n const displayName = name ?? type\n const subtitleClass = {\n [classes.subtitle]: true,\n [classes.error]: innerError\n }\n return (\n <>\n {startCase(displayName)} \n \n \n {step < 4\n ? `Select a ${displayName} or set up a new one`\n : `Select ${displayName} for ${coin}`}\n \n {step !== 5 && (\n {\n dispatch({ type: 'select', selected: it })\n }}\n labelClassName={classes.radioLabel}\n radioClassName={classes.radio}\n />\n )}\n {step === 5 && (\n \n {({ values, setFieldValue }) => (\n \n )}\n \n )}\n \n {!R.isEmpty(unfilled) && !R.isNil(unfilled) && (\n
{\n dispatch({ type: 'new' })\n }}\n labelClassName={classes.radioLabel}\n radioClassName={classes.radio}\n options={[{ display: 'Set up new', code: true }]}\n />\n )}\n {isNew && (\n {\n dispatch({ type: 'form', form: it })\n }}\n />\n )}\n \n {form && (\n innerContinue({ [type]: form.code }, { [form.code]: it })}\n elements={schema[form.code].elements}\n validationSchema={schema[form.code].validationSchema}\n value={getValue(form.code)}\n buttonLabel={label}\n />\n )}\n {!form && (\n \n {error && Failed to save }\n innerContinue({ [type]: selected })}>\n {label}\n \n
\n )}\n >\n )\n}\n\nexport default WizardStep\n","import { utils as coinUtils } from '@lamassu/coins'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\nimport * as Yup from 'yup'\n\nimport Modal from 'src/components/Modal'\nimport schema from 'src/pages/Services/schemas'\nimport { toNamespace } from 'src/utils/config'\n\nimport WizardSplash from './WizardSplash'\nimport WizardStep from './WizardStep'\n\nconst LAST_STEP = 5\nconst MODAL_WIDTH = 554\n\nconst contains = crypto => R.compose(R.contains(crypto), R.prop('cryptos'))\nconst sameClass = type => R.propEq('class', type)\nconst filterConfig = (crypto, type) =>\n R.filter(it => sameClass(type)(it) && contains(crypto)(it))\nconst removeDeprecated = R.filter(({ deprecated }) => !deprecated)\n\nconst getItems = (accountsConfig, accounts, type, crypto) => {\n const fConfig = removeDeprecated(filterConfig(crypto, type)(accountsConfig))\n\n const find = code => accounts && accounts[code]\n\n const [filled, unfilled] = R.partition(({ code }) => {\n const account = find(code)\n if (!schema[code]) return true\n\n const { getValidationSchema } = schema[code]\n return getValidationSchema(account).isValidSync(account)\n })(fConfig)\n\n return { filled, unfilled }\n}\n\nconst Wizard = ({\n coin,\n onClose,\n accountsConfig,\n accounts,\n fiatCurrency,\n save,\n error\n}) => {\n const [{ step, config, accountsToSave }, setState] = useState({\n step: 0,\n config: { active: true },\n accountsToSave: {}\n })\n\n const title = `Enable ${coin.display}`\n const isLastStep = step === LAST_STEP\n\n const tickers = { filled: filterConfig(coin.code, 'ticker')(accountsConfig) }\n const wallets = getItems(accountsConfig, accounts, 'wallet', coin.code)\n const exchanges = getItems(accountsConfig, accounts, 'exchange', coin.code)\n const zeroConfs = getItems(accountsConfig, accounts, 'zeroConf', coin.code)\n\n const getValue = code => R.find(R.propEq('code', code))(accounts)\n\n const onContinue = async (stepConfig, stepAccount) => {\n const newConfig = R.merge(config, stepConfig)\n const newAccounts = stepAccount\n ? R.merge(accountsToSave, stepAccount)\n : accountsToSave\n\n if (isLastStep) {\n const defaultCryptoUnit = R.head(\n R.keys(coinUtils.getCryptoCurrency(coin.code).units)\n )\n const configToSave = {\n ...newConfig,\n cryptoUnits: defaultCryptoUnit\n }\n return save(toNamespace(coin.code, configToSave), newAccounts)\n }\n\n setState({\n step: step + 1,\n config: newConfig,\n accountsToSave: newAccounts\n })\n }\n\n const getStepData = () => {\n switch (step) {\n case 1:\n return { type: 'ticker', ...tickers }\n case 2:\n return { type: 'wallet', ...wallets }\n case 3:\n return { type: 'exchange', ...exchanges }\n case 4:\n return {\n type: 'zeroConf',\n name: 'confidence checking',\n schema: Yup.object().shape({\n zeroConfLimit: Yup.number().required()\n }),\n ...zeroConfs\n }\n case 5:\n return { type: 'zeroConfLimit', name: '0-conf limit', ...zeroConfs }\n default:\n return null\n }\n }\n\n return (\n \n {step === 0 && (\n onContinue()}\n />\n )}\n {step !== 0 && (\n \n )}\n \n )\n}\n\nexport default Wizard\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport Modal from 'src/components/Modal'\nimport { Link } from 'src/components/buttons'\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport Section from 'src/components/layout/Section'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport { P } from 'src/components/typography'\nimport Wizard from 'src/pages/Wallet/Wizard'\nimport { WalletSchema } from 'src/pages/Wallet/helper'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nimport { styles } from './Locales.styles'\nimport {\n mainFields,\n overrides,\n LocaleSchema,\n OverridesSchema,\n localeDefaults,\n overridesDefaults\n} from './helper'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_DATA = gql`\n query getData {\n config\n accounts\n accountsConfig {\n code\n display\n class\n cryptos\n }\n currencies {\n code\n display\n }\n countries {\n code\n display\n }\n cryptoCurrencies {\n code\n display\n }\n languages {\n code\n display\n }\n machines {\n name\n deviceId\n }\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst FiatCurrencyChangeAlert = ({ open, close, save }) => {\n const classes = useStyles()\n\n return (\n \n \n Please note that all values you set that were based on your prior fiat\n currency are still the same. If you need to adjust these to reflect the\n new fiat currency (such as minimum transaction amounts, fixed fees, and\n compliance triggers, for example), please do so now.\n
\n \n Also, if you have cash-out enabled, you must define new dispenser bill\n counts for the new currency for cash-out on the new currency to work.\n
\n \n \n Cancel\n \n \n Save\n \n
\n \n )\n}\n\nconst Locales = ({ name: SCREEN_KEY }) => {\n const [wizard, setWizard] = useState(false)\n const [onChangeFunction, setOnChangeFunction] = useState(null)\n const [error, setError] = useState(null)\n const [isEditingDefault, setEditingDefault] = useState(false)\n const [isEditingOverrides, setEditingOverrides] = useState(false)\n const { data } = useQuery(GET_DATA)\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n onCompleted: () => setWizard(false),\n refetchQueries: () => ['getData'],\n onError: error => setError(error)\n })\n\n const [dataToSave, setDataToSave] = useState(null)\n\n const config = data?.config && fromNamespace(SCREEN_KEY)(data.config)\n const wallets = data?.config && fromNamespace(namespaces.WALLETS)(data.config)\n\n const accountsConfig = data?.accountsConfig\n const accounts = data?.accounts ?? []\n const cryptoCurrencies = data?.cryptoCurrencies ?? []\n const locale = config && !R.isEmpty(config) ? config : localeDefaults\n const localeOverrides = locale.overrides ?? []\n\n const handleSave = it => {\n const newConfig = toNamespace(SCREEN_KEY)(it.locale[0])\n\n if (\n config.fiatCurrency &&\n newConfig.locale_fiatCurrency !== config.fiatCurrency\n )\n return setDataToSave(newConfig)\n\n return save(newConfig)\n }\n\n const save = config => {\n setDataToSave(null)\n return saveConfig({ variables: { config } })\n }\n\n const saveOverrides = it => {\n const config = toNamespace(SCREEN_KEY)(it)\n setError(null)\n return saveConfig({ variables: { config } })\n }\n\n const onChangeCoin = (prev, curr, setValue) => {\n const coin = R.difference(curr, prev)[0]\n if (!coin) return setValue(curr)\n\n const namespaced = fromNamespace(coin)(wallets)\n if (!WalletSchema.isValidSync(namespaced)) {\n setOnChangeFunction(() => () => setValue(curr))\n setWizard(coin)\n return\n }\n\n setValue(curr)\n }\n\n const onEditingDefault = (it, editing) => setEditingDefault(editing)\n const onEditingOverrides = (it, editing) => setEditingOverrides(editing)\n\n const wizardSave = it =>\n save(toNamespace(namespaces.WALLETS)(it)).then(it => {\n onChangeFunction()\n setOnChangeFunction(null)\n return it\n })\n\n return (\n <>\n setDataToSave(null)}\n save={() => dataToSave && save(dataToSave)}\n />\n \n \n \n m.deviceId) ?? [],\n localeOverrides?.map(o => o.machine) ?? []\n )}\n setEditing={onEditingOverrides}\n forceDisable={isEditingDefault}\n />\n \n {wizard && (\n setWizard(false)}\n save={wizardSave}\n error={error?.message}\n cryptoCurrencies={cryptoCurrencies}\n userAccounts={data?.config?.accounts}\n accounts={accounts}\n accountsConfig={accountsConfig}\n />\n )}\n >\n )\n}\n\nexport default Locales\n","const styles = {\n rightAligned: {\n marginTop: '20px',\n marginLeft: 'auto',\n marginBottom: '20px'\n },\n rightLink: {\n marginLeft: '20px'\n }\n}\n\nexport { styles }\n","import Locales from './Locales'\n\nexport default Locales\n","import { spacer, errorColor } from 'src/styling/variables'\n\nconst styles = {\n identification: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n '& > *:first-child': {\n marginLeft: 0\n },\n '& > *': {\n marginLeft: 6\n },\n '& > *:nth-child(3)': {\n marginLeft: 15\n }\n },\n form: {\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n '& > *:first-child': {\n marginTop: 10\n },\n '& > *': {\n marginBottom: 20\n }\n },\n customerAutocomplete: {\n width: 350\n },\n discountRateWrapper: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center'\n },\n discountInput: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center'\n },\n footer: {\n display: 'flex',\n flexDirection: 'row',\n margin: [['auto', 0, spacer * 3, 0]]\n },\n submit: {\n margin: [['auto', 0, 0, 'auto']]\n },\n error: {\n color: errorColor\n }\n}\n\nexport default styles\n","import { makeStyles } from '@material-ui/core/styles'\nimport { Form, Formik, Field } from 'formik'\nimport * as R from 'ramda'\nimport React from 'react'\nimport * as Yup from 'yup'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Modal from 'src/components/Modal'\nimport { HoverableTooltip } from 'src/components/Tooltip'\nimport { Button } from 'src/components/buttons'\nimport { NumberInput, Autocomplete } from 'src/components/inputs/formik'\nimport { H3, TL1, P } from 'src/components/typography'\n\nimport styles from './IndividualDiscount.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst initialValues = {\n customer: '',\n discount: ''\n}\n\nconst validationSchema = Yup.object().shape({\n customer: Yup.string().required('A customer is required!'),\n discount: Yup.number()\n .required('A discount rate is required!')\n .min(0, 'Discount rate should be a positive number!')\n .max(100, 'Discount rate should have a maximum value of 100%!')\n})\n\nconst getErrorMsg = (formikErrors, formikTouched, mutationError) => {\n if (!formikErrors || !formikTouched) return null\n if (mutationError) return 'Internal server error'\n if (formikErrors.customer && formikTouched.customer)\n return formikErrors.customer\n if (formikErrors.discount && formikTouched.discount)\n return formikErrors.discount\n return null\n}\n\nconst IndividualDiscountModal = ({\n showModal,\n setShowModal,\n onClose,\n creationError,\n addDiscount,\n customers\n}) => {\n const classes = useStyles()\n\n const handleAddDiscount = (customer, discount) => {\n addDiscount({\n variables: {\n customerId: customer,\n discount: parseInt(discount)\n }\n })\n setShowModal(false)\n }\n\n return (\n <>\n {showModal && (\n \n {\n handleAddDiscount(customer, discount)\n }}>\n {({ errors, touched }) => (\n \n )}\n \n \n )}\n >\n )\n}\n\nexport default IndividualDiscountModal\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles, Box } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { DeleteDialog } from 'src/components/DeleteDialog'\nimport { Link, Button, IconButton } from 'src/components/buttons'\nimport DataTable from 'src/components/tables/DataTable'\nimport { Label3, TL1 } from 'src/components/typography'\nimport { ReactComponent as PhoneIdIcon } from 'src/styling/icons/ID/phone/zodiac.svg'\nimport { ReactComponent as DeleteIcon } from 'src/styling/icons/action/delete/enabled.svg'\n\nimport styles from './IndividualDiscount.styles'\nimport IndividualDiscountModal from './IndividualDiscountModal'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_INDIVIDUAL_DISCOUNTS = gql`\n query individualDiscounts {\n individualDiscounts {\n id\n customerId\n discount\n }\n }\n`\n\nconst DELETE_DISCOUNT = gql`\n mutation deleteIndividualDiscount($discountId: ID!) {\n deleteIndividualDiscount(discountId: $discountId) {\n id\n }\n }\n`\n\nconst CREATE_DISCOUNT = gql`\n mutation createIndividualDiscount($customerId: ID!, $discount: Int!) {\n createIndividualDiscount(customerId: $customerId, discount: $discount) {\n id\n }\n }\n`\n\nconst GET_CUSTOMERS = gql`\n {\n customers {\n id\n phone\n idCardData\n }\n }\n`\n\nconst IndividualDiscounts = () => {\n const classes = useStyles()\n\n const [deleteDialog, setDeleteDialog] = useState(false)\n const [toBeDeleted, setToBeDeleted] = useState()\n\n const [errorMsg, setErrorMsg] = useState('')\n const [showModal, setShowModal] = useState(false)\n const toggleModal = () => setShowModal(!showModal)\n\n const { data: discountResponse, loading: discountLoading } = useQuery(\n GET_INDIVIDUAL_DISCOUNTS\n )\n const { data: customerData, loading: customerLoading } = useQuery(\n GET_CUSTOMERS\n )\n\n const [createDiscount, { error: creationError }] = useMutation(\n CREATE_DISCOUNT,\n {\n refetchQueries: () => ['individualDiscounts']\n }\n )\n\n const getCustomer = id => {\n const customers = R.path(['customers'])(customerData)\n return R.find(R.propEq('id', id))(customers)\n }\n\n const [deleteDiscount] = useMutation(DELETE_DISCOUNT, {\n onError: ({ message }) => {\n const errorMessage = message ?? 'Error while deleting row'\n setErrorMsg(errorMessage)\n },\n onCompleted: () => setDeleteDialog(false),\n refetchQueries: () => ['individualDiscounts']\n })\n\n const elements = [\n {\n header: 'Identification',\n width: 312,\n textAlign: 'left',\n size: 'sm',\n view: t => {\n const customer = getCustomer(t.customerId)\n return (\n \n )\n }\n },\n {\n header: 'Name',\n width: 300,\n textAlign: 'left',\n size: 'sm',\n view: t => {\n const customer = getCustomer(t.customerId)\n if (R.isNil(customer.idCardData)) {\n return <>{'-'}>\n }\n\n return (\n <>{`${customer.idCardData.firstName ?? ``}${\n customer.idCardData.firstName && customer.idCardData.lastName\n ? ` `\n : ``\n }${customer.idCardData.lastName ?? ``}`}>\n )\n }\n },\n {\n header: 'Discount rate',\n width: 220,\n textAlign: 'left',\n size: 'sm',\n view: t => (\n <>\n {t.discount} %\n >\n )\n },\n {\n header: 'Revoke',\n width: 100,\n textAlign: 'center',\n size: 'sm',\n view: t => (\n {\n setDeleteDialog(true)\n setToBeDeleted({ variables: { discountId: t.id } })\n }}>\n \n \n )\n }\n ]\n\n const loading = discountLoading || customerLoading\n\n return (\n <>\n {!loading && !R.isEmpty(discountResponse.individualDiscounts) && (\n <>\n \n \n Add new code\n \n \n \n {\n setDeleteDialog(false)\n setErrorMsg(null)\n }}\n onConfirmed={() => {\n setErrorMsg(null)\n deleteDiscount(toBeDeleted)\n }}\n errorMessage={errorMsg}\n />\n >\n )}\n {!loading && R.isEmpty(discountResponse.individualDiscounts) && (\n \n \n It seems there are no active individual customer discounts on your\n network.\n \n Add individual discount \n \n )}\n {\n setShowModal(false)\n }}\n creationError={creationError}\n addDiscount={createDiscount}\n customers={R.path(['customers'])(customerData)}\n />\n >\n )\n}\n\nexport default IndividualDiscounts\n","import {\n spacer,\n fontPrimary,\n primaryColor,\n errorColor\n} from 'src/styling/variables'\n\nconst styles = {\n footer: {\n display: 'flex',\n flexDirection: 'row',\n margin: [['auto', 0, spacer * 3, 0]]\n },\n modalLabel1: {\n marginTop: 20\n },\n modalLabel2Wrapper: {\n marginTop: 40,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-start'\n },\n discountInput: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'flex-start'\n },\n inputLabel: {\n color: primaryColor,\n fontFamily: fontPrimary,\n fontSize: 24,\n marginLeft: 8,\n marginTop: 15\n },\n tableWidth: {\n width: 620\n },\n error: {\n color: errorColor\n },\n form: {\n display: 'flex',\n flexDirection: 'column',\n height: '100%'\n },\n submit: {\n margin: [['auto', 0, 0, 'auto']]\n }\n}\n\nexport default styles\n","import { makeStyles } from '@material-ui/core/styles'\nimport { Form, Formik, Field } from 'formik'\nimport * as R from 'ramda'\nimport React from 'react'\nimport * as Yup from 'yup'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Modal from 'src/components/Modal'\nimport { HoverableTooltip } from 'src/components/Tooltip'\nimport { Button } from 'src/components/buttons'\nimport { TextInput, NumberInput } from 'src/components/inputs/formik'\nimport { H3, TL1, P } from 'src/components/typography'\n\nimport styles from './PromoCodes.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst initialValues = {\n code: '',\n discount: ''\n}\n\nconst validationSchema = Yup.object().shape({\n code: Yup.string()\n .required()\n .trim()\n .max(25),\n discount: Yup.number()\n .required()\n .min(0)\n .max(100)\n})\n\nconst PromoCodesModal = ({ showModal, onClose, errorMsg, addCode }) => {\n const classes = useStyles()\n\n const handleAddCode = (code, discount) => {\n addCode(R.toUpper(code), parseInt(discount))\n }\n\n return (\n <>\n {showModal && (\n \n {\n handleAddCode(code, discount)\n }}>\n \n \n \n )}\n >\n )\n}\n\nexport default PromoCodesModal\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles, Box } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { DeleteDialog } from 'src/components/DeleteDialog'\nimport { Link, Button, IconButton } from 'src/components/buttons'\nimport DataTable from 'src/components/tables/DataTable'\nimport { Label3, TL1 } from 'src/components/typography'\nimport { ReactComponent as DeleteIcon } from 'src/styling/icons/action/delete/enabled.svg'\n\nimport styles from './PromoCodes.styles'\nimport PromoCodesModal from './PromoCodesModal'\n\nconst useStyles = makeStyles(styles)\n\nconst DUPLICATE_ERROR_MSG = 'There is already a promotion with that code!'\nconst DEFAULT_ERROR_MSG = 'Failed to save'\n\nconst GET_PROMO_CODES = gql`\n query promoCodes {\n promoCodes {\n id\n code\n discount\n }\n }\n`\n\nconst DELETE_CODE = gql`\n mutation deletePromoCode($codeId: ID!) {\n deletePromoCode(codeId: $codeId) {\n id\n }\n }\n`\n\nconst CREATE_CODE = gql`\n mutation createPromoCode($code: String!, $discount: Int!) {\n createPromoCode(code: $code, discount: $discount) {\n id\n code\n discount\n }\n }\n`\n\nconst PromoCodes = () => {\n const classes = useStyles()\n\n const [deleteDialog, setDeleteDialog] = useState(false)\n const [toBeDeleted, setToBeDeleted] = useState()\n\n const [showModal, setShowModal] = useState(false)\n const [errorMsg, setErrorMsg] = useState(null)\n const toggleModal = () => setShowModal(!showModal)\n\n const { data: codeResponse, loading } = useQuery(GET_PROMO_CODES)\n\n const [deleteCode] = useMutation(DELETE_CODE, {\n onError: ({ message }) => {\n const errorMessage = message ?? 'Error while deleting row'\n setErrorMsg(errorMessage)\n },\n onCompleted: () => setDeleteDialog(false),\n refetchQueries: () => ['promoCodes']\n })\n\n const [createCode] = useMutation(CREATE_CODE, {\n refetchQueries: () => ['promoCodes']\n })\n\n const addCode = (code, discount) => {\n setErrorMsg(null)\n createCode({\n variables: { code: code, discount: discount }\n })\n .then(res => {\n if (!res.errors) return setShowModal(false)\n\n const duplicateCodeError = R.any(it =>\n R.includes('duplicate', it?.message)\n )(res.errors)\n\n const msg = duplicateCodeError ? DUPLICATE_ERROR_MSG : DEFAULT_ERROR_MSG\n setErrorMsg(msg)\n })\n .catch(err => {\n setErrorMsg(DEFAULT_ERROR_MSG)\n console.log(err)\n })\n }\n\n const elements = [\n {\n header: 'Code',\n width: 300,\n textAlign: 'left',\n size: 'sm',\n view: t => t.code\n },\n {\n header: 'Discount',\n width: 220,\n textAlign: 'left',\n size: 'sm',\n view: t => (\n <>\n {t.discount} % in commissions\n >\n )\n },\n {\n header: 'Delete',\n width: 100,\n textAlign: 'center',\n size: 'sm',\n view: t => (\n {\n setDeleteDialog(true)\n setToBeDeleted({ variables: { codeId: t.id } })\n }}>\n \n \n )\n }\n ]\n\n return (\n <>\n {!loading && !R.isEmpty(codeResponse.promoCodes) && (\n \n \n Add new code\n \n \n )}\n {!loading && !R.isEmpty(codeResponse.promoCodes) && (\n <>\n \n {\n setDeleteDialog(false)\n setErrorMsg(null)\n }}\n onConfirmed={() => {\n setErrorMsg(null)\n deleteCode(toBeDeleted)\n }}\n errorMessage={errorMsg}\n />\n >\n )}\n {!loading && R.isEmpty(codeResponse.promoCodes) && (\n \n \n Currently, there are no active promo codes on your network.\n \n Add Code \n \n )}\n {\n setErrorMsg(null)\n setShowModal(false)\n }}\n errorMsg={errorMsg}\n addCode={addCode}\n />\n >\n )\n}\nexport default PromoCodes\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"pop-up/action/download-logs/date-range-copy-3\",\n transform: \"translate(-117.000000, -116.000000)\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"arrow-download-logs\",\n transform: \"translate(128.500000, 124.500000) rotate(-90.000000) translate(-128.500000, -124.500000) translate(121.000000, 114.000000)\"\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path-3\",\n points: \"0 13.3571429 7.14285714 20.5 14.2857143 13.3571429\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 7.14285714,\n y1: 0.142857143,\n x2: 7.14285714,\n y2: 20.1428571,\n id: \"Path-4\"\n}))));\n\nfunction SvgDownloadLogs(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"23px\",\n height: \"17px\",\n viewBox: \"0 0 23 17\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"arrow download logs\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDownloadLogs);\nexport default __webpack_public_path__ + \"static/media/download_logs.219c88ac.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"pop-up/action/download-logs/date-range-copy-2\",\n transform: \"translate(-20.000000, -187.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-contain-b-copy-5\",\n transform: \"translate(30.000000, 197.000000) rotate(-270.000000) translate(-30.000000, -197.000000) translate(20.000000, 187.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/wizzard\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(6.666667, 6.000000)\",\n id: \"Group\"\n}, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path-3\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n points: \"0 4.83333333 3.33333333 8.16666667 6.66666667 4.83333333\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 3.33333333,\n y1: 0.25,\n x2: 3.33333333,\n y2: 6.5,\n id: \"Path-4\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n})))))));\n\nfunction SvgMonthChange(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMonthChange);\nexport default __webpack_public_path__ + \"static/media/month_change.58940268.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"pop-up/action/download-logs/date-range-copy-2\",\n transform: \"translate(-20.000000, -187.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-contain-b-copy-5\",\n transform: \"translate(30.000000, 197.000000) rotate(270.000000) translate(-30.000000, -197.000000) translate(20.000000, 187.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/wizzard\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(6.666667, 6.000000)\",\n id: \"Group\"\n}, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path-3\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n points: \"0 4.83333333 3.33333333 8.16666667 6.66666667 4.83333333\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 3.33333333,\n y1: 0.25,\n x2: 3.33333333,\n y2: 6.5,\n id: \"Path-4\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n})))))));\n\nfunction SvgMonthChangeRight(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMonthChangeRight);\nexport default __webpack_public_path__ + \"static/media/month_change_right.0c3eb9a1.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport typographyStyles from 'src/components/typography/styles'\nimport {\n primaryColor,\n spring2,\n spring3,\n disabledColor\n} from 'src/styling/variables'\n\nconst { label1 } = typographyStyles\n\nconst styles = {\n wrapper: {\n height: 26,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n overflow: 'hidden'\n },\n button: {\n outline: 'none',\n extend: label1,\n border: 'none',\n cursor: 'pointer',\n backgroundColor: 'transparent',\n color: primaryColor,\n zIndex: 2\n },\n lowerBound: {\n left: '50%'\n },\n upperBound: {\n right: '50%'\n },\n selected: {\n width: 26,\n height: 26,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: spring2,\n borderRadius: '50%',\n position: 'absolute',\n zIndex: 1\n },\n between: {\n position: 'absolute',\n width: '100%',\n height: '100%',\n zIndex: 0,\n backgroundColor: spring3\n },\n disabled: {\n color: disabledColor,\n cursor: 'default'\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst Tile = ({\n isLowerBound,\n isUpperBound,\n isBetween,\n isDisabled,\n children,\n ...props\n}) => {\n const classes = useStyles()\n const selected = isLowerBound || isUpperBound\n\n const rangeClasses = {\n [classes.between]: isBetween && !(isLowerBound && isUpperBound),\n [classes.lowerBound]: isLowerBound && !isUpperBound,\n [classes.upperBound]: isUpperBound && !isLowerBound\n }\n\n const buttonWrapperClasses = {\n [classes.wrapper]: true,\n [classes.selected]: selected\n }\n\n const buttonClasses = {\n [classes.button]: true,\n [classes.disabled]: isDisabled\n }\n\n return (\n \n )\n}\n\nexport default Tile\n","import { makeStyles } from '@material-ui/core/styles'\nimport {\n add,\n differenceInMonths,\n format,\n getDay,\n getDaysInMonth,\n isAfter,\n isSameDay,\n isSameMonth,\n lastDayOfMonth,\n startOfMonth,\n startOfWeek,\n sub\n} from 'date-fns/fp'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport typographyStyles from 'src/components/typography/styles'\nimport { ReactComponent as Arrow } from 'src/styling/icons/arrow/month_change.svg'\nimport { ReactComponent as RightArrow } from 'src/styling/icons/arrow/month_change_right.svg'\nimport { primaryColor, zircon } from 'src/styling/variables'\n\nimport Tile from './Tile'\n\nconst { p, label2 } = typographyStyles\n\nconst styles = {\n wrapper: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center'\n },\n button: {\n outline: 'none'\n },\n navbar: {\n extend: p,\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n padding: [[15, 15]],\n color: primaryColor,\n '& button': {\n display: 'flex',\n alignItems: 'center',\n padding: 0,\n border: 'none',\n backgroundColor: zircon,\n cursor: 'pointer',\n borderRadius: '50%',\n width: 20,\n height: 20,\n position: 'relative',\n overflow: 'hidden',\n '& svg': {\n position: 'absolute',\n left: 0\n }\n }\n },\n table: {\n borderCollapse: 'collapse',\n width: '100%',\n color: primaryColor,\n '& tr': {\n '&:first-child': {\n paddingLeft: 5\n },\n '&:last-child': {\n paddingRight: 5\n }\n },\n '& th, & td': {\n margin: 0,\n padding: [[3, 0, 3, 0]]\n },\n '& th': {\n extend: label2\n }\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst Calendar = ({ minDate, maxDate, handleSelect, ...props }) => {\n const [currentDisplayedMonth, setCurrentDisplayedMonth] = useState(new Date())\n\n const classes = useStyles()\n\n const weekdays = Array.from(Array(7)).map((_, i) =>\n format('EEEEE', add({ days: i }, startOfWeek(new Date())))\n )\n\n const monthLength = month => getDaysInMonth(month)\n\n const monthdays = month => {\n const lastMonth = sub({ months: 1 }, month)\n const lastMonthRange = R.range(0, getDay(startOfMonth(month))).reverse()\n const lastMonthDays = R.map(i =>\n sub({ days: i }, lastDayOfMonth(lastMonth))\n )(lastMonthRange)\n\n const thisMonthRange = R.range(0, monthLength(month))\n const thisMonthDays = R.map(i => add({ days: i }, startOfMonth(month)))(\n thisMonthRange\n )\n\n const nextMonth = add({ months: 1 }, month)\n const nextMonthRange = R.range(\n 0,\n 42 - lastMonthDays.length - thisMonthDays.length\n )\n const nextMonthDays = R.map(i => add({ days: i }, startOfMonth(nextMonth)))(\n nextMonthRange\n )\n\n return R.concat(R.concat(lastMonthDays, thisMonthDays), nextMonthDays)\n }\n\n const getRow = (month, row) => monthdays(month).slice(row * 7 - 7, row * 7)\n\n const handleNavPrev = currentMonth => {\n const prevMonth = sub({ months: 1 }, currentMonth)\n if (!minDate) setCurrentDisplayedMonth(prevMonth)\n else {\n setCurrentDisplayedMonth(\n isSameMonth(minDate, prevMonth) ||\n differenceInMonths(minDate, prevMonth) > 0\n ? prevMonth\n : currentDisplayedMonth\n )\n }\n }\n const handleNavNext = currentMonth => {\n const nextMonth = add({ months: 1 }, currentMonth)\n if (!maxDate) setCurrentDisplayedMonth(nextMonth)\n else {\n setCurrentDisplayedMonth(\n isSameMonth(maxDate, nextMonth) ||\n differenceInMonths(nextMonth, maxDate) > 0\n ? nextMonth\n : currentDisplayedMonth\n )\n }\n }\n\n return (\n \n
\n
handleNavPrev(currentDisplayedMonth)}>\n \n \n
\n {`${format('MMMM', currentDisplayedMonth)} ${format(\n 'yyyy',\n currentDisplayedMonth\n )}`}\n \n
handleNavNext(currentDisplayedMonth)}>\n \n \n
\n
\n \n \n {weekdays.map((day, key) => (\n {day} \n ))}\n \n \n \n {R.range(1, 8).map((row, key) => (\n \n {getRow(currentDisplayedMonth, row).map((day, key) => (\n handleSelect(day, minDate, maxDate)}>\n \n {format('d', day)}\n \n \n ))}\n \n ))}\n \n
\n
\n )\n}\n\nexport default Calendar\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport {\n differenceInDays,\n differenceInMonths,\n isSameMonth,\n set\n} from 'date-fns/fp'\nimport React, { useState, useEffect } from 'react'\n\nimport Calendar from './Calendar'\n\nconst styles = {\n wrapper: {\n backgroundColor: 'white',\n borderRadius: 10\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst DateRangePicker = ({ minDate, maxDate, className, onRangeChange }) => {\n const [from, setFrom] = useState(null)\n const [to, setTo] = useState(null)\n\n useEffect(() => {\n onRangeChange(from, to)\n }, [from, onRangeChange, to])\n\n const classes = useStyles()\n\n const handleSelect = (day, minDate, maxDate) => {\n if (\n (maxDate && differenceInDays(maxDate, day) > 0) ||\n (minDate && differenceInDays(day, minDate) > 0)\n )\n return\n\n if (from && !to && differenceInDays(day, from) > 0) {\n setTo(from)\n setFrom(day)\n return\n }\n\n if (\n from &&\n !to &&\n (isSameMonth(from, day) || differenceInMonths(from, day) > 0)\n ) {\n setTo(\n set({ hours: 23, minutes: 59, seconds: 59, milliseconds: 999 }, day)\n )\n return\n }\n\n setFrom(day)\n setTo(null)\n }\n\n return (\n <>\n \n \n
\n >\n )\n}\n\nexport default DateRangePicker\n","import { useLazyQuery } from '@apollo/react-hooks'\nimport { makeStyles, ClickAwayListener } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { format } from 'date-fns/fp'\nimport FileSaver from 'file-saver'\nimport * as R from 'ramda'\nimport React, { useState, useCallback } from 'react'\n\nimport { FeatureButton, Link } from 'src/components/buttons'\nimport { ReactComponent as Arrow } from 'src/styling/icons/arrow/download_logs.svg'\nimport { ReactComponent as DownloadInverseIcon } from 'src/styling/icons/button/download/white.svg'\nimport { ReactComponent as Download } from 'src/styling/icons/button/download/zodiac.svg'\nimport { primaryColor, offColor, zircon } from 'src/styling/variables'\nimport { formatDate } from 'src/utils/timezones'\n\nimport Popper from './Popper'\nimport DateRangePicker from './date-range-picker/DateRangePicker'\nimport { RadioGroup } from './inputs'\nimport typographyStyles from './typography/styles'\n\nconst { info1, label1, label2, h4 } = typographyStyles\n\nconst dateContainerStyles = {\n wrapper: {\n height: 46,\n width: 99\n },\n container: {\n display: 'flex'\n },\n monthWeekDayContainer: {\n display: 'flex',\n flexDirection: 'column'\n },\n label: {\n extend: label1,\n lineHeight: 1.33,\n color: primaryColor\n },\n bigNumber: {\n extend: info1,\n lineHeight: 1,\n marginRight: 7\n },\n monthYear: {\n extend: label2,\n lineHeight: 1.17,\n color: primaryColor\n },\n weekDay: {\n extend: label1,\n lineHeight: 1.33,\n color: offColor\n }\n}\n\nconst dateContainerUseStyles = makeStyles(dateContainerStyles)\n\nconst DateContainer = ({ date, children, ...props }) => {\n const classes = dateContainerUseStyles()\n\n return (\n \n
{children}
\n {date && (\n <>\n
\n
{format('d', date)}
\n
\n {`${format(\n 'MMM',\n date\n )} ${format('yyyy', date)}`} \n {format('EEEE', date)} \n
\n
\n >\n )}\n
\n )\n}\n\nconst styles = {\n popoverContent: {\n width: 280\n },\n popoverHeader: {\n extend: h4,\n padding: [[15, 15, 0, 15]]\n },\n radioButtonsContainer: {\n padding: [[5, 15, 5, 15]]\n },\n radioButtons: {\n display: 'flex',\n justifyContent: 'space-between',\n flexDirection: 'row',\n color: primaryColor\n },\n dateRangePickerShowing: {\n display: 'block',\n height: '100%'\n },\n dateRangePickerHidden: {\n display: 'none',\n height: 0\n },\n download: {\n padding: [[10, 15]]\n },\n dateContainerWrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n position: 'relative',\n backgroundColor: zircon,\n padding: [[0, 15]],\n minHeight: 70\n },\n arrowContainer: {\n position: 'absolute',\n left: 125,\n top: 26\n },\n arrow: {\n margin: 'auto'\n }\n}\n\nconst useStyles = makeStyles(styles)\nconst ALL = 'all'\nconst RANGE = 'range'\nconst ADVANCED = 'advanced'\nconst SIMPLIFIED = 'simplified'\n\nconst LogsDownloaderPopover = ({\n name,\n query,\n args,\n title,\n getLogs,\n timezone,\n simplified\n}) => {\n const [selectedRadio, setSelectedRadio] = useState(ALL)\n const [selectedAdvancedRadio, setSelectedAdvancedRadio] = useState(ADVANCED)\n\n const [range, setRange] = useState({ from: null, until: null })\n const [anchorEl, setAnchorEl] = useState(null)\n const [fetchLogs] = useLazyQuery(query, {\n onCompleted: data => createLogsFile(getLogs(data), range)\n })\n\n const classes = useStyles()\n\n const dateRangePickerClasses = {\n [classes.dateRangePickerShowing]: selectedRadio === RANGE,\n [classes.dateRangePickerHidden]: selectedRadio === ALL\n }\n\n const handleRadioButtons = evt => {\n const selectedRadio = R.path(['target', 'value'])(evt)\n setSelectedRadio(selectedRadio)\n if (selectedRadio === ALL) setRange({ from: null, until: null })\n }\n\n const handleAdvancedRadioButtons = evt => {\n const selectedAdvancedRadio = R.path(['target', 'value'])(evt)\n setSelectedAdvancedRadio(selectedAdvancedRadio)\n }\n\n const handleRangeChange = useCallback(\n (from, until) => {\n setRange({ from, until })\n },\n [setRange]\n )\n\n const downloadLogs = (range, args) => {\n if (selectedRadio === ALL) {\n fetchLogs({\n variables: {\n ...args,\n simplified: selectedAdvancedRadio === SIMPLIFIED,\n excludeTestingCustomers: true\n }\n })\n }\n\n if (!range || !range.from) return\n if (range.from && !range.until) range.until = new Date()\n\n if (selectedRadio === RANGE) {\n fetchLogs({\n variables: {\n ...args,\n from: range.from,\n until: range.until,\n simplified: selectedAdvancedRadio === SIMPLIFIED,\n excludeTestingCustomers: true\n }\n })\n }\n }\n\n const createLogsFile = (logs, range) => {\n const formatDateFile = date => {\n return formatDate(date, timezone, 'yyyy-MM-dd_HH-mm')\n }\n\n const blob = new window.Blob([logs], {\n type: 'text/plain;charset=utf-8'\n })\n\n FileSaver.saveAs(\n blob,\n selectedRadio === ALL\n ? `${formatDateFile(new Date())}_${name}.csv`\n : `${formatDateFile(range.from)}_${formatDateFile(\n range.until\n )}_${name}.csv`\n )\n }\n\n const handleOpenRangePicker = event => {\n setAnchorEl(anchorEl ? null : event.currentTarget)\n }\n\n const handleClickAway = () => {\n setAnchorEl(null)\n }\n\n const radioButtonOptions = [\n { display: 'All logs', code: ALL },\n { display: 'Date range', code: RANGE }\n ]\n\n const advancedRadioButtonOptions = [\n { display: 'Advanced logs', code: ADVANCED },\n { display: 'Simplified logs', code: SIMPLIFIED }\n ]\n\n const open = Boolean(anchorEl)\n const id = open ? 'date-range-popover' : undefined\n\n return (\n \n \n
\n
\n \n
{title}
\n
\n \n
\n {selectedRadio === RANGE && (\n
\n
\n {range && (\n <>\n
From \n
\n
To \n >\n )}\n
\n
\n
\n )}\n {simplified && (\n
\n \n
\n )}\n
\n downloadLogs(range, args)}>\n Download\n \n
\n
\n \n
\n \n )\n}\n\nexport default LogsDownloaderPopover\n","import { useQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport LogsDowloaderPopover from 'src/components/LogsDownloaderPopper'\nimport Title from 'src/components/Title'\nimport Sidebar from 'src/components/layout/Sidebar'\nimport {\n Table,\n TableHead,\n TableRow,\n TableHeader,\n TableBody,\n TableCell\n} from 'src/components/table'\nimport { Info3, H4 } from 'src/components/typography'\nimport { formatDate } from 'src/utils/timezones'\n\nimport styles from './Logs.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_MACHINES = gql`\n {\n machines {\n name\n deviceId\n }\n }\n`\n\nconst NUM_LOG_RESULTS = 500\n\nconst GET_MACHINE_LOGS_CSV = gql`\n query MachineLogs(\n $deviceId: ID!\n $limit: Int\n $from: Date\n $until: Date\n $timezone: String\n ) {\n machineLogsCsv(\n deviceId: $deviceId\n limit: $limit\n from: $from\n until: $until\n timezone: $timezone\n )\n }\n`\n\nconst GET_MACHINE_LOGS = gql`\n query MachineLogs($deviceId: ID!, $limit: Int, $from: Date, $until: Date) {\n machineLogs(\n deviceId: $deviceId\n limit: $limit\n from: $from\n until: $until\n ) {\n logLevel\n id\n timestamp\n message\n }\n }\n`\n\nconst GET_DATA = gql`\n query getData {\n config\n }\n`\n\nconst Logs = () => {\n const classes = useStyles()\n\n const [selected, setSelected] = useState(null)\n const [saveMessage, setSaveMessage] = useState(null)\n\n const deviceId = selected?.deviceId\n\n const { data: machineResponse, loading: machinesLoading } = useQuery(\n GET_MACHINES\n )\n\n const { data: configResponse, loading: configLoading } = useQuery(GET_DATA)\n const timezone = R.path(['config', 'locale_timezone'], configResponse)\n\n const { data: logsResponse, loading: logsLoading } = useQuery(\n GET_MACHINE_LOGS,\n {\n variables: { deviceId, limit: NUM_LOG_RESULTS },\n skip: !selected,\n onCompleted: () => setSaveMessage('')\n }\n )\n\n if (machineResponse?.machines?.length && !selected) {\n setSelected(machineResponse?.machines[0])\n }\n\n const isSelected = it => {\n return R.path(['deviceId'])(selected) === it.deviceId\n }\n\n const loading = machinesLoading || configLoading || logsLoading\n\n return (\n <>\n \n
\n
Machine Logs \n {logsResponse && (\n
\n R.path(['machineLogsCsv'])(logs)}\n timezone={timezone}\n />\n {saveMessage} \n
\n )}\n
\n
\n \n
it.name}\n data={machineResponse?.machines || []}\n isSelected={isSelected}\n onClick={setSelected}\n />\n \n
\n \n \n Date \n Level \n \n \n \n \n {logsResponse &&\n logsResponse.machineLogs.map((log, idx) => (\n \n \n {timezone &&\n formatDate(log.timestamp, timezone, 'yyyy-MM-dd HH:mm')}\n \n {log.logLevel} \n {log.message} \n \n ))}\n \n
\n {loading &&
{'Loading...'} }\n {!loading && !logsResponse?.machineLogs?.length && (\n
{'No activity so far'} \n )}\n
\n \n >\n )\n}\n\nexport default Logs\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/clock/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-7\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0,10 C0,15.522 4.478,20 10,20 C15.522,20 20,15.522 20,10 C20,4.478 15.522,0 10,0 C7.749,0 5.671,0.744 4,1.999\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"13 11 10 11.063 10 7\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-5\",\n points: \"3 0 3 3 5 4\"\n})));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.5750bfd1.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/clock/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-7\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0,10 C0,15.522 4.478,20 10,20 C15.522,20 20,15.522 20,10 C20,4.478 15.522,0 10,0 C7.749,0 5.671,0.744 4,1.999\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"13 11 10 11.063 10 7\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-5\",\n points: \"3 0 3 3 5 4\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.ce4a1545.svg\";\nexport { ForwardRef as ReactComponent };","import { offColor } from 'src/styling/variables'\n\nexport default {\n cashbox: {\n height: 36\n },\n tBody: {\n maxHeight: '65vh',\n overflow: 'auto'\n },\n tableWidth: {\n display: 'flex',\n alignItems: 'center',\n marginRight: 1\n },\n descriptions: {\n color: offColor,\n marginTop: 0\n },\n cashboxReset: {\n color: offColor,\n margin: [[13, 0, -5, 20]]\n },\n selection: {\n marginRight: 12\n }\n}\n","import { comet } from 'src/styling/variables'\n\nexport default {\n footerLabel: {\n color: comet,\n alignSelf: 'center'\n },\n footerContent: {\n width: 1200,\n maxHeight: 64,\n display: 'flex',\n justifyContent: 'space-around',\n position: 'fixed'\n },\n footerContainer: {\n position: 'fixed',\n height: 64,\n left: 0,\n bottom: 0,\n width: '100vw',\n backgroundColor: 'white',\n display: 'flex',\n justifyContent: 'space-around',\n boxShadow: [[0, -1, 10, 0, 'rgba(50, 50, 50, 0.1)']]\n },\n flex: {\n display: 'flex'\n },\n icon: {\n alignSelf: 'center',\n height: 20,\n width: 20,\n marginRight: 8\n },\n iconLabel: {\n alignSelf: 'center',\n marginRight: 8\n },\n valueDisplay: {\n alignSelf: 'center'\n }\n}\n","import { makeStyles } from '@material-ui/core'\nimport BigNumber from 'bignumber.js'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport { Info1, Info2, Info3 } from 'src/components/typography/index'\nimport { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport { fromNamespace } from 'src/utils/config'\nimport { numberToFiatAmount } from 'src/utils/number.js'\n\nimport styles from './CashCassettesFooter.styles.js'\nconst useStyles = makeStyles(styles)\n\nconst CashCassettesFooter = ({\n machines,\n config,\n currencyCode,\n bills,\n deviceIds\n}) => {\n const classes = useStyles()\n const cashout = config && fromNamespace('cashOut')(config)\n const getCashoutSettings = id => fromNamespace(id)(cashout)\n const reducerFn = (\n acc,\n { cassette1, cassette2, cassette3, cassette4, id }\n ) => {\n const cassette1Denomination = getCashoutSettings(id).cassette1 ?? 0\n const cassette2Denomination = getCashoutSettings(id).cassette2 ?? 0\n const cassette3Denomination = getCashoutSettings(id).cassette3 ?? 0\n const cassette4Denomination = getCashoutSettings(id).cassette4 ?? 0\n return [\n (acc[0] += cassette1 * cassette1Denomination),\n (acc[1] += cassette2 * cassette2Denomination),\n (acc[2] += cassette3 * cassette3Denomination),\n (acc[3] += cassette4 * cassette4Denomination)\n ]\n }\n\n const totalInCassettes = R.sum(R.reduce(reducerFn, [0, 0, 0, 0], machines))\n\n const totalInCashBox = R.sum(R.map(it => it.fiat)(bills))\n\n const total = new BigNumber(totalInCassettes + totalInCashBox).toFormat(0)\n\n return (\n \n
\n
Cash value in System \n
\n \n Cash-in: \n \n {numberToFiatAmount(totalInCashBox)} {currencyCode}\n \n
\n
\n \n Cash-out: \n \n {numberToFiatAmount(totalInCassettes)} {currencyCode}\n \n
\n
\n Total: \n \n {numberToFiatAmount(total)} {currencyCode}\n \n
\n
\n
\n )\n}\n\nexport default CashCassettesFooter\n","import { useQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React from 'react'\n// import * as Yup from 'yup'\n\n// import { Link, IconButton } from 'src/components/buttons'\n// import { TextInput } from 'src/components/inputs'\nimport { NumberInput } from 'src/components/inputs/formik'\nimport DataTable from 'src/components/tables/DataTable'\n// import { ReactComponent as EditIconDisabled } from 'src/styling/icons/action/edit/disabled.svg'\n// import { ReactComponent as EditIcon } from 'src/styling/icons/action/edit/enabled.svg'\nimport { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport { formatDate } from 'src/utils/timezones'\n\nconst GET_BATCHES = gql`\n query cashboxBatches {\n cashboxBatches {\n id\n deviceId\n created\n operationType\n customBillCount\n performedBy\n bills {\n fiat\n deviceId\n created\n }\n }\n }\n`\n\n/* const EDIT_BATCH = gql`\n mutation editBatch($id: ID, $performedBy: String) {\n editBatch(id: $id, performedBy: $performedBy) {\n id\n }\n }\n` */\n\nconst GET_DATA = gql`\n query getData {\n config\n }\n`\n\nconst styles = {\n operationType: {\n marginLeft: 8\n },\n operationTypeWrapper: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center'\n },\n saveAndCancel: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between'\n }\n}\n\n/* const schema = Yup.object().shape({\n performedBy: Yup.string().nullable()\n}) */\n\nconst useStyles = makeStyles(styles)\n\nconst CashboxHistory = ({ machines, currency }) => {\n const classes = useStyles()\n\n /* const [error, setError] = useState(false)\n const [field, setField] = useState(null)\n const [editing, setEditing] = useState(false) */\n\n const { data: batchesData, loading: batchesLoading } = useQuery(GET_BATCHES)\n\n /* const [editBatch] = useMutation(EDIT_BATCH, {\n refetchQueries: () => ['cashboxBatches']\n }) */\n\n const { data: configData, loading: configLoading } = useQuery(GET_DATA)\n const timezone = R.path(['config', 'locale_timezone'], configData)\n\n const loading = batchesLoading || configLoading\n\n const batches = R.path(['cashboxBatches'])(batchesData)\n\n const getOperationRender = R.reduce(\n (ret, i) =>\n R.pipe(\n R.assoc(\n `cash-cassette-${i}-refill`,\n <>\n \n \n Cash cassette {i} refill\n \n >\n ),\n R.assoc(\n `cash-cassette-${i}-empty`,\n <>\n \n \n Cash cassette {i} emptied\n \n >\n )\n )(ret),\n {\n 'cash-box-empty': (\n <>\n \n Cash box emptied \n >\n )\n },\n R.range(1, 5)\n )\n\n /* const save = row => {\n const performedBy = field.performedBy === '' ? null : field.performedBy\n\n schema\n .isValid(field)\n .then(() => {\n setError(false)\n editBatch({\n variables: { id: row.id, performedBy: performedBy }\n })\n })\n .catch(setError(true))\n return close()\n }\n\n const close = () => {\n setEditing(false)\n setField(null)\n }\n\n const notEditing = id => field?.id !== id */\n\n const elements = [\n {\n name: 'operation',\n header: 'Operation',\n width: 200,\n textAlign: 'left',\n view: it => (\n \n {getOperationRender[it.operationType]}\n
\n )\n },\n {\n name: 'machine',\n header: 'Machine',\n width: 200,\n textAlign: 'left',\n view: it => {\n return R.find(R.propEq('id', it.deviceId))(machines).name\n }\n },\n {\n name: 'billCount',\n header: 'Bill Count',\n width: 115,\n textAlign: 'left',\n input: NumberInput,\n inputProps: {\n decimalPlaces: 0\n },\n view: it =>\n R.isNil(it.customBillCount) ? it.bills.length : it.customBillCount\n },\n {\n name: 'total',\n header: 'Total',\n width: 180,\n textAlign: 'right',\n view: it => (\n \n {R.sum(R.map(b => R.prop('fiat', b), it.bills))} {currency}\n \n )\n },\n {\n name: 'date',\n header: 'Date',\n width: 135,\n textAlign: 'right',\n view: it => formatDate(it.created, timezone, 'yyyy-MM-dd')\n },\n {\n name: 'time',\n header: 'Time (h:m)',\n width: 125,\n textAlign: 'right',\n view: it => formatDate(it.created, timezone, 'HH:mm')\n }\n /* {\n name: 'performedBy',\n header: 'Performed by',\n width: 180,\n textAlign: 'left',\n view: it => {\n if (notEditing(it.id))\n return R.isNil(it.performedBy) ? 'Unknown entity' : it.performedBy\n return (\n setField({ ...field, performedBy: e.target.value })}\n error={error}\n width={190 * 0.85}\n value={field?.performedBy}\n />\n )\n }\n },\n {\n name: '',\n header: 'Edit',\n width: 80,\n textAlign: 'right',\n view: it => {\n if (notEditing(it.id))\n return (\n {\n setField({ id: it.id, performedBy: it.performedBy })\n setEditing(true)\n }}>\n {editing ? : }\n \n )\n return (\n \n save(it)}>\n Save\n \n \n Cancel\n \n
\n )\n }\n } */\n ]\n\n return (\n \n )\n}\n\nexport default CashboxHistory\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { DialogActions, makeStyles, Box } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\nimport * as Yup from 'yup'\n\nimport Modal from 'src/components/Modal'\nimport { IconButton, Button } from 'src/components/buttons'\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport { RadioGroup } from 'src/components/inputs'\nimport { CashOut, CashIn } from 'src/components/inputs/cashbox/Cashbox'\nimport { NumberInput, CashCassetteInput } from 'src/components/inputs/formik'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport { EmptyTable } from 'src/components/table'\nimport { P, Label1 } from 'src/components/typography'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/action/edit/enabled.svg'\nimport { ReactComponent as ReverseHistoryIcon } from 'src/styling/icons/circle buttons/history/white.svg'\nimport { ReactComponent as HistoryIcon } from 'src/styling/icons/circle buttons/history/zodiac.svg'\nimport { fromNamespace, toNamespace } from 'src/utils/config'\nimport { MANUAL, AUTOMATIC } from 'src/utils/constants.js'\nimport { onlyFirstToUpper } from 'src/utils/string'\n\nimport styles from './CashCassettes.styles.js'\nimport CashCassettesFooter from './CashCassettesFooter'\nimport CashboxHistory from './CashboxHistory'\nimport Wizard from './Wizard/Wizard'\n\nconst useStyles = makeStyles(styles)\n\nconst widthsByNumberOfCassettes = {\n 2: {\n machine: 250,\n cashbox: 260,\n cassette: 300,\n cassetteGraph: 80,\n editWidth: 90\n },\n 3: {\n machine: 220,\n cashbox: 215,\n cassette: 225,\n cassetteGraph: 60,\n editWidth: 90\n },\n 4: {\n machine: 190,\n cashbox: 180,\n cassette: 185,\n cassetteGraph: 50,\n editWidth: 90\n }\n}\n\nconst ValidationSchema = Yup.object().shape({\n name: Yup.string().required(),\n cashbox: Yup.number()\n .label('Cash box')\n .required()\n .integer()\n .min(0)\n .max(1000),\n cassette1: Yup.number()\n .label('Cassette 1')\n .required()\n .integer()\n .min(0)\n .max(500),\n cassette2: Yup.number()\n .label('Cassette 2')\n .required()\n .integer()\n .min(0)\n .max(500),\n cassette3: Yup.number()\n .label('Cassette 3')\n .required()\n .integer()\n .min(0)\n .max(500),\n cassette4: Yup.number()\n .label('Cassette 4')\n .required()\n .integer()\n .min(0)\n .max(500)\n})\n\nconst GET_MACHINES_AND_CONFIG = gql`\n query getData($billFilters: JSONObject) {\n machines {\n name\n id: deviceId\n cashbox\n cassette1\n cassette2\n cassette3\n cassette4\n numberOfCassettes\n }\n config\n bills(filters: $billFilters) {\n id\n fiat\n created\n deviceId\n }\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst SET_CASSETTE_BILLS = gql`\n mutation MachineAction(\n $deviceId: ID!\n $action: MachineAction!\n $cashbox: Int!\n $cassette1: Int!\n $cassette2: Int!\n $cassette3: Int!\n $cassette4: Int!\n ) {\n machineAction(\n deviceId: $deviceId\n action: $action\n cashbox: $cashbox\n cassette1: $cassette1\n cassette2: $cassette2\n cassette3: $cassette3\n cassette4: $cassette4\n ) {\n deviceId\n cashbox\n cassette1\n cassette2\n cassette3\n cassette4\n }\n }\n`\n\nconst CashCassettes = () => {\n const classes = useStyles()\n const [showHistory, setShowHistory] = useState(false)\n const [editingSchema, setEditingSchema] = useState(null)\n const [selectedRadio, setSelectedRadio] = useState(null)\n\n const { data, loading: dataLoading } = useQuery(GET_MACHINES_AND_CONFIG, {\n variables: {\n billFilters: {\n batch: 'none'\n }\n }\n })\n const [wizard, setWizard] = useState(false)\n const [machineId, setMachineId] = useState('')\n\n const machines = R.path(['machines'])(data) ?? []\n const config = R.path(['config'])(data) ?? {}\n const fillingPercentageSettings = fromNamespace('notifications', config)\n const [setCassetteBills, { error }] = useMutation(SET_CASSETTE_BILLS, {\n refetchQueries: () => ['getData']\n })\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n onCompleted: () => setEditingSchema(false),\n refetchQueries: () => ['getData']\n })\n\n const bills = R.groupBy(bill => bill.deviceId)(R.path(['bills'])(data) ?? [])\n const deviceIds = R.uniq(\n R.map(R.prop('deviceId'))(R.path(['bills'])(data) ?? [])\n )\n const cashout = data?.config && fromNamespace('cashOut')(data.config)\n const locale = data?.config && fromNamespace('locale')(data.config)\n const fiatCurrency = locale?.fiatCurrency\n const maxNumberOfCassettes = Math.max(\n ...R.map(it => it.numberOfCassettes, machines),\n 0\n )\n\n const getCashoutSettings = id => fromNamespace(id)(cashout)\n const isCashOutDisabled = ({ id }) => !getCashoutSettings(id).active\n\n const onSave = (id, cashbox, cassettes) => {\n return setCassetteBills({\n variables: {\n action: 'setCassetteBills',\n deviceId: id,\n cashbox,\n ...cassettes\n }\n })\n }\n\n const cashboxReset =\n data?.config && fromNamespace('cashIn')(data.config).cashboxReset\n\n const cashboxResetSave = rawConfig => {\n const config = toNamespace('cashIn')(rawConfig)\n return saveConfig({ variables: { config } })\n }\n\n const saveCashboxOption = selection => {\n if (selection) {\n cashboxResetSave({ cashboxReset: selection })\n setEditingSchema(false)\n }\n }\n\n const radioButtonOptions = [\n { display: 'Automatic', code: AUTOMATIC },\n { display: 'Manual', code: MANUAL }\n ]\n\n const handleRadioButtons = evt => {\n const selectedRadio = R.path(['target', 'value'])(evt)\n setSelectedRadio(selectedRadio)\n }\n\n const elements = [\n {\n name: 'name',\n header: 'Machine',\n width: widthsByNumberOfCassettes[maxNumberOfCassettes]?.machine,\n view: name => <>{name}>,\n input: ({ field: { value: name } }) => <>{name}>\n },\n {\n name: 'cashbox',\n header: 'Cash box',\n width: widthsByNumberOfCassettes[maxNumberOfCassettes]?.cashbox,\n view: (value, { id }) => (\n it.fiat, bills[id] ?? []))}\n />\n ),\n input: NumberInput,\n inputProps: {\n decimalPlaces: 0\n }\n }\n ]\n\n R.until(\n R.gt(R.__, maxNumberOfCassettes),\n it => {\n elements.push({\n name: `cassette${it}`,\n header: `Cassette ${it}`,\n width: widthsByNumberOfCassettes[maxNumberOfCassettes]?.cassette,\n stripe: true,\n doubleHeader: 'Cash-out',\n view: (value, { id }) => (\n \n ),\n isHidden: ({ numberOfCassettes }) => it > numberOfCassettes,\n input: CashCassetteInput,\n inputProps: {\n decimalPlaces: 0,\n width: widthsByNumberOfCassettes[maxNumberOfCassettes]?.cassetteGraph,\n inputClassName: classes.cashbox\n }\n })\n return R.add(1, it)\n },\n 1\n )\n\n elements.push({\n name: 'edit',\n header: 'Edit',\n width: widthsByNumberOfCassettes[maxNumberOfCassettes]?.editWidth,\n textAlign: 'center',\n view: (value, { id }) => {\n return (\n {\n setMachineId(id)\n setWizard(true)\n }}>\n \n \n )\n }\n })\n\n return (\n !dataLoading && (\n <>\n \n {!showHistory && (\n \n Cash box resets \n \n {cashboxReset && (\n \n {onlyFirstToUpper(cashboxReset)}\n
\n )}\n setEditingSchema(true)}\n className={classes.button}>\n \n \n \n \n )}\n \n {!showHistory && (\n <>\n \n\n {data && R.isEmpty(machines) && (\n \n )}\n >\n )}\n {showHistory && (\n \n )}\n \n {wizard && (\n {\n setWizard(false)\n }}\n error={error?.message}\n save={onSave}\n locale={locale}\n />\n )}\n {editingSchema && (\n setEditingSchema(null)}\n open={true}>\n \n We can automatically assume you emptied a bill validator's cash\n box when the machine detects that it has been removed.\n
\n \n \n Assume the cash box is emptied whenever it's removed, creating a\n new batch on the history screen and setting its current balance to\n zero.\n
\n \n \n Cash boxes won't be assumed emptied when removed, nor their counts\n modified. Instead, to update the count and create a new batch,\n you'll click the 'Edit' button on this panel.\n
\n \n saveCashboxOption(selectedRadio)}>\n Confirm\n \n \n \n )}\n >\n )\n )\n}\n\nexport default CashCassettes\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 12,\n height: 12,\n rx: 3,\n ry: 3,\n fill: \"#ff7311\"\n});\n\nfunction SvgPumpkin(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 12,\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgPumpkin);\nexport default __webpack_public_path__ + \"static/media/pumpkin.877c3432.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 12,\n height: 12,\n rx: 3,\n ry: 3,\n fill: \"#ff584a\"\n});\n\nfunction SvgTomato(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 12,\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTomato);\nexport default __webpack_public_path__ + \"static/media/tomato.b3903800.svg\";\nexport { ForwardRef as ReactComponent };","import { fade } from '@material-ui/core/styles/colorManipulator'\n\nimport {\n detailsRowStyles,\n labelStyles\n} from 'src/pages/Transactions/Transactions.styles'\nimport { spacer, comet, primaryColor, fontSize4 } from 'src/styling/variables'\n\nconst machineDetailsStyles = {\n ...detailsRowStyles,\n wrapper: {\n display: 'flex',\n // marginTop: 24,\n // marginBottom: 32,\n marginTop: 12,\n marginBottom: 16,\n fontSize: fontSize4\n },\n row: {\n display: 'flex',\n flexDirection: 'row'\n // marginBottom: 36\n },\n list: {\n padding: 0,\n margin: 0,\n listStyle: 'none'\n },\n item: {\n height: spacer * 3,\n marginBottom: spacer * 1.5\n },\n link: {\n color: primaryColor,\n textDecoration: 'none'\n },\n separator: {\n width: 1,\n height: 170,\n zIndex: 1,\n marginRight: 60,\n marginLeft: 'auto',\n background: fade(comet, 0.5)\n }\n}\n\nexport { labelStyles, machineDetailsStyles }\n","import { Grid /*, Divider */ } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport BigNumber from 'bignumber.js'\nimport React from 'react'\n\n// import { Status } from 'src/components/Status'\n// import { ReactComponent as LinkIcon } from 'src/styling/icons/button/link/zodiac.svg'\nimport MachineActions from 'src/components/machineActions/MachineActions'\nimport { modelPrettifier } from 'src/utils/machine'\nimport { formatDate } from 'src/utils/timezones'\n\nimport { labelStyles, machineDetailsStyles } from './MachineDetailsCard.styles'\n\n// const supportArtices = [\n// {\n// // Default article for non-maped statuses\n// code: undefined,\n// label: 'Troubleshooting',\n// article:\n// 'https://support.lamassu.is/hc/en-us/categories/115000075249-Troubleshooting'\n// }\n// // TODO add Stuck and Fully Functional statuses articles for the new-admins\n// ]\n\n// const article = ({ code: status }) =>\n// supportArtices.find(({ code: article }) => article === status)\n\nconst useLStyles = makeStyles(labelStyles)\n\nconst Label = ({ children }) => {\n const classes = useLStyles()\n\n return {children}
\n}\n\nconst useMDStyles = makeStyles(machineDetailsStyles)\n\nconst Container = ({ children, ...props }) => (\n \n {children}\n \n)\n\nconst Item = ({ children, ...props }) => (\n \n {children}\n \n)\n\nconst MachineDetailsRow = ({ it: machine, onActionSuccess, timezone }) => {\n const classes = useMDStyles()\n\n return (\n \n {/* - \n
\n - \n
Statuses \n \n {machine.statuses.map((status, index) => (\n \n \n \n ))}\n \n \n - \n
Lamassu Support article \n \n {machine.statuses\n .map(article)\n .map(({ label, article }, index) => (\n \n \n '{label}' \n \n \n ))}\n \n \n \n \n */}\n - \n
\n - \n
Machine Model \n {modelPrettifier[machine.model]} \n \n - \n
Paired at \n \n {timezone &&\n formatDate(machine.pairedAt, timezone, 'yyyy-MM-dd HH:mm:ss')}\n \n \n - \n
\n \n - \n
Network speed \n \n {machine.downloadSpeed\n ? new BigNumber(machine.downloadSpeed).toFixed(4).toString() +\n ' MB/s'\n : 'unavailable'}\n \n \n - \n
Latency \n \n {machine.responseTime\n ? new BigNumber(machine.responseTime).toFixed(3).toString() +\n ' ms'\n : 'unavailable'}\n \n \n - \n
Packet Loss \n \n {machine.packetLoss\n ? new BigNumber(machine.packetLoss).toFixed(3).toString() +\n ' %'\n : 'unavailable'}\n \n \n \n \n \n )\n}\n\nexport default MachineDetailsRow\n","import { useQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport { formatDistance } from 'date-fns'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React from 'react'\nimport { useHistory, useLocation } from 'react-router-dom'\n\nimport { MainStatus } from 'src/components/Status'\nimport Title from 'src/components/Title'\nimport DataTable from 'src/components/tables/DataTable'\nimport { mainStyles } from 'src/pages/Transactions/Transactions.styles'\nimport { ReactComponent as MachineRedirectIcon } from 'src/styling/icons/month arrows/right.svg'\nimport { ReactComponent as WarningIcon } from 'src/styling/icons/status/pumpkin.svg'\nimport { ReactComponent as ErrorIcon } from 'src/styling/icons/status/tomato.svg'\n\nimport MachineDetailsRow from './MachineDetailsCard'\n\nconst GET_MACHINES = gql`\n {\n machines {\n name\n deviceId\n lastPing\n pairedAt\n version\n paired\n cashbox\n cassette1\n cassette2\n version\n model\n statuses {\n label\n type\n }\n downloadSpeed\n responseTime\n packetLoss\n }\n }\n`\n\nconst GET_DATA = gql`\n query getData {\n config\n }\n`\n\nconst useStyles = makeStyles(mainStyles)\n\nconst MachineStatus = () => {\n const classes = useStyles()\n const history = useHistory()\n const { state } = useLocation()\n const addedMachineId = state?.id\n const {\n data: machinesResponse,\n refetch,\n loading: machinesLoading\n } = useQuery(GET_MACHINES)\n const { data: configResponse, configLoading } = useQuery(GET_DATA)\n const timezone = R.path(['config', 'locale_timezone'], configResponse)\n\n const elements = [\n {\n header: 'Machine Name',\n width: 250,\n size: 'sm',\n textAlign: 'left',\n view: m => (\n \n {m.name}\n
{\n history.push(`/machines/${m.deviceId}`)\n }}>\n \n
\n
\n )\n },\n {\n header: 'Status',\n width: 350,\n size: 'sm',\n textAlign: 'left',\n view: m => \n },\n {\n header: 'Last ping',\n width: 200,\n size: 'sm',\n textAlign: 'left',\n view: m =>\n m.lastPing\n ? formatDistance(new Date(m.lastPing), new Date(), {\n addSuffix: true\n })\n : 'unknown'\n },\n {\n header: 'Software Version',\n width: 200,\n size: 'sm',\n textAlign: 'left',\n view: m => m.version || 'unknown'\n }\n ]\n\n const machines = R.path(['machines'])(machinesResponse) ?? []\n const expandedIndex = R.findIndex(R.propEq('deviceId', addedMachineId))(\n machines\n )\n\n const InnerMachineDetailsRow = ({ it }) => (\n \n )\n\n const loading = machinesLoading || configLoading\n\n return (\n <>\n \n
\n
Machine Status \n \n
\n
\n \n Warning \n
\n
\n \n Error \n
\n
\n
\n \n >\n )\n}\n\nexport default MachineStatus\n","import React from 'react'\n\nexport default React.createContext()\n","import { makeStyles } from '@material-ui/core'\nimport React from 'react'\n\nimport { Link, IconButton } from 'src/components/buttons'\nimport { H4 } from 'src/components/typography'\nimport { ReactComponent as DisabledEditIcon } from 'src/styling/icons/action/edit/disabled.svg'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/action/edit/enabled.svg'\n\nimport styles from './EditHeader.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst Header = ({ title, editing, disabled, setEditing }) => {\n const classes = useStyles()\n\n return (\n \n
{title} \n {!editing && (\n
setEditing(true)}\n className={classes.button}\n disabled={disabled}>\n {disabled ? : }\n \n )}\n {editing && (\n
\n \n Save\n \n \n Cancel\n \n
\n )}\n
\n )\n}\n\nexport default Header\n","export default {\n header: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: 16,\n height: 26,\n margin: 0\n },\n title: {\n flexShrink: 2,\n margin: 0,\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis'\n },\n button: {\n border: 'none',\n backgroundColor: 'transparent',\n cursor: 'pointer',\n marginLeft: 8\n },\n editingButtons: {\n display: 'flex',\n flexShrink: 0,\n marginLeft: 16,\n justifyContent: 'space-between',\n width: 110\n }\n}\n","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { useFormikContext, Field as FormikField } from 'formik'\nimport React from 'react'\n\nimport { NumberInput } from 'src/components/inputs/formik'\nimport { Label1, Info1, TL2 } from 'src/components/typography'\n\nimport styles from './EditableNumber.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst EditableNumber = ({\n label,\n name,\n editing,\n displayValue,\n decoration,\n className,\n decimalPlaces = 0,\n width = 80\n}) => {\n const classes = useStyles({ width, editing })\n const { values } = useFormikContext()\n\n const classNames = {\n [classes.fieldWrapper]: true,\n className\n }\n\n return (\n \n {label &&
{label} }\n
\n {!editing && (\n {displayValue(values[name])} \n )}\n {editing && (\n \n )}\n {decoration} \n
\n
\n )\n}\n\nexport default EditableNumber\n","export default {\n text: {\n margin: [[7, 0, 7, 1]]\n },\n fieldWrapper: {\n height: 53\n },\n valueWrapper: {\n display: 'flex',\n alignItems: 'baseline'\n },\n label: {\n margin: 0\n },\n decoration: {\n margin: [[0, 0, 0, 7]]\n }\n}\n","import { Form, Formik } from 'formik'\nimport React, { useContext, useState } from 'react'\nimport * as Yup from 'yup'\n\nimport PromptWhenDirty from 'src/components/PromptWhenDirty'\nimport { transformNumber } from 'src/utils/number'\n\nimport NotificationsCtx from '../NotificationsContext'\n\nimport Header from './EditHeader'\nimport EditableNumber from './EditableNumber'\n\nconst SingleFieldEditableNumber = ({\n title,\n label,\n width = 80,\n min = 0,\n max = 9999999,\n name,\n section,\n className\n}) => {\n const [saving, setSaving] = useState(false)\n\n const innerSave = async (section, value) => {\n if (saving) return\n\n setSaving(true)\n\n // no response means the save failed\n await save(section, value)\n\n setSaving(false)\n }\n\n const {\n save,\n data,\n currency,\n isEditing,\n isDisabled,\n setEditing\n } = useContext(NotificationsCtx)\n\n const schema = Yup.object().shape({\n [name]: Yup.number()\n .transform(transformNumber)\n .integer()\n .min(min)\n .max(max)\n .nullable()\n })\n\n return (\n innerSave(section, schema.cast(it))}\n onReset={() => {\n setEditing(name, false)\n }}>\n \n \n )\n}\n\nexport default SingleFieldEditableNumber\n","import { makeStyles } from '@material-ui/core'\nimport React, { useContext } from 'react'\n\nimport NotificationsCtx from '../NotificationsContext'\nimport SingleFieldEditableNumber from '../components/SingleFieldEditableNumber'\n\nimport styles from './CryptoBalanceAlerts.styles'\n\nconst LOW_BALANCE_KEY = 'cryptoLowBalance'\nconst HIGH_BALANCE_KEY = 'cryptoHighBalance'\n\nconst useStyles = makeStyles(styles)\n\nconst CryptoBalanceAlerts = ({ section, fieldWidth }) => {\n const classes = useStyles()\n\n const {\n data,\n save,\n currency,\n setEditing,\n isEditing,\n isDisabled\n } = useContext(NotificationsCtx)\n\n return (\n \n
setEditing(LOW_BALANCE_KEY, it)}\n width={fieldWidth}\n />\n\n
\n\n setEditing(HIGH_BALANCE_KEY, it)}\n width={fieldWidth}\n />\n \n )\n}\n\nexport default CryptoBalanceAlerts\n","export default {\n cryptoBalanceAlerts: {\n display: 'flex',\n marginBottom: 36,\n height: 135,\n alignItems: 'center'\n },\n cryptoBalanceAlertsForm: {\n width: 222,\n marginRight: 32\n },\n cryptoBalanceAlertsSecondForm: {\n marginLeft: 50\n },\n vertSeparator: {\n width: 1,\n height: '100%',\n borderRight: [[1, 'solid', 'black']]\n }\n}\n","import * as R from 'ramda'\nimport React, { useContext } from 'react'\nimport * as Yup from 'yup'\n\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport { NumberInput } from 'src/components/inputs/formik'\nimport Autocomplete from 'src/components/inputs/formik/Autocomplete.js'\nimport { CURRENCY_MAX } from 'src/utils/constants'\nimport { transformNumber } from 'src/utils/number'\n\nimport NotificationsCtx from '../NotificationsContext'\n\nconst HIGH_BALANCE_KEY = 'highBalance'\nconst LOW_BALANCE_KEY = 'lowBalance'\nconst CRYPTOCURRENCY_KEY = 'cryptoCurrency'\nconst NAME = 'cryptoBalanceOverrides'\n\nconst CryptoBalanceOverrides = ({ section }) => {\n const {\n cryptoCurrencies = [],\n data,\n save,\n error,\n currency,\n isDisabled,\n setEditing\n } = useContext(NotificationsCtx)\n const setupValues = data?.cryptoBalanceOverrides ?? []\n const innerSetEditing = it => setEditing(NAME, it)\n\n const onDelete = id => {\n const newOverrides = {\n cryptoBalanceOverrides: R.reject(it => it.id === id, setupValues)\n }\n return save(newOverrides)\n }\n\n const overridenCryptos = R.map(R.prop(CRYPTOCURRENCY_KEY))(setupValues)\n const suggestionFilter = R.filter(\n it => !R.contains(it.code, overridenCryptos)\n )\n const suggestions = suggestionFilter(cryptoCurrencies)\n\n const findSuggestion = it => {\n const coin = R.compose(R.find(R.propEq('code', it?.cryptoCurrency)))(\n cryptoCurrencies\n )\n return coin ? [coin] : []\n }\n\n const initialValues = {\n [CRYPTOCURRENCY_KEY]: null,\n [LOW_BALANCE_KEY]: '',\n [HIGH_BALANCE_KEY]: ''\n }\n\n const notesMin = 0\n const validationSchema = Yup.object().shape(\n {\n [CRYPTOCURRENCY_KEY]: Yup.string()\n .label('Cryptocurrency')\n .nullable()\n .required(),\n [LOW_BALANCE_KEY]: Yup.number()\n .label('Low Balance')\n .when(HIGH_BALANCE_KEY, {\n is: HIGH_BALANCE_KEY => !HIGH_BALANCE_KEY,\n then: Yup.number().required()\n })\n .transform(transformNumber)\n .integer()\n .min(notesMin)\n .max(CURRENCY_MAX)\n .nullable(),\n [HIGH_BALANCE_KEY]: Yup.number()\n .label('High Balance')\n .when(LOW_BALANCE_KEY, {\n is: LOW_BALANCE_KEY => !LOW_BALANCE_KEY,\n then: Yup.number().required()\n })\n .transform(transformNumber)\n .integer()\n .min(notesMin)\n .max(CURRENCY_MAX)\n .nullable()\n },\n [LOW_BALANCE_KEY, HIGH_BALANCE_KEY]\n )\n\n const viewCrypto = it =>\n R.compose(\n R.path(['display']),\n R.find(R.propEq('code', it))\n )(cryptoCurrencies)\n\n const elements = [\n {\n name: CRYPTOCURRENCY_KEY,\n header: 'Cryptocurrency',\n width: 166,\n size: 'sm',\n view: viewCrypto,\n input: Autocomplete,\n inputProps: {\n options: it => R.concat(suggestions, findSuggestion(it)),\n optionsLimit: null,\n valueProp: 'code',\n labelProp: 'display'\n }\n },\n {\n name: LOW_BALANCE_KEY,\n width: 155,\n textAlign: 'right',\n bold: true,\n input: NumberInput,\n suffix: currency,\n inputProps: {\n decimalPlaces: 2\n }\n },\n {\n name: HIGH_BALANCE_KEY,\n width: 155,\n textAlign: 'right',\n bold: true,\n input: NumberInput,\n suffix: currency,\n inputProps: {\n decimalPlaces: 2\n }\n }\n ]\n\n return (\n save(section, it)}\n initialValues={initialValues}\n validationSchema={validationSchema}\n forceDisable={isDisabled(NAME) || !cryptoCurrencies}\n data={setupValues}\n elements={elements}\n disableAdd={!suggestions?.length}\n onDelete={onDelete}\n setEditing={innerSetEditing}\n />\n )\n}\n\nexport default CryptoBalanceOverrides\n","import { backgroundColor } from 'src/styling/variables'\n\nexport default {\n wrapper: {\n display: 'flex'\n },\n form: {\n marginBottom: 36\n },\n title: {\n marginTop: 0\n },\n row: {\n width: 236,\n display: 'grid',\n gridTemplateColumns: 'repeat(2,1fr)',\n gridTemplateRows: '1fr',\n gridColumnGap: 18,\n gridRowGap: 0\n },\n col2: {\n width: 136\n },\n cashboxLabel: {\n marginRight: 4,\n fontSize: 20\n },\n cashboxEmptyPart: {\n backgroundColor: `${backgroundColor}`\n }\n}\n","import { makeStyles } from '@material-ui/core'\nimport { Form, Formik } from 'formik'\nimport * as R from 'ramda'\nimport React, { useContext } from 'react'\nimport * as Yup from 'yup'\n\nimport PromptWhenDirty from 'src/components/PromptWhenDirty'\nimport { TL2 } from 'src/components/typography'\nimport { transformNumber } from 'src/utils/number'\n\nimport { Cashbox } from '../../../components/inputs/cashbox/Cashbox'\nimport NotificationsCtx from '../NotificationsContext'\nimport Header from '../components/EditHeader'\nimport EditableNumber from '../components/EditableNumber'\n\nimport styles from './FiatBalanceAlerts.styles.js'\n\nconst useStyles = makeStyles(styles)\n\nconst NAME = 'fiatBalanceAlerts'\nconst DEFAULT_NUMBER_OF_CASSETTES = 2\n\nconst FiatBalance = ({ section, min = 0, max = 100, fieldWidth = 80 }) => {\n const {\n isEditing,\n isDisabled,\n setEditing,\n data,\n save,\n machines = []\n } = useContext(NotificationsCtx)\n const classes = useStyles()\n\n const maxNumberOfCassettes = Math.max(\n ...R.map(it => it.numberOfCassettes, machines),\n DEFAULT_NUMBER_OF_CASSETTES\n )\n\n const editing = isEditing(NAME)\n\n const schema = Yup.object().shape({\n fillingPercentageCassette1: Yup.number()\n .transform(transformNumber)\n .integer()\n .min(min)\n .max(max)\n .nullable(),\n fillingPercentageCassette2: Yup.number()\n .transform(transformNumber)\n .integer()\n .min(min)\n .max(max)\n .nullable(),\n fiatBalanceCassette3: Yup.number()\n .transform(transformNumber)\n .integer()\n .min(min)\n .max(max)\n .nullable(),\n fiatBalanceCassette4: Yup.number()\n .transform(transformNumber)\n .integer()\n .min(min)\n .max(max)\n .nullable()\n })\n\n return (\n save(section, schema.cast(it))}\n onReset={() => {\n setEditing(NAME, false)\n }}>\n {({ values }) => (\n \n )}\n \n )\n}\n\nexport default FiatBalance\n","import * as R from 'ramda'\nimport React, { useContext } from 'react'\nimport * as Yup from 'yup'\n\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport { NumberInput } from 'src/components/inputs/formik/'\nimport Autocomplete from 'src/components/inputs/formik/Autocomplete'\nimport { fromNamespace } from 'src/utils/config'\nimport { transformNumber } from 'src/utils/number'\n\nimport NotificationsCtx from '../NotificationsContext'\n\nconst CASSETTE_1_KEY = 'fillingPercentageCassette1'\nconst CASSETTE_2_KEY = 'fillingPercentageCassette2'\nconst CASSETTE_3_KEY = 'fillingPercentageCassette3'\nconst CASSETTE_4_KEY = 'fillingPercentageCassette4'\nconst MACHINE_KEY = 'machine'\nconst NAME = 'fiatBalanceOverrides'\n\nconst CASSETTE_LIST = [\n CASSETTE_1_KEY,\n CASSETTE_2_KEY,\n CASSETTE_3_KEY,\n CASSETTE_4_KEY\n]\n\nconst widthsByNumberOfCassettes = {\n 2: { machine: 230, cassette: 250 },\n 3: { machine: 216, cassette: 270 },\n 4: { machine: 210, cassette: 204 }\n}\n\nconst FiatBalanceOverrides = ({ config, section }) => {\n const {\n machines = [],\n data,\n save,\n isDisabled,\n setEditing,\n error\n } = useContext(NotificationsCtx)\n\n const setupValues = data?.fiatBalanceOverrides ?? []\n const innerSetEditing = it => setEditing(NAME, it)\n\n const cashoutConfig = it => fromNamespace(it)(config)\n\n const overridenMachines = R.map(override => override.machine, setupValues)\n const suggestionFilter = R.filter(\n it =>\n !R.includes(it.deviceId, overridenMachines) &&\n cashoutConfig(it.deviceId).active\n )\n const suggestions = suggestionFilter(machines)\n\n const findSuggestion = it => {\n const coin = R.compose(R.find(R.propEq('deviceId', it?.machine)))(machines)\n return coin ? [coin] : []\n }\n\n const initialValues = {\n [MACHINE_KEY]: null,\n [CASSETTE_1_KEY]: '',\n [CASSETTE_2_KEY]: '',\n [CASSETTE_3_KEY]: '',\n [CASSETTE_4_KEY]: ''\n }\n\n const maxNumberOfCassettes = Math.max(\n ...R.map(it => it.numberOfCassettes, machines),\n 0\n )\n\n const percentMin = 0\n const percentMax = 100\n const validationSchema = Yup.object()\n .shape({\n [MACHINE_KEY]: Yup.string()\n .label('Machine')\n .nullable()\n .required(),\n [CASSETTE_1_KEY]: Yup.number()\n .label('Cassette 1')\n .transform(transformNumber)\n .integer()\n .min(percentMin)\n .max(percentMax)\n .nullable(),\n [CASSETTE_2_KEY]: Yup.number()\n .label('Cassette 2')\n .transform(transformNumber)\n .integer()\n .min(percentMin)\n .max(percentMax)\n .nullable(),\n [CASSETTE_3_KEY]: Yup.number()\n .label('Cassette 3')\n .transform(transformNumber)\n .integer()\n .min(percentMin)\n .max(percentMax)\n .nullable(),\n [CASSETTE_4_KEY]: Yup.number()\n .label('Cassette 4')\n .transform(transformNumber)\n .integer()\n .min(percentMin)\n .max(percentMax)\n .nullable()\n })\n .test((values, context) => {\n const picked = R.pick(CASSETTE_LIST, values)\n\n if (CASSETTE_LIST.some(it => !R.isNil(picked[it]))) return\n\n return context.createError({\n path: CASSETTE_1_KEY,\n message: 'At least one of the cassettes must have a value'\n })\n })\n\n const viewMachine = it =>\n R.compose(R.path(['name']), R.find(R.propEq('deviceId', it)))(machines)\n\n const elements = [\n {\n name: MACHINE_KEY,\n width: widthsByNumberOfCassettes[maxNumberOfCassettes].machine,\n size: 'sm',\n view: viewMachine,\n input: Autocomplete,\n inputProps: {\n options: it => R.concat(suggestions, findSuggestion(it)),\n valueProp: 'deviceId',\n labelProp: 'name'\n }\n }\n ]\n\n R.until(\n R.gt(R.__, maxNumberOfCassettes),\n it => {\n elements.push({\n name: `fillingPercentageCassette${it}`,\n display: `Cash cassette ${it}`,\n width: widthsByNumberOfCassettes[maxNumberOfCassettes].cassette,\n textAlign: 'right',\n doubleHeader: 'Cash Cassette Empty',\n bold: true,\n input: NumberInput,\n suffix: '%',\n inputProps: {\n decimalPlaces: 0\n },\n view: it => it?.toString() ?? '—',\n isHidden: value =>\n it >\n machines.find(({ deviceId }) => deviceId === value.machine)\n ?.numberOfCassettes\n })\n return R.add(1, it)\n },\n 1\n )\n\n return (\n save(section, validationSchema.cast(it))}\n initialValues={initialValues}\n validationSchema={validationSchema}\n forceDisable={isDisabled(NAME) || !machines}\n data={setupValues}\n elements={elements}\n disableAdd={!suggestions?.length}\n setEditing={innerSetEditing}\n />\n )\n}\n\nexport default FiatBalanceOverrides\n","import { makeStyles } from '@material-ui/core'\nimport * as R from 'ramda'\nimport React, { useContext } from 'react'\n\nimport {\n Table,\n THead,\n TBody,\n Tr,\n Td,\n Th\n} from 'src/components/fake-table/Table'\nimport { Switch } from 'src/components/inputs'\nimport { fromNamespace, toNamespace } from 'src/utils/config'\nimport { startCase } from 'src/utils/string'\n\nimport NotificationsCtx from '../NotificationsContext'\n\nconst channelSize = 229\nconst sizes = {\n balance: 152,\n transactions: 184,\n compliance: 178,\n errors: 142,\n security: 152,\n active: 263\n}\n\nconst Row = ({ namespace, forceDisable, shouldUpperCase }) => {\n const { data: rawData, save: rawSave } = useContext(NotificationsCtx)\n\n const save = R.compose(rawSave(null), toNamespace(namespace))\n const data = fromNamespace(namespace)(rawData)\n\n const disabled = forceDisable || !data || !data.active\n\n const Cell = ({ name, disabled }) => {\n const value = !!(data && data[name])\n\n return (\n \n {\n save({ [name]: event.target.checked })\n }}\n value={value}\n />\n \n )\n }\n\n return (\n \n \n {shouldUpperCase ? R.toUpper(namespace) : startCase(namespace)}\n \n | \n | \n | \n | \n | \n | \n \n )\n}\n\nconst useStyles = makeStyles({\n wizardTable: {\n width: 930\n }\n})\nconst Setup = ({ wizard, forceDisable }) => {\n const widthAdjust = wizard ? 20 : 0\n const classes = useStyles()\n return (\n \n \n Channel \n {Object.keys(sizes).map(it => (\n \n {startCase(it)}\n \n ))}\n \n \n
\n
\n
\n \n
\n )\n}\n\nexport default Setup\n","import React from 'react'\n\nimport SingleFieldEditableNumber from '../components/SingleFieldEditableNumber'\n\nconst NAME = 'highValueTransaction'\n\nconst TransactionAlerts = ({ section, fieldWidth }) => {\n return (\n \n )\n}\n\nexport default TransactionAlerts\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport TitleSection from 'src/components/layout/TitleSection'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nimport Section from '../../components/layout/Section'\n\nimport NotificationsCtx from './NotificationsContext'\nimport CryptoBalanceAlerts from './sections/CryptoBalanceAlerts'\nimport CryptoBalanceOverrides from './sections/CryptoBalanceOverrides'\nimport FiatBalanceAlerts from './sections/FiatBalanceAlerts'\nimport FiatBalanceOverrides from './sections/FiatBalanceOverrides'\nimport Setup from './sections/Setup'\nimport TransactionAlerts from './sections/TransactionAlerts'\n\nconst GET_INFO = gql`\n query getData {\n config\n machines {\n name\n deviceId\n numberOfCassettes\n }\n cryptoCurrencies {\n code\n display\n }\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst FIELDS_WIDTH = 130\n\nconst Notifications = ({\n name: SCREEN_KEY,\n displaySetup = true,\n displayTransactionAlerts = true,\n displayFiatAlerts = true,\n displayCryptoAlerts = true,\n displayOverrides = true,\n displayTitle = true,\n wizard = false\n}) => {\n const [section, setSection] = useState(null)\n const [error, setError] = useState(null)\n const [editingKey, setEditingKey] = useState(null)\n\n const { data, loading } = useQuery(GET_INFO)\n\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n refetchQueries: ['getData'],\n onCompleted: () => setEditingKey(null),\n onError: error => setError(error)\n })\n\n const config = fromNamespace(SCREEN_KEY)(data?.config)\n const machines = data?.machines\n const cryptoCurrencies = data?.cryptoCurrencies\n\n const currency = R.path(['fiatCurrency'])(\n fromNamespace(namespaces.LOCALE)(data?.config)\n )\n\n const save = R.curry((section, rawConfig) => {\n const config = toNamespace(SCREEN_KEY)(rawConfig)\n setSection(section)\n setError(null)\n return saveConfig({ variables: { config } })\n })\n\n const setEditing = (key, state) => {\n if (!state) {\n setError(null)\n }\n setEditingKey(state ? key : null)\n }\n\n const isEditing = key => editingKey === key\n const isDisabled = key => editingKey && editingKey !== key\n\n const contextValue = {\n save,\n error,\n editingKey,\n data: config,\n currency,\n isEditing,\n isDisabled,\n setEditing,\n setSection,\n machines,\n cryptoCurrencies\n }\n\n return (\n !loading && (\n \n {displayTitle && }\n {displaySetup && (\n \n )}\n {displayTransactionAlerts && (\n \n )}\n {displayFiatAlerts && (\n \n \n {displayOverrides && (\n \n )}\n \n )}\n {displayCryptoAlerts && (\n \n \n {displayOverrides && (\n \n )}\n \n )}\n \n )\n )\n}\n\nexport default Notifications\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"\\\\u21B3\\\\u21B3-Coin-ATM-Radar\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"operator-info_v4-CAR#1\",\n transform: \"translate(-832.000000, -608.000000)\",\n fill: \"#FF584A\",\n fillRule: \"nonzero\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group\",\n transform: \"translate(832.000000, 608.000000)\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Line-7\",\n points: \"13.0484874 0 16 2.95151255 2.95151255 16 0 13.0484874\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Line-7\",\n transform: \"translate(8.000000, 8.000000) scale(-1, 1) translate(-8.000000, -8.000000) \",\n points: \"13.0484874 0 16 2.95151255 2.95151255 16 0 13.0484874\"\n}))));\n\nfunction SvgFalse(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"16px\",\n height: \"16px\",\n viewBox: \"0 0 16 16\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"Group\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgFalse);\nexport default __webpack_public_path__ + \"static/media/false.347e5864.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/table/true\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.17451294,13.3251347 L0.599425104,9.29667256 C-0.199808368,8.3960844 -0.199808368,6.94040225 0.599425104,6.03981409 C1.39865858,5.13922593 2.69051421,5.13922593 3.48974768,6.03981409 L5.61967423,8.439847 L12.5102523,0.675441122 C13.3094858,-0.225147041 14.6033855,-0.225147041 15.4005749,0.675441122 C16.1998084,1.57372599 16.1998084,3.03171143 15.4005749,3.93229959 L7.06483552,13.3251347 C6.66624082,13.7742771 6.14295752,14 5.61967423,14 C5.09639093,14 4.57310763,13.7742771 4.17451294,13.3251347 Z\",\n id: \"Fill-1\",\n fill: \"#48F694\"\n}));\n\nfunction SvgTrue(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"16px\",\n height: \"14px\",\n viewBox: \"0 0 16 14\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/table/true\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTrue);\nexport default __webpack_public_path__ + \"static/media/true.b3b76849.svg\";\nexport { ForwardRef as ReactComponent };","import baseStyles from 'src/pages/Logs.styles'\nimport { backgroundColor, zircon } from 'src/styling/variables'\n\nconst { fillColumn } = baseStyles\n\nconst booleanPropertiesTableStyles = {\n booleanPropertiesTableWrapper: {\n display: 'flex',\n flexDirection: 'column',\n width: 396\n },\n tableRow: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n '&:nth-child(even)': {\n backgroundColor: backgroundColor\n },\n '&:nth-child(odd)': {\n backgroundColor: zircon\n },\n minHeight: 32,\n height: 'auto',\n padding: [[8, 16, 8, 24]],\n boxShadow: '0 0 0 0 rgba(0, 0, 0, 0)'\n },\n leftTableCell: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'left',\n width: 200,\n padding: [0]\n },\n rightTableCell: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'right',\n padding: [0]\n },\n transparentButton: {\n '& > *': {\n margin: 'auto 12px'\n },\n '& button': {\n border: 'none',\n backgroundColor: 'transparent',\n cursor: 'pointer'\n }\n },\n rowWrapper: {\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n flex: 'wrap'\n },\n rightAligned: {\n marginLeft: 'auto'\n },\n radioButtons: {\n display: 'flex',\n flexDirection: 'row',\n margin: [-15]\n },\n rightLink: {\n marginLeft: '20px'\n },\n fillColumn,\n popoverContent: {\n width: 272,\n padding: [[10, 15]]\n }\n}\n\nexport { booleanPropertiesTableStyles }\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport { useFormikContext, Form, Formik, Field as FormikField } from 'formik'\nimport * as R from 'ramda'\nimport React, { useState, memo } from 'react'\nimport * as Yup from 'yup'\n\nimport PromptWhenDirty from 'src/components/PromptWhenDirty'\nimport { Link, IconButton } from 'src/components/buttons'\nimport { RadioGroup } from 'src/components/inputs/formik'\nimport { Table, TableBody, TableRow, TableCell } from 'src/components/table'\nimport { H4 } from 'src/components/typography'\nimport { ReactComponent as EditIconDisabled } from 'src/styling/icons/action/edit/disabled.svg'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/action/edit/enabled.svg'\nimport { ReactComponent as FalseIcon } from 'src/styling/icons/table/false.svg'\nimport { ReactComponent as TrueIcon } from 'src/styling/icons/table/true.svg'\n\nimport { booleanPropertiesTableStyles } from './BooleanPropertiesTable.styles'\n\nconst useStyles = makeStyles(booleanPropertiesTableStyles)\n\nconst BooleanCell = ({ name }) => {\n const { values } = useFormikContext()\n return values[name] === 'true' ? : \n}\n\nconst BooleanPropertiesTable = memo(\n ({ title, disabled, data, elements, save, forcedEditing = false }) => {\n const initialValues = R.fromPairs(\n elements.map(it => [it.name, data[it.name].toString() ?? null])\n )\n\n const schemaValidation = R.fromPairs(\n elements.map(it => [it.name, Yup.boolean().required()])\n )\n\n const [editing, setEditing] = useState(forcedEditing)\n\n const classes = useStyles()\n\n const innerSave = async values => {\n const toBoolean = (num, _) => R.equals(num, 'true')\n save(R.mapObjIndexed(toBoolean, R.filter(R.complement(R.isNil))(values)))\n setEditing(false)\n }\n\n const radioButtonOptions = [\n { display: 'Yes', code: 'true' },\n { display: 'No', code: 'false' }\n ]\n return (\n \n
\n {({ resetForm }) => {\n return (\n \n )\n }}\n \n
\n )\n }\n)\n\nexport default BooleanPropertiesTable\n","import { offColor } from 'src/styling/variables'\n\nconst global = {\n content: {\n display: 'flex'\n },\n header: {\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n flex: 'wrap'\n },\n section: {\n marginBottom: 52\n },\n row: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n marginBottom: 28,\n width: 600,\n '&:last-child': {\n marginBottom: 0\n }\n },\n switchRow: {\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n flex: 'wrap',\n justifyContent: 'space-between',\n width: 396\n },\n switch: {\n display: 'flex',\n alignItems: 'center'\n },\n submit: {\n justifyContent: 'flex-start',\n alignItems: 'center',\n padding: [[0, 4, 4, 4]],\n '& > button': {\n marginRight: 40\n }\n },\n transparentButton: {\n '& > *': {\n margin: 'auto 12px'\n },\n '& button': {\n border: 'none',\n backgroundColor: 'transparent',\n cursor: 'pointer'\n }\n },\n infoMessage: {\n display: 'flex',\n marginBottom: 52,\n '& > p': {\n width: 330,\n color: offColor,\n marginTop: 4,\n marginLeft: 16\n }\n },\n formErrorMsg: {\n margin: [[0, 0, 20, 0]]\n }\n}\n\nconst fieldStyles = {\n field: {\n position: 'relative',\n width: 280,\n padding: [[0, 4, 4, 0]]\n },\n notEditing: {\n display: 'flex',\n flexDirection: 'column'\n },\n notEditingSingleLine: {\n '& > p:first-child': {\n height: 16,\n lineHeight: '16px',\n transform: 'scale(0.75)',\n transformOrigin: 'left',\n paddingLeft: 0,\n margin: [[1, 0, 6, 0]]\n },\n '& > p:last-child': {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n height: 25,\n margin: 0\n }\n },\n notEditingMultiline: {\n '& > p:first-child': {\n height: 16,\n lineHeight: '16px',\n transform: 'scale(0.75)',\n transformOrigin: 'left',\n paddingLeft: 0,\n margin: [[1, 0, 5, 0]]\n },\n '& > p:last-child': {\n width: 502,\n height: 121,\n overflowY: 'auto',\n lineHeight: '19px',\n wordWrap: 'anywhere',\n margin: 0\n }\n }\n}\n\nexport { global, fieldStyles }\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport React, { memo } from 'react'\n\nimport { HoverableTooltip } from 'src/components/Tooltip'\nimport { BooleanPropertiesTable } from 'src/components/booleanPropertiesTable'\nimport { Switch } from 'src/components/inputs'\nimport { H4, P, Label2 } from 'src/components/typography'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nimport { global } from './OperatorInfo.styles'\n\nconst useStyles = makeStyles(global)\n\nconst GET_CONFIG = gql`\n query getData {\n config\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst Row = memo(({ title, disabled = false, checked, save, label }) => {\n const classes = useStyles()\n\n return (\n \n
{title}
\n
\n save && save(event.target.checked)}\n />\n {label && {label} }\n
\n
\n )\n})\n\nconst CoinATMRadar = memo(({ wizard }) => {\n const classes = useStyles()\n\n const { data } = useQuery(GET_CONFIG)\n\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n refetchQueries: ['getData']\n })\n\n const save = it =>\n saveConfig({\n variables: { config: toNamespace(namespaces.COIN_ATM_RADAR, it) }\n })\n\n const coinAtmRadarConfig =\n data?.config && fromNamespace(namespaces.COIN_ATM_RADAR, data.config)\n if (!coinAtmRadarConfig) return null\n\n return (\n \n
\n
\n
Coin ATM Radar share settings \n
\n \n For details on configuring this panel, please read the relevant\n knowledgebase article{' '}\n \n here\n \n .\n
\n \n
\n
save({ active: value })}\n label={coinAtmRadarConfig.active ? 'Yes' : 'No'}\n />\n \n
\n
\n )\n})\n\nexport default CoinATMRadar\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { Form, Formik, Field as FormikField } from 'formik'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\nimport * as Yup from 'yup'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport PromptWhenDirty from 'src/components/PromptWhenDirty'\nimport { Link, IconButton } from 'src/components/buttons'\nimport Switch from 'src/components/inputs/base/Switch'\nimport { TextInput } from 'src/components/inputs/formik'\nimport { P, H4, Info3, Label1, Label2, Label3 } from 'src/components/typography'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/action/edit/enabled.svg'\nimport { ReactComponent as WarningIcon } from 'src/styling/icons/warning-icon/comet.svg'\nimport { fontSize5 } from 'src/styling/variables'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nimport { global } from './OperatorInfo.styles'\n\nconst FIELD_WIDTH = 280\n\nconst fieldStyles = {\n field: {\n position: 'relative',\n width: 280,\n height: 48,\n padding: [[0, 4, 4, 0]]\n },\n notEditing: {\n display: 'flex',\n flexDirection: 'column',\n '& > p:first-child': {\n height: 16,\n lineHeight: '16px',\n fontSize: fontSize5,\n transformOrigin: 'left',\n paddingLeft: 0,\n margin: [[3, 0, 3, 0]]\n },\n '& > p:last-child': {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n margin: 0\n }\n }\n}\n\nconst fieldUseStyles = makeStyles(fieldStyles)\n\nconst Field = ({ editing, field, displayValue, ...props }) => {\n const classes = fieldUseStyles()\n\n const classNames = {\n [classes.field]: true,\n [classes.notEditing]: !editing\n }\n\n return (\n \n {!editing && (\n <>\n {field.label} \n {displayValue(field.value)} \n >\n )}\n {editing && (\n \n )}\n
\n )\n}\n\nconst GET_CONFIG = gql`\n query getData {\n config\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst contactUseStyles = makeStyles(global)\n\nconst ContactInfo = ({ wizard }) => {\n const classes = contactUseStyles()\n\n const [editing, setEditing] = useState(wizard || false)\n const [error, setError] = useState(null)\n\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n onCompleted: () => setEditing(false),\n refetchQueries: () => ['getData'],\n onError: e => setError(e)\n })\n\n const { data } = useQuery(GET_CONFIG)\n\n const save = it => {\n return saveConfig({\n variables: { config: toNamespace(namespaces.OPERATOR_INFO, it) }\n })\n }\n\n const info =\n data?.config && fromNamespace(namespaces.OPERATOR_INFO, data.config)\n\n if (!info) return null\n\n const validationSchema = Yup.object().shape({\n active: Yup.boolean(),\n name: Yup.string(),\n phone: Yup.string(),\n email: Yup.string()\n .email('Please enter a valid email address')\n .required('An email is required'),\n website: Yup.string(),\n companyNumber: Yup.string()\n })\n\n const fields = [\n {\n name: 'name',\n label: 'Full name',\n value: info.name ?? '',\n component: TextInput\n },\n {\n name: 'phone',\n label: 'Phone number',\n value: info.phone,\n component: TextInput\n },\n {\n name: 'email',\n label: 'Email',\n value: info.email ?? '',\n component: TextInput\n },\n {\n name: 'website',\n label: 'Website',\n value: info.website ?? '',\n component: TextInput\n },\n {\n name: 'companyNumber',\n label: 'Company number',\n value: info.companyNumber ?? '',\n component: TextInput\n }\n ]\n\n const findField = name => R.find(R.propEq('name', name))(fields)\n const findValue = name => findField(name).value\n\n const displayTextValue = value => value\n\n const form = {\n initialValues: {\n active: info.active,\n name: findValue('name'),\n phone: findValue('phone'),\n email: findValue('email'),\n website: findValue('website'),\n companyNumber: findValue('companyNumber')\n }\n }\n\n const getErrorMsg = formikErrors =>\n !R.isNil(formikErrors.email) ? formikErrors.email : null\n\n return (\n <>\n \n
Contact information \n \n \n
Info card enabled?
\n
\n \n save({\n active: event.target.checked\n })\n }\n />\n {info.active ? 'Yes' : 'No'} \n
\n
\n \n
\n
Info card \n {!editing && (\n setEditing(true)}>\n \n \n )}\n \n
save(validationSchema.cast(values))}\n onReset={() => {\n setEditing(false)\n setError(null)\n }}>\n {({ errors }) => (\n \n )}\n \n
\n {!wizard && (\n \n \n \n Sharing your information with your customers through your machines\n allows them to contact you in case there's a problem with a machine\n in your network or a transaction.\n \n
\n )}\n >\n )\n}\n\nexport default ContactInfo\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { memo } from 'react'\n\nimport { BooleanPropertiesTable } from 'src/components/booleanPropertiesTable'\nimport { Switch } from 'src/components/inputs'\nimport { H4, P, Label2 } from 'src/components/typography'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nimport { global } from './OperatorInfo.styles'\n\nconst useStyles = makeStyles(global)\n\nconst GET_CONFIG = gql`\n query getData {\n config\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst ReceiptPrinting = memo(({ wizard }) => {\n const classes = useStyles()\n\n const { data } = useQuery(GET_CONFIG)\n\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n refetchQueries: () => ['getData']\n })\n\n const save = it =>\n saveConfig({\n variables: { config: toNamespace(namespaces.RECEIPT, it) }\n })\n\n const receiptPrintingConfig =\n data?.config && fromNamespace(namespaces.RECEIPT, data.config)\n if (!receiptPrintingConfig) return null\n\n return (\n <>\n \n
Receipt options \n \n \n
Enable receipt printing
\n
\n \n saveConfig({\n variables: {\n config: toNamespace(\n namespaces.RECEIPT,\n R.merge(receiptPrintingConfig, {\n active: event.target.checked\n })\n )\n }\n })\n }\n />\n {receiptPrintingConfig.active ? 'Yes' : 'No'} \n
\n
\n \n
Offer SMS receipt
\n
\n \n saveConfig({\n variables: {\n config: toNamespace(\n namespaces.RECEIPT,\n R.merge(receiptPrintingConfig, {\n sms: event.target.checked\n })\n )\n }\n })\n }\n />\n {receiptPrintingConfig.sms ? 'Yes' : 'No'} \n
\n
\n \n >\n )\n})\n\nexport default ReceiptPrinting\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.8413132,12.8764646 C17.8413132,12.8764646 16.6555879,12.5091919 15.661533,12.2855556 C15.661533,12.2855556 15.3477198,10.3246465 14.8939121,8.23646465 C14.8939121,8.23646465 15.1560495,8.21373737 15.3383242,8.8710101 L16.0223242,12.0219192 C16.0223242,12.0219192 17.2343571,12.2991919 18.1795549,12.6537374 L17.8413132,12.8764646 Z M15.2603407,6.10282828 L15.5328132,5.80555556 C16.0627253,5.87828283 16.3483516,6.02828283 16.3483516,6.02828283 L16.291978,6.11191919 L16.3972088,6.9310101 C16.2440604,6.93646465 16.0091703,7.05919192 16.0091703,7.05919192 L15.8315934,6.95010101 L15.8315934,6.38282828 C15.3026209,6.29919192 15.2556429,6.21828283 15.2556429,6.21828283 L15.2603407,6.10282828 Z M12.4557527,18.2873737 C11.2831813,18.4964646 9.84565385,18.2237374 9.84565385,18.2237374 L9.89732967,17.9991919 C9.89732967,17.9991919 11.6496099,18.1955556 12.6248736,17.8973737 C12.5553462,18.0628283 12.5356154,18.1137374 12.4557527,18.2873737 L12.4557527,18.2873737 Z M9.18984066,14.5464646 C8.379,15.1364646 7.56064286,15.6791919 7.00442308,16.1091919 C6.9705989,16.6955556 6.91516484,17.6464646 6.91516484,17.6464646 L5.46448352,18.5182828 L5.22207692,18.3737374 C5.27845055,17.9219192 5.34891758,17.5882828 5.34891758,17.5882828 L5.55186264,17.4410101 C5.50676374,17.7282828 5.48515385,18.1346465 5.48515385,18.1346465 L6.5928956,17.440101 C6.63705495,16.7019192 6.72443407,15.960101 6.72443407,15.960101 C6.9705989,15.7373737 8.73697253,14.5237374 10.0100803,13.6864646 C10.0100803,13.6864646 10.018533,13.9437374 9.18984066,14.5464646 L9.18984066,14.5464646 Z M14.977533,0.195555556 C15.2612802,0.167373737 15.5065055,0.184646465 15.7103901,0.228282828 L15.7103901,0.228282828 L15.8813901,0.697373737 L16.1003077,0.361919192 C16.2694286,0.447373737 16.3746593,0.547373737 16.4056648,0.624646465 C16.4056648,0.624646465 16.3615055,0.909191919 16.4319725,1.36464646 C16.5005604,1.80373737 16.6988077,2.78191919 16.6988077,2.78191919 C16.9740989,3.00646465 17.2850934,3.51282828 17.2850934,3.51282828 C17.4758242,4.41737374 17.4645495,5.04919192 17.4636099,5.1210101 C16.6734396,4.68646465 15.6173736,4.58555556 15.6173736,4.58555556 L15.6173736,4.58555556 L15.2481264,4.90828283 C15.9753462,5.00828283 16.8792033,5.26555556 17.1122143,5.44555556 C17.2484505,5.74737374 17.3386484,6.22828283 17.3386484,6.22828283 L17.3386484,6.22828283 L17.0445659,6.58919192 L17.3198571,6.8810101 C17.3386484,7.22464646 17.2183846,7.56919192 17.2183846,7.56919192 C17.7905769,7.93010101 17.9512418,8.79373737 18.3101538,10.250101 C18.6700055,11.7064646 18.9903956,12.9055556 18.9903956,12.9055556 L18.9903956,12.9055556 L18.4567253,13.2019192 C19.1623352,15.7282828 18.444511,17.7391919 17.5378352,19.0664646 C16.6320989,20.3946465 16.0862143,21.7137374 16.1031264,22.8910101 L16.1031264,22.8910101 L16.5475385,23.2346465 L16.7749121,23.9491919 L14.3048077,23.9491919 L14.293533,23.2728283 C14.2925934,21.5619192 14.9230385,20.1328283 14.9230385,20.1328283 C15.2857088,20.0473737 15.6596538,19.7628283 15.6596538,19.7628283 C15.0733681,19.8828283 14.3414505,19.7964646 14.3414505,19.7964646 C14.8676044,18.8537374 15.0292088,18.1773737 15.0292088,18.1773737 L15.0292088,18.1773737 L14.7811648,18.1228283 C14.6956648,18.310101 14.6073462,18.4937374 14.5133901,18.6710101 C13.8754286,19.8864646 13.1735769,20.6628283 12.7554725,22.4055556 L12.7554725,22.4055556 L13.1933077,22.7455556 L13.6987912,23.9491919 L10.8509835,23.9491919 C10.8340714,21.8246465 11.495522,20.2273737 11.7341703,19.7628283 C10.2233571,19.9264646 8.42128022,19.1782828 6.99314835,19.4664646 C6.60041209,21.9473737 4.59257143,22.4355556 3.65019231,22.300101 L3.65019231,22.300101 L2.97652747,23.4146465 L3.58724176,23.9491919 L1.33135714,23.9491919 C1.32008242,23.8546465 1.2918956,23.7537374 1.22988462,23.6591919 C1.22988462,23.6591919 1.97401648,22.5882828 2.48231868,21.150101 C2.89008791,21.3255556 3.75166484,20.9928283 3.78736813,20.1055556 C3.82401099,19.2191919 3.67086264,17.8419192 4.46854945,16.7891919 C5.2652967,15.7355556 6.12687363,15.1655556 7.25152747,14.3328283 C7.98250549,13.7910101 9.22084615,12.8755556 9.99974176,12.3010101 L9.99974176,12.3010101 L9.61546154,12.3864646 L6.81087363,14.6491919 L5.82997253,14.6491919 L8.66368681,12.1164646 L8.29725824,12.1091919 L5.33576374,14.6491919 L4.34170879,14.6491919 L7.27313736,11.720101 L6.9208022,11.7173737 L3.88038462,14.6491919 L2.86565934,14.6491919 L5.8093022,11.3037374 L5.46918132,11.3055556 L2.43534066,14.6491919 L1.36706044,14.6491919 L4.22614286,10.8528283 L3.89635714,10.8573737 L0.963989011,14.6491919 L0,14.6491919 C0,14.6491919 4.11809341,8.22464646 4.92893407,7.00737374 C5.73883516,5.79010101 6.6192033,4.62282828 8.06894505,4.38464646 C9.53465934,4.14282828 10.5343516,4.46646465 11.2502967,5.63373737 C11.636456,6.2610101 12.1034176,6.97828283 12.4698462,7.55919192 C12.0968407,8.1510101 11.6298791,8.6110101 11.5857198,9.32282828 C11.534044,10.1419192 12.0921429,10.6373737 12.6558791,10.6773737 C12.2321374,10.5282828 11.8976538,10.0337374 12.0489231,9.37646465 C12.2058297,8.69737374 12.7554725,8.35191919 13.1726374,7.80282828 C13.5315495,7.32828283 13.5371868,6.63282828 13.5108791,6.4010101 C13.4836319,6.16919192 13.2167967,5.98828283 13.2167967,5.98828283 C13.2167967,5.98828283 13.2252527,5.52373737 13.2167967,5.01646465 C13.2083407,4.51010101 13.4300769,4.21828283 13.4300769,4.21828283 C13.4300769,4.21828283 13.4216209,3.4610101 13.3943736,2.57646465 C13.3671264,1.72555556 13.2863242,1.46828283 13.205522,1.35464646 C13.205522,1.35464646 13.2694121,1.10919192 13.5099396,0.844646465 L13.5099396,0.844646465 L13.7542253,1.06282828 L13.8284505,0.571919192 C13.9825385,0.469191919 14.1723297,0.375555556 14.4072198,0.307373737 C14.4325879,0.30010101 14.4570165,0.294646465 14.4823846,0.288282828 L14.4823846,0.288282828 L14.7896209,0.644646465 Z M7.71628243,19.8937938 C8.32897736,19.8402566 9.02386307,19.9393405 9.75797621,20.0432188 L9.75797621,20.0432188 L9.86538462,20.058401 C9.7449004,20.8103202 9.02106112,21.7691969 7.79193531,22.0896215 L7.79193531,22.0896215 L9.01358923,23.5151515 L7.36136769,23.5151515 C7.15589073,23.2226941 6.50396838,22.32135 6.16586538,21.9681638 C6.72065317,21.6525335 7.42954868,21.0388524 7.71628243,19.8937938 Z\",\n id: \"path-1\"\n}));\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"nav-/-primary-/-1440\",\n transform: \"translate(-128.000000, -14.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/lamassu-logo\",\n transform: \"translate(128.000000, 14.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"color/amaz/default\"\n}, /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask-2\",\n fill: \"white\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#path-1\"\n})), /*#__PURE__*/React.createElement(\"use\", {\n id: \"Mask\",\n fill: \"#FFFFFF\",\n xlinkHref: \"#path-1\"\n})))));\n\nfunction SvgLogoWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"19px\",\n height: \"24px\",\n viewBox: \"0 0 19 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogoWhite);\nexport default __webpack_public_path__ + \"static/media/logo-white.d997c674.svg\";\nexport { ForwardRef as ReactComponent };","import {\n spacer,\n fontMonospaced,\n fontSize5,\n fontColor\n} from 'src/styling/variables'\n\nconst styles = {\n header: {\n display: 'flex',\n position: 'relative',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: 800\n },\n form: {\n '& > *': {\n marginTop: 20\n },\n display: 'flex',\n flexDirection: 'column',\n height: '100%'\n },\n footer: {\n display: 'flex',\n flexDirection: 'row',\n margin: [['auto', 0, spacer * 3, 0]]\n },\n submit: {\n margin: [['auto', 0, 0, 'auto']]\n },\n smsPreview: {\n position: 'absolute',\n left: ({ x }) => x,\n bottom: ({ y }) => y,\n width: 350,\n overflow: 'visible'\n },\n smsPreviewContainer: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'flex-end',\n '& > *': {\n marginRight: 10\n }\n },\n smsPreviewIcon: {\n display: 'flex',\n width: 36,\n height: 36,\n borderRadius: 18,\n backgroundColor: '#16D6D3',\n alignItems: 'center',\n justifyContent: 'center'\n },\n smsPreviewContent: {\n width: 225,\n padding: 15,\n borderRadius: '15px 15px 15px 0px'\n },\n chipButtons: {\n width: 480,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'space-between',\n '& > div': {\n marginTop: 15\n },\n '& > div:first-child': {\n marginTop: 0\n },\n '& > div > div': {\n margin: [[0, 5, 0, 5]]\n },\n '& > div > div > span': {\n lineHeight: '120%',\n color: fontColor,\n fontSize: fontSize5,\n fontFamily: fontMonospaced,\n fontWeight: 500\n },\n marginLeft: 'auto',\n marginRight: 'auto'\n },\n resetToDefault: {\n width: 145\n },\n messageWithTooltip: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center'\n }\n}\n\nexport default styles\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/retry/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-7\",\n stroke: \"#FFFFFF\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.1942452e-14,9.603 L0.002,3.598 C0.003,1.611 1.614,-5.86197757e-14 3.602,-5.86197757e-14 L8.4,-5.86197757e-14 C10.39,-5.86197757e-14 12.001,1.613 12,3.601 L11.998,7.205 C11.998,9.192 10.386,10.803 8.398,10.803 L3,10.803\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"4.2002 9.601 3.0002 10.8 4.2002 12\"\n})));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.4532ac56.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/retry/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-7\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.1942452e-14,9.603 L0.002,3.598 C0.003,1.611 1.614,-5.86197757e-14 3.602,-5.86197757e-14 L8.4,-5.86197757e-14 C10.39,-5.86197757e-14 12.001,1.613 12,3.601 L11.998,7.205 C11.998,9.192 10.386,10.803 8.398,10.803 L3,10.803\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"4.2002 9.601 3.0002 10.8 4.2002 12\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.e42149ea.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles, Chip } from '@material-ui/core'\nimport { Form, Formik, Field } from 'formik'\nimport * as R from 'ramda'\nimport React from 'react'\nimport * as Yup from 'yup'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Modal from 'src/components/Modal'\nimport { ActionButton, Button } from 'src/components/buttons'\nimport { TextInput } from 'src/components/inputs/formik'\nimport { Info2 } from 'src/components/typography'\nimport { ReactComponent as DefaultIconReverse } from 'src/styling/icons/button/retry/white.svg'\nimport { ReactComponent as DefaultIcon } from 'src/styling/icons/button/retry/zodiac.svg'\nimport { zircon } from 'src/styling/variables'\n\nimport styles from './SMSNotices.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst getErrorMsg = (formikErrors, formikTouched, mutationError) => {\n if (!formikErrors || !formikTouched) return null\n if (mutationError) return 'Internal server error'\n if (formikErrors.event && formikTouched.event) return formikErrors.event\n if (formikErrors.message && formikTouched.message) return formikErrors.message\n return null\n}\n\nconst PREFILL = {\n smsCode: {\n validator: Yup.string()\n .required('The message content is required!')\n .trim()\n .test({\n name: 'has-code',\n message: 'The confirmation code is missing from the message!',\n exclusive: false,\n test: value => value?.match(/#code/g || [])?.length > 0\n })\n .test({\n name: 'has-single-code',\n message: 'There should be a single confirmation code!',\n exclusive: false,\n test: value => value?.match(/#code/g || [])?.length === 1\n })\n },\n cashOutDispenseReady: {\n validator: Yup.string()\n .required('The message content is required!')\n .trim()\n },\n smsReceipt: {\n validator: Yup.string().trim()\n }\n}\n\nconst CHIPS = {\n smsCode: [\n { code: '#code', display: 'Confirmation code', obligatory: true },\n { code: '#timestamp', display: 'Timestamp', obligatory: false }\n ],\n cashOutDispenseReady: [\n { code: '#timestamp', display: 'Timestamp', obligatory: false }\n ],\n smsReceipt: [{ code: '#timestamp', display: 'Timestamp', obligatory: false }]\n}\n\nconst DEFAULT_MESSAGES = {\n smsCode: 'Your cryptomat code: #code',\n cashOutDispenseReady:\n 'Your cash is waiting! Go to the Cryptomat and press Redeem within 24 hours. [#timestamp]',\n smsReceipt: ''\n}\n\nconst SMSNoticesModal = ({\n showModal,\n onClose,\n sms,\n creationError,\n submit\n}) => {\n const classes = useStyles()\n\n const initialValues = {\n event: !R.isNil(sms) ? sms.event : '',\n message: !R.isNil(sms) ? sms.message : ''\n }\n\n const validationSchema = Yup.object().shape({\n event: Yup.string().required('An event is required!'),\n message:\n PREFILL[sms?.event]?.validator ??\n Yup.string()\n .required('The message content is required!')\n .trim()\n })\n\n const handleSubmit = values => {\n sms\n ? submit({\n variables: {\n id: sms.id,\n event: values.event,\n message: values.message\n }\n })\n : submit({\n variables: {\n event: values.event,\n message: values.message\n }\n })\n onClose()\n }\n\n return (\n <>\n {showModal && (\n \n \n handleSubmit(values, errors, touched)\n }>\n {({ values, errors, touched, setFieldValue }) => (\n \n )}\n \n \n )}\n >\n )\n}\n\nexport default SMSNoticesModal\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles, Paper } from '@material-ui/core'\nimport { format } from 'date-fns/fp'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { HoverableTooltip } from 'src/components/Tooltip'\nimport { IconButton } from 'src/components/buttons'\nimport { Switch } from 'src/components/inputs'\nimport DataTable from 'src/components/tables/DataTable'\nimport { H4, P, Label3 } from 'src/components/typography'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/action/edit/enabled.svg'\nimport { ReactComponent as ExpandIconClosed } from 'src/styling/icons/action/expand/closed.svg'\nimport { ReactComponent as ExpandIconOpen } from 'src/styling/icons/action/expand/open.svg'\nimport { ReactComponent as WhiteLogo } from 'src/styling/icons/menu/logo-white.svg'\n\nimport styles from './SMSNotices.styles'\nimport CustomSMSModal from './SMSNoticesModal'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_SMS_NOTICES = gql`\n query SMSNotices {\n SMSNotices {\n id\n event\n message\n messageName\n enabled\n allowToggle\n }\n }\n`\n\nconst EDIT_SMS_NOTICE = gql`\n mutation editSMSNotice($id: ID!, $event: SMSNoticeEvent!, $message: String!) {\n editSMSNotice(id: $id, event: $event, message: $message) {\n id\n }\n }\n`\n\nconst ENABLE_SMS_NOTICE = gql`\n mutation enableSMSNotice($id: ID!) {\n enableSMSNotice(id: $id) {\n id\n }\n }\n`\n\nconst DISABLE_SMS_NOTICE = gql`\n mutation disableSMSNotice($id: ID!) {\n disableSMSNotice(id: $id) {\n id\n }\n }\n`\n\nconst multiReplace = (str, obj) => {\n var re = new RegExp(Object.keys(obj).join('|'), 'gi')\n\n return str.replace(re, function(matched) {\n return obj[matched.toLowerCase()]\n })\n}\n\nconst formatContent = content => {\n const fragments = R.split(/\\n/)(content)\n return R.map((it, idx) => {\n if (idx === fragments.length) return <>{it}>\n return (\n <>\n {it}\n \n >\n )\n }, fragments)\n}\n\nconst TOOLTIPS = {\n smsCode: ``,\n cashOutDispenseReady: ``,\n smsReceipt: formatContent(`The contents of this notice will be appended to the end of the SMS receipt sent, and not replace it.\\n\n To edit the contents of the SMS receipt, please go to the 'Receipt' tab`)\n}\n\nconst SMSPreview = ({ sms, coords }) => {\n const classes = useStyles(coords)\n\n const matches = {\n '#code': 123,\n '#timestamp': format('HH:mm', new Date())\n }\n\n return (\n \n
\n
\n \n
\n
\n \n {R.isEmpty(sms?.message) ? (\n No content available \n ) : (\n formatContent(multiReplace(sms?.message, matches))\n )}\n
\n \n
{format('HH:mm', new Date())} \n
\n
\n )\n}\n\nconst SMSNotices = () => {\n const classes = useStyles()\n\n const [showModal, setShowModal] = useState(false)\n const [selectedSMS, setSelectedSMS] = useState(null)\n const [previewOpen, setPreviewOpen] = useState(false)\n const [previewCoords, setPreviewCoords] = useState({ x: 0, y: 0 })\n const [errorMsg, setErrorMsg] = useState('')\n\n const { data: messagesData, loading: messagesLoading } = useQuery(\n GET_SMS_NOTICES\n )\n\n const [editMessage] = useMutation(EDIT_SMS_NOTICE, {\n onError: ({ msg }) => setErrorMsg(msg),\n refetchQueries: () => ['SMSNotices']\n })\n\n const [enableMessage] = useMutation(ENABLE_SMS_NOTICE, {\n onError: ({ msg }) => setErrorMsg(msg),\n refetchQueries: () => ['SMSNotices']\n })\n\n const [disableMessage] = useMutation(DISABLE_SMS_NOTICE, {\n onError: ({ msg }) => setErrorMsg(msg),\n refetchQueries: () => ['SMSNotices']\n })\n\n const loading = messagesLoading\n\n const handleClose = () => {\n setShowModal(false)\n setSelectedSMS(null)\n }\n\n const elements = [\n {\n header: 'Message name',\n width: 500,\n size: 'sm',\n textAlign: 'left',\n view: it =>\n !R.isEmpty(TOOLTIPS[it.event]) ? (\n \n {R.prop('messageName', it)}\n
\n {TOOLTIPS[it.event]}
\n \n
\n ) : (\n R.prop('messageName', it)\n )\n },\n {\n header: 'Edit',\n width: 100,\n size: 'sm',\n textAlign: 'center',\n view: it => (\n {\n setPreviewOpen(false)\n setSelectedSMS(it)\n setShowModal(true)\n }}>\n \n \n )\n },\n {\n header: 'Enable',\n width: 100,\n size: 'sm',\n textAlign: 'center',\n view: it => (\n {\n it.enabled\n ? disableMessage({ variables: { id: it.id } })\n : enableMessage({ variables: { id: it.id } })\n }}\n checked={it.enabled}\n />\n )\n },\n {\n header: '',\n width: 100,\n size: 'sm',\n textAlign: 'center',\n view: it => (\n {\n setSelectedSMS(it)\n setPreviewCoords({\n x: e.currentTarget.getBoundingClientRect().right + 50,\n y:\n window.innerHeight -\n 5 -\n e.currentTarget.getBoundingClientRect().bottom\n })\n R.equals(selectedSMS, it)\n ? setPreviewOpen(!previewOpen)\n : setPreviewOpen(true)\n }}>\n {R.equals(selectedSMS, it) && previewOpen ? (\n \n ) : (\n \n )}\n \n )\n }\n ]\n\n return (\n <>\n \n
SMS notices \n \n {showModal && (\n \n )}\n {previewOpen && }\n \n >\n )\n}\n\nexport default SMSNotices\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { Form, Formik, Field as FormikField } from 'formik'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\nimport * as Yup from 'yup'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport PromptWhenDirty from 'src/components/PromptWhenDirty'\nimport { Link, IconButton } from 'src/components/buttons'\nimport { Switch } from 'src/components/inputs'\nimport { TextInput } from 'src/components/inputs/formik'\nimport { H4, Info2, Info3, Label2, Label3, P } from 'src/components/typography'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/action/edit/enabled.svg'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nimport { global, fieldStyles } from './OperatorInfo.styles'\n\nconst useFieldStyles = makeStyles(fieldStyles)\n\nconst Field = ({\n editing,\n name,\n width,\n placeholder,\n label,\n value,\n multiline = false,\n rows,\n onFocus,\n ...props\n}) => {\n const classes = useFieldStyles()\n\n const classNames = {\n [classes.field]: true,\n [classes.notEditing]: !editing,\n [classes.notEditingSingleLine]: !editing && !multiline,\n [classes.notEditingMultiline]: !editing && multiline\n }\n\n return (\n \n {!editing && (\n <>\n {label} \n {value} \n >\n )}\n {editing && (\n \n )}\n
\n )\n}\n\nconst GET_CONFIG = gql`\n query getData {\n config\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst useTermsConditionsStyles = makeStyles(global)\n\nconst TermsConditions = () => {\n const [error, setError] = useState(null)\n const [editing, setEditing] = useState(false)\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n onCompleted: () => {\n setError(null)\n setEditing(false)\n },\n refetchQueries: () => ['getData'],\n onError: e => setError(e)\n })\n\n const classes = useTermsConditionsStyles()\n\n const { data } = useQuery(GET_CONFIG)\n\n const termsAndConditions =\n data?.config && fromNamespace(namespaces.TERMS_CONDITIONS, data.config)\n const formData = termsAndConditions ?? {}\n const showOnScreen = termsAndConditions?.active ?? false\n const addDelayOnScreen = termsAndConditions?.delay ?? false\n\n const save = it =>\n saveConfig({\n variables: { config: toNamespace(namespaces.TERMS_CONDITIONS, it) }\n })\n\n const fields = [\n {\n name: 'title',\n label: 'Screen title',\n value: formData.title ?? '',\n width: 282\n },\n {\n name: 'text',\n label: 'Text content',\n value: formData.text ?? '',\n width: 502,\n multiline: true,\n rows: 6\n },\n {\n name: 'acceptButtonText',\n label: 'Accept button text',\n value: formData.acceptButtonText ?? '',\n placeholder: 'I accept',\n width: 282\n },\n {\n name: 'cancelButtonText',\n label: 'Cancel button text',\n value: formData.cancelButtonText ?? '',\n placeholder: 'Cancel',\n width: 282\n }\n ]\n\n const findField = name => R.find(R.propEq('name', name))(fields)\n const findValue = name => findField(name).value\n\n const initialValues = {\n title: findValue('title'),\n text: findValue('text'),\n acceptButtonText: findValue('acceptButtonText'),\n cancelButtonText: findValue('cancelButtonText')\n }\n\n const validationSchema = Yup.object().shape({\n title: Yup.string()\n .required()\n .max(50, 'Too long'),\n text: Yup.string().required(),\n acceptButtonText: Yup.string()\n .required()\n .max(50, 'Too long'),\n cancelButtonText: Yup.string()\n .required()\n .max(50, 'Too long')\n })\n\n return (\n <>\n \n
Terms & Conditions \n \n \n
Show on screen
\n
\n \n save({\n active: event.target.checked\n })\n }\n />\n {showOnScreen ? 'Yes' : 'No'} \n
\n
\n \n
Add 7 seconds delay on screen
\n
\n \n save({\n delay: event.target.checked\n })\n }\n />\n {addDelayOnScreen ? 'Yes' : 'No'} \n
\n
\n \n Info card \n {!editing && (\n setEditing(true)}>\n \n \n )}\n
\n save(values)}\n onReset={() => {\n setEditing(false)\n setError(null)\n }}>\n \n \n >\n )\n}\n\nexport default TermsConditions\n","import { makeStyles } from '@material-ui/core'\nimport Chip from '@material-ui/core/Chip'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport {\n secondaryColorLighter,\n secondaryColorDarker,\n offErrorColor,\n errorColor,\n offColor,\n inputFontWeight,\n smallestFontSize,\n inputFontFamily,\n spacer\n} from 'src/styling/variables'\nimport { onlyFirstToUpper } from 'src/utils/string'\n\nimport typographyStyles from './typography/styles'\nconst { label1 } = typographyStyles\n\nconst colors = {\n running: secondaryColorDarker,\n notRunning: offErrorColor\n}\n\nconst backgroundColors = {\n running: secondaryColorLighter,\n notRunning: errorColor\n}\n\nconst styles = {\n uptimeContainer: {\n display: 'inline-block',\n minWidth: 104,\n margin: [[0, 20]]\n },\n name: {\n extend: label1,\n paddingLeft: 4,\n color: offColor\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst useChipStyles = makeStyles({\n root: {\n borderRadius: spacer / 2,\n marginTop: spacer / 2,\n marginRight: spacer / 4,\n marginBottom: spacer / 2,\n marginLeft: spacer / 4,\n height: spacer * 3,\n backgroundColor: ({ type }) => backgroundColors[type]\n },\n label: {\n fontSize: smallestFontSize,\n fontWeight: inputFontWeight,\n fontFamily: inputFontFamily,\n padding: [[spacer / 2, spacer]],\n color: ({ type }) => colors[type]\n }\n})\n\nconst Uptime = ({ process, ...props }) => {\n const classes = useStyles()\n\n const uptime = time => {\n if (time < 60) return `${time}s`\n if (time < 3600) return `${Math.floor(time / 60)}m`\n if (time < 86400) return `${Math.floor(time / 60 / 60)}h`\n return `${Math.floor(time / 60 / 60 / 24)}d`\n }\n\n return (\n \n
{R.toLower(process.name)}
\n
\n
\n )\n}\n\nexport default Uptime\n","import { useQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState, useRef } from 'react'\n\nimport LogsDowloaderPopover from 'src/components/LogsDownloaderPopper'\nimport Title from 'src/components/Title'\nimport Uptime from 'src/components/Uptime'\nimport { Select } from 'src/components/inputs'\nimport {\n Table,\n TableHead,\n TableRow,\n TableHeader,\n TableBody,\n TableCell\n} from 'src/components/table'\nimport { Info3, H4 } from 'src/components/typography'\nimport typographyStyles from 'src/components/typography/styles'\nimport { offColor } from 'src/styling/variables'\nimport { startCase } from 'src/utils/string'\nimport { formatDate } from 'src/utils/timezones'\n\nimport logsStyles from './Logs.styles'\n\nconst { p } = typographyStyles\nconst { tableWrapper } = logsStyles\n\nconst localStyles = {\n serverTableWrapper: {\n extend: tableWrapper,\n maxWidth: '100%',\n marginLeft: 0\n },\n serverVersion: {\n extend: p,\n color: offColor,\n margin: 'auto 0 auto 0'\n },\n headerLine2: {\n display: 'flex',\n justifyContent: 'space-between',\n marginBottom: 24\n },\n uptimeContainer: {\n margin: 'auto 0 auto 0'\n }\n}\n\nconst styles = R.merge(logsStyles, localStyles)\n\nconst useStyles = makeStyles(styles)\n\nconst SHOW_ALL = { code: 'SHOW_ALL', display: 'Show all' }\n\nconst NUM_LOG_RESULTS = 500\n\nconst GET_CSV = gql`\n query ServerData($limit: Int, $from: Date, $until: Date, $timezone: String) {\n serverLogsCsv(\n limit: $limit\n from: $from\n until: $until\n timezone: $timezone\n )\n }\n`\n\nconst GET_SERVER_DATA = gql`\n query ServerData($limit: Int, $from: Date, $until: Date) {\n serverVersion\n uptime {\n name\n state\n uptime\n }\n serverLogs(limit: $limit, from: $from, until: $until) {\n logLevel\n id\n timestamp\n message\n }\n }\n`\n\nconst GET_DATA = gql`\n query getData {\n config\n }\n`\n\nconst Logs = () => {\n const classes = useStyles()\n\n const tableEl = useRef()\n\n const [saveMessage, setSaveMessage] = useState(null)\n const [logLevel, setLogLevel] = useState(SHOW_ALL)\n\n const { data, loading: dataLoading } = useQuery(GET_SERVER_DATA, {\n onCompleted: () => setSaveMessage(''),\n variables: {\n limit: NUM_LOG_RESULTS\n }\n })\n const { data: configResponse, loading: configLoading } = useQuery(GET_DATA)\n const timezone = R.path(['config', 'locale_timezone'], configResponse)\n\n const defaultLogLevels = [\n { code: 'error', display: 'Error' },\n { code: 'info', display: 'Info' },\n { code: 'debug', display: 'Debug' }\n ]\n const serverVersion = data?.serverVersion\n const processStates = data?.uptime ?? []\n\n const getLogLevels = R.compose(\n R.prepend(SHOW_ALL),\n R.uniq,\n R.concat(defaultLogLevels),\n R.map(it => ({\n code: R.path(['logLevel'])(it),\n display: startCase(R.path(['logLevel'])(it))\n })),\n R.path(['serverLogs'])\n )\n\n const handleLogLevelChange = logLevel => {\n if (tableEl.current) tableEl.current.scrollTo(0, 0)\n\n setLogLevel(logLevel)\n }\n\n const loading = dataLoading || configLoading\n\n return (\n <>\n \n
\n
Server \n {data && (\n
\n R.path(['serverLogsCsv'])(logs)}\n timezone={timezone}\n />\n {saveMessage} \n
\n )}\n
\n
\n {serverVersion && Server version: v{serverVersion} }\n
\n
\n \n {data && (\n
\n )}\n
\n {processStates &&\n processStates.map((process, idx) => (\n \n ))}\n
\n
\n \n
\n
\n \n \n Date \n Level \n \n \n \n \n {data &&\n data.serverLogs\n .filter(\n log =>\n logLevel === SHOW_ALL || log.logLevel === logLevel.code\n )\n .map((log, idx) => (\n \n \n {timezone &&\n formatDate(\n log.timestamp,\n timezone,\n 'yyyy-MM-dd HH:mm'\n )}\n \n {log.logLevel} \n {log.message} \n \n ))}\n \n
\n {loading &&
{'Loading...'} }\n {!loading && !data?.serverLogs?.length && (\n
{'No activity so far'} \n )}\n
\n
\n >\n )\n}\n\nexport default Logs\n","import typographyStyles from 'src/components/typography/styles'\nimport { offColor } from 'src/styling/variables'\n\nconst { label1, p } = typographyStyles\n\nexport default {\n tr: ({ height }) => ({\n margin: 0,\n height\n }),\n table: ({ width }) => ({\n width\n }),\n head: {\n display: 'flex',\n flex: 1,\n justifyContent: 'space-between',\n alignItems: 'center',\n paddingRight: 12\n },\n button: {\n marginBottom: 1\n },\n itemWrapper: {\n display: 'flex',\n flexDirection: 'column',\n marginTop: 16,\n minHeight: 35\n },\n label: {\n extend: label1,\n color: offColor,\n marginBottom: 4\n },\n item: {\n extend: p,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap'\n }\n}\n","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport { IconButton } from 'src/components/buttons'\nimport {\n Table,\n THead,\n TBody,\n Td,\n Th,\n Tr\n} from 'src/components/fake-table/Table'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/action/edit/white.svg'\n\nimport styles from './SingleRowTable.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst SingleRowTable = ({\n width = 378,\n height = 128,\n title,\n items,\n onEdit,\n className\n}) => {\n const classes = useStyles({ width, height })\n\n return (\n <>\n \n \n \n {title}\n \n \n \n \n \n \n \n \n {items && (\n <>\n {items[0] && (\n \n
{items[0].label}
\n
{items[0].value}
\n
\n )}\n {items[1] && (\n \n
{items[1].label}
\n
{items[1].value}
\n
\n )}\n >\n )}\n \n \n \n
\n >\n )\n}\n\nexport default SingleRowTable\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles, Grid } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport Modal from 'src/components/Modal'\nimport { SecretInput } from 'src/components/inputs/formik'\nimport CheckboxInput from 'src/components/inputs/formik/Checkbox'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport SingleRowTable from 'src/components/single-row-table/SingleRowTable'\nimport { formatLong } from 'src/utils/string'\n\nimport FormRenderer from './FormRenderer'\nimport schemas from './schemas'\n\nconst GET_INFO = gql`\n query getData {\n accounts\n config\n }\n`\n\nconst SAVE_ACCOUNT = gql`\n mutation Save($accounts: JSONObject) {\n saveAccounts(accounts: $accounts)\n }\n`\n\nconst styles = {\n wrapper: {\n // widths + spacing is a little over 1200 on the design\n // this adjusts the margin after a small reduction on card size\n marginLeft: 1\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst Services = () => {\n const [editingSchema, setEditingSchema] = useState(null)\n\n const { data } = useQuery(GET_INFO)\n const [saveAccount] = useMutation(SAVE_ACCOUNT, {\n onCompleted: () => setEditingSchema(null),\n refetchQueries: ['getData']\n })\n\n const classes = useStyles()\n\n const accounts = data?.accounts ?? {}\n\n const getItems = (code, elements) => {\n const faceElements = R.filter(R.prop('face'))(elements)\n const values = accounts[code] || {}\n return R.map(({ display, code, long }) => ({\n label: display,\n value: long ? formatLong(values[code]) : values[code]\n }))(faceElements)\n }\n\n const updateSettings = element => {\n const settings = element.settings\n const field = R.lensPath(['config', settings.field])\n const isEnabled = R.isNil(settings.requirement)\n ? true\n : R.equals(R.view(field, data), settings.requirement)\n settings.enabled = isEnabled\n return element\n }\n\n const getElements = ({ code, elements }) => {\n return R.map(elem => {\n if (elem.component === CheckboxInput) return updateSettings(elem)\n if (elem.component !== SecretInput) return elem\n return {\n ...elem,\n inputProps: {\n isPasswordFilled:\n !R.isNil(accounts[code]) &&\n !R.isNil(R.path([elem.code], accounts[code]))\n }\n }\n }, elements)\n }\n\n const getAccounts = ({ elements, code }) => {\n const account = accounts[code]\n const filterBySecretComponent = R.filter(R.propEq('component', SecretInput))\n const mapToCode = R.map(R.prop(['code']))\n const passwordFields = R.compose(\n mapToCode,\n filterBySecretComponent\n )(elements)\n return R.mapObjIndexed(\n (value, key) => (R.includes(key, passwordFields) ? '' : value),\n account\n )\n }\n\n const getValidationSchema = ({ code, getValidationSchema }) =>\n getValidationSchema(accounts[code])\n\n return (\n \n \n \n {R.values(schemas).map(schema => (\n \n setEditingSchema(schema)}\n items={getItems(schema.code, schema.elements)}\n />\n \n ))}\n \n {editingSchema && (\n setEditingSchema(null)}\n open={true}>\n \n saveAccount({\n variables: { accounts: { [editingSchema.code]: it } }\n })\n }\n elements={getElements(editingSchema)}\n validationSchema={getValidationSchema(editingSchema)}\n value={getAccounts(editingSchema)}\n />\n \n )}\n
\n )\n}\n\nexport default Services\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React from 'react'\nimport parser from 'ua-parser-js'\n\nimport { IconButton } from 'src/components/buttons'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport DataTable from 'src/components/tables/DataTable'\nimport { ReactComponent as DeleteIcon } from 'src/styling/icons/action/delete/enabled.svg'\nimport { formatDate } from 'src/utils/timezones'\n\nconst GET_SESSIONS = gql`\n query sessions {\n sessions {\n sid\n sess\n expire\n }\n }\n`\n\nconst DELETE_SESSION = gql`\n mutation deleteSession($sid: String!) {\n deleteSession(sid: $sid) {\n sid\n }\n }\n`\n\nconst GET_DATA = gql`\n query getData {\n config\n }\n`\n\nconst isLocalhost = ip => {\n return ip === 'localhost' || ip === '::1' || ip === '127.0.0.1'\n}\n\nconst SessionManagement = () => {\n const { data: tknResponse, loading: sessionsLoading } = useQuery(GET_SESSIONS)\n\n const [deleteSession] = useMutation(DELETE_SESSION, {\n refetchQueries: () => ['sessions']\n })\n\n const { data: configResponse, loading: configLoading } = useQuery(GET_DATA)\n const timezone = R.path(['config', 'locale_timezone'], configResponse)\n\n const loading = sessionsLoading || configLoading\n\n const elements = [\n {\n header: 'Login',\n width: 207,\n textAlign: 'left',\n size: 'sm',\n view: s => s.sess.user.username\n },\n {\n header: 'Last known use',\n width: 305,\n textAlign: 'left',\n size: 'sm',\n view: s => {\n if (R.isNil(s.sess.ua)) return 'No Record'\n const ua = parser(s.sess.ua)\n return `${ua.browser.name} ${ua.browser.version} on ${ua.os.name} ${ua.os.version}`\n }\n },\n {\n header: 'Last known location',\n width: 250,\n textAlign: 'left',\n size: 'sm',\n view: s => {\n return isLocalhost(s.sess.ipAddress) ? 'This device' : s.sess.ipAddress\n }\n },\n {\n header: 'Expiration date',\n width: 290,\n textAlign: 'right',\n size: 'sm',\n view: s =>\n `${formatDate(s.expire, timezone, 'yyyy-MM-dd')} ${formatDate(\n s.expire,\n timezone,\n 'HH:mm:ss'\n )}`\n },\n {\n header: '',\n width: 80,\n textAlign: 'center',\n size: 'sm',\n view: s => (\n {\n deleteSession({ variables: { sid: s.sid } })\n }}>\n \n \n )\n }\n ]\n\n return (\n <>\n \n \n >\n )\n}\n\nexport default SessionManagement\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"path-1-right\",\n cx: 10,\n cy: 10,\n r: 10\n}));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"pop-up/action/download-logs/date-range-copy-2\",\n transform: \"translate(-232.000000, -187.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-contain-b-copy-4\",\n transform: \"translate(242.000000, 197.000000) scale(-1, 1) rotate(-270.000000) translate(-242.000000, -197.000000) translate(232.000000, 187.000000)\"\n}, /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask-2\",\n fill: \"white\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#path-1-right\"\n})), /*#__PURE__*/React.createElement(\"use\", {\n id: \"Mask\",\n fill: \"#FFFFFF\",\n fillRule: \"nonzero\",\n xlinkHref: \"#path-1-right\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/wizzard\",\n mask: \"url(#mask-2)\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(6.666667, 6.000000)\",\n id: \"Group\"\n}, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path-3\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n points: \"0 4.83333333 3.33333333 8.16666667 6.66666667 4.83333333\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 3.33333333,\n y1: 0.25,\n x2: 3.33333333,\n y2: 6.5,\n id: \"Path-4\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n})))))));\n\nfunction SvgRightWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgRightWhite);\nexport default __webpack_public_path__ + \"static/media/right_white.3e1a2119.svg\";\nexport { ForwardRef as ReactComponent };","import { useQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport BigNumber from 'bignumber.js'\nimport gql from 'graphql-tag'\nimport { utils as coinUtils } from '@lamassu/coins'\nimport * as R from 'ramda'\nimport React, { useEffect, useState } from 'react'\nimport { useHistory } from 'react-router-dom'\n\nimport LogsDowloaderPopover from 'src/components/LogsDownloaderPopper'\nimport SearchBox from 'src/components/SearchBox'\nimport SearchFilter from 'src/components/SearchFilter'\nimport Title from 'src/components/Title'\nimport DataTable from 'src/components/tables/DataTable'\nimport { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport { ReactComponent as CustomerLinkIcon } from 'src/styling/icons/month arrows/right.svg'\nimport { ReactComponent as CustomerLinkWhiteIcon } from 'src/styling/icons/month arrows/right_white.svg'\nimport { errorColor } from 'src/styling/variables'\nimport { formatDate } from 'src/utils/timezones'\n\nimport DetailsRow from './DetailsCard'\nimport { mainStyles } from './Transactions.styles'\nimport { getStatus } from './helper'\n\nconst useStyles = makeStyles(mainStyles)\n\nconst NUM_LOG_RESULTS = 1000\n\nconst GET_DATA = gql`\n query getData {\n config\n }\n`\n\nconst GET_TRANSACTIONS_CSV = gql`\n query transactions(\n $simplified: Boolean\n $limit: Int\n $from: Date\n $until: Date\n $timezone: String\n $excludeTestingCustomers: Boolean\n ) {\n transactionsCsv(\n simplified: $simplified\n limit: $limit\n from: $from\n until: $until\n timezone: $timezone\n excludeTestingCustomers: $excludeTestingCustomers\n )\n }\n`\n\nconst GET_TRANSACTION_FILTERS = gql`\n query filters {\n transactionFilters {\n type\n value\n }\n }\n`\n\nconst GET_TRANSACTIONS = gql`\n query transactions(\n $limit: Int\n $from: Date\n $until: Date\n $txClass: String\n $machineName: String\n $customerName: String\n $fiatCode: String\n $cryptoCode: String\n $toAddress: String\n $status: String\n ) {\n transactions(\n limit: $limit\n from: $from\n until: $until\n txClass: $txClass\n machineName: $machineName\n customerName: $customerName\n fiatCode: $fiatCode\n cryptoCode: $cryptoCode\n toAddress: $toAddress\n status: $status\n ) {\n id\n txClass\n txHash\n toAddress\n commissionPercentage\n expired\n machineName\n operatorCompleted\n sendConfirmed\n dispense\n hasError: error\n deviceId\n fiat\n cashInFee\n fiatCode\n cryptoAtoms\n cryptoCode\n toAddress\n created\n customerName\n customerIdCardData\n customerIdCardPhotoPath\n customerFrontCameraPath\n customerPhone\n discount\n customerId\n isAnonymous\n batched\n batchTime\n rawTickerPrice\n batchError\n walletScore\n }\n }\n`\n\nconst getFiltersObj = filters =>\n R.reduce((s, f) => ({ ...s, [f.type]: f.value }), {}, filters)\n\nconst Transactions = () => {\n const classes = useStyles()\n const history = useHistory()\n\n const [filters, setFilters] = useState([])\n const { data: filtersResponse, loading: filtersLoading } = useQuery(\n GET_TRANSACTION_FILTERS\n )\n const [variables, setVariables] = useState({ limit: NUM_LOG_RESULTS })\n const {\n data: txData,\n loading: transactionsLoading,\n refetch,\n startPolling,\n stopPolling\n } = useQuery(GET_TRANSACTIONS, { variables })\n\n useEffect(() => {\n startPolling(10000)\n return stopPolling\n })\n\n const txList = txData?.transactions ?? []\n\n const { data: configResponse, configLoading } = useQuery(GET_DATA)\n const timezone = R.path(['config', 'locale_timezone'], configResponse)\n\n const redirect = customerId => {\n return history.push(`/compliance/customer/${customerId}`)\n }\n\n const formatCustomerName = customer => {\n const { firstName, lastName } = customer\n\n return `${R.o(R.toUpper, R.head)(firstName)}. ${lastName}`\n }\n\n const getCustomerDisplayName = tx => {\n if (tx.isAnonymous) return 'Anonymous'\n if (tx.customerName) return tx.customerName\n if (tx.customerIdCardData) return formatCustomerName(tx.customerIdCardData)\n return tx.customerPhone\n }\n const elements = [\n {\n header: '',\n width: 32,\n size: 'sm',\n view: it => (it.txClass === 'cashOut' ? : )\n },\n {\n header: 'Machine',\n name: 'machineName',\n width: 160,\n size: 'sm',\n view: R.path(['machineName'])\n },\n {\n header: 'Customer',\n width: 202,\n size: 'sm',\n view: it => (\n \n
{getCustomerDisplayName(it)}
\n {!it.isAnonymous && (\n
redirect(it.customerId)}>\n {it.hasError || it.batchError ? (\n \n ) : (\n \n )}\n
\n )}\n
\n )\n },\n {\n header: 'Cash',\n width: 144,\n textAlign: 'right',\n size: 'sm',\n view: it => `${Number.parseFloat(it.fiat)} ${it.fiatCode}`\n },\n {\n header: 'Crypto',\n width: 150,\n textAlign: 'right',\n size: 'sm',\n view: it =>\n `${coinUtils.toUnit(new BigNumber(it.cryptoAtoms), it.cryptoCode)} ${\n it.cryptoCode\n }`\n },\n {\n header: 'Address',\n view: it => coinUtils.formatCryptoAddress(it.cryptoCode, it.toAddress),\n className: classes.overflowTd,\n size: 'sm',\n width: 140\n },\n {\n header: 'Date',\n view: it =>\n timezone && formatDate(it.created, timezone, 'yyyy-MM-dd HH:mm'),\n textAlign: 'right',\n size: 'sm',\n width: 195\n },\n {\n header: 'Status',\n view: it => getStatus(it),\n textAlign: 'left',\n size: 'sm',\n width: 80\n }\n ]\n\n const onFilterChange = filters => {\n const filtersObject = getFiltersObj(filters)\n\n setFilters(filters)\n\n setVariables({\n limit: NUM_LOG_RESULTS,\n txClass: filtersObject.type,\n machineName: filtersObject.machine,\n customerName: filtersObject.customer,\n fiatCode: filtersObject.fiat,\n cryptoCode: filtersObject.crypto,\n toAddress: filtersObject.address,\n status: filtersObject.status\n })\n\n refetch && refetch()\n }\n\n const onFilterDelete = filter => {\n const newFilters = R.filter(\n f => !R.whereEq(R.pick(['type', 'value'], f), filter)\n )(filters)\n\n setFilters(newFilters)\n\n const filtersObject = getFiltersObj(newFilters)\n\n setVariables({\n limit: NUM_LOG_RESULTS,\n txClass: filtersObject.type,\n machineName: filtersObject.machine,\n customerName: filtersObject.customer,\n fiatCode: filtersObject.fiat,\n cryptoCode: filtersObject.crypto,\n toAddress: filtersObject.address,\n status: filtersObject.status\n })\n\n refetch && refetch()\n }\n\n const deleteAllFilters = () => {\n setFilters([])\n const filtersObject = getFiltersObj([])\n\n setVariables({\n limit: NUM_LOG_RESULTS,\n txClass: filtersObject.type,\n machineName: filtersObject.machine,\n customerName: filtersObject.customer,\n fiatCode: filtersObject.fiat,\n cryptoCode: filtersObject.crypto,\n toAddress: filtersObject.address,\n status: filtersObject.status\n })\n\n refetch && refetch()\n }\n\n const filterOptions = R.path(['transactionFilters'])(filtersResponse)\n\n const loading = transactionsLoading || filtersLoading || configLoading\n\n const errorLabel = (\n \n \n \n )\n\n return (\n <>\n \n
\n
Transactions \n
\n \n
\n {txList && (\n
\n R.path(['transactionsCsv'])(logs)}\n simplified\n timezone={timezone}\n args={{ timezone }}\n />\n
\n )}\n
\n
\n
\n \n Cash-in \n
\n
\n \n Cash-out \n
\n
\n {errorLabel}\n Transaction error \n
\n
\n
\n {filters.length > 0 && (\n \n )}\n \n >\n )\n}\n\nexport default Transactions\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/filter/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19,2.5 C19,1.11909091 17.8809091,0 16.5,0 C15.1190909,0 14,1.11909091 14,2.5 C14,3.88090909 15.1190909,5 16.5,5 C17.8809091,5 19,3.88090909 19,2.5 Z\",\n id: \"Stroke-1\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5,9.5 C5,8.11909091 3.88090909,7 2.5,7 C1.11909091,7 0,8.11909091 0,9.5 C0,10.8818182 1.11909091,12 2.5,12 C3.88090909,12 5,10.8818182 5,9.5 Z\",\n id: \"Stroke-7\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19,17.5 C19,16.1190909 17.8809091,15 16.5,15 C15.1190909,15 14,16.1190909 14,17.5 C14,18.8809091 15.1190909,20 16.5,20 C17.8809091,20 19,18.8809091 19,17.5 Z\",\n id: \"Stroke-9\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 14,\n y1: 2.5,\n x2: 0.498999482,\n y2: 2.5,\n id: \"Line-3\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n strokeLinecap: \"square\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 20,\n y1: 9.5,\n x2: 6.49899948,\n y2: 9.5,\n id: \"Line-3-Copy\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n strokeLinecap: \"square\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 14,\n y1: 17.5,\n x2: 0.498999482,\n y2: 17.5,\n id: \"Line-3-Copy-2\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n strokeLinecap: \"square\"\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.8406a3ba.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/filter/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19,2.5 C19,1.11909091 17.8809091,0 16.5,0 C15.1190909,0 14,1.11909091 14,2.5 C14,3.88090909 15.1190909,5 16.5,5 C17.8809091,5 19,3.88090909 19,2.5 Z\",\n id: \"Stroke-1\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5,9.5 C5,8.11909091 3.88090909,7 2.5,7 C1.11909091,7 0,8.11909091 0,9.5 C0,10.8818182 1.11909091,12 2.5,12 C3.88090909,12 5,10.8818182 5,9.5 Z\",\n id: \"Stroke-7\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19,17.5 C19,16.1190909 17.8809091,15 16.5,15 C15.1190909,15 14,16.1190909 14,17.5 C14,18.8809091 15.1190909,20 16.5,20 C17.8809091,20 19,18.8809091 19,17.5 Z\",\n id: \"Stroke-9\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 14,\n y1: 2.5,\n x2: 0.498999482,\n y2: 2.5,\n id: \"Line-3\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n strokeLinecap: \"square\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 20,\n y1: 9.5,\n x2: 6.49899948,\n y2: 9.5,\n id: \"Line-3-Copy\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n strokeLinecap: \"square\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 14,\n y1: 17.5,\n x2: 0.498999482,\n y2: 17.5,\n id: \"Line-3-Copy-2\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n strokeLinecap: \"square\"\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.8bc58042.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/settings/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10,13 C8.34325,13 7,11.65675 7,10 C7,8.34325 8.34325,7 10,7 C11.65675,7 13,8.34325 13,10 C13,11.65675 11.65675,13 10,13 Z M19.843,11.816 C19.945,11.391 20,10.45 20,10 C20,9.55 19.945,8.609 19.843,8.184 L17.649,7.656 C17.499,7.166 17.302,6.695 17.065,6.25 L18.244,4.324 C18.016,3.951 17.39,3.247 17.071,2.929 C16.753,2.61 16.049,1.984 15.676,1.756 L13.75,2.935 C13.305,2.698 12.834,2.501 12.344,2.351 L11.816,0.157 C11.391,0.055 10.45,0 10,0 C9.55,0 8.609,0.055 8.184,0.157 L7.656,2.351 C7.166,2.501 6.695,2.698 6.25,2.935 L4.324,1.756 C3.951,1.984 3.247,2.61 2.929,2.929 C2.61,3.247 1.984,3.951 1.756,4.324 L2.935,6.25 C2.698,6.695 2.501,7.166 2.351,7.656 L0.157,8.184 C0.055,8.609 0,9.55 0,10 C0,10.45 0.055,11.391 0.157,11.816 L2.351,12.344 C2.501,12.834 2.698,13.304 2.935,13.75 L1.756,15.676 C1.984,16.049 2.61,16.753 2.929,17.071 C3.247,17.39 3.951,18.016 4.324,18.244 L6.25,17.065 C6.696,17.302 7.166,17.499 7.656,17.649 L8.184,19.843 C8.609,19.945 9.55,20 10,20 C10.45,20 11.391,19.945 11.816,19.843 L12.344,17.649 C12.834,17.499 13.304,17.302 13.75,17.065 L15.676,18.244 C16.049,18.016 16.753,17.39 17.071,17.071 C17.39,16.753 18.016,16.049 18.244,15.676 L17.065,13.75 C17.302,13.304 17.499,12.834 17.649,12.344 L19.843,11.816 Z\",\n id: \"Stroke-1\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.6dd4c28a.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/settings/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10,13 C8.34325,13 7,11.65675 7,10 C7,8.34325 8.34325,7 10,7 C11.65675,7 13,8.34325 13,10 C13,11.65675 11.65675,13 10,13 Z M19.843,11.816 C19.945,11.391 20,10.45 20,10 C20,9.55 19.945,8.609 19.843,8.184 L17.649,7.656 C17.499,7.166 17.302,6.695 17.065,6.25 L18.244,4.324 C18.016,3.951 17.39,3.247 17.071,2.929 C16.753,2.61 16.049,1.984 15.676,1.756 L13.75,2.935 C13.305,2.698 12.834,2.501 12.344,2.351 L11.816,0.157 C11.391,0.055 10.45,0 10,0 C9.55,0 8.609,0.055 8.184,0.157 L7.656,2.351 C7.166,2.501 6.695,2.698 6.25,2.935 L4.324,1.756 C3.951,1.984 3.247,2.61 2.929,2.929 C2.61,3.247 1.984,3.951 1.756,4.324 L2.935,6.25 C2.698,6.695 2.501,7.166 2.351,7.656 L0.157,8.184 C0.055,8.609 0,9.55 0,10 C0,10.45 0.055,11.391 0.157,11.816 L2.351,12.344 C2.501,12.834 2.698,13.304 2.935,13.75 L1.756,15.676 C1.984,16.049 2.61,16.753 2.929,17.071 C3.247,17.39 3.951,18.016 4.324,18.244 L6.25,17.065 C6.696,17.302 7.166,17.499 7.656,17.649 L8.184,19.843 C8.609,19.945 9.55,20 10,20 C10.45,20 11.391,19.945 11.816,19.843 L12.344,17.649 C12.834,17.499 13.304,17.302 13.75,17.065 L15.676,18.244 C16.049,18.016 16.753,17.39 17.071,17.071 C17.39,16.753 18.016,16.049 18.244,15.676 L17.065,13.75 C17.302,13.304 17.499,12.834 17.649,12.344 L19.843,11.816 Z\",\n id: \"Stroke-1\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.8c3f113c.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport { Label1, Info2 } from 'src/components/typography'\n\nconst styles = {\n flex: {\n display: 'flex'\n },\n column: {\n flexDirection: 'column'\n },\n halfWidth: {\n width: '50%',\n marginBottom: 15,\n marginRight: 50\n },\n marginTop: {\n marginTop: 20\n },\n marginBottom: {\n marginBottom: 20\n }\n}\nconst useStyles = makeStyles(styles)\nconst DetailsCard = ({ it }) => {\n const customRequest = it.customRequest\n const classes = useStyles()\n\n const getScreen2Data = () => {\n const label1Display =\n customRequest.input.constraintType === 'spaceSeparation'\n ? 'First word label'\n : 'Text entry label'\n switch (customRequest.input.type) {\n case 'text':\n return (\n <>\n \n {label1Display} \n {customRequest.input.label1} \n
\n {customRequest.input.constraintType === 'spaceSeparation' && (\n \n Second word label \n {customRequest.input.label2} \n
\n )}\n >\n )\n default:\n return (\n <>\n \n Screen 2 input title \n {customRequest.screen2.title} \n
\n \n Screen 2 input description \n {customRequest.screen2.text} \n
\n >\n )\n }\n }\n\n const getInputData = () => {\n return (\n <>\n {customRequest.input.choiceList && (\n <>\n Choices \n {customRequest.input.choiceList.map((choice, idx) => {\n return {choice} \n })}\n >\n )}\n {customRequest.input.numDigits && (\n <>\n Number of digits \n {customRequest.input.numDigits} \n >\n )}\n >\n )\n }\n\n return (\n \n
\n
\n Screen 1 title \n {customRequest.screen1.title} \n
\n
\n {getScreen2Data()}\n
\n
\n
\n
\n Screen 1 text \n {customRequest.screen1.text} \n
\n
{getInputData()}
\n
\n
\n )\n}\n\nexport default DetailsCard\n","import React, { memo } from 'react'\n\nimport { ToggleButtonGroup } from '../base'\n\nconst ToggleButtonGroupFormik = memo(({ enforceValueSet = true, ...props }) => {\n const { name, value } = props.field\n const { setFieldValue } = props.form\n return (\n {\n // enforceValueSet prevents you from not having any button selected\n // after selecting one the first time\n if (enforceValueSet && !value) return null\n setFieldValue(name, value)\n props.resetError && props.resetError()\n }}\n className={props.className}\n {...props}\n />\n )\n})\n\nexport default ToggleButtonGroupFormik\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"entry-icon/keyboard\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2-Copy-2\",\n transform: \"translate(0.000000, 6.000000)\",\n fill: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle\",\n x: 0,\n y: 0,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-5\",\n x: 0,\n y: 12,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-8\",\n x: 0,\n y: 24,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-3\",\n x: 12,\n y: 1.13686838e-13,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-6\",\n x: 12,\n y: 12,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-9\",\n x: 12,\n y: 24,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-11\",\n x: 64,\n y: 24,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-32\",\n x: 52,\n y: 24,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-4\",\n x: 24,\n y: 1.13686838e-13,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-26\",\n x: 36,\n y: 1.13686838e-13,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-27\",\n x: 48,\n y: 1.13686838e-13,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-28\",\n x: 60,\n y: 1.13686838e-13,\n width: 12,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-7\",\n x: 24,\n y: 12,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-29\",\n x: 36,\n y: 12,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-30\",\n x: 48,\n y: 12,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-31\",\n x: 60,\n y: 12,\n width: 12,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-10\",\n x: 24,\n y: 24,\n width: 24,\n height: 8,\n rx: 2\n})));\n\nfunction SvgKeyboard(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"72px\",\n height: \"44px\",\n viewBox: \"0 0 72 44\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"entry-icon/keyboard\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgKeyboard);\nexport default __webpack_public_path__ + \"static/media/keyboard.cc22b859.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"entry-icon/keypad\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group\",\n transform: \"translate(20.000000, 0.000000)\",\n fill: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle\",\n x: 0,\n y: 0,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-5\",\n x: 0,\n y: 12,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-8\",\n x: 0,\n y: 24,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-3\",\n x: 12,\n y: 0,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-6\",\n x: 12,\n y: 12,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-9\",\n x: 12,\n y: 24,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-11\",\n x: 12,\n y: 36,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-4\",\n x: 24,\n y: 0,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-7\",\n x: 24,\n y: 12,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-10\",\n x: 24,\n y: 24,\n width: 8,\n height: 8,\n rx: 2\n})));\n\nfunction SvgKeypad(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"72px\",\n height: \"44px\",\n viewBox: \"0 0 72 44\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"entry-icon/keypad\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgKeypad);\nexport default __webpack_public_path__ + \"static/media/keypad.dfb6094e.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"entry-icon/list\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-4\",\n transform: \"translate(8.000000, 0.000000)\",\n fill: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-33\",\n x: 0,\n y: 0,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-35\",\n x: 0,\n y: 12,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-37\",\n x: 0,\n y: 24,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-39\",\n x: 0,\n y: 36,\n width: 8,\n height: 8,\n rx: 2\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-34\",\n x: 12,\n y: 2,\n width: 44,\n height: 4,\n rx: 1\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-36\",\n x: 12,\n y: 14,\n width: 44,\n height: 4,\n rx: 1\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-38\",\n x: 12,\n y: 26,\n width: 44,\n height: 4,\n rx: 1\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle-Copy-40\",\n x: 12,\n y: 38,\n width: 44,\n height: 4,\n rx: 1\n})));\n\nfunction SvgList(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"72px\",\n height: \"44px\",\n viewBox: \"0 0 72 44\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"entry-icon/list\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgList);\nexport default __webpack_public_path__ + \"static/media/list.65e6f8cb.svg\";\nexport { ForwardRef as ReactComponent };","import { Field } from 'formik'\nimport React from 'react'\nimport * as Yup from 'yup'\n\nimport ToggleButtonGroup from 'src/components/inputs/formik/ToggleButtonGroup'\nimport { H4 } from 'src/components/typography'\nimport { ReactComponent as Keyboard } from 'src/styling/icons/compliance/keyboard.svg'\nimport { ReactComponent as Keypad } from 'src/styling/icons/compliance/keypad.svg'\nimport { ReactComponent as List } from 'src/styling/icons/compliance/list.svg'\nimport { zircon } from 'src/styling/variables'\n\nconst MakeIcon = IconSvg => (\n \n \n
\n)\n\nconst ChooseType = () => {\n const options = [\n {\n value: 'numerical',\n title: 'Numerical entry',\n description:\n 'User will enter information with a keypad. Good for dates, ID numbers, etc.',\n icon: () => MakeIcon(Keypad)\n },\n {\n value: 'text',\n title: 'Text entry',\n description:\n 'User will entry information with a keyboard. Good for names, email, address, etc.',\n icon: () => MakeIcon(Keyboard)\n },\n {\n value: 'choiceList',\n title: 'Choice list',\n description: 'Gives user multiple options to choose from.',\n icon: () => MakeIcon(List)\n }\n ]\n\n return (\n <>\n Choose the type of data entry \n \n >\n )\n}\n\nconst validationSchema = Yup.object().shape({\n inputType: Yup.string().required()\n})\n\nconst defaultValues = {\n inputType: ''\n}\n\nexport default ChooseType\nexport { validationSchema, defaultValues }\n","import { Field } from 'formik'\nimport React from 'react'\nimport * as Yup from 'yup'\n\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\nimport { H4, P } from 'src/components/typography'\n\nconst NameOfRequirement = () => {\n return (\n <>\n Name of the requirement {/* TODO Add ? icon */}\n \n The name of the requirement will only be visible to you on the dashboard\n on the requirement list, as well as on the custom information request\n list. The user won't see this name. Make sure to make it distinguishable\n and short.\n
\n \n >\n )\n}\n\nconst validationSchema = Yup.object().shape({\n requirementName: Yup.string().required()\n})\n\nconst defaultValues = {\n requirementName: ''\n}\n\nexport default NameOfRequirement\nexport { validationSchema, defaultValues }\n","import { Field } from 'formik'\nimport React from 'react'\nimport * as Yup from 'yup'\n\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\nimport { H4, P } from 'src/components/typography'\n\nconst Screen1Information = () => {\n return (\n <>\n Screen 1 Information {/* TODO Add ? icon */}\n \n On screen 1 you will request the user if he agrees on providing this\n information, or if he wishes to terminate the transaction instead.\n
\n \n \n >\n )\n}\n\nconst validationSchema = Yup.object().shape({\n screen1Title: Yup.string().required(),\n screen1Text: Yup.string().required()\n})\n\nconst defaultValues = {\n screen1Title: '',\n screen1Text: ''\n}\n\nexport default Screen1Information\nexport { validationSchema, defaultValues }\n","import { Field } from 'formik'\nimport React from 'react'\nimport * as Yup from 'yup'\n\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\nimport { H4, P } from 'src/components/typography'\n\nconst ScreenInformation = () => {\n return (\n <>\n Screen 2 Information {/* TODO Add ? icon */}\n \n If the user agrees, on screen 2 is where the user will enter the custom\n information.\n
\n \n \n >\n )\n}\n\nconst validationSchema = Yup.object().shape({\n screen2Title: Yup.string().required(),\n screen2Text: Yup.string().required()\n})\n\nconst defaultValues = {\n screen2Title: '',\n screen2Text: ''\n}\n\nexport default ScreenInformation\nexport { validationSchema, defaultValues }\n","import { errorColor, spacer } from 'src/styling/variables'\n\nconst styles = {\n flex: {\n display: 'flex'\n },\n column: {\n flexDirection: 'column'\n },\n choiceList: {\n display: 'flex',\n flexDirection: 'column',\n maxHeight: 240,\n overflowY: 'auto'\n },\n button: {\n width: 120,\n height: 28,\n marginTop: 28\n },\n textInput: {\n width: 420\n },\n row: {\n flexDirection: 'row'\n },\n subtitle: {\n marginBottom: 0\n },\n radioSubtitle: {\n marginBottom: 0\n },\n error: {\n color: errorColor\n },\n tl1: {\n marginLeft: 8,\n marginTop: 25\n },\n numberField: {\n marginTop: 109,\n maxWidth: 115\n },\n label: {\n width: 200,\n marginRight: spacer\n }\n}\n\nexport default styles\n","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { Field, useFormikContext, FieldArray } from 'formik'\nimport * as R from 'ramda'\nimport React, { useEffect, useRef } from 'react'\n\nimport Button from 'src/components/buttons/ActionButton'\nimport RadioGroup from 'src/components/inputs/formik/RadioGroup'\nimport TextInput from 'src/components/inputs/formik/TextInput'\nimport { H4 } from 'src/components/typography'\nimport { ReactComponent as AddIconInverse } from 'src/styling/icons/button/add/white.svg'\nimport { ReactComponent as AddIcon } from 'src/styling/icons/button/add/zodiac.svg'\n\nimport styles from './formStyles.styles'\nconst useStyles = makeStyles(styles)\n\nconst nonEmptyStr = obj => obj.text && obj.text.length\n\nconst options = [\n { display: 'Select just one', code: 'selectOne' },\n { display: 'Select multiple', code: 'selectMultiple' }\n]\n\nconst ChoiceList = () => {\n const classes = useStyles()\n const context = useFormikContext()\n const choiceListRef = useRef(null)\n const listChoices = R.path(['values', 'listChoices'])(context) ?? []\n const choiceListError = R.path(['errors', 'listChoices'])(context) ?? false\n\n const showErrorColor = {\n [classes.radioSubtitle]: true,\n [classes.error]:\n !R.path(['values', 'constraintType'])(context) &&\n R.path(['errors', 'constraintType'])(context)\n }\n\n const hasError = choice => {\n return (\n choiceListError &&\n R.filter(nonEmptyStr)(listChoices).length < 2 &&\n choice.text.length === 0\n )\n }\n\n useEffect(() => {\n scrollToBottom()\n }, [listChoices.length])\n\n const scrollToBottom = () => {\n choiceListRef.current?.scrollIntoView()\n }\n\n return (\n <>\n Choice list constraints \n \n \n {({ push }) => {\n return (\n \n
Choices \n
\n {listChoices.map((choice, idx) => {\n return (\n
\n \n
\n )\n })}\n
\n
{\n e.preventDefault()\n return push({ text: '' })\n }}>\n Add choice\n \n
\n )\n }}\n \n >\n )\n}\n\nexport default ChoiceList\n","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { Field, useFormikContext } from 'formik'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport NumberInput from 'src/components/inputs/formik/NumberInput'\nimport RadioGroup from 'src/components/inputs/formik/RadioGroup'\nimport { TL1, H4 } from 'src/components/typography'\n\nimport styles from './formStyles.styles'\nconst useStyles = makeStyles(styles)\n\nconst options = [\n { display: 'None', code: 'none' },\n { display: 'Date', code: 'date' },\n { display: 'Length', code: 'length' }\n]\n\nconst NumericalEntry = () => {\n const classes = useStyles()\n const context = useFormikContext()\n\n const isLength =\n (R.path(['values', 'constraintType'])(useFormikContext()) ?? null) ===\n 'length'\n\n const showErrorColor = {\n [classes.radioSubtitle]: true,\n [classes.error]:\n !R.path(['values', 'constraintType'])(context) &&\n R.path(['errors', 'constraintType'])(context)\n }\n\n return (\n <>\n \n Numerical entry constraints\n \n \n {isLength && (\n \n \n digits \n
\n )}\n >\n )\n}\n\nexport default NumericalEntry\n","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { Field, useFormikContext } from 'formik'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport RadioGroup from 'src/components/inputs/formik/RadioGroup'\nimport TextInput from 'src/components/inputs/formik/TextInput'\nimport { H4 } from 'src/components/typography'\n\nimport styles from './formStyles.styles'\nconst useStyles = makeStyles(styles)\n\nconst options = [\n { display: 'None', code: 'none' },\n { display: 'Email', code: 'email' },\n {\n display: 'Space separation',\n subtitle: '(e.g. first and last name)',\n code: 'spaceSeparation'\n }\n]\n\nconst TextEntry = () => {\n const classes = useStyles()\n const context = useFormikContext()\n const showErrorColor = {\n [classes.radioSubtitle]: true,\n [classes.error]:\n !R.path(['values', 'constraintType'])(context) &&\n R.path(['errors', 'constraintType'])(context)\n }\n\n const getLabelInputs = () => {\n switch (context.values.constraintType) {\n case 'spaceSeparation':\n return (\n \n \n \n
\n )\n default:\n return (\n \n )\n }\n }\n\n return (\n <>\n Text entry constraints \n \n {getLabelInputs()}\n >\n )\n}\n\nexport default TextEntry\n","import { useFormikContext } from 'formik'\nimport * as R from 'ramda'\nimport React from 'react'\nimport * as Yup from 'yup'\n\nimport ChoiceList from './ChoiceList'\nimport NumericalEntry from './NumericalEntry'\nimport TextEntry from './TextEntry'\n\nconst nonEmptyStr = obj => obj.text && obj.text.length\n\nconst getForm = inputType => {\n switch (inputType) {\n case 'numerical':\n return NumericalEntry\n case 'text':\n return TextEntry\n case 'choiceList':\n return ChoiceList\n default:\n return NumericalEntry\n }\n}\n\nconst TypeFields = () => {\n const inputType = R.path(['values', 'inputType'])(useFormikContext()) ?? null\n const Component = getForm(inputType)\n return inputType && \n}\n\nconst defaultValues = {\n constraintType: '',\n inputLength: '',\n inputLabel1: '',\n inputLabel2: '',\n listChoices: [{ text: '' }, { text: '' }]\n}\n\nconst validationSchema = Yup.lazy(values => {\n switch (values.inputType) {\n case 'numerical':\n return Yup.object({\n constraintType: Yup.string().required(),\n inputLength: Yup.number().when('constraintType', {\n is: 'length',\n then: Yup.number()\n .min(0)\n .required(),\n else: Yup.mixed().notRequired()\n })\n })\n case 'text':\n return Yup.object({\n constraintType: Yup.string().required(),\n inputLabel1: Yup.string().required(),\n inputLabel2: Yup.string().when('constraintType', {\n is: 'spaceSeparation',\n then: Yup.string().required(),\n else: Yup.mixed().notRequired()\n })\n })\n case 'choiceList':\n return Yup.object({\n constraintType: Yup.string().required(),\n listChoices: Yup.array().test(\n 'has-2-or-more',\n 'Choice list needs to have two or more non empty fields',\n (values, ctx) => {\n return R.filter(nonEmptyStr)(values).length > 1\n }\n )\n })\n default:\n return Yup.mixed().notRequired()\n }\n})\n\nexport default TypeFields\nexport { defaultValues, validationSchema }\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1,.cls-9{fill:#dee5fc;}.cls-2,.cls-9{opacity:0.8;}.cls-3{isolation:isolate;}.cls-4{clip-path:url(#clip-path);}.cls-5{clip-path:url(#clip-path-2);}.cls-6{fill:#ccd8ff;opacity:0.74;}.cls-7{clip-path:url(#clip-path-3);}.cls-8{fill:#ebefff;}.cls-10{clip-path:url(#clip-path-4);}.cls-11{clip-path:url(#clip-path-5);}.cls-12{clip-path:url(#clip-path-6);}.cls-13{clip-path:url(#clip-path-7);}.cls-14{clip-path:url(#clip-path-8);}.cls-15{clip-path:url(#clip-path-9);}.cls-16{clip-path:url(#clip-path-10);}.cls-17{clip-path:url(#clip-path-11);}.cls-18{clip-path:url(#clip-path-12);}.cls-19{clip-path:url(#clip-path-13);}.cls-20{clip-path:url(#clip-path-14);}.cls-21{clip-path:url(#clip-path-15);}.cls-22{clip-path:url(#clip-path-16);}.cls-23{clip-path:url(#clip-path-17);}.cls-24{clip-path:url(#clip-path-18);}.cls-25{clip-path:url(#clip-path-19);}.cls-26{clip-path:url(#clip-path-20);}.cls-27{clip-path:url(#clip-path-21);}.cls-28{clip-path:url(#clip-path-22);}.cls-29{clip-path:url(#clip-path-23);}.cls-30{clip-path:url(#clip-path-24);}.cls-31{clip-path:url(#clip-path-25);}.cls-32{clip-path:url(#clip-path-26);}.cls-33{clip-path:url(#clip-path-27);}.cls-34{clip-path:url(#clip-path-28);}.cls-35{clip-path:url(#clip-path-29);}.cls-36{clip-path:url(#clip-path-30);}.cls-37{clip-path:url(#clip-path-31);}.cls-38{clip-path:url(#clip-path-32);}.cls-39{clip-path:url(#clip-path-33);}.cls-40{clip-path:url(#clip-path-34);}.cls-41{clip-path:url(#clip-path-35);}.cls-42{clip-path:url(#clip-path-36);}.cls-43{clip-path:url(#clip-path-37);}.cls-44{clip-path:url(#clip-path-38);}.cls-45{clip-path:url(#clip-path-39);}.cls-46{clip-path:url(#clip-path-40);}.cls-47{clip-path:url(#clip-path-41);}.cls-48{clip-path:url(#clip-path-42);}.cls-49{clip-path:url(#clip-path-43);}.cls-50{clip-path:url(#clip-path-44);}.cls-51{clip-path:url(#clip-path-45);}.cls-52{clip-path:url(#clip-path-46);}.cls-53{clip-path:url(#clip-path-47);}.cls-54{clip-path:url(#clip-path-48);}.cls-55{clip-path:url(#clip-path-49);}.cls-56{clip-path:url(#clip-path-50);}.cls-57{clip-path:url(#clip-path-51);}.cls-58{clip-path:url(#clip-path-52);}.cls-59{clip-path:url(#clip-path-53);}.cls-60{clip-path:url(#clip-path-54);}.cls-61{clip-path:url(#clip-path-55);}.cls-62{clip-path:url(#clip-path-56);}.cls-63{clip-path:url(#clip-path-57);}.cls-64{clip-path:url(#clip-path-58);}.cls-65{clip-path:url(#clip-path-59);}.cls-66{clip-path:url(#clip-path-60);}.cls-67{clip-path:url(#clip-path-61);}.cls-68{clip-path:url(#clip-path-62);}.cls-69{clip-path:url(#clip-path-63);}.cls-70{clip-path:url(#clip-path-64);}.cls-71{clip-path:url(#clip-path-65);}.cls-72{clip-path:url(#clip-path-66);}.cls-73{clip-path:url(#clip-path-69);}.cls-74{clip-path:url(#clip-path-70);}.cls-75{clip-path:url(#clip-path-71);}.cls-76{clip-path:url(#clip-path-72);}.cls-77{clip-path:url(#clip-path-73);}.cls-78{clip-path:url(#clip-path-74);}.cls-79{clip-path:url(#clip-path-75);}.cls-80{clip-path:url(#clip-path-76);}.cls-81{clip-path:url(#clip-path-77);}.cls-82{clip-path:url(#clip-path-78);}.cls-83{clip-path:url(#clip-path-79);}.cls-84{clip-path:url(#clip-path-80);}.cls-85{clip-path:url(#clip-path-81);}.cls-86{clip-path:url(#clip-path-82);}.cls-87{fill:#4b5fef;}.cls-88{clip-path:url(#clip-path-83);}.cls-89{fill:#5a67ff;}.cls-90{fill:#7687ff;}\"), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 54.32 77.66 65.53 77.66 87.95 58.25 76.74 58.25 54.32\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-2\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 65.53 77.66 87.95 58.25 99.16 58.25 76.74 77.66 65.53\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 76.74 58.25 99.16 38.83 87.95 38.83 65.53 58.25 76.74\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-4\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 65.53 97.08 76.74 97.08 99.16 77.66 87.95 77.66 65.53\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-5\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 76.74 97.08 99.16 77.66 110.37 77.66 87.95 97.08 76.74\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-6\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 87.95 77.66 110.37 58.25 99.16 58.25 76.74 77.66 87.95\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-7\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 76.74 77.66 87.95 77.66 110.37 58.25 99.16 58.25 76.74\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-8\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 87.95 77.66 110.37 58.25 121.58 58.25 99.16 77.66 87.95\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-9\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 99.16 58.25 121.58 38.83 110.37 38.83 87.95 58.25 99.16\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-10\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 65.53 58.25 76.74 58.25 99.16 38.83 87.95 38.83 65.53\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-11\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 76.74 58.25 99.16 38.83 110.37 38.83 87.95 58.25 76.74\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-12\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 87.95 38.83 110.37 19.42 99.16 19.42 76.74 38.83 87.95\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-13\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"19.42 76.74 38.83 87.95 38.83 110.37 19.42 99.16 19.42 76.74\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-14\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 87.95 38.83 110.37 19.42 121.58 19.42 99.16 38.83 87.95\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-15\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"19.42 99.16 19.42 121.58 0 110.37 0 87.95 19.42 99.16\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-16\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 87.95 58.25 99.16 58.25 121.58 38.83 110.37 38.83 87.95\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-17\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 99.16 58.25 121.58 38.83 132.79 38.83 110.37 58.25 99.16\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-18\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 110.37 38.83 132.79 19.42 121.58 19.42 99.16 38.83 110.37\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-19\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 76.74 116.5 87.95 116.5 110.37 97.08 99.16 97.08 76.74\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-20\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"116.5 87.95 116.5 110.37 97.08 121.58 97.08 99.16 116.5 87.95\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-21\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 99.16 97.08 121.58 77.66 110.37 77.66 87.95 97.08 99.16\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-22\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 87.95 97.08 99.16 97.08 121.58 77.66 110.37 77.66 87.95\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-23\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 99.16 97.08 121.58 77.66 132.79 77.66 110.37 97.08 99.16\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-24\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 110.37 77.66 132.79 58.25 121.58 58.25 99.16 77.66 110.37\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-25\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 99.16 77.66 110.37 77.66 132.79 58.25 121.58 58.25 99.16\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-26\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 110.37 77.66 132.79 58.25 144 58.25 121.58 77.66 110.37\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-27\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 121.58 58.25 144 38.83 132.79 38.83 110.37 58.25 121.58\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-28\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 31.9 77.66 43.11 77.66 65.53 58.25 54.32 58.25 31.9\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-29\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 43.11 77.66 65.53 58.25 76.74 58.25 54.32 77.66 43.11\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-30\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 54.32 58.25 76.74 38.83 65.53 38.83 43.11 58.25 54.32\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-31\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 43.11 97.08 54.32 97.08 76.74 77.66 65.53 77.66 43.11\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-32\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 54.32 97.08 76.74 77.66 87.95 77.66 65.53 97.08 54.32\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-33\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 65.53 77.66 87.95 58.25 76.74 58.25 54.32 77.66 65.53\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-34\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 54.32 116.5 65.53 116.5 87.95 97.08 76.74 97.08 54.32\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-35\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"116.5 65.53 116.5 87.95 97.08 99.16 97.08 76.74 116.5 65.53\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-36\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 76.74 97.08 99.16 77.66 87.95 77.66 65.53 97.08 76.74\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-37\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 54.32 77.66 65.53 77.66 87.95 58.25 76.74 58.25 54.32\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-38\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 65.53 77.66 87.95 58.25 99.16 58.25 76.74 77.66 65.53\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-39\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 76.74 58.25 99.16 38.83 87.95 38.83 65.53 58.25 76.74\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-40\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 43.11 58.25 54.32 58.25 76.74 38.83 65.53 38.83 43.11\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-41\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 54.32 58.25 76.74 38.83 87.95 38.83 65.53 58.25 54.32\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-42\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 65.53 38.83 87.95 19.42 76.74 19.42 54.32 38.83 65.53\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-43\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 65.53 97.08 76.74 97.08 99.16 77.66 87.95 77.66 65.53\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-44\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 76.74 97.08 99.16 77.66 110.37 77.66 87.95 97.08 76.74\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-45\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 87.95 77.66 110.37 58.25 99.16 58.25 76.74 77.66 87.95\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-46\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"19.42 54.32 38.83 65.53 38.83 87.95 19.42 76.74 19.42 54.32\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-47\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 65.53 38.83 87.95 19.42 99.16 19.42 76.74 38.83 65.53\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-48\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"19.42 76.74 19.42 99.16 0 87.95 0 65.53 19.42 76.74\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-49\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 65.53 58.25 76.74 58.25 99.16 38.83 87.95 38.83 65.53\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-50\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 76.74 58.25 99.16 38.83 110.37 38.83 87.95 58.25 76.74\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-51\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 87.95 38.83 110.37 19.42 99.16 19.42 76.74 38.83 87.95\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-52\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 76.74 77.66 87.95 77.66 110.37 58.25 99.16 58.25 76.74\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-53\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 87.95 77.66 110.37 58.25 121.58 58.25 99.16 77.66 87.95\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-54\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 99.16 58.25 121.58 38.83 110.37 38.83 87.95 58.25 99.16\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-55\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 9.48 77.66 20.69 77.66 43.11 58.25 31.9 58.25 9.48\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-56\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 20.69 77.66 43.11 58.25 54.32 58.25 31.9 77.66 20.69\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-57\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 31.9 58.25 54.32 38.83 43.11 38.83 20.69 58.25 31.9\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-58\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 31.9 77.66 43.11 77.66 65.53 58.25 54.32 58.25 31.9\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-59\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 43.11 77.66 65.53 58.25 76.74 58.25 54.32 77.66 43.11\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-60\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 54.32 58.25 76.74 38.83 65.53 38.83 43.11 58.25 54.32\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-61\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 20.69 97.08 31.9 97.08 54.32 77.66 43.11 77.66 20.69\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-62\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 31.9 97.08 54.32 77.66 65.53 77.66 43.11 97.08 31.9\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-63\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 43.11 77.66 65.53 58.25 54.32 58.25 31.9 77.66 43.11\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-64\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 20.69 58.25 31.9 58.25 54.32 38.83 43.11 38.83 20.69\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-65\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 31.9 58.25 54.32 38.83 65.53 38.83 43.11 58.25 31.9\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-66\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 43.11 38.83 65.53 19.42 54.32 19.42 31.9 38.83 43.11\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-69\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"19.42 31.9 38.83 43.11 38.83 65.53 19.42 54.32 19.42 31.9\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-70\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 43.11 38.83 65.53 19.42 76.74 19.42 54.32 38.83 43.11\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-71\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"19.42 54.32 19.42 76.74 0 65.53 0 43.11 19.42 54.32\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-72\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 43.11 58.25 54.32 58.25 76.74 38.83 65.53 38.83 43.11\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-73\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 54.32 58.25 76.74 38.83 87.95 38.83 65.53 58.25 54.32\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-74\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 65.53 38.83 87.95 19.42 76.74 19.42 54.32 38.83 65.53\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-75\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 31.9 116.5 43.11 116.5 65.53 97.08 54.32 97.08 31.9\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-76\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"116.5 43.11 116.5 65.53 97.08 76.74 97.08 54.32 116.5 43.11\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-77\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 54.32 97.08 76.74 77.66 65.53 77.66 43.11 97.08 54.32\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-78\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 43.11 97.08 54.32 97.08 76.74 77.66 65.53 77.66 43.11\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-79\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 54.32 97.08 76.74 77.66 87.95 77.66 65.53 97.08 54.32\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-80\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 65.53 77.66 87.95 58.25 76.74 58.25 54.32 77.66 65.53\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-81\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 0 77.66 11.21 77.66 33.63 58.25 22.42 58.25 0\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-82\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 11.21 77.66 33.63 58.25 44.84 58.25 22.42 77.66 11.21\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path-83\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 22.42 58.25 44.84 38.83 33.63 38.83 11.21 58.25 22.42\"\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 54.32 77.66 65.53 77.66 87.95 58.25 76.74 58.25 54.32\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-4\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 54.32 77.66 65.53 77.66 87.95 58.25 76.74 58.25 54.32\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 65.53 77.66 87.95 58.25 99.16 58.25 76.74 77.66 65.53\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-5\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"77.66 65.53 77.66 87.95 58.25 99.16 58.25 76.74 77.66 65.53\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 76.74 58.25 99.16 38.83 87.95 38.83 65.53 58.25 76.74\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-7\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"58.25 76.74 58.25 99.16 38.83 87.95 38.83 65.53 58.25 76.74\"\n})))));\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"38.83 65.53 58.25 54.32 77.66 65.53 58.25 76.74 38.83 65.53\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 65.53 97.08 76.74 97.08 99.16 77.66 87.95 77.66 65.53\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-10\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 65.53 97.08 76.74 97.08 99.16 77.66 87.95 77.66 65.53\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 76.74 97.08 99.16 77.66 110.37 77.66 87.95 97.08 76.74\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-11\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"97.08 76.74 97.08 99.16 77.66 110.37 77.66 87.95 97.08 76.74\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 87.95 77.66 110.37 58.25 99.16 58.25 76.74 77.66 87.95\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-12\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"77.66 87.95 77.66 110.37 58.25 99.16 58.25 76.74 77.66 87.95\"\n})))));\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"58.25 76.74 77.66 65.53 97.08 76.74 77.66 87.95 58.25 76.74\"\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 76.74 77.66 87.95 77.66 110.37 58.25 99.16 58.25 76.74\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-13\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 76.74 77.66 87.95 77.66 110.37 58.25 99.16 58.25 76.74\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 87.95 77.66 110.37 58.25 121.58 58.25 99.16 77.66 87.95\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-14\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"77.66 87.95 77.66 110.37 58.25 121.58 58.25 99.16 77.66 87.95\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 99.16 58.25 121.58 38.83 110.37 38.83 87.95 58.25 99.16\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-15\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"58.25 99.16 58.25 121.58 38.83 110.37 38.83 87.95 58.25 99.16\"\n})))));\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"38.83 87.95 58.25 76.74 77.66 87.95 58.25 99.16 38.83 87.95\"\n});\n\nvar _ref9 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 65.53 58.25 76.74 58.25 99.16 38.83 87.95 38.83 65.53\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-16\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 65.53 58.25 76.74 58.25 99.16 38.83 87.95 38.83 65.53\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 76.74 58.25 99.16 38.83 110.37 38.83 87.95 58.25 76.74\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-17\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"58.25 76.74 58.25 99.16 38.83 110.37 38.83 87.95 58.25 76.74\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 87.95 38.83 110.37 19.42 99.16 19.42 76.74 38.83 87.95\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-18\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"38.83 87.95 38.83 110.37 19.42 99.16 19.42 76.74 38.83 87.95\"\n})))));\n\nvar _ref10 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"19.42 76.74 38.83 65.53 58.25 76.74 38.83 87.95 19.42 76.74\"\n});\n\nvar _ref11 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"19.42 76.74 38.83 87.95 38.83 110.37 19.42 99.16 19.42 76.74\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-19\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"19.42 76.74 38.83 87.95 38.83 110.37 19.42 99.16 19.42 76.74\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 87.95 38.83 110.37 19.42 121.58 19.42 99.16 38.83 87.95\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-20\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"38.83 87.95 38.83 110.37 19.42 121.58 19.42 99.16 38.83 87.95\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"19.42 99.16 19.42 121.58 0 110.37 0 87.95 19.42 99.16\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-21\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"19.42 99.16 19.42 121.58 0 110.37 0 87.95 19.42 99.16\"\n})))));\n\nvar _ref12 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"0 87.95 19.42 76.74 38.83 87.95 19.42 99.16 0 87.95\"\n});\n\nvar _ref13 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 87.95 58.25 99.16 58.25 121.58 38.83 110.37 38.83 87.95\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-22\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 87.95 58.25 99.16 58.25 121.58 38.83 110.37 38.83 87.95\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 99.16 58.25 121.58 38.83 132.79 38.83 110.37 58.25 99.16\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-23\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"58.25 99.16 58.25 121.58 38.83 132.79 38.83 110.37 58.25 99.16\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 110.37 38.83 132.79 19.42 121.58 19.42 99.16 38.83 110.37\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-24\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"38.83 110.37 38.83 132.79 19.42 121.58 19.42 99.16 38.83 110.37\"\n})))));\n\nvar _ref14 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"19.42 99.16 38.83 87.95 58.25 99.16 38.83 110.37 19.42 99.16\"\n});\n\nvar _ref15 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 76.74 116.5 87.95 116.5 110.37 97.08 99.16 97.08 76.74\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-25\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 76.74 116.5 87.95 116.5 110.37 97.08 99.16 97.08 76.74\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"116.5 87.95 116.5 110.37 97.08 121.58 97.08 99.16 116.5 87.95\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-26\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"116.5 87.95 116.5 110.37 97.08 121.58 97.08 99.16 116.5 87.95\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 99.16 97.08 121.58 77.66 110.37 77.66 87.95 97.08 99.16\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-27\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"97.08 99.16 97.08 121.58 77.66 110.37 77.66 87.95 97.08 99.16\"\n})))));\n\nvar _ref16 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"77.66 87.95 97.08 76.74 116.5 87.95 97.08 99.16 77.66 87.95\"\n});\n\nvar _ref17 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 87.95 97.08 99.16 97.08 121.58 77.66 110.37 77.66 87.95\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-28\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 87.95 97.08 99.16 97.08 121.58 77.66 110.37 77.66 87.95\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 99.16 97.08 121.58 77.66 132.79 77.66 110.37 97.08 99.16\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-29\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"97.08 99.16 97.08 121.58 77.66 132.79 77.66 110.37 97.08 99.16\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 110.37 77.66 132.79 58.25 121.58 58.25 99.16 77.66 110.37\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-30\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"77.66 110.37 77.66 132.79 58.25 121.58 58.25 99.16 77.66 110.37\"\n})))));\n\nvar _ref18 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"58.25 99.16 77.66 87.95 97.08 99.16 77.66 110.37 58.25 99.16\"\n});\n\nvar _ref19 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 99.16 77.66 110.37 77.66 132.79 58.25 121.58 58.25 99.16\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-31\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 99.16 77.66 110.37 77.66 132.79 58.25 121.58 58.25 99.16\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 110.37 77.66 132.79 58.25 144 58.25 121.58 77.66 110.37\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-32\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"77.66 110.37 77.66 132.79 58.25 144 58.25 121.58 77.66 110.37\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 121.58 58.25 144 38.83 132.79 38.83 110.37 58.25 121.58\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-33\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"58.25 121.58 58.25 144 38.83 132.79 38.83 110.37 58.25 121.58\"\n})))));\n\nvar _ref20 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"38.83 110.37 58.25 99.16 77.66 110.37 58.25 121.58 38.83 110.37\"\n});\n\nvar _ref21 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 31.9 77.66 43.11 77.66 65.53 58.25 54.32 58.25 31.9\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-34\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 31.9 77.66 43.11 77.66 65.53 58.25 54.32 58.25 31.9\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 43.11 77.66 65.53 58.25 76.74 58.25 54.32 77.66 43.11\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-35\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"77.66 43.11 77.66 65.53 58.25 76.74 58.25 54.32 77.66 43.11\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 54.32 58.25 76.74 38.83 65.53 38.83 43.11 58.25 54.32\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-36\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"58.25 54.32 58.25 76.74 38.83 65.53 38.83 43.11 58.25 54.32\"\n})))));\n\nvar _ref22 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"38.83 43.11 58.25 31.9 77.66 43.11 58.25 54.32 38.83 43.11\"\n});\n\nvar _ref23 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 43.11 97.08 54.32 97.08 76.74 77.66 65.53 77.66 43.11\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-37\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 43.11 97.08 54.32 97.08 76.74 77.66 65.53 77.66 43.11\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 54.32 97.08 76.74 77.66 87.95 77.66 65.53 97.08 54.32\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-38\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"97.08 54.32 97.08 76.74 77.66 87.95 77.66 65.53 97.08 54.32\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 65.53 77.66 87.95 58.25 76.74 58.25 54.32 77.66 65.53\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-39\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"77.66 65.53 77.66 87.95 58.25 76.74 58.25 54.32 77.66 65.53\"\n})))));\n\nvar _ref24 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"58.25 54.32 77.66 43.11 97.08 54.32 77.66 65.53 58.25 54.32\"\n});\n\nvar _ref25 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 54.32 116.5 65.53 116.5 87.95 97.08 76.74 97.08 54.32\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-40\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 54.32 116.5 65.53 116.5 87.95 97.08 76.74 97.08 54.32\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"116.5 65.53 116.5 87.95 97.08 99.16 97.08 76.74 116.5 65.53\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-41\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"116.5 65.53 116.5 87.95 97.08 99.16 97.08 76.74 116.5 65.53\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 76.74 97.08 99.16 77.66 87.95 77.66 65.53 97.08 76.74\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-42\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"97.08 76.74 97.08 99.16 77.66 87.95 77.66 65.53 97.08 76.74\"\n})))));\n\nvar _ref26 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"77.66 65.53 97.08 54.32 116.5 65.53 97.08 76.74 77.66 65.53\"\n});\n\nvar _ref27 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 54.32 77.66 65.53 77.66 87.95 58.25 76.74 58.25 54.32\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-43\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 54.32 77.66 65.53 77.66 87.95 58.25 76.74 58.25 54.32\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 65.53 77.66 87.95 58.25 99.16 58.25 76.74 77.66 65.53\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-44\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"77.66 65.53 77.66 87.95 58.25 99.16 58.25 76.74 77.66 65.53\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 76.74 58.25 99.16 38.83 87.95 38.83 65.53 58.25 76.74\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-45\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"58.25 76.74 58.25 99.16 38.83 87.95 38.83 65.53 58.25 76.74\"\n})))));\n\nvar _ref28 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"38.83 65.53 58.25 54.32 77.66 65.53 58.25 76.74 38.83 65.53\"\n});\n\nvar _ref29 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 43.11 58.25 54.32 58.25 76.74 38.83 65.53 38.83 43.11\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-46\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 43.11 58.25 54.32 58.25 76.74 38.83 65.53 38.83 43.11\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 54.32 58.25 76.74 38.83 87.95 38.83 65.53 58.25 54.32\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-47\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"58.25 54.32 58.25 76.74 38.83 87.95 38.83 65.53 58.25 54.32\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 65.53 38.83 87.95 19.42 76.74 19.42 54.32 38.83 65.53\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-48\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"38.83 65.53 38.83 87.95 19.42 76.74 19.42 54.32 38.83 65.53\"\n})))));\n\nvar _ref30 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"19.42 54.32 38.83 43.11 58.25 54.32 38.83 65.53 19.42 54.32\"\n});\n\nvar _ref31 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 65.53 97.08 76.74 97.08 99.16 77.66 87.95 77.66 65.53\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-49\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 65.53 97.08 76.74 97.08 99.16 77.66 87.95 77.66 65.53\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 76.74 97.08 99.16 77.66 110.37 77.66 87.95 97.08 76.74\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-50\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"97.08 76.74 97.08 99.16 77.66 110.37 77.66 87.95 97.08 76.74\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 87.95 77.66 110.37 58.25 99.16 58.25 76.74 77.66 87.95\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-51\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"77.66 87.95 77.66 110.37 58.25 99.16 58.25 76.74 77.66 87.95\"\n})))));\n\nvar _ref32 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"58.25 76.74 77.66 65.53 97.08 76.74 77.66 87.95 58.25 76.74\"\n});\n\nvar _ref33 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"19.42 54.32 38.83 65.53 38.83 87.95 19.42 76.74 19.42 54.32\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-52\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"19.42 54.32 38.83 65.53 38.83 87.95 19.42 76.74 19.42 54.32\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 65.53 38.83 87.95 19.42 99.16 19.42 76.74 38.83 65.53\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-53\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"38.83 65.53 38.83 87.95 19.42 99.16 19.42 76.74 38.83 65.53\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"19.42 76.74 19.42 99.16 0 87.95 0 65.53 19.42 76.74\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-54\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"19.42 76.74 19.42 99.16 0 87.95 0 65.53 19.42 76.74\"\n})))));\n\nvar _ref34 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"0 65.53 19.42 54.32 38.83 65.53 19.42 76.74 0 65.53\"\n});\n\nvar _ref35 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 65.53 58.25 76.74 58.25 99.16 38.83 87.95 38.83 65.53\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-55\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 65.53 58.25 76.74 58.25 99.16 38.83 87.95 38.83 65.53\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 76.74 58.25 99.16 38.83 110.37 38.83 87.95 58.25 76.74\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-56\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"58.25 76.74 58.25 99.16 38.83 110.37 38.83 87.95 58.25 76.74\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 87.95 38.83 110.37 19.42 99.16 19.42 76.74 38.83 87.95\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-57\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"38.83 87.95 38.83 110.37 19.42 99.16 19.42 76.74 38.83 87.95\"\n})))));\n\nvar _ref36 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"19.42 76.74 38.83 65.53 58.25 76.74 38.83 87.95 19.42 76.74\"\n});\n\nvar _ref37 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 76.74 77.66 87.95 77.66 110.37 58.25 99.16 58.25 76.74\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-58\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 76.74 77.66 87.95 77.66 110.37 58.25 99.16 58.25 76.74\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 87.95 77.66 110.37 58.25 121.58 58.25 99.16 77.66 87.95\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-59\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"77.66 87.95 77.66 110.37 58.25 121.58 58.25 99.16 77.66 87.95\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 99.16 58.25 121.58 38.83 110.37 38.83 87.95 58.25 99.16\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-60\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"58.25 99.16 58.25 121.58 38.83 110.37 38.83 87.95 58.25 99.16\"\n})))));\n\nvar _ref38 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"38.83 87.95 58.25 76.74 77.66 87.95 58.25 99.16 38.83 87.95\"\n});\n\nvar _ref39 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 9.48 77.66 20.69 77.66 43.11 58.25 31.9 58.25 9.48\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-61\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 9.48 77.66 20.69 77.66 43.11 58.25 31.9 58.25 9.48\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 20.69 77.66 43.11 58.25 54.32 58.25 31.9 77.66 20.69\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-62\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"77.66 20.69 77.66 43.11 58.25 54.32 58.25 31.9 77.66 20.69\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 31.9 58.25 54.32 38.83 43.11 38.83 20.69 58.25 31.9\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-63\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"58.25 31.9 58.25 54.32 38.83 43.11 38.83 20.69 58.25 31.9\"\n})))));\n\nvar _ref40 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"38.83 20.69 58.25 9.48 77.66 20.69 58.25 31.9 38.83 20.69\"\n});\n\nvar _ref41 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 31.9 77.66 43.11 77.66 65.53 58.25 54.32 58.25 31.9\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-64\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 31.9 77.66 43.11 77.66 65.53 58.25 54.32 58.25 31.9\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 43.11 77.66 65.53 58.25 76.74 58.25 54.32 77.66 43.11\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-65\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"77.66 43.11 77.66 65.53 58.25 76.74 58.25 54.32 77.66 43.11\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 54.32 58.25 76.74 38.83 65.53 38.83 43.11 58.25 54.32\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-66\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"58.25 54.32 58.25 76.74 38.83 65.53 38.83 43.11 58.25 54.32\"\n})))));\n\nvar _ref42 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"38.83 43.11 58.25 31.9 77.66 43.11 58.25 54.32 38.83 43.11\"\n});\n\nvar _ref43 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 20.69 97.08 31.9 97.08 54.32 77.66 43.11 77.66 20.69\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-67\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 20.69 97.08 31.9 97.08 54.32 77.66 43.11 77.66 20.69\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 31.9 97.08 54.32 77.66 65.53 77.66 43.11 97.08 31.9\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-68\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"97.08 31.9 97.08 54.32 77.66 65.53 77.66 43.11 97.08 31.9\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 43.11 77.66 65.53 58.25 54.32 58.25 31.9 77.66 43.11\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-69\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"77.66 43.11 77.66 65.53 58.25 54.32 58.25 31.9 77.66 43.11\"\n})))));\n\nvar _ref44 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"58.25 31.9 77.66 20.69 97.08 31.9 77.66 43.11 58.25 31.9\"\n});\n\nvar _ref45 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 20.69 58.25 31.9 58.25 54.32 38.83 43.11 38.83 20.69\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-70\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 20.69 58.25 31.9 58.25 54.32 38.83 43.11 38.83 20.69\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 31.9 58.25 54.32 38.83 65.53 38.83 43.11 58.25 31.9\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-71\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"58.25 31.9 58.25 54.32 38.83 65.53 38.83 43.11 58.25 31.9\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 43.11 38.83 65.53 19.42 54.32 19.42 31.9 38.83 43.11\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-72\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"38.83 43.11 38.83 65.53 19.42 54.32 19.42 31.9 38.83 43.11\"\n})))));\n\nvar _ref46 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"19.42 31.9 38.83 20.69 58.25 31.9 38.83 43.11 19.42 31.9\"\n});\n\nvar _ref47 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 43.11 77.66 65.53 58.25 76.74 58.25 54.32 77.66 43.11\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-35\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"77.66 43.11 77.66 65.53 58.25 76.74 58.25 54.32 77.66 43.11\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 54.32 58.25 76.74 38.83 65.53 38.83 43.11 58.25 54.32\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-36\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"58.25 54.32 58.25 76.74 38.83 65.53 38.83 43.11 58.25 54.32\"\n}))), /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 43.11 58.25 31.9 77.66 43.11 58.25 54.32 38.83 43.11\"\n})));\n\nvar _ref48 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"19.42 31.9 38.83 43.11 38.83 65.53 19.42 54.32 19.42 31.9\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-73\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"19.42 31.9 38.83 43.11 38.83 65.53 19.42 54.32 19.42 31.9\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 43.11 38.83 65.53 19.42 76.74 19.42 54.32 38.83 43.11\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-74\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"38.83 43.11 38.83 65.53 19.42 76.74 19.42 54.32 38.83 43.11\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"19.42 54.32 19.42 76.74 0 65.53 0 43.11 19.42 54.32\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-75\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"19.42 54.32 19.42 76.74 0 65.53 0 43.11 19.42 54.32\"\n})))));\n\nvar _ref49 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"0 43.11 19.42 31.9 38.83 43.11 19.42 54.32 0 43.11\"\n});\n\nvar _ref50 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 43.11 58.25 54.32 58.25 76.74 38.83 65.53 38.83 43.11\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-76\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 43.11 58.25 54.32 58.25 76.74 38.83 65.53 38.83 43.11\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 54.32 58.25 76.74 38.83 87.95 38.83 65.53 58.25 54.32\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-77\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"58.25 54.32 58.25 76.74 38.83 87.95 38.83 65.53 58.25 54.32\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"38.83 65.53 38.83 87.95 19.42 76.74 19.42 54.32 38.83 65.53\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-78\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"38.83 65.53 38.83 87.95 19.42 76.74 19.42 54.32 38.83 65.53\"\n})))));\n\nvar _ref51 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"19.42 54.32 38.83 43.11 58.25 54.32 38.83 65.53 19.42 54.32\"\n});\n\nvar _ref52 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 31.9 116.5 43.11 116.5 65.53 97.08 54.32 97.08 31.9\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-79\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 31.9 116.5 43.11 116.5 65.53 97.08 54.32 97.08 31.9\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"116.5 43.11 116.5 65.53 97.08 76.74 97.08 54.32 116.5 43.11\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-80\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"116.5 43.11 116.5 65.53 97.08 76.74 97.08 54.32 116.5 43.11\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 54.32 97.08 76.74 77.66 65.53 77.66 43.11 97.08 54.32\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-81\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"97.08 54.32 97.08 76.74 77.66 65.53 77.66 43.11 97.08 54.32\"\n})))));\n\nvar _ref53 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"77.66 43.11 97.08 31.9 116.5 43.11 97.08 54.32 77.66 43.11\"\n});\n\nvar _ref54 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 43.11 97.08 54.32 97.08 76.74 77.66 65.53 77.66 43.11\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-82\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 43.11 97.08 54.32 97.08 76.74 77.66 65.53 77.66 43.11\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"97.08 54.32 97.08 76.74 77.66 87.95 77.66 65.53 97.08 54.32\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-83\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"97.08 54.32 97.08 76.74 77.66 87.95 77.66 65.53 97.08 54.32\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 65.53 77.66 87.95 58.25 76.74 58.25 54.32 77.66 65.53\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-84\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"77.66 65.53 77.66 87.95 58.25 76.74 58.25 54.32 77.66 65.53\"\n})))));\n\nvar _ref55 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"58.25 54.32 77.66 43.11 97.08 54.32 77.66 65.53 58.25 54.32\"\n});\n\nvar _ref56 = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 0 77.66 11.21 77.66 33.63 58.25 22.42 58.25 0\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-85\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 0 77.66 11.21 77.66 33.63 58.25 22.42 58.25 0\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"77.66 11.21 77.66 33.63 58.25 44.84 58.25 22.42 77.66 11.21\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-86\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-87\",\n points: \"77.66 11.21 77.66 33.63 58.25 44.84 58.25 22.42 77.66 11.21\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-3\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"58.25 22.42 58.25 44.84 38.83 33.63 38.83 11.21 58.25 22.42\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-88\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-89\",\n points: \"58.25 22.42 58.25 44.84 38.83 33.63 38.83 11.21 58.25 22.42\"\n})))));\n\nvar _ref57 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-90\",\n points: \"38.83 11.21 58.25 0 77.66 11.21 58.25 22.42 38.83 11.21\"\n});\n\nfunction SvgCustomRequirement(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n \"data-name\": \"Layer 1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n viewBox: \"0 0 116.5 144\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref10, _ref11, _ref12, _ref13, _ref14, _ref15, _ref16, _ref17, _ref18, _ref19, _ref20, _ref21, _ref22, _ref23, _ref24, _ref25, _ref26, _ref27, _ref28, _ref29, _ref30, _ref31, _ref32, _ref33, _ref34, _ref35, _ref36, _ref37, _ref38, _ref39, _ref40, _ref41, _ref42, _ref43, _ref44, _ref45, _ref46, _ref47, _ref48, _ref49, _ref50, _ref51, _ref52, _ref53, _ref54, _ref55, _ref56, _ref57);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCustomRequirement);\nexport default __webpack_public_path__ + \"static/media/custom-requirement.38819635.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core'\nimport React from 'react'\n\nimport { Button } from 'src/components/buttons'\nimport { H1, P } from 'src/components/typography'\nimport { ReactComponent as CustomReqLogo } from 'src/styling/icons/compliance/custom-requirement.svg'\n\nconst styles = {\n logo: {\n maxHeight: 150,\n maxWidth: 200\n },\n title: {\n margin: [[24, 0, 32, 0]]\n },\n text: {\n margin: 0\n },\n button: {\n marginTop: 'auto',\n marginBottom: 58\n },\n modalContent: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n padding: [[0, 42]],\n flex: 1\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst WizardSplash = ({ onContinue }) => {\n const classes = useStyles()\n return (\n \n
\n
Custom information request \n
\n A custom information request allows you to have an extra option to ask\n specific information about your customers when adding a trigger that\n isn't an option on the default requirements list.\n
\n
\n Note that adding a custom information request isn't the same as adding\n triggers. You will still need to add a trigger with the new requirement\n to get this information from your customers.\n
\n
\n Get started\n \n
\n )\n}\n\nexport default WizardSplash\n","import { makeStyles } from '@material-ui/core'\nimport { Form, Formik } from 'formik'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Modal from 'src/components/Modal'\nimport Stepper from 'src/components/Stepper'\nimport { Button } from 'src/components/buttons'\n\nimport ChooseType, {\n validationSchema as chooseTypeSchema,\n defaultValues as chooseTypeDefaults\n} from './Forms/ChooseType'\nimport NameOfRequirement, {\n validationSchema as nameOfReqSchema,\n defaultValues as nameOfReqDefaults\n} from './Forms/NameOfRequirement'\nimport Screen1Information, {\n validationSchema as screen1InfoSchema,\n defaultValues as screen1InfoDefaults\n} from './Forms/Screen1Information'\nimport Screen2Information, {\n validationSchema as screen2InfoSchema,\n defaultValues as screen2InfoDefaults\n} from './Forms/Screen2Information'\nimport TypeFields, {\n defaultValues as typeFieldsDefaults,\n validationSchema as typeFieldsValidationSchema\n} from './Forms/TypeFields'\nimport WizardSplash from './WizardSplash'\n\nconst LAST_STEP = 5\n\nconst styles = {\n stepper: {\n margin: [[16, 0, 14, 0]]\n },\n submit: {\n display: 'flex',\n flexDirection: 'row',\n margin: [['auto', 0, 24]]\n },\n button: {\n marginLeft: 'auto'\n },\n form: {\n height: '100%',\n display: 'flex',\n flexDirection: 'column'\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst getStep = step => {\n switch (step) {\n case 1:\n return {\n schema: nameOfReqSchema,\n Component: NameOfRequirement\n }\n case 2:\n return {\n schema: screen1InfoSchema,\n Component: Screen1Information\n }\n case 3:\n return { schema: chooseTypeSchema, Component: ChooseType }\n case 4:\n return {\n schema: screen2InfoSchema,\n Component: Screen2Information\n }\n case 5:\n return {\n schema: typeFieldsValidationSchema,\n Component: TypeFields\n }\n default:\n return {\n schema: {},\n Component: () => {\n return Default component step \n }\n }\n }\n}\n\nconst nonEmptyStr = obj => obj.text && obj.text.length\n\nconst formatValues = (values, isEditing) => {\n const isChoiceList = values.inputType === 'choiceList'\n const choices = isChoiceList\n ? isEditing\n ? R.path(['listChoices'])(values)\n : R.map(o => o.text)(R.filter(nonEmptyStr)(values.listChoices) ?? [])\n : []\n\n const hasInputLength = values.constraintType === 'length'\n const inputLength = hasInputLength ? values.inputLength : ''\n\n let resObj = {\n name: values.requirementName,\n screen1: {\n text: values.screen1Text,\n title: values.screen1Title\n },\n screen2: {\n title: values.screen2Title,\n text: values.screen2Text\n },\n input: {\n type: values.inputType,\n constraintType: values.constraintType\n }\n }\n\n if (isChoiceList) {\n resObj = R.assocPath(['input', 'choiceList'], choices, resObj)\n }\n\n if (hasInputLength) {\n resObj = R.assocPath(['input', 'numDigits'], inputLength, resObj)\n }\n\n if (values.inputLabel1) {\n resObj = R.assocPath(['input', 'label1'], values.inputLabel1, resObj)\n }\n\n if (values.inputLabel2) {\n resObj = R.assocPath(['input', 'label2'], values.inputLabel2, resObj)\n }\n\n if (isEditing) {\n resObj = R.assocPath(['id'], values.id, resObj)\n }\n\n return resObj\n}\n\nconst makeEditingValues = it => {\n const { customRequest } = it\n return {\n id: it.id,\n requirementName: customRequest.name,\n screen1Title: customRequest.screen1.title,\n screen1Text: customRequest.screen1.text,\n screen2Title: customRequest.screen2.title,\n screen2Text: customRequest.screen2.text,\n inputType: customRequest.input.type,\n inputLabel1: customRequest.input.label1,\n inputLabel2: customRequest.input.label2,\n listChoices: customRequest.input.choiceList,\n constraintType: customRequest.input.constraintType,\n inputLength: customRequest.input.numDigits\n }\n}\n\nconst chooseNotNull = (a, b) => {\n if (!R.isNil(b)) return b\n return a\n}\n\nconst Wizard = ({ onClose, error = false, toBeEdited, onSave, hasError }) => {\n const classes = useStyles()\n const isEditing = !R.isNil(toBeEdited)\n const [step, setStep] = useState(isEditing ? 1 : 0)\n const stepOptions = getStep(step)\n const isLastStep = step === LAST_STEP\n\n const onContinue = (values, actions) => {\n const showScreen2 =\n values.inputType === 'numerical' || values.inputType === 'choiceList'\n if (isEditing && step === 2) {\n return showScreen2\n ? setStep(4)\n : onSave(formatValues(values, isEditing), isEditing)\n }\n if (isEditing && step === 4) {\n return onSave(formatValues(values, isEditing), isEditing)\n }\n if (step === 3) {\n return showScreen2 ? setStep(step + 1) : setStep(step + 2)\n }\n if (!isLastStep) {\n return setStep(step + 1)\n }\n return onSave(formatValues(values, isEditing), isEditing)\n }\n\n const editingValues = isEditing ? makeEditingValues(toBeEdited) : {}\n const wizardTitle = isEditing\n ? 'Editing custom requirement'\n : 'New custom requirement'\n return (\n 0 ? wizardTitle : ''}\n handleClose={onClose}\n width={520}\n height={620}\n open={true}>\n {step > 0 && (\n \n )}\n {step === 0 && !isEditing && }\n {step > 0 && (\n \n \n \n )}\n \n )\n}\n\nexport default Wizard\n","import { useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { DeleteDialog } from 'src/components/DeleteDialog'\nimport { IconButton, Button, Link } from 'src/components/buttons'\nimport DataTable from 'src/components/tables/DataTable'\nimport { Info1, Info3 } from 'src/components/typography'\nimport { ReactComponent as DeleteIcon } from 'src/styling/icons/action/delete/enabled.svg'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/action/edit/enabled.svg'\n\nimport styles from './CustomInfoRequests.styles'\nimport DetailsRow from './DetailsCard'\nimport Wizard from './Wizard'\nconst useStyles = makeStyles(styles)\n\nconst inputTypeDisplay = {\n numerical: 'Numerical',\n text: 'Text',\n choiceList: 'Choice list'\n}\n\nconst constraintTypeDisplay = {\n date: 'Date',\n none: 'None',\n email: 'Email',\n length: 'Length',\n selectOne: 'Select one',\n selectMultiple: 'Select multiple',\n spaceSeparation: 'Space separation'\n}\n\nconst ADD_ROW = gql`\n mutation insertCustomInfoRequest($customRequest: CustomRequestInput!) {\n insertCustomInfoRequest(customRequest: $customRequest) {\n id\n }\n }\n`\nconst EDIT_ROW = gql`\n mutation editCustomInfoRequest(\n $id: ID!\n $customRequest: CustomRequestInput!\n ) {\n editCustomInfoRequest(id: $id, customRequest: $customRequest) {\n id\n }\n }\n`\n\nconst REMOVE_ROW = gql`\n mutation removeCustomInfoRequest($id: ID!) {\n removeCustomInfoRequest(id: $id) {\n id\n }\n }\n`\n\nconst CustomInfoRequests = ({\n showWizard,\n toggleWizard,\n data: customRequests\n}) => {\n const classes = useStyles()\n\n const [toBeDeleted, setToBeDeleted] = useState()\n const [toBeEdited, setToBeEdited] = useState()\n const [deleteDialog, setDeleteDialog] = useState(false)\n const [hasError, setHasError] = useState(false)\n\n const [addEntry] = useMutation(ADD_ROW, {\n onError: () => {\n console.log('Error while adding custom info request')\n setHasError(true)\n },\n onCompleted: () => {\n setHasError(false)\n toggleWizard()\n },\n refetchQueries: () => ['customInfoRequests']\n })\n\n const [editEntry] = useMutation(EDIT_ROW, {\n onError: () => {\n console.log('Error while editing custom info request')\n setHasError(true)\n },\n onCompleted: () => {\n setHasError(false)\n setToBeEdited(null)\n toggleWizard()\n },\n refetchQueries: () => ['getData', 'customInfoRequests']\n })\n\n const [removeEntry] = useMutation(REMOVE_ROW, {\n onError: () => {\n console.log('Error while removing custom info request')\n setHasError(true)\n },\n onCompleted: () => {\n setDeleteDialog(false)\n setHasError(false)\n },\n refetchQueries: () => ['getData', 'customInfoRequests']\n })\n\n const handleDelete = id => {\n removeEntry({\n variables: {\n id\n }\n })\n }\n\n const handleSave = (values, isEditing) => {\n if (isEditing) {\n return editEntry({\n variables: {\n id: values.id,\n customRequest: R.omit(['id'])(values)\n }\n })\n }\n return addEntry({\n variables: {\n customRequest: {\n ...values\n }\n }\n })\n }\n\n return (\n <>\n {customRequests.length > 0 && (\n it.customRequest.name\n },\n {\n header: 'Data entry type',\n width: 300,\n textAlign: 'left',\n size: 'sm',\n view: it => inputTypeDisplay[it.customRequest.input.type]\n },\n {\n header: 'Constraints',\n width: 300,\n textAlign: 'left',\n size: 'sm',\n view: it =>\n constraintTypeDisplay[it.customRequest.input.constraintType]\n },\n {\n header: 'Edit',\n width: 100,\n textAlign: 'center',\n size: 'sm',\n view: it => {\n return (\n {\n setToBeEdited(it)\n return toggleWizard()\n }}>\n \n \n )\n }\n },\n {\n header: 'Delete',\n width: 100,\n textAlign: 'center',\n size: 'sm',\n view: it => {\n return (\n {\n setToBeDeleted(it.id)\n return setDeleteDialog(true)\n }}>\n \n \n )\n }\n }\n ]}\n data={customRequests}\n Details={DetailsRow}\n expandable\n rowSize=\"sm\"\n />\n )}\n {!customRequests.length && (\n \n
\n It seems you haven't added any custom information requests yet.\n \n
\n Please read our{' '}\n \n Support Article\n {' '}\n on Compliance before adding new information requests.\n \n
toggleWizard()}>\n Add custom information request\n \n
\n )}\n {showWizard && (\n {\n setToBeEdited(null)\n setHasError(false)\n toggleWizard()\n }}\n toBeEdited={toBeEdited}\n onSave={(...args) => handleSave(...args)}\n />\n )}\n\n {\n setDeleteDialog(false)\n setHasError(false)\n }}\n onConfirmed={() => handleDelete(toBeDeleted)}\n />\n >\n )\n}\n\nexport default CustomInfoRequests\n","export default {\n m0: {\n margin: 0\n },\n mb10: {\n marginBottom: 10\n },\n centerItems: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n height: '50%',\n justifyContent: 'center'\n },\n alignWithTitleSection: {\n marginTop: -47,\n display: 'flex'\n }\n}\n","import CustomInfoRequests from './CustomInfoRequests'\nexport default CustomInfoRequests\n","export default {\n switchLabel: {\n margin: 6,\n width: 24\n },\n tableRadioGroup: {\n flexDirection: 'row',\n justifyContent: 'space-between'\n },\n tableRadioLabel: {\n marginRight: 0\n },\n tableWidth: {\n width: 918\n }\n}\n","import { makeStyles, Box } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { Field, useFormikContext } from 'formik'\nimport * as R from 'ramda'\nimport React, { memo } from 'react'\nimport * as Yup from 'yup'\n\nimport { NumberInput, RadioGroup, Dropdown } from 'src/components/inputs/formik'\nimport { H4, Label2, Label1, Info1, Info2 } from 'src/components/typography'\nimport { errorColor } from 'src/styling/variables'\nimport { transformNumber } from 'src/utils/number'\n\n// import { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\n// import { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\n\nconst useStyles = makeStyles({\n radioLabel: {\n height: 40,\n padding: [[0, 10]]\n },\n radio: {\n padding: 4,\n margin: 4\n },\n radioGroup: {\n flexDirection: 'row'\n },\n error: {\n color: errorColor\n },\n specialLabel: {\n height: 40,\n padding: 0\n },\n specialGrid: {\n display: 'grid',\n gridTemplateColumns: [[182, 162, 181]]\n },\n directionIcon: {\n marginRight: 2\n },\n directionName: {\n marginLeft: 6\n },\n thresholdWrapper: {\n display: 'flex',\n flexDirection: 'column'\n },\n thresholdTitle: {\n marginTop: 50\n },\n thresholdContentWrapper: {\n display: 'flex',\n flexDirection: 'row'\n },\n thresholdField: {\n marginRight: 6,\n width: 75\n },\n description: {\n marginTop: 7\n },\n space: {\n marginLeft: 6,\n marginRight: 6\n },\n lastSpace: {\n marginLeft: 6\n },\n suspensionDays: {\n width: 34\n },\n input: {\n marginTop: -2\n },\n limitedInput: {\n width: 50\n },\n daysInput: {\n width: 60\n },\n dropdownField: {\n marginTop: 16,\n minWidth: 155\n }\n})\n\n// const direction = Yup.string().required()\n\nconst triggerType = Yup.string().required()\nconst threshold = Yup.object().shape({\n threshold: Yup.number()\n .nullable()\n .transform(transformNumber)\n .label('Invalid threshold'),\n thresholdDays: Yup.number()\n .transform(transformNumber)\n .nullable()\n .label('Invalid threshold days')\n})\n\nconst requirement = Yup.object().shape({\n requirement: Yup.string().required(),\n suspensionDays: Yup.number()\n .transform(transformNumber)\n .nullable()\n})\n\nconst Schema = Yup.object()\n .shape({\n triggerType,\n requirement,\n threshold\n // direction\n })\n .test(({ threshold, triggerType }, context) => {\n const errorMessages = {\n txAmount: threshold => 'Amount must be greater than or equal to 0',\n txVolume: threshold => {\n const thresholdMessage = 'Volume must be greater than or equal to 0'\n const thresholdDaysMessage = 'Days must be greater than 0'\n const message = []\n if (threshold.threshold < 0) message.push(thresholdMessage)\n if (threshold.thresholdDays <= 0) message.push(thresholdDaysMessage)\n return message.join(', ')\n },\n txVelocity: threshold => {\n const thresholdMessage = 'Transactions must be greater than 0'\n const thresholdDaysMessage = 'Days must be greater than 0'\n const message = []\n if (threshold.threshold <= 0) message.push(thresholdMessage)\n if (threshold.thresholdDays <= 0) message.push(thresholdDaysMessage)\n return message.join(', ')\n },\n consecutiveDays: threshold => 'Days must be greater than 0'\n }\n const thresholdValidator = {\n txAmount: threshold => threshold.threshold >= 0,\n txVolume: threshold =>\n threshold.threshold >= 0 && threshold.thresholdDays > 0,\n txVelocity: threshold =>\n threshold.threshold > 0 && threshold.thresholdDays > 0,\n consecutiveDays: threshold => threshold.thresholdDays > 0\n }\n\n if (triggerType && thresholdValidator[triggerType](threshold)) return\n\n return context.createError({\n path: 'threshold',\n message: errorMessages[triggerType](threshold)\n })\n })\n .test(({ requirement }, context) => {\n const requirementValidator = requirement =>\n requirement.requirement === 'suspend'\n ? requirement.suspensionDays > 0\n : true\n\n if (requirement && requirementValidator(requirement)) return\n\n return context.createError({\n path: 'requirement',\n message: 'Suspension days must be greater than 0'\n })\n })\n\n// Direction V2 only\n// const directionSchema = Yup.object().shape({ direction })\n\n// const directionOptions = [\n// {\n// display: 'Both',\n// code: 'both'\n// },\n// {\n// display: 'Only cash-in',\n// code: 'cashIn'\n// },\n// {\n// display: 'Only cash-out',\n// code: 'cashOut'\n// }\n// ]\n\n// const directionOptions2 = [\n// {\n// display: (\n// <>\n// in\n// >\n// ),\n// code: 'cashIn'\n// },\n// {\n// display: (\n// <>\n// out\n// >\n// ),\n// code: 'cashOut'\n// },\n// {\n// display: (\n// <>\n// \n// \n// \n// \n// \n// \n// \n// \n// >\n// ),\n// code: 'both'\n// }\n// ]\n\n// const Direction = () => {\n// const classes = useStyles()\n// const { errors } = useFormikContext()\n\n// const titleClass = {\n// [classes.error]: errors.direction\n// }\n\n// return (\n// <>\n// \n// \n// In which type of transactions will it trigger?\n// \n// \n// \n// >\n// )\n// }\n\n// const txDirection = {\n// schema: directionSchema,\n// options: directionOptions,\n// Component: Direction,\n// initialValues: { direction: '' }\n// }\n\n// TYPE\nconst typeSchema = Yup.object()\n .shape({\n triggerType: Yup.string().required(),\n threshold: Yup.object({\n threshold: Yup.number()\n .transform(transformNumber)\n .nullable(),\n thresholdDays: Yup.number()\n .transform(transformNumber)\n .nullable()\n })\n })\n .test(({ threshold, triggerType }, context) => {\n const errorMessages = {\n txAmount: threshold => 'Amount must be greater than or equal to 0',\n txVolume: threshold => {\n const thresholdMessage = 'Volume must be greater than or equal to 0'\n const thresholdDaysMessage = 'Days must be greater than 0'\n const message = []\n if (!threshold.threshold || threshold.threshold < 0)\n message.push(thresholdMessage)\n if (!threshold.thresholdDays || threshold.thresholdDays <= 0)\n message.push(thresholdDaysMessage)\n return message.join(', ')\n },\n txVelocity: threshold => {\n const thresholdMessage = 'Transactions must be greater than 0'\n const thresholdDaysMessage = 'Days must be greater than 0'\n const message = []\n if (!threshold.threshold || threshold.threshold <= 0)\n message.push(thresholdMessage)\n if (!threshold.thresholdDays || threshold.thresholdDays <= 0)\n message.push(thresholdDaysMessage)\n return message.join(', ')\n },\n consecutiveDays: threshold => 'Days must be greater than 0'\n }\n const thresholdValidator = {\n txAmount: threshold => threshold.threshold >= 0,\n txVolume: threshold =>\n threshold.threshold >= 0 && threshold.thresholdDays > 0,\n txVelocity: threshold =>\n threshold.threshold > 0 && threshold.thresholdDays > 0,\n consecutiveDays: threshold => threshold.thresholdDays > 0\n }\n\n if (triggerType && thresholdValidator[triggerType](threshold)) return\n\n return context.createError({\n path: 'threshold',\n message: errorMessages[triggerType](threshold)\n })\n })\n\nconst typeOptions = [\n { display: 'Transaction amount', code: 'txAmount' },\n { display: 'Transaction volume', code: 'txVolume' },\n { display: 'Transaction velocity', code: 'txVelocity' },\n { display: 'Consecutive days', code: 'consecutiveDays' }\n]\n\nconst Type = ({ ...props }) => {\n const classes = useStyles()\n const {\n errors,\n touched,\n values,\n setTouched,\n handleChange\n } = useFormikContext()\n\n const typeClass = {\n [classes.error]: errors.triggerType && touched.triggerType\n }\n\n const containsType = R.contains(values?.triggerType)\n const isThresholdCurrencyEnabled = containsType(['txAmount', 'txVolume'])\n const isTransactionAmountEnabled = containsType(['txVelocity'])\n const isThresholdDaysEnabled = containsType(['txVolume', 'txVelocity'])\n const isConsecutiveDaysEnabled = containsType(['consecutiveDays'])\n\n const hasAmountError =\n !!errors.threshold &&\n !!touched.threshold?.threshold &&\n !isConsecutiveDaysEnabled &&\n (!values.threshold?.threshold || values.threshold?.threshold < 0)\n const hasDaysError =\n !!errors.threshold &&\n !!touched.threshold?.thresholdDays &&\n !containsType(['txAmount']) &&\n (!values.threshold?.thresholdDays || values.threshold?.thresholdDays < 0)\n\n const triggerTypeError = !!(hasDaysError || hasAmountError)\n\n const thresholdClass = {\n [classes.error]: triggerTypeError\n }\n\n const isRadioGroupActive = () => {\n return (\n isThresholdCurrencyEnabled ||\n isTransactionAmountEnabled ||\n isThresholdDaysEnabled ||\n isConsecutiveDaysEnabled\n )\n }\n\n return (\n <>\n \n Choose trigger type \n \n {\n handleChange(e)\n setTouched({\n threshold: false,\n thresholdDays: false\n })\n }}\n />\n\n \n {isRadioGroupActive() && (\n
\n Threshold\n \n )}\n
\n {isThresholdCurrencyEnabled && (\n <>\n \n \n {props.currency}\n \n >\n )}\n {isTransactionAmountEnabled && (\n <>\n \n \n transactions\n \n >\n )}\n {isThresholdDaysEnabled && (\n <>\n \n in\n \n \n days \n >\n )}\n {isConsecutiveDaysEnabled && (\n <>\n \n \n consecutive days\n \n >\n )}\n
\n
\n >\n )\n}\n\nconst type = currency => ({\n schema: typeSchema,\n options: typeOptions,\n Component: Type,\n props: { currency },\n initialValues: {\n triggerType: '',\n threshold: { threshold: '', thresholdDays: '' }\n }\n})\n\nconst requirementSchema = Yup.object()\n .shape({\n requirement: Yup.object({\n requirement: Yup.string().required(),\n suspensionDays: Yup.number().when('requirement', {\n is: value => value === 'suspend',\n then: Yup.number()\n .nullable()\n .transform(transformNumber),\n otherwise: Yup.number()\n .nullable()\n .transform(() => null)\n }),\n customInfoRequestId: Yup.string().when('requirement', {\n is: value => value === 'custom',\n then: Yup.string(),\n otherwise: Yup.string()\n .nullable()\n .transform(() => '')\n })\n }).required()\n })\n .test(({ requirement }, context) => {\n const requirementValidator = (requirement, type) => {\n switch (type) {\n case 'suspend':\n return requirement.requirement === type\n ? requirement.suspensionDays > 0\n : true\n case 'custom':\n return requirement.requirement === type\n ? !R.isNil(requirement.customInfoRequestId)\n : true\n default:\n return true\n }\n }\n\n if (requirement && !requirementValidator(requirement, 'suspend'))\n return context.createError({\n path: 'requirement',\n message: 'Suspension days must be greater than 0'\n })\n\n if (requirement && !requirementValidator(requirement, 'custom'))\n return context.createError({\n path: 'requirement',\n message: 'You must select an item'\n })\n })\n\nconst requirementOptions = [\n { display: 'SMS verification', code: 'sms' },\n { display: 'ID card image', code: 'idCardPhoto' },\n { display: 'ID data', code: 'idCardData' },\n { display: 'Customer camera', code: 'facephoto' },\n { display: 'Sanctions', code: 'sanctions' },\n { display: 'US SSN', code: 'usSsn' },\n // { display: 'Super user', code: 'superuser' },\n { display: 'Suspend', code: 'suspend' },\n { display: 'Block', code: 'block' }\n]\n\nconst hasRequirementError = (errors, touched, values) =>\n !!errors.requirement &&\n !!touched.requirement?.suspensionDays &&\n (!values.requirement?.suspensionDays ||\n values.requirement?.suspensionDays < 0)\n\nconst hasCustomRequirementError = (errors, touched, values) =>\n !!errors.requirement &&\n !!touched.requirement?.customInfoRequestId &&\n (!values.requirement?.customInfoRequestId ||\n !R.isNil(values.requirement?.customInfoRequestId))\n\nconst Requirement = ({ customInfoRequests }) => {\n const classes = useStyles()\n const {\n touched,\n errors,\n values,\n handleChange,\n setTouched\n } = useFormikContext()\n\n const isSuspend = values?.requirement?.requirement === 'suspend'\n const isCustom = values?.requirement?.requirement === 'custom'\n const makeCustomReqOptions = () =>\n customInfoRequests.map(it => ({\n value: it.id,\n display: it.customRequest.name\n }))\n\n const enableCustomRequirement = customInfoRequests?.length > 0\n const customInfoOption = {\n display: 'Custom information requirement',\n code: 'custom'\n }\n const options = enableCustomRequirement\n ? [...requirementOptions, customInfoOption]\n : [...requirementOptions]\n const titleClass = {\n [classes.error]:\n (!!errors.requirement && !isSuspend && !isCustom) ||\n (isSuspend && hasRequirementError(errors, touched, values)) ||\n (isCustom && hasCustomRequirementError(errors, touched, values))\n }\n\n return (\n <>\n \n Choose a requirement \n \n {\n handleChange(e)\n setTouched({\n suspensionDays: false\n })\n }}\n />\n {isSuspend && (\n \n )}\n {isCustom && (\n \n \n
\n )}\n >\n )\n}\n\nconst requirements = customInfoRequests => ({\n schema: requirementSchema,\n options: requirementOptions,\n Component: Requirement,\n props: { customInfoRequests },\n hasRequirementError: hasRequirementError,\n hasCustomRequirementError: hasCustomRequirementError,\n initialValues: {\n requirement: {\n requirement: '',\n suspensionDays: '',\n customInfoRequestId: ''\n }\n }\n})\n\nconst getView = (data, code, compare) => it => {\n if (!data) return ''\n\n return R.compose(R.prop(code), R.find(R.propEq(compare ?? 'code', it)))(data)\n}\n\n// const DirectionDisplay = ({ code }) => {\n// const classes = useStyles()\n// const displayName = getView(directionOptions, 'display')(code)\n// const showCashIn = code === 'cashIn' || code === 'both'\n// const showCashOut = code === 'cashOut' || code === 'both'\n\n// return (\n// \n// {showCashOut && }\n// {showCashIn && }\n// {displayName} \n//
\n// )\n// }\n\nconst customReqIdMatches = customReqId => it => {\n return it.id === customReqId\n}\n\nconst RequirementInput = ({ customInfoRequests }) => {\n const { values } = useFormikContext()\n const classes = useStyles()\n\n const requirement = values?.requirement?.requirement\n const customRequestId =\n R.path(['requirement', 'customInfoRequestId'])(values) ?? ''\n const isSuspend = requirement === 'suspend'\n const display = customRequestId\n ? R.path(['customRequest', 'name'])(\n R.find(customReqIdMatches(customRequestId))(customInfoRequests)\n ) ?? ''\n : getView(requirementOptions, 'display')(requirement)\n\n return (\n \n {`${display} ${isSuspend ? 'for' : ''}`}\n {isSuspend && (\n \n )}\n {isSuspend && 'days'}\n \n )\n}\n\nconst RequirementView = ({\n requirement,\n suspensionDays,\n customInfoRequestId,\n customInfoRequests\n}) => {\n const classes = useStyles()\n const display =\n requirement === 'custom'\n ? R.path(['customRequest', 'name'])(\n R.find(customReqIdMatches(customInfoRequestId))(customInfoRequests)\n ) ?? ''\n : getView(requirementOptions, 'display')(requirement)\n const isSuspend = requirement === 'suspend'\n return (\n \n {`${display} ${isSuspend ? 'for' : ''}`}\n {isSuspend && (\n \n {suspensionDays}\n \n )}\n {isSuspend && 'days'}\n \n )\n}\n\nconst DisplayThreshold = ({ config, currency, isEdit }) => {\n const classes = useStyles()\n\n const inputClasses = {\n [classes.input]: true,\n [classes.limitedInput]: config?.triggerType === 'txVelocity',\n [classes.daysInput]: config?.triggerType === 'consecutiveDays'\n }\n\n const threshold = config?.threshold?.threshold\n const thresholdDays = config?.threshold?.thresholdDays\n\n const Threshold = isEdit ? (\n \n ) : (\n {threshold} \n )\n const ThresholdDays = isEdit ? (\n \n ) : (\n {thresholdDays} \n )\n\n switch (config?.triggerType) {\n case 'txAmount':\n return (\n \n {Threshold}\n \n {currency}\n \n \n )\n case 'txVolume':\n return (\n \n {Threshold}\n \n {currency}\n \n \n in\n \n {ThresholdDays}\n \n days\n \n \n )\n case 'txVelocity':\n return (\n \n {Threshold}\n \n transactions in\n \n {ThresholdDays}\n \n days\n \n \n )\n case 'consecutiveDays':\n return (\n \n {ThresholdDays}\n \n days\n \n \n )\n default:\n return ''\n }\n}\n\nconst ThresholdInput = memo(({ currency }) => {\n const { values } = useFormikContext()\n\n return \n})\n\nconst ThresholdView = ({ config, currency }) => {\n return \n}\n\nconst getElements = (currency, classes, customInfoRequests) => [\n {\n name: 'triggerType',\n size: 'sm',\n width: 230,\n input: ({ field: { value: name } }) => (\n <>{getView(typeOptions, 'display')(name)}>\n ),\n view: getView(typeOptions, 'display'),\n inputProps: {\n options: typeOptions,\n valueProp: 'code',\n labelProp: 'display',\n optionsLimit: null\n }\n },\n {\n name: 'requirement',\n size: 'sm',\n width: 230,\n bypassField: true,\n input: () => ,\n view: it => (\n \n )\n },\n {\n name: 'threshold',\n size: 'sm',\n width: 284,\n textAlign: 'right',\n input: () => ,\n view: (it, config) => \n }\n // {\n // name: 'direction',\n // size: 'sm',\n // width: 282,\n // view: it => ,\n // input: RadioGroup,\n // inputProps: {\n // labelClassName: classes.tableRadioLabel,\n // className: classes.tableRadioGroup,\n // options: directionOptions2\n // }\n // }\n]\n\nconst triggerOrder = R.map(R.prop('code'))(typeOptions)\nconst sortBy = [\n R.comparator(\n (a, b) =>\n triggerOrder.indexOf(a.triggerType) < triggerOrder.indexOf(b.triggerType)\n )\n]\n\nconst fromServer = (triggers, customInfoRequests) => {\n return R.map(\n ({\n requirement,\n suspensionDays,\n threshold,\n thresholdDays,\n customInfoRequestId,\n ...rest\n }) => ({\n requirement: {\n requirement,\n suspensionDays,\n customInfoRequestId\n },\n threshold: {\n threshold,\n thresholdDays\n },\n ...rest\n })\n )(triggers)\n}\n\nconst toServer = triggers =>\n R.map(({ requirement, threshold, ...rest }) => ({\n requirement: requirement.requirement,\n suspensionDays: requirement.suspensionDays,\n threshold: threshold.threshold,\n thresholdDays: threshold.thresholdDays,\n customInfoRequestId: requirement.customInfoRequestId,\n ...rest\n }))(triggers)\n\nexport {\n Schema,\n getElements,\n // txDirection,\n type,\n requirements,\n sortBy,\n fromServer,\n toServer,\n getView,\n requirementOptions\n}\n","import { makeStyles } from '@material-ui/core'\nimport { Form, Formik, useFormikContext } from 'formik'\nimport * as R from 'ramda'\nimport React, { useState, Fragment, useEffect } from 'react'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Modal from 'src/components/Modal'\nimport Stepper from 'src/components/Stepper'\nimport { Button } from 'src/components/buttons'\nimport { H5, Info3 } from 'src/components/typography'\nimport { comet } from 'src/styling/variables'\nimport { singularOrPlural } from 'src/utils/string'\n\nimport { type, requirements } from './helper'\n\nconst LAST_STEP = 2\n\nconst styles = {\n stepper: {\n margin: [[16, 0, 14, 0]]\n },\n submit: {\n display: 'flex',\n flexDirection: 'row',\n margin: [['auto', 0, 24]]\n },\n button: {\n marginLeft: 'auto'\n },\n form: {\n height: '100%',\n display: 'flex',\n flexDirection: 'column'\n },\n infoTitle: {\n margin: [[18, 0, 20, 0]]\n },\n infoCurrentText: {\n color: comet\n },\n blankSpace: {\n padding: [[0, 30]],\n margin: [[0, 4, 0, 2]],\n borderBottom: `1px solid ${comet}`,\n display: 'inline-block'\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst getStep = (step, currency, customInfoRequests) => {\n switch (step) {\n // case 1:\n // return txDirection\n case 1:\n return type(currency)\n case 2:\n return requirements(customInfoRequests)\n default:\n return Fragment\n }\n}\n\nconst getText = (step, config, currency, classes) => {\n switch (step) {\n // case 1:\n // return `In ${getDirectionText(config)} transactions`\n case 1:\n return <>If the user {getTypeText(config, currency, classes)}>\n case 2:\n return <>the user will be {getRequirementText(config, classes)}.>\n default:\n return <>>\n }\n}\n\nconst orUnderline = (value, classes) => {\n const blankSpaceEl = \n return R.isEmpty(value) || R.isNil(value) ? blankSpaceEl : value\n}\n\n// const getDirectionText = config => {\n// switch (config.direction) {\n// case 'both':\n// return 'both cash-in and cash-out'\n// case 'cashIn':\n// return 'cash-in'\n// case 'cashOut':\n// return 'cash-out'\n// default:\n// return orUnderline(null)\n// }\n// }\n\nconst getTypeText = (config, currency, classes) => {\n switch (config.triggerType) {\n case 'txAmount':\n return (\n <>\n makes a single transaction over{' '}\n {orUnderline(config.threshold.threshold, classes)} {currency}\n >\n )\n case 'txVolume':\n return (\n <>\n makes more than {orUnderline(config.threshold.threshold, classes)}{' '}\n {currency} worth of transactions within{' '}\n {orUnderline(config.threshold.thresholdDays, classes)}{' '}\n {singularOrPlural(config.threshold.thresholdDays, 'day', 'days')}\n >\n )\n case 'txVelocity':\n return (\n <>\n makes more than {orUnderline(config.threshold.threshold, classes)}{' '}\n {singularOrPlural(\n config.threshold.threshold,\n 'transaction',\n 'transactions'\n )}{' '}\n in {orUnderline(config.threshold.thresholdDays, classes)}{' '}\n {singularOrPlural(config.threshold.thresholdDays, 'day', 'days')}\n >\n )\n case 'consecutiveDays':\n return (\n <>\n at least one transaction every day for{' '}\n {orUnderline(config.threshold.thresholdDays, classes)}{' '}\n {singularOrPlural(config.threshold.thresholdDays, 'day', 'days')}\n >\n )\n default:\n return <>>\n }\n}\n\nconst getRequirementText = (config, classes) => {\n switch (config.requirement?.requirement) {\n case 'sms':\n return <>asked to enter code provided through SMS verification>\n case 'idCardPhoto':\n return <>asked to scan a ID with photo>\n case 'idCardData':\n return <>asked to scan a ID>\n case 'facephoto':\n return <>asked to have a photo taken>\n case 'usSsn':\n return <>asked to input his social security number>\n case 'sanctions':\n return <>matched against the OFAC sanctions list>\n case 'superuser':\n return <>>\n case 'suspend':\n return (\n <>\n suspended for{' '}\n {orUnderline(config.requirement.suspensionDays, classes)}{' '}\n {singularOrPlural(config.requirement.suspensionDays, 'day', 'days')}\n >\n )\n case 'block':\n return <>blocked>\n case 'custom':\n return <>asked to fulfill a custom requirement>\n default:\n return orUnderline(null, classes)\n }\n}\n\nconst InfoPanel = ({ step, config = {}, liveValues = {}, currency }) => {\n const classes = useStyles()\n\n const oldText = R.range(1, step).map((it, idx) => (\n \n {getText(it, config, currency, classes)}\n \n ))\n const newText = getText(step, liveValues, currency, classes)\n const isLastStep = step === LAST_STEP\n\n return (\n <>\n Trigger overview so far \n \n {oldText}\n {step !== 1 && ', '}\n {newText} \n {!isLastStep && '...'}\n \n >\n )\n}\n\nconst GetValues = ({ setValues }) => {\n const { values } = useFormikContext()\n useEffect(() => {\n setValues && values && setValues(values)\n }, [setValues, values])\n\n return null\n}\n\nconst Wizard = ({ onClose, save, error, currency, customInfoRequests }) => {\n const classes = useStyles()\n\n const [liveValues, setLiveValues] = useState({})\n const [{ step, config }, setState] = useState({\n step: 1\n })\n\n const isLastStep = step === LAST_STEP\n const stepOptions = getStep(step, currency, customInfoRequests)\n\n const onContinue = async it => {\n const newConfig = R.merge(config, stepOptions.schema.cast(it))\n\n if (isLastStep) {\n return save(newConfig)\n }\n\n setState({\n step: step + 1,\n config: newConfig\n })\n }\n\n const createErrorMessage = (errors, touched, values) => {\n const triggerType = values?.triggerType\n const containsType = R.contains(triggerType)\n const isSuspend = values?.requirement?.requirement === 'suspend'\n const isCustom = values?.requirement?.requirement === 'custom'\n\n const hasRequirementError = requirements().hasRequirementError(\n errors,\n touched,\n values\n )\n const hasCustomRequirementError = requirements().hasCustomRequirementError(\n errors,\n touched,\n values\n )\n\n const hasAmountError =\n !!errors.threshold &&\n !!touched.threshold?.threshold &&\n !containsType(['consecutiveDays']) &&\n (!values.threshold?.threshold || values.threshold?.threshold < 0)\n\n const hasDaysError =\n !!errors.threshold &&\n !!touched.threshold?.thresholdDays &&\n !containsType(['txAmount']) &&\n (!values.threshold?.thresholdDays || values.threshold?.thresholdDays < 0)\n\n if (containsType(['txAmount', 'txVolume', 'txVelocity']) && hasAmountError)\n return errors.threshold\n\n if (\n containsType(['txVolume', 'txVelocity', 'consecutiveDays']) &&\n hasDaysError\n )\n return errors.threshold\n\n if (\n (isSuspend && hasRequirementError) ||\n (isCustom && hasCustomRequirementError)\n )\n return errors.requirement\n }\n\n return (\n <>\n \n }\n infoPanelHeight={172}\n open={true}>\n \n \n {({ errors, touched, values }) => (\n \n )}\n \n \n >\n )\n}\n\nexport default Wizard\n","import { useMutation } from '@apollo/react-hooks'\nimport { makeStyles, Box } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\nimport { v4 } from 'uuid'\n\nimport { Button } from 'src/components/buttons'\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport { H2 } from 'src/components/typography'\nimport { fromNamespace, namespaces } from 'src/utils/config'\n\nimport styles from './Triggers.styles'\nimport Wizard from './Wizard'\nimport { Schema, getElements, sortBy, toServer } from './helper'\n\nconst useStyles = makeStyles(styles)\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst TriggerView = ({\n triggers,\n showWizard,\n config,\n toggleWizard,\n customInfoRequests\n}) => {\n const currency = R.path(['fiatCurrency'])(\n fromNamespace(namespaces.LOCALE)(config)\n )\n const classes = useStyles()\n const [error, setError] = useState(null)\n\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n onCompleted: () => toggleWizard('off'),\n refetchQueries: () => ['getData'],\n onError: error => setError(error)\n })\n\n const save = config => {\n setError(null)\n return saveConfig({\n variables: { config: { triggers: toServer(config.triggers) } }\n })\n }\n\n const add = rawConfig => {\n const toSave = R.concat([{ id: v4(), direction: 'both', ...rawConfig }])(\n triggers\n )\n return saveConfig({ variables: { config: { triggers: toServer(toSave) } } })\n }\n\n return (\n <>\n \n {showWizard && (\n \n )}\n {R.isEmpty(triggers) && (\n \n \n It seems there are no active compliance triggers on your network\n \n toggleWizard()}>Add first trigger \n \n )}\n >\n )\n}\n\nexport default TriggerView\n","import * as R from 'ramda'\nimport * as Yup from 'yup'\n\nimport Autocomplete from 'src/components/inputs/formik/Autocomplete.js'\nimport { getView } from 'src/pages/Triggers/helper'\n\nconst buildAdvancedRequirementOptions = customInfoRequests => {\n const base = [\n { display: 'Sanctions', code: 'sanctions' },\n { display: 'ID card image', code: 'idCardPhoto' },\n { display: 'ID data', code: 'idCardData' },\n { display: 'Customer camera', code: 'facephoto' },\n { display: 'US SSN', code: 'usSsn' }\n ]\n\n const custom = R.map(it => ({\n display: it.customRequest.name,\n code: it.id\n }))(customInfoRequests)\n\n return R.concat(base, custom)\n}\n\nconst displayRequirement = (code, customInfoRequests) => {\n return R.prop(\n 'display',\n R.find(R.propEq('code', code))(\n buildAdvancedRequirementOptions(customInfoRequests)\n )\n )\n}\n\nconst defaultSchema = Yup.object().shape({\n expirationTime: Yup.string()\n .label('Expiration time')\n .required(),\n automation: Yup.string()\n .label('Automation')\n .matches(/(Manual|Automatic)/)\n .required()\n})\n\nconst getOverridesSchema = (values, customInfoRequests) => {\n return Yup.object().shape({\n id: Yup.string()\n .label('Requirement')\n .required()\n .test({\n test() {\n const { requirement } = this.parent\n if (R.find(R.propEq('requirement', requirement))(values)) {\n return this.createError({\n message: `Requirement ${displayRequirement(\n requirement,\n customInfoRequests\n )} already overriden`\n })\n }\n return true\n }\n }),\n expirationTime: Yup.string()\n .label('Expiration time')\n .required(),\n automation: Yup.string()\n .label('Automation')\n .matches(/(Manual|Automatic)/)\n .required()\n })\n}\n\nconst getDefaultSettings = () => {\n return [\n {\n name: 'expirationTime',\n header: 'Expiration time',\n width: 196,\n size: 'sm',\n editable: false\n },\n {\n name: 'automation',\n header: 'Automation',\n width: 196,\n size: 'sm',\n input: Autocomplete,\n inputProps: {\n options: [\n { code: 'Automatic', display: 'Automatic' },\n { code: 'Manual', display: 'Manual' }\n ],\n labelProp: 'display',\n valueProp: 'code'\n }\n }\n ]\n}\n\nconst getOverrides = customInfoRequests => {\n return [\n {\n name: 'requirement',\n header: 'Requirement',\n width: 196,\n size: 'sm',\n view: getView(\n buildAdvancedRequirementOptions(customInfoRequests),\n 'display'\n ),\n input: Autocomplete,\n inputProps: {\n options: buildAdvancedRequirementOptions(customInfoRequests),\n labelProp: 'display',\n valueProp: 'code'\n }\n },\n {\n name: 'expirationTime',\n header: 'Expiration time',\n width: 196,\n size: 'sm',\n editable: false\n },\n {\n name: 'automation',\n header: 'Automation',\n width: 196,\n size: 'sm',\n input: Autocomplete,\n inputProps: {\n options: [\n { code: 'Automatic', display: 'Automatic' },\n { code: 'Manual', display: 'Manual' }\n ],\n labelProp: 'display',\n valueProp: 'code'\n }\n }\n ]\n}\n\nconst defaults = [\n {\n expirationTime: 'Forever',\n automation: 'Automatic'\n }\n]\n\nconst overridesDefaults = {\n requirement: '',\n expirationTime: 'Forever',\n automation: 'Automatic'\n}\n\nexport {\n defaultSchema,\n getOverridesSchema,\n defaults,\n overridesDefaults,\n getDefaultSettings,\n getOverrides\n}\n","import { useMutation, useQuery } from '@apollo/react-hooks'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { memo, useState } from 'react'\n\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport Section from 'src/components/layout/Section'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nimport {\n defaultSchema,\n getOverridesSchema,\n defaults,\n overridesDefaults,\n getDefaultSettings,\n getOverrides\n} from './helper'\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst GET_INFO = gql`\n query getData {\n config\n }\n`\n\nconst GET_CUSTOM_REQUESTS = gql`\n query customInfoRequests {\n customInfoRequests {\n id\n customRequest\n enabled\n }\n }\n`\n\nconst AdvancedTriggersSettings = memo(() => {\n const SCREEN_KEY = namespaces.TRIGGERS\n const [error, setError] = useState(null)\n const [isEditingDefault, setEditingDefault] = useState(false)\n const [isEditingOverrides, setEditingOverrides] = useState(false)\n\n const { data, loading: configLoading } = useQuery(GET_INFO)\n const { data: customInfoReqData, loading: customInfoLoading } = useQuery(\n GET_CUSTOM_REQUESTS\n )\n\n const customInfoRequests =\n R.path(['customInfoRequests'])(customInfoReqData) ?? []\n const enabledCustomInfoRequests = R.filter(R.propEq('enabled', true))(\n customInfoRequests\n )\n\n const loading = configLoading || customInfoLoading\n\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n refetchQueries: () => ['getData'],\n onError: error => setError(error)\n })\n\n const saveDefaults = it => {\n const newConfig = toNamespace(SCREEN_KEY)(it.triggersConfig[0])\n setError(null)\n return saveConfig({\n variables: { config: newConfig }\n })\n }\n\n const saveOverrides = it => {\n const config = toNamespace(SCREEN_KEY)(it)\n setError(null)\n return saveConfig({ variables: { config } })\n }\n\n const requirementsData =\n data?.config && fromNamespace(SCREEN_KEY)(data?.config)\n const requirementsDefaults =\n requirementsData && !R.isEmpty(requirementsData)\n ? requirementsData\n : defaults\n const requirementsOverrides = requirementsData?.overrides ?? []\n\n const onEditingDefault = (it, editing) => setEditingDefault(editing)\n const onEditingOverrides = (it, editing) => setEditingOverrides(editing)\n\n return (\n !loading && (\n <>\n \n \n >\n )\n )\n})\n\nexport default AdvancedTriggersSettings\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles, Box } from '@material-ui/core'\nimport classnames from 'classnames'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { HoverableTooltip } from 'src/components/Tooltip'\nimport { Link } from 'src/components/buttons'\nimport { Switch } from 'src/components/inputs'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport { P, Label2 } from 'src/components/typography'\nimport { ReactComponent as ReverseCustomInfoIcon } from 'src/styling/icons/circle buttons/filter/white.svg'\nimport { ReactComponent as CustomInfoIcon } from 'src/styling/icons/circle buttons/filter/zodiac.svg'\nimport { ReactComponent as ReverseSettingsIcon } from 'src/styling/icons/circle buttons/settings/white.svg'\nimport { ReactComponent as SettingsIcon } from 'src/styling/icons/circle buttons/settings/zodiac.svg'\nimport { fromNamespace, toNamespace } from 'src/utils/config'\n\nimport CustomInfoRequests from './CustomInfoRequests'\nimport TriggerView from './TriggerView'\nimport styles from './Triggers.styles'\nimport AdvancedTriggers from './components/AdvancedTriggers'\nimport { fromServer } from './helper'\nconst useStyles = makeStyles(styles)\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst GET_CONFIG = gql`\n query getData {\n config\n }\n`\n\nconst GET_CUSTOM_REQUESTS = gql`\n query customInfoRequests {\n customInfoRequests {\n id\n customRequest\n enabled\n }\n }\n`\n\nconst Triggers = () => {\n const classes = useStyles()\n const [wizardType, setWizard] = useState(false)\n const { data, loading: configLoading } = useQuery(GET_CONFIG)\n const { data: customInfoReqData, loading: customInfoLoading } = useQuery(\n GET_CUSTOM_REQUESTS\n )\n const [error, setError] = useState(null)\n const [subMenu, setSubMenu] = useState(false)\n\n const customInfoRequests =\n R.path(['customInfoRequests'])(customInfoReqData) ?? []\n const enabledCustomInfoRequests = R.filter(R.propEq('enabled', true))(\n customInfoRequests\n )\n\n const triggers = fromServer(data?.config?.triggers ?? [])\n const complianceConfig =\n data?.config && fromNamespace('compliance')(data.config)\n const rejectAddressReuse = complianceConfig?.rejectAddressReuse ?? false\n\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n onCompleted: () => setWizard(false),\n refetchQueries: () => ['getData'],\n onError: error => setError(error)\n })\n\n const addressReuseSave = rawConfig => {\n const config = toNamespace('compliance')(rawConfig)\n return saveConfig({ variables: { config } })\n }\n\n const titleSectionWidth = {\n [classes.tableWidth]: !subMenu === 'customInfoRequests'\n }\n\n const setBlur = shouldBlur => {\n return shouldBlur\n ? document.querySelector('#root').classList.add('root-blur')\n : document.querySelector('#root').classList.remove('root-blur')\n }\n\n const toggleWizard = wizardName => forceDisable => {\n if (wizardType === wizardName || forceDisable) {\n setBlur(false)\n return setWizard(null)\n }\n setBlur(true)\n return setWizard(wizardName)\n }\n\n const loading = configLoading || customInfoLoading\n\n return (\n <>\n {\n setSubMenu(show ? 'advancedSettings' : false)\n }\n },\n {\n text: 'Custom info requests',\n icon: CustomInfoIcon,\n inverseIcon: ReverseCustomInfoIcon,\n forceDisable: !(subMenu === 'customInfoRequests'),\n toggle: show => {\n setSubMenu(show ? 'customInfoRequests' : false)\n }\n }\n ]}\n className={classnames(titleSectionWidth)}>\n {!subMenu && (\n \n \n Reject reused addresses
\n {\n addressReuseSave({ rejectAddressReuse: event.target.checked })\n }}\n value={rejectAddressReuse}\n />\n \n {rejectAddressReuse ? 'On' : 'Off'}\n \n \n \n This option requires a user to scan a different cryptocurrency\n address if they attempt to scan one that had been previously\n used for a transaction in your network\n
\n \n \n \n )}\n {subMenu === 'customInfoRequests' &&\n !R.isEmpty(enabledCustomInfoRequests) && (\n \n toggleWizard('newCustomRequest')()}>\n + Add new custom info request\n \n \n )}\n {!loading && !subMenu && !R.isEmpty(triggers) && (\n \n toggleWizard('newTrigger')()}>\n + Add new trigger\n \n \n )}\n \n {!loading && subMenu === 'customInfoRequests' && (\n \n )}\n {!loading && !subMenu && (\n \n )}\n {!loading && subMenu === 'advancedSettings' && (\n \n )}\n >\n )\n}\n\nexport default Triggers\n","import Triggers from './Triggers'\n\nexport default Triggers\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/key/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group\",\n transform: \"translate(0.500000, 0.500000)\",\n stroke: \"#FFFFFF\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n cx: 2.75,\n cy: 8.25,\n r: 2.75\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 5.04166667,\n y1: 5.95833333,\n x2: 11,\n y2: 0,\n id: \"Path-13\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 8.25,\n y1: 3.66666667,\n x2: 10.5416667,\n y2: 1.375,\n id: \"Path-13-Copy\",\n strokeWidth: 2,\n strokeLinejoin: \"round\"\n})));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/button/key/white\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.8c4085b7.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/key/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group\",\n transform: \"translate(0.500000, 0.500000)\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n cx: 2.75,\n cy: 8.25,\n r: 2.75\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 5.04166667,\n y1: 5.95833333,\n x2: 11,\n y2: 0,\n id: \"Path-13\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 8.25,\n y1: 3.66666667,\n x2: 10.5416667,\n y2: 1.375,\n id: \"Path-13-Copy\",\n strokeWidth: 2,\n strokeLinejoin: \"round\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/button/key/zodiac\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.e181d06a.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/lock/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Lock-Icon-White\",\n transform: \"translate(0.500000, 0.500000)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.98058644,2.48058644 C7.98058644,1.11059638 6.86999006,0 5.5,0 C4.13000994,0 3.01941356,1.11059638 3.01941356,2.48058644 C3.01941356,3.39391315 3.01941356,4.09482878 3.01941356,4.58333333 L7.98058644,4.58333333 C7.98058644,4.09482878 7.98058644,3.39391315 7.98058644,2.48058644 Z\",\n id: \"Lock\",\n stroke: \"#FFFFFF\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Body\",\n stroke: \"#FFFFFF\",\n strokeLinejoin: \"round\",\n x: 0,\n y: 4.58333333,\n width: 11,\n height: 6.41666667\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Key-Hole\",\n fill: \"#FFFFFF\",\n cx: 5.5,\n cy: 7.33333333,\n r: 1\n})));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/button/lock/white\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.9f2c5216.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/lock/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Lock-Icon-Zodiac\",\n transform: \"translate(0.500000, 0.500000)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.98058644,2.48058644 C7.98058644,1.11059638 6.86999006,0 5.5,0 C4.13000994,0 3.01941356,1.11059638 3.01941356,2.48058644 C3.01941356,3.39391315 3.01941356,4.09482878 3.01941356,4.58333333 L7.98058644,4.58333333 C7.98058644,4.09482878 7.98058644,3.39391315 7.98058644,2.48058644 Z\",\n id: \"Lock\",\n stroke: \"#1B2559\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Body\",\n stroke: \"#1B2559\",\n strokeLinejoin: \"round\",\n x: 0,\n y: 4.58333333,\n width: 11,\n height: 6.41666667\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Key-Hole\",\n fill: \"#1B2559\",\n cx: 5.5,\n cy: 7.33333333,\n r: 1\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/button/lock/zodiac\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.f3536991.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/user-role/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"User-Role-Icon-White\",\n transform: \"translate(2.500000, 0.500000)\",\n stroke: \"#FFFFFF\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.50008791,6.84274776 L5.5,11 L3.66666667,9.35927189 L1.83333333,11 L1.83223109,6.84216075 C2.37179795,7.15453375 2.99835187,7.33333333 3.66666667,7.33333333 C4.33456272,7.33333333 4.96075021,7.15475774 5.50008791,6.84274776 Z\",\n id: \"Bottom\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Top\",\n cx: 3.66666667,\n cy: 3.66666667,\n r: 3.66666667\n})));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/button/user-role/white\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.47196e40.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/user-role/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"User-Role-Icon-Zodiac\",\n transform: \"translate(2.500000, 0.500000)\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.50008791,6.84274776 L5.5,11 L3.66666667,9.35927189 L1.83333333,11 L1.83223109,6.84216075 C2.37179795,7.15453375 2.99835187,7.33333333 3.66666667,7.33333333 C4.33456272,7.33333333 4.96075021,7.15475774 5.50008791,6.84274776 Z\",\n id: \"Bottom\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Top\",\n cx: 3.66666667,\n cy: 3.66666667,\n r: 3.66666667\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/button/user-role/zodiac\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.71910a69.svg\";\nexport { ForwardRef as ReactComponent };","import {\n spacer,\n fontPrimary,\n fontSecondary,\n primaryColor,\n subheaderColor,\n errorColor\n} from 'src/styling/variables'\n\nconst styles = {\n footer: {\n display: 'flex',\n flexDirection: 'row',\n margin: [['auto', 0, spacer * 3, 0]]\n },\n modalTitle: {\n marginTop: -5,\n color: primaryColor,\n fontFamily: fontPrimary\n },\n modalLabel1: {\n marginTop: 20\n },\n modalLabel2: {\n marginTop: 40\n },\n inputLabel: {\n color: primaryColor,\n fontFamily: fontPrimary,\n fontSize: 24,\n marginLeft: 8,\n marginTop: 15\n },\n tableWidth: {\n width: 1132\n },\n radioGroup: {\n flexDirection: 'row',\n width: 500\n },\n radioLabel: {\n width: 150,\n height: 48\n },\n copyToClipboard: {\n marginLeft: 'auto',\n paddingTop: 7,\n marginRight: -5\n },\n chip: {\n backgroundColor: subheaderColor,\n fontFamily: fontPrimary,\n marginLeft: 10\n },\n info: {\n fontFamily: fontSecondary,\n textAlign: 'justify'\n },\n addressWrapper: {\n backgroundColor: subheaderColor,\n marginTop: 8,\n height: 35\n },\n address: {\n margin: `0px ${spacer * 2}px 0px ${spacer * 2}px`,\n paddingRight: -15\n },\n errorMessage: {\n fontFamily: fontSecondary,\n color: errorColor\n },\n codeContainer: {\n marginTop: 15,\n marginBottom: 15\n },\n form: {\n display: 'flex',\n flexDirection: 'column',\n height: '100%'\n },\n submit: {\n margin: [['auto', 0, 0, 'auto']]\n },\n error: {\n color: errorColor\n },\n link: {\n position: 'absolute',\n top: 10,\n left: 0,\n bottom: '-20px',\n right: '-20px',\n whiteSpace: 'nowrap',\n overflowX: 'auto',\n width: '92.5%'\n },\n linkWrapper: {\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n position: 'relative'\n },\n loginWrapper: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between'\n },\n username: {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n width: '100%'\n },\n roleSwitch: {\n marginLeft: 15\n },\n actionButtonWrapper: {\n display: 'flex',\n gap: 12\n },\n enterButton: {\n display: 'none'\n }\n}\n\nexport default styles\n","import { useLazyQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { Form, Formik } from 'formik'\nimport gql from 'graphql-tag'\nimport React, { useState } from 'react'\n\nimport Modal from 'src/components/Modal'\nimport { Button } from 'src/components/buttons'\nimport { CodeInput } from 'src/components/inputs/base'\nimport { Info2, P } from 'src/components/typography'\n\nimport styles from '../UserManagement.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst CONFIRM_2FA = gql`\n query confirm2FA($code: String!) {\n confirm2FA(code: $code)\n }\n`\n\nconst Input2FAModal = ({ showModal, handleClose, setConfirmation }) => {\n const classes = useStyles()\n\n const [twoFACode, setTwoFACode] = useState('')\n const [invalidCode, setInvalidCode] = useState(false)\n\n const handleCodeChange = value => {\n setTwoFACode(value)\n setInvalidCode(false)\n }\n\n const onContinue = () => {\n setConfirmation(twoFACode)\n setTwoFACode('')\n setInvalidCode(false)\n }\n\n const [confirm2FA, { error: queryError }] = useLazyQuery(CONFIRM_2FA, {\n onCompleted: ({ confirm2FA: success }) =>\n !success ? setInvalidCode(true) : onContinue()\n })\n\n const getErrorMsg = () => {\n if (queryError) return 'Internal server error'\n if (twoFACode.length !== 6 && invalidCode)\n return 'The code should have 6 characters!'\n if (invalidCode) return 'Code is invalid. Please try again.'\n return null\n }\n\n const handleSubmit = () => {\n if (twoFACode.length !== 6) {\n setInvalidCode(true)\n return\n }\n confirm2FA({ variables: { code: twoFACode } })\n }\n\n return (\n showModal && (\n \n Confirm action \n \n To make changes on this user, please confirm this action by entering\n your two-factor authentication code below.\n
\n {/* TODO: refactor the 2FA CodeInput to properly use Formik */}\n {}} initialValues={{}}>\n \n \n {getErrorMsg() && (\n {getErrorMsg()}
\n )}\n \n \n Confirm\n \n
\n \n )\n )\n}\n\nexport default Input2FAModal\n","import { useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport React, { useState } from 'react'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Modal from 'src/components/Modal'\nimport { Button } from 'src/components/buttons'\nimport { Info2, P } from 'src/components/typography'\n\nimport styles from '../UserManagement.styles'\n\nimport Input2FAModal from './Input2FAModal'\n\nconst CHANGE_USER_ROLE = gql`\n mutation changeUserRole(\n $confirmationCode: String\n $id: ID!\n $newRole: String!\n ) {\n changeUserRole(\n confirmationCode: $confirmationCode\n id: $id\n newRole: $newRole\n ) {\n id\n }\n }\n`\n\nconst useStyles = makeStyles(styles)\n\nconst ChangeRoleModal = ({ state, dispatch, user, requiresConfirmation }) => {\n const classes = useStyles()\n\n const [changeUserRole, { error }] = useMutation(CHANGE_USER_ROLE, {\n onCompleted: () => handleClose(),\n refetchQueries: () => ['users']\n })\n\n const [confirmation, setConfirmation] = useState(null)\n\n const submit = () => {\n changeUserRole({\n variables: {\n confirmationCode: confirmation,\n id: user.id,\n newRole: user.role === 'superuser' ? 'user' : 'superuser'\n }\n })\n }\n\n const handleClose = () => {\n setConfirmation(null)\n dispatch({\n type: 'close',\n payload: 'showRoleModal'\n })\n }\n\n return (\n (state.showRoleModal && requiresConfirmation && !confirmation && (\n \n )) ||\n (state.showRoleModal && (\n \n \n Change {user.username}'s role?\n \n \n You are about to alter {user.username}'s role. This will change this\n user's permission to access certain resources.\n
\n Do you wish to proceed?
\n \n {error && {error} }\n submit()}>\n Confirm\n \n
\n \n ))\n )\n}\n\nexport default ChangeRoleModal\n","const url = `https://${\n process.env.NODE_ENV === 'development'\n ? window.location.host\n : window.location.hostname\n}`\n\nconst urlResolver = content => `${url}${content}`\n\nexport { urlResolver }\n","import { useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport base64 from 'base-64'\nimport classnames from 'classnames'\nimport { Field, Form, Formik } from 'formik'\nimport gql from 'graphql-tag'\nimport React, { useState } from 'react'\nimport * as Yup from 'yup'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Modal from 'src/components/Modal'\nimport { Button } from 'src/components/buttons'\nimport { TextInput, RadioGroup } from 'src/components/inputs/formik'\nimport { H1, H3, Info2, P, Mono } from 'src/components/typography'\nimport CopyToClipboard from 'src/pages/Transactions/CopyToClipboard'\nimport { urlResolver } from 'src/utils/urlResolver'\n\nimport styles from '../UserManagement.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst CREATE_USER = gql`\n mutation createRegisterToken($username: String!, $role: String!) {\n createRegisterToken(username: $username, role: $role) {\n token\n expire\n }\n }\n`\n\nconst validationSchema = Yup.object().shape({\n username: Yup.string()\n .email('Username field should be in an email format!')\n .required('Username field is required!'),\n role: Yup.string().required('Role field is required!')\n})\n\nconst initialValues = {\n username: '',\n role: ''\n}\n\nconst radioOptions = [\n {\n code: 'user',\n display: 'Regular user'\n },\n {\n code: 'superuser',\n display: 'Superuser'\n }\n]\n\nconst getErrorMsg = (formikErrors, formikTouched, mutationError) => {\n if (!formikErrors || !formikTouched) return null\n if (mutationError) return 'Internal server error'\n if (formikErrors.username && formikTouched.username)\n return formikErrors.username\n return null\n}\n\nconst CreateUserModal = ({ state, dispatch }) => {\n const classes = useStyles()\n\n const [usernameField, setUsernameField] = useState('')\n const [createUserURL, setCreateUserURL] = useState(null)\n\n const handleClose = () => {\n setCreateUserURL(null)\n dispatch({\n type: 'close',\n payload: 'showCreateUserModal'\n })\n }\n\n const [createUser, { error }] = useMutation(CREATE_USER, {\n onCompleted: ({ createRegisterToken: token }) => {\n const queryParams =\n // Pazuz-created register tokens add a field to identify the creator\n process.env.REACT_APP_BUILD_TARGET === 'LAMASSU'\n ? `t=${token.token}`\n : `t=${token.token}&id=${base64.encode(usernameField)}`\n setCreateUserURL(urlResolver(`/register?${queryParams}`))\n }\n })\n\n const roleClass = (formikErrors, formikTouched) => ({\n [classes.error]: formikErrors.role && formikTouched.role\n })\n\n return (\n <>\n {state.showCreateUserModal && !createUserURL && (\n \n {\n setUsernameField(values.username)\n createUser({\n variables: { username: values.username, role: values.role }\n })\n }}>\n {({ errors, touched }) => (\n \n )}\n \n \n )}\n {state.showCreateUserModal && createUserURL && (\n \n \n Creating {usernameField}...\n \n \n Safely share this link with {usernameField} to finish the\n registration process.\n
\n \n \n \n \n {createUserURL}\n \n \n \n
\n \n )}\n >\n )\n}\n\nexport default CreateUserModal\n","import { useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport React, { useState } from 'react'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Modal from 'src/components/Modal'\nimport { Button } from 'src/components/buttons'\nimport { Info2, P } from 'src/components/typography'\n\nimport styles from '../UserManagement.styles'\n\nimport Input2FAModal from './Input2FAModal'\n\nconst ENABLE_USER = gql`\n mutation enableUser($confirmationCode: String, $id: ID!) {\n enableUser(confirmationCode: $confirmationCode, id: $id) {\n id\n }\n }\n`\n\nconst DISABLE_USER = gql`\n mutation disableUser($confirmationCode: String, $id: ID!) {\n disableUser(confirmationCode: $confirmationCode, id: $id) {\n id\n }\n }\n`\n\nconst useStyles = makeStyles(styles)\n\nconst EnableUserModal = ({ state, dispatch, user, requiresConfirmation }) => {\n const classes = useStyles()\n\n const [enableUser, { error: enableError }] = useMutation(ENABLE_USER, {\n onCompleted: () => handleClose(),\n refetchQueries: () => ['users']\n })\n\n const [disableUser, { error: disableError }] = useMutation(DISABLE_USER, {\n onCompleted: () => handleClose(),\n refetchQueries: () => ['users']\n })\n\n const [confirmation, setConfirmation] = useState(null)\n\n const disable = () => {\n disableUser({\n variables: {\n confirmationCode: confirmation,\n id: user.id\n }\n })\n }\n\n const enable = () => {\n enableUser({\n variables: {\n confirmationCode: confirmation,\n id: user.id\n }\n })\n }\n\n const submit = () => {\n user?.enabled ? disable() : enable()\n }\n\n const handleClose = () => {\n setConfirmation(null)\n dispatch({\n type: 'close',\n payload: 'showEnableUserModal'\n })\n }\n\n return (\n (state.showEnableUserModal && requiresConfirmation && !confirmation && (\n \n )) ||\n (state.showEnableUserModal && (\n \n {!user.enabled && (\n <>\n \n Enable {user.username}?\n \n \n You are about to enable {user.username} into the system,\n activating previous eligible sessions and grant permissions to\n access the system.\n
\n Do you wish to proceed?
\n >\n )}\n {user.enabled && (\n <>\n \n Disable {user.username}?\n \n \n You are about to disable {user.username} from the system,\n deactivating previous eligible sessions and removing permissions\n to access the system.\n
\n Do you wish to proceed?
\n >\n )}\n \n {disableError && {disableError} }\n {enableError && {enableError} }\n submit()}>\n Confirm\n \n
\n \n ))\n )\n}\n\nexport default EnableUserModal\n","import { makeStyles } from '@material-ui/core/styles'\nimport React from 'react'\n\nimport Modal from 'src/components/Modal'\nimport { Button } from 'src/components/buttons'\nimport { Info2, P } from 'src/components/typography'\n\nimport styles from '../UserManagement.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst ChangeRoleModal = ({ state, dispatch }) => {\n const classes = useStyles()\n\n const handleClose = () => {\n dispatch({\n type: 'close',\n payload: 'showFIDOModal'\n })\n }\n\n return (\n \n About FIDO authentication \n \n This feature is only available for websites with configured domains, and\n we detected that a domain is not configured at the moment.\n
\n \n Make sure that a domain is configured for this website and try again\n later.\n
\n \n handleClose()}>\n Confirm\n \n
\n \n )\n}\n\nexport default ChangeRoleModal\n","import { useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport React, { useEffect, useState } from 'react'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Modal from 'src/components/Modal'\nimport { Info2, P, Mono } from 'src/components/typography'\nimport CopyToClipboard from 'src/pages/Transactions/CopyToClipboard'\nimport { urlResolver } from 'src/utils/urlResolver'\n\nimport styles from '../UserManagement.styles'\n\nimport Input2FAModal from './Input2FAModal'\n\nconst CREATE_RESET_2FA_TOKEN = gql`\n mutation createReset2FAToken($confirmationCode: String, $userID: ID!) {\n createReset2FAToken(confirmationCode: $confirmationCode, userID: $userID) {\n token\n user_id\n expire\n }\n }\n`\n\nconst useStyles = makeStyles(styles)\n\nconst Reset2FAModal = ({ state, dispatch, user, requiresConfirmation }) => {\n const classes = useStyles()\n const [reset2FAUrl, setReset2FAUrl] = useState('')\n\n const [createReset2FAToken, { loading, error }] = useMutation(\n CREATE_RESET_2FA_TOKEN,\n {\n onCompleted: ({ createReset2FAToken: token }) => {\n setReset2FAUrl(urlResolver(`/reset2fa?t=${token.token}`))\n }\n }\n )\n\n const [confirmation, setConfirmation] = useState(null)\n\n useEffect(() => {\n state.showReset2FAModal &&\n (confirmation || !requiresConfirmation) &&\n createReset2FAToken({\n variables: {\n confirmationCode: confirmation,\n userID: user?.id\n }\n })\n }, [\n confirmation,\n createReset2FAToken,\n requiresConfirmation,\n state.showReset2FAModal,\n user?.id\n ])\n\n const handleClose = () => {\n setConfirmation(null)\n dispatch({\n type: 'close',\n payload: 'showReset2FAModal'\n })\n }\n\n return (\n (state.showReset2FAModal && requiresConfirmation && !confirmation && (\n \n )) ||\n (state.showReset2FAModal &&\n (confirmation || !requiresConfirmation) &&\n !loading && (\n \n \n Reset 2FA for {user.username}\n \n \n Safely share this link with {user.username} for a two-factor\n authentication reset.\n
\n {!error && (\n \n \n \n \n {reset2FAUrl}\n \n \n \n
\n )}\n {error && {error} }\n \n ))\n )\n}\n\nexport default Reset2FAModal\n","import { useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport React, { useEffect, useState } from 'react'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Modal from 'src/components/Modal'\nimport { Info2, P, Mono } from 'src/components/typography'\nimport CopyToClipboard from 'src/pages/Transactions/CopyToClipboard'\nimport { urlResolver } from 'src/utils/urlResolver'\n\nimport styles from '../UserManagement.styles'\n\nimport Input2FAModal from './Input2FAModal'\n\nconst CREATE_RESET_PASSWORD_TOKEN = gql`\n mutation createResetPasswordToken($confirmationCode: String, $userID: ID!) {\n createResetPasswordToken(\n confirmationCode: $confirmationCode\n userID: $userID\n ) {\n token\n user_id\n expire\n }\n }\n`\n\nconst useStyles = makeStyles(styles)\n\nconst ResetPasswordModal = ({\n state,\n dispatch,\n user,\n requiresConfirmation\n}) => {\n const classes = useStyles()\n const [resetPasswordUrl, setResetPasswordUrl] = useState('')\n\n const [createResetPasswordToken, { loading, error }] = useMutation(\n CREATE_RESET_PASSWORD_TOKEN,\n {\n onCompleted: ({ createResetPasswordToken: token }) => {\n setResetPasswordUrl(urlResolver(`/resetpassword?t=${token.token}`))\n }\n }\n )\n\n const [confirmation, setConfirmation] = useState(null)\n\n useEffect(() => {\n state.showResetPasswordModal &&\n (confirmation || !requiresConfirmation) &&\n createResetPasswordToken({\n variables: {\n confirmationCode: confirmation,\n userID: user?.id\n }\n })\n }, [\n confirmation,\n createResetPasswordToken,\n requiresConfirmation,\n state.showResetPasswordModal,\n user?.id\n ])\n\n const handleClose = () => {\n setConfirmation(null)\n dispatch({\n type: 'close',\n payload: 'showResetPasswordModal'\n })\n }\n\n return (\n (state.showResetPasswordModal && requiresConfirmation && !confirmation && (\n \n )) ||\n (state.showResetPasswordModal &&\n (confirmation || !requiresConfirmation) &&\n !loading && (\n \n \n Reset password for {user.username}\n \n \n Safely share this link with {user.username} for a password reset.\n
\n {!error && (\n \n \n \n \n {resetPasswordUrl}\n \n \n \n
\n )}\n {error && {error} }\n \n ))\n )\n}\n\nexport default ResetPasswordModal\n","import { useQuery, useMutation, useLazyQuery } from '@apollo/react-hooks'\nimport { makeStyles, Box, Chip } from '@material-ui/core'\nimport { startAttestation } from '@simplewebauthn/browser'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useReducer, useState, useContext } from 'react'\n\nimport AppContext from 'src/AppContext'\nimport { ActionButton, Link } from 'src/components/buttons'\nimport { Switch } from 'src/components/inputs'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport DataTable from 'src/components/tables/DataTable'\nimport { ReactComponent as WhiteKeyIcon } from 'src/styling/icons/button/key/white.svg'\nimport { ReactComponent as KeyIcon } from 'src/styling/icons/button/key/zodiac.svg'\nimport { ReactComponent as WhiteLockIcon } from 'src/styling/icons/button/lock/white.svg'\nimport { ReactComponent as LockIcon } from 'src/styling/icons/button/lock/zodiac.svg'\nimport { ReactComponent as WhiteUserRoleIcon } from 'src/styling/icons/button/user-role/white.svg'\nimport { ReactComponent as UserRoleIcon } from 'src/styling/icons/button/user-role/zodiac.svg'\nimport { IP_CHECK_REGEX } from 'src/utils/constants'\n\nimport styles from './UserManagement.styles'\nimport ChangeRoleModal from './modals/ChangeRoleModal'\nimport CreateUserModal from './modals/CreateUserModal'\nimport EnableUserModal from './modals/EnableUserModal'\nimport FIDOModal from './modals/FIDOModal'\nimport Reset2FAModal from './modals/Reset2FAModal'\nimport ResetPasswordModal from './modals/ResetPasswordModal'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_USERS = gql`\n query users {\n users {\n id\n username\n role\n enabled\n last_accessed\n last_accessed_from\n last_accessed_address\n }\n }\n`\n\nconst GENERATE_ATTESTATION = gql`\n query generateAttestationOptions($userID: ID!, $domain: String!) {\n generateAttestationOptions(userID: $userID, domain: $domain)\n }\n`\n\nconst VALIDATE_ATTESTATION = gql`\n mutation validateAttestation(\n $userID: ID!\n $attestationResponse: JSONObject!\n $domain: String!\n ) {\n validateAttestation(\n userID: $userID\n attestationResponse: $attestationResponse\n domain: $domain\n )\n }\n`\n\nconst initialState = {\n showCreateUserModal: false,\n showResetPasswordModal: false,\n showReset2FAModal: false,\n showRoleModal: false,\n showEnableUserModal: false\n}\n\nconst reducer = (_, action) => {\n const { type, payload } = action\n switch (type) {\n case 'close':\n return initialState\n case 'open':\n return { ...initialState, [payload]: true }\n default:\n return initialState\n }\n}\n\nconst roleMapper = {\n user: 'Regular',\n superuser: 'Superuser'\n}\n\nconst Users = () => {\n const classes = useStyles()\n const { userData } = useContext(AppContext)\n\n const { data: userResponse } = useQuery(GET_USERS)\n const [state, dispatch] = useReducer(reducer, initialState)\n\n const [userInfo, setUserInfo] = useState(null)\n\n const [validateAttestation] = useMutation(VALIDATE_ATTESTATION, {\n onCompleted: res => {\n // TODO: show a brief popup to have UX feedback?\n }\n })\n\n const [generateAttestationOptions] = useLazyQuery(GENERATE_ATTESTATION, {\n onCompleted: ({ generateAttestationOptions: options }) => {\n return startAttestation(options).then(res => {\n validateAttestation({\n variables: {\n userID: userInfo.id,\n attestationResponse: res,\n domain: window.location.hostname\n }\n })\n })\n }\n })\n\n const elements = [\n {\n header: 'Login',\n width: 307,\n textAlign: 'left',\n size: 'sm',\n view: u => {\n if (userData.id === u.id)\n return (\n \n {u.username} \n \n
\n )\n return {u.username} \n }\n },\n {\n header: 'Role',\n width: 160,\n textAlign: 'left',\n size: 'sm',\n view: u => (\n \n {roleMapper[u.role]} \n {\n setUserInfo(u)\n dispatch({\n type: 'open',\n payload: 'showRoleModal'\n })\n }}\n value={u.role === 'superuser'}\n />\n
\n )\n },\n {\n header: 'Actions',\n width: 565,\n textAlign: 'left',\n size: 'sm',\n view: u => {\n return (\n \n
{\n setUserInfo(u)\n dispatch({\n type: 'open',\n payload: 'showResetPasswordModal'\n })\n }}>\n Reset password\n \n
{\n setUserInfo(u)\n dispatch({\n type: 'open',\n payload: 'showReset2FAModal'\n })\n }}>\n Reset 2FA\n \n
{\n if (IP_CHECK_REGEX.test(window.location.hostname)) {\n dispatch({\n type: 'open',\n payload: 'showFIDOModal'\n })\n } else {\n setUserInfo(u)\n generateAttestationOptions({\n variables: {\n userID: u.id,\n domain: window.location.hostname\n }\n })\n }\n }}>\n Add FIDO\n \n
\n )\n }\n },\n {\n header: 'Enabled',\n width: 100,\n textAlign: 'center',\n size: 'sm',\n view: u => (\n {\n setUserInfo(u)\n dispatch({\n type: 'open',\n payload: 'showEnableUserModal'\n })\n }}\n value={u.enabled}\n />\n )\n }\n ]\n\n return (\n <>\n \n \n {\n dispatch({\n type: 'open',\n payload: 'showCreateUserModal'\n })\n }}>\n Add new user\n \n \n \n \n \n \n \n \n \n >\n )\n}\n\nexport default Users\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport gql from 'graphql-tag'\nimport { utils as coinUtils } from '@lamassu/coins'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport Section from 'src/components/layout/Section'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nimport {\n AdvancedWalletSchema,\n getAdvancedWalletElements,\n getAdvancedWalletElementsOverrides,\n OverridesDefaults,\n OverridesSchema\n} from './helper'\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\nconst GET_INFO = gql`\n query getData {\n config\n cryptoCurrencies {\n code\n display\n }\n }\n`\n\nconst AdvancedWallet = () => {\n const ADVANCED = namespaces.ADVANCED\n const CRYPTOCURRENCY_KEY = 'cryptoCurrency'\n const SCREEN_KEY = namespaces.WALLETS\n const { data } = useQuery(GET_INFO)\n\n const [isEditingDefault, setEditingDefault] = useState(false)\n const [isEditingOverrides, setEditingOverrides] = useState(false)\n\n const [saveConfig, { error }] = useMutation(SAVE_CONFIG, {\n refetchQueries: () => ['getData']\n })\n\n const save = rawConfig => {\n const config = toNamespace(SCREEN_KEY)(\n toNamespace(ADVANCED)(rawConfig.wallets[0])\n )\n return saveConfig({ variables: { config } })\n }\n\n const saveOverrides = rawConfig => {\n const config = toNamespace(SCREEN_KEY)(toNamespace(ADVANCED)(rawConfig))\n return saveConfig({ variables: { config } })\n }\n\n const onEditingDefault = (it, editing) => setEditingDefault(editing)\n const onEditingOverrides = (it, editing) => setEditingOverrides(editing)\n\n const cryptoCurrencies = data?.cryptoCurrencies ?? []\n\n const AdvancedWalletSettings = fromNamespace(ADVANCED)(\n fromNamespace(SCREEN_KEY)(data?.config)\n )\n\n const AdvancedWalletSettingsOverrides = AdvancedWalletSettings.overrides ?? []\n\n const overridenCryptos = R.map(R.prop(CRYPTOCURRENCY_KEY))(\n AdvancedWalletSettingsOverrides\n )\n const suggestionFilter = R.filter(\n it => !R.contains(it.code, overridenCryptos)\n )\n const coinSuggestions = suggestionFilter(cryptoCurrencies)\n\n const findSuggestion = it => {\n const coin = R.compose(R.find(R.propEq('code', it?.cryptoCurrency)))(\n cryptoCurrencies\n )\n return coin ? [coin] : []\n }\n\n return (\n <>\n \n !AdvancedWalletSchema.isValidSync(it)}\n inialValues={R.of(AdvancedWalletSettings)}\n validationSchema={AdvancedWalletSchema}\n elements={getAdvancedWalletElements(\n coinUtils,\n AdvancedWalletSettings\n )}\n setEditing={onEditingDefault}\n forceDisable={isEditingOverrides}\n />\n \n \n >\n )\n}\n\nexport default AdvancedWallet\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport Modal from 'src/components/Modal'\nimport { NamespacedTable as EditableTable } from 'src/components/editableTable'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport FormRenderer from 'src/pages/Services/FormRenderer'\nimport schemas from 'src/pages/Services/schemas'\nimport { ReactComponent as ReverseSettingsIcon } from 'src/styling/icons/circle buttons/settings/white.svg'\nimport { ReactComponent as SettingsIcon } from 'src/styling/icons/circle buttons/settings/zodiac.svg'\nimport { fromNamespace, toNamespace } from 'src/utils/config'\n\nimport AdvancedWallet from './AdvancedWallet'\nimport styles from './Wallet.styles.js'\nimport Wizard from './Wizard'\nimport { WalletSchema, getElements } from './helper'\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject, $accounts: JSONObject) {\n saveConfig(config: $config)\n saveAccounts(accounts: $accounts)\n }\n`\n\nconst SAVE_ACCOUNT = gql`\n mutation Save($accounts: JSONObject) {\n saveAccounts(accounts: $accounts)\n }\n`\n\nconst GET_INFO = gql`\n query getData {\n config\n accounts\n accountsConfig {\n code\n display\n class\n cryptos\n deprecated\n }\n cryptoCurrencies {\n code\n display\n }\n }\n`\n\nconst LOCALE = 'locale'\n\nconst useStyles = makeStyles(styles)\n\nconst Wallet = ({ name: SCREEN_KEY }) => {\n const classes = useStyles()\n const [editingSchema, setEditingSchema] = useState(null)\n const [onChangeFunction, setOnChangeFunction] = useState(null)\n const [wizard, setWizard] = useState(false)\n const [advancedSettings, setAdvancedSettings] = useState(false)\n const { data } = useQuery(GET_INFO)\n\n const [saveConfig, { error }] = useMutation(SAVE_CONFIG, {\n onCompleted: () => setWizard(false),\n refetchQueries: () => ['getData']\n })\n\n const [saveAccount] = useMutation(SAVE_ACCOUNT, {\n onCompleted: () => setEditingSchema(null),\n refetchQueries: () => ['getData']\n })\n\n const save = (rawConfig, accounts) => {\n const config = toNamespace(SCREEN_KEY)(rawConfig)\n return saveConfig({ variables: { config, accounts } })\n }\n\n const fiatCurrency =\n data?.config && fromNamespace(LOCALE)(data.config).fiatCurrency\n\n const config = data?.config && fromNamespace(SCREEN_KEY)(data.config)\n const accountsConfig = data?.accountsConfig\n const cryptoCurrencies = data?.cryptoCurrencies ?? []\n const accounts = data?.accounts ?? []\n\n const onChange = (previous, current, setValue) => {\n if (!current) return setValue(current)\n\n if (!accounts[current] && schemas[current]) {\n setEditingSchema(schemas[current])\n setOnChangeFunction(() => () => setValue(current))\n return\n }\n\n setValue(current)\n }\n\n const shouldOverrideEdit = it => {\n const namespaced = fromNamespace(it)(config)\n return !WalletSchema.isValidSync(namespaced)\n }\n\n const wizardSave = it =>\n saveAccount({\n variables: { accounts: { [editingSchema.code]: it } }\n }).then(it => {\n onChangeFunction()\n setOnChangeFunction(null)\n return it\n })\n\n return (\n <>\n \n \n
\n {!advancedSettings && (\n <>\n !WalletSchema.isValidSync(it)}\n enableEdit\n shouldOverrideEdit={shouldOverrideEdit}\n editOverride={setWizard}\n editWidth={174}\n save={save}\n validationSchema={WalletSchema}\n elements={getElements(cryptoCurrencies, accountsConfig, onChange)}\n />\n {wizard && (\n setWizard(false)}\n save={save}\n error={error?.message}\n cryptoCurrencies={cryptoCurrencies}\n fiatCurrency={fiatCurrency}\n userAccounts={data?.config?.accounts}\n accounts={accounts}\n accountsConfig={accountsConfig}\n />\n )}\n {editingSchema && (\n setEditingSchema(null)}\n open={true}>\n \n \n )}\n >\n )}\n {advancedSettings && }\n >\n )\n}\n\nexport default Wallet\n","export default {\n header: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between'\n }\n}\n","import React from 'react'\nimport { Redirect } from 'react-router-dom'\n\nimport Analytics from 'src/pages/Analytics/Analytics'\nimport Blacklist from 'src/pages/Blacklist'\nimport Cashout from 'src/pages/Cashout'\nimport Commissions from 'src/pages/Commissions'\nimport { Customers, CustomerProfile } from 'src/pages/Customers'\nimport Funding from 'src/pages/Funding'\nimport Locales from 'src/pages/Locales'\nimport IndividualDiscounts from 'src/pages/LoyaltyPanel/IndividualDiscounts'\nimport PromoCodes from 'src/pages/LoyaltyPanel/PromoCodes'\nimport MachineLogs from 'src/pages/MachineLogs'\nimport CashCassettes from 'src/pages/Maintenance/CashCassettes'\nimport MachineStatus from 'src/pages/Maintenance/MachineStatus'\nimport Notifications from 'src/pages/Notifications/Notifications'\nimport CoinAtmRadar from 'src/pages/OperatorInfo/CoinATMRadar'\nimport ContactInfo from 'src/pages/OperatorInfo/ContactInfo'\nimport ReceiptPrinting from 'src/pages/OperatorInfo/ReceiptPrinting'\nimport SMSNotices from 'src/pages/OperatorInfo/SMSNotices/SMSNotices'\nimport TermsConditions from 'src/pages/OperatorInfo/TermsConditions'\nimport ServerLogs from 'src/pages/ServerLogs'\nimport Services from 'src/pages/Services/Services'\nimport SessionManagement from 'src/pages/SessionManagement/SessionManagement'\nimport Transactions from 'src/pages/Transactions/Transactions'\nimport Triggers from 'src/pages/Triggers'\nimport UserManagement from 'src/pages/UserManagement/UserManagement'\nimport WalletSettings from 'src/pages/Wallet/Wallet'\nimport { namespaces } from 'src/utils/config'\n\nimport { ROLES } from './utils'\n\nconst getLamassuRoutes = () => [\n {\n key: 'transactions',\n label: 'Transactions',\n route: '/transactions',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: Transactions\n },\n {\n key: 'maintenance',\n label: 'Maintenance',\n route: '/maintenance',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n get component() {\n return () => \n },\n children: [\n {\n key: 'cash_cassettes',\n label: 'Cash Cassettes',\n route: '/maintenance/cash-cassettes',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: CashCassettes\n },\n {\n key: 'funding',\n label: 'Funding',\n route: '/maintenance/funding',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: Funding\n },\n {\n key: 'logs',\n label: 'Machine Logs',\n route: '/maintenance/logs',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: MachineLogs\n },\n {\n key: 'machine-status',\n label: 'Machine Status',\n route: '/maintenance/machine-status',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: MachineStatus\n },\n {\n key: 'server-logs',\n label: 'Server',\n route: '/maintenance/server-logs',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: ServerLogs\n }\n ]\n },\n {\n key: 'analytics',\n label: 'Analytics',\n route: '/analytics',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: Analytics\n },\n {\n key: 'settings',\n label: 'Settings',\n route: '/settings',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n get component() {\n return () => \n },\n children: [\n {\n key: namespaces.COMMISSIONS,\n label: 'Commissions',\n route: '/settings/commissions',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: Commissions\n },\n {\n key: namespaces.LOCALE,\n label: 'Locales',\n route: '/settings/locale',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: Locales\n },\n {\n key: namespaces.CASH_OUT,\n label: 'Cash-out',\n route: '/settings/cash-out',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: Cashout\n },\n {\n key: namespaces.NOTIFICATIONS,\n label: 'Notifications',\n route: '/settings/notifications',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: Notifications\n },\n {\n key: 'services',\n label: '3rd Party Services',\n route: '/settings/3rd-party-services',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: Services\n },\n {\n key: namespaces.WALLETS,\n label: 'Wallet',\n route: '/settings/wallet-settings',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: WalletSettings\n },\n {\n key: namespaces.OPERATOR_INFO,\n label: 'Operator Info',\n route: '/settings/operator-info',\n title: 'Operator Information',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n get component() {\n return () => (\n \n )\n },\n children: [\n {\n key: 'contact-info',\n label: 'Contact information',\n route: '/settings/operator-info/contact-info',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: ContactInfo\n },\n {\n key: 'receipt-printing',\n label: 'Receipt',\n route: '/settings/operator-info/receipt-printing',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: ReceiptPrinting\n },\n {\n key: 'sms-notices',\n label: 'SMS notices',\n route: '/settings/operator-info/sms-notices',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: SMSNotices\n },\n {\n key: 'coin-atm-radar',\n label: 'Coin ATM Radar',\n route: '/settings/operator-info/coin-atm-radar',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: CoinAtmRadar\n },\n {\n key: 'terms-conditions',\n label: 'Terms & Conditions',\n route: '/settings/operator-info/terms-conditions',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: TermsConditions\n }\n ]\n }\n ]\n },\n {\n key: 'compliance',\n label: 'Compliance',\n route: '/compliance',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n get component() {\n return () => \n },\n children: [\n {\n key: 'triggers',\n label: 'Triggers',\n route: '/compliance/triggers',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: Triggers\n },\n {\n key: 'customers',\n label: 'Customers',\n route: '/compliance/customers',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: Customers\n },\n {\n key: 'blacklist',\n label: 'Blacklist',\n route: '/compliance/blacklist',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: Blacklist\n },\n {\n key: 'loyalty',\n label: 'Loyalty',\n route: '/compliance/loyalty',\n title: 'Loyalty Panel',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n get component() {\n return () => (\n \n )\n },\n children: [\n {\n key: 'individual-discounts',\n label: 'Individual Discounts',\n route: '/compliance/loyalty/individual-discounts',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: IndividualDiscounts\n },\n {\n key: 'promo-codes',\n label: 'Promo Codes',\n route: '/compliance/loyalty/codes',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: PromoCodes\n }\n ]\n },\n {\n key: 'customer',\n route: '/compliance/customer/:id',\n allowedRoles: [ROLES.USER, ROLES.SUPERUSER],\n component: CustomerProfile\n }\n ]\n },\n {\n key: 'system',\n label: 'System',\n route: '/system',\n allowedRoles: [ROLES.SUPERUSER],\n get component() {\n return () => \n },\n children: [\n {\n key: 'user-management',\n label: 'User Management',\n route: '/system/user-management',\n allowedRoles: [ROLES.SUPERUSER],\n component: UserManagement\n },\n {\n key: 'session-management',\n label: 'Session Management',\n route: '/system/session-management',\n allowedRoles: [ROLES.SUPERUSER],\n component: SessionManagement\n }\n ]\n }\n]\n\nexport default getLamassuRoutes\n","import { offColor } from 'src/styling/variables'\n\nconst styles = ({ numberOfChips }) => ({\n totalAssetWrapper: {\n display: 'flex',\n flexDirection: 'row'\n },\n totalAssetFieldWrapper: {\n display: 'flex',\n flexDirection: 'column'\n },\n fieldHeader: {\n color: offColor,\n marginBottom: 5\n },\n fieldValue: {\n fontSize: 36\n },\n fieldCurrency: {\n fontSize: 20,\n alignSelf: 'flex-end',\n margin: [[0, 0, 5, 5]]\n },\n separator: {\n fontSize: 32,\n alignSelf: 'center',\n margin: [[25, 20, 0, 20]]\n },\n walletChipList: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap'\n },\n walletChipWrapper: {\n flexGrow: 0,\n flexShrink: 0,\n flexBasis: `16.66667%`,\n '&:nth-child(6n+1)': {\n '& > div': {\n margin: [[0, 10, 0, 0]]\n }\n },\n '&:nth-child(6n)': {\n '& > div': {\n margin: [[0, 0, 0, 10]]\n }\n },\n margin: [[10, 0]]\n },\n walletChip: {\n height: 200,\n margin: [[0, 10]]\n },\n walletHeader: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n height: 50\n },\n logo: {\n transform: `scale(0.4, 0.4)`,\n height: 80,\n maxWidth: 110,\n margin: [[-14, 0, 0, -26]]\n },\n zecLogo: {\n margin: [[-15, 0, 0, -10]]\n },\n bchLogo: {\n margin: [[-12, 0, 0, -18]]\n },\n hedgedText: {\n color: offColor,\n margin: [[13, 12, 0, 0]]\n },\n walletValueWrapper: {\n display: 'flex',\n flexDirection: 'column',\n margin: [[0, 0, 0, 15]]\n },\n walletValue: {\n fontSize: 18,\n margin: [[0, 0, 10, 0]]\n },\n walletChipTitle: {\n marginTop: 50\n }\n})\n\nexport default styles\n","import { offColor } from 'src/styling/variables'\n\nconst styles = () => ({\n totalAssetWrapper: {\n display: 'flex',\n flexDirection: 'row'\n },\n totalAssetFieldWrapper: {\n display: 'flex',\n flexDirection: 'column'\n },\n fieldHeader: {\n color: offColor,\n marginBottom: 5\n },\n fieldValue: {\n fontSize: 36\n },\n fieldCurrency: {\n fontSize: 20,\n alignSelf: 'flex-end',\n margin: [[0, 0, 5, 5]]\n },\n separator: {\n fontSize: 32,\n alignSelf: 'center',\n margin: [[25, 20, 0, 20]]\n },\n tableTitle: {\n marginTop: 35\n },\n operation: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center'\n }\n})\n\nexport default styles\n","import { useQuery } from '@apollo/react-hooks'\nimport { Paper } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useContext } from 'react'\n\nimport AppContext from 'src/AppContext'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport { H3, Info2, Label2, Label3, P } from 'src/components/typography'\nimport { ReactComponent as BitcoinLogo } from 'src/styling/logos/icon-bitcoin-colour.svg'\nimport { ReactComponent as BitcoinCashLogo } from 'src/styling/logos/icon-bitcoincash-colour.svg'\nimport { ReactComponent as DashLogo } from 'src/styling/logos/icon-dash-colour.svg'\nimport { ReactComponent as EthereumLogo } from 'src/styling/logos/icon-ethereum-colour.svg'\nimport { ReactComponent as LitecoinLogo } from 'src/styling/logos/icon-litecoin-colour.svg'\nimport { ReactComponent as ZCashLogo } from 'src/styling/logos/icon-zcash-colour.svg'\nimport { numberToFiatAmount } from 'src/utils/number'\n\nimport styles from './ATMWallet.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_OPERATOR_BY_USERNAME = gql`\n query operatorByUsername($username: String) {\n operatorByUsername(username: $username) {\n id\n entityId\n name\n fiatBalances\n cryptoBalances\n machines\n joined\n assetValue\n preferredFiatCurrency\n contactInfo {\n name\n email\n }\n fundings {\n id\n origin\n destination\n fiatAmount\n fiatBalanceAfter\n fiatCurrency\n created\n status\n description\n }\n }\n }\n`\n\nconst CHIPS_PER_ROW = 6\n\nconst Assets = ({ balance, wallets, currency }) => {\n const classes = useStyles({ numberOfChips: CHIPS_PER_ROW })\n\n const walletFiatSum = () => {\n return R.sum(R.map(it => it.fiatValue, wallets))\n }\n\n return (\n \n
\n
Available balance
\n
\n \n {numberToFiatAmount(balance)}\n \n \n {R.toUpper(currency)}\n \n
\n
\n
+ \n
\n
Total balance in wallets
\n
\n \n {numberToFiatAmount(walletFiatSum())}\n \n \n {R.toUpper(currency)}\n \n
\n
\n
= \n
\n
Total assets
\n
\n \n {numberToFiatAmount(balance)}\n \n \n {R.toUpper(currency)}\n \n
\n
\n
\n )\n}\n\nconst WalletInfoChip = ({ wallet, currency }) => {\n const classes = useStyles({ numberOfChips: CHIPS_PER_ROW })\n\n const getLogo = cryptoCode => {\n switch (cryptoCode) {\n case 'BTC':\n return \n case 'ETH':\n return \n case 'LTC':\n return \n case 'ZEC':\n return (\n \n )\n case 'BCH':\n return (\n \n )\n case 'DASH':\n return \n default:\n return \n }\n }\n\n return (\n \n
\n \n {getLogo(wallet.cryptoCode)}\n \n {wallet.isHedged ? 'Hedged' : 'Not hedged'}\n \n
\n \n {wallet.name} value \n \n {numberToFiatAmount(wallet.amount.toFixed(1))} {wallet.cryptoCode}\n \n Hedged value \n \n {numberToFiatAmount(wallet.fiatValue)} {currency}\n \n
\n \n
\n )\n}\n\nconst ATMWallet = () => {\n const classes = useStyles({ numberOfChips: CHIPS_PER_ROW })\n const { userData } = useContext(AppContext)\n\n const { data, loading } = useQuery(GET_OPERATOR_BY_USERNAME, {\n context: { clientName: 'pazuz' },\n variables: { username: userData?.username }\n })\n\n const operatorData = R.path(['operatorByUsername'], data)\n\n const wallets = [\n {\n cryptoCode: 'BTC',\n name: 'Bitcoin',\n amount: operatorData?.cryptoBalances.xbt ?? 0,\n fiatValue: 0,\n isHedged: true\n },\n {\n cryptoCode: 'ETH',\n name: 'Ethereum',\n amount: operatorData?.cryptoBalances.eth ?? 0,\n fiatValue: 0,\n isHedged: true\n },\n {\n cryptoCode: 'LTC',\n name: 'Litecoin',\n amount: operatorData?.cryptoBalances.ltc ?? 0,\n fiatValue: 0,\n isHedged: true\n },\n {\n cryptoCode: 'ZEC',\n name: 'Z-Cash',\n amount: operatorData?.cryptoBalances.zec ?? 0,\n fiatValue: 0,\n isHedged: false\n },\n {\n cryptoCode: 'BCH',\n name: 'Bitcoin Cash',\n amount: operatorData?.cryptoBalances.bch ?? 0,\n fiatValue: 0,\n isHedged: true\n },\n {\n cryptoCode: 'DASH',\n name: 'Dash',\n amount: operatorData?.cryptoBalances.dash ?? 0,\n fiatValue: 0,\n isHedged: false\n }\n ]\n\n return (\n !loading && (\n <>\n \n \n ATM Wallets \n \n {R.map(\n it => (\n \n ),\n wallets\n )}\n
\n >\n )\n )\n}\n\nexport default ATMWallet\n","import {\n white,\n offColor,\n backgroundColor,\n subheaderColor\n} from 'src/styling/variables'\n\nconst styles = () => ({\n card: {\n wordWrap: 'break-word',\n boxShadow: '0 0 4px 0 rgba(0, 0, 0, 0.08)',\n borderRadius: 12,\n padding: 24,\n backgroundColor: white\n },\n h4: {\n marginTop: 0\n },\n label: {\n margin: 0,\n color: offColor\n },\n asset: {\n float: 'left'\n },\n amount: {\n float: 'right'\n },\n row: {\n backgroundColor: backgroundColor,\n borderBottom: 'none'\n },\n totalRow: {\n backgroundColor: subheaderColor,\n borderBottom: 'none'\n },\n leftSide: {\n margin: [[0, 10, 20, 0]]\n },\n rightSide: {\n margin: [[0, 0, 0, 10]]\n }\n})\n\nexport default styles\n","import { useQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useContext } from 'react'\n\nimport AppContext from 'src/AppContext'\nimport { HoverableTooltip } from 'src/components/Tooltip'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport DataTable from 'src/components/tables/DataTable'\nimport { H4, Info2, P } from 'src/components/typography'\nimport { numberToFiatAmount } from 'src/utils/number'\nimport { formatDate } from 'src/utils/timezones'\n\nimport styles from './Accounting.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_OPERATOR_BY_USERNAME = gql`\n query operatorByUsername($username: String) {\n operatorByUsername(username: $username) {\n id\n entityId\n name\n fiatBalances\n cryptoBalances\n machines\n joined\n assetValue\n preferredFiatCurrency\n contactInfo {\n name\n email\n }\n fundings {\n id\n origin\n destination\n fiatAmount\n fiatBalanceAfter\n fiatCurrency\n created\n status\n description\n }\n }\n }\n`\n\nconst GET_DATA = gql`\n query getData {\n config\n }\n`\n\nconst Assets = ({ balance, hedgingReserve, currency }) => {\n const classes = useStyles()\n\n return (\n \n
\n
Pazuz fiat balance
\n
\n \n {numberToFiatAmount(balance)}\n \n \n {R.toUpper(currency)}\n \n
\n
\n
- \n
\n
Hedging reserve
\n
\n \n {numberToFiatAmount(hedgingReserve)}\n \n \n {R.toUpper(currency)}\n \n
\n
\n
= \n
\n
Available balance
\n
\n \n {numberToFiatAmount(balance - hedgingReserve)}\n \n \n {R.toUpper(currency)}\n \n
\n
\n
\n )\n}\n\nconst Accounting = () => {\n const classes = useStyles()\n const { userData } = useContext(AppContext)\n\n const { data: opData, loading: operatorLoading } = useQuery(\n GET_OPERATOR_BY_USERNAME,\n {\n context: { clientName: 'pazuz' },\n variables: { username: userData?.username }\n }\n )\n\n const { data: configResponse, loading: configLoading } = useQuery(GET_DATA)\n const timezone = R.path(['config', 'locale_timezone'], configResponse)\n\n const loading = operatorLoading || configLoading\n\n const operatorData = R.path(['operatorByUsername'], opData)\n\n const elements = [\n {\n header: 'Operation',\n width: 500,\n size: 'sm',\n textAlign: 'left',\n view: it => {\n return (\n \n {it.description}\n {!!it.extraInfo && (\n \n {it.extraInfo}
\n \n )}\n \n )\n }\n },\n {\n header: 'Amount',\n width: 147,\n size: 'sm',\n textAlign: 'right',\n view: it =>\n `${numberToFiatAmount(it.fiatAmount)} ${R.toUpper(it.fiatCurrency)}`\n },\n {\n header: 'Balance after operation',\n width: 250,\n size: 'sm',\n textAlign: 'right',\n view: it =>\n `${numberToFiatAmount(it.fiatBalanceAfter)} ${R.toUpper(\n it.fiatCurrency\n )}`\n },\n {\n header: 'Date',\n width: 150,\n size: 'sm',\n textAlign: 'right',\n view: it => formatDate(it.created, timezone, 'yyyy-MM-dd')\n },\n {\n header: 'Time',\n width: 150,\n size: 'sm',\n textAlign: 'right',\n view: it => formatDate(it.created, timezone, 'yyyy-MM-dd')\n }\n ]\n\n return (\n <>\n \n \n Fiat balance history \n \n >\n )\n}\n\nexport default Accounting\n","import { useQuery } from '@apollo/react-hooks'\nimport Grid from '@material-ui/core/Grid'\nimport Table from '@material-ui/core/Table'\nimport TableBody from '@material-ui/core/TableBody'\nimport TableCell from '@material-ui/core/TableCell'\nimport TableContainer from '@material-ui/core/TableContainer'\nimport TableHead from '@material-ui/core/TableHead'\nimport TableRow from '@material-ui/core/TableRow'\nimport { makeStyles, withStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useContext } from 'react'\n\nimport AppContext from 'src/AppContext'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport { H4, Label2, P, Info2 } from 'src/components/typography'\nimport { numberToFiatAmount } from 'src/utils/number'\n\nimport styles from './Assets.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_OPERATOR_BY_USERNAME = gql`\n query operatorByUsername($username: String) {\n operatorByUsername(username: $username) {\n id\n entityId\n name\n fiatBalances\n cryptoBalances\n machines\n joined\n assetValue\n preferredFiatCurrency\n contactInfo {\n name\n email\n }\n fundings {\n id\n origin\n destination\n fiatAmount\n fiatBalanceAfter\n fiatCurrency\n created\n status\n description\n }\n }\n }\n`\n\nconst cellStyling = {\n borderBottom: '4px solid white',\n padding: 0,\n paddingLeft: 20,\n paddingRight: 20\n}\n\nconst Cell = withStyles({\n root: cellStyling\n})(TableCell)\n\nconst HeaderCell = withStyles({\n root: {\n ...cellStyling,\n backgroundColor: 'white'\n }\n})(TableCell)\n\nconst AssetsAmountTable = ({ title, data = [], numToRender }) => {\n const classes = useStyles()\n\n const totalAmount = R.compose(R.sum, R.map(R.path(['amount'])))(data) ?? 0\n const currency = data[0]?.currency ?? ''\n const selectAmountPrefix = it =>\n it.direction === 'in' ? '+' : R.isNil(it.direction) ? '' : '-'\n\n return (\n <>\n \n {title} \n \n \n \n \n \n \n Asset \n
\n \n \n \n Amount \n
\n \n \n \n \n {data?.map((asset, idx) => {\n if (!(idx < numToRender)) return <>>\n return (\n \n | \n {asset.display} \n | \n \n {`${selectAmountPrefix(asset)}\n ${numberToFiatAmount(Math.abs(asset.amount))} ${\n asset.currency\n }`} \n | \n \n )\n })}\n \n \n {`Total ${R.toLower(title)}`} \n | \n \n {`${numberToFiatAmount(\n totalAmount\n )} ${currency}`} \n | \n \n \n
\n \n \n >\n )\n}\n\nconst Assets = () => {\n const classes = useStyles()\n const { userData } = useContext(AppContext)\n\n const { data, loading } = useQuery(GET_OPERATOR_BY_USERNAME, {\n context: { clientName: 'pazuz' },\n variables: { username: userData?.username }\n })\n\n const operatorData = R.path(['operatorByUsername'], data)\n\n const balanceData = [\n {\n id: 'fiatBalance',\n display: 'Fiat balance',\n amount:\n operatorData?.fiatBalances[operatorData?.preferredFiatCurrency] ?? 0,\n currency: R.toUpper(operatorData?.preferredFiatCurrency ?? ''),\n class: 'Available balance'\n },\n {\n id: 'hedgingReserve',\n display: 'Hedging reserve',\n amount:\n operatorData?.fiatBalances[operatorData?.preferredFiatCurrency] ?? 0,\n currency: R.toUpper(operatorData?.preferredFiatCurrency ?? ''),\n class: 'Available balance',\n direction: 'out'\n }\n ]\n\n const walletData = [\n {\n id: 'hedgedWalletAssets',\n display: 'Hedged wallet assets',\n amount: 0,\n currency: R.toUpper(operatorData?.preferredFiatCurrency ?? ''),\n class: 'Wallet assets',\n direction: 'in'\n },\n {\n id: 'unhedgedWalletAssets',\n display: 'Unhedged wallet assets',\n amount: 0,\n currency: R.toUpper(operatorData?.preferredFiatCurrency ?? ''),\n class: 'Wallet assets',\n direction: 'in'\n }\n ]\n\n const totalData = [\n {\n id: 'fiatBalance',\n display: 'Fiat balance',\n amount:\n operatorData?.fiatBalances[operatorData?.preferredFiatCurrency] ?? 0,\n currency: R.toUpper(operatorData?.preferredFiatCurrency ?? '')\n },\n {\n id: 'hedgingReserve',\n display: 'Hedging reserve',\n amount: 0,\n currency: R.toUpper(operatorData?.preferredFiatCurrency ?? ''),\n direction: 'out'\n },\n {\n id: 'hedgedWalletAssets',\n display: 'Market value of hedged wallet assets',\n amount: 0,\n currency: R.toUpper(operatorData?.preferredFiatCurrency ?? ''),\n direction: 'in'\n },\n {\n id: 'unhedgedWalletAssets',\n display: 'Unhedged wallet assets',\n amount: 0,\n currency: R.toUpper(operatorData?.preferredFiatCurrency ?? ''),\n direction: 'in'\n }\n ]\n\n return (\n !loading && (\n <>\n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n >\n )\n )\n}\n\nexport default Assets\n","import Fade from '@material-ui/core/Fade'\nimport Slide from '@material-ui/core/Slide'\nimport { makeStyles } from '@material-ui/core/styles'\nimport * as R from 'ramda'\nimport React, { useContext } from 'react'\nimport {\n matchPath,\n Redirect,\n Switch,\n useHistory,\n useLocation\n} from 'react-router-dom'\n\nimport AppContext from 'src/AppContext'\nimport Login from 'src/pages/Authentication/Login'\nimport Register from 'src/pages/Authentication/Register'\nimport Reset2FA from 'src/pages/Authentication/Reset2FA'\nimport ResetPassword from 'src/pages/Authentication/ResetPassword'\nimport Dashboard from 'src/pages/Dashboard'\nimport Machines from 'src/pages/Machines'\nimport Wizard from 'src/pages/Wizard'\n\nimport PrivateRoute from './PrivateRoute'\nimport PublicRoute from './PublicRoute'\nimport getLamassuRoutes from './lamassu.routes'\nimport getPazuzRoutes from './pazuz.routes'\n\nconst useStyles = makeStyles({\n wrapper: {\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n height: '100%'\n }\n})\n\nconst getTree = () => {\n const buildTarget = process.env.REACT_APP_BUILD_TARGET\n\n if (buildTarget === 'LAMASSU') {\n return getLamassuRoutes()\n }\n\n if (buildTarget === 'PAZUZ') {\n return getPazuzRoutes()\n }\n}\n\nconst tree = getTree()\n\nconst map = R.map(R.when(R.has('children'), R.prop('children')))\nconst mappedRoutes = R.compose(R.flatten, map)(tree)\nconst parentRoutes = R.filter(R.has('children'))(mappedRoutes).concat(\n R.filter(R.has('children'))(tree)\n)\nconst leafRoutes = R.compose(R.flatten, map)(mappedRoutes)\n\nconst flattened = R.concat(leafRoutes, parentRoutes)\n\nconst hasSidebar = route =>\n R.any(r => r.route === route)(\n R.compose(\n R.flatten,\n R.map(R.prop('children')),\n R.filter(R.has('children'))\n )(mappedRoutes)\n )\n\nconst getParent = route =>\n R.find(\n R.propEq(\n 'route',\n R.dropLast(\n 1,\n R.dropLastWhile(x => x !== '/', route)\n )\n )\n )(flattened)\n\nconst Routes = () => {\n const classes = useStyles()\n\n const history = useHistory()\n const location = useLocation()\n const { wizardTested, userData } = useContext(AppContext)\n\n const dontTriggerPages = [\n '/404',\n '/register',\n '/wizard',\n '/login',\n '/register',\n '/resetpassword',\n '/reset2fa'\n ]\n\n if (!wizardTested && !R.contains(location.pathname)(dontTriggerPages)) {\n history.push('/wizard')\n return null\n }\n\n const getFilteredRoutes = () => {\n if (!userData) return []\n\n return flattened.filter(value => {\n const keys = value.allowedRoles\n return R.includes(userData.role, keys)\n })\n }\n\n const Transition = location.state ? Slide : Fade\n\n const transitionProps =\n Transition === Slide\n ? {\n direction:\n R.findIndex(R.propEq('route', location.state.prev))(leafRoutes) >\n R.findIndex(R.propEq('route', location.pathname))(leafRoutes)\n ? 'right'\n : 'left'\n }\n : { timeout: 400 }\n\n return (\n \n \n \n \n \n \n \n \n }\n />\n \n \n \n \n {/* */}\n \n \n \n {getFilteredRoutes().map(({ route, component: Page, key }) => (\n \n \n \n \n \n \n }\n />\n \n ))}\n \n \n \n \n \n )\n}\nexport { tree, getParent, hasSidebar, Routes }\n","import { mainWidth } from 'src/styling/variables'\n\nimport fonts from './fonts'\n\nconst fill = '100%'\n\nexport default {\n '@global': {\n ...fonts,\n '#root': {\n width: fill,\n minHeight: fill\n },\n '.root-notifcenter-open': {\n // for when notification center is open\n overflowY: 'auto',\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0\n },\n '.body-notifcenter-open': {\n // for when notification center is open\n overflow: 'hidden'\n },\n '.root-blur': {\n filter: 'blur(1px)',\n pointerEvents: 'none'\n },\n html: {\n height: fill,\n '@media screen and (max-height: 900px)': {\n scrollbarGutter: 'stable'\n }\n },\n body: {\n width: mainWidth,\n display: 'flex',\n minHeight: fill,\n '@media screen and (min-width: 1200px)': {\n width: 'auto'\n }\n },\n [`a::-moz-focus-inner,\n 'input[type=\"submit\"]::-moz-focus-inner,\n input[type=\"button\"]::-moz-focus-inner`]: {\n border: 0\n },\n [`a::-moz-focus-inner,\n input[type=\"submit\"]::-moz-focus-inner,\n input[type=\"button\"]::-moz-focus-inner`]: {\n border: 0\n },\n [`a,\n a:visited,\n a:focus,\n a:active,\n a:hover`]: {\n outline: '0 none'\n },\n 'button::-moz-focus-inner': {\n border: 0\n },\n // forcing styling onto inner container\n '.ReactVirtualized__Grid__innerScrollContainer': {\n overflow: 'inherit !important'\n }\n }\n}\n","export default {\n // /*!\n // * Web Fonts from Fontspring.com\n // *\n // * All OpenType features and all extended glyphs have been removed.\n // * Fully installable fonts can be purchased at http://www.fontspring.com\n // *\n // * The fonts included in this stylesheet are subject to the End User License you purchased\n // * from Fontspring. The fonts are protected under domestic and international trademark and\n // * copyright law. You are prohibited from modifying, reverse engineering, duplicating, or\n // * distributing this font software.\n // *\n // * (c) 2010-2018 Fontspring\n // *\n // *\n // *\n // *\n // * The fonts included are copyrighted by the vendor listed below.\n // *\n // * Vendor: Fontfabric\n // * License URL: https://www.fontspring.com/licenses/fontfabric/webfont\n // *\n // *\n // */\n\n '@font-face': [\n {\n fontFamily: 'Mont',\n src: [\n 'url(\"/fonts/MontHeavy/mont-heavy-webfont.woff2\") format(\"woff2\")',\n 'url(\"/fonts/MontHeavy/mont-heavy-webfont.woff\") format(\"woff\")'\n ],\n fontWeight: 900,\n fontStyle: 'normal'\n },\n {\n fontFamily: 'Mont',\n src: [\n 'url(\"/fonts/MontHeavy/mont-bold-webfont.woff2\") format(\"woff2\")',\n 'url(\"/fonts/MontHeavy/mont-bold-webfont.woff\") format(\"woff\")'\n ],\n fontWeight: 700,\n fontStyle: 'normal'\n },\n // /*!\n // * Web Fonts from Fontspring.com\n // *\n // * All OpenType features and all extended glyphs have been removed.\n // * Fully installable fonts can be purchased at http://www.fontspring.com\n // *\n // * The fonts included in this stylesheet are subject to the End User License you purchased\n // * from Fontspring. The fonts are protected under domestic and international trademark and\n // * copyright law. You are prohibited from modifying, reverse engineering, duplicating, or\n // * distributing this font software.\n // *\n // * (c) 2010-2018 Fontspring\n // *\n // *\n // *\n // *\n // * The fonts included are copyrighted by the vendor listed below.\n // *\n // * Vendor: exljbris Font Foundry\n // * License URL: https://www.fontspring.com/licenses/exljbris/webfont\n // *\n // *\n // */\n {\n fontFamily: 'MuseoSans',\n src: [\n 'url(\"/fonts/MuseoSans/MuseoSans_500-webfont.woff2\") format(\"woff2\")',\n 'url(\"/fonts/MuseoSans/MuseoSans_500-webfont.woff\") format(\"woff\")'\n ],\n fontWeight: 500,\n fontStyle: 'normal'\n },\n {\n fontFamily: 'MuseoSans',\n src: [\n 'url(\"/fonts/MuseoSans/MuseoSans_700-webfont.woff2\") format(\"woff2\")',\n 'url(\"/fonts/MuseoSans/MuseoSans_700-webfont.woff\") format(\"woff\")'\n ],\n fontWeight: 700,\n fontStyle: 'normal'\n },\n\n // // BP-mono Freely distributed at http://backpacker.gr/fonts/5\n {\n fontFamily: 'BPmono',\n src: 'url(\"/fonts/BPmono/BPmono.ttf\") format(\"truetype\")',\n fontWeight: 500,\n fontStyle: 'normal'\n }\n ]\n}\n","import { createMuiTheme } from '@material-ui/core/styles'\n\nimport typographyStyles from 'src/components/typography/styles'\n\nimport {\n backgroundColor,\n inputFontFamily,\n secondaryColor,\n fontColor,\n offColor,\n subheaderColor,\n fontSize3,\n fontSize5,\n zircon,\n zircon2,\n primaryColor\n} from './variables'\n\nconst { p } = typographyStyles\n\nexport default createMuiTheme({\n typography: {\n fontFamily: inputFontFamily,\n body1: { ...p }\n },\n MuiButtonBase: {\n disableRipple: true\n },\n palette: {\n primary: {\n light: secondaryColor,\n dark: secondaryColor,\n main: secondaryColor\n },\n secondary: {\n light: secondaryColor,\n dark: secondaryColor,\n main: secondaryColor\n },\n background: {\n default: backgroundColor\n }\n },\n overrides: {\n MuiRadio: {\n colorSecondary: {\n color: secondaryColor\n }\n },\n MuiAutocomplete: {\n root: {\n color: fontColor\n },\n noOptions: {\n padding: [[6, 16]]\n },\n option: {\n '&[data-focus=\"true\"]': {\n backgroundColor: subheaderColor\n }\n },\n paper: {\n color: fontColor,\n margin: 0\n },\n listbox: {\n padding: 0\n },\n tag: {\n '&[data-tag-index=\"0\"]': {\n marginLeft: 0\n },\n margin: 2,\n backgroundColor: subheaderColor,\n borderRadius: 4,\n height: 18\n }\n },\n MuiChip: {\n label: {\n paddingLeft: 4,\n paddingRight: 4,\n color: fontColor,\n fontSize: fontSize5\n }\n },\n MuiInput: {\n root: {\n color: fontColor\n },\n underline: {\n '&:before': {\n borderBottom: [[2, 'solid', fontColor]]\n }\n }\n },\n MuiInputLabel: {\n root: {\n font: 'inherit',\n fontSize: fontSize3,\n color: offColor\n },\n shrink: {\n color: fontColor,\n transform: 'translate(0, 1.7px) scale(0.83)'\n }\n },\n MuiFormLabel: {\n root: {\n '&$focused': {\n color: fontColor\n }\n }\n },\n MuiListItem: {\n root: {\n '&:nth-of-type(odd)': {\n backgroundColor: backgroundColor\n }\n }\n },\n MuiToggleButton: {\n root: {\n '&$selected': {\n backgroundColor: zircon,\n borderColor: primaryColor,\n borderTopColor: [primaryColor, '!important'],\n '&:hover': {\n backgroundColor: zircon2\n }\n },\n '&:hover': {\n backgroundColor: zircon2\n }\n }\n },\n MuiToggleButtonGroup: {\n groupedVertical: {\n borderRadius: 8,\n border: '1px solid',\n borderColor: zircon,\n '&:not(:first-child)': {\n borderTop: '1px solid',\n borderTopColor: zircon,\n borderTopRightRadius: 8,\n borderTopLeftRadius: 8,\n borderBottomRightRadius: 8,\n borderBottomLeftRadius: 8\n },\n '&:not(:last-child)': {\n borderTop: '1px solid',\n borderTopColor: zircon,\n borderTopRightRadius: 8,\n borderTopLeftRadius: 8,\n borderBottomRightRadius: 8,\n borderBottomLeftRadius: 8\n }\n }\n }\n }\n})\n","import { useQuery } from '@apollo/react-hooks'\nimport CssBaseline from '@material-ui/core/CssBaseline'\nimport Grid from '@material-ui/core/Grid'\nimport Slide from '@material-ui/core/Slide'\nimport {\n StylesProvider,\n jssPreset,\n MuiThemeProvider,\n makeStyles\n} from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport { create } from 'jss'\nimport extendJss from 'jss-plugin-extend'\nimport React, { useContext, useState } from 'react'\nimport {\n useLocation,\n useHistory,\n BrowserRouter as Router\n} from 'react-router-dom'\n\nimport AppContext from 'src/AppContext'\nimport Header from 'src/components/layout/Header'\nimport Sidebar from 'src/components/layout/Sidebar'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport { tree, hasSidebar, Routes, getParent } from 'src/routing/routes'\nimport global from 'src/styling/global'\nimport theme from 'src/styling/theme'\nimport { backgroundColor, mainWidth } from 'src/styling/variables'\nimport ApolloProvider from 'src/utils/apollo'\n\nif (process.env.NODE_ENV !== 'production') {\n const whyDidYouRender = require('@welldone-software/why-did-you-render')\n whyDidYouRender(React)\n}\n\nconst jss = create({\n plugins: [extendJss(), ...jssPreset().plugins]\n})\n\nconst fill = '100%'\nconst flexDirection = 'column'\n\nconst useStyles = makeStyles({\n ...global,\n root: {\n backgroundColor,\n width: fill,\n minHeight: fill,\n display: 'flex',\n flexDirection\n },\n wrapper: {\n width: mainWidth,\n height: fill,\n margin: '0 auto',\n flex: 1,\n display: 'flex',\n flexDirection\n },\n grid: {\n flex: 1,\n height: '100%'\n },\n contentWithSidebar: {\n flex: 1,\n marginLeft: 48,\n paddingTop: 15\n },\n contentWithoutSidebar: {\n width: mainWidth\n }\n})\n\nconst GET_USER_DATA = gql`\n query userData {\n userData {\n id\n username\n role\n enabled\n last_accessed\n last_accessed_from\n last_accessed_address\n }\n }\n`\n\nconst Main = () => {\n const classes = useStyles()\n const location = useLocation()\n const history = useHistory()\n const { wizardTested, userData, setUserData } = useContext(AppContext)\n\n const { loading } = useQuery(GET_USER_DATA, {\n onCompleted: userResponse => {\n if (!userData && userResponse?.userData)\n setUserData(userResponse.userData)\n }\n })\n\n const route = location.pathname\n\n const sidebar = hasSidebar(route)\n const parent = sidebar ? getParent(route) : {}\n\n const is404 = location.pathname === '/404'\n\n const isSelected = it => location.pathname === it.route\n\n const onClick = it => history.push(it.route)\n\n const contentClassName = sidebar\n ? classes.contentWithSidebar\n : classes.contentWithoutSidebar\n\n return (\n \n {!is404 && wizardTested && userData && (\n \n )}\n \n {sidebar && !is404 && wizardTested && (\n \n \n
\n }\n />\n )}\n\n \n {sidebar && !is404 && wizardTested && (\n it.label}\n onClick={onClick}\n />\n )}\n {!loading && }
\n \n \n \n )\n}\n\nconst App = () => {\n const [wizardTested, setWizardTested] = useState(false)\n const [userData, setUserData] = useState(null)\n\n const setRole = role => {\n if (userData && role && userData.role !== role) {\n setUserData({ ...userData, role })\n }\n }\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default App\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n)\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href)\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config)\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n )\n })\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config)\n }\n })\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing\n if (installingWorker == null) {\n return\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n )\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration)\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.')\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration)\n }\n }\n }\n }\n }\n })\n .catch(error => {\n console.error('Error during service worker registration:', error)\n })\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type')\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload()\n })\n })\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config)\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n )\n })\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister()\n })\n }\n}\n","import React from 'react'\nimport ReactDOM from 'react-dom'\n\nimport App from './App'\nimport * as serviceWorker from './serviceWorker'\n\nfunction checkBuildTarget() {\n const buildTarget = process.env.REACT_APP_BUILD_TARGET\n\n if (buildTarget !== 'LAMASSU' && buildTarget !== 'PAZUZ') {\n return Promise.reject(\n new Error('No such build target: ' + process.env.REACT_APP_BUILD_TARGET)\n )\n }\n\n return Promise.resolve()\n}\n\ncheckBuildTarget().then(() =>\n ReactDOM.render(\n \n \n ,\n document.getElementById('root')\n )\n)\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister()\n"],"sourceRoot":""}
\ No newline at end of file