From 6f95b09e1bf497012a24810fe7830b7f0f2e93cf Mon Sep 17 00:00:00 2001 From: nogo <110664798+0xnogo@users.noreply.github.com> Date: Mon, 18 Nov 2024 02:27:35 +0400 Subject: [PATCH 01/13] gas estimator + fee boosting integ test (#15208) * initial test * gomodtidy * merge and fix * price updates * adding price in integ-test helpers * commong bump * messageMaxGas update * remodelling of fee boosting test * gomodtidy * fixing * fixes * reset gomod * update cl-ccip * smoke test * change timeout * skip * reset go.mod * addressing comments * go mod cl-ccip * adding comments * update after last rebase --- .github/e2e-tests.yml | 14 ++ core/capabilities/ccip/ccipevm/gas_helpers.go | 7 +- .../ccip/ccipevm/gas_helpers_test.go | 18 +- core/scripts/go.mod | 2 +- core/scripts/go.sum | 4 +- deployment/ccip/add_lane.go | 35 ++-- deployment/ccip/add_lane_test.go | 4 +- .../ccip/changeset/active_candidate_test.go | 2 +- deployment/ccip/changeset/add_chain_test.go | 2 +- .../ccip/changeset/initial_deploy_test.go | 5 +- deployment/ccip/deploy_test.go | 2 +- deployment/ccip/test_assertions.go | 11 +- deployment/ccip/test_helpers.go | 51 ++++-- deployment/go.mod | 2 +- deployment/go.sum | 4 +- go.mod | 2 +- go.sum | 4 +- .../ccip-tests/testsetups/test_helpers.go | 15 +- integration-tests/go.mod | 2 +- integration-tests/go.sum | 4 +- integration-tests/load/go.mod | 2 +- integration-tests/load/go.sum | 4 +- .../smoke/ccip_messaging_test.go | 4 +- integration-tests/smoke/ccip_test.go | 4 +- integration-tests/smoke/fee_boosting_test.go | 158 ++++++++++++++++++ 25 files changed, 296 insertions(+), 66 deletions(-) create mode 100644 integration-tests/smoke/fee_boosting_test.go diff --git a/.github/e2e-tests.yml b/.github/e2e-tests.yml index 87e7b07af5b..5c4f7e6c82e 100644 --- a/.github/e2e-tests.yml +++ b/.github/e2e-tests.yml @@ -963,6 +963,20 @@ runner-test-matrix: E2E_TEST_SELECTED_NETWORK: SIMULATED_1,SIMULATED_2 E2E_JD_VERSION: 0.4.0 + - id: smoke/fee_boosting_test.go:* + path: integration-tests/smoke/fee_boosting_test.go + test_env_type: docker + runs_on: ubuntu-latest + triggers: + - PR E2E Core Tests + - Merge Queue E2E Core Tests + - Nightly E2E Tests + test_cmd: cd integration-tests/ && go test smoke/fee_boosting_test.go -timeout 15m -test.parallel=1 -count=1 -json + pyroscope_env: ci-smoke-ccipv1_6-evm-simulated + test_env_vars: + E2E_TEST_SELECTED_NETWORK: SIMULATED_1,SIMULATED_2 + E2E_JD_VERSION: 0.4.0 + # END: CCIPv1.6 tests # START: CCIP tests diff --git a/core/capabilities/ccip/ccipevm/gas_helpers.go b/core/capabilities/ccip/ccipevm/gas_helpers.go index 52e3d033d2a..2706650f48e 100644 --- a/core/capabilities/ccip/ccipevm/gas_helpers.go +++ b/core/capabilities/ccip/ccipevm/gas_helpers.go @@ -27,6 +27,8 @@ const ( ExecutionStateProcessingOverheadGas = 2_100 + // COLD_SLOAD_COST for first reading the state 20_000 + // SSTORE_SET_GAS for writing from 0 (untouched) to non-zero (in-progress) 100 //# SLOAD_GAS = WARM_STORAGE_READ_COST for rewriting from non-zero (in-progress) to non-zero (success/failure) + // TODO: investigate the write overhead for v1.6 + DestGasOverhead = 110_000 + 110_000 + 130_000 // 110K for commit, 110K for RMN, 130K for Exec ) func NewGasEstimateProvider() EstimateProvider { @@ -61,8 +63,6 @@ func (gp EstimateProvider) CalculateMessageMaxGas(msg cciptypes.Message) uint64 } // CalculateMessageMaxGasWithError computes the maximum gas overhead for a message. -// TODO: Add destGasOverhead, see: -// https://github.com/smartcontractkit/chainlink/blob/23452266132228234312947660374fb393e96f1a/contracts/src/v0.8/ccip/FeeQuoter.sol#L97 func (gp EstimateProvider) CalculateMessageMaxGasWithError(msg cciptypes.Message) (uint64, error) { numTokens := len(msg.TokenAmounts) var data []byte = msg.Data @@ -98,7 +98,8 @@ func (gp EstimateProvider) CalculateMessageMaxGasWithError(msg cciptypes.Message adminRegistryOverhead = TokenAdminRegistryWarmupCost } - return messageGasLimit.Uint64() + + return DestGasOverhead + + messageGasLimit.Uint64() + messageCallDataGas + ExecutionStateProcessingOverheadGas + SupportsInterfaceCheck + diff --git a/core/capabilities/ccip/ccipevm/gas_helpers_test.go b/core/capabilities/ccip/ccipevm/gas_helpers_test.go index bcc87867407..570e7377d34 100644 --- a/core/capabilities/ccip/ccipevm/gas_helpers_test.go +++ b/core/capabilities/ccip/ccipevm/gas_helpers_test.go @@ -26,17 +26,17 @@ func Test_calculateMessageMaxGas(t *testing.T) { { name: "base", args: args{dataLen: 5, numTokens: 2, extraArgs: makeExtraArgsV1(200_000), tokenGasOverhead: 10}, - want: 1_022_284, + want: 1_372_284, }, { name: "large", args: args{dataLen: 1000, numTokens: 1000, extraArgs: makeExtraArgsV1(200_000), tokenGasOverhead: 1}, - want: 346_678_520, + want: 347_028_520, }, { name: "overheadGas test 1", args: args{dataLen: 0, numTokens: 0, extraArgs: makeExtraArgsV1(200_000), tokenGasOverhead: 100}, - want: 319_920, + want: 669_920, }, { name: "overheadGas test 2", @@ -46,7 +46,7 @@ func Test_calculateMessageMaxGas(t *testing.T) { extraArgs: makeExtraArgsV1(200_000), tokenGasOverhead: 2, }, - want: 675_950, + want: 1_025_950, }, { name: "allowOOO set to true makes no difference to final gas estimate", @@ -56,7 +56,7 @@ func Test_calculateMessageMaxGas(t *testing.T) { extraArgs: makeExtraArgsV2(200_000, true), tokenGasOverhead: 100, }, - want: 1_022_464, + want: 1_372_464, }, { name: "allowOOO set to false makes no difference to final gas estimate", @@ -66,7 +66,7 @@ func Test_calculateMessageMaxGas(t *testing.T) { extraArgs: makeExtraArgsV2(200_000, false), tokenGasOverhead: 100, }, - want: 1_022_464, + want: 1_372_464, }, } @@ -104,7 +104,7 @@ func TestCalculateMaxGas(t *testing.T) { numberOfTokens: 0, extraArgs: makeExtraArgsV1(200_000), tokenGasOverhead: 10, - want: 322_992, + want: 672_992, }, { name: "maxGasOverheadGas 2", @@ -113,7 +113,7 @@ func TestCalculateMaxGas(t *testing.T) { numberOfTokens: 1, extraArgs: makeExtraArgsV1(200_000), tokenGasOverhead: 10, - want: 678_518, + want: 1_028_518, }, { name: "v2 extra args", @@ -122,7 +122,7 @@ func TestCalculateMaxGas(t *testing.T) { numberOfTokens: 1, extraArgs: makeExtraArgsV2(200_000, true), tokenGasOverhead: 10, - want: 678_518, + want: 1_028_518, }, } diff --git a/core/scripts/go.mod b/core/scripts/go.mod index 028eb9fac9e..12e12a1156e 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -294,7 +294,7 @@ require ( github.com/shirou/gopsutil/v3 v3.24.3 // indirect github.com/smartcontractkit/ccip-owner-contracts v0.0.0-20240926212305-a6deabdfce86 // indirect github.com/smartcontractkit/chain-selectors v1.0.29 // indirect - github.com/smartcontractkit/chainlink-ccip v0.0.0-20241112095015-3e85d9f1898b // indirect + github.com/smartcontractkit/chainlink-ccip v0.0.0-20241115103032-ec39846b3436 // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241017133723-5277829bd53f // indirect github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241018134907-a00ba3729b5e // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect diff --git a/core/scripts/go.sum b/core/scripts/go.sum index bdf3511c482..a123ae602d7 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1092,8 +1092,8 @@ github.com/smartcontractkit/chain-selectors v1.0.29 h1:aZ9+OoUSMn4nqnissHtDvDoKR github.com/smartcontractkit/chain-selectors v1.0.29/go.mod h1:xsKM0aN3YGcQKTPRPDDtPx2l4mlTN1Djmg0VVXV40b8= github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgBc2xpDKBco/Q4h4ydl6+UUU= github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= -github.com/smartcontractkit/chainlink-ccip v0.0.0-20241112095015-3e85d9f1898b h1:4kmZtaQ4fXwduHnw9xk5VmiIOW4nHg/Mx6iidlZJt5o= -github.com/smartcontractkit/chainlink-ccip v0.0.0-20241112095015-3e85d9f1898b/go.mod h1:4adKaHNaxFsRvV/lYfqtbsWyyvIPUMLR0FdOJN/ljis= +github.com/smartcontractkit/chainlink-ccip v0.0.0-20241115103032-ec39846b3436 h1:n3wy96cqxsaJGoCDbFulFPHind6Etq0tiWZcwAnTs3Q= +github.com/smartcontractkit/chainlink-ccip v0.0.0-20241115103032-ec39846b3436/go.mod h1:4adKaHNaxFsRvV/lYfqtbsWyyvIPUMLR0FdOJN/ljis= github.com/smartcontractkit/chainlink-common v0.3.1-0.20241114134822-aadff98ef068 h1:2llRW4Tn9W/EZp2XvXclQ9IjeTBwwxVPrrqaerX+vCE= github.com/smartcontractkit/chainlink-common v0.3.1-0.20241114134822-aadff98ef068/go.mod h1:ny87uTW6hLjCTLiBqBRNFEhETSXhHWevYlPclT5lSco= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241017133723-5277829bd53f h1:BwrIaQIx5Iy6eT+DfLhFfK2XqjxRm74mVdlX8gbu4dw= diff --git a/deployment/ccip/add_lane.go b/deployment/ccip/add_lane.go index 9d09a56444c..8af96277fc2 100644 --- a/deployment/ccip/add_lane.go +++ b/deployment/ccip/add_lane.go @@ -7,6 +7,7 @@ import ( "github.com/ethereum/go-ethereum/common" "github.com/smartcontractkit/chainlink/deployment" + "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/ccipevm" "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/ccip/generated/offramp" "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/ccip/generated/fee_quoter" @@ -14,13 +15,23 @@ import ( "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/ccip/generated/router" ) -var ( - InitialLinkPrice = deployment.E18Mult(20) - InitialWethPrice = deployment.E18Mult(4000) - InitialGasPrice = big.NewInt(2e12) -) +type InitialPrices struct { + LinkPrice *big.Int // USD to the power of 18 (e18) per LINK + WethPrice *big.Int // USD to the power of 18 (e18) per WETH + GasPrice *big.Int // uint224 packed gas price in USD (112 for exec // 112 for da) +} + +var DefaultInitialPrices = InitialPrices{ + LinkPrice: deployment.E18Mult(20), + WethPrice: deployment.E18Mult(4000), + GasPrice: ToPackedFee(big.NewInt(8e14), big.NewInt(0)), +} + +func AddLaneWithDefaultPrices(e deployment.Environment, state CCIPOnChainState, from, to uint64) error { + return AddLane(e, state, from, to, DefaultInitialPrices) +} -func AddLane(e deployment.Environment, state CCIPOnChainState, from, to uint64) error { +func AddLane(e deployment.Environment, state CCIPOnChainState, from, to uint64, initialPrices InitialPrices) error { // TODO: Batch tx, err := state.Chains[from].Router.ApplyRampUpdates(e.Chains[from].DeployerKey, []router.RouterOnRamp{ { @@ -47,17 +58,17 @@ func AddLane(e deployment.Environment, state CCIPOnChainState, from, to uint64) TokenPriceUpdates: []fee_quoter.InternalTokenPriceUpdate{ { SourceToken: state.Chains[from].LinkToken.Address(), - UsdPerToken: InitialLinkPrice, + UsdPerToken: initialPrices.LinkPrice, }, { SourceToken: state.Chains[from].Weth9.Address(), - UsdPerToken: InitialWethPrice, + UsdPerToken: initialPrices.WethPrice, }, }, GasPriceUpdates: []fee_quoter.InternalGasPriceUpdate{ { DestChainSelector: to, - UsdPerUnitGas: InitialGasPrice, + UsdPerUnitGas: initialPrices.GasPrice, }, }}) if _, err := deployment.ConfirmIfNoError(e.Chains[from], tx, err); err != nil { @@ -112,15 +123,15 @@ func DefaultFeeQuoterDestChainConfig() fee_quoter.FeeQuoterDestChainConfig { MaxNumberOfTokensPerMsg: 10, MaxDataBytes: 256, MaxPerMsgGasLimit: 3_000_000, - DestGasOverhead: 50_000, + DestGasOverhead: ccipevm.DestGasOverhead, DefaultTokenFeeUSDCents: 1, - DestGasPerPayloadByte: 10, + DestGasPerPayloadByte: ccipevm.CalldataGasPerByte, DestDataAvailabilityOverheadGas: 100, DestGasPerDataAvailabilityByte: 100, DestDataAvailabilityMultiplierBps: 1, DefaultTokenDestGasOverhead: 125_000, DefaultTxGasLimit: 200_000, - GasMultiplierWeiPerEth: 1, + GasMultiplierWeiPerEth: 11e17, // Gas multiplier in wei per eth is scaled by 1e18, so 11e17 is 1.1 = 110% NetworkFeeUSDCents: 1, ChainFamilySelector: [4]byte(evmFamilySelector), } diff --git a/deployment/ccip/add_lane_test.go b/deployment/ccip/add_lane_test.go index 1d7ab18bf34..5edfdae1ab0 100644 --- a/deployment/ccip/add_lane_test.go +++ b/deployment/ccip/add_lane_test.go @@ -64,7 +64,7 @@ func TestAddLane(t *testing.T) { require.NoError(t, err) // Add one lane from chain1 to chain 2 and send traffic. - require.NoError(t, AddLane(e.Env, state, chain1, chain2)) + require.NoError(t, AddLaneWithDefaultPrices(e.Env, state, chain1, chain2)) ReplayLogs(t, e.Env.Offchain, replayBlocks) time.Sleep(30 * time.Second) @@ -110,7 +110,7 @@ func TestAddLane(t *testing.T) { require.Equal(t, uint64(1), msgSentEvent1.SequenceNumber) // Add another lane - require.NoError(t, AddLane(e.Env, state, chain2, chain1)) + require.NoError(t, AddLaneWithDefaultPrices(e.Env, state, chain2, chain1)) // Send traffic on the second lane and it should succeed latesthdr, err = e.Env.Chains[chain1].Client.HeaderByNumber(testcontext.Get(t), nil) diff --git a/deployment/ccip/changeset/active_candidate_test.go b/deployment/ccip/changeset/active_candidate_test.go index c64f7bf8c9f..6403981a675 100644 --- a/deployment/ccip/changeset/active_candidate_test.go +++ b/deployment/ccip/changeset/active_candidate_test.go @@ -28,7 +28,7 @@ func TestActiveCandidate(t *testing.T) { lggr := logger.TestLogger(t) ctx := ccdeploy.Context(t) - tenv := ccdeploy.NewMemoryEnvironment(t, lggr, 3, 5) + tenv := ccdeploy.NewMemoryEnvironment(t, lggr, 3, 5, ccdeploy.MockLinkPrice, ccdeploy.MockWethPrice) e := tenv.Env state, err := ccdeploy.LoadOnchainState(tenv.Env) diff --git a/deployment/ccip/changeset/add_chain_test.go b/deployment/ccip/changeset/add_chain_test.go index 51972c6dd2e..2d79a76005d 100644 --- a/deployment/ccip/changeset/add_chain_test.go +++ b/deployment/ccip/changeset/add_chain_test.go @@ -60,7 +60,7 @@ func TestAddChainInbound(t *testing.T) { for _, source := range initialDeploy { for _, dest := range initialDeploy { if source != dest { - require.NoError(t, ccipdeployment.AddLane(e.Env, state, source, dest)) + require.NoError(t, ccipdeployment.AddLaneWithDefaultPrices(e.Env, state, source, dest)) } } } diff --git a/deployment/ccip/changeset/initial_deploy_test.go b/deployment/ccip/changeset/initial_deploy_test.go index 0d43a78b878..a3756022245 100644 --- a/deployment/ccip/changeset/initial_deploy_test.go +++ b/deployment/ccip/changeset/initial_deploy_test.go @@ -21,7 +21,7 @@ import ( func TestInitialDeploy(t *testing.T) { lggr := logger.TestLogger(t) ctx := ccdeploy.Context(t) - tenv := ccdeploy.NewMemoryEnvironment(t, lggr, 3, 4) + tenv := ccdeploy.NewMemoryEnvironment(t, lggr, 3, 4, ccdeploy.MockLinkPrice, ccdeploy.MockWethPrice) e := tenv.Env state, err := ccdeploy.LoadOnchainState(tenv.Env) @@ -93,7 +93,8 @@ func TestInitialDeploy(t *testing.T) { ccdeploy.ConfirmCommitForAllWithExpectedSeqNums(t, e, state, expectedSeqNum, startBlocks) // Confirm token and gas prices are updated - ccdeploy.ConfirmTokenPriceUpdatedForAll(t, e, state, startBlocks) + ccdeploy.ConfirmTokenPriceUpdatedForAll(t, e, state, startBlocks, + ccdeploy.DefaultInitialPrices.LinkPrice, ccdeploy.DefaultInitialPrices.WethPrice) // TODO: Fix gas prices? //ccdeploy.ConfirmGasPriceUpdatedForAll(t, e, state, startBlocks) // diff --git a/deployment/ccip/deploy_test.go b/deployment/ccip/deploy_test.go index f32dd63f806..dc1927261d1 100644 --- a/deployment/ccip/deploy_test.go +++ b/deployment/ccip/deploy_test.go @@ -22,7 +22,7 @@ func TestDeployCCIPContracts(t *testing.T) { }) // Deploy all the CCIP contracts. homeChainSel, feedChainSel := allocateCCIPChainSelectors(e.Chains) - _ = DeployTestContracts(t, lggr, e.ExistingAddresses, homeChainSel, feedChainSel, e.Chains) + _ = DeployTestContracts(t, lggr, e.ExistingAddresses, homeChainSel, feedChainSel, e.Chains, MockLinkPrice, MockWethPrice) nodes, err := deployment.NodeInfo(e.NodeIDs, e.Offchain) require.NoError(t, err) diff --git a/deployment/ccip/test_assertions.go b/deployment/ccip/test_assertions.go index 64d1eb8571c..0c15c8b95ed 100644 --- a/deployment/ccip/test_assertions.go +++ b/deployment/ccip/test_assertions.go @@ -27,6 +27,7 @@ func ConfirmGasPriceUpdatedForAll( e deployment.Environment, state CCIPOnChainState, startBlocks map[uint64]*uint64, + gasPrice *big.Int, ) { var wg errgroup.Group for src, srcChain := range e.Chains { @@ -46,6 +47,7 @@ func ConfirmGasPriceUpdatedForAll( dstChain, state.Chains[srcChain.Selector].FeeQuoter, *startBlock, + gasPrice, ) }) } @@ -58,6 +60,7 @@ func ConfirmGasPriceUpdated( dest deployment.Chain, srcFeeQuoter *fee_quoter.FeeQuoter, startBlock uint64, + gasPrice *big.Int, ) error { it, err := srcFeeQuoter.FilterUsdPerUnitGasUpdated(&bind.FilterOpts{ Context: context.Background(), @@ -67,7 +70,7 @@ func ConfirmGasPriceUpdated( require.NoError(t, err) require.Truef(t, it.Next(), "No gas price update event found on chain %d, fee quoter %s", dest.Selector, srcFeeQuoter.Address().String()) - require.NotEqualf(t, InitialGasPrice, it.Event.Value, "Gas price not updated on chain %d, fee quoter %s", + require.NotEqualf(t, gasPrice, it.Event.Value, "Gas price not updated on chain %d, fee quoter %s", dest.Selector, srcFeeQuoter.Address().String()) return nil } @@ -77,6 +80,8 @@ func ConfirmTokenPriceUpdatedForAll( e deployment.Environment, state CCIPOnChainState, startBlocks map[uint64]*uint64, + linkPrice *big.Int, + wethPrice *big.Int, ) { var wg errgroup.Group for _, chain := range e.Chains { @@ -89,8 +94,8 @@ func ConfirmTokenPriceUpdatedForAll( linkAddress := state.Chains[chain.Selector].LinkToken.Address() wethAddress := state.Chains[chain.Selector].Weth9.Address() tokenToPrice := make(map[common.Address]*big.Int) - tokenToPrice[linkAddress] = InitialLinkPrice - tokenToPrice[wethAddress] = InitialWethPrice + tokenToPrice[linkAddress] = linkPrice + tokenToPrice[wethAddress] = wethPrice return ConfirmTokenPriceUpdated( t, chain, diff --git a/deployment/ccip/test_helpers.go b/deployment/ccip/test_helpers.go index 9d6ac0ab35d..4c348f46920 100644 --- a/deployment/ccip/test_helpers.go +++ b/deployment/ccip/test_helpers.go @@ -120,6 +120,8 @@ func DeployTestContracts(t *testing.T, homeChainSel, feedChainSel uint64, chains map[uint64]deployment.Chain, + linkPrice *big.Int, + wethPrice *big.Int, ) deployment.CapabilityRegistryConfig { capReg, err := DeployCapReg(lggr, // deploying cap reg for the first time on a blank chain state @@ -127,7 +129,7 @@ func DeployTestContracts(t *testing.T, Chains: make(map[uint64]CCIPChainState), }, ab, chains[homeChainSel]) require.NoError(t, err) - _, err = DeployFeeds(lggr, ab, chains[feedChainSel]) + _, err = DeployFeeds(lggr, ab, chains[feedChainSel], linkPrice, wethPrice) require.NoError(t, err) evmChainID, err := chainsel.ChainIdFromSelector(homeChainSel) require.NoError(t, err) @@ -166,7 +168,13 @@ func allocateCCIPChainSelectors(chains map[uint64]deployment.Chain) (homeChainSe // NewMemoryEnvironment creates a new CCIP environment // with capreg, fee tokens, feeds and nodes set up. -func NewMemoryEnvironment(t *testing.T, lggr logger.Logger, numChains int, numNodes int) DeployedEnv { +func NewMemoryEnvironment( + t *testing.T, + lggr logger.Logger, + numChains int, + numNodes int, + linkPrice *big.Int, + wethPrice *big.Int) DeployedEnv { require.GreaterOrEqual(t, numChains, 2, "numChains must be at least 2 for home and feed chains") require.GreaterOrEqual(t, numNodes, 4, "numNodes must be at least 4") ctx := testcontext.Get(t) @@ -176,7 +184,7 @@ func NewMemoryEnvironment(t *testing.T, lggr logger.Logger, numChains int, numNo require.NoError(t, err) ab := deployment.NewMemoryAddressBook() - crConfig := DeployTestContracts(t, lggr, ab, homeChainSel, feedSel, chains) + crConfig := DeployTestContracts(t, lggr, ab, homeChainSel, feedSel, chains, linkPrice, wethPrice) nodes := memory.NewNodes(t, zapcore.InfoLevel, chains, numNodes, 1, crConfig) for _, node := range nodes { require.NoError(t, node.App.Start(ctx)) @@ -209,7 +217,19 @@ func NewMemoryEnvironment(t *testing.T, lggr logger.Logger, numChains int, numNo // NewMemoryEnvironmentWithJobs creates a new CCIP environment // with capreg, fee tokens, feeds, nodes and jobs set up. func NewMemoryEnvironmentWithJobs(t *testing.T, lggr logger.Logger, numChains int, numNodes int) DeployedEnv { - e := NewMemoryEnvironment(t, lggr, numChains, numNodes) + e := NewMemoryEnvironment(t, lggr, numChains, numNodes, MockLinkPrice, MockWethPrice) + e.SetupJobs(t) + return e +} + +func NewMemoryEnvironmentWithJobsAndPrices( + t *testing.T, + lggr logger.Logger, + numChains int, + numNodes int, + linkPrice *big.Int, + wethPrice *big.Int) DeployedEnv { + e := NewMemoryEnvironment(t, lggr, numChains, numNodes, linkPrice, wethPrice) e.SetupJobs(t) return e } @@ -323,7 +343,7 @@ func AddLanesForAll(e deployment.Environment, state CCIPOnChainState) error { for source := range e.Chains { for dest := range e.Chains { if source != dest { - err := AddLane(e, state, source, dest) + err := AddLaneWithDefaultPrices(e, state, source, dest) if err != nil { return err } @@ -333,6 +353,11 @@ func AddLanesForAll(e deployment.Environment, state CCIPOnChainState) error { return nil } +func ToPackedFee(execFee, daFee *big.Int) *big.Int { + daShifted := new(big.Int).Lsh(daFee, 112) + return new(big.Int).Or(daShifted, execFee) +} + const ( // MockLinkAggregatorDescription This is the description of the MockV3Aggregator.sol contract // nolint:lll @@ -345,7 +370,7 @@ const ( ) var ( - MockLinkPrice = big.NewInt(5e18) + MockLinkPrice = deployment.E18Mult(500) MockWethPrice = big.NewInt(9e8) // MockDescriptionToTokenSymbol maps a mock feed description to token descriptor MockDescriptionToTokenSymbol = map[string]TokenSymbol{ @@ -362,14 +387,20 @@ var ( } ) -func DeployFeeds(lggr logger.Logger, ab deployment.AddressBook, chain deployment.Chain) (map[string]common.Address, error) { +func DeployFeeds( + lggr logger.Logger, + ab deployment.AddressBook, + chain deployment.Chain, + linkPrice *big.Int, + wethPrice *big.Int, +) (map[string]common.Address, error) { linkTV := deployment.NewTypeAndVersion(PriceFeed, deployment.Version1_0_0) mockLinkFeed := func(chain deployment.Chain) deployment.ContractDeploy[*aggregator_v3_interface.AggregatorV3Interface] { linkFeed, tx, _, err1 := mock_v3_aggregator_contract.DeployMockV3Aggregator( chain.DeployerKey, chain.Client, - LinkDecimals, // decimals - MockLinkPrice, // initialAnswer + LinkDecimals, // decimals + linkPrice, // initialAnswer ) aggregatorCr, err2 := aggregator_v3_interface.NewAggregatorV3Interface(linkFeed, chain.Client) @@ -382,7 +413,7 @@ func DeployFeeds(lggr logger.Logger, ab deployment.AddressBook, chain deployment wethFeed, tx, _, err1 := mock_ethusd_aggregator_wrapper.DeployMockETHUSDAggregator( chain.DeployerKey, chain.Client, - MockWethPrice, // initialAnswer + wethPrice, // initialAnswer ) aggregatorCr, err2 := aggregator_v3_interface.NewAggregatorV3Interface(wethFeed, chain.Client) diff --git a/deployment/go.mod b/deployment/go.mod index ed05d136993..6963180766e 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -22,7 +22,7 @@ require ( github.com/sethvargo/go-retry v0.2.4 github.com/smartcontractkit/ccip-owner-contracts v0.0.0-20240926212305-a6deabdfce86 github.com/smartcontractkit/chain-selectors v1.0.29 - github.com/smartcontractkit/chainlink-ccip v0.0.0-20241112095015-3e85d9f1898b + github.com/smartcontractkit/chainlink-ccip v0.0.0-20241115103032-ec39846b3436 github.com/smartcontractkit/chainlink-common v0.3.1-0.20241114134822-aadff98ef068 github.com/smartcontractkit/chainlink-protos/job-distributor v0.4.0 github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.13 diff --git a/deployment/go.sum b/deployment/go.sum index 6c372de39f2..66487c2f9bc 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -1382,8 +1382,8 @@ github.com/smartcontractkit/chain-selectors v1.0.29 h1:aZ9+OoUSMn4nqnissHtDvDoKR github.com/smartcontractkit/chain-selectors v1.0.29/go.mod h1:xsKM0aN3YGcQKTPRPDDtPx2l4mlTN1Djmg0VVXV40b8= github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgBc2xpDKBco/Q4h4ydl6+UUU= github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= -github.com/smartcontractkit/chainlink-ccip v0.0.0-20241112095015-3e85d9f1898b h1:4kmZtaQ4fXwduHnw9xk5VmiIOW4nHg/Mx6iidlZJt5o= -github.com/smartcontractkit/chainlink-ccip v0.0.0-20241112095015-3e85d9f1898b/go.mod h1:4adKaHNaxFsRvV/lYfqtbsWyyvIPUMLR0FdOJN/ljis= +github.com/smartcontractkit/chainlink-ccip v0.0.0-20241115103032-ec39846b3436 h1:n3wy96cqxsaJGoCDbFulFPHind6Etq0tiWZcwAnTs3Q= +github.com/smartcontractkit/chainlink-ccip v0.0.0-20241115103032-ec39846b3436/go.mod h1:4adKaHNaxFsRvV/lYfqtbsWyyvIPUMLR0FdOJN/ljis= github.com/smartcontractkit/chainlink-common v0.3.1-0.20241114134822-aadff98ef068 h1:2llRW4Tn9W/EZp2XvXclQ9IjeTBwwxVPrrqaerX+vCE= github.com/smartcontractkit/chainlink-common v0.3.1-0.20241114134822-aadff98ef068/go.mod h1:ny87uTW6hLjCTLiBqBRNFEhETSXhHWevYlPclT5lSco= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241017133723-5277829bd53f h1:BwrIaQIx5Iy6eT+DfLhFfK2XqjxRm74mVdlX8gbu4dw= diff --git a/go.mod b/go.mod index d9a65c16063..7655e472f7a 100644 --- a/go.mod +++ b/go.mod @@ -76,7 +76,7 @@ require ( github.com/shopspring/decimal v1.4.0 github.com/smartcontractkit/chain-selectors v1.0.29 github.com/smartcontractkit/chainlink-automation v0.8.1 - github.com/smartcontractkit/chainlink-ccip v0.0.0-20241112095015-3e85d9f1898b + github.com/smartcontractkit/chainlink-ccip v0.0.0-20241115103032-ec39846b3436 github.com/smartcontractkit/chainlink-common v0.3.1-0.20241114134822-aadff98ef068 github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241017133723-5277829bd53f github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241018134907-a00ba3729b5e diff --git a/go.sum b/go.sum index 885518d69aa..016997e62f5 100644 --- a/go.sum +++ b/go.sum @@ -1076,8 +1076,8 @@ github.com/smartcontractkit/chain-selectors v1.0.29 h1:aZ9+OoUSMn4nqnissHtDvDoKR github.com/smartcontractkit/chain-selectors v1.0.29/go.mod h1:xsKM0aN3YGcQKTPRPDDtPx2l4mlTN1Djmg0VVXV40b8= github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgBc2xpDKBco/Q4h4ydl6+UUU= github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= -github.com/smartcontractkit/chainlink-ccip v0.0.0-20241112095015-3e85d9f1898b h1:4kmZtaQ4fXwduHnw9xk5VmiIOW4nHg/Mx6iidlZJt5o= -github.com/smartcontractkit/chainlink-ccip v0.0.0-20241112095015-3e85d9f1898b/go.mod h1:4adKaHNaxFsRvV/lYfqtbsWyyvIPUMLR0FdOJN/ljis= +github.com/smartcontractkit/chainlink-ccip v0.0.0-20241115103032-ec39846b3436 h1:n3wy96cqxsaJGoCDbFulFPHind6Etq0tiWZcwAnTs3Q= +github.com/smartcontractkit/chainlink-ccip v0.0.0-20241115103032-ec39846b3436/go.mod h1:4adKaHNaxFsRvV/lYfqtbsWyyvIPUMLR0FdOJN/ljis= github.com/smartcontractkit/chainlink-common v0.3.1-0.20241114134822-aadff98ef068 h1:2llRW4Tn9W/EZp2XvXclQ9IjeTBwwxVPrrqaerX+vCE= github.com/smartcontractkit/chainlink-common v0.3.1-0.20241114134822-aadff98ef068/go.mod h1:ny87uTW6hLjCTLiBqBRNFEhETSXhHWevYlPclT5lSco= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241017133723-5277829bd53f h1:BwrIaQIx5Iy6eT+DfLhFfK2XqjxRm74mVdlX8gbu4dw= diff --git a/integration-tests/ccip-tests/testsetups/test_helpers.go b/integration-tests/ccip-tests/testsetups/test_helpers.go index 4de5d0988a2..eeae7f5f8c3 100644 --- a/integration-tests/ccip-tests/testsetups/test_helpers.go +++ b/integration-tests/ccip-tests/testsetups/test_helpers.go @@ -69,7 +69,16 @@ func (d DeployedLocalDevEnvironment) RestartChainlinkNodes(t *testing.T) error { return errGrp.Wait() } -func NewLocalDevEnvironment(t *testing.T, lggr logger.Logger) (ccipdeployment.DeployedEnv, *test_env.CLClusterTestEnv, testconfig.TestConfig) { +func NewLocalDevEnvironmentWithDefaultPrice( + t *testing.T, + lggr logger.Logger) (ccipdeployment.DeployedEnv, *test_env.CLClusterTestEnv, testconfig.TestConfig) { + return NewLocalDevEnvironment(t, lggr, ccipdeployment.MockLinkPrice, ccipdeployment.MockWethPrice) +} + +func NewLocalDevEnvironment( + t *testing.T, + lggr logger.Logger, + linkPrice, wethPrice *big.Int) (ccipdeployment.DeployedEnv, *test_env.CLClusterTestEnv, testconfig.TestConfig) { ctx := testcontext.Get(t) // create a local docker environment with simulated chains and job-distributor // we cannot create the chainlink nodes yet as we need to deploy the capability registry first @@ -88,7 +97,7 @@ func NewLocalDevEnvironment(t *testing.T, lggr logger.Logger) (ccipdeployment.De require.NoError(t, err) ab := deployment.NewMemoryAddressBook() - crConfig := ccipdeployment.DeployTestContracts(t, lggr, ab, homeChainSel, feedSel, chains) + crConfig := ccipdeployment.DeployTestContracts(t, lggr, ab, homeChainSel, feedSel, chains, linkPrice, wethPrice) // start the chainlink nodes with the CR address err = StartChainlinkNodes(t, envConfig, @@ -128,7 +137,7 @@ func NewLocalDevEnvironmentWithRMN( lggr logger.Logger, numRmnNodes int, ) (ccipdeployment.DeployedEnv, devenv.RMNCluster) { - tenv, dockerenv, _ := NewLocalDevEnvironment(t, lggr) + tenv, dockerenv, _ := NewLocalDevEnvironmentWithDefaultPrice(t, lggr) state, err := ccipdeployment.LoadOnchainState(tenv.Env) require.NoError(t, err) diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 2a8d9eebf07..9e07bd4f7cb 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -413,7 +413,7 @@ require ( github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/sirupsen/logrus v1.9.3 // indirect github.com/smartcontractkit/ccip-owner-contracts v0.0.0-20240926212305-a6deabdfce86 // indirect - github.com/smartcontractkit/chainlink-ccip v0.0.0-20241112095015-3e85d9f1898b // indirect + github.com/smartcontractkit/chainlink-ccip v0.0.0-20241115103032-ec39846b3436 // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241017133723-5277829bd53f // indirect github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241018134907-a00ba3729b5e // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 5a4bcb648cd..5635684b688 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1403,8 +1403,8 @@ github.com/smartcontractkit/chain-selectors v1.0.29 h1:aZ9+OoUSMn4nqnissHtDvDoKR github.com/smartcontractkit/chain-selectors v1.0.29/go.mod h1:xsKM0aN3YGcQKTPRPDDtPx2l4mlTN1Djmg0VVXV40b8= github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgBc2xpDKBco/Q4h4ydl6+UUU= github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= -github.com/smartcontractkit/chainlink-ccip v0.0.0-20241112095015-3e85d9f1898b h1:4kmZtaQ4fXwduHnw9xk5VmiIOW4nHg/Mx6iidlZJt5o= -github.com/smartcontractkit/chainlink-ccip v0.0.0-20241112095015-3e85d9f1898b/go.mod h1:4adKaHNaxFsRvV/lYfqtbsWyyvIPUMLR0FdOJN/ljis= +github.com/smartcontractkit/chainlink-ccip v0.0.0-20241115103032-ec39846b3436 h1:n3wy96cqxsaJGoCDbFulFPHind6Etq0tiWZcwAnTs3Q= +github.com/smartcontractkit/chainlink-ccip v0.0.0-20241115103032-ec39846b3436/go.mod h1:4adKaHNaxFsRvV/lYfqtbsWyyvIPUMLR0FdOJN/ljis= github.com/smartcontractkit/chainlink-common v0.3.1-0.20241114134822-aadff98ef068 h1:2llRW4Tn9W/EZp2XvXclQ9IjeTBwwxVPrrqaerX+vCE= github.com/smartcontractkit/chainlink-common v0.3.1-0.20241114134822-aadff98ef068/go.mod h1:ny87uTW6hLjCTLiBqBRNFEhETSXhHWevYlPclT5lSco= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241017133723-5277829bd53f h1:BwrIaQIx5Iy6eT+DfLhFfK2XqjxRm74mVdlX8gbu4dw= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index 7398abc5af9..30cdab1097d 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -65,7 +65,7 @@ require ( github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/sagikazarmark/locafero v0.4.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect - github.com/smartcontractkit/chainlink-ccip v0.0.0-20241112095015-3e85d9f1898b // indirect + github.com/smartcontractkit/chainlink-ccip v0.0.0-20241115103032-ec39846b3436 // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241017133723-5277829bd53f // indirect github.com/smartcontractkit/chainlink-testing-framework/havoc v1.50.2 // indirect github.com/smartcontractkit/grpc-proxy v0.0.0-20240830132753-a7e17fec5ab7 // indirect diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index 6ca863f3d08..b4eaf20b15b 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1392,8 +1392,8 @@ github.com/smartcontractkit/chain-selectors v1.0.29 h1:aZ9+OoUSMn4nqnissHtDvDoKR github.com/smartcontractkit/chain-selectors v1.0.29/go.mod h1:xsKM0aN3YGcQKTPRPDDtPx2l4mlTN1Djmg0VVXV40b8= github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgBc2xpDKBco/Q4h4ydl6+UUU= github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= -github.com/smartcontractkit/chainlink-ccip v0.0.0-20241112095015-3e85d9f1898b h1:4kmZtaQ4fXwduHnw9xk5VmiIOW4nHg/Mx6iidlZJt5o= -github.com/smartcontractkit/chainlink-ccip v0.0.0-20241112095015-3e85d9f1898b/go.mod h1:4adKaHNaxFsRvV/lYfqtbsWyyvIPUMLR0FdOJN/ljis= +github.com/smartcontractkit/chainlink-ccip v0.0.0-20241115103032-ec39846b3436 h1:n3wy96cqxsaJGoCDbFulFPHind6Etq0tiWZcwAnTs3Q= +github.com/smartcontractkit/chainlink-ccip v0.0.0-20241115103032-ec39846b3436/go.mod h1:4adKaHNaxFsRvV/lYfqtbsWyyvIPUMLR0FdOJN/ljis= github.com/smartcontractkit/chainlink-common v0.3.1-0.20241114134822-aadff98ef068 h1:2llRW4Tn9W/EZp2XvXclQ9IjeTBwwxVPrrqaerX+vCE= github.com/smartcontractkit/chainlink-common v0.3.1-0.20241114134822-aadff98ef068/go.mod h1:ny87uTW6hLjCTLiBqBRNFEhETSXhHWevYlPclT5lSco= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241017133723-5277829bd53f h1:BwrIaQIx5Iy6eT+DfLhFfK2XqjxRm74mVdlX8gbu4dw= diff --git a/integration-tests/smoke/ccip_messaging_test.go b/integration-tests/smoke/ccip_messaging_test.go index a070d7b0061..4aa9ba34229 100644 --- a/integration-tests/smoke/ccip_messaging_test.go +++ b/integration-tests/smoke/ccip_messaging_test.go @@ -51,7 +51,7 @@ func Test_CCIPMessaging(t *testing.T) { // Setup 2 chains and a single lane. lggr := logger.TestLogger(t) ctx := ccdeploy.Context(t) - e, _, _ := testsetups.NewLocalDevEnvironment(t, lggr) + e, _, _ := testsetups.NewLocalDevEnvironmentWithDefaultPrice(t, lggr) state, err := ccdeploy.LoadOnchainState(e.Env) require.NoError(t, err) @@ -105,7 +105,7 @@ func Test_CCIPMessaging(t *testing.T) { } // connect a single lane, source to dest - require.NoError(t, ccdeploy.AddLane(e.Env, state, sourceChain, destChain)) + require.NoError(t, ccdeploy.AddLaneWithDefaultPrices(e.Env, state, sourceChain, destChain)) var ( replayed bool diff --git a/integration-tests/smoke/ccip_test.go b/integration-tests/smoke/ccip_test.go index b063b26ae8d..007a3c37e52 100644 --- a/integration-tests/smoke/ccip_test.go +++ b/integration-tests/smoke/ccip_test.go @@ -22,7 +22,7 @@ func TestInitialDeployOnLocal(t *testing.T) { t.Parallel() lggr := logger.TestLogger(t) ctx := ccdeploy.Context(t) - tenv, _, _ := testsetups.NewLocalDevEnvironment(t, lggr) + tenv, _, _ := testsetups.NewLocalDevEnvironmentWithDefaultPrice(t, lggr) e := tenv.Env state, err := ccdeploy.LoadOnchainState(tenv.Env) @@ -114,7 +114,7 @@ func TestTokenTransfer(t *testing.T) { t.Parallel() lggr := logger.TestLogger(t) ctx := ccdeploy.Context(t) - tenv, _, _ := testsetups.NewLocalDevEnvironment(t, lggr) + tenv, _, _ := testsetups.NewLocalDevEnvironmentWithDefaultPrice(t, lggr) e := tenv.Env state, err := ccdeploy.LoadOnchainState(e) diff --git a/integration-tests/smoke/fee_boosting_test.go b/integration-tests/smoke/fee_boosting_test.go new file mode 100644 index 00000000000..625200360e8 --- /dev/null +++ b/integration-tests/smoke/fee_boosting_test.go @@ -0,0 +1,158 @@ +package smoke + +import ( + "math/big" + "testing" + "time" + + "github.com/ethereum/go-ethereum/common" + "github.com/test-go/testify/require" + "golang.org/x/exp/maps" + + jobv1 "github.com/smartcontractkit/chainlink-protos/job-distributor/v1/job" + "github.com/smartcontractkit/chainlink/deployment" + ccdeploy "github.com/smartcontractkit/chainlink/deployment/ccip" + "github.com/smartcontractkit/chainlink/deployment/ccip/changeset" + "github.com/smartcontractkit/chainlink/integration-tests/ccip-tests/testsetups" + "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/ccip/generated/router" + "github.com/smartcontractkit/chainlink/v2/core/logger" +) + +type feeboostTestCase struct { + t *testing.T + sender []byte + deployedEnv ccdeploy.DeployedEnv + onchainState ccdeploy.CCIPOnChainState + initialPrices ccdeploy.InitialPrices + priceFeedPrices priceFeedPrices + sourceChain, destChain uint64 +} + +type priceFeedPrices struct { + linkPrice *big.Int + wethPrice *big.Int +} + +// TODO: find a way to reuse the same test setup for all tests +func Test_CCIPFeeBoosting(t *testing.T) { + ctx := ccdeploy.Context(t) + + setupTestEnv := func(t *testing.T, numChains int) (ccdeploy.DeployedEnv, ccdeploy.CCIPOnChainState, []uint64) { + e, _, _ := testsetups.NewLocalDevEnvironment( + t, logger.TestLogger(t), + deployment.E18Mult(5), + big.NewInt(9e8)) + + state, err := ccdeploy.LoadOnchainState(e.Env) + require.NoError(t, err) + + allChainSelectors := maps.Keys(e.Env.Chains) + require.Len(t, allChainSelectors, numChains) + + output, err := changeset.DeployPrerequisites(e.Env, changeset.DeployPrerequisiteConfig{ + ChainSelectors: e.Env.AllChainSelectors(), + }) + require.NoError(t, err) + require.NoError(t, e.Env.ExistingAddresses.Merge(output.AddressBook)) + + tokenConfig := ccdeploy.NewTestTokenConfig(state.Chains[e.FeedChainSel].USDFeeds) + // Apply migration + output, err = changeset.InitialDeploy(e.Env, ccdeploy.DeployCCIPContractConfig{ + HomeChainSel: e.HomeChainSel, + FeedChainSel: e.FeedChainSel, + ChainsToDeploy: allChainSelectors, + TokenConfig: tokenConfig, + MCMSConfig: ccdeploy.NewTestMCMSConfig(t, e.Env), + OCRSecrets: deployment.XXXGenerateTestOCRSecrets(), + }) + require.NoError(t, err) + require.NoError(t, e.Env.ExistingAddresses.Merge(output.AddressBook)) + state, err = ccdeploy.LoadOnchainState(e.Env) + require.NoError(t, err) + + // Ensure capreg logs are up to date. + ccdeploy.ReplayLogs(t, e.Env.Offchain, e.ReplayBlocks) + + // Apply the jobs. + for nodeID, jobs := range output.JobSpecs { + for _, job := range jobs { + // Note these auto-accept + _, err := e.Env.Offchain.ProposeJob(ctx, + &jobv1.ProposeJobRequest{ + NodeId: nodeID, + Spec: job, + }) + require.NoError(t, err) + } + } + + return e, state, allChainSelectors + } + + t.Run("boost needed due to WETH price increase (also covering gas price inscrease)", func(t *testing.T) { + e, state, chains := setupTestEnv(t, 2) + runFeeboostTestCase(feeboostTestCase{ + t: t, + sender: common.LeftPadBytes(e.Env.Chains[chains[0]].DeployerKey.From.Bytes(), 32), + deployedEnv: e, + onchainState: state, + initialPrices: ccdeploy.InitialPrices{ + LinkPrice: deployment.E18Mult(5), + WethPrice: deployment.E18Mult(9), + GasPrice: ccdeploy.ToPackedFee(big.NewInt(1.8e11), big.NewInt(0)), + }, + priceFeedPrices: priceFeedPrices{ + linkPrice: deployment.E18Mult(5), + wethPrice: big.NewInt(9.9e8), // increase from 9e8 to 9.9e8 + }, + sourceChain: chains[0], + destChain: chains[1], + }) + }) + + t.Run("boost needed due to LINK price decrease", func(t *testing.T) { + e, state, chains := setupTestEnv(t, 2) + runFeeboostTestCase(feeboostTestCase{ + t: t, + sender: common.LeftPadBytes(e.Env.Chains[chains[0]].DeployerKey.From.Bytes(), 32), + deployedEnv: e, + onchainState: state, + initialPrices: ccdeploy.InitialPrices{ + LinkPrice: deployment.E18Mult(5), + WethPrice: deployment.E18Mult(9), + GasPrice: ccdeploy.ToPackedFee(big.NewInt(1.8e11), big.NewInt(0)), + }, + priceFeedPrices: priceFeedPrices{ + linkPrice: big.NewInt(4.5e18), // decrease from 5e18 to 4.5e18 + wethPrice: big.NewInt(9e8), + }, + sourceChain: chains[0], + destChain: chains[1], + }) + }) +} + +func runFeeboostTestCase(tc feeboostTestCase) { + require.NoError(tc.t, ccdeploy.AddLane(tc.deployedEnv.Env, tc.onchainState, tc.sourceChain, tc.destChain, tc.initialPrices)) + + startBlocks := make(map[uint64]*uint64) + expectedSeqNum := make(map[uint64]uint64) + msgSentEvent := ccdeploy.TestSendRequest(tc.t, tc.deployedEnv.Env, tc.onchainState, tc.sourceChain, tc.destChain, false, router.ClientEVM2AnyMessage{ + Receiver: common.LeftPadBytes(tc.onchainState.Chains[tc.destChain].Receiver.Address().Bytes(), 32), + Data: []byte("message that needs fee boosting"), + TokenAmounts: nil, + FeeToken: common.HexToAddress("0x0"), + ExtraArgs: nil, + }) + expectedSeqNum[tc.destChain] = msgSentEvent.SequenceNumber + + // hack + time.Sleep(30 * time.Second) + replayBlocks := make(map[uint64]uint64) + replayBlocks[tc.sourceChain] = 1 + replayBlocks[tc.destChain] = 1 + ccdeploy.ReplayLogs(tc.t, tc.deployedEnv.Env.Offchain, replayBlocks) + + ccdeploy.ConfirmCommitForAllWithExpectedSeqNums(tc.t, tc.deployedEnv.Env, tc.onchainState, expectedSeqNum, startBlocks) + ccdeploy.ConfirmExecWithSeqNrForAll(tc.t, tc.deployedEnv.Env, tc.onchainState, expectedSeqNum, startBlocks) +} From d7d1750ebb1d3fa568669040322a99783efe6421 Mon Sep 17 00:00:00 2001 From: Rens Rooimans Date: Mon, 18 Nov 2024 10:34:33 +0100 Subject: [PATCH 02/13] Write Foundry Guide and update Solidity Style Guide (#15199) * write guide * fix wrong opts and prettier comment * add section on using correct foundry version --- contracts/FOUNDRY_GUIDE.md | 246 +++++++++++++++++++++++++++++++++++++ contracts/STYLE_GUIDE.md | 42 +++---- 2 files changed, 266 insertions(+), 22 deletions(-) create mode 100644 contracts/FOUNDRY_GUIDE.md diff --git a/contracts/FOUNDRY_GUIDE.md b/contracts/FOUNDRY_GUIDE.md new file mode 100644 index 00000000000..733968e6a00 --- /dev/null +++ b/contracts/FOUNDRY_GUIDE.md @@ -0,0 +1,246 @@ +# Foundry Guide + +We lock Foundry to a specific version in the `GNUmakefile`. +To ensure you have the correct local version run `make foundry`. +When you see formatting or gas differences between local and CI, it often means there is a version mismatch. +We use a locked version to avoid formatting or gas changes that suddenly pop up in CI when breaking changes are pushed to the nightly Foundry feed. + + +## How to start a new Foundry project + +There are several files to modify when starting a new Solidity project. +Everything starts with a foundry profile in `contracts/foundry.toml`, +this profile name will be used in most of the other files. +We will assume the profile is called `newproject`. + +The foundry profile should look similar to this. + +```toml +[profile.newproject] +solc_version = '0.8.24' +src = 'src/v0.8/newproject' +test = 'src/v0.8/newproject/test' +optimizer_runs = 1_000_000 +evm_version = 'paris' +``` + +After that, we have to enable CI by editing the following files. + +- `.github/CODEOWNERS` + - Add `newproject` in three places. + - `/contracts/**/*newproject* @smartcontractkit/newproject` + - `/contracts/src/v0.8/*newproject* @smartcontractkit/newproject` + - `/core/gethwrappers/*newproject* @smartcontractkit/newproject` + - Look at the file layout for the correct positions for each of these lines. Please keep the ordering alphabetical. +- `.github/workflows/solidity-foundry.yml` + - Add `newproject` to the `Define test matrix` section. + - Set the min coverage >=98%. + - Enable run-gas-snapshot. + - Enable run-forge-fmt. + - Add `newproject` to the `Checkout the repo` step. +- `.github/workflows/solidity-hardhat.yml` + - Add `newproject` to the ignored list to avoid hardhat CI running for `newproject` changes. +- `contracts/GNUmakefile` + - Add `newproject` to the ALL_FOUNDRY_PRODUCTS list in alphabetical order. +- `contracts/.prettierignore` + - Add `src/v0.8/newproject/**` . + +To enable geth wrapper generation, you will also have to create the following files. + +- `contracts/scripts` + - Create a file called `native_solc_compile_all_newproject`. + - See example below. +- `core/gethwrappers` + - Create a folder `newproject`. + - It's easiest to copy another projects folder and replace the contracts in `go_generate.go` with your own contracts. + - `ccip` is a good version to copy. + - Remove the contents of the `generated` folder. + - Remove the contents of the `generated-wrapper-dependency-versions-do-not-edit.txt` file. + - Remove the contents of the `mocks` folder. +- If you need mocks, define them in `.mockery.yaml`. + +```bash +#!/usr/bin/env bash + +set -e + +echo " ┌──────────────────────────────────────────────┐" +echo " │ Compiling Newproject contracts... │" +echo " └──────────────────────────────────────────────┘" + +SOLC_VERSION="0.8.24" +OPTIMIZE_RUNS=1000000 +# Optional optimizer run overrides. Please remove if not used +OPTIMIZE_RUNS_SINGLE_CONTRACT=5000 + + +SCRIPTPATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" +python3 -m pip install --require-hashes -r "$SCRIPTPATH"/requirements.txt +solc-select install $SOLC_VERSION +solc-select use $SOLC_VERSION +export SOLC_VERSION=$SOLC_VERSION + +ROOT="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; cd ../../ && pwd -P )" + +compileContract () { + local contract + contract=$(basename "$1" ".sol") + + local optimize_runs=$OPTIMIZE_RUNS + + case $1 in + "newproject/SingleContract.sol") + optimize_runs=$OPTIMIZE_RUNS_SINGLE_CONTRACT + ;; + esac + + solc --overwrite --optimize --optimize-runs $optimize_runs --metadata-hash none \ + -o "$ROOT"/contracts/solc/v$SOLC_VERSION/"$contract" \ + --abi --bin --allow-paths "$ROOT"/contracts/src/v0.8 \ + --bin-runtime --hashes --metadata --metadata-literal --combined-json abi,hashes,metadata,srcmap,srcmap-runtime \ + --evm-version paris \ + "$ROOT"/contracts/src/v0.8/"$1" +} + +compileContract newproject/SingleContract.sol +compileContract newproject/OtherContract.sol + +``` + +You should now have a fully set-up project with CI enabled. +Create a PR that introduces this setup without adding all the project's Solidity complexity, ideally before you start. +This is important +because the people approving the PR for this CI are different people from the ones approving the Solidity code. + +## Testing with Foundry + +We aim for (near) 100% line coverage. +Line coverage can sometimes be misleading though, so you should also look at the branch coverage. +The CI will only take line coverage into account, which means branch coverage spot checks are highly recommended. +Setting the line coverage requirement to ~100% means you will almost guarantee all branches are also taken. + +We have a strict layout and naming convention for Foundry tests. +This is to ensure consistency within the Chainlink codebases +and make it easier for developers to work on different projects. +If your Foundry project does not yet follow the structures described below, please consider refactoring it. +The test naming structure is especially important as CI depends on it for its snapshot generation. + + +### Test file layout + +Each foundry project has its own folder in the appropriate Solidity version folder. Within this folder there is a `test` +folder that contains all tests. This test folder mirrors the non-test folder structure with the exception that for each +contract to be tested, there is a folder with that contract's name. Within that folder, there is a test file for each +function that is tested and optionally a setup file which is shared between the function tests. Each file has a single +contract with the name `_` e.g. `contract OnRamp_getFee is OnRampSetup`. + +Consider the following folder structure. +``` +├── Router.sol +├── FeeQuoter.sol +├── onRamp +│ ├── OnRamp.sol +│ └── AnotherOnRamp.sol +``` + +The folder including tests would look like this. + +``` +├── Router.sol +├── FeeQuoter.sol +├── onRamp +│ ├── OnRamp.sol +│ └── AnotherOnRamp.sol +├── test +│ ├── Router +│ │ ├── Router.ccipSend.t.sol +│ │ ├── Router.recoverTokens.t.sol +│ │ ├── RouterSetup.t.sol +│ │ └── .... +│ ├── FeeQuoter +│ │ ├── FeeQuoter.onReport.t.sol +│ │ ├── FeeQuoter.updatePrices.t.sol +│ │ └── .... +│ ├── onRamp +│ │ ├── OnRamp +│ │ │ ├── OnRamp.constructor.t.sol +│ │ │ ├── OnRamp.getFee.t.sol +│ │ │ └── .... +│ │ ├── AnotherOnRamp +│ │ │ ├── AnotherOnRamp.constructor.t.sol +│ │ │ ├── AnotherOnRamp.getFee.t.sol +│ │ │ └── .... +``` + +### Test naming + +Tests are named according to the following format: + +``` +test_FunctionName_Description for standard tests. +test_FunctionName_RevertWhen_Condition for tests expecting a revert. +testFuzz_FunctionName_Description for fuzz tests. +testFork_FunctionName_Description for tests that fork from a network. +``` + +Including the function name first will group tests for the same function together in the gas snapshot. Using this format +will automatically exclude fuzz, fork and reverting tests from the gas snapshot. This leads to a less flaky snapshot +with fewer merge conflicts. + +Examples of correct test names for a function `getFee` are: + +``` +test_getFee - the base success case +test_getFee_MultipleFeeTokens - another success case with a specific scenario +test_getFee_RevertWhen_CursedByRMN - getFee reverts when it's cursed by the RMN. The error name should be used as condition when there is a single tests that checks for it +testFuzz_getFee_OnlyFeeTokens - a fuzz test that asserts that only fee tokens are used +testFork_getFee_UniswapV3MainnetFee - a fork test that uses Uniswap V3 on mainnet to get the fee +``` + + +### What to test + +Foundry unit tests should cover at least the following + +- The happy path +- All emitted events. + - Use `vm.expectEmit()`. + - Since all state updates should emit an event, this implicitly means we test all state updates. +- All revert reasons. + - Use `vm.expectRevert(...)`. + +Consider if a fuzz test makes sense. +It often doesn't, but when it does, it can be very powerful. +Fork tests can be considered when the code relies on existing contracts or their state. +Focus on unit tests before exploring more advanced testing. + +## Best practices + +Check out the official [Foundry best practices section](https://book.getfoundry.sh/tutorials/best-practices). + +- There should be no code between `vm.expectEmit`/`vm.expectRevert` and the function call. + - Test setup should be done before the `vm.expect` call. +- Set the block number and timestamp in `foundry.toml`. + - It is preferred to set these values to some reasonable value close to reality. + - There are already globally applied values in the `foundry.toml` file in this repo. +- Reference errors and events from the original contracts, do not duplicate them. +- Prefer `makeAddr("string describing the contract");` over `address(12345);`. +- Pin the fork test block number to cache the results of the RPC. +- If you see something being done in existing code, that doesn't mean it is automatically correct. + - This document will evolve over time, and often it won't make sense to go back and refactor an entire codebase when our preferences change. + + +## Tips and tricks + +- Use `make snapshot` to generate the correct snapshot for the selected Foundry profile. + - Use `make snapshot-diff` to see the diff between the local snapshot and your latest changes. +- use `make wrappers` to generate the gethwrappers for the selected Foundry profile. +- Use `vm.recordLogs();` to record all logs emitted + - Use `vm.getRecordedLogs()` to get the logs emitted. + - This way you can assert that a log was *not* emitted. +- Run `forge coverage --report lcov` to output code coverage + - This can be rendered as inline coverage using e.g. Coverage Gutters for VSCode +- You can provide inline config for fuzz/invariant tests +- You can find the function selectors for a given function or error using `cast sig ` + - Run `forge selectors list` to see the entire list of selectors split by the contract name. + diff --git a/contracts/STYLE_GUIDE.md b/contracts/STYLE_GUIDE.md index 89fe0dd5efa..f1faab09644 100644 --- a/contracts/STYLE_GUIDE.md +++ b/contracts/STYLE_GUIDE.md @@ -1,16 +1,23 @@ # Structure This guide is split into two sections: [Guidelines](#guidelines) and [Rules](#rules). -Guidelines are recommendations that should be followed but are hard to enforce in an automated way. +Guidelines are recommendations that should be followed, but are hard to enforce in an automated way. Rules are all enforced through CI, this can be through Solhint rules or other tools. ## Background -Our starting point is the [official Solidity Style Guide](https://docs.soliditylang.org/en/v0.8.21/style-guide.html) and [ConsenSys's Secure Development practices](https://consensys.github.io/smart-contract-best-practices/), but we deviate in some ways. We lean heavily on [Prettier](https://github.com/smartcontractkit/chainlink/blob/develop/contracts/.prettierrc) for formatting, and if you have to set up a new Solidity project we recommend starting with [our prettier config](https://github.com/smartcontractkit/chainlink/blob/develop/contracts/.prettierrc). We are trying to automate as much of this style guide with Solhint as possible. +Our starting point is the [official Solidity Style Guide](https://docs.soliditylang.org/en/v0.8.21/style-guide.html) and +[ConsenSys's Secure Development practices](https://consensys.github.io/smart-contract-best-practices/), +but we deviate in some ways. +We are trying to automate as much of this style guide with Solhint as possible. -This guide is not meant to be applied retroactively. There is no need to rewrite existing code to adhere to this guide, and when making (small) changes in existing files, it is not required to adhere to this guide if it conflicts with other practices in that existing file. Consistency is preferred. +This guide is not meant to be applied retroactively. +There is no need to rewrite existing code to adhere to this guide. +When making (small) changes in existing files, +it is not required to adhere to this guide if it conflicts with other practices in that existing file. +Consistency is preferred. -We will be looking into `forge fmt`, but for now, we still use `prettier`. +We use `forge fmt` for all new projects, but some older ones still rely on `prettier`. # Guidelines @@ -113,7 +120,7 @@ struct FeeTokenConfigArgs { - Events should only be triggered on state changes. If the value is set but not changed, we prefer avoiding a log emission indicating a change. (e.g. Either do not emit a log, or name the event `ConfigSet` instead of `ConfigUpdated`.) - Events should be emitted for all state changes, not emitting should be an exception -- When possible event names should correspond to the method they are in or the action that is being taken. Events preferably follow the format , where the action performed is the past tense of the imperative verb in the method name. e.g. calling `setConfig` should emit an event called `ConfigSet`, not `ConfigUpdated` in a method named `setConfig`. +- When possible, event names should correspond to the method they are in or the action that is being taken. Events preferably follow the format , where the action performed is the past tense of the imperative verb in the method name. e.g. calling `setConfig` should emit an event called `ConfigSet`, not `ConfigUpdated` in a method named `setConfig`. ### Expose Errors @@ -125,7 +132,7 @@ It is common to call a contract and then check the call succeeded: require(success, "Contract call failed"); ``` -While this may look descriptive it swallows the error. Instead, bubble up the error: +While this may look descriptive, it swallows the error. Instead, bubble up the error: ```solidity bool success; @@ -160,7 +167,7 @@ The original error will not be human-readable in an off-chain explorer because i ## Dependencies - Prefer not reinventing the wheel, especially if there is an Openzeppelin wheel. -- The `shared` folder can be treated as a first-party dependency and it is recommended to check if some functionality might already be in there before either writing it yourself or adding a third party dependency. +- The `shared` folder can be treated as a first-party dependency, and it is recommended to check if some functionality might already be in there before either writing it yourself or adding a third party dependency. - When we have reinvented the wheel already (like with ownership), it is OK to keep using these contracts. If there are clear benefits of using another standard like OZ, we can deprecate the custom implementation and start using the new standard in all new projects. Migration will not be required unless there are serious issues with the old implementation. - When the decision is made to use a new standard, it is no longer allowed to use the old standard for new projects. @@ -191,28 +198,19 @@ The original error will not be human-readable in an off-chain explorer because i - Golf your code. Make it cheap, within reason. - Focus on the hot path - Most of the cost of executing Solidity is related to reading/writing storage + - Pack your structs and top level contract storage - Calling other contracts will also be costly - Common types to safely use are - uint40 for timestamps (or uint32 if you really need the space) - uint96 for LINK, as there are only 1b LINK tokens - prefer `++i` over `i++` +- Avoid `unchecked` +- Only use `assembly` when there is no option to do something in Solidity or when it saves a significant amount of gas over the alternative implementation. - If you’re unsure about golfing, ask in the #tech-solidity channel ## Testing -- Test using Foundry. -- Aim for at least 90% *useful* coverage as a baseline, but (near) 100% is achievable in Solidity. Always 100% test the critical path. - - Make sure to test for each event emitted - - Test each reverting path -- Consider fuzzing, start with stateless (very easy in Foundry) and if that works, try stateful fuzzing. -- Consider fork testing if applicable - -### Foundry - -- Create a Foundry profile for each project folder in `foundry.toml` -- Foundry tests live in the project folder in `src`, not in the `contracts/test/` folder -- Set the block number and timestamp. It is preferred to set these values to some reasonable value close to reality. -- There should be no code between `vm.expectEmit`/`vm.expectRevert` and the function call +Please read the [Foundry Guide](FOUNDRY_GUIDE.md). No new tests should be written in Hardhat. ## Picking a Pragma @@ -284,7 +282,7 @@ All rules have a `rule` tag which indicates how the rule is enforced. ## Comments -- Comments should be in the `//` (default) or `///` (Natspec) format, not the `/* */` format. +- Comments should be in the `//` (default) or `///` (for Natspec) format, not the `/* */` or `/** **/` format. - rule: `tbd` - Comments should follow [NatSpec](https://docs.soliditylang.org/en/latest/natspec-format.html) - rule: `tbd` @@ -304,7 +302,7 @@ import {AnythingElse} from "../code/AnythingElse.sol"; import {ThirdPartyCode} from "../../vendor/ThirdPartyCode.sol"; ``` -- An example would be +- An example would be the following. Note that third party interfaces go with the third party imports. ```solidity import {ITypeAndVersion} from "../../shared/interfaces/ITypeAndVersion.sol"; From 07a2cec532704aebe413a9fa29edc04bd9063677 Mon Sep 17 00:00:00 2001 From: Valerii Kabisov <172247313+valerii-kabisov-cll@users.noreply.github.com> Date: Mon, 18 Nov 2024 15:22:39 +0400 Subject: [PATCH 03/13] [CCIP-3522] address book remove feature (#15148) * [CCIP-3522] address book remove feature * [CCIP-3522] update interface * [CCIP-3522] changeset * [CCIP-3522] changeset, fix * [CCIP-3522] concurency fix * [CCIP-3522] lint fix * [CCIP-3522] concurrency safe storage, additional tests * [CCIP-3522] refactoring * [CCIP-3522] delete method refactoring * [CCIP-4190] unexported map --- .changeset/breezy-suits-float.md | 5 ++ deployment/address_book.go | 101 ++++++++++++++++++++++---- deployment/address_book_test.go | 121 +++++++++++++++++++++++++++++++ 3 files changed, 212 insertions(+), 15 deletions(-) create mode 100644 .changeset/breezy-suits-float.md diff --git a/.changeset/breezy-suits-float.md b/.changeset/breezy-suits-float.md new file mode 100644 index 00000000000..60e061223d8 --- /dev/null +++ b/.changeset/breezy-suits-float.md @@ -0,0 +1,5 @@ +--- +"chainlink": minor +--- + +#added address book remove feature diff --git a/deployment/address_book.go b/deployment/address_book.go index 8385bc0e9f1..076e2a235d6 100644 --- a/deployment/address_book.go +++ b/deployment/address_book.go @@ -3,6 +3,9 @@ package deployment import ( "fmt" "strings" + "sync" + + "golang.org/x/exp/maps" "github.com/Masterminds/semver/v3" "github.com/ethereum/go-ethereum/common" @@ -82,14 +85,16 @@ type AddressBook interface { AddressesForChain(chain uint64) (map[string]TypeAndVersion, error) // Allows for merging address books (e.g. new deployments with existing ones) Merge(other AddressBook) error + Remove(ab AddressBook) error } type AddressBookMap struct { - AddressesByChain map[uint64]map[string]TypeAndVersion + addressesByChain map[uint64]map[string]TypeAndVersion + mtx sync.RWMutex } -// Save will save an address for a given chain selector. It will error if there is a conflicting existing address. -func (m *AddressBookMap) Save(chainSelector uint64, address string, typeAndVersion TypeAndVersion) error { +// save will save an address for a given chain selector. It will error if there is a conflicting existing address. +func (m *AddressBookMap) save(chainSelector uint64, address string, typeAndVersion TypeAndVersion) error { _, exists := chainsel.ChainBySelector(chainSelector) if !exists { return errors.Wrapf(ErrInvalidChainSelector, "chain selector %d", chainSelector) @@ -106,19 +111,34 @@ func (m *AddressBookMap) Save(chainSelector uint64, address string, typeAndVersi if typeAndVersion.Type == "" { return fmt.Errorf("type cannot be empty") } - if _, exists := m.AddressesByChain[chainSelector]; !exists { + + if _, exists := m.addressesByChain[chainSelector]; !exists { // First time chain add, create map - m.AddressesByChain[chainSelector] = make(map[string]TypeAndVersion) + m.addressesByChain[chainSelector] = make(map[string]TypeAndVersion) } - if _, exists := m.AddressesByChain[chainSelector][address]; exists { + if _, exists := m.addressesByChain[chainSelector][address]; exists { return fmt.Errorf("address %s already exists for chain %d", address, chainSelector) } - m.AddressesByChain[chainSelector][address] = typeAndVersion + m.addressesByChain[chainSelector][address] = typeAndVersion return nil } +// Save will save an address for a given chain selector. It will error if there is a conflicting existing address. +// thread safety version of the save method +func (m *AddressBookMap) Save(chainSelector uint64, address string, typeAndVersion TypeAndVersion) error { + m.mtx.Lock() + defer m.mtx.Unlock() + return m.save(chainSelector, address, typeAndVersion) +} + func (m *AddressBookMap) Addresses() (map[uint64]map[string]TypeAndVersion, error) { - return m.AddressesByChain, nil + m.mtx.RLock() + defer m.mtx.RUnlock() + + // maps are mutable and pass via a pointer + // creating a copy of the map to prevent concurrency + // read and changes outside object-bound + return m.cloneAddresses(m.addressesByChain), nil } func (m *AddressBookMap) AddressesForChain(chainSelector uint64) (map[string]TypeAndVersion, error) { @@ -126,10 +146,18 @@ func (m *AddressBookMap) AddressesForChain(chainSelector uint64) (map[string]Typ if !exists { return nil, errors.Wrapf(ErrInvalidChainSelector, "chain selector %d", chainSelector) } - if _, exists := m.AddressesByChain[chainSelector]; !exists { + + m.mtx.RLock() + defer m.mtx.RUnlock() + + if _, exists := m.addressesByChain[chainSelector]; !exists { return nil, errors.Wrapf(ErrChainNotFound, "chain selector %d", chainSelector) } - return m.AddressesByChain[chainSelector], nil + + // maps are mutable and pass via a pointer + // creating a copy of the map to prevent concurrency + // read and changes outside object-bound + return maps.Clone(m.addressesByChain[chainSelector]), nil } // Merge will merge the addresses from another address book into this one. @@ -139,9 +167,13 @@ func (m *AddressBookMap) Merge(ab AddressBook) error { if err != nil { return err } - for chain, chainAddresses := range addresses { - for address, typeAndVersions := range chainAddresses { - if err := m.Save(chain, address, typeAndVersions); err != nil { + + m.mtx.Lock() + defer m.mtx.Unlock() + + for chainSelector, chainAddresses := range addresses { + for address, typeAndVersion := range chainAddresses { + if err := m.save(chainSelector, address, typeAndVersion); err != nil { return err } } @@ -149,18 +181,57 @@ func (m *AddressBookMap) Merge(ab AddressBook) error { return nil } +// Remove removes the address book addresses specified via the argument from the AddressBookMap. +// Errors if all the addresses in the given address book are not contained in the AddressBookMap. +func (m *AddressBookMap) Remove(ab AddressBook) error { + addresses, err := ab.Addresses() + if err != nil { + return err + } + + m.mtx.Lock() + defer m.mtx.Unlock() + + // State of m.addressesByChain storage must not be changed in case of an error + // need to do double iteration over the address book. First validation, second actual deletion + for chainSelector, chainAddresses := range addresses { + for address, _ := range chainAddresses { + if _, exists := m.addressesByChain[chainSelector][address]; !exists { + return errors.New("AddressBookMap does not contain address from the given address book") + } + } + } + + for chainSelector, chainAddresses := range addresses { + for address, _ := range chainAddresses { + delete(m.addressesByChain[chainSelector], address) + } + } + + return nil +} + +// cloneAddresses creates a deep copy of map[uint64]map[string]TypeAndVersion object +func (m *AddressBookMap) cloneAddresses(input map[uint64]map[string]TypeAndVersion) map[uint64]map[string]TypeAndVersion { + result := make(map[uint64]map[string]TypeAndVersion) + for chainSelector, chainAddresses := range input { + result[chainSelector] = maps.Clone(chainAddresses) + } + return result +} + // TODO: Maybe could add an environment argument // which would ensure only mainnet/testnet chain selectors are used // for further safety? func NewMemoryAddressBook() *AddressBookMap { return &AddressBookMap{ - AddressesByChain: make(map[uint64]map[string]TypeAndVersion), + addressesByChain: make(map[uint64]map[string]TypeAndVersion), } } func NewMemoryAddressBookFromMap(addressesByChain map[uint64]map[string]TypeAndVersion) *AddressBookMap { return &AddressBookMap{ - AddressesByChain: addressesByChain, + addressesByChain: addressesByChain, } } diff --git a/deployment/address_book_test.go b/deployment/address_book_test.go index bf3d2ad965c..9040902a169 100644 --- a/deployment/address_book_test.go +++ b/deployment/address_book_test.go @@ -2,6 +2,8 @@ package deployment import ( "errors" + "math/big" + "sync" "testing" "github.com/ethereum/go-ethereum/common" @@ -118,3 +120,122 @@ func TestAddressBook_Merge(t *testing.T) { }, }) } + +func TestAddressBook_Remove(t *testing.T) { + onRamp100 := NewTypeAndVersion("OnRamp", Version1_0_0) + onRamp110 := NewTypeAndVersion("OnRamp", Version1_1_0) + addr1 := common.HexToAddress("0x1").String() + addr2 := common.HexToAddress("0x2").String() + addr3 := common.HexToAddress("0x3").String() + + baseAB := NewMemoryAddressBookFromMap(map[uint64]map[string]TypeAndVersion{ + chainsel.TEST_90000001.Selector: { + addr1: onRamp100, + addr2: onRamp100, + }, + chainsel.TEST_90000002.Selector: { + addr1: onRamp110, + addr3: onRamp110, + }, + }) + + copyOfBaseAB := NewMemoryAddressBookFromMap(baseAB.cloneAddresses(baseAB.addressesByChain)) + + // this address book shouldn't be removed (state of baseAB not changed, error thrown) + failAB := NewMemoryAddressBookFromMap(map[uint64]map[string]TypeAndVersion{ + chainsel.TEST_90000001.Selector: { + addr1: onRamp100, + addr3: onRamp100, // doesn't exist in TEST_90000001.Selector + }, + }) + require.Error(t, baseAB.Remove(failAB)) + require.EqualValues(t, baseAB, copyOfBaseAB) + + // this Address book should be removed without error + successAB := NewMemoryAddressBookFromMap(map[uint64]map[string]TypeAndVersion{ + chainsel.TEST_90000002.Selector: { + addr3: onRamp100, + }, + chainsel.TEST_90000001.Selector: { + addr2: onRamp100, + }, + }) + + expectingAB := NewMemoryAddressBookFromMap(map[uint64]map[string]TypeAndVersion{ + chainsel.TEST_90000001.Selector: { + addr1: onRamp100, + }, + chainsel.TEST_90000002.Selector: { + addr1: onRamp110}, + }) + + require.NoError(t, baseAB.Remove(successAB)) + require.EqualValues(t, baseAB, expectingAB) +} + +func TestAddressBook_ConcurrencyAndDeadlock(t *testing.T) { + onRamp100 := NewTypeAndVersion("OnRamp", Version1_0_0) + onRamp110 := NewTypeAndVersion("OnRamp", Version1_1_0) + + baseAB := NewMemoryAddressBookFromMap(map[uint64]map[string]TypeAndVersion{ + chainsel.TEST_90000001.Selector: { + common.BigToAddress(big.NewInt(1)).String(): onRamp100, + }, + }) + + // concurrent writes + var i int64 + wg := sync.WaitGroup{} + for i = 2; i < 1000; i++ { + wg.Add(1) + go func(input int64) { + require.NoError(t, baseAB.Save( + chainsel.TEST_90000001.Selector, + common.BigToAddress(big.NewInt(input)).String(), + onRamp100, + )) + wg.Done() + }(i) + } + + // concurrent reads + for i = 0; i < 100; i++ { + wg.Add(1) + go func(input int64) { + addresses, err := baseAB.Addresses() + require.NoError(t, err) + for chainSelector, chainAddresses := range addresses { + // concurrent read chainAddresses from Addresses() method + for address, _ := range chainAddresses { + addresses[chainSelector][address] = onRamp110 + } + + // concurrent read chainAddresses from AddressesForChain() method + chainAddresses, err = baseAB.AddressesForChain(chainSelector) + require.NoError(t, err) + for address, _ := range chainAddresses { + _ = addresses[chainSelector][address] + } + } + require.NoError(t, err) + wg.Done() + }(i) + } + + // concurrent merges, starts from 1001 to avoid address conflicts + for i = 1001; i < 1100; i++ { + wg.Add(1) + go func(input int64) { + // concurrent merge + additionalAB := NewMemoryAddressBookFromMap(map[uint64]map[string]TypeAndVersion{ + chainsel.TEST_90000002.Selector: { + common.BigToAddress(big.NewInt(input)).String(): onRamp100, + }, + }) + require.NoError(t, baseAB.Merge(additionalAB)) + wg.Done() + }(i) + } + + wg.Wait() +} From de8e9915d4035f2fc6371ce0210a19399aa7c0c1 Mon Sep 17 00:00:00 2001 From: Rens Rooimans Date: Mon, 18 Nov 2024 13:26:48 +0100 Subject: [PATCH 04/13] update CCIP contract license to 1.6 (#15089) * update license to 1.6 * change license of npm * add changeset --- contracts/.changeset/fair-pans-prove.md | 5 +++++ contracts/package.json | 2 +- contracts/src/v0.8/ccip/LICENSE.md | 7 +++---- ...-CCIP-License-grants.md => v1.6-CCIP-License-grants.md} | 4 ++-- 4 files changed, 11 insertions(+), 7 deletions(-) create mode 100644 contracts/.changeset/fair-pans-prove.md rename contracts/src/v0.8/ccip/{v1.5-CCIP-License-grants.md => v1.6-CCIP-License-grants.md} (81%) diff --git a/contracts/.changeset/fair-pans-prove.md b/contracts/.changeset/fair-pans-prove.md new file mode 100644 index 00000000000..652af3c9fe7 --- /dev/null +++ b/contracts/.changeset/fair-pans-prove.md @@ -0,0 +1,5 @@ +--- +'@chainlink/contracts': patch +--- + +#internal bump license to 1.6 diff --git a/contracts/package.json b/contracts/package.json index 731b695f636..1e4da89843a 100644 --- a/contracts/package.json +++ b/contracts/package.json @@ -3,7 +3,7 @@ "version": "1.3.0", "description": "Chainlink smart contracts", "author": "Chainlink devs", - "license": "MIT", + "license": "BUSL-1.1", "private": false, "scripts": { "test": "hardhat test --parallel", diff --git a/contracts/src/v0.8/ccip/LICENSE.md b/contracts/src/v0.8/ccip/LICENSE.md index b2e82483e93..76ec227fba6 100644 --- a/contracts/src/v0.8/ccip/LICENSE.md +++ b/contracts/src/v0.8/ccip/LICENSE.md @@ -9,13 +9,12 @@ Parameters Licensor: SmartContract Chainlink Limited SEZC -Licensed Work: Cross-Chain Interoperability Protocol v1.5 +Licensed Work: Cross-Chain Interoperability Protocol v1.6 The Licensed Work is (c) 2023 SmartContract Chainlink Limited SEZC -Additional Use Grant: Any uses listed and defined at [v1.5-CCIP-License-grants]( -./v1.5-CCIP-License-grants.md) +Additional Use Grant: Any uses listed and defined at [v1.6-CCIP-License-grants](./v1.6-CCIP-License-grants.md) -Change Date: Aug 16, 2028 +Change Date: Nov 1, 2028 Change License: MIT diff --git a/contracts/src/v0.8/ccip/v1.5-CCIP-License-grants.md b/contracts/src/v0.8/ccip/v1.6-CCIP-License-grants.md similarity index 81% rename from contracts/src/v0.8/ccip/v1.5-CCIP-License-grants.md rename to contracts/src/v0.8/ccip/v1.6-CCIP-License-grants.md index ef0f55ea924..716f2abb903 100644 --- a/contracts/src/v0.8/ccip/v1.5-CCIP-License-grants.md +++ b/contracts/src/v0.8/ccip/v1.6-CCIP-License-grants.md @@ -1,8 +1,8 @@ -v1.5-CCIP-License-grants +v1.6-CCIP-License-grants Additional Use Grant(s): -You may make use of the Cross-Chain Interoperability Protocol v1.5 (which is available subject to the license here, the “Licensed Work ”) solely for purposes of +You may make use of the Cross-Chain Interoperability Protocol v1.6 (which is available subject to the license here, the “Licensed Work ”) solely for purposes of 1. importing client-side libraries or example clients to facilitate the integration of the Licensed Work into your application. 2. Developing, deploying and operating [the token pool contracts](./pools) solely for purposes of the integration and use of CCIP. \ No newline at end of file From 708ce0e98675fb8b6217dee316fd29ce7404034f Mon Sep 17 00:00:00 2001 From: Cedric Date: Mon, 18 Nov 2024 15:01:38 +0000 Subject: [PATCH 05/13] [CAPPL-292] Add update nodes action (#15265) --- .../internal/append_node_capabilities.go | 10 +- .../internal/update_node_capabilities.go | 11 +- .../changeset/internal/update_nodes.go | 74 ++++- .../changeset/internal/update_nodes_test.go | 284 ++++++++++++++---- deployment/keystone/changeset/update_nodes.go | 24 ++ 5 files changed, 323 insertions(+), 80 deletions(-) create mode 100644 deployment/keystone/changeset/update_nodes.go diff --git a/deployment/keystone/changeset/internal/append_node_capabilities.go b/deployment/keystone/changeset/internal/append_node_capabilities.go index e74d3178ef2..cb28c03c6f5 100644 --- a/deployment/keystone/changeset/internal/append_node_capabilities.go +++ b/deployment/keystone/changeset/internal/append_node_capabilities.go @@ -42,19 +42,19 @@ func AppendNodeCapabilitiesImpl(lggr logger.Logger, req *AppendNodeCapabilitiesR } // for each node, merge the new capabilities with the existing ones and update the node - capsByPeer := make(map[p2pkey.PeerID][]kcr.CapabilitiesRegistryCapability) + updatesByPeer := make(map[p2pkey.PeerID]NodeUpdate) for p2pID, caps := range req.P2pToCapabilities { caps, err := AppendCapabilities(lggr, req.Registry, req.Chain, []p2pkey.PeerID{p2pID}, caps) if err != nil { return nil, fmt.Errorf("failed to append capabilities for p2p %s: %w", p2pID, err) } - capsByPeer[p2pID] = caps[p2pID] + updatesByPeer[p2pID] = NodeUpdate{Capabilities: caps[p2pID]} } updateNodesReq := &UpdateNodesRequest{ - Chain: req.Chain, - Registry: req.Registry, - P2pToCapabilities: capsByPeer, + Chain: req.Chain, + Registry: req.Registry, + P2pToUpdates: updatesByPeer, } resp, err := UpdateNodes(lggr, updateNodesReq) if err != nil { diff --git a/deployment/keystone/changeset/internal/update_node_capabilities.go b/deployment/keystone/changeset/internal/update_node_capabilities.go index c7e2e902437..0420c46f27d 100644 --- a/deployment/keystone/changeset/internal/update_node_capabilities.go +++ b/deployment/keystone/changeset/internal/update_node_capabilities.go @@ -42,10 +42,15 @@ func UpdateNodeCapabilitiesImpl(lggr logger.Logger, req *UpdateNodeCapabilitiesI return nil, fmt.Errorf("failed to add capabilities: %w", err) } + p2pToUpdates := map[p2pkey.PeerID]NodeUpdate{} + for id, caps := range req.P2pToCapabilities { + p2pToUpdates[id] = NodeUpdate{Capabilities: caps} + } + updateNodesReq := &UpdateNodesRequest{ - Chain: req.Chain, - Registry: req.Registry, - P2pToCapabilities: req.P2pToCapabilities, + Chain: req.Chain, + Registry: req.Registry, + P2pToUpdates: p2pToUpdates, } resp, err := UpdateNodes(lggr, updateNodesReq) if err != nil { diff --git a/deployment/keystone/changeset/internal/update_nodes.go b/deployment/keystone/changeset/internal/update_nodes.go index d263623cdc6..b8a08c37e50 100644 --- a/deployment/keystone/changeset/internal/update_nodes.go +++ b/deployment/keystone/changeset/internal/update_nodes.go @@ -2,6 +2,7 @@ package internal import ( "bytes" + "encoding/hex" "errors" "fmt" "sort" @@ -16,15 +17,23 @@ import ( kslib "github.com/smartcontractkit/chainlink/deployment/keystone" ) +type NodeUpdate struct { + EncryptionPublicKey string + NodeOperatorID uint32 + Signer [32]byte + + Capabilities []kcr.CapabilitiesRegistryCapability +} + type UpdateNodesRequest struct { Chain deployment.Chain Registry *kcr.CapabilitiesRegistry - P2pToCapabilities map[p2pkey.PeerID][]kcr.CapabilitiesRegistryCapability + P2pToUpdates map[p2pkey.PeerID]NodeUpdate } func (req *UpdateNodesRequest) NodeParams() ([]kcr.CapabilitiesRegistryNodeParams, error) { - return makeNodeParams(req.Registry, req.P2pToCapabilities) + return makeNodeParams(req.Registry, req.P2pToUpdates) } // P2PSignerEnc represent the key fields in kcr.CapabilitiesRegistryNodeParams @@ -36,19 +45,30 @@ type P2PSignerEnc struct { } func (req *UpdateNodesRequest) Validate() error { - if len(req.P2pToCapabilities) == 0 { + if len(req.P2pToUpdates) == 0 { return errors.New("p2pToCapabilities is empty") } // no duplicate capabilities - for peer, caps := range req.P2pToCapabilities { + for peer, updates := range req.P2pToUpdates { seen := make(map[string]struct{}) - for _, cap := range caps { + for _, cap := range updates.Capabilities { id := kslib.CapabilityID(cap) if _, exists := seen[id]; exists { return fmt.Errorf("duplicate capability %s for %s", id, peer) } seen[id] = struct{}{} } + + if updates.EncryptionPublicKey != "" { + pk, err := hex.DecodeString(updates.EncryptionPublicKey) + if err != nil { + return fmt.Errorf("invalid public key: could not hex decode: %w", err) + } + + if len(pk) != 32 { + return fmt.Errorf("invalid public key: got len %d, need 32", len(pk)) + } + } } if req.Registry == nil { @@ -136,11 +156,11 @@ func AppendCapabilities(lggr logger.Logger, registry *kcr.CapabilitiesRegistry, } func makeNodeParams(registry *kcr.CapabilitiesRegistry, - p2pToCapabilities map[p2pkey.PeerID][]kcr.CapabilitiesRegistryCapability) ([]kcr.CapabilitiesRegistryNodeParams, error) { + p2pToUpdates map[p2pkey.PeerID]NodeUpdate) ([]kcr.CapabilitiesRegistryNodeParams, error) { var out []kcr.CapabilitiesRegistryNodeParams var p2pIds []p2pkey.PeerID - for p2pID := range p2pToCapabilities { + for p2pID := range p2pToUpdates { p2pIds = append(p2pIds, p2pID) } @@ -150,20 +170,46 @@ func makeNodeParams(registry *kcr.CapabilitiesRegistry, return nil, fmt.Errorf("failed to get nodes by p2p ids: %w", err) } for _, node := range nodes { - caps, ok := p2pToCapabilities[node.P2pId] + updates, ok := p2pToUpdates[node.P2pId] if !ok { return nil, fmt.Errorf("capabilities not found for node %s", node.P2pId) } - ids, err := capabilityIds(registry, caps) - if err != nil { - return nil, fmt.Errorf("failed to get capability ids: %w", err) + + ids := node.HashedCapabilityIds + if len(updates.Capabilities) > 0 { + is, err := capabilityIds(registry, updates.Capabilities) + if err != nil { + return nil, fmt.Errorf("failed to get capability ids: %w", err) + } + ids = is + } + + encryptionKey := node.EncryptionPublicKey + if updates.EncryptionPublicKey != "" { + pk, err := hex.DecodeString(updates.EncryptionPublicKey) + if err != nil { + return nil, fmt.Errorf("failed to decode encryption public key: %w", err) + } + encryptionKey = [32]byte(pk) } + + signer := node.Signer + var zero [32]byte + if !bytes.Equal(updates.Signer[:], zero[:]) { + signer = updates.Signer + } + + nodeOperatorID := node.NodeOperatorId + if updates.NodeOperatorID != 0 { + nodeOperatorID = updates.NodeOperatorID + } + out = append(out, kcr.CapabilitiesRegistryNodeParams{ - NodeOperatorId: node.NodeOperatorId, + NodeOperatorId: nodeOperatorID, P2pId: node.P2pId, HashedCapabilityIds: ids, - EncryptionPublicKey: node.EncryptionPublicKey, - Signer: node.Signer, + EncryptionPublicKey: encryptionKey, + Signer: signer, }) } sort.Slice(out, func(i, j int) bool { diff --git a/deployment/keystone/changeset/internal/update_nodes_test.go b/deployment/keystone/changeset/internal/update_nodes_test.go index 5488e5c761d..395f1060465 100644 --- a/deployment/keystone/changeset/internal/update_nodes_test.go +++ b/deployment/keystone/changeset/internal/update_nodes_test.go @@ -2,6 +2,8 @@ package internal_test import ( "bytes" + "crypto/rand" + "encoding/hex" "fmt" "sort" "testing" @@ -24,10 +26,10 @@ import ( func Test_UpdateNodesRequest_validate(t *testing.T) { type fields struct { - p2pToCapabilities map[p2pkey.PeerID][]kcr.CapabilitiesRegistryCapability - nopToNodes map[kcr.CapabilitiesRegistryNodeOperator][]*internal.P2PSignerEnc - chain deployment.Chain - registry *kcr.CapabilitiesRegistry + p2pToUpdates map[p2pkey.PeerID]internal.NodeUpdate + nopToNodes map[kcr.CapabilitiesRegistryNodeOperator][]*internal.P2PSignerEnc + chain deployment.Chain + registry *kcr.CapabilitiesRegistry } tests := []struct { name string @@ -37,10 +39,38 @@ func Test_UpdateNodesRequest_validate(t *testing.T) { { name: "err", fields: fields{ - p2pToCapabilities: map[p2pkey.PeerID][]kcr.CapabilitiesRegistryCapability{}, - nopToNodes: nil, - chain: deployment.Chain{}, - registry: nil, + p2pToUpdates: map[p2pkey.PeerID]internal.NodeUpdate{}, + nopToNodes: nil, + chain: deployment.Chain{}, + registry: nil, + }, + wantErr: true, + }, + { + name: "invalid encryption key -- cannot decode", + fields: fields{ + p2pToUpdates: map[p2pkey.PeerID]internal.NodeUpdate{ + p2pkey.PeerID{}: { + EncryptionPublicKey: "jk", + }, + }, + nopToNodes: nil, + chain: deployment.Chain{}, + registry: nil, + }, + wantErr: true, + }, + { + name: "invalid encryption key -- invalid length", + fields: fields{ + p2pToUpdates: map[p2pkey.PeerID]internal.NodeUpdate{ + testPeerID(t, "peerID_1"): { + EncryptionPublicKey: "aabb", + }, + }, + nopToNodes: nil, + chain: deployment.Chain{}, + registry: nil, }, wantErr: true, }, @@ -48,9 +78,9 @@ func Test_UpdateNodesRequest_validate(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { req := &internal.UpdateNodesRequest{ - P2pToCapabilities: tt.fields.p2pToCapabilities, - Chain: tt.fields.chain, - Registry: tt.fields.registry, + P2pToUpdates: tt.fields.p2pToUpdates, + Chain: tt.fields.chain, + Registry: tt.fields.registry, } if err := req.Validate(); (err != nil) != tt.wantErr { t.Errorf("internal.UpdateNodesRequest.validate() error = %v, wantErr %v", err, tt.wantErr) @@ -59,10 +89,18 @@ func Test_UpdateNodesRequest_validate(t *testing.T) { } } +func newEncryptionKey() [32]byte { + key := make([]byte, 32) + rand.Read(key) + return [32]byte(key) +} + func TestUpdateNodes(t *testing.T) { chain := testChain(t) require.NotNil(t, chain) lggr := logger.Test(t) + newKey := newEncryptionKey() + newKeyStr := hex.EncodeToString(newKey[:]) type args struct { lggr logger.Logger @@ -80,12 +118,14 @@ func TestUpdateNodes(t *testing.T) { args: args{ lggr: lggr, req: &internal.UpdateNodesRequest{ - P2pToCapabilities: map[p2pkey.PeerID][]kcr.CapabilitiesRegistryCapability{ - testPeerID(t, "peerID_1"): []kcr.CapabilitiesRegistryCapability{ - { - LabelledName: "cap1", - Version: "1.0.0", - CapabilityType: 0, + P2pToUpdates: map[p2pkey.PeerID]internal.NodeUpdate{ + testPeerID(t, "peerID_1"): { + Capabilities: []kcr.CapabilitiesRegistryCapability{ + { + LabelledName: "cap1", + Version: "1.0.0", + CapabilityType: 0, + }, }, }, }, @@ -115,23 +155,24 @@ func TestUpdateNodes(t *testing.T) { }, wantErr: false, }, - { name: "one node, two capabilities", args: args{ lggr: lggr, req: &internal.UpdateNodesRequest{ - P2pToCapabilities: map[p2pkey.PeerID][]kcr.CapabilitiesRegistryCapability{ - testPeerID(t, "peerID_1"): []kcr.CapabilitiesRegistryCapability{ - { - LabelledName: "cap1", - Version: "1.0.0", - CapabilityType: 0, - }, - { - LabelledName: "cap2", - Version: "1.0.1", - CapabilityType: 2, + P2pToUpdates: map[p2pkey.PeerID]internal.NodeUpdate{ + testPeerID(t, "peerID_1"): internal.NodeUpdate{ + Capabilities: []kcr.CapabilitiesRegistryCapability{ + { + LabelledName: "cap1", + Version: "1.0.0", + CapabilityType: 0, + }, + { + LabelledName: "cap2", + Version: "1.0.1", + CapabilityType: 2, + }, }, }, }, @@ -173,19 +214,23 @@ func TestUpdateNodes(t *testing.T) { args: args{ lggr: lggr, req: &internal.UpdateNodesRequest{ - P2pToCapabilities: map[p2pkey.PeerID][]kcr.CapabilitiesRegistryCapability{ - testPeerID(t, "peerID_1"): []kcr.CapabilitiesRegistryCapability{ - { - LabelledName: "cap1", - Version: "1.0.0", - CapabilityType: 0, + P2pToUpdates: map[p2pkey.PeerID]internal.NodeUpdate{ + testPeerID(t, "peerID_1"): internal.NodeUpdate{ + Capabilities: []kcr.CapabilitiesRegistryCapability{ + { + LabelledName: "cap1", + Version: "1.0.0", + CapabilityType: 0, + }, }, }, - testPeerID(t, "peerID_2"): []kcr.CapabilitiesRegistryCapability{ - { - LabelledName: "cap1", - Version: "1.0.0", - CapabilityType: 0, + testPeerID(t, "peerID_2"): internal.NodeUpdate{ + Capabilities: []kcr.CapabilitiesRegistryCapability{ + { + LabelledName: "cap1", + Version: "1.0.0", + CapabilityType: 0, + }, }, }, }, @@ -234,19 +279,23 @@ func TestUpdateNodes(t *testing.T) { args: args{ lggr: lggr, req: &internal.UpdateNodesRequest{ - P2pToCapabilities: map[p2pkey.PeerID][]kcr.CapabilitiesRegistryCapability{ - testPeerID(t, "peerID_1"): []kcr.CapabilitiesRegistryCapability{ - { - LabelledName: "cap1", - Version: "1.0.0", - CapabilityType: 0, + P2pToUpdates: map[p2pkey.PeerID]internal.NodeUpdate{ + testPeerID(t, "peerID_1"): internal.NodeUpdate{ + Capabilities: []kcr.CapabilitiesRegistryCapability{ + { + LabelledName: "cap1", + Version: "1.0.0", + CapabilityType: 0, + }, }, }, - testPeerID(t, "peerID_2"): []kcr.CapabilitiesRegistryCapability{ - { - LabelledName: "cap2", - Version: "1.0.1", - CapabilityType: 0, + testPeerID(t, "peerID_2"): internal.NodeUpdate{ + Capabilities: []kcr.CapabilitiesRegistryCapability{ + { + LabelledName: "cap2", + Version: "1.0.1", + CapabilityType: 0, + }, }, }, }, @@ -290,6 +339,111 @@ func TestUpdateNodes(t *testing.T) { }, wantErr: false, }, + { + name: "one node, updated encryption key", + args: args{ + lggr: lggr, + req: &internal.UpdateNodesRequest{ + P2pToUpdates: map[p2pkey.PeerID]internal.NodeUpdate{ + testPeerID(t, "peerID_1"): { + EncryptionPublicKey: newKeyStr, + }, + }, + Chain: chain, + Registry: nil, // set in test to ensure no conflicts + }, + nopsToNodes: map[kcr.CapabilitiesRegistryNodeOperator][]*internal.P2PSignerEnc{ + testNop(t, "nop1"): []*internal.P2PSignerEnc{ + { + P2PKey: testPeerID(t, "peerID_1"), + Signer: [32]byte{0: 1, 1: 2}, + EncryptionPublicKey: [32]byte{0: 1, 1: 2}, + }, + }, + }, + }, + want: &internal.UpdateNodesResponse{ + NodeParams: []kcr.CapabilitiesRegistryNodeParams{ + { + NodeOperatorId: 1, + P2pId: testPeerID(t, "peerID_1"), + Signer: [32]byte{0: 1, 1: 2}, + EncryptionPublicKey: newKey, + }, + }, + }, + wantErr: false, + }, + { + name: "one node, updated signer", + args: args{ + lggr: lggr, + req: &internal.UpdateNodesRequest{ + P2pToUpdates: map[p2pkey.PeerID]internal.NodeUpdate{ + testPeerID(t, "peerID_1"): { + Signer: [32]byte{0: 2, 1: 3}, + }, + }, + Chain: chain, + Registry: nil, // set in test to ensure no conflicts + }, + nopsToNodes: map[kcr.CapabilitiesRegistryNodeOperator][]*internal.P2PSignerEnc{ + testNop(t, "nop1"): []*internal.P2PSignerEnc{ + { + P2PKey: testPeerID(t, "peerID_1"), + Signer: [32]byte{0: 1, 1: 2}, + EncryptionPublicKey: [32]byte{0: 1, 1: 2}, + }, + }, + }, + }, + want: &internal.UpdateNodesResponse{ + NodeParams: []kcr.CapabilitiesRegistryNodeParams{ + { + NodeOperatorId: 1, + P2pId: testPeerID(t, "peerID_1"), + Signer: [32]byte{0: 2, 1: 3}, + EncryptionPublicKey: [32]byte{0: 1, 1: 2}, + }, + }, + }, + wantErr: false, + }, + { + name: "one node, updated nodeOperatorID", + args: args{ + lggr: lggr, + req: &internal.UpdateNodesRequest{ + P2pToUpdates: map[p2pkey.PeerID]internal.NodeUpdate{ + testPeerID(t, "peerID_1"): { + NodeOperatorID: 2, + }, + }, + Chain: chain, + Registry: nil, // set in test to ensure no conflicts + }, + nopsToNodes: map[kcr.CapabilitiesRegistryNodeOperator][]*internal.P2PSignerEnc{ + testNop(t, "nop1"): []*internal.P2PSignerEnc{ + { + P2PKey: testPeerID(t, "peerID_1"), + Signer: [32]byte{0: 1, 1: 2}, + EncryptionPublicKey: [32]byte{0: 1, 1: 2}, + }, + }, + }, + }, + want: &internal.UpdateNodesResponse{ + NodeParams: []kcr.CapabilitiesRegistryNodeParams{ + { + NodeOperatorId: 2, + P2pId: testPeerID(t, "peerID_1"), + Signer: [32]byte{0: 1, 1: 2}, + EncryptionPublicKey: [32]byte{0: 1, 1: 2}, + }, + }, + }, + wantErr: false, + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { @@ -300,7 +454,7 @@ func TestUpdateNodes(t *testing.T) { CapabilityType: 0, } initMap := make(map[p2pkey.PeerID][]kcr.CapabilitiesRegistryCapability) - for p2pID := range tt.args.req.P2pToCapabilities { + for p2pID := range tt.args.req.P2pToUpdates { initMap[p2pID] = []kcr.CapabilitiesRegistryCapability{phonyCap} } setupResp := kstest.SetupTestRegistry(t, tt.args.lggr, &kstest.SetupTestRegistryRequest{ @@ -311,12 +465,21 @@ func TestUpdateNodes(t *testing.T) { tt.args.req.Registry = setupResp.Registry tt.args.req.Chain = setupResp.Chain + id, err := registry.GetHashedCapabilityId(&bind.CallOpts{}, phonyCap.LabelledName, phonyCap.Version) + require.NoError(t, err) + // register the capabilities that the Update will use expectedUpdatedCaps := make(map[p2pkey.PeerID][]kslib.RegisteredCapability) capCache := kstest.NewCapabiltyCache(t) - for p2p, newCaps := range tt.args.req.P2pToCapabilities { - expectedCaps := capCache.AddCapabilities(tt.args.lggr, tt.args.req.Chain, registry, newCaps) - expectedUpdatedCaps[p2p] = expectedCaps + for p2p, update := range tt.args.req.P2pToUpdates { + if len(update.Capabilities) > 0 { + expectedCaps := capCache.AddCapabilities(tt.args.lggr, tt.args.req.Chain, registry, update.Capabilities) + expectedUpdatedCaps[p2p] = expectedCaps + } else { + expectedUpdatedCaps[p2p] = []kslib.RegisteredCapability{ + {CapabilitiesRegistryCapability: phonyCap, ID: id}, + } + } } got, err := internal.UpdateNodes(tt.args.lggr, tt.args.req) if (err != nil) != tt.wantErr { @@ -328,6 +491,7 @@ func TestUpdateNodes(t *testing.T) { require.Equal(t, expected.NodeOperatorId, p.NodeOperatorId) require.Equal(t, expected.P2pId, p.P2pId) require.Equal(t, expected.Signer, p.Signer) + require.Equal(t, expected.EncryptionPublicKey, p.EncryptionPublicKey) // check the capabilities expectedCaps := expectedUpdatedCaps[p.P2pId] var wantHashedIds [][32]byte @@ -411,9 +575,13 @@ func TestUpdateNodes(t *testing.T) { require.NoError(t, err) var req = &internal.UpdateNodesRequest{ - P2pToCapabilities: p2pToCapabilitiesUpdated, - Chain: chain, - Registry: registry, + P2pToUpdates: map[p2pkey.PeerID]internal.NodeUpdate{ + testPeerID(t, "peerID_1"): internal.NodeUpdate{ + Capabilities: toRegister, + }, + }, + Chain: chain, + Registry: registry, } _, err = internal.UpdateNodes(lggr, req) require.NoError(t, err) diff --git a/deployment/keystone/changeset/update_nodes.go b/deployment/keystone/changeset/update_nodes.go new file mode 100644 index 00000000000..7e436160d2e --- /dev/null +++ b/deployment/keystone/changeset/update_nodes.go @@ -0,0 +1,24 @@ +package changeset + +import ( + "fmt" + + "github.com/smartcontractkit/chainlink/deployment" + "github.com/smartcontractkit/chainlink/deployment/keystone/changeset/internal" +) + +var _ deployment.ChangeSet[*UpdateNodesRequest] = UpdateNodes + +type UpdateNodesRequest = internal.UpdateNodesRequest +type NodeUpdate = internal.NodeUpdate + +// UpdateNodes updates the a set of nodes. +// This a complex action in practice that involves registering missing capabilities, adding the nodes, and updating +// the capabilities of the DON +func UpdateNodes(env deployment.Environment, req *UpdateNodesRequest) (deployment.ChangesetOutput, error) { + _, err := internal.UpdateNodes(env.Logger, req) + if err != nil { + return deployment.ChangesetOutput{}, fmt.Errorf("failed to update don: %w", err) + } + return deployment.ChangesetOutput{}, nil +} From db62c6fcf1d8eaf2d522da5bbd30754dc94a4fdc Mon Sep 17 00:00:00 2001 From: Lukasz <120112546+lukaszcl@users.noreply.github.com> Date: Mon, 18 Nov 2024 16:27:05 +0100 Subject: [PATCH 06/13] Update flakydetector (#15283) * Comment timeout * Fix flakeguard * Bump --- .github/workflows/find-new-flaky-tests.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/find-new-flaky-tests.yml b/.github/workflows/find-new-flaky-tests.yml index c9a015206fd..363305af468 100644 --- a/.github/workflows/find-new-flaky-tests.yml +++ b/.github/workflows/find-new-flaky-tests.yml @@ -100,7 +100,7 @@ jobs: - name: Install flakeguard shell: bash - run: go install github.com/smartcontractkit/chainlink-testing-framework/tools/flakeguard@9da200418b01268201a0e6477832734a14720d07 + run: go install github.com/smartcontractkit/chainlink-testing-framework/tools/flakeguard@9c9821d6013f4838eb26970c2eef594f4d25398b - name: Find new or updated test packages if: ${{ inputs.runAllTests == false }} @@ -259,7 +259,7 @@ jobs: - name: Install flakeguard shell: bash - run: go install github.com/smartcontractkit/chainlink-testing-framework/tools/flakeguard@9da200418b01268201a0e6477832734a14720d07 + run: go install github.com/smartcontractkit/chainlink-testing-framework/tools/flakeguard@9c9821d6013f4838eb26970c2eef594f4d25398b - name: Run tests with flakeguard shell: bash @@ -301,7 +301,7 @@ jobs: - name: Install flakeguard shell: bash - run: go install github.com/smartcontractkit/chainlink-testing-framework/tools/flakeguard@9da200418b01268201a0e6477832734a14720d07 + run: go install github.com/smartcontractkit/chainlink-testing-framework/tools/flakeguard@9c9821d6013f4838eb26970c2eef594f4d25398b - name: Set combined test results id: set_test_results From a9d6a3f05c2ca8f8efbd909179f06788c356429e Mon Sep 17 00:00:00 2001 From: pavel-raykov <165708424+pavel-raykov@users.noreply.github.com> Date: Mon, 18 Nov 2024 17:09:46 +0100 Subject: [PATCH 07/13] Remove unused vrf key v1 files and move public_key_test. (#15266) * Minor * Minor --- .changeset/purple-seas-help.md | 5 ++ .../keystore/keys/vrfkey/private_key.go | 83 ------------------- .../keystore/keys/vrfkey/private_key_test.go | 40 --------- .../secp256k1}/public_key_test.go | 12 ++- 4 files changed, 10 insertions(+), 130 deletions(-) create mode 100644 .changeset/purple-seas-help.md delete mode 100644 core/services/keystore/keys/vrfkey/private_key.go delete mode 100644 core/services/keystore/keys/vrfkey/private_key_test.go rename core/services/{keystore/keys/vrfkey => signatures/secp256k1}/public_key_test.go (77%) diff --git a/.changeset/purple-seas-help.md b/.changeset/purple-seas-help.md new file mode 100644 index 00000000000..01f8b0049b6 --- /dev/null +++ b/.changeset/purple-seas-help.md @@ -0,0 +1,5 @@ +--- +"chainlink": minor +--- + +#removed unused key files and move public_key test file. diff --git a/core/services/keystore/keys/vrfkey/private_key.go b/core/services/keystore/keys/vrfkey/private_key.go deleted file mode 100644 index dd2545fdd28..00000000000 --- a/core/services/keystore/keys/vrfkey/private_key.go +++ /dev/null @@ -1,83 +0,0 @@ -package vrfkey - -import ( - "encoding/json" - "fmt" - - "github.com/ethereum/go-ethereum/accounts/keystore" - "github.com/google/uuid" - "github.com/pkg/errors" - "go.dedis.ch/kyber/v3" - - "github.com/smartcontractkit/chainlink/v2/core/services/signatures/secp256k1" -) - -// PrivateKey represents the secret used to construct a VRF proof. -// -// Don't serialize directly, use Encrypt method, with user-supplied passphrase. -// The unencrypted PrivateKey struct should only live in-memory. -// -// Only use it if you absolutely need it (i.e., for a novel crypto protocol.) -// Implement whatever cryptography you need on this struct, so your callers -// don't need to know the secret key explicitly. (See, e.g., MarshaledProof.) -type PrivateKey struct { - k kyber.Scalar - PublicKey secp256k1.PublicKey -} - -func (k PrivateKey) ToV2() KeyV2 { - return KeyV2{ - k: &k.k, - PublicKey: k.PublicKey, - } -} - -// fromGethKey returns the vrfkey representation of gethKey. Do not abuse this -// to convert an ethereum key into a VRF key! -func fromGethKey(gethKey *keystore.Key) *PrivateKey { - secretKey := secp256k1.IntToScalar(gethKey.PrivateKey.D) - rawPublicKey, err := secp256k1.ScalarToPublicPoint(secretKey).MarshalBinary() - if err != nil { - panic(err) // Only way this can happen is out-of-memory failure - } - var publicKey secp256k1.PublicKey - copy(publicKey[:], rawPublicKey) - return &PrivateKey{secretKey, publicKey} -} - -func (k *PrivateKey) String() string { - return fmt.Sprintf("PrivateKey{k: , PublicKey: %s}", k.PublicKey) -} - -// GoString reduces the risk of accidentally logging the private key -func (k *PrivateKey) GoString() string { - return k.String() -} - -// Decrypt returns the PrivateKey in e, decrypted via auth, or an error -func Decrypt(e EncryptedVRFKey, auth string) (*PrivateKey, error) { - // NOTE: We do this shuffle to an anonymous struct - // solely to add a throwaway UUID, so we can leverage - // the keystore.DecryptKey from the geth which requires it - // as of 1.10.0. - keyJSON, err := json.Marshal(struct { - Address string `json:"address"` - Crypto keystore.CryptoJSON `json:"crypto"` - Version int `json:"version"` - Id string `json:"id"` - }{ - Address: e.VRFKey.Address, - Crypto: e.VRFKey.Crypto, - Version: e.VRFKey.Version, - Id: uuid.New().String(), - }) - if err != nil { - return nil, errors.Wrapf(err, "while marshaling key for decryption") - } - gethKey, err := keystore.DecryptKey(keyJSON, adulteratedPassword(auth)) - if err != nil { - return nil, errors.Wrapf(err, "could not decrypt VRF key %s", - e.PublicKey.String()) - } - return fromGethKey(gethKey), nil -} diff --git a/core/services/keystore/keys/vrfkey/private_key_test.go b/core/services/keystore/keys/vrfkey/private_key_test.go deleted file mode 100644 index a4010e780df..00000000000 --- a/core/services/keystore/keys/vrfkey/private_key_test.go +++ /dev/null @@ -1,40 +0,0 @@ -package vrfkey - -import ( - "encoding/json" - "fmt" - "testing" - - "github.com/ethereum/go-ethereum/accounts/keystore" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - - "github.com/smartcontractkit/chainlink/v2/core/internal/testutils" - "github.com/smartcontractkit/chainlink/v2/core/utils" -) - -func TestVRFKeys_PrivateKey(t *testing.T) { - jsonKey := `{"PublicKey":"0xd2377bc6be8a2c5ce163e1867ee42ef111e320686f940a98e52e9c019ca0606800","vrf_key":{"address":"b94276ad4e5452732ec0cccf30ef7919b67844b6","crypto":{"cipher":"aes-128-ctr","ciphertext":"ff66d61d02dba54a61bab1ceb8414643f9e76b7351785d2959e2c8b50ee69a92","cipherparams":{"iv":"75705da271b11e330a27b8d593a3930c"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"efe5b372e4fe79d0af576a79d65a1ee35d0792d9c92b70107b5ada1817ea7c7b"},"mac":"e4d0bb08ffd004ab03aeaa42367acbd9bb814c6cfd981f5157503f54c30816e7"},"version":3}}` - k, err := FromEncryptedJSON([]byte(jsonKey), "p4SsW0rD1!@#_") - require.NoError(t, err) - cryptoJSON, err := keystore.EncryptKey(k.toGethKey(), adulteratedPassword(testutils.Password), utils.FastScryptParams.N, utils.FastScryptParams.P) - require.NoError(t, err) - var gethKey gethKeyStruct - err = json.Unmarshal(cryptoJSON, &gethKey) - require.NoError(t, err) - - ek := EncryptedVRFKey{ - PublicKey: k.PublicKey, - VRFKey: gethKey, - } - - pk, err := Decrypt(ek, testutils.Password) - require.NoError(t, err) - _, err = Decrypt(ek, "wrong-password") - assert.Error(t, err) - - kv2 := pk.ToV2() - - assert.Equal(t, fmt.Sprintf("VRFKeyV2{PublicKey: %s}", kv2.PublicKey), kv2.String()) - assert.Equal(t, fmt.Sprintf("PrivateKey{k: , PublicKey: %s}", pk.PublicKey), pk.String()) -} diff --git a/core/services/keystore/keys/vrfkey/public_key_test.go b/core/services/signatures/secp256k1/public_key_test.go similarity index 77% rename from core/services/keystore/keys/vrfkey/public_key_test.go rename to core/services/signatures/secp256k1/public_key_test.go index 70c26ae27fe..eabce44968f 100644 --- a/core/services/keystore/keys/vrfkey/public_key_test.go +++ b/core/services/signatures/secp256k1/public_key_test.go @@ -1,10 +1,8 @@ -package vrfkey +package secp256k1 import ( "testing" - "github.com/smartcontractkit/chainlink/v2/core/services/signatures/secp256k1" - "github.com/smartcontractkit/chainlink/v2/core/services/signatures/cryptotest" "github.com/stretchr/testify/assert" @@ -14,12 +12,12 @@ import ( func TestValueScanIdentityPointSet(t *testing.T) { randomStream := cryptotest.NewStream(t, 0) for i := 0; i < 10; i++ { - p := suite.Point().Pick(randomStream) - var pk, nPk, nnPk secp256k1.PublicKey + p := NewBlakeKeccackSecp256k1().Point().Pick(randomStream) + var pk, nPk, nnPk PublicKey marshaledKey, err := p.MarshalBinary() require.NoError(t, err, "failed to marshal public key") require.Equal(t, copy(pk[:], marshaledKey), - secp256k1.CompressedPublicKeyLength, "failed to copy marshaled key to pk") + CompressedPublicKeyLength, "failed to copy marshaled key to pk") assert.NotEqual(t, pk, nPk, "equality test succeeds on different keys!") np, err := pk.Point() require.NoError(t, err, "failed to marshal public key") @@ -37,7 +35,7 @@ func TestValueScanIdentityPointSet(t *testing.T) { // Tests that PublicKey.Hash gives the same result as the VRFCoordinator's func TestHash(t *testing.T) { - pk, err := secp256k1.NewPublicKeyFromHex("0x9dc09a0f898f3b5e8047204e7ce7e44b587920932f08431e29c9bf6923b8450a01") + pk, err := NewPublicKeyFromHex("0x9dc09a0f898f3b5e8047204e7ce7e44b587920932f08431e29c9bf6923b8450a01") assert.NoError(t, err) assert.Equal(t, "0xc4406d555db624837188b91514a5f47e34d825d935ab887a35c06a3e7c41de69", pk.MustHash().String()) } From 1f9c07de618ecfa3f23b8259ce0558941b5c357f Mon Sep 17 00:00:00 2001 From: Graham Goh Date: Tue, 19 Nov 2024 01:26:32 +0900 Subject: [PATCH 08/13] fix(operator-ui): support creating solana chain config (#15237) This commit bumps the operator ui version to bring in the new feature to create solana chain config in the job-distributor page. Context: https://github.com/smartcontractkit/operator-ui/pull/94 JIRA: https://smartcontract-it.atlassian.net/browse/DPA-1265 --- .changeset/tame-tomatoes-refuse.md | 5 +++++ core/web/assets/index.html | 2 +- core/web/assets/index.html.gz | Bin 419 -> 421 bytes ...b5ea5e.js => main.57f94389bc8271642420.js} | 4 ++-- ....js.gz => main.57f94389bc8271642420.js.gz} | Bin 1197175 -> 1197396 bytes operator_ui/TAG | 2 +- 6 files changed, 9 insertions(+), 4 deletions(-) create mode 100644 .changeset/tame-tomatoes-refuse.md rename core/web/assets/{main.1d1632f9bf7627b5ea5e.js => main.57f94389bc8271642420.js} (93%) rename core/web/assets/{main.1d1632f9bf7627b5ea5e.js.gz => main.57f94389bc8271642420.js.gz} (84%) diff --git a/.changeset/tame-tomatoes-refuse.md b/.changeset/tame-tomatoes-refuse.md new file mode 100644 index 00000000000..530f9d2b519 --- /dev/null +++ b/.changeset/tame-tomatoes-refuse.md @@ -0,0 +1,5 @@ +--- +"chainlink": minor +--- + +#added feat: support creating solana chain config in job distributor page diff --git a/core/web/assets/index.html b/core/web/assets/index.html index b4327b8f308..d5b24848b5d 100644 --- a/core/web/assets/index.html +++ b/core/web/assets/index.html @@ -1 +1 @@ -Operator UIChainlink
\ No newline at end of file +Operator UIChainlink
\ No newline at end of file diff --git a/core/web/assets/index.html.gz b/core/web/assets/index.html.gz index 4d4296b8676a63a0cfb4f79c055995988ac08eeb..6ab5d6b95afa8044415a00b2530b1911615be8db 100644 GIT binary patch delta 410 zcmV;L0cHN91Em9y6@SR7_G;rejT5BJAy7!66q@Fc<5)ZEomSE;(s&d9`?71tP$-mM zB=lguH}f?1L(5(c1FBwPXzb}kXd4?*K=~eWL2>%|$LHlno0FU%qSGVc>%dvG@|*;d zIQ>ek^sdE`JTB+Qf)WWqSQZZf-Q~m(l7P*(0W%0^_55hfQGc?5(l3=UI9+6s;(F7x?Wt@wLUc}hk&I={4eq})jRqt z2xfxt@zHZC|9`@o4#uf^8d3i>tLa0XrU*MUZ_8ObhyL)M&^hwrGYz6z>@Yh$Us{#y zoiv@MN_TBkF!OcOpWjg2)&yqQ<^H@N?6Gr$4> E0Eyem_5c6? delta 408 zcmV;J0cZZD1ET|w6@Tcd_G<0aNgJfiAy7!66q@GH<5-&YPAh2^X}pR5eOcQv6bhvm z2|bwa%{+~L6WGgPL^Vi?ojsojp|c4Elpml}6sMoQe_DRf<}7DO==4PRJaQ4OJZHfy zPCrwS!3CVi3dB!3$z|562`({J|M3 z1PeiY_ux6#e}7?357S&dkEs8e)%>AOQ-U3um*r8rgns{;&?WNf3yq=z_E?-gURu@S zoidu-Ip|j?+I9m>f&SpN#KX|V)Vo<^g zGi)QO&oIH`$yQjEeO5A1RWOc?HJ3sgXi^lMF3d9f1QD7#YfgA`T-DzOI_-PF0ssI} CYRGQ@ diff --git a/core/web/assets/main.1d1632f9bf7627b5ea5e.js b/core/web/assets/main.57f94389bc8271642420.js similarity index 93% rename from core/web/assets/main.1d1632f9bf7627b5ea5e.js rename to core/web/assets/main.57f94389bc8271642420.js index 6707f6d377a..99b5c06781a 100644 --- a/core/web/assets/main.1d1632f9bf7627b5ea5e.js +++ b/core/web/assets/main.57f94389bc8271642420.js @@ -168,7 +168,7 @@ object-assign * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */ Object.defineProperty(t,"__esModule",{value:!0}),"undefined"==typeof window||"function"!=typeof MessageChannel){var n,r,i,a,o,s=null,u=null,c=function(){if(null!==s)try{var e=t.unstable_now();s(!0,e),s=null}catch(n){throw setTimeout(c,0),n}},l=Date.now();t.unstable_now=function(){return Date.now()-l},n=function(e){null!==s?setTimeout(n,0,e):(s=e,setTimeout(c,0))},r=function(e,t){u=setTimeout(e,t)},i=function(){clearTimeout(u)},a=function(){return!1},o=t.unstable_forceFrameRate=function(){}}else{var f=window.performance,d=window.Date,h=window.setTimeout,p=window.clearTimeout;if("undefined"!=typeof console){var b=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),"function"!=typeof b&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")}if("object"==typeof f&&"function"==typeof f.now)t.unstable_now=function(){return f.now()};else{var m=d.now();t.unstable_now=function(){return d.now()-m}}var g=!1,v=null,y=-1,w=5,_=0;a=function(){return t.unstable_now()>=_},o=function(){},t.unstable_forceFrameRate=function(e){0>e||125M(o,n))void 0!==u&&0>M(u,o)?(e[r]=u,e[s]=n,r=s):(e[r]=o,e[a]=n,r=a);else if(void 0!==u&&0>M(u,n))e[r]=u,e[s]=n,r=s;else break a}}return t}return null}function M(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var O=[],A=[],L=1,C=null,I=3,D=!1,N=!1,P=!1;function R(e){for(var t=x(A);null!==t;){if(null===t.callback)T(A);else if(t.startTime<=e)T(A),t.sortIndex=t.expirationTime,k(O,t);else break;t=x(A)}}function j(e){if(P=!1,R(e),!N){if(null!==x(O))N=!0,n(F);else{var t=x(A);null!==t&&r(j,t.startTime-e)}}}function F(e,n){N=!1,P&&(P=!1,i()),D=!0;var o=I;try{for(R(n),C=x(O);null!==C&&(!(C.expirationTime>n)||e&&!a());){var s=C.callback;if(null!==s){C.callback=null,I=C.priorityLevel;var u=s(C.expirationTime<=n);n=t.unstable_now(),"function"==typeof u?C.callback=u:C===x(O)&&T(O),R(n)}else T(O);C=x(O)}if(null!==C)var c=!0;else{var l=x(A);null!==l&&r(j,l.startTime-n),c=!1}return c}finally{C=null,I=o,D=!1}}function Y(e){switch(e){case 1:return -1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}var B=o;t.unstable_ImmediatePriority=1,t.unstable_UserBlockingPriority=2,t.unstable_NormalPriority=3,t.unstable_IdlePriority=5,t.unstable_LowPriority=4,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=I;I=e;try{return t()}finally{I=n}},t.unstable_next=function(e){switch(I){case 1:case 2:case 3:var t=3;break;default:t=I}var n=I;I=t;try{return e()}finally{I=n}},t.unstable_scheduleCallback=function(e,a,o){var s=t.unstable_now();if("object"==typeof o&&null!==o){var u=o.delay;u="number"==typeof u&&0s?(e.sortIndex=u,k(A,e),null===x(O)&&e===x(A)&&(P?i():P=!0,r(j,u-s))):(e.sortIndex=o,k(O,e),N||D||(N=!0,n(F))),e},t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_wrapCallback=function(e){var t=I;return function(){var n=I;I=t;try{return e.apply(this,arguments)}finally{I=n}}},t.unstable_getCurrentPriorityLevel=function(){return I},t.unstable_shouldYield=function(){var e=t.unstable_now();R(e);var n=x(O);return n!==C&&null!==C&&null!==n&&null!==n.callback&&n.startTime<=e&&n.expirationTime>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function c(e,t,n){var r=t.length-1;if(r=0?(i>0&&(e.lastNeed=i-1),i):--r=0?(i>0&&(e.lastNeed=i-2),i):--r=0?(i>0&&(2===i?i=0:e.lastNeed=i-3),i):0}function l(e,t,n){if((192&t[0])!=128)return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if((192&t[1])!=128)return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&(192&t[2])!=128)return e.lastNeed=2,"�"}}function f(e){var t=this.lastTotal-this.lastNeed,n=l(this,e,t);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):void(e.copy(this.lastChar,t,0,e.length),this.lastNeed-=e.length)}function d(e,t){var n=c(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)}function h(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t}function p(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function b(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function m(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function g(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function v(e){return e.toString(this.encoding)}function y(e){return e&&e.length?this.write(e):""}t.s=s,s.prototype.write=function(e){var t,n;if(0===e.length)return"";if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n */ var r=n(48764),i=r.Buffer;function a(e,t){for(var n in e)t[n]=e[n]}function o(e,t,n){return i(e,t,n)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=r:(a(r,t),t.Buffer=o),o.prototype=Object.create(i.prototype),a(i,o),o.from=function(e,t,n){if("number"==typeof e)throw TypeError("Argument must not be a number");return i(e,t,n)},o.alloc=function(e,t,n){if("number"!=typeof e)throw TypeError("Argument must be a number");var r=i(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},o.allocUnsafe=function(e){if("number"!=typeof e)throw TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw TypeError("Argument must be a number");return r.SlowBuffer(e)}},93379(e,t,n){"use strict";var r,i,a=function(){return void 0===r&&(r=Boolean(window&&document&&document.all&&!window.atob)),r},o=(i={},function(e){if(void 0===i[e]){var t=document.querySelector(e);if(window.HTMLIFrameElement&&t instanceof window.HTMLIFrameElement)try{t=t.contentDocument.head}catch(n){t=null}i[e]=t}return i[e]}),s=[];function u(e){for(var t=-1,n=0;nAu});var r,i,a,o,s,u,c,l=n(67294),f=n.t(l,2),d=n(39814),h=n(5977),p=n(57209),b=n(32316),m=n(95880),g=n(17051),v=n(71381),y=n(81701),w=n(3022),_=n(60323),E=n(87591),S=n(25649),k=n(28902),x=n(71426),T=n(48884),M=n(94184),O=n.n(M),A=n(37703),L=n(73935),C=function(){if("undefined"!=typeof Map)return Map;function e(e,t){var n=-1;return e.some(function(e,r){return e[0]===t&&(n=r,!0)}),n}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(t){var n=e(this.__entries__,t),r=this.__entries__[n];return r&&r[1]},t.prototype.set=function(t,n){var r=e(this.__entries__,t);~r?this.__entries__[r][1]=n:this.__entries__.push([t,n])},t.prototype.delete=function(t){var n=this.__entries__,r=e(n,t);~r&&n.splice(r,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){void 0===t&&(t=null);for(var n=0,r=this.__entries__;n0},e.prototype.connect_=function(){I&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),Y?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){I&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,n=void 0===t?"":t;F.some(function(e){return!!~n.indexOf(e)})&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),U=function(e,t){for(var n=0,r=Object.keys(t);n0},e}(),er="undefined"!=typeof WeakMap?new WeakMap:new C,ei=function(){function e(t){if(!(this instanceof e))throw TypeError("Cannot call a class as a function.");if(!arguments.length)throw TypeError("1 argument required, but only 0 present.");var n=B.getInstance(),r=new en(t,n,this);er.set(this,r)}return e}();["observe","unobserve","disconnect"].forEach(function(e){ei.prototype[e]=function(){var t;return(t=er.get(this))[e].apply(t,arguments)}});var ea=void 0!==D.ResizeObserver?D.ResizeObserver:ei;let eo=ea;var es=function(e){var t=[],n=null,r=function(){for(var r=arguments.length,i=Array(r),a=0;a=t||n<0||f&&r>=a}function g(){var e=eb();if(m(e))return v(e);s=setTimeout(g,b(e))}function v(e){return(s=void 0,d&&r)?h(e):(r=i=void 0,o)}function y(){void 0!==s&&clearTimeout(s),c=0,r=u=i=s=void 0}function w(){return void 0===s?o:v(eb())}function _(){var e=eb(),n=m(e);if(r=arguments,i=this,u=e,n){if(void 0===s)return p(u);if(f)return clearTimeout(s),s=setTimeout(g,t),h(u)}return void 0===s&&(s=setTimeout(g,t)),o}return t=ez(t)||0,ed(n)&&(l=!!n.leading,a=(f="maxWait"in n)?eW(ez(n.maxWait)||0,t):a,d="trailing"in n?!!n.trailing:d),_.cancel=y,_.flush=w,_}let eq=eV;var eZ="Expected a function";function eX(e,t,n){var r=!0,i=!0;if("function"!=typeof e)throw TypeError(eZ);return ed(n)&&(r="leading"in n?!!n.leading:r,i="trailing"in n?!!n.trailing:i),eq(e,t,{leading:r,maxWait:t,trailing:i})}let eJ=eX;var eQ={debounce:eq,throttle:eJ},e1=function(e){return eQ[e]},e0=function(e){return"function"==typeof e},e2=function(){return"undefined"==typeof window},e3=function(e){return e instanceof Element||e instanceof HTMLDocument};function e4(e){return(e4="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function e6(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}function e5(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&l.createElement(tG.Z,{variant:"indeterminate",classes:r}))};tK.propTypes={fetchCount:el().number.isRequired};let tV=(0,b.withStyles)(tW)(tK);var tq=n(5536);let tZ=n.p+"ba8bbf16ebf8e1d05bef.svg";function tX(){return(tX=Object.assign||function(e){for(var t=1;t120){for(var d=Math.floor(u/80),h=u%80,p=[],b=0;b0},name:{enumerable:!1},nodes:{enumerable:!1},source:{enumerable:!1},positions:{enumerable:!1},originalError:{enumerable:!1}}),null!=s&&s.stack)?(Object.defineProperty(nf(b),"stack",{value:s.stack,writable:!0,configurable:!0}),nl(b)):(Error.captureStackTrace?Error.captureStackTrace(nf(b),n):Object.defineProperty(nf(b),"stack",{value:Error().stack,writable:!0,configurable:!0}),b)}return ns(n,[{key:"toString",value:function(){return nw(this)}},{key:t4.YF,get:function(){return"Object"}}]),n}(nd(Error));function ny(e){return void 0===e||0===e.length?void 0:e}function nw(e){var t=e.message;if(e.nodes)for(var n=0,r=e.nodes;n",EOF:"",BANG:"!",DOLLAR:"$",AMP:"&",PAREN_L:"(",PAREN_R:")",SPREAD:"...",COLON:":",EQUALS:"=",AT:"@",BRACKET_L:"[",BRACKET_R:"]",BRACE_L:"{",PIPE:"|",BRACE_R:"}",NAME:"Name",INT:"Int",FLOAT:"Float",STRING:"String",BLOCK_STRING:"BlockString",COMMENT:"Comment"}),nx=n(10143),nT=Object.freeze({QUERY:"QUERY",MUTATION:"MUTATION",SUBSCRIPTION:"SUBSCRIPTION",FIELD:"FIELD",FRAGMENT_DEFINITION:"FRAGMENT_DEFINITION",FRAGMENT_SPREAD:"FRAGMENT_SPREAD",INLINE_FRAGMENT:"INLINE_FRAGMENT",VARIABLE_DEFINITION:"VARIABLE_DEFINITION",SCHEMA:"SCHEMA",SCALAR:"SCALAR",OBJECT:"OBJECT",FIELD_DEFINITION:"FIELD_DEFINITION",ARGUMENT_DEFINITION:"ARGUMENT_DEFINITION",INTERFACE:"INTERFACE",UNION:"UNION",ENUM:"ENUM",ENUM_VALUE:"ENUM_VALUE",INPUT_OBJECT:"INPUT_OBJECT",INPUT_FIELD_DEFINITION:"INPUT_FIELD_DEFINITION"}),nM=n(87392),nO=function(){function e(e){var t=new nS.WU(nk.SOF,0,0,0,0,null);this.source=e,this.lastToken=t,this.token=t,this.line=1,this.lineStart=0}var t=e.prototype;return t.advance=function(){return this.lastToken=this.token,this.token=this.lookahead()},t.lookahead=function(){var e,t=this.token;if(t.kind!==nk.EOF)do t=null!==(e=t.next)&&void 0!==e?e:t.next=nC(this,t);while(t.kind===nk.COMMENT)return t},e}();function nA(e){return e===nk.BANG||e===nk.DOLLAR||e===nk.AMP||e===nk.PAREN_L||e===nk.PAREN_R||e===nk.SPREAD||e===nk.COLON||e===nk.EQUALS||e===nk.AT||e===nk.BRACKET_L||e===nk.BRACKET_R||e===nk.BRACE_L||e===nk.PIPE||e===nk.BRACE_R}function nL(e){return isNaN(e)?nk.EOF:e<127?JSON.stringify(String.fromCharCode(e)):'"\\u'.concat(("00"+e.toString(16).toUpperCase()).slice(-4),'"')}function nC(e,t){for(var n=e.source,r=n.body,i=r.length,a=t.end;a31||9===a))return new nS.WU(nk.COMMENT,t,s,n,r,i,o.slice(t+1,s))}function nN(e,t,n,r,i,a){var o=e.body,s=n,u=t,c=!1;if(45===s&&(s=o.charCodeAt(++u)),48===s){if((s=o.charCodeAt(++u))>=48&&s<=57)throw n_(e,u,"Invalid number, unexpected digit after 0: ".concat(nL(s),"."))}else u=nP(e,u,s),s=o.charCodeAt(u);if(46===s&&(c=!0,s=o.charCodeAt(++u),u=nP(e,u,s),s=o.charCodeAt(u)),(69===s||101===s)&&(c=!0,(43===(s=o.charCodeAt(++u))||45===s)&&(s=o.charCodeAt(++u)),u=nP(e,u,s),s=o.charCodeAt(u)),46===s||nU(s))throw n_(e,u,"Invalid number, expected digit but got: ".concat(nL(s),"."));return new nS.WU(c?nk.FLOAT:nk.INT,t,u,r,i,a,o.slice(t,u))}function nP(e,t,n){var r=e.body,i=t,a=n;if(a>=48&&a<=57){do a=r.charCodeAt(++i);while(a>=48&&a<=57)return i}throw n_(e,i,"Invalid number, expected digit but got: ".concat(nL(a),"."))}function nR(e,t,n,r,i){for(var a=e.body,o=t+1,s=o,u=0,c="";o=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:-1}function nB(e,t,n,r,i){for(var a=e.body,o=a.length,s=t+1,u=0;s!==o&&!isNaN(u=a.charCodeAt(s))&&(95===u||u>=48&&u<=57||u>=65&&u<=90||u>=97&&u<=122);)++s;return new nS.WU(nk.NAME,t,s,n,r,i,a.slice(t,s))}function nU(e){return 95===e||e>=65&&e<=90||e>=97&&e<=122}function nH(e,t){return new n$(e,t).parseDocument()}var n$=function(){function e(e,t){var n=(0,nx.T)(e)?e:new nx.H(e);this._lexer=new nO(n),this._options=t}var t=e.prototype;return t.parseName=function(){var e=this.expectToken(nk.NAME);return{kind:nE.h.NAME,value:e.value,loc:this.loc(e)}},t.parseDocument=function(){var e=this._lexer.token;return{kind:nE.h.DOCUMENT,definitions:this.many(nk.SOF,this.parseDefinition,nk.EOF),loc:this.loc(e)}},t.parseDefinition=function(){if(this.peek(nk.NAME))switch(this._lexer.token.value){case"query":case"mutation":case"subscription":return this.parseOperationDefinition();case"fragment":return this.parseFragmentDefinition();case"schema":case"scalar":case"type":case"interface":case"union":case"enum":case"input":case"directive":return this.parseTypeSystemDefinition();case"extend":return this.parseTypeSystemExtension()}else if(this.peek(nk.BRACE_L))return this.parseOperationDefinition();else if(this.peekDescription())return this.parseTypeSystemDefinition();throw this.unexpected()},t.parseOperationDefinition=function(){var e,t=this._lexer.token;if(this.peek(nk.BRACE_L))return{kind:nE.h.OPERATION_DEFINITION,operation:"query",name:void 0,variableDefinitions:[],directives:[],selectionSet:this.parseSelectionSet(),loc:this.loc(t)};var n=this.parseOperationType();return this.peek(nk.NAME)&&(e=this.parseName()),{kind:nE.h.OPERATION_DEFINITION,operation:n,name:e,variableDefinitions:this.parseVariableDefinitions(),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(t)}},t.parseOperationType=function(){var e=this.expectToken(nk.NAME);switch(e.value){case"query":return"query";case"mutation":return"mutation";case"subscription":return"subscription"}throw this.unexpected(e)},t.parseVariableDefinitions=function(){return this.optionalMany(nk.PAREN_L,this.parseVariableDefinition,nk.PAREN_R)},t.parseVariableDefinition=function(){var e=this._lexer.token;return{kind:nE.h.VARIABLE_DEFINITION,variable:this.parseVariable(),type:(this.expectToken(nk.COLON),this.parseTypeReference()),defaultValue:this.expectOptionalToken(nk.EQUALS)?this.parseValueLiteral(!0):void 0,directives:this.parseDirectives(!0),loc:this.loc(e)}},t.parseVariable=function(){var e=this._lexer.token;return this.expectToken(nk.DOLLAR),{kind:nE.h.VARIABLE,name:this.parseName(),loc:this.loc(e)}},t.parseSelectionSet=function(){var e=this._lexer.token;return{kind:nE.h.SELECTION_SET,selections:this.many(nk.BRACE_L,this.parseSelection,nk.BRACE_R),loc:this.loc(e)}},t.parseSelection=function(){return this.peek(nk.SPREAD)?this.parseFragment():this.parseField()},t.parseField=function(){var e,t,n=this._lexer.token,r=this.parseName();return this.expectOptionalToken(nk.COLON)?(e=r,t=this.parseName()):t=r,{kind:nE.h.FIELD,alias:e,name:t,arguments:this.parseArguments(!1),directives:this.parseDirectives(!1),selectionSet:this.peek(nk.BRACE_L)?this.parseSelectionSet():void 0,loc:this.loc(n)}},t.parseArguments=function(e){var t=e?this.parseConstArgument:this.parseArgument;return this.optionalMany(nk.PAREN_L,t,nk.PAREN_R)},t.parseArgument=function(){var e=this._lexer.token,t=this.parseName();return this.expectToken(nk.COLON),{kind:nE.h.ARGUMENT,name:t,value:this.parseValueLiteral(!1),loc:this.loc(e)}},t.parseConstArgument=function(){var e=this._lexer.token;return{kind:nE.h.ARGUMENT,name:this.parseName(),value:(this.expectToken(nk.COLON),this.parseValueLiteral(!0)),loc:this.loc(e)}},t.parseFragment=function(){var e=this._lexer.token;this.expectToken(nk.SPREAD);var t=this.expectOptionalKeyword("on");return!t&&this.peek(nk.NAME)?{kind:nE.h.FRAGMENT_SPREAD,name:this.parseFragmentName(),directives:this.parseDirectives(!1),loc:this.loc(e)}:{kind:nE.h.INLINE_FRAGMENT,typeCondition:t?this.parseNamedType():void 0,directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(e)}},t.parseFragmentDefinition=function(){var e,t=this._lexer.token;return(this.expectKeyword("fragment"),(null===(e=this._options)||void 0===e?void 0:e.experimentalFragmentVariables)===!0)?{kind:nE.h.FRAGMENT_DEFINITION,name:this.parseFragmentName(),variableDefinitions:this.parseVariableDefinitions(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(t)}:{kind:nE.h.FRAGMENT_DEFINITION,name:this.parseFragmentName(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(t)}},t.parseFragmentName=function(){if("on"===this._lexer.token.value)throw this.unexpected();return this.parseName()},t.parseValueLiteral=function(e){var t=this._lexer.token;switch(t.kind){case nk.BRACKET_L:return this.parseList(e);case nk.BRACE_L:return this.parseObject(e);case nk.INT:return this._lexer.advance(),{kind:nE.h.INT,value:t.value,loc:this.loc(t)};case nk.FLOAT:return this._lexer.advance(),{kind:nE.h.FLOAT,value:t.value,loc:this.loc(t)};case nk.STRING:case nk.BLOCK_STRING:return this.parseStringLiteral();case nk.NAME:switch(this._lexer.advance(),t.value){case"true":return{kind:nE.h.BOOLEAN,value:!0,loc:this.loc(t)};case"false":return{kind:nE.h.BOOLEAN,value:!1,loc:this.loc(t)};case"null":return{kind:nE.h.NULL,loc:this.loc(t)};default:return{kind:nE.h.ENUM,value:t.value,loc:this.loc(t)}}case nk.DOLLAR:if(!e)return this.parseVariable()}throw this.unexpected()},t.parseStringLiteral=function(){var e=this._lexer.token;return this._lexer.advance(),{kind:nE.h.STRING,value:e.value,block:e.kind===nk.BLOCK_STRING,loc:this.loc(e)}},t.parseList=function(e){var t=this,n=this._lexer.token,r=function(){return t.parseValueLiteral(e)};return{kind:nE.h.LIST,values:this.any(nk.BRACKET_L,r,nk.BRACKET_R),loc:this.loc(n)}},t.parseObject=function(e){var t=this,n=this._lexer.token,r=function(){return t.parseObjectField(e)};return{kind:nE.h.OBJECT,fields:this.any(nk.BRACE_L,r,nk.BRACE_R),loc:this.loc(n)}},t.parseObjectField=function(e){var t=this._lexer.token,n=this.parseName();return this.expectToken(nk.COLON),{kind:nE.h.OBJECT_FIELD,name:n,value:this.parseValueLiteral(e),loc:this.loc(t)}},t.parseDirectives=function(e){for(var t=[];this.peek(nk.AT);)t.push(this.parseDirective(e));return t},t.parseDirective=function(e){var t=this._lexer.token;return this.expectToken(nk.AT),{kind:nE.h.DIRECTIVE,name:this.parseName(),arguments:this.parseArguments(e),loc:this.loc(t)}},t.parseTypeReference=function(){var e,t=this._lexer.token;return(this.expectOptionalToken(nk.BRACKET_L)?(e=this.parseTypeReference(),this.expectToken(nk.BRACKET_R),e={kind:nE.h.LIST_TYPE,type:e,loc:this.loc(t)}):e=this.parseNamedType(),this.expectOptionalToken(nk.BANG))?{kind:nE.h.NON_NULL_TYPE,type:e,loc:this.loc(t)}:e},t.parseNamedType=function(){var e=this._lexer.token;return{kind:nE.h.NAMED_TYPE,name:this.parseName(),loc:this.loc(e)}},t.parseTypeSystemDefinition=function(){var e=this.peekDescription()?this._lexer.lookahead():this._lexer.token;if(e.kind===nk.NAME)switch(e.value){case"schema":return this.parseSchemaDefinition();case"scalar":return this.parseScalarTypeDefinition();case"type":return this.parseObjectTypeDefinition();case"interface":return this.parseInterfaceTypeDefinition();case"union":return this.parseUnionTypeDefinition();case"enum":return this.parseEnumTypeDefinition();case"input":return this.parseInputObjectTypeDefinition();case"directive":return this.parseDirectiveDefinition()}throw this.unexpected(e)},t.peekDescription=function(){return this.peek(nk.STRING)||this.peek(nk.BLOCK_STRING)},t.parseDescription=function(){if(this.peekDescription())return this.parseStringLiteral()},t.parseSchemaDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("schema");var n=this.parseDirectives(!0),r=this.many(nk.BRACE_L,this.parseOperationTypeDefinition,nk.BRACE_R);return{kind:nE.h.SCHEMA_DEFINITION,description:t,directives:n,operationTypes:r,loc:this.loc(e)}},t.parseOperationTypeDefinition=function(){var e=this._lexer.token,t=this.parseOperationType();this.expectToken(nk.COLON);var n=this.parseNamedType();return{kind:nE.h.OPERATION_TYPE_DEFINITION,operation:t,type:n,loc:this.loc(e)}},t.parseScalarTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("scalar");var n=this.parseName(),r=this.parseDirectives(!0);return{kind:nE.h.SCALAR_TYPE_DEFINITION,description:t,name:n,directives:r,loc:this.loc(e)}},t.parseObjectTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("type");var n=this.parseName(),r=this.parseImplementsInterfaces(),i=this.parseDirectives(!0),a=this.parseFieldsDefinition();return{kind:nE.h.OBJECT_TYPE_DEFINITION,description:t,name:n,interfaces:r,directives:i,fields:a,loc:this.loc(e)}},t.parseImplementsInterfaces=function(){var e;if(!this.expectOptionalKeyword("implements"))return[];if((null===(e=this._options)||void 0===e?void 0:e.allowLegacySDLImplementsInterfaces)===!0){var t=[];this.expectOptionalToken(nk.AMP);do t.push(this.parseNamedType());while(this.expectOptionalToken(nk.AMP)||this.peek(nk.NAME))return t}return this.delimitedMany(nk.AMP,this.parseNamedType)},t.parseFieldsDefinition=function(){var e;return(null===(e=this._options)||void 0===e?void 0:e.allowLegacySDLEmptyFields)===!0&&this.peek(nk.BRACE_L)&&this._lexer.lookahead().kind===nk.BRACE_R?(this._lexer.advance(),this._lexer.advance(),[]):this.optionalMany(nk.BRACE_L,this.parseFieldDefinition,nk.BRACE_R)},t.parseFieldDefinition=function(){var e=this._lexer.token,t=this.parseDescription(),n=this.parseName(),r=this.parseArgumentDefs();this.expectToken(nk.COLON);var i=this.parseTypeReference(),a=this.parseDirectives(!0);return{kind:nE.h.FIELD_DEFINITION,description:t,name:n,arguments:r,type:i,directives:a,loc:this.loc(e)}},t.parseArgumentDefs=function(){return this.optionalMany(nk.PAREN_L,this.parseInputValueDef,nk.PAREN_R)},t.parseInputValueDef=function(){var e,t=this._lexer.token,n=this.parseDescription(),r=this.parseName();this.expectToken(nk.COLON);var i=this.parseTypeReference();this.expectOptionalToken(nk.EQUALS)&&(e=this.parseValueLiteral(!0));var a=this.parseDirectives(!0);return{kind:nE.h.INPUT_VALUE_DEFINITION,description:n,name:r,type:i,defaultValue:e,directives:a,loc:this.loc(t)}},t.parseInterfaceTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("interface");var n=this.parseName(),r=this.parseImplementsInterfaces(),i=this.parseDirectives(!0),a=this.parseFieldsDefinition();return{kind:nE.h.INTERFACE_TYPE_DEFINITION,description:t,name:n,interfaces:r,directives:i,fields:a,loc:this.loc(e)}},t.parseUnionTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("union");var n=this.parseName(),r=this.parseDirectives(!0),i=this.parseUnionMemberTypes();return{kind:nE.h.UNION_TYPE_DEFINITION,description:t,name:n,directives:r,types:i,loc:this.loc(e)}},t.parseUnionMemberTypes=function(){return this.expectOptionalToken(nk.EQUALS)?this.delimitedMany(nk.PIPE,this.parseNamedType):[]},t.parseEnumTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("enum");var n=this.parseName(),r=this.parseDirectives(!0),i=this.parseEnumValuesDefinition();return{kind:nE.h.ENUM_TYPE_DEFINITION,description:t,name:n,directives:r,values:i,loc:this.loc(e)}},t.parseEnumValuesDefinition=function(){return this.optionalMany(nk.BRACE_L,this.parseEnumValueDefinition,nk.BRACE_R)},t.parseEnumValueDefinition=function(){var e=this._lexer.token,t=this.parseDescription(),n=this.parseName(),r=this.parseDirectives(!0);return{kind:nE.h.ENUM_VALUE_DEFINITION,description:t,name:n,directives:r,loc:this.loc(e)}},t.parseInputObjectTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("input");var n=this.parseName(),r=this.parseDirectives(!0),i=this.parseInputFieldsDefinition();return{kind:nE.h.INPUT_OBJECT_TYPE_DEFINITION,description:t,name:n,directives:r,fields:i,loc:this.loc(e)}},t.parseInputFieldsDefinition=function(){return this.optionalMany(nk.BRACE_L,this.parseInputValueDef,nk.BRACE_R)},t.parseTypeSystemExtension=function(){var e=this._lexer.lookahead();if(e.kind===nk.NAME)switch(e.value){case"schema":return this.parseSchemaExtension();case"scalar":return this.parseScalarTypeExtension();case"type":return this.parseObjectTypeExtension();case"interface":return this.parseInterfaceTypeExtension();case"union":return this.parseUnionTypeExtension();case"enum":return this.parseEnumTypeExtension();case"input":return this.parseInputObjectTypeExtension()}throw this.unexpected(e)},t.parseSchemaExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("schema");var t=this.parseDirectives(!0),n=this.optionalMany(nk.BRACE_L,this.parseOperationTypeDefinition,nk.BRACE_R);if(0===t.length&&0===n.length)throw this.unexpected();return{kind:nE.h.SCHEMA_EXTENSION,directives:t,operationTypes:n,loc:this.loc(e)}},t.parseScalarTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("scalar");var t=this.parseName(),n=this.parseDirectives(!0);if(0===n.length)throw this.unexpected();return{kind:nE.h.SCALAR_TYPE_EXTENSION,name:t,directives:n,loc:this.loc(e)}},t.parseObjectTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("type");var t=this.parseName(),n=this.parseImplementsInterfaces(),r=this.parseDirectives(!0),i=this.parseFieldsDefinition();if(0===n.length&&0===r.length&&0===i.length)throw this.unexpected();return{kind:nE.h.OBJECT_TYPE_EXTENSION,name:t,interfaces:n,directives:r,fields:i,loc:this.loc(e)}},t.parseInterfaceTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("interface");var t=this.parseName(),n=this.parseImplementsInterfaces(),r=this.parseDirectives(!0),i=this.parseFieldsDefinition();if(0===n.length&&0===r.length&&0===i.length)throw this.unexpected();return{kind:nE.h.INTERFACE_TYPE_EXTENSION,name:t,interfaces:n,directives:r,fields:i,loc:this.loc(e)}},t.parseUnionTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("union");var t=this.parseName(),n=this.parseDirectives(!0),r=this.parseUnionMemberTypes();if(0===n.length&&0===r.length)throw this.unexpected();return{kind:nE.h.UNION_TYPE_EXTENSION,name:t,directives:n,types:r,loc:this.loc(e)}},t.parseEnumTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("enum");var t=this.parseName(),n=this.parseDirectives(!0),r=this.parseEnumValuesDefinition();if(0===n.length&&0===r.length)throw this.unexpected();return{kind:nE.h.ENUM_TYPE_EXTENSION,name:t,directives:n,values:r,loc:this.loc(e)}},t.parseInputObjectTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("input");var t=this.parseName(),n=this.parseDirectives(!0),r=this.parseInputFieldsDefinition();if(0===n.length&&0===r.length)throw this.unexpected();return{kind:nE.h.INPUT_OBJECT_TYPE_EXTENSION,name:t,directives:n,fields:r,loc:this.loc(e)}},t.parseDirectiveDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("directive"),this.expectToken(nk.AT);var n=this.parseName(),r=this.parseArgumentDefs(),i=this.expectOptionalKeyword("repeatable");this.expectKeyword("on");var a=this.parseDirectiveLocations();return{kind:nE.h.DIRECTIVE_DEFINITION,description:t,name:n,arguments:r,repeatable:i,locations:a,loc:this.loc(e)}},t.parseDirectiveLocations=function(){return this.delimitedMany(nk.PIPE,this.parseDirectiveLocation)},t.parseDirectiveLocation=function(){var e=this._lexer.token,t=this.parseName();if(void 0!==nT[t.value])return t;throw this.unexpected(e)},t.loc=function(e){var t;if((null===(t=this._options)||void 0===t?void 0:t.noLocation)!==!0)return new nS.Ye(e,this._lexer.lastToken,this._lexer.source)},t.peek=function(e){return this._lexer.token.kind===e},t.expectToken=function(e){var t=this._lexer.token;if(t.kind===e)return this._lexer.advance(),t;throw n_(this._lexer.source,t.start,"Expected ".concat(nG(e),", found ").concat(nz(t),"."))},t.expectOptionalToken=function(e){var t=this._lexer.token;if(t.kind===e)return this._lexer.advance(),t},t.expectKeyword=function(e){var t=this._lexer.token;if(t.kind===nk.NAME&&t.value===e)this._lexer.advance();else throw n_(this._lexer.source,t.start,'Expected "'.concat(e,'", found ').concat(nz(t),"."))},t.expectOptionalKeyword=function(e){var t=this._lexer.token;return t.kind===nk.NAME&&t.value===e&&(this._lexer.advance(),!0)},t.unexpected=function(e){var t=null!=e?e:this._lexer.token;return n_(this._lexer.source,t.start,"Unexpected ".concat(nz(t),"."))},t.any=function(e,t,n){this.expectToken(e);for(var r=[];!this.expectOptionalToken(n);)r.push(t.call(this));return r},t.optionalMany=function(e,t,n){if(this.expectOptionalToken(e)){var r=[];do r.push(t.call(this));while(!this.expectOptionalToken(n))return r}return[]},t.many=function(e,t,n){this.expectToken(e);var r=[];do r.push(t.call(this));while(!this.expectOptionalToken(n))return r},t.delimitedMany=function(e,t){this.expectOptionalToken(e);var n=[];do n.push(t.call(this));while(this.expectOptionalToken(e))return n},e}();function nz(e){var t=e.value;return nG(e.kind)+(null!=t?' "'.concat(t,'"'):"")}function nG(e){return nA(e)?'"'.concat(e,'"'):e}var nW=new Map,nK=new Map,nV=!0,nq=!1;function nZ(e){return e.replace(/[\s,]+/g," ").trim()}function nX(e){return nZ(e.source.body.substring(e.start,e.end))}function nJ(e){var t=new Set,n=[];return e.definitions.forEach(function(e){if("FragmentDefinition"===e.kind){var r=e.name.value,i=nX(e.loc),a=nK.get(r);a&&!a.has(i)?nV&&console.warn("Warning: fragment with name "+r+" already exists.\ngraphql-tag enforces all fragment names across your application to be unique; read more about\nthis in the docs: http://dev.apollodata.com/core/fragments.html#unique-names"):a||nK.set(r,a=new Set),a.add(i),t.has(i)||(t.add(i),n.push(e))}else n.push(e)}),(0,t0.pi)((0,t0.pi)({},e),{definitions:n})}function nQ(e){var t=new Set(e.definitions);t.forEach(function(e){e.loc&&delete e.loc,Object.keys(e).forEach(function(n){var r=e[n];r&&"object"==typeof r&&t.add(r)})});var n=e.loc;return n&&(delete n.startToken,delete n.endToken),e}function n1(e){var t=nZ(e);if(!nW.has(t)){var n=nH(e,{experimentalFragmentVariables:nq,allowLegacyFragmentVariables:nq});if(!n||"Document"!==n.kind)throw Error("Not a valid GraphQL document.");nW.set(t,nQ(nJ(n)))}return nW.get(t)}function n0(e){for(var t=[],n=1;n, or pass an ApolloClient instance in via options.'):(0,n9.kG)(!!n,32),n}var rp=n(10542),rb=n(53712),rm=n(21436),rg=Object.prototype.hasOwnProperty;function rv(e,t){return void 0===t&&(t=Object.create(null)),ry(rh(t.client),e).useQuery(t)}function ry(e,t){var n=(0,l.useRef)();n.current&&e===n.current.client&&t===n.current.query||(n.current=new rw(e,t,n.current));var r=n.current,i=(0,l.useState)(0),a=(i[0],i[1]);return r.forceUpdate=function(){a(function(e){return e+1})},r}var rw=function(){function e(e,t,n){this.client=e,this.query=t,this.ssrDisabledResult=(0,rp.J)({loading:!0,data:void 0,error:void 0,networkStatus:ru.I.loading}),this.skipStandbyResult=(0,rp.J)({loading:!1,data:void 0,error:void 0,networkStatus:ru.I.ready}),this.toQueryResultCache=new(n7.mr?WeakMap:Map),rd(t,r.Query);var i=n&&n.result,a=i&&i.data;a&&(this.previousData=a)}return e.prototype.forceUpdate=function(){__DEV__&&n9.kG.warn("Calling default no-op implementation of InternalState#forceUpdate")},e.prototype.executeQuery=function(e){var t,n=this;e.query&&Object.assign(this,{query:e.query}),this.watchQueryOptions=this.createWatchQueryOptions(this.queryHookOptions=e);var r=this.observable.reobserveAsConcast(this.getObsQueryOptions());return this.previousData=(null===(t=this.result)||void 0===t?void 0:t.data)||this.previousData,this.result=void 0,this.forceUpdate(),new Promise(function(e){var t;r.subscribe({next:function(e){t=e},error:function(){e(n.toQueryResult(n.observable.getCurrentResult()))},complete:function(){e(n.toQueryResult(t))}})})},e.prototype.useQuery=function(e){var t=this;this.renderPromises=(0,l.useContext)((0,ro.K)()).renderPromises,this.useOptions(e);var n=this.useObservableQuery(),r=rt((0,l.useCallback)(function(){if(t.renderPromises)return function(){};var e=function(){var e=t.result,r=n.getCurrentResult();!(e&&e.loading===r.loading&&e.networkStatus===r.networkStatus&&(0,ri.D)(e.data,r.data))&&t.setResult(r)},r=function(a){var o=n.last;i.unsubscribe();try{n.resetLastResults(),i=n.subscribe(e,r)}finally{n.last=o}if(!rg.call(a,"graphQLErrors"))throw a;var s=t.result;(!s||s&&s.loading||!(0,ri.D)(a,s.error))&&t.setResult({data:s&&s.data,error:a,loading:!1,networkStatus:ru.I.error})},i=n.subscribe(e,r);return function(){return setTimeout(function(){return i.unsubscribe()})}},[n,this.renderPromises,this.client.disableNetworkFetches,]),function(){return t.getCurrentResult()},function(){return t.getCurrentResult()});return this.unsafeHandlePartialRefetch(r),this.toQueryResult(r)},e.prototype.useOptions=function(t){var n,r=this.createWatchQueryOptions(this.queryHookOptions=t),i=this.watchQueryOptions;!(0,ri.D)(r,i)&&(this.watchQueryOptions=r,i&&this.observable&&(this.observable.reobserve(this.getObsQueryOptions()),this.previousData=(null===(n=this.result)||void 0===n?void 0:n.data)||this.previousData,this.result=void 0)),this.onCompleted=t.onCompleted||e.prototype.onCompleted,this.onError=t.onError||e.prototype.onError,(this.renderPromises||this.client.disableNetworkFetches)&&!1===this.queryHookOptions.ssr&&!this.queryHookOptions.skip?this.result=this.ssrDisabledResult:this.queryHookOptions.skip||"standby"===this.watchQueryOptions.fetchPolicy?this.result=this.skipStandbyResult:(this.result===this.ssrDisabledResult||this.result===this.skipStandbyResult)&&(this.result=void 0)},e.prototype.getObsQueryOptions=function(){var e=[],t=this.client.defaultOptions.watchQuery;return t&&e.push(t),this.queryHookOptions.defaultOptions&&e.push(this.queryHookOptions.defaultOptions),e.push((0,rb.o)(this.observable&&this.observable.options,this.watchQueryOptions)),e.reduce(ra.J)},e.prototype.createWatchQueryOptions=function(e){void 0===e&&(e={});var t,n=e.skip,r=Object.assign((e.ssr,e.onCompleted,e.onError,e.defaultOptions,(0,t0._T)(e,["skip","ssr","onCompleted","onError","defaultOptions"])),{query:this.query});if(this.renderPromises&&("network-only"===r.fetchPolicy||"cache-and-network"===r.fetchPolicy)&&(r.fetchPolicy="cache-first"),r.variables||(r.variables={}),n){var i=r.fetchPolicy,a=void 0===i?this.getDefaultFetchPolicy():i,o=r.initialFetchPolicy;Object.assign(r,{initialFetchPolicy:void 0===o?a:o,fetchPolicy:"standby"})}else r.fetchPolicy||(r.fetchPolicy=(null===(t=this.observable)||void 0===t?void 0:t.options.initialFetchPolicy)||this.getDefaultFetchPolicy());return r},e.prototype.getDefaultFetchPolicy=function(){var e,t;return(null===(e=this.queryHookOptions.defaultOptions)||void 0===e?void 0:e.fetchPolicy)||(null===(t=this.client.defaultOptions.watchQuery)||void 0===t?void 0:t.fetchPolicy)||"cache-first"},e.prototype.onCompleted=function(e){},e.prototype.onError=function(e){},e.prototype.useObservableQuery=function(){var e=this.observable=this.renderPromises&&this.renderPromises.getSSRObservable(this.watchQueryOptions)||this.observable||this.client.watchQuery(this.getObsQueryOptions());this.obsQueryFields=(0,l.useMemo)(function(){return{refetch:e.refetch.bind(e),reobserve:e.reobserve.bind(e),fetchMore:e.fetchMore.bind(e),updateQuery:e.updateQuery.bind(e),startPolling:e.startPolling.bind(e),stopPolling:e.stopPolling.bind(e),subscribeToMore:e.subscribeToMore.bind(e)}},[e]);var t=!(!1===this.queryHookOptions.ssr||this.queryHookOptions.skip);return this.renderPromises&&t&&(this.renderPromises.registerSSRObservable(e),e.getCurrentResult().loading&&this.renderPromises.addObservableQueryPromise(e)),e},e.prototype.setResult=function(e){var t=this.result;t&&t.data&&(this.previousData=t.data),this.result=e,this.forceUpdate(),this.handleErrorOrCompleted(e)},e.prototype.handleErrorOrCompleted=function(e){var t=this;if(!e.loading){var n=this.toApolloError(e);Promise.resolve().then(function(){n?t.onError(n):e.data&&t.onCompleted(e.data)}).catch(function(e){__DEV__&&n9.kG.warn(e)})}},e.prototype.toApolloError=function(e){return(0,rm.O)(e.errors)?new rs.cA({graphQLErrors:e.errors}):e.error},e.prototype.getCurrentResult=function(){return this.result||this.handleErrorOrCompleted(this.result=this.observable.getCurrentResult()),this.result},e.prototype.toQueryResult=function(e){var t=this.toQueryResultCache.get(e);if(t)return t;var n=e.data,r=(e.partial,(0,t0._T)(e,["data","partial"]));return this.toQueryResultCache.set(e,t=(0,t0.pi)((0,t0.pi)((0,t0.pi)({data:n},r),this.obsQueryFields),{client:this.client,observable:this.observable,variables:this.observable.variables,called:!this.queryHookOptions.skip,previousData:this.previousData})),!t.error&&(0,rm.O)(e.errors)&&(t.error=new rs.cA({graphQLErrors:e.errors})),t},e.prototype.unsafeHandlePartialRefetch=function(e){e.partial&&this.queryHookOptions.partialRefetch&&!e.loading&&(!e.data||0===Object.keys(e.data).length)&&"cache-only"!==this.observable.options.fetchPolicy&&(Object.assign(e,{loading:!0,networkStatus:ru.I.refetch}),this.observable.refetch())},e}();function r_(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&void 0!==arguments[0]?arguments[0]:{};return rv(iH,e)},iz=function(){var e=ij(),t=parseInt(e.get("page")||"1",10),n=parseInt(e.get("per")||"50",10),r=i$({variables:{offset:(t-1)*n,limit:n},fetchPolicy:"network-only"}),i=r.data,a=r.loading,o=r.error;return a?l.createElement(iR,null):o?l.createElement(iD,{error:o}):i?l.createElement(iI,{chains:i.chains.results,page:t,pageSize:n,total:i.chains.metadata.total}):null},iG=n(67932),iW=n(8126),iK="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function iV(e){if(iq())return Intl.DateTimeFormat.supportedLocalesOf(e)[0]}function iq(){return("undefined"==typeof Intl?"undefined":iK(Intl))==="object"&&"function"==typeof Intl.DateTimeFormat}var iZ="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},iX=function(){function e(e,t){for(var n=0;n=i.length)break;s=i[o++]}else{if((o=i.next()).done)break;s=o.value}var s,u=s;if((void 0===e?"undefined":iZ(e))!=="object")return;e=e[u]}return e}},{key:"put",value:function(){for(var e=arguments.length,t=Array(e),n=0;n=o.length)break;c=o[u++]}else{if((u=o.next()).done)break;c=u.value}var c,l=c;"object"!==iZ(a[l])&&(a[l]={}),a=a[l]}return a[i]=r}}]),e}();let i1=iQ;var i0=new i1;function i2(e,t){if(!iq())return function(e){return e.toString()};var n=i4(e),r=JSON.stringify(t),i=i0.get(String(n),r)||i0.put(String(n),r,new Intl.DateTimeFormat(n,t));return function(e){return i.format(e)}}var i3={};function i4(e){var t=e.toString();return i3[t]?i3[t]:i3[t]=iV(e)}var i6="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function i5(e){return i8(e)?e:new Date(e)}function i8(e){return e instanceof Date||i9(e)}function i9(e){return(void 0===e?"undefined":i6(e))==="object"&&"function"==typeof e.getTime}var i7=n(54087),ae=n.n(i7);function at(e,t){if(0===e.length)return 0;for(var n=0,r=e.length-1,i=void 0;n<=r;){var a=t(e[i=Math.floor((r+n)/2)]);if(0===a)return i;if(a<0){if((n=i+1)>r)return n}else if((r=i-1)=t.nextUpdateTime)aa(t,this.instances);else break}},scheduleNextTick:function(){var e=this;this.scheduledTick=ae()(function(){e.tick(),e.scheduleNextTick()})},start:function(){this.scheduleNextTick()},stop:function(){ae().cancel(this.scheduledTick)}};function ai(e){var t=an(e.getNextValue(),2),n=t[0],r=t[1];e.setValue(n),e.nextUpdateTime=r}function aa(e,t){ai(e),as(t,e),ao(t,e)}function ao(e,t){var n=au(e,t);e.splice(n,0,t)}function as(e,t){var n=e.indexOf(t);e.splice(n,1)}function au(e,t){var n=t.nextUpdateTime;return at(e,function(e){return e.nextUpdateTime===n?0:e.nextUpdateTime>n?1:-1})}var ac=(0,ec.oneOfType)([(0,ec.shape)({minTime:ec.number,formatAs:ec.string.isRequired}),(0,ec.shape)({test:ec.func,formatAs:ec.string.isRequired}),(0,ec.shape)({minTime:ec.number,format:ec.func.isRequired}),(0,ec.shape)({test:ec.func,format:ec.func.isRequired})]),al=(0,ec.oneOfType)([ec.string,(0,ec.shape)({steps:(0,ec.arrayOf)(ac).isRequired,labels:(0,ec.oneOfType)([ec.string,(0,ec.arrayOf)(ec.string)]).isRequired,round:ec.string})]),af=Object.assign||function(e){for(var t=1;t=0)&&Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function ap(e){var t=e.date,n=e.future,r=e.timeStyle,i=e.round,a=e.minTimeLeft,o=e.tooltip,s=e.component,u=e.container,c=e.wrapperComponent,f=e.wrapperProps,d=e.locale,h=e.locales,p=e.formatVerboseDate,b=e.verboseDateFormat,m=e.updateInterval,g=e.tick,v=ah(e,["date","future","timeStyle","round","minTimeLeft","tooltip","component","container","wrapperComponent","wrapperProps","locale","locales","formatVerboseDate","verboseDateFormat","updateInterval","tick"]),y=(0,l.useMemo)(function(){return d&&(h=[d]),h.concat(iW.Z.getDefaultLocale())},[d,h]),w=(0,l.useMemo)(function(){return new iW.Z(y)},[y]);t=(0,l.useMemo)(function(){return i5(t)},[t]);var _=(0,l.useCallback)(function(){var e=Date.now(),o=void 0;if(n&&e>=t.getTime()&&(e=t.getTime(),o=!0),void 0!==a){var s=t.getTime()-1e3*a;e>s&&(e=s,o=!0)}var u=w.format(t,r,{getTimeToNextUpdate:!0,now:e,future:n,round:i}),c=ad(u,2),l=c[0],f=c[1];return f=o?ag:m||f||6e4,[l,e+f]},[t,n,r,m,i,a,w]),E=(0,l.useRef)();E.current=_;var S=(0,l.useMemo)(_,[]),k=ad(S,2),x=k[0],T=k[1],M=(0,l.useState)(x),O=ad(M,2),A=O[0],L=O[1],C=ad((0,l.useState)(),2),I=C[0],D=C[1],N=(0,l.useRef)();(0,l.useEffect)(function(){if(g)return N.current=ar.add({getNextValue:function(){return E.current()},setValue:L,nextUpdateTime:T}),function(){return N.current.stop()}},[g]),(0,l.useEffect)(function(){if(N.current)N.current.forceUpdate();else{var e=_(),t=ad(e,1)[0];L(t)}},[_]),(0,l.useEffect)(function(){D(!0)},[]);var P=(0,l.useMemo)(function(){if("undefined"!=typeof window)return i2(y,b)},[y,b]),R=(0,l.useMemo)(function(){if("undefined"!=typeof window)return p?p(t):P(t)},[t,p,P]),j=l.createElement(s,af({date:t,verboseDate:I?R:void 0,tooltip:o},v),A),F=c||u;return F?l.createElement(F,af({},f,{verboseDate:I?R:void 0}),j):j}ap.propTypes={date:el().oneOfType([el().instanceOf(Date),el().number]).isRequired,locale:el().string,locales:el().arrayOf(el().string),future:el().bool,timeStyle:al,round:el().string,minTimeLeft:el().number,component:el().elementType.isRequired,tooltip:el().bool.isRequired,formatVerboseDate:el().func,verboseDateFormat:el().object,updateInterval:el().oneOfType([el().number,el().arrayOf(el().shape({threshold:el().number,interval:el().number.isRequired}))]),tick:el().bool,wrapperComponent:el().func,wrapperProps:el().object},ap.defaultProps={locales:[],component:av,tooltip:!0,verboseDateFormat:{weekday:"long",day:"numeric",month:"long",year:"numeric",hour:"numeric",minute:"2-digit",second:"2-digit"},tick:!0},ap=l.memo(ap);let ab=ap;var am,ag=31536e9;function av(e){var t=e.date,n=e.verboseDate,r=e.tooltip,i=e.children,a=ah(e,["date","verboseDate","tooltip","children"]),o=(0,l.useMemo)(function(){return t.toISOString()},[t]);return l.createElement("time",af({},a,{dateTime:o,title:r?n:void 0}),i)}av.propTypes={date:el().instanceOf(Date).isRequired,verboseDate:el().string,tooltip:el().bool.isRequired,children:el().string.isRequired};var ay=n(30381),aw=n.n(ay),a_=n(31657);function aE(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function aS(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0?new rs.cA({graphQLErrors:i}):void 0;if(u===s.current.mutationId&&!c.ignoreResults){var f={called:!0,loading:!1,data:r,error:l,client:a};s.current.isMounted&&!(0,ri.D)(s.current.result,f)&&o(s.current.result=f)}var d=e.onCompleted||(null===(n=s.current.options)||void 0===n?void 0:n.onCompleted);return null==d||d(t.data,c),t}).catch(function(t){if(u===s.current.mutationId&&s.current.isMounted){var n,r={loading:!1,error:t,data:void 0,called:!0,client:a};(0,ri.D)(s.current.result,r)||o(s.current.result=r)}var i=e.onError||(null===(n=s.current.options)||void 0===n?void 0:n.onError);if(i)return i(t,c),{data:void 0,errors:t};throw t})},[]),c=(0,l.useCallback)(function(){s.current.isMounted&&o({called:!1,loading:!1,client:n})},[]);return(0,l.useEffect)(function(){return s.current.isMounted=!0,function(){s.current.isMounted=!1}},[]),[u,(0,t0.pi)({reset:c},a)]}var os=n(59067),ou=n(28428),oc=n(11186),ol=n(78513);function of(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var od=function(e){return(0,b.createStyles)({paper:{display:"flex",margin:"".concat(2.5*e.spacing.unit,"px 0"),padding:"".concat(3*e.spacing.unit,"px ").concat(3.5*e.spacing.unit,"px")},content:{flex:1,width:"100%"},actions:of({marginTop:-(1.5*e.spacing.unit),marginLeft:-(4*e.spacing.unit)},e.breakpoints.up("sm"),{marginLeft:0,marginRight:-(1.5*e.spacing.unit)}),itemBlock:{border:"1px solid rgba(224, 224, 224, 1)",borderRadius:e.shape.borderRadius,padding:2*e.spacing.unit,marginTop:e.spacing.unit},itemBlockText:{overflowWrap:"anywhere"}})},oh=(0,b.withStyles)(od)(function(e){var t=e.actions,n=e.children,r=e.classes;return l.createElement(ii.default,{className:r.paper},l.createElement("div",{className:r.content},n),t&&l.createElement("div",{className:r.actions},t))}),op=function(e){var t=e.title;return l.createElement(x.default,{variant:"subtitle2",gutterBottom:!0},t)},ob=function(e){var t=e.children,n=e.value;return l.createElement(x.default,{variant:"body1",noWrap:!0},t||n)},om=(0,b.withStyles)(od)(function(e){var t=e.children,n=e.classes,r=e.value;return l.createElement("div",{className:n.itemBlock},l.createElement(x.default,{variant:"body1",className:n.itemBlockText},t||r))});function og(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]-1}let sq=sV;function sZ(e,t){var n=this.__data__,r=sH(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}let sX=sZ;function sJ(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t-1&&e%1==0&&e-1&&e%1==0&&e<=cC}let cD=cI;var cN="[object Arguments]",cP="[object Array]",cR="[object Boolean]",cj="[object Date]",cF="[object Error]",cY="[object Function]",cB="[object Map]",cU="[object Number]",cH="[object Object]",c$="[object RegExp]",cz="[object Set]",cG="[object String]",cW="[object WeakMap]",cK="[object ArrayBuffer]",cV="[object DataView]",cq="[object Float64Array]",cZ="[object Int8Array]",cX="[object Int16Array]",cJ="[object Int32Array]",cQ="[object Uint8Array]",c1="[object Uint8ClampedArray]",c0="[object Uint16Array]",c2="[object Uint32Array]",c3={};function c4(e){return eD(e)&&cD(e.length)&&!!c3[eC(e)]}c3["[object Float32Array]"]=c3[cq]=c3[cZ]=c3[cX]=c3[cJ]=c3[cQ]=c3[c1]=c3[c0]=c3[c2]=!0,c3[cN]=c3[cP]=c3[cK]=c3[cR]=c3[cV]=c3[cj]=c3[cF]=c3[cY]=c3[cB]=c3[cU]=c3[cH]=c3[c$]=c3[cz]=c3[cG]=c3[cW]=!1;let c6=c4;function c5(e){return function(t){return e(t)}}let c8=c5;var c9=n(79730),c7=c9.Z&&c9.Z.isTypedArray,le=c7?c8(c7):c6;let lt=le;var ln=Object.prototype.hasOwnProperty;function lr(e,t){var n=cx(e),r=!n&&cS(e),i=!n&&!r&&(0,cT.Z)(e),a=!n&&!r&&!i&<(e),o=n||r||i||a,s=o?cb(e.length,String):[],u=s.length;for(var c in e)(t||ln.call(e,c))&&!(o&&("length"==c||i&&("offset"==c||"parent"==c)||a&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||cL(c,u)))&&s.push(c);return s}let li=lr;var la=Object.prototype;function lo(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||la)}let ls=lo;var lu=sT(Object.keys,Object);let lc=lu;var ll=Object.prototype.hasOwnProperty;function lf(e){if(!ls(e))return lc(e);var t=[];for(var n in Object(e))ll.call(e,n)&&"constructor"!=n&&t.push(n);return t}let ld=lf;function lh(e){return null!=e&&cD(e.length)&&!ur(e)}let lp=lh;function lb(e){return lp(e)?li(e):ld(e)}let lm=lb;function lg(e,t){return e&&ch(t,lm(t),e)}let lv=lg;function ly(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}let lw=ly;var l_=Object.prototype.hasOwnProperty;function lE(e){if(!ed(e))return lw(e);var t=ls(e),n=[];for(var r in e)"constructor"==r&&(t||!l_.call(e,r))||n.push(r);return n}let lS=lE;function lk(e){return lp(e)?li(e,!0):lS(e)}let lx=lk;function lT(e,t){return e&&ch(t,lx(t),e)}let lM=lT;var lO=n(42896);function lA(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n=0||(i[n]=e[n]);return i}function hu(e){if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var hc=function(e){return Array.isArray(e)&&0===e.length},hl=function(e){return"function"==typeof e},hf=function(e){return null!==e&&"object"==typeof e},hd=function(e){return String(Math.floor(Number(e)))===e},hh=function(e){return"[object String]"===Object.prototype.toString.call(e)},hp=function(e){return 0===l.Children.count(e)},hb=function(e){return hf(e)&&hl(e.then)};function hm(e,t,n,r){void 0===r&&(r=0);for(var i=d8(t);e&&r=0?[]:{}}}return(0===a?e:i)[o[a]]===n?e:(void 0===n?delete i[o[a]]:i[o[a]]=n,0===a&&void 0===n&&delete r[o[a]],r)}function hv(e,t,n,r){void 0===n&&(n=new WeakMap),void 0===r&&(r={});for(var i=0,a=Object.keys(e);i0?t.map(function(t){return x(t,hm(e,t))}):[Promise.resolve("DO_NOT_DELETE_YOU_WILL_BE_FIRED")]).then(function(e){return e.reduce(function(e,n,r){return"DO_NOT_DELETE_YOU_WILL_BE_FIRED"===n||n&&(e=hg(e,t[r],n)),e},{})})},[x]),M=(0,l.useCallback)(function(e){return Promise.all([T(e),h.validationSchema?k(e):{},h.validate?S(e):{}]).then(function(e){var t=e[0],n=e[1],r=e[2];return sk.all([t,n,r],{arrayMerge:hL})})},[h.validate,h.validationSchema,T,S,k]),O=hN(function(e){return void 0===e&&(e=_.values),E({type:"SET_ISVALIDATING",payload:!0}),M(e).then(function(e){return v.current&&(E({type:"SET_ISVALIDATING",payload:!1}),sd()(_.errors,e)||E({type:"SET_ERRORS",payload:e})),e})});(0,l.useEffect)(function(){o&&!0===v.current&&sd()(p.current,h.initialValues)&&O(p.current)},[o,O]);var A=(0,l.useCallback)(function(e){var t=e&&e.values?e.values:p.current,n=e&&e.errors?e.errors:b.current?b.current:h.initialErrors||{},r=e&&e.touched?e.touched:m.current?m.current:h.initialTouched||{},i=e&&e.status?e.status:g.current?g.current:h.initialStatus;p.current=t,b.current=n,m.current=r,g.current=i;var a=function(){E({type:"RESET_FORM",payload:{isSubmitting:!!e&&!!e.isSubmitting,errors:n,touched:r,status:i,values:t,isValidating:!!e&&!!e.isValidating,submitCount:e&&e.submitCount&&"number"==typeof e.submitCount?e.submitCount:0}})};if(h.onReset){var o=h.onReset(_.values,V);hb(o)?o.then(a):a()}else a()},[h.initialErrors,h.initialStatus,h.initialTouched]);(0,l.useEffect)(function(){!0===v.current&&!sd()(p.current,h.initialValues)&&(c&&(p.current=h.initialValues,A()),o&&O(p.current))},[c,h.initialValues,A,o,O]),(0,l.useEffect)(function(){c&&!0===v.current&&!sd()(b.current,h.initialErrors)&&(b.current=h.initialErrors||hS,E({type:"SET_ERRORS",payload:h.initialErrors||hS}))},[c,h.initialErrors]),(0,l.useEffect)(function(){c&&!0===v.current&&!sd()(m.current,h.initialTouched)&&(m.current=h.initialTouched||hk,E({type:"SET_TOUCHED",payload:h.initialTouched||hk}))},[c,h.initialTouched]),(0,l.useEffect)(function(){c&&!0===v.current&&!sd()(g.current,h.initialStatus)&&(g.current=h.initialStatus,E({type:"SET_STATUS",payload:h.initialStatus}))},[c,h.initialStatus,h.initialTouched]);var L=hN(function(e){if(y.current[e]&&hl(y.current[e].validate)){var t=hm(_.values,e),n=y.current[e].validate(t);return hb(n)?(E({type:"SET_ISVALIDATING",payload:!0}),n.then(function(e){return e}).then(function(t){E({type:"SET_FIELD_ERROR",payload:{field:e,value:t}}),E({type:"SET_ISVALIDATING",payload:!1})})):(E({type:"SET_FIELD_ERROR",payload:{field:e,value:n}}),Promise.resolve(n))}return h.validationSchema?(E({type:"SET_ISVALIDATING",payload:!0}),k(_.values,e).then(function(e){return e}).then(function(t){E({type:"SET_FIELD_ERROR",payload:{field:e,value:t[e]}}),E({type:"SET_ISVALIDATING",payload:!1})})):Promise.resolve()}),C=(0,l.useCallback)(function(e,t){var n=t.validate;y.current[e]={validate:n}},[]),I=(0,l.useCallback)(function(e){delete y.current[e]},[]),D=hN(function(e,t){return E({type:"SET_TOUCHED",payload:e}),(void 0===t?i:t)?O(_.values):Promise.resolve()}),N=(0,l.useCallback)(function(e){E({type:"SET_ERRORS",payload:e})},[]),P=hN(function(e,t){var r=hl(e)?e(_.values):e;return E({type:"SET_VALUES",payload:r}),(void 0===t?n:t)?O(r):Promise.resolve()}),R=(0,l.useCallback)(function(e,t){E({type:"SET_FIELD_ERROR",payload:{field:e,value:t}})},[]),j=hN(function(e,t,r){return E({type:"SET_FIELD_VALUE",payload:{field:e,value:t}}),(void 0===r?n:r)?O(hg(_.values,e,t)):Promise.resolve()}),F=(0,l.useCallback)(function(e,t){var n,r=t,i=e;if(!hh(e)){e.persist&&e.persist();var a=e.target?e.target:e.currentTarget,o=a.type,s=a.name,u=a.id,c=a.value,l=a.checked,f=(a.outerHTML,a.options),d=a.multiple;r=t||s||u,i=/number|range/.test(o)?(n=parseFloat(c),isNaN(n)?"":n):/checkbox/.test(o)?hI(hm(_.values,r),l,c):d?hC(f):c}r&&j(r,i)},[j,_.values]),Y=hN(function(e){if(hh(e))return function(t){return F(t,e)};F(e)}),B=hN(function(e,t,n){return void 0===t&&(t=!0),E({type:"SET_FIELD_TOUCHED",payload:{field:e,value:t}}),(void 0===n?i:n)?O(_.values):Promise.resolve()}),U=(0,l.useCallback)(function(e,t){e.persist&&e.persist();var n,r=e.target,i=r.name,a=r.id;r.outerHTML,B(t||i||a,!0)},[B]),H=hN(function(e){if(hh(e))return function(t){return U(t,e)};U(e)}),$=(0,l.useCallback)(function(e){hl(e)?E({type:"SET_FORMIK_STATE",payload:e}):E({type:"SET_FORMIK_STATE",payload:function(){return e}})},[]),z=(0,l.useCallback)(function(e){E({type:"SET_STATUS",payload:e})},[]),G=(0,l.useCallback)(function(e){E({type:"SET_ISSUBMITTING",payload:e})},[]),W=hN(function(){return E({type:"SUBMIT_ATTEMPT"}),O().then(function(e){var t,n=e instanceof Error;if(!n&&0===Object.keys(e).length){try{if(void 0===(t=q()))return}catch(r){throw r}return Promise.resolve(t).then(function(e){return v.current&&E({type:"SUBMIT_SUCCESS"}),e}).catch(function(e){if(v.current)throw E({type:"SUBMIT_FAILURE"}),e})}if(v.current&&(E({type:"SUBMIT_FAILURE"}),n))throw e})}),K=hN(function(e){e&&e.preventDefault&&hl(e.preventDefault)&&e.preventDefault(),e&&e.stopPropagation&&hl(e.stopPropagation)&&e.stopPropagation(),W().catch(function(e){console.warn("Warning: An unhandled error was caught from submitForm()",e)})}),V={resetForm:A,validateForm:O,validateField:L,setErrors:N,setFieldError:R,setFieldTouched:B,setFieldValue:j,setStatus:z,setSubmitting:G,setTouched:D,setValues:P,setFormikState:$,submitForm:W},q=hN(function(){return f(_.values,V)}),Z=hN(function(e){e&&e.preventDefault&&hl(e.preventDefault)&&e.preventDefault(),e&&e.stopPropagation&&hl(e.stopPropagation)&&e.stopPropagation(),A()}),X=(0,l.useCallback)(function(e){return{value:hm(_.values,e),error:hm(_.errors,e),touched:!!hm(_.touched,e),initialValue:hm(p.current,e),initialTouched:!!hm(m.current,e),initialError:hm(b.current,e)}},[_.errors,_.touched,_.values]),J=(0,l.useCallback)(function(e){return{setValue:function(t,n){return j(e,t,n)},setTouched:function(t,n){return B(e,t,n)},setError:function(t){return R(e,t)}}},[j,B,R]),Q=(0,l.useCallback)(function(e){var t=hf(e),n=t?e.name:e,r=hm(_.values,n),i={name:n,value:r,onChange:Y,onBlur:H};if(t){var a=e.type,o=e.value,s=e.as,u=e.multiple;"checkbox"===a?void 0===o?i.checked=!!r:(i.checked=!!(Array.isArray(r)&&~r.indexOf(o)),i.value=o):"radio"===a?(i.checked=r===o,i.value=o):"select"===s&&u&&(i.value=i.value||[],i.multiple=!0)}return i},[H,Y,_.values]),ee=(0,l.useMemo)(function(){return!sd()(p.current,_.values)},[p.current,_.values]),et=(0,l.useMemo)(function(){return void 0!==s?ee?_.errors&&0===Object.keys(_.errors).length:!1!==s&&hl(s)?s(h):s:_.errors&&0===Object.keys(_.errors).length},[s,ee,_.errors,h]);return ha({},_,{initialValues:p.current,initialErrors:b.current,initialTouched:m.current,initialStatus:g.current,handleBlur:H,handleChange:Y,handleReset:Z,handleSubmit:K,resetForm:A,setErrors:N,setFormikState:$,setFieldTouched:B,setFieldValue:j,setFieldError:R,setStatus:z,setSubmitting:G,setTouched:D,setValues:P,submitForm:W,validateForm:O,validateField:L,isValid:et,dirty:ee,unregisterField:I,registerField:C,getFieldProps:Q,getFieldMeta:X,getFieldHelpers:J,validateOnBlur:i,validateOnChange:n,validateOnMount:o})}function hT(e){var t=hx(e),n=e.component,r=e.children,i=e.render,a=e.innerRef;return(0,l.useImperativeHandle)(a,function(){return t}),(0,l.createElement)(hw,{value:t},n?(0,l.createElement)(n,t):i?i(t):r?hl(r)?r(t):hp(r)?null:l.Children.only(r):null)}function hM(e){var t={};if(e.inner){if(0===e.inner.length)return hg(t,e.path,e.message);for(var n=e.inner,r=Array.isArray(n),i=0,n=r?n:n[Symbol.iterator]();;){if(r){if(i>=n.length)break;a=n[i++]}else{if((i=n.next()).done)break;a=i.value}var a,o=a;hm(t,o.path)||(t=hg(t,o.path,o.message))}}return t}function hO(e,t,n,r){void 0===n&&(n=!1),void 0===r&&(r={});var i=hA(e);return t[n?"validateSync":"validate"](i,{abortEarly:!1,context:r})}function hA(e){var t=Array.isArray(e)?[]:{};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=String(n);!0===Array.isArray(e[r])?t[r]=e[r].map(function(e){return!0===Array.isArray(e)||sR(e)?hA(e):""!==e?e:void 0}):sR(e[r])?t[r]=hA(e[r]):t[r]=""!==e[r]?e[r]:void 0}return t}function hL(e,t,n){var r=e.slice();return t.forEach(function(t,i){if(void 0===r[i]){var a=!1!==n.clone&&n.isMergeableObject(t);r[i]=a?sk(Array.isArray(t)?[]:{},t,n):t}else n.isMergeableObject(t)?r[i]=sk(e[i],t,n):-1===e.indexOf(t)&&r.push(t)}),r}function hC(e){return Array.from(e).filter(function(e){return e.selected}).map(function(e){return e.value})}function hI(e,t,n){if("boolean"==typeof e)return Boolean(t);var r=[],i=!1,a=-1;if(Array.isArray(e))r=e,i=(a=e.indexOf(n))>=0;else if(!n||"true"==n||"false"==n)return Boolean(t);return t&&n&&!i?r.concat(n):i?r.slice(0,a).concat(r.slice(a+1)):r}var hD="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement?l.useLayoutEffect:l.useEffect;function hN(e){var t=(0,l.useRef)(e);return hD(function(){t.current=e}),(0,l.useCallback)(function(){for(var e=arguments.length,n=Array(e),r=0;re?t:e},0);return Array.from(ha({},e,{length:t+1}))};(function(e){function t(t){var n;return(n=e.call(this,t)||this).updateArrayField=function(e,t,r){var i=n.props,a=i.name;(0,i.formik.setFormikState)(function(n){var i="function"==typeof r?r:e,o="function"==typeof t?t:e,s=hg(n.values,a,e(hm(n.values,a))),u=r?i(hm(n.errors,a)):void 0,c=t?o(hm(n.touched,a)):void 0;return hc(u)&&(u=void 0),hc(c)&&(c=void 0),ha({},n,{values:s,errors:r?hg(n.errors,a,u):n.errors,touched:t?hg(n.touched,a,c):n.touched})})},n.push=function(e){return n.updateArrayField(function(t){return[].concat(hU(t),[hi(e)])},!1,!1)},n.handlePush=function(e){return function(){return n.push(e)}},n.swap=function(e,t){return n.updateArrayField(function(n){return hF(n,e,t)},!0,!0)},n.handleSwap=function(e,t){return function(){return n.swap(e,t)}},n.move=function(e,t){return n.updateArrayField(function(n){return hj(n,e,t)},!0,!0)},n.handleMove=function(e,t){return function(){return n.move(e,t)}},n.insert=function(e,t){return n.updateArrayField(function(n){return hY(n,e,t)},function(t){return hY(t,e,null)},function(t){return hY(t,e,null)})},n.handleInsert=function(e,t){return function(){return n.insert(e,t)}},n.replace=function(e,t){return n.updateArrayField(function(n){return hB(n,e,t)},!1,!1)},n.handleReplace=function(e,t){return function(){return n.replace(e,t)}},n.unshift=function(e){var t=-1;return n.updateArrayField(function(n){var r=n?[e].concat(n):[e];return t<0&&(t=r.length),r},function(e){var n=e?[null].concat(e):[null];return t<0&&(t=n.length),n},function(e){var n=e?[null].concat(e):[null];return t<0&&(t=n.length),n}),t},n.handleUnshift=function(e){return function(){return n.unshift(e)}},n.handleRemove=function(e){return function(){return n.remove(e)}},n.handlePop=function(){return function(){return n.pop()}},n.remove=n.remove.bind(hu(n)),n.pop=n.pop.bind(hu(n)),n}ho(t,e);var n=t.prototype;return n.componentDidUpdate=function(e){this.props.validateOnChange&&this.props.formik.validateOnChange&&!sd()(hm(e.formik.values,e.name),hm(this.props.formik.values,this.props.name))&&this.props.formik.validateForm(this.props.formik.values)},n.remove=function(e){var t;return this.updateArrayField(function(n){var r=n?hU(n):[];return t||(t=r[e]),hl(r.splice)&&r.splice(e,1),r},!0,!0),t},n.pop=function(){var e;return this.updateArrayField(function(t){var n=t;return e||(e=n&&n.pop&&n.pop()),n},!0,!0),e},n.render=function(){var e={push:this.push,pop:this.pop,swap:this.swap,move:this.move,insert:this.insert,replace:this.replace,unshift:this.unshift,remove:this.remove,handlePush:this.handlePush,handlePop:this.handlePop,handleSwap:this.handleSwap,handleMove:this.handleMove,handleInsert:this.handleInsert,handleReplace:this.handleReplace,handleUnshift:this.handleUnshift,handleRemove:this.handleRemove},t=this.props,n=t.component,r=t.render,i=t.children,a=t.name,o=hs(t.formik,["validate","validationSchema"]),s=ha({},e,{form:o,name:a});return n?(0,l.createElement)(n,s):r?r(s):i?"function"==typeof i?i(s):hp(i)?null:l.Children.only(i):null},t})(l.Component).defaultProps={validateOnChange:!0},l.Component,l.Component;var hH=n(24802),h$=n(71209),hz=n(91750),hG=n(11970),hW=n(4689),hK=n(67598),hV=function(){return(hV=Object.assign||function(e){for(var t,n=1,r=arguments.length;nt.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var i=0,r=Object.getOwnPropertySymbols(e);it.indexOf(r[i])&&(n[r[i]]=e[r[i]]);return n}function hZ(e){var t=e.disabled,n=e.field,r=n.onBlur,i=hq(n,["onBlur"]),a=e.form,o=a.isSubmitting,s=a.touched,u=a.errors,c=e.onBlur,l=e.helperText,f=hq(e,["disabled","field","form","onBlur","helperText"]),d=hm(u,i.name),h=hm(s,i.name)&&!!d;return hV(hV({variant:f.variant,error:h,helperText:h?d:l,disabled:null!=t?t:o,onBlur:null!=c?c:function(e){r(null!=e?e:i.name)}},i),f)}function hX(e){var t=e.children,n=hq(e,["children"]);return(0,l.createElement)(iw.Z,hV({},hZ(n)),t)}function hJ(e){var t=e.disabled,n=e.field,r=n.onBlur,i=hq(n,["onBlur"]),a=e.form.isSubmitting,o=(e.type,e.onBlur),s=hq(e,["disabled","field","form","type","onBlur"]);return hV(hV({disabled:null!=t?t:a,onBlur:null!=o?o:function(e){r(null!=e?e:i.name)}},i),s)}function hQ(e){return(0,l.createElement)(hH.Z,hV({},hJ(e)))}function h1(e){var t,n=e.disabled,r=e.field,i=r.onBlur,a=hq(r,["onBlur"]),o=e.form.isSubmitting,s=(e.type,e.onBlur),u=hq(e,["disabled","field","form","type","onBlur"]);return hV(hV({disabled:null!=n?n:o,indeterminate:!Array.isArray(a.value)&&null==a.value,onBlur:null!=s?s:function(e){i(null!=e?e:a.name)}},a),u)}function h0(e){return(0,l.createElement)(h$.Z,hV({},h1(e)))}function h2(e){var t=e.Label,n=hq(e,["Label"]);return(0,l.createElement)(hz.Z,hV({control:(0,l.createElement)(h$.Z,hV({},h1(n)))},t))}function h3(e){var t=e.disabled,n=e.field,r=n.onBlur,i=hq(n,["onBlur"]),a=e.form.isSubmitting,o=e.onBlur,s=hq(e,["disabled","field","form","onBlur"]);return hV(hV({disabled:null!=t?t:a,onBlur:null!=o?o:function(e){r(null!=e?e:i.name)}},i),s)}function h4(e){return(0,l.createElement)(hG.default,hV({},h3(e)))}function h6(e){var t=e.field,n=t.onBlur,r=hq(t,["onBlur"]),i=(e.form,e.onBlur),a=hq(e,["field","form","onBlur"]);return hV(hV({onBlur:null!=i?i:function(e){n(null!=e?e:r.name)}},r),a)}function h5(e){return(0,l.createElement)(hW.Z,hV({},h6(e)))}function h8(e){var t=e.disabled,n=e.field,r=n.onBlur,i=hq(n,["onBlur"]),a=e.form.isSubmitting,o=e.onBlur,s=hq(e,["disabled","field","form","onBlur"]);return hV(hV({disabled:null!=t?t:a,onBlur:null!=o?o:function(e){r(null!=e?e:i.name)}},i),s)}function h9(e){return(0,l.createElement)(hK.default,hV({},h8(e)))}hX.displayName="FormikMaterialUITextField",hQ.displayName="FormikMaterialUISwitch",h0.displayName="FormikMaterialUICheckbox",h2.displayName="FormikMaterialUICheckboxWithLabel",h4.displayName="FormikMaterialUISelect",h5.displayName="FormikMaterialUIRadioGroup",h9.displayName="FormikMaterialUIInputBase";try{a=Map}catch(h7){}try{o=Set}catch(pe){}function pt(e,t,n){if(!e||"object"!=typeof e||"function"==typeof e)return e;if(e.nodeType&&"cloneNode"in e)return e.cloneNode(!0);if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp)return RegExp(e);if(Array.isArray(e))return e.map(pn);if(a&&e instanceof a)return new Map(Array.from(e.entries()));if(o&&e instanceof o)return new Set(Array.from(e.values()));if(e instanceof Object){t.push(e);var r=Object.create(e);for(var i in n.push(r),e){var s=t.findIndex(function(t){return t===e[i]});r[i]=s>-1?n[s]:pt(e[i],t,n)}return r}return e}function pn(e){return pt(e,[],[])}let pr=Object.prototype.toString,pi=Error.prototype.toString,pa=RegExp.prototype.toString,po="undefined"!=typeof Symbol?Symbol.prototype.toString:()=>"",ps=/^Symbol\((.*)\)(.*)$/;function pu(e){if(e!=+e)return"NaN";let t=0===e&&1/e<0;return t?"-0":""+e}function pc(e,t=!1){if(null==e||!0===e||!1===e)return""+e;let n=typeof e;if("number"===n)return pu(e);if("string"===n)return t?`"${e}"`:e;if("function"===n)return"[Function "+(e.name||"anonymous")+"]";if("symbol"===n)return po.call(e).replace(ps,"Symbol($1)");let r=pr.call(e).slice(8,-1);return"Date"===r?isNaN(e.getTime())?""+e:e.toISOString(e):"Error"===r||e instanceof Error?"["+pi.call(e)+"]":"RegExp"===r?pa.call(e):null}function pl(e,t){let n=pc(e,t);return null!==n?n:JSON.stringify(e,function(e,n){let r=pc(this[e],t);return null!==r?r:n},2)}let pf={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType({path:e,type:t,value:n,originalValue:r}){let i=null!=r&&r!==n,a=`${e} must be a \`${t}\` type, but the final value was: \`${pl(n,!0)}\``+(i?` (cast from the value \`${pl(r,!0)}\`).`:".");return null===n&&(a+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),a},defined:"${path} must be defined"},pd={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"},ph={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"},pp={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"},pb={isValue:"${path} field must be ${value}"},pm={noUnknown:"${path} field has unspecified keys: ${unknown}"},pg={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must be have ${length} items"};Object.assign(Object.create(null),{mixed:pf,string:pd,number:ph,date:pp,object:pm,array:pg,boolean:pb});var pv=n(18721),py=n.n(pv);let pw=e=>e&&e.__isYupSchema__;class p_{constructor(e,t){if(this.refs=e,this.refs=e,"function"==typeof t){this.fn=t;return}if(!py()(t,"is"))throw TypeError("`is:` is required for `when()` conditions");if(!t.then&&!t.otherwise)throw TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:n,then:r,otherwise:i}=t,a="function"==typeof n?n:(...e)=>e.every(e=>e===n);this.fn=function(...e){let t=e.pop(),n=e.pop(),o=a(...e)?r:i;if(o)return"function"==typeof o?o(n):n.concat(o.resolve(t))}}resolve(e,t){let n=this.refs.map(e=>e.getValue(null==t?void 0:t.value,null==t?void 0:t.parent,null==t?void 0:t.context)),r=this.fn.apply(e,n.concat(e,t));if(void 0===r||r===e)return e;if(!pw(r))throw TypeError("conditions must return a schema object");return r.resolve(t)}}let pE=p_;function pS(e){return null==e?[]:[].concat(e)}function pk(){return(pk=Object.assign||function(e){for(var t=1;tpl(t[n])):"function"==typeof e?e(t):e}static isError(e){return e&&"ValidationError"===e.name}constructor(e,t,n,r){super(),this.name="ValidationError",this.value=t,this.path=n,this.type=r,this.errors=[],this.inner=[],pS(e).forEach(e=>{pT.isError(e)?(this.errors.push(...e.errors),this.inner=this.inner.concat(e.inner.length?e.inner:e)):this.errors.push(e)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,pT)}}let pM=e=>{let t=!1;return(...n)=>{t||(t=!0,e(...n))}};function pO(e,t){let{endEarly:n,tests:r,args:i,value:a,errors:o,sort:s,path:u}=e,c=pM(t),l=r.length,f=[];if(o=o||[],!l)return o.length?c(new pT(o,a,u)):c(null,a);for(let d=0;d=0||(i[n]=e[n]);return i}function pR(e){function t(t,n){let{value:r,path:i="",label:a,options:o,originalValue:s,sync:u}=t,c=pP(t,["value","path","label","options","originalValue","sync"]),{name:l,test:f,params:d,message:h}=e,{parent:p,context:b}=o;function m(e){return pD.isRef(e)?e.getValue(r,p,b):e}function g(e={}){let t=pL()(pN({value:r,originalValue:s,label:a,path:e.path||i},d,e.params),m),n=new pT(pT.formatError(e.message||h,t),r,t.path,e.type||l);return n.params=t,n}let v=pN({path:i,parent:p,type:l,createError:g,resolve:m,options:o,originalValue:s},c);if(!u){try{Promise.resolve(f.call(v,r,v)).then(e=>{pT.isError(e)?n(e):e?n(null,e):n(g())})}catch(y){n(y)}return}let w;try{var _;if(w=f.call(v,r,v),"function"==typeof(null==(_=w)?void 0:_.then))throw Error(`Validation test of type: "${v.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(E){n(E);return}pT.isError(w)?n(w):w?n(null,w):n(g())}return t.OPTIONS=e,t}pD.prototype.__isYupRef=!0;let pj=e=>e.substr(0,e.length-1).substr(1);function pF(e,t,n,r=n){let i,a,o;return t?((0,pC.forEach)(t,(s,u,c)=>{let l=u?pj(s):s;if((e=e.resolve({context:r,parent:i,value:n})).innerType){let f=c?parseInt(l,10):0;if(n&&f>=n.length)throw Error(`Yup.reach cannot resolve an array item at index: ${s}, in the path: ${t}. because there is no value at that index. `);i=n,n=n&&n[f],e=e.innerType}if(!c){if(!e.fields||!e.fields[l])throw Error(`The schema does not contain the path: ${t}. (failed at: ${o} which is a type: "${e._type}")`);i=n,n=n&&n[l],e=e.fields[l]}a=l,o=u?"["+s+"]":"."+s}),{schema:e,parent:i,parentPath:a}):{parent:i,parentPath:t,schema:e}}class pY{constructor(){this.list=new Set,this.refs=new Map}get size(){return this.list.size+this.refs.size}describe(){let e=[];for(let t of this.list)e.push(t);for(let[,n]of this.refs)e.push(n.describe());return e}toArray(){return Array.from(this.list).concat(Array.from(this.refs.values()))}add(e){pD.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){pD.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,t){if(this.list.has(e))return!0;let n,r=this.refs.values();for(;!(n=r.next()).done;)if(t(n.value)===e)return!0;return!1}clone(){let e=new pY;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,t){let n=this.clone();return e.list.forEach(e=>n.add(e)),e.refs.forEach(e=>n.add(e)),t.list.forEach(e=>n.delete(e)),t.refs.forEach(e=>n.delete(e)),n}}function pB(){return(pB=Object.assign||function(e){for(var t=1;t{this.typeError(pf.notType)}),this.type=(null==e?void 0:e.type)||"mixed",this.spec=pB({strip:!1,strict:!1,abortEarly:!0,recursive:!0,nullable:!1,presence:"optional"},null==e?void 0:e.spec)}get _type(){return this.type}_typeCheck(e){return!0}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;let t=Object.create(Object.getPrototypeOf(this));return t.type=this.type,t._typeError=this._typeError,t._whitelistError=this._whitelistError,t._blacklistError=this._blacklistError,t._whitelist=this._whitelist.clone(),t._blacklist=this._blacklist.clone(),t.exclusiveTests=pB({},this.exclusiveTests),t.deps=[...this.deps],t.conditions=[...this.conditions],t.tests=[...this.tests],t.transforms=[...this.transforms],t.spec=pn(pB({},this.spec,e)),t}label(e){var t=this.clone();return t.spec.label=e,t}meta(...e){if(0===e.length)return this.spec.meta;let t=this.clone();return t.spec.meta=Object.assign(t.spec.meta||{},e[0]),t}withMutation(e){let t=this._mutate;this._mutate=!0;let n=e(this);return this._mutate=t,n}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&"mixed"!==this.type)throw TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);let t=this,n=e.clone(),r=pB({},t.spec,n.spec);return n.spec=r,n._typeError||(n._typeError=t._typeError),n._whitelistError||(n._whitelistError=t._whitelistError),n._blacklistError||(n._blacklistError=t._blacklistError),n._whitelist=t._whitelist.merge(e._whitelist,e._blacklist),n._blacklist=t._blacklist.merge(e._blacklist,e._whitelist),n.tests=t.tests,n.exclusiveTests=t.exclusiveTests,n.withMutation(t=>{e.tests.forEach(e=>{t.test(e.OPTIONS)})}),n}isType(e){return!!this.spec.nullable&&null===e||this._typeCheck(e)}resolve(e){let t=this;if(t.conditions.length){let n=t.conditions;(t=t.clone()).conditions=[],t=(t=n.reduce((t,n)=>n.resolve(t,e),t)).resolve(e)}return t}cast(e,t={}){let n=this.resolve(pB({value:e},t)),r=n._cast(e,t);if(void 0!==e&&!1!==t.assert&&!0!==n.isType(r)){let i=pl(e),a=pl(r);throw TypeError(`The value of ${t.path||"field"} could not be cast to a value that satisfies the schema type: "${n._type}". + */ Object.defineProperty(t,"__esModule",{value:!0}),"undefined"==typeof window||"function"!=typeof MessageChannel){var n,r,i,a,o,s=null,u=null,c=function(){if(null!==s)try{var e=t.unstable_now();s(!0,e),s=null}catch(n){throw setTimeout(c,0),n}},l=Date.now();t.unstable_now=function(){return Date.now()-l},n=function(e){null!==s?setTimeout(n,0,e):(s=e,setTimeout(c,0))},r=function(e,t){u=setTimeout(e,t)},i=function(){clearTimeout(u)},a=function(){return!1},o=t.unstable_forceFrameRate=function(){}}else{var f=window.performance,d=window.Date,h=window.setTimeout,p=window.clearTimeout;if("undefined"!=typeof console){var b=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),"function"!=typeof b&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")}if("object"==typeof f&&"function"==typeof f.now)t.unstable_now=function(){return f.now()};else{var m=d.now();t.unstable_now=function(){return d.now()-m}}var g=!1,v=null,y=-1,w=5,_=0;a=function(){return t.unstable_now()>=_},o=function(){},t.unstable_forceFrameRate=function(e){0>e||125M(o,n))void 0!==u&&0>M(u,o)?(e[r]=u,e[s]=n,r=s):(e[r]=o,e[a]=n,r=a);else if(void 0!==u&&0>M(u,n))e[r]=u,e[s]=n,r=s;else break a}}return t}return null}function M(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var O=[],A=[],L=1,C=null,I=3,D=!1,N=!1,P=!1;function R(e){for(var t=x(A);null!==t;){if(null===t.callback)T(A);else if(t.startTime<=e)T(A),t.sortIndex=t.expirationTime,k(O,t);else break;t=x(A)}}function j(e){if(P=!1,R(e),!N){if(null!==x(O))N=!0,n(F);else{var t=x(A);null!==t&&r(j,t.startTime-e)}}}function F(e,n){N=!1,P&&(P=!1,i()),D=!0;var o=I;try{for(R(n),C=x(O);null!==C&&(!(C.expirationTime>n)||e&&!a());){var s=C.callback;if(null!==s){C.callback=null,I=C.priorityLevel;var u=s(C.expirationTime<=n);n=t.unstable_now(),"function"==typeof u?C.callback=u:C===x(O)&&T(O),R(n)}else T(O);C=x(O)}if(null!==C)var c=!0;else{var l=x(A);null!==l&&r(j,l.startTime-n),c=!1}return c}finally{C=null,I=o,D=!1}}function Y(e){switch(e){case 1:return -1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}var B=o;t.unstable_ImmediatePriority=1,t.unstable_UserBlockingPriority=2,t.unstable_NormalPriority=3,t.unstable_IdlePriority=5,t.unstable_LowPriority=4,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=I;I=e;try{return t()}finally{I=n}},t.unstable_next=function(e){switch(I){case 1:case 2:case 3:var t=3;break;default:t=I}var n=I;I=t;try{return e()}finally{I=n}},t.unstable_scheduleCallback=function(e,a,o){var s=t.unstable_now();if("object"==typeof o&&null!==o){var u=o.delay;u="number"==typeof u&&0s?(e.sortIndex=u,k(A,e),null===x(O)&&e===x(A)&&(P?i():P=!0,r(j,u-s))):(e.sortIndex=o,k(O,e),N||D||(N=!0,n(F))),e},t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_wrapCallback=function(e){var t=I;return function(){var n=I;I=t;try{return e.apply(this,arguments)}finally{I=n}}},t.unstable_getCurrentPriorityLevel=function(){return I},t.unstable_shouldYield=function(){var e=t.unstable_now();R(e);var n=x(O);return n!==C&&null!==C&&null!==n&&null!==n.callback&&n.startTime<=e&&n.expirationTime>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function c(e,t,n){var r=t.length-1;if(r=0?(i>0&&(e.lastNeed=i-1),i):--r=0?(i>0&&(e.lastNeed=i-2),i):--r=0?(i>0&&(2===i?i=0:e.lastNeed=i-3),i):0}function l(e,t,n){if((192&t[0])!=128)return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if((192&t[1])!=128)return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&(192&t[2])!=128)return e.lastNeed=2,"�"}}function f(e){var t=this.lastTotal-this.lastNeed,n=l(this,e,t);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):void(e.copy(this.lastChar,t,0,e.length),this.lastNeed-=e.length)}function d(e,t){var n=c(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)}function h(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t}function p(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function b(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function m(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function g(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function v(e){return e.toString(this.encoding)}function y(e){return e&&e.length?this.write(e):""}t.s=s,s.prototype.write=function(e){var t,n;if(0===e.length)return"";if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n */ var r=n(48764),i=r.Buffer;function a(e,t){for(var n in e)t[n]=e[n]}function o(e,t,n){return i(e,t,n)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=r:(a(r,t),t.Buffer=o),o.prototype=Object.create(i.prototype),a(i,o),o.from=function(e,t,n){if("number"==typeof e)throw TypeError("Argument must not be a number");return i(e,t,n)},o.alloc=function(e,t,n){if("number"!=typeof e)throw TypeError("Argument must be a number");var r=i(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},o.allocUnsafe=function(e){if("number"!=typeof e)throw TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw TypeError("Argument must be a number");return r.SlowBuffer(e)}},93379(e,t,n){"use strict";var r,i,a=function(){return void 0===r&&(r=Boolean(window&&document&&document.all&&!window.atob)),r},o=(i={},function(e){if(void 0===i[e]){var t=document.querySelector(e);if(window.HTMLIFrameElement&&t instanceof window.HTMLIFrameElement)try{t=t.contentDocument.head}catch(n){t=null}i[e]=t}return i[e]}),s=[];function u(e){for(var t=-1,n=0;nAl});var r,i,a,o,s,u,c,l=n(67294),f=n.t(l,2),d=n(39814),h=n(5977),p=n(57209),b=n(32316),m=n(95880),g=n(17051),v=n(71381),y=n(81701),w=n(3022),_=n(60323),E=n(87591),S=n(25649),k=n(28902),x=n(71426),T=n(48884),M=n(94184),O=n.n(M),A=n(37703),L=n(73935),C=function(){if("undefined"!=typeof Map)return Map;function e(e,t){var n=-1;return e.some(function(e,r){return e[0]===t&&(n=r,!0)}),n}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(t){var n=e(this.__entries__,t),r=this.__entries__[n];return r&&r[1]},t.prototype.set=function(t,n){var r=e(this.__entries__,t);~r?this.__entries__[r][1]=n:this.__entries__.push([t,n])},t.prototype.delete=function(t){var n=this.__entries__,r=e(n,t);~r&&n.splice(r,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){void 0===t&&(t=null);for(var n=0,r=this.__entries__;n0},e.prototype.connect_=function(){I&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),Y?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){I&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,n=void 0===t?"":t;F.some(function(e){return!!~n.indexOf(e)})&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),U=function(e,t){for(var n=0,r=Object.keys(t);n0},e}(),er="undefined"!=typeof WeakMap?new WeakMap:new C,ei=function(){function e(t){if(!(this instanceof e))throw TypeError("Cannot call a class as a function.");if(!arguments.length)throw TypeError("1 argument required, but only 0 present.");var n=B.getInstance(),r=new en(t,n,this);er.set(this,r)}return e}();["observe","unobserve","disconnect"].forEach(function(e){ei.prototype[e]=function(){var t;return(t=er.get(this))[e].apply(t,arguments)}});var ea=void 0!==D.ResizeObserver?D.ResizeObserver:ei;let eo=ea;var es=function(e){var t=[],n=null,r=function(){for(var r=arguments.length,i=Array(r),a=0;a=t||n<0||f&&r>=a}function g(){var e=eb();if(m(e))return v(e);s=setTimeout(g,b(e))}function v(e){return(s=void 0,d&&r)?h(e):(r=i=void 0,o)}function y(){void 0!==s&&clearTimeout(s),c=0,r=u=i=s=void 0}function w(){return void 0===s?o:v(eb())}function _(){var e=eb(),n=m(e);if(r=arguments,i=this,u=e,n){if(void 0===s)return p(u);if(f)return clearTimeout(s),s=setTimeout(g,t),h(u)}return void 0===s&&(s=setTimeout(g,t)),o}return t=ez(t)||0,ed(n)&&(l=!!n.leading,a=(f="maxWait"in n)?eW(ez(n.maxWait)||0,t):a,d="trailing"in n?!!n.trailing:d),_.cancel=y,_.flush=w,_}let eq=eV;var eZ="Expected a function";function eX(e,t,n){var r=!0,i=!0;if("function"!=typeof e)throw TypeError(eZ);return ed(n)&&(r="leading"in n?!!n.leading:r,i="trailing"in n?!!n.trailing:i),eq(e,t,{leading:r,maxWait:t,trailing:i})}let eJ=eX;var eQ={debounce:eq,throttle:eJ},e1=function(e){return eQ[e]},e0=function(e){return"function"==typeof e},e2=function(){return"undefined"==typeof window},e3=function(e){return e instanceof Element||e instanceof HTMLDocument};function e4(e){return(e4="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function e6(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}function e5(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&l.createElement(tG.Z,{variant:"indeterminate",classes:r}))};tK.propTypes={fetchCount:el().number.isRequired};let tV=(0,b.withStyles)(tW)(tK);var tq=n(5536);let tZ=n.p+"ba8bbf16ebf8e1d05bef.svg";function tX(){return(tX=Object.assign||function(e){for(var t=1;t120){for(var d=Math.floor(u/80),h=u%80,p=[],b=0;b0},name:{enumerable:!1},nodes:{enumerable:!1},source:{enumerable:!1},positions:{enumerable:!1},originalError:{enumerable:!1}}),null!=s&&s.stack)?(Object.defineProperty(nf(b),"stack",{value:s.stack,writable:!0,configurable:!0}),nl(b)):(Error.captureStackTrace?Error.captureStackTrace(nf(b),n):Object.defineProperty(nf(b),"stack",{value:Error().stack,writable:!0,configurable:!0}),b)}return ns(n,[{key:"toString",value:function(){return nw(this)}},{key:t4.YF,get:function(){return"Object"}}]),n}(nd(Error));function ny(e){return void 0===e||0===e.length?void 0:e}function nw(e){var t=e.message;if(e.nodes)for(var n=0,r=e.nodes;n",EOF:"",BANG:"!",DOLLAR:"$",AMP:"&",PAREN_L:"(",PAREN_R:")",SPREAD:"...",COLON:":",EQUALS:"=",AT:"@",BRACKET_L:"[",BRACKET_R:"]",BRACE_L:"{",PIPE:"|",BRACE_R:"}",NAME:"Name",INT:"Int",FLOAT:"Float",STRING:"String",BLOCK_STRING:"BlockString",COMMENT:"Comment"}),nx=n(10143),nT=Object.freeze({QUERY:"QUERY",MUTATION:"MUTATION",SUBSCRIPTION:"SUBSCRIPTION",FIELD:"FIELD",FRAGMENT_DEFINITION:"FRAGMENT_DEFINITION",FRAGMENT_SPREAD:"FRAGMENT_SPREAD",INLINE_FRAGMENT:"INLINE_FRAGMENT",VARIABLE_DEFINITION:"VARIABLE_DEFINITION",SCHEMA:"SCHEMA",SCALAR:"SCALAR",OBJECT:"OBJECT",FIELD_DEFINITION:"FIELD_DEFINITION",ARGUMENT_DEFINITION:"ARGUMENT_DEFINITION",INTERFACE:"INTERFACE",UNION:"UNION",ENUM:"ENUM",ENUM_VALUE:"ENUM_VALUE",INPUT_OBJECT:"INPUT_OBJECT",INPUT_FIELD_DEFINITION:"INPUT_FIELD_DEFINITION"}),nM=n(87392),nO=function(){function e(e){var t=new nS.WU(nk.SOF,0,0,0,0,null);this.source=e,this.lastToken=t,this.token=t,this.line=1,this.lineStart=0}var t=e.prototype;return t.advance=function(){return this.lastToken=this.token,this.token=this.lookahead()},t.lookahead=function(){var e,t=this.token;if(t.kind!==nk.EOF)do t=null!==(e=t.next)&&void 0!==e?e:t.next=nC(this,t);while(t.kind===nk.COMMENT)return t},e}();function nA(e){return e===nk.BANG||e===nk.DOLLAR||e===nk.AMP||e===nk.PAREN_L||e===nk.PAREN_R||e===nk.SPREAD||e===nk.COLON||e===nk.EQUALS||e===nk.AT||e===nk.BRACKET_L||e===nk.BRACKET_R||e===nk.BRACE_L||e===nk.PIPE||e===nk.BRACE_R}function nL(e){return isNaN(e)?nk.EOF:e<127?JSON.stringify(String.fromCharCode(e)):'"\\u'.concat(("00"+e.toString(16).toUpperCase()).slice(-4),'"')}function nC(e,t){for(var n=e.source,r=n.body,i=r.length,a=t.end;a31||9===a))return new nS.WU(nk.COMMENT,t,s,n,r,i,o.slice(t+1,s))}function nN(e,t,n,r,i,a){var o=e.body,s=n,u=t,c=!1;if(45===s&&(s=o.charCodeAt(++u)),48===s){if((s=o.charCodeAt(++u))>=48&&s<=57)throw n_(e,u,"Invalid number, unexpected digit after 0: ".concat(nL(s),"."))}else u=nP(e,u,s),s=o.charCodeAt(u);if(46===s&&(c=!0,s=o.charCodeAt(++u),u=nP(e,u,s),s=o.charCodeAt(u)),(69===s||101===s)&&(c=!0,(43===(s=o.charCodeAt(++u))||45===s)&&(s=o.charCodeAt(++u)),u=nP(e,u,s),s=o.charCodeAt(u)),46===s||nU(s))throw n_(e,u,"Invalid number, expected digit but got: ".concat(nL(s),"."));return new nS.WU(c?nk.FLOAT:nk.INT,t,u,r,i,a,o.slice(t,u))}function nP(e,t,n){var r=e.body,i=t,a=n;if(a>=48&&a<=57){do a=r.charCodeAt(++i);while(a>=48&&a<=57)return i}throw n_(e,i,"Invalid number, expected digit but got: ".concat(nL(a),"."))}function nR(e,t,n,r,i){for(var a=e.body,o=t+1,s=o,u=0,c="";o=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:-1}function nB(e,t,n,r,i){for(var a=e.body,o=a.length,s=t+1,u=0;s!==o&&!isNaN(u=a.charCodeAt(s))&&(95===u||u>=48&&u<=57||u>=65&&u<=90||u>=97&&u<=122);)++s;return new nS.WU(nk.NAME,t,s,n,r,i,a.slice(t,s))}function nU(e){return 95===e||e>=65&&e<=90||e>=97&&e<=122}function nH(e,t){return new n$(e,t).parseDocument()}var n$=function(){function e(e,t){var n=(0,nx.T)(e)?e:new nx.H(e);this._lexer=new nO(n),this._options=t}var t=e.prototype;return t.parseName=function(){var e=this.expectToken(nk.NAME);return{kind:nE.h.NAME,value:e.value,loc:this.loc(e)}},t.parseDocument=function(){var e=this._lexer.token;return{kind:nE.h.DOCUMENT,definitions:this.many(nk.SOF,this.parseDefinition,nk.EOF),loc:this.loc(e)}},t.parseDefinition=function(){if(this.peek(nk.NAME))switch(this._lexer.token.value){case"query":case"mutation":case"subscription":return this.parseOperationDefinition();case"fragment":return this.parseFragmentDefinition();case"schema":case"scalar":case"type":case"interface":case"union":case"enum":case"input":case"directive":return this.parseTypeSystemDefinition();case"extend":return this.parseTypeSystemExtension()}else if(this.peek(nk.BRACE_L))return this.parseOperationDefinition();else if(this.peekDescription())return this.parseTypeSystemDefinition();throw this.unexpected()},t.parseOperationDefinition=function(){var e,t=this._lexer.token;if(this.peek(nk.BRACE_L))return{kind:nE.h.OPERATION_DEFINITION,operation:"query",name:void 0,variableDefinitions:[],directives:[],selectionSet:this.parseSelectionSet(),loc:this.loc(t)};var n=this.parseOperationType();return this.peek(nk.NAME)&&(e=this.parseName()),{kind:nE.h.OPERATION_DEFINITION,operation:n,name:e,variableDefinitions:this.parseVariableDefinitions(),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(t)}},t.parseOperationType=function(){var e=this.expectToken(nk.NAME);switch(e.value){case"query":return"query";case"mutation":return"mutation";case"subscription":return"subscription"}throw this.unexpected(e)},t.parseVariableDefinitions=function(){return this.optionalMany(nk.PAREN_L,this.parseVariableDefinition,nk.PAREN_R)},t.parseVariableDefinition=function(){var e=this._lexer.token;return{kind:nE.h.VARIABLE_DEFINITION,variable:this.parseVariable(),type:(this.expectToken(nk.COLON),this.parseTypeReference()),defaultValue:this.expectOptionalToken(nk.EQUALS)?this.parseValueLiteral(!0):void 0,directives:this.parseDirectives(!0),loc:this.loc(e)}},t.parseVariable=function(){var e=this._lexer.token;return this.expectToken(nk.DOLLAR),{kind:nE.h.VARIABLE,name:this.parseName(),loc:this.loc(e)}},t.parseSelectionSet=function(){var e=this._lexer.token;return{kind:nE.h.SELECTION_SET,selections:this.many(nk.BRACE_L,this.parseSelection,nk.BRACE_R),loc:this.loc(e)}},t.parseSelection=function(){return this.peek(nk.SPREAD)?this.parseFragment():this.parseField()},t.parseField=function(){var e,t,n=this._lexer.token,r=this.parseName();return this.expectOptionalToken(nk.COLON)?(e=r,t=this.parseName()):t=r,{kind:nE.h.FIELD,alias:e,name:t,arguments:this.parseArguments(!1),directives:this.parseDirectives(!1),selectionSet:this.peek(nk.BRACE_L)?this.parseSelectionSet():void 0,loc:this.loc(n)}},t.parseArguments=function(e){var t=e?this.parseConstArgument:this.parseArgument;return this.optionalMany(nk.PAREN_L,t,nk.PAREN_R)},t.parseArgument=function(){var e=this._lexer.token,t=this.parseName();return this.expectToken(nk.COLON),{kind:nE.h.ARGUMENT,name:t,value:this.parseValueLiteral(!1),loc:this.loc(e)}},t.parseConstArgument=function(){var e=this._lexer.token;return{kind:nE.h.ARGUMENT,name:this.parseName(),value:(this.expectToken(nk.COLON),this.parseValueLiteral(!0)),loc:this.loc(e)}},t.parseFragment=function(){var e=this._lexer.token;this.expectToken(nk.SPREAD);var t=this.expectOptionalKeyword("on");return!t&&this.peek(nk.NAME)?{kind:nE.h.FRAGMENT_SPREAD,name:this.parseFragmentName(),directives:this.parseDirectives(!1),loc:this.loc(e)}:{kind:nE.h.INLINE_FRAGMENT,typeCondition:t?this.parseNamedType():void 0,directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(e)}},t.parseFragmentDefinition=function(){var e,t=this._lexer.token;return(this.expectKeyword("fragment"),(null===(e=this._options)||void 0===e?void 0:e.experimentalFragmentVariables)===!0)?{kind:nE.h.FRAGMENT_DEFINITION,name:this.parseFragmentName(),variableDefinitions:this.parseVariableDefinitions(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(t)}:{kind:nE.h.FRAGMENT_DEFINITION,name:this.parseFragmentName(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(t)}},t.parseFragmentName=function(){if("on"===this._lexer.token.value)throw this.unexpected();return this.parseName()},t.parseValueLiteral=function(e){var t=this._lexer.token;switch(t.kind){case nk.BRACKET_L:return this.parseList(e);case nk.BRACE_L:return this.parseObject(e);case nk.INT:return this._lexer.advance(),{kind:nE.h.INT,value:t.value,loc:this.loc(t)};case nk.FLOAT:return this._lexer.advance(),{kind:nE.h.FLOAT,value:t.value,loc:this.loc(t)};case nk.STRING:case nk.BLOCK_STRING:return this.parseStringLiteral();case nk.NAME:switch(this._lexer.advance(),t.value){case"true":return{kind:nE.h.BOOLEAN,value:!0,loc:this.loc(t)};case"false":return{kind:nE.h.BOOLEAN,value:!1,loc:this.loc(t)};case"null":return{kind:nE.h.NULL,loc:this.loc(t)};default:return{kind:nE.h.ENUM,value:t.value,loc:this.loc(t)}}case nk.DOLLAR:if(!e)return this.parseVariable()}throw this.unexpected()},t.parseStringLiteral=function(){var e=this._lexer.token;return this._lexer.advance(),{kind:nE.h.STRING,value:e.value,block:e.kind===nk.BLOCK_STRING,loc:this.loc(e)}},t.parseList=function(e){var t=this,n=this._lexer.token,r=function(){return t.parseValueLiteral(e)};return{kind:nE.h.LIST,values:this.any(nk.BRACKET_L,r,nk.BRACKET_R),loc:this.loc(n)}},t.parseObject=function(e){var t=this,n=this._lexer.token,r=function(){return t.parseObjectField(e)};return{kind:nE.h.OBJECT,fields:this.any(nk.BRACE_L,r,nk.BRACE_R),loc:this.loc(n)}},t.parseObjectField=function(e){var t=this._lexer.token,n=this.parseName();return this.expectToken(nk.COLON),{kind:nE.h.OBJECT_FIELD,name:n,value:this.parseValueLiteral(e),loc:this.loc(t)}},t.parseDirectives=function(e){for(var t=[];this.peek(nk.AT);)t.push(this.parseDirective(e));return t},t.parseDirective=function(e){var t=this._lexer.token;return this.expectToken(nk.AT),{kind:nE.h.DIRECTIVE,name:this.parseName(),arguments:this.parseArguments(e),loc:this.loc(t)}},t.parseTypeReference=function(){var e,t=this._lexer.token;return(this.expectOptionalToken(nk.BRACKET_L)?(e=this.parseTypeReference(),this.expectToken(nk.BRACKET_R),e={kind:nE.h.LIST_TYPE,type:e,loc:this.loc(t)}):e=this.parseNamedType(),this.expectOptionalToken(nk.BANG))?{kind:nE.h.NON_NULL_TYPE,type:e,loc:this.loc(t)}:e},t.parseNamedType=function(){var e=this._lexer.token;return{kind:nE.h.NAMED_TYPE,name:this.parseName(),loc:this.loc(e)}},t.parseTypeSystemDefinition=function(){var e=this.peekDescription()?this._lexer.lookahead():this._lexer.token;if(e.kind===nk.NAME)switch(e.value){case"schema":return this.parseSchemaDefinition();case"scalar":return this.parseScalarTypeDefinition();case"type":return this.parseObjectTypeDefinition();case"interface":return this.parseInterfaceTypeDefinition();case"union":return this.parseUnionTypeDefinition();case"enum":return this.parseEnumTypeDefinition();case"input":return this.parseInputObjectTypeDefinition();case"directive":return this.parseDirectiveDefinition()}throw this.unexpected(e)},t.peekDescription=function(){return this.peek(nk.STRING)||this.peek(nk.BLOCK_STRING)},t.parseDescription=function(){if(this.peekDescription())return this.parseStringLiteral()},t.parseSchemaDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("schema");var n=this.parseDirectives(!0),r=this.many(nk.BRACE_L,this.parseOperationTypeDefinition,nk.BRACE_R);return{kind:nE.h.SCHEMA_DEFINITION,description:t,directives:n,operationTypes:r,loc:this.loc(e)}},t.parseOperationTypeDefinition=function(){var e=this._lexer.token,t=this.parseOperationType();this.expectToken(nk.COLON);var n=this.parseNamedType();return{kind:nE.h.OPERATION_TYPE_DEFINITION,operation:t,type:n,loc:this.loc(e)}},t.parseScalarTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("scalar");var n=this.parseName(),r=this.parseDirectives(!0);return{kind:nE.h.SCALAR_TYPE_DEFINITION,description:t,name:n,directives:r,loc:this.loc(e)}},t.parseObjectTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("type");var n=this.parseName(),r=this.parseImplementsInterfaces(),i=this.parseDirectives(!0),a=this.parseFieldsDefinition();return{kind:nE.h.OBJECT_TYPE_DEFINITION,description:t,name:n,interfaces:r,directives:i,fields:a,loc:this.loc(e)}},t.parseImplementsInterfaces=function(){var e;if(!this.expectOptionalKeyword("implements"))return[];if((null===(e=this._options)||void 0===e?void 0:e.allowLegacySDLImplementsInterfaces)===!0){var t=[];this.expectOptionalToken(nk.AMP);do t.push(this.parseNamedType());while(this.expectOptionalToken(nk.AMP)||this.peek(nk.NAME))return t}return this.delimitedMany(nk.AMP,this.parseNamedType)},t.parseFieldsDefinition=function(){var e;return(null===(e=this._options)||void 0===e?void 0:e.allowLegacySDLEmptyFields)===!0&&this.peek(nk.BRACE_L)&&this._lexer.lookahead().kind===nk.BRACE_R?(this._lexer.advance(),this._lexer.advance(),[]):this.optionalMany(nk.BRACE_L,this.parseFieldDefinition,nk.BRACE_R)},t.parseFieldDefinition=function(){var e=this._lexer.token,t=this.parseDescription(),n=this.parseName(),r=this.parseArgumentDefs();this.expectToken(nk.COLON);var i=this.parseTypeReference(),a=this.parseDirectives(!0);return{kind:nE.h.FIELD_DEFINITION,description:t,name:n,arguments:r,type:i,directives:a,loc:this.loc(e)}},t.parseArgumentDefs=function(){return this.optionalMany(nk.PAREN_L,this.parseInputValueDef,nk.PAREN_R)},t.parseInputValueDef=function(){var e,t=this._lexer.token,n=this.parseDescription(),r=this.parseName();this.expectToken(nk.COLON);var i=this.parseTypeReference();this.expectOptionalToken(nk.EQUALS)&&(e=this.parseValueLiteral(!0));var a=this.parseDirectives(!0);return{kind:nE.h.INPUT_VALUE_DEFINITION,description:n,name:r,type:i,defaultValue:e,directives:a,loc:this.loc(t)}},t.parseInterfaceTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("interface");var n=this.parseName(),r=this.parseImplementsInterfaces(),i=this.parseDirectives(!0),a=this.parseFieldsDefinition();return{kind:nE.h.INTERFACE_TYPE_DEFINITION,description:t,name:n,interfaces:r,directives:i,fields:a,loc:this.loc(e)}},t.parseUnionTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("union");var n=this.parseName(),r=this.parseDirectives(!0),i=this.parseUnionMemberTypes();return{kind:nE.h.UNION_TYPE_DEFINITION,description:t,name:n,directives:r,types:i,loc:this.loc(e)}},t.parseUnionMemberTypes=function(){return this.expectOptionalToken(nk.EQUALS)?this.delimitedMany(nk.PIPE,this.parseNamedType):[]},t.parseEnumTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("enum");var n=this.parseName(),r=this.parseDirectives(!0),i=this.parseEnumValuesDefinition();return{kind:nE.h.ENUM_TYPE_DEFINITION,description:t,name:n,directives:r,values:i,loc:this.loc(e)}},t.parseEnumValuesDefinition=function(){return this.optionalMany(nk.BRACE_L,this.parseEnumValueDefinition,nk.BRACE_R)},t.parseEnumValueDefinition=function(){var e=this._lexer.token,t=this.parseDescription(),n=this.parseName(),r=this.parseDirectives(!0);return{kind:nE.h.ENUM_VALUE_DEFINITION,description:t,name:n,directives:r,loc:this.loc(e)}},t.parseInputObjectTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("input");var n=this.parseName(),r=this.parseDirectives(!0),i=this.parseInputFieldsDefinition();return{kind:nE.h.INPUT_OBJECT_TYPE_DEFINITION,description:t,name:n,directives:r,fields:i,loc:this.loc(e)}},t.parseInputFieldsDefinition=function(){return this.optionalMany(nk.BRACE_L,this.parseInputValueDef,nk.BRACE_R)},t.parseTypeSystemExtension=function(){var e=this._lexer.lookahead();if(e.kind===nk.NAME)switch(e.value){case"schema":return this.parseSchemaExtension();case"scalar":return this.parseScalarTypeExtension();case"type":return this.parseObjectTypeExtension();case"interface":return this.parseInterfaceTypeExtension();case"union":return this.parseUnionTypeExtension();case"enum":return this.parseEnumTypeExtension();case"input":return this.parseInputObjectTypeExtension()}throw this.unexpected(e)},t.parseSchemaExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("schema");var t=this.parseDirectives(!0),n=this.optionalMany(nk.BRACE_L,this.parseOperationTypeDefinition,nk.BRACE_R);if(0===t.length&&0===n.length)throw this.unexpected();return{kind:nE.h.SCHEMA_EXTENSION,directives:t,operationTypes:n,loc:this.loc(e)}},t.parseScalarTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("scalar");var t=this.parseName(),n=this.parseDirectives(!0);if(0===n.length)throw this.unexpected();return{kind:nE.h.SCALAR_TYPE_EXTENSION,name:t,directives:n,loc:this.loc(e)}},t.parseObjectTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("type");var t=this.parseName(),n=this.parseImplementsInterfaces(),r=this.parseDirectives(!0),i=this.parseFieldsDefinition();if(0===n.length&&0===r.length&&0===i.length)throw this.unexpected();return{kind:nE.h.OBJECT_TYPE_EXTENSION,name:t,interfaces:n,directives:r,fields:i,loc:this.loc(e)}},t.parseInterfaceTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("interface");var t=this.parseName(),n=this.parseImplementsInterfaces(),r=this.parseDirectives(!0),i=this.parseFieldsDefinition();if(0===n.length&&0===r.length&&0===i.length)throw this.unexpected();return{kind:nE.h.INTERFACE_TYPE_EXTENSION,name:t,interfaces:n,directives:r,fields:i,loc:this.loc(e)}},t.parseUnionTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("union");var t=this.parseName(),n=this.parseDirectives(!0),r=this.parseUnionMemberTypes();if(0===n.length&&0===r.length)throw this.unexpected();return{kind:nE.h.UNION_TYPE_EXTENSION,name:t,directives:n,types:r,loc:this.loc(e)}},t.parseEnumTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("enum");var t=this.parseName(),n=this.parseDirectives(!0),r=this.parseEnumValuesDefinition();if(0===n.length&&0===r.length)throw this.unexpected();return{kind:nE.h.ENUM_TYPE_EXTENSION,name:t,directives:n,values:r,loc:this.loc(e)}},t.parseInputObjectTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("input");var t=this.parseName(),n=this.parseDirectives(!0),r=this.parseInputFieldsDefinition();if(0===n.length&&0===r.length)throw this.unexpected();return{kind:nE.h.INPUT_OBJECT_TYPE_EXTENSION,name:t,directives:n,fields:r,loc:this.loc(e)}},t.parseDirectiveDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("directive"),this.expectToken(nk.AT);var n=this.parseName(),r=this.parseArgumentDefs(),i=this.expectOptionalKeyword("repeatable");this.expectKeyword("on");var a=this.parseDirectiveLocations();return{kind:nE.h.DIRECTIVE_DEFINITION,description:t,name:n,arguments:r,repeatable:i,locations:a,loc:this.loc(e)}},t.parseDirectiveLocations=function(){return this.delimitedMany(nk.PIPE,this.parseDirectiveLocation)},t.parseDirectiveLocation=function(){var e=this._lexer.token,t=this.parseName();if(void 0!==nT[t.value])return t;throw this.unexpected(e)},t.loc=function(e){var t;if((null===(t=this._options)||void 0===t?void 0:t.noLocation)!==!0)return new nS.Ye(e,this._lexer.lastToken,this._lexer.source)},t.peek=function(e){return this._lexer.token.kind===e},t.expectToken=function(e){var t=this._lexer.token;if(t.kind===e)return this._lexer.advance(),t;throw n_(this._lexer.source,t.start,"Expected ".concat(nG(e),", found ").concat(nz(t),"."))},t.expectOptionalToken=function(e){var t=this._lexer.token;if(t.kind===e)return this._lexer.advance(),t},t.expectKeyword=function(e){var t=this._lexer.token;if(t.kind===nk.NAME&&t.value===e)this._lexer.advance();else throw n_(this._lexer.source,t.start,'Expected "'.concat(e,'", found ').concat(nz(t),"."))},t.expectOptionalKeyword=function(e){var t=this._lexer.token;return t.kind===nk.NAME&&t.value===e&&(this._lexer.advance(),!0)},t.unexpected=function(e){var t=null!=e?e:this._lexer.token;return n_(this._lexer.source,t.start,"Unexpected ".concat(nz(t),"."))},t.any=function(e,t,n){this.expectToken(e);for(var r=[];!this.expectOptionalToken(n);)r.push(t.call(this));return r},t.optionalMany=function(e,t,n){if(this.expectOptionalToken(e)){var r=[];do r.push(t.call(this));while(!this.expectOptionalToken(n))return r}return[]},t.many=function(e,t,n){this.expectToken(e);var r=[];do r.push(t.call(this));while(!this.expectOptionalToken(n))return r},t.delimitedMany=function(e,t){this.expectOptionalToken(e);var n=[];do n.push(t.call(this));while(this.expectOptionalToken(e))return n},e}();function nz(e){var t=e.value;return nG(e.kind)+(null!=t?' "'.concat(t,'"'):"")}function nG(e){return nA(e)?'"'.concat(e,'"'):e}var nW=new Map,nK=new Map,nV=!0,nq=!1;function nZ(e){return e.replace(/[\s,]+/g," ").trim()}function nX(e){return nZ(e.source.body.substring(e.start,e.end))}function nJ(e){var t=new Set,n=[];return e.definitions.forEach(function(e){if("FragmentDefinition"===e.kind){var r=e.name.value,i=nX(e.loc),a=nK.get(r);a&&!a.has(i)?nV&&console.warn("Warning: fragment with name "+r+" already exists.\ngraphql-tag enforces all fragment names across your application to be unique; read more about\nthis in the docs: http://dev.apollodata.com/core/fragments.html#unique-names"):a||nK.set(r,a=new Set),a.add(i),t.has(i)||(t.add(i),n.push(e))}else n.push(e)}),(0,t0.pi)((0,t0.pi)({},e),{definitions:n})}function nQ(e){var t=new Set(e.definitions);t.forEach(function(e){e.loc&&delete e.loc,Object.keys(e).forEach(function(n){var r=e[n];r&&"object"==typeof r&&t.add(r)})});var n=e.loc;return n&&(delete n.startToken,delete n.endToken),e}function n1(e){var t=nZ(e);if(!nW.has(t)){var n=nH(e,{experimentalFragmentVariables:nq,allowLegacyFragmentVariables:nq});if(!n||"Document"!==n.kind)throw Error("Not a valid GraphQL document.");nW.set(t,nQ(nJ(n)))}return nW.get(t)}function n0(e){for(var t=[],n=1;n, or pass an ApolloClient instance in via options.'):(0,n9.kG)(!!n,32),n}var rp=n(10542),rb=n(53712),rm=n(21436),rg=Object.prototype.hasOwnProperty;function rv(e,t){return void 0===t&&(t=Object.create(null)),ry(rh(t.client),e).useQuery(t)}function ry(e,t){var n=(0,l.useRef)();n.current&&e===n.current.client&&t===n.current.query||(n.current=new rw(e,t,n.current));var r=n.current,i=(0,l.useState)(0),a=(i[0],i[1]);return r.forceUpdate=function(){a(function(e){return e+1})},r}var rw=function(){function e(e,t,n){this.client=e,this.query=t,this.ssrDisabledResult=(0,rp.J)({loading:!0,data:void 0,error:void 0,networkStatus:ru.I.loading}),this.skipStandbyResult=(0,rp.J)({loading:!1,data:void 0,error:void 0,networkStatus:ru.I.ready}),this.toQueryResultCache=new(n7.mr?WeakMap:Map),rd(t,r.Query);var i=n&&n.result,a=i&&i.data;a&&(this.previousData=a)}return e.prototype.forceUpdate=function(){__DEV__&&n9.kG.warn("Calling default no-op implementation of InternalState#forceUpdate")},e.prototype.executeQuery=function(e){var t,n=this;e.query&&Object.assign(this,{query:e.query}),this.watchQueryOptions=this.createWatchQueryOptions(this.queryHookOptions=e);var r=this.observable.reobserveAsConcast(this.getObsQueryOptions());return this.previousData=(null===(t=this.result)||void 0===t?void 0:t.data)||this.previousData,this.result=void 0,this.forceUpdate(),new Promise(function(e){var t;r.subscribe({next:function(e){t=e},error:function(){e(n.toQueryResult(n.observable.getCurrentResult()))},complete:function(){e(n.toQueryResult(t))}})})},e.prototype.useQuery=function(e){var t=this;this.renderPromises=(0,l.useContext)((0,ro.K)()).renderPromises,this.useOptions(e);var n=this.useObservableQuery(),r=rt((0,l.useCallback)(function(){if(t.renderPromises)return function(){};var e=function(){var e=t.result,r=n.getCurrentResult();!(e&&e.loading===r.loading&&e.networkStatus===r.networkStatus&&(0,ri.D)(e.data,r.data))&&t.setResult(r)},r=function(a){var o=n.last;i.unsubscribe();try{n.resetLastResults(),i=n.subscribe(e,r)}finally{n.last=o}if(!rg.call(a,"graphQLErrors"))throw a;var s=t.result;(!s||s&&s.loading||!(0,ri.D)(a,s.error))&&t.setResult({data:s&&s.data,error:a,loading:!1,networkStatus:ru.I.error})},i=n.subscribe(e,r);return function(){return setTimeout(function(){return i.unsubscribe()})}},[n,this.renderPromises,this.client.disableNetworkFetches,]),function(){return t.getCurrentResult()},function(){return t.getCurrentResult()});return this.unsafeHandlePartialRefetch(r),this.toQueryResult(r)},e.prototype.useOptions=function(t){var n,r=this.createWatchQueryOptions(this.queryHookOptions=t),i=this.watchQueryOptions;!(0,ri.D)(r,i)&&(this.watchQueryOptions=r,i&&this.observable&&(this.observable.reobserve(this.getObsQueryOptions()),this.previousData=(null===(n=this.result)||void 0===n?void 0:n.data)||this.previousData,this.result=void 0)),this.onCompleted=t.onCompleted||e.prototype.onCompleted,this.onError=t.onError||e.prototype.onError,(this.renderPromises||this.client.disableNetworkFetches)&&!1===this.queryHookOptions.ssr&&!this.queryHookOptions.skip?this.result=this.ssrDisabledResult:this.queryHookOptions.skip||"standby"===this.watchQueryOptions.fetchPolicy?this.result=this.skipStandbyResult:(this.result===this.ssrDisabledResult||this.result===this.skipStandbyResult)&&(this.result=void 0)},e.prototype.getObsQueryOptions=function(){var e=[],t=this.client.defaultOptions.watchQuery;return t&&e.push(t),this.queryHookOptions.defaultOptions&&e.push(this.queryHookOptions.defaultOptions),e.push((0,rb.o)(this.observable&&this.observable.options,this.watchQueryOptions)),e.reduce(ra.J)},e.prototype.createWatchQueryOptions=function(e){void 0===e&&(e={});var t,n=e.skip,r=Object.assign((e.ssr,e.onCompleted,e.onError,e.defaultOptions,(0,t0._T)(e,["skip","ssr","onCompleted","onError","defaultOptions"])),{query:this.query});if(this.renderPromises&&("network-only"===r.fetchPolicy||"cache-and-network"===r.fetchPolicy)&&(r.fetchPolicy="cache-first"),r.variables||(r.variables={}),n){var i=r.fetchPolicy,a=void 0===i?this.getDefaultFetchPolicy():i,o=r.initialFetchPolicy;Object.assign(r,{initialFetchPolicy:void 0===o?a:o,fetchPolicy:"standby"})}else r.fetchPolicy||(r.fetchPolicy=(null===(t=this.observable)||void 0===t?void 0:t.options.initialFetchPolicy)||this.getDefaultFetchPolicy());return r},e.prototype.getDefaultFetchPolicy=function(){var e,t;return(null===(e=this.queryHookOptions.defaultOptions)||void 0===e?void 0:e.fetchPolicy)||(null===(t=this.client.defaultOptions.watchQuery)||void 0===t?void 0:t.fetchPolicy)||"cache-first"},e.prototype.onCompleted=function(e){},e.prototype.onError=function(e){},e.prototype.useObservableQuery=function(){var e=this.observable=this.renderPromises&&this.renderPromises.getSSRObservable(this.watchQueryOptions)||this.observable||this.client.watchQuery(this.getObsQueryOptions());this.obsQueryFields=(0,l.useMemo)(function(){return{refetch:e.refetch.bind(e),reobserve:e.reobserve.bind(e),fetchMore:e.fetchMore.bind(e),updateQuery:e.updateQuery.bind(e),startPolling:e.startPolling.bind(e),stopPolling:e.stopPolling.bind(e),subscribeToMore:e.subscribeToMore.bind(e)}},[e]);var t=!(!1===this.queryHookOptions.ssr||this.queryHookOptions.skip);return this.renderPromises&&t&&(this.renderPromises.registerSSRObservable(e),e.getCurrentResult().loading&&this.renderPromises.addObservableQueryPromise(e)),e},e.prototype.setResult=function(e){var t=this.result;t&&t.data&&(this.previousData=t.data),this.result=e,this.forceUpdate(),this.handleErrorOrCompleted(e)},e.prototype.handleErrorOrCompleted=function(e){var t=this;if(!e.loading){var n=this.toApolloError(e);Promise.resolve().then(function(){n?t.onError(n):e.data&&t.onCompleted(e.data)}).catch(function(e){__DEV__&&n9.kG.warn(e)})}},e.prototype.toApolloError=function(e){return(0,rm.O)(e.errors)?new rs.cA({graphQLErrors:e.errors}):e.error},e.prototype.getCurrentResult=function(){return this.result||this.handleErrorOrCompleted(this.result=this.observable.getCurrentResult()),this.result},e.prototype.toQueryResult=function(e){var t=this.toQueryResultCache.get(e);if(t)return t;var n=e.data,r=(e.partial,(0,t0._T)(e,["data","partial"]));return this.toQueryResultCache.set(e,t=(0,t0.pi)((0,t0.pi)((0,t0.pi)({data:n},r),this.obsQueryFields),{client:this.client,observable:this.observable,variables:this.observable.variables,called:!this.queryHookOptions.skip,previousData:this.previousData})),!t.error&&(0,rm.O)(e.errors)&&(t.error=new rs.cA({graphQLErrors:e.errors})),t},e.prototype.unsafeHandlePartialRefetch=function(e){e.partial&&this.queryHookOptions.partialRefetch&&!e.loading&&(!e.data||0===Object.keys(e.data).length)&&"cache-only"!==this.observable.options.fetchPolicy&&(Object.assign(e,{loading:!0,networkStatus:ru.I.refetch}),this.observable.refetch())},e}();function r_(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&void 0!==arguments[0]?arguments[0]:{};return rv(iH,e)},iz=function(){var e=ij(),t=parseInt(e.get("page")||"1",10),n=parseInt(e.get("per")||"50",10),r=i$({variables:{offset:(t-1)*n,limit:n},fetchPolicy:"network-only"}),i=r.data,a=r.loading,o=r.error;return a?l.createElement(iR,null):o?l.createElement(iD,{error:o}):i?l.createElement(iI,{chains:i.chains.results,page:t,pageSize:n,total:i.chains.metadata.total}):null},iG=n(67932),iW=n(8126),iK="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function iV(e){if(iq())return Intl.DateTimeFormat.supportedLocalesOf(e)[0]}function iq(){return("undefined"==typeof Intl?"undefined":iK(Intl))==="object"&&"function"==typeof Intl.DateTimeFormat}var iZ="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},iX=function(){function e(e,t){for(var n=0;n=i.length)break;s=i[o++]}else{if((o=i.next()).done)break;s=o.value}var s,u=s;if((void 0===e?"undefined":iZ(e))!=="object")return;e=e[u]}return e}},{key:"put",value:function(){for(var e=arguments.length,t=Array(e),n=0;n=o.length)break;c=o[u++]}else{if((u=o.next()).done)break;c=u.value}var c,l=c;"object"!==iZ(a[l])&&(a[l]={}),a=a[l]}return a[i]=r}}]),e}();let i1=iQ;var i0=new i1;function i2(e,t){if(!iq())return function(e){return e.toString()};var n=i4(e),r=JSON.stringify(t),i=i0.get(String(n),r)||i0.put(String(n),r,new Intl.DateTimeFormat(n,t));return function(e){return i.format(e)}}var i3={};function i4(e){var t=e.toString();return i3[t]?i3[t]:i3[t]=iV(e)}var i6="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function i5(e){return i8(e)?e:new Date(e)}function i8(e){return e instanceof Date||i9(e)}function i9(e){return(void 0===e?"undefined":i6(e))==="object"&&"function"==typeof e.getTime}var i7=n(54087),ae=n.n(i7);function at(e,t){if(0===e.length)return 0;for(var n=0,r=e.length-1,i=void 0;n<=r;){var a=t(e[i=Math.floor((r+n)/2)]);if(0===a)return i;if(a<0){if((n=i+1)>r)return n}else if((r=i-1)=t.nextUpdateTime)aa(t,this.instances);else break}},scheduleNextTick:function(){var e=this;this.scheduledTick=ae()(function(){e.tick(),e.scheduleNextTick()})},start:function(){this.scheduleNextTick()},stop:function(){ae().cancel(this.scheduledTick)}};function ai(e){var t=an(e.getNextValue(),2),n=t[0],r=t[1];e.setValue(n),e.nextUpdateTime=r}function aa(e,t){ai(e),as(t,e),ao(t,e)}function ao(e,t){var n=au(e,t);e.splice(n,0,t)}function as(e,t){var n=e.indexOf(t);e.splice(n,1)}function au(e,t){var n=t.nextUpdateTime;return at(e,function(e){return e.nextUpdateTime===n?0:e.nextUpdateTime>n?1:-1})}var ac=(0,ec.oneOfType)([(0,ec.shape)({minTime:ec.number,formatAs:ec.string.isRequired}),(0,ec.shape)({test:ec.func,formatAs:ec.string.isRequired}),(0,ec.shape)({minTime:ec.number,format:ec.func.isRequired}),(0,ec.shape)({test:ec.func,format:ec.func.isRequired})]),al=(0,ec.oneOfType)([ec.string,(0,ec.shape)({steps:(0,ec.arrayOf)(ac).isRequired,labels:(0,ec.oneOfType)([ec.string,(0,ec.arrayOf)(ec.string)]).isRequired,round:ec.string})]),af=Object.assign||function(e){for(var t=1;t=0)&&Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function ap(e){var t=e.date,n=e.future,r=e.timeStyle,i=e.round,a=e.minTimeLeft,o=e.tooltip,s=e.component,u=e.container,c=e.wrapperComponent,f=e.wrapperProps,d=e.locale,h=e.locales,p=e.formatVerboseDate,b=e.verboseDateFormat,m=e.updateInterval,g=e.tick,v=ah(e,["date","future","timeStyle","round","minTimeLeft","tooltip","component","container","wrapperComponent","wrapperProps","locale","locales","formatVerboseDate","verboseDateFormat","updateInterval","tick"]),y=(0,l.useMemo)(function(){return d&&(h=[d]),h.concat(iW.Z.getDefaultLocale())},[d,h]),w=(0,l.useMemo)(function(){return new iW.Z(y)},[y]);t=(0,l.useMemo)(function(){return i5(t)},[t]);var _=(0,l.useCallback)(function(){var e=Date.now(),o=void 0;if(n&&e>=t.getTime()&&(e=t.getTime(),o=!0),void 0!==a){var s=t.getTime()-1e3*a;e>s&&(e=s,o=!0)}var u=w.format(t,r,{getTimeToNextUpdate:!0,now:e,future:n,round:i}),c=ad(u,2),l=c[0],f=c[1];return f=o?ag:m||f||6e4,[l,e+f]},[t,n,r,m,i,a,w]),E=(0,l.useRef)();E.current=_;var S=(0,l.useMemo)(_,[]),k=ad(S,2),x=k[0],T=k[1],M=(0,l.useState)(x),O=ad(M,2),A=O[0],L=O[1],C=ad((0,l.useState)(),2),I=C[0],D=C[1],N=(0,l.useRef)();(0,l.useEffect)(function(){if(g)return N.current=ar.add({getNextValue:function(){return E.current()},setValue:L,nextUpdateTime:T}),function(){return N.current.stop()}},[g]),(0,l.useEffect)(function(){if(N.current)N.current.forceUpdate();else{var e=_(),t=ad(e,1)[0];L(t)}},[_]),(0,l.useEffect)(function(){D(!0)},[]);var P=(0,l.useMemo)(function(){if("undefined"!=typeof window)return i2(y,b)},[y,b]),R=(0,l.useMemo)(function(){if("undefined"!=typeof window)return p?p(t):P(t)},[t,p,P]),j=l.createElement(s,af({date:t,verboseDate:I?R:void 0,tooltip:o},v),A),F=c||u;return F?l.createElement(F,af({},f,{verboseDate:I?R:void 0}),j):j}ap.propTypes={date:el().oneOfType([el().instanceOf(Date),el().number]).isRequired,locale:el().string,locales:el().arrayOf(el().string),future:el().bool,timeStyle:al,round:el().string,minTimeLeft:el().number,component:el().elementType.isRequired,tooltip:el().bool.isRequired,formatVerboseDate:el().func,verboseDateFormat:el().object,updateInterval:el().oneOfType([el().number,el().arrayOf(el().shape({threshold:el().number,interval:el().number.isRequired}))]),tick:el().bool,wrapperComponent:el().func,wrapperProps:el().object},ap.defaultProps={locales:[],component:av,tooltip:!0,verboseDateFormat:{weekday:"long",day:"numeric",month:"long",year:"numeric",hour:"numeric",minute:"2-digit",second:"2-digit"},tick:!0},ap=l.memo(ap);let ab=ap;var am,ag=31536e9;function av(e){var t=e.date,n=e.verboseDate,r=e.tooltip,i=e.children,a=ah(e,["date","verboseDate","tooltip","children"]),o=(0,l.useMemo)(function(){return t.toISOString()},[t]);return l.createElement("time",af({},a,{dateTime:o,title:r?n:void 0}),i)}av.propTypes={date:el().instanceOf(Date).isRequired,verboseDate:el().string,tooltip:el().bool.isRequired,children:el().string.isRequired};var ay=n(30381),aw=n.n(ay),a_=n(31657);function aE(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function aS(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0?new rs.cA({graphQLErrors:i}):void 0;if(u===s.current.mutationId&&!c.ignoreResults){var f={called:!0,loading:!1,data:r,error:l,client:a};s.current.isMounted&&!(0,ri.D)(s.current.result,f)&&o(s.current.result=f)}var d=e.onCompleted||(null===(n=s.current.options)||void 0===n?void 0:n.onCompleted);return null==d||d(t.data,c),t}).catch(function(t){if(u===s.current.mutationId&&s.current.isMounted){var n,r={loading:!1,error:t,data:void 0,called:!0,client:a};(0,ri.D)(s.current.result,r)||o(s.current.result=r)}var i=e.onError||(null===(n=s.current.options)||void 0===n?void 0:n.onError);if(i)return i(t,c),{data:void 0,errors:t};throw t})},[]),c=(0,l.useCallback)(function(){s.current.isMounted&&o({called:!1,loading:!1,client:n})},[]);return(0,l.useEffect)(function(){return s.current.isMounted=!0,function(){s.current.isMounted=!1}},[]),[u,(0,t0.pi)({reset:c},a)]}var os=n(59067),ou=n(28428),oc=n(11186),ol=n(78513);function of(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var od=function(e){return(0,b.createStyles)({paper:{display:"flex",margin:"".concat(2.5*e.spacing.unit,"px 0"),padding:"".concat(3*e.spacing.unit,"px ").concat(3.5*e.spacing.unit,"px")},content:{flex:1,width:"100%"},actions:of({marginTop:-(1.5*e.spacing.unit),marginLeft:-(4*e.spacing.unit)},e.breakpoints.up("sm"),{marginLeft:0,marginRight:-(1.5*e.spacing.unit)}),itemBlock:{border:"1px solid rgba(224, 224, 224, 1)",borderRadius:e.shape.borderRadius,padding:2*e.spacing.unit,marginTop:e.spacing.unit},itemBlockText:{overflowWrap:"anywhere"}})},oh=(0,b.withStyles)(od)(function(e){var t=e.actions,n=e.children,r=e.classes;return l.createElement(ii.default,{className:r.paper},l.createElement("div",{className:r.content},n),t&&l.createElement("div",{className:r.actions},t))}),op=function(e){var t=e.title;return l.createElement(x.default,{variant:"subtitle2",gutterBottom:!0},t)},ob=function(e){var t=e.children,n=e.value;return l.createElement(x.default,{variant:"body1",noWrap:!0},t||n)},om=(0,b.withStyles)(od)(function(e){var t=e.children,n=e.classes,r=e.value;return l.createElement("div",{className:n.itemBlock},l.createElement(x.default,{variant:"body1",className:n.itemBlockText},t||r))});function og(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]-1}let sq=sV;function sZ(e,t){var n=this.__data__,r=sH(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}let sX=sZ;function sJ(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t-1&&e%1==0&&e-1&&e%1==0&&e<=cC}let cD=cI;var cN="[object Arguments]",cP="[object Array]",cR="[object Boolean]",cj="[object Date]",cF="[object Error]",cY="[object Function]",cB="[object Map]",cU="[object Number]",cH="[object Object]",c$="[object RegExp]",cz="[object Set]",cG="[object String]",cW="[object WeakMap]",cK="[object ArrayBuffer]",cV="[object DataView]",cq="[object Float64Array]",cZ="[object Int8Array]",cX="[object Int16Array]",cJ="[object Int32Array]",cQ="[object Uint8Array]",c1="[object Uint8ClampedArray]",c0="[object Uint16Array]",c2="[object Uint32Array]",c3={};function c4(e){return eD(e)&&cD(e.length)&&!!c3[eC(e)]}c3["[object Float32Array]"]=c3[cq]=c3[cZ]=c3[cX]=c3[cJ]=c3[cQ]=c3[c1]=c3[c0]=c3[c2]=!0,c3[cN]=c3[cP]=c3[cK]=c3[cR]=c3[cV]=c3[cj]=c3[cF]=c3[cY]=c3[cB]=c3[cU]=c3[cH]=c3[c$]=c3[cz]=c3[cG]=c3[cW]=!1;let c6=c4;function c5(e){return function(t){return e(t)}}let c8=c5;var c9=n(79730),c7=c9.Z&&c9.Z.isTypedArray,le=c7?c8(c7):c6;let lt=le;var ln=Object.prototype.hasOwnProperty;function lr(e,t){var n=cx(e),r=!n&&cS(e),i=!n&&!r&&(0,cT.Z)(e),a=!n&&!r&&!i&<(e),o=n||r||i||a,s=o?cb(e.length,String):[],u=s.length;for(var c in e)(t||ln.call(e,c))&&!(o&&("length"==c||i&&("offset"==c||"parent"==c)||a&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||cL(c,u)))&&s.push(c);return s}let li=lr;var la=Object.prototype;function lo(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||la)}let ls=lo;var lu=sT(Object.keys,Object);let lc=lu;var ll=Object.prototype.hasOwnProperty;function lf(e){if(!ls(e))return lc(e);var t=[];for(var n in Object(e))ll.call(e,n)&&"constructor"!=n&&t.push(n);return t}let ld=lf;function lh(e){return null!=e&&cD(e.length)&&!ur(e)}let lp=lh;function lb(e){return lp(e)?li(e):ld(e)}let lm=lb;function lg(e,t){return e&&ch(t,lm(t),e)}let lv=lg;function ly(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}let lw=ly;var l_=Object.prototype.hasOwnProperty;function lE(e){if(!ed(e))return lw(e);var t=ls(e),n=[];for(var r in e)"constructor"==r&&(t||!l_.call(e,r))||n.push(r);return n}let lS=lE;function lk(e){return lp(e)?li(e,!0):lS(e)}let lx=lk;function lT(e,t){return e&&ch(t,lx(t),e)}let lM=lT;var lO=n(42896);function lA(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n=0||(i[n]=e[n]);return i}function hu(e){if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var hc=function(e){return Array.isArray(e)&&0===e.length},hl=function(e){return"function"==typeof e},hf=function(e){return null!==e&&"object"==typeof e},hd=function(e){return String(Math.floor(Number(e)))===e},hh=function(e){return"[object String]"===Object.prototype.toString.call(e)},hp=function(e){return 0===l.Children.count(e)},hb=function(e){return hf(e)&&hl(e.then)};function hm(e,t,n,r){void 0===r&&(r=0);for(var i=d8(t);e&&r=0?[]:{}}}return(0===a?e:i)[o[a]]===n?e:(void 0===n?delete i[o[a]]:i[o[a]]=n,0===a&&void 0===n&&delete r[o[a]],r)}function hv(e,t,n,r){void 0===n&&(n=new WeakMap),void 0===r&&(r={});for(var i=0,a=Object.keys(e);i0?t.map(function(t){return x(t,hm(e,t))}):[Promise.resolve("DO_NOT_DELETE_YOU_WILL_BE_FIRED")]).then(function(e){return e.reduce(function(e,n,r){return"DO_NOT_DELETE_YOU_WILL_BE_FIRED"===n||n&&(e=hg(e,t[r],n)),e},{})})},[x]),M=(0,l.useCallback)(function(e){return Promise.all([T(e),h.validationSchema?k(e):{},h.validate?S(e):{}]).then(function(e){var t=e[0],n=e[1],r=e[2];return sk.all([t,n,r],{arrayMerge:hL})})},[h.validate,h.validationSchema,T,S,k]),O=hN(function(e){return void 0===e&&(e=_.values),E({type:"SET_ISVALIDATING",payload:!0}),M(e).then(function(e){return v.current&&(E({type:"SET_ISVALIDATING",payload:!1}),sd()(_.errors,e)||E({type:"SET_ERRORS",payload:e})),e})});(0,l.useEffect)(function(){o&&!0===v.current&&sd()(p.current,h.initialValues)&&O(p.current)},[o,O]);var A=(0,l.useCallback)(function(e){var t=e&&e.values?e.values:p.current,n=e&&e.errors?e.errors:b.current?b.current:h.initialErrors||{},r=e&&e.touched?e.touched:m.current?m.current:h.initialTouched||{},i=e&&e.status?e.status:g.current?g.current:h.initialStatus;p.current=t,b.current=n,m.current=r,g.current=i;var a=function(){E({type:"RESET_FORM",payload:{isSubmitting:!!e&&!!e.isSubmitting,errors:n,touched:r,status:i,values:t,isValidating:!!e&&!!e.isValidating,submitCount:e&&e.submitCount&&"number"==typeof e.submitCount?e.submitCount:0}})};if(h.onReset){var o=h.onReset(_.values,V);hb(o)?o.then(a):a()}else a()},[h.initialErrors,h.initialStatus,h.initialTouched]);(0,l.useEffect)(function(){!0===v.current&&!sd()(p.current,h.initialValues)&&(c&&(p.current=h.initialValues,A()),o&&O(p.current))},[c,h.initialValues,A,o,O]),(0,l.useEffect)(function(){c&&!0===v.current&&!sd()(b.current,h.initialErrors)&&(b.current=h.initialErrors||hS,E({type:"SET_ERRORS",payload:h.initialErrors||hS}))},[c,h.initialErrors]),(0,l.useEffect)(function(){c&&!0===v.current&&!sd()(m.current,h.initialTouched)&&(m.current=h.initialTouched||hk,E({type:"SET_TOUCHED",payload:h.initialTouched||hk}))},[c,h.initialTouched]),(0,l.useEffect)(function(){c&&!0===v.current&&!sd()(g.current,h.initialStatus)&&(g.current=h.initialStatus,E({type:"SET_STATUS",payload:h.initialStatus}))},[c,h.initialStatus,h.initialTouched]);var L=hN(function(e){if(y.current[e]&&hl(y.current[e].validate)){var t=hm(_.values,e),n=y.current[e].validate(t);return hb(n)?(E({type:"SET_ISVALIDATING",payload:!0}),n.then(function(e){return e}).then(function(t){E({type:"SET_FIELD_ERROR",payload:{field:e,value:t}}),E({type:"SET_ISVALIDATING",payload:!1})})):(E({type:"SET_FIELD_ERROR",payload:{field:e,value:n}}),Promise.resolve(n))}return h.validationSchema?(E({type:"SET_ISVALIDATING",payload:!0}),k(_.values,e).then(function(e){return e}).then(function(t){E({type:"SET_FIELD_ERROR",payload:{field:e,value:t[e]}}),E({type:"SET_ISVALIDATING",payload:!1})})):Promise.resolve()}),C=(0,l.useCallback)(function(e,t){var n=t.validate;y.current[e]={validate:n}},[]),I=(0,l.useCallback)(function(e){delete y.current[e]},[]),D=hN(function(e,t){return E({type:"SET_TOUCHED",payload:e}),(void 0===t?i:t)?O(_.values):Promise.resolve()}),N=(0,l.useCallback)(function(e){E({type:"SET_ERRORS",payload:e})},[]),P=hN(function(e,t){var r=hl(e)?e(_.values):e;return E({type:"SET_VALUES",payload:r}),(void 0===t?n:t)?O(r):Promise.resolve()}),R=(0,l.useCallback)(function(e,t){E({type:"SET_FIELD_ERROR",payload:{field:e,value:t}})},[]),j=hN(function(e,t,r){return E({type:"SET_FIELD_VALUE",payload:{field:e,value:t}}),(void 0===r?n:r)?O(hg(_.values,e,t)):Promise.resolve()}),F=(0,l.useCallback)(function(e,t){var n,r=t,i=e;if(!hh(e)){e.persist&&e.persist();var a=e.target?e.target:e.currentTarget,o=a.type,s=a.name,u=a.id,c=a.value,l=a.checked,f=(a.outerHTML,a.options),d=a.multiple;r=t||s||u,i=/number|range/.test(o)?(n=parseFloat(c),isNaN(n)?"":n):/checkbox/.test(o)?hI(hm(_.values,r),l,c):d?hC(f):c}r&&j(r,i)},[j,_.values]),Y=hN(function(e){if(hh(e))return function(t){return F(t,e)};F(e)}),B=hN(function(e,t,n){return void 0===t&&(t=!0),E({type:"SET_FIELD_TOUCHED",payload:{field:e,value:t}}),(void 0===n?i:n)?O(_.values):Promise.resolve()}),U=(0,l.useCallback)(function(e,t){e.persist&&e.persist();var n,r=e.target,i=r.name,a=r.id;r.outerHTML,B(t||i||a,!0)},[B]),H=hN(function(e){if(hh(e))return function(t){return U(t,e)};U(e)}),$=(0,l.useCallback)(function(e){hl(e)?E({type:"SET_FORMIK_STATE",payload:e}):E({type:"SET_FORMIK_STATE",payload:function(){return e}})},[]),z=(0,l.useCallback)(function(e){E({type:"SET_STATUS",payload:e})},[]),G=(0,l.useCallback)(function(e){E({type:"SET_ISSUBMITTING",payload:e})},[]),W=hN(function(){return E({type:"SUBMIT_ATTEMPT"}),O().then(function(e){var t,n=e instanceof Error;if(!n&&0===Object.keys(e).length){try{if(void 0===(t=q()))return}catch(r){throw r}return Promise.resolve(t).then(function(e){return v.current&&E({type:"SUBMIT_SUCCESS"}),e}).catch(function(e){if(v.current)throw E({type:"SUBMIT_FAILURE"}),e})}if(v.current&&(E({type:"SUBMIT_FAILURE"}),n))throw e})}),K=hN(function(e){e&&e.preventDefault&&hl(e.preventDefault)&&e.preventDefault(),e&&e.stopPropagation&&hl(e.stopPropagation)&&e.stopPropagation(),W().catch(function(e){console.warn("Warning: An unhandled error was caught from submitForm()",e)})}),V={resetForm:A,validateForm:O,validateField:L,setErrors:N,setFieldError:R,setFieldTouched:B,setFieldValue:j,setStatus:z,setSubmitting:G,setTouched:D,setValues:P,setFormikState:$,submitForm:W},q=hN(function(){return f(_.values,V)}),Z=hN(function(e){e&&e.preventDefault&&hl(e.preventDefault)&&e.preventDefault(),e&&e.stopPropagation&&hl(e.stopPropagation)&&e.stopPropagation(),A()}),X=(0,l.useCallback)(function(e){return{value:hm(_.values,e),error:hm(_.errors,e),touched:!!hm(_.touched,e),initialValue:hm(p.current,e),initialTouched:!!hm(m.current,e),initialError:hm(b.current,e)}},[_.errors,_.touched,_.values]),J=(0,l.useCallback)(function(e){return{setValue:function(t,n){return j(e,t,n)},setTouched:function(t,n){return B(e,t,n)},setError:function(t){return R(e,t)}}},[j,B,R]),Q=(0,l.useCallback)(function(e){var t=hf(e),n=t?e.name:e,r=hm(_.values,n),i={name:n,value:r,onChange:Y,onBlur:H};if(t){var a=e.type,o=e.value,s=e.as,u=e.multiple;"checkbox"===a?void 0===o?i.checked=!!r:(i.checked=!!(Array.isArray(r)&&~r.indexOf(o)),i.value=o):"radio"===a?(i.checked=r===o,i.value=o):"select"===s&&u&&(i.value=i.value||[],i.multiple=!0)}return i},[H,Y,_.values]),ee=(0,l.useMemo)(function(){return!sd()(p.current,_.values)},[p.current,_.values]),et=(0,l.useMemo)(function(){return void 0!==s?ee?_.errors&&0===Object.keys(_.errors).length:!1!==s&&hl(s)?s(h):s:_.errors&&0===Object.keys(_.errors).length},[s,ee,_.errors,h]);return ha({},_,{initialValues:p.current,initialErrors:b.current,initialTouched:m.current,initialStatus:g.current,handleBlur:H,handleChange:Y,handleReset:Z,handleSubmit:K,resetForm:A,setErrors:N,setFormikState:$,setFieldTouched:B,setFieldValue:j,setFieldError:R,setStatus:z,setSubmitting:G,setTouched:D,setValues:P,submitForm:W,validateForm:O,validateField:L,isValid:et,dirty:ee,unregisterField:I,registerField:C,getFieldProps:Q,getFieldMeta:X,getFieldHelpers:J,validateOnBlur:i,validateOnChange:n,validateOnMount:o})}function hT(e){var t=hx(e),n=e.component,r=e.children,i=e.render,a=e.innerRef;return(0,l.useImperativeHandle)(a,function(){return t}),(0,l.createElement)(hw,{value:t},n?(0,l.createElement)(n,t):i?i(t):r?hl(r)?r(t):hp(r)?null:l.Children.only(r):null)}function hM(e){var t={};if(e.inner){if(0===e.inner.length)return hg(t,e.path,e.message);for(var n=e.inner,r=Array.isArray(n),i=0,n=r?n:n[Symbol.iterator]();;){if(r){if(i>=n.length)break;a=n[i++]}else{if((i=n.next()).done)break;a=i.value}var a,o=a;hm(t,o.path)||(t=hg(t,o.path,o.message))}}return t}function hO(e,t,n,r){void 0===n&&(n=!1),void 0===r&&(r={});var i=hA(e);return t[n?"validateSync":"validate"](i,{abortEarly:!1,context:r})}function hA(e){var t=Array.isArray(e)?[]:{};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=String(n);!0===Array.isArray(e[r])?t[r]=e[r].map(function(e){return!0===Array.isArray(e)||sR(e)?hA(e):""!==e?e:void 0}):sR(e[r])?t[r]=hA(e[r]):t[r]=""!==e[r]?e[r]:void 0}return t}function hL(e,t,n){var r=e.slice();return t.forEach(function(t,i){if(void 0===r[i]){var a=!1!==n.clone&&n.isMergeableObject(t);r[i]=a?sk(Array.isArray(t)?[]:{},t,n):t}else n.isMergeableObject(t)?r[i]=sk(e[i],t,n):-1===e.indexOf(t)&&r.push(t)}),r}function hC(e){return Array.from(e).filter(function(e){return e.selected}).map(function(e){return e.value})}function hI(e,t,n){if("boolean"==typeof e)return Boolean(t);var r=[],i=!1,a=-1;if(Array.isArray(e))r=e,i=(a=e.indexOf(n))>=0;else if(!n||"true"==n||"false"==n)return Boolean(t);return t&&n&&!i?r.concat(n):i?r.slice(0,a).concat(r.slice(a+1)):r}var hD="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement?l.useLayoutEffect:l.useEffect;function hN(e){var t=(0,l.useRef)(e);return hD(function(){t.current=e}),(0,l.useCallback)(function(){for(var e=arguments.length,n=Array(e),r=0;re?t:e},0);return Array.from(ha({},e,{length:t+1}))};(function(e){function t(t){var n;return(n=e.call(this,t)||this).updateArrayField=function(e,t,r){var i=n.props,a=i.name;(0,i.formik.setFormikState)(function(n){var i="function"==typeof r?r:e,o="function"==typeof t?t:e,s=hg(n.values,a,e(hm(n.values,a))),u=r?i(hm(n.errors,a)):void 0,c=t?o(hm(n.touched,a)):void 0;return hc(u)&&(u=void 0),hc(c)&&(c=void 0),ha({},n,{values:s,errors:r?hg(n.errors,a,u):n.errors,touched:t?hg(n.touched,a,c):n.touched})})},n.push=function(e){return n.updateArrayField(function(t){return[].concat(hU(t),[hi(e)])},!1,!1)},n.handlePush=function(e){return function(){return n.push(e)}},n.swap=function(e,t){return n.updateArrayField(function(n){return hF(n,e,t)},!0,!0)},n.handleSwap=function(e,t){return function(){return n.swap(e,t)}},n.move=function(e,t){return n.updateArrayField(function(n){return hj(n,e,t)},!0,!0)},n.handleMove=function(e,t){return function(){return n.move(e,t)}},n.insert=function(e,t){return n.updateArrayField(function(n){return hY(n,e,t)},function(t){return hY(t,e,null)},function(t){return hY(t,e,null)})},n.handleInsert=function(e,t){return function(){return n.insert(e,t)}},n.replace=function(e,t){return n.updateArrayField(function(n){return hB(n,e,t)},!1,!1)},n.handleReplace=function(e,t){return function(){return n.replace(e,t)}},n.unshift=function(e){var t=-1;return n.updateArrayField(function(n){var r=n?[e].concat(n):[e];return t<0&&(t=r.length),r},function(e){var n=e?[null].concat(e):[null];return t<0&&(t=n.length),n},function(e){var n=e?[null].concat(e):[null];return t<0&&(t=n.length),n}),t},n.handleUnshift=function(e){return function(){return n.unshift(e)}},n.handleRemove=function(e){return function(){return n.remove(e)}},n.handlePop=function(){return function(){return n.pop()}},n.remove=n.remove.bind(hu(n)),n.pop=n.pop.bind(hu(n)),n}ho(t,e);var n=t.prototype;return n.componentDidUpdate=function(e){this.props.validateOnChange&&this.props.formik.validateOnChange&&!sd()(hm(e.formik.values,e.name),hm(this.props.formik.values,this.props.name))&&this.props.formik.validateForm(this.props.formik.values)},n.remove=function(e){var t;return this.updateArrayField(function(n){var r=n?hU(n):[];return t||(t=r[e]),hl(r.splice)&&r.splice(e,1),r},!0,!0),t},n.pop=function(){var e;return this.updateArrayField(function(t){var n=t;return e||(e=n&&n.pop&&n.pop()),n},!0,!0),e},n.render=function(){var e={push:this.push,pop:this.pop,swap:this.swap,move:this.move,insert:this.insert,replace:this.replace,unshift:this.unshift,remove:this.remove,handlePush:this.handlePush,handlePop:this.handlePop,handleSwap:this.handleSwap,handleMove:this.handleMove,handleInsert:this.handleInsert,handleReplace:this.handleReplace,handleUnshift:this.handleUnshift,handleRemove:this.handleRemove},t=this.props,n=t.component,r=t.render,i=t.children,a=t.name,o=hs(t.formik,["validate","validationSchema"]),s=ha({},e,{form:o,name:a});return n?(0,l.createElement)(n,s):r?r(s):i?"function"==typeof i?i(s):hp(i)?null:l.Children.only(i):null},t})(l.Component).defaultProps={validateOnChange:!0},l.Component,l.Component;var hH=n(24802),h$=n(71209),hz=n(91750),hG=n(11970),hW=n(4689),hK=n(67598),hV=function(){return(hV=Object.assign||function(e){for(var t,n=1,r=arguments.length;nt.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var i=0,r=Object.getOwnPropertySymbols(e);it.indexOf(r[i])&&(n[r[i]]=e[r[i]]);return n}function hZ(e){var t=e.disabled,n=e.field,r=n.onBlur,i=hq(n,["onBlur"]),a=e.form,o=a.isSubmitting,s=a.touched,u=a.errors,c=e.onBlur,l=e.helperText,f=hq(e,["disabled","field","form","onBlur","helperText"]),d=hm(u,i.name),h=hm(s,i.name)&&!!d;return hV(hV({variant:f.variant,error:h,helperText:h?d:l,disabled:null!=t?t:o,onBlur:null!=c?c:function(e){r(null!=e?e:i.name)}},i),f)}function hX(e){var t=e.children,n=hq(e,["children"]);return(0,l.createElement)(iw.Z,hV({},hZ(n)),t)}function hJ(e){var t=e.disabled,n=e.field,r=n.onBlur,i=hq(n,["onBlur"]),a=e.form.isSubmitting,o=(e.type,e.onBlur),s=hq(e,["disabled","field","form","type","onBlur"]);return hV(hV({disabled:null!=t?t:a,onBlur:null!=o?o:function(e){r(null!=e?e:i.name)}},i),s)}function hQ(e){return(0,l.createElement)(hH.Z,hV({},hJ(e)))}function h1(e){var t,n=e.disabled,r=e.field,i=r.onBlur,a=hq(r,["onBlur"]),o=e.form.isSubmitting,s=(e.type,e.onBlur),u=hq(e,["disabled","field","form","type","onBlur"]);return hV(hV({disabled:null!=n?n:o,indeterminate:!Array.isArray(a.value)&&null==a.value,onBlur:null!=s?s:function(e){i(null!=e?e:a.name)}},a),u)}function h0(e){return(0,l.createElement)(h$.Z,hV({},h1(e)))}function h2(e){var t=e.Label,n=hq(e,["Label"]);return(0,l.createElement)(hz.Z,hV({control:(0,l.createElement)(h$.Z,hV({},h1(n)))},t))}function h3(e){var t=e.disabled,n=e.field,r=n.onBlur,i=hq(n,["onBlur"]),a=e.form.isSubmitting,o=e.onBlur,s=hq(e,["disabled","field","form","onBlur"]);return hV(hV({disabled:null!=t?t:a,onBlur:null!=o?o:function(e){r(null!=e?e:i.name)}},i),s)}function h4(e){return(0,l.createElement)(hG.default,hV({},h3(e)))}function h6(e){var t=e.field,n=t.onBlur,r=hq(t,["onBlur"]),i=(e.form,e.onBlur),a=hq(e,["field","form","onBlur"]);return hV(hV({onBlur:null!=i?i:function(e){n(null!=e?e:r.name)}},r),a)}function h5(e){return(0,l.createElement)(hW.Z,hV({},h6(e)))}function h8(e){var t=e.disabled,n=e.field,r=n.onBlur,i=hq(n,["onBlur"]),a=e.form.isSubmitting,o=e.onBlur,s=hq(e,["disabled","field","form","onBlur"]);return hV(hV({disabled:null!=t?t:a,onBlur:null!=o?o:function(e){r(null!=e?e:i.name)}},i),s)}function h9(e){return(0,l.createElement)(hK.default,hV({},h8(e)))}hX.displayName="FormikMaterialUITextField",hQ.displayName="FormikMaterialUISwitch",h0.displayName="FormikMaterialUICheckbox",h2.displayName="FormikMaterialUICheckboxWithLabel",h4.displayName="FormikMaterialUISelect",h5.displayName="FormikMaterialUIRadioGroup",h9.displayName="FormikMaterialUIInputBase";try{a=Map}catch(h7){}try{o=Set}catch(pe){}function pt(e,t,n){if(!e||"object"!=typeof e||"function"==typeof e)return e;if(e.nodeType&&"cloneNode"in e)return e.cloneNode(!0);if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp)return RegExp(e);if(Array.isArray(e))return e.map(pn);if(a&&e instanceof a)return new Map(Array.from(e.entries()));if(o&&e instanceof o)return new Set(Array.from(e.values()));if(e instanceof Object){t.push(e);var r=Object.create(e);for(var i in n.push(r),e){var s=t.findIndex(function(t){return t===e[i]});r[i]=s>-1?n[s]:pt(e[i],t,n)}return r}return e}function pn(e){return pt(e,[],[])}let pr=Object.prototype.toString,pi=Error.prototype.toString,pa=RegExp.prototype.toString,po="undefined"!=typeof Symbol?Symbol.prototype.toString:()=>"",ps=/^Symbol\((.*)\)(.*)$/;function pu(e){if(e!=+e)return"NaN";let t=0===e&&1/e<0;return t?"-0":""+e}function pc(e,t=!1){if(null==e||!0===e||!1===e)return""+e;let n=typeof e;if("number"===n)return pu(e);if("string"===n)return t?`"${e}"`:e;if("function"===n)return"[Function "+(e.name||"anonymous")+"]";if("symbol"===n)return po.call(e).replace(ps,"Symbol($1)");let r=pr.call(e).slice(8,-1);return"Date"===r?isNaN(e.getTime())?""+e:e.toISOString(e):"Error"===r||e instanceof Error?"["+pi.call(e)+"]":"RegExp"===r?pa.call(e):null}function pl(e,t){let n=pc(e,t);return null!==n?n:JSON.stringify(e,function(e,n){let r=pc(this[e],t);return null!==r?r:n},2)}let pf={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType({path:e,type:t,value:n,originalValue:r}){let i=null!=r&&r!==n,a=`${e} must be a \`${t}\` type, but the final value was: \`${pl(n,!0)}\``+(i?` (cast from the value \`${pl(r,!0)}\`).`:".");return null===n&&(a+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),a},defined:"${path} must be defined"},pd={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"},ph={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"},pp={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"},pb={isValue:"${path} field must be ${value}"},pm={noUnknown:"${path} field has unspecified keys: ${unknown}"},pg={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must be have ${length} items"};Object.assign(Object.create(null),{mixed:pf,string:pd,number:ph,date:pp,object:pm,array:pg,boolean:pb});var pv=n(18721),py=n.n(pv);let pw=e=>e&&e.__isYupSchema__;class p_{constructor(e,t){if(this.refs=e,this.refs=e,"function"==typeof t){this.fn=t;return}if(!py()(t,"is"))throw TypeError("`is:` is required for `when()` conditions");if(!t.then&&!t.otherwise)throw TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:n,then:r,otherwise:i}=t,a="function"==typeof n?n:(...e)=>e.every(e=>e===n);this.fn=function(...e){let t=e.pop(),n=e.pop(),o=a(...e)?r:i;if(o)return"function"==typeof o?o(n):n.concat(o.resolve(t))}}resolve(e,t){let n=this.refs.map(e=>e.getValue(null==t?void 0:t.value,null==t?void 0:t.parent,null==t?void 0:t.context)),r=this.fn.apply(e,n.concat(e,t));if(void 0===r||r===e)return e;if(!pw(r))throw TypeError("conditions must return a schema object");return r.resolve(t)}}let pE=p_;function pS(e){return null==e?[]:[].concat(e)}function pk(){return(pk=Object.assign||function(e){for(var t=1;tpl(t[n])):"function"==typeof e?e(t):e}static isError(e){return e&&"ValidationError"===e.name}constructor(e,t,n,r){super(),this.name="ValidationError",this.value=t,this.path=n,this.type=r,this.errors=[],this.inner=[],pS(e).forEach(e=>{pT.isError(e)?(this.errors.push(...e.errors),this.inner=this.inner.concat(e.inner.length?e.inner:e)):this.errors.push(e)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,pT)}}let pM=e=>{let t=!1;return(...n)=>{t||(t=!0,e(...n))}};function pO(e,t){let{endEarly:n,tests:r,args:i,value:a,errors:o,sort:s,path:u}=e,c=pM(t),l=r.length,f=[];if(o=o||[],!l)return o.length?c(new pT(o,a,u)):c(null,a);for(let d=0;d=0||(i[n]=e[n]);return i}function pR(e){function t(t,n){let{value:r,path:i="",label:a,options:o,originalValue:s,sync:u}=t,c=pP(t,["value","path","label","options","originalValue","sync"]),{name:l,test:f,params:d,message:h}=e,{parent:p,context:b}=o;function m(e){return pD.isRef(e)?e.getValue(r,p,b):e}function g(e={}){let t=pL()(pN({value:r,originalValue:s,label:a,path:e.path||i},d,e.params),m),n=new pT(pT.formatError(e.message||h,t),r,t.path,e.type||l);return n.params=t,n}let v=pN({path:i,parent:p,type:l,createError:g,resolve:m,options:o,originalValue:s},c);if(!u){try{Promise.resolve(f.call(v,r,v)).then(e=>{pT.isError(e)?n(e):e?n(null,e):n(g())})}catch(y){n(y)}return}let w;try{var _;if(w=f.call(v,r,v),"function"==typeof(null==(_=w)?void 0:_.then))throw Error(`Validation test of type: "${v.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(E){n(E);return}pT.isError(w)?n(w):w?n(null,w):n(g())}return t.OPTIONS=e,t}pD.prototype.__isYupRef=!0;let pj=e=>e.substr(0,e.length-1).substr(1);function pF(e,t,n,r=n){let i,a,o;return t?((0,pC.forEach)(t,(s,u,c)=>{let l=u?pj(s):s;if((e=e.resolve({context:r,parent:i,value:n})).innerType){let f=c?parseInt(l,10):0;if(n&&f>=n.length)throw Error(`Yup.reach cannot resolve an array item at index: ${s}, in the path: ${t}. because there is no value at that index. `);i=n,n=n&&n[f],e=e.innerType}if(!c){if(!e.fields||!e.fields[l])throw Error(`The schema does not contain the path: ${t}. (failed at: ${o} which is a type: "${e._type}")`);i=n,n=n&&n[l],e=e.fields[l]}a=l,o=u?"["+s+"]":"."+s}),{schema:e,parent:i,parentPath:a}):{parent:i,parentPath:t,schema:e}}class pY{constructor(){this.list=new Set,this.refs=new Map}get size(){return this.list.size+this.refs.size}describe(){let e=[];for(let t of this.list)e.push(t);for(let[,n]of this.refs)e.push(n.describe());return e}toArray(){return Array.from(this.list).concat(Array.from(this.refs.values()))}add(e){pD.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){pD.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,t){if(this.list.has(e))return!0;let n,r=this.refs.values();for(;!(n=r.next()).done;)if(t(n.value)===e)return!0;return!1}clone(){let e=new pY;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,t){let n=this.clone();return e.list.forEach(e=>n.add(e)),e.refs.forEach(e=>n.add(e)),t.list.forEach(e=>n.delete(e)),t.refs.forEach(e=>n.delete(e)),n}}function pB(){return(pB=Object.assign||function(e){for(var t=1;t{this.typeError(pf.notType)}),this.type=(null==e?void 0:e.type)||"mixed",this.spec=pB({strip:!1,strict:!1,abortEarly:!0,recursive:!0,nullable:!1,presence:"optional"},null==e?void 0:e.spec)}get _type(){return this.type}_typeCheck(e){return!0}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;let t=Object.create(Object.getPrototypeOf(this));return t.type=this.type,t._typeError=this._typeError,t._whitelistError=this._whitelistError,t._blacklistError=this._blacklistError,t._whitelist=this._whitelist.clone(),t._blacklist=this._blacklist.clone(),t.exclusiveTests=pB({},this.exclusiveTests),t.deps=[...this.deps],t.conditions=[...this.conditions],t.tests=[...this.tests],t.transforms=[...this.transforms],t.spec=pn(pB({},this.spec,e)),t}label(e){var t=this.clone();return t.spec.label=e,t}meta(...e){if(0===e.length)return this.spec.meta;let t=this.clone();return t.spec.meta=Object.assign(t.spec.meta||{},e[0]),t}withMutation(e){let t=this._mutate;this._mutate=!0;let n=e(this);return this._mutate=t,n}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&"mixed"!==this.type)throw TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);let t=this,n=e.clone(),r=pB({},t.spec,n.spec);return n.spec=r,n._typeError||(n._typeError=t._typeError),n._whitelistError||(n._whitelistError=t._whitelistError),n._blacklistError||(n._blacklistError=t._blacklistError),n._whitelist=t._whitelist.merge(e._whitelist,e._blacklist),n._blacklist=t._blacklist.merge(e._blacklist,e._whitelist),n.tests=t.tests,n.exclusiveTests=t.exclusiveTests,n.withMutation(t=>{e.tests.forEach(e=>{t.test(e.OPTIONS)})}),n}isType(e){return!!this.spec.nullable&&null===e||this._typeCheck(e)}resolve(e){let t=this;if(t.conditions.length){let n=t.conditions;(t=t.clone()).conditions=[],t=(t=n.reduce((t,n)=>n.resolve(t,e),t)).resolve(e)}return t}cast(e,t={}){let n=this.resolve(pB({value:e},t)),r=n._cast(e,t);if(void 0!==e&&!1!==t.assert&&!0!==n.isType(r)){let i=pl(e),a=pl(r);throw TypeError(`The value of ${t.path||"field"} could not be cast to a value that satisfies the schema type: "${n._type}". attempted value: ${i} -`+(a!==i?`result of cast: ${a}`:""))}return r}_cast(e,t){let n=void 0===e?e:this.transforms.reduce((t,n)=>n.call(this,t,e,this),e);return void 0===n&&(n=this.getDefault()),n}_validate(e,t={},n){let{sync:r,path:i,from:a=[],originalValue:o=e,strict:s=this.spec.strict,abortEarly:u=this.spec.abortEarly}=t,c=e;s||(c=this._cast(c,pB({assert:!1},t)));let l={value:c,path:i,options:t,originalValue:o,schema:this,label:this.spec.label,sync:r,from:a},f=[];this._typeError&&f.push(this._typeError),this._whitelistError&&f.push(this._whitelistError),this._blacklistError&&f.push(this._blacklistError),pO({args:l,value:c,path:i,sync:r,tests:f,endEarly:u},e=>{if(e)return void n(e,c);pO({tests:this.tests,args:l,path:i,sync:r,value:c,endEarly:u},n)})}validate(e,t,n){let r=this.resolve(pB({},t,{value:e}));return"function"==typeof n?r._validate(e,t,n):new Promise((n,i)=>r._validate(e,t,(e,t)=>{e?i(e):n(t)}))}validateSync(e,t){let n;return this.resolve(pB({},t,{value:e}))._validate(e,pB({},t,{sync:!0}),(e,t)=>{if(e)throw e;n=t}),n}isValid(e,t){return this.validate(e,t).then(()=>!0,e=>{if(pT.isError(e))return!1;throw e})}isValidSync(e,t){try{return this.validateSync(e,t),!0}catch(n){if(pT.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return null==e?e:"function"==typeof e?e.call(this):pn(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return 0===arguments.length?this._getDefault():this.clone({default:e})}strict(e=!0){var t=this.clone();return t.spec.strict=e,t}_isPresent(e){return null!=e}defined(e=pf.defined){return this.test({message:e,name:"defined",exclusive:!0,test:e=>void 0!==e})}required(e=pf.required){return this.clone({presence:"required"}).withMutation(t=>t.test({message:e,name:"required",exclusive:!0,test(e){return this.schema._isPresent(e)}}))}notRequired(){var e=this.clone({presence:"optional"});return e.tests=e.tests.filter(e=>"required"!==e.OPTIONS.name),e}nullable(e=!0){return this.clone({nullable:!1!==e})}transform(e){var t=this.clone();return t.transforms.push(e),t}test(...e){let t;if(void 0===(t=1===e.length?"function"==typeof e[0]?{test:e[0]}:e[0]:2===e.length?{name:e[0],test:e[1]}:{name:e[0],message:e[1],test:e[2]}).message&&(t.message=pf.default),"function"!=typeof t.test)throw TypeError("`test` is a required parameters");let n=this.clone(),r=pR(t),i=t.exclusive||t.name&&!0===n.exclusiveTests[t.name];if(t.exclusive&&!t.name)throw TypeError("Exclusive tests must provide a unique `name` identifying the test");return t.name&&(n.exclusiveTests[t.name]=!!t.exclusive),n.tests=n.tests.filter(e=>e.OPTIONS.name!==t.name||!i&&e.OPTIONS.test!==r.OPTIONS.test),n.tests.push(r),n}when(e,t){Array.isArray(e)||"string"==typeof e||(t=e,e=".");let n=this.clone(),r=pS(e).map(e=>new pD(e));return r.forEach(e=>{e.isSibling&&n.deps.push(e.key)}),n.conditions.push(new pE(r,t)),n}typeError(e){var t=this.clone();return t._typeError=pR({message:e,name:"typeError",test(e){return!!(void 0===e||this.schema.isType(e))||this.createError({params:{type:this.schema._type}})}}),t}oneOf(e,t=pf.oneOf){var n=this.clone();return e.forEach(e=>{n._whitelist.add(e),n._blacklist.delete(e)}),n._whitelistError=pR({message:t,name:"oneOf",test(e){if(void 0===e)return!0;let t=this.schema._whitelist;return!!t.has(e,this.resolve)||this.createError({params:{values:t.toArray().join(", ")}})}}),n}notOneOf(e,t=pf.notOneOf){var n=this.clone();return e.forEach(e=>{n._blacklist.add(e),n._whitelist.delete(e)}),n._blacklistError=pR({message:t,name:"notOneOf",test(e){let t=this.schema._blacklist;return!t.has(e,this.resolve)||this.createError({params:{values:t.toArray().join(", ")}})}}),n}strip(e=!0){let t=this.clone();return t.spec.strip=e,t}describe(){let e=this.clone(),{label:t,meta:n}=e.spec,r={meta:n,label:t,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(e=>({name:e.OPTIONS.name,params:e.OPTIONS.params})).filter((e,t,n)=>n.findIndex(t=>t.name===e.name)===t)};return r}}for(let pH of(pU.prototype.__isYupSchema__=!0,["validate","validateSync"]))pU.prototype[`${pH}At`]=function(e,t,n={}){let{parent:r,parentPath:i,schema:a}=pF(this,e,t,n.context);return a[pH](r&&r[i],pB({},n,{parent:r,path:e}))};for(let p$ of["equals","is"])pU.prototype[p$]=pU.prototype.oneOf;for(let pz of["not","nope"])pU.prototype[pz]=pU.prototype.notOneOf;pU.prototype.optional=pU.prototype.notRequired;let pG=pU;function pW(){return new pG}pW.prototype=pG.prototype;let pK=e=>null==e;function pV(){return new pq}class pq extends pU{constructor(){super({type:"boolean"}),this.withMutation(()=>{this.transform(function(e){if(!this.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e})})}_typeCheck(e){return e instanceof Boolean&&(e=e.valueOf()),"boolean"==typeof e}isTrue(e=pb.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test:e=>pK(e)||!0===e})}isFalse(e=pb.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test:e=>pK(e)||!1===e})}}pV.prototype=pq.prototype;let pZ=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i,pX=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,pJ=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,pQ=e=>pK(e)||e===e.trim(),p1=({}).toString();function p0(){return new p2}class p2 extends pU{constructor(){super({type:"string"}),this.withMutation(()=>{this.transform(function(e){if(this.isType(e)||Array.isArray(e))return e;let t=null!=e&&e.toString?e.toString():e;return t===p1?e:t})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),"string"==typeof e}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,t=pd.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},test(t){return pK(t)||t.length===this.resolve(e)}})}min(e,t=pd.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(t){return pK(t)||t.length>=this.resolve(e)}})}max(e,t=pd.max){return this.test({name:"max",exclusive:!0,message:t,params:{max:e},test(t){return pK(t)||t.length<=this.resolve(e)}})}matches(e,t){let n=!1,r,i;return t&&("object"==typeof t?{excludeEmptyString:n=!1,message:r,name:i}=t:r=t),this.test({name:i||"matches",message:r||pd.matches,params:{regex:e},test:t=>pK(t)||""===t&&n||-1!==t.search(e)})}email(e=pd.email){return this.matches(pZ,{name:"email",message:e,excludeEmptyString:!0})}url(e=pd.url){return this.matches(pX,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=pd.uuid){return this.matches(pJ,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>null===e?"":e)}trim(e=pd.trim){return this.transform(e=>null!=e?e.trim():e).test({message:e,name:"trim",test:pQ})}lowercase(e=pd.lowercase){return this.transform(e=>pK(e)?e:e.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:e=>pK(e)||e===e.toLowerCase()})}uppercase(e=pd.uppercase){return this.transform(e=>pK(e)?e:e.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:e=>pK(e)||e===e.toUpperCase()})}}p0.prototype=p2.prototype;let p3=e=>e!=+e;function p4(){return new p6}class p6 extends pU{constructor(){super({type:"number"}),this.withMutation(()=>{this.transform(function(e){let t=e;if("string"==typeof t){if(""===(t=t.replace(/\s/g,"")))return NaN;t=+t}return this.isType(t)?t:parseFloat(t)})})}_typeCheck(e){return e instanceof Number&&(e=e.valueOf()),"number"==typeof e&&!p3(e)}min(e,t=ph.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(t){return pK(t)||t>=this.resolve(e)}})}max(e,t=ph.max){return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(t){return pK(t)||t<=this.resolve(e)}})}lessThan(e,t=ph.lessThan){return this.test({message:t,name:"max",exclusive:!0,params:{less:e},test(t){return pK(t)||tthis.resolve(e)}})}positive(e=ph.positive){return this.moreThan(0,e)}negative(e=ph.negative){return this.lessThan(0,e)}integer(e=ph.integer){return this.test({name:"integer",message:e,test:e=>pK(e)||Number.isInteger(e)})}truncate(){return this.transform(e=>pK(e)?e:0|e)}round(e){var t,n=["ceil","floor","round","trunc"];if("trunc"===(e=(null==(t=e)?void 0:t.toLowerCase())||"round"))return this.truncate();if(-1===n.indexOf(e.toLowerCase()))throw TypeError("Only valid options for round() are: "+n.join(", "));return this.transform(t=>pK(t)?t:Math[e](t))}}p4.prototype=p6.prototype;var p5=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function p8(e){var t,n,r=[1,4,5,6,7,10,11],i=0;if(n=p5.exec(e)){for(var a,o=0;a=r[o];++o)n[a]=+n[a]||0;n[2]=(+n[2]||1)-1,n[3]=+n[3]||1,n[7]=n[7]?String(n[7]).substr(0,3):0,(void 0===n[8]||""===n[8])&&(void 0===n[9]||""===n[9])?t=+new Date(n[1],n[2],n[3],n[4],n[5],n[6],n[7]):("Z"!==n[8]&&void 0!==n[9]&&(i=60*n[10]+n[11],"+"===n[9]&&(i=0-i)),t=Date.UTC(n[1],n[2],n[3],n[4],n[5]+i,n[6],n[7]))}else t=Date.parse?Date.parse(e):NaN;return t}let p9=new Date(""),p7=e=>"[object Date]"===Object.prototype.toString.call(e);function be(){return new bt}class bt extends pU{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=p8(e),isNaN(e)?p9:new Date(e))})})}_typeCheck(e){return p7(e)&&!isNaN(e.getTime())}prepareParam(e,t){let n;if(pD.isRef(e))n=e;else{let r=this.cast(e);if(!this._typeCheck(r))throw TypeError(`\`${t}\` must be a Date or a value that can be \`cast()\` to a Date`);n=r}return n}min(e,t=pp.min){let n=this.prepareParam(e,"min");return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(e){return pK(e)||e>=this.resolve(n)}})}max(e,t=pp.max){var n=this.prepareParam(e,"max");return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(e){return pK(e)||e<=this.resolve(n)}})}}bt.INVALID_DATE=p9,be.prototype=bt.prototype,be.INVALID_DATE=p9;var bn=n(11865),br=n.n(bn),bi=n(68929),ba=n.n(bi),bo=n(67523),bs=n.n(bo),bu=n(94633),bc=n.n(bu);function bl(e,t=[]){let n=[],r=[];function i(e,i){var a=(0,pC.split)(e)[0];~r.indexOf(a)||r.push(a),~t.indexOf(`${i}-${a}`)||n.push([i,a])}for(let a in e)if(py()(e,a)){let o=e[a];~r.indexOf(a)||r.push(a),pD.isRef(o)&&o.isSibling?i(o.path,a):pw(o)&&"deps"in o&&o.deps.forEach(e=>i(e,a))}return bc().array(r,n).reverse()}function bf(e,t){let n=1/0;return e.some((e,r)=>{var i;if((null==(i=t.path)?void 0:i.indexOf(e))!==-1)return n=r,!0}),n}function bd(e){return(t,n)=>bf(e,t)-bf(e,n)}function bh(){return(bh=Object.assign||function(e){for(var t=1;t"[object Object]"===Object.prototype.toString.call(e);function bb(e,t){let n=Object.keys(e.fields);return Object.keys(t).filter(e=>-1===n.indexOf(e))}let bm=bd([]);class bg extends pU{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=bm,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(t){e=null}return this.isType(e)?e:null}),e&&this.shape(e)})}_typeCheck(e){return bp(e)||"function"==typeof e}_cast(e,t={}){var n;let r=super._cast(e,t);if(void 0===r)return this.getDefault();if(!this._typeCheck(r))return r;let i=this.fields,a=null!=(n=t.stripUnknown)?n:this.spec.noUnknown,o=this._nodes.concat(Object.keys(r).filter(e=>-1===this._nodes.indexOf(e))),s={},u=bh({},t,{parent:s,__validating:t.__validating||!1}),c=!1;for(let l of o){let f=i[l],d=py()(r,l);if(f){let h,p=r[l];u.path=(t.path?`${t.path}.`:"")+l;let b="spec"in(f=f.resolve({value:p,context:t.context,parent:s}))?f.spec:void 0,m=null==b?void 0:b.strict;if(null==b?void 0:b.strip){c=c||l in r;continue}void 0!==(h=t.__validating&&m?r[l]:f.cast(r[l],u))&&(s[l]=h)}else d&&!a&&(s[l]=r[l]);s[l]!==r[l]&&(c=!0)}return c?s:r}_validate(e,t={},n){let r=[],{sync:i,from:a=[],originalValue:o=e,abortEarly:s=this.spec.abortEarly,recursive:u=this.spec.recursive}=t;a=[{schema:this,value:o},...a],t.__validating=!0,t.originalValue=o,t.from=a,super._validate(e,t,(e,c)=>{if(e){if(!pT.isError(e)||s)return void n(e,c);r.push(e)}if(!u||!bp(c)){n(r[0]||null,c);return}o=o||c;let l=this._nodes.map(e=>(n,r)=>{let i=-1===e.indexOf(".")?(t.path?`${t.path}.`:"")+e:`${t.path||""}["${e}"]`,s=this.fields[e];if(s&&"validate"in s){s.validate(c[e],bh({},t,{path:i,from:a,strict:!0,parent:c,originalValue:o[e]}),r);return}r(null)});pO({sync:i,tests:l,value:c,errors:r,endEarly:s,sort:this._sortErrors,path:t.path},n)})}clone(e){let t=super.clone(e);return t.fields=bh({},this.fields),t._nodes=this._nodes,t._excludedEdges=this._excludedEdges,t._sortErrors=this._sortErrors,t}concat(e){let t=super.concat(e),n=t.fields;for(let[r,i]of Object.entries(this.fields)){let a=n[r];void 0===a?n[r]=i:a instanceof pU&&i instanceof pU&&(n[r]=i.concat(a))}return t.withMutation(()=>t.shape(n))}getDefaultFromShape(){let e={};return this._nodes.forEach(t=>{let n=this.fields[t];e[t]="default"in n?n.getDefault():void 0}),e}_getDefault(){return"default"in this.spec?super._getDefault():this._nodes.length?this.getDefaultFromShape():void 0}shape(e,t=[]){let n=this.clone(),r=Object.assign(n.fields,e);if(n.fields=r,n._sortErrors=bd(Object.keys(r)),t.length){Array.isArray(t[0])||(t=[t]);let i=t.map(([e,t])=>`${e}-${t}`);n._excludedEdges=n._excludedEdges.concat(i)}return n._nodes=bl(r,n._excludedEdges),n}pick(e){let t={};for(let n of e)this.fields[n]&&(t[n]=this.fields[n]);return this.clone().withMutation(e=>(e.fields={},e.shape(t)))}omit(e){let t=this.clone(),n=t.fields;for(let r of(t.fields={},e))delete n[r];return t.withMutation(()=>t.shape(n))}from(e,t,n){let r=(0,pC.getter)(e,!0);return this.transform(i=>{if(null==i)return i;let a=i;return py()(i,e)&&(a=bh({},i),n||delete a[e],a[t]=r(i)),a})}noUnknown(e=!0,t=pm.noUnknown){"string"==typeof e&&(t=e,e=!0);let n=this.test({name:"noUnknown",exclusive:!0,message:t,test(t){if(null==t)return!0;let n=bb(this.schema,t);return!e||0===n.length||this.createError({params:{unknown:n.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,t=pm.noUnknown){return this.noUnknown(!e,t)}transformKeys(e){return this.transform(t=>t&&bs()(t,(t,n)=>e(n)))}camelCase(){return this.transformKeys(ba())}snakeCase(){return this.transformKeys(br())}constantCase(){return this.transformKeys(e=>br()(e).toUpperCase())}describe(){let e=super.describe();return e.fields=pL()(this.fields,e=>e.describe()),e}}function bv(e){return new bg(e)}function by(){return(by=Object.assign||function(e){for(var t=1;t{this.transform(function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(t){e=null}return this.isType(e)?e:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,t){let n=super._cast(e,t);if(!this._typeCheck(n)||!this.innerType)return n;let r=!1,i=n.map((e,n)=>{let i=this.innerType.cast(e,by({},t,{path:`${t.path||""}[${n}]`}));return i!==e&&(r=!0),i});return r?i:n}_validate(e,t={},n){var r,i;let a=[],o=t.sync,s=t.path,u=this.innerType,c=null!=(r=t.abortEarly)?r:this.spec.abortEarly,l=null!=(i=t.recursive)?i:this.spec.recursive,f=null!=t.originalValue?t.originalValue:e;super._validate(e,t,(e,r)=>{if(e){if(!pT.isError(e)||c)return void n(e,r);a.push(e)}if(!l||!u||!this._typeCheck(r)){n(a[0]||null,r);return}f=f||r;let i=Array(r.length);for(let d=0;du.validate(h,b,t)}pO({sync:o,path:s,value:r,errors:a,endEarly:c,tests:i},n)})}clone(e){let t=super.clone(e);return t.innerType=this.innerType,t}concat(e){let t=super.concat(e);return t.innerType=this.innerType,e.innerType&&(t.innerType=t.innerType?t.innerType.concat(e.innerType):e.innerType),t}of(e){let t=this.clone();if(!pw(e))throw TypeError("`array.of()` sub-schema must be a valid yup schema not: "+pl(e));return t.innerType=e,t}length(e,t=pg.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},test(t){return pK(t)||t.length===this.resolve(e)}})}min(e,t){return t=t||pg.min,this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(t){return pK(t)||t.length>=this.resolve(e)}})}max(e,t){return t=t||pg.max,this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(t){return pK(t)||t.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,t)=>this._typeCheck(e)?e:null==t?[]:[].concat(t))}compact(e){let t=e?(t,n,r)=>!e(t,n,r):e=>!!e;return this.transform(e=>null!=e?e.filter(t):e)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}}bw.prototype=b_.prototype;var bE=bv().shape({name:p0().required("Required"),url:p0().required("Required")}),bS=function(e){var t=e.initialValues,n=e.onSubmit,r=e.submitButtonText,i=e.nameDisabled,a=void 0!==i&&i;return l.createElement(hT,{initialValues:t,validationSchema:bE,onSubmit:n},function(e){var t=e.isSubmitting;return l.createElement(l.Fragment,null,l.createElement(hR,{"data-testid":"bridge-form",noValidate:!0},l.createElement(d.Z,{container:!0,spacing:16},l.createElement(d.Z,{item:!0,xs:12,md:7},l.createElement(hP,{component:hX,id:"name",name:"name",label:"Name",disabled:a,required:!0,fullWidth:!0,FormHelperTextProps:{"data-testid":"name-helper-text"}})),l.createElement(d.Z,{item:!0,xs:12,md:7},l.createElement(hP,{component:hX,id:"url",name:"url",label:"Bridge URL",placeholder:"https://",required:!0,fullWidth:!0,FormHelperTextProps:{"data-testid":"url-helper-text"}})),l.createElement(d.Z,{item:!0,xs:12,md:7},l.createElement(d.Z,{container:!0,spacing:16},l.createElement(d.Z,{item:!0,xs:7},l.createElement(hP,{component:hX,id:"minimumContractPayment",name:"minimumContractPayment",label:"Minimum Contract Payment",placeholder:"0",fullWidth:!0,inputProps:{min:0},FormHelperTextProps:{"data-testid":"minimumContractPayment-helper-text"}})),l.createElement(d.Z,{item:!0,xs:7},l.createElement(hP,{component:hX,id:"confirmations",name:"confirmations",label:"Confirmations",placeholder:"0",type:"number",fullWidth:!0,inputProps:{min:0},FormHelperTextProps:{"data-testid":"confirmations-helper-text"}})))),l.createElement(d.Z,{item:!0,xs:12,md:7},l.createElement(ok.default,{variant:"contained",color:"primary",type:"submit",disabled:t,size:"large"},r)))))})},bk=function(e){var t=e.bridge,n=e.onSubmit,r={name:t.name,url:t.url,minimumContractPayment:t.minimumContractPayment,confirmations:t.confirmations};return l.createElement(ig,null,l.createElement(d.Z,{container:!0,spacing:40},l.createElement(d.Z,{item:!0,xs:12,md:11,lg:9},l.createElement(r5.Z,null,l.createElement(sl.Z,{title:"Edit Bridge",action:l.createElement(aA.Z,{component:tz,href:"/bridges/".concat(t.id)},"Cancel")}),l.createElement(aW.Z,null,l.createElement(bS,{nameDisabled:!0,initialValues:r,onSubmit:n,submitButtonText:"Save Bridge"}))))))};function bx(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&void 0!==arguments[0]&&arguments[0],t=e?function(){return l.createElement(x.default,{variant:"body1"},"Loading...")}:function(){return null};return{isLoading:e,LoadingPlaceholder:t}},mc=n(76023);function ml(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function mB(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=4?[e[0],e[1],e[2],e[3],"".concat(e[0],".").concat(e[1]),"".concat(e[0],".").concat(e[2]),"".concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[0]),"".concat(e[1],".").concat(e[2]),"".concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[1]),"".concat(e[2],".").concat(e[3]),"".concat(e[3],".").concat(e[0]),"".concat(e[3],".").concat(e[1]),"".concat(e[3],".").concat(e[2]),"".concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[1],".").concat(e[3]),"".concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[2],".").concat(e[3]),"".concat(e[0],".").concat(e[3],".").concat(e[1]),"".concat(e[0],".").concat(e[3],".").concat(e[2]),"".concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[1],".").concat(e[2],".").concat(e[3]),"".concat(e[1],".").concat(e[3],".").concat(e[0]),"".concat(e[1],".").concat(e[3],".").concat(e[2]),"".concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[0],".").concat(e[3]),"".concat(e[2],".").concat(e[1],".").concat(e[0]),"".concat(e[2],".").concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[3],".").concat(e[0]),"".concat(e[2],".").concat(e[3],".").concat(e[1]),"".concat(e[3],".").concat(e[0],".").concat(e[1]),"".concat(e[3],".").concat(e[0],".").concat(e[2]),"".concat(e[3],".").concat(e[1],".").concat(e[0]),"".concat(e[3],".").concat(e[1],".").concat(e[2]),"".concat(e[3],".").concat(e[2],".").concat(e[0]),"".concat(e[3],".").concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[1],".").concat(e[2],".").concat(e[3]),"".concat(e[0],".").concat(e[1],".").concat(e[3],".").concat(e[2]),"".concat(e[0],".").concat(e[2],".").concat(e[1],".").concat(e[3]),"".concat(e[0],".").concat(e[2],".").concat(e[3],".").concat(e[1]),"".concat(e[0],".").concat(e[3],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[3],".").concat(e[2],".").concat(e[1]),"".concat(e[1],".").concat(e[0],".").concat(e[2],".").concat(e[3]),"".concat(e[1],".").concat(e[0],".").concat(e[3],".").concat(e[2]),"".concat(e[1],".").concat(e[2],".").concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[2],".").concat(e[3],".").concat(e[0]),"".concat(e[1],".").concat(e[3],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[3],".").concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[0],".").concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[0],".").concat(e[3],".").concat(e[1]),"".concat(e[2],".").concat(e[1],".").concat(e[0],".").concat(e[3]),"".concat(e[2],".").concat(e[1],".").concat(e[3],".").concat(e[0]),"".concat(e[2],".").concat(e[3],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[3],".").concat(e[1],".").concat(e[0]),"".concat(e[3],".").concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[3],".").concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[3],".").concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[3],".").concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[3],".").concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[3],".").concat(e[2],".").concat(e[1],".").concat(e[0])]:void 0}var mZ={};function mX(e){if(0===e.length||1===e.length)return e;var t=e.join(".");return mZ[t]||(mZ[t]=mq(e)),mZ[t]}function mJ(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;return mX(e.filter(function(e){return"token"!==e})).reduce(function(e,t){return mK({},e,n[t])},t)}function mQ(e){return e.join(" ")}function m1(e,t){var n=0;return function(r){return n+=1,r.map(function(r,i){return m0({node:r,stylesheet:e,useInlineStyles:t,key:"code-segment-".concat(n,"-").concat(i)})})}}function m0(e){var t=e.node,n=e.stylesheet,r=e.style,i=void 0===r?{}:r,a=e.useInlineStyles,o=e.key,s=t.properties,u=t.type,c=t.tagName,f=t.value;if("text"===u)return f;if(c){var d,h=m1(n,a);if(a){var p=Object.keys(n).reduce(function(e,t){return t.split(".").forEach(function(t){e.includes(t)||e.push(t)}),e},[]),b=s.className&&s.className.includes("token")?["token"]:[],m=s.className&&b.concat(s.className.filter(function(e){return!p.includes(e)}));d=mK({},s,{className:mQ(m)||void 0,style:mJ(s.className,Object.assign({},s.style,i),n)})}else d=mK({},s,{className:mQ(s.className)});var g=h(t.children);return l.createElement(c,(0,mV.Z)({key:o},d),g)}}let m2=function(e,t){return -1!==e.listLanguages().indexOf(t)};var m3=/\n/g;function m4(e){return e.match(m3)}function m6(e){var t=e.lines,n=e.startingLineNumber,r=e.style;return t.map(function(e,t){var i=t+n;return l.createElement("span",{key:"line-".concat(t),className:"react-syntax-highlighter-line-number",style:"function"==typeof r?r(i):r},"".concat(i,"\n"))})}function m5(e){var t=e.codeString,n=e.codeStyle,r=e.containerStyle,i=void 0===r?{float:"left",paddingRight:"10px"}:r,a=e.numberStyle,o=void 0===a?{}:a,s=e.startingLineNumber;return l.createElement("code",{style:Object.assign({},n,i)},m6({lines:t.replace(/\n$/,"").split("\n"),style:o,startingLineNumber:s}))}function m8(e){return"".concat(e.toString().length,".25em")}function m9(e,t){return{type:"element",tagName:"span",properties:{key:"line-number--".concat(e),className:["comment","linenumber","react-syntax-highlighter-line-number"],style:t},children:[{type:"text",value:e}]}}function m7(e,t,n){var r,i={display:"inline-block",minWidth:m8(n),paddingRight:"1em",textAlign:"right",userSelect:"none"};return mK({},i,"function"==typeof e?e(t):e)}function ge(e){var t=e.children,n=e.lineNumber,r=e.lineNumberStyle,i=e.largestLineNumber,a=e.showInlineLineNumbers,o=e.lineProps,s=void 0===o?{}:o,u=e.className,c=void 0===u?[]:u,l=e.showLineNumbers,f=e.wrapLongLines,d="function"==typeof s?s(n):s;if(d.className=c,n&&a){var h=m7(r,n,i);t.unshift(m9(n,h))}return f&l&&(d.style=mK({},d.style,{display:"flex"})),{type:"element",tagName:"span",properties:d,children:t}}function gt(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=0;r2&&void 0!==arguments[2]?arguments[2]:[];return ge({children:e,lineNumber:t,lineNumberStyle:s,largestLineNumber:o,showInlineLineNumbers:i,lineProps:n,className:a,showLineNumbers:r,wrapLongLines:u})}function b(e,t){if(r&&t&&i){var n=m7(s,t,o);e.unshift(m9(t,n))}return e}function m(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return t||r.length>0?p(e,n,r):b(e,n)}for(var g=function(){var e=l[h],t=e.children[0].value;if(m4(t)){var n=t.split("\n");n.forEach(function(t,i){var o=r&&f.length+a,s={type:"text",value:"".concat(t,"\n")};if(0===i){var u=l.slice(d+1,h).concat(ge({children:[s],className:e.properties.className})),c=m(u,o);f.push(c)}else if(i===n.length-1){if(l[h+1]&&l[h+1].children&&l[h+1].children[0]){var p={type:"text",value:"".concat(t)},b=ge({children:[p],className:e.properties.className});l.splice(h+1,0,b)}else{var g=[s],v=m(g,o,e.properties.className);f.push(v)}}else{var y=[s],w=m(y,o,e.properties.className);f.push(w)}}),d=h}h++};h code[class*="language-"]':{background:"#f5f2f0",padding:".1em",borderRadius:".3em",whiteSpace:"normal"},comment:{color:"slategray"},prolog:{color:"slategray"},doctype:{color:"slategray"},cdata:{color:"slategray"},punctuation:{color:"#999"},namespace:{Opacity:".7"},property:{color:"#905"},tag:{color:"#905"},boolean:{color:"#905"},number:{color:"#905"},constant:{color:"#905"},symbol:{color:"#905"},deleted:{color:"#905"},selector:{color:"#690"},"attr-name":{color:"#690"},string:{color:"#690"},char:{color:"#690"},builtin:{color:"#690"},inserted:{color:"#690"},operator:{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)"},entity:{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)",cursor:"help"},url:{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)"},".language-css .token.string":{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)"},".style .token.string":{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)"},atrule:{color:"#07a"},"attr-value":{color:"#07a"},keyword:{color:"#07a"},function:{color:"#DD4A68"},"class-name":{color:"#DD4A68"},regex:{color:"#e90"},important:{color:"#e90",fontWeight:"bold"},variable:{color:"#e90"},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"}};var gu=n(98695),gc=n.n(gu);let gl=["abap","abnf","actionscript","ada","agda","al","antlr4","apacheconf","apl","applescript","aql","arduino","arff","asciidoc","asm6502","aspnet","autohotkey","autoit","bash","basic","batch","bbcode","birb","bison","bnf","brainfuck","brightscript","bro","bsl","c","cil","clike","clojure","cmake","coffeescript","concurnas","cpp","crystal","csharp","csp","css-extras","css","cypher","d","dart","dax","dhall","diff","django","dns-zone-file","docker","ebnf","editorconfig","eiffel","ejs","elixir","elm","erb","erlang","etlua","excel-formula","factor","firestore-security-rules","flow","fortran","fsharp","ftl","gcode","gdscript","gedcom","gherkin","git","glsl","gml","go","graphql","groovy","haml","handlebars","haskell","haxe","hcl","hlsl","hpkp","hsts","http","ichigojam","icon","iecst","ignore","inform7","ini","io","j","java","javadoc","javadoclike","javascript","javastacktrace","jolie","jq","js-extras","js-templates","jsdoc","json","json5","jsonp","jsstacktrace","jsx","julia","keyman","kotlin","latex","latte","less","lilypond","liquid","lisp","livescript","llvm","lolcode","lua","makefile","markdown","markup-templating","markup","matlab","mel","mizar","mongodb","monkey","moonscript","n1ql","n4js","nand2tetris-hdl","naniscript","nasm","neon","nginx","nim","nix","nsis","objectivec","ocaml","opencl","oz","parigp","parser","pascal","pascaligo","pcaxis","peoplecode","perl","php-extras","php","phpdoc","plsql","powerquery","powershell","processing","prolog","properties","protobuf","pug","puppet","pure","purebasic","purescript","python","q","qml","qore","r","racket","reason","regex","renpy","rest","rip","roboconf","robotframework","ruby","rust","sas","sass","scala","scheme","scss","shell-session","smali","smalltalk","smarty","sml","solidity","solution-file","soy","sparql","splunk-spl","sqf","sql","stan","stylus","swift","t4-cs","t4-templating","t4-vb","tap","tcl","textile","toml","tsx","tt2","turtle","twig","typescript","typoscript","unrealscript","vala","vbnet","velocity","verilog","vhdl","vim","visual-basic","warpscript","wasm","wiki","xeora","xml-doc","xojo","xquery","yaml","yang","zig"];var gf=go(gc(),gs);gf.supportedLanguages=gl;let gd=gf;var gh=n(64566);function gp(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function gb(){var e=gp(["\n query FetchConfigV2 {\n configv2 {\n user\n effective\n }\n }\n"]);return gb=function(){return e},e}var gm=n0(gb()),gg=function(e){var t=e.children;return l.createElement(ir.Z,null,l.createElement(r7.default,{component:"th",scope:"row",colSpan:3},t))},gv=function(){return l.createElement(gg,null,"...")},gy=function(e){var t=e.children;return l.createElement(gg,null,t)},gw=function(e){var t=e.loading,n=e.toml,r=e.error,i=void 0===r?"":r,a=e.title,o=e.expanded;if(i)return l.createElement(gy,null,i);if(t)return l.createElement(gv,null);a||(a="TOML");var s={display:"block"};return l.createElement(x.default,null,l.createElement(mP.Z,{defaultExpanded:o},l.createElement(mR.Z,{expandIcon:l.createElement(gh.Z,null)},a),l.createElement(mj.Z,{style:s},l.createElement(gd,{language:"toml",style:gs},n))))},g_=function(){var e=rv(gm,{fetchPolicy:"cache-and-network"}),t=e.data,n=e.loading,r=e.error;return(null==t?void 0:t.configv2.effective)=="N/A"?l.createElement(l.Fragment,null,l.createElement(d.Z,{item:!0,xs:12},l.createElement(r5.Z,null,l.createElement(sl.Z,{title:"TOML Configuration"}),l.createElement(gw,{title:"V2 config dump:",error:null==r?void 0:r.message,loading:n,toml:null==t?void 0:t.configv2.user,showHead:!0})))):l.createElement(l.Fragment,null,l.createElement(d.Z,{container:!0},l.createElement(d.Z,{item:!0,xs:12},l.createElement(r5.Z,null,l.createElement(sl.Z,{title:"TOML Configuration"}),l.createElement(gw,{title:"User specified:",error:null==r?void 0:r.message,loading:n,toml:null==t?void 0:t.configv2.user,showHead:!0,expanded:!0}),l.createElement(gw,{title:"Effective (with defaults):",error:null==r?void 0:r.message,loading:n,toml:null==t?void 0:t.configv2.effective,showHead:!0})))))},gE=n(34823),gS=function(e){return(0,b.createStyles)({cell:{paddingTop:1.5*e.spacing.unit,paddingBottom:1.5*e.spacing.unit}})},gk=(0,b.withStyles)(gS)(function(e){var t=e.classes,n=(0,A.I0)();(0,l.useEffect)(function(){n((0,ty.DQ)())});var r=(0,A.v9)(gE.N,A.wU);return l.createElement(r5.Z,null,l.createElement(sl.Z,{title:"Node"}),l.createElement(r8.Z,null,l.createElement(r9.Z,null,l.createElement(ir.Z,null,l.createElement(r7.default,{className:t.cell},l.createElement(x.default,null,"Version"),l.createElement(x.default,{variant:"subtitle1",color:"textSecondary"},r.version))),l.createElement(ir.Z,null,l.createElement(r7.default,{className:t.cell},l.createElement(x.default,null,"SHA"),l.createElement(x.default,{variant:"subtitle1",color:"textSecondary"},r.commitSHA))))))}),gx=function(){return l.createElement(ig,null,l.createElement(d.Z,{container:!0},l.createElement(d.Z,{item:!0,sm:12,md:8},l.createElement(d.Z,{container:!0},l.createElement(g_,null))),l.createElement(d.Z,{item:!0,sm:12,md:4},l.createElement(d.Z,{container:!0},l.createElement(d.Z,{item:!0,xs:12},l.createElement(gk,null)),l.createElement(d.Z,{item:!0,xs:12},l.createElement(mN,null)),l.createElement(d.Z,{item:!0,xs:12},l.createElement(mE,null))))))},gT=function(){return l.createElement(gx,null)},gM=function(){return l.createElement(gT,null)},gO=n(44431),gA=1e18,gL=function(e){return new gO.BigNumber(e).dividedBy(gA).toFixed(8)},gC=function(e){var t=e.keys,n=e.chainID,r=e.hideHeaderTitle;return l.createElement(l.Fragment,null,l.createElement(sl.Z,{title:!r&&"Account Balances",subheader:"Chain ID "+n}),l.createElement(aW.Z,null,l.createElement(w.default,{dense:!1,disablePadding:!0},t&&t.map(function(e,r){return l.createElement(l.Fragment,null,l.createElement(_.default,{disableGutters:!0,key:["acc-balance",n.toString(),r.toString()].join("-")},l.createElement(E.Z,{primary:l.createElement(l.Fragment,null,l.createElement(d.Z,{container:!0,spacing:16},l.createElement(d.Z,{item:!0,xs:12},l.createElement(op,{title:"Address"}),l.createElement(ob,{value:e.address})),l.createElement(d.Z,{item:!0,xs:6},l.createElement(op,{title:"Native Token Balance"}),l.createElement(ob,{value:e.ethBalance||"--"})),l.createElement(d.Z,{item:!0,xs:6},l.createElement(op,{title:"LINK Balance"}),l.createElement(ob,{value:e.linkBalance?gL(e.linkBalance):"--"}))))})),r+1s&&l.createElement(gB.Z,null,l.createElement(ir.Z,null,l.createElement(r7.default,{className:r.footer},l.createElement(aA.Z,{href:"/runs",component:tz},"View More"))))))});function vt(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function vn(){var e=vt(["\n ","\n query FetchRecentJobRuns($offset: Int, $limit: Int) {\n jobRuns(offset: $offset, limit: $limit) {\n results {\n ...RecentJobRunsPayload_ResultsFields\n }\n metadata {\n total\n }\n }\n }\n"]);return vn=function(){return e},e}var vr=5,vi=n0(vn(),g9),va=function(){var e=rv(vi,{variables:{offset:0,limit:vr},fetchPolicy:"cache-and-network"}),t=e.data,n=e.loading,r=e.error;return l.createElement(ve,{data:t,errorMsg:null==r?void 0:r.message,loading:n,maxRunsSize:vr})},vo=function(e){return(0,b.createStyles)({style:{textAlign:"center",padding:2.5*e.spacing.unit,position:"fixed",left:"0",bottom:"0",width:"100%",borderRadius:0},bareAnchor:{color:e.palette.common.black,textDecoration:"none"}})},vs=(0,b.withStyles)(vo)(function(e){var t=e.classes,n=(0,A.v9)(gE.N,A.wU),r=(0,A.I0)();return(0,l.useEffect)(function(){r((0,ty.DQ)())}),l.createElement(ii.default,{className:t.style},l.createElement(x.default,null,"Chainlink Node ",n.version," at commit"," ",l.createElement("a",{target:"_blank",rel:"noopener noreferrer",href:"https://github.com/smartcontractkit/chainlink/commit/".concat(n.commitSHA),className:t.bareAnchor},n.commitSHA)))}),vu=function(e){return(0,b.createStyles)({cell:{borderColor:e.palette.divider,borderTop:"1px solid",borderBottom:"none",paddingTop:2*e.spacing.unit,paddingBottom:2*e.spacing.unit,paddingLeft:2*e.spacing.unit},block:{display:"block"},overflowEllipsis:{textOverflow:"ellipsis",overflow:"hidden"}})},vc=(0,b.withStyles)(vu)(function(e){var t=e.classes,n=e.job;return l.createElement(ir.Z,null,l.createElement(r7.default,{scope:"row",className:t.cell},l.createElement(d.Z,{container:!0,spacing:0},l.createElement(d.Z,{item:!0,xs:12},l.createElement(ih,{href:"/jobs/".concat(n.id),classes:{linkContent:t.block}},l.createElement(x.default,{className:t.overflowEllipsis,variant:"body1",component:"span",color:"primary"},n.name||n.id))),l.createElement(d.Z,{item:!0,xs:12},l.createElement(x.default,{variant:"body1",color:"textSecondary"},"Created ",l.createElement(aO,{tooltip:!0},n.createdAt))))))});function vl(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function vf(){var e=vl(["\n fragment RecentJobsPayload_ResultsFields on Job {\n id\n name\n createdAt\n }\n"]);return vf=function(){return e},e}var vd=n0(vf()),vh=function(){return(0,b.createStyles)({cardHeader:{borderBottom:0},table:{tableLayout:"fixed"}})},vp=(0,b.withStyles)(vh)(function(e){var t,n,r=e.classes,i=e.data,a=e.errorMsg,o=e.loading;return l.createElement(r5.Z,null,l.createElement(sl.Z,{title:"Recent Jobs",className:r.cardHeader}),l.createElement(r8.Z,{className:r.table},l.createElement(r9.Z,null,l.createElement(g$,{visible:o}),l.createElement(gz,{visible:(null===(t=null==i?void 0:i.jobs.results)||void 0===t?void 0:t.length)===0},"No recently created jobs"),l.createElement(gU,{msg:a}),null===(n=null==i?void 0:i.jobs.results)||void 0===n?void 0:n.map(function(e,t){return l.createElement(vc,{job:e,key:t})}))))});function vb(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function vm(){var e=vb(["\n ","\n query FetchRecentJobs($offset: Int, $limit: Int) {\n jobs(offset: $offset, limit: $limit) {\n results {\n ...RecentJobsPayload_ResultsFields\n }\n }\n }\n"]);return vm=function(){return e},e}var vg=5,vv=n0(vm(),vd),vy=function(){var e=rv(vv,{variables:{offset:0,limit:vg},fetchPolicy:"cache-and-network"}),t=e.data,n=e.loading,r=e.error;return l.createElement(vp,{data:t,errorMsg:null==r?void 0:r.message,loading:n})},vw=function(){return l.createElement(ig,null,l.createElement(d.Z,{container:!0},l.createElement(d.Z,{item:!0,xs:8},l.createElement(va,null)),l.createElement(d.Z,{item:!0,xs:4},l.createElement(d.Z,{container:!0},l.createElement(d.Z,{item:!0,xs:12},l.createElement(gY,null)),l.createElement(d.Z,{item:!0,xs:12},l.createElement(vy,null))))),l.createElement(vs,null))},v_=function(){return l.createElement(vw,null)},vE=function(){return l.createElement(v_,null)},vS=n(87239),vk=function(e){switch(e){case"DirectRequestSpec":return"Direct Request";case"FluxMonitorSpec":return"Flux Monitor";default:return e.replace(/Spec$/,"")}},vx=n(5022),vT=n(78718),vM=n.n(vT);function vO(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n1?t-1:0),r=1;r1?t-1:0),r=1;re.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&n.map(function(e){return l.createElement(ir.Z,{key:e.id,style:{cursor:"pointer"},onClick:function(){return r.push("/runs/".concat(e.id))}},l.createElement(r7.default,{className:t.idCell,scope:"row"},l.createElement("div",{className:t.runDetails},l.createElement(x.default,{variant:"h5",color:"primary",component:"span"},e.id))),l.createElement(r7.default,{className:t.stampCell},l.createElement(x.default,{variant:"body1",color:"textSecondary",className:t.stamp},"Created ",l.createElement(aO,{tooltip:!0},e.createdAt))),l.createElement(r7.default,{className:t.statusCell,scope:"row"},l.createElement(x.default,{variant:"body1",className:O()(t.status,yh(t,e.status))},e.status.toLowerCase())))})))}),yb=n(16839),ym=n.n(yb);function yg(e){var t=e.replace(/\w+\s*=\s*<([^>]|[\r\n])*>/g,""),n=ym().read(t),r=n.edges();return n.nodes().map(function(e){var t={id:e,parentIds:r.filter(function(t){return t.w===e}).map(function(e){return e.v})};return Object.keys(n.node(e)).length>0&&(t.attributes=n.node(e)),t})}var yv=n(94164),yy=function(e){var t=e.data,n=[];return(null==t?void 0:t.attributes)&&Object.keys(t.attributes).forEach(function(e){var r;n.push(l.createElement("div",{key:e},l.createElement(x.default,{variant:"body1",color:"textSecondary",component:"div"},l.createElement("b",null,e,":")," ",null===(r=t.attributes)||void 0===r?void 0:r[e])))}),l.createElement("div",null,t&&l.createElement(x.default,{variant:"body1",color:"textPrimary"},l.createElement("b",null,t.id)),n)},yw=n(73343),y_=n(3379),yE=n.n(y_);function yS(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);nwindow.innerWidth?u-r.getBoundingClientRect().width-a:u+a,n=c+r.getBoundingClientRect().height+i>window.innerHeight?c-r.getBoundingClientRect().height-a:c+a,r.style.opacity=String(1),r.style.top="".concat(n,"px"),r.style.left="".concat(t,"px"),r.style.zIndex=String(1)}},h=function(e){var t=document.getElementById("tooltip-d3-chart-".concat(e));t&&(t.style.opacity=String(0),t.style.zIndex=String(-1))};return l.createElement("div",{style:{fontFamily:"sans-serif",fontWeight:"normal"}},l.createElement(yv.kJ,{id:"task-list-graph-d3",data:i,config:s,onMouseOverNode:d,onMouseOutNode:h},"D3 chart"),n.map(function(e){return l.createElement("div",{key:"d3-tooltip-key-".concat(e.id),id:"tooltip-d3-chart-".concat(e.id),style:{position:"absolute",opacity:"0",border:"1px solid rgba(0, 0, 0, 0.1)",padding:yw.r.spacing.unit,background:"white",borderRadius:5,zIndex:-1,inlineSize:"min-content"}},l.createElement(yy,{data:e}))}))};function yL(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);nyY&&l.createElement("div",{className:t.runDetails},l.createElement(aA.Z,{href:"/jobs/".concat(n.id,"/runs"),component:tz},"View more")))),l.createElement(d.Z,{item:!0,xs:12,sm:6},l.createElement(yF,{observationSource:n.observationSource})))});function yH(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&void 0!==arguments[0]?arguments[0]:"";try{return vx.parse(e),!0}catch(t){return!1}})}),wW=function(e){var t=e.initialValues,n=e.onSubmit,r=e.onTOMLChange;return l.createElement(hT,{initialValues:t,validationSchema:wG,onSubmit:n},function(e){var t=e.isSubmitting,n=e.values;return r&&r(n.toml),l.createElement(hR,{"data-testid":"job-form",noValidate:!0},l.createElement(d.Z,{container:!0,spacing:16},l.createElement(d.Z,{item:!0,xs:12},l.createElement(hP,{component:hX,id:"toml",name:"toml",label:"Job Spec (TOML)",required:!0,fullWidth:!0,multiline:!0,rows:10,rowsMax:25,variant:"outlined",autoComplete:"off",FormHelperTextProps:{"data-testid":"toml-helper-text"}})),l.createElement(d.Z,{item:!0,xs:12,md:7},l.createElement(ok.default,{variant:"contained",color:"primary",type:"submit",disabled:t,size:"large"},"Create Job"))))})},wK=n(50109),wV="persistSpec";function wq(e){var t=e.query,n=new URLSearchParams(t).get("definition");return n?(wK.t8(wV,n),{toml:n}):{toml:wK.U2(wV)||""}}var wZ=function(e){var t=e.onSubmit,n=e.onTOMLChange,r=wq({query:(0,h.TH)().search}),i=function(e){var t=e.replace(/[\u200B-\u200D\uFEFF]/g,"");wK.t8("".concat(wV),t),n&&n(t)};return l.createElement(r5.Z,null,l.createElement(sl.Z,{title:"New Job"}),l.createElement(aW.Z,null,l.createElement(wW,{initialValues:r,onSubmit:t,onTOMLChange:i})))};function wX(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n1&&void 0!==arguments[1]?arguments[1]:{},n=t.start,r=void 0===n?6:n,i=t.end,a=void 0===i?4:i;return e.substring(0,r)+"..."+e.substring(e.length-a)}function _M(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&void 0!==arguments[0]?arguments[0]:{};return rv(_W,e)},_V=function(){var e=_K({fetchPolicy:"cache-and-network"}),t=e.data,n=e.loading,r=e.error,i=e.refetch;return l.createElement(_U,{loading:n,data:t,errorMsg:null==r?void 0:r.message,refetch:i})},_q=function(e){var t=e.csaKey;return l.createElement(ir.Z,{hover:!0},l.createElement(r7.default,null,l.createElement(x.default,{variant:"body1"},t.publicKey," ",l.createElement(_x,{data:t.publicKey}))))};function _Z(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function _X(){var e=_Z(["\n fragment CSAKeysPayload_ResultsFields on CSAKey {\n id\n publicKey\n }\n"]);return _X=function(){return e},e}var _J=n0(_X()),_Q=function(e){var t,n,r,i=e.data,a=e.errorMsg,o=e.loading,s=e.onCreate;return l.createElement(r5.Z,null,l.createElement(sl.Z,{action:(null===(t=null==i?void 0:i.csaKeys.results)||void 0===t?void 0:t.length)===0&&l.createElement(ok.default,{variant:"outlined",color:"primary",onClick:s},"New CSA Key"),title:"CSA Key",subheader:"Manage your CSA Key"}),l.createElement(r8.Z,null,l.createElement(ie.Z,null,l.createElement(ir.Z,null,l.createElement(r7.default,null,"Public Key"))),l.createElement(r9.Z,null,l.createElement(g$,{visible:o}),l.createElement(gz,{visible:(null===(n=null==i?void 0:i.csaKeys.results)||void 0===n?void 0:n.length)===0}),l.createElement(gU,{msg:a}),null===(r=null==i?void 0:i.csaKeys.results)||void 0===r?void 0:r.map(function(e,t){return l.createElement(_q,{csaKey:e,key:t})}))))};function _1(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&void 0!==arguments[0]?arguments[0]:{};return rv(EM,e)};function EA(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&void 0!==arguments[0]?arguments[0]:{};return rv(EJ,e)},E3=function(){return oo(EQ)},E4=function(){return oo(E1)},E6=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return rv(E0,e)};function E5(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&void 0!==arguments[0]?arguments[0]:{};return rv(SK,e)};function Sq(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function kV(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}var kq=function(e){var t=e.run,n=l.useMemo(function(){var e=t.inputs,n=t.outputs,r=t.taskRuns,i=kK(t,["inputs","outputs","taskRuns"]),a={};try{a=JSON.parse(e)}catch(o){a={}}return kW(kz({},i),{inputs:a,outputs:n,taskRuns:r})},[t]);return l.createElement(r5.Z,null,l.createElement(aW.Z,null,l.createElement(kH,{object:n})))};function kZ(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function kX(e){for(var t=1;t0&&l.createElement(kr,{errors:t.allErrors})),l.createElement(d.Z,{item:!0,xs:12},l.createElement(h.rs,null,l.createElement(h.AW,{path:"".concat(n,"/json")},l.createElement(kq,{run:t})),l.createElement(h.AW,{path:n},t.taskRuns.length>0&&l.createElement(kN,{taskRuns:t.taskRuns,observationSource:t.job.observationSource}))))))))};function k5(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function k8(){var e=k5(["\n ","\n query FetchJobRun($id: ID!) {\n jobRun(id: $id) {\n __typename\n ... on JobRun {\n ...JobRunPayload_Fields\n }\n ... on NotFoundError {\n message\n }\n }\n }\n"]);return k8=function(){return e},e}var k9=n0(k8(),k4),k7=function(){var e=rv(k9,{variables:{id:(0,h.UO)().id}}),t=e.data,n=e.loading,r=e.error;if(n)return l.createElement(iR,null);if(r)return l.createElement(iD,{error:r});var i=null==t?void 0:t.jobRun;switch(null==i?void 0:i.__typename){case"JobRun":return l.createElement(k6,{run:i});case"NotFoundError":return l.createElement(oa,null);default:return null}};function xe(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function xt(){var e=xe(["\n fragment JobRunsPayload_ResultsFields on JobRun {\n id\n allErrors\n createdAt\n finishedAt\n status\n job {\n id\n }\n }\n"]);return xt=function(){return e},e}var xn=n0(xt()),xr=function(e){var t=e.loading,n=e.data,r=e.page,i=e.pageSize,a=(0,h.k6)(),o=l.useMemo(function(){return null==n?void 0:n.jobRuns.results.map(function(e){var t,n=e.allErrors,r=e.id,i=e.createdAt;return{id:r,createdAt:i,errors:n,finishedAt:e.finishedAt,status:e.status}})},[n]);return l.createElement(ig,null,l.createElement(d.Z,{container:!0,spacing:32},l.createElement(d.Z,{item:!0,xs:12},l.createElement(iy,null,"Job Runs")),t&&l.createElement(iR,null),n&&o&&l.createElement(d.Z,{item:!0,xs:12},l.createElement(r5.Z,null,l.createElement(yp,{runs:o}),l.createElement(it.Z,{component:"div",count:n.jobRuns.metadata.total,rowsPerPage:i,rowsPerPageOptions:[i],page:r-1,onChangePage:function(e,t){a.push("/runs?page=".concat(t+1,"&per=").concat(i))},onChangeRowsPerPage:function(){},backIconButtonProps:{"aria-label":"prev-page"},nextIconButtonProps:{"aria-label":"next-page"}})))))};function xi(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function xa(){var e=xi(["\n ","\n query FetchJobRuns($offset: Int, $limit: Int) {\n jobRuns(offset: $offset, limit: $limit) {\n results {\n ...JobRunsPayload_ResultsFields\n }\n metadata {\n total\n }\n }\n }\n"]);return xa=function(){return e},e}var xo=n0(xa(),xn),xs=function(){var e=ij(),t=parseInt(e.get("page")||"1",10),n=parseInt(e.get("per")||"25",10),r=rv(xo,{variables:{offset:(t-1)*n,limit:n},fetchPolicy:"cache-and-network"}),i=r.data,a=r.loading,o=r.error;return o?l.createElement(iD,{error:o}):l.createElement(xr,{loading:a,data:i,page:t,pageSize:n})},xu=function(){var e=(0,h.$B)().path;return l.createElement(h.rs,null,l.createElement(h.AW,{exact:!0,path:e},l.createElement(xs,null)),l.createElement(h.AW,{path:"".concat(e,"/:id")},l.createElement(k7,null)))};function xc(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function xl(){var e=xc(["\n fragment FetchFeedsManagersPayload_ResultsFields on FeedsManager {\n __typename\n id\n name\n uri\n publicKey\n isConnectionActive\n createdAt\n disabledAt\n }\n query FetchFeedsManagers {\n feedsManagers {\n results {\n ...FetchFeedsManagersPayload_ResultsFields\n }\n }\n }\n"]);return xl=function(){return e},e}var xf=n0(xl()),xd=function(e){return rv(xf,e)},xh=n(47559),xp=n(83165),xb=n(47298),xm=n(81395),xg=function(){return(0,b.createStyles)({root:{display:"flex"},activeIcon:{color:xh.default[500]},inactiveIcon:{color:xp.default[500]},text:{marginLeft:4}})},xv=(0,b.withStyles)(xg)(function(e){var t=e.isActive,n=e.activeText,r=e.inactiveText,i=e.classes;return l.createElement("div",{className:i.root},t?l.createElement(xm.Z,{fontSize:"small",className:i.activeIcon}):l.createElement(xb.Z,{fontSize:"small",className:i.inactiveIcon}),l.createElement(x.default,{variant:"body1",inline:!0,className:i.text},t?n:r))}),xy=(0,b.withStyles)(iu)(function(e){var t=e.jobDistributor,n=e.classes;return l.createElement(ir.Z,{className:n.row,hover:!0},l.createElement(r7.default,{className:n.cell,component:"th",scope:"row"},l.createElement(ih,{className:n.link,href:"/job_distributors/".concat(t.id)},t.name)),l.createElement(r7.default,null,l.createElement(xv,{isActive:t.isConnectionActive,activeText:"Connected",inactiveText:"Disconnected"})),l.createElement(r7.default,null,l.createElement(xv,{isActive:!t.disabledAt,activeText:"Enabled",inactiveText:"Disabled"})),l.createElement(r7.default,null,_T(t.publicKey,{start:6,end:6}),l.createElement(_x,{data:t.publicKey})),l.createElement(r7.default,null,t.uri))}),xw=function(e){var t=e.jobDistributors;return l.createElement(ig,null,l.createElement(d.Z,{container:!0},l.createElement(d.Z,{item:!0,xs:9},l.createElement(iy,null,"Job Distributors")),l.createElement(d.Z,{item:!0,xs:3},l.createElement(d.Z,{container:!0,justify:"flex-end"},l.createElement(d.Z,{item:!0},l.createElement(aA.Z,{variant:"secondary",component:tz,href:"/job_distributors/new"},"New Job Distributor")))),l.createElement(d.Z,{item:!0,xs:12},l.createElement(r5.Z,null,l.createElement(r8.Z,null,l.createElement(ie.Z,null,l.createElement(ir.Z,null,l.createElement(r7.default,null,"Name"),l.createElement(r7.default,null,"Connection Status"),l.createElement(r7.default,null,"Status"),l.createElement(r7.default,null,"CSA Public Key"),l.createElement(r7.default,null,"RPC URL"))),l.createElement(r9.Z,null,0===t.length&&l.createElement(ir.Z,null,l.createElement(r7.default,{component:"th",scope:"row",colSpan:3},"Job Distributors have not been registered")),t.map(function(e){return l.createElement(xy,{key:e.id,jobDistributor:e})})))))))},x_=function(){var e,t=xd({fetchPolicy:"cache-and-network"}),n=t.data,r=t.loading,i=t.error;return r?l.createElement(iR,null):i?l.createElement(iD,{error:i}):l.createElement(xw,{jobDistributors:null!==(e=null==n?void 0:n.feedsManagers.results)&&void 0!==e?e:[]})},xE=bv().shape({name:p0().required("Required"),uri:p0().required("Required"),publicKey:p0().required("Required")}),xS=function(e){var t=e.initialValues,n=e.onSubmit;return l.createElement(hT,{initialValues:t,validationSchema:xE,onSubmit:n},function(e){var t=e.isSubmitting,n=e.submitForm;return l.createElement(hR,{"data-testid":"feeds-manager-form"},l.createElement(d.Z,{container:!0,spacing:16},l.createElement(d.Z,{item:!0,xs:12,md:6},l.createElement(hP,{component:hX,id:"name",name:"name",label:"Name",required:!0,fullWidth:!0,FormHelperTextProps:{"data-testid":"name-helper-text"}})),l.createElement(d.Z,{item:!0,xs:!1,md:6}),l.createElement(d.Z,{item:!0,xs:12,md:6},l.createElement(hP,{component:hX,id:"uri",name:"uri",label:"URI",required:!0,fullWidth:!0,helperText:"Provided by the Job Distributor operator",FormHelperTextProps:{"data-testid":"uri-helper-text"}})),l.createElement(d.Z,{item:!0,xs:12,md:6},l.createElement(hP,{component:hX,id:"publicKey",name:"publicKey",label:"Public Key",required:!0,fullWidth:!0,helperText:"Provided by the Job Distributor operator",FormHelperTextProps:{"data-testid":"publicKey-helper-text"}})),l.createElement(d.Z,{item:!0,xs:12},l.createElement(ok.default,{variant:"contained",color:"primary",disabled:t,onClick:n},"Submit"))))})},xk=function(e){var t=e.data,n=e.onSubmit,r={name:t.name,uri:t.uri,publicKey:t.publicKey};return l.createElement(d.Z,{container:!0},l.createElement(d.Z,{item:!0,xs:12,md:11,lg:9},l.createElement(r5.Z,null,l.createElement(sl.Z,{title:"Edit Job Distributor"}),l.createElement(aW.Z,null,l.createElement(xS,{initialValues:r,onSubmit:n})))))};function xx(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&void 0!==arguments[0]?arguments[0]:{};return rv(xZ,e)},xJ=function(){return(0,b.createStyles)({root:{fontSize:24}})},xQ=(0,b.withStyles)(xJ)(function(e){var t=e.children,n=e.classes;return l.createElement(x.default,{variant:"h2",className:n.root},t)}),x1=n(9290),x0=n(74923);function x2(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function TS(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}function Tk(e,t){return Tv(e)||Tw(e,t)||Tx(e,t)||T_()}function Tx(e,t){if(e){if("string"==typeof e)return Tg(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Tg(e,t)}}var TT=function(e){return"SN_MAIN"===e||"SN_SEPOLIA"===e},TM=bv().shape({chainID:p0().required("Required"),chainType:p0().required("Required"),accountAddr:p0().required("Required"),accountAddrPubKey:p0().nullable(),adminAddr:p0(),ocr1Multiaddr:p0().when(["ocr1Enabled","ocr1IsBootstrap"],{is:function(e,t){return e&&t},then:p0().required("Required").nullable()}).nullable(),ocr1P2PPeerID:p0().when(["ocr1Enabled","ocr1IsBootstrap"],{is:function(e,t){return e&&!t},then:p0().required("Required").nullable()}).nullable(),ocr1KeyBundleID:p0().when(["ocr1Enabled","ocr1IsBootstrap"],{is:function(e,t){return e&&!t},then:p0().required("Required").nullable()}).nullable(),ocr2Multiaddr:p0().when(["ocr2Enabled","ocr2IsBootstrap"],{is:function(e,t){return e&&t},then:p0().required("Required").nullable()}).nullable(),ocr2P2PPeerID:p0().when(["ocr2Enabled","ocr2IsBootstrap"],{is:function(e,t){return e&&!t},then:p0().required("Required").nullable()}).nullable(),ocr2KeyBundleID:p0().when(["ocr2Enabled","ocr2IsBootstrap"],{is:function(e,t){return e&&!t},then:p0().required("Required").nullable()}).nullable(),ocr2CommitPluginEnabled:pV().required("Required"),ocr2ExecutePluginEnabled:pV().required("Required"),ocr2MedianPluginEnabled:pV().required("Required"),ocr2MercuryPluginEnabled:pV().required("Required"),ocr2ForwarderAddress:p0().nullable()}),TO=function(e){return(0,b.createStyles)({supportedJobOptionsPaper:{padding:2*e.spacing.unit}})},TA=function(e){var t=e.addresses,n=TE(e,["addresses"]),r=h_(),i=r.values,a=i.chainID,o=i.accountAddr,s=r.setFieldValue,u=Tk(l.useState(!1),2),c=u[0],f=u[1],d=l.useRef();l.useEffect(function(){d.current=a},[a]),l.useEffect(function(){a!==d.current&&(s(n.name,""),f(!1))},[a,s,n.name]);var h=function(e){var t=e.target.value;"custom"===t?(f(!0),s(n.name,"")):(f(!1),s(n.name,t))};return l.createElement(l.Fragment,null,!TT(a)&&l.createElement(hP,Ty({},n,{select:!0,value:c?"custom":o,onChange:h}),t.map(function(e){return l.createElement(tE.default,{key:e,value:e},e)})),TT(a)&&l.createElement(hP,{component:hX,id:"accountAddr",name:"accountAddr",label:"Enter your account address",inputProps:{"data-testid":"customAccountAddr-input"},helperText:"The account address used for this chain",required:!0,fullWidth:!0}),TT(a)&&l.createElement("div",null,l.createElement(hP,{component:hX,id:"accountAddrPubKey",name:"accountAddrPubKey",label:"Account Address Public Key",required:!0,fullWidth:!0,helperText:"The public key for your account address",FormHelperTextProps:{"data-testid":"accountAddrPubKey-helper-text"}})))},TL=(0,b.withStyles)(TO)(function(e){var t=e.classes,n=e.editing,r=void 0!==n&&n,i=e.innerRef,a=e.initialValues,o=e.onSubmit,s=e.chains,u=void 0===s?[]:s,c=e.accountsEVM,f=void 0===c?[]:c,h=e.accountsAptos,p=void 0===h?[]:h,b=e.p2pKeys,m=void 0===b?[]:b,g=e.ocrKeys,v=void 0===g?[]:g,y=e.ocr2Keys,w=void 0===y?[]:y,_=e.showSubmit,E=void 0!==_&&_;return l.createElement(hT,{innerRef:i,initialValues:a,validationSchema:TM,onSubmit:o},function(e){var n=e.values,i=[];return n.chainType===Tm.EVM&&(i=f.filter(function(e){return e.chain.id==n.chainID&&!e.isDisabled}).map(function(e){return e.address})),n.chainType===Tm.APTOS&&(i=p.map(function(e){return e.account})),l.createElement(hR,{"data-testid":"feeds-manager-form",id:"chain-configuration-form",noValidate:!0},l.createElement(d.Z,{container:!0,spacing:16},l.createElement(d.Z,{item:!0,xs:12,md:6},l.createElement(hP,{component:hX,id:"chainType",name:"chainType",label:"Chain Type",select:!0,required:!0,fullWidth:!0,disabled:r},l.createElement(tE.default,{key:Tm.EVM,value:Tm.EVM},"EVM"),l.createElement(tE.default,{key:Tm.APTOS,value:Tm.APTOS},"APTOS"))),l.createElement(d.Z,{item:!0,xs:12,md:6},l.createElement(hP,{component:hX,id:"chainID",name:"chainID",label:"Chain ID",required:!0,fullWidth:!0,select:!0,disabled:r,inputProps:{"data-testid":"chainID-input"},FormHelperTextProps:{"data-testid":"chainID-helper-text"}},u.filter(function(e){return e.network.toUpperCase()===n.chainType}).map(function(e){return l.createElement(tE.default,{key:e.id,value:e.id},e.id)}))),l.createElement(d.Z,{item:!0,xs:12,md:6},l.createElement(TA,{component:hX,id:"accountAddr",name:"accountAddr",label:"Account Address",inputProps:{"data-testid":"accountAddr-input"},required:!0,fullWidth:!0,select:!0,helperText:"The account address used for this chain",addresses:i,FormHelperTextProps:{"data-testid":"accountAddr-helper-text"}})),l.createElement(d.Z,{item:!0,xs:12,md:6},l.createElement(hP,{component:hX,id:"adminAddr",name:"adminAddr",label:"Admin Address",fullWidth:!0,helperText:"The address used for LINK payments",FormHelperTextProps:{"data-testid":"adminAddr-helper-text"}})),l.createElement(d.Z,{item:!0,xs:12},l.createElement(x.default,null,"Supported Job Types")),l.createElement(d.Z,{item:!0,xs:12},l.createElement(hP,{component:h2,name:"fluxMonitorEnabled",type:"checkbox",Label:{label:"Flux Monitor"}})),l.createElement(d.Z,{item:!0,xs:12},l.createElement(hP,{component:h2,name:"ocr1Enabled",type:"checkbox",Label:{label:"OCR"}}),n.ocr1Enabled&&l.createElement(ii.default,{className:t.supportedJobOptionsPaper},l.createElement(d.Z,{container:!0,spacing:8},l.createElement(l.Fragment,null,l.createElement(d.Z,{item:!0,xs:12},l.createElement(hP,{component:h2,name:"ocr1IsBootstrap",type:"checkbox",Label:{label:"Is this node running as a bootstrap peer?"}})),n.ocr1IsBootstrap?l.createElement(d.Z,{item:!0,xs:12},l.createElement(hP,{component:hX,id:"ocr1Multiaddr",name:"ocr1Multiaddr",label:"Multiaddr",required:!0,fullWidth:!0,helperText:"The OCR Multiaddr which oracles use to query for network information",FormHelperTextProps:{"data-testid":"ocr1Multiaddr-helper-text"}})):l.createElement(l.Fragment,null,l.createElement(d.Z,{item:!0,xs:12,md:6},l.createElement(hP,{component:hX,id:"ocr1P2PPeerID",name:"ocr1P2PPeerID",label:"Peer ID",select:!0,required:!0,fullWidth:!0,helperText:"The Peer ID used for this chain",FormHelperTextProps:{"data-testid":"ocr1P2PPeerID-helper-text"}},m.map(function(e){return l.createElement(tE.default,{key:e.peerID,value:e.peerID},e.peerID)}))),l.createElement(d.Z,{item:!0,xs:12,md:6},l.createElement(hP,{component:hX,id:"ocr1KeyBundleID",name:"ocr1KeyBundleID",label:"Key Bundle ID",select:!0,required:!0,fullWidth:!0,helperText:"The OCR Key Bundle ID used for this chain",FormHelperTextProps:{"data-testid":"ocr1KeyBundleID-helper-text"}},v.map(function(e){return l.createElement(tE.default,{key:e.id,value:e.id},e.id)})))))))),l.createElement(d.Z,{item:!0,xs:12},l.createElement(hP,{component:h2,name:"ocr2Enabled",type:"checkbox",Label:{label:"OCR2"}}),n.ocr2Enabled&&l.createElement(ii.default,{className:t.supportedJobOptionsPaper},l.createElement(d.Z,{container:!0,spacing:8},l.createElement(l.Fragment,null,l.createElement(d.Z,{item:!0,xs:12},l.createElement(hP,{component:h2,name:"ocr2IsBootstrap",type:"checkbox",Label:{label:"Is this node running as a bootstrap peer?"}})),l.createElement(d.Z,{item:!0,xs:12,md:6},l.createElement(hP,{component:hX,id:"ocr2P2PPeerID",name:"ocr2P2PPeerID",label:"Peer ID",select:!0,required:!n.ocr2IsBootstrap,fullWidth:!0,helperText:"The Peer ID used for this chain",FormHelperTextProps:{"data-testid":"ocr2P2PPeerID-helper-text"}},m.map(function(e){return l.createElement(tE.default,{key:e.peerID,value:e.peerID},e.peerID)}))),n.ocr2IsBootstrap?l.createElement(d.Z,{item:!0,xs:12},l.createElement(hP,{component:hX,id:"ocr2Multiaddr",name:"ocr2Multiaddr",label:"Multiaddr",required:!0,fullWidth:!0,helperText:"The OCR2 Multiaddr which oracles use to query for network information",FormHelperTextProps:{"data-testid":"ocr2Multiaddr-helper-text"}})):l.createElement(l.Fragment,null,l.createElement(d.Z,{item:!0,xs:12,md:6},l.createElement(hP,{component:hX,id:"ocr2KeyBundleID",name:"ocr2KeyBundleID",label:"Key Bundle ID",select:!0,required:!0,fullWidth:!0,helperText:"The OCR2 Key Bundle ID used for this chain",FormHelperTextProps:{"data-testid":"ocr2KeyBundleID-helper-text"}},w.map(function(e){return l.createElement(tE.default,{key:e.id,value:e.id},e.id)}))),l.createElement(d.Z,{item:!0,xs:12},l.createElement(x.default,null,"Supported Plugins")),l.createElement(d.Z,{item:!0,xs:6},l.createElement(hP,{component:h2,name:"ocr2CommitPluginEnabled",type:"checkbox",Label:{label:"Commit"}})),l.createElement(d.Z,{item:!0,xs:6},l.createElement(hP,{component:h2,name:"ocr2ExecutePluginEnabled",type:"checkbox",Label:{label:"Execute"}})),l.createElement(d.Z,{item:!0,xs:6},l.createElement(hP,{component:h2,name:"ocr2RebalancerPluginEnabled",type:"checkbox",Label:{label:"Rebalancer"}})),l.createElement(d.Z,{item:!0,xs:6},l.createElement(hP,{component:h2,name:"ocr2MedianPluginEnabled",type:"checkbox",Label:{label:"Median"}})),l.createElement(d.Z,{item:!0,xs:6},l.createElement(hP,{component:h2,name:"ocr2MercuryPluginEnabled",type:"checkbox",Label:{label:"Mercury"}})),l.createElement(d.Z,{item:!0,xs:12,md:12},l.createElement(hP,{component:hX,id:"ocr2ForwarderAddress",name:"ocr2ForwarderAddress",label:"Forwarder Address (optional)",fullWidth:!0,helperText:"The forwarder address from the Operator Forwarder Contract",FormHelperTextProps:{"data-testid":"ocr2ForwarderAddress-helper-text"}}))))))),E&&l.createElement(d.Z,{item:!0,xs:12,md:7},l.createElement(ok.default,{variant:"contained",color:"primary",type:"submit",size:"large"},"Submit"))))})});function TC(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function TI(){var e=TC(["\n fragment AptosKeysPayload_ResultsFields on AptosKey {\n account\n id\n }\n"]);return TI=function(){return e},e}function TD(){var e=TC(["\n ","\n query FetchAptosKeys {\n aptosKeys {\n results {\n ...AptosKeysPayload_ResultsFields\n }\n }\n }\n"]);return TD=function(){return e},e}var TN=n0(TI()),TP=n0(TD(),TN),TR=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return rv(TP,e)},Tj=function(e){var t=e.onClose,n=e.open,r=e.onSubmit,i=l.useRef(),a=i$({fetchPolicy:"network-only"}).data,o=_K({fetchPolicy:"cache-and-network"}).data,s=TR({fetchPolicy:"cache-and-network"}).data,u=SV({fetchPolicy:"cache-and-network"}).data,c=EO({fetchPolicy:"cache-and-network"}).data,f=E2({fetchPolicy:"cache-and-network"}).data,d={chainID:"",chainType:Tm.EVM,accountAddr:"",adminAddr:"",accountAddrPubKey:"",fluxMonitorEnabled:!1,ocr1Enabled:!1,ocr1IsBootstrap:!1,ocr1Multiaddr:"",ocr1P2PPeerID:"",ocr1KeyBundleID:"",ocr2Enabled:!1,ocr2IsBootstrap:!1,ocr2Multiaddr:"",ocr2P2PPeerID:"",ocr2KeyBundleID:"",ocr2CommitPluginEnabled:!1,ocr2ExecutePluginEnabled:!1,ocr2MedianPluginEnabled:!1,ocr2MercuryPluginEnabled:!1,ocr2RebalancerPluginEnabled:!1,ocr2ForwarderAddress:""},h=a?a.chains.results:[],p=o?o.ethKeys.results:[],b=s?s.aptosKeys.results:[],m=u?u.p2pKeys.results:[],g=c?c.ocrKeyBundles.results:[],v=f?f.ocr2KeyBundles.results:[];return l.createElement(aD.Z,{onClose:t,open:n,disableBackdropClick:!0},l.createElement(oO.Z,{disableTypography:!0},l.createElement(x.default,{variant:"body2"},"New Supported Chain")),l.createElement(oT.Z,null,l.createElement(TL,{innerRef:i,initialValues:d,onSubmit:r,chains:h,accountsEVM:p,accountsAptos:b,p2pKeys:m,ocrKeys:g,ocr2Keys:v})),l.createElement(ox.Z,null,l.createElement(ok.default,{onClick:t},"Cancel"),l.createElement(ok.default,{color:"primary",type:"submit",form:"chain-configuration-form",variant:"contained"},"Submit")))},TF=function(e){var t=e.cfg,n=e.onClose,r=e.open,i=e.onSubmit,a=l.useRef(),o=i$({fetchPolicy:"network-only"}).data,s=_K({fetchPolicy:"cache-and-network"}).data,u=TR({fetchPolicy:"cache-and-network"}).data,c=SV({fetchPolicy:"cache-and-network"}).data,f=EO({fetchPolicy:"cache-and-network"}).data,d=E2({fetchPolicy:"cache-and-network"}).data;if(!t)return null;var h={chainID:t.chainID,chainType:Tm.EVM,accountAddr:t.accountAddr,adminAddr:t.adminAddr,accountAddrPubKey:t.accountAddrPubKey,fluxMonitorEnabled:t.fluxMonitorJobConfig.enabled,ocr1Enabled:t.ocr1JobConfig.enabled,ocr1IsBootstrap:t.ocr1JobConfig.isBootstrap,ocr1Multiaddr:t.ocr1JobConfig.multiaddr,ocr1P2PPeerID:t.ocr1JobConfig.p2pPeerID,ocr1KeyBundleID:t.ocr1JobConfig.keyBundleID,ocr2Enabled:t.ocr2JobConfig.enabled,ocr2IsBootstrap:t.ocr2JobConfig.isBootstrap,ocr2Multiaddr:t.ocr2JobConfig.multiaddr,ocr2P2PPeerID:t.ocr2JobConfig.p2pPeerID,ocr2KeyBundleID:t.ocr2JobConfig.keyBundleID,ocr2CommitPluginEnabled:t.ocr2JobConfig.plugins.commit,ocr2ExecutePluginEnabled:t.ocr2JobConfig.plugins.execute,ocr2MedianPluginEnabled:t.ocr2JobConfig.plugins.median,ocr2MercuryPluginEnabled:t.ocr2JobConfig.plugins.mercury,ocr2RebalancerPluginEnabled:t.ocr2JobConfig.plugins.rebalancer,ocr2ForwarderAddress:t.ocr2JobConfig.forwarderAddress},p=o?o.chains.results:[],b=s?s.ethKeys.results:[],m=u?u.aptosKeys.results:[],g=c?c.p2pKeys.results:[],v=f?f.ocrKeyBundles.results:[],y=d?d.ocr2KeyBundles.results:[];return l.createElement(aD.Z,{onClose:n,open:r,disableBackdropClick:!0},l.createElement(oO.Z,{disableTypography:!0},l.createElement(x.default,{variant:"body2"},"Edit Supported Chain")),l.createElement(oT.Z,null,l.createElement(TL,{innerRef:a,initialValues:h,onSubmit:i,chains:p,accountsEVM:b,accountsAptos:m,p2pKeys:g,ocrKeys:v,ocr2Keys:y,editing:!0})),l.createElement(ox.Z,null,l.createElement(ok.default,{onClick:n},"Cancel"),l.createElement(ok.default,{color:"primary",type:"submit",form:"chain-configuration-form",variant:"contained"},"Submit")))};function TY(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);nt.version?e:t})},[o]),g=l.useMemo(function(){return MV(o).sort(function(e,t){return t.version-e.version})},[o]),v=function(e,t,n){switch(e){case"PENDING":return l.createElement(l.Fragment,null,l.createElement(ok.default,{variant:"text",color:"secondary",onClick:function(){return b("reject",t)}},"Reject"),m.id===t&&"DELETED"!==n.status&&"REVOKED"!==n.status&&l.createElement(ok.default,{variant:"contained",color:"primary",onClick:function(){return b("approve",t)}},"Approve"),m.id===t&&"DELETED"===n.status&&n.pendingUpdate&&l.createElement(l.Fragment,null,l.createElement(ok.default,{variant:"contained",color:"primary",onClick:function(){return b("cancel",t)}},"Cancel"),l.createElement(x.default,{color:"error"},"This proposal was deleted. Cancel the spec to delete any running jobs")));case"APPROVED":return l.createElement(l.Fragment,null,l.createElement(ok.default,{variant:"contained",onClick:function(){return b("cancel",t)}},"Cancel"),"DELETED"===n.status&&n.pendingUpdate&&l.createElement(x.default,{color:"error"},"This proposal was deleted. Cancel the spec to delete any running jobs"));case"CANCELLED":if(m.id===t&&"DELETED"!==n.status&&"REVOKED"!==n.status)return l.createElement(ok.default,{variant:"contained",color:"primary",onClick:function(){return b("approve",t)}},"Approve");return null;default:return null}};return l.createElement("div",null,g.map(function(e,n){return l.createElement(mP.Z,{defaultExpanded:0===n,key:n},l.createElement(mR.Z,{expandIcon:l.createElement(gh.Z,null)},l.createElement(x.default,{className:t.versionText},"Version ",e.version),l.createElement(Es.Z,{label:e.status,color:"APPROVED"===e.status?"primary":"default",variant:"REJECTED"===e.status||"CANCELLED"===e.status?"outlined":"default"}),l.createElement("div",{className:t.proposedAtContainer},l.createElement(x.default,null,"Proposed ",l.createElement(aO,{tooltip:!0},e.createdAt)))),l.createElement(mj.Z,{className:t.expansionPanelDetails},l.createElement("div",{className:t.actions},l.createElement("div",{className:t.editContainer},0===n&&("PENDING"===e.status||"CANCELLED"===e.status)&&"DELETED"!==s.status&&"REVOKED"!==s.status&&l.createElement(ok.default,{variant:"contained",onClick:function(){return p(!0)}},"Edit")),l.createElement("div",{className:t.actionsContainer},v(e.status,e.id,s))),l.createElement(gd,{language:"toml",style:gs,"data-testid":"codeblock"},e.definition)))}),l.createElement(oC,{open:null!=c,title:c?MQ[c.action].title:"",body:c?MQ[c.action].body:"",onConfirm:function(){if(c){switch(c.action){case"approve":n(c.id);break;case"cancel":r(c.id);break;case"reject":i(c.id)}f(null)}},cancelButtonText:"Cancel",onCancel:function(){return f(null)}}),l.createElement(MF,{open:h,onClose:function(){return p(!1)},initialValues:{definition:m.definition,id:m.id},onSubmit:a}))});function M0(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function M2(){var e=M0(["\n ","\n fragment JobProposalPayloadFields on JobProposal {\n id\n externalJobID\n remoteUUID\n jobID\n specs {\n ...JobProposal_SpecsFields\n }\n status\n pendingUpdate\n }\n"]);return M2=function(){return e},e}var M3=n0(M2(),MX),M4=function(e){var t=e.onApprove,n=e.onCancel,r=e.onReject,i=e.onUpdateSpec,a=e.proposal;return l.createElement(ig,null,l.createElement(d.Z,{container:!0,spacing:32},l.createElement(d.Z,{item:!0,xs:9},l.createElement(iy,null,"Job Proposal #",a.id))),l.createElement(MI,{proposal:a}),l.createElement(d.Z,{container:!0,spacing:32},l.createElement(d.Z,{item:!0,xs:9},l.createElement(xQ,null,"Specs"))),l.createElement(d.Z,{container:!0,spacing:32},l.createElement(d.Z,{item:!0,xs:12},l.createElement(M1,{proposal:a,specs:a.specs,onReject:r,onApprove:t,onCancel:n,onUpdateSpec:i}))))};function M6(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);nU,tA:()=>$,KL:()=>H,Iw:()=>V,DQ:()=>W,cB:()=>T,LO:()=>M,t5:()=>k,qt:()=>x,Jc:()=>C,L7:()=>Y,EO:()=>B});var r,i,a=n(66289),o=n(41800),s=n.n(o),u=n(67932);(i=r||(r={})).IN_PROGRESS="in_progress",i.PENDING_INCOMING_CONFIRMATIONS="pending_incoming_confirmations",i.PENDING_CONNECTION="pending_connection",i.PENDING_BRIDGE="pending_bridge",i.PENDING_SLEEP="pending_sleep",i.ERRORED="errored",i.COMPLETED="completed";var c=n(87013),l=n(19084),f=n(34823);function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]j,v2:()=>F});var r=n(66289);function i(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var a="/sessions",o="/sessions",s=function e(t){var n=this;i(this,e),this.api=t,this.createSession=function(e){return n.create(e)},this.destroySession=function(){return n.destroy()},this.create=this.api.createResource(a),this.destroy=this.api.deleteResource(o)};function u(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var c="/v2/bulk_delete_runs",l=function e(t){var n=this;u(this,e),this.api=t,this.bulkDeleteJobRuns=function(e){return n.destroy(e)},this.destroy=this.api.deleteResource(c)};function f(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var d="/v2/chains/evm",h="".concat(d,"/:id"),p=function e(t){var n=this;f(this,e),this.api=t,this.getChains=function(){return n.index()},this.createChain=function(e){return n.create(e)},this.destroyChain=function(e){return n.destroy(void 0,{id:e})},this.updateChain=function(e,t){return n.update(t,{id:e})},this.index=this.api.fetchResource(d),this.create=this.api.createResource(d),this.destroy=this.api.deleteResource(h),this.update=this.api.updateResource(h)};function b(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var m="/v2/keys/evm/chain",g=function e(t){var n=this;b(this,e),this.api=t,this.chain=function(e){var t=new URLSearchParams;t.append("address",e.address),t.append("evmChainID",e.evmChainID),null!==e.abandon&&t.append("abandon",String(e.abandon)),null!==e.enabled&&t.append("enabled",String(e.enabled));var r=m+"?"+t.toString();return n.api.createResource(r)()}};function v(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var y="/v2/jobs",w="".concat(y,"/:specId/runs"),_=function e(t){var n=this;v(this,e),this.api=t,this.createJobRunV2=function(e,t){return n.post(t,{specId:e})},this.post=this.api.createResource(w,!0)};function E(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var S="/v2/log",k=function e(t){var n=this;E(this,e),this.api=t,this.getLogConfig=function(){return n.show()},this.updateLogConfig=function(e){return n.update(e)},this.show=this.api.fetchResource(S),this.update=this.api.updateResource(S)};function x(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var T="/v2/nodes",M=function e(t){var n=this;x(this,e),this.api=t,this.getNodes=function(){return n.index()},this.createNode=function(e){return n.create(e)},this.index=this.api.fetchResource(T),this.create=this.api.createResource(T)};function O(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var A="/v2/enroll_webauthn",L=function e(t){var n=this;O(this,e),this.api=t,this.beginKeyRegistration=function(e){return n.create(e)},this.finishKeyRegistration=function(e){return n.put(e)},this.create=this.api.fetchResource(A),this.put=this.api.createResource(A)};function C(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var I="/v2/build_info",D=function e(t){var n=this;C(this,e),this.api=t,this.show=function(){return n.api.GET(I)()}};function N(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var P=function e(t){N(this,e),this.api=t,this.buildInfo=new D(this.api),this.bulkDeleteRuns=new l(this.api),this.chains=new p(this.api),this.logConfig=new k(this.api),this.nodes=new M(this.api),this.jobs=new _(this.api),this.webauthn=new L(this.api),this.evmKeys=new g(this.api)},R=new r.V0({base:void 0}),j=new s(R),F=new P(R)},1398(e,t,n){"use strict";n.d(t,{Z:()=>d});var r=n(67294),i=n(32316),a=n(83638),o=n(94184),s=n.n(o);function u(){return(u=Object.assign||function(e){for(var t=1;tc});var r=n(67294),i=n(32316);function a(){return(a=Object.assign||function(e){for(var t=1;tx,jK:()=>v});var r=n(67294),i=n(37703),a=n(45697),o=n.n(a),s=n(82204),u=n(71426),c=n(94184),l=n.n(c),f=n(32316),d=function(e){var t=e.palette.success||{},n=e.palette.warning||{};return{base:{paddingLeft:5*e.spacing.unit,paddingRight:5*e.spacing.unit},success:{backgroundColor:t.main,color:t.contrastText},error:{backgroundColor:e.palette.error.dark,color:e.palette.error.contrastText},warning:{backgroundColor:n.contrastText,color:n.main}}},h=function(e){var t,n=e.success,r=e.error,i=e.warning,a=e.classes,o=e.className;return n?t=a.success:r?t=a.error:i&&(t=a.warning),l()(a.base,o,t)},p=function(e){return r.createElement(s.Z,{className:h(e),square:!0},r.createElement(u.default,{variant:"body2",color:"inherit",component:"div"},e.children))};p.defaultProps={success:!1,error:!1,warning:!1},p.propTypes={success:o().bool,error:o().bool,warning:o().bool};let b=(0,f.withStyles)(d)(p);var m=function(){return r.createElement(r.Fragment,null,"Unhandled error. Please help us by opening a"," ",r.createElement("a",{href:"https://github.com/smartcontractkit/chainlink/issues/new"},"bug report"))};let g=m;function v(e){return"string"==typeof e?e:e.component?e.component(e.props):r.createElement(g,null)}function y(e,t){var n;return n="string"==typeof e?e:e.component?e.component(e.props):r.createElement(g,null),r.createElement("p",{key:t},n)}var w=function(e){var t=e.notifications;return r.createElement(b,{error:!0},t.map(y))},_=function(e){var t=e.notifications;return r.createElement(b,{success:!0},t.map(y))},E=function(e){var t=e.errors,n=e.successes;return r.createElement("div",null,(null==t?void 0:t.length)>0&&r.createElement(w,{notifications:t}),n.length>0&&r.createElement(_,{notifications:n}))},S=function(e){return{errors:e.notifications.errors,successes:e.notifications.successes}},k=(0,i.$j)(S)(E);let x=k},9409(e,t,n){"use strict";n.d(t,{ZP:()=>j});var r=n(67294),i=n(37703),a=n(5977),o=n(32316),s=n(1398),u=n(82204),c=n(30060),l=n(71426),f=n(60520),d=n(39814),h=n(57209),p=n(26842),b=n(3950),m=n(5536),g=n(45697),v=n.n(g);let y=n.p+"9f6d832ef97e8493764e.svg";function w(){return(w=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&_.map(function(e,t){return r.createElement(d.Z,{item:!0,xs:12,key:t},r.createElement(u.Z,{raised:!1,className:v.error},r.createElement(c.Z,null,r.createElement(l.default,{variant:"body1",className:v.errorText},(0,b.jK)(e)))))}),r.createElement(d.Z,{item:!0,xs:12},r.createElement(f.Z,{id:"email",label:"Email",margin:"normal",value:n,onChange:m("email"),error:_.length>0,variant:"outlined",fullWidth:!0})),r.createElement(d.Z,{item:!0,xs:12},r.createElement(f.Z,{id:"password",label:"Password",type:"password",autoComplete:"password",margin:"normal",value:h,onChange:m("password"),error:_.length>0,variant:"outlined",fullWidth:!0})),r.createElement(d.Z,{item:!0,xs:12},r.createElement(d.Z,{container:!0,spacing:0,justify:"center"},r.createElement(d.Z,{item:!0},r.createElement(s.Z,{type:"submit",variant:"primary"},"Access Account")))),y&&r.createElement(l.default,{variant:"body1",color:"textSecondary"},"Signing in...")))))))},P=function(e){return{fetching:e.authentication.fetching,authenticated:e.authentication.allowed,errors:e.notifications.errors}},R=(0,i.$j)(P,x({submitSignIn:p.L7}))(N);let j=(0,h.wU)(e)((0,o.withStyles)(D)(R))},16353(e,t,n){"use strict";n.d(t,{ZP:()=>H,rH:()=>U});var r,i=n(37703),a=n(97779),o=n(9541),s=n(19084);function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:h,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s.Mk.RECEIVE_SIGNOUT_SUCCESS:case s.Mk.RECEIVE_SIGNIN_SUCCESS:var n={allowed:t.authenticated};return o.Ks(n),f(c({},e,n),{errors:[]});case s.Mk.RECEIVE_SIGNIN_FAIL:var r={allowed:!1};return o.Ks(r),f(c({},e,r),{errors:[]});case s.Mk.RECEIVE_SIGNIN_ERROR:case s.Mk.RECEIVE_SIGNOUT_ERROR:var i={allowed:!1};return o.Ks(i),f(c({},e,i),{errors:t.errors||[]});default:return e}};let b=p;function m(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function g(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:_,t=arguments.length>1?arguments[1]:void 0;return t.type?t.type.startsWith(r.REQUEST)?y(g({},e),{count:e.count+1}):t.type.startsWith(r.RECEIVE)?y(g({},e),{count:Math.max(e.count-1,0)}):t.type.startsWith(r.RESPONSE)?y(g({},e),{count:Math.max(e.count-1,0)}):t.type===s.di.REDIRECT?y(g({},e),{count:0}):e:e};let S=E;function k(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function x(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:O,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s.di.MATCH_ROUTE:return M(x({},O),{currentUrl:t.pathname});case s.Ih.NOTIFY_SUCCESS:var n={component:t.component,props:t.props};return M(x({},e),{successes:[n],errors:[]});case s.Ih.NOTIFY_SUCCESS_MSG:return M(x({},e),{successes:[t.msg],errors:[]});case s.Ih.NOTIFY_ERROR:var r=t.error.errors,i=null==r?void 0:r.map(function(e){return L(t,e)});return M(x({},e),{successes:[],errors:i});case s.Ih.NOTIFY_ERROR_MSG:return M(x({},e),{successes:[],errors:[t.msg]});case s.Mk.RECEIVE_SIGNIN_FAIL:return M(x({},e),{successes:[],errors:["Your email or password is incorrect. Please try again"]});default:return e}};function L(e,t){return{component:e.component,props:{msg:t.detail}}}let C=A;function I(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function D(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:R,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s.di.REDIRECT:return P(D({},e),{to:t.to});case s.di.MATCH_ROUTE:return P(D({},e),{to:void 0});default:return e}};let F=j;var Y=n(87013),B=(0,a.UY)({authentication:b,fetching:S,notifications:C,redirect:F,buildInfo:Y.Z});B(void 0,{type:"INITIAL_STATE"});var U=i.v9;let H=B},19084(e,t,n){"use strict";var r,i,a,o,s,u,c,l,f,d;n.d(t,{Ih:()=>i,Mk:()=>a,Y0:()=>s,di:()=>r,jp:()=>o}),n(67294),(u=r||(r={})).REDIRECT="REDIRECT",u.MATCH_ROUTE="MATCH_ROUTE",(c=i||(i={})).NOTIFY_SUCCESS="NOTIFY_SUCCESS",c.NOTIFY_SUCCESS_MSG="NOTIFY_SUCCESS_MSG",c.NOTIFY_ERROR="NOTIFY_ERROR",c.NOTIFY_ERROR_MSG="NOTIFY_ERROR_MSG",(l=a||(a={})).REQUEST_SIGNIN="REQUEST_SIGNIN",l.RECEIVE_SIGNIN_SUCCESS="RECEIVE_SIGNIN_SUCCESS",l.RECEIVE_SIGNIN_FAIL="RECEIVE_SIGNIN_FAIL",l.RECEIVE_SIGNIN_ERROR="RECEIVE_SIGNIN_ERROR",l.RECEIVE_SIGNOUT_SUCCESS="RECEIVE_SIGNOUT_SUCCESS",l.RECEIVE_SIGNOUT_ERROR="RECEIVE_SIGNOUT_ERROR",(f=o||(o={})).RECEIVE_CREATE_ERROR="RECEIVE_CREATE_ERROR",f.RECEIVE_CREATE_SUCCESS="RECEIVE_CREATE_SUCCESS",f.RECEIVE_DELETE_ERROR="RECEIVE_DELETE_ERROR",f.RECEIVE_DELETE_SUCCESS="RECEIVE_DELETE_SUCCESS",f.RECEIVE_UPDATE_ERROR="RECEIVE_UPDATE_ERROR",f.RECEIVE_UPDATE_SUCCESS="RECEIVE_UPDATE_SUCCESS",f.REQUEST_CREATE="REQUEST_CREATE",f.REQUEST_DELETE="REQUEST_DELETE",f.REQUEST_UPDATE="REQUEST_UPDATE",f.UPSERT_CONFIGURATION="UPSERT_CONFIGURATION",f.UPSERT_JOB_RUN="UPSERT_JOB_RUN",f.UPSERT_JOB_RUNS="UPSERT_JOB_RUNS",f.UPSERT_TRANSACTION="UPSERT_TRANSACTION",f.UPSERT_TRANSACTIONS="UPSERT_TRANSACTIONS",f.UPSERT_BUILD_INFO="UPSERT_BUILD_INFO",(d=s||(s={})).FETCH_BUILD_INFO_REQUESTED="FETCH_BUILD_INFO_REQUESTED",d.FETCH_BUILD_INFO_SUCCEEDED="FETCH_BUILD_INFO_SUCCEEDED",d.FETCH_BUILD_INFO_FAILED="FETCH_BUILD_INFO_FAILED"},87013(e,t,n){"use strict";n.d(t,{Y:()=>o,Z:()=>u});var r=n(19084);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:o,t=arguments.length>1?arguments[1]:void 0;return t.type===r.Y0.FETCH_BUILD_INFO_SUCCEEDED?a({},t.buildInfo):e};let u=s},34823(e,t,n){"use strict";n.d(t,{N:()=>r});var r=function(e){return e.buildInfo}},73343(e,t,n){"use strict";n.d(t,{r:()=>u});var r=n(19350),i=n(32316),a=n(59114),o=n(5324),s={props:{MuiGrid:{spacing:3*o.default.unit},MuiCardHeader:{titleTypographyProps:{color:"secondary"}}},palette:{action:{hoverOpacity:.3},primary:{light:"#E5F1FF",main:"#3c40c6",contrastText:"#fff"},secondary:{main:"#3d5170"},success:{light:"#e8faf1",main:r.ek.A700,dark:r.ek[700],contrastText:r.y0.white},warning:{light:"#FFFBF1",main:"#fff6b6",contrastText:"#fad27a"},error:{light:"#ffdada",main:"#f44336",dark:"#d32f2f",contrastText:"#fff"},background:{default:"#f5f6f8",appBar:"#3c40c6"},text:{primary:(0,a.darken)(r.BA.A700,.7),secondary:"#818ea3"},listPendingStatus:{background:"#fef7e5",color:"#fecb4c"},listCompletedStatus:{background:"#e9faf2",color:"#4ed495"}},shape:{borderRadius:o.default.unit},overrides:{MuiButton:{root:{borderRadius:o.default.unit/2,textTransform:"none"},sizeLarge:{padding:void 0,fontSize:void 0,paddingTop:o.default.unit,paddingBottom:o.default.unit,paddingLeft:5*o.default.unit,paddingRight:5*o.default.unit}},MuiTableCell:{body:{fontSize:"1rem"},head:{fontSize:"1rem",fontWeight:400}},MuiCardHeader:{root:{borderBottom:"1px solid rgba(0, 0, 0, 0.12)"},action:{marginTop:-2,marginRight:0,"& >*":{marginLeft:2*o.default.unit}},subheader:{marginTop:.5*o.default.unit}}},typography:{useNextVariants:!0,fontFamily:"-apple-system,BlinkMacSystemFont,Roboto,Helvetica,Arial,sans-serif",button:{textTransform:"none",fontSize:"1.2em"},body1:{fontSize:"1.0rem",fontWeight:400,lineHeight:"1.46429em",color:"rgba(0, 0, 0, 0.87)",letterSpacing:-.4},body2:{fontSize:"1.0rem",fontWeight:500,lineHeight:"1.71429em",color:"rgba(0, 0, 0, 0.87)",letterSpacing:-.4},body1Next:{color:"rgb(29, 29, 29)",fontWeight:400,fontSize:"1rem",lineHeight:1.5,letterSpacing:-.4},body2Next:{color:"rgb(29, 29, 29)",fontWeight:400,fontSize:"0.875rem",lineHeight:1.5,letterSpacing:-.4},display1:{color:"#818ea3",fontSize:"2.125rem",fontWeight:400,lineHeight:"1.20588em",letterSpacing:-.4},display2:{color:"#818ea3",fontSize:"2.8125rem",fontWeight:400,lineHeight:"1.13333em",marginLeft:"-.02em",letterSpacing:-.4},display3:{color:"#818ea3",fontSize:"3.5rem",fontWeight:400,lineHeight:"1.30357em",marginLeft:"-.02em",letterSpacing:-.4},display4:{fontSize:14,fontWeightLight:300,fontWeightMedium:500,fontWeightRegular:400,letterSpacing:-.4},h1:{color:"rgb(29, 29, 29)",fontSize:"6rem",fontWeight:300,lineHeight:1},h2:{color:"rgb(29, 29, 29)",fontSize:"3.75rem",fontWeight:300,lineHeight:1},h3:{color:"rgb(29, 29, 29)",fontSize:"3rem",fontWeight:400,lineHeight:1.04},h4:{color:"rgb(29, 29, 29)",fontSize:"2.125rem",fontWeight:400,lineHeight:1.17},h5:{color:"rgb(29, 29, 29)",fontSize:"1.5rem",fontWeight:400,lineHeight:1.33,letterSpacing:-.4},h6:{fontSize:"0.8rem",fontWeight:450,lineHeight:"1.71429em",color:"rgba(0, 0, 0, 0.87)",letterSpacing:-.4},subheading:{color:"rgb(29, 29, 29)",fontSize:"1rem",fontWeight:400,lineHeight:"1.5em",letterSpacing:-.4},subtitle1:{color:"rgb(29, 29, 29)",fontSize:"1rem",fontWeight:400,lineHeight:1.75,letterSpacing:-.4},subtitle2:{color:"rgb(29, 29, 29)",fontSize:"0.875rem",fontWeight:500,lineHeight:1.57,letterSpacing:-.4}},shadows:["none","0px 1px 3px 0px rgba(0, 0, 0, 0.1),0px 1px 1px 0px rgba(0, 0, 0, 0.04),0px 2px 1px -1px rgba(0, 0, 0, 0.02)","0px 1px 5px 0px rgba(0, 0, 0, 0.1),0px 2px 2px 0px rgba(0, 0, 0, 0.04),0px 3px 1px -2px rgba(0, 0, 0, 0.02)","0px 1px 8px 0px rgba(0, 0, 0, 0.1),0px 3px 4px 0px rgba(0, 0, 0, 0.04),0px 3px 3px -2px rgba(0, 0, 0, 0.02)","0px 2px 4px -1px rgba(0, 0, 0, 0.1),0px 4px 5px 0px rgba(0, 0, 0, 0.04),0px 1px 10px 0px rgba(0, 0, 0, 0.02)","0px 3px 5px -1px rgba(0, 0, 0, 0.1),0px 5px 8px 0px rgba(0, 0, 0, 0.04),0px 1px 14px 0px rgba(0, 0, 0, 0.02)","0px 3px 5px -1px rgba(0, 0, 0, 0.1),0px 6px 10px 0px rgba(0, 0, 0, 0.04),0px 1px 18px 0px rgba(0, 0, 0, 0.02)","0px 4px 5px -2px rgba(0, 0, 0, 0.1),0px 7px 10px 1px rgba(0, 0, 0, 0.04),0px 2px 16px 1px rgba(0, 0, 0, 0.02)","0px 5px 5px -3px rgba(0, 0, 0, 0.1),0px 8px 10px 1px rgba(0, 0, 0, 0.04),0px 3px 14px 2px rgba(0, 0, 0, 0.02)","0px 5px 6px -3px rgba(0, 0, 0, 0.1),0px 9px 12px 1px rgba(0, 0, 0, 0.04),0px 3px 16px 2px rgba(0, 0, 0, 0.02)","0px 6px 6px -3px rgba(0, 0, 0, 0.1),0px 10px 14px 1px rgba(0, 0, 0, 0.04),0px 4px 18px 3px rgba(0, 0, 0, 0.02)","0px 6px 7px -4px rgba(0, 0, 0, 0.1),0px 11px 15px 1px rgba(0, 0, 0, 0.04),0px 4px 20px 3px rgba(0, 0, 0, 0.02)","0px 7px 8px -4px rgba(0, 0, 0, 0.1),0px 12px 17px 2px rgba(0, 0, 0, 0.04),0px 5px 22px 4px rgba(0, 0, 0, 0.02)","0px 7px 8px -4px rgba(0, 0, 0, 0.1),0px 13px 19px 2px rgba(0, 0, 0, 0.04),0px 5px 24px 4px rgba(0, 0, 0, 0.02)","0px 7px 9px -4px rgba(0, 0, 0, 0.1),0px 14px 21px 2px rgba(0, 0, 0, 0.04),0px 5px 26px 4px rgba(0, 0, 0, 0.02)","0px 8px 9px -5px rgba(0, 0, 0, 0.1),0px 15px 22px 2px rgba(0, 0, 0, 0.04),0px 6px 28px 5px rgba(0, 0, 0, 0.02)","0px 8px 10px -5px rgba(0, 0, 0, 0.1),0px 16px 24px 2px rgba(0, 0, 0, 0.04),0px 6px 30px 5px rgba(0, 0, 0, 0.02)","0px 8px 11px -5px rgba(0, 0, 0, 0.1),0px 17px 26px 2px rgba(0, 0, 0, 0.04),0px 6px 32px 5px rgba(0, 0, 0, 0.02)","0px 9px 11px -5px rgba(0, 0, 0, 0.1),0px 18px 28px 2px rgba(0, 0, 0, 0.04),0px 7px 34px 6px rgba(0, 0, 0, 0.02)","0px 9px 12px -6px rgba(0, 0, 0, 0.1),0px 19px 29px 2px rgba(0, 0, 0, 0.04),0px 7px 36px 6px rgba(0, 0, 0, 0.02)","0px 10px 13px -6px rgba(0, 0, 0, 0.1),0px 20px 31px 3px rgba(0, 0, 0, 0.04),0px 8px 38px 7px rgba(0, 0, 0, 0.02)","0px 10px 13px -6px rgba(0, 0, 0, 0.1),0px 21px 33px 3px rgba(0, 0, 0, 0.04),0px 8px 40px 7px rgba(0, 0, 0, 0.02)","0px 10px 14px -6px rgba(0, 0, 0, 0.1),0px 22px 35px 3px rgba(0, 0, 0, 0.04),0px 8px 42px 7px rgba(0, 0, 0, 0.02)","0px 11px 14px -7px rgba(0, 0, 0, 0.1),0px 23px 36px 3px rgba(0, 0, 0, 0.04),0px 9px 44px 8px rgba(0, 0, 0, 0.02)","0px 11px 15px -7px rgba(0, 0, 0, 0.1),0px 24px 38px 3px rgba(0, 0, 0, 0.04),0px 9px 46px 8px rgba(0, 0, 0, 0.02)",]},u=(0,i.createMuiTheme)(s)},66289(e,t,n){"use strict";function r(e){if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function i(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}function a(){if("undefined"==typeof Reflect||!Reflect.construct||Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(e){return!1}}function o(e,t,n){return(o=a()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&f(i,n.prototype),i}).apply(null,arguments)}function s(e){return(s=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function u(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&f(e,t)}function c(e){return -1!==Function.toString.call(e).indexOf("[native code]")}function l(e,t){return t&&("object"===p(t)||"function"==typeof t)?t:r(e)}function f(e,t){return(f=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}n.d(t,{V0:()=>B,_7:()=>v});var d,h,p=function(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e};function b(e){var t="function"==typeof Map?new Map:void 0;return(b=function(e){if(null===e||!c(e))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return o(e,arguments,s(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),f(n,e)})(e)}function m(){if("undefined"==typeof Reflect||!Reflect.construct||Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}function g(e){var t=m();return function(){var n,r=s(e);if(t){var i=s(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return l(this,n)}}var v=function(e){u(n,e);var t=g(n);function n(e){var r;return i(this,n),(r=t.call(this,"AuthenticationError(".concat(e.statusText,")"))).errors=[{status:e.status,detail:e},],r}return n}(b(Error)),y=function(e){u(n,e);var t=g(n);function n(e){var r,a=e.errors;return i(this,n),(r=t.call(this,"BadRequestError")).errors=a,r}return n}(b(Error)),w=function(e){u(n,e);var t=g(n);function n(e){var r;return i(this,n),(r=t.call(this,"UnprocessableEntityError")).errors=e,r}return n}(b(Error)),_=function(e){u(n,e);var t=g(n);function n(e){var r;return i(this,n),(r=t.call(this,"ServerError")).errors=e,r}return n}(b(Error)),E=function(e){u(n,e);var t=g(n);function n(e){var r,a=e.errors;return i(this,n),(r=t.call(this,"ConflictError")).errors=a,r}return n}(b(Error)),S=function(e){u(n,e);var t=g(n);function n(e){var r;return i(this,n),(r=t.call(this,"UnknownResponseError(".concat(e.statusText,")"))).errors=[{status:e.status,detail:e.statusText},],r}return n}(b(Error));function k(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:2e4;return Promise.race([fetch(e,t),new Promise(function(e,t){return setTimeout(function(){return t(Error("timeout"))},n)}),])}function x(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]=200&&e.status<300))return[3,2];return[2,e.json()];case 2:if(400!==e.status)return[3,3];return[2,e.json().then(function(e){throw new y(e)})];case 3:if(401!==e.status)return[3,4];throw new v(e);case 4:if(422!==e.status)return[3,6];return[4,$(e)];case 5:throw n=i.sent(),new w(n);case 6:if(409!==e.status)return[3,7];return[2,e.json().then(function(e){throw new E(e)})];case 7:if(!(e.status>=500))return[3,9];return[4,$(e)];case 8:throw r=i.sent(),new _(r);case 9:throw new S(e);case 10:return[2]}})})).apply(this,arguments)}function $(e){return z.apply(this,arguments)}function z(){return(z=j(function(e){return Y(this,function(t){return[2,e.json().then(function(t){return t.errors?t.errors.map(function(t){return{status:e.status,detail:t.detail}}):G(e)}).catch(function(){return G(e)})]})})).apply(this,arguments)}function G(e){return[{status:e.status,detail:e.statusText},]}},50109(e,t,n){"use strict";n.d(t,{LK:()=>o,U2:()=>i,eT:()=>s,t8:()=>a});var r=n(12795);function i(e){return r.ZP.getItem("chainlink.".concat(e))}function a(e,t){r.ZP.setItem("chainlink.".concat(e),t)}function o(e){var t=i(e),n={};if(t)try{return JSON.parse(t)}catch(r){}return n}function s(e,t){a(e,JSON.stringify(t))}},9541(e,t,n){"use strict";n.d(t,{Ks:()=>u,Tp:()=>a,iR:()=>o,pm:()=>s});var r=n(50109),i="persistURL";function a(){return r.U2(i)||""}function o(e){r.t8(i,e)}function s(){return r.LK("authentication")}function u(e){r.eT("authentication",e)}},67121(e,t,n){"use strict";function r(e){var t,n=e.Symbol;return"function"==typeof n?n.observable?t=n.observable:(t=n("observable"),n.observable=t):t="@@observable",t}n.r(t),n.d(t,{default:()=>o}),e=n.hmd(e),i="undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==n.g?n.g:e;var i,a=r(i);let o=a},2177(e,t,n){"use strict";n.d(t,{Z:()=>o});var r=!0,i="Invariant failed";function a(e,t){if(!e){if(r)throw Error(i);throw Error(i+": "+(t||""))}}let o=a},11742(e){e.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,n=[],r=0;ru,ZT:()=>i,_T:()=>o,ev:()=>c,mG:()=>s,pi:()=>a});var r=function(e,t){return(r=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)};function i(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var a=function(){return(a=Object.assign||function(e){for(var t,n=1,r=arguments.length;nt.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var i=0,r=Object.getOwnPropertySymbols(e);it.indexOf(r[i])&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n}function s(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||(n=Promise))(function(n,a){function o(e){try{u(r.next(e))}catch(t){a(t)}}function s(e){try{u(r.throw(e))}catch(t){a(t)}}function u(e){e.done?n(e.value):i(e.value).then(o,s)}u((r=r.apply(e,t||[])).next())})}function u(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(e){return function(t){return u([e,t])}}function u(a){if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]r})},94927(e,t,n){function r(e,t){if(i("noDeprecation"))return e;var n=!1;function r(){if(!n){if(i("throwDeprecation"))throw Error(t);i("traceDeprecation")?console.trace(t):console.warn(t),n=!0}return e.apply(this,arguments)}return r}function i(e){try{if(!n.g.localStorage)return!1}catch(t){return!1}var r=n.g.localStorage[e];return null!=r&&"true"===String(r).toLowerCase()}e.exports=r},42473(e){"use strict";var t=function(){};e.exports=t},84763(e){e.exports=Worker},47529(e){e.exports=n;var t=Object.prototype.hasOwnProperty;function n(){for(var e={},n=0;ne.length)&&(t=e.length);for(var n=0,r=Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}e.exports=i,e.exports.__esModule=!0,e.exports.default=e.exports},7071(e){function t(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},94993(e,t,n){var r=n(18698).default,i=n(66115);function a(e,t){if(t&&("object"===r(t)||"function"==typeof t))return t;if(void 0!==t)throw TypeError("Derived constructors may only return object or undefined");return i(e)}e.exports=a,e.exports.__esModule=!0,e.exports.default=e.exports},6015(e){function t(n,r){return e.exports=t=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n,r)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},861(e,t,n){var r=n(63405),i=n(79498),a=n(86116),o=n(42281);function s(e){return r(e)||i(e)||a(e)||o()}e.exports=s,e.exports.__esModule=!0,e.exports.default=e.exports},18698(e){function t(n){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},86116(e,t,n){var r=n(73897);function i(e,t){if(e){if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r(e,t)}}e.exports=i,e.exports.__esModule=!0,e.exports.default=e.exports},1644(e,t,n){"use strict";var r,i;function a(e){return!!e&&e<7}n.d(t,{I:()=>r,O:()=>a}),(i=r||(r={}))[i.loading=1]="loading",i[i.setVariables=2]="setVariables",i[i.fetchMore=3]="fetchMore",i[i.refetch=4]="refetch",i[i.poll=6]="poll",i[i.ready=7]="ready",i[i.error=8]="error"},30990(e,t,n){"use strict";n.d(t,{MS:()=>s,YG:()=>a,cA:()=>c,ls:()=>o});var r=n(70655);n(83952);var i=n(13154),a=Symbol();function o(e){return!!e.extensions&&Array.isArray(e.extensions[a])}function s(e){return e.hasOwnProperty("graphQLErrors")}var u=function(e){var t=(0,r.ev)((0,r.ev)((0,r.ev)([],e.graphQLErrors,!0),e.clientErrors,!0),e.protocolErrors,!0);return e.networkError&&t.push(e.networkError),t.map(function(e){return(0,i.s)(e)&&e.message||"Error message not found."}).join("\n")},c=function(e){function t(n){var r=n.graphQLErrors,i=n.protocolErrors,a=n.clientErrors,o=n.networkError,s=n.errorMessage,c=n.extraInfo,l=e.call(this,s)||this;return l.name="ApolloError",l.graphQLErrors=r||[],l.protocolErrors=i||[],l.clientErrors=a||[],l.networkError=o||null,l.message=s||u(l),l.extraInfo=c,l.__proto__=t.prototype,l}return(0,r.ZT)(t,e),t}(Error)},85317(e,t,n){"use strict";n.d(t,{K:()=>a});var r=n(67294),i=n(30320).aS?Symbol.for("__APOLLO_CONTEXT__"):"__APOLLO_CONTEXT__";function a(){var e=r.createContext[i];return e||(Object.defineProperty(r.createContext,i,{value:e=r.createContext({}),enumerable:!1,writable:!1,configurable:!0}),e.displayName="ApolloContext"),e}},21436(e,t,n){"use strict";n.d(t,{O:()=>i,k:()=>r});var r=Array.isArray;function i(e){return Array.isArray(e)&&e.length>0}},30320(e,t,n){"use strict";n.d(t,{DN:()=>s,JC:()=>l,aS:()=>o,mr:()=>i,sy:()=>a});var r=n(83952),i="function"==typeof WeakMap&&"ReactNative"!==(0,r.wY)(function(){return navigator.product}),a="function"==typeof WeakSet,o="function"==typeof Symbol&&"function"==typeof Symbol.for,s=o&&Symbol.asyncIterator,u="function"==typeof(0,r.wY)(function(){return window.document.createElement}),c=(0,r.wY)(function(){return navigator.userAgent.indexOf("jsdom")>=0})||!1,l=u&&!c},53712(e,t,n){"use strict";function r(){for(var e=[],t=0;tr})},10542(e,t,n){"use strict";n.d(t,{J:()=>o}),n(83952);var r=n(13154);function i(e){var t=new Set([e]);return t.forEach(function(e){(0,r.s)(e)&&a(e)===e&&Object.getOwnPropertyNames(e).forEach(function(n){(0,r.s)(e[n])&&t.add(e[n])})}),e}function a(e){if(__DEV__&&!Object.isFrozen(e))try{Object.freeze(e)}catch(t){if(t instanceof TypeError)return null;throw t}return e}function o(e){return __DEV__&&i(e),e}},14012(e,t,n){"use strict";n.d(t,{J:()=>a});var r=n(70655),i=n(53712);function a(e,t){return(0,i.o)(e,t,t.variables&&{variables:(0,r.pi)((0,r.pi)({},e&&e.variables),t.variables)})}},13154(e,t,n){"use strict";function r(e){return null!==e&&"object"==typeof e}n.d(t,{s:()=>r})},83952(e,t,n){"use strict";n.d(t,{ej:()=>u,kG:()=>c,wY:()=>h});var r,i=n(70655),a="Invariant Violation",o=Object.setPrototypeOf,s=void 0===o?function(e,t){return e.__proto__=t,e}:o,u=function(e){function t(n){void 0===n&&(n=a);var r=e.call(this,"number"==typeof n?a+": "+n+" (see https://github.com/apollographql/invariant-packages)":n)||this;return r.framesToPop=1,r.name=a,s(r,t.prototype),r}return(0,i.ZT)(t,e),t}(Error);function c(e,t){if(!e)throw new u(t)}var l=["debug","log","warn","error","silent"],f=l.indexOf("log");function d(e){return function(){if(l.indexOf(e)>=f)return(console[e]||console.log).apply(console,arguments)}}function h(e){try{return e()}catch(t){}}(r=c||(c={})).debug=d("debug"),r.log=d("log"),r.warn=d("warn"),r.error=d("error");let p=h(function(){return globalThis})||h(function(){return window})||h(function(){return self})||h(function(){return global})||h(function(){return h.constructor("return this")()});var b="__",m=[b,b].join("DEV");function g(){try{return Boolean(__DEV__)}catch(e){return Object.defineProperty(p,m,{value:"production"!==h(function(){return"production"}),enumerable:!1,configurable:!0,writable:!0}),p[m]}}let v=g();function y(e){try{return e()}catch(t){}}var w=y(function(){return globalThis})||y(function(){return window})||y(function(){return self})||y(function(){return global})||y(function(){return y.constructor("return this")()}),_=!1;function E(){!w||y(function(){return"production"})||y(function(){return process})||(Object.defineProperty(w,"process",{value:{env:{NODE_ENV:"production"}},configurable:!0,enumerable:!1,writable:!0}),_=!0)}function S(){_&&(delete w.process,_=!1)}E();var k=n(10143);function x(){return k.H,S()}function T(){__DEV__?c("boolean"==typeof v,v):c("boolean"==typeof v,39)}x(),T()},4942(e,t,n){"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,{Z:()=>r})},87462(e,t,n){"use strict";function r(){return(r=Object.assign?Object.assign.bind():function(e){for(var t=1;tr})},51721(e,t,n){"use strict";function r(e,t){return(r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function i(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{Z:()=>i})},63366(e,t,n){"use strict";function r(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}n.d(t,{Z:()=>r})},25821(e,t,n){"use strict";n.d(t,{Z:()=>s});var r=n(45695);function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var a=10,o=2;function s(e){return u(e,[])}function u(e,t){switch(i(e)){case"string":return JSON.stringify(e);case"function":return e.name?"[function ".concat(e.name,"]"):"[function]";case"object":if(null===e)return"null";return c(e,t);default:return String(e)}}function c(e,t){if(-1!==t.indexOf(e))return"[Circular]";var n=[].concat(t,[e]),r=d(e);if(void 0!==r){var i=r.call(e);if(i!==e)return"string"==typeof i?i:u(i,n)}else if(Array.isArray(e))return f(e,n);return l(e,n)}function l(e,t){var n=Object.keys(e);return 0===n.length?"{}":t.length>o?"["+h(e)+"]":"{ "+n.map(function(n){var r=u(e[n],t);return n+": "+r}).join(", ")+" }"}function f(e,t){if(0===e.length)return"[]";if(t.length>o)return"[Array]";for(var n=Math.min(a,e.length),r=e.length-n,i=[],s=0;s1&&i.push("... ".concat(r," more items")),"["+i.join(", ")+"]"}function d(e){var t=e[String(r.Z)];return"function"==typeof t?t:"function"==typeof e.inspect?e.inspect:void 0}function h(e){var t=Object.prototype.toString.call(e).replace(/^\[object /,"").replace(/]$/,"");if("Object"===t&&"function"==typeof e.constructor){var n=e.constructor.name;if("string"==typeof n&&""!==n)return n}return t}},45695(e,t,n){"use strict";n.d(t,{Z:()=>i});var r="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):void 0;let i=r},25217(e,t,n){"use strict";function r(e,t){if(!Boolean(e))throw Error(null!=t?t:"Unexpected invariant triggered.")}n.d(t,{Ye:()=>o,WU:()=>s,UG:()=>u});var i=n(45695);function a(e){var t=e.prototype.toJSON;"function"==typeof t||r(0),e.prototype.inspect=t,i.Z&&(e.prototype[i.Z]=t)}var o=function(){function e(e,t,n){this.start=e.start,this.end=t.end,this.startToken=e,this.endToken=t,this.source=n}return e.prototype.toJSON=function(){return{start:this.start,end:this.end}},e}();a(o);var s=function(){function e(e,t,n,r,i,a,o){this.kind=e,this.start=t,this.end=n,this.line=r,this.column=i,this.value=o,this.prev=a,this.next=null}return e.prototype.toJSON=function(){return{kind:this.kind,value:this.value,line:this.line,column:this.column}},e}();function u(e){return null!=e&&"string"==typeof e.kind}a(s)},87392(e,t,n){"use strict";function r(e){var t=e.split(/\r\n|[\n\r]/g),n=a(e);if(0!==n)for(var r=1;ro&&i(t[s-1]);)--s;return t.slice(o,s).join("\n")}function i(e){for(var t=0;t1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=-1===e.indexOf("\n"),i=" "===e[0]||" "===e[0],a='"'===e[e.length-1],o="\\"===e[e.length-1],s=!r||a||o||n,u="";return s&&!(r&&i)&&(u+="\n"+t),u+=t?e.replace(/\n/g,"\n"+t):e,s&&(u+="\n"),'"""'+u.replace(/"""/g,'\\"""')+'"""'}n.d(t,{LZ:()=>o,W7:()=>r})},97359(e,t,n){"use strict";n.d(t,{h:()=>r});var r=Object.freeze({NAME:"Name",DOCUMENT:"Document",OPERATION_DEFINITION:"OperationDefinition",VARIABLE_DEFINITION:"VariableDefinition",SELECTION_SET:"SelectionSet",FIELD:"Field",ARGUMENT:"Argument",FRAGMENT_SPREAD:"FragmentSpread",INLINE_FRAGMENT:"InlineFragment",FRAGMENT_DEFINITION:"FragmentDefinition",VARIABLE:"Variable",INT:"IntValue",FLOAT:"FloatValue",STRING:"StringValue",BOOLEAN:"BooleanValue",NULL:"NullValue",ENUM:"EnumValue",LIST:"ListValue",OBJECT:"ObjectValue",OBJECT_FIELD:"ObjectField",DIRECTIVE:"Directive",NAMED_TYPE:"NamedType",LIST_TYPE:"ListType",NON_NULL_TYPE:"NonNullType",SCHEMA_DEFINITION:"SchemaDefinition",OPERATION_TYPE_DEFINITION:"OperationTypeDefinition",SCALAR_TYPE_DEFINITION:"ScalarTypeDefinition",OBJECT_TYPE_DEFINITION:"ObjectTypeDefinition",FIELD_DEFINITION:"FieldDefinition",INPUT_VALUE_DEFINITION:"InputValueDefinition",INTERFACE_TYPE_DEFINITION:"InterfaceTypeDefinition",UNION_TYPE_DEFINITION:"UnionTypeDefinition",ENUM_TYPE_DEFINITION:"EnumTypeDefinition",ENUM_VALUE_DEFINITION:"EnumValueDefinition",INPUT_OBJECT_TYPE_DEFINITION:"InputObjectTypeDefinition",DIRECTIVE_DEFINITION:"DirectiveDefinition",SCHEMA_EXTENSION:"SchemaExtension",SCALAR_TYPE_EXTENSION:"ScalarTypeExtension",OBJECT_TYPE_EXTENSION:"ObjectTypeExtension",INTERFACE_TYPE_EXTENSION:"InterfaceTypeExtension",UNION_TYPE_EXTENSION:"UnionTypeExtension",ENUM_TYPE_EXTENSION:"EnumTypeExtension",INPUT_OBJECT_TYPE_EXTENSION:"InputObjectTypeExtension"})},10143(e,t,n){"use strict";n.d(t,{H:()=>c,T:()=>l});var r=n(99763),i=n(25821);function a(e,t){if(!Boolean(e))throw Error(t)}let o=function(e,t){return e instanceof t};function s(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"GraphQL request",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{line:1,column:1};"string"==typeof e||a(0,"Body must be a string. Received: ".concat((0,i.Z)(e),".")),this.body=e,this.name=t,this.locationOffset=n,this.locationOffset.line>0||a(0,"line in locationOffset is 1-indexed and must be positive."),this.locationOffset.column>0||a(0,"column in locationOffset is 1-indexed and must be positive.")}return u(e,[{key:r.YF,get:function(){return"Source"}}]),e}();function l(e){return o(e,c)}},99763(e,t,n){"use strict";n.d(t,{YF:()=>r});var r="function"==typeof Symbol&&null!=Symbol.toStringTag?Symbol.toStringTag:"@@toStringTag"},37452(e){"use strict";e.exports=JSON.parse('{"AElig":"\xc6","AMP":"&","Aacute":"\xc1","Acirc":"\xc2","Agrave":"\xc0","Aring":"\xc5","Atilde":"\xc3","Auml":"\xc4","COPY":"\xa9","Ccedil":"\xc7","ETH":"\xd0","Eacute":"\xc9","Ecirc":"\xca","Egrave":"\xc8","Euml":"\xcb","GT":">","Iacute":"\xcd","Icirc":"\xce","Igrave":"\xcc","Iuml":"\xcf","LT":"<","Ntilde":"\xd1","Oacute":"\xd3","Ocirc":"\xd4","Ograve":"\xd2","Oslash":"\xd8","Otilde":"\xd5","Ouml":"\xd6","QUOT":"\\"","REG":"\xae","THORN":"\xde","Uacute":"\xda","Ucirc":"\xdb","Ugrave":"\xd9","Uuml":"\xdc","Yacute":"\xdd","aacute":"\xe1","acirc":"\xe2","acute":"\xb4","aelig":"\xe6","agrave":"\xe0","amp":"&","aring":"\xe5","atilde":"\xe3","auml":"\xe4","brvbar":"\xa6","ccedil":"\xe7","cedil":"\xb8","cent":"\xa2","copy":"\xa9","curren":"\xa4","deg":"\xb0","divide":"\xf7","eacute":"\xe9","ecirc":"\xea","egrave":"\xe8","eth":"\xf0","euml":"\xeb","frac12":"\xbd","frac14":"\xbc","frac34":"\xbe","gt":">","iacute":"\xed","icirc":"\xee","iexcl":"\xa1","igrave":"\xec","iquest":"\xbf","iuml":"\xef","laquo":"\xab","lt":"<","macr":"\xaf","micro":"\xb5","middot":"\xb7","nbsp":"\xa0","not":"\xac","ntilde":"\xf1","oacute":"\xf3","ocirc":"\xf4","ograve":"\xf2","ordf":"\xaa","ordm":"\xba","oslash":"\xf8","otilde":"\xf5","ouml":"\xf6","para":"\xb6","plusmn":"\xb1","pound":"\xa3","quot":"\\"","raquo":"\xbb","reg":"\xae","sect":"\xa7","shy":"\xad","sup1":"\xb9","sup2":"\xb2","sup3":"\xb3","szlig":"\xdf","thorn":"\xfe","times":"\xd7","uacute":"\xfa","ucirc":"\xfb","ugrave":"\xf9","uml":"\xa8","uuml":"\xfc","yacute":"\xfd","yen":"\xa5","yuml":"\xff"}')},93580(e){"use strict";e.exports=JSON.parse('{"0":"�","128":"€","130":"‚","131":"ƒ","132":"„","133":"…","134":"†","135":"‡","136":"ˆ","137":"‰","138":"Š","139":"‹","140":"Œ","142":"Ž","145":"‘","146":"’","147":"“","148":"”","149":"•","150":"–","151":"—","152":"˜","153":"™","154":"š","155":"›","156":"œ","158":"ž","159":"Ÿ"}')},67946(e){"use strict";e.exports=JSON.parse('{"locale":"en","long":{"year":{"previous":"last year","current":"this year","next":"next year","past":{"one":"{0} year ago","other":"{0} years ago"},"future":{"one":"in {0} year","other":"in {0} years"}},"quarter":{"previous":"last quarter","current":"this quarter","next":"next quarter","past":{"one":"{0} quarter ago","other":"{0} quarters ago"},"future":{"one":"in {0} quarter","other":"in {0} quarters"}},"month":{"previous":"last month","current":"this month","next":"next month","past":{"one":"{0} month ago","other":"{0} months ago"},"future":{"one":"in {0} month","other":"in {0} months"}},"week":{"previous":"last week","current":"this week","next":"next week","past":{"one":"{0} week ago","other":"{0} weeks ago"},"future":{"one":"in {0} week","other":"in {0} weeks"}},"day":{"previous":"yesterday","current":"today","next":"tomorrow","past":{"one":"{0} day ago","other":"{0} days ago"},"future":{"one":"in {0} day","other":"in {0} days"}},"hour":{"current":"this hour","past":{"one":"{0} hour ago","other":"{0} hours ago"},"future":{"one":"in {0} hour","other":"in {0} hours"}},"minute":{"current":"this minute","past":{"one":"{0} minute ago","other":"{0} minutes ago"},"future":{"one":"in {0} minute","other":"in {0} minutes"}},"second":{"current":"now","past":{"one":"{0} second ago","other":"{0} seconds ago"},"future":{"one":"in {0} second","other":"in {0} seconds"}}},"short":{"year":{"previous":"last yr.","current":"this yr.","next":"next yr.","past":"{0} yr. ago","future":"in {0} yr."},"quarter":{"previous":"last qtr.","current":"this qtr.","next":"next qtr.","past":{"one":"{0} qtr. ago","other":"{0} qtrs. ago"},"future":{"one":"in {0} qtr.","other":"in {0} qtrs."}},"month":{"previous":"last mo.","current":"this mo.","next":"next mo.","past":"{0} mo. ago","future":"in {0} mo."},"week":{"previous":"last wk.","current":"this wk.","next":"next wk.","past":"{0} wk. ago","future":"in {0} wk."},"day":{"previous":"yesterday","current":"today","next":"tomorrow","past":{"one":"{0} day ago","other":"{0} days ago"},"future":{"one":"in {0} day","other":"in {0} days"}},"hour":{"current":"this hour","past":"{0} hr. ago","future":"in {0} hr."},"minute":{"current":"this minute","past":"{0} min. ago","future":"in {0} min."},"second":{"current":"now","past":"{0} sec. ago","future":"in {0} sec."}},"narrow":{"year":{"previous":"last yr.","current":"this yr.","next":"next yr.","past":"{0} yr. ago","future":"in {0} yr."},"quarter":{"previous":"last qtr.","current":"this qtr.","next":"next qtr.","past":{"one":"{0} qtr. ago","other":"{0} qtrs. ago"},"future":{"one":"in {0} qtr.","other":"in {0} qtrs."}},"month":{"previous":"last mo.","current":"this mo.","next":"next mo.","past":"{0} mo. ago","future":"in {0} mo."},"week":{"previous":"last wk.","current":"this wk.","next":"next wk.","past":"{0} wk. ago","future":"in {0} wk."},"day":{"previous":"yesterday","current":"today","next":"tomorrow","past":{"one":"{0} day ago","other":"{0} days ago"},"future":{"one":"in {0} day","other":"in {0} days"}},"hour":{"current":"this hour","past":"{0} hr. ago","future":"in {0} hr."},"minute":{"current":"this minute","past":"{0} min. ago","future":"in {0} min."},"second":{"current":"now","past":"{0} sec. ago","future":"in {0} sec."}},"now":{"now":{"current":"now","future":"in a moment","past":"just now"}},"mini":{"year":"{0}yr","month":"{0}mo","week":"{0}wk","day":"{0}d","hour":"{0}h","minute":"{0}m","second":"{0}s","now":"now"},"short-time":{"year":"{0} yr.","month":"{0} mo.","week":"{0} wk.","day":{"one":"{0} day","other":"{0} days"},"hour":"{0} hr.","minute":"{0} min.","second":"{0} sec."},"long-time":{"year":{"one":"{0} year","other":"{0} years"},"month":{"one":"{0} month","other":"{0} months"},"week":{"one":"{0} week","other":"{0} weeks"},"day":{"one":"{0} day","other":"{0} days"},"hour":{"one":"{0} hour","other":"{0} hours"},"minute":{"one":"{0} minute","other":"{0} minutes"},"second":{"one":"{0} second","other":"{0} seconds"}}}')}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var n=__webpack_module_cache__[e]={id:e,loaded:!1,exports:{}};return __webpack_modules__[e].call(n.exports,n,n.exports,__webpack_require__),n.loaded=!0,n.exports}__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},(()=>{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;__webpack_require__.t=function(n,r){if(1&r&&(n=this(n)),8&r||"object"==typeof n&&n&&(4&r&&n.__esModule||16&r&&"function"==typeof n.then))return n;var i=Object.create(null);__webpack_require__.r(i);var a={};e=e||[null,t({}),t([]),t(t)];for(var o=2&r&&n;"object"==typeof o&&!~e.indexOf(o);o=t(o))Object.getOwnPropertyNames(o).forEach(e=>a[e]=()=>n[e]);return a.default=()=>n,__webpack_require__.d(i,a),i}})(),__webpack_require__.d=(e,t)=>{for(var n in t)__webpack_require__.o(t,n)&&!__webpack_require__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.hmd=e=>((e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set(){throw Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e),__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),__webpack_require__.p="/assets/",__webpack_require__.nc=void 0;var __webpack_exports__={};(()=>{"use strict";var e,t,n,r,i=__webpack_require__(32316),a=__webpack_require__(8126),o=__webpack_require__(5690),s=__webpack_require__(30381),u=__webpack_require__.n(s),c=__webpack_require__(67294),l=__webpack_require__(73935),f=__webpack_require__.n(l),d=__webpack_require__(57209),h=__webpack_require__(37703),p=__webpack_require__(97779),b=__webpack_require__(28500);function m(e){return function(t){var n=t.dispatch,r=t.getState;return function(t){return function(i){return"function"==typeof i?i(n,r,e):t(i)}}}}var g=m();g.withExtraArgument=m;let v=g;var y=__webpack_require__(76489);function w(e){return function(t){return function(n){return function(r){n(r);var i=e||document&&document.cookie||"",a=t.getState();if("MATCH_ROUTE"===r.type&&"/signin"!==a.notifications.currentUrl){var o=(0,y.Q)(i);if(o.explorer)try{var s=JSON.parse(o.explorer);if("error"===s.status){var u=_(s.url);n({type:"NOTIFY_ERROR_MSG",msg:u})}}catch(c){n({type:"NOTIFY_ERROR_MSG",msg:"Invalid explorer status"})}}}}}}function _(e){var t="Can't connect to explorer: ".concat(e);return e.match(/^wss?:.+/)?t:"".concat(t,". You must use a websocket.")}var E=__webpack_require__(16353);function S(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function ei(e,t){if(e){if("string"==typeof e)return ea(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ea(e,t)}}function ea(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n1,i=!1,a=arguments[1],o=a;return new n(function(n){return t.subscribe({next:function(t){var a=!i;if(i=!0,!a||r)try{o=e(o,t)}catch(s){return n.error(s)}else o=t},error:function(e){n.error(e)},complete:function(){if(!i&&!r)return n.error(TypeError("Cannot reduce an empty sequence"));n.next(o),n.complete()}})})},t.concat=function(){for(var e=this,t=arguments.length,n=Array(t),r=0;r=0&&i.splice(e,1),o()}});i.push(s)},error:function(e){r.error(e)},complete:function(){o()}});function o(){a.closed&&0===i.length&&r.complete()}return function(){i.forEach(function(e){return e.unsubscribe()}),a.unsubscribe()}})},t[ed]=function(){return this},e.from=function(t){var n="function"==typeof this?this:e;if(null==t)throw TypeError(t+" is not an object");var r=ep(t,ed);if(r){var i=r.call(t);if(Object(i)!==i)throw TypeError(i+" is not an object");return em(i)&&i.constructor===n?i:new n(function(e){return i.subscribe(e)})}if(ec("iterator")&&(r=ep(t,ef)))return new n(function(e){ev(function(){if(!e.closed){for(var n,i=er(r.call(t));!(n=i()).done;){var a=n.value;if(e.next(a),e.closed)return}e.complete()}})});if(Array.isArray(t))return new n(function(e){ev(function(){if(!e.closed){for(var n=0;n0))return n.connection.key;var r=n.connection.filter?n.connection.filter:[];r.sort();var i={};return r.forEach(function(e){i[e]=t[e]}),"".concat(n.connection.key,"(").concat(eV(i),")")}var a=e;if(t){var o=eV(t);a+="(".concat(o,")")}return n&&Object.keys(n).forEach(function(e){-1===eW.indexOf(e)&&(n[e]&&Object.keys(n[e]).length?a+="@".concat(e,"(").concat(eV(n[e]),")"):a+="@".concat(e))}),a},{setStringify:function(e){var t=eV;return eV=e,t}}),eV=function(e){return JSON.stringify(e,eq)};function eq(e,t){return(0,eO.s)(t)&&!Array.isArray(t)&&(t=Object.keys(t).sort().reduce(function(e,n){return e[n]=t[n],e},{})),t}function eZ(e,t){if(e.arguments&&e.arguments.length){var n={};return e.arguments.forEach(function(e){var r;return ez(n,e.name,e.value,t)}),n}return null}function eX(e){return e.alias?e.alias.value:e.name.value}function eJ(e,t,n){for(var r,i=0,a=t.selections;it.indexOf(i))throw __DEV__?new Q.ej("illegal argument: ".concat(i)):new Q.ej(27)}return e}function tt(e,t){return t?t(e):eT.of()}function tn(e){return"function"==typeof e?new ta(e):e}function tr(e){return e.request.length<=1}var ti=function(e){function t(t,n){var r=e.call(this,t)||this;return r.link=n,r}return(0,en.ZT)(t,e),t}(Error),ta=function(){function e(e){e&&(this.request=e)}return e.empty=function(){return new e(function(){return eT.of()})},e.from=function(t){return 0===t.length?e.empty():t.map(tn).reduce(function(e,t){return e.concat(t)})},e.split=function(t,n,r){var i=tn(n),a=tn(r||new e(tt));return new e(tr(i)&&tr(a)?function(e){return t(e)?i.request(e)||eT.of():a.request(e)||eT.of()}:function(e,n){return t(e)?i.request(e,n)||eT.of():a.request(e,n)||eT.of()})},e.execute=function(e,t){return e.request(eM(t.context,e7(te(t))))||eT.of()},e.concat=function(t,n){var r=tn(t);if(tr(r))return __DEV__&&Q.kG.warn(new ti("You are calling concat on a terminating link, which will have no effect",r)),r;var i=tn(n);return new e(tr(i)?function(e){return r.request(e,function(e){return i.request(e)||eT.of()})||eT.of()}:function(e,t){return r.request(e,function(e){return i.request(e,t)||eT.of()})||eT.of()})},e.prototype.split=function(t,n,r){return this.concat(e.split(t,n,r||new e(tt)))},e.prototype.concat=function(t){return e.concat(this,t)},e.prototype.request=function(e,t){throw __DEV__?new Q.ej("request is not implemented"):new Q.ej(22)},e.prototype.onError=function(e,t){if(t&&t.error)return t.error(e),!1;throw e},e.prototype.setOnError=function(e){return this.onError=e,this},e}(),to=__webpack_require__(25821),ts=__webpack_require__(25217),tu={Name:[],Document:["definitions"],OperationDefinition:["name","variableDefinitions","directives","selectionSet"],VariableDefinition:["variable","type","defaultValue","directives"],Variable:["name"],SelectionSet:["selections"],Field:["alias","name","arguments","directives","selectionSet"],Argument:["name","value"],FragmentSpread:["name","directives"],InlineFragment:["typeCondition","directives","selectionSet"],FragmentDefinition:["name","variableDefinitions","typeCondition","directives","selectionSet"],IntValue:[],FloatValue:[],StringValue:[],BooleanValue:[],NullValue:[],EnumValue:[],ListValue:["values"],ObjectValue:["fields"],ObjectField:["name","value"],Directive:["name","arguments"],NamedType:["name"],ListType:["type"],NonNullType:["type"],SchemaDefinition:["description","directives","operationTypes"],OperationTypeDefinition:["type"],ScalarTypeDefinition:["description","name","directives"],ObjectTypeDefinition:["description","name","interfaces","directives","fields"],FieldDefinition:["description","name","arguments","type","directives"],InputValueDefinition:["description","name","type","defaultValue","directives"],InterfaceTypeDefinition:["description","name","interfaces","directives","fields"],UnionTypeDefinition:["description","name","directives","types"],EnumTypeDefinition:["description","name","directives","values"],EnumValueDefinition:["description","name","directives"],InputObjectTypeDefinition:["description","name","directives","fields"],DirectiveDefinition:["description","name","arguments","locations"],SchemaExtension:["directives","operationTypes"],ScalarTypeExtension:["name","directives"],ObjectTypeExtension:["name","interfaces","directives","fields"],InterfaceTypeExtension:["name","interfaces","directives","fields"],UnionTypeExtension:["name","directives","types"],EnumTypeExtension:["name","directives","values"],InputObjectTypeExtension:["name","directives","fields"]},tc=Object.freeze({});function tl(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:tu,r=void 0,i=Array.isArray(e),a=[e],o=-1,s=[],u=void 0,c=void 0,l=void 0,f=[],d=[],h=e;do{var p,b=++o===a.length,m=b&&0!==s.length;if(b){if(c=0===d.length?void 0:f[f.length-1],u=l,l=d.pop(),m){if(i)u=u.slice();else{for(var g={},v=0,y=Object.keys(u);v1)for(var r=new tB,i=1;i=0;--a){var o=i[a],s=isNaN(+o)?{}:[];s[o]=t,t=s}n=r.merge(n,t)}),n}var tW=Object.prototype.hasOwnProperty;function tK(e,t){var n,r,i,a,o;return(0,en.mG)(this,void 0,void 0,function(){var s,u,c,l,f,d,h,p,b,m,g,v,y,w,_,E,S,k,x,T,M,O,A;return(0,en.Jh)(this,function(L){switch(L.label){case 0:if(void 0===TextDecoder)throw Error("TextDecoder must be defined in the environment: please import a polyfill.");s=new TextDecoder("utf-8"),u=null===(n=e.headers)||void 0===n?void 0:n.get("content-type"),c="boundary=",l=(null==u?void 0:u.includes(c))?null==u?void 0:u.substring((null==u?void 0:u.indexOf(c))+c.length).replace(/['"]/g,"").replace(/\;(.*)/gm,"").trim():"-",f="\r\n--".concat(l),d="",h=tI(e),p=!0,L.label=1;case 1:if(!p)return[3,3];return[4,h.next()];case 2:for(m=(b=L.sent()).value,g=b.done,v="string"==typeof m?m:s.decode(m),y=d.length-f.length+1,p=!g,d+=v,w=d.indexOf(f,y);w>-1;){if(_=void 0,_=(O=[d.slice(0,w),d.slice(w+f.length),])[0],d=O[1],E=_.indexOf("\r\n\r\n"),(k=(S=tV(_.slice(0,E)))["content-type"])&&-1===k.toLowerCase().indexOf("application/json"))throw Error("Unsupported patch content type: application/json is required.");if(x=_.slice(E))try{T=tq(e,x),Object.keys(T).length>1||"data"in T||"incremental"in T||"errors"in T||"payload"in T?tz(T)?(M={},"payload"in T&&(M=(0,en.pi)({},T.payload)),"errors"in T&&(M=(0,en.pi)((0,en.pi)({},M),{extensions:(0,en.pi)((0,en.pi)({},"extensions"in M?M.extensions:null),((A={})[tN.YG]=T.errors,A))})),null===(r=t.next)||void 0===r||r.call(t,M)):null===(i=t.next)||void 0===i||i.call(t,T):1===Object.keys(T).length&&"hasNext"in T&&!T.hasNext&&(null===(a=t.complete)||void 0===a||a.call(t))}catch(C){tZ(C,t)}w=d.indexOf(f)}return[3,1];case 3:return null===(o=t.complete)||void 0===o||o.call(t),[2]}})})}function tV(e){var t={};return e.split("\n").forEach(function(e){var n=e.indexOf(":");if(n>-1){var r=e.slice(0,n).trim().toLowerCase(),i=e.slice(n+1).trim();t[r]=i}}),t}function tq(e,t){e.status>=300&&tD(e,function(){try{return JSON.parse(t)}catch(e){return t}}(),"Response not successful: Received status code ".concat(e.status));try{return JSON.parse(t)}catch(n){var r=n;throw r.name="ServerParseError",r.response=e,r.statusCode=e.status,r.bodyText=t,r}}function tZ(e,t){var n,r;"AbortError"!==e.name&&(e.result&&e.result.errors&&e.result.data&&(null===(n=t.next)||void 0===n||n.call(t,e.result)),null===(r=t.error)||void 0===r||r.call(t,e))}function tX(e,t,n){tJ(t)(e).then(function(e){var t,r;null===(t=n.next)||void 0===t||t.call(n,e),null===(r=n.complete)||void 0===r||r.call(n)}).catch(function(e){return tZ(e,n)})}function tJ(e){return function(t){return t.text().then(function(e){return tq(t,e)}).then(function(n){return t.status>=300&&tD(t,n,"Response not successful: Received status code ".concat(t.status)),Array.isArray(n)||tW.call(n,"data")||tW.call(n,"errors")||tD(t,n,"Server response was missing for query '".concat(Array.isArray(e)?e.map(function(e){return e.operationName}):e.operationName,"'.")),n})}}var tQ=function(e){if(!e&&"undefined"==typeof fetch)throw __DEV__?new Q.ej("\n\"fetch\" has not been found globally and no fetcher has been configured. To fix this, install a fetch package (like https://www.npmjs.com/package/cross-fetch), instantiate the fetcher, and pass it into your HttpLink constructor. For example:\n\nimport fetch from 'cross-fetch';\nimport { ApolloClient, HttpLink } from '@apollo/client';\nconst client = new ApolloClient({\n link: new HttpLink({ uri: '/graphql', fetch })\n});\n "):new Q.ej(23)},t1=__webpack_require__(87392);function t0(e){return tl(e,{leave:t3})}var t2=80,t3={Name:function(e){return e.value},Variable:function(e){return"$"+e.name},Document:function(e){return t6(e.definitions,"\n\n")+"\n"},OperationDefinition:function(e){var t=e.operation,n=e.name,r=t8("(",t6(e.variableDefinitions,", "),")"),i=t6(e.directives," "),a=e.selectionSet;return n||i||r||"query"!==t?t6([t,t6([n,r]),i,a]," "):a},VariableDefinition:function(e){var t=e.variable,n=e.type,r=e.defaultValue,i=e.directives;return t+": "+n+t8(" = ",r)+t8(" ",t6(i," "))},SelectionSet:function(e){return t5(e.selections)},Field:function(e){var t=e.alias,n=e.name,r=e.arguments,i=e.directives,a=e.selectionSet,o=t8("",t,": ")+n,s=o+t8("(",t6(r,", "),")");return s.length>t2&&(s=o+t8("(\n",t9(t6(r,"\n")),"\n)")),t6([s,t6(i," "),a]," ")},Argument:function(e){var t;return e.name+": "+e.value},FragmentSpread:function(e){var t;return"..."+e.name+t8(" ",t6(e.directives," "))},InlineFragment:function(e){var t=e.typeCondition,n=e.directives,r=e.selectionSet;return t6(["...",t8("on ",t),t6(n," "),r]," ")},FragmentDefinition:function(e){var t=e.name,n=e.typeCondition,r=e.variableDefinitions,i=e.directives,a=e.selectionSet;return"fragment ".concat(t).concat(t8("(",t6(r,", "),")")," ")+"on ".concat(n," ").concat(t8("",t6(i," ")," "))+a},IntValue:function(e){return e.value},FloatValue:function(e){return e.value},StringValue:function(e,t){var n=e.value;return e.block?(0,t1.LZ)(n,"description"===t?"":" "):JSON.stringify(n)},BooleanValue:function(e){return e.value?"true":"false"},NullValue:function(){return"null"},EnumValue:function(e){return e.value},ListValue:function(e){return"["+t6(e.values,", ")+"]"},ObjectValue:function(e){return"{"+t6(e.fields,", ")+"}"},ObjectField:function(e){var t;return e.name+": "+e.value},Directive:function(e){var t;return"@"+e.name+t8("(",t6(e.arguments,", "),")")},NamedType:function(e){return e.name},ListType:function(e){return"["+e.type+"]"},NonNullType:function(e){return e.type+"!"},SchemaDefinition:t4(function(e){var t=e.directives,n=e.operationTypes;return t6(["schema",t6(t," "),t5(n)]," ")}),OperationTypeDefinition:function(e){var t;return e.operation+": "+e.type},ScalarTypeDefinition:t4(function(e){var t;return t6(["scalar",e.name,t6(e.directives," ")]," ")}),ObjectTypeDefinition:t4(function(e){var t=e.name,n=e.interfaces,r=e.directives,i=e.fields;return t6(["type",t,t8("implements ",t6(n," & ")),t6(r," "),t5(i)]," ")}),FieldDefinition:t4(function(e){var t=e.name,n=e.arguments,r=e.type,i=e.directives;return t+(ne(n)?t8("(\n",t9(t6(n,"\n")),"\n)"):t8("(",t6(n,", "),")"))+": "+r+t8(" ",t6(i," "))}),InputValueDefinition:t4(function(e){var t=e.name,n=e.type,r=e.defaultValue,i=e.directives;return t6([t+": "+n,t8("= ",r),t6(i," ")]," ")}),InterfaceTypeDefinition:t4(function(e){var t=e.name,n=e.interfaces,r=e.directives,i=e.fields;return t6(["interface",t,t8("implements ",t6(n," & ")),t6(r," "),t5(i)]," ")}),UnionTypeDefinition:t4(function(e){var t=e.name,n=e.directives,r=e.types;return t6(["union",t,t6(n," "),r&&0!==r.length?"= "+t6(r," | "):""]," ")}),EnumTypeDefinition:t4(function(e){var t=e.name,n=e.directives,r=e.values;return t6(["enum",t,t6(n," "),t5(r)]," ")}),EnumValueDefinition:t4(function(e){var t;return t6([e.name,t6(e.directives," ")]," ")}),InputObjectTypeDefinition:t4(function(e){var t=e.name,n=e.directives,r=e.fields;return t6(["input",t,t6(n," "),t5(r)]," ")}),DirectiveDefinition:t4(function(e){var t=e.name,n=e.arguments,r=e.repeatable,i=e.locations;return"directive @"+t+(ne(n)?t8("(\n",t9(t6(n,"\n")),"\n)"):t8("(",t6(n,", "),")"))+(r?" repeatable":"")+" on "+t6(i," | ")}),SchemaExtension:function(e){var t=e.directives,n=e.operationTypes;return t6(["extend schema",t6(t," "),t5(n)]," ")},ScalarTypeExtension:function(e){var t;return t6(["extend scalar",e.name,t6(e.directives," ")]," ")},ObjectTypeExtension:function(e){var t=e.name,n=e.interfaces,r=e.directives,i=e.fields;return t6(["extend type",t,t8("implements ",t6(n," & ")),t6(r," "),t5(i)]," ")},InterfaceTypeExtension:function(e){var t=e.name,n=e.interfaces,r=e.directives,i=e.fields;return t6(["extend interface",t,t8("implements ",t6(n," & ")),t6(r," "),t5(i)]," ")},UnionTypeExtension:function(e){var t=e.name,n=e.directives,r=e.types;return t6(["extend union",t,t6(n," "),r&&0!==r.length?"= "+t6(r," | "):""]," ")},EnumTypeExtension:function(e){var t=e.name,n=e.directives,r=e.values;return t6(["extend enum",t,t6(n," "),t5(r)]," ")},InputObjectTypeExtension:function(e){var t=e.name,n=e.directives,r=e.fields;return t6(["extend input",t,t6(n," "),t5(r)]," ")}};function t4(e){return function(t){return t6([t.description,e(t)],"\n")}}function t6(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return null!==(t=null==e?void 0:e.filter(function(e){return e}).join(n))&&void 0!==t?t:""}function t5(e){return t8("{\n",t9(t6(e,"\n")),"\n}")}function t8(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";return null!=t&&""!==t?e+t+n:""}function t9(e){return t8(" ",e.replace(/\n/g,"\n "))}function t7(e){return -1!==e.indexOf("\n")}function ne(e){return null!=e&&e.some(t7)}var nt,nn,nr,ni={http:{includeQuery:!0,includeExtensions:!1,preserveHeaderCase:!1},headers:{accept:"*/*","content-type":"application/json"},options:{method:"POST"}},na=function(e,t){return t(e)};function no(e,t){for(var n=[],r=2;rObject.create(null),{forEach:nv,slice:ny}=Array.prototype,{hasOwnProperty:nw}=Object.prototype;class n_{constructor(e=!0,t=ng){this.weakness=e,this.makeData=t}lookup(...e){return this.lookupArray(e)}lookupArray(e){let t=this;return nv.call(e,e=>t=t.getChildTrie(e)),nw.call(t,"data")?t.data:t.data=this.makeData(ny.call(e))}peek(...e){return this.peekArray(e)}peekArray(e){let t=this;for(let n=0,r=e.length;t&&n=0;--o)t.definitions[o].kind===nL.h.OPERATION_DEFINITION&&++a;var s=nN(e),u=e.some(function(e){return e.remove}),c=function(e){return u&&e&&e.some(s)},l=new Map,f=!1,d={enter:function(e){if(c(e.directives))return f=!0,null}},h=tl(t,{Field:d,InlineFragment:d,VariableDefinition:{enter:function(){return!1}},Variable:{enter:function(e,t,n,r,a){var o=i(a);o&&o.variables.add(e.name.value)}},FragmentSpread:{enter:function(e,t,n,r,a){if(c(e.directives))return f=!0,null;var o=i(a);o&&o.fragmentSpreads.add(e.name.value)}},FragmentDefinition:{enter:function(e,t,n,r){l.set(JSON.stringify(r),e)},leave:function(e,t,n,i){return e===l.get(JSON.stringify(i))?e:a>0&&e.selectionSet.selections.every(function(e){return e.kind===nL.h.FIELD&&"__typename"===e.name.value})?(r(e.name.value).removed=!0,f=!0,null):void 0}},Directive:{leave:function(e){if(s(e))return f=!0,null}}});if(!f)return t;var p=function(e){return e.transitiveVars||(e.transitiveVars=new Set(e.variables),e.removed||e.fragmentSpreads.forEach(function(t){p(r(t)).transitiveVars.forEach(function(t){e.transitiveVars.add(t)})})),e},b=new Set;h.definitions.forEach(function(e){e.kind===nL.h.OPERATION_DEFINITION?p(n(e.name&&e.name.value)).fragmentSpreads.forEach(function(e){b.add(e)}):e.kind!==nL.h.FRAGMENT_DEFINITION||0!==a||r(e.name.value).removed||b.add(e.name.value)}),b.forEach(function(e){p(r(e)).fragmentSpreads.forEach(function(e){b.add(e)})});var m=function(e){return!!(!b.has(e)||r(e).removed)},g={enter:function(e){if(m(e.name.value))return null}};return nD(tl(h,{FragmentSpread:g,FragmentDefinition:g,OperationDefinition:{leave:function(e){if(e.variableDefinitions){var t=p(n(e.name&&e.name.value)).transitiveVars;if(t.size0},t.prototype.tearDownQuery=function(){this.isTornDown||(this.concast&&this.observer&&(this.concast.removeObserver(this.observer),delete this.concast,delete this.observer),this.stopPolling(),this.subscriptions.forEach(function(e){return e.unsubscribe()}),this.subscriptions.clear(),this.queryManager.stopQuery(this.queryId),this.observers.clear(),this.isTornDown=!0)},t}(eT);function n4(e){var t=e.options,n=t.fetchPolicy,r=t.nextFetchPolicy;return"cache-and-network"===n||"network-only"===n?e.reobserve({fetchPolicy:"cache-first",nextFetchPolicy:function(){return(this.nextFetchPolicy=r,"function"==typeof r)?r.apply(this,arguments):n}}):e.reobserve()}function n6(e){__DEV__&&Q.kG.error("Unhandled error",e.message,e.stack)}function n5(e){__DEV__&&e&&__DEV__&&Q.kG.debug("Missing cache result fields: ".concat(JSON.stringify(e)),e)}function n8(e){return"network-only"===e||"no-cache"===e||"standby"===e}nK(n3);function n9(e){return e.kind===nL.h.FIELD||e.kind===nL.h.FRAGMENT_SPREAD||e.kind===nL.h.INLINE_FRAGMENT}function n7(e){return e.kind===Kind.SCALAR_TYPE_DEFINITION||e.kind===Kind.OBJECT_TYPE_DEFINITION||e.kind===Kind.INTERFACE_TYPE_DEFINITION||e.kind===Kind.UNION_TYPE_DEFINITION||e.kind===Kind.ENUM_TYPE_DEFINITION||e.kind===Kind.INPUT_OBJECT_TYPE_DEFINITION}function re(e){return e.kind===Kind.SCALAR_TYPE_EXTENSION||e.kind===Kind.OBJECT_TYPE_EXTENSION||e.kind===Kind.INTERFACE_TYPE_EXTENSION||e.kind===Kind.UNION_TYPE_EXTENSION||e.kind===Kind.ENUM_TYPE_EXTENSION||e.kind===Kind.INPUT_OBJECT_TYPE_EXTENSION}var rt=function(){return Object.create(null)},rn=Array.prototype,rr=rn.forEach,ri=rn.slice,ra=function(){function e(e,t){void 0===e&&(e=!0),void 0===t&&(t=rt),this.weakness=e,this.makeData=t}return e.prototype.lookup=function(){for(var e=[],t=0;tclass{constructor(){this.id=["slot",rc++,Date.now(),Math.random().toString(36).slice(2),].join(":")}hasValue(){for(let e=rs;e;e=e.parent)if(this.id in e.slots){let t=e.slots[this.id];if(t===ru)break;return e!==rs&&(rs.slots[this.id]=t),!0}return rs&&(rs.slots[this.id]=ru),!1}getValue(){if(this.hasValue())return rs.slots[this.id]}withValue(e,t,n,r){let i={__proto__:null,[this.id]:e},a=rs;rs={parent:a,slots:i};try{return t.apply(r,n)}finally{rs=a}}static bind(e){let t=rs;return function(){let n=rs;try{return rs=t,e.apply(this,arguments)}finally{rs=n}}}static noContext(e,t,n){if(!rs)return e.apply(n,t);{let r=rs;try{return rs=null,e.apply(n,t)}finally{rs=r}}}};function rf(e){try{return e()}catch(t){}}let rd="@wry/context:Slot",rh=rf(()=>globalThis)||rf(()=>global)||Object.create(null),rp=rh,rb=rp[rd]||Array[rd]||function(e){try{Object.defineProperty(rp,rd,{value:e,enumerable:!1,writable:!1,configurable:!0})}finally{return e}}(rl()),{bind:rm,noContext:rg}=rb;function rv(){}var ry=function(){function e(e,t){void 0===e&&(e=1/0),void 0===t&&(t=rv),this.max=e,this.dispose=t,this.map=new Map,this.newest=null,this.oldest=null}return e.prototype.has=function(e){return this.map.has(e)},e.prototype.get=function(e){var t=this.getNode(e);return t&&t.value},e.prototype.getNode=function(e){var t=this.map.get(e);if(t&&t!==this.newest){var n=t.older,r=t.newer;r&&(r.older=n),n&&(n.newer=r),t.older=this.newest,t.older.newer=t,t.newer=null,this.newest=t,t===this.oldest&&(this.oldest=r)}return t},e.prototype.set=function(e,t){var n=this.getNode(e);return n?n.value=t:(n={key:e,value:t,newer:null,older:this.newest},this.newest&&(this.newest.newer=n),this.newest=n,this.oldest=this.oldest||n,this.map.set(e,n),n.value)},e.prototype.clean=function(){for(;this.oldest&&this.map.size>this.max;)this.delete(this.oldest.key)},e.prototype.delete=function(e){var t=this.map.get(e);return!!t&&(t===this.newest&&(this.newest=t.older),t===this.oldest&&(this.oldest=t.newer),t.newer&&(t.newer.older=t.older),t.older&&(t.older.newer=t.newer),this.map.delete(e),this.dispose(t.value,e),!0)},e}(),rw=new rb,r_=Object.prototype.hasOwnProperty,rE=void 0===(n=Array.from)?function(e){var t=[];return e.forEach(function(e){return t.push(e)}),t}:n;function rS(e){var t=e.unsubscribe;"function"==typeof t&&(e.unsubscribe=void 0,t())}var rk=[],rx=100;function rT(e,t){if(!e)throw Error(t||"assertion failure")}function rM(e,t){var n=e.length;return n>0&&n===t.length&&e[n-1]===t[n-1]}function rO(e){switch(e.length){case 0:throw Error("unknown value");case 1:return e[0];case 2:throw e[1]}}function rA(e){return e.slice(0)}var rL=function(){function e(t){this.fn=t,this.parents=new Set,this.childValues=new Map,this.dirtyChildren=null,this.dirty=!0,this.recomputing=!1,this.value=[],this.deps=null,++e.count}return e.prototype.peek=function(){if(1===this.value.length&&!rN(this))return rC(this),this.value[0]},e.prototype.recompute=function(e){return rT(!this.recomputing,"already recomputing"),rC(this),rN(this)?rI(this,e):rO(this.value)},e.prototype.setDirty=function(){this.dirty||(this.dirty=!0,this.value.length=0,rR(this),rS(this))},e.prototype.dispose=function(){var e=this;this.setDirty(),rH(this),rF(this,function(t,n){t.setDirty(),r$(t,e)})},e.prototype.forget=function(){this.dispose()},e.prototype.dependOn=function(e){e.add(this),this.deps||(this.deps=rk.pop()||new Set),this.deps.add(e)},e.prototype.forgetDeps=function(){var e=this;this.deps&&(rE(this.deps).forEach(function(t){return t.delete(e)}),this.deps.clear(),rk.push(this.deps),this.deps=null)},e.count=0,e}();function rC(e){var t=rw.getValue();if(t)return e.parents.add(t),t.childValues.has(e)||t.childValues.set(e,[]),rN(e)?rY(t,e):rB(t,e),t}function rI(e,t){return rH(e),rw.withValue(e,rD,[e,t]),rz(e,t)&&rP(e),rO(e.value)}function rD(e,t){e.recomputing=!0,e.value.length=0;try{e.value[0]=e.fn.apply(null,t)}catch(n){e.value[1]=n}e.recomputing=!1}function rN(e){return e.dirty||!!(e.dirtyChildren&&e.dirtyChildren.size)}function rP(e){e.dirty=!1,!rN(e)&&rj(e)}function rR(e){rF(e,rY)}function rj(e){rF(e,rB)}function rF(e,t){var n=e.parents.size;if(n)for(var r=rE(e.parents),i=0;i0&&e.childValues.forEach(function(t,n){r$(e,n)}),e.forgetDeps(),rT(null===e.dirtyChildren)}function r$(e,t){t.parents.delete(e),e.childValues.delete(t),rU(e,t)}function rz(e,t){if("function"==typeof e.subscribe)try{rS(e),e.unsubscribe=e.subscribe.apply(null,t)}catch(n){return e.setDirty(),!1}return!0}var rG={setDirty:!0,dispose:!0,forget:!0};function rW(e){var t=new Map,n=e&&e.subscribe;function r(e){var r=rw.getValue();if(r){var i=t.get(e);i||t.set(e,i=new Set),r.dependOn(i),"function"==typeof n&&(rS(i),i.unsubscribe=n(e))}}return r.dirty=function(e,n){var r=t.get(e);if(r){var i=n&&r_.call(rG,n)?n:"setDirty";rE(r).forEach(function(e){return e[i]()}),t.delete(e),rS(r)}},r}function rK(){var e=new ra("function"==typeof WeakMap);return function(){return e.lookupArray(arguments)}}var rV=rK(),rq=new Set;function rZ(e,t){void 0===t&&(t=Object.create(null));var n=new ry(t.max||65536,function(e){return e.dispose()}),r=t.keyArgs,i=t.makeCacheKey||rK(),a=function(){var a=i.apply(null,r?r.apply(null,arguments):arguments);if(void 0===a)return e.apply(null,arguments);var o=n.get(a);o||(n.set(a,o=new rL(e)),o.subscribe=t.subscribe,o.forget=function(){return n.delete(a)});var s=o.recompute(Array.prototype.slice.call(arguments));return n.set(a,o),rq.add(n),rw.hasValue()||(rq.forEach(function(e){return e.clean()}),rq.clear()),s};function o(e){var t=n.get(e);t&&t.setDirty()}function s(e){var t=n.get(e);if(t)return t.peek()}function u(e){return n.delete(e)}return Object.defineProperty(a,"size",{get:function(){return n.map.size},configurable:!1,enumerable:!1}),a.dirtyKey=o,a.dirty=function(){o(i.apply(null,arguments))},a.peekKey=s,a.peek=function(){return s(i.apply(null,arguments))},a.forgetKey=u,a.forget=function(){return u(i.apply(null,arguments))},a.makeCacheKey=i,a.getKey=r?function(){return i.apply(null,r.apply(null,arguments))}:i,Object.freeze(a)}var rX=new rb,rJ=new WeakMap;function rQ(e){var t=rJ.get(e);return t||rJ.set(e,t={vars:new Set,dep:rW()}),t}function r1(e){rQ(e).vars.forEach(function(t){return t.forgetCache(e)})}function r0(e){rQ(e).vars.forEach(function(t){return t.attachCache(e)})}function r2(e){var t=new Set,n=new Set,r=function(a){if(arguments.length>0){if(e!==a){e=a,t.forEach(function(e){rQ(e).dep.dirty(r),r3(e)});var o=Array.from(n);n.clear(),o.forEach(function(t){return t(e)})}}else{var s=rX.getValue();s&&(i(s),rQ(s).dep(r))}return e};r.onNextChange=function(e){return n.add(e),function(){n.delete(e)}};var i=r.attachCache=function(e){return t.add(e),rQ(e).vars.add(r),r};return r.forgetCache=function(e){return t.delete(e)},r}function r3(e){e.broadcastWatches&&e.broadcastWatches()}var r4=function(){function e(e){var t=e.cache,n=e.client,r=e.resolvers,i=e.fragmentMatcher;this.selectionsToResolveCache=new WeakMap,this.cache=t,n&&(this.client=n),r&&this.addResolvers(r),i&&this.setFragmentMatcher(i)}return e.prototype.addResolvers=function(e){var t=this;this.resolvers=this.resolvers||{},Array.isArray(e)?e.forEach(function(e){t.resolvers=tj(t.resolvers,e)}):this.resolvers=tj(this.resolvers,e)},e.prototype.setResolvers=function(e){this.resolvers={},this.addResolvers(e)},e.prototype.getResolvers=function(){return this.resolvers||{}},e.prototype.runResolvers=function(e){var t=e.document,n=e.remoteResult,r=e.context,i=e.variables,a=e.onlyRunForcedResolvers,o=void 0!==a&&a;return(0,en.mG)(this,void 0,void 0,function(){return(0,en.Jh)(this,function(e){return t?[2,this.resolveDocument(t,n.data,r,i,this.fragmentMatcher,o).then(function(e){return(0,en.pi)((0,en.pi)({},n),{data:e.result})})]:[2,n]})})},e.prototype.setFragmentMatcher=function(e){this.fragmentMatcher=e},e.prototype.getFragmentMatcher=function(){return this.fragmentMatcher},e.prototype.clientQuery=function(e){return tb(["client"],e)&&this.resolvers?e:null},e.prototype.serverQuery=function(e){return n$(e)},e.prototype.prepareContext=function(e){var t=this.cache;return(0,en.pi)((0,en.pi)({},e),{cache:t,getCacheKey:function(e){return t.identify(e)}})},e.prototype.addExportedVariables=function(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),(0,en.mG)(this,void 0,void 0,function(){return(0,en.Jh)(this,function(r){return e?[2,this.resolveDocument(e,this.buildRootValueFromCache(e,t)||{},this.prepareContext(n),t).then(function(e){return(0,en.pi)((0,en.pi)({},t),e.exportedVariables)})]:[2,(0,en.pi)({},t)]})})},e.prototype.shouldForceResolvers=function(e){var t=!1;return tl(e,{Directive:{enter:function(e){if("client"===e.name.value&&e.arguments&&(t=e.arguments.some(function(e){return"always"===e.name.value&&"BooleanValue"===e.value.kind&&!0===e.value.value})))return tc}}}),t},e.prototype.buildRootValueFromCache=function(e,t){return this.cache.diff({query:nH(e),variables:t,returnPartialData:!0,optimistic:!1}).result},e.prototype.resolveDocument=function(e,t,n,r,i,a){return void 0===n&&(n={}),void 0===r&&(r={}),void 0===i&&(i=function(){return!0}),void 0===a&&(a=!1),(0,en.mG)(this,void 0,void 0,function(){var o,s,u,c,l,f,d,h,p,b,m;return(0,en.Jh)(this,function(g){return o=e8(e),s=e4(e),u=eL(s),c=this.collectSelectionsToResolve(o,u),f=(l=o.operation)?l.charAt(0).toUpperCase()+l.slice(1):"Query",d=this,h=d.cache,p=d.client,b={fragmentMap:u,context:(0,en.pi)((0,en.pi)({},n),{cache:h,client:p}),variables:r,fragmentMatcher:i,defaultOperationType:f,exportedVariables:{},selectionsToResolve:c,onlyRunForcedResolvers:a},m=!1,[2,this.resolveSelectionSet(o.selectionSet,m,t,b).then(function(e){return{result:e,exportedVariables:b.exportedVariables}})]})})},e.prototype.resolveSelectionSet=function(e,t,n,r){return(0,en.mG)(this,void 0,void 0,function(){var i,a,o,s,u,c=this;return(0,en.Jh)(this,function(l){return i=r.fragmentMap,a=r.context,o=r.variables,s=[n],u=function(e){return(0,en.mG)(c,void 0,void 0,function(){var u,c;return(0,en.Jh)(this,function(l){return(t||r.selectionsToResolve.has(e))&&td(e,o)?eQ(e)?[2,this.resolveField(e,t,n,r).then(function(t){var n;void 0!==t&&s.push(((n={})[eX(e)]=t,n))})]:(e1(e)?u=e:(u=i[e.name.value],__DEV__?(0,Q.kG)(u,"No fragment named ".concat(e.name.value)):(0,Q.kG)(u,11)),u&&u.typeCondition&&(c=u.typeCondition.name.value,r.fragmentMatcher(n,c,a)))?[2,this.resolveSelectionSet(u.selectionSet,t,n,r).then(function(e){s.push(e)})]:[2]:[2]})})},[2,Promise.all(e.selections.map(u)).then(function(){return tF(s)})]})})},e.prototype.resolveField=function(e,t,n,r){return(0,en.mG)(this,void 0,void 0,function(){var i,a,o,s,u,c,l,f,d,h=this;return(0,en.Jh)(this,function(p){return n?(i=r.variables,a=e.name.value,o=eX(e),s=a!==o,c=Promise.resolve(u=n[o]||n[a]),(!r.onlyRunForcedResolvers||this.shouldForceResolvers(e))&&(l=n.__typename||r.defaultOperationType,(f=this.resolvers&&this.resolvers[l])&&(d=f[s?a:o])&&(c=Promise.resolve(rX.withValue(this.cache,d,[n,eZ(e,i),r.context,{field:e,fragmentMap:r.fragmentMap},])))),[2,c.then(function(n){if(void 0===n&&(n=u),e.directives&&e.directives.forEach(function(e){"export"===e.name.value&&e.arguments&&e.arguments.forEach(function(e){"as"===e.name.value&&"StringValue"===e.value.kind&&(r.exportedVariables[e.value.value]=n)})}),!e.selectionSet||null==n)return n;var i,a,o=null!==(a=null===(i=e.directives)||void 0===i?void 0:i.some(function(e){return"client"===e.name.value}))&&void 0!==a&&a;return Array.isArray(n)?h.resolveSubSelectedArray(e,t||o,n,r):e.selectionSet?h.resolveSelectionSet(e.selectionSet,t||o,n,r):void 0})]):[2,null]})})},e.prototype.resolveSubSelectedArray=function(e,t,n,r){var i=this;return Promise.all(n.map(function(n){return null===n?null:Array.isArray(n)?i.resolveSubSelectedArray(e,t,n,r):e.selectionSet?i.resolveSelectionSet(e.selectionSet,t,n,r):void 0}))},e.prototype.collectSelectionsToResolve=function(e,t){var n=function(e){return!Array.isArray(e)},r=this.selectionsToResolveCache;function i(e){if(!r.has(e)){var a=new Set;r.set(e,a),tl(e,{Directive:function(e,t,r,i,o){"client"===e.name.value&&o.forEach(function(e){n(e)&&n9(e)&&a.add(e)})},FragmentSpread:function(e,r,o,s,u){var c=t[e.name.value];__DEV__?(0,Q.kG)(c,"No fragment named ".concat(e.name.value)):(0,Q.kG)(c,12);var l=i(c);l.size>0&&(u.forEach(function(e){n(e)&&n9(e)&&a.add(e)}),a.add(e),l.forEach(function(e){a.add(e)}))}})}return r.get(e)}return i(e)},e}(),r6=new(t_.mr?WeakMap:Map);function r5(e,t){var n=e[t];"function"==typeof n&&(e[t]=function(){return r6.set(e,(r6.get(e)+1)%1e15),n.apply(this,arguments)})}function r8(e){e.notifyTimeout&&(clearTimeout(e.notifyTimeout),e.notifyTimeout=void 0)}var r9=function(){function e(e,t){void 0===t&&(t=e.generateQueryId()),this.queryId=t,this.listeners=new Set,this.document=null,this.lastRequestId=1,this.subscriptions=new Set,this.stopped=!1,this.dirty=!1,this.observableQuery=null;var n=this.cache=e.cache;r6.has(n)||(r6.set(n,0),r5(n,"evict"),r5(n,"modify"),r5(n,"reset"))}return e.prototype.init=function(e){var t=e.networkStatus||nZ.I.loading;return this.variables&&this.networkStatus!==nZ.I.loading&&!(0,nm.D)(this.variables,e.variables)&&(t=nZ.I.setVariables),(0,nm.D)(e.variables,this.variables)||(this.lastDiff=void 0),Object.assign(this,{document:e.document,variables:e.variables,networkError:null,graphQLErrors:this.graphQLErrors||[],networkStatus:t}),e.observableQuery&&this.setObservableQuery(e.observableQuery),e.lastRequestId&&(this.lastRequestId=e.lastRequestId),this},e.prototype.reset=function(){r8(this),this.dirty=!1},e.prototype.getDiff=function(e){void 0===e&&(e=this.variables);var t=this.getDiffOptions(e);if(this.lastDiff&&(0,nm.D)(t,this.lastDiff.options))return this.lastDiff.diff;this.updateWatch(this.variables=e);var n=this.observableQuery;if(n&&"no-cache"===n.options.fetchPolicy)return{complete:!1};var r=this.cache.diff(t);return this.updateLastDiff(r,t),r},e.prototype.updateLastDiff=function(e,t){this.lastDiff=e?{diff:e,options:t||this.getDiffOptions()}:void 0},e.prototype.getDiffOptions=function(e){var t;return void 0===e&&(e=this.variables),{query:this.document,variables:e,returnPartialData:!0,optimistic:!0,canonizeResults:null===(t=this.observableQuery)||void 0===t?void 0:t.options.canonizeResults}},e.prototype.setDiff=function(e){var t=this,n=this.lastDiff&&this.lastDiff.diff;this.updateLastDiff(e),this.dirty||(0,nm.D)(n&&n.result,e&&e.result)||(this.dirty=!0,this.notifyTimeout||(this.notifyTimeout=setTimeout(function(){return t.notify()},0)))},e.prototype.setObservableQuery=function(e){var t=this;e!==this.observableQuery&&(this.oqListener&&this.listeners.delete(this.oqListener),this.observableQuery=e,e?(e.queryInfo=this,this.listeners.add(this.oqListener=function(){t.getDiff().fromOptimisticTransaction?e.observe():n4(e)})):delete this.oqListener)},e.prototype.notify=function(){var e=this;r8(this),this.shouldNotify()&&this.listeners.forEach(function(t){return t(e)}),this.dirty=!1},e.prototype.shouldNotify=function(){if(!this.dirty||!this.listeners.size)return!1;if((0,nZ.O)(this.networkStatus)&&this.observableQuery){var e=this.observableQuery.options.fetchPolicy;if("cache-only"!==e&&"cache-and-network"!==e)return!1}return!0},e.prototype.stop=function(){if(!this.stopped){this.stopped=!0,this.reset(),this.cancel(),this.cancel=e.prototype.cancel,this.subscriptions.forEach(function(e){return e.unsubscribe()});var t=this.observableQuery;t&&t.stopPolling()}},e.prototype.cancel=function(){},e.prototype.updateWatch=function(e){var t=this;void 0===e&&(e=this.variables);var n=this.observableQuery;if(!n||"no-cache"!==n.options.fetchPolicy){var r=(0,en.pi)((0,en.pi)({},this.getDiffOptions(e)),{watcher:this,callback:function(e){return t.setDiff(e)}});this.lastWatch&&(0,nm.D)(r,this.lastWatch)||(this.cancel(),this.cancel=this.cache.watch(this.lastWatch=r))}},e.prototype.resetLastWrite=function(){this.lastWrite=void 0},e.prototype.shouldWrite=function(e,t){var n=this.lastWrite;return!(n&&n.dmCount===r6.get(this.cache)&&(0,nm.D)(t,n.variables)&&(0,nm.D)(e.data,n.result.data))},e.prototype.markResult=function(e,t,n,r){var i=this,a=new tB,o=(0,tP.O)(e.errors)?e.errors.slice(0):[];if(this.reset(),"incremental"in e&&(0,tP.O)(e.incremental)){var s=tG(this.getDiff().result,e);e.data=s}else if("hasNext"in e&&e.hasNext){var u=this.getDiff();e.data=a.merge(u.result,e.data)}this.graphQLErrors=o,"no-cache"===n.fetchPolicy?this.updateLastDiff({result:e.data,complete:!0},this.getDiffOptions(n.variables)):0!==r&&(r7(e,n.errorPolicy)?this.cache.performTransaction(function(a){if(i.shouldWrite(e,n.variables))a.writeQuery({query:t,data:e.data,variables:n.variables,overwrite:1===r}),i.lastWrite={result:e,variables:n.variables,dmCount:r6.get(i.cache)};else if(i.lastDiff&&i.lastDiff.diff.complete){e.data=i.lastDiff.diff.result;return}var o=i.getDiffOptions(n.variables),s=a.diff(o);i.stopped||i.updateWatch(n.variables),i.updateLastDiff(s,o),s.complete&&(e.data=s.result)}):this.lastWrite=void 0)},e.prototype.markReady=function(){return this.networkError=null,this.networkStatus=nZ.I.ready},e.prototype.markError=function(e){return this.networkStatus=nZ.I.error,this.lastWrite=void 0,this.reset(),e.graphQLErrors&&(this.graphQLErrors=e.graphQLErrors),e.networkError&&(this.networkError=e.networkError),e},e}();function r7(e,t){void 0===t&&(t="none");var n="ignore"===t||"all"===t,r=!nO(e);return!r&&n&&e.data&&(r=!0),r}var ie=Object.prototype.hasOwnProperty,it=function(){function e(e){var t=e.cache,n=e.link,r=e.defaultOptions,i=e.queryDeduplication,a=void 0!==i&&i,o=e.onBroadcast,s=e.ssrMode,u=void 0!==s&&s,c=e.clientAwareness,l=void 0===c?{}:c,f=e.localState,d=e.assumeImmutableResults;this.clientAwareness={},this.queries=new Map,this.fetchCancelFns=new Map,this.transformCache=new(t_.mr?WeakMap:Map),this.queryIdCounter=1,this.requestIdCounter=1,this.mutationIdCounter=1,this.inFlightLinkObservables=new Map,this.cache=t,this.link=n,this.defaultOptions=r||Object.create(null),this.queryDeduplication=a,this.clientAwareness=l,this.localState=f||new r4({cache:t}),this.ssrMode=u,this.assumeImmutableResults=!!d,(this.onBroadcast=o)&&(this.mutationStore=Object.create(null))}return e.prototype.stop=function(){var e=this;this.queries.forEach(function(t,n){e.stopQueryNoBroadcast(n)}),this.cancelPendingFetches(__DEV__?new Q.ej("QueryManager stopped while query was in flight"):new Q.ej(14))},e.prototype.cancelPendingFetches=function(e){this.fetchCancelFns.forEach(function(t){return t(e)}),this.fetchCancelFns.clear()},e.prototype.mutate=function(e){var t,n,r=e.mutation,i=e.variables,a=e.optimisticResponse,o=e.updateQueries,s=e.refetchQueries,u=void 0===s?[]:s,c=e.awaitRefetchQueries,l=void 0!==c&&c,f=e.update,d=e.onQueryUpdated,h=e.fetchPolicy,p=void 0===h?(null===(t=this.defaultOptions.mutate)||void 0===t?void 0:t.fetchPolicy)||"network-only":h,b=e.errorPolicy,m=void 0===b?(null===(n=this.defaultOptions.mutate)||void 0===n?void 0:n.errorPolicy)||"none":b,g=e.keepRootFields,v=e.context;return(0,en.mG)(this,void 0,void 0,function(){var e,t,n,s,c,h;return(0,en.Jh)(this,function(b){switch(b.label){case 0:if(__DEV__?(0,Q.kG)(r,"mutation option is required. You must specify your GraphQL document in the mutation option."):(0,Q.kG)(r,15),__DEV__?(0,Q.kG)("network-only"===p||"no-cache"===p,"Mutations support only 'network-only' or 'no-cache' fetchPolicy strings. The default `network-only` behavior automatically writes mutation results to the cache. Passing `no-cache` skips the cache write."):(0,Q.kG)("network-only"===p||"no-cache"===p,16),e=this.generateMutationId(),n=(t=this.transform(r)).document,s=t.hasClientExports,r=this.cache.transformForLink(n),i=this.getVariables(r,i),!s)return[3,2];return[4,this.localState.addExportedVariables(r,i,v)];case 1:i=b.sent(),b.label=2;case 2:return c=this.mutationStore&&(this.mutationStore[e]={mutation:r,variables:i,loading:!0,error:null}),a&&this.markMutationOptimistic(a,{mutationId:e,document:r,variables:i,fetchPolicy:p,errorPolicy:m,context:v,updateQueries:o,update:f,keepRootFields:g}),this.broadcastQueries(),h=this,[2,new Promise(function(t,n){return nM(h.getObservableFromLink(r,(0,en.pi)((0,en.pi)({},v),{optimisticResponse:a}),i,!1),function(t){if(nO(t)&&"none"===m)throw new tN.cA({graphQLErrors:nA(t)});c&&(c.loading=!1,c.error=null);var n=(0,en.pi)({},t);return"function"==typeof u&&(u=u(n)),"ignore"===m&&nO(n)&&delete n.errors,h.markMutationResult({mutationId:e,result:n,document:r,variables:i,fetchPolicy:p,errorPolicy:m,context:v,update:f,updateQueries:o,awaitRefetchQueries:l,refetchQueries:u,removeOptimistic:a?e:void 0,onQueryUpdated:d,keepRootFields:g})}).subscribe({next:function(e){h.broadcastQueries(),"hasNext"in e&&!1!==e.hasNext||t(e)},error:function(t){c&&(c.loading=!1,c.error=t),a&&h.cache.removeOptimistic(e),h.broadcastQueries(),n(t instanceof tN.cA?t:new tN.cA({networkError:t}))}})})]}})})},e.prototype.markMutationResult=function(e,t){var n=this;void 0===t&&(t=this.cache);var r=e.result,i=[],a="no-cache"===e.fetchPolicy;if(!a&&r7(r,e.errorPolicy)){if(tU(r)||i.push({result:r.data,dataId:"ROOT_MUTATION",query:e.document,variables:e.variables}),tU(r)&&(0,tP.O)(r.incremental)){var o=t.diff({id:"ROOT_MUTATION",query:this.transform(e.document).asQuery,variables:e.variables,optimistic:!1,returnPartialData:!0}),s=void 0;o.result&&(s=tG(o.result,r)),void 0!==s&&(r.data=s,i.push({result:s,dataId:"ROOT_MUTATION",query:e.document,variables:e.variables}))}var u=e.updateQueries;u&&this.queries.forEach(function(e,a){var o=e.observableQuery,s=o&&o.queryName;if(s&&ie.call(u,s)){var c,l=u[s],f=n.queries.get(a),d=f.document,h=f.variables,p=t.diff({query:d,variables:h,returnPartialData:!0,optimistic:!1}),b=p.result;if(p.complete&&b){var m=l(b,{mutationResult:r,queryName:d&&e3(d)||void 0,queryVariables:h});m&&i.push({result:m,dataId:"ROOT_QUERY",query:d,variables:h})}}})}if(i.length>0||e.refetchQueries||e.update||e.onQueryUpdated||e.removeOptimistic){var c=[];if(this.refetchQueries({updateCache:function(t){a||i.forEach(function(e){return t.write(e)});var o=e.update,s=!t$(r)||tU(r)&&!r.hasNext;if(o){if(!a){var u=t.diff({id:"ROOT_MUTATION",query:n.transform(e.document).asQuery,variables:e.variables,optimistic:!1,returnPartialData:!0});u.complete&&("incremental"in(r=(0,en.pi)((0,en.pi)({},r),{data:u.result}))&&delete r.incremental,"hasNext"in r&&delete r.hasNext)}s&&o(t,r,{context:e.context,variables:e.variables})}a||e.keepRootFields||!s||t.modify({id:"ROOT_MUTATION",fields:function(e,t){var n=t.fieldName,r=t.DELETE;return"__typename"===n?e:r}})},include:e.refetchQueries,optimistic:!1,removeOptimistic:e.removeOptimistic,onQueryUpdated:e.onQueryUpdated||null}).forEach(function(e){return c.push(e)}),e.awaitRefetchQueries||e.onQueryUpdated)return Promise.all(c).then(function(){return r})}return Promise.resolve(r)},e.prototype.markMutationOptimistic=function(e,t){var n=this,r="function"==typeof e?e(t.variables):e;return this.cache.recordOptimisticTransaction(function(e){try{n.markMutationResult((0,en.pi)((0,en.pi)({},t),{result:{data:r}}),e)}catch(i){__DEV__&&Q.kG.error(i)}},t.mutationId)},e.prototype.fetchQuery=function(e,t,n){return this.fetchQueryObservable(e,t,n).promise},e.prototype.getQueryStore=function(){var e=Object.create(null);return this.queries.forEach(function(t,n){e[n]={variables:t.variables,networkStatus:t.networkStatus,networkError:t.networkError,graphQLErrors:t.graphQLErrors}}),e},e.prototype.resetErrors=function(e){var t=this.queries.get(e);t&&(t.networkError=void 0,t.graphQLErrors=[])},e.prototype.transform=function(e){var t=this.transformCache;if(!t.has(e)){var n=this.cache.transformDocument(e),r=nY(n),i=this.localState.clientQuery(n),a=r&&this.localState.serverQuery(r),o={document:n,hasClientExports:tm(n),hasForcedResolvers:this.localState.shouldForceResolvers(n),clientQuery:i,serverQuery:a,defaultVars:e9(e2(n)),asQuery:(0,en.pi)((0,en.pi)({},n),{definitions:n.definitions.map(function(e){return"OperationDefinition"===e.kind&&"query"!==e.operation?(0,en.pi)((0,en.pi)({},e),{operation:"query"}):e})})},s=function(e){e&&!t.has(e)&&t.set(e,o)};s(e),s(n),s(i),s(a)}return t.get(e)},e.prototype.getVariables=function(e,t){return(0,en.pi)((0,en.pi)({},this.transform(e).defaultVars),t)},e.prototype.watchQuery=function(e){void 0===(e=(0,en.pi)((0,en.pi)({},e),{variables:this.getVariables(e.query,e.variables)})).notifyOnNetworkStatusChange&&(e.notifyOnNetworkStatusChange=!1);var t=new r9(this),n=new n3({queryManager:this,queryInfo:t,options:e});return this.queries.set(n.queryId,t),t.init({document:n.query,observableQuery:n,variables:n.variables}),n},e.prototype.query=function(e,t){var n=this;return void 0===t&&(t=this.generateQueryId()),__DEV__?(0,Q.kG)(e.query,"query option is required. You must specify your GraphQL document in the query option."):(0,Q.kG)(e.query,17),__DEV__?(0,Q.kG)("Document"===e.query.kind,'You must wrap the query string in a "gql" tag.'):(0,Q.kG)("Document"===e.query.kind,18),__DEV__?(0,Q.kG)(!e.returnPartialData,"returnPartialData option only supported on watchQuery."):(0,Q.kG)(!e.returnPartialData,19),__DEV__?(0,Q.kG)(!e.pollInterval,"pollInterval option only supported on watchQuery."):(0,Q.kG)(!e.pollInterval,20),this.fetchQuery(t,e).finally(function(){return n.stopQuery(t)})},e.prototype.generateQueryId=function(){return String(this.queryIdCounter++)},e.prototype.generateRequestId=function(){return this.requestIdCounter++},e.prototype.generateMutationId=function(){return String(this.mutationIdCounter++)},e.prototype.stopQueryInStore=function(e){this.stopQueryInStoreNoBroadcast(e),this.broadcastQueries()},e.prototype.stopQueryInStoreNoBroadcast=function(e){var t=this.queries.get(e);t&&t.stop()},e.prototype.clearStore=function(e){return void 0===e&&(e={discardWatches:!0}),this.cancelPendingFetches(__DEV__?new Q.ej("Store reset while query was in flight (not completed in link chain)"):new Q.ej(21)),this.queries.forEach(function(e){e.observableQuery?e.networkStatus=nZ.I.loading:e.stop()}),this.mutationStore&&(this.mutationStore=Object.create(null)),this.cache.reset(e)},e.prototype.getObservableQueries=function(e){var t=this;void 0===e&&(e="active");var n=new Map,r=new Map,i=new Set;return Array.isArray(e)&&e.forEach(function(e){"string"==typeof e?r.set(e,!1):eN(e)?r.set(t.transform(e).document,!1):(0,eO.s)(e)&&e.query&&i.add(e)}),this.queries.forEach(function(t,i){var a=t.observableQuery,o=t.document;if(a){if("all"===e){n.set(i,a);return}var s=a.queryName;if("standby"===a.options.fetchPolicy||"active"===e&&!a.hasObservers())return;("active"===e||s&&r.has(s)||o&&r.has(o))&&(n.set(i,a),s&&r.set(s,!0),o&&r.set(o,!0))}}),i.size&&i.forEach(function(e){var r=nG("legacyOneTimeQuery"),i=t.getQuery(r).init({document:e.query,variables:e.variables}),a=new n3({queryManager:t,queryInfo:i,options:(0,en.pi)((0,en.pi)({},e),{fetchPolicy:"network-only"})});(0,Q.kG)(a.queryId===r),i.setObservableQuery(a),n.set(r,a)}),__DEV__&&r.size&&r.forEach(function(e,t){!e&&__DEV__&&Q.kG.warn("Unknown query ".concat("string"==typeof t?"named ":"").concat(JSON.stringify(t,null,2)," requested in refetchQueries options.include array"))}),n},e.prototype.reFetchObservableQueries=function(e){var t=this;void 0===e&&(e=!1);var n=[];return this.getObservableQueries(e?"all":"active").forEach(function(r,i){var a=r.options.fetchPolicy;r.resetLastResults(),(e||"standby"!==a&&"cache-only"!==a)&&n.push(r.refetch()),t.getQuery(i).setDiff(null)}),this.broadcastQueries(),Promise.all(n)},e.prototype.setObservableQuery=function(e){this.getQuery(e.queryId).setObservableQuery(e)},e.prototype.startGraphQLSubscription=function(e){var t=this,n=e.query,r=e.fetchPolicy,i=e.errorPolicy,a=e.variables,o=e.context,s=void 0===o?{}:o;n=this.transform(n).document,a=this.getVariables(n,a);var u=function(e){return t.getObservableFromLink(n,s,e).map(function(a){"no-cache"!==r&&(r7(a,i)&&t.cache.write({query:n,result:a.data,dataId:"ROOT_SUBSCRIPTION",variables:e}),t.broadcastQueries());var o=nO(a),s=(0,tN.ls)(a);if(o||s){var u={};throw o&&(u.graphQLErrors=a.errors),s&&(u.protocolErrors=a.extensions[tN.YG]),new tN.cA(u)}return a})};if(this.transform(n).hasClientExports){var c=this.localState.addExportedVariables(n,a,s).then(u);return new eT(function(e){var t=null;return c.then(function(n){return t=n.subscribe(e)},e.error),function(){return t&&t.unsubscribe()}})}return u(a)},e.prototype.stopQuery=function(e){this.stopQueryNoBroadcast(e),this.broadcastQueries()},e.prototype.stopQueryNoBroadcast=function(e){this.stopQueryInStoreNoBroadcast(e),this.removeQuery(e)},e.prototype.removeQuery=function(e){this.fetchCancelFns.delete(e),this.queries.has(e)&&(this.getQuery(e).stop(),this.queries.delete(e))},e.prototype.broadcastQueries=function(){this.onBroadcast&&this.onBroadcast(),this.queries.forEach(function(e){return e.notify()})},e.prototype.getLocalState=function(){return this.localState},e.prototype.getObservableFromLink=function(e,t,n,r){var i,a,o=this;void 0===r&&(r=null!==(i=null==t?void 0:t.queryDeduplication)&&void 0!==i?i:this.queryDeduplication);var s=this.transform(e).serverQuery;if(s){var u=this,c=u.inFlightLinkObservables,l=u.link,f={query:s,variables:n,operationName:e3(s)||void 0,context:this.prepareContext((0,en.pi)((0,en.pi)({},t),{forceFetch:!r}))};if(t=f.context,r){var d=c.get(s)||new Map;c.set(s,d);var h=nx(n);if(!(a=d.get(h))){var p=new nq([np(l,f)]);d.set(h,a=p),p.beforeNext(function(){d.delete(h)&&d.size<1&&c.delete(s)})}}else a=new nq([np(l,f)])}else a=new nq([eT.of({data:{}})]),t=this.prepareContext(t);var b=this.transform(e).clientQuery;return b&&(a=nM(a,function(e){return o.localState.runResolvers({document:b,remoteResult:e,context:t,variables:n})})),a},e.prototype.getResultsFromLink=function(e,t,n){var r=e.lastRequestId=this.generateRequestId(),i=this.cache.transformForLink(this.transform(e.document).document);return nM(this.getObservableFromLink(i,n.context,n.variables),function(a){var o=nA(a),s=o.length>0;if(r>=e.lastRequestId){if(s&&"none"===n.errorPolicy)throw e.markError(new tN.cA({graphQLErrors:o}));e.markResult(a,i,n,t),e.markReady()}var u={data:a.data,loading:!1,networkStatus:nZ.I.ready};return s&&"ignore"!==n.errorPolicy&&(u.errors=o,u.networkStatus=nZ.I.error),u},function(t){var n=(0,tN.MS)(t)?t:new tN.cA({networkError:t});throw r>=e.lastRequestId&&e.markError(n),n})},e.prototype.fetchQueryObservable=function(e,t,n){return this.fetchConcastWithInfo(e,t,n).concast},e.prototype.fetchConcastWithInfo=function(e,t,n){var r,i,a=this;void 0===n&&(n=nZ.I.loading);var o=this.transform(t.query).document,s=this.getVariables(o,t.variables),u=this.getQuery(e),c=this.defaultOptions.watchQuery,l=t.fetchPolicy,f=void 0===l?c&&c.fetchPolicy||"cache-first":l,d=t.errorPolicy,h=void 0===d?c&&c.errorPolicy||"none":d,p=t.returnPartialData,b=void 0!==p&&p,m=t.notifyOnNetworkStatusChange,g=void 0!==m&&m,v=t.context,y=void 0===v?{}:v,w=Object.assign({},t,{query:o,variables:s,fetchPolicy:f,errorPolicy:h,returnPartialData:b,notifyOnNetworkStatusChange:g,context:y}),_=function(e){w.variables=e;var r=a.fetchQueryByPolicy(u,w,n);return"standby"!==w.fetchPolicy&&r.sources.length>0&&u.observableQuery&&u.observableQuery.applyNextFetchPolicy("after-fetch",t),r},E=function(){return a.fetchCancelFns.delete(e)};if(this.fetchCancelFns.set(e,function(e){E(),setTimeout(function(){return r.cancel(e)})}),this.transform(w.query).hasClientExports)r=new nq(this.localState.addExportedVariables(w.query,w.variables,w.context).then(_).then(function(e){return e.sources})),i=!0;else{var S=_(w.variables);i=S.fromLink,r=new nq(S.sources)}return r.promise.then(E,E),{concast:r,fromLink:i}},e.prototype.refetchQueries=function(e){var t=this,n=e.updateCache,r=e.include,i=e.optimistic,a=void 0!==i&&i,o=e.removeOptimistic,s=void 0===o?a?nG("refetchQueries"):void 0:o,u=e.onQueryUpdated,c=new Map;r&&this.getObservableQueries(r).forEach(function(e,n){c.set(n,{oq:e,lastDiff:t.getQuery(n).getDiff()})});var l=new Map;return n&&this.cache.batch({update:n,optimistic:a&&s||!1,removeOptimistic:s,onWatchUpdated:function(e,t,n){var r=e.watcher instanceof r9&&e.watcher.observableQuery;if(r){if(u){c.delete(r.queryId);var i=u(r,t,n);return!0===i&&(i=r.refetch()),!1!==i&&l.set(r,i),i}null!==u&&c.set(r.queryId,{oq:r,lastDiff:n,diff:t})}}}),c.size&&c.forEach(function(e,n){var r,i=e.oq,a=e.lastDiff,o=e.diff;if(u){if(!o){var s=i.queryInfo;s.reset(),o=s.getDiff()}r=u(i,o,a)}u&&!0!==r||(r=i.refetch()),!1!==r&&l.set(i,r),n.indexOf("legacyOneTimeQuery")>=0&&t.stopQueryNoBroadcast(n)}),s&&this.cache.removeOptimistic(s),l},e.prototype.fetchQueryByPolicy=function(e,t,n){var r=this,i=t.query,a=t.variables,o=t.fetchPolicy,s=t.refetchWritePolicy,u=t.errorPolicy,c=t.returnPartialData,l=t.context,f=t.notifyOnNetworkStatusChange,d=e.networkStatus;e.init({document:this.transform(i).document,variables:a,networkStatus:n});var h=function(){return e.getDiff(a)},p=function(t,n){void 0===n&&(n=e.networkStatus||nZ.I.loading);var o=t.result;!__DEV__||c||(0,nm.D)(o,{})||n5(t.missing);var s=function(e){return eT.of((0,en.pi)({data:e,loading:(0,nZ.O)(n),networkStatus:n},t.complete?null:{partial:!0}))};return o&&r.transform(i).hasForcedResolvers?r.localState.runResolvers({document:i,remoteResult:{data:o},context:l,variables:a,onlyRunForcedResolvers:!0}).then(function(e){return s(e.data||void 0)}):"none"===u&&n===nZ.I.refetch&&Array.isArray(t.missing)?s(void 0):s(o)},b="no-cache"===o?0:n===nZ.I.refetch&&"merge"!==s?1:2,m=function(){return r.getResultsFromLink(e,b,{variables:a,context:l,fetchPolicy:o,errorPolicy:u})},g=f&&"number"==typeof d&&d!==n&&(0,nZ.O)(n);switch(o){default:case"cache-first":var v=h();if(v.complete)return{fromLink:!1,sources:[p(v,e.markReady())]};if(c||g)return{fromLink:!0,sources:[p(v),m()]};return{fromLink:!0,sources:[m()]};case"cache-and-network":var v=h();if(v.complete||c||g)return{fromLink:!0,sources:[p(v),m()]};return{fromLink:!0,sources:[m()]};case"cache-only":return{fromLink:!1,sources:[p(h(),e.markReady())]};case"network-only":if(g)return{fromLink:!0,sources:[p(h()),m()]};return{fromLink:!0,sources:[m()]};case"no-cache":if(g)return{fromLink:!0,sources:[p(e.getDiff()),m(),]};return{fromLink:!0,sources:[m()]};case"standby":return{fromLink:!1,sources:[]}}},e.prototype.getQuery=function(e){return e&&!this.queries.has(e)&&this.queries.set(e,new r9(this,e)),this.queries.get(e)},e.prototype.prepareContext=function(e){void 0===e&&(e={});var t=this.localState.prepareContext(e);return(0,en.pi)((0,en.pi)({},t),{clientAwareness:this.clientAwareness})},e}(),ir=__webpack_require__(14012),ii=!1,ia=function(){function e(e){var t=this;this.resetStoreCallbacks=[],this.clearStoreCallbacks=[];var n=e.uri,r=e.credentials,i=e.headers,a=e.cache,o=e.ssrMode,s=void 0!==o&&o,u=e.ssrForceFetchDelay,c=void 0===u?0:u,l=e.connectToDevTools,f=void 0===l?"object"==typeof window&&!window.__APOLLO_CLIENT__&&__DEV__:l,d=e.queryDeduplication,h=void 0===d||d,p=e.defaultOptions,b=e.assumeImmutableResults,m=void 0!==b&&b,g=e.resolvers,v=e.typeDefs,y=e.fragmentMatcher,w=e.name,_=e.version,E=e.link;if(E||(E=n?new nh({uri:n,credentials:r,headers:i}):ta.empty()),!a)throw __DEV__?new Q.ej("To initialize Apollo Client, you must specify a 'cache' property in the options object. \nFor more information, please visit: https://go.apollo.dev/c/docs"):new Q.ej(9);if(this.link=E,this.cache=a,this.disableNetworkFetches=s||c>0,this.queryDeduplication=h,this.defaultOptions=p||Object.create(null),this.typeDefs=v,c&&setTimeout(function(){return t.disableNetworkFetches=!1},c),this.watchQuery=this.watchQuery.bind(this),this.query=this.query.bind(this),this.mutate=this.mutate.bind(this),this.resetStore=this.resetStore.bind(this),this.reFetchObservableQueries=this.reFetchObservableQueries.bind(this),f&&"object"==typeof window&&(window.__APOLLO_CLIENT__=this),!ii&&f&&__DEV__&&(ii=!0,"undefined"!=typeof window&&window.document&&window.top===window.self&&!window.__APOLLO_DEVTOOLS_GLOBAL_HOOK__)){var S=window.navigator,k=S&&S.userAgent,x=void 0;"string"==typeof k&&(k.indexOf("Chrome/")>-1?x="https://chrome.google.com/webstore/detail/apollo-client-developer-t/jdkknkkbebbapilgoeccciglkfbmbnfm":k.indexOf("Firefox/")>-1&&(x="https://addons.mozilla.org/en-US/firefox/addon/apollo-developer-tools/")),x&&__DEV__&&Q.kG.log("Download the Apollo DevTools for a better development experience: "+x)}this.version=nb,this.localState=new r4({cache:a,client:this,resolvers:g,fragmentMatcher:y}),this.queryManager=new it({cache:this.cache,link:this.link,defaultOptions:this.defaultOptions,queryDeduplication:h,ssrMode:s,clientAwareness:{name:w,version:_},localState:this.localState,assumeImmutableResults:m,onBroadcast:f?function(){t.devToolsHookCb&&t.devToolsHookCb({action:{},state:{queries:t.queryManager.getQueryStore(),mutations:t.queryManager.mutationStore||{}},dataWithOptimisticResults:t.cache.extract(!0)})}:void 0})}return e.prototype.stop=function(){this.queryManager.stop()},e.prototype.watchQuery=function(e){return this.defaultOptions.watchQuery&&(e=(0,ir.J)(this.defaultOptions.watchQuery,e)),this.disableNetworkFetches&&("network-only"===e.fetchPolicy||"cache-and-network"===e.fetchPolicy)&&(e=(0,en.pi)((0,en.pi)({},e),{fetchPolicy:"cache-first"})),this.queryManager.watchQuery(e)},e.prototype.query=function(e){return this.defaultOptions.query&&(e=(0,ir.J)(this.defaultOptions.query,e)),__DEV__?(0,Q.kG)("cache-and-network"!==e.fetchPolicy,"The cache-and-network fetchPolicy does not work with client.query, because client.query can only return a single result. Please use client.watchQuery to receive multiple results from the cache and the network, or consider using a different fetchPolicy, such as cache-first or network-only."):(0,Q.kG)("cache-and-network"!==e.fetchPolicy,10),this.disableNetworkFetches&&"network-only"===e.fetchPolicy&&(e=(0,en.pi)((0,en.pi)({},e),{fetchPolicy:"cache-first"})),this.queryManager.query(e)},e.prototype.mutate=function(e){return this.defaultOptions.mutate&&(e=(0,ir.J)(this.defaultOptions.mutate,e)),this.queryManager.mutate(e)},e.prototype.subscribe=function(e){return this.queryManager.startGraphQLSubscription(e)},e.prototype.readQuery=function(e,t){return void 0===t&&(t=!1),this.cache.readQuery(e,t)},e.prototype.readFragment=function(e,t){return void 0===t&&(t=!1),this.cache.readFragment(e,t)},e.prototype.writeQuery=function(e){var t=this.cache.writeQuery(e);return!1!==e.broadcast&&this.queryManager.broadcastQueries(),t},e.prototype.writeFragment=function(e){var t=this.cache.writeFragment(e);return!1!==e.broadcast&&this.queryManager.broadcastQueries(),t},e.prototype.__actionHookForDevTools=function(e){this.devToolsHookCb=e},e.prototype.__requestRaw=function(e){return np(this.link,e)},e.prototype.resetStore=function(){var e=this;return Promise.resolve().then(function(){return e.queryManager.clearStore({discardWatches:!1})}).then(function(){return Promise.all(e.resetStoreCallbacks.map(function(e){return e()}))}).then(function(){return e.reFetchObservableQueries()})},e.prototype.clearStore=function(){var e=this;return Promise.resolve().then(function(){return e.queryManager.clearStore({discardWatches:!0})}).then(function(){return Promise.all(e.clearStoreCallbacks.map(function(e){return e()}))})},e.prototype.onResetStore=function(e){var t=this;return this.resetStoreCallbacks.push(e),function(){t.resetStoreCallbacks=t.resetStoreCallbacks.filter(function(t){return t!==e})}},e.prototype.onClearStore=function(e){var t=this;return this.clearStoreCallbacks.push(e),function(){t.clearStoreCallbacks=t.clearStoreCallbacks.filter(function(t){return t!==e})}},e.prototype.reFetchObservableQueries=function(e){return this.queryManager.reFetchObservableQueries(e)},e.prototype.refetchQueries=function(e){var t=this.queryManager.refetchQueries(e),n=[],r=[];t.forEach(function(e,t){n.push(t),r.push(e)});var i=Promise.all(r);return i.queries=n,i.results=r,i.catch(function(e){__DEV__&&Q.kG.debug("In client.refetchQueries, Promise.all promise rejected with error ".concat(e))}),i},e.prototype.getObservableQueries=function(e){return void 0===e&&(e="active"),this.queryManager.getObservableQueries(e)},e.prototype.extract=function(e){return this.cache.extract(e)},e.prototype.restore=function(e){return this.cache.restore(e)},e.prototype.addResolvers=function(e){this.localState.addResolvers(e)},e.prototype.setResolvers=function(e){this.localState.setResolvers(e)},e.prototype.getResolvers=function(){return this.localState.getResolvers()},e.prototype.setLocalStateFragmentMatcher=function(e){this.localState.setFragmentMatcher(e)},e.prototype.setLink=function(e){this.link=this.queryManager.link=e},e}(),io=function(){function e(){this.getFragmentDoc=rZ(eA)}return e.prototype.batch=function(e){var t,n=this,r="string"==typeof e.optimistic?e.optimistic:!1===e.optimistic?null:void 0;return this.performTransaction(function(){return t=e.update(n)},r),t},e.prototype.recordOptimisticTransaction=function(e,t){this.performTransaction(e,t)},e.prototype.transformDocument=function(e){return e},e.prototype.transformForLink=function(e){return e},e.prototype.identify=function(e){},e.prototype.gc=function(){return[]},e.prototype.modify=function(e){return!1},e.prototype.readQuery=function(e,t){return void 0===t&&(t=!!e.optimistic),this.read((0,en.pi)((0,en.pi)({},e),{rootId:e.id||"ROOT_QUERY",optimistic:t}))},e.prototype.readFragment=function(e,t){return void 0===t&&(t=!!e.optimistic),this.read((0,en.pi)((0,en.pi)({},e),{query:this.getFragmentDoc(e.fragment,e.fragmentName),rootId:e.id,optimistic:t}))},e.prototype.writeQuery=function(e){var t=e.id,n=e.data,r=(0,en._T)(e,["id","data"]);return this.write(Object.assign(r,{dataId:t||"ROOT_QUERY",result:n}))},e.prototype.writeFragment=function(e){var t=e.id,n=e.data,r=e.fragment,i=e.fragmentName,a=(0,en._T)(e,["id","data","fragment","fragmentName"]);return this.write(Object.assign(a,{query:this.getFragmentDoc(r,i),dataId:t,result:n}))},e.prototype.updateQuery=function(e,t){return this.batch({update:function(n){var r=n.readQuery(e),i=t(r);return null==i?r:(n.writeQuery((0,en.pi)((0,en.pi)({},e),{data:i})),i)}})},e.prototype.updateFragment=function(e,t){return this.batch({update:function(n){var r=n.readFragment(e),i=t(r);return null==i?r:(n.writeFragment((0,en.pi)((0,en.pi)({},e),{data:i})),i)}})},e}(),is=function(e){function t(n,r,i,a){var o,s=e.call(this,n)||this;if(s.message=n,s.path=r,s.query=i,s.variables=a,Array.isArray(s.path)){s.missing=s.message;for(var u=s.path.length-1;u>=0;--u)s.missing=((o={})[s.path[u]]=s.missing,o)}else s.missing=s.path;return s.__proto__=t.prototype,s}return(0,en.ZT)(t,e),t}(Error),iu=__webpack_require__(10542),ic=Object.prototype.hasOwnProperty;function il(e){return null==e}function id(e,t){var n=e.__typename,r=e.id,i=e._id;if("string"==typeof n&&(t&&(t.keyObject=il(r)?il(i)?void 0:{_id:i}:{id:r}),il(r)&&!il(i)&&(r=i),!il(r)))return"".concat(n,":").concat("number"==typeof r||"string"==typeof r?r:JSON.stringify(r))}var ih={dataIdFromObject:id,addTypename:!0,resultCaching:!0,canonizeResults:!1};function ip(e){return(0,n1.o)(ih,e)}function ib(e){var t=e.canonizeResults;return void 0===t?ih.canonizeResults:t}function im(e,t){return eD(t)?e.get(t.__ref,"__typename"):t&&t.__typename}var ig=/^[_a-z][_0-9a-z]*/i;function iv(e){var t=e.match(ig);return t?t[0]:e}function iy(e,t,n){return!!(0,eO.s)(t)&&((0,tP.k)(t)?t.every(function(t){return iy(e,t,n)}):e.selections.every(function(e){if(eQ(e)&&td(e,n)){var r=eX(e);return ic.call(t,r)&&(!e.selectionSet||iy(e.selectionSet,t[r],n))}return!0}))}function iw(e){return(0,eO.s)(e)&&!eD(e)&&!(0,tP.k)(e)}function i_(){return new tB}function iE(e,t){var n=eL(e4(e));return{fragmentMap:n,lookupFragment:function(e){var r=n[e];return!r&&t&&(r=t.lookup(e)),r||null}}}var iS=Object.create(null),ik=function(){return iS},ix=Object.create(null),iT=function(){function e(e,t){var n=this;this.policies=e,this.group=t,this.data=Object.create(null),this.rootIds=Object.create(null),this.refs=Object.create(null),this.getFieldValue=function(e,t){return(0,iu.J)(eD(e)?n.get(e.__ref,t):e&&e[t])},this.canRead=function(e){return eD(e)?n.has(e.__ref):"object"==typeof e},this.toReference=function(e,t){if("string"==typeof e)return eI(e);if(eD(e))return e;var r=n.policies.identify(e)[0];if(r){var i=eI(r);return t&&n.merge(r,e),i}}}return e.prototype.toObject=function(){return(0,en.pi)({},this.data)},e.prototype.has=function(e){return void 0!==this.lookup(e,!0)},e.prototype.get=function(e,t){if(this.group.depend(e,t),ic.call(this.data,e)){var n=this.data[e];if(n&&ic.call(n,t))return n[t]}return"__typename"===t&&ic.call(this.policies.rootTypenamesById,e)?this.policies.rootTypenamesById[e]:this instanceof iL?this.parent.get(e,t):void 0},e.prototype.lookup=function(e,t){return(t&&this.group.depend(e,"__exists"),ic.call(this.data,e))?this.data[e]:this instanceof iL?this.parent.lookup(e,t):this.policies.rootTypenamesById[e]?Object.create(null):void 0},e.prototype.merge=function(e,t){var n,r=this;eD(e)&&(e=e.__ref),eD(t)&&(t=t.__ref);var i="string"==typeof e?this.lookup(n=e):e,a="string"==typeof t?this.lookup(n=t):t;if(a){__DEV__?(0,Q.kG)("string"==typeof n,"store.merge expects a string ID"):(0,Q.kG)("string"==typeof n,1);var o=new tB(iI).merge(i,a);if(this.data[n]=o,o!==i&&(delete this.refs[n],this.group.caching)){var s=Object.create(null);i||(s.__exists=1),Object.keys(a).forEach(function(e){if(!i||i[e]!==o[e]){s[e]=1;var t=iv(e);t===e||r.policies.hasKeyArgs(o.__typename,t)||(s[t]=1),void 0!==o[e]||r instanceof iL||delete o[e]}}),s.__typename&&!(i&&i.__typename)&&this.policies.rootTypenamesById[n]===o.__typename&&delete s.__typename,Object.keys(s).forEach(function(e){return r.group.dirty(n,e)})}}},e.prototype.modify=function(e,t){var n=this,r=this.lookup(e);if(r){var i=Object.create(null),a=!1,o=!0,s={DELETE:iS,INVALIDATE:ix,isReference:eD,toReference:this.toReference,canRead:this.canRead,readField:function(t,r){return n.policies.readField("string"==typeof t?{fieldName:t,from:r||eI(e)}:t,{store:n})}};if(Object.keys(r).forEach(function(u){var c=iv(u),l=r[u];if(void 0!==l){var f="function"==typeof t?t:t[u]||t[c];if(f){var d=f===ik?iS:f((0,iu.J)(l),(0,en.pi)((0,en.pi)({},s),{fieldName:c,storeFieldName:u,storage:n.getStorage(e,u)}));d===ix?n.group.dirty(e,u):(d===iS&&(d=void 0),d!==l&&(i[u]=d,a=!0,l=d))}void 0!==l&&(o=!1)}}),a)return this.merge(e,i),o&&(this instanceof iL?this.data[e]=void 0:delete this.data[e],this.group.dirty(e,"__exists")),!0}return!1},e.prototype.delete=function(e,t,n){var r,i=this.lookup(e);if(i){var a=this.getFieldValue(i,"__typename"),o=t&&n?this.policies.getStoreFieldName({typename:a,fieldName:t,args:n}):t;return this.modify(e,o?((r={})[o]=ik,r):ik)}return!1},e.prototype.evict=function(e,t){var n=!1;return e.id&&(ic.call(this.data,e.id)&&(n=this.delete(e.id,e.fieldName,e.args)),this instanceof iL&&this!==t&&(n=this.parent.evict(e,t)||n),(e.fieldName||n)&&this.group.dirty(e.id,e.fieldName||"__exists")),n},e.prototype.clear=function(){this.replace(null)},e.prototype.extract=function(){var e=this,t=this.toObject(),n=[];return this.getRootIdSet().forEach(function(t){ic.call(e.policies.rootTypenamesById,t)||n.push(t)}),n.length&&(t.__META={extraRootIds:n.sort()}),t},e.prototype.replace=function(e){var t=this;if(Object.keys(this.data).forEach(function(n){e&&ic.call(e,n)||t.delete(n)}),e){var n=e.__META,r=(0,en._T)(e,["__META"]);Object.keys(r).forEach(function(e){t.merge(e,r[e])}),n&&n.extraRootIds.forEach(this.retain,this)}},e.prototype.retain=function(e){return this.rootIds[e]=(this.rootIds[e]||0)+1},e.prototype.release=function(e){if(this.rootIds[e]>0){var t=--this.rootIds[e];return t||delete this.rootIds[e],t}return 0},e.prototype.getRootIdSet=function(e){return void 0===e&&(e=new Set),Object.keys(this.rootIds).forEach(e.add,e),this instanceof iL?this.parent.getRootIdSet(e):Object.keys(this.policies.rootTypenamesById).forEach(e.add,e),e},e.prototype.gc=function(){var e=this,t=this.getRootIdSet(),n=this.toObject();t.forEach(function(r){ic.call(n,r)&&(Object.keys(e.findChildRefIds(r)).forEach(t.add,t),delete n[r])});var r=Object.keys(n);if(r.length){for(var i=this;i instanceof iL;)i=i.parent;r.forEach(function(e){return i.delete(e)})}return r},e.prototype.findChildRefIds=function(e){if(!ic.call(this.refs,e)){var t=this.refs[e]=Object.create(null),n=this.data[e];if(!n)return t;var r=new Set([n]);r.forEach(function(e){eD(e)&&(t[e.__ref]=!0),(0,eO.s)(e)&&Object.keys(e).forEach(function(t){var n=e[t];(0,eO.s)(n)&&r.add(n)})})}return this.refs[e]},e.prototype.makeCacheKey=function(){return this.group.keyMaker.lookupArray(arguments)},e}(),iM=function(){function e(e,t){void 0===t&&(t=null),this.caching=e,this.parent=t,this.d=null,this.resetCaching()}return e.prototype.resetCaching=function(){this.d=this.caching?rW():null,this.keyMaker=new n_(t_.mr)},e.prototype.depend=function(e,t){if(this.d){this.d(iO(e,t));var n=iv(t);n!==t&&this.d(iO(e,n)),this.parent&&this.parent.depend(e,t)}},e.prototype.dirty=function(e,t){this.d&&this.d.dirty(iO(e,t),"__exists"===t?"forget":"setDirty")},e}();function iO(e,t){return t+"#"+e}function iA(e,t){iD(e)&&e.group.depend(t,"__exists")}!function(e){var t=function(e){function t(t){var n=t.policies,r=t.resultCaching,i=void 0===r||r,a=t.seed,o=e.call(this,n,new iM(i))||this;return o.stump=new iC(o),o.storageTrie=new n_(t_.mr),a&&o.replace(a),o}return(0,en.ZT)(t,e),t.prototype.addLayer=function(e,t){return this.stump.addLayer(e,t)},t.prototype.removeLayer=function(){return this},t.prototype.getStorage=function(){return this.storageTrie.lookupArray(arguments)},t}(e);e.Root=t}(iT||(iT={}));var iL=function(e){function t(t,n,r,i){var a=e.call(this,n.policies,i)||this;return a.id=t,a.parent=n,a.replay=r,a.group=i,r(a),a}return(0,en.ZT)(t,e),t.prototype.addLayer=function(e,n){return new t(e,this,n,this.group)},t.prototype.removeLayer=function(e){var t=this,n=this.parent.removeLayer(e);return e===this.id?(this.group.caching&&Object.keys(this.data).forEach(function(e){var r=t.data[e],i=n.lookup(e);i?r?r!==i&&Object.keys(r).forEach(function(n){(0,nm.D)(r[n],i[n])||t.group.dirty(e,n)}):(t.group.dirty(e,"__exists"),Object.keys(i).forEach(function(n){t.group.dirty(e,n)})):t.delete(e)}),n):n===this.parent?this:n.addLayer(this.id,this.replay)},t.prototype.toObject=function(){return(0,en.pi)((0,en.pi)({},this.parent.toObject()),this.data)},t.prototype.findChildRefIds=function(t){var n=this.parent.findChildRefIds(t);return ic.call(this.data,t)?(0,en.pi)((0,en.pi)({},n),e.prototype.findChildRefIds.call(this,t)):n},t.prototype.getStorage=function(){for(var e=this.parent;e.parent;)e=e.parent;return e.getStorage.apply(e,arguments)},t}(iT),iC=function(e){function t(t){return e.call(this,"EntityStore.Stump",t,function(){},new iM(t.group.caching,t.group))||this}return(0,en.ZT)(t,e),t.prototype.removeLayer=function(){return this},t.prototype.merge=function(){return this.parent.merge.apply(this.parent,arguments)},t}(iL);function iI(e,t,n){var r=e[n],i=t[n];return(0,nm.D)(r,i)?r:i}function iD(e){return!!(e instanceof iT&&e.group.caching)}function iN(e){return[e.selectionSet,e.objectOrReference,e.context,e.context.canonizeResults,]}var iP=function(){function e(e){var t=this;this.knownResults=new(t_.mr?WeakMap:Map),this.config=(0,n1.o)(e,{addTypename:!1!==e.addTypename,canonizeResults:ib(e)}),this.canon=e.canon||new nk,this.executeSelectionSet=rZ(function(e){var n,r=e.context.canonizeResults,i=iN(e);i[3]=!r;var a=(n=t.executeSelectionSet).peek.apply(n,i);return a?r?(0,en.pi)((0,en.pi)({},a),{result:t.canon.admit(a.result)}):a:(iA(e.context.store,e.enclosingRef.__ref),t.execSelectionSetImpl(e))},{max:this.config.resultCacheMaxSize,keyArgs:iN,makeCacheKey:function(e,t,n,r){if(iD(n.store))return n.store.makeCacheKey(e,eD(t)?t.__ref:t,n.varString,r)}}),this.executeSubSelectedArray=rZ(function(e){return iA(e.context.store,e.enclosingRef.__ref),t.execSubSelectedArrayImpl(e)},{max:this.config.resultCacheMaxSize,makeCacheKey:function(e){var t=e.field,n=e.array,r=e.context;if(iD(r.store))return r.store.makeCacheKey(t,n,r.varString)}})}return e.prototype.resetCanon=function(){this.canon=new nk},e.prototype.diffQueryAgainstStore=function(e){var t,n=e.store,r=e.query,i=e.rootId,a=void 0===i?"ROOT_QUERY":i,o=e.variables,s=e.returnPartialData,u=void 0===s||s,c=e.canonizeResults,l=void 0===c?this.config.canonizeResults:c,f=this.config.cache.policies;o=(0,en.pi)((0,en.pi)({},e9(e6(r))),o);var d=eI(a),h=this.executeSelectionSet({selectionSet:e8(r).selectionSet,objectOrReference:d,enclosingRef:d,context:(0,en.pi)({store:n,query:r,policies:f,variables:o,varString:nx(o),canonizeResults:l},iE(r,this.config.fragments))});if(h.missing&&(t=[new is(iR(h.missing),h.missing,r,o)],!u))throw t[0];return{result:h.result,complete:!t,missing:t}},e.prototype.isFresh=function(e,t,n,r){if(iD(r.store)&&this.knownResults.get(e)===n){var i=this.executeSelectionSet.peek(n,t,r,this.canon.isKnown(e));if(i&&e===i.result)return!0}return!1},e.prototype.execSelectionSetImpl=function(e){var t,n=this,r=e.selectionSet,i=e.objectOrReference,a=e.enclosingRef,o=e.context;if(eD(i)&&!o.policies.rootTypenamesById[i.__ref]&&!o.store.has(i.__ref))return{result:this.canon.empty,missing:"Dangling reference to missing ".concat(i.__ref," object")};var s=o.variables,u=o.policies,c=o.store.getFieldValue(i,"__typename"),l=[],f=new tB;function d(e,n){var r;return e.missing&&(t=f.merge(t,((r={})[n]=e.missing,r))),e.result}this.config.addTypename&&"string"==typeof c&&!u.rootIdsByTypename[c]&&l.push({__typename:c});var h=new Set(r.selections);h.forEach(function(e){var r,p;if(td(e,s)){if(eQ(e)){var b=u.readField({fieldName:e.name.value,field:e,variables:o.variables,from:i},o),m=eX(e);void 0===b?nj.added(e)||(t=f.merge(t,((r={})[m]="Can't find field '".concat(e.name.value,"' on ").concat(eD(i)?i.__ref+" object":"object "+JSON.stringify(i,null,2)),r))):(0,tP.k)(b)?b=d(n.executeSubSelectedArray({field:e,array:b,enclosingRef:a,context:o}),m):e.selectionSet?null!=b&&(b=d(n.executeSelectionSet({selectionSet:e.selectionSet,objectOrReference:b,enclosingRef:eD(b)?b:a,context:o}),m)):o.canonizeResults&&(b=n.canon.pass(b)),void 0!==b&&l.push(((p={})[m]=b,p))}else{var g=eC(e,o.lookupFragment);if(!g&&e.kind===nL.h.FRAGMENT_SPREAD)throw __DEV__?new Q.ej("No fragment named ".concat(e.name.value)):new Q.ej(5);g&&u.fragmentMatches(g,c)&&g.selectionSet.selections.forEach(h.add,h)}}});var p={result:tF(l),missing:t},b=o.canonizeResults?this.canon.admit(p):(0,iu.J)(p);return b.result&&this.knownResults.set(b.result,r),b},e.prototype.execSubSelectedArrayImpl=function(e){var t,n=this,r=e.field,i=e.array,a=e.enclosingRef,o=e.context,s=new tB;function u(e,n){var r;return e.missing&&(t=s.merge(t,((r={})[n]=e.missing,r))),e.result}return r.selectionSet&&(i=i.filter(o.store.canRead)),i=i.map(function(e,t){return null===e?null:(0,tP.k)(e)?u(n.executeSubSelectedArray({field:r,array:e,enclosingRef:a,context:o}),t):r.selectionSet?u(n.executeSelectionSet({selectionSet:r.selectionSet,objectOrReference:e,enclosingRef:eD(e)?e:a,context:o}),t):(__DEV__&&ij(o.store,r,e),e)}),{result:o.canonizeResults?this.canon.admit(i):i,missing:t}},e}();function iR(e){try{JSON.stringify(e,function(e,t){if("string"==typeof t)throw t;return t})}catch(t){return t}}function ij(e,t,n){if(!t.selectionSet){var r=new Set([n]);r.forEach(function(n){(0,eO.s)(n)&&(__DEV__?(0,Q.kG)(!eD(n),"Missing selection set for object of type ".concat(im(e,n)," returned for query field ").concat(t.name.value)):(0,Q.kG)(!eD(n),6),Object.values(n).forEach(r.add,r))})}}function iF(e){var t=nG("stringifyForDisplay");return JSON.stringify(e,function(e,n){return void 0===n?t:n}).split(JSON.stringify(t)).join("")}var iY=Object.create(null);function iB(e){var t=JSON.stringify(e);return iY[t]||(iY[t]=Object.create(null))}function iU(e){var t=iB(e);return t.keyFieldsFn||(t.keyFieldsFn=function(t,n){var r=function(e,t){return n.readField(t,e)},i=n.keyObject=i$(e,function(e){var i=iW(n.storeObject,e,r);return void 0===i&&t!==n.storeObject&&ic.call(t,e[0])&&(i=iW(t,e,iG)),__DEV__?(0,Q.kG)(void 0!==i,"Missing field '".concat(e.join("."),"' while extracting keyFields from ").concat(JSON.stringify(t))):(0,Q.kG)(void 0!==i,2),i});return"".concat(n.typename,":").concat(JSON.stringify(i))})}function iH(e){var t=iB(e);return t.keyArgsFn||(t.keyArgsFn=function(t,n){var r=n.field,i=n.variables,a=n.fieldName,o=JSON.stringify(i$(e,function(e){var n=e[0],a=n.charAt(0);if("@"===a){if(r&&(0,tP.O)(r.directives)){var o=n.slice(1),s=r.directives.find(function(e){return e.name.value===o}),u=s&&eZ(s,i);return u&&iW(u,e.slice(1))}return}if("$"===a){var c=n.slice(1);if(i&&ic.call(i,c)){var l=e.slice(0);return l[0]=c,iW(i,l)}return}if(t)return iW(t,e)}));return(t||"{}"!==o)&&(a+=":"+o),a})}function i$(e,t){var n=new tB;return iz(e).reduce(function(e,r){var i,a=t(r);if(void 0!==a){for(var o=r.length-1;o>=0;--o)a=((i={})[r[o]]=a,i);e=n.merge(e,a)}return e},Object.create(null))}function iz(e){var t=iB(e);if(!t.paths){var n=t.paths=[],r=[];e.forEach(function(t,i){(0,tP.k)(t)?(iz(t).forEach(function(e){return n.push(r.concat(e))}),r.length=0):(r.push(t),(0,tP.k)(e[i+1])||(n.push(r.slice(0)),r.length=0))})}return t.paths}function iG(e,t){return e[t]}function iW(e,t,n){return n=n||iG,iK(t.reduce(function e(t,r){return(0,tP.k)(t)?t.map(function(t){return e(t,r)}):t&&n(t,r)},e))}function iK(e){return(0,eO.s)(e)?(0,tP.k)(e)?e.map(iK):i$(Object.keys(e).sort(),function(t){return iW(e,t)}):e}function iV(e){return void 0!==e.args?e.args:e.field?eZ(e.field,e.variables):null}eK.setStringify(nx);var iq=function(){},iZ=function(e,t){return t.fieldName},iX=function(e,t,n){return(0,n.mergeObjects)(e,t)},iJ=function(e,t){return t},iQ=function(){function e(e){this.config=e,this.typePolicies=Object.create(null),this.toBeAdded=Object.create(null),this.supertypeMap=new Map,this.fuzzySubtypes=new Map,this.rootIdsByTypename=Object.create(null),this.rootTypenamesById=Object.create(null),this.usingPossibleTypes=!1,this.config=(0,en.pi)({dataIdFromObject:id},e),this.cache=this.config.cache,this.setRootTypename("Query"),this.setRootTypename("Mutation"),this.setRootTypename("Subscription"),e.possibleTypes&&this.addPossibleTypes(e.possibleTypes),e.typePolicies&&this.addTypePolicies(e.typePolicies)}return e.prototype.identify=function(e,t){var n,r,i=this,a=t&&(t.typename||(null===(n=t.storeObject)||void 0===n?void 0:n.__typename))||e.__typename;if(a===this.rootTypenamesById.ROOT_QUERY)return["ROOT_QUERY"];for(var o=t&&t.storeObject||e,s=(0,en.pi)((0,en.pi)({},t),{typename:a,storeObject:o,readField:t&&t.readField||function(){var e=i0(arguments,o);return i.readField(e,{store:i.cache.data,variables:e.variables})}}),u=a&&this.getTypePolicy(a),c=u&&u.keyFn||this.config.dataIdFromObject;c;){var l=c((0,en.pi)((0,en.pi)({},e),o),s);if((0,tP.k)(l))c=iU(l);else{r=l;break}}return r=r?String(r):void 0,s.keyObject?[r,s.keyObject]:[r]},e.prototype.addTypePolicies=function(e){var t=this;Object.keys(e).forEach(function(n){var r=e[n],i=r.queryType,a=r.mutationType,o=r.subscriptionType,s=(0,en._T)(r,["queryType","mutationType","subscriptionType"]);i&&t.setRootTypename("Query",n),a&&t.setRootTypename("Mutation",n),o&&t.setRootTypename("Subscription",n),ic.call(t.toBeAdded,n)?t.toBeAdded[n].push(s):t.toBeAdded[n]=[s]})},e.prototype.updateTypePolicy=function(e,t){var n=this,r=this.getTypePolicy(e),i=t.keyFields,a=t.fields;function o(e,t){e.merge="function"==typeof t?t:!0===t?iX:!1===t?iJ:e.merge}o(r,t.merge),r.keyFn=!1===i?iq:(0,tP.k)(i)?iU(i):"function"==typeof i?i:r.keyFn,a&&Object.keys(a).forEach(function(t){var r=n.getFieldPolicy(e,t,!0),i=a[t];if("function"==typeof i)r.read=i;else{var s=i.keyArgs,u=i.read,c=i.merge;r.keyFn=!1===s?iZ:(0,tP.k)(s)?iH(s):"function"==typeof s?s:r.keyFn,"function"==typeof u&&(r.read=u),o(r,c)}r.read&&r.merge&&(r.keyFn=r.keyFn||iZ)})},e.prototype.setRootTypename=function(e,t){void 0===t&&(t=e);var n="ROOT_"+e.toUpperCase(),r=this.rootTypenamesById[n];t!==r&&(__DEV__?(0,Q.kG)(!r||r===e,"Cannot change root ".concat(e," __typename more than once")):(0,Q.kG)(!r||r===e,3),r&&delete this.rootIdsByTypename[r],this.rootIdsByTypename[t]=n,this.rootTypenamesById[n]=t)},e.prototype.addPossibleTypes=function(e){var t=this;this.usingPossibleTypes=!0,Object.keys(e).forEach(function(n){t.getSupertypeSet(n,!0),e[n].forEach(function(e){t.getSupertypeSet(e,!0).add(n);var r=e.match(ig);r&&r[0]===e||t.fuzzySubtypes.set(e,RegExp(e))})})},e.prototype.getTypePolicy=function(e){var t=this;if(!ic.call(this.typePolicies,e)){var n=this.typePolicies[e]=Object.create(null);n.fields=Object.create(null);var r=this.supertypeMap.get(e);r&&r.size&&r.forEach(function(e){var r=t.getTypePolicy(e),i=r.fields;Object.assign(n,(0,en._T)(r,["fields"])),Object.assign(n.fields,i)})}var i=this.toBeAdded[e];return i&&i.length&&i.splice(0).forEach(function(n){t.updateTypePolicy(e,n)}),this.typePolicies[e]},e.prototype.getFieldPolicy=function(e,t,n){if(e){var r=this.getTypePolicy(e).fields;return r[t]||n&&(r[t]=Object.create(null))}},e.prototype.getSupertypeSet=function(e,t){var n=this.supertypeMap.get(e);return!n&&t&&this.supertypeMap.set(e,n=new Set),n},e.prototype.fragmentMatches=function(e,t,n,r){var i=this;if(!e.typeCondition)return!0;if(!t)return!1;var a=e.typeCondition.name.value;if(t===a)return!0;if(this.usingPossibleTypes&&this.supertypeMap.has(a))for(var o=this.getSupertypeSet(t,!0),s=[o],u=function(e){var t=i.getSupertypeSet(e,!1);t&&t.size&&0>s.indexOf(t)&&s.push(t)},c=!!(n&&this.fuzzySubtypes.size),l=!1,f=0;f1?a:t}:(r=(0,en.pi)({},i),ic.call(r,"from")||(r.from=t)),__DEV__&&void 0===r.from&&__DEV__&&Q.kG.warn("Undefined 'from' passed to readField with arguments ".concat(iF(Array.from(e)))),void 0===r.variables&&(r.variables=n),r}function i2(e){return function(t,n){if((0,tP.k)(t)||(0,tP.k)(n))throw __DEV__?new Q.ej("Cannot automatically merge arrays"):new Q.ej(4);if((0,eO.s)(t)&&(0,eO.s)(n)){var r=e.getFieldValue(t,"__typename"),i=e.getFieldValue(n,"__typename");if(r&&i&&r!==i)return n;if(eD(t)&&iw(n))return e.merge(t.__ref,n),t;if(iw(t)&&eD(n))return e.merge(t,n.__ref),n;if(iw(t)&&iw(n))return(0,en.pi)((0,en.pi)({},t),n)}return n}}function i3(e,t,n){var r="".concat(t).concat(n),i=e.flavors.get(r);return i||e.flavors.set(r,i=e.clientOnly===t&&e.deferred===n?e:(0,en.pi)((0,en.pi)({},e),{clientOnly:t,deferred:n})),i}var i4=function(){function e(e,t,n){this.cache=e,this.reader=t,this.fragments=n}return e.prototype.writeToStore=function(e,t){var n=this,r=t.query,i=t.result,a=t.dataId,o=t.variables,s=t.overwrite,u=e2(r),c=i_();o=(0,en.pi)((0,en.pi)({},e9(u)),o);var l=(0,en.pi)((0,en.pi)({store:e,written:Object.create(null),merge:function(e,t){return c.merge(e,t)},variables:o,varString:nx(o)},iE(r,this.fragments)),{overwrite:!!s,incomingById:new Map,clientOnly:!1,deferred:!1,flavors:new Map}),f=this.processSelectionSet({result:i||Object.create(null),dataId:a,selectionSet:u.selectionSet,mergeTree:{map:new Map},context:l});if(!eD(f))throw __DEV__?new Q.ej("Could not identify object ".concat(JSON.stringify(i))):new Q.ej(7);return l.incomingById.forEach(function(t,r){var i=t.storeObject,a=t.mergeTree,o=t.fieldNodeSet,s=eI(r);if(a&&a.map.size){var u=n.applyMerges(a,s,i,l);if(eD(u))return;i=u}if(__DEV__&&!l.overwrite){var c=Object.create(null);o.forEach(function(e){e.selectionSet&&(c[e.name.value]=!0)});var f=function(e){return!0===c[iv(e)]},d=function(e){var t=a&&a.map.get(e);return Boolean(t&&t.info&&t.info.merge)};Object.keys(i).forEach(function(e){f(e)&&!d(e)&&at(s,i,e,l.store)})}e.merge(r,i)}),e.retain(f.__ref),f},e.prototype.processSelectionSet=function(e){var t=this,n=e.dataId,r=e.result,i=e.selectionSet,a=e.context,o=e.mergeTree,s=this.cache.policies,u=Object.create(null),c=n&&s.rootTypenamesById[n]||eJ(r,i,a.fragmentMap)||n&&a.store.get(n,"__typename");"string"==typeof c&&(u.__typename=c);var l=function(){var e=i0(arguments,u,a.variables);if(eD(e.from)){var t=a.incomingById.get(e.from.__ref);if(t){var n=s.readField((0,en.pi)((0,en.pi)({},e),{from:t.storeObject}),a);if(void 0!==n)return n}}return s.readField(e,a)},f=new Set;this.flattenFields(i,r,a,c).forEach(function(e,n){var i,a=r[eX(n)];if(f.add(n),void 0!==a){var d=s.getStoreFieldName({typename:c,fieldName:n.name.value,field:n,variables:e.variables}),h=i5(o,d),p=t.processFieldValue(a,n,n.selectionSet?i3(e,!1,!1):e,h),b=void 0;n.selectionSet&&(eD(p)||iw(p))&&(b=l("__typename",p));var m=s.getMergeFunction(c,n.name.value,b);m?h.info={field:n,typename:c,merge:m}:i7(o,d),u=e.merge(u,((i={})[d]=p,i))}else __DEV__&&!e.clientOnly&&!e.deferred&&!nj.added(n)&&!s.getReadFunction(c,n.name.value)&&__DEV__&&Q.kG.error("Missing field '".concat(eX(n),"' while writing result ").concat(JSON.stringify(r,null,2)).substring(0,1e3))});try{var d=s.identify(r,{typename:c,selectionSet:i,fragmentMap:a.fragmentMap,storeObject:u,readField:l}),h=d[0],p=d[1];n=n||h,p&&(u=a.merge(u,p))}catch(b){if(!n)throw b}if("string"==typeof n){var m=eI(n),g=a.written[n]||(a.written[n]=[]);if(g.indexOf(i)>=0||(g.push(i),this.reader&&this.reader.isFresh(r,m,i,a)))return m;var v=a.incomingById.get(n);return v?(v.storeObject=a.merge(v.storeObject,u),v.mergeTree=i8(v.mergeTree,o),f.forEach(function(e){return v.fieldNodeSet.add(e)})):a.incomingById.set(n,{storeObject:u,mergeTree:i9(o)?void 0:o,fieldNodeSet:f}),m}return u},e.prototype.processFieldValue=function(e,t,n,r){var i=this;return t.selectionSet&&null!==e?(0,tP.k)(e)?e.map(function(e,a){var o=i.processFieldValue(e,t,n,i5(r,a));return i7(r,a),o}):this.processSelectionSet({result:e,selectionSet:t.selectionSet,context:n,mergeTree:r}):__DEV__?nJ(e):e},e.prototype.flattenFields=function(e,t,n,r){void 0===r&&(r=eJ(t,e,n.fragmentMap));var i=new Map,a=this.cache.policies,o=new n_(!1);return function e(s,u){var c=o.lookup(s,u.clientOnly,u.deferred);c.visited||(c.visited=!0,s.selections.forEach(function(o){if(td(o,n.variables)){var s=u.clientOnly,c=u.deferred;if(!(s&&c)&&(0,tP.O)(o.directives)&&o.directives.forEach(function(e){var t=e.name.value;if("client"===t&&(s=!0),"defer"===t){var r=eZ(e,n.variables);r&&!1===r.if||(c=!0)}}),eQ(o)){var l=i.get(o);l&&(s=s&&l.clientOnly,c=c&&l.deferred),i.set(o,i3(n,s,c))}else{var f=eC(o,n.lookupFragment);if(!f&&o.kind===nL.h.FRAGMENT_SPREAD)throw __DEV__?new Q.ej("No fragment named ".concat(o.name.value)):new Q.ej(8);f&&a.fragmentMatches(f,r,t,n.variables)&&e(f.selectionSet,i3(n,s,c))}}}))}(e,n),i},e.prototype.applyMerges=function(e,t,n,r,i){var a=this;if(e.map.size&&!eD(n)){var o,s,u=!(0,tP.k)(n)&&(eD(t)||iw(t))?t:void 0,c=n;u&&!i&&(i=[eD(u)?u.__ref:u]);var l=function(e,t){return(0,tP.k)(e)?"number"==typeof t?e[t]:void 0:r.store.getFieldValue(e,String(t))};e.map.forEach(function(e,t){var n=l(u,t),o=l(c,t);if(void 0!==o){i&&i.push(t);var f=a.applyMerges(e,n,o,r,i);f!==o&&(s=s||new Map).set(t,f),i&&(0,Q.kG)(i.pop()===t)}}),s&&(n=(0,tP.k)(c)?c.slice(0):(0,en.pi)({},c),s.forEach(function(e,t){n[t]=e}))}return e.info?this.cache.policies.runMergeFunction(t,n,e.info,r,i&&(o=r.store).getStorage.apply(o,i)):n},e}(),i6=[];function i5(e,t){var n=e.map;return n.has(t)||n.set(t,i6.pop()||{map:new Map}),n.get(t)}function i8(e,t){if(e===t||!t||i9(t))return e;if(!e||i9(e))return t;var n=e.info&&t.info?(0,en.pi)((0,en.pi)({},e.info),t.info):e.info||t.info,r=e.map.size&&t.map.size,i=r?new Map:e.map.size?e.map:t.map,a={info:n,map:i};if(r){var o=new Set(t.map.keys());e.map.forEach(function(e,n){a.map.set(n,i8(e,t.map.get(n))),o.delete(n)}),o.forEach(function(n){a.map.set(n,i8(t.map.get(n),e.map.get(n)))})}return a}function i9(e){return!e||!(e.info||e.map.size)}function i7(e,t){var n=e.map,r=n.get(t);r&&i9(r)&&(i6.push(r),n.delete(t))}var ae=new Set;function at(e,t,n,r){var i=function(e){var t=r.getFieldValue(e,n);return"object"==typeof t&&t},a=i(e);if(a){var o=i(t);if(!(!o||eD(a)||(0,nm.D)(a,o)||Object.keys(a).every(function(e){return void 0!==r.getFieldValue(o,e)}))){var s=r.getFieldValue(e,"__typename")||r.getFieldValue(t,"__typename"),u=iv(n),c="".concat(s,".").concat(u);if(!ae.has(c)){ae.add(c);var l=[];(0,tP.k)(a)||(0,tP.k)(o)||[a,o].forEach(function(e){var t=r.getFieldValue(e,"__typename");"string"!=typeof t||l.includes(t)||l.push(t)}),__DEV__&&Q.kG.warn("Cache data may be lost when replacing the ".concat(u," field of a ").concat(s," object.\n\nThis could cause additional (usually avoidable) network requests to fetch data that were otherwise cached.\n\nTo address this problem (which is not a bug in Apollo Client), ").concat(l.length?"either ensure all objects of type "+l.join(" and ")+" have an ID or a custom merge function, or ":"","define a custom merge function for the ").concat(c," field, so InMemoryCache can safely merge these objects:\n\n existing: ").concat(JSON.stringify(a).slice(0,1e3),"\n incoming: ").concat(JSON.stringify(o).slice(0,1e3),"\n\nFor more information about these options, please refer to the documentation:\n\n * Ensuring entity objects have IDs: https://go.apollo.dev/c/generating-unique-identifiers\n * Defining custom merge functions: https://go.apollo.dev/c/merging-non-normalized-objects\n"))}}}}var an=function(e){function t(t){void 0===t&&(t={});var n=e.call(this)||this;return n.watches=new Set,n.typenameDocumentCache=new Map,n.makeVar=r2,n.txCount=0,n.config=ip(t),n.addTypename=!!n.config.addTypename,n.policies=new iQ({cache:n,dataIdFromObject:n.config.dataIdFromObject,possibleTypes:n.config.possibleTypes,typePolicies:n.config.typePolicies}),n.init(),n}return(0,en.ZT)(t,e),t.prototype.init=function(){var e=this.data=new iT.Root({policies:this.policies,resultCaching:this.config.resultCaching});this.optimisticData=e.stump,this.resetResultCache()},t.prototype.resetResultCache=function(e){var t=this,n=this.storeReader,r=this.config.fragments;this.storeWriter=new i4(this,this.storeReader=new iP({cache:this,addTypename:this.addTypename,resultCacheMaxSize:this.config.resultCacheMaxSize,canonizeResults:ib(this.config),canon:e?void 0:n&&n.canon,fragments:r}),r),this.maybeBroadcastWatch=rZ(function(e,n){return t.broadcastWatch(e,n)},{max:this.config.resultCacheMaxSize,makeCacheKey:function(e){var n=e.optimistic?t.optimisticData:t.data;if(iD(n)){var r=e.optimistic,i=e.id,a=e.variables;return n.makeCacheKey(e.query,e.callback,nx({optimistic:r,id:i,variables:a}))}}}),new Set([this.data.group,this.optimisticData.group,]).forEach(function(e){return e.resetCaching()})},t.prototype.restore=function(e){return this.init(),e&&this.data.replace(e),this},t.prototype.extract=function(e){return void 0===e&&(e=!1),(e?this.optimisticData:this.data).extract()},t.prototype.read=function(e){var t=e.returnPartialData,n=void 0!==t&&t;try{return this.storeReader.diffQueryAgainstStore((0,en.pi)((0,en.pi)({},e),{store:e.optimistic?this.optimisticData:this.data,config:this.config,returnPartialData:n})).result||null}catch(r){if(r instanceof is)return null;throw r}},t.prototype.write=function(e){try{return++this.txCount,this.storeWriter.writeToStore(this.data,e)}finally{--this.txCount||!1===e.broadcast||this.broadcastWatches()}},t.prototype.modify=function(e){if(ic.call(e,"id")&&!e.id)return!1;var t=e.optimistic?this.optimisticData:this.data;try{return++this.txCount,t.modify(e.id||"ROOT_QUERY",e.fields)}finally{--this.txCount||!1===e.broadcast||this.broadcastWatches()}},t.prototype.diff=function(e){return this.storeReader.diffQueryAgainstStore((0,en.pi)((0,en.pi)({},e),{store:e.optimistic?this.optimisticData:this.data,rootId:e.id||"ROOT_QUERY",config:this.config}))},t.prototype.watch=function(e){var t=this;return this.watches.size||r0(this),this.watches.add(e),e.immediate&&this.maybeBroadcastWatch(e),function(){t.watches.delete(e)&&!t.watches.size&&r1(t),t.maybeBroadcastWatch.forget(e)}},t.prototype.gc=function(e){nx.reset();var t=this.optimisticData.gc();return e&&!this.txCount&&(e.resetResultCache?this.resetResultCache(e.resetResultIdentities):e.resetResultIdentities&&this.storeReader.resetCanon()),t},t.prototype.retain=function(e,t){return(t?this.optimisticData:this.data).retain(e)},t.prototype.release=function(e,t){return(t?this.optimisticData:this.data).release(e)},t.prototype.identify=function(e){if(eD(e))return e.__ref;try{return this.policies.identify(e)[0]}catch(t){__DEV__&&Q.kG.warn(t)}},t.prototype.evict=function(e){if(!e.id){if(ic.call(e,"id"))return!1;e=(0,en.pi)((0,en.pi)({},e),{id:"ROOT_QUERY"})}try{return++this.txCount,this.optimisticData.evict(e,this.data)}finally{--this.txCount||!1===e.broadcast||this.broadcastWatches()}},t.prototype.reset=function(e){var t=this;return this.init(),nx.reset(),e&&e.discardWatches?(this.watches.forEach(function(e){return t.maybeBroadcastWatch.forget(e)}),this.watches.clear(),r1(this)):this.broadcastWatches(),Promise.resolve()},t.prototype.removeOptimistic=function(e){var t=this.optimisticData.removeLayer(e);t!==this.optimisticData&&(this.optimisticData=t,this.broadcastWatches())},t.prototype.batch=function(e){var t,n=this,r=e.update,i=e.optimistic,a=void 0===i||i,o=e.removeOptimistic,s=e.onWatchUpdated,u=function(e){var i=n,a=i.data,o=i.optimisticData;++n.txCount,e&&(n.data=n.optimisticData=e);try{return t=r(n)}finally{--n.txCount,n.data=a,n.optimisticData=o}},c=new Set;return s&&!this.txCount&&this.broadcastWatches((0,en.pi)((0,en.pi)({},e),{onWatchUpdated:function(e){return c.add(e),!1}})),"string"==typeof a?this.optimisticData=this.optimisticData.addLayer(a,u):!1===a?u(this.data):u(),"string"==typeof o&&(this.optimisticData=this.optimisticData.removeLayer(o)),s&&c.size?(this.broadcastWatches((0,en.pi)((0,en.pi)({},e),{onWatchUpdated:function(e,t){var n=s.call(this,e,t);return!1!==n&&c.delete(e),n}})),c.size&&c.forEach(function(e){return n.maybeBroadcastWatch.dirty(e)})):this.broadcastWatches(e),t},t.prototype.performTransaction=function(e,t){return this.batch({update:e,optimistic:t||null!==t})},t.prototype.transformDocument=function(e){if(this.addTypename){var t=this.typenameDocumentCache.get(e);return t||(t=nj(e),this.typenameDocumentCache.set(e,t),this.typenameDocumentCache.set(t,t)),t}return e},t.prototype.transformForLink=function(e){var t=this.config.fragments;return t?t.transform(e):e},t.prototype.broadcastWatches=function(e){var t=this;this.txCount||this.watches.forEach(function(n){return t.maybeBroadcastWatch(n,e)})},t.prototype.broadcastWatch=function(e,t){var n=e.lastDiff,r=this.diff(e);(!t||(e.optimistic&&"string"==typeof t.optimistic&&(r.fromOptimisticTransaction=!0),!t.onWatchUpdated||!1!==t.onWatchUpdated.call(this,e,r,n)))&&(n&&(0,nm.D)(n.result,r.result)||e.callback(e.lastDiff=r,n))},t}(io),ar={possibleTypes:{ApproveJobProposalSpecPayload:["ApproveJobProposalSpecSuccess","JobAlreadyExistsError","NotFoundError"],BridgePayload:["Bridge","NotFoundError"],CancelJobProposalSpecPayload:["CancelJobProposalSpecSuccess","NotFoundError"],ChainPayload:["Chain","NotFoundError"],CreateAPITokenPayload:["CreateAPITokenSuccess","InputErrors"],CreateBridgePayload:["CreateBridgeSuccess"],CreateCSAKeyPayload:["CSAKeyExistsError","CreateCSAKeySuccess"],CreateFeedsManagerChainConfigPayload:["CreateFeedsManagerChainConfigSuccess","InputErrors","NotFoundError"],CreateFeedsManagerPayload:["CreateFeedsManagerSuccess","DuplicateFeedsManagerError","InputErrors","NotFoundError","SingleFeedsManagerError"],CreateJobPayload:["CreateJobSuccess","InputErrors"],CreateOCR2KeyBundlePayload:["CreateOCR2KeyBundleSuccess"],CreateOCRKeyBundlePayload:["CreateOCRKeyBundleSuccess"],CreateP2PKeyPayload:["CreateP2PKeySuccess"],DeleteAPITokenPayload:["DeleteAPITokenSuccess","InputErrors"],DeleteBridgePayload:["DeleteBridgeConflictError","DeleteBridgeInvalidNameError","DeleteBridgeSuccess","NotFoundError"],DeleteCSAKeyPayload:["DeleteCSAKeySuccess","NotFoundError"],DeleteFeedsManagerChainConfigPayload:["DeleteFeedsManagerChainConfigSuccess","NotFoundError"],DeleteJobPayload:["DeleteJobSuccess","NotFoundError"],DeleteOCR2KeyBundlePayload:["DeleteOCR2KeyBundleSuccess","NotFoundError"],DeleteOCRKeyBundlePayload:["DeleteOCRKeyBundleSuccess","NotFoundError"],DeleteP2PKeyPayload:["DeleteP2PKeySuccess","NotFoundError"],DeleteVRFKeyPayload:["DeleteVRFKeySuccess","NotFoundError"],DisableFeedsManagerPayload:["DisableFeedsManagerSuccess","NotFoundError"],DismissJobErrorPayload:["DismissJobErrorSuccess","NotFoundError"],EnableFeedsManagerPayload:["EnableFeedsManagerSuccess","NotFoundError"],Error:["CSAKeyExistsError","DeleteBridgeConflictError","DeleteBridgeInvalidNameError","DuplicateFeedsManagerError","InputError","JobAlreadyExistsError","NotFoundError","RunJobCannotRunError","SingleFeedsManagerError"],EthTransactionPayload:["EthTransaction","NotFoundError"],FeaturesPayload:["Features"],FeedsManagerPayload:["FeedsManager","NotFoundError"],GetSQLLoggingPayload:["SQLLogging"],GlobalLogLevelPayload:["GlobalLogLevel"],JobPayload:["Job","NotFoundError"],JobProposalPayload:["JobProposal","NotFoundError"],JobRunPayload:["JobRun","NotFoundError"],JobSpec:["BlockHeaderFeederSpec","BlockhashStoreSpec","BootstrapSpec","CronSpec","DirectRequestSpec","FluxMonitorSpec","GatewaySpec","KeeperSpec","OCR2Spec","OCRSpec","StandardCapabilitiesSpec","StreamSpec","VRFSpec","WebhookSpec","WorkflowSpec"],NodePayload:["Node","NotFoundError"],PaginatedPayload:["BridgesPayload","ChainsPayload","EthTransactionAttemptsPayload","EthTransactionsPayload","JobRunsPayload","JobsPayload","NodesPayload"],RejectJobProposalSpecPayload:["NotFoundError","RejectJobProposalSpecSuccess"],RunJobPayload:["NotFoundError","RunJobCannotRunError","RunJobSuccess"],SetGlobalLogLevelPayload:["InputErrors","SetGlobalLogLevelSuccess"],SetSQLLoggingPayload:["SetSQLLoggingSuccess"],SetServicesLogLevelsPayload:["InputErrors","SetServicesLogLevelsSuccess"],UpdateBridgePayload:["NotFoundError","UpdateBridgeSuccess"],UpdateFeedsManagerChainConfigPayload:["InputErrors","NotFoundError","UpdateFeedsManagerChainConfigSuccess"],UpdateFeedsManagerPayload:["InputErrors","NotFoundError","UpdateFeedsManagerSuccess"],UpdateJobProposalSpecDefinitionPayload:["NotFoundError","UpdateJobProposalSpecDefinitionSuccess"],UpdatePasswordPayload:["InputErrors","UpdatePasswordSuccess"],VRFKeyPayload:["NotFoundError","VRFKeySuccess"]}};let ai=ar;var aa=(r=void 0,location.origin),ao=new nh({uri:"".concat(aa,"/query"),credentials:"include"}),as=new ia({cache:new an({possibleTypes:ai.possibleTypes}),link:ao});if(a.Z.locale(o),u().defaultFormat="YYYY-MM-DD h:mm:ss A","undefined"!=typeof document){var au,ac,al=f().hydrate;ac=X,al(c.createElement(et,{client:as},c.createElement(d.zj,null,c.createElement(i.MuiThemeProvider,{theme:J.r},c.createElement(ac,null)))),document.getElementById("root"))}})()})(); \ No newline at end of file +`+(a!==i?`result of cast: ${a}`:""))}return r}_cast(e,t){let n=void 0===e?e:this.transforms.reduce((t,n)=>n.call(this,t,e,this),e);return void 0===n&&(n=this.getDefault()),n}_validate(e,t={},n){let{sync:r,path:i,from:a=[],originalValue:o=e,strict:s=this.spec.strict,abortEarly:u=this.spec.abortEarly}=t,c=e;s||(c=this._cast(c,pB({assert:!1},t)));let l={value:c,path:i,options:t,originalValue:o,schema:this,label:this.spec.label,sync:r,from:a},f=[];this._typeError&&f.push(this._typeError),this._whitelistError&&f.push(this._whitelistError),this._blacklistError&&f.push(this._blacklistError),pO({args:l,value:c,path:i,sync:r,tests:f,endEarly:u},e=>{if(e)return void n(e,c);pO({tests:this.tests,args:l,path:i,sync:r,value:c,endEarly:u},n)})}validate(e,t,n){let r=this.resolve(pB({},t,{value:e}));return"function"==typeof n?r._validate(e,t,n):new Promise((n,i)=>r._validate(e,t,(e,t)=>{e?i(e):n(t)}))}validateSync(e,t){let n;return this.resolve(pB({},t,{value:e}))._validate(e,pB({},t,{sync:!0}),(e,t)=>{if(e)throw e;n=t}),n}isValid(e,t){return this.validate(e,t).then(()=>!0,e=>{if(pT.isError(e))return!1;throw e})}isValidSync(e,t){try{return this.validateSync(e,t),!0}catch(n){if(pT.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return null==e?e:"function"==typeof e?e.call(this):pn(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return 0===arguments.length?this._getDefault():this.clone({default:e})}strict(e=!0){var t=this.clone();return t.spec.strict=e,t}_isPresent(e){return null!=e}defined(e=pf.defined){return this.test({message:e,name:"defined",exclusive:!0,test:e=>void 0!==e})}required(e=pf.required){return this.clone({presence:"required"}).withMutation(t=>t.test({message:e,name:"required",exclusive:!0,test(e){return this.schema._isPresent(e)}}))}notRequired(){var e=this.clone({presence:"optional"});return e.tests=e.tests.filter(e=>"required"!==e.OPTIONS.name),e}nullable(e=!0){return this.clone({nullable:!1!==e})}transform(e){var t=this.clone();return t.transforms.push(e),t}test(...e){let t;if(void 0===(t=1===e.length?"function"==typeof e[0]?{test:e[0]}:e[0]:2===e.length?{name:e[0],test:e[1]}:{name:e[0],message:e[1],test:e[2]}).message&&(t.message=pf.default),"function"!=typeof t.test)throw TypeError("`test` is a required parameters");let n=this.clone(),r=pR(t),i=t.exclusive||t.name&&!0===n.exclusiveTests[t.name];if(t.exclusive&&!t.name)throw TypeError("Exclusive tests must provide a unique `name` identifying the test");return t.name&&(n.exclusiveTests[t.name]=!!t.exclusive),n.tests=n.tests.filter(e=>e.OPTIONS.name!==t.name||!i&&e.OPTIONS.test!==r.OPTIONS.test),n.tests.push(r),n}when(e,t){Array.isArray(e)||"string"==typeof e||(t=e,e=".");let n=this.clone(),r=pS(e).map(e=>new pD(e));return r.forEach(e=>{e.isSibling&&n.deps.push(e.key)}),n.conditions.push(new pE(r,t)),n}typeError(e){var t=this.clone();return t._typeError=pR({message:e,name:"typeError",test(e){return!!(void 0===e||this.schema.isType(e))||this.createError({params:{type:this.schema._type}})}}),t}oneOf(e,t=pf.oneOf){var n=this.clone();return e.forEach(e=>{n._whitelist.add(e),n._blacklist.delete(e)}),n._whitelistError=pR({message:t,name:"oneOf",test(e){if(void 0===e)return!0;let t=this.schema._whitelist;return!!t.has(e,this.resolve)||this.createError({params:{values:t.toArray().join(", ")}})}}),n}notOneOf(e,t=pf.notOneOf){var n=this.clone();return e.forEach(e=>{n._blacklist.add(e),n._whitelist.delete(e)}),n._blacklistError=pR({message:t,name:"notOneOf",test(e){let t=this.schema._blacklist;return!t.has(e,this.resolve)||this.createError({params:{values:t.toArray().join(", ")}})}}),n}strip(e=!0){let t=this.clone();return t.spec.strip=e,t}describe(){let e=this.clone(),{label:t,meta:n}=e.spec,r={meta:n,label:t,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(e=>({name:e.OPTIONS.name,params:e.OPTIONS.params})).filter((e,t,n)=>n.findIndex(t=>t.name===e.name)===t)};return r}}for(let pH of(pU.prototype.__isYupSchema__=!0,["validate","validateSync"]))pU.prototype[`${pH}At`]=function(e,t,n={}){let{parent:r,parentPath:i,schema:a}=pF(this,e,t,n.context);return a[pH](r&&r[i],pB({},n,{parent:r,path:e}))};for(let p$ of["equals","is"])pU.prototype[p$]=pU.prototype.oneOf;for(let pz of["not","nope"])pU.prototype[pz]=pU.prototype.notOneOf;pU.prototype.optional=pU.prototype.notRequired;let pG=pU;function pW(){return new pG}pW.prototype=pG.prototype;let pK=e=>null==e;function pV(){return new pq}class pq extends pU{constructor(){super({type:"boolean"}),this.withMutation(()=>{this.transform(function(e){if(!this.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e})})}_typeCheck(e){return e instanceof Boolean&&(e=e.valueOf()),"boolean"==typeof e}isTrue(e=pb.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test:e=>pK(e)||!0===e})}isFalse(e=pb.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test:e=>pK(e)||!1===e})}}pV.prototype=pq.prototype;let pZ=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i,pX=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,pJ=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,pQ=e=>pK(e)||e===e.trim(),p1=({}).toString();function p0(){return new p2}class p2 extends pU{constructor(){super({type:"string"}),this.withMutation(()=>{this.transform(function(e){if(this.isType(e)||Array.isArray(e))return e;let t=null!=e&&e.toString?e.toString():e;return t===p1?e:t})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),"string"==typeof e}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,t=pd.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},test(t){return pK(t)||t.length===this.resolve(e)}})}min(e,t=pd.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(t){return pK(t)||t.length>=this.resolve(e)}})}max(e,t=pd.max){return this.test({name:"max",exclusive:!0,message:t,params:{max:e},test(t){return pK(t)||t.length<=this.resolve(e)}})}matches(e,t){let n=!1,r,i;return t&&("object"==typeof t?{excludeEmptyString:n=!1,message:r,name:i}=t:r=t),this.test({name:i||"matches",message:r||pd.matches,params:{regex:e},test:t=>pK(t)||""===t&&n||-1!==t.search(e)})}email(e=pd.email){return this.matches(pZ,{name:"email",message:e,excludeEmptyString:!0})}url(e=pd.url){return this.matches(pX,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=pd.uuid){return this.matches(pJ,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>null===e?"":e)}trim(e=pd.trim){return this.transform(e=>null!=e?e.trim():e).test({message:e,name:"trim",test:pQ})}lowercase(e=pd.lowercase){return this.transform(e=>pK(e)?e:e.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:e=>pK(e)||e===e.toLowerCase()})}uppercase(e=pd.uppercase){return this.transform(e=>pK(e)?e:e.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:e=>pK(e)||e===e.toUpperCase()})}}p0.prototype=p2.prototype;let p3=e=>e!=+e;function p4(){return new p6}class p6 extends pU{constructor(){super({type:"number"}),this.withMutation(()=>{this.transform(function(e){let t=e;if("string"==typeof t){if(""===(t=t.replace(/\s/g,"")))return NaN;t=+t}return this.isType(t)?t:parseFloat(t)})})}_typeCheck(e){return e instanceof Number&&(e=e.valueOf()),"number"==typeof e&&!p3(e)}min(e,t=ph.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(t){return pK(t)||t>=this.resolve(e)}})}max(e,t=ph.max){return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(t){return pK(t)||t<=this.resolve(e)}})}lessThan(e,t=ph.lessThan){return this.test({message:t,name:"max",exclusive:!0,params:{less:e},test(t){return pK(t)||tthis.resolve(e)}})}positive(e=ph.positive){return this.moreThan(0,e)}negative(e=ph.negative){return this.lessThan(0,e)}integer(e=ph.integer){return this.test({name:"integer",message:e,test:e=>pK(e)||Number.isInteger(e)})}truncate(){return this.transform(e=>pK(e)?e:0|e)}round(e){var t,n=["ceil","floor","round","trunc"];if("trunc"===(e=(null==(t=e)?void 0:t.toLowerCase())||"round"))return this.truncate();if(-1===n.indexOf(e.toLowerCase()))throw TypeError("Only valid options for round() are: "+n.join(", "));return this.transform(t=>pK(t)?t:Math[e](t))}}p4.prototype=p6.prototype;var p5=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function p8(e){var t,n,r=[1,4,5,6,7,10,11],i=0;if(n=p5.exec(e)){for(var a,o=0;a=r[o];++o)n[a]=+n[a]||0;n[2]=(+n[2]||1)-1,n[3]=+n[3]||1,n[7]=n[7]?String(n[7]).substr(0,3):0,(void 0===n[8]||""===n[8])&&(void 0===n[9]||""===n[9])?t=+new Date(n[1],n[2],n[3],n[4],n[5],n[6],n[7]):("Z"!==n[8]&&void 0!==n[9]&&(i=60*n[10]+n[11],"+"===n[9]&&(i=0-i)),t=Date.UTC(n[1],n[2],n[3],n[4],n[5]+i,n[6],n[7]))}else t=Date.parse?Date.parse(e):NaN;return t}let p9=new Date(""),p7=e=>"[object Date]"===Object.prototype.toString.call(e);function be(){return new bt}class bt extends pU{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=p8(e),isNaN(e)?p9:new Date(e))})})}_typeCheck(e){return p7(e)&&!isNaN(e.getTime())}prepareParam(e,t){let n;if(pD.isRef(e))n=e;else{let r=this.cast(e);if(!this._typeCheck(r))throw TypeError(`\`${t}\` must be a Date or a value that can be \`cast()\` to a Date`);n=r}return n}min(e,t=pp.min){let n=this.prepareParam(e,"min");return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(e){return pK(e)||e>=this.resolve(n)}})}max(e,t=pp.max){var n=this.prepareParam(e,"max");return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(e){return pK(e)||e<=this.resolve(n)}})}}bt.INVALID_DATE=p9,be.prototype=bt.prototype,be.INVALID_DATE=p9;var bn=n(11865),br=n.n(bn),bi=n(68929),ba=n.n(bi),bo=n(67523),bs=n.n(bo),bu=n(94633),bc=n.n(bu);function bl(e,t=[]){let n=[],r=[];function i(e,i){var a=(0,pC.split)(e)[0];~r.indexOf(a)||r.push(a),~t.indexOf(`${i}-${a}`)||n.push([i,a])}for(let a in e)if(py()(e,a)){let o=e[a];~r.indexOf(a)||r.push(a),pD.isRef(o)&&o.isSibling?i(o.path,a):pw(o)&&"deps"in o&&o.deps.forEach(e=>i(e,a))}return bc().array(r,n).reverse()}function bf(e,t){let n=1/0;return e.some((e,r)=>{var i;if((null==(i=t.path)?void 0:i.indexOf(e))!==-1)return n=r,!0}),n}function bd(e){return(t,n)=>bf(e,t)-bf(e,n)}function bh(){return(bh=Object.assign||function(e){for(var t=1;t"[object Object]"===Object.prototype.toString.call(e);function bb(e,t){let n=Object.keys(e.fields);return Object.keys(t).filter(e=>-1===n.indexOf(e))}let bm=bd([]);class bg extends pU{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=bm,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(t){e=null}return this.isType(e)?e:null}),e&&this.shape(e)})}_typeCheck(e){return bp(e)||"function"==typeof e}_cast(e,t={}){var n;let r=super._cast(e,t);if(void 0===r)return this.getDefault();if(!this._typeCheck(r))return r;let i=this.fields,a=null!=(n=t.stripUnknown)?n:this.spec.noUnknown,o=this._nodes.concat(Object.keys(r).filter(e=>-1===this._nodes.indexOf(e))),s={},u=bh({},t,{parent:s,__validating:t.__validating||!1}),c=!1;for(let l of o){let f=i[l],d=py()(r,l);if(f){let h,p=r[l];u.path=(t.path?`${t.path}.`:"")+l;let b="spec"in(f=f.resolve({value:p,context:t.context,parent:s}))?f.spec:void 0,m=null==b?void 0:b.strict;if(null==b?void 0:b.strip){c=c||l in r;continue}void 0!==(h=t.__validating&&m?r[l]:f.cast(r[l],u))&&(s[l]=h)}else d&&!a&&(s[l]=r[l]);s[l]!==r[l]&&(c=!0)}return c?s:r}_validate(e,t={},n){let r=[],{sync:i,from:a=[],originalValue:o=e,abortEarly:s=this.spec.abortEarly,recursive:u=this.spec.recursive}=t;a=[{schema:this,value:o},...a],t.__validating=!0,t.originalValue=o,t.from=a,super._validate(e,t,(e,c)=>{if(e){if(!pT.isError(e)||s)return void n(e,c);r.push(e)}if(!u||!bp(c)){n(r[0]||null,c);return}o=o||c;let l=this._nodes.map(e=>(n,r)=>{let i=-1===e.indexOf(".")?(t.path?`${t.path}.`:"")+e:`${t.path||""}["${e}"]`,s=this.fields[e];if(s&&"validate"in s){s.validate(c[e],bh({},t,{path:i,from:a,strict:!0,parent:c,originalValue:o[e]}),r);return}r(null)});pO({sync:i,tests:l,value:c,errors:r,endEarly:s,sort:this._sortErrors,path:t.path},n)})}clone(e){let t=super.clone(e);return t.fields=bh({},this.fields),t._nodes=this._nodes,t._excludedEdges=this._excludedEdges,t._sortErrors=this._sortErrors,t}concat(e){let t=super.concat(e),n=t.fields;for(let[r,i]of Object.entries(this.fields)){let a=n[r];void 0===a?n[r]=i:a instanceof pU&&i instanceof pU&&(n[r]=i.concat(a))}return t.withMutation(()=>t.shape(n))}getDefaultFromShape(){let e={};return this._nodes.forEach(t=>{let n=this.fields[t];e[t]="default"in n?n.getDefault():void 0}),e}_getDefault(){return"default"in this.spec?super._getDefault():this._nodes.length?this.getDefaultFromShape():void 0}shape(e,t=[]){let n=this.clone(),r=Object.assign(n.fields,e);if(n.fields=r,n._sortErrors=bd(Object.keys(r)),t.length){Array.isArray(t[0])||(t=[t]);let i=t.map(([e,t])=>`${e}-${t}`);n._excludedEdges=n._excludedEdges.concat(i)}return n._nodes=bl(r,n._excludedEdges),n}pick(e){let t={};for(let n of e)this.fields[n]&&(t[n]=this.fields[n]);return this.clone().withMutation(e=>(e.fields={},e.shape(t)))}omit(e){let t=this.clone(),n=t.fields;for(let r of(t.fields={},e))delete n[r];return t.withMutation(()=>t.shape(n))}from(e,t,n){let r=(0,pC.getter)(e,!0);return this.transform(i=>{if(null==i)return i;let a=i;return py()(i,e)&&(a=bh({},i),n||delete a[e],a[t]=r(i)),a})}noUnknown(e=!0,t=pm.noUnknown){"string"==typeof e&&(t=e,e=!0);let n=this.test({name:"noUnknown",exclusive:!0,message:t,test(t){if(null==t)return!0;let n=bb(this.schema,t);return!e||0===n.length||this.createError({params:{unknown:n.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,t=pm.noUnknown){return this.noUnknown(!e,t)}transformKeys(e){return this.transform(t=>t&&bs()(t,(t,n)=>e(n)))}camelCase(){return this.transformKeys(ba())}snakeCase(){return this.transformKeys(br())}constantCase(){return this.transformKeys(e=>br()(e).toUpperCase())}describe(){let e=super.describe();return e.fields=pL()(this.fields,e=>e.describe()),e}}function bv(e){return new bg(e)}function by(){return(by=Object.assign||function(e){for(var t=1;t{this.transform(function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(t){e=null}return this.isType(e)?e:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,t){let n=super._cast(e,t);if(!this._typeCheck(n)||!this.innerType)return n;let r=!1,i=n.map((e,n)=>{let i=this.innerType.cast(e,by({},t,{path:`${t.path||""}[${n}]`}));return i!==e&&(r=!0),i});return r?i:n}_validate(e,t={},n){var r,i;let a=[],o=t.sync,s=t.path,u=this.innerType,c=null!=(r=t.abortEarly)?r:this.spec.abortEarly,l=null!=(i=t.recursive)?i:this.spec.recursive,f=null!=t.originalValue?t.originalValue:e;super._validate(e,t,(e,r)=>{if(e){if(!pT.isError(e)||c)return void n(e,r);a.push(e)}if(!l||!u||!this._typeCheck(r)){n(a[0]||null,r);return}f=f||r;let i=Array(r.length);for(let d=0;du.validate(h,b,t)}pO({sync:o,path:s,value:r,errors:a,endEarly:c,tests:i},n)})}clone(e){let t=super.clone(e);return t.innerType=this.innerType,t}concat(e){let t=super.concat(e);return t.innerType=this.innerType,e.innerType&&(t.innerType=t.innerType?t.innerType.concat(e.innerType):e.innerType),t}of(e){let t=this.clone();if(!pw(e))throw TypeError("`array.of()` sub-schema must be a valid yup schema not: "+pl(e));return t.innerType=e,t}length(e,t=pg.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},test(t){return pK(t)||t.length===this.resolve(e)}})}min(e,t){return t=t||pg.min,this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(t){return pK(t)||t.length>=this.resolve(e)}})}max(e,t){return t=t||pg.max,this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(t){return pK(t)||t.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,t)=>this._typeCheck(e)?e:null==t?[]:[].concat(t))}compact(e){let t=e?(t,n,r)=>!e(t,n,r):e=>!!e;return this.transform(e=>null!=e?e.filter(t):e)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}}bw.prototype=b_.prototype;var bE=bv().shape({name:p0().required("Required"),url:p0().required("Required")}),bS=function(e){var t=e.initialValues,n=e.onSubmit,r=e.submitButtonText,i=e.nameDisabled,a=void 0!==i&&i;return l.createElement(hT,{initialValues:t,validationSchema:bE,onSubmit:n},function(e){var t=e.isSubmitting;return l.createElement(l.Fragment,null,l.createElement(hR,{"data-testid":"bridge-form",noValidate:!0},l.createElement(d.Z,{container:!0,spacing:16},l.createElement(d.Z,{item:!0,xs:12,md:7},l.createElement(hP,{component:hX,id:"name",name:"name",label:"Name",disabled:a,required:!0,fullWidth:!0,FormHelperTextProps:{"data-testid":"name-helper-text"}})),l.createElement(d.Z,{item:!0,xs:12,md:7},l.createElement(hP,{component:hX,id:"url",name:"url",label:"Bridge URL",placeholder:"https://",required:!0,fullWidth:!0,FormHelperTextProps:{"data-testid":"url-helper-text"}})),l.createElement(d.Z,{item:!0,xs:12,md:7},l.createElement(d.Z,{container:!0,spacing:16},l.createElement(d.Z,{item:!0,xs:7},l.createElement(hP,{component:hX,id:"minimumContractPayment",name:"minimumContractPayment",label:"Minimum Contract Payment",placeholder:"0",fullWidth:!0,inputProps:{min:0},FormHelperTextProps:{"data-testid":"minimumContractPayment-helper-text"}})),l.createElement(d.Z,{item:!0,xs:7},l.createElement(hP,{component:hX,id:"confirmations",name:"confirmations",label:"Confirmations",placeholder:"0",type:"number",fullWidth:!0,inputProps:{min:0},FormHelperTextProps:{"data-testid":"confirmations-helper-text"}})))),l.createElement(d.Z,{item:!0,xs:12,md:7},l.createElement(ok.default,{variant:"contained",color:"primary",type:"submit",disabled:t,size:"large"},r)))))})},bk=function(e){var t=e.bridge,n=e.onSubmit,r={name:t.name,url:t.url,minimumContractPayment:t.minimumContractPayment,confirmations:t.confirmations};return l.createElement(ig,null,l.createElement(d.Z,{container:!0,spacing:40},l.createElement(d.Z,{item:!0,xs:12,md:11,lg:9},l.createElement(r5.Z,null,l.createElement(sl.Z,{title:"Edit Bridge",action:l.createElement(aA.Z,{component:tz,href:"/bridges/".concat(t.id)},"Cancel")}),l.createElement(aW.Z,null,l.createElement(bS,{nameDisabled:!0,initialValues:r,onSubmit:n,submitButtonText:"Save Bridge"}))))))};function bx(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&void 0!==arguments[0]&&arguments[0],t=e?function(){return l.createElement(x.default,{variant:"body1"},"Loading...")}:function(){return null};return{isLoading:e,LoadingPlaceholder:t}},mc=n(76023);function ml(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function mB(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=4?[e[0],e[1],e[2],e[3],"".concat(e[0],".").concat(e[1]),"".concat(e[0],".").concat(e[2]),"".concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[0]),"".concat(e[1],".").concat(e[2]),"".concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[1]),"".concat(e[2],".").concat(e[3]),"".concat(e[3],".").concat(e[0]),"".concat(e[3],".").concat(e[1]),"".concat(e[3],".").concat(e[2]),"".concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[1],".").concat(e[3]),"".concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[2],".").concat(e[3]),"".concat(e[0],".").concat(e[3],".").concat(e[1]),"".concat(e[0],".").concat(e[3],".").concat(e[2]),"".concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[1],".").concat(e[2],".").concat(e[3]),"".concat(e[1],".").concat(e[3],".").concat(e[0]),"".concat(e[1],".").concat(e[3],".").concat(e[2]),"".concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[0],".").concat(e[3]),"".concat(e[2],".").concat(e[1],".").concat(e[0]),"".concat(e[2],".").concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[3],".").concat(e[0]),"".concat(e[2],".").concat(e[3],".").concat(e[1]),"".concat(e[3],".").concat(e[0],".").concat(e[1]),"".concat(e[3],".").concat(e[0],".").concat(e[2]),"".concat(e[3],".").concat(e[1],".").concat(e[0]),"".concat(e[3],".").concat(e[1],".").concat(e[2]),"".concat(e[3],".").concat(e[2],".").concat(e[0]),"".concat(e[3],".").concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[1],".").concat(e[2],".").concat(e[3]),"".concat(e[0],".").concat(e[1],".").concat(e[3],".").concat(e[2]),"".concat(e[0],".").concat(e[2],".").concat(e[1],".").concat(e[3]),"".concat(e[0],".").concat(e[2],".").concat(e[3],".").concat(e[1]),"".concat(e[0],".").concat(e[3],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[3],".").concat(e[2],".").concat(e[1]),"".concat(e[1],".").concat(e[0],".").concat(e[2],".").concat(e[3]),"".concat(e[1],".").concat(e[0],".").concat(e[3],".").concat(e[2]),"".concat(e[1],".").concat(e[2],".").concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[2],".").concat(e[3],".").concat(e[0]),"".concat(e[1],".").concat(e[3],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[3],".").concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[0],".").concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[0],".").concat(e[3],".").concat(e[1]),"".concat(e[2],".").concat(e[1],".").concat(e[0],".").concat(e[3]),"".concat(e[2],".").concat(e[1],".").concat(e[3],".").concat(e[0]),"".concat(e[2],".").concat(e[3],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[3],".").concat(e[1],".").concat(e[0]),"".concat(e[3],".").concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[3],".").concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[3],".").concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[3],".").concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[3],".").concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[3],".").concat(e[2],".").concat(e[1],".").concat(e[0])]:void 0}var mZ={};function mX(e){if(0===e.length||1===e.length)return e;var t=e.join(".");return mZ[t]||(mZ[t]=mq(e)),mZ[t]}function mJ(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;return mX(e.filter(function(e){return"token"!==e})).reduce(function(e,t){return mK({},e,n[t])},t)}function mQ(e){return e.join(" ")}function m1(e,t){var n=0;return function(r){return n+=1,r.map(function(r,i){return m0({node:r,stylesheet:e,useInlineStyles:t,key:"code-segment-".concat(n,"-").concat(i)})})}}function m0(e){var t=e.node,n=e.stylesheet,r=e.style,i=void 0===r?{}:r,a=e.useInlineStyles,o=e.key,s=t.properties,u=t.type,c=t.tagName,f=t.value;if("text"===u)return f;if(c){var d,h=m1(n,a);if(a){var p=Object.keys(n).reduce(function(e,t){return t.split(".").forEach(function(t){e.includes(t)||e.push(t)}),e},[]),b=s.className&&s.className.includes("token")?["token"]:[],m=s.className&&b.concat(s.className.filter(function(e){return!p.includes(e)}));d=mK({},s,{className:mQ(m)||void 0,style:mJ(s.className,Object.assign({},s.style,i),n)})}else d=mK({},s,{className:mQ(s.className)});var g=h(t.children);return l.createElement(c,(0,mV.Z)({key:o},d),g)}}let m2=function(e,t){return -1!==e.listLanguages().indexOf(t)};var m3=/\n/g;function m4(e){return e.match(m3)}function m6(e){var t=e.lines,n=e.startingLineNumber,r=e.style;return t.map(function(e,t){var i=t+n;return l.createElement("span",{key:"line-".concat(t),className:"react-syntax-highlighter-line-number",style:"function"==typeof r?r(i):r},"".concat(i,"\n"))})}function m5(e){var t=e.codeString,n=e.codeStyle,r=e.containerStyle,i=void 0===r?{float:"left",paddingRight:"10px"}:r,a=e.numberStyle,o=void 0===a?{}:a,s=e.startingLineNumber;return l.createElement("code",{style:Object.assign({},n,i)},m6({lines:t.replace(/\n$/,"").split("\n"),style:o,startingLineNumber:s}))}function m8(e){return"".concat(e.toString().length,".25em")}function m9(e,t){return{type:"element",tagName:"span",properties:{key:"line-number--".concat(e),className:["comment","linenumber","react-syntax-highlighter-line-number"],style:t},children:[{type:"text",value:e}]}}function m7(e,t,n){var r,i={display:"inline-block",minWidth:m8(n),paddingRight:"1em",textAlign:"right",userSelect:"none"};return mK({},i,"function"==typeof e?e(t):e)}function ge(e){var t=e.children,n=e.lineNumber,r=e.lineNumberStyle,i=e.largestLineNumber,a=e.showInlineLineNumbers,o=e.lineProps,s=void 0===o?{}:o,u=e.className,c=void 0===u?[]:u,l=e.showLineNumbers,f=e.wrapLongLines,d="function"==typeof s?s(n):s;if(d.className=c,n&&a){var h=m7(r,n,i);t.unshift(m9(n,h))}return f&l&&(d.style=mK({},d.style,{display:"flex"})),{type:"element",tagName:"span",properties:d,children:t}}function gt(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=0;r2&&void 0!==arguments[2]?arguments[2]:[];return ge({children:e,lineNumber:t,lineNumberStyle:s,largestLineNumber:o,showInlineLineNumbers:i,lineProps:n,className:a,showLineNumbers:r,wrapLongLines:u})}function b(e,t){if(r&&t&&i){var n=m7(s,t,o);e.unshift(m9(t,n))}return e}function m(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return t||r.length>0?p(e,n,r):b(e,n)}for(var g=function(){var e=l[h],t=e.children[0].value;if(m4(t)){var n=t.split("\n");n.forEach(function(t,i){var o=r&&f.length+a,s={type:"text",value:"".concat(t,"\n")};if(0===i){var u=l.slice(d+1,h).concat(ge({children:[s],className:e.properties.className})),c=m(u,o);f.push(c)}else if(i===n.length-1){if(l[h+1]&&l[h+1].children&&l[h+1].children[0]){var p={type:"text",value:"".concat(t)},b=ge({children:[p],className:e.properties.className});l.splice(h+1,0,b)}else{var g=[s],v=m(g,o,e.properties.className);f.push(v)}}else{var y=[s],w=m(y,o,e.properties.className);f.push(w)}}),d=h}h++};h code[class*="language-"]':{background:"#f5f2f0",padding:".1em",borderRadius:".3em",whiteSpace:"normal"},comment:{color:"slategray"},prolog:{color:"slategray"},doctype:{color:"slategray"},cdata:{color:"slategray"},punctuation:{color:"#999"},namespace:{Opacity:".7"},property:{color:"#905"},tag:{color:"#905"},boolean:{color:"#905"},number:{color:"#905"},constant:{color:"#905"},symbol:{color:"#905"},deleted:{color:"#905"},selector:{color:"#690"},"attr-name":{color:"#690"},string:{color:"#690"},char:{color:"#690"},builtin:{color:"#690"},inserted:{color:"#690"},operator:{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)"},entity:{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)",cursor:"help"},url:{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)"},".language-css .token.string":{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)"},".style .token.string":{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)"},atrule:{color:"#07a"},"attr-value":{color:"#07a"},keyword:{color:"#07a"},function:{color:"#DD4A68"},"class-name":{color:"#DD4A68"},regex:{color:"#e90"},important:{color:"#e90",fontWeight:"bold"},variable:{color:"#e90"},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"}};var gu=n(98695),gc=n.n(gu);let gl=["abap","abnf","actionscript","ada","agda","al","antlr4","apacheconf","apl","applescript","aql","arduino","arff","asciidoc","asm6502","aspnet","autohotkey","autoit","bash","basic","batch","bbcode","birb","bison","bnf","brainfuck","brightscript","bro","bsl","c","cil","clike","clojure","cmake","coffeescript","concurnas","cpp","crystal","csharp","csp","css-extras","css","cypher","d","dart","dax","dhall","diff","django","dns-zone-file","docker","ebnf","editorconfig","eiffel","ejs","elixir","elm","erb","erlang","etlua","excel-formula","factor","firestore-security-rules","flow","fortran","fsharp","ftl","gcode","gdscript","gedcom","gherkin","git","glsl","gml","go","graphql","groovy","haml","handlebars","haskell","haxe","hcl","hlsl","hpkp","hsts","http","ichigojam","icon","iecst","ignore","inform7","ini","io","j","java","javadoc","javadoclike","javascript","javastacktrace","jolie","jq","js-extras","js-templates","jsdoc","json","json5","jsonp","jsstacktrace","jsx","julia","keyman","kotlin","latex","latte","less","lilypond","liquid","lisp","livescript","llvm","lolcode","lua","makefile","markdown","markup-templating","markup","matlab","mel","mizar","mongodb","monkey","moonscript","n1ql","n4js","nand2tetris-hdl","naniscript","nasm","neon","nginx","nim","nix","nsis","objectivec","ocaml","opencl","oz","parigp","parser","pascal","pascaligo","pcaxis","peoplecode","perl","php-extras","php","phpdoc","plsql","powerquery","powershell","processing","prolog","properties","protobuf","pug","puppet","pure","purebasic","purescript","python","q","qml","qore","r","racket","reason","regex","renpy","rest","rip","roboconf","robotframework","ruby","rust","sas","sass","scala","scheme","scss","shell-session","smali","smalltalk","smarty","sml","solidity","solution-file","soy","sparql","splunk-spl","sqf","sql","stan","stylus","swift","t4-cs","t4-templating","t4-vb","tap","tcl","textile","toml","tsx","tt2","turtle","twig","typescript","typoscript","unrealscript","vala","vbnet","velocity","verilog","vhdl","vim","visual-basic","warpscript","wasm","wiki","xeora","xml-doc","xojo","xquery","yaml","yang","zig"];var gf=go(gc(),gs);gf.supportedLanguages=gl;let gd=gf;var gh=n(64566);function gp(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function gb(){var e=gp(["\n query FetchConfigV2 {\n configv2 {\n user\n effective\n }\n }\n"]);return gb=function(){return e},e}var gm=n0(gb()),gg=function(e){var t=e.children;return l.createElement(ir.Z,null,l.createElement(r7.default,{component:"th",scope:"row",colSpan:3},t))},gv=function(){return l.createElement(gg,null,"...")},gy=function(e){var t=e.children;return l.createElement(gg,null,t)},gw=function(e){var t=e.loading,n=e.toml,r=e.error,i=void 0===r?"":r,a=e.title,o=e.expanded;if(i)return l.createElement(gy,null,i);if(t)return l.createElement(gv,null);a||(a="TOML");var s={display:"block"};return l.createElement(x.default,null,l.createElement(mP.Z,{defaultExpanded:o},l.createElement(mR.Z,{expandIcon:l.createElement(gh.Z,null)},a),l.createElement(mj.Z,{style:s},l.createElement(gd,{language:"toml",style:gs},n))))},g_=function(){var e=rv(gm,{fetchPolicy:"cache-and-network"}),t=e.data,n=e.loading,r=e.error;return(null==t?void 0:t.configv2.effective)=="N/A"?l.createElement(l.Fragment,null,l.createElement(d.Z,{item:!0,xs:12},l.createElement(r5.Z,null,l.createElement(sl.Z,{title:"TOML Configuration"}),l.createElement(gw,{title:"V2 config dump:",error:null==r?void 0:r.message,loading:n,toml:null==t?void 0:t.configv2.user,showHead:!0})))):l.createElement(l.Fragment,null,l.createElement(d.Z,{container:!0},l.createElement(d.Z,{item:!0,xs:12},l.createElement(r5.Z,null,l.createElement(sl.Z,{title:"TOML Configuration"}),l.createElement(gw,{title:"User specified:",error:null==r?void 0:r.message,loading:n,toml:null==t?void 0:t.configv2.user,showHead:!0,expanded:!0}),l.createElement(gw,{title:"Effective (with defaults):",error:null==r?void 0:r.message,loading:n,toml:null==t?void 0:t.configv2.effective,showHead:!0})))))},gE=n(34823),gS=function(e){return(0,b.createStyles)({cell:{paddingTop:1.5*e.spacing.unit,paddingBottom:1.5*e.spacing.unit}})},gk=(0,b.withStyles)(gS)(function(e){var t=e.classes,n=(0,A.I0)();(0,l.useEffect)(function(){n((0,ty.DQ)())});var r=(0,A.v9)(gE.N,A.wU);return l.createElement(r5.Z,null,l.createElement(sl.Z,{title:"Node"}),l.createElement(r8.Z,null,l.createElement(r9.Z,null,l.createElement(ir.Z,null,l.createElement(r7.default,{className:t.cell},l.createElement(x.default,null,"Version"),l.createElement(x.default,{variant:"subtitle1",color:"textSecondary"},r.version))),l.createElement(ir.Z,null,l.createElement(r7.default,{className:t.cell},l.createElement(x.default,null,"SHA"),l.createElement(x.default,{variant:"subtitle1",color:"textSecondary"},r.commitSHA))))))}),gx=function(){return l.createElement(ig,null,l.createElement(d.Z,{container:!0},l.createElement(d.Z,{item:!0,sm:12,md:8},l.createElement(d.Z,{container:!0},l.createElement(g_,null))),l.createElement(d.Z,{item:!0,sm:12,md:4},l.createElement(d.Z,{container:!0},l.createElement(d.Z,{item:!0,xs:12},l.createElement(gk,null)),l.createElement(d.Z,{item:!0,xs:12},l.createElement(mN,null)),l.createElement(d.Z,{item:!0,xs:12},l.createElement(mE,null))))))},gT=function(){return l.createElement(gx,null)},gM=function(){return l.createElement(gT,null)},gO=n(44431),gA=1e18,gL=function(e){return new gO.BigNumber(e).dividedBy(gA).toFixed(8)},gC=function(e){var t=e.keys,n=e.chainID,r=e.hideHeaderTitle;return l.createElement(l.Fragment,null,l.createElement(sl.Z,{title:!r&&"Account Balances",subheader:"Chain ID "+n}),l.createElement(aW.Z,null,l.createElement(w.default,{dense:!1,disablePadding:!0},t&&t.map(function(e,r){return l.createElement(l.Fragment,null,l.createElement(_.default,{disableGutters:!0,key:["acc-balance",n.toString(),r.toString()].join("-")},l.createElement(E.Z,{primary:l.createElement(l.Fragment,null,l.createElement(d.Z,{container:!0,spacing:16},l.createElement(d.Z,{item:!0,xs:12},l.createElement(op,{title:"Address"}),l.createElement(ob,{value:e.address})),l.createElement(d.Z,{item:!0,xs:6},l.createElement(op,{title:"Native Token Balance"}),l.createElement(ob,{value:e.ethBalance||"--"})),l.createElement(d.Z,{item:!0,xs:6},l.createElement(op,{title:"LINK Balance"}),l.createElement(ob,{value:e.linkBalance?gL(e.linkBalance):"--"}))))})),r+1s&&l.createElement(gB.Z,null,l.createElement(ir.Z,null,l.createElement(r7.default,{className:r.footer},l.createElement(aA.Z,{href:"/runs",component:tz},"View More"))))))});function vt(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function vn(){var e=vt(["\n ","\n query FetchRecentJobRuns($offset: Int, $limit: Int) {\n jobRuns(offset: $offset, limit: $limit) {\n results {\n ...RecentJobRunsPayload_ResultsFields\n }\n metadata {\n total\n }\n }\n }\n"]);return vn=function(){return e},e}var vr=5,vi=n0(vn(),g9),va=function(){var e=rv(vi,{variables:{offset:0,limit:vr},fetchPolicy:"cache-and-network"}),t=e.data,n=e.loading,r=e.error;return l.createElement(ve,{data:t,errorMsg:null==r?void 0:r.message,loading:n,maxRunsSize:vr})},vo=function(e){return(0,b.createStyles)({style:{textAlign:"center",padding:2.5*e.spacing.unit,position:"fixed",left:"0",bottom:"0",width:"100%",borderRadius:0},bareAnchor:{color:e.palette.common.black,textDecoration:"none"}})},vs=(0,b.withStyles)(vo)(function(e){var t=e.classes,n=(0,A.v9)(gE.N,A.wU),r=(0,A.I0)();return(0,l.useEffect)(function(){r((0,ty.DQ)())}),l.createElement(ii.default,{className:t.style},l.createElement(x.default,null,"Chainlink Node ",n.version," at commit"," ",l.createElement("a",{target:"_blank",rel:"noopener noreferrer",href:"https://github.com/smartcontractkit/chainlink/commit/".concat(n.commitSHA),className:t.bareAnchor},n.commitSHA)))}),vu=function(e){return(0,b.createStyles)({cell:{borderColor:e.palette.divider,borderTop:"1px solid",borderBottom:"none",paddingTop:2*e.spacing.unit,paddingBottom:2*e.spacing.unit,paddingLeft:2*e.spacing.unit},block:{display:"block"},overflowEllipsis:{textOverflow:"ellipsis",overflow:"hidden"}})},vc=(0,b.withStyles)(vu)(function(e){var t=e.classes,n=e.job;return l.createElement(ir.Z,null,l.createElement(r7.default,{scope:"row",className:t.cell},l.createElement(d.Z,{container:!0,spacing:0},l.createElement(d.Z,{item:!0,xs:12},l.createElement(ih,{href:"/jobs/".concat(n.id),classes:{linkContent:t.block}},l.createElement(x.default,{className:t.overflowEllipsis,variant:"body1",component:"span",color:"primary"},n.name||n.id))),l.createElement(d.Z,{item:!0,xs:12},l.createElement(x.default,{variant:"body1",color:"textSecondary"},"Created ",l.createElement(aO,{tooltip:!0},n.createdAt))))))});function vl(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function vf(){var e=vl(["\n fragment RecentJobsPayload_ResultsFields on Job {\n id\n name\n createdAt\n }\n"]);return vf=function(){return e},e}var vd=n0(vf()),vh=function(){return(0,b.createStyles)({cardHeader:{borderBottom:0},table:{tableLayout:"fixed"}})},vp=(0,b.withStyles)(vh)(function(e){var t,n,r=e.classes,i=e.data,a=e.errorMsg,o=e.loading;return l.createElement(r5.Z,null,l.createElement(sl.Z,{title:"Recent Jobs",className:r.cardHeader}),l.createElement(r8.Z,{className:r.table},l.createElement(r9.Z,null,l.createElement(g$,{visible:o}),l.createElement(gz,{visible:(null===(t=null==i?void 0:i.jobs.results)||void 0===t?void 0:t.length)===0},"No recently created jobs"),l.createElement(gU,{msg:a}),null===(n=null==i?void 0:i.jobs.results)||void 0===n?void 0:n.map(function(e,t){return l.createElement(vc,{job:e,key:t})}))))});function vb(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function vm(){var e=vb(["\n ","\n query FetchRecentJobs($offset: Int, $limit: Int) {\n jobs(offset: $offset, limit: $limit) {\n results {\n ...RecentJobsPayload_ResultsFields\n }\n }\n }\n"]);return vm=function(){return e},e}var vg=5,vv=n0(vm(),vd),vy=function(){var e=rv(vv,{variables:{offset:0,limit:vg},fetchPolicy:"cache-and-network"}),t=e.data,n=e.loading,r=e.error;return l.createElement(vp,{data:t,errorMsg:null==r?void 0:r.message,loading:n})},vw=function(){return l.createElement(ig,null,l.createElement(d.Z,{container:!0},l.createElement(d.Z,{item:!0,xs:8},l.createElement(va,null)),l.createElement(d.Z,{item:!0,xs:4},l.createElement(d.Z,{container:!0},l.createElement(d.Z,{item:!0,xs:12},l.createElement(gY,null)),l.createElement(d.Z,{item:!0,xs:12},l.createElement(vy,null))))),l.createElement(vs,null))},v_=function(){return l.createElement(vw,null)},vE=function(){return l.createElement(v_,null)},vS=n(87239),vk=function(e){switch(e){case"DirectRequestSpec":return"Direct Request";case"FluxMonitorSpec":return"Flux Monitor";default:return e.replace(/Spec$/,"")}},vx=n(5022),vT=n(78718),vM=n.n(vT);function vO(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n1?t-1:0),r=1;r1?t-1:0),r=1;re.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&n.map(function(e){return l.createElement(ir.Z,{key:e.id,style:{cursor:"pointer"},onClick:function(){return r.push("/runs/".concat(e.id))}},l.createElement(r7.default,{className:t.idCell,scope:"row"},l.createElement("div",{className:t.runDetails},l.createElement(x.default,{variant:"h5",color:"primary",component:"span"},e.id))),l.createElement(r7.default,{className:t.stampCell},l.createElement(x.default,{variant:"body1",color:"textSecondary",className:t.stamp},"Created ",l.createElement(aO,{tooltip:!0},e.createdAt))),l.createElement(r7.default,{className:t.statusCell,scope:"row"},l.createElement(x.default,{variant:"body1",className:O()(t.status,yh(t,e.status))},e.status.toLowerCase())))})))}),yb=n(16839),ym=n.n(yb);function yg(e){var t=e.replace(/\w+\s*=\s*<([^>]|[\r\n])*>/g,""),n=ym().read(t),r=n.edges();return n.nodes().map(function(e){var t={id:e,parentIds:r.filter(function(t){return t.w===e}).map(function(e){return e.v})};return Object.keys(n.node(e)).length>0&&(t.attributes=n.node(e)),t})}var yv=n(94164),yy=function(e){var t=e.data,n=[];return(null==t?void 0:t.attributes)&&Object.keys(t.attributes).forEach(function(e){var r;n.push(l.createElement("div",{key:e},l.createElement(x.default,{variant:"body1",color:"textSecondary",component:"div"},l.createElement("b",null,e,":")," ",null===(r=t.attributes)||void 0===r?void 0:r[e])))}),l.createElement("div",null,t&&l.createElement(x.default,{variant:"body1",color:"textPrimary"},l.createElement("b",null,t.id)),n)},yw=n(73343),y_=n(3379),yE=n.n(y_);function yS(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);nwindow.innerWidth?u-r.getBoundingClientRect().width-a:u+a,n=c+r.getBoundingClientRect().height+i>window.innerHeight?c-r.getBoundingClientRect().height-a:c+a,r.style.opacity=String(1),r.style.top="".concat(n,"px"),r.style.left="".concat(t,"px"),r.style.zIndex=String(1)}},h=function(e){var t=document.getElementById("tooltip-d3-chart-".concat(e));t&&(t.style.opacity=String(0),t.style.zIndex=String(-1))};return l.createElement("div",{style:{fontFamily:"sans-serif",fontWeight:"normal"}},l.createElement(yv.kJ,{id:"task-list-graph-d3",data:i,config:s,onMouseOverNode:d,onMouseOutNode:h},"D3 chart"),n.map(function(e){return l.createElement("div",{key:"d3-tooltip-key-".concat(e.id),id:"tooltip-d3-chart-".concat(e.id),style:{position:"absolute",opacity:"0",border:"1px solid rgba(0, 0, 0, 0.1)",padding:yw.r.spacing.unit,background:"white",borderRadius:5,zIndex:-1,inlineSize:"min-content"}},l.createElement(yy,{data:e}))}))};function yL(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);nyY&&l.createElement("div",{className:t.runDetails},l.createElement(aA.Z,{href:"/jobs/".concat(n.id,"/runs"),component:tz},"View more")))),l.createElement(d.Z,{item:!0,xs:12,sm:6},l.createElement(yF,{observationSource:n.observationSource})))});function yH(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&void 0!==arguments[0]?arguments[0]:"";try{return vx.parse(e),!0}catch(t){return!1}})}),wW=function(e){var t=e.initialValues,n=e.onSubmit,r=e.onTOMLChange;return l.createElement(hT,{initialValues:t,validationSchema:wG,onSubmit:n},function(e){var t=e.isSubmitting,n=e.values;return r&&r(n.toml),l.createElement(hR,{"data-testid":"job-form",noValidate:!0},l.createElement(d.Z,{container:!0,spacing:16},l.createElement(d.Z,{item:!0,xs:12},l.createElement(hP,{component:hX,id:"toml",name:"toml",label:"Job Spec (TOML)",required:!0,fullWidth:!0,multiline:!0,rows:10,rowsMax:25,variant:"outlined",autoComplete:"off",FormHelperTextProps:{"data-testid":"toml-helper-text"}})),l.createElement(d.Z,{item:!0,xs:12,md:7},l.createElement(ok.default,{variant:"contained",color:"primary",type:"submit",disabled:t,size:"large"},"Create Job"))))})},wK=n(50109),wV="persistSpec";function wq(e){var t=e.query,n=new URLSearchParams(t).get("definition");return n?(wK.t8(wV,n),{toml:n}):{toml:wK.U2(wV)||""}}var wZ=function(e){var t=e.onSubmit,n=e.onTOMLChange,r=wq({query:(0,h.TH)().search}),i=function(e){var t=e.replace(/[\u200B-\u200D\uFEFF]/g,"");wK.t8("".concat(wV),t),n&&n(t)};return l.createElement(r5.Z,null,l.createElement(sl.Z,{title:"New Job"}),l.createElement(aW.Z,null,l.createElement(wW,{initialValues:r,onSubmit:t,onTOMLChange:i})))};function wX(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n1&&void 0!==arguments[1]?arguments[1]:{},n=t.start,r=void 0===n?6:n,i=t.end,a=void 0===i?4:i;return e.substring(0,r)+"..."+e.substring(e.length-a)}function _M(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&void 0!==arguments[0]?arguments[0]:{};return rv(_W,e)},_V=function(){var e=_K({fetchPolicy:"cache-and-network"}),t=e.data,n=e.loading,r=e.error,i=e.refetch;return l.createElement(_U,{loading:n,data:t,errorMsg:null==r?void 0:r.message,refetch:i})},_q=function(e){var t=e.csaKey;return l.createElement(ir.Z,{hover:!0},l.createElement(r7.default,null,l.createElement(x.default,{variant:"body1"},t.publicKey," ",l.createElement(_x,{data:t.publicKey}))))};function _Z(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function _X(){var e=_Z(["\n fragment CSAKeysPayload_ResultsFields on CSAKey {\n id\n publicKey\n }\n"]);return _X=function(){return e},e}var _J=n0(_X()),_Q=function(e){var t,n,r,i=e.data,a=e.errorMsg,o=e.loading,s=e.onCreate;return l.createElement(r5.Z,null,l.createElement(sl.Z,{action:(null===(t=null==i?void 0:i.csaKeys.results)||void 0===t?void 0:t.length)===0&&l.createElement(ok.default,{variant:"outlined",color:"primary",onClick:s},"New CSA Key"),title:"CSA Key",subheader:"Manage your CSA Key"}),l.createElement(r8.Z,null,l.createElement(ie.Z,null,l.createElement(ir.Z,null,l.createElement(r7.default,null,"Public Key"))),l.createElement(r9.Z,null,l.createElement(g$,{visible:o}),l.createElement(gz,{visible:(null===(n=null==i?void 0:i.csaKeys.results)||void 0===n?void 0:n.length)===0}),l.createElement(gU,{msg:a}),null===(r=null==i?void 0:i.csaKeys.results)||void 0===r?void 0:r.map(function(e,t){return l.createElement(_q,{csaKey:e,key:t})}))))};function _1(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&void 0!==arguments[0]?arguments[0]:{};return rv(EM,e)};function EA(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&void 0!==arguments[0]?arguments[0]:{};return rv(EJ,e)},E3=function(){return oo(EQ)},E4=function(){return oo(E1)},E6=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return rv(E0,e)};function E5(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&void 0!==arguments[0]?arguments[0]:{};return rv(SK,e)};function Sq(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function kV(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}var kq=function(e){var t=e.run,n=l.useMemo(function(){var e=t.inputs,n=t.outputs,r=t.taskRuns,i=kK(t,["inputs","outputs","taskRuns"]),a={};try{a=JSON.parse(e)}catch(o){a={}}return kW(kz({},i),{inputs:a,outputs:n,taskRuns:r})},[t]);return l.createElement(r5.Z,null,l.createElement(aW.Z,null,l.createElement(kH,{object:n})))};function kZ(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function kX(e){for(var t=1;t0&&l.createElement(kr,{errors:t.allErrors})),l.createElement(d.Z,{item:!0,xs:12},l.createElement(h.rs,null,l.createElement(h.AW,{path:"".concat(n,"/json")},l.createElement(kq,{run:t})),l.createElement(h.AW,{path:n},t.taskRuns.length>0&&l.createElement(kN,{taskRuns:t.taskRuns,observationSource:t.job.observationSource}))))))))};function k5(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function k8(){var e=k5(["\n ","\n query FetchJobRun($id: ID!) {\n jobRun(id: $id) {\n __typename\n ... on JobRun {\n ...JobRunPayload_Fields\n }\n ... on NotFoundError {\n message\n }\n }\n }\n"]);return k8=function(){return e},e}var k9=n0(k8(),k4),k7=function(){var e=rv(k9,{variables:{id:(0,h.UO)().id}}),t=e.data,n=e.loading,r=e.error;if(n)return l.createElement(iR,null);if(r)return l.createElement(iD,{error:r});var i=null==t?void 0:t.jobRun;switch(null==i?void 0:i.__typename){case"JobRun":return l.createElement(k6,{run:i});case"NotFoundError":return l.createElement(oa,null);default:return null}};function xe(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function xt(){var e=xe(["\n fragment JobRunsPayload_ResultsFields on JobRun {\n id\n allErrors\n createdAt\n finishedAt\n status\n job {\n id\n }\n }\n"]);return xt=function(){return e},e}var xn=n0(xt()),xr=function(e){var t=e.loading,n=e.data,r=e.page,i=e.pageSize,a=(0,h.k6)(),o=l.useMemo(function(){return null==n?void 0:n.jobRuns.results.map(function(e){var t,n=e.allErrors,r=e.id,i=e.createdAt;return{id:r,createdAt:i,errors:n,finishedAt:e.finishedAt,status:e.status}})},[n]);return l.createElement(ig,null,l.createElement(d.Z,{container:!0,spacing:32},l.createElement(d.Z,{item:!0,xs:12},l.createElement(iy,null,"Job Runs")),t&&l.createElement(iR,null),n&&o&&l.createElement(d.Z,{item:!0,xs:12},l.createElement(r5.Z,null,l.createElement(yp,{runs:o}),l.createElement(it.Z,{component:"div",count:n.jobRuns.metadata.total,rowsPerPage:i,rowsPerPageOptions:[i],page:r-1,onChangePage:function(e,t){a.push("/runs?page=".concat(t+1,"&per=").concat(i))},onChangeRowsPerPage:function(){},backIconButtonProps:{"aria-label":"prev-page"},nextIconButtonProps:{"aria-label":"next-page"}})))))};function xi(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function xa(){var e=xi(["\n ","\n query FetchJobRuns($offset: Int, $limit: Int) {\n jobRuns(offset: $offset, limit: $limit) {\n results {\n ...JobRunsPayload_ResultsFields\n }\n metadata {\n total\n }\n }\n }\n"]);return xa=function(){return e},e}var xo=n0(xa(),xn),xs=function(){var e=ij(),t=parseInt(e.get("page")||"1",10),n=parseInt(e.get("per")||"25",10),r=rv(xo,{variables:{offset:(t-1)*n,limit:n},fetchPolicy:"cache-and-network"}),i=r.data,a=r.loading,o=r.error;return o?l.createElement(iD,{error:o}):l.createElement(xr,{loading:a,data:i,page:t,pageSize:n})},xu=function(){var e=(0,h.$B)().path;return l.createElement(h.rs,null,l.createElement(h.AW,{exact:!0,path:e},l.createElement(xs,null)),l.createElement(h.AW,{path:"".concat(e,"/:id")},l.createElement(k7,null)))};function xc(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function xl(){var e=xc(["\n fragment FetchFeedsManagersPayload_ResultsFields on FeedsManager {\n __typename\n id\n name\n uri\n publicKey\n isConnectionActive\n createdAt\n disabledAt\n }\n query FetchFeedsManagers {\n feedsManagers {\n results {\n ...FetchFeedsManagersPayload_ResultsFields\n }\n }\n }\n"]);return xl=function(){return e},e}var xf=n0(xl()),xd=function(e){return rv(xf,e)},xh=n(47559),xp=n(83165),xb=n(47298),xm=n(81395),xg=function(){return(0,b.createStyles)({root:{display:"flex"},activeIcon:{color:xh.default[500]},inactiveIcon:{color:xp.default[500]},text:{marginLeft:4}})},xv=(0,b.withStyles)(xg)(function(e){var t=e.isActive,n=e.activeText,r=e.inactiveText,i=e.classes;return l.createElement("div",{className:i.root},t?l.createElement(xm.Z,{fontSize:"small",className:i.activeIcon}):l.createElement(xb.Z,{fontSize:"small",className:i.inactiveIcon}),l.createElement(x.default,{variant:"body1",inline:!0,className:i.text},t?n:r))}),xy=(0,b.withStyles)(iu)(function(e){var t=e.jobDistributor,n=e.classes;return l.createElement(ir.Z,{className:n.row,hover:!0},l.createElement(r7.default,{className:n.cell,component:"th",scope:"row"},l.createElement(ih,{className:n.link,href:"/job_distributors/".concat(t.id)},t.name)),l.createElement(r7.default,null,l.createElement(xv,{isActive:t.isConnectionActive,activeText:"Connected",inactiveText:"Disconnected"})),l.createElement(r7.default,null,l.createElement(xv,{isActive:!t.disabledAt,activeText:"Enabled",inactiveText:"Disabled"})),l.createElement(r7.default,null,_T(t.publicKey,{start:6,end:6}),l.createElement(_x,{data:t.publicKey})),l.createElement(r7.default,null,t.uri))}),xw=function(e){var t=e.jobDistributors;return l.createElement(ig,null,l.createElement(d.Z,{container:!0},l.createElement(d.Z,{item:!0,xs:9},l.createElement(iy,null,"Job Distributors")),l.createElement(d.Z,{item:!0,xs:3},l.createElement(d.Z,{container:!0,justify:"flex-end"},l.createElement(d.Z,{item:!0},l.createElement(aA.Z,{variant:"secondary",component:tz,href:"/job_distributors/new"},"New Job Distributor")))),l.createElement(d.Z,{item:!0,xs:12},l.createElement(r5.Z,null,l.createElement(r8.Z,null,l.createElement(ie.Z,null,l.createElement(ir.Z,null,l.createElement(r7.default,null,"Name"),l.createElement(r7.default,null,"Connection Status"),l.createElement(r7.default,null,"Status"),l.createElement(r7.default,null,"CSA Public Key"),l.createElement(r7.default,null,"RPC URL"))),l.createElement(r9.Z,null,0===t.length&&l.createElement(ir.Z,null,l.createElement(r7.default,{component:"th",scope:"row",colSpan:3},"Job Distributors have not been registered")),t.map(function(e){return l.createElement(xy,{key:e.id,jobDistributor:e})})))))))},x_=function(){var e,t=xd({fetchPolicy:"cache-and-network"}),n=t.data,r=t.loading,i=t.error;return r?l.createElement(iR,null):i?l.createElement(iD,{error:i}):l.createElement(xw,{jobDistributors:null!==(e=null==n?void 0:n.feedsManagers.results)&&void 0!==e?e:[]})},xE=bv().shape({name:p0().required("Required"),uri:p0().required("Required"),publicKey:p0().required("Required")}),xS=function(e){var t=e.initialValues,n=e.onSubmit;return l.createElement(hT,{initialValues:t,validationSchema:xE,onSubmit:n},function(e){var t=e.isSubmitting,n=e.submitForm;return l.createElement(hR,{"data-testid":"feeds-manager-form"},l.createElement(d.Z,{container:!0,spacing:16},l.createElement(d.Z,{item:!0,xs:12,md:6},l.createElement(hP,{component:hX,id:"name",name:"name",label:"Name",required:!0,fullWidth:!0,FormHelperTextProps:{"data-testid":"name-helper-text"}})),l.createElement(d.Z,{item:!0,xs:!1,md:6}),l.createElement(d.Z,{item:!0,xs:12,md:6},l.createElement(hP,{component:hX,id:"uri",name:"uri",label:"URI",required:!0,fullWidth:!0,helperText:"Provided by the Job Distributor operator",FormHelperTextProps:{"data-testid":"uri-helper-text"}})),l.createElement(d.Z,{item:!0,xs:12,md:6},l.createElement(hP,{component:hX,id:"publicKey",name:"publicKey",label:"Public Key",required:!0,fullWidth:!0,helperText:"Provided by the Job Distributor operator",FormHelperTextProps:{"data-testid":"publicKey-helper-text"}})),l.createElement(d.Z,{item:!0,xs:12},l.createElement(ok.default,{variant:"contained",color:"primary",disabled:t,onClick:n},"Submit"))))})},xk=function(e){var t=e.data,n=e.onSubmit,r={name:t.name,uri:t.uri,publicKey:t.publicKey};return l.createElement(d.Z,{container:!0},l.createElement(d.Z,{item:!0,xs:12,md:11,lg:9},l.createElement(r5.Z,null,l.createElement(sl.Z,{title:"Edit Job Distributor"}),l.createElement(aW.Z,null,l.createElement(xS,{initialValues:r,onSubmit:n})))))};function xx(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&void 0!==arguments[0]?arguments[0]:{};return rv(xZ,e)},xJ=function(){return(0,b.createStyles)({root:{fontSize:24}})},xQ=(0,b.withStyles)(xJ)(function(e){var t=e.children,n=e.classes;return l.createElement(x.default,{variant:"h2",className:n.root},t)}),x1=n(9290),x0=n(74923);function x2(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function TS(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}function Tk(e,t){return Tv(e)||Tw(e,t)||Tx(e,t)||T_()}function Tx(e,t){if(e){if("string"==typeof e)return Tg(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Tg(e,t)}}var TT=function(e){return"SN_MAIN"===e||"SN_SEPOLIA"===e},TM=bv().shape({chainID:p0().required("Required"),chainType:p0().required("Required"),accountAddr:p0().required("Required"),accountAddrPubKey:p0().nullable(),adminAddr:p0(),ocr1Multiaddr:p0().when(["ocr1Enabled","ocr1IsBootstrap"],{is:function(e,t){return e&&t},then:p0().required("Required").nullable()}).nullable(),ocr1P2PPeerID:p0().when(["ocr1Enabled","ocr1IsBootstrap"],{is:function(e,t){return e&&!t},then:p0().required("Required").nullable()}).nullable(),ocr1KeyBundleID:p0().when(["ocr1Enabled","ocr1IsBootstrap"],{is:function(e,t){return e&&!t},then:p0().required("Required").nullable()}).nullable(),ocr2Multiaddr:p0().when(["ocr2Enabled","ocr2IsBootstrap"],{is:function(e,t){return e&&t},then:p0().required("Required").nullable()}).nullable(),ocr2P2PPeerID:p0().when(["ocr2Enabled","ocr2IsBootstrap"],{is:function(e,t){return e&&!t},then:p0().required("Required").nullable()}).nullable(),ocr2KeyBundleID:p0().when(["ocr2Enabled","ocr2IsBootstrap"],{is:function(e,t){return e&&!t},then:p0().required("Required").nullable()}).nullable(),ocr2CommitPluginEnabled:pV().required("Required"),ocr2ExecutePluginEnabled:pV().required("Required"),ocr2MedianPluginEnabled:pV().required("Required"),ocr2MercuryPluginEnabled:pV().required("Required"),ocr2ForwarderAddress:p0().nullable()}),TO=function(e){return(0,b.createStyles)({supportedJobOptionsPaper:{padding:2*e.spacing.unit}})},TA=function(e){var t=e.addresses,n=TE(e,["addresses"]),r=h_(),i=r.values,a=i.chainID,o=i.accountAddr,s=r.setFieldValue,u=Tk(l.useState(!1),2),c=u[0],f=u[1],d=l.useRef();l.useEffect(function(){d.current=a},[a]),l.useEffect(function(){a!==d.current&&(s(n.name,""),f(!1))},[a,s,n.name]);var h=function(e){var t=e.target.value;"custom"===t?(f(!0),s(n.name,"")):(f(!1),s(n.name,t))};return l.createElement(l.Fragment,null,!TT(a)&&l.createElement(hP,Ty({},n,{select:!0,value:c?"custom":o,onChange:h}),t.map(function(e){return l.createElement(tE.default,{key:e,value:e},e)})),TT(a)&&l.createElement(hP,{component:hX,id:"accountAddr",name:"accountAddr",label:"Enter your account address",inputProps:{"data-testid":"customAccountAddr-input"},helperText:"The account address used for this chain",required:!0,fullWidth:!0}),TT(a)&&l.createElement("div",null,l.createElement(hP,{component:hX,id:"accountAddrPubKey",name:"accountAddrPubKey",label:"Account Address Public Key",required:!0,fullWidth:!0,helperText:"The public key for your account address",FormHelperTextProps:{"data-testid":"accountAddrPubKey-helper-text"}})))},TL=(0,b.withStyles)(TO)(function(e){var t=e.classes,n=e.editing,r=void 0!==n&&n,i=e.innerRef,a=e.initialValues,o=e.onSubmit,s=e.chains,u=void 0===s?[]:s,c=e.accountsEVM,f=void 0===c?[]:c,h=e.accountsNonEvm,p=e.p2pKeys,b=void 0===p?[]:p,m=e.ocrKeys,g=void 0===m?[]:m,v=e.ocr2Keys,y=void 0===v?[]:v,w=e.showSubmit,_=void 0!==w&&w;return l.createElement(hT,{innerRef:i,initialValues:a,validationSchema:TM,onSubmit:o},function(e){var n,i,a=e.values,o=[];switch(a.chainType){case Tm.EVM:o=f.filter(function(e){return e.chain.id==a.chainID&&!e.isDisabled}).map(function(e){return e.address});break;case Tm.APTOS:o=null!==(n=null==h?void 0:h.aptosKeys.results.map(function(e){return e.account}))&&void 0!==n?n:[];break;case Tm.SOLANA:o=null!==(i=null==h?void 0:h.solanaKeys.results.map(function(e){return e.id}))&&void 0!==i?i:[];break;default:o=[]}return l.createElement(hR,{"data-testid":"feeds-manager-form",id:"chain-configuration-form",noValidate:!0},l.createElement(d.Z,{container:!0,spacing:16},l.createElement(d.Z,{item:!0,xs:12,md:6},l.createElement(hP,{component:hX,id:"chainType",name:"chainType",label:"Chain Type",select:!0,required:!0,fullWidth:!0,disabled:r},l.createElement(tE.default,{key:Tm.EVM,value:Tm.EVM},"EVM"),l.createElement(tE.default,{key:Tm.APTOS,value:Tm.APTOS},"APTOS"),l.createElement(tE.default,{key:Tm.SOLANA,value:Tm.SOLANA},"SOLANA"))),l.createElement(d.Z,{item:!0,xs:12,md:6},l.createElement(hP,{component:hX,id:"chainID",name:"chainID",label:"Chain ID",required:!0,fullWidth:!0,select:!0,disabled:r,inputProps:{"data-testid":"chainID-input"},FormHelperTextProps:{"data-testid":"chainID-helper-text"}},u.filter(function(e){return e.network.toUpperCase()===a.chainType}).map(function(e){return l.createElement(tE.default,{key:e.id,value:e.id},e.id)}))),l.createElement(d.Z,{item:!0,xs:12,md:6},l.createElement(TA,{component:hX,id:"accountAddr",name:"accountAddr",label:"Account Address",inputProps:{"data-testid":"accountAddr-input"},required:!0,fullWidth:!0,select:!0,helperText:"The account address used for this chain",addresses:o,FormHelperTextProps:{"data-testid":"accountAddr-helper-text"}})),l.createElement(d.Z,{item:!0,xs:12,md:6},l.createElement(hP,{component:hX,id:"adminAddr",name:"adminAddr",label:"Admin Address",fullWidth:!0,helperText:"The address used for LINK payments",FormHelperTextProps:{"data-testid":"adminAddr-helper-text"}})),l.createElement(d.Z,{item:!0,xs:12},l.createElement(x.default,null,"Supported Job Types")),l.createElement(d.Z,{item:!0,xs:12},l.createElement(hP,{component:h2,name:"fluxMonitorEnabled",type:"checkbox",Label:{label:"Flux Monitor"}})),l.createElement(d.Z,{item:!0,xs:12},l.createElement(hP,{component:h2,name:"ocr1Enabled",type:"checkbox",Label:{label:"OCR"}}),a.ocr1Enabled&&l.createElement(ii.default,{className:t.supportedJobOptionsPaper},l.createElement(d.Z,{container:!0,spacing:8},l.createElement(l.Fragment,null,l.createElement(d.Z,{item:!0,xs:12},l.createElement(hP,{component:h2,name:"ocr1IsBootstrap",type:"checkbox",Label:{label:"Is this node running as a bootstrap peer?"}})),a.ocr1IsBootstrap?l.createElement(d.Z,{item:!0,xs:12},l.createElement(hP,{component:hX,id:"ocr1Multiaddr",name:"ocr1Multiaddr",label:"Multiaddr",required:!0,fullWidth:!0,helperText:"The OCR Multiaddr which oracles use to query for network information",FormHelperTextProps:{"data-testid":"ocr1Multiaddr-helper-text"}})):l.createElement(l.Fragment,null,l.createElement(d.Z,{item:!0,xs:12,md:6},l.createElement(hP,{component:hX,id:"ocr1P2PPeerID",name:"ocr1P2PPeerID",label:"Peer ID",select:!0,required:!0,fullWidth:!0,helperText:"The Peer ID used for this chain",FormHelperTextProps:{"data-testid":"ocr1P2PPeerID-helper-text"}},b.map(function(e){return l.createElement(tE.default,{key:e.peerID,value:e.peerID},e.peerID)}))),l.createElement(d.Z,{item:!0,xs:12,md:6},l.createElement(hP,{component:hX,id:"ocr1KeyBundleID",name:"ocr1KeyBundleID",label:"Key Bundle ID",select:!0,required:!0,fullWidth:!0,helperText:"The OCR Key Bundle ID used for this chain",FormHelperTextProps:{"data-testid":"ocr1KeyBundleID-helper-text"}},g.map(function(e){return l.createElement(tE.default,{key:e.id,value:e.id},e.id)})))))))),l.createElement(d.Z,{item:!0,xs:12},l.createElement(hP,{component:h2,name:"ocr2Enabled",type:"checkbox",Label:{label:"OCR2"}}),a.ocr2Enabled&&l.createElement(ii.default,{className:t.supportedJobOptionsPaper},l.createElement(d.Z,{container:!0,spacing:8},l.createElement(l.Fragment,null,l.createElement(d.Z,{item:!0,xs:12},l.createElement(hP,{component:h2,name:"ocr2IsBootstrap",type:"checkbox",Label:{label:"Is this node running as a bootstrap peer?"}})),l.createElement(d.Z,{item:!0,xs:12,md:6},l.createElement(hP,{component:hX,id:"ocr2P2PPeerID",name:"ocr2P2PPeerID",label:"Peer ID",select:!0,required:!a.ocr2IsBootstrap,fullWidth:!0,helperText:"The Peer ID used for this chain",FormHelperTextProps:{"data-testid":"ocr2P2PPeerID-helper-text"}},b.map(function(e){return l.createElement(tE.default,{key:e.peerID,value:e.peerID},e.peerID)}))),a.ocr2IsBootstrap?l.createElement(d.Z,{item:!0,xs:12},l.createElement(hP,{component:hX,id:"ocr2Multiaddr",name:"ocr2Multiaddr",label:"Multiaddr",required:!0,fullWidth:!0,helperText:"The OCR2 Multiaddr which oracles use to query for network information",FormHelperTextProps:{"data-testid":"ocr2Multiaddr-helper-text"}})):l.createElement(l.Fragment,null,l.createElement(d.Z,{item:!0,xs:12,md:6},l.createElement(hP,{component:hX,id:"ocr2KeyBundleID",name:"ocr2KeyBundleID",label:"Key Bundle ID",select:!0,required:!0,fullWidth:!0,helperText:"The OCR2 Key Bundle ID used for this chain",FormHelperTextProps:{"data-testid":"ocr2KeyBundleID-helper-text"}},y.map(function(e){return l.createElement(tE.default,{key:e.id,value:e.id},e.id)}))),l.createElement(d.Z,{item:!0,xs:12},l.createElement(x.default,null,"Supported Plugins")),l.createElement(d.Z,{item:!0,xs:6},l.createElement(hP,{component:h2,name:"ocr2CommitPluginEnabled",type:"checkbox",Label:{label:"Commit"}})),l.createElement(d.Z,{item:!0,xs:6},l.createElement(hP,{component:h2,name:"ocr2ExecutePluginEnabled",type:"checkbox",Label:{label:"Execute"}})),l.createElement(d.Z,{item:!0,xs:6},l.createElement(hP,{component:h2,name:"ocr2RebalancerPluginEnabled",type:"checkbox",Label:{label:"Rebalancer"}})),l.createElement(d.Z,{item:!0,xs:6},l.createElement(hP,{component:h2,name:"ocr2MedianPluginEnabled",type:"checkbox",Label:{label:"Median"}})),l.createElement(d.Z,{item:!0,xs:6},l.createElement(hP,{component:h2,name:"ocr2MercuryPluginEnabled",type:"checkbox",Label:{label:"Mercury"}})),l.createElement(d.Z,{item:!0,xs:12,md:12},l.createElement(hP,{component:hX,id:"ocr2ForwarderAddress",name:"ocr2ForwarderAddress",label:"Forwarder Address (optional)",fullWidth:!0,helperText:"The forwarder address from the Operator Forwarder Contract",FormHelperTextProps:{"data-testid":"ocr2ForwarderAddress-helper-text"}}))))))),_&&l.createElement(d.Z,{item:!0,xs:12,md:7},l.createElement(ok.default,{variant:"contained",color:"primary",type:"submit",size:"large"},"Submit"))))})});function TC(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function TI(){var e=TC(["\n fragment AptosKeysPayload_ResultsFields on AptosKey {\n account\n id\n }\n"]);return TI=function(){return e},e}function TD(){var e=TC(["\n fragment SolanaKeysPayload_ResultsFields on SolanaKey {\n id\n }\n"]);return TD=function(){return e},e}function TN(){var e=TC(["\n ","\n ","\n query FetchNonEvmKeys {\n aptosKeys {\n results {\n ...AptosKeysPayload_ResultsFields\n }\n }\n solanaKeys {\n results {\n ...SolanaKeysPayload_ResultsFields\n }\n }\n }\n"]);return TN=function(){return e},e}var TP=n0(TI()),TR=n0(TD()),Tj=n0(TN(),TP,TR),TF=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return rv(Tj,e)},TY=function(e){var t=e.onClose,n=e.open,r=e.onSubmit,i=l.useRef(),a=i$({fetchPolicy:"network-only"}).data,o=_K({fetchPolicy:"cache-and-network"}).data,s=TF({fetchPolicy:"cache-and-network"}).data,u=SV({fetchPolicy:"cache-and-network"}).data,c=EO({fetchPolicy:"cache-and-network"}).data,f=E2({fetchPolicy:"cache-and-network"}).data,d={chainID:"",chainType:Tm.EVM,accountAddr:"",adminAddr:"",accountAddrPubKey:"",fluxMonitorEnabled:!1,ocr1Enabled:!1,ocr1IsBootstrap:!1,ocr1Multiaddr:"",ocr1P2PPeerID:"",ocr1KeyBundleID:"",ocr2Enabled:!1,ocr2IsBootstrap:!1,ocr2Multiaddr:"",ocr2P2PPeerID:"",ocr2KeyBundleID:"",ocr2CommitPluginEnabled:!1,ocr2ExecutePluginEnabled:!1,ocr2MedianPluginEnabled:!1,ocr2MercuryPluginEnabled:!1,ocr2RebalancerPluginEnabled:!1,ocr2ForwarderAddress:""},h=a?a.chains.results:[],p=o?o.ethKeys.results:[],b=u?u.p2pKeys.results:[],m=c?c.ocrKeyBundles.results:[],g=f?f.ocr2KeyBundles.results:[];return l.createElement(aD.Z,{onClose:t,open:n,disableBackdropClick:!0},l.createElement(oO.Z,{disableTypography:!0},l.createElement(x.default,{variant:"body2"},"New Supported Chain")),l.createElement(oT.Z,null,l.createElement(TL,{innerRef:i,initialValues:d,onSubmit:r,chains:h,accountsEVM:p,accountsNonEvm:s,p2pKeys:b,ocrKeys:m,ocr2Keys:g})),l.createElement(ox.Z,null,l.createElement(ok.default,{onClick:t},"Cancel"),l.createElement(ok.default,{color:"primary",type:"submit",form:"chain-configuration-form",variant:"contained"},"Submit")))},TB=function(e){var t=e.cfg,n=e.onClose,r=e.open,i=e.onSubmit,a=l.useRef(),o=i$({fetchPolicy:"network-only"}).data,s=_K({fetchPolicy:"cache-and-network"}).data,u=TF({fetchPolicy:"cache-and-network"}).data,c=SV({fetchPolicy:"cache-and-network"}).data,f=EO({fetchPolicy:"cache-and-network"}).data,d=E2({fetchPolicy:"cache-and-network"}).data;if(!t)return null;var h={chainID:t.chainID,chainType:Tm.EVM,accountAddr:t.accountAddr,adminAddr:t.adminAddr,accountAddrPubKey:t.accountAddrPubKey,fluxMonitorEnabled:t.fluxMonitorJobConfig.enabled,ocr1Enabled:t.ocr1JobConfig.enabled,ocr1IsBootstrap:t.ocr1JobConfig.isBootstrap,ocr1Multiaddr:t.ocr1JobConfig.multiaddr,ocr1P2PPeerID:t.ocr1JobConfig.p2pPeerID,ocr1KeyBundleID:t.ocr1JobConfig.keyBundleID,ocr2Enabled:t.ocr2JobConfig.enabled,ocr2IsBootstrap:t.ocr2JobConfig.isBootstrap,ocr2Multiaddr:t.ocr2JobConfig.multiaddr,ocr2P2PPeerID:t.ocr2JobConfig.p2pPeerID,ocr2KeyBundleID:t.ocr2JobConfig.keyBundleID,ocr2CommitPluginEnabled:t.ocr2JobConfig.plugins.commit,ocr2ExecutePluginEnabled:t.ocr2JobConfig.plugins.execute,ocr2MedianPluginEnabled:t.ocr2JobConfig.plugins.median,ocr2MercuryPluginEnabled:t.ocr2JobConfig.plugins.mercury,ocr2RebalancerPluginEnabled:t.ocr2JobConfig.plugins.rebalancer,ocr2ForwarderAddress:t.ocr2JobConfig.forwarderAddress},p=o?o.chains.results:[],b=s?s.ethKeys.results:[],m=c?c.p2pKeys.results:[],g=f?f.ocrKeyBundles.results:[],v=d?d.ocr2KeyBundles.results:[];return l.createElement(aD.Z,{onClose:n,open:r,disableBackdropClick:!0},l.createElement(oO.Z,{disableTypography:!0},l.createElement(x.default,{variant:"body2"},"Edit Supported Chain")),l.createElement(oT.Z,null,l.createElement(TL,{innerRef:a,initialValues:h,onSubmit:i,chains:p,accountsEVM:b,accountsNonEvm:u,p2pKeys:m,ocrKeys:g,ocr2Keys:v,editing:!0})),l.createElement(ox.Z,null,l.createElement(ok.default,{onClick:n},"Cancel"),l.createElement(ok.default,{color:"primary",type:"submit",form:"chain-configuration-form",variant:"contained"},"Submit")))};function TU(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);nt.version?e:t})},[o]),g=l.useMemo(function(){return MZ(o).sort(function(e,t){return t.version-e.version})},[o]),v=function(e,t,n){switch(e){case"PENDING":return l.createElement(l.Fragment,null,l.createElement(ok.default,{variant:"text",color:"secondary",onClick:function(){return b("reject",t)}},"Reject"),m.id===t&&"DELETED"!==n.status&&"REVOKED"!==n.status&&l.createElement(ok.default,{variant:"contained",color:"primary",onClick:function(){return b("approve",t)}},"Approve"),m.id===t&&"DELETED"===n.status&&n.pendingUpdate&&l.createElement(l.Fragment,null,l.createElement(ok.default,{variant:"contained",color:"primary",onClick:function(){return b("cancel",t)}},"Cancel"),l.createElement(x.default,{color:"error"},"This proposal was deleted. Cancel the spec to delete any running jobs")));case"APPROVED":return l.createElement(l.Fragment,null,l.createElement(ok.default,{variant:"contained",onClick:function(){return b("cancel",t)}},"Cancel"),"DELETED"===n.status&&n.pendingUpdate&&l.createElement(x.default,{color:"error"},"This proposal was deleted. Cancel the spec to delete any running jobs"));case"CANCELLED":if(m.id===t&&"DELETED"!==n.status&&"REVOKED"!==n.status)return l.createElement(ok.default,{variant:"contained",color:"primary",onClick:function(){return b("approve",t)}},"Approve");return null;default:return null}};return l.createElement("div",null,g.map(function(e,n){return l.createElement(mP.Z,{defaultExpanded:0===n,key:n},l.createElement(mR.Z,{expandIcon:l.createElement(gh.Z,null)},l.createElement(x.default,{className:t.versionText},"Version ",e.version),l.createElement(Es.Z,{label:e.status,color:"APPROVED"===e.status?"primary":"default",variant:"REJECTED"===e.status||"CANCELLED"===e.status?"outlined":"default"}),l.createElement("div",{className:t.proposedAtContainer},l.createElement(x.default,null,"Proposed ",l.createElement(aO,{tooltip:!0},e.createdAt)))),l.createElement(mj.Z,{className:t.expansionPanelDetails},l.createElement("div",{className:t.actions},l.createElement("div",{className:t.editContainer},0===n&&("PENDING"===e.status||"CANCELLED"===e.status)&&"DELETED"!==s.status&&"REVOKED"!==s.status&&l.createElement(ok.default,{variant:"contained",onClick:function(){return p(!0)}},"Edit")),l.createElement("div",{className:t.actionsContainer},v(e.status,e.id,s))),l.createElement(gd,{language:"toml",style:gs,"data-testid":"codeblock"},e.definition)))}),l.createElement(oC,{open:null!=c,title:c?M0[c.action].title:"",body:c?M0[c.action].body:"",onConfirm:function(){if(c){switch(c.action){case"approve":n(c.id);break;case"cancel":r(c.id);break;case"reject":i(c.id)}f(null)}},cancelButtonText:"Cancel",onCancel:function(){return f(null)}}),l.createElement(MB,{open:h,onClose:function(){return p(!1)},initialValues:{definition:m.definition,id:m.id},onSubmit:a}))});function M3(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function M4(){var e=M3(["\n ","\n fragment JobProposalPayloadFields on JobProposal {\n id\n externalJobID\n remoteUUID\n jobID\n specs {\n ...JobProposal_SpecsFields\n }\n status\n pendingUpdate\n }\n"]);return M4=function(){return e},e}var M6=n0(M4(),MQ),M5=function(e){var t=e.onApprove,n=e.onCancel,r=e.onReject,i=e.onUpdateSpec,a=e.proposal;return l.createElement(ig,null,l.createElement(d.Z,{container:!0,spacing:32},l.createElement(d.Z,{item:!0,xs:9},l.createElement(iy,null,"Job Proposal #",a.id))),l.createElement(MN,{proposal:a}),l.createElement(d.Z,{container:!0,spacing:32},l.createElement(d.Z,{item:!0,xs:9},l.createElement(xQ,null,"Specs"))),l.createElement(d.Z,{container:!0,spacing:32},l.createElement(d.Z,{item:!0,xs:12},l.createElement(M2,{proposal:a,specs:a.specs,onReject:r,onApprove:t,onCancel:n,onUpdateSpec:i}))))};function M8(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);nU,tA:()=>$,KL:()=>H,Iw:()=>V,DQ:()=>W,cB:()=>T,LO:()=>M,t5:()=>k,qt:()=>x,Jc:()=>C,L7:()=>Y,EO:()=>B});var r,i,a=n(66289),o=n(41800),s=n.n(o),u=n(67932);(i=r||(r={})).IN_PROGRESS="in_progress",i.PENDING_INCOMING_CONFIRMATIONS="pending_incoming_confirmations",i.PENDING_CONNECTION="pending_connection",i.PENDING_BRIDGE="pending_bridge",i.PENDING_SLEEP="pending_sleep",i.ERRORED="errored",i.COMPLETED="completed";var c=n(87013),l=n(19084),f=n(34823);function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]j,v2:()=>F});var r=n(66289);function i(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var a="/sessions",o="/sessions",s=function e(t){var n=this;i(this,e),this.api=t,this.createSession=function(e){return n.create(e)},this.destroySession=function(){return n.destroy()},this.create=this.api.createResource(a),this.destroy=this.api.deleteResource(o)};function u(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var c="/v2/bulk_delete_runs",l=function e(t){var n=this;u(this,e),this.api=t,this.bulkDeleteJobRuns=function(e){return n.destroy(e)},this.destroy=this.api.deleteResource(c)};function f(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var d="/v2/chains/evm",h="".concat(d,"/:id"),p=function e(t){var n=this;f(this,e),this.api=t,this.getChains=function(){return n.index()},this.createChain=function(e){return n.create(e)},this.destroyChain=function(e){return n.destroy(void 0,{id:e})},this.updateChain=function(e,t){return n.update(t,{id:e})},this.index=this.api.fetchResource(d),this.create=this.api.createResource(d),this.destroy=this.api.deleteResource(h),this.update=this.api.updateResource(h)};function b(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var m="/v2/keys/evm/chain",g=function e(t){var n=this;b(this,e),this.api=t,this.chain=function(e){var t=new URLSearchParams;t.append("address",e.address),t.append("evmChainID",e.evmChainID),null!==e.abandon&&t.append("abandon",String(e.abandon)),null!==e.enabled&&t.append("enabled",String(e.enabled));var r=m+"?"+t.toString();return n.api.createResource(r)()}};function v(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var y="/v2/jobs",w="".concat(y,"/:specId/runs"),_=function e(t){var n=this;v(this,e),this.api=t,this.createJobRunV2=function(e,t){return n.post(t,{specId:e})},this.post=this.api.createResource(w,!0)};function E(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var S="/v2/log",k=function e(t){var n=this;E(this,e),this.api=t,this.getLogConfig=function(){return n.show()},this.updateLogConfig=function(e){return n.update(e)},this.show=this.api.fetchResource(S),this.update=this.api.updateResource(S)};function x(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var T="/v2/nodes",M=function e(t){var n=this;x(this,e),this.api=t,this.getNodes=function(){return n.index()},this.createNode=function(e){return n.create(e)},this.index=this.api.fetchResource(T),this.create=this.api.createResource(T)};function O(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var A="/v2/enroll_webauthn",L=function e(t){var n=this;O(this,e),this.api=t,this.beginKeyRegistration=function(e){return n.create(e)},this.finishKeyRegistration=function(e){return n.put(e)},this.create=this.api.fetchResource(A),this.put=this.api.createResource(A)};function C(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var I="/v2/build_info",D=function e(t){var n=this;C(this,e),this.api=t,this.show=function(){return n.api.GET(I)()}};function N(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var P=function e(t){N(this,e),this.api=t,this.buildInfo=new D(this.api),this.bulkDeleteRuns=new l(this.api),this.chains=new p(this.api),this.logConfig=new k(this.api),this.nodes=new M(this.api),this.jobs=new _(this.api),this.webauthn=new L(this.api),this.evmKeys=new g(this.api)},R=new r.V0({base:void 0}),j=new s(R),F=new P(R)},1398(e,t,n){"use strict";n.d(t,{Z:()=>d});var r=n(67294),i=n(32316),a=n(83638),o=n(94184),s=n.n(o);function u(){return(u=Object.assign||function(e){for(var t=1;tc});var r=n(67294),i=n(32316);function a(){return(a=Object.assign||function(e){for(var t=1;tx,jK:()=>v});var r=n(67294),i=n(37703),a=n(45697),o=n.n(a),s=n(82204),u=n(71426),c=n(94184),l=n.n(c),f=n(32316),d=function(e){var t=e.palette.success||{},n=e.palette.warning||{};return{base:{paddingLeft:5*e.spacing.unit,paddingRight:5*e.spacing.unit},success:{backgroundColor:t.main,color:t.contrastText},error:{backgroundColor:e.palette.error.dark,color:e.palette.error.contrastText},warning:{backgroundColor:n.contrastText,color:n.main}}},h=function(e){var t,n=e.success,r=e.error,i=e.warning,a=e.classes,o=e.className;return n?t=a.success:r?t=a.error:i&&(t=a.warning),l()(a.base,o,t)},p=function(e){return r.createElement(s.Z,{className:h(e),square:!0},r.createElement(u.default,{variant:"body2",color:"inherit",component:"div"},e.children))};p.defaultProps={success:!1,error:!1,warning:!1},p.propTypes={success:o().bool,error:o().bool,warning:o().bool};let b=(0,f.withStyles)(d)(p);var m=function(){return r.createElement(r.Fragment,null,"Unhandled error. Please help us by opening a"," ",r.createElement("a",{href:"https://github.com/smartcontractkit/chainlink/issues/new"},"bug report"))};let g=m;function v(e){return"string"==typeof e?e:e.component?e.component(e.props):r.createElement(g,null)}function y(e,t){var n;return n="string"==typeof e?e:e.component?e.component(e.props):r.createElement(g,null),r.createElement("p",{key:t},n)}var w=function(e){var t=e.notifications;return r.createElement(b,{error:!0},t.map(y))},_=function(e){var t=e.notifications;return r.createElement(b,{success:!0},t.map(y))},E=function(e){var t=e.errors,n=e.successes;return r.createElement("div",null,(null==t?void 0:t.length)>0&&r.createElement(w,{notifications:t}),n.length>0&&r.createElement(_,{notifications:n}))},S=function(e){return{errors:e.notifications.errors,successes:e.notifications.successes}},k=(0,i.$j)(S)(E);let x=k},9409(e,t,n){"use strict";n.d(t,{ZP:()=>j});var r=n(67294),i=n(37703),a=n(5977),o=n(32316),s=n(1398),u=n(82204),c=n(30060),l=n(71426),f=n(60520),d=n(39814),h=n(57209),p=n(26842),b=n(3950),m=n(5536),g=n(45697),v=n.n(g);let y=n.p+"9f6d832ef97e8493764e.svg";function w(){return(w=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&_.map(function(e,t){return r.createElement(d.Z,{item:!0,xs:12,key:t},r.createElement(u.Z,{raised:!1,className:v.error},r.createElement(c.Z,null,r.createElement(l.default,{variant:"body1",className:v.errorText},(0,b.jK)(e)))))}),r.createElement(d.Z,{item:!0,xs:12},r.createElement(f.Z,{id:"email",label:"Email",margin:"normal",value:n,onChange:m("email"),error:_.length>0,variant:"outlined",fullWidth:!0})),r.createElement(d.Z,{item:!0,xs:12},r.createElement(f.Z,{id:"password",label:"Password",type:"password",autoComplete:"password",margin:"normal",value:h,onChange:m("password"),error:_.length>0,variant:"outlined",fullWidth:!0})),r.createElement(d.Z,{item:!0,xs:12},r.createElement(d.Z,{container:!0,spacing:0,justify:"center"},r.createElement(d.Z,{item:!0},r.createElement(s.Z,{type:"submit",variant:"primary"},"Access Account")))),y&&r.createElement(l.default,{variant:"body1",color:"textSecondary"},"Signing in...")))))))},P=function(e){return{fetching:e.authentication.fetching,authenticated:e.authentication.allowed,errors:e.notifications.errors}},R=(0,i.$j)(P,x({submitSignIn:p.L7}))(N);let j=(0,h.wU)(e)((0,o.withStyles)(D)(R))},16353(e,t,n){"use strict";n.d(t,{ZP:()=>H,rH:()=>U});var r,i=n(37703),a=n(97779),o=n(9541),s=n(19084);function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:h,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s.Mk.RECEIVE_SIGNOUT_SUCCESS:case s.Mk.RECEIVE_SIGNIN_SUCCESS:var n={allowed:t.authenticated};return o.Ks(n),f(c({},e,n),{errors:[]});case s.Mk.RECEIVE_SIGNIN_FAIL:var r={allowed:!1};return o.Ks(r),f(c({},e,r),{errors:[]});case s.Mk.RECEIVE_SIGNIN_ERROR:case s.Mk.RECEIVE_SIGNOUT_ERROR:var i={allowed:!1};return o.Ks(i),f(c({},e,i),{errors:t.errors||[]});default:return e}};let b=p;function m(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function g(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:_,t=arguments.length>1?arguments[1]:void 0;return t.type?t.type.startsWith(r.REQUEST)?y(g({},e),{count:e.count+1}):t.type.startsWith(r.RECEIVE)?y(g({},e),{count:Math.max(e.count-1,0)}):t.type.startsWith(r.RESPONSE)?y(g({},e),{count:Math.max(e.count-1,0)}):t.type===s.di.REDIRECT?y(g({},e),{count:0}):e:e};let S=E;function k(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function x(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:O,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s.di.MATCH_ROUTE:return M(x({},O),{currentUrl:t.pathname});case s.Ih.NOTIFY_SUCCESS:var n={component:t.component,props:t.props};return M(x({},e),{successes:[n],errors:[]});case s.Ih.NOTIFY_SUCCESS_MSG:return M(x({},e),{successes:[t.msg],errors:[]});case s.Ih.NOTIFY_ERROR:var r=t.error.errors,i=null==r?void 0:r.map(function(e){return L(t,e)});return M(x({},e),{successes:[],errors:i});case s.Ih.NOTIFY_ERROR_MSG:return M(x({},e),{successes:[],errors:[t.msg]});case s.Mk.RECEIVE_SIGNIN_FAIL:return M(x({},e),{successes:[],errors:["Your email or password is incorrect. Please try again"]});default:return e}};function L(e,t){return{component:e.component,props:{msg:t.detail}}}let C=A;function I(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function D(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:R,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s.di.REDIRECT:return P(D({},e),{to:t.to});case s.di.MATCH_ROUTE:return P(D({},e),{to:void 0});default:return e}};let F=j;var Y=n(87013),B=(0,a.UY)({authentication:b,fetching:S,notifications:C,redirect:F,buildInfo:Y.Z});B(void 0,{type:"INITIAL_STATE"});var U=i.v9;let H=B},19084(e,t,n){"use strict";var r,i,a,o,s,u,c,l,f,d;n.d(t,{Ih:()=>i,Mk:()=>a,Y0:()=>s,di:()=>r,jp:()=>o}),n(67294),(u=r||(r={})).REDIRECT="REDIRECT",u.MATCH_ROUTE="MATCH_ROUTE",(c=i||(i={})).NOTIFY_SUCCESS="NOTIFY_SUCCESS",c.NOTIFY_SUCCESS_MSG="NOTIFY_SUCCESS_MSG",c.NOTIFY_ERROR="NOTIFY_ERROR",c.NOTIFY_ERROR_MSG="NOTIFY_ERROR_MSG",(l=a||(a={})).REQUEST_SIGNIN="REQUEST_SIGNIN",l.RECEIVE_SIGNIN_SUCCESS="RECEIVE_SIGNIN_SUCCESS",l.RECEIVE_SIGNIN_FAIL="RECEIVE_SIGNIN_FAIL",l.RECEIVE_SIGNIN_ERROR="RECEIVE_SIGNIN_ERROR",l.RECEIVE_SIGNOUT_SUCCESS="RECEIVE_SIGNOUT_SUCCESS",l.RECEIVE_SIGNOUT_ERROR="RECEIVE_SIGNOUT_ERROR",(f=o||(o={})).RECEIVE_CREATE_ERROR="RECEIVE_CREATE_ERROR",f.RECEIVE_CREATE_SUCCESS="RECEIVE_CREATE_SUCCESS",f.RECEIVE_DELETE_ERROR="RECEIVE_DELETE_ERROR",f.RECEIVE_DELETE_SUCCESS="RECEIVE_DELETE_SUCCESS",f.RECEIVE_UPDATE_ERROR="RECEIVE_UPDATE_ERROR",f.RECEIVE_UPDATE_SUCCESS="RECEIVE_UPDATE_SUCCESS",f.REQUEST_CREATE="REQUEST_CREATE",f.REQUEST_DELETE="REQUEST_DELETE",f.REQUEST_UPDATE="REQUEST_UPDATE",f.UPSERT_CONFIGURATION="UPSERT_CONFIGURATION",f.UPSERT_JOB_RUN="UPSERT_JOB_RUN",f.UPSERT_JOB_RUNS="UPSERT_JOB_RUNS",f.UPSERT_TRANSACTION="UPSERT_TRANSACTION",f.UPSERT_TRANSACTIONS="UPSERT_TRANSACTIONS",f.UPSERT_BUILD_INFO="UPSERT_BUILD_INFO",(d=s||(s={})).FETCH_BUILD_INFO_REQUESTED="FETCH_BUILD_INFO_REQUESTED",d.FETCH_BUILD_INFO_SUCCEEDED="FETCH_BUILD_INFO_SUCCEEDED",d.FETCH_BUILD_INFO_FAILED="FETCH_BUILD_INFO_FAILED"},87013(e,t,n){"use strict";n.d(t,{Y:()=>o,Z:()=>u});var r=n(19084);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:o,t=arguments.length>1?arguments[1]:void 0;return t.type===r.Y0.FETCH_BUILD_INFO_SUCCEEDED?a({},t.buildInfo):e};let u=s},34823(e,t,n){"use strict";n.d(t,{N:()=>r});var r=function(e){return e.buildInfo}},73343(e,t,n){"use strict";n.d(t,{r:()=>u});var r=n(19350),i=n(32316),a=n(59114),o=n(5324),s={props:{MuiGrid:{spacing:3*o.default.unit},MuiCardHeader:{titleTypographyProps:{color:"secondary"}}},palette:{action:{hoverOpacity:.3},primary:{light:"#E5F1FF",main:"#3c40c6",contrastText:"#fff"},secondary:{main:"#3d5170"},success:{light:"#e8faf1",main:r.ek.A700,dark:r.ek[700],contrastText:r.y0.white},warning:{light:"#FFFBF1",main:"#fff6b6",contrastText:"#fad27a"},error:{light:"#ffdada",main:"#f44336",dark:"#d32f2f",contrastText:"#fff"},background:{default:"#f5f6f8",appBar:"#3c40c6"},text:{primary:(0,a.darken)(r.BA.A700,.7),secondary:"#818ea3"},listPendingStatus:{background:"#fef7e5",color:"#fecb4c"},listCompletedStatus:{background:"#e9faf2",color:"#4ed495"}},shape:{borderRadius:o.default.unit},overrides:{MuiButton:{root:{borderRadius:o.default.unit/2,textTransform:"none"},sizeLarge:{padding:void 0,fontSize:void 0,paddingTop:o.default.unit,paddingBottom:o.default.unit,paddingLeft:5*o.default.unit,paddingRight:5*o.default.unit}},MuiTableCell:{body:{fontSize:"1rem"},head:{fontSize:"1rem",fontWeight:400}},MuiCardHeader:{root:{borderBottom:"1px solid rgba(0, 0, 0, 0.12)"},action:{marginTop:-2,marginRight:0,"& >*":{marginLeft:2*o.default.unit}},subheader:{marginTop:.5*o.default.unit}}},typography:{useNextVariants:!0,fontFamily:"-apple-system,BlinkMacSystemFont,Roboto,Helvetica,Arial,sans-serif",button:{textTransform:"none",fontSize:"1.2em"},body1:{fontSize:"1.0rem",fontWeight:400,lineHeight:"1.46429em",color:"rgba(0, 0, 0, 0.87)",letterSpacing:-.4},body2:{fontSize:"1.0rem",fontWeight:500,lineHeight:"1.71429em",color:"rgba(0, 0, 0, 0.87)",letterSpacing:-.4},body1Next:{color:"rgb(29, 29, 29)",fontWeight:400,fontSize:"1rem",lineHeight:1.5,letterSpacing:-.4},body2Next:{color:"rgb(29, 29, 29)",fontWeight:400,fontSize:"0.875rem",lineHeight:1.5,letterSpacing:-.4},display1:{color:"#818ea3",fontSize:"2.125rem",fontWeight:400,lineHeight:"1.20588em",letterSpacing:-.4},display2:{color:"#818ea3",fontSize:"2.8125rem",fontWeight:400,lineHeight:"1.13333em",marginLeft:"-.02em",letterSpacing:-.4},display3:{color:"#818ea3",fontSize:"3.5rem",fontWeight:400,lineHeight:"1.30357em",marginLeft:"-.02em",letterSpacing:-.4},display4:{fontSize:14,fontWeightLight:300,fontWeightMedium:500,fontWeightRegular:400,letterSpacing:-.4},h1:{color:"rgb(29, 29, 29)",fontSize:"6rem",fontWeight:300,lineHeight:1},h2:{color:"rgb(29, 29, 29)",fontSize:"3.75rem",fontWeight:300,lineHeight:1},h3:{color:"rgb(29, 29, 29)",fontSize:"3rem",fontWeight:400,lineHeight:1.04},h4:{color:"rgb(29, 29, 29)",fontSize:"2.125rem",fontWeight:400,lineHeight:1.17},h5:{color:"rgb(29, 29, 29)",fontSize:"1.5rem",fontWeight:400,lineHeight:1.33,letterSpacing:-.4},h6:{fontSize:"0.8rem",fontWeight:450,lineHeight:"1.71429em",color:"rgba(0, 0, 0, 0.87)",letterSpacing:-.4},subheading:{color:"rgb(29, 29, 29)",fontSize:"1rem",fontWeight:400,lineHeight:"1.5em",letterSpacing:-.4},subtitle1:{color:"rgb(29, 29, 29)",fontSize:"1rem",fontWeight:400,lineHeight:1.75,letterSpacing:-.4},subtitle2:{color:"rgb(29, 29, 29)",fontSize:"0.875rem",fontWeight:500,lineHeight:1.57,letterSpacing:-.4}},shadows:["none","0px 1px 3px 0px rgba(0, 0, 0, 0.1),0px 1px 1px 0px rgba(0, 0, 0, 0.04),0px 2px 1px -1px rgba(0, 0, 0, 0.02)","0px 1px 5px 0px rgba(0, 0, 0, 0.1),0px 2px 2px 0px rgba(0, 0, 0, 0.04),0px 3px 1px -2px rgba(0, 0, 0, 0.02)","0px 1px 8px 0px rgba(0, 0, 0, 0.1),0px 3px 4px 0px rgba(0, 0, 0, 0.04),0px 3px 3px -2px rgba(0, 0, 0, 0.02)","0px 2px 4px -1px rgba(0, 0, 0, 0.1),0px 4px 5px 0px rgba(0, 0, 0, 0.04),0px 1px 10px 0px rgba(0, 0, 0, 0.02)","0px 3px 5px -1px rgba(0, 0, 0, 0.1),0px 5px 8px 0px rgba(0, 0, 0, 0.04),0px 1px 14px 0px rgba(0, 0, 0, 0.02)","0px 3px 5px -1px rgba(0, 0, 0, 0.1),0px 6px 10px 0px rgba(0, 0, 0, 0.04),0px 1px 18px 0px rgba(0, 0, 0, 0.02)","0px 4px 5px -2px rgba(0, 0, 0, 0.1),0px 7px 10px 1px rgba(0, 0, 0, 0.04),0px 2px 16px 1px rgba(0, 0, 0, 0.02)","0px 5px 5px -3px rgba(0, 0, 0, 0.1),0px 8px 10px 1px rgba(0, 0, 0, 0.04),0px 3px 14px 2px rgba(0, 0, 0, 0.02)","0px 5px 6px -3px rgba(0, 0, 0, 0.1),0px 9px 12px 1px rgba(0, 0, 0, 0.04),0px 3px 16px 2px rgba(0, 0, 0, 0.02)","0px 6px 6px -3px rgba(0, 0, 0, 0.1),0px 10px 14px 1px rgba(0, 0, 0, 0.04),0px 4px 18px 3px rgba(0, 0, 0, 0.02)","0px 6px 7px -4px rgba(0, 0, 0, 0.1),0px 11px 15px 1px rgba(0, 0, 0, 0.04),0px 4px 20px 3px rgba(0, 0, 0, 0.02)","0px 7px 8px -4px rgba(0, 0, 0, 0.1),0px 12px 17px 2px rgba(0, 0, 0, 0.04),0px 5px 22px 4px rgba(0, 0, 0, 0.02)","0px 7px 8px -4px rgba(0, 0, 0, 0.1),0px 13px 19px 2px rgba(0, 0, 0, 0.04),0px 5px 24px 4px rgba(0, 0, 0, 0.02)","0px 7px 9px -4px rgba(0, 0, 0, 0.1),0px 14px 21px 2px rgba(0, 0, 0, 0.04),0px 5px 26px 4px rgba(0, 0, 0, 0.02)","0px 8px 9px -5px rgba(0, 0, 0, 0.1),0px 15px 22px 2px rgba(0, 0, 0, 0.04),0px 6px 28px 5px rgba(0, 0, 0, 0.02)","0px 8px 10px -5px rgba(0, 0, 0, 0.1),0px 16px 24px 2px rgba(0, 0, 0, 0.04),0px 6px 30px 5px rgba(0, 0, 0, 0.02)","0px 8px 11px -5px rgba(0, 0, 0, 0.1),0px 17px 26px 2px rgba(0, 0, 0, 0.04),0px 6px 32px 5px rgba(0, 0, 0, 0.02)","0px 9px 11px -5px rgba(0, 0, 0, 0.1),0px 18px 28px 2px rgba(0, 0, 0, 0.04),0px 7px 34px 6px rgba(0, 0, 0, 0.02)","0px 9px 12px -6px rgba(0, 0, 0, 0.1),0px 19px 29px 2px rgba(0, 0, 0, 0.04),0px 7px 36px 6px rgba(0, 0, 0, 0.02)","0px 10px 13px -6px rgba(0, 0, 0, 0.1),0px 20px 31px 3px rgba(0, 0, 0, 0.04),0px 8px 38px 7px rgba(0, 0, 0, 0.02)","0px 10px 13px -6px rgba(0, 0, 0, 0.1),0px 21px 33px 3px rgba(0, 0, 0, 0.04),0px 8px 40px 7px rgba(0, 0, 0, 0.02)","0px 10px 14px -6px rgba(0, 0, 0, 0.1),0px 22px 35px 3px rgba(0, 0, 0, 0.04),0px 8px 42px 7px rgba(0, 0, 0, 0.02)","0px 11px 14px -7px rgba(0, 0, 0, 0.1),0px 23px 36px 3px rgba(0, 0, 0, 0.04),0px 9px 44px 8px rgba(0, 0, 0, 0.02)","0px 11px 15px -7px rgba(0, 0, 0, 0.1),0px 24px 38px 3px rgba(0, 0, 0, 0.04),0px 9px 46px 8px rgba(0, 0, 0, 0.02)",]},u=(0,i.createMuiTheme)(s)},66289(e,t,n){"use strict";function r(e){if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function i(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}function a(){if("undefined"==typeof Reflect||!Reflect.construct||Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(e){return!1}}function o(e,t,n){return(o=a()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&f(i,n.prototype),i}).apply(null,arguments)}function s(e){return(s=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function u(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&f(e,t)}function c(e){return -1!==Function.toString.call(e).indexOf("[native code]")}function l(e,t){return t&&("object"===p(t)||"function"==typeof t)?t:r(e)}function f(e,t){return(f=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}n.d(t,{V0:()=>B,_7:()=>v});var d,h,p=function(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e};function b(e){var t="function"==typeof Map?new Map:void 0;return(b=function(e){if(null===e||!c(e))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return o(e,arguments,s(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),f(n,e)})(e)}function m(){if("undefined"==typeof Reflect||!Reflect.construct||Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}function g(e){var t=m();return function(){var n,r=s(e);if(t){var i=s(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return l(this,n)}}var v=function(e){u(n,e);var t=g(n);function n(e){var r;return i(this,n),(r=t.call(this,"AuthenticationError(".concat(e.statusText,")"))).errors=[{status:e.status,detail:e},],r}return n}(b(Error)),y=function(e){u(n,e);var t=g(n);function n(e){var r,a=e.errors;return i(this,n),(r=t.call(this,"BadRequestError")).errors=a,r}return n}(b(Error)),w=function(e){u(n,e);var t=g(n);function n(e){var r;return i(this,n),(r=t.call(this,"UnprocessableEntityError")).errors=e,r}return n}(b(Error)),_=function(e){u(n,e);var t=g(n);function n(e){var r;return i(this,n),(r=t.call(this,"ServerError")).errors=e,r}return n}(b(Error)),E=function(e){u(n,e);var t=g(n);function n(e){var r,a=e.errors;return i(this,n),(r=t.call(this,"ConflictError")).errors=a,r}return n}(b(Error)),S=function(e){u(n,e);var t=g(n);function n(e){var r;return i(this,n),(r=t.call(this,"UnknownResponseError(".concat(e.statusText,")"))).errors=[{status:e.status,detail:e.statusText},],r}return n}(b(Error));function k(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:2e4;return Promise.race([fetch(e,t),new Promise(function(e,t){return setTimeout(function(){return t(Error("timeout"))},n)}),])}function x(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]=200&&e.status<300))return[3,2];return[2,e.json()];case 2:if(400!==e.status)return[3,3];return[2,e.json().then(function(e){throw new y(e)})];case 3:if(401!==e.status)return[3,4];throw new v(e);case 4:if(422!==e.status)return[3,6];return[4,$(e)];case 5:throw n=i.sent(),new w(n);case 6:if(409!==e.status)return[3,7];return[2,e.json().then(function(e){throw new E(e)})];case 7:if(!(e.status>=500))return[3,9];return[4,$(e)];case 8:throw r=i.sent(),new _(r);case 9:throw new S(e);case 10:return[2]}})})).apply(this,arguments)}function $(e){return z.apply(this,arguments)}function z(){return(z=j(function(e){return Y(this,function(t){return[2,e.json().then(function(t){return t.errors?t.errors.map(function(t){return{status:e.status,detail:t.detail}}):G(e)}).catch(function(){return G(e)})]})})).apply(this,arguments)}function G(e){return[{status:e.status,detail:e.statusText},]}},50109(e,t,n){"use strict";n.d(t,{LK:()=>o,U2:()=>i,eT:()=>s,t8:()=>a});var r=n(12795);function i(e){return r.ZP.getItem("chainlink.".concat(e))}function a(e,t){r.ZP.setItem("chainlink.".concat(e),t)}function o(e){var t=i(e),n={};if(t)try{return JSON.parse(t)}catch(r){}return n}function s(e,t){a(e,JSON.stringify(t))}},9541(e,t,n){"use strict";n.d(t,{Ks:()=>u,Tp:()=>a,iR:()=>o,pm:()=>s});var r=n(50109),i="persistURL";function a(){return r.U2(i)||""}function o(e){r.t8(i,e)}function s(){return r.LK("authentication")}function u(e){r.eT("authentication",e)}},67121(e,t,n){"use strict";function r(e){var t,n=e.Symbol;return"function"==typeof n?n.observable?t=n.observable:(t=n("observable"),n.observable=t):t="@@observable",t}n.r(t),n.d(t,{default:()=>o}),e=n.hmd(e),i="undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==n.g?n.g:e;var i,a=r(i);let o=a},2177(e,t,n){"use strict";n.d(t,{Z:()=>o});var r=!0,i="Invariant failed";function a(e,t){if(!e){if(r)throw Error(i);throw Error(i+": "+(t||""))}}let o=a},11742(e){e.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,n=[],r=0;ru,ZT:()=>i,_T:()=>o,ev:()=>c,mG:()=>s,pi:()=>a});var r=function(e,t){return(r=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)};function i(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var a=function(){return(a=Object.assign||function(e){for(var t,n=1,r=arguments.length;nt.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var i=0,r=Object.getOwnPropertySymbols(e);it.indexOf(r[i])&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n}function s(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||(n=Promise))(function(n,a){function o(e){try{u(r.next(e))}catch(t){a(t)}}function s(e){try{u(r.throw(e))}catch(t){a(t)}}function u(e){e.done?n(e.value):i(e.value).then(o,s)}u((r=r.apply(e,t||[])).next())})}function u(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(e){return function(t){return u([e,t])}}function u(a){if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]r})},94927(e,t,n){function r(e,t){if(i("noDeprecation"))return e;var n=!1;function r(){if(!n){if(i("throwDeprecation"))throw Error(t);i("traceDeprecation")?console.trace(t):console.warn(t),n=!0}return e.apply(this,arguments)}return r}function i(e){try{if(!n.g.localStorage)return!1}catch(t){return!1}var r=n.g.localStorage[e];return null!=r&&"true"===String(r).toLowerCase()}e.exports=r},42473(e){"use strict";var t=function(){};e.exports=t},84763(e){e.exports=Worker},47529(e){e.exports=n;var t=Object.prototype.hasOwnProperty;function n(){for(var e={},n=0;ne.length)&&(t=e.length);for(var n=0,r=Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}e.exports=i,e.exports.__esModule=!0,e.exports.default=e.exports},7071(e){function t(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},94993(e,t,n){var r=n(18698).default,i=n(66115);function a(e,t){if(t&&("object"===r(t)||"function"==typeof t))return t;if(void 0!==t)throw TypeError("Derived constructors may only return object or undefined");return i(e)}e.exports=a,e.exports.__esModule=!0,e.exports.default=e.exports},6015(e){function t(n,r){return e.exports=t=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n,r)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},861(e,t,n){var r=n(63405),i=n(79498),a=n(86116),o=n(42281);function s(e){return r(e)||i(e)||a(e)||o()}e.exports=s,e.exports.__esModule=!0,e.exports.default=e.exports},18698(e){function t(n){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},86116(e,t,n){var r=n(73897);function i(e,t){if(e){if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r(e,t)}}e.exports=i,e.exports.__esModule=!0,e.exports.default=e.exports},1644(e,t,n){"use strict";var r,i;function a(e){return!!e&&e<7}n.d(t,{I:()=>r,O:()=>a}),(i=r||(r={}))[i.loading=1]="loading",i[i.setVariables=2]="setVariables",i[i.fetchMore=3]="fetchMore",i[i.refetch=4]="refetch",i[i.poll=6]="poll",i[i.ready=7]="ready",i[i.error=8]="error"},30990(e,t,n){"use strict";n.d(t,{MS:()=>s,YG:()=>a,cA:()=>c,ls:()=>o});var r=n(70655);n(83952);var i=n(13154),a=Symbol();function o(e){return!!e.extensions&&Array.isArray(e.extensions[a])}function s(e){return e.hasOwnProperty("graphQLErrors")}var u=function(e){var t=(0,r.ev)((0,r.ev)((0,r.ev)([],e.graphQLErrors,!0),e.clientErrors,!0),e.protocolErrors,!0);return e.networkError&&t.push(e.networkError),t.map(function(e){return(0,i.s)(e)&&e.message||"Error message not found."}).join("\n")},c=function(e){function t(n){var r=n.graphQLErrors,i=n.protocolErrors,a=n.clientErrors,o=n.networkError,s=n.errorMessage,c=n.extraInfo,l=e.call(this,s)||this;return l.name="ApolloError",l.graphQLErrors=r||[],l.protocolErrors=i||[],l.clientErrors=a||[],l.networkError=o||null,l.message=s||u(l),l.extraInfo=c,l.__proto__=t.prototype,l}return(0,r.ZT)(t,e),t}(Error)},85317(e,t,n){"use strict";n.d(t,{K:()=>a});var r=n(67294),i=n(30320).aS?Symbol.for("__APOLLO_CONTEXT__"):"__APOLLO_CONTEXT__";function a(){var e=r.createContext[i];return e||(Object.defineProperty(r.createContext,i,{value:e=r.createContext({}),enumerable:!1,writable:!1,configurable:!0}),e.displayName="ApolloContext"),e}},21436(e,t,n){"use strict";n.d(t,{O:()=>i,k:()=>r});var r=Array.isArray;function i(e){return Array.isArray(e)&&e.length>0}},30320(e,t,n){"use strict";n.d(t,{DN:()=>s,JC:()=>l,aS:()=>o,mr:()=>i,sy:()=>a});var r=n(83952),i="function"==typeof WeakMap&&"ReactNative"!==(0,r.wY)(function(){return navigator.product}),a="function"==typeof WeakSet,o="function"==typeof Symbol&&"function"==typeof Symbol.for,s=o&&Symbol.asyncIterator,u="function"==typeof(0,r.wY)(function(){return window.document.createElement}),c=(0,r.wY)(function(){return navigator.userAgent.indexOf("jsdom")>=0})||!1,l=u&&!c},53712(e,t,n){"use strict";function r(){for(var e=[],t=0;tr})},10542(e,t,n){"use strict";n.d(t,{J:()=>o}),n(83952);var r=n(13154);function i(e){var t=new Set([e]);return t.forEach(function(e){(0,r.s)(e)&&a(e)===e&&Object.getOwnPropertyNames(e).forEach(function(n){(0,r.s)(e[n])&&t.add(e[n])})}),e}function a(e){if(__DEV__&&!Object.isFrozen(e))try{Object.freeze(e)}catch(t){if(t instanceof TypeError)return null;throw t}return e}function o(e){return __DEV__&&i(e),e}},14012(e,t,n){"use strict";n.d(t,{J:()=>a});var r=n(70655),i=n(53712);function a(e,t){return(0,i.o)(e,t,t.variables&&{variables:(0,r.pi)((0,r.pi)({},e&&e.variables),t.variables)})}},13154(e,t,n){"use strict";function r(e){return null!==e&&"object"==typeof e}n.d(t,{s:()=>r})},83952(e,t,n){"use strict";n.d(t,{ej:()=>u,kG:()=>c,wY:()=>h});var r,i=n(70655),a="Invariant Violation",o=Object.setPrototypeOf,s=void 0===o?function(e,t){return e.__proto__=t,e}:o,u=function(e){function t(n){void 0===n&&(n=a);var r=e.call(this,"number"==typeof n?a+": "+n+" (see https://github.com/apollographql/invariant-packages)":n)||this;return r.framesToPop=1,r.name=a,s(r,t.prototype),r}return(0,i.ZT)(t,e),t}(Error);function c(e,t){if(!e)throw new u(t)}var l=["debug","log","warn","error","silent"],f=l.indexOf("log");function d(e){return function(){if(l.indexOf(e)>=f)return(console[e]||console.log).apply(console,arguments)}}function h(e){try{return e()}catch(t){}}(r=c||(c={})).debug=d("debug"),r.log=d("log"),r.warn=d("warn"),r.error=d("error");let p=h(function(){return globalThis})||h(function(){return window})||h(function(){return self})||h(function(){return global})||h(function(){return h.constructor("return this")()});var b="__",m=[b,b].join("DEV");function g(){try{return Boolean(__DEV__)}catch(e){return Object.defineProperty(p,m,{value:"production"!==h(function(){return"production"}),enumerable:!1,configurable:!0,writable:!0}),p[m]}}let v=g();function y(e){try{return e()}catch(t){}}var w=y(function(){return globalThis})||y(function(){return window})||y(function(){return self})||y(function(){return global})||y(function(){return y.constructor("return this")()}),_=!1;function E(){!w||y(function(){return"production"})||y(function(){return process})||(Object.defineProperty(w,"process",{value:{env:{NODE_ENV:"production"}},configurable:!0,enumerable:!1,writable:!0}),_=!0)}function S(){_&&(delete w.process,_=!1)}E();var k=n(10143);function x(){return k.H,S()}function T(){__DEV__?c("boolean"==typeof v,v):c("boolean"==typeof v,39)}x(),T()},4942(e,t,n){"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,{Z:()=>r})},87462(e,t,n){"use strict";function r(){return(r=Object.assign?Object.assign.bind():function(e){for(var t=1;tr})},51721(e,t,n){"use strict";function r(e,t){return(r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function i(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{Z:()=>i})},63366(e,t,n){"use strict";function r(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}n.d(t,{Z:()=>r})},25821(e,t,n){"use strict";n.d(t,{Z:()=>s});var r=n(45695);function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var a=10,o=2;function s(e){return u(e,[])}function u(e,t){switch(i(e)){case"string":return JSON.stringify(e);case"function":return e.name?"[function ".concat(e.name,"]"):"[function]";case"object":if(null===e)return"null";return c(e,t);default:return String(e)}}function c(e,t){if(-1!==t.indexOf(e))return"[Circular]";var n=[].concat(t,[e]),r=d(e);if(void 0!==r){var i=r.call(e);if(i!==e)return"string"==typeof i?i:u(i,n)}else if(Array.isArray(e))return f(e,n);return l(e,n)}function l(e,t){var n=Object.keys(e);return 0===n.length?"{}":t.length>o?"["+h(e)+"]":"{ "+n.map(function(n){var r=u(e[n],t);return n+": "+r}).join(", ")+" }"}function f(e,t){if(0===e.length)return"[]";if(t.length>o)return"[Array]";for(var n=Math.min(a,e.length),r=e.length-n,i=[],s=0;s1&&i.push("... ".concat(r," more items")),"["+i.join(", ")+"]"}function d(e){var t=e[String(r.Z)];return"function"==typeof t?t:"function"==typeof e.inspect?e.inspect:void 0}function h(e){var t=Object.prototype.toString.call(e).replace(/^\[object /,"").replace(/]$/,"");if("Object"===t&&"function"==typeof e.constructor){var n=e.constructor.name;if("string"==typeof n&&""!==n)return n}return t}},45695(e,t,n){"use strict";n.d(t,{Z:()=>i});var r="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):void 0;let i=r},25217(e,t,n){"use strict";function r(e,t){if(!Boolean(e))throw Error(null!=t?t:"Unexpected invariant triggered.")}n.d(t,{Ye:()=>o,WU:()=>s,UG:()=>u});var i=n(45695);function a(e){var t=e.prototype.toJSON;"function"==typeof t||r(0),e.prototype.inspect=t,i.Z&&(e.prototype[i.Z]=t)}var o=function(){function e(e,t,n){this.start=e.start,this.end=t.end,this.startToken=e,this.endToken=t,this.source=n}return e.prototype.toJSON=function(){return{start:this.start,end:this.end}},e}();a(o);var s=function(){function e(e,t,n,r,i,a,o){this.kind=e,this.start=t,this.end=n,this.line=r,this.column=i,this.value=o,this.prev=a,this.next=null}return e.prototype.toJSON=function(){return{kind:this.kind,value:this.value,line:this.line,column:this.column}},e}();function u(e){return null!=e&&"string"==typeof e.kind}a(s)},87392(e,t,n){"use strict";function r(e){var t=e.split(/\r\n|[\n\r]/g),n=a(e);if(0!==n)for(var r=1;ro&&i(t[s-1]);)--s;return t.slice(o,s).join("\n")}function i(e){for(var t=0;t1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=-1===e.indexOf("\n"),i=" "===e[0]||" "===e[0],a='"'===e[e.length-1],o="\\"===e[e.length-1],s=!r||a||o||n,u="";return s&&!(r&&i)&&(u+="\n"+t),u+=t?e.replace(/\n/g,"\n"+t):e,s&&(u+="\n"),'"""'+u.replace(/"""/g,'\\"""')+'"""'}n.d(t,{LZ:()=>o,W7:()=>r})},97359(e,t,n){"use strict";n.d(t,{h:()=>r});var r=Object.freeze({NAME:"Name",DOCUMENT:"Document",OPERATION_DEFINITION:"OperationDefinition",VARIABLE_DEFINITION:"VariableDefinition",SELECTION_SET:"SelectionSet",FIELD:"Field",ARGUMENT:"Argument",FRAGMENT_SPREAD:"FragmentSpread",INLINE_FRAGMENT:"InlineFragment",FRAGMENT_DEFINITION:"FragmentDefinition",VARIABLE:"Variable",INT:"IntValue",FLOAT:"FloatValue",STRING:"StringValue",BOOLEAN:"BooleanValue",NULL:"NullValue",ENUM:"EnumValue",LIST:"ListValue",OBJECT:"ObjectValue",OBJECT_FIELD:"ObjectField",DIRECTIVE:"Directive",NAMED_TYPE:"NamedType",LIST_TYPE:"ListType",NON_NULL_TYPE:"NonNullType",SCHEMA_DEFINITION:"SchemaDefinition",OPERATION_TYPE_DEFINITION:"OperationTypeDefinition",SCALAR_TYPE_DEFINITION:"ScalarTypeDefinition",OBJECT_TYPE_DEFINITION:"ObjectTypeDefinition",FIELD_DEFINITION:"FieldDefinition",INPUT_VALUE_DEFINITION:"InputValueDefinition",INTERFACE_TYPE_DEFINITION:"InterfaceTypeDefinition",UNION_TYPE_DEFINITION:"UnionTypeDefinition",ENUM_TYPE_DEFINITION:"EnumTypeDefinition",ENUM_VALUE_DEFINITION:"EnumValueDefinition",INPUT_OBJECT_TYPE_DEFINITION:"InputObjectTypeDefinition",DIRECTIVE_DEFINITION:"DirectiveDefinition",SCHEMA_EXTENSION:"SchemaExtension",SCALAR_TYPE_EXTENSION:"ScalarTypeExtension",OBJECT_TYPE_EXTENSION:"ObjectTypeExtension",INTERFACE_TYPE_EXTENSION:"InterfaceTypeExtension",UNION_TYPE_EXTENSION:"UnionTypeExtension",ENUM_TYPE_EXTENSION:"EnumTypeExtension",INPUT_OBJECT_TYPE_EXTENSION:"InputObjectTypeExtension"})},10143(e,t,n){"use strict";n.d(t,{H:()=>c,T:()=>l});var r=n(99763),i=n(25821);function a(e,t){if(!Boolean(e))throw Error(t)}let o=function(e,t){return e instanceof t};function s(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"GraphQL request",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{line:1,column:1};"string"==typeof e||a(0,"Body must be a string. Received: ".concat((0,i.Z)(e),".")),this.body=e,this.name=t,this.locationOffset=n,this.locationOffset.line>0||a(0,"line in locationOffset is 1-indexed and must be positive."),this.locationOffset.column>0||a(0,"column in locationOffset is 1-indexed and must be positive.")}return u(e,[{key:r.YF,get:function(){return"Source"}}]),e}();function l(e){return o(e,c)}},99763(e,t,n){"use strict";n.d(t,{YF:()=>r});var r="function"==typeof Symbol&&null!=Symbol.toStringTag?Symbol.toStringTag:"@@toStringTag"},37452(e){"use strict";e.exports=JSON.parse('{"AElig":"\xc6","AMP":"&","Aacute":"\xc1","Acirc":"\xc2","Agrave":"\xc0","Aring":"\xc5","Atilde":"\xc3","Auml":"\xc4","COPY":"\xa9","Ccedil":"\xc7","ETH":"\xd0","Eacute":"\xc9","Ecirc":"\xca","Egrave":"\xc8","Euml":"\xcb","GT":">","Iacute":"\xcd","Icirc":"\xce","Igrave":"\xcc","Iuml":"\xcf","LT":"<","Ntilde":"\xd1","Oacute":"\xd3","Ocirc":"\xd4","Ograve":"\xd2","Oslash":"\xd8","Otilde":"\xd5","Ouml":"\xd6","QUOT":"\\"","REG":"\xae","THORN":"\xde","Uacute":"\xda","Ucirc":"\xdb","Ugrave":"\xd9","Uuml":"\xdc","Yacute":"\xdd","aacute":"\xe1","acirc":"\xe2","acute":"\xb4","aelig":"\xe6","agrave":"\xe0","amp":"&","aring":"\xe5","atilde":"\xe3","auml":"\xe4","brvbar":"\xa6","ccedil":"\xe7","cedil":"\xb8","cent":"\xa2","copy":"\xa9","curren":"\xa4","deg":"\xb0","divide":"\xf7","eacute":"\xe9","ecirc":"\xea","egrave":"\xe8","eth":"\xf0","euml":"\xeb","frac12":"\xbd","frac14":"\xbc","frac34":"\xbe","gt":">","iacute":"\xed","icirc":"\xee","iexcl":"\xa1","igrave":"\xec","iquest":"\xbf","iuml":"\xef","laquo":"\xab","lt":"<","macr":"\xaf","micro":"\xb5","middot":"\xb7","nbsp":"\xa0","not":"\xac","ntilde":"\xf1","oacute":"\xf3","ocirc":"\xf4","ograve":"\xf2","ordf":"\xaa","ordm":"\xba","oslash":"\xf8","otilde":"\xf5","ouml":"\xf6","para":"\xb6","plusmn":"\xb1","pound":"\xa3","quot":"\\"","raquo":"\xbb","reg":"\xae","sect":"\xa7","shy":"\xad","sup1":"\xb9","sup2":"\xb2","sup3":"\xb3","szlig":"\xdf","thorn":"\xfe","times":"\xd7","uacute":"\xfa","ucirc":"\xfb","ugrave":"\xf9","uml":"\xa8","uuml":"\xfc","yacute":"\xfd","yen":"\xa5","yuml":"\xff"}')},93580(e){"use strict";e.exports=JSON.parse('{"0":"�","128":"€","130":"‚","131":"ƒ","132":"„","133":"…","134":"†","135":"‡","136":"ˆ","137":"‰","138":"Š","139":"‹","140":"Œ","142":"Ž","145":"‘","146":"’","147":"“","148":"”","149":"•","150":"–","151":"—","152":"˜","153":"™","154":"š","155":"›","156":"œ","158":"ž","159":"Ÿ"}')},67946(e){"use strict";e.exports=JSON.parse('{"locale":"en","long":{"year":{"previous":"last year","current":"this year","next":"next year","past":{"one":"{0} year ago","other":"{0} years ago"},"future":{"one":"in {0} year","other":"in {0} years"}},"quarter":{"previous":"last quarter","current":"this quarter","next":"next quarter","past":{"one":"{0} quarter ago","other":"{0} quarters ago"},"future":{"one":"in {0} quarter","other":"in {0} quarters"}},"month":{"previous":"last month","current":"this month","next":"next month","past":{"one":"{0} month ago","other":"{0} months ago"},"future":{"one":"in {0} month","other":"in {0} months"}},"week":{"previous":"last week","current":"this week","next":"next week","past":{"one":"{0} week ago","other":"{0} weeks ago"},"future":{"one":"in {0} week","other":"in {0} weeks"}},"day":{"previous":"yesterday","current":"today","next":"tomorrow","past":{"one":"{0} day ago","other":"{0} days ago"},"future":{"one":"in {0} day","other":"in {0} days"}},"hour":{"current":"this hour","past":{"one":"{0} hour ago","other":"{0} hours ago"},"future":{"one":"in {0} hour","other":"in {0} hours"}},"minute":{"current":"this minute","past":{"one":"{0} minute ago","other":"{0} minutes ago"},"future":{"one":"in {0} minute","other":"in {0} minutes"}},"second":{"current":"now","past":{"one":"{0} second ago","other":"{0} seconds ago"},"future":{"one":"in {0} second","other":"in {0} seconds"}}},"short":{"year":{"previous":"last yr.","current":"this yr.","next":"next yr.","past":"{0} yr. ago","future":"in {0} yr."},"quarter":{"previous":"last qtr.","current":"this qtr.","next":"next qtr.","past":{"one":"{0} qtr. ago","other":"{0} qtrs. ago"},"future":{"one":"in {0} qtr.","other":"in {0} qtrs."}},"month":{"previous":"last mo.","current":"this mo.","next":"next mo.","past":"{0} mo. ago","future":"in {0} mo."},"week":{"previous":"last wk.","current":"this wk.","next":"next wk.","past":"{0} wk. ago","future":"in {0} wk."},"day":{"previous":"yesterday","current":"today","next":"tomorrow","past":{"one":"{0} day ago","other":"{0} days ago"},"future":{"one":"in {0} day","other":"in {0} days"}},"hour":{"current":"this hour","past":"{0} hr. ago","future":"in {0} hr."},"minute":{"current":"this minute","past":"{0} min. ago","future":"in {0} min."},"second":{"current":"now","past":"{0} sec. ago","future":"in {0} sec."}},"narrow":{"year":{"previous":"last yr.","current":"this yr.","next":"next yr.","past":"{0} yr. ago","future":"in {0} yr."},"quarter":{"previous":"last qtr.","current":"this qtr.","next":"next qtr.","past":{"one":"{0} qtr. ago","other":"{0} qtrs. ago"},"future":{"one":"in {0} qtr.","other":"in {0} qtrs."}},"month":{"previous":"last mo.","current":"this mo.","next":"next mo.","past":"{0} mo. ago","future":"in {0} mo."},"week":{"previous":"last wk.","current":"this wk.","next":"next wk.","past":"{0} wk. ago","future":"in {0} wk."},"day":{"previous":"yesterday","current":"today","next":"tomorrow","past":{"one":"{0} day ago","other":"{0} days ago"},"future":{"one":"in {0} day","other":"in {0} days"}},"hour":{"current":"this hour","past":"{0} hr. ago","future":"in {0} hr."},"minute":{"current":"this minute","past":"{0} min. ago","future":"in {0} min."},"second":{"current":"now","past":"{0} sec. ago","future":"in {0} sec."}},"now":{"now":{"current":"now","future":"in a moment","past":"just now"}},"mini":{"year":"{0}yr","month":"{0}mo","week":"{0}wk","day":"{0}d","hour":"{0}h","minute":"{0}m","second":"{0}s","now":"now"},"short-time":{"year":"{0} yr.","month":"{0} mo.","week":"{0} wk.","day":{"one":"{0} day","other":"{0} days"},"hour":"{0} hr.","minute":"{0} min.","second":"{0} sec."},"long-time":{"year":{"one":"{0} year","other":"{0} years"},"month":{"one":"{0} month","other":"{0} months"},"week":{"one":"{0} week","other":"{0} weeks"},"day":{"one":"{0} day","other":"{0} days"},"hour":{"one":"{0} hour","other":"{0} hours"},"minute":{"one":"{0} minute","other":"{0} minutes"},"second":{"one":"{0} second","other":"{0} seconds"}}}')}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var n=__webpack_module_cache__[e]={id:e,loaded:!1,exports:{}};return __webpack_modules__[e].call(n.exports,n,n.exports,__webpack_require__),n.loaded=!0,n.exports}__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},(()=>{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;__webpack_require__.t=function(n,r){if(1&r&&(n=this(n)),8&r||"object"==typeof n&&n&&(4&r&&n.__esModule||16&r&&"function"==typeof n.then))return n;var i=Object.create(null);__webpack_require__.r(i);var a={};e=e||[null,t({}),t([]),t(t)];for(var o=2&r&&n;"object"==typeof o&&!~e.indexOf(o);o=t(o))Object.getOwnPropertyNames(o).forEach(e=>a[e]=()=>n[e]);return a.default=()=>n,__webpack_require__.d(i,a),i}})(),__webpack_require__.d=(e,t)=>{for(var n in t)__webpack_require__.o(t,n)&&!__webpack_require__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.hmd=e=>((e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set(){throw Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e),__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),__webpack_require__.p="/assets/",__webpack_require__.nc=void 0;var __webpack_exports__={};(()=>{"use strict";var e,t,n,r,i=__webpack_require__(32316),a=__webpack_require__(8126),o=__webpack_require__(5690),s=__webpack_require__(30381),u=__webpack_require__.n(s),c=__webpack_require__(67294),l=__webpack_require__(73935),f=__webpack_require__.n(l),d=__webpack_require__(57209),h=__webpack_require__(37703),p=__webpack_require__(97779),b=__webpack_require__(28500);function m(e){return function(t){var n=t.dispatch,r=t.getState;return function(t){return function(i){return"function"==typeof i?i(n,r,e):t(i)}}}}var g=m();g.withExtraArgument=m;let v=g;var y=__webpack_require__(76489);function w(e){return function(t){return function(n){return function(r){n(r);var i=e||document&&document.cookie||"",a=t.getState();if("MATCH_ROUTE"===r.type&&"/signin"!==a.notifications.currentUrl){var o=(0,y.Q)(i);if(o.explorer)try{var s=JSON.parse(o.explorer);if("error"===s.status){var u=_(s.url);n({type:"NOTIFY_ERROR_MSG",msg:u})}}catch(c){n({type:"NOTIFY_ERROR_MSG",msg:"Invalid explorer status"})}}}}}}function _(e){var t="Can't connect to explorer: ".concat(e);return e.match(/^wss?:.+/)?t:"".concat(t,". You must use a websocket.")}var E=__webpack_require__(16353);function S(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function ei(e,t){if(e){if("string"==typeof e)return ea(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ea(e,t)}}function ea(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n1,i=!1,a=arguments[1],o=a;return new n(function(n){return t.subscribe({next:function(t){var a=!i;if(i=!0,!a||r)try{o=e(o,t)}catch(s){return n.error(s)}else o=t},error:function(e){n.error(e)},complete:function(){if(!i&&!r)return n.error(TypeError("Cannot reduce an empty sequence"));n.next(o),n.complete()}})})},t.concat=function(){for(var e=this,t=arguments.length,n=Array(t),r=0;r=0&&i.splice(e,1),o()}});i.push(s)},error:function(e){r.error(e)},complete:function(){o()}});function o(){a.closed&&0===i.length&&r.complete()}return function(){i.forEach(function(e){return e.unsubscribe()}),a.unsubscribe()}})},t[ed]=function(){return this},e.from=function(t){var n="function"==typeof this?this:e;if(null==t)throw TypeError(t+" is not an object");var r=ep(t,ed);if(r){var i=r.call(t);if(Object(i)!==i)throw TypeError(i+" is not an object");return em(i)&&i.constructor===n?i:new n(function(e){return i.subscribe(e)})}if(ec("iterator")&&(r=ep(t,ef)))return new n(function(e){ev(function(){if(!e.closed){for(var n,i=er(r.call(t));!(n=i()).done;){var a=n.value;if(e.next(a),e.closed)return}e.complete()}})});if(Array.isArray(t))return new n(function(e){ev(function(){if(!e.closed){for(var n=0;n0))return n.connection.key;var r=n.connection.filter?n.connection.filter:[];r.sort();var i={};return r.forEach(function(e){i[e]=t[e]}),"".concat(n.connection.key,"(").concat(eV(i),")")}var a=e;if(t){var o=eV(t);a+="(".concat(o,")")}return n&&Object.keys(n).forEach(function(e){-1===eW.indexOf(e)&&(n[e]&&Object.keys(n[e]).length?a+="@".concat(e,"(").concat(eV(n[e]),")"):a+="@".concat(e))}),a},{setStringify:function(e){var t=eV;return eV=e,t}}),eV=function(e){return JSON.stringify(e,eq)};function eq(e,t){return(0,eO.s)(t)&&!Array.isArray(t)&&(t=Object.keys(t).sort().reduce(function(e,n){return e[n]=t[n],e},{})),t}function eZ(e,t){if(e.arguments&&e.arguments.length){var n={};return e.arguments.forEach(function(e){var r;return ez(n,e.name,e.value,t)}),n}return null}function eX(e){return e.alias?e.alias.value:e.name.value}function eJ(e,t,n){for(var r,i=0,a=t.selections;it.indexOf(i))throw __DEV__?new Q.ej("illegal argument: ".concat(i)):new Q.ej(27)}return e}function tt(e,t){return t?t(e):eT.of()}function tn(e){return"function"==typeof e?new ta(e):e}function tr(e){return e.request.length<=1}var ti=function(e){function t(t,n){var r=e.call(this,t)||this;return r.link=n,r}return(0,en.ZT)(t,e),t}(Error),ta=function(){function e(e){e&&(this.request=e)}return e.empty=function(){return new e(function(){return eT.of()})},e.from=function(t){return 0===t.length?e.empty():t.map(tn).reduce(function(e,t){return e.concat(t)})},e.split=function(t,n,r){var i=tn(n),a=tn(r||new e(tt));return new e(tr(i)&&tr(a)?function(e){return t(e)?i.request(e)||eT.of():a.request(e)||eT.of()}:function(e,n){return t(e)?i.request(e,n)||eT.of():a.request(e,n)||eT.of()})},e.execute=function(e,t){return e.request(eM(t.context,e7(te(t))))||eT.of()},e.concat=function(t,n){var r=tn(t);if(tr(r))return __DEV__&&Q.kG.warn(new ti("You are calling concat on a terminating link, which will have no effect",r)),r;var i=tn(n);return new e(tr(i)?function(e){return r.request(e,function(e){return i.request(e)||eT.of()})||eT.of()}:function(e,t){return r.request(e,function(e){return i.request(e,t)||eT.of()})||eT.of()})},e.prototype.split=function(t,n,r){return this.concat(e.split(t,n,r||new e(tt)))},e.prototype.concat=function(t){return e.concat(this,t)},e.prototype.request=function(e,t){throw __DEV__?new Q.ej("request is not implemented"):new Q.ej(22)},e.prototype.onError=function(e,t){if(t&&t.error)return t.error(e),!1;throw e},e.prototype.setOnError=function(e){return this.onError=e,this},e}(),to=__webpack_require__(25821),ts=__webpack_require__(25217),tu={Name:[],Document:["definitions"],OperationDefinition:["name","variableDefinitions","directives","selectionSet"],VariableDefinition:["variable","type","defaultValue","directives"],Variable:["name"],SelectionSet:["selections"],Field:["alias","name","arguments","directives","selectionSet"],Argument:["name","value"],FragmentSpread:["name","directives"],InlineFragment:["typeCondition","directives","selectionSet"],FragmentDefinition:["name","variableDefinitions","typeCondition","directives","selectionSet"],IntValue:[],FloatValue:[],StringValue:[],BooleanValue:[],NullValue:[],EnumValue:[],ListValue:["values"],ObjectValue:["fields"],ObjectField:["name","value"],Directive:["name","arguments"],NamedType:["name"],ListType:["type"],NonNullType:["type"],SchemaDefinition:["description","directives","operationTypes"],OperationTypeDefinition:["type"],ScalarTypeDefinition:["description","name","directives"],ObjectTypeDefinition:["description","name","interfaces","directives","fields"],FieldDefinition:["description","name","arguments","type","directives"],InputValueDefinition:["description","name","type","defaultValue","directives"],InterfaceTypeDefinition:["description","name","interfaces","directives","fields"],UnionTypeDefinition:["description","name","directives","types"],EnumTypeDefinition:["description","name","directives","values"],EnumValueDefinition:["description","name","directives"],InputObjectTypeDefinition:["description","name","directives","fields"],DirectiveDefinition:["description","name","arguments","locations"],SchemaExtension:["directives","operationTypes"],ScalarTypeExtension:["name","directives"],ObjectTypeExtension:["name","interfaces","directives","fields"],InterfaceTypeExtension:["name","interfaces","directives","fields"],UnionTypeExtension:["name","directives","types"],EnumTypeExtension:["name","directives","values"],InputObjectTypeExtension:["name","directives","fields"]},tc=Object.freeze({});function tl(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:tu,r=void 0,i=Array.isArray(e),a=[e],o=-1,s=[],u=void 0,c=void 0,l=void 0,f=[],d=[],h=e;do{var p,b=++o===a.length,m=b&&0!==s.length;if(b){if(c=0===d.length?void 0:f[f.length-1],u=l,l=d.pop(),m){if(i)u=u.slice();else{for(var g={},v=0,y=Object.keys(u);v1)for(var r=new tB,i=1;i=0;--a){var o=i[a],s=isNaN(+o)?{}:[];s[o]=t,t=s}n=r.merge(n,t)}),n}var tW=Object.prototype.hasOwnProperty;function tK(e,t){var n,r,i,a,o;return(0,en.mG)(this,void 0,void 0,function(){var s,u,c,l,f,d,h,p,b,m,g,v,y,w,_,E,S,k,x,T,M,O,A;return(0,en.Jh)(this,function(L){switch(L.label){case 0:if(void 0===TextDecoder)throw Error("TextDecoder must be defined in the environment: please import a polyfill.");s=new TextDecoder("utf-8"),u=null===(n=e.headers)||void 0===n?void 0:n.get("content-type"),c="boundary=",l=(null==u?void 0:u.includes(c))?null==u?void 0:u.substring((null==u?void 0:u.indexOf(c))+c.length).replace(/['"]/g,"").replace(/\;(.*)/gm,"").trim():"-",f="\r\n--".concat(l),d="",h=tI(e),p=!0,L.label=1;case 1:if(!p)return[3,3];return[4,h.next()];case 2:for(m=(b=L.sent()).value,g=b.done,v="string"==typeof m?m:s.decode(m),y=d.length-f.length+1,p=!g,d+=v,w=d.indexOf(f,y);w>-1;){if(_=void 0,_=(O=[d.slice(0,w),d.slice(w+f.length),])[0],d=O[1],E=_.indexOf("\r\n\r\n"),(k=(S=tV(_.slice(0,E)))["content-type"])&&-1===k.toLowerCase().indexOf("application/json"))throw Error("Unsupported patch content type: application/json is required.");if(x=_.slice(E))try{T=tq(e,x),Object.keys(T).length>1||"data"in T||"incremental"in T||"errors"in T||"payload"in T?tz(T)?(M={},"payload"in T&&(M=(0,en.pi)({},T.payload)),"errors"in T&&(M=(0,en.pi)((0,en.pi)({},M),{extensions:(0,en.pi)((0,en.pi)({},"extensions"in M?M.extensions:null),((A={})[tN.YG]=T.errors,A))})),null===(r=t.next)||void 0===r||r.call(t,M)):null===(i=t.next)||void 0===i||i.call(t,T):1===Object.keys(T).length&&"hasNext"in T&&!T.hasNext&&(null===(a=t.complete)||void 0===a||a.call(t))}catch(C){tZ(C,t)}w=d.indexOf(f)}return[3,1];case 3:return null===(o=t.complete)||void 0===o||o.call(t),[2]}})})}function tV(e){var t={};return e.split("\n").forEach(function(e){var n=e.indexOf(":");if(n>-1){var r=e.slice(0,n).trim().toLowerCase(),i=e.slice(n+1).trim();t[r]=i}}),t}function tq(e,t){e.status>=300&&tD(e,function(){try{return JSON.parse(t)}catch(e){return t}}(),"Response not successful: Received status code ".concat(e.status));try{return JSON.parse(t)}catch(n){var r=n;throw r.name="ServerParseError",r.response=e,r.statusCode=e.status,r.bodyText=t,r}}function tZ(e,t){var n,r;"AbortError"!==e.name&&(e.result&&e.result.errors&&e.result.data&&(null===(n=t.next)||void 0===n||n.call(t,e.result)),null===(r=t.error)||void 0===r||r.call(t,e))}function tX(e,t,n){tJ(t)(e).then(function(e){var t,r;null===(t=n.next)||void 0===t||t.call(n,e),null===(r=n.complete)||void 0===r||r.call(n)}).catch(function(e){return tZ(e,n)})}function tJ(e){return function(t){return t.text().then(function(e){return tq(t,e)}).then(function(n){return t.status>=300&&tD(t,n,"Response not successful: Received status code ".concat(t.status)),Array.isArray(n)||tW.call(n,"data")||tW.call(n,"errors")||tD(t,n,"Server response was missing for query '".concat(Array.isArray(e)?e.map(function(e){return e.operationName}):e.operationName,"'.")),n})}}var tQ=function(e){if(!e&&"undefined"==typeof fetch)throw __DEV__?new Q.ej("\n\"fetch\" has not been found globally and no fetcher has been configured. To fix this, install a fetch package (like https://www.npmjs.com/package/cross-fetch), instantiate the fetcher, and pass it into your HttpLink constructor. For example:\n\nimport fetch from 'cross-fetch';\nimport { ApolloClient, HttpLink } from '@apollo/client';\nconst client = new ApolloClient({\n link: new HttpLink({ uri: '/graphql', fetch })\n});\n "):new Q.ej(23)},t1=__webpack_require__(87392);function t0(e){return tl(e,{leave:t3})}var t2=80,t3={Name:function(e){return e.value},Variable:function(e){return"$"+e.name},Document:function(e){return t6(e.definitions,"\n\n")+"\n"},OperationDefinition:function(e){var t=e.operation,n=e.name,r=t8("(",t6(e.variableDefinitions,", "),")"),i=t6(e.directives," "),a=e.selectionSet;return n||i||r||"query"!==t?t6([t,t6([n,r]),i,a]," "):a},VariableDefinition:function(e){var t=e.variable,n=e.type,r=e.defaultValue,i=e.directives;return t+": "+n+t8(" = ",r)+t8(" ",t6(i," "))},SelectionSet:function(e){return t5(e.selections)},Field:function(e){var t=e.alias,n=e.name,r=e.arguments,i=e.directives,a=e.selectionSet,o=t8("",t,": ")+n,s=o+t8("(",t6(r,", "),")");return s.length>t2&&(s=o+t8("(\n",t9(t6(r,"\n")),"\n)")),t6([s,t6(i," "),a]," ")},Argument:function(e){var t;return e.name+": "+e.value},FragmentSpread:function(e){var t;return"..."+e.name+t8(" ",t6(e.directives," "))},InlineFragment:function(e){var t=e.typeCondition,n=e.directives,r=e.selectionSet;return t6(["...",t8("on ",t),t6(n," "),r]," ")},FragmentDefinition:function(e){var t=e.name,n=e.typeCondition,r=e.variableDefinitions,i=e.directives,a=e.selectionSet;return"fragment ".concat(t).concat(t8("(",t6(r,", "),")")," ")+"on ".concat(n," ").concat(t8("",t6(i," ")," "))+a},IntValue:function(e){return e.value},FloatValue:function(e){return e.value},StringValue:function(e,t){var n=e.value;return e.block?(0,t1.LZ)(n,"description"===t?"":" "):JSON.stringify(n)},BooleanValue:function(e){return e.value?"true":"false"},NullValue:function(){return"null"},EnumValue:function(e){return e.value},ListValue:function(e){return"["+t6(e.values,", ")+"]"},ObjectValue:function(e){return"{"+t6(e.fields,", ")+"}"},ObjectField:function(e){var t;return e.name+": "+e.value},Directive:function(e){var t;return"@"+e.name+t8("(",t6(e.arguments,", "),")")},NamedType:function(e){return e.name},ListType:function(e){return"["+e.type+"]"},NonNullType:function(e){return e.type+"!"},SchemaDefinition:t4(function(e){var t=e.directives,n=e.operationTypes;return t6(["schema",t6(t," "),t5(n)]," ")}),OperationTypeDefinition:function(e){var t;return e.operation+": "+e.type},ScalarTypeDefinition:t4(function(e){var t;return t6(["scalar",e.name,t6(e.directives," ")]," ")}),ObjectTypeDefinition:t4(function(e){var t=e.name,n=e.interfaces,r=e.directives,i=e.fields;return t6(["type",t,t8("implements ",t6(n," & ")),t6(r," "),t5(i)]," ")}),FieldDefinition:t4(function(e){var t=e.name,n=e.arguments,r=e.type,i=e.directives;return t+(ne(n)?t8("(\n",t9(t6(n,"\n")),"\n)"):t8("(",t6(n,", "),")"))+": "+r+t8(" ",t6(i," "))}),InputValueDefinition:t4(function(e){var t=e.name,n=e.type,r=e.defaultValue,i=e.directives;return t6([t+": "+n,t8("= ",r),t6(i," ")]," ")}),InterfaceTypeDefinition:t4(function(e){var t=e.name,n=e.interfaces,r=e.directives,i=e.fields;return t6(["interface",t,t8("implements ",t6(n," & ")),t6(r," "),t5(i)]," ")}),UnionTypeDefinition:t4(function(e){var t=e.name,n=e.directives,r=e.types;return t6(["union",t,t6(n," "),r&&0!==r.length?"= "+t6(r," | "):""]," ")}),EnumTypeDefinition:t4(function(e){var t=e.name,n=e.directives,r=e.values;return t6(["enum",t,t6(n," "),t5(r)]," ")}),EnumValueDefinition:t4(function(e){var t;return t6([e.name,t6(e.directives," ")]," ")}),InputObjectTypeDefinition:t4(function(e){var t=e.name,n=e.directives,r=e.fields;return t6(["input",t,t6(n," "),t5(r)]," ")}),DirectiveDefinition:t4(function(e){var t=e.name,n=e.arguments,r=e.repeatable,i=e.locations;return"directive @"+t+(ne(n)?t8("(\n",t9(t6(n,"\n")),"\n)"):t8("(",t6(n,", "),")"))+(r?" repeatable":"")+" on "+t6(i," | ")}),SchemaExtension:function(e){var t=e.directives,n=e.operationTypes;return t6(["extend schema",t6(t," "),t5(n)]," ")},ScalarTypeExtension:function(e){var t;return t6(["extend scalar",e.name,t6(e.directives," ")]," ")},ObjectTypeExtension:function(e){var t=e.name,n=e.interfaces,r=e.directives,i=e.fields;return t6(["extend type",t,t8("implements ",t6(n," & ")),t6(r," "),t5(i)]," ")},InterfaceTypeExtension:function(e){var t=e.name,n=e.interfaces,r=e.directives,i=e.fields;return t6(["extend interface",t,t8("implements ",t6(n," & ")),t6(r," "),t5(i)]," ")},UnionTypeExtension:function(e){var t=e.name,n=e.directives,r=e.types;return t6(["extend union",t,t6(n," "),r&&0!==r.length?"= "+t6(r," | "):""]," ")},EnumTypeExtension:function(e){var t=e.name,n=e.directives,r=e.values;return t6(["extend enum",t,t6(n," "),t5(r)]," ")},InputObjectTypeExtension:function(e){var t=e.name,n=e.directives,r=e.fields;return t6(["extend input",t,t6(n," "),t5(r)]," ")}};function t4(e){return function(t){return t6([t.description,e(t)],"\n")}}function t6(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return null!==(t=null==e?void 0:e.filter(function(e){return e}).join(n))&&void 0!==t?t:""}function t5(e){return t8("{\n",t9(t6(e,"\n")),"\n}")}function t8(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";return null!=t&&""!==t?e+t+n:""}function t9(e){return t8(" ",e.replace(/\n/g,"\n "))}function t7(e){return -1!==e.indexOf("\n")}function ne(e){return null!=e&&e.some(t7)}var nt,nn,nr,ni={http:{includeQuery:!0,includeExtensions:!1,preserveHeaderCase:!1},headers:{accept:"*/*","content-type":"application/json"},options:{method:"POST"}},na=function(e,t){return t(e)};function no(e,t){for(var n=[],r=2;rObject.create(null),{forEach:nv,slice:ny}=Array.prototype,{hasOwnProperty:nw}=Object.prototype;class n_{constructor(e=!0,t=ng){this.weakness=e,this.makeData=t}lookup(...e){return this.lookupArray(e)}lookupArray(e){let t=this;return nv.call(e,e=>t=t.getChildTrie(e)),nw.call(t,"data")?t.data:t.data=this.makeData(ny.call(e))}peek(...e){return this.peekArray(e)}peekArray(e){let t=this;for(let n=0,r=e.length;t&&n=0;--o)t.definitions[o].kind===nL.h.OPERATION_DEFINITION&&++a;var s=nN(e),u=e.some(function(e){return e.remove}),c=function(e){return u&&e&&e.some(s)},l=new Map,f=!1,d={enter:function(e){if(c(e.directives))return f=!0,null}},h=tl(t,{Field:d,InlineFragment:d,VariableDefinition:{enter:function(){return!1}},Variable:{enter:function(e,t,n,r,a){var o=i(a);o&&o.variables.add(e.name.value)}},FragmentSpread:{enter:function(e,t,n,r,a){if(c(e.directives))return f=!0,null;var o=i(a);o&&o.fragmentSpreads.add(e.name.value)}},FragmentDefinition:{enter:function(e,t,n,r){l.set(JSON.stringify(r),e)},leave:function(e,t,n,i){return e===l.get(JSON.stringify(i))?e:a>0&&e.selectionSet.selections.every(function(e){return e.kind===nL.h.FIELD&&"__typename"===e.name.value})?(r(e.name.value).removed=!0,f=!0,null):void 0}},Directive:{leave:function(e){if(s(e))return f=!0,null}}});if(!f)return t;var p=function(e){return e.transitiveVars||(e.transitiveVars=new Set(e.variables),e.removed||e.fragmentSpreads.forEach(function(t){p(r(t)).transitiveVars.forEach(function(t){e.transitiveVars.add(t)})})),e},b=new Set;h.definitions.forEach(function(e){e.kind===nL.h.OPERATION_DEFINITION?p(n(e.name&&e.name.value)).fragmentSpreads.forEach(function(e){b.add(e)}):e.kind!==nL.h.FRAGMENT_DEFINITION||0!==a||r(e.name.value).removed||b.add(e.name.value)}),b.forEach(function(e){p(r(e)).fragmentSpreads.forEach(function(e){b.add(e)})});var m=function(e){return!!(!b.has(e)||r(e).removed)},g={enter:function(e){if(m(e.name.value))return null}};return nD(tl(h,{FragmentSpread:g,FragmentDefinition:g,OperationDefinition:{leave:function(e){if(e.variableDefinitions){var t=p(n(e.name&&e.name.value)).transitiveVars;if(t.size0},t.prototype.tearDownQuery=function(){this.isTornDown||(this.concast&&this.observer&&(this.concast.removeObserver(this.observer),delete this.concast,delete this.observer),this.stopPolling(),this.subscriptions.forEach(function(e){return e.unsubscribe()}),this.subscriptions.clear(),this.queryManager.stopQuery(this.queryId),this.observers.clear(),this.isTornDown=!0)},t}(eT);function n4(e){var t=e.options,n=t.fetchPolicy,r=t.nextFetchPolicy;return"cache-and-network"===n||"network-only"===n?e.reobserve({fetchPolicy:"cache-first",nextFetchPolicy:function(){return(this.nextFetchPolicy=r,"function"==typeof r)?r.apply(this,arguments):n}}):e.reobserve()}function n6(e){__DEV__&&Q.kG.error("Unhandled error",e.message,e.stack)}function n5(e){__DEV__&&e&&__DEV__&&Q.kG.debug("Missing cache result fields: ".concat(JSON.stringify(e)),e)}function n8(e){return"network-only"===e||"no-cache"===e||"standby"===e}nK(n3);function n9(e){return e.kind===nL.h.FIELD||e.kind===nL.h.FRAGMENT_SPREAD||e.kind===nL.h.INLINE_FRAGMENT}function n7(e){return e.kind===Kind.SCALAR_TYPE_DEFINITION||e.kind===Kind.OBJECT_TYPE_DEFINITION||e.kind===Kind.INTERFACE_TYPE_DEFINITION||e.kind===Kind.UNION_TYPE_DEFINITION||e.kind===Kind.ENUM_TYPE_DEFINITION||e.kind===Kind.INPUT_OBJECT_TYPE_DEFINITION}function re(e){return e.kind===Kind.SCALAR_TYPE_EXTENSION||e.kind===Kind.OBJECT_TYPE_EXTENSION||e.kind===Kind.INTERFACE_TYPE_EXTENSION||e.kind===Kind.UNION_TYPE_EXTENSION||e.kind===Kind.ENUM_TYPE_EXTENSION||e.kind===Kind.INPUT_OBJECT_TYPE_EXTENSION}var rt=function(){return Object.create(null)},rn=Array.prototype,rr=rn.forEach,ri=rn.slice,ra=function(){function e(e,t){void 0===e&&(e=!0),void 0===t&&(t=rt),this.weakness=e,this.makeData=t}return e.prototype.lookup=function(){for(var e=[],t=0;tclass{constructor(){this.id=["slot",rc++,Date.now(),Math.random().toString(36).slice(2),].join(":")}hasValue(){for(let e=rs;e;e=e.parent)if(this.id in e.slots){let t=e.slots[this.id];if(t===ru)break;return e!==rs&&(rs.slots[this.id]=t),!0}return rs&&(rs.slots[this.id]=ru),!1}getValue(){if(this.hasValue())return rs.slots[this.id]}withValue(e,t,n,r){let i={__proto__:null,[this.id]:e},a=rs;rs={parent:a,slots:i};try{return t.apply(r,n)}finally{rs=a}}static bind(e){let t=rs;return function(){let n=rs;try{return rs=t,e.apply(this,arguments)}finally{rs=n}}}static noContext(e,t,n){if(!rs)return e.apply(n,t);{let r=rs;try{return rs=null,e.apply(n,t)}finally{rs=r}}}};function rf(e){try{return e()}catch(t){}}let rd="@wry/context:Slot",rh=rf(()=>globalThis)||rf(()=>global)||Object.create(null),rp=rh,rb=rp[rd]||Array[rd]||function(e){try{Object.defineProperty(rp,rd,{value:e,enumerable:!1,writable:!1,configurable:!0})}finally{return e}}(rl()),{bind:rm,noContext:rg}=rb;function rv(){}var ry=function(){function e(e,t){void 0===e&&(e=1/0),void 0===t&&(t=rv),this.max=e,this.dispose=t,this.map=new Map,this.newest=null,this.oldest=null}return e.prototype.has=function(e){return this.map.has(e)},e.prototype.get=function(e){var t=this.getNode(e);return t&&t.value},e.prototype.getNode=function(e){var t=this.map.get(e);if(t&&t!==this.newest){var n=t.older,r=t.newer;r&&(r.older=n),n&&(n.newer=r),t.older=this.newest,t.older.newer=t,t.newer=null,this.newest=t,t===this.oldest&&(this.oldest=r)}return t},e.prototype.set=function(e,t){var n=this.getNode(e);return n?n.value=t:(n={key:e,value:t,newer:null,older:this.newest},this.newest&&(this.newest.newer=n),this.newest=n,this.oldest=this.oldest||n,this.map.set(e,n),n.value)},e.prototype.clean=function(){for(;this.oldest&&this.map.size>this.max;)this.delete(this.oldest.key)},e.prototype.delete=function(e){var t=this.map.get(e);return!!t&&(t===this.newest&&(this.newest=t.older),t===this.oldest&&(this.oldest=t.newer),t.newer&&(t.newer.older=t.older),t.older&&(t.older.newer=t.newer),this.map.delete(e),this.dispose(t.value,e),!0)},e}(),rw=new rb,r_=Object.prototype.hasOwnProperty,rE=void 0===(n=Array.from)?function(e){var t=[];return e.forEach(function(e){return t.push(e)}),t}:n;function rS(e){var t=e.unsubscribe;"function"==typeof t&&(e.unsubscribe=void 0,t())}var rk=[],rx=100;function rT(e,t){if(!e)throw Error(t||"assertion failure")}function rM(e,t){var n=e.length;return n>0&&n===t.length&&e[n-1]===t[n-1]}function rO(e){switch(e.length){case 0:throw Error("unknown value");case 1:return e[0];case 2:throw e[1]}}function rA(e){return e.slice(0)}var rL=function(){function e(t){this.fn=t,this.parents=new Set,this.childValues=new Map,this.dirtyChildren=null,this.dirty=!0,this.recomputing=!1,this.value=[],this.deps=null,++e.count}return e.prototype.peek=function(){if(1===this.value.length&&!rN(this))return rC(this),this.value[0]},e.prototype.recompute=function(e){return rT(!this.recomputing,"already recomputing"),rC(this),rN(this)?rI(this,e):rO(this.value)},e.prototype.setDirty=function(){this.dirty||(this.dirty=!0,this.value.length=0,rR(this),rS(this))},e.prototype.dispose=function(){var e=this;this.setDirty(),rH(this),rF(this,function(t,n){t.setDirty(),r$(t,e)})},e.prototype.forget=function(){this.dispose()},e.prototype.dependOn=function(e){e.add(this),this.deps||(this.deps=rk.pop()||new Set),this.deps.add(e)},e.prototype.forgetDeps=function(){var e=this;this.deps&&(rE(this.deps).forEach(function(t){return t.delete(e)}),this.deps.clear(),rk.push(this.deps),this.deps=null)},e.count=0,e}();function rC(e){var t=rw.getValue();if(t)return e.parents.add(t),t.childValues.has(e)||t.childValues.set(e,[]),rN(e)?rY(t,e):rB(t,e),t}function rI(e,t){return rH(e),rw.withValue(e,rD,[e,t]),rz(e,t)&&rP(e),rO(e.value)}function rD(e,t){e.recomputing=!0,e.value.length=0;try{e.value[0]=e.fn.apply(null,t)}catch(n){e.value[1]=n}e.recomputing=!1}function rN(e){return e.dirty||!!(e.dirtyChildren&&e.dirtyChildren.size)}function rP(e){e.dirty=!1,!rN(e)&&rj(e)}function rR(e){rF(e,rY)}function rj(e){rF(e,rB)}function rF(e,t){var n=e.parents.size;if(n)for(var r=rE(e.parents),i=0;i0&&e.childValues.forEach(function(t,n){r$(e,n)}),e.forgetDeps(),rT(null===e.dirtyChildren)}function r$(e,t){t.parents.delete(e),e.childValues.delete(t),rU(e,t)}function rz(e,t){if("function"==typeof e.subscribe)try{rS(e),e.unsubscribe=e.subscribe.apply(null,t)}catch(n){return e.setDirty(),!1}return!0}var rG={setDirty:!0,dispose:!0,forget:!0};function rW(e){var t=new Map,n=e&&e.subscribe;function r(e){var r=rw.getValue();if(r){var i=t.get(e);i||t.set(e,i=new Set),r.dependOn(i),"function"==typeof n&&(rS(i),i.unsubscribe=n(e))}}return r.dirty=function(e,n){var r=t.get(e);if(r){var i=n&&r_.call(rG,n)?n:"setDirty";rE(r).forEach(function(e){return e[i]()}),t.delete(e),rS(r)}},r}function rK(){var e=new ra("function"==typeof WeakMap);return function(){return e.lookupArray(arguments)}}var rV=rK(),rq=new Set;function rZ(e,t){void 0===t&&(t=Object.create(null));var n=new ry(t.max||65536,function(e){return e.dispose()}),r=t.keyArgs,i=t.makeCacheKey||rK(),a=function(){var a=i.apply(null,r?r.apply(null,arguments):arguments);if(void 0===a)return e.apply(null,arguments);var o=n.get(a);o||(n.set(a,o=new rL(e)),o.subscribe=t.subscribe,o.forget=function(){return n.delete(a)});var s=o.recompute(Array.prototype.slice.call(arguments));return n.set(a,o),rq.add(n),rw.hasValue()||(rq.forEach(function(e){return e.clean()}),rq.clear()),s};function o(e){var t=n.get(e);t&&t.setDirty()}function s(e){var t=n.get(e);if(t)return t.peek()}function u(e){return n.delete(e)}return Object.defineProperty(a,"size",{get:function(){return n.map.size},configurable:!1,enumerable:!1}),a.dirtyKey=o,a.dirty=function(){o(i.apply(null,arguments))},a.peekKey=s,a.peek=function(){return s(i.apply(null,arguments))},a.forgetKey=u,a.forget=function(){return u(i.apply(null,arguments))},a.makeCacheKey=i,a.getKey=r?function(){return i.apply(null,r.apply(null,arguments))}:i,Object.freeze(a)}var rX=new rb,rJ=new WeakMap;function rQ(e){var t=rJ.get(e);return t||rJ.set(e,t={vars:new Set,dep:rW()}),t}function r1(e){rQ(e).vars.forEach(function(t){return t.forgetCache(e)})}function r0(e){rQ(e).vars.forEach(function(t){return t.attachCache(e)})}function r2(e){var t=new Set,n=new Set,r=function(a){if(arguments.length>0){if(e!==a){e=a,t.forEach(function(e){rQ(e).dep.dirty(r),r3(e)});var o=Array.from(n);n.clear(),o.forEach(function(t){return t(e)})}}else{var s=rX.getValue();s&&(i(s),rQ(s).dep(r))}return e};r.onNextChange=function(e){return n.add(e),function(){n.delete(e)}};var i=r.attachCache=function(e){return t.add(e),rQ(e).vars.add(r),r};return r.forgetCache=function(e){return t.delete(e)},r}function r3(e){e.broadcastWatches&&e.broadcastWatches()}var r4=function(){function e(e){var t=e.cache,n=e.client,r=e.resolvers,i=e.fragmentMatcher;this.selectionsToResolveCache=new WeakMap,this.cache=t,n&&(this.client=n),r&&this.addResolvers(r),i&&this.setFragmentMatcher(i)}return e.prototype.addResolvers=function(e){var t=this;this.resolvers=this.resolvers||{},Array.isArray(e)?e.forEach(function(e){t.resolvers=tj(t.resolvers,e)}):this.resolvers=tj(this.resolvers,e)},e.prototype.setResolvers=function(e){this.resolvers={},this.addResolvers(e)},e.prototype.getResolvers=function(){return this.resolvers||{}},e.prototype.runResolvers=function(e){var t=e.document,n=e.remoteResult,r=e.context,i=e.variables,a=e.onlyRunForcedResolvers,o=void 0!==a&&a;return(0,en.mG)(this,void 0,void 0,function(){return(0,en.Jh)(this,function(e){return t?[2,this.resolveDocument(t,n.data,r,i,this.fragmentMatcher,o).then(function(e){return(0,en.pi)((0,en.pi)({},n),{data:e.result})})]:[2,n]})})},e.prototype.setFragmentMatcher=function(e){this.fragmentMatcher=e},e.prototype.getFragmentMatcher=function(){return this.fragmentMatcher},e.prototype.clientQuery=function(e){return tb(["client"],e)&&this.resolvers?e:null},e.prototype.serverQuery=function(e){return n$(e)},e.prototype.prepareContext=function(e){var t=this.cache;return(0,en.pi)((0,en.pi)({},e),{cache:t,getCacheKey:function(e){return t.identify(e)}})},e.prototype.addExportedVariables=function(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),(0,en.mG)(this,void 0,void 0,function(){return(0,en.Jh)(this,function(r){return e?[2,this.resolveDocument(e,this.buildRootValueFromCache(e,t)||{},this.prepareContext(n),t).then(function(e){return(0,en.pi)((0,en.pi)({},t),e.exportedVariables)})]:[2,(0,en.pi)({},t)]})})},e.prototype.shouldForceResolvers=function(e){var t=!1;return tl(e,{Directive:{enter:function(e){if("client"===e.name.value&&e.arguments&&(t=e.arguments.some(function(e){return"always"===e.name.value&&"BooleanValue"===e.value.kind&&!0===e.value.value})))return tc}}}),t},e.prototype.buildRootValueFromCache=function(e,t){return this.cache.diff({query:nH(e),variables:t,returnPartialData:!0,optimistic:!1}).result},e.prototype.resolveDocument=function(e,t,n,r,i,a){return void 0===n&&(n={}),void 0===r&&(r={}),void 0===i&&(i=function(){return!0}),void 0===a&&(a=!1),(0,en.mG)(this,void 0,void 0,function(){var o,s,u,c,l,f,d,h,p,b,m;return(0,en.Jh)(this,function(g){return o=e8(e),s=e4(e),u=eL(s),c=this.collectSelectionsToResolve(o,u),f=(l=o.operation)?l.charAt(0).toUpperCase()+l.slice(1):"Query",d=this,h=d.cache,p=d.client,b={fragmentMap:u,context:(0,en.pi)((0,en.pi)({},n),{cache:h,client:p}),variables:r,fragmentMatcher:i,defaultOperationType:f,exportedVariables:{},selectionsToResolve:c,onlyRunForcedResolvers:a},m=!1,[2,this.resolveSelectionSet(o.selectionSet,m,t,b).then(function(e){return{result:e,exportedVariables:b.exportedVariables}})]})})},e.prototype.resolveSelectionSet=function(e,t,n,r){return(0,en.mG)(this,void 0,void 0,function(){var i,a,o,s,u,c=this;return(0,en.Jh)(this,function(l){return i=r.fragmentMap,a=r.context,o=r.variables,s=[n],u=function(e){return(0,en.mG)(c,void 0,void 0,function(){var u,c;return(0,en.Jh)(this,function(l){return(t||r.selectionsToResolve.has(e))&&td(e,o)?eQ(e)?[2,this.resolveField(e,t,n,r).then(function(t){var n;void 0!==t&&s.push(((n={})[eX(e)]=t,n))})]:(e1(e)?u=e:(u=i[e.name.value],__DEV__?(0,Q.kG)(u,"No fragment named ".concat(e.name.value)):(0,Q.kG)(u,11)),u&&u.typeCondition&&(c=u.typeCondition.name.value,r.fragmentMatcher(n,c,a)))?[2,this.resolveSelectionSet(u.selectionSet,t,n,r).then(function(e){s.push(e)})]:[2]:[2]})})},[2,Promise.all(e.selections.map(u)).then(function(){return tF(s)})]})})},e.prototype.resolveField=function(e,t,n,r){return(0,en.mG)(this,void 0,void 0,function(){var i,a,o,s,u,c,l,f,d,h=this;return(0,en.Jh)(this,function(p){return n?(i=r.variables,a=e.name.value,o=eX(e),s=a!==o,c=Promise.resolve(u=n[o]||n[a]),(!r.onlyRunForcedResolvers||this.shouldForceResolvers(e))&&(l=n.__typename||r.defaultOperationType,(f=this.resolvers&&this.resolvers[l])&&(d=f[s?a:o])&&(c=Promise.resolve(rX.withValue(this.cache,d,[n,eZ(e,i),r.context,{field:e,fragmentMap:r.fragmentMap},])))),[2,c.then(function(n){if(void 0===n&&(n=u),e.directives&&e.directives.forEach(function(e){"export"===e.name.value&&e.arguments&&e.arguments.forEach(function(e){"as"===e.name.value&&"StringValue"===e.value.kind&&(r.exportedVariables[e.value.value]=n)})}),!e.selectionSet||null==n)return n;var i,a,o=null!==(a=null===(i=e.directives)||void 0===i?void 0:i.some(function(e){return"client"===e.name.value}))&&void 0!==a&&a;return Array.isArray(n)?h.resolveSubSelectedArray(e,t||o,n,r):e.selectionSet?h.resolveSelectionSet(e.selectionSet,t||o,n,r):void 0})]):[2,null]})})},e.prototype.resolveSubSelectedArray=function(e,t,n,r){var i=this;return Promise.all(n.map(function(n){return null===n?null:Array.isArray(n)?i.resolveSubSelectedArray(e,t,n,r):e.selectionSet?i.resolveSelectionSet(e.selectionSet,t,n,r):void 0}))},e.prototype.collectSelectionsToResolve=function(e,t){var n=function(e){return!Array.isArray(e)},r=this.selectionsToResolveCache;function i(e){if(!r.has(e)){var a=new Set;r.set(e,a),tl(e,{Directive:function(e,t,r,i,o){"client"===e.name.value&&o.forEach(function(e){n(e)&&n9(e)&&a.add(e)})},FragmentSpread:function(e,r,o,s,u){var c=t[e.name.value];__DEV__?(0,Q.kG)(c,"No fragment named ".concat(e.name.value)):(0,Q.kG)(c,12);var l=i(c);l.size>0&&(u.forEach(function(e){n(e)&&n9(e)&&a.add(e)}),a.add(e),l.forEach(function(e){a.add(e)}))}})}return r.get(e)}return i(e)},e}(),r6=new(t_.mr?WeakMap:Map);function r5(e,t){var n=e[t];"function"==typeof n&&(e[t]=function(){return r6.set(e,(r6.get(e)+1)%1e15),n.apply(this,arguments)})}function r8(e){e.notifyTimeout&&(clearTimeout(e.notifyTimeout),e.notifyTimeout=void 0)}var r9=function(){function e(e,t){void 0===t&&(t=e.generateQueryId()),this.queryId=t,this.listeners=new Set,this.document=null,this.lastRequestId=1,this.subscriptions=new Set,this.stopped=!1,this.dirty=!1,this.observableQuery=null;var n=this.cache=e.cache;r6.has(n)||(r6.set(n,0),r5(n,"evict"),r5(n,"modify"),r5(n,"reset"))}return e.prototype.init=function(e){var t=e.networkStatus||nZ.I.loading;return this.variables&&this.networkStatus!==nZ.I.loading&&!(0,nm.D)(this.variables,e.variables)&&(t=nZ.I.setVariables),(0,nm.D)(e.variables,this.variables)||(this.lastDiff=void 0),Object.assign(this,{document:e.document,variables:e.variables,networkError:null,graphQLErrors:this.graphQLErrors||[],networkStatus:t}),e.observableQuery&&this.setObservableQuery(e.observableQuery),e.lastRequestId&&(this.lastRequestId=e.lastRequestId),this},e.prototype.reset=function(){r8(this),this.dirty=!1},e.prototype.getDiff=function(e){void 0===e&&(e=this.variables);var t=this.getDiffOptions(e);if(this.lastDiff&&(0,nm.D)(t,this.lastDiff.options))return this.lastDiff.diff;this.updateWatch(this.variables=e);var n=this.observableQuery;if(n&&"no-cache"===n.options.fetchPolicy)return{complete:!1};var r=this.cache.diff(t);return this.updateLastDiff(r,t),r},e.prototype.updateLastDiff=function(e,t){this.lastDiff=e?{diff:e,options:t||this.getDiffOptions()}:void 0},e.prototype.getDiffOptions=function(e){var t;return void 0===e&&(e=this.variables),{query:this.document,variables:e,returnPartialData:!0,optimistic:!0,canonizeResults:null===(t=this.observableQuery)||void 0===t?void 0:t.options.canonizeResults}},e.prototype.setDiff=function(e){var t=this,n=this.lastDiff&&this.lastDiff.diff;this.updateLastDiff(e),this.dirty||(0,nm.D)(n&&n.result,e&&e.result)||(this.dirty=!0,this.notifyTimeout||(this.notifyTimeout=setTimeout(function(){return t.notify()},0)))},e.prototype.setObservableQuery=function(e){var t=this;e!==this.observableQuery&&(this.oqListener&&this.listeners.delete(this.oqListener),this.observableQuery=e,e?(e.queryInfo=this,this.listeners.add(this.oqListener=function(){t.getDiff().fromOptimisticTransaction?e.observe():n4(e)})):delete this.oqListener)},e.prototype.notify=function(){var e=this;r8(this),this.shouldNotify()&&this.listeners.forEach(function(t){return t(e)}),this.dirty=!1},e.prototype.shouldNotify=function(){if(!this.dirty||!this.listeners.size)return!1;if((0,nZ.O)(this.networkStatus)&&this.observableQuery){var e=this.observableQuery.options.fetchPolicy;if("cache-only"!==e&&"cache-and-network"!==e)return!1}return!0},e.prototype.stop=function(){if(!this.stopped){this.stopped=!0,this.reset(),this.cancel(),this.cancel=e.prototype.cancel,this.subscriptions.forEach(function(e){return e.unsubscribe()});var t=this.observableQuery;t&&t.stopPolling()}},e.prototype.cancel=function(){},e.prototype.updateWatch=function(e){var t=this;void 0===e&&(e=this.variables);var n=this.observableQuery;if(!n||"no-cache"!==n.options.fetchPolicy){var r=(0,en.pi)((0,en.pi)({},this.getDiffOptions(e)),{watcher:this,callback:function(e){return t.setDiff(e)}});this.lastWatch&&(0,nm.D)(r,this.lastWatch)||(this.cancel(),this.cancel=this.cache.watch(this.lastWatch=r))}},e.prototype.resetLastWrite=function(){this.lastWrite=void 0},e.prototype.shouldWrite=function(e,t){var n=this.lastWrite;return!(n&&n.dmCount===r6.get(this.cache)&&(0,nm.D)(t,n.variables)&&(0,nm.D)(e.data,n.result.data))},e.prototype.markResult=function(e,t,n,r){var i=this,a=new tB,o=(0,tP.O)(e.errors)?e.errors.slice(0):[];if(this.reset(),"incremental"in e&&(0,tP.O)(e.incremental)){var s=tG(this.getDiff().result,e);e.data=s}else if("hasNext"in e&&e.hasNext){var u=this.getDiff();e.data=a.merge(u.result,e.data)}this.graphQLErrors=o,"no-cache"===n.fetchPolicy?this.updateLastDiff({result:e.data,complete:!0},this.getDiffOptions(n.variables)):0!==r&&(r7(e,n.errorPolicy)?this.cache.performTransaction(function(a){if(i.shouldWrite(e,n.variables))a.writeQuery({query:t,data:e.data,variables:n.variables,overwrite:1===r}),i.lastWrite={result:e,variables:n.variables,dmCount:r6.get(i.cache)};else if(i.lastDiff&&i.lastDiff.diff.complete){e.data=i.lastDiff.diff.result;return}var o=i.getDiffOptions(n.variables),s=a.diff(o);i.stopped||i.updateWatch(n.variables),i.updateLastDiff(s,o),s.complete&&(e.data=s.result)}):this.lastWrite=void 0)},e.prototype.markReady=function(){return this.networkError=null,this.networkStatus=nZ.I.ready},e.prototype.markError=function(e){return this.networkStatus=nZ.I.error,this.lastWrite=void 0,this.reset(),e.graphQLErrors&&(this.graphQLErrors=e.graphQLErrors),e.networkError&&(this.networkError=e.networkError),e},e}();function r7(e,t){void 0===t&&(t="none");var n="ignore"===t||"all"===t,r=!nO(e);return!r&&n&&e.data&&(r=!0),r}var ie=Object.prototype.hasOwnProperty,it=function(){function e(e){var t=e.cache,n=e.link,r=e.defaultOptions,i=e.queryDeduplication,a=void 0!==i&&i,o=e.onBroadcast,s=e.ssrMode,u=void 0!==s&&s,c=e.clientAwareness,l=void 0===c?{}:c,f=e.localState,d=e.assumeImmutableResults;this.clientAwareness={},this.queries=new Map,this.fetchCancelFns=new Map,this.transformCache=new(t_.mr?WeakMap:Map),this.queryIdCounter=1,this.requestIdCounter=1,this.mutationIdCounter=1,this.inFlightLinkObservables=new Map,this.cache=t,this.link=n,this.defaultOptions=r||Object.create(null),this.queryDeduplication=a,this.clientAwareness=l,this.localState=f||new r4({cache:t}),this.ssrMode=u,this.assumeImmutableResults=!!d,(this.onBroadcast=o)&&(this.mutationStore=Object.create(null))}return e.prototype.stop=function(){var e=this;this.queries.forEach(function(t,n){e.stopQueryNoBroadcast(n)}),this.cancelPendingFetches(__DEV__?new Q.ej("QueryManager stopped while query was in flight"):new Q.ej(14))},e.prototype.cancelPendingFetches=function(e){this.fetchCancelFns.forEach(function(t){return t(e)}),this.fetchCancelFns.clear()},e.prototype.mutate=function(e){var t,n,r=e.mutation,i=e.variables,a=e.optimisticResponse,o=e.updateQueries,s=e.refetchQueries,u=void 0===s?[]:s,c=e.awaitRefetchQueries,l=void 0!==c&&c,f=e.update,d=e.onQueryUpdated,h=e.fetchPolicy,p=void 0===h?(null===(t=this.defaultOptions.mutate)||void 0===t?void 0:t.fetchPolicy)||"network-only":h,b=e.errorPolicy,m=void 0===b?(null===(n=this.defaultOptions.mutate)||void 0===n?void 0:n.errorPolicy)||"none":b,g=e.keepRootFields,v=e.context;return(0,en.mG)(this,void 0,void 0,function(){var e,t,n,s,c,h;return(0,en.Jh)(this,function(b){switch(b.label){case 0:if(__DEV__?(0,Q.kG)(r,"mutation option is required. You must specify your GraphQL document in the mutation option."):(0,Q.kG)(r,15),__DEV__?(0,Q.kG)("network-only"===p||"no-cache"===p,"Mutations support only 'network-only' or 'no-cache' fetchPolicy strings. The default `network-only` behavior automatically writes mutation results to the cache. Passing `no-cache` skips the cache write."):(0,Q.kG)("network-only"===p||"no-cache"===p,16),e=this.generateMutationId(),n=(t=this.transform(r)).document,s=t.hasClientExports,r=this.cache.transformForLink(n),i=this.getVariables(r,i),!s)return[3,2];return[4,this.localState.addExportedVariables(r,i,v)];case 1:i=b.sent(),b.label=2;case 2:return c=this.mutationStore&&(this.mutationStore[e]={mutation:r,variables:i,loading:!0,error:null}),a&&this.markMutationOptimistic(a,{mutationId:e,document:r,variables:i,fetchPolicy:p,errorPolicy:m,context:v,updateQueries:o,update:f,keepRootFields:g}),this.broadcastQueries(),h=this,[2,new Promise(function(t,n){return nM(h.getObservableFromLink(r,(0,en.pi)((0,en.pi)({},v),{optimisticResponse:a}),i,!1),function(t){if(nO(t)&&"none"===m)throw new tN.cA({graphQLErrors:nA(t)});c&&(c.loading=!1,c.error=null);var n=(0,en.pi)({},t);return"function"==typeof u&&(u=u(n)),"ignore"===m&&nO(n)&&delete n.errors,h.markMutationResult({mutationId:e,result:n,document:r,variables:i,fetchPolicy:p,errorPolicy:m,context:v,update:f,updateQueries:o,awaitRefetchQueries:l,refetchQueries:u,removeOptimistic:a?e:void 0,onQueryUpdated:d,keepRootFields:g})}).subscribe({next:function(e){h.broadcastQueries(),"hasNext"in e&&!1!==e.hasNext||t(e)},error:function(t){c&&(c.loading=!1,c.error=t),a&&h.cache.removeOptimistic(e),h.broadcastQueries(),n(t instanceof tN.cA?t:new tN.cA({networkError:t}))}})})]}})})},e.prototype.markMutationResult=function(e,t){var n=this;void 0===t&&(t=this.cache);var r=e.result,i=[],a="no-cache"===e.fetchPolicy;if(!a&&r7(r,e.errorPolicy)){if(tU(r)||i.push({result:r.data,dataId:"ROOT_MUTATION",query:e.document,variables:e.variables}),tU(r)&&(0,tP.O)(r.incremental)){var o=t.diff({id:"ROOT_MUTATION",query:this.transform(e.document).asQuery,variables:e.variables,optimistic:!1,returnPartialData:!0}),s=void 0;o.result&&(s=tG(o.result,r)),void 0!==s&&(r.data=s,i.push({result:s,dataId:"ROOT_MUTATION",query:e.document,variables:e.variables}))}var u=e.updateQueries;u&&this.queries.forEach(function(e,a){var o=e.observableQuery,s=o&&o.queryName;if(s&&ie.call(u,s)){var c,l=u[s],f=n.queries.get(a),d=f.document,h=f.variables,p=t.diff({query:d,variables:h,returnPartialData:!0,optimistic:!1}),b=p.result;if(p.complete&&b){var m=l(b,{mutationResult:r,queryName:d&&e3(d)||void 0,queryVariables:h});m&&i.push({result:m,dataId:"ROOT_QUERY",query:d,variables:h})}}})}if(i.length>0||e.refetchQueries||e.update||e.onQueryUpdated||e.removeOptimistic){var c=[];if(this.refetchQueries({updateCache:function(t){a||i.forEach(function(e){return t.write(e)});var o=e.update,s=!t$(r)||tU(r)&&!r.hasNext;if(o){if(!a){var u=t.diff({id:"ROOT_MUTATION",query:n.transform(e.document).asQuery,variables:e.variables,optimistic:!1,returnPartialData:!0});u.complete&&("incremental"in(r=(0,en.pi)((0,en.pi)({},r),{data:u.result}))&&delete r.incremental,"hasNext"in r&&delete r.hasNext)}s&&o(t,r,{context:e.context,variables:e.variables})}a||e.keepRootFields||!s||t.modify({id:"ROOT_MUTATION",fields:function(e,t){var n=t.fieldName,r=t.DELETE;return"__typename"===n?e:r}})},include:e.refetchQueries,optimistic:!1,removeOptimistic:e.removeOptimistic,onQueryUpdated:e.onQueryUpdated||null}).forEach(function(e){return c.push(e)}),e.awaitRefetchQueries||e.onQueryUpdated)return Promise.all(c).then(function(){return r})}return Promise.resolve(r)},e.prototype.markMutationOptimistic=function(e,t){var n=this,r="function"==typeof e?e(t.variables):e;return this.cache.recordOptimisticTransaction(function(e){try{n.markMutationResult((0,en.pi)((0,en.pi)({},t),{result:{data:r}}),e)}catch(i){__DEV__&&Q.kG.error(i)}},t.mutationId)},e.prototype.fetchQuery=function(e,t,n){return this.fetchQueryObservable(e,t,n).promise},e.prototype.getQueryStore=function(){var e=Object.create(null);return this.queries.forEach(function(t,n){e[n]={variables:t.variables,networkStatus:t.networkStatus,networkError:t.networkError,graphQLErrors:t.graphQLErrors}}),e},e.prototype.resetErrors=function(e){var t=this.queries.get(e);t&&(t.networkError=void 0,t.graphQLErrors=[])},e.prototype.transform=function(e){var t=this.transformCache;if(!t.has(e)){var n=this.cache.transformDocument(e),r=nY(n),i=this.localState.clientQuery(n),a=r&&this.localState.serverQuery(r),o={document:n,hasClientExports:tm(n),hasForcedResolvers:this.localState.shouldForceResolvers(n),clientQuery:i,serverQuery:a,defaultVars:e9(e2(n)),asQuery:(0,en.pi)((0,en.pi)({},n),{definitions:n.definitions.map(function(e){return"OperationDefinition"===e.kind&&"query"!==e.operation?(0,en.pi)((0,en.pi)({},e),{operation:"query"}):e})})},s=function(e){e&&!t.has(e)&&t.set(e,o)};s(e),s(n),s(i),s(a)}return t.get(e)},e.prototype.getVariables=function(e,t){return(0,en.pi)((0,en.pi)({},this.transform(e).defaultVars),t)},e.prototype.watchQuery=function(e){void 0===(e=(0,en.pi)((0,en.pi)({},e),{variables:this.getVariables(e.query,e.variables)})).notifyOnNetworkStatusChange&&(e.notifyOnNetworkStatusChange=!1);var t=new r9(this),n=new n3({queryManager:this,queryInfo:t,options:e});return this.queries.set(n.queryId,t),t.init({document:n.query,observableQuery:n,variables:n.variables}),n},e.prototype.query=function(e,t){var n=this;return void 0===t&&(t=this.generateQueryId()),__DEV__?(0,Q.kG)(e.query,"query option is required. You must specify your GraphQL document in the query option."):(0,Q.kG)(e.query,17),__DEV__?(0,Q.kG)("Document"===e.query.kind,'You must wrap the query string in a "gql" tag.'):(0,Q.kG)("Document"===e.query.kind,18),__DEV__?(0,Q.kG)(!e.returnPartialData,"returnPartialData option only supported on watchQuery."):(0,Q.kG)(!e.returnPartialData,19),__DEV__?(0,Q.kG)(!e.pollInterval,"pollInterval option only supported on watchQuery."):(0,Q.kG)(!e.pollInterval,20),this.fetchQuery(t,e).finally(function(){return n.stopQuery(t)})},e.prototype.generateQueryId=function(){return String(this.queryIdCounter++)},e.prototype.generateRequestId=function(){return this.requestIdCounter++},e.prototype.generateMutationId=function(){return String(this.mutationIdCounter++)},e.prototype.stopQueryInStore=function(e){this.stopQueryInStoreNoBroadcast(e),this.broadcastQueries()},e.prototype.stopQueryInStoreNoBroadcast=function(e){var t=this.queries.get(e);t&&t.stop()},e.prototype.clearStore=function(e){return void 0===e&&(e={discardWatches:!0}),this.cancelPendingFetches(__DEV__?new Q.ej("Store reset while query was in flight (not completed in link chain)"):new Q.ej(21)),this.queries.forEach(function(e){e.observableQuery?e.networkStatus=nZ.I.loading:e.stop()}),this.mutationStore&&(this.mutationStore=Object.create(null)),this.cache.reset(e)},e.prototype.getObservableQueries=function(e){var t=this;void 0===e&&(e="active");var n=new Map,r=new Map,i=new Set;return Array.isArray(e)&&e.forEach(function(e){"string"==typeof e?r.set(e,!1):eN(e)?r.set(t.transform(e).document,!1):(0,eO.s)(e)&&e.query&&i.add(e)}),this.queries.forEach(function(t,i){var a=t.observableQuery,o=t.document;if(a){if("all"===e){n.set(i,a);return}var s=a.queryName;if("standby"===a.options.fetchPolicy||"active"===e&&!a.hasObservers())return;("active"===e||s&&r.has(s)||o&&r.has(o))&&(n.set(i,a),s&&r.set(s,!0),o&&r.set(o,!0))}}),i.size&&i.forEach(function(e){var r=nG("legacyOneTimeQuery"),i=t.getQuery(r).init({document:e.query,variables:e.variables}),a=new n3({queryManager:t,queryInfo:i,options:(0,en.pi)((0,en.pi)({},e),{fetchPolicy:"network-only"})});(0,Q.kG)(a.queryId===r),i.setObservableQuery(a),n.set(r,a)}),__DEV__&&r.size&&r.forEach(function(e,t){!e&&__DEV__&&Q.kG.warn("Unknown query ".concat("string"==typeof t?"named ":"").concat(JSON.stringify(t,null,2)," requested in refetchQueries options.include array"))}),n},e.prototype.reFetchObservableQueries=function(e){var t=this;void 0===e&&(e=!1);var n=[];return this.getObservableQueries(e?"all":"active").forEach(function(r,i){var a=r.options.fetchPolicy;r.resetLastResults(),(e||"standby"!==a&&"cache-only"!==a)&&n.push(r.refetch()),t.getQuery(i).setDiff(null)}),this.broadcastQueries(),Promise.all(n)},e.prototype.setObservableQuery=function(e){this.getQuery(e.queryId).setObservableQuery(e)},e.prototype.startGraphQLSubscription=function(e){var t=this,n=e.query,r=e.fetchPolicy,i=e.errorPolicy,a=e.variables,o=e.context,s=void 0===o?{}:o;n=this.transform(n).document,a=this.getVariables(n,a);var u=function(e){return t.getObservableFromLink(n,s,e).map(function(a){"no-cache"!==r&&(r7(a,i)&&t.cache.write({query:n,result:a.data,dataId:"ROOT_SUBSCRIPTION",variables:e}),t.broadcastQueries());var o=nO(a),s=(0,tN.ls)(a);if(o||s){var u={};throw o&&(u.graphQLErrors=a.errors),s&&(u.protocolErrors=a.extensions[tN.YG]),new tN.cA(u)}return a})};if(this.transform(n).hasClientExports){var c=this.localState.addExportedVariables(n,a,s).then(u);return new eT(function(e){var t=null;return c.then(function(n){return t=n.subscribe(e)},e.error),function(){return t&&t.unsubscribe()}})}return u(a)},e.prototype.stopQuery=function(e){this.stopQueryNoBroadcast(e),this.broadcastQueries()},e.prototype.stopQueryNoBroadcast=function(e){this.stopQueryInStoreNoBroadcast(e),this.removeQuery(e)},e.prototype.removeQuery=function(e){this.fetchCancelFns.delete(e),this.queries.has(e)&&(this.getQuery(e).stop(),this.queries.delete(e))},e.prototype.broadcastQueries=function(){this.onBroadcast&&this.onBroadcast(),this.queries.forEach(function(e){return e.notify()})},e.prototype.getLocalState=function(){return this.localState},e.prototype.getObservableFromLink=function(e,t,n,r){var i,a,o=this;void 0===r&&(r=null!==(i=null==t?void 0:t.queryDeduplication)&&void 0!==i?i:this.queryDeduplication);var s=this.transform(e).serverQuery;if(s){var u=this,c=u.inFlightLinkObservables,l=u.link,f={query:s,variables:n,operationName:e3(s)||void 0,context:this.prepareContext((0,en.pi)((0,en.pi)({},t),{forceFetch:!r}))};if(t=f.context,r){var d=c.get(s)||new Map;c.set(s,d);var h=nx(n);if(!(a=d.get(h))){var p=new nq([np(l,f)]);d.set(h,a=p),p.beforeNext(function(){d.delete(h)&&d.size<1&&c.delete(s)})}}else a=new nq([np(l,f)])}else a=new nq([eT.of({data:{}})]),t=this.prepareContext(t);var b=this.transform(e).clientQuery;return b&&(a=nM(a,function(e){return o.localState.runResolvers({document:b,remoteResult:e,context:t,variables:n})})),a},e.prototype.getResultsFromLink=function(e,t,n){var r=e.lastRequestId=this.generateRequestId(),i=this.cache.transformForLink(this.transform(e.document).document);return nM(this.getObservableFromLink(i,n.context,n.variables),function(a){var o=nA(a),s=o.length>0;if(r>=e.lastRequestId){if(s&&"none"===n.errorPolicy)throw e.markError(new tN.cA({graphQLErrors:o}));e.markResult(a,i,n,t),e.markReady()}var u={data:a.data,loading:!1,networkStatus:nZ.I.ready};return s&&"ignore"!==n.errorPolicy&&(u.errors=o,u.networkStatus=nZ.I.error),u},function(t){var n=(0,tN.MS)(t)?t:new tN.cA({networkError:t});throw r>=e.lastRequestId&&e.markError(n),n})},e.prototype.fetchQueryObservable=function(e,t,n){return this.fetchConcastWithInfo(e,t,n).concast},e.prototype.fetchConcastWithInfo=function(e,t,n){var r,i,a=this;void 0===n&&(n=nZ.I.loading);var o=this.transform(t.query).document,s=this.getVariables(o,t.variables),u=this.getQuery(e),c=this.defaultOptions.watchQuery,l=t.fetchPolicy,f=void 0===l?c&&c.fetchPolicy||"cache-first":l,d=t.errorPolicy,h=void 0===d?c&&c.errorPolicy||"none":d,p=t.returnPartialData,b=void 0!==p&&p,m=t.notifyOnNetworkStatusChange,g=void 0!==m&&m,v=t.context,y=void 0===v?{}:v,w=Object.assign({},t,{query:o,variables:s,fetchPolicy:f,errorPolicy:h,returnPartialData:b,notifyOnNetworkStatusChange:g,context:y}),_=function(e){w.variables=e;var r=a.fetchQueryByPolicy(u,w,n);return"standby"!==w.fetchPolicy&&r.sources.length>0&&u.observableQuery&&u.observableQuery.applyNextFetchPolicy("after-fetch",t),r},E=function(){return a.fetchCancelFns.delete(e)};if(this.fetchCancelFns.set(e,function(e){E(),setTimeout(function(){return r.cancel(e)})}),this.transform(w.query).hasClientExports)r=new nq(this.localState.addExportedVariables(w.query,w.variables,w.context).then(_).then(function(e){return e.sources})),i=!0;else{var S=_(w.variables);i=S.fromLink,r=new nq(S.sources)}return r.promise.then(E,E),{concast:r,fromLink:i}},e.prototype.refetchQueries=function(e){var t=this,n=e.updateCache,r=e.include,i=e.optimistic,a=void 0!==i&&i,o=e.removeOptimistic,s=void 0===o?a?nG("refetchQueries"):void 0:o,u=e.onQueryUpdated,c=new Map;r&&this.getObservableQueries(r).forEach(function(e,n){c.set(n,{oq:e,lastDiff:t.getQuery(n).getDiff()})});var l=new Map;return n&&this.cache.batch({update:n,optimistic:a&&s||!1,removeOptimistic:s,onWatchUpdated:function(e,t,n){var r=e.watcher instanceof r9&&e.watcher.observableQuery;if(r){if(u){c.delete(r.queryId);var i=u(r,t,n);return!0===i&&(i=r.refetch()),!1!==i&&l.set(r,i),i}null!==u&&c.set(r.queryId,{oq:r,lastDiff:n,diff:t})}}}),c.size&&c.forEach(function(e,n){var r,i=e.oq,a=e.lastDiff,o=e.diff;if(u){if(!o){var s=i.queryInfo;s.reset(),o=s.getDiff()}r=u(i,o,a)}u&&!0!==r||(r=i.refetch()),!1!==r&&l.set(i,r),n.indexOf("legacyOneTimeQuery")>=0&&t.stopQueryNoBroadcast(n)}),s&&this.cache.removeOptimistic(s),l},e.prototype.fetchQueryByPolicy=function(e,t,n){var r=this,i=t.query,a=t.variables,o=t.fetchPolicy,s=t.refetchWritePolicy,u=t.errorPolicy,c=t.returnPartialData,l=t.context,f=t.notifyOnNetworkStatusChange,d=e.networkStatus;e.init({document:this.transform(i).document,variables:a,networkStatus:n});var h=function(){return e.getDiff(a)},p=function(t,n){void 0===n&&(n=e.networkStatus||nZ.I.loading);var o=t.result;!__DEV__||c||(0,nm.D)(o,{})||n5(t.missing);var s=function(e){return eT.of((0,en.pi)({data:e,loading:(0,nZ.O)(n),networkStatus:n},t.complete?null:{partial:!0}))};return o&&r.transform(i).hasForcedResolvers?r.localState.runResolvers({document:i,remoteResult:{data:o},context:l,variables:a,onlyRunForcedResolvers:!0}).then(function(e){return s(e.data||void 0)}):"none"===u&&n===nZ.I.refetch&&Array.isArray(t.missing)?s(void 0):s(o)},b="no-cache"===o?0:n===nZ.I.refetch&&"merge"!==s?1:2,m=function(){return r.getResultsFromLink(e,b,{variables:a,context:l,fetchPolicy:o,errorPolicy:u})},g=f&&"number"==typeof d&&d!==n&&(0,nZ.O)(n);switch(o){default:case"cache-first":var v=h();if(v.complete)return{fromLink:!1,sources:[p(v,e.markReady())]};if(c||g)return{fromLink:!0,sources:[p(v),m()]};return{fromLink:!0,sources:[m()]};case"cache-and-network":var v=h();if(v.complete||c||g)return{fromLink:!0,sources:[p(v),m()]};return{fromLink:!0,sources:[m()]};case"cache-only":return{fromLink:!1,sources:[p(h(),e.markReady())]};case"network-only":if(g)return{fromLink:!0,sources:[p(h()),m()]};return{fromLink:!0,sources:[m()]};case"no-cache":if(g)return{fromLink:!0,sources:[p(e.getDiff()),m(),]};return{fromLink:!0,sources:[m()]};case"standby":return{fromLink:!1,sources:[]}}},e.prototype.getQuery=function(e){return e&&!this.queries.has(e)&&this.queries.set(e,new r9(this,e)),this.queries.get(e)},e.prototype.prepareContext=function(e){void 0===e&&(e={});var t=this.localState.prepareContext(e);return(0,en.pi)((0,en.pi)({},t),{clientAwareness:this.clientAwareness})},e}(),ir=__webpack_require__(14012),ii=!1,ia=function(){function e(e){var t=this;this.resetStoreCallbacks=[],this.clearStoreCallbacks=[];var n=e.uri,r=e.credentials,i=e.headers,a=e.cache,o=e.ssrMode,s=void 0!==o&&o,u=e.ssrForceFetchDelay,c=void 0===u?0:u,l=e.connectToDevTools,f=void 0===l?"object"==typeof window&&!window.__APOLLO_CLIENT__&&__DEV__:l,d=e.queryDeduplication,h=void 0===d||d,p=e.defaultOptions,b=e.assumeImmutableResults,m=void 0!==b&&b,g=e.resolvers,v=e.typeDefs,y=e.fragmentMatcher,w=e.name,_=e.version,E=e.link;if(E||(E=n?new nh({uri:n,credentials:r,headers:i}):ta.empty()),!a)throw __DEV__?new Q.ej("To initialize Apollo Client, you must specify a 'cache' property in the options object. \nFor more information, please visit: https://go.apollo.dev/c/docs"):new Q.ej(9);if(this.link=E,this.cache=a,this.disableNetworkFetches=s||c>0,this.queryDeduplication=h,this.defaultOptions=p||Object.create(null),this.typeDefs=v,c&&setTimeout(function(){return t.disableNetworkFetches=!1},c),this.watchQuery=this.watchQuery.bind(this),this.query=this.query.bind(this),this.mutate=this.mutate.bind(this),this.resetStore=this.resetStore.bind(this),this.reFetchObservableQueries=this.reFetchObservableQueries.bind(this),f&&"object"==typeof window&&(window.__APOLLO_CLIENT__=this),!ii&&f&&__DEV__&&(ii=!0,"undefined"!=typeof window&&window.document&&window.top===window.self&&!window.__APOLLO_DEVTOOLS_GLOBAL_HOOK__)){var S=window.navigator,k=S&&S.userAgent,x=void 0;"string"==typeof k&&(k.indexOf("Chrome/")>-1?x="https://chrome.google.com/webstore/detail/apollo-client-developer-t/jdkknkkbebbapilgoeccciglkfbmbnfm":k.indexOf("Firefox/")>-1&&(x="https://addons.mozilla.org/en-US/firefox/addon/apollo-developer-tools/")),x&&__DEV__&&Q.kG.log("Download the Apollo DevTools for a better development experience: "+x)}this.version=nb,this.localState=new r4({cache:a,client:this,resolvers:g,fragmentMatcher:y}),this.queryManager=new it({cache:this.cache,link:this.link,defaultOptions:this.defaultOptions,queryDeduplication:h,ssrMode:s,clientAwareness:{name:w,version:_},localState:this.localState,assumeImmutableResults:m,onBroadcast:f?function(){t.devToolsHookCb&&t.devToolsHookCb({action:{},state:{queries:t.queryManager.getQueryStore(),mutations:t.queryManager.mutationStore||{}},dataWithOptimisticResults:t.cache.extract(!0)})}:void 0})}return e.prototype.stop=function(){this.queryManager.stop()},e.prototype.watchQuery=function(e){return this.defaultOptions.watchQuery&&(e=(0,ir.J)(this.defaultOptions.watchQuery,e)),this.disableNetworkFetches&&("network-only"===e.fetchPolicy||"cache-and-network"===e.fetchPolicy)&&(e=(0,en.pi)((0,en.pi)({},e),{fetchPolicy:"cache-first"})),this.queryManager.watchQuery(e)},e.prototype.query=function(e){return this.defaultOptions.query&&(e=(0,ir.J)(this.defaultOptions.query,e)),__DEV__?(0,Q.kG)("cache-and-network"!==e.fetchPolicy,"The cache-and-network fetchPolicy does not work with client.query, because client.query can only return a single result. Please use client.watchQuery to receive multiple results from the cache and the network, or consider using a different fetchPolicy, such as cache-first or network-only."):(0,Q.kG)("cache-and-network"!==e.fetchPolicy,10),this.disableNetworkFetches&&"network-only"===e.fetchPolicy&&(e=(0,en.pi)((0,en.pi)({},e),{fetchPolicy:"cache-first"})),this.queryManager.query(e)},e.prototype.mutate=function(e){return this.defaultOptions.mutate&&(e=(0,ir.J)(this.defaultOptions.mutate,e)),this.queryManager.mutate(e)},e.prototype.subscribe=function(e){return this.queryManager.startGraphQLSubscription(e)},e.prototype.readQuery=function(e,t){return void 0===t&&(t=!1),this.cache.readQuery(e,t)},e.prototype.readFragment=function(e,t){return void 0===t&&(t=!1),this.cache.readFragment(e,t)},e.prototype.writeQuery=function(e){var t=this.cache.writeQuery(e);return!1!==e.broadcast&&this.queryManager.broadcastQueries(),t},e.prototype.writeFragment=function(e){var t=this.cache.writeFragment(e);return!1!==e.broadcast&&this.queryManager.broadcastQueries(),t},e.prototype.__actionHookForDevTools=function(e){this.devToolsHookCb=e},e.prototype.__requestRaw=function(e){return np(this.link,e)},e.prototype.resetStore=function(){var e=this;return Promise.resolve().then(function(){return e.queryManager.clearStore({discardWatches:!1})}).then(function(){return Promise.all(e.resetStoreCallbacks.map(function(e){return e()}))}).then(function(){return e.reFetchObservableQueries()})},e.prototype.clearStore=function(){var e=this;return Promise.resolve().then(function(){return e.queryManager.clearStore({discardWatches:!0})}).then(function(){return Promise.all(e.clearStoreCallbacks.map(function(e){return e()}))})},e.prototype.onResetStore=function(e){var t=this;return this.resetStoreCallbacks.push(e),function(){t.resetStoreCallbacks=t.resetStoreCallbacks.filter(function(t){return t!==e})}},e.prototype.onClearStore=function(e){var t=this;return this.clearStoreCallbacks.push(e),function(){t.clearStoreCallbacks=t.clearStoreCallbacks.filter(function(t){return t!==e})}},e.prototype.reFetchObservableQueries=function(e){return this.queryManager.reFetchObservableQueries(e)},e.prototype.refetchQueries=function(e){var t=this.queryManager.refetchQueries(e),n=[],r=[];t.forEach(function(e,t){n.push(t),r.push(e)});var i=Promise.all(r);return i.queries=n,i.results=r,i.catch(function(e){__DEV__&&Q.kG.debug("In client.refetchQueries, Promise.all promise rejected with error ".concat(e))}),i},e.prototype.getObservableQueries=function(e){return void 0===e&&(e="active"),this.queryManager.getObservableQueries(e)},e.prototype.extract=function(e){return this.cache.extract(e)},e.prototype.restore=function(e){return this.cache.restore(e)},e.prototype.addResolvers=function(e){this.localState.addResolvers(e)},e.prototype.setResolvers=function(e){this.localState.setResolvers(e)},e.prototype.getResolvers=function(){return this.localState.getResolvers()},e.prototype.setLocalStateFragmentMatcher=function(e){this.localState.setFragmentMatcher(e)},e.prototype.setLink=function(e){this.link=this.queryManager.link=e},e}(),io=function(){function e(){this.getFragmentDoc=rZ(eA)}return e.prototype.batch=function(e){var t,n=this,r="string"==typeof e.optimistic?e.optimistic:!1===e.optimistic?null:void 0;return this.performTransaction(function(){return t=e.update(n)},r),t},e.prototype.recordOptimisticTransaction=function(e,t){this.performTransaction(e,t)},e.prototype.transformDocument=function(e){return e},e.prototype.transformForLink=function(e){return e},e.prototype.identify=function(e){},e.prototype.gc=function(){return[]},e.prototype.modify=function(e){return!1},e.prototype.readQuery=function(e,t){return void 0===t&&(t=!!e.optimistic),this.read((0,en.pi)((0,en.pi)({},e),{rootId:e.id||"ROOT_QUERY",optimistic:t}))},e.prototype.readFragment=function(e,t){return void 0===t&&(t=!!e.optimistic),this.read((0,en.pi)((0,en.pi)({},e),{query:this.getFragmentDoc(e.fragment,e.fragmentName),rootId:e.id,optimistic:t}))},e.prototype.writeQuery=function(e){var t=e.id,n=e.data,r=(0,en._T)(e,["id","data"]);return this.write(Object.assign(r,{dataId:t||"ROOT_QUERY",result:n}))},e.prototype.writeFragment=function(e){var t=e.id,n=e.data,r=e.fragment,i=e.fragmentName,a=(0,en._T)(e,["id","data","fragment","fragmentName"]);return this.write(Object.assign(a,{query:this.getFragmentDoc(r,i),dataId:t,result:n}))},e.prototype.updateQuery=function(e,t){return this.batch({update:function(n){var r=n.readQuery(e),i=t(r);return null==i?r:(n.writeQuery((0,en.pi)((0,en.pi)({},e),{data:i})),i)}})},e.prototype.updateFragment=function(e,t){return this.batch({update:function(n){var r=n.readFragment(e),i=t(r);return null==i?r:(n.writeFragment((0,en.pi)((0,en.pi)({},e),{data:i})),i)}})},e}(),is=function(e){function t(n,r,i,a){var o,s=e.call(this,n)||this;if(s.message=n,s.path=r,s.query=i,s.variables=a,Array.isArray(s.path)){s.missing=s.message;for(var u=s.path.length-1;u>=0;--u)s.missing=((o={})[s.path[u]]=s.missing,o)}else s.missing=s.path;return s.__proto__=t.prototype,s}return(0,en.ZT)(t,e),t}(Error),iu=__webpack_require__(10542),ic=Object.prototype.hasOwnProperty;function il(e){return null==e}function id(e,t){var n=e.__typename,r=e.id,i=e._id;if("string"==typeof n&&(t&&(t.keyObject=il(r)?il(i)?void 0:{_id:i}:{id:r}),il(r)&&!il(i)&&(r=i),!il(r)))return"".concat(n,":").concat("number"==typeof r||"string"==typeof r?r:JSON.stringify(r))}var ih={dataIdFromObject:id,addTypename:!0,resultCaching:!0,canonizeResults:!1};function ip(e){return(0,n1.o)(ih,e)}function ib(e){var t=e.canonizeResults;return void 0===t?ih.canonizeResults:t}function im(e,t){return eD(t)?e.get(t.__ref,"__typename"):t&&t.__typename}var ig=/^[_a-z][_0-9a-z]*/i;function iv(e){var t=e.match(ig);return t?t[0]:e}function iy(e,t,n){return!!(0,eO.s)(t)&&((0,tP.k)(t)?t.every(function(t){return iy(e,t,n)}):e.selections.every(function(e){if(eQ(e)&&td(e,n)){var r=eX(e);return ic.call(t,r)&&(!e.selectionSet||iy(e.selectionSet,t[r],n))}return!0}))}function iw(e){return(0,eO.s)(e)&&!eD(e)&&!(0,tP.k)(e)}function i_(){return new tB}function iE(e,t){var n=eL(e4(e));return{fragmentMap:n,lookupFragment:function(e){var r=n[e];return!r&&t&&(r=t.lookup(e)),r||null}}}var iS=Object.create(null),ik=function(){return iS},ix=Object.create(null),iT=function(){function e(e,t){var n=this;this.policies=e,this.group=t,this.data=Object.create(null),this.rootIds=Object.create(null),this.refs=Object.create(null),this.getFieldValue=function(e,t){return(0,iu.J)(eD(e)?n.get(e.__ref,t):e&&e[t])},this.canRead=function(e){return eD(e)?n.has(e.__ref):"object"==typeof e},this.toReference=function(e,t){if("string"==typeof e)return eI(e);if(eD(e))return e;var r=n.policies.identify(e)[0];if(r){var i=eI(r);return t&&n.merge(r,e),i}}}return e.prototype.toObject=function(){return(0,en.pi)({},this.data)},e.prototype.has=function(e){return void 0!==this.lookup(e,!0)},e.prototype.get=function(e,t){if(this.group.depend(e,t),ic.call(this.data,e)){var n=this.data[e];if(n&&ic.call(n,t))return n[t]}return"__typename"===t&&ic.call(this.policies.rootTypenamesById,e)?this.policies.rootTypenamesById[e]:this instanceof iL?this.parent.get(e,t):void 0},e.prototype.lookup=function(e,t){return(t&&this.group.depend(e,"__exists"),ic.call(this.data,e))?this.data[e]:this instanceof iL?this.parent.lookup(e,t):this.policies.rootTypenamesById[e]?Object.create(null):void 0},e.prototype.merge=function(e,t){var n,r=this;eD(e)&&(e=e.__ref),eD(t)&&(t=t.__ref);var i="string"==typeof e?this.lookup(n=e):e,a="string"==typeof t?this.lookup(n=t):t;if(a){__DEV__?(0,Q.kG)("string"==typeof n,"store.merge expects a string ID"):(0,Q.kG)("string"==typeof n,1);var o=new tB(iI).merge(i,a);if(this.data[n]=o,o!==i&&(delete this.refs[n],this.group.caching)){var s=Object.create(null);i||(s.__exists=1),Object.keys(a).forEach(function(e){if(!i||i[e]!==o[e]){s[e]=1;var t=iv(e);t===e||r.policies.hasKeyArgs(o.__typename,t)||(s[t]=1),void 0!==o[e]||r instanceof iL||delete o[e]}}),s.__typename&&!(i&&i.__typename)&&this.policies.rootTypenamesById[n]===o.__typename&&delete s.__typename,Object.keys(s).forEach(function(e){return r.group.dirty(n,e)})}}},e.prototype.modify=function(e,t){var n=this,r=this.lookup(e);if(r){var i=Object.create(null),a=!1,o=!0,s={DELETE:iS,INVALIDATE:ix,isReference:eD,toReference:this.toReference,canRead:this.canRead,readField:function(t,r){return n.policies.readField("string"==typeof t?{fieldName:t,from:r||eI(e)}:t,{store:n})}};if(Object.keys(r).forEach(function(u){var c=iv(u),l=r[u];if(void 0!==l){var f="function"==typeof t?t:t[u]||t[c];if(f){var d=f===ik?iS:f((0,iu.J)(l),(0,en.pi)((0,en.pi)({},s),{fieldName:c,storeFieldName:u,storage:n.getStorage(e,u)}));d===ix?n.group.dirty(e,u):(d===iS&&(d=void 0),d!==l&&(i[u]=d,a=!0,l=d))}void 0!==l&&(o=!1)}}),a)return this.merge(e,i),o&&(this instanceof iL?this.data[e]=void 0:delete this.data[e],this.group.dirty(e,"__exists")),!0}return!1},e.prototype.delete=function(e,t,n){var r,i=this.lookup(e);if(i){var a=this.getFieldValue(i,"__typename"),o=t&&n?this.policies.getStoreFieldName({typename:a,fieldName:t,args:n}):t;return this.modify(e,o?((r={})[o]=ik,r):ik)}return!1},e.prototype.evict=function(e,t){var n=!1;return e.id&&(ic.call(this.data,e.id)&&(n=this.delete(e.id,e.fieldName,e.args)),this instanceof iL&&this!==t&&(n=this.parent.evict(e,t)||n),(e.fieldName||n)&&this.group.dirty(e.id,e.fieldName||"__exists")),n},e.prototype.clear=function(){this.replace(null)},e.prototype.extract=function(){var e=this,t=this.toObject(),n=[];return this.getRootIdSet().forEach(function(t){ic.call(e.policies.rootTypenamesById,t)||n.push(t)}),n.length&&(t.__META={extraRootIds:n.sort()}),t},e.prototype.replace=function(e){var t=this;if(Object.keys(this.data).forEach(function(n){e&&ic.call(e,n)||t.delete(n)}),e){var n=e.__META,r=(0,en._T)(e,["__META"]);Object.keys(r).forEach(function(e){t.merge(e,r[e])}),n&&n.extraRootIds.forEach(this.retain,this)}},e.prototype.retain=function(e){return this.rootIds[e]=(this.rootIds[e]||0)+1},e.prototype.release=function(e){if(this.rootIds[e]>0){var t=--this.rootIds[e];return t||delete this.rootIds[e],t}return 0},e.prototype.getRootIdSet=function(e){return void 0===e&&(e=new Set),Object.keys(this.rootIds).forEach(e.add,e),this instanceof iL?this.parent.getRootIdSet(e):Object.keys(this.policies.rootTypenamesById).forEach(e.add,e),e},e.prototype.gc=function(){var e=this,t=this.getRootIdSet(),n=this.toObject();t.forEach(function(r){ic.call(n,r)&&(Object.keys(e.findChildRefIds(r)).forEach(t.add,t),delete n[r])});var r=Object.keys(n);if(r.length){for(var i=this;i instanceof iL;)i=i.parent;r.forEach(function(e){return i.delete(e)})}return r},e.prototype.findChildRefIds=function(e){if(!ic.call(this.refs,e)){var t=this.refs[e]=Object.create(null),n=this.data[e];if(!n)return t;var r=new Set([n]);r.forEach(function(e){eD(e)&&(t[e.__ref]=!0),(0,eO.s)(e)&&Object.keys(e).forEach(function(t){var n=e[t];(0,eO.s)(n)&&r.add(n)})})}return this.refs[e]},e.prototype.makeCacheKey=function(){return this.group.keyMaker.lookupArray(arguments)},e}(),iM=function(){function e(e,t){void 0===t&&(t=null),this.caching=e,this.parent=t,this.d=null,this.resetCaching()}return e.prototype.resetCaching=function(){this.d=this.caching?rW():null,this.keyMaker=new n_(t_.mr)},e.prototype.depend=function(e,t){if(this.d){this.d(iO(e,t));var n=iv(t);n!==t&&this.d(iO(e,n)),this.parent&&this.parent.depend(e,t)}},e.prototype.dirty=function(e,t){this.d&&this.d.dirty(iO(e,t),"__exists"===t?"forget":"setDirty")},e}();function iO(e,t){return t+"#"+e}function iA(e,t){iD(e)&&e.group.depend(t,"__exists")}!function(e){var t=function(e){function t(t){var n=t.policies,r=t.resultCaching,i=void 0===r||r,a=t.seed,o=e.call(this,n,new iM(i))||this;return o.stump=new iC(o),o.storageTrie=new n_(t_.mr),a&&o.replace(a),o}return(0,en.ZT)(t,e),t.prototype.addLayer=function(e,t){return this.stump.addLayer(e,t)},t.prototype.removeLayer=function(){return this},t.prototype.getStorage=function(){return this.storageTrie.lookupArray(arguments)},t}(e);e.Root=t}(iT||(iT={}));var iL=function(e){function t(t,n,r,i){var a=e.call(this,n.policies,i)||this;return a.id=t,a.parent=n,a.replay=r,a.group=i,r(a),a}return(0,en.ZT)(t,e),t.prototype.addLayer=function(e,n){return new t(e,this,n,this.group)},t.prototype.removeLayer=function(e){var t=this,n=this.parent.removeLayer(e);return e===this.id?(this.group.caching&&Object.keys(this.data).forEach(function(e){var r=t.data[e],i=n.lookup(e);i?r?r!==i&&Object.keys(r).forEach(function(n){(0,nm.D)(r[n],i[n])||t.group.dirty(e,n)}):(t.group.dirty(e,"__exists"),Object.keys(i).forEach(function(n){t.group.dirty(e,n)})):t.delete(e)}),n):n===this.parent?this:n.addLayer(this.id,this.replay)},t.prototype.toObject=function(){return(0,en.pi)((0,en.pi)({},this.parent.toObject()),this.data)},t.prototype.findChildRefIds=function(t){var n=this.parent.findChildRefIds(t);return ic.call(this.data,t)?(0,en.pi)((0,en.pi)({},n),e.prototype.findChildRefIds.call(this,t)):n},t.prototype.getStorage=function(){for(var e=this.parent;e.parent;)e=e.parent;return e.getStorage.apply(e,arguments)},t}(iT),iC=function(e){function t(t){return e.call(this,"EntityStore.Stump",t,function(){},new iM(t.group.caching,t.group))||this}return(0,en.ZT)(t,e),t.prototype.removeLayer=function(){return this},t.prototype.merge=function(){return this.parent.merge.apply(this.parent,arguments)},t}(iL);function iI(e,t,n){var r=e[n],i=t[n];return(0,nm.D)(r,i)?r:i}function iD(e){return!!(e instanceof iT&&e.group.caching)}function iN(e){return[e.selectionSet,e.objectOrReference,e.context,e.context.canonizeResults,]}var iP=function(){function e(e){var t=this;this.knownResults=new(t_.mr?WeakMap:Map),this.config=(0,n1.o)(e,{addTypename:!1!==e.addTypename,canonizeResults:ib(e)}),this.canon=e.canon||new nk,this.executeSelectionSet=rZ(function(e){var n,r=e.context.canonizeResults,i=iN(e);i[3]=!r;var a=(n=t.executeSelectionSet).peek.apply(n,i);return a?r?(0,en.pi)((0,en.pi)({},a),{result:t.canon.admit(a.result)}):a:(iA(e.context.store,e.enclosingRef.__ref),t.execSelectionSetImpl(e))},{max:this.config.resultCacheMaxSize,keyArgs:iN,makeCacheKey:function(e,t,n,r){if(iD(n.store))return n.store.makeCacheKey(e,eD(t)?t.__ref:t,n.varString,r)}}),this.executeSubSelectedArray=rZ(function(e){return iA(e.context.store,e.enclosingRef.__ref),t.execSubSelectedArrayImpl(e)},{max:this.config.resultCacheMaxSize,makeCacheKey:function(e){var t=e.field,n=e.array,r=e.context;if(iD(r.store))return r.store.makeCacheKey(t,n,r.varString)}})}return e.prototype.resetCanon=function(){this.canon=new nk},e.prototype.diffQueryAgainstStore=function(e){var t,n=e.store,r=e.query,i=e.rootId,a=void 0===i?"ROOT_QUERY":i,o=e.variables,s=e.returnPartialData,u=void 0===s||s,c=e.canonizeResults,l=void 0===c?this.config.canonizeResults:c,f=this.config.cache.policies;o=(0,en.pi)((0,en.pi)({},e9(e6(r))),o);var d=eI(a),h=this.executeSelectionSet({selectionSet:e8(r).selectionSet,objectOrReference:d,enclosingRef:d,context:(0,en.pi)({store:n,query:r,policies:f,variables:o,varString:nx(o),canonizeResults:l},iE(r,this.config.fragments))});if(h.missing&&(t=[new is(iR(h.missing),h.missing,r,o)],!u))throw t[0];return{result:h.result,complete:!t,missing:t}},e.prototype.isFresh=function(e,t,n,r){if(iD(r.store)&&this.knownResults.get(e)===n){var i=this.executeSelectionSet.peek(n,t,r,this.canon.isKnown(e));if(i&&e===i.result)return!0}return!1},e.prototype.execSelectionSetImpl=function(e){var t,n=this,r=e.selectionSet,i=e.objectOrReference,a=e.enclosingRef,o=e.context;if(eD(i)&&!o.policies.rootTypenamesById[i.__ref]&&!o.store.has(i.__ref))return{result:this.canon.empty,missing:"Dangling reference to missing ".concat(i.__ref," object")};var s=o.variables,u=o.policies,c=o.store.getFieldValue(i,"__typename"),l=[],f=new tB;function d(e,n){var r;return e.missing&&(t=f.merge(t,((r={})[n]=e.missing,r))),e.result}this.config.addTypename&&"string"==typeof c&&!u.rootIdsByTypename[c]&&l.push({__typename:c});var h=new Set(r.selections);h.forEach(function(e){var r,p;if(td(e,s)){if(eQ(e)){var b=u.readField({fieldName:e.name.value,field:e,variables:o.variables,from:i},o),m=eX(e);void 0===b?nj.added(e)||(t=f.merge(t,((r={})[m]="Can't find field '".concat(e.name.value,"' on ").concat(eD(i)?i.__ref+" object":"object "+JSON.stringify(i,null,2)),r))):(0,tP.k)(b)?b=d(n.executeSubSelectedArray({field:e,array:b,enclosingRef:a,context:o}),m):e.selectionSet?null!=b&&(b=d(n.executeSelectionSet({selectionSet:e.selectionSet,objectOrReference:b,enclosingRef:eD(b)?b:a,context:o}),m)):o.canonizeResults&&(b=n.canon.pass(b)),void 0!==b&&l.push(((p={})[m]=b,p))}else{var g=eC(e,o.lookupFragment);if(!g&&e.kind===nL.h.FRAGMENT_SPREAD)throw __DEV__?new Q.ej("No fragment named ".concat(e.name.value)):new Q.ej(5);g&&u.fragmentMatches(g,c)&&g.selectionSet.selections.forEach(h.add,h)}}});var p={result:tF(l),missing:t},b=o.canonizeResults?this.canon.admit(p):(0,iu.J)(p);return b.result&&this.knownResults.set(b.result,r),b},e.prototype.execSubSelectedArrayImpl=function(e){var t,n=this,r=e.field,i=e.array,a=e.enclosingRef,o=e.context,s=new tB;function u(e,n){var r;return e.missing&&(t=s.merge(t,((r={})[n]=e.missing,r))),e.result}return r.selectionSet&&(i=i.filter(o.store.canRead)),i=i.map(function(e,t){return null===e?null:(0,tP.k)(e)?u(n.executeSubSelectedArray({field:r,array:e,enclosingRef:a,context:o}),t):r.selectionSet?u(n.executeSelectionSet({selectionSet:r.selectionSet,objectOrReference:e,enclosingRef:eD(e)?e:a,context:o}),t):(__DEV__&&ij(o.store,r,e),e)}),{result:o.canonizeResults?this.canon.admit(i):i,missing:t}},e}();function iR(e){try{JSON.stringify(e,function(e,t){if("string"==typeof t)throw t;return t})}catch(t){return t}}function ij(e,t,n){if(!t.selectionSet){var r=new Set([n]);r.forEach(function(n){(0,eO.s)(n)&&(__DEV__?(0,Q.kG)(!eD(n),"Missing selection set for object of type ".concat(im(e,n)," returned for query field ").concat(t.name.value)):(0,Q.kG)(!eD(n),6),Object.values(n).forEach(r.add,r))})}}function iF(e){var t=nG("stringifyForDisplay");return JSON.stringify(e,function(e,n){return void 0===n?t:n}).split(JSON.stringify(t)).join("")}var iY=Object.create(null);function iB(e){var t=JSON.stringify(e);return iY[t]||(iY[t]=Object.create(null))}function iU(e){var t=iB(e);return t.keyFieldsFn||(t.keyFieldsFn=function(t,n){var r=function(e,t){return n.readField(t,e)},i=n.keyObject=i$(e,function(e){var i=iW(n.storeObject,e,r);return void 0===i&&t!==n.storeObject&&ic.call(t,e[0])&&(i=iW(t,e,iG)),__DEV__?(0,Q.kG)(void 0!==i,"Missing field '".concat(e.join("."),"' while extracting keyFields from ").concat(JSON.stringify(t))):(0,Q.kG)(void 0!==i,2),i});return"".concat(n.typename,":").concat(JSON.stringify(i))})}function iH(e){var t=iB(e);return t.keyArgsFn||(t.keyArgsFn=function(t,n){var r=n.field,i=n.variables,a=n.fieldName,o=JSON.stringify(i$(e,function(e){var n=e[0],a=n.charAt(0);if("@"===a){if(r&&(0,tP.O)(r.directives)){var o=n.slice(1),s=r.directives.find(function(e){return e.name.value===o}),u=s&&eZ(s,i);return u&&iW(u,e.slice(1))}return}if("$"===a){var c=n.slice(1);if(i&&ic.call(i,c)){var l=e.slice(0);return l[0]=c,iW(i,l)}return}if(t)return iW(t,e)}));return(t||"{}"!==o)&&(a+=":"+o),a})}function i$(e,t){var n=new tB;return iz(e).reduce(function(e,r){var i,a=t(r);if(void 0!==a){for(var o=r.length-1;o>=0;--o)a=((i={})[r[o]]=a,i);e=n.merge(e,a)}return e},Object.create(null))}function iz(e){var t=iB(e);if(!t.paths){var n=t.paths=[],r=[];e.forEach(function(t,i){(0,tP.k)(t)?(iz(t).forEach(function(e){return n.push(r.concat(e))}),r.length=0):(r.push(t),(0,tP.k)(e[i+1])||(n.push(r.slice(0)),r.length=0))})}return t.paths}function iG(e,t){return e[t]}function iW(e,t,n){return n=n||iG,iK(t.reduce(function e(t,r){return(0,tP.k)(t)?t.map(function(t){return e(t,r)}):t&&n(t,r)},e))}function iK(e){return(0,eO.s)(e)?(0,tP.k)(e)?e.map(iK):i$(Object.keys(e).sort(),function(t){return iW(e,t)}):e}function iV(e){return void 0!==e.args?e.args:e.field?eZ(e.field,e.variables):null}eK.setStringify(nx);var iq=function(){},iZ=function(e,t){return t.fieldName},iX=function(e,t,n){return(0,n.mergeObjects)(e,t)},iJ=function(e,t){return t},iQ=function(){function e(e){this.config=e,this.typePolicies=Object.create(null),this.toBeAdded=Object.create(null),this.supertypeMap=new Map,this.fuzzySubtypes=new Map,this.rootIdsByTypename=Object.create(null),this.rootTypenamesById=Object.create(null),this.usingPossibleTypes=!1,this.config=(0,en.pi)({dataIdFromObject:id},e),this.cache=this.config.cache,this.setRootTypename("Query"),this.setRootTypename("Mutation"),this.setRootTypename("Subscription"),e.possibleTypes&&this.addPossibleTypes(e.possibleTypes),e.typePolicies&&this.addTypePolicies(e.typePolicies)}return e.prototype.identify=function(e,t){var n,r,i=this,a=t&&(t.typename||(null===(n=t.storeObject)||void 0===n?void 0:n.__typename))||e.__typename;if(a===this.rootTypenamesById.ROOT_QUERY)return["ROOT_QUERY"];for(var o=t&&t.storeObject||e,s=(0,en.pi)((0,en.pi)({},t),{typename:a,storeObject:o,readField:t&&t.readField||function(){var e=i0(arguments,o);return i.readField(e,{store:i.cache.data,variables:e.variables})}}),u=a&&this.getTypePolicy(a),c=u&&u.keyFn||this.config.dataIdFromObject;c;){var l=c((0,en.pi)((0,en.pi)({},e),o),s);if((0,tP.k)(l))c=iU(l);else{r=l;break}}return r=r?String(r):void 0,s.keyObject?[r,s.keyObject]:[r]},e.prototype.addTypePolicies=function(e){var t=this;Object.keys(e).forEach(function(n){var r=e[n],i=r.queryType,a=r.mutationType,o=r.subscriptionType,s=(0,en._T)(r,["queryType","mutationType","subscriptionType"]);i&&t.setRootTypename("Query",n),a&&t.setRootTypename("Mutation",n),o&&t.setRootTypename("Subscription",n),ic.call(t.toBeAdded,n)?t.toBeAdded[n].push(s):t.toBeAdded[n]=[s]})},e.prototype.updateTypePolicy=function(e,t){var n=this,r=this.getTypePolicy(e),i=t.keyFields,a=t.fields;function o(e,t){e.merge="function"==typeof t?t:!0===t?iX:!1===t?iJ:e.merge}o(r,t.merge),r.keyFn=!1===i?iq:(0,tP.k)(i)?iU(i):"function"==typeof i?i:r.keyFn,a&&Object.keys(a).forEach(function(t){var r=n.getFieldPolicy(e,t,!0),i=a[t];if("function"==typeof i)r.read=i;else{var s=i.keyArgs,u=i.read,c=i.merge;r.keyFn=!1===s?iZ:(0,tP.k)(s)?iH(s):"function"==typeof s?s:r.keyFn,"function"==typeof u&&(r.read=u),o(r,c)}r.read&&r.merge&&(r.keyFn=r.keyFn||iZ)})},e.prototype.setRootTypename=function(e,t){void 0===t&&(t=e);var n="ROOT_"+e.toUpperCase(),r=this.rootTypenamesById[n];t!==r&&(__DEV__?(0,Q.kG)(!r||r===e,"Cannot change root ".concat(e," __typename more than once")):(0,Q.kG)(!r||r===e,3),r&&delete this.rootIdsByTypename[r],this.rootIdsByTypename[t]=n,this.rootTypenamesById[n]=t)},e.prototype.addPossibleTypes=function(e){var t=this;this.usingPossibleTypes=!0,Object.keys(e).forEach(function(n){t.getSupertypeSet(n,!0),e[n].forEach(function(e){t.getSupertypeSet(e,!0).add(n);var r=e.match(ig);r&&r[0]===e||t.fuzzySubtypes.set(e,RegExp(e))})})},e.prototype.getTypePolicy=function(e){var t=this;if(!ic.call(this.typePolicies,e)){var n=this.typePolicies[e]=Object.create(null);n.fields=Object.create(null);var r=this.supertypeMap.get(e);r&&r.size&&r.forEach(function(e){var r=t.getTypePolicy(e),i=r.fields;Object.assign(n,(0,en._T)(r,["fields"])),Object.assign(n.fields,i)})}var i=this.toBeAdded[e];return i&&i.length&&i.splice(0).forEach(function(n){t.updateTypePolicy(e,n)}),this.typePolicies[e]},e.prototype.getFieldPolicy=function(e,t,n){if(e){var r=this.getTypePolicy(e).fields;return r[t]||n&&(r[t]=Object.create(null))}},e.prototype.getSupertypeSet=function(e,t){var n=this.supertypeMap.get(e);return!n&&t&&this.supertypeMap.set(e,n=new Set),n},e.prototype.fragmentMatches=function(e,t,n,r){var i=this;if(!e.typeCondition)return!0;if(!t)return!1;var a=e.typeCondition.name.value;if(t===a)return!0;if(this.usingPossibleTypes&&this.supertypeMap.has(a))for(var o=this.getSupertypeSet(t,!0),s=[o],u=function(e){var t=i.getSupertypeSet(e,!1);t&&t.size&&0>s.indexOf(t)&&s.push(t)},c=!!(n&&this.fuzzySubtypes.size),l=!1,f=0;f1?a:t}:(r=(0,en.pi)({},i),ic.call(r,"from")||(r.from=t)),__DEV__&&void 0===r.from&&__DEV__&&Q.kG.warn("Undefined 'from' passed to readField with arguments ".concat(iF(Array.from(e)))),void 0===r.variables&&(r.variables=n),r}function i2(e){return function(t,n){if((0,tP.k)(t)||(0,tP.k)(n))throw __DEV__?new Q.ej("Cannot automatically merge arrays"):new Q.ej(4);if((0,eO.s)(t)&&(0,eO.s)(n)){var r=e.getFieldValue(t,"__typename"),i=e.getFieldValue(n,"__typename");if(r&&i&&r!==i)return n;if(eD(t)&&iw(n))return e.merge(t.__ref,n),t;if(iw(t)&&eD(n))return e.merge(t,n.__ref),n;if(iw(t)&&iw(n))return(0,en.pi)((0,en.pi)({},t),n)}return n}}function i3(e,t,n){var r="".concat(t).concat(n),i=e.flavors.get(r);return i||e.flavors.set(r,i=e.clientOnly===t&&e.deferred===n?e:(0,en.pi)((0,en.pi)({},e),{clientOnly:t,deferred:n})),i}var i4=function(){function e(e,t,n){this.cache=e,this.reader=t,this.fragments=n}return e.prototype.writeToStore=function(e,t){var n=this,r=t.query,i=t.result,a=t.dataId,o=t.variables,s=t.overwrite,u=e2(r),c=i_();o=(0,en.pi)((0,en.pi)({},e9(u)),o);var l=(0,en.pi)((0,en.pi)({store:e,written:Object.create(null),merge:function(e,t){return c.merge(e,t)},variables:o,varString:nx(o)},iE(r,this.fragments)),{overwrite:!!s,incomingById:new Map,clientOnly:!1,deferred:!1,flavors:new Map}),f=this.processSelectionSet({result:i||Object.create(null),dataId:a,selectionSet:u.selectionSet,mergeTree:{map:new Map},context:l});if(!eD(f))throw __DEV__?new Q.ej("Could not identify object ".concat(JSON.stringify(i))):new Q.ej(7);return l.incomingById.forEach(function(t,r){var i=t.storeObject,a=t.mergeTree,o=t.fieldNodeSet,s=eI(r);if(a&&a.map.size){var u=n.applyMerges(a,s,i,l);if(eD(u))return;i=u}if(__DEV__&&!l.overwrite){var c=Object.create(null);o.forEach(function(e){e.selectionSet&&(c[e.name.value]=!0)});var f=function(e){return!0===c[iv(e)]},d=function(e){var t=a&&a.map.get(e);return Boolean(t&&t.info&&t.info.merge)};Object.keys(i).forEach(function(e){f(e)&&!d(e)&&at(s,i,e,l.store)})}e.merge(r,i)}),e.retain(f.__ref),f},e.prototype.processSelectionSet=function(e){var t=this,n=e.dataId,r=e.result,i=e.selectionSet,a=e.context,o=e.mergeTree,s=this.cache.policies,u=Object.create(null),c=n&&s.rootTypenamesById[n]||eJ(r,i,a.fragmentMap)||n&&a.store.get(n,"__typename");"string"==typeof c&&(u.__typename=c);var l=function(){var e=i0(arguments,u,a.variables);if(eD(e.from)){var t=a.incomingById.get(e.from.__ref);if(t){var n=s.readField((0,en.pi)((0,en.pi)({},e),{from:t.storeObject}),a);if(void 0!==n)return n}}return s.readField(e,a)},f=new Set;this.flattenFields(i,r,a,c).forEach(function(e,n){var i,a=r[eX(n)];if(f.add(n),void 0!==a){var d=s.getStoreFieldName({typename:c,fieldName:n.name.value,field:n,variables:e.variables}),h=i5(o,d),p=t.processFieldValue(a,n,n.selectionSet?i3(e,!1,!1):e,h),b=void 0;n.selectionSet&&(eD(p)||iw(p))&&(b=l("__typename",p));var m=s.getMergeFunction(c,n.name.value,b);m?h.info={field:n,typename:c,merge:m}:i7(o,d),u=e.merge(u,((i={})[d]=p,i))}else __DEV__&&!e.clientOnly&&!e.deferred&&!nj.added(n)&&!s.getReadFunction(c,n.name.value)&&__DEV__&&Q.kG.error("Missing field '".concat(eX(n),"' while writing result ").concat(JSON.stringify(r,null,2)).substring(0,1e3))});try{var d=s.identify(r,{typename:c,selectionSet:i,fragmentMap:a.fragmentMap,storeObject:u,readField:l}),h=d[0],p=d[1];n=n||h,p&&(u=a.merge(u,p))}catch(b){if(!n)throw b}if("string"==typeof n){var m=eI(n),g=a.written[n]||(a.written[n]=[]);if(g.indexOf(i)>=0||(g.push(i),this.reader&&this.reader.isFresh(r,m,i,a)))return m;var v=a.incomingById.get(n);return v?(v.storeObject=a.merge(v.storeObject,u),v.mergeTree=i8(v.mergeTree,o),f.forEach(function(e){return v.fieldNodeSet.add(e)})):a.incomingById.set(n,{storeObject:u,mergeTree:i9(o)?void 0:o,fieldNodeSet:f}),m}return u},e.prototype.processFieldValue=function(e,t,n,r){var i=this;return t.selectionSet&&null!==e?(0,tP.k)(e)?e.map(function(e,a){var o=i.processFieldValue(e,t,n,i5(r,a));return i7(r,a),o}):this.processSelectionSet({result:e,selectionSet:t.selectionSet,context:n,mergeTree:r}):__DEV__?nJ(e):e},e.prototype.flattenFields=function(e,t,n,r){void 0===r&&(r=eJ(t,e,n.fragmentMap));var i=new Map,a=this.cache.policies,o=new n_(!1);return function e(s,u){var c=o.lookup(s,u.clientOnly,u.deferred);c.visited||(c.visited=!0,s.selections.forEach(function(o){if(td(o,n.variables)){var s=u.clientOnly,c=u.deferred;if(!(s&&c)&&(0,tP.O)(o.directives)&&o.directives.forEach(function(e){var t=e.name.value;if("client"===t&&(s=!0),"defer"===t){var r=eZ(e,n.variables);r&&!1===r.if||(c=!0)}}),eQ(o)){var l=i.get(o);l&&(s=s&&l.clientOnly,c=c&&l.deferred),i.set(o,i3(n,s,c))}else{var f=eC(o,n.lookupFragment);if(!f&&o.kind===nL.h.FRAGMENT_SPREAD)throw __DEV__?new Q.ej("No fragment named ".concat(o.name.value)):new Q.ej(8);f&&a.fragmentMatches(f,r,t,n.variables)&&e(f.selectionSet,i3(n,s,c))}}}))}(e,n),i},e.prototype.applyMerges=function(e,t,n,r,i){var a=this;if(e.map.size&&!eD(n)){var o,s,u=!(0,tP.k)(n)&&(eD(t)||iw(t))?t:void 0,c=n;u&&!i&&(i=[eD(u)?u.__ref:u]);var l=function(e,t){return(0,tP.k)(e)?"number"==typeof t?e[t]:void 0:r.store.getFieldValue(e,String(t))};e.map.forEach(function(e,t){var n=l(u,t),o=l(c,t);if(void 0!==o){i&&i.push(t);var f=a.applyMerges(e,n,o,r,i);f!==o&&(s=s||new Map).set(t,f),i&&(0,Q.kG)(i.pop()===t)}}),s&&(n=(0,tP.k)(c)?c.slice(0):(0,en.pi)({},c),s.forEach(function(e,t){n[t]=e}))}return e.info?this.cache.policies.runMergeFunction(t,n,e.info,r,i&&(o=r.store).getStorage.apply(o,i)):n},e}(),i6=[];function i5(e,t){var n=e.map;return n.has(t)||n.set(t,i6.pop()||{map:new Map}),n.get(t)}function i8(e,t){if(e===t||!t||i9(t))return e;if(!e||i9(e))return t;var n=e.info&&t.info?(0,en.pi)((0,en.pi)({},e.info),t.info):e.info||t.info,r=e.map.size&&t.map.size,i=r?new Map:e.map.size?e.map:t.map,a={info:n,map:i};if(r){var o=new Set(t.map.keys());e.map.forEach(function(e,n){a.map.set(n,i8(e,t.map.get(n))),o.delete(n)}),o.forEach(function(n){a.map.set(n,i8(t.map.get(n),e.map.get(n)))})}return a}function i9(e){return!e||!(e.info||e.map.size)}function i7(e,t){var n=e.map,r=n.get(t);r&&i9(r)&&(i6.push(r),n.delete(t))}var ae=new Set;function at(e,t,n,r){var i=function(e){var t=r.getFieldValue(e,n);return"object"==typeof t&&t},a=i(e);if(a){var o=i(t);if(!(!o||eD(a)||(0,nm.D)(a,o)||Object.keys(a).every(function(e){return void 0!==r.getFieldValue(o,e)}))){var s=r.getFieldValue(e,"__typename")||r.getFieldValue(t,"__typename"),u=iv(n),c="".concat(s,".").concat(u);if(!ae.has(c)){ae.add(c);var l=[];(0,tP.k)(a)||(0,tP.k)(o)||[a,o].forEach(function(e){var t=r.getFieldValue(e,"__typename");"string"!=typeof t||l.includes(t)||l.push(t)}),__DEV__&&Q.kG.warn("Cache data may be lost when replacing the ".concat(u," field of a ").concat(s," object.\n\nThis could cause additional (usually avoidable) network requests to fetch data that were otherwise cached.\n\nTo address this problem (which is not a bug in Apollo Client), ").concat(l.length?"either ensure all objects of type "+l.join(" and ")+" have an ID or a custom merge function, or ":"","define a custom merge function for the ").concat(c," field, so InMemoryCache can safely merge these objects:\n\n existing: ").concat(JSON.stringify(a).slice(0,1e3),"\n incoming: ").concat(JSON.stringify(o).slice(0,1e3),"\n\nFor more information about these options, please refer to the documentation:\n\n * Ensuring entity objects have IDs: https://go.apollo.dev/c/generating-unique-identifiers\n * Defining custom merge functions: https://go.apollo.dev/c/merging-non-normalized-objects\n"))}}}}var an=function(e){function t(t){void 0===t&&(t={});var n=e.call(this)||this;return n.watches=new Set,n.typenameDocumentCache=new Map,n.makeVar=r2,n.txCount=0,n.config=ip(t),n.addTypename=!!n.config.addTypename,n.policies=new iQ({cache:n,dataIdFromObject:n.config.dataIdFromObject,possibleTypes:n.config.possibleTypes,typePolicies:n.config.typePolicies}),n.init(),n}return(0,en.ZT)(t,e),t.prototype.init=function(){var e=this.data=new iT.Root({policies:this.policies,resultCaching:this.config.resultCaching});this.optimisticData=e.stump,this.resetResultCache()},t.prototype.resetResultCache=function(e){var t=this,n=this.storeReader,r=this.config.fragments;this.storeWriter=new i4(this,this.storeReader=new iP({cache:this,addTypename:this.addTypename,resultCacheMaxSize:this.config.resultCacheMaxSize,canonizeResults:ib(this.config),canon:e?void 0:n&&n.canon,fragments:r}),r),this.maybeBroadcastWatch=rZ(function(e,n){return t.broadcastWatch(e,n)},{max:this.config.resultCacheMaxSize,makeCacheKey:function(e){var n=e.optimistic?t.optimisticData:t.data;if(iD(n)){var r=e.optimistic,i=e.id,a=e.variables;return n.makeCacheKey(e.query,e.callback,nx({optimistic:r,id:i,variables:a}))}}}),new Set([this.data.group,this.optimisticData.group,]).forEach(function(e){return e.resetCaching()})},t.prototype.restore=function(e){return this.init(),e&&this.data.replace(e),this},t.prototype.extract=function(e){return void 0===e&&(e=!1),(e?this.optimisticData:this.data).extract()},t.prototype.read=function(e){var t=e.returnPartialData,n=void 0!==t&&t;try{return this.storeReader.diffQueryAgainstStore((0,en.pi)((0,en.pi)({},e),{store:e.optimistic?this.optimisticData:this.data,config:this.config,returnPartialData:n})).result||null}catch(r){if(r instanceof is)return null;throw r}},t.prototype.write=function(e){try{return++this.txCount,this.storeWriter.writeToStore(this.data,e)}finally{--this.txCount||!1===e.broadcast||this.broadcastWatches()}},t.prototype.modify=function(e){if(ic.call(e,"id")&&!e.id)return!1;var t=e.optimistic?this.optimisticData:this.data;try{return++this.txCount,t.modify(e.id||"ROOT_QUERY",e.fields)}finally{--this.txCount||!1===e.broadcast||this.broadcastWatches()}},t.prototype.diff=function(e){return this.storeReader.diffQueryAgainstStore((0,en.pi)((0,en.pi)({},e),{store:e.optimistic?this.optimisticData:this.data,rootId:e.id||"ROOT_QUERY",config:this.config}))},t.prototype.watch=function(e){var t=this;return this.watches.size||r0(this),this.watches.add(e),e.immediate&&this.maybeBroadcastWatch(e),function(){t.watches.delete(e)&&!t.watches.size&&r1(t),t.maybeBroadcastWatch.forget(e)}},t.prototype.gc=function(e){nx.reset();var t=this.optimisticData.gc();return e&&!this.txCount&&(e.resetResultCache?this.resetResultCache(e.resetResultIdentities):e.resetResultIdentities&&this.storeReader.resetCanon()),t},t.prototype.retain=function(e,t){return(t?this.optimisticData:this.data).retain(e)},t.prototype.release=function(e,t){return(t?this.optimisticData:this.data).release(e)},t.prototype.identify=function(e){if(eD(e))return e.__ref;try{return this.policies.identify(e)[0]}catch(t){__DEV__&&Q.kG.warn(t)}},t.prototype.evict=function(e){if(!e.id){if(ic.call(e,"id"))return!1;e=(0,en.pi)((0,en.pi)({},e),{id:"ROOT_QUERY"})}try{return++this.txCount,this.optimisticData.evict(e,this.data)}finally{--this.txCount||!1===e.broadcast||this.broadcastWatches()}},t.prototype.reset=function(e){var t=this;return this.init(),nx.reset(),e&&e.discardWatches?(this.watches.forEach(function(e){return t.maybeBroadcastWatch.forget(e)}),this.watches.clear(),r1(this)):this.broadcastWatches(),Promise.resolve()},t.prototype.removeOptimistic=function(e){var t=this.optimisticData.removeLayer(e);t!==this.optimisticData&&(this.optimisticData=t,this.broadcastWatches())},t.prototype.batch=function(e){var t,n=this,r=e.update,i=e.optimistic,a=void 0===i||i,o=e.removeOptimistic,s=e.onWatchUpdated,u=function(e){var i=n,a=i.data,o=i.optimisticData;++n.txCount,e&&(n.data=n.optimisticData=e);try{return t=r(n)}finally{--n.txCount,n.data=a,n.optimisticData=o}},c=new Set;return s&&!this.txCount&&this.broadcastWatches((0,en.pi)((0,en.pi)({},e),{onWatchUpdated:function(e){return c.add(e),!1}})),"string"==typeof a?this.optimisticData=this.optimisticData.addLayer(a,u):!1===a?u(this.data):u(),"string"==typeof o&&(this.optimisticData=this.optimisticData.removeLayer(o)),s&&c.size?(this.broadcastWatches((0,en.pi)((0,en.pi)({},e),{onWatchUpdated:function(e,t){var n=s.call(this,e,t);return!1!==n&&c.delete(e),n}})),c.size&&c.forEach(function(e){return n.maybeBroadcastWatch.dirty(e)})):this.broadcastWatches(e),t},t.prototype.performTransaction=function(e,t){return this.batch({update:e,optimistic:t||null!==t})},t.prototype.transformDocument=function(e){if(this.addTypename){var t=this.typenameDocumentCache.get(e);return t||(t=nj(e),this.typenameDocumentCache.set(e,t),this.typenameDocumentCache.set(t,t)),t}return e},t.prototype.transformForLink=function(e){var t=this.config.fragments;return t?t.transform(e):e},t.prototype.broadcastWatches=function(e){var t=this;this.txCount||this.watches.forEach(function(n){return t.maybeBroadcastWatch(n,e)})},t.prototype.broadcastWatch=function(e,t){var n=e.lastDiff,r=this.diff(e);(!t||(e.optimistic&&"string"==typeof t.optimistic&&(r.fromOptimisticTransaction=!0),!t.onWatchUpdated||!1!==t.onWatchUpdated.call(this,e,r,n)))&&(n&&(0,nm.D)(n.result,r.result)||e.callback(e.lastDiff=r,n))},t}(io),ar={possibleTypes:{ApproveJobProposalSpecPayload:["ApproveJobProposalSpecSuccess","JobAlreadyExistsError","NotFoundError"],BridgePayload:["Bridge","NotFoundError"],CancelJobProposalSpecPayload:["CancelJobProposalSpecSuccess","NotFoundError"],ChainPayload:["Chain","NotFoundError"],CreateAPITokenPayload:["CreateAPITokenSuccess","InputErrors"],CreateBridgePayload:["CreateBridgeSuccess"],CreateCSAKeyPayload:["CSAKeyExistsError","CreateCSAKeySuccess"],CreateFeedsManagerChainConfigPayload:["CreateFeedsManagerChainConfigSuccess","InputErrors","NotFoundError"],CreateFeedsManagerPayload:["CreateFeedsManagerSuccess","DuplicateFeedsManagerError","InputErrors","NotFoundError","SingleFeedsManagerError"],CreateJobPayload:["CreateJobSuccess","InputErrors"],CreateOCR2KeyBundlePayload:["CreateOCR2KeyBundleSuccess"],CreateOCRKeyBundlePayload:["CreateOCRKeyBundleSuccess"],CreateP2PKeyPayload:["CreateP2PKeySuccess"],DeleteAPITokenPayload:["DeleteAPITokenSuccess","InputErrors"],DeleteBridgePayload:["DeleteBridgeConflictError","DeleteBridgeInvalidNameError","DeleteBridgeSuccess","NotFoundError"],DeleteCSAKeyPayload:["DeleteCSAKeySuccess","NotFoundError"],DeleteFeedsManagerChainConfigPayload:["DeleteFeedsManagerChainConfigSuccess","NotFoundError"],DeleteJobPayload:["DeleteJobSuccess","NotFoundError"],DeleteOCR2KeyBundlePayload:["DeleteOCR2KeyBundleSuccess","NotFoundError"],DeleteOCRKeyBundlePayload:["DeleteOCRKeyBundleSuccess","NotFoundError"],DeleteP2PKeyPayload:["DeleteP2PKeySuccess","NotFoundError"],DeleteVRFKeyPayload:["DeleteVRFKeySuccess","NotFoundError"],DisableFeedsManagerPayload:["DisableFeedsManagerSuccess","NotFoundError"],DismissJobErrorPayload:["DismissJobErrorSuccess","NotFoundError"],EnableFeedsManagerPayload:["EnableFeedsManagerSuccess","NotFoundError"],Error:["CSAKeyExistsError","DeleteBridgeConflictError","DeleteBridgeInvalidNameError","DuplicateFeedsManagerError","InputError","JobAlreadyExistsError","NotFoundError","RunJobCannotRunError","SingleFeedsManagerError"],EthTransactionPayload:["EthTransaction","NotFoundError"],FeaturesPayload:["Features"],FeedsManagerPayload:["FeedsManager","NotFoundError"],GetSQLLoggingPayload:["SQLLogging"],GlobalLogLevelPayload:["GlobalLogLevel"],JobPayload:["Job","NotFoundError"],JobProposalPayload:["JobProposal","NotFoundError"],JobRunPayload:["JobRun","NotFoundError"],JobSpec:["BlockHeaderFeederSpec","BlockhashStoreSpec","BootstrapSpec","CronSpec","DirectRequestSpec","FluxMonitorSpec","GatewaySpec","KeeperSpec","OCR2Spec","OCRSpec","StandardCapabilitiesSpec","StreamSpec","VRFSpec","WebhookSpec","WorkflowSpec"],NodePayload:["Node","NotFoundError"],PaginatedPayload:["BridgesPayload","ChainsPayload","EthTransactionAttemptsPayload","EthTransactionsPayload","JobRunsPayload","JobsPayload","NodesPayload"],RejectJobProposalSpecPayload:["NotFoundError","RejectJobProposalSpecSuccess"],RunJobPayload:["NotFoundError","RunJobCannotRunError","RunJobSuccess"],SetGlobalLogLevelPayload:["InputErrors","SetGlobalLogLevelSuccess"],SetSQLLoggingPayload:["SetSQLLoggingSuccess"],SetServicesLogLevelsPayload:["InputErrors","SetServicesLogLevelsSuccess"],UpdateBridgePayload:["NotFoundError","UpdateBridgeSuccess"],UpdateFeedsManagerChainConfigPayload:["InputErrors","NotFoundError","UpdateFeedsManagerChainConfigSuccess"],UpdateFeedsManagerPayload:["InputErrors","NotFoundError","UpdateFeedsManagerSuccess"],UpdateJobProposalSpecDefinitionPayload:["NotFoundError","UpdateJobProposalSpecDefinitionSuccess"],UpdatePasswordPayload:["InputErrors","UpdatePasswordSuccess"],VRFKeyPayload:["NotFoundError","VRFKeySuccess"]}};let ai=ar;var aa=(r=void 0,location.origin),ao=new nh({uri:"".concat(aa,"/query"),credentials:"include"}),as=new ia({cache:new an({possibleTypes:ai.possibleTypes}),link:ao});if(a.Z.locale(o),u().defaultFormat="YYYY-MM-DD h:mm:ss A","undefined"!=typeof document){var au,ac,al=f().hydrate;ac=X,al(c.createElement(et,{client:as},c.createElement(d.zj,null,c.createElement(i.MuiThemeProvider,{theme:J.r},c.createElement(ac,null)))),document.getElementById("root"))}})()})(); \ No newline at end of file diff --git a/core/web/assets/main.1d1632f9bf7627b5ea5e.js.gz b/core/web/assets/main.57f94389bc8271642420.js.gz similarity index 84% rename from core/web/assets/main.1d1632f9bf7627b5ea5e.js.gz rename to core/web/assets/main.57f94389bc8271642420.js.gz index d99776f49e5baae6f29fa304a355fbd345863e93..82b42bc1d0a6aee0172faacc2bade75737e4d354 100644 GIT binary patch delta 184344 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≻u^jF>DJ!IVU9AvV-pgr)y#8D| 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ÏgR? zy`z*UAkzpbs}*}FjktU>lVGa_-?a2xtZdsxoBjle8Y{7LV}-dAD76lKP$c30qpCZ!^obQq~FR ztqd*AeJeoGq_KKxMH10F<7GY>=ao<(GY!QXZXa*T*$l3jP34llMmnsx9(LK+>eIMU zY&ma~dRw7epHL|J!+;jZnK8A0J04mvGCzxz%)2rXo;hIweVGVDIelPudU6z=7JXNI z3Q!Iq1#X?3fk#Kycpr0ch0DRAj~a9tLF95mF&>@;0Re2jPEvbQxIac_Wr8<`TBYD+ ze=8Bz?#0a);6Yn33!BFj6-TB8a%M}P+ZHzIIov%e@lzo#fP?cck%TsXZv5W7X_03l z7G9IEiXW7d#yN|#vtZ}QK60zJ@n$U+$q_&&9?xjbwTzPWg#48d_qOenX-+F+Zd#~9 z0q-?g>gYs>4s!Wz0+6qJLV)WyouC;YEL<5I6UtP#w(A1S4Bd2HY%fCBd0p7{ZbD+F z)zc1PfS{2WVlu8&Lr#}}Qa3w<-_>GC+9v)?26+s2;Vp-PcO|E{91jEMe(vAM)nNgI zDMmUcIqY?LeKLSj&7mI@Y5v#=J9g%0=E$E5B24!HEM6X?^+I~Awz<`v%nHJr*~dei!1u-3UG|hW{P#L1~f(ew0n50Q94?Gb9r2?>e3?REo+|Z z0v$ENdzD(jtwOkdQ|zR@*z_faYq6zhTx*;(7|pu$+aAw(yI8!0o@Lv;(w7Dh3NT6F zO3w#n%C`KMWzyf^+R&kPToJS!aiO{lC+2e8V4-bJj*TqysOomT$4rK}mQV$O^Dho; z_yAZ|n_Nv+N(&@^>N0v=SxDjOQKs++Jv>Y%WkwZ@%@hSGjbgz5n*i>B(@j3wn!5;Q za`dER2L!!jn$2`2WRlI$&&=cosD`_FYA_-URKrjy0fM}Bb{9&Wa=4jLPE$QWulgiM3_43*}wGH>i4;(q**j6|e-5*Fn||s+Ap|pco3PG@v*z67+91 zo;7K+RdqSNZPabswy!`0k(Zp2RL)Gep`XipsuZHv^?k6MvMVtF!u;2ItQ7Kp<*|5B#YLOu@2HsyB-GJd2L-! z9W_wB^C=97%RH}E?v<3T!KQK7ofpq;_uU11j9UO3>aSlNzJ7JMf2wmiR6hyT^L@c4 zz2oP9d$0H2o}T>tX5aG(^>ZD4^QZmiCwJv~b$GJ>_T}F5{kt;0I|SdoJ2LGbzB{

vCe7Qz%y9M?zfW0O`oxG|Qss#o6evtv9 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 delta 184223 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 x Date: Mon, 18 Nov 2024 17:34:09 +0100 Subject: [PATCH 09/13] CCIP-3591 USDC Integration Tests (#15279) * Stub * Adding missing deployments parts * Adding missing deployments parts * Failing but trying to process, missing attestation * Bump * Green run * Refactor * Minor refactor * Minor refactor * Minor refactor * Minor refactor * Final refactor * Post merge fixes * Post review fixes * Post review fixes * Post review fixes * Post review fixes * Post review fixes * Post review fixes * Post review fixes * Post review fixes * Post review fixes * Post review fixes * Post review fixes --- .changeset/seven-schools-invent.md | 5 + .github/e2e-tests.yml | 14 + core/scripts/go.mod | 142 +++++- core/scripts/go.sum | 461 +++++++++++++++++- deployment/ccip/changeset/active_candidate.go | 1 + .../ccip/changeset/active_candidate_test.go | 1 + deployment/ccip/changeset/add_chain.go | 1 + deployment/ccip/consts.go | 1 + deployment/ccip/deploy.go | 67 ++- deployment/ccip/deploy_home_chain.go | 7 +- deployment/ccip/state.go | 36 +- deployment/ccip/test_helpers.go | 74 ++- deployment/ccip/test_usdc_helpers.go | 233 +++++++++ deployment/environment.go | 2 + deployment/go.mod | 2 +- deployment/go.sum | 4 +- go.mod | 2 +- go.sum | 4 +- .../ccip-tests/testsetups/test_helpers.go | 2 + integration-tests/go.mod | 2 +- integration-tests/go.sum | 4 +- integration-tests/load/go.mod | 2 +- integration-tests/load/go.sum | 4 +- integration-tests/smoke/ccip_usdc_test.go | 283 +++++++++++ 24 files changed, 1305 insertions(+), 49 deletions(-) create mode 100644 .changeset/seven-schools-invent.md create mode 100644 deployment/ccip/test_usdc_helpers.go create mode 100644 integration-tests/smoke/ccip_usdc_test.go diff --git a/.changeset/seven-schools-invent.md b/.changeset/seven-schools-invent.md new file mode 100644 index 00000000000..81b6ce44b99 --- /dev/null +++ b/.changeset/seven-schools-invent.md @@ -0,0 +1,5 @@ +--- +"chainlink": patch +--- + +Integration tests for USDC token transfer #internal diff --git a/.github/e2e-tests.yml b/.github/e2e-tests.yml index 5c4f7e6c82e..912d7f01f89 100644 --- a/.github/e2e-tests.yml +++ b/.github/e2e-tests.yml @@ -963,6 +963,20 @@ runner-test-matrix: E2E_TEST_SELECTED_NETWORK: SIMULATED_1,SIMULATED_2 E2E_JD_VERSION: 0.4.0 + - id: smoke/ccip_usdc_test.go:* + path: integration-tests/smoke/ccip_usdc_test.go + test_env_type: docker + runs_on: ubuntu-latest + triggers: + - PR E2E Core Tests + - Merge Queue E2E Core Tests + - Nightly E2E Tests + test_cmd: cd integration-tests/ && go test smoke/ccip_usdc_test.go -timeout 12m -test.parallel=1 -count=1 -json + pyroscope_env: ci-smoke-ccipv1_6-evm-simulated + test_env_vars: + E2E_TEST_SELECTED_NETWORK: SIMULATED_1,SIMULATED_2 + E2E_JD_VERSION: 0.4.0 + - id: smoke/fee_boosting_test.go:* path: integration-tests/smoke/fee_boosting_test.go test_env_type: docker diff --git a/core/scripts/go.mod b/core/scripts/go.mod index 12e12a1156e..60c811f82bc 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -47,41 +47,77 @@ require ( cosmossdk.io/depinject v1.0.0-alpha.4 // indirect cosmossdk.io/errors v1.0.1 // indirect cosmossdk.io/math v1.3.0 // indirect + dario.cat/mergo v1.0.1 // indirect filippo.io/edwards25519 v1.1.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.1 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azcore v1.13.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 // indirect + github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358 // indirect + github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect github.com/ChainSafe/go-schnorrkel v1.0.0 // indirect github.com/CosmWasm/wasmd v0.40.1 // indirect github.com/CosmWasm/wasmvm v1.2.4 // indirect github.com/DataDog/zstd v1.5.2 // indirect github.com/Depado/ginprom v1.8.0 // indirect + github.com/MakeNowJust/heredoc v1.0.0 // indirect + github.com/Masterminds/goutils v1.1.1 // indirect github.com/Masterminds/semver/v3 v3.3.0 // indirect + github.com/Masterminds/sprig/v3 v3.2.3 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/NethermindEth/juno v0.3.1 // indirect github.com/NethermindEth/starknet.go v0.7.1-0.20240401080518-34a506f3cfdb // indirect github.com/VictoriaMetrics/fastcache v1.12.2 // indirect github.com/XSAM/otelsql v0.27.0 // indirect + github.com/alecthomas/units v0.0.0-20240626203959-61d1e3462e30 // indirect github.com/andybalholm/brotli v1.1.0 // indirect github.com/armon/go-metrics v0.4.1 // indirect + github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect github.com/atombender/go-jsonschema v0.16.1-0.20240916205339-a74cd4e2851c // indirect + github.com/avast/retry-go v3.0.0+incompatible // indirect github.com/avast/retry-go/v4 v4.6.0 // indirect + github.com/awalterschulze/gographviz v2.0.3+incompatible // indirect github.com/aws/aws-sdk-go v1.54.19 // indirect + github.com/aws/aws-sdk-go-v2 v1.32.2 // indirect + github.com/aws/aws-sdk-go-v2/config v1.28.0 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.41 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.17 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.21 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.21 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.2 // indirect + github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.2 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.24.2 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.2 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.32.2 // indirect + github.com/aws/constructs-go/constructs/v10 v10.4.2 // indirect + github.com/aws/jsii-runtime-go v1.104.0 // indirect + github.com/aws/smithy-go v1.22.0 // indirect github.com/bahlo/generic-list-go v0.2.0 // indirect + github.com/bboreham/go-loser v0.0.0-20230920113527-fcc2c21820a3 // indirect github.com/benbjohnson/clock v1.3.5 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 // indirect github.com/bits-and-blooms/bitset v1.13.0 // indirect + github.com/blang/semver/v4 v4.0.0 // indirect github.com/blendle/zapdriver v1.3.1 // indirect github.com/btcsuite/btcd/btcec/v2 v2.3.4 // indirect github.com/buger/jsonparser v1.1.1 // indirect github.com/bytecodealliance/wasmtime-go/v23 v23.0.0 // indirect github.com/bytedance/sonic v1.11.6 // indirect github.com/bytedance/sonic/loader v0.1.1 // indirect + github.com/c2h5oh/datasize v0.0.0-20220606134207-859f65c6625b // indirect + github.com/c9s/goprocinfo v0.0.0-20210130143923-c95fcf8c64a8 // indirect + github.com/cdk8s-team/cdk8s-core-go/cdk8s/v2 v2.7.5 // indirect github.com/cenkalti/backoff v2.2.1+incompatible // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cespare/xxhash v1.1.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect + github.com/chai2010/gettext-go v1.0.2 // indirect + github.com/chaos-mesh/chaos-mesh/api v0.0.0-20240821051457-da69c6d9617a // indirect github.com/cloudwego/base64x v0.1.4 // indirect github.com/cloudwego/iasm v0.2.0 // indirect github.com/cockroachdb/errors v1.11.3 // indirect @@ -90,11 +126,16 @@ require ( github.com/cockroachdb/pebble v1.1.2 // indirect github.com/cockroachdb/redact v1.1.5 // indirect github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect + github.com/coder/websocket v1.8.12 // indirect github.com/cometbft/cometbft v0.37.5 // indirect github.com/cometbft/cometbft-db v0.8.0 // indirect github.com/confio/ics23/go v0.9.0 // indirect github.com/consensys/bavard v0.1.13 // indirect github.com/consensys/gnark-crypto v0.12.1 // indirect + github.com/containerd/log v0.1.0 // indirect + github.com/containerd/platforms v0.2.1 // indirect + github.com/coreos/go-semver v0.3.1 // indirect + github.com/coreos/go-systemd/v22 v22.5.0 // indirect github.com/cosmos/btcutil v1.0.5 // indirect github.com/cosmos/cosmos-proto v1.0.0-beta.5 // indirect github.com/cosmos/cosmos-sdk v0.47.11 // indirect @@ -104,6 +145,7 @@ require ( github.com/cosmos/ibc-go/v7 v7.5.1 // indirect github.com/cosmos/ics23/go v0.10.0 // indirect github.com/cosmos/ledger-cosmos-go v0.12.4 // indirect + github.com/cpuguy83/dockercfg v0.3.2 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.5 // indirect github.com/crate-crypto/go-ipa v0.0.0-20240223125850-b1e8a79f509c // indirect github.com/crate-crypto/go-kzg-4844 v1.0.0 // indirect @@ -112,20 +154,27 @@ require ( github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/deckarep/golang-set/v2 v2.6.0 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect + github.com/dennwc/varint v1.0.0 // indirect github.com/dfuse-io/logging v0.0.0-20210109005628-b97a57253f70 // indirect github.com/dgraph-io/badger/v2 v2.2007.4 // indirect github.com/dgraph-io/ristretto v0.1.1 // indirect github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect + github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect github.com/distribution/reference v0.6.0 // indirect github.com/docker/distribution v2.8.2+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect github.com/dominikbraun/graph v0.23.0 // indirect github.com/dustin/go-humanize v1.0.1 // indirect github.com/dvsekhvalnov/jose2go v1.7.0 // indirect + github.com/edsrzf/mmap-go v1.1.0 // indirect github.com/emicklei/go-restful/v3 v3.12.1 // indirect github.com/esote/minmaxheap v1.0.0 // indirect github.com/ethereum/c-kzg-4844 v1.0.0 // indirect github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9 // indirect + github.com/evanphx/json-patch/v5 v5.9.0 // indirect + github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f // indirect + github.com/facette/natsort v0.0.0-20181210072756-2cd4dd1e2dcb // indirect + github.com/fatih/camelcase v1.0.0 // indirect github.com/fatih/color v1.17.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect @@ -146,6 +195,7 @@ require ( github.com/gkampitakis/ciinfo v0.3.0 // indirect github.com/gkampitakis/go-diff v1.3.2 // indirect github.com/go-asn1-ber/asn1-ber v1.5.5 // indirect + github.com/go-errors/errors v1.4.2 // indirect github.com/go-json-experiment/json v0.0.0-20231102232822-2e55bd4e08b0 // indirect github.com/go-kit/kit v0.12.0 // indirect github.com/go-kit/log v0.2.1 // indirect @@ -154,12 +204,20 @@ require ( github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.3.0 // indirect + github.com/go-openapi/analysis v0.22.2 // indirect + github.com/go-openapi/errors v0.22.0 // indirect github.com/go-openapi/jsonpointer v0.21.0 // indirect github.com/go-openapi/jsonreference v0.21.0 // indirect + github.com/go-openapi/loads v0.21.5 // indirect + github.com/go-openapi/spec v0.20.14 // indirect + github.com/go-openapi/strfmt v0.23.0 // indirect github.com/go-openapi/swag v0.23.0 // indirect + github.com/go-openapi/validate v0.23.0 // indirect github.com/go-playground/locales v0.14.1 // indirect github.com/go-playground/universal-translator v0.18.1 // indirect github.com/go-playground/validator/v10 v10.22.0 // indirect + github.com/go-redis/redis/v8 v8.11.5 // indirect + github.com/go-resty/resty/v2 v2.15.3 // indirect github.com/go-viper/mapstructure/v2 v2.1.0 // indirect github.com/go-webauthn/webauthn v0.9.4 // indirect github.com/go-webauthn/x v0.1.5 // indirect @@ -167,7 +225,9 @@ require ( github.com/goccy/go-yaml v1.12.0 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gofrs/flock v0.8.1 // indirect + github.com/gogo/googleapis v1.4.1 // indirect github.com/gogo/protobuf v1.3.3 // indirect + github.com/gogo/status v1.1.1 // indirect github.com/golang-jwt/jwt/v4 v4.5.0 // indirect github.com/golang-jwt/jwt/v5 v5.2.1 // indirect github.com/golang/glog v1.2.2 // indirect @@ -176,17 +236,28 @@ require ( github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect github.com/google/btree v1.1.2 // indirect github.com/google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49 // indirect + github.com/google/go-github/v41 v41.0.0 // indirect + github.com/google/go-querystring v1.1.0 // indirect github.com/google/go-tpm v0.9.0 // indirect github.com/google/gofuzz v1.2.0 // indirect github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5 // indirect + github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect github.com/gorilla/context v1.1.1 // indirect + github.com/gorilla/mux v1.8.0 // indirect github.com/gorilla/securecookie v1.1.2 // indirect github.com/gorilla/sessions v1.2.2 // indirect github.com/gorilla/websocket v1.5.1 // indirect + github.com/grafana/dskit v0.0.0-20231120170505-765e343eda4f // indirect + github.com/grafana/gomemcache v0.0.0-20231023152154-6947259a0586 // indirect + github.com/grafana/grafana-foundation-sdk/go v0.0.0-20240326122733-6f96a993222b // indirect + github.com/grafana/loki v1.6.2-0.20231215164305-b51b7d7b5503 // indirect + github.com/grafana/loki/pkg/push v0.0.0-20231201111602-11ef833ed3e4 // indirect github.com/grafana/pyroscope-go v1.1.2 // indirect github.com/grafana/pyroscope-go/godeltaprof v0.1.8 // indirect + github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc // indirect github.com/graph-gophers/dataloader v5.0.0+incompatible // indirect github.com/graph-gophers/graphql-go v1.5.0 // indirect + github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 // indirect github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.0.1 // indirect github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0 // indirect @@ -195,22 +266,31 @@ require ( github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect github.com/gtank/merlin v0.1.1 // indirect github.com/gtank/ristretto255 v0.1.2 // indirect + github.com/hashicorp/consul/api v1.29.2 // indirect github.com/hashicorp/consul/sdk v0.16.1 // indirect + github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-bexpr v0.1.10 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect github.com/hashicorp/go-envparse v0.1.0 // indirect github.com/hashicorp/go-hclog v1.6.3 // indirect github.com/hashicorp/go-immutable-radix v1.3.1 // indirect + github.com/hashicorp/go-msgpack v0.5.5 // indirect + github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-plugin v1.6.2 // indirect github.com/hashicorp/go-retryablehttp v0.7.7 // indirect + github.com/hashicorp/go-rootcerts v1.0.2 // indirect + github.com/hashicorp/go-sockaddr v1.0.6 // indirect github.com/hashicorp/golang-lru v0.6.0 // indirect github.com/hashicorp/hcl v1.0.0 // indirect + github.com/hashicorp/memberlist v0.5.0 // indirect + github.com/hashicorp/serf v0.10.1 // indirect github.com/hashicorp/yamux v0.1.1 // indirect github.com/hdevalence/ed25519consensus v0.1.0 // indirect github.com/holiman/billy v0.0.0-20240216141850-2abb0c79d3c4 // indirect github.com/holiman/bloomfilter/v2 v2.0.3 // indirect github.com/holiman/uint256 v1.3.1 // indirect github.com/huandu/skiplist v1.2.0 // indirect + github.com/huandu/xstrings v1.4.0 // indirect github.com/huin/goupnp v1.3.0 // indirect github.com/iancoleman/strcase v0.3.0 // indirect github.com/imdario/mergo v0.3.16 // indirect @@ -230,6 +310,8 @@ require ( github.com/josharian/intern v1.0.0 // indirect github.com/jpillora/backoff v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect + github.com/julienschmidt/httprouter v1.3.0 // indirect + github.com/kelseyhightower/envconfig v1.4.0 // indirect github.com/klauspost/compress v1.17.9 // indirect github.com/klauspost/cpuid/v2 v2.2.7 // indirect github.com/kr/pretty v0.3.1 // indirect @@ -239,8 +321,10 @@ require ( github.com/leodido/go-urn v1.4.0 // indirect github.com/lib/pq v1.10.9 // indirect github.com/libp2p/go-buffer-pool v0.1.0 // indirect + github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect github.com/linxGnu/grocksdb v1.7.16 // indirect github.com/logrusorgru/aurora v2.0.3+incompatible // indirect + github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/maruel/natural v1.1.1 // indirect @@ -248,33 +332,56 @@ require ( github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-runewidth v0.0.14 // indirect github.com/mfridman/interpolate v0.0.2 // indirect + github.com/miekg/dns v1.1.61 // indirect github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 // indirect + github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/go-testing-interface v1.14.1 // indirect github.com/mitchellh/go-wordwrap v1.0.1 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/mitchellh/pointerstructure v1.2.0 // indirect + github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/mmcloughlin/addchain v0.4.0 // indirect github.com/moby/docker-image-spec v1.3.1 // indirect + github.com/moby/patternmatcher v0.6.0 // indirect + github.com/moby/spdystream v0.4.0 // indirect + github.com/moby/sys/sequential v0.6.0 // indirect + github.com/moby/sys/user v0.3.0 // indirect + github.com/moby/sys/userns v0.1.0 // indirect + github.com/moby/term v0.5.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 // indirect + github.com/morikuni/aec v1.0.0 // indirect github.com/mostynb/zstdpool-freelist v0.0.0-20201229113212-927304c0c3b1 // indirect github.com/mr-tron/base58 v1.2.0 // indirect github.com/mtibben/percent v0.2.1 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect + github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect github.com/oklog/run v1.1.0 // indirect + github.com/oklog/ulid v1.3.1 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.0 // indirect + github.com/opentracing-contrib/go-grpc v0.0.0-20210225150812-73cb765af46e // indirect + github.com/opentracing-contrib/go-stdlib v1.0.0 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect + github.com/otiai10/copy v1.14.0 // indirect github.com/patrickmn/go-cache v2.1.0+incompatible // indirect + github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect github.com/pelletier/go-toml v1.9.5 // indirect + github.com/peterbourgon/diskv v2.0.1+incompatible // indirect github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08 // indirect + github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/pressly/goose/v3 v3.21.1 // indirect + github.com/prometheus/alertmanager v0.27.0 // indirect github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.60.0 // indirect + github.com/prometheus/common/sigv4 v0.1.0 // indirect + github.com/prometheus/exporter-toolkit v0.11.0 // indirect github.com/prometheus/procfs v0.15.1 // indirect github.com/prometheus/prometheus v0.54.1 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect @@ -282,6 +389,7 @@ require ( github.com/robfig/cron/v3 v3.0.1 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/rs/cors v1.10.1 // indirect + github.com/rs/zerolog v1.33.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/sagikazarmark/locafero v0.4.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect @@ -289,12 +397,16 @@ require ( github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect github.com/sasha-s/go-deadlock v0.3.1 // indirect github.com/scylladb/go-reflectx v1.0.1 // indirect + github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 // indirect + github.com/sercand/kuberesolver/v5 v5.1.1 // indirect github.com/sethvargo/go-retry v0.2.4 // indirect github.com/shirou/gopsutil v3.21.11+incompatible // indirect github.com/shirou/gopsutil/v3 v3.24.3 // indirect + github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/sirupsen/logrus v1.9.3 // indirect github.com/smartcontractkit/ccip-owner-contracts v0.0.0-20240926212305-a6deabdfce86 // indirect github.com/smartcontractkit/chain-selectors v1.0.29 // indirect - github.com/smartcontractkit/chainlink-ccip v0.0.0-20241115103032-ec39846b3436 // indirect + github.com/smartcontractkit/chainlink-ccip v0.0.0-20241118091009-43c2b4804cec // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241017133723-5277829bd53f // indirect github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241018134907-a00ba3729b5e // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect @@ -302,10 +414,16 @@ require ( github.com/smartcontractkit/chainlink-protos/orchestrator v0.3.0 // indirect github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241112213949-65ae13752669 // indirect github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241017135645-176a23722fd8 // indirect + github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.13 // indirect + github.com/smartcontractkit/chainlink-testing-framework/lib/grafana v1.50.0 // indirect + github.com/smartcontractkit/chainlink-testing-framework/seth v1.50.5 // indirect + github.com/smartcontractkit/chainlink-testing-framework/wasp v1.50.2 // indirect github.com/smartcontractkit/grpc-proxy v0.0.0-20240830132753-a7e17fec5ab7 // indirect github.com/smartcontractkit/tdh2/go/ocr2/decryptionplugin v0.0.0-20241009055228-33d0c0bf38de // indirect github.com/smartcontractkit/tdh2/go/tdh2 v0.0.0-20241009055228-33d0c0bf38de // indirect github.com/smartcontractkit/wsrpc v0.8.2 // indirect + github.com/soheilhy/cmux v0.1.5 // indirect + github.com/sony/gobreaker v0.5.0 // indirect github.com/sourcegraph/conc v0.3.0 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.6.0 // indirect @@ -319,6 +437,7 @@ require ( github.com/tendermint/go-amino v0.16.0 // indirect github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125 // indirect github.com/test-go/testify v1.1.4 // indirect + github.com/testcontainers/testcontainers-go v0.34.0 // indirect github.com/theodesp/go-heaps v0.0.0-20190520121037-88e35354fe0a // indirect github.com/tidwall/btree v1.6.0 // indirect github.com/tidwall/gjson v1.17.0 // indirect @@ -329,6 +448,8 @@ require ( github.com/tklauser/numcpus v0.6.1 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/tyler-smith/go-bip39 v1.1.0 // indirect + github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect + github.com/uber/jaeger-lib v2.4.1+incompatible // indirect github.com/ugorji/go/codec v1.2.12 // indirect github.com/ulule/limiter/v3 v3.11.2 // indirect github.com/unrolled/secure v1.13.0 // indirect @@ -336,6 +457,7 @@ require ( github.com/valyala/fastjson v1.4.1 // indirect github.com/wk8/go-ordered-map/v2 v2.1.8 // indirect github.com/x448/float16 v0.8.4 // indirect + github.com/xlab/treeprint v1.2.0 // indirect github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect github.com/zondax/hid v0.9.2 // indirect @@ -343,8 +465,13 @@ require ( go.dedis.ch/fixbuf v1.0.3 // indirect go.dedis.ch/kyber/v3 v3.1.0 // indirect go.etcd.io/bbolt v1.3.9 // indirect + go.etcd.io/etcd/api/v3 v3.5.14 // indirect + go.etcd.io/etcd/client/pkg/v3 v3.5.14 // indirect + go.etcd.io/etcd/client/v3 v3.5.14 // indirect go.mongodb.org/mongo-driver v1.15.0 // indirect go.opencensus.io v0.24.0 // indirect + go.opentelemetry.io/collector/pdata v1.12.0 // indirect + go.opentelemetry.io/collector/semconv v0.105.0 // indirect go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.49.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 // indirect @@ -366,9 +493,13 @@ require ( go.opentelemetry.io/otel/sdk/metric v1.31.0 // indirect go.opentelemetry.io/otel/trace v1.31.0 // indirect go.opentelemetry.io/proto/otlp v1.3.1 // indirect + go.starlark.net v0.0.0-20230525235612-a134d8f9ddca // indirect + go.uber.org/atomic v1.11.0 // indirect + go.uber.org/goleak v1.3.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/ratelimit v0.3.1 // indirect go.uber.org/zap v1.27.0 // indirect + go4.org/netipx v0.0.0-20230125063823-8449b0a6169f // indirect golang.org/x/arch v0.11.0 // indirect golang.org/x/crypto v0.28.0 // indirect golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c // indirect @@ -382,23 +513,32 @@ require ( golang.org/x/time v0.7.0 // indirect golang.org/x/tools v0.26.0 // indirect golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect + gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect gonum.org/v1/gonum v0.15.1 // indirect google.golang.org/genproto v0.0.0-20241021214115-324edc3d5d38 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20241021214115-324edc3d5d38 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38 // indirect google.golang.org/grpc v1.67.1 // indirect + gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect gopkg.in/guregu/null.v4 v4.0.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect + k8s.io/apiextensions-apiserver v0.31.0 // indirect + k8s.io/cli-runtime v0.31.1 // indirect + k8s.io/component-base v0.31.1 // indirect k8s.io/klog/v2 v2.130.1 // indirect k8s.io/kube-openapi v0.0.0-20240709000822-3c01b740850f // indirect + k8s.io/kubectl v0.31.1 // indirect k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect pgregory.net/rapid v1.1.0 // indirect rsc.io/tmplfunc v0.0.3 // indirect + sigs.k8s.io/controller-runtime v0.19.0 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect + sigs.k8s.io/kustomize/api v0.17.2 // indirect + sigs.k8s.io/kustomize/kyaml v0.17.1 // indirect sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect sigs.k8s.io/yaml v1.4.0 // indirect ) diff --git a/core/scripts/go.sum b/core/scripts/go.sum index a123ae602d7..781393ad29f 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -11,7 +11,11 @@ cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= +cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= +cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= +cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= +cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= cloud.google.com/go v0.116.0 h1:B3fRrSDkLRt5qSHWe40ERJvhvnQwdZiHu0bJOpldweE= cloud.google.com/go v0.116.0/go.mod h1:cEPSRWPzZEswwdr9BxE6ChEn01dWlTaF05LiC2Xs70U= cloud.google.com/go/auth v0.9.9 h1:BmtbpNQozo8ZwW2t7QJjnrQtdganSdmqeIBxHxNkEZQ= @@ -21,6 +25,9 @@ cloud.google.com/go/auth/oauth2adapt v0.2.3/go.mod h1:tMQXOfZzFuNuUxOypHlQEXgdfX cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= +cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= +cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= +cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= cloud.google.com/go/compute v1.28.1 h1:XwPcZjgMCnU2tkwY10VleUjSAfpTj9RDn+kGrbYsi8o= cloud.google.com/go/compute/metadata v0.5.0 h1:Zr0eK8JbFv6+Wi4ilXAR8FJ3wyNdpxHKJNPos6LTZOY= cloud.google.com/go/compute/metadata v0.5.0/go.mod h1:aHnloV2TPI38yx4s9+wAZhHykWvVCfu7hQbF+9CWoiY= @@ -34,9 +41,12 @@ cloud.google.com/go/monitoring v1.21.1/go.mod h1:Rj++LKrlht9uBi8+Eb530dIrzG/cU/l cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= +cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= +cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= +cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.45.0 h1:5av0QcIVj77t+44mV4gffFC/LscFRUhto6UBMB5SimM= cloud.google.com/go/storage v1.45.0/go.mod h1:wpPblkIuMP5jCB/E48Pz9zIo2S/zD8g+ITmxKkPCITE= contrib.go.opencensus.io/exporter/stackdriver v0.12.6/go.mod h1:8x999/OcIPy5ivx/wDiV7Gx4D+VUPODf0mWRGRc5kSk= @@ -57,6 +67,8 @@ cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE= cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= cosmossdk.io/tools/rosetta v0.2.1/go.mod h1:Pqdc1FdvkNV3LcNIkYWt2RQY6IP1ge6YWZk8MhhO9Hw= +dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s= +dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0-rc.1/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= @@ -65,17 +77,34 @@ github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 h1:/vQbFIOMb github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4/go.mod h1:hN7oaIRCjzsZ2dE+yG5k+rsdt3qcwykqK6HVGcKwsw4= github.com/99designs/keyring v1.2.1 h1:tYLp1ULvO7i3fI5vE21ReQuj99QFSs7lGm0xWyJo87o= github.com/99designs/keyring v1.2.1/go.mod h1:fc+wB5KTk9wQ9sDx0kFXB3A0MaeGHM9AwRStKOQ5vOA= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/AlekSi/pointer v1.1.0 h1:SSDMPcXD9jSl8FPy9cRzoRaMJtm9g9ggGTxecRUbQoI= github.com/AlekSi/pointer v1.1.0/go.mod h1:y7BvfRI3wXPWKXEBhU71nbnIEEZX0QTSB2Bj48UJIZE= +github.com/Azure/azure-sdk-for-go v65.0.0+incompatible h1:HzKLt3kIwMm4KeJYTdx9EbjRYTySD/t8i1Ee/W5EGXw= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.13.0 h1:GJHeeA2N7xrG3q30L2UXDyuWRzDM900/65j70wcM4Ww= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.13.0/go.mod h1:l38EPgmsp71HHLq9j7De57JcKOWPyhrsW1Awm1JS6K0= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0 h1:tfLQ34V6F7tVSwoTf/4lH5sE0o6eCJuNDTmH09nDpbc= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0/go.mod h1:9kIvujWAA58nmPmWB1m23fyWic1kYZMxD9CxaWn4Qpg= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 h1:ywEEhmNahHBihViHepv3xPBn1663uRv2t2q/ESv9seY= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0/go.mod h1:iZDifYGJTIgIIkYRNWPENUnqx6bJ2xnSDFI2tjwZNuY= +github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v5 v5.7.0 h1:LkHbJbgF3YyvC53aqYGR+wWQDn2Rdp9AQdGndf9QvY4= +github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v5 v5.7.0/go.mod h1:QyiQdW4f4/BIfB8ZutZ2s+28RAgfa/pT+zS++ZHyM1I= +github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v4 v4.3.0 h1:bXwSugBiSbgtz7rOtbfGf+woewp4f06orW9OP5BjHLA= +github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v4 v4.3.0/go.mod h1:Y/HgrePTmGy9HjdSGTqZNa+apUpTVIEVKXJyARP2lrk= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358 h1:mFRzDkZVAjdal+s7s0MwaRv9igoPqLRdzOLzw/8Xvq8= github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358/go.mod h1:chxPXzSsl7ZWRAuOIE23GDNzjWuZquvFlgA8xmpunjU= +github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 h1:XHOnouVk1mxXfQidrMEnLlPk9UMeRtyBTnEFtxkV0kU= +github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/ChainSafe/go-schnorrkel v1.0.0 h1:3aDA67lAykLaG1y3AOjs88dMxC88PgUuHRrLeDnvGIM= github.com/ChainSafe/go-schnorrkel v1.0.0/go.mod h1:dpzHYVxLZcp8pjlV+O+UR8K0Hp/z7vcchBSbMBEhCw4= +github.com/Code-Hex/go-generics-cache v1.5.1 h1:6vhZGc5M7Y/YD8cIUcY8kcuQLB4cHR7U+0KMqAA0KcU= +github.com/Code-Hex/go-generics-cache v1.5.1/go.mod h1:qxcC9kRVrct9rHeiYpFWSoW1vxyillCVzX13KZG8dl4= github.com/CosmWasm/wasmd v0.40.1 h1:LxbO78t/6S8TkeQlUrJ0m5O87HtAwLx4RGHq3rdrOEU= github.com/CosmWasm/wasmd v0.40.1/go.mod h1:6EOwnv7MpuFaEqxcUOdFV9i4yvrdOciaY6VQ1o7A3yg= github.com/CosmWasm/wasmvm v1.2.4 h1:6OfeZuEcEH/9iqwrg2pkeVtDCkMoj9U6PpKtcrCyVrQ= @@ -93,9 +122,18 @@ github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48 github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.3/go.mod h1:SsdWig2J5PMnfMvfJuEb1uZa8Y+kvNyvrULFo69gTFk= github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.48.3 h1:2vcVkrNdSMJpoOVAWi9ApsQR5iqNeFGt5Qx8Xlt3IoI= github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.48.3/go.mod h1:wRbFgBQUVm1YXrvWKofAEmq9HNJTDphbAaJSSX01KUI= +github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM= +github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo= +github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ= +github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE= +github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= +github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= +github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/Masterminds/semver/v3 v3.3.0 h1:B8LGeaivUe71a5qox1ICM/JLl0NqZSW5CHyL+hmvYS0= github.com/Masterminds/semver/v3 v3.3.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= +github.com/Masterminds/sprig/v3 v3.2.3 h1:eL2fZNezLomi0uOLqjQoN6BfsDD+fyLtgbJMAj9n6YA= +github.com/Masterminds/sprig/v3 v3.2.3/go.mod h1:rXcFaZ2zZbLRJv/xSysmlgIM1u11eBaRMhvYXJNkGuM= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/NethermindEth/juno v0.3.1 h1:AW72LiAm9gqUeCVJWvepnZcTnpU4Vkl0KzPMxS+42FA= @@ -111,6 +149,8 @@ github.com/VictoriaMetrics/fastcache v1.12.2 h1:N0y9ASrJ0F6h0QaC3o6uJb3NIZ9VKLjC github.com/VictoriaMetrics/fastcache v1.12.2/go.mod h1:AmC+Nzz1+3G2eCPapF6UcsnkThDcMsQicp4xDukwJYI= github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrdtl/UvroE= github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= +github.com/Workiva/go-datastructures v1.1.0 h1:hu20UpgZneBhQ3ZvwiOGlqJSKIosin2Rd5wAKUHEO/k= +github.com/Workiva/go-datastructures v1.1.0/go.mod h1:1yZL+zfsztete+ePzZz/Zb1/t5BnDuE2Ya2MMGhzP6A= github.com/XSAM/otelsql v0.27.0 h1:i9xtxtdcqXV768a5C6SoT/RkG+ue3JTOgkYInzlTOqs= github.com/XSAM/otelsql v0.27.0/go.mod h1:0mFB3TvLa7NCuhm/2nU7/b2wEtsczkj8Rey8ygO7V+A= github.com/akavel/rsrc v0.8.0/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c= @@ -118,8 +158,16 @@ github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuy github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= +github.com/alecthomas/units v0.0.0-20240626203959-61d1e3462e30 h1:t3eaIm0rUkzbrIewtiFmMK5RXHej2XnoXNhxVsAYUfg= +github.com/alecthomas/units v0.0.0-20240626203959-61d1e3462e30/go.mod h1:fvzegU4vN3H1qMT+8wDmzjAcDONcgo2/SZ/TyfdUOFs= github.com/alexbrainman/sspi v0.0.0-20210105120005-909beea2cc74 h1:Kk6a4nehpJ3UuJRqlA3JxYxBZEqCeOmATOvrbT4p9RA= github.com/alexbrainman/sspi v0.0.0-20210105120005-909beea2cc74/go.mod h1:cEWa1LVoE5KvSD9ONXsZrj0z6KqySlCCNKHlLzbqAt4= +github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a h1:HbKu58rmZpUGpz5+4FfNmIU+FmZg2P3Xaj2v2bfNWmk= +github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a/go.mod h1:SGnFV6hVsYE877CKEZ6tDNTjaSXYUk6QqoIK6PrAtcc= +github.com/alicebob/miniredis v2.5.0+incompatible h1:yBHoLpsyjupjz3NL3MhKMVkR41j82Yjf3KFv7ApYzUI= +github.com/alicebob/miniredis/v2 v2.30.4 h1:8S4/o1/KoUArAGbGwPxcwf0krlzceva2XVOSchFS7Eo= +github.com/alicebob/miniredis/v2 v2.30.4/go.mod h1:b25qWj4fCEsBeAAR2mlb0ufImGC6uH3VlUfb/HS5zKg= github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= github.com/allegro/bigcache v1.2.1 h1:hg1sY1raCwic3Vnsvje6TT7/pnZba83LeFck5NrFKSc= github.com/allegro/bigcache v1.2.1/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= @@ -135,16 +183,62 @@ github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmV github.com/armon/go-metrics v0.4.1 h1:hR91U9KYmb6bLBYLQjyM+3j+rcd/UhE+G78SFnF8gJA= github.com/armon/go-metrics v0.4.1/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= +github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= +github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so= +github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= github.com/atombender/go-jsonschema v0.16.1-0.20240916205339-a74cd4e2851c h1:cxQVoh6kY+c4b0HUchHjGWBI8288VhH50qxKG3hdEg0= github.com/atombender/go-jsonschema v0.16.1-0.20240916205339-a74cd4e2851c/go.mod h1:3XzxudkrYVUvbduN/uI2fl4lSrMSzU0+3RCu2mpnfx8= +github.com/avast/retry-go v3.0.0+incompatible h1:4SOWQ7Qs+oroOTQOYnAHqelpCO0biHSxpiH9JdtuBj0= +github.com/avast/retry-go v3.0.0+incompatible/go.mod h1:XtSnn+n/sHqQIpZ10K1qAevBhOOCWBLXXy3hyiqqBrY= github.com/avast/retry-go/v4 v4.6.0 h1:K9xNA+KeB8HHc2aWFuLb25Offp+0iVRXEvFx8IinRJA= github.com/avast/retry-go/v4 v4.6.0/go.mod h1:gvWlPhBVsvBbLkVGDg/KwvBv0bEkCOLRRSHKIr2PyOE= +github.com/awalterschulze/gographviz v2.0.3+incompatible h1:9sVEXJBJLwGX7EQVhLm2elIKCm7P2YHFC8v6096G09E= +github.com/awalterschulze/gographviz v2.0.3+incompatible/go.mod h1:GEV5wmg4YquNw7v1kkyoX9etIk8yVmXj+AkDHuuETHs= github.com/aws/aws-sdk-go v1.22.1/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.23.20/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.38.35/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= github.com/aws/aws-sdk-go v1.54.19 h1:tyWV+07jagrNiCcGRzRhdtVjQs7Vy41NwsuOcl0IbVI= github.com/aws/aws-sdk-go v1.54.19/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= +github.com/aws/aws-sdk-go-v2 v1.32.2 h1:AkNLZEyYMLnx/Q/mSKkcMqwNFXMAvFto9bNsHqcTduI= +github.com/aws/aws-sdk-go-v2 v1.32.2/go.mod h1:2SK5n0a2karNTv5tbP1SjsX0uhttou00v/HpXKM1ZUo= +github.com/aws/aws-sdk-go-v2/config v1.28.0 h1:FosVYWcqEtWNxHn8gB/Vs6jOlNwSoyOCA/g/sxyySOQ= +github.com/aws/aws-sdk-go-v2/config v1.28.0/go.mod h1:pYhbtvg1siOOg8h5an77rXle9tVG8T+BWLWAo7cOukc= +github.com/aws/aws-sdk-go-v2/credentials v1.17.41 h1:7gXo+Axmp+R4Z+AK8YFQO0ZV3L0gizGINCOWxSLY9W8= +github.com/aws/aws-sdk-go-v2/credentials v1.17.41/go.mod h1:u4Eb8d3394YLubphT4jLEwN1rLNq2wFOlT6OuxFwPzU= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.17 h1:TMH3f/SCAWdNtXXVPPu5D6wrr4G5hI1rAxbcocKfC7Q= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.17/go.mod h1:1ZRXLdTpzdJb9fwTMXiLipENRxkGMTn1sfKexGllQCw= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.21 h1:UAsR3xA31QGf79WzpG/ixT9FZvQlh5HY1NRqSHBNOCk= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.21/go.mod h1:JNr43NFf5L9YaG3eKTm7HQzls9J+A9YYcGI5Quh1r2Y= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.21 h1:6jZVETqmYCadGFvrYEQfC5fAQmlo80CeL5psbno6r0s= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.21/go.mod h1:1SR0GbLlnN3QUmYaflZNiH1ql+1qrSiB2vwcJ+4UM60= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvKgqdiXoTxAF4HQcQ= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0 h1:TToQNkvGguu209puTojY/ozlqy2d/SFNcoLIqTFi42g= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0/go.mod h1:0jp+ltwkf+SwG2fm/PKo8t4y8pJSgOCO4D8Lz3k0aHQ= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.2 h1:s7NA1SOw8q/5c0wr8477yOPp0z+uBaXBnLE0XYb0POA= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.2/go.mod h1:fnjjWyAW/Pj5HYOxl9LJqWtEwS7W2qgcRLWP+uWbss0= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.2 h1:Rrqru2wYkKQCS2IM5/JrgKUQIoNTqA6y/iuxkjzxC6M= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.2/go.mod h1:QuCURO98Sqee2AXmqDNxKXYFm2OEDAVAPApMqO0Vqnc= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.2 h1:bSYXVyUzoTHoKalBmwaZxs97HU9DWWI3ehHSAMa7xOk= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.2/go.mod h1:skMqY7JElusiOUjMJMOv1jJsP7YUg7DrhgqZZWuzu1U= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.2 h1:AhmO1fHINP9vFYUE0LHzCWg/LfUWUF+zFPEcY9QXb7o= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.2/go.mod h1:o8aQygT2+MVP0NaV6kbdE1YnnIM8RRVQzoeUH45GOdI= +github.com/aws/aws-sdk-go-v2/service/sts v1.32.2 h1:CiS7i0+FUe+/YY1GvIBLLrR/XNGZ4CtM1Ll0XavNuVo= +github.com/aws/aws-sdk-go-v2/service/sts v1.32.2/go.mod h1:HtaiBI8CjYoNVde8arShXb94UbQQi9L4EMr6D+xGBwo= +github.com/aws/constructs-go/constructs/v10 v10.4.2 h1:+hDLTsFGLJmKIn0Dg20vWpKBrVnFrEWYgTEY5UiTEG8= +github.com/aws/constructs-go/constructs/v10 v10.4.2/go.mod h1:cXsNCKDV+9eR9zYYfwy6QuE4uPFp6jsq6TtH1MwBx9w= +github.com/aws/jsii-runtime-go v1.104.0 h1:651Sh6J2FtatfnVzlOQ3/Ye1WWPAseZ6E/tSQxEKdSI= +github.com/aws/jsii-runtime-go v1.104.0/go.mod h1:7ZmQXxV0AAhhvv/GaHX4n6zbgA1tSRVdnQYAJbIhXHk= +github.com/aws/smithy-go v1.22.0 h1:uunKnWlcoL3zO7q+gG2Pk53joueEOsnNB28QdMsmiMM= +github.com/aws/smithy-go v1.22.0/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/bahlo/generic-list-go v0.2.0 h1:5sz/EEAK+ls5wF+NeqDpk5+iNdMDXrh3z3nPnH1Wvgk= github.com/bahlo/generic-list-go v0.2.0/go.mod h1:2KvAjgMlE5NNynlg/5iLrrCCZ2+5xWbdbCW3pNTGyYg= +github.com/barkimedes/go-deepcopy v0.0.0-20220514131651-17c30cfc62df h1:GSoSVRLoBaFpOOds6QyY1L8AX7uoY+Ln3BHc22W40X0= +github.com/barkimedes/go-deepcopy v0.0.0-20220514131651-17c30cfc62df/go.mod h1:hiVxq5OP2bUGBRNS3Z/bt/reCLFNbdcST6gISi1fiOM= +github.com/bboreham/go-loser v0.0.0-20230920113527-fcc2c21820a3 h1:6df1vn4bBlDDo4tARvBm7l6KA9iVMnE3NWizDeWSrps= +github.com/bboreham/go-loser v0.0.0-20230920113527-fcc2c21820a3/go.mod h1:CIWtjkly68+yqLPbvwwR/fjNJA/idrtULjZWh2v1ys0= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/benbjohnson/clock v1.3.5 h1:VvXlSJBzZpA/zum6Sj74hxwYI2DIxRWuNIoXAzHZz5o= github.com/benbjohnson/clock v1.3.5/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= @@ -160,6 +254,8 @@ github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816/go.mod h1:+zsy github.com/bits-and-blooms/bitset v1.13.0 h1:bAQ9OPNFYbGHV6Nez0tmNI0RiEu7/hxlYJRUA0wFAVE= github.com/bits-and-blooms/bitset v1.13.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= +github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM= +github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= github.com/blendle/zapdriver v1.3.1 h1:C3dydBOWYRiOk+B8X9IVZ5IOe+7cl+tGOexN4QqHfpE= github.com/blendle/zapdriver v1.3.1/go.mod h1:mdXfREi6u5MArG4j9fewC+FGnXaBR+T4Ox4J2u4eHCc= github.com/btcsuite/btcd v0.22.1 h1:CnwP9LM/M9xuRrGSCGeMVs9iv09uMqwsVX7EeIpgV2c= @@ -173,12 +269,20 @@ github.com/bufbuild/protocompile v0.4.0 h1:LbFKd2XowZvQ/kajzguUp2DC9UEIQhIq77fZZ github.com/bufbuild/protocompile v0.4.0/go.mod h1:3v93+mbWn/v3xzN+31nwkJfrEpAUwp+BagBSZWx+TP8= github.com/buger/jsonparser v1.1.1 h1:2PnMjfWD7wBILjqQbt530v576A/cAbQvEW9gGIpYMUs= github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= +github.com/bxcodec/faker v2.0.1+incompatible h1:P0KUpUw5w6WJXwrPfv35oc91i4d8nf40Nwln+M/+faA= +github.com/bxcodec/faker v2.0.1+incompatible/go.mod h1:BNzfpVdTwnFJ6GtfYTcQu6l6rHShT+veBxNCnjCx5XM= github.com/bytecodealliance/wasmtime-go/v23 v23.0.0 h1:NJvU4S8KEk1GnF6+FvlnzMD/8wXTj/mYJSG6Q4yu3Pw= github.com/bytecodealliance/wasmtime-go/v23 v23.0.0/go.mod h1:5YIL+Ouiww2zpO7u+iZ1U1G5NvmwQYaXdmCZQGjQM0U= github.com/bytedance/sonic v1.11.6 h1:oUp34TzMlL+OY1OUWxHqsdkgC/Zfc85zGqw9siXjrc0= github.com/bytedance/sonic v1.11.6/go.mod h1:LysEHSvpvDySVdC2f87zGWf6CIKJcAvqab1ZaiQtds4= github.com/bytedance/sonic/loader v0.1.1 h1:c+e5Pt1k/cy5wMveRDyk2X4B9hF4g7an8N3zCYjJFNM= github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= +github.com/c2h5oh/datasize v0.0.0-20220606134207-859f65c6625b h1:6+ZFm0flnudZzdSE0JxlhR2hKnGPcNB35BjQf4RYQDY= +github.com/c2h5oh/datasize v0.0.0-20220606134207-859f65c6625b/go.mod h1:S/7n9copUssQ56c7aAgHqftWO4LTf4xY6CGWt8Bc+3M= +github.com/c9s/goprocinfo v0.0.0-20210130143923-c95fcf8c64a8 h1:SjZ2GvvOononHOpK84APFuMvxqsk3tEIaKH/z4Rpu3g= +github.com/c9s/goprocinfo v0.0.0-20210130143923-c95fcf8c64a8/go.mod h1:uEyr4WpAH4hio6LFriaPkL938XnrvLpNPmQHBdrmbIE= +github.com/cdk8s-team/cdk8s-core-go/cdk8s/v2 v2.7.5 h1:rvc39Ol6z3MvaBzXkxFC6Nfsnixq/dRypushKDd7Nc0= +github.com/cdk8s-team/cdk8s-core-go/cdk8s/v2 v2.7.5/go.mod h1:R/pdNYDYFQk+tuuOo7QES1kkv6OLmp5ze2XBZQIVffM= github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4= github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= @@ -194,6 +298,10 @@ github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XL github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/chai2010/gettext-go v1.0.2 h1:1Lwwip6Q2QGsAdl/ZKPCwTe9fe0CjlUbqj5bFNSjIRk= +github.com/chai2010/gettext-go v1.0.2/go.mod h1:y+wnP2cHYaVj19NZhYKAwEMH2CI1gNHeQQ+5AjwawxA= +github.com/chaos-mesh/chaos-mesh/api v0.0.0-20240821051457-da69c6d9617a h1:6Pg3a6j/41QDzH/oYcMLwwKsf3x/HXcu9W/dBaf2Hzs= +github.com/chaos-mesh/chaos-mesh/api v0.0.0-20240821051457-da69c6d9617a/go.mod h1:x11iCbZV6hzzSQWMq610B6Wl5Lg1dhwqcVfeiWQQnQQ= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/readline v1.5.1 h1:upd/6fQk4src78LMRzh5vItIt361/o4uq553V8B5sGI= @@ -228,6 +336,8 @@ github.com/cockroachdb/redact v1.1.5 h1:u1PMllDkdFfPWaNGMyLD1+so+aq3uUItthCFqzwP github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo= github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ= +github.com/coder/websocket v1.8.12 h1:5bUXkEPPIbewrnkU8LTCLVaxi4N4J8ahufH2vlo4NAo= +github.com/coder/websocket v1.8.12/go.mod h1:LNVeNrXQZfe5qhS9ALED3uA+l5pPqvwXg3CKoDBB2gs= github.com/coinbase/rosetta-sdk-go/types v1.0.0 h1:jpVIwLcPoOeCR6o1tU+Xv7r5bMONNbHU7MuEHboiFuA= github.com/coinbase/rosetta-sdk-go/types v1.0.0/go.mod h1:eq7W2TMRH22GTW0N0beDnN931DW0/WOI1R2sdHNHG4c= github.com/cometbft/cometbft v0.37.5 h1:/U/TlgMh4NdnXNo+YU9T2NMCWyhXNDF34Mx582jlvq0= @@ -244,14 +354,20 @@ github.com/containerd/continuity v0.4.3 h1:6HVkalIp+2u1ZLH1J/pYX2oBVXlJZvh1X1A7b github.com/containerd/continuity v0.4.3/go.mod h1:F6PTNCKepoxEaXLQp3wDAjygEnImnZ/7o4JzpodfroQ= github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= +github.com/containerd/platforms v0.2.1 h1:zvwtM3rz2YHPQsF2CHYM8+KtB5dvhISiXh5ZpSBQv6A= +github.com/containerd/platforms v0.2.1/go.mod h1:XHCb+2/hzowdiut9rkudds9bE5yJ7npe7dG/wG+uFPw= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-semver v0.3.1 h1:yi21YpKnrx1gt5R+la8n5WgS0kCrsPp33dmEyHReZr4= +github.com/coreos/go-semver v0.3.1/go.mod h1:irMmmIw/7yzSRPWryHsK7EYSg09caPQL03VsM8rvUec= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= +github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis= @@ -276,6 +392,8 @@ github.com/cosmos/ledger-cosmos-go v0.12.4 h1:drvWt+GJP7Aiw550yeb3ON/zsrgW0jgh5s github.com/cosmos/ledger-cosmos-go v0.12.4/go.mod h1:fjfVWRf++Xkygt9wzCsjEBdjcf7wiiY35fv3ctT+k4M= github.com/cosmos/rosetta-sdk-go v0.10.0 h1:E5RhTruuoA7KTIXUcMicL76cffyeoyvNybzUGSKFTcM= github.com/cosmos/rosetta-sdk-go v0.10.0/go.mod h1:SImAZkb96YbwvoRkzSMQB6noNJXFgWl/ENIznEoYQI4= +github.com/cpuguy83/dockercfg v0.3.2 h1:DlJTyZGBDlXqUZ2Dk2Q3xHs/FtnooJJVaad2S9GKorA= +github.com/cpuguy83/dockercfg v0.3.2/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -290,6 +408,8 @@ github.com/creachadair/taskgroup v0.4.2 h1:jsBLdAJE42asreGss2xZGZ8fJra7WtwnHWeJF github.com/creachadair/taskgroup v0.4.2/go.mod h1:qiXUOSrbwAY3u0JPGTzObbE3yf9hcXHDKBZ2ZjpCbgM= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/daaku/go.zipexe v1.0.0/go.mod h1:z8IiR6TsVLEYKwXAoE/I+8ys/sDkgTzSL0CLnGVd57E= github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0= github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= @@ -306,6 +426,8 @@ github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5il github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etlyjdBU4sfcs2WYQMs= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= +github.com/dennwc/varint v1.0.0 h1:kGNFFSSw8ToIy3obO/kKr8U9GZYUAxQEVuix4zfDWzE= +github.com/dennwc/varint v1.0.0/go.mod h1:hnItb35rvZvJrbTALZtY/iQfDs48JKRG1RPpgziApxA= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f h1:U5y3Y5UE0w7amNe7Z5G/twsBW0KEalRQXZzf8ufSh9I= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f/go.mod h1:xH/i4TFMt8koVQZ6WFms69WAsDWr2XsYL3Hkl7jkoLE= github.com/dfuse-io/logging v0.0.0-20201110202154-26697de88c79/go.mod h1:V+ED4kT/t/lKtH99JQmKIb0v9WL3VaYkJ36CfHlVECI= @@ -320,7 +442,11 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WAFKLNi6ZS0675eEUC9y3AlwSbQu1Y= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/digitalocean/godo v1.118.0 h1:lkzGFQmACrVCp7UqH1sAi4JK/PWwlc5aaxubgorKmC4= +github.com/digitalocean/godo v1.118.0/go.mod h1:Vk0vpCot2HOAJwc5WE8wljZGtJ3ZtWIc8MQ8rF38sdo= github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8= @@ -338,6 +464,8 @@ github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkp github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/dvsekhvalnov/jose2go v1.7.0 h1:bnQc8+GMnidJZA8zc6lLEAb4xNrIqHwO+9TzqvtQZPo= github.com/dvsekhvalnov/jose2go v1.7.0/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB/mPZadG+mhXU= +github.com/edsrzf/mmap-go v1.1.0 h1:6EUwBLQ/Mcr1EYLE4Tn1VdW1A4ckqCQWZBw8Hr0kjpQ= +github.com/edsrzf/mmap-go v1.1.0/go.mod h1:19H/e8pUPLicwkyNgOykDXkJ9F0MHE+Z52B8EIth78Q= github.com/emicklei/go-restful/v3 v3.12.1 h1:PJMDIM/ak7btuL8Ex0iYET9hxM3CI2sjZtzpL63nKAU= github.com/emicklei/go-restful/v3 v3.12.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -357,6 +485,16 @@ github.com/ethereum/go-ethereum v1.14.11 h1:8nFDCUUE67rPc6AKxFj7JKaOa2W/W1Rse3oS github.com/ethereum/go-ethereum v1.14.11/go.mod h1:+l/fr42Mma+xBnhefL/+z11/hcmJ2egl+ScIVPjhc7E= github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9 h1:8NfxH2iXvJ60YRB8ChToFTUzl8awsc3cJ8CbLjGIl/A= github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9/go.mod h1:M3b90YRnzqKyyzBEWJGqj8Qff4IDeXnzFw0P9bFw3uk= +github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U= +github.com/evanphx/json-patch v5.6.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/evanphx/json-patch/v5 v5.9.0 h1:kcBlZQbplgElYIlo/n1hJbls2z/1awpXxpRi0/FOJfg= +github.com/evanphx/json-patch/v5 v5.9.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ= +github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f h1:Wl78ApPPB2Wvf/TIe2xdyJxTlb6obmF18d8QdkxNDu4= +github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f/go.mod h1:OSYXu++VVOHnXeitef/D8n/6y4QV8uLHSFXX4NeXMGc= +github.com/facette/natsort v0.0.0-20181210072756-2cd4dd1e2dcb h1:IT4JYU7k4ikYg1SCxNI1/Tieq/NFvh6dzLdgi7eu0tM= +github.com/facette/natsort v0.0.0-20181210072756-2cd4dd1e2dcb/go.mod h1:bH6Xx7IW64qjjJq8M2u4dxNaBiDfKK+z/3eGDpXEQhc= +github.com/fatih/camelcase v1.0.0 h1:hxNvNX/xYBp0ovncs8WyWZrOrpBNub/JfaMvbURyft8= +github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= @@ -442,15 +580,29 @@ github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ= +github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= +github.com/go-openapi/analysis v0.22.2 h1:ZBmNoP2h5omLKr/srIC9bfqrUGzT6g6gNv03HE9Vpj0= +github.com/go-openapi/analysis v0.22.2/go.mod h1:pDF4UbZsQTo/oNuRfAWWd4dAh4yuYf//LYorPTjrpvo= +github.com/go-openapi/errors v0.22.0 h1:c4xY/OLxUBSTiepAg3j/MHuAv5mJhnf53LLMWFB+u/w= +github.com/go-openapi/errors v0.22.0/go.mod h1:J3DmZScxCDufmIMsdOuDHxJbdOGC0xtUynjIx092vXE= github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ= github.com/go-openapi/jsonreference v0.21.0/go.mod h1:LmZmgsrTkVg9LG4EaHeY8cBDslNPMo06cago5JNLkm4= +github.com/go-openapi/loads v0.21.5 h1:jDzF4dSoHw6ZFADCGltDb2lE4F6De7aWSpe+IcsRzT0= +github.com/go-openapi/loads v0.21.5/go.mod h1:PxTsnFBoBe+z89riT+wYt3prmSBP6GDAQh2l9H1Flz8= +github.com/go-openapi/spec v0.20.14 h1:7CBlRnw+mtjFGlPDRZmAMnq35cRzI91xj03HVyUi/Do= +github.com/go-openapi/spec v0.20.14/go.mod h1:8EOhTpBoFiask8rrgwbLC3zmJfz4zsCUueRuPM6GNkw= +github.com/go-openapi/strfmt v0.23.0 h1:nlUS6BCqcnAk0pyhi9Y+kdDVZdZMHfEKQiS4HaMgO/c= +github.com/go-openapi/strfmt v0.23.0/go.mod h1:NrtIpfKtWIygRkKVsxh7XQMDQW5HKQl6S5ik2elW+K4= github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= +github.com/go-openapi/validate v0.23.0 h1:2l7PJLzCis4YUGEoW6eoQw3WhyM65WSIcjX6SQnlfDw= +github.com/go-openapi/validate v0.23.0/go.mod h1:EeiAZ5bmpSIOJV1WLfyYF9qp/B1ZgSaEpHTJHtN5cbE= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= @@ -463,11 +615,15 @@ github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91 github.com/go-playground/validator/v10 v10.10.0/go.mod h1:74x4gJWsvQexRdW8Pn3dXSGrTK4nAUsbPlLADvpJkos= github.com/go-playground/validator/v10 v10.22.0 h1:k6HsTZ0sTnROkhS//R0O+55JgM8C4Bx7ia+JlgcnOao= github.com/go-playground/validator/v10 v10.22.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= +github.com/go-redis/redis/v8 v8.11.5 h1:AcZZR7igkdvfVmQTPnu9WE37LRrO/YrBH5zWyjDC0oI= +github.com/go-redis/redis/v8 v8.11.5/go.mod h1:gREzHqY1hg6oD9ngVRbLStwAWKhA0FEgq8Jd4h5lpwo= +github.com/go-resty/resty/v2 v2.15.3 h1:bqff+hcqAflpiF591hhJzNdkRsFhlB96CYfBwSFvql8= +github.com/go-resty/resty/v2 v2.15.3/go.mod h1:0fHAoK7JoBy/Ch36N8VFeMsK7xQOHhvWaC3iOktwmIU= github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 h1:p104kn46Q8WdvHunIJ9dAyjPVtrBPhSr3KT2yUst43I= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= +github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= github.com/go-viper/mapstructure/v2 v2.1.0 h1:gHnMa2Y/pIxElCH2GlZZ1lZSsn6XMtufpGyP1XxdC/w= @@ -476,6 +632,8 @@ github.com/go-webauthn/webauthn v0.9.4 h1:YxvHSqgUyc5AK2pZbqkWWR55qKeDPhP8zLDr6l github.com/go-webauthn/webauthn v0.9.4/go.mod h1:LqupCtzSef38FcxzaklmOn7AykGKhAhr9xlRbdbgnTw= github.com/go-webauthn/x v0.1.5 h1:V2TCzDU2TGLd0kSZOXdrqDVV5JB9ILnKxA9S53CSBw0= github.com/go-webauthn/x v0.1.5/go.mod h1:qbzWwcFcv4rTwtCLOZd+icnr6B7oSsAGZJqlt8cukqY= +github.com/go-zookeeper/zk v1.0.3 h1:7M2kwOsc//9VeeFiPtf+uSJlVpU66x9Ba5+8XK7/TDg= +github.com/go-zookeeper/zk v1.0.3/go.mod h1:nOB03cncLtlp4t+UAkGSV+9beXP/akpekBwL+UX1Qcw= github.com/goccy/go-json v0.9.7/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= @@ -483,13 +641,17 @@ github.com/goccy/go-yaml v1.12.0 h1:/1WHjnMsI1dlIBQutrvSMGZRQufVO3asrHfTwfACoPM= github.com/goccy/go-yaml v1.12.0/go.mod h1:wKnAMd44+9JAAnGQpWVEgBzGt3YuTaQ4uXoHvE4m7WU= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+Hoeu/iUR3ruzNvZ+yQfO03a0= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= +github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA= github.com/gofrs/uuid v4.4.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +github.com/gogo/googleapis v0.0.0-20180223154316-0cd9801be74a/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0= github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= +github.com/gogo/status v1.1.1 h1:DuHXlSFHNKqTQ+/ACf5Vs6r4X/dH2EgIzR9Vr+H65kg= +github.com/gogo/status v1.1.1/go.mod h1:jpG3dM5QPcqu19Hg8lkUhBFBa3TcLs1DG7+2Jqci7oU= github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= @@ -507,7 +669,9 @@ github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfb github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -515,6 +679,7 @@ github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= @@ -544,15 +709,22 @@ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5a github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-github/v41 v41.0.0 h1:HseJrM2JFf2vfiZJ8anY2hqBjdfY1Vlj/K27ueww4gg= +github.com/google/go-github/v41 v41.0.0/go.mod h1:XgmCA5H323A9rtgExdTcnDkcqp6S30AVACCBDOonIxg= +github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8= +github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= github.com/google/go-tpm v0.9.0 h1:sQF6YqWMi+SCXpsmS3fd21oPy/vSddwZry4JnmltHVk= github.com/google/go-tpm v0.9.0/go.mod h1:FkNVkc6C+IsvDI9Jw1OveJmxGZUUaKxtrpOS47QWKfU= github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= @@ -560,6 +732,7 @@ github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/ github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/orderedcode v0.0.1 h1:UzfcAexk9Vhv8+9pNOgRu41f16lHq725vPwnSeiG/Us= github.com/google/orderedcode v0.0.1/go.mod h1:iVyU4/qPKHY5h/wSd6rZZCDcLJNxiWO6dvsYES2Sb20= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= @@ -567,13 +740,18 @@ github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OI github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5 h1:5iH8iuqE5apketRbSFBy+X1V0o+l+8NF1avt4HWl7cA= github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= +github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= +github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= @@ -584,6 +762,8 @@ github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+ github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gax-go/v2 v2.13.0 h1:yitjD5f7jQHhyDsnhKEBU52NdvvdSeGzlAnDPT0hH1s= github.com/googleapis/gax-go/v2 v2.13.0/go.mod h1:Z/fvTZXF8/uw7Xu5GuslPw+bplx6SS338j1Is2S+B7A= +github.com/gophercloud/gophercloud v1.13.0 h1:8iY9d1DAbzMW6Vok1AxbbK5ZaUjzMp0tdyt4fX9IeJ0= +github.com/gophercloud/gophercloud v1.13.0/go.mod h1:aAVqcocTSXh2vYFZ1JTvx4EQmfgzxRcNupUfxZbBNDM= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/context v1.1.1 h1:AWwleXJkX/nhcU9bZSnZoi3h/qGYqQAGhq6zZe/aQW8= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= @@ -599,14 +779,28 @@ github.com/gorilla/sessions v1.2.2/go.mod h1:ePLdVu+jbEgHH+KWw8I1z2wqd0BAdAQh/8L github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY= +github.com/grafana/dskit v0.0.0-20231120170505-765e343eda4f h1:gyojr97YeWZ70pKNakWv5/tKwBHuLy3icnIeCo9gQr4= +github.com/grafana/dskit v0.0.0-20231120170505-765e343eda4f/go.mod h1:8dsy5tQOkeNQyjXpm5mQsbCu3H5uzeBD35MzRQFznKU= +github.com/grafana/gomemcache v0.0.0-20231023152154-6947259a0586 h1:/of8Z8taCPftShATouOrBVy6GaTTjgQd/VfNiZp/VXQ= +github.com/grafana/gomemcache v0.0.0-20231023152154-6947259a0586/go.mod h1:PGk3RjYHpxMM8HFPhKKo+vve3DdlPUELZLSDEFehPuU= +github.com/grafana/grafana-foundation-sdk/go v0.0.0-20240326122733-6f96a993222b h1:Msqs1nc2qWMxTriDCITKl58Td+7Md/RURmUmH7RXKns= +github.com/grafana/grafana-foundation-sdk/go v0.0.0-20240326122733-6f96a993222b/go.mod h1:WtWosval1KCZP9BGa42b8aVoJmVXSg0EvQXi9LDSVZQ= +github.com/grafana/loki v1.6.2-0.20231215164305-b51b7d7b5503 h1:gdrsYbmk8822v6qvPwZO5DC6QjnAW7uKJ9YXnoUmV8c= +github.com/grafana/loki v1.6.2-0.20231215164305-b51b7d7b5503/go.mod h1:d8seWXCEXkL42mhuIJYcGi6DxfehzoIpLrMQWJojvOo= +github.com/grafana/loki/pkg/push v0.0.0-20231201111602-11ef833ed3e4 h1:wQ0FnSeebhJIBkgYOD06Mxk9HV2KhtEG0hp/7R+5RUQ= +github.com/grafana/loki/pkg/push v0.0.0-20231201111602-11ef833ed3e4/go.mod h1:f3JSoxBTPXX5ec4FxxeC19nTBSxoTz+cBgS3cYLMcr0= github.com/grafana/pyroscope-go v1.1.2 h1:7vCfdORYQMCxIzI3NlYAs3FcBP760+gWuYWOyiVyYx8= github.com/grafana/pyroscope-go v1.1.2/go.mod h1:HSSmHo2KRn6FasBA4vK7BMiQqyQq8KSuBKvrhkXxYPU= github.com/grafana/pyroscope-go/godeltaprof v0.1.8 h1:iwOtYXeeVSAeYefJNaxDytgjKtUuKQbJqgAIjlnicKg= github.com/grafana/pyroscope-go/godeltaprof v0.1.8/go.mod h1:2+l7K7twW49Ct4wFluZD3tZ6e0SjanjcUUBPVD/UuGU= +github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc h1:GN2Lv3MGO7AS6PrRoT6yV5+wkrOpcszoIsO4+4ds248= +github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc/go.mod h1:+JKpmjMGhpgPL+rXZ5nsZieVzvarn86asRlBg4uNGnk= github.com/graph-gophers/dataloader v5.0.0+incompatible h1:R+yjsbrNq1Mo3aPG+Z/EKYrXrXXUNJHOgbRt+U6jOug= github.com/graph-gophers/dataloader v5.0.0+incompatible/go.mod h1:jk4jk0c5ZISbKaMe8WsVopGB5/15GvGHMdMdPtwlRp4= github.com/graph-gophers/graphql-go v1.5.0 h1:fDqblo50TEpD0LY7RXk/LFVYEVqo3+tXMNMPSVXA1yc= github.com/graph-gophers/graphql-go v1.5.0/go.mod h1:YtmJZDLbF1YYNrlNAuiO5zAStUWc3XZT07iGsVqe1Os= +github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 h1:+ngKgrYPPJrOjhax5N+uePQ0Fh1Z7PheYoUI/0nzkPA= +github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= @@ -620,6 +814,7 @@ github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4 github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjwqUPTYmYuemVOx+Ys= github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0/go.mod h1:ggCgvZ2r7uOoQjOyu2Y1NhHmEPPzzuhWgcza5M1Ji1I= +github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645/go.mod h1:6iZfnjpejD4L/4DwD7NryNaJyCQdzwWwH2MWhCA90Kw= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c h1:6rhixN/i8ZofjG1Y75iExal34USq5p+wiN1tpie8IrU= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c/go.mod h1:NMPJylDgVpX0MLRlPy15sqSwOFv/U1GZ2m21JhFfek0= github.com/gtank/merlin v0.1.1-0.20191105220539-8318aed1a79f/go.mod h1:T86dnYJhcGOh5BjZFCJWTDeTK7XW8uE+E21Cy/bIQ+s= @@ -628,10 +823,18 @@ github.com/gtank/merlin v0.1.1/go.mod h1:T86dnYJhcGOh5BjZFCJWTDeTK7XW8uE+E21Cy/b github.com/gtank/ristretto255 v0.1.2 h1:JEqUCPA1NvLq5DwYtuzigd7ss8fwbYay9fi4/5uMzcc= github.com/gtank/ristretto255 v0.1.2/go.mod h1:Ph5OpO6c7xKUGROZfWVLiJf9icMDwUeIvY4OmlYW69o= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= +github.com/hashicorp/consul/api v1.29.2 h1:aYyRn8EdE2mSfG14S1+L9Qkjtz8RzmaWh6AcNGRNwPw= +github.com/hashicorp/consul/api v1.29.2/go.mod h1:0YObcaLNDSbtlgzIRtmRXI1ZkeuK0trCBxwZQ4MYnIk= +github.com/hashicorp/consul/proto-public v0.6.2 h1:+DA/3g/IiKlJZb88NBn0ZgXrxJp2NlvCZdEyl+qxvL0= +github.com/hashicorp/consul/proto-public v0.6.2/go.mod h1:cXXbOg74KBNGajC+o8RlA502Esf0R9prcoJgiOX/2Tg= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/consul/sdk v0.16.1 h1:V8TxTnImoPD5cj0U9Spl0TUxcytjcbbJeADFF07KdHg= github.com/hashicorp/consul/sdk v0.16.1/go.mod h1:fSXvwxB2hmh1FMZCNl6PwX0Q/1wdWtHJcZ7Ea5tns0s= +github.com/hashicorp/cronexpr v1.1.2 h1:wG/ZYIKT+RT3QkOdgYc+xsKWVRgnxJ1OJtjjy84fJ9A= +github.com/hashicorp/cronexpr v1.1.2/go.mod h1:P4wA0KBl9C5q2hABiMO7cp6jcIg96CDh1Efb3g1PWA4= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= +github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-bexpr v0.1.10 h1:9kuI5PFotCboP3dkDYFr/wi0gg0QVbSNz5oFRpxn4uE= github.com/hashicorp/go-bexpr v0.1.10/go.mod h1:oxlubA2vC/gFVfX1A6JGp7ls7uCDlfJn732ehYYg+g0= github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= @@ -648,23 +851,32 @@ github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjh github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc= github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= +github.com/hashicorp/go-msgpack v0.5.5 h1:i9R9JSrqIz0QVLz3sz+i3YJdT7TTSLcfLLzJi9aZTuI= +github.com/hashicorp/go-msgpack v0.5.5/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= +github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= +github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= github.com/hashicorp/go-plugin v1.6.2 h1:zdGAEd0V1lCaU0u+MxWQhtSDQmahpkwOun8U8EiRVog= github.com/hashicorp/go-plugin v1.6.2/go.mod h1:CkgLQ5CZqNmdL9U9JzM532t8ZiYQ35+pj3b1FD37R0Q= github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= github.com/hashicorp/go-retryablehttp v0.7.7 h1:C8hUCYzor8PIfXHa4UrZkU4VvK8o9ISHxT2Q8+VepXU= github.com/hashicorp/go-retryablehttp v0.7.7/go.mod h1:pkQpWZeYWskR+D1tR2O5OcBFOxfA7DoAO6xtkuQnHTk= github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= +github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc= +github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= github.com/hashicorp/go-safetemp v1.0.0 h1:2HR189eFNrjHQyENnQMMpCiBAsRxzbTMIgBhEyExpmo= github.com/hashicorp/go-safetemp v1.0.0/go.mod h1:oaerMy3BhqiTbVye6QuFhFtIceqFoDHxNAB65b+Rj1I= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= +github.com/hashicorp/go-sockaddr v1.0.6 h1:RSG8rKU28VTUTvEKghe5gIhIQpv8evvNpnDEyqO4u9I= +github.com/hashicorp/go-sockaddr v1.0.6/go.mod h1:uoUUmtwU7n9Dv3O4SNLeFvg0SxQ3lyjsj6+CCykpaxI= github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek= -github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= +github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= @@ -677,12 +889,21 @@ github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= +github.com/hashicorp/mdns v1.0.4/go.mod h1:mtBihi+LeNXGtG8L9dX59gAEa12BDtBQSp4v/YAJqrc= github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= +github.com/hashicorp/memberlist v0.5.0 h1:EtYPN8DpAURiapus508I4n9CzHs2W+8NZGbmmR/prTM= +github.com/hashicorp/memberlist v0.5.0/go.mod h1:yvyXLpo0QaGE59Y7hDTsTzDD25JYBZ4mHgHUZ8lrOI0= +github.com/hashicorp/nomad/api v0.0.0-20240717122358-3d93bd3778f3 h1:fgVfQ4AC1avVOnu2cfms8VAiD8lUq3vWI8mTocOXN/w= +github.com/hashicorp/nomad/api v0.0.0-20240717122358-3d93bd3778f3/go.mod h1:svtxn6QnrQ69P23VvIWMR34tg3vmwLz4UdUzm1dSCgE= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= +github.com/hashicorp/serf v0.10.1 h1:Z1H2J60yRKvfDYAOZLd2MU0ND4AH/WDz7xYHDWQsIPY= +github.com/hashicorp/serf v0.10.1/go.mod h1:yL2t6BqATOLGc5HF7qbFkTfXoPIY0WZdWHfEvMqbG+4= github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE= github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= github.com/hdevalence/ed25519consensus v0.1.0 h1:jtBwzzcHuTmFrQN6xQZn6CQEO/V9f7HsjsjeEZ6auqU= github.com/hdevalence/ed25519consensus v0.1.0/go.mod h1:w3BHWjwJbFU29IRHL1Iqkw3sus+7FctEyM4RqDxYNzo= +github.com/hetznercloud/hcloud-go/v2 v2.10.2 h1:9gyTUPhfNbfbS40Spgij5mV5k37bOZgt8iHKCbfGs5I= +github.com/hetznercloud/hcloud-go/v2 v2.10.2/go.mod h1:xQ+8KhIS62W0D78Dpi57jsufWh844gUw1az5OUvaeq8= github.com/holiman/billy v0.0.0-20240216141850-2abb0c79d3c4 h1:X4egAf/gcS1zATw6wn4Ej8vjuVGxeHdan+bRb2ebyv4= github.com/holiman/billy v0.0.0-20240216141850-2abb0c79d3c4/go.mod h1:5GuXa7vkL8u9FkFuWdVvfR5ix8hRB7DbOAaYULamFpc= github.com/holiman/bloomfilter/v2 v2.0.3 h1:73e0e/V0tCydx14a0SCYS/EWCxgwLZ18CZcZKVu0fao= @@ -694,12 +915,16 @@ github.com/huandu/go-assert v1.1.5 h1:fjemmA7sSfYHJD7CUqs9qTwwfdNAx7/j2/ZlHXzNB3 github.com/huandu/go-assert v1.1.5/go.mod h1:yOLvuqZwmcHIC5rIzrBhT7D3Q9c3GFnd0JrPVhn/06U= github.com/huandu/skiplist v1.2.0 h1:gox56QD77HzSC0w+Ws3MH3iie755GBJU1OER3h5VsYw= github.com/huandu/skiplist v1.2.0/go.mod h1:7v3iFjLcSAzO4fN5B8dvebvo/qsfumiLiDXMrPiHF9w= +github.com/huandu/xstrings v1.3.3/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= +github.com/huandu/xstrings v1.4.0 h1:D17IlohoQq4UcpqD7fDk80P7l+lwAmlFaBHgOipl2FU= +github.com/huandu/xstrings v1.4.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/huin/goupnp v1.3.0 h1:UvLUlWDNpoUdYzb2TCn+MuTWtcjXKSza2n6CBdQ0xXc= github.com/huin/goupnp v1.3.0/go.mod h1:gnGPsThkYa7bFi/KWmEysQRf48l2dvR5bxr2OFckNX8= github.com/iancoleman/strcase v0.3.0 h1:nTXanmYxhfFAMjZL34Ov6gkzEsSJZ5DbhxWjvSASxEI= github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4= github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= github.com/improbable-eng/grpc-web v0.15.0 h1:BN+7z6uNXZ1tQGcNAuaU1YjsLTApzkjt2tzCixLaUPQ= @@ -709,6 +934,8 @@ github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2 github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/invopop/jsonschema v0.12.0 h1:6ovsNSuvn9wEQVOyc72aycBMVQFKz7cPdMJn10CvzRI= github.com/invopop/jsonschema v0.12.0/go.mod h1:ffZ5Km5SWWRAIN6wbDXItl95euhFz2uON45H2qjYt+0= +github.com/ionos-cloud/sdk-go/v6 v6.1.11 h1:J/uRN4UWO3wCyGOeDdMKv8LWRzKu6UIkLEaes38Kzh8= +github.com/ionos-cloud/sdk-go/v6 v6.1.11/go.mod h1:EzEgRIDxBELvfoa/uBN0kOQaqovLjUWEB7iW4/Q+t4k= github.com/jackc/chunkreader v1.0.0/go.mod h1:RT6O25fNZIuasFJRyZ4R/Y2BbhasbmZXF9QQ7T3kePo= github.com/jackc/chunkreader/v2 v2.0.0/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk= github.com/jackc/chunkreader/v2 v2.0.1 h1:i+RDz65UE+mmpjTfyz0MoVTnzeYxroil2G82ki7MGG8= @@ -781,12 +1008,18 @@ github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2E github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/julienschmidt/httprouter v1.3.0 h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4dN7jwJOQ1U= +github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= +github.com/kelseyhightower/envconfig v1.4.0 h1:Im6hONhd3pLkfDFsbRgu68RDNkGF1r3dvMUtDTo2cv8= +github.com/kelseyhightower/envconfig v1.4.0/go.mod h1:cccZRl6mQpaq41TPp5QxidR+Sa3axMbJDNb//FQX6Gg= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.11.4/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= @@ -798,8 +1031,11 @@ github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa02 github.com/klauspost/cpuid/v2 v2.2.7 h1:ZWSB3igEs+d0qvnxR/ZBzXVmxkgt8DdzP6m9pfuVLDM= github.com/klauspost/cpuid/v2 v2.2.7/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= +github.com/kolo/xmlrpc v0.0.0-20220921171641-a4b6fa1dd06b h1:udzkj9S/zlT5X367kqJis0QP7YMxobob6zhzq6Yre00= +github.com/kolo/xmlrpc v0.0.0-20220921171641-a4b6fa1dd06b/go.mod h1:pcaDhQK0/NJZEvtCO0qQPPropqV0sJOJ6YW7X+9kRwM= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= @@ -826,10 +1062,17 @@ github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= +github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0= +github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= +github.com/linode/linodego v1.37.0 h1:B/2Spzv9jYXzKA+p+GD8fVCNJ7Wuw6P91ZDD9eCkkso= +github.com/linode/linodego v1.37.0/go.mod h1:L7GXKFD3PoN2xSEtFc04wIXP5WK65O10jYQx0PQISWQ= github.com/linxGnu/grocksdb v1.7.16 h1:Q2co1xrpdkr5Hx3Fp+f+f7fRGhQFQhvi/+226dtLmA8= github.com/linxGnu/grocksdb v1.7.16/go.mod h1:JkS7pl5qWpGpuVb3bPqTz8nC12X3YtPZT+Xq7+QfQo4= +github.com/lithammer/dedent v1.1.0 h1:VNzHMVCBNG1j0fh3OrsFRkVUwStdDArbgBWoPAffktY= +github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc= github.com/logrusorgru/aurora v2.0.3+incompatible h1:tOpm7WcpBTn4fjmVfgpQq0EfczGlG91VSDkswnjF5A8= github.com/logrusorgru/aurora v2.0.3+incompatible/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= @@ -859,6 +1102,7 @@ github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOA github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= @@ -871,12 +1115,20 @@ github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5 github.com/mfridman/interpolate v0.0.2 h1:pnuTK7MQIxxFz1Gr+rjSIx9u7qVjf5VOoM/u6BbAxPY= github.com/mfridman/interpolate v0.0.2/go.mod h1:p+7uk6oE07mpE/Ik1b8EckO0O4ZXiGAfshKBWLUM9Xg= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= +github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= +github.com/miekg/dns v1.1.61 h1:nLxbwF3XxhwVSm8g9Dghm9MHPaUZuqhPiGL+675ZmEs= +github.com/miekg/dns v1.1.61/go.mod h1:mnAarhS3nWaW+NVP2wTkYVIZyHNJ098SJZUki3eykwQ= github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM= github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 h1:QRUSJEgZn2Snx0EmT/QLXibWjSUDjKWvXIT19NBVp94= github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM= github.com/minio/highwayhash v1.0.2 h1:Aak5U0nElisjDCfPSG79Tgzkn2gl66NxOMspRrKnA/g= github.com/minio/highwayhash v1.0.2/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= +github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI= +github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= +github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= +github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= @@ -894,11 +1146,24 @@ github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyua github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/pointerstructure v1.2.0 h1:O+i9nHnXS3l/9Wu7r4NrEdwA2VFTicjUEN1uBnDo34A= github.com/mitchellh/pointerstructure v1.2.0/go.mod h1:BRAsLI5zgXmw97Lf6s25bs8ohIXc3tViBH44KcwB2g4= +github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= +github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= +github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/mmcloughlin/addchain v0.4.0 h1:SobOdjm2xLj1KkXN5/n0xTIWyZA2+s99UCY1iPfkHRY= github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqkyU72HC5wJ4RlU= github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0= github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo= +github.com/moby/patternmatcher v0.6.0 h1:GmP9lR19aU5GqSSFko+5pRqHi+Ohk1O69aFiKkVGiPk= +github.com/moby/patternmatcher v0.6.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc= +github.com/moby/spdystream v0.4.0 h1:Vy79D6mHeJJjiPdFEL2yku1kl0chZpJfZcPpb16BRl8= +github.com/moby/spdystream v0.4.0/go.mod h1:xBAYlnt/ay+11ShkdFKNAG7LsyK/tmNBVvVOwrfMgdI= +github.com/moby/sys/sequential v0.6.0 h1:qrx7XFUd/5DxtqcoH1h438hF5TmOvzC/lspjy7zgvCU= +github.com/moby/sys/sequential v0.6.0/go.mod h1:uyv8EUTrca5PnDsdMGXhZe6CCe8U/UiTWd+lL+7b/Ko= +github.com/moby/sys/user v0.3.0 h1:9ni5DlcW5an3SvRSx4MouotOygvzaXbaSrc/wGDFWPo= +github.com/moby/sys/user v0.3.0/go.mod h1:bG+tYYYJgaMtRKgEmuueC0hJEAZWwtIbZTB+85uoHjs= +github.com/moby/sys/userns v0.1.0 h1:tVLXkFOxVu9A64/yh59slHVv9ahO9UIev4JZusOLG/g= +github.com/moby/sys/userns v0.1.0/go.mod h1:IHUYgu/kao6N8YZlp9Cf444ySSvCmDlmzUcYfDHOl28= github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -908,6 +1173,8 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 h1:n6/2gBQ3RWajuToeY6ZtZTIKv2v7ThUy5KKusIT0yc0= +github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00/go.mod h1:Pm3mSP3c5uWn86xMLZ5Sa7JB9GsEZySvHYXCTK4E9q4= github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= github.com/montanaflynn/stats v0.7.1 h1:etflOAAHORrCC44V+aR6Ftzort912ZU+YLiSTuV8eaE= github.com/montanaflynn/stats v0.7.1/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= @@ -922,6 +1189,10 @@ github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ib github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= +github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus= +github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdhx/f4= github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= @@ -933,6 +1204,7 @@ github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/oklog/run v1.1.0 h1:GEenZ1cK0+q0+wsJew9qUg/DyD8k3JzYsZAi5gYi2mA= github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU= +github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= @@ -948,35 +1220,53 @@ github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7J github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= -github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk= -github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0= +github.com/onsi/gomega v1.34.2 h1:pNCwDkzrsv7MS9kpaQvVb1aVLahQXyJ/Tv5oAZMI3i8= +github.com/onsi/gomega v1.34.2/go.mod h1:v1xfxRgk0KIsG+QOdm7p8UosrOzPYRo60fd3B/1Dukc= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/opencontainers/runc v1.1.10 h1:EaL5WeO9lv9wmS6SASjszOeQdSctvpbu0DdBQBizE40= github.com/opencontainers/runc v1.1.10/go.mod h1:+/R6+KmDlh+hOO8NkjmgkG9Qzvypzk0yXxAPYYR65+M= +github.com/opentracing-contrib/go-grpc v0.0.0-20210225150812-73cb765af46e h1:4cPxUYdgaGzZIT5/j0IfqOrrXmq6bG8AwvwisMXpdrg= +github.com/opentracing-contrib/go-grpc v0.0.0-20210225150812-73cb765af46e/go.mod h1:DYR5Eij8rJl8h7gblRrOZ8g0kW1umSpKqYIBTgeDtLo= +github.com/opentracing-contrib/go-stdlib v1.0.0 h1:TBS7YuVotp8myLon4Pv7BtCBzOTo1DeZCld0Z63mW2w= +github.com/opentracing-contrib/go-stdlib v1.0.0/go.mod h1:qtI1ogk+2JhVPIXVc6q+NHziSmy2W5GbdQZFUHADCBU= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/ory/dockertest v3.3.5+incompatible h1:iLLK6SQwIhcbrG783Dghaaa3WPzGc+4Emza6EbVUUGA= github.com/ory/dockertest v3.3.5+incompatible/go.mod h1:1vX4m9wsvi00u5bseYwXaSnhNrne+V0E6LAcBILJdPs= +github.com/otiai10/copy v1.14.0 h1:dCI/t1iTdYGtkvCuBG2BgR6KZa83PTclw4U5n2wAllU= +github.com/otiai10/copy v1.14.0/go.mod h1:ECfuL02W+/FkTWZWgQqXPWZgW9oeKCSQ5qVfSc4qc4w= +github.com/otiai10/mint v1.5.1 h1:XaPLeE+9vGbuyEHem1JNk3bYc7KKqyI/na0/mLd/Kks= +github.com/otiai10/mint v1.5.1/go.mod h1:MJm72SBthJjz8qhefc4z1PYEieWmy8Bku7CjcAqyUSM= +github.com/ovh/go-ovh v1.6.0 h1:ixLOwxQdzYDx296sXcgS35TOPEahJkpjMGtzPadCjQI= +github.com/ovh/go-ovh v1.6.0/go.mod h1:cTVDnl94z4tl8pP1uZ/8jlVxntjSIf09bNcQ5TJSC7c= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc= github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= +github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 h1:onHthvaw9LFnH4t2DcNVpwGmV9E1BkGknEliJkfwQj0= +github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58/go.mod h1:DXv8WO4yhMYhSNPKjeNKa5WY9YCIEBRbNzFFPJbWO6Y= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pelletier/go-toml/v2 v2.0.1/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo= github.com/pelletier/go-toml/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNHvL12M= github.com/pelletier/go-toml/v2 v2.2.3/go.mod h1:MfCQTFTvCcUyyvvwm1+G6H/jORL20Xlb6rzQu9GuUkc= +github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= +github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCrJTQWu0XVbaOlby/2lO20uSCHEMzzplHXte1o= github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08 h1:hDSdbBuw3Lefr6R18ax0tZ2BJeNB3NehB3trOwYBsdU= github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= +github.com/pierrec/lz4/v4 v4.1.18 h1:xaKrnTkyoqfh1YItXl56+6KJNVYWlEEPuAQW9xsplYQ= +github.com/pierrec/lz4/v4 v4.1.18/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= +github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= +github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -989,14 +1279,19 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= +github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/pressly/goose/v3 v3.21.1 h1:5SSAKKWej8LVVzNLuT6KIvP1eFDuPvxa+B6H0w78buQ= github.com/pressly/goose/v3 v3.21.1/go.mod h1:sqthmzV8PitchEkjecFJII//l43dLOCzfWh8pHEe+vE= +github.com/prometheus/alertmanager v0.27.0 h1:V6nTa2J5V4s8TG4C4HtrBP/WNSebCCTYGGv4qecA/+I= +github.com/prometheus/alertmanager v0.27.0/go.mod h1:8Ia/R3urPmbzJ8OsdvmZvIprDwvwmYCmUbwBL+jlPOE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= +github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= +github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= @@ -1009,12 +1304,21 @@ github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7q github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= +github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= +github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= +github.com/prometheus/common v0.29.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= github.com/prometheus/common v0.60.0 h1:+V9PAREWNvJMAuJ1x1BaWl9dewMW4YrHZQbx0sJNllA= github.com/prometheus/common v0.60.0/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= +github.com/prometheus/common/sigv4 v0.1.0 h1:qoVebwtwwEhS85Czm2dSROY5fTo2PAPEVdDeppTwGX4= +github.com/prometheus/common/sigv4 v0.1.0/go.mod h1:2Jkxxk9yYvCkE5G1sQT7GuEXm57JrvHu9k5YwTjsNtI= +github.com/prometheus/exporter-toolkit v0.11.0 h1:yNTsuZ0aNCNFQ3aFTD2uhPOvr4iD7fdBvKPAEGkNf+g= +github.com/prometheus/exporter-toolkit v0.11.0/go.mod h1:BVnENhnNecpwoTLiABx7mrPB/OLRIgN74qlQbV+FK1Q= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= +github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/prometheus v0.54.1 h1:vKuwQNjnYN2/mDoWfHXDhAsz/68q/dQDb+YbcEqU7MQ= @@ -1044,6 +1348,7 @@ github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99 github.com/rs/cors v1.10.1 h1:L0uuZVXIKlI1SShY2nhFfo44TYvDPQ1w4oFkUJNfhyo= github.com/rs/cors v1.10.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= +github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8= @@ -1064,16 +1369,25 @@ github.com/santhosh-tekuri/jsonschema/v5 v5.3.1/go.mod h1:uToXkOrWAZ6/Oc07xWQrPO github.com/sasha-s/go-deadlock v0.3.1 h1:sqv7fDNShgjcaxkO0JNcOAlr8B9+cV5Ey/OB71efZx0= github.com/sasha-s/go-deadlock v0.3.1/go.mod h1:F73l+cr82YSh10GxyRI6qZiCgK64VaZjwesgfQ1/iLM= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= +github.com/scaleway/scaleway-sdk-go v1.0.0-beta.29 h1:BkTk4gynLjguayxrYxZoMZjBnAOh7ntQvUkOFmkMqPU= +github.com/scaleway/scaleway-sdk-go v1.0.0-beta.29/go.mod h1:fCa7OJZ/9DRTnOKmxvT6pn+LPWUptQAmHF/SBJUGEcg= github.com/scylladb/go-reflectx v1.0.1 h1:b917wZM7189pZdlND9PbIJ6NQxfDPfBvUaQ7cjj1iZQ= github.com/scylladb/go-reflectx v1.0.1/go.mod h1:rWnOfDIRWBGN0miMLIcoPt/Dhi2doCMZqwMCJ3KupFc= +github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= +github.com/sercand/kuberesolver/v5 v5.1.1 h1:CYH+d67G0sGBj7q5wLK61yzqJJ8gLLC8aeprPTHb6yY= +github.com/sercand/kuberesolver/v5 v5.1.1/go.mod h1:Fs1KbKhVRnB2aDWN12NjKCB+RgYMWZJ294T3BtmVCpQ= +github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ= +github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/sethvargo/go-retry v0.2.4 h1:T+jHEQy/zKJf5s95UkguisicE0zuF9y7+/vgz08Ocec= github.com/sethvargo/go-retry v0.2.4/go.mod h1:1afjQuvh7s4gflMObvjLPaWgluLLyhA1wmVZ6KLpICw= github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKlUeu/erjjvaPEYiI= github.com/shirou/gopsutil v3.21.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/shirou/gopsutil/v3 v3.24.3 h1:eoUGJSmdfLzJ3mxIhmOAhgKEKgQkeOwKpz1NbhVnuPE= github.com/shirou/gopsutil/v3 v3.24.3/go.mod h1:JpND7O217xa72ewWz9zN2eIIkPWsDN/3pl0H8Qt0uwg= +github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= +github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= @@ -1084,6 +1398,7 @@ github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeV github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= +github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/smartcontractkit/ccip-owner-contracts v0.0.0-20240926212305-a6deabdfce86 h1:qQH6fZZe31nBAG6INHph3z5ysDTPptyu0TR9uoJ1+ok= @@ -1092,8 +1407,8 @@ github.com/smartcontractkit/chain-selectors v1.0.29 h1:aZ9+OoUSMn4nqnissHtDvDoKR github.com/smartcontractkit/chain-selectors v1.0.29/go.mod h1:xsKM0aN3YGcQKTPRPDDtPx2l4mlTN1Djmg0VVXV40b8= github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgBc2xpDKBco/Q4h4ydl6+UUU= github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= -github.com/smartcontractkit/chainlink-ccip v0.0.0-20241115103032-ec39846b3436 h1:n3wy96cqxsaJGoCDbFulFPHind6Etq0tiWZcwAnTs3Q= -github.com/smartcontractkit/chainlink-ccip v0.0.0-20241115103032-ec39846b3436/go.mod h1:4adKaHNaxFsRvV/lYfqtbsWyyvIPUMLR0FdOJN/ljis= +github.com/smartcontractkit/chainlink-ccip v0.0.0-20241118091009-43c2b4804cec h1:5vS1k8Qn09p8SQ3JzvS8iy4Pve7s3aVq+UPIdl74smY= +github.com/smartcontractkit/chainlink-ccip v0.0.0-20241118091009-43c2b4804cec/go.mod h1:4adKaHNaxFsRvV/lYfqtbsWyyvIPUMLR0FdOJN/ljis= github.com/smartcontractkit/chainlink-common v0.3.1-0.20241114134822-aadff98ef068 h1:2llRW4Tn9W/EZp2XvXclQ9IjeTBwwxVPrrqaerX+vCE= github.com/smartcontractkit/chainlink-common v0.3.1-0.20241114134822-aadff98ef068/go.mod h1:ny87uTW6hLjCTLiBqBRNFEhETSXhHWevYlPclT5lSco= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241017133723-5277829bd53f h1:BwrIaQIx5Iy6eT+DfLhFfK2XqjxRm74mVdlX8gbu4dw= @@ -1110,6 +1425,14 @@ github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241112213949-65ae1375266 github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241112213949-65ae13752669/go.mod h1:mGmRvlk54ufCufV4EBWizOGtXoXfePoFAuYEVC8EwdY= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241017135645-176a23722fd8 h1:B4DFdk6MGcQnoCjjMBCx7Z+GWQpxRWJ4O8W/dVJyWGA= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241017135645-176a23722fd8/go.mod h1:WkBqgBo+g34Gm5vWkDDl8Fh3Mzd7bF5hXp7rryg0t5o= +github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.13 h1:T0kbw07Vb6xUyA9MIJZfErMgWseWi1zf7cYvRpoq7ug= +github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.13/go.mod h1:1CKUOzoK+Ga19WuhRH9pxZ+qUUnrlIx108VEA6qSzeQ= +github.com/smartcontractkit/chainlink-testing-framework/lib/grafana v1.50.0 h1:VIxK8u0Jd0Q/VuhmsNm6Bls6Tb31H/sA3A/rbc5hnhg= +github.com/smartcontractkit/chainlink-testing-framework/lib/grafana v1.50.0/go.mod h1:lyAu+oMXdNUzEDScj2DXB2IueY+SDXPPfyl/kb63tMM= +github.com/smartcontractkit/chainlink-testing-framework/seth v1.50.5 h1:BxN9wddNLiugruN3k7nYoSMQTO0tz9qR+vILFW2l0Ps= +github.com/smartcontractkit/chainlink-testing-framework/seth v1.50.5/go.mod h1:lJk0atEJ5Zyo3Tqrmf1Pl9jUEe79EgDb9bD3K5OTUBI= +github.com/smartcontractkit/chainlink-testing-framework/wasp v1.50.2 h1:7bCdbTUWzyczQg+kwHCxlx6y07zE8HNB8+ntTne6qd8= +github.com/smartcontractkit/chainlink-testing-framework/wasp v1.50.2/go.mod h1:MltlNu3jcXm/DyLN98I5TFNtu/o1NNAcaPAFKMXWk70= github.com/smartcontractkit/grpc-proxy v0.0.0-20240830132753-a7e17fec5ab7 h1:12ijqMM9tvYVEm+nR826WsrNi6zCKpwBhuApq127wHs= github.com/smartcontractkit/grpc-proxy v0.0.0-20240830132753-a7e17fec5ab7/go.mod h1:FX7/bVdoep147QQhsOPkYsPEXhGZjeYx6lBSaSXtZOA= github.com/smartcontractkit/libocr v0.0.0-20241007185508-adbe57025f12 h1:NzZGjaqez21I3DU7objl3xExTH4fxYvzTqar8DC6360= @@ -1123,6 +1446,10 @@ github.com/smartcontractkit/wsrpc v0.8.2/go.mod h1:2u/wfnhl5R4RlSXseN4n6HHIWk8w1 github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= +github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js= +github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0= +github.com/sony/gobreaker v0.5.0 h1:dRCvqm0P490vZPmy7ppEk2qCnCieBooFJ+YoXGYB+yg= +github.com/sony/gobreaker v0.5.0/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= @@ -1132,6 +1459,7 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= @@ -1186,6 +1514,8 @@ github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125 h1:3SNcvBmEPE1YlB github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125/go.mod h1:M8agBzgqHIhgj7wEn9/0hJUZcrvt9VY+Ln+S1I5Mha0= github.com/test-go/testify v1.1.4 h1:Tf9lntrKUMHiXQ07qBScBTSA0dhYQlu83hswqelv1iE= github.com/test-go/testify v1.1.4/go.mod h1:rH7cfJo/47vWGdi4GPj16x3/t1xGOj2YxzmNQzk2ghU= +github.com/testcontainers/testcontainers-go v0.34.0 h1:5fbgF0vIN5u+nD3IWabQwRybuB4GY8G2HHgCkbMzMHo= +github.com/testcontainers/testcontainers-go v0.34.0/go.mod h1:6P/kMkQe8yqPHfPWNulFGdFHTD8HB2vLq/231xY2iPQ= github.com/theodesp/go-heaps v0.0.0-20190520121037-88e35354fe0a h1:YuO+afVc3eqrjiCUizNCxI53bl/BnPiVwXqLzqYTqgU= github.com/theodesp/go-heaps v0.0.0-20190520121037-88e35354fe0a/go.mod h1:/sfW47zCZp9FrtGcWyo1VjbgDaodxX9ovZvgLb/MxaA= github.com/tidwall/btree v1.6.0 h1:LDZfKfQIBHGHWSwckhXI0RPSXzlo+KYdjK7FWSqOzzg= @@ -1212,6 +1542,10 @@ github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/tyler-smith/go-bip39 v1.1.0 h1:5eUemwrMargf3BSLRRCalXT93Ns6pQJIjYQN2nyfOP8= github.com/tyler-smith/go-bip39 v1.1.0/go.mod h1:gUYDtqQw1JS3ZJ8UWVcGTGqqr6YIN3CWg+kkNaLt55U= +github.com/uber/jaeger-client-go v2.30.0+incompatible h1:D6wyKGCecFaSRUpo8lCVbaOOb6ThwMmTEbhRwtKR97o= +github.com/uber/jaeger-client-go v2.30.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= +github.com/uber/jaeger-lib v2.4.1+incompatible h1:td4jdvLcExb4cBISKIpHuGoVXh+dVKhn2Um6rjCsSsg= +github.com/uber/jaeger-lib v2.4.1+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/ugorji/go v1.2.7/go.mod h1:nF9osbDWLy6bDVv/Rtoh6QgnvNDpmCalQV5urGCCS6M= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= @@ -1236,6 +1570,8 @@ github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyC github.com/valyala/fastjson v1.4.1 h1:hrltpHpIpkaxll8QltMU8c3QZ5+qIiCL8yKqPFJI/yE= github.com/valyala/fastjson v1.4.1/go.mod h1:nV6MsjxL2IMJQUoHDIrjEI7oLyeqK6aBD7EFWPsvP8o= github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= +github.com/vultr/govultr/v2 v2.17.2 h1:gej/rwr91Puc/tgh+j33p/BLR16UrIPnSr+AIwYWZQs= +github.com/vultr/govultr/v2 v2.17.2/go.mod h1:ZFOKGWmgjytfyjeyAdhQlSWwTjh2ig+X49cAp50dzXI= github.com/wk8/go-ordered-map/v2 v2.1.8 h1:5h/BUHu93oj4gIdvHHHGsScSTMijfx5PeYkE/fJgbpc= github.com/wk8/go-ordered-map/v2 v2.1.8/go.mod h1:5nJHM5DyteebpVlHnWMV0rPz6Zp7+xBAnxjb1X5vnTw= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= @@ -1244,15 +1580,20 @@ github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= +github.com/xlab/treeprint v1.2.0 h1:HzHnuAF1plUN2zGlAFHbSQP2qJ0ZAD3XF5XD7OesXRQ= +github.com/xlab/treeprint v1.2.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGCjxCBTO/36wtF6j2nSip77qHd4x4= github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM= github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +github.com/yuin/gopher-lua v1.1.0 h1:BojcDhfyDWgU2f2TOzYK/g5p2gxMrku8oupLDqlnSqE= +github.com/yuin/gopher-lua v1.1.0/go.mod h1:GBR0iDaNXjAgGg9zfCvksxSRnQx76gclCIb7kdAd1Pw= github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= @@ -1272,6 +1613,12 @@ go.dedis.ch/protobuf v1.0.11/go.mod h1:97QR256dnkimeNdfmURz0wAMNVbd1VmLXhG1CrTYr go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.9 h1:8x7aARPEXiXbHmtUwAIv7eV2fQFHrLLavdiJ3uzJXoI= go.etcd.io/bbolt v1.3.9/go.mod h1:zaO32+Ti0PK1ivdPtgMESzuzL2VPoIG1PCQNvOdo/dE= +go.etcd.io/etcd/api/v3 v3.5.14 h1:vHObSCxyB9zlF60w7qzAdTcGaglbJOpSj1Xj9+WGxq0= +go.etcd.io/etcd/api/v3 v3.5.14/go.mod h1:BmtWcRlQvwa1h3G2jvKYwIQy4PkHlDej5t7uLMUdJUU= +go.etcd.io/etcd/client/pkg/v3 v3.5.14 h1:SaNH6Y+rVEdxfpA2Jr5wkEvN6Zykme5+YnbCkxvuWxQ= +go.etcd.io/etcd/client/pkg/v3 v3.5.14/go.mod h1:8uMgAokyG1czCtIdsq+AGyYQMvpIKnSvPjFMunkgeZI= +go.etcd.io/etcd/client/v3 v3.5.14 h1:CWfRs4FDaDoSz81giL7zPpZH2Z35tbOrAJkkjMqOupg= +go.etcd.io/etcd/client/v3 v3.5.14/go.mod h1:k3XfdV/VIHy/97rqWjoUzrj9tk7GgJGH9J8L4dNXmAk= go.mongodb.org/mongo-driver v1.11.0/go.mod h1:s7p5vEtfbeR1gYi6pnj3c3/urpbLv2T5Sfd6Rp2HBB8= go.mongodb.org/mongo-driver v1.15.0 h1:rJCKC8eEliewXjZGf0ddURtl7tTVy1TK3bfl0gkUSLc= go.mongodb.org/mongo-driver v1.15.0/go.mod h1:Vzb0Mk/pa7e6cWw85R4F/endUC3u0U9jGcNU603k65c= @@ -1284,6 +1631,10 @@ go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= +go.opentelemetry.io/collector/pdata v1.12.0 h1:Xx5VK1p4VO0md8MWm2icwC1MnJ7f8EimKItMWw46BmA= +go.opentelemetry.io/collector/pdata v1.12.0/go.mod h1:MYeB0MmMAxeM0hstCFrCqWLzdyeYySim2dG6pDT6nYI= +go.opentelemetry.io/collector/semconv v0.105.0 h1:8p6dZ3JfxFTjbY38d8xlQGB1TQ3nPUvs+D0RERniZ1g= +go.opentelemetry.io/collector/semconv v0.105.0/go.mod h1:yMVUCNoQPZVq/IPfrHrnntZTWsLf5YGZ7qwKulIl5hw= go.opentelemetry.io/contrib/detectors/gcp v1.31.0 h1:G1JQOreVrfhRkner+l4mrGxmfqYCAuy76asTDAo0xsA= go.opentelemetry.io/contrib/detectors/gcp v1.31.0/go.mod h1:tzQL6E1l+iV44YFTkcAeNQqzXUiekSYP9jjJjXwEd00= go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.49.0 h1:1f31+6grJmV3X4lxcEvUy13i5/kfDw1nJZwhd8mA4tg= @@ -1332,6 +1683,8 @@ go.opentelemetry.io/otel/trace v1.31.0 h1:ffjsj1aRouKewfr85U2aGagJ46+MvodynlQ1HY go.opentelemetry.io/otel/trace v1.31.0/go.mod h1:TXZkRk7SM2ZQLtR6eoAWQFIHPvzQ06FJAsO1tJg480A= go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0= go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8= +go.starlark.net v0.0.0-20230525235612-a134d8f9ddca h1:VdD38733bfYv5tUZwEIskMM93VanwNIi5bIKnDrJdEY= +go.starlark.net v0.0.0-20230525235612-a134d8f9ddca/go.mod h1:jxU+3+j+71eXOW14274+SmmuW82qJzl6iZSeqEtTGds= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= @@ -1360,6 +1713,8 @@ go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= +go4.org/netipx v0.0.0-20230125063823-8449b0a6169f h1:ketMxHg+vWm3yccyYiq+uK8D3fRmna2Fcj+awpQp84s= +go4.org/netipx v0.0.0-20230125063823-8449b0a6169f/go.mod h1:tgPU4N2u9RByaTN3NC2p9xOzyFpte4jYwsIIRF7XlSc= golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= golang.org/x/arch v0.11.0 h1:KXV8WWKCXm6tRpLirl2szsO5j/oOODwZf4hATmGVNs4= golang.org/x/arch v0.11.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys= @@ -1372,6 +1727,7 @@ golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaE golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -1380,9 +1736,11 @@ golang.org/x/crypto v0.0.0-20201203163018-be400aefbc4c/go.mod h1:jdWPYTVW3xRLrWP golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw= golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U= @@ -1440,28 +1798,41 @@ golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190921015927-1a5e07d1ff72/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210331212208-0fccb6fa2b5c/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8= golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= +golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= @@ -1471,6 +1842,7 @@ golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4Iltr golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1480,7 +1852,9 @@ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1511,32 +1885,47 @@ golang.org/x/sys v0.0.0-20190804053845-51ab0e2deafa/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210331175145-43e1dd70ce54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1545,10 +1934,13 @@ golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1562,6 +1954,8 @@ golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXR golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20201210144234-2321bbc49cbf/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= @@ -1576,6 +1970,7 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= @@ -1602,6 +1997,7 @@ golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190823170909-c4a336ef6a2f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191010075000-0337d82405ff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -1624,8 +2020,18 @@ golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapK golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= @@ -1643,6 +2049,8 @@ golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da h1:noIWHXmPHxILtqtCOPIhSt0ABwskkZKjD3bXGnZGpNY= golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= +gomodules.xyz/jsonpatch/v2 v2.4.0 h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw= +gomodules.xyz/jsonpatch/v2 v2.4.0/go.mod h1:AH3dM2RI6uoBZxn3LVrfvJ3E0/9dG4cSrbuBJT4moAY= gonum.org/v1/gonum v0.15.1 h1:FNy7N6OUZVUaWG9pTiD+jlhdQ3lMP+/LcTpJ6+a8sQ0= gonum.org/v1/gonum v0.15.1/go.mod h1:eZTZuRFrzu5pcyjN5wJhcIhnUdNijYxX1T2IcrOGY0o= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= @@ -1655,8 +2063,13 @@ google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsb google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= +google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= google.golang.org/api v0.202.0 h1:y1iuVHMqokQbimW79ZqPZWo4CiyFu6HcCYHwSNyzlfo= google.golang.org/api v0.202.0/go.mod h1:3Jjeq7M/SFblTNCp7ES2xhq+WvGL0KeXI0joHQBfwTQ= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= @@ -1665,6 +2078,9 @@ google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7 google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.2/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/genproto v0.0.0-20180518175338-11a468237815/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= @@ -1684,11 +2100,21 @@ google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvx google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200324203455-a04cca1dde73/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= +google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210401141331-865547bb08e2/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= google.golang.org/genproto v0.0.0-20241021214115-324edc3d5d38 h1:Q3nlH8iSQSRUwOskjbcSMcF2jiYMNiQYZ0c2KEJLKKU= google.golang.org/genproto v0.0.0-20241021214115-324edc3d5d38/go.mod h1:xBI+tzfqGGN2JBeSebfKXFSdBpWVQ7sLW40PTupVRm4= @@ -1696,6 +2122,7 @@ google.golang.org/genproto/googleapis/api v0.0.0-20241021214115-324edc3d5d38 h1: google.golang.org/genproto/googleapis/api v0.0.0-20241021214115-324edc3d5d38/go.mod h1:vuAjtvlwkDKF6L1GQ0SokiRLCGFfeBUXWr/aFFkHACc= google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38 h1:zciRKQ4kBpFgpfC5QQCVtnnNAcLIqweL7plyZRQHVpI= google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= +google.golang.org/grpc v1.12.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -1708,6 +2135,8 @@ google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8 google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= @@ -1723,6 +2152,7 @@ google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzi google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= @@ -1737,6 +2167,8 @@ gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4= +gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= gopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y= @@ -1778,17 +2210,26 @@ honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= k8s.io/api v0.31.1 h1:Xe1hX/fPW3PXYYv8BlozYqw63ytA92snr96zMW9gWTU= k8s.io/api v0.31.1/go.mod h1:sbN1g6eY6XVLeqNsZGLnI5FwVseTrZX7Fv3O26rhAaI= +k8s.io/apiextensions-apiserver v0.31.0 h1:fZgCVhGwsclj3qCw1buVXCV6khjRzKC5eCFt24kyLSk= +k8s.io/apiextensions-apiserver v0.31.0/go.mod h1:b9aMDEYaEe5sdK+1T0KU78ApR/5ZVp4i56VacZYEHxk= k8s.io/apimachinery v0.31.1 h1:mhcUBbj7KUjaVhyXILglcVjuS4nYXiwC+KKFBgIVy7U= k8s.io/apimachinery v0.31.1/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= +k8s.io/cli-runtime v0.31.1 h1:/ZmKhmZ6hNqDM+yf9s3Y4KEYakNXUn5sod2LWGGwCuk= +k8s.io/cli-runtime v0.31.1/go.mod h1:pKv1cDIaq7ehWGuXQ+A//1OIF+7DI+xudXtExMCbe9U= k8s.io/client-go v0.31.1 h1:f0ugtWSbWpxHR7sjVpQwuvw9a3ZKLXX0u0itkFXufb0= k8s.io/client-go v0.31.1/go.mod h1:sKI8871MJN2OyeqRlmA4W4KM9KBdBUpDLu/43eGemCg= +k8s.io/component-base v0.31.1 h1:UpOepcrX3rQ3ab5NB6g5iP0tvsgJWzxTyAo20sgYSy8= +k8s.io/component-base v0.31.1/go.mod h1:WGeaw7t/kTsqpVTaCoVEtillbqAhF2/JgvO0LDOMa0w= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= k8s.io/kube-openapi v0.0.0-20240709000822-3c01b740850f h1:2sXuKesAYbRHxL3aE2PN6zX/gcJr22cjrsej+W784Tc= k8s.io/kube-openapi v0.0.0-20240709000822-3c01b740850f/go.mod h1:UxDHUPsUwTOOxSU+oXURfFBcAS6JwiRXTYqYwfuGowc= +k8s.io/kubectl v0.31.1 h1:ih4JQJHxsEggFqDJEHSOdJ69ZxZftgeZvYo7M/cpp24= +k8s.io/kubectl v0.31.1/go.mod h1:aNuQoR43W6MLAtXQ/Bu4GDmoHlbhHKuyD49lmTC8eJM= k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A= k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= modernc.org/gc/v3 v3.0.0-20240107210532-573471604cb6 h1:5D53IMaUuA5InSeMu9eJtlQXS2NxAhyWQvkKEgXZhHI= @@ -1816,8 +2257,14 @@ rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= rsc.io/tmplfunc v0.0.3 h1:53XFQh69AfOa8Tw0Jm7t+GV7KZhOi6jzsCzTtKbMvzU= rsc.io/tmplfunc v0.0.3/go.mod h1:AG3sTPzElb1Io3Yg4voV9AGZJuleGAwaVRxL9M49PhA= +sigs.k8s.io/controller-runtime v0.19.0 h1:nWVM7aq+Il2ABxwiCizrVDSlmDcshi9llbaFbC0ji/Q= +sigs.k8s.io/controller-runtime v0.19.0/go.mod h1:iRmWllt8IlaLjvTTDLhRBXIEtkCK6hwVBJJsYS9Ajf4= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= +sigs.k8s.io/kustomize/api v0.17.2 h1:E7/Fjk7V5fboiuijoZHgs4aHuexi5Y2loXlVOAVAG5g= +sigs.k8s.io/kustomize/api v0.17.2/go.mod h1:UWTz9Ct+MvoeQsHcJ5e+vziRRkwimm3HytpZgIYqye0= +sigs.k8s.io/kustomize/kyaml v0.17.1 h1:TnxYQxFXzbmNG6gOINgGWQt09GghzgTP6mIurOgrLCQ= +sigs.k8s.io/kustomize/kyaml v0.17.1/go.mod h1:9V0mCjIEYjlXuCdYsSXvyoy2BTsLESH7TlGV81S282U= sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= diff --git a/deployment/ccip/changeset/active_candidate.go b/deployment/ccip/changeset/active_candidate.go index e1d67720d12..9f46b8d20f1 100644 --- a/deployment/ccip/changeset/active_candidate.go +++ b/deployment/ccip/changeset/active_candidate.go @@ -59,6 +59,7 @@ func SetCandidatePluginChangeset( tokenConfig.GetTokenInfo(e.Logger, state.Chains[newChainSel].LinkToken, state.Chains[newChainSel].Weth9), nodes.NonBootstraps(), state.Chains[homeChainSel].RMNHome.Address(), + nil, ) if err != nil { return deployment.ChangesetOutput{}, err diff --git a/deployment/ccip/changeset/active_candidate_test.go b/deployment/ccip/changeset/active_candidate_test.go index 6403981a675..cd1d7604817 100644 --- a/deployment/ccip/changeset/active_candidate_test.go +++ b/deployment/ccip/changeset/active_candidate_test.go @@ -160,6 +160,7 @@ func TestActiveCandidate(t *testing.T) { tokenConfig.GetTokenInfo(e.Logger, state.Chains[destCS].LinkToken, state.Chains[destCS].Weth9), nodes.NonBootstraps(), rmnHomeAddress, + nil, ) require.NoError(t, err) diff --git a/deployment/ccip/changeset/add_chain.go b/deployment/ccip/changeset/add_chain.go index aa88e0f112f..3ce6d17d24e 100644 --- a/deployment/ccip/changeset/add_chain.go +++ b/deployment/ccip/changeset/add_chain.go @@ -107,6 +107,7 @@ func AddDonAndSetCandidateChangeset( tokenConfig.GetTokenInfo(e.Logger, state.Chains[newChainSel].LinkToken, state.Chains[newChainSel].Weth9), nodes.NonBootstraps(), state.Chains[homeChainSel].RMNHome.Address(), + nil, ) if err != nil { return deployment.ChangesetOutput{}, err diff --git a/deployment/ccip/consts.go b/deployment/ccip/consts.go index e9b7a9f2cec..48466bcef46 100644 --- a/deployment/ccip/consts.go +++ b/deployment/ccip/consts.go @@ -5,6 +5,7 @@ type TokenSymbol string const ( LinkSymbol TokenSymbol = "LINK" WethSymbol TokenSymbol = "WETH" + USDCSymbol TokenSymbol = "USDC" LinkDecimals = 18 WethDecimals = 18 ) diff --git a/deployment/ccip/deploy.go b/deployment/ccip/deploy.go index 5a4ad1bb394..83e233b71bb 100644 --- a/deployment/ccip/deploy.go +++ b/deployment/ccip/deploy.go @@ -10,7 +10,9 @@ import ( "github.com/pkg/errors" "github.com/smartcontractkit/ccip-owner-contracts/pkg/config" owner_helpers "github.com/smartcontractkit/ccip-owner-contracts/pkg/gethwrappers" - + cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" + "github.com/smartcontractkit/chainlink-ccip/pluginconfig" + commonconfig "github.com/smartcontractkit/chainlink-common/pkg/config" "github.com/smartcontractkit/chainlink-common/pkg/logger" "github.com/smartcontractkit/chainlink/deployment" @@ -56,10 +58,14 @@ var ( CapabilitiesRegistry deployment.ContractType = "CapabilitiesRegistry" PriceFeed deployment.ContractType = "PriceFeed" // Note test router maps to a regular router contract. - TestRouter deployment.ContractType = "TestRouter" - CCIPReceiver deployment.ContractType = "CCIPReceiver" - BurnMintToken deployment.ContractType = "BurnMintToken" - BurnMintTokenPool deployment.ContractType = "BurnMintTokenPool" + TestRouter deployment.ContractType = "TestRouter" + CCIPReceiver deployment.ContractType = "CCIPReceiver" + BurnMintToken deployment.ContractType = "BurnMintToken" + BurnMintTokenPool deployment.ContractType = "BurnMintTokenPool" + USDCToken deployment.ContractType = "USDCToken" + USDCMockTransmitter deployment.ContractType = "USDCMockTransmitter" + USDCTokenMessenger deployment.ContractType = "USDCTokenMessenger" + USDCTokenPool deployment.ContractType = "USDCTokenPool" ) func DeployPrerequisiteChainContracts(e deployment.Environment, ab deployment.AddressBook, selectors []uint64) error { @@ -263,6 +269,17 @@ func DeployPrerequisiteContracts(e deployment.Environment, ab deployment.Address return nil } +type USDCConfig struct { + Enabled bool + USDCAttestationConfig +} + +type USDCAttestationConfig struct { + API string + APITimeout *commonconfig.Duration + APIInterval *commonconfig.Duration +} + type DeployCCIPContractConfig struct { HomeChainSel uint64 FeedChainSel uint64 @@ -271,6 +288,7 @@ type DeployCCIPContractConfig struct { // I believe it makes sense to have the same signers across all chains // since that's the point MCMS. MCMSConfig MCMSConfig + USDCConfig USDCConfig // For setting OCR configuration OCRSecrets deployment.OCRSecrets } @@ -332,6 +350,7 @@ func DeployCCIPContracts(e deployment.Environment, ab deployment.AddressBook, c return fmt.Errorf("rmn home not found") } + usdcConfiguration := make(map[cciptypes.ChainSelector]pluginconfig.USDCCCTPTokenConfig) for _, chainSel := range c.ChainsToDeploy { chain, ok := e.Chains[chainSel] if !ok { @@ -344,6 +363,30 @@ func DeployCCIPContracts(e deployment.Environment, ab deployment.AddressBook, c if err != nil { return err } + + if c.USDCConfig.Enabled { + token, pool, messenger, transmitter, err1 := DeployUSDC(e.Logger, chain, ab, existingState.Chains[chainSel]) + if err1 != nil { + return err1 + } + e.Logger.Infow("Deployed USDC contracts", + "chainSelector", chainSel, + "token", token.Address(), + "pool", pool.Address(), + "transmitter", transmitter.Address(), + "messenger", messenger.Address(), + ) + + usdcConfiguration[cciptypes.ChainSelector(chainSel)] = pluginconfig.USDCCCTPTokenConfig{ + SourcePoolAddress: pool.Address().Hex(), + SourceMessageTransmitterAddr: transmitter.Address().Hex(), + } + } + } + + for _, chainSel := range c.ChainsToDeploy { + chain, _ := e.Chains[chainSel] + chainAddresses, err := ab.AddressesForChain(chain.Selector) if err != nil { e.Logger.Errorw("Failed to get chain addresses", "err", err) @@ -367,6 +410,19 @@ func DeployCCIPContracts(e deployment.Environment, ab deployment.AddressBook, c if err != nil { return err } + var tokenDataObserversConf []pluginconfig.TokenDataObserverConfig + if c.USDCConfig.Enabled { + tokenDataObserversConf = []pluginconfig.TokenDataObserverConfig{{ + Type: pluginconfig.USDCCCTPHandlerType, + Version: "1.0", + USDCCCTPObserverConfig: &pluginconfig.USDCCCTPObserverConfig{ + Tokens: usdcConfiguration, + AttestationAPI: c.USDCConfig.API, + AttestationAPITimeout: c.USDCConfig.APITimeout, + AttestationAPIInterval: c.USDCConfig.APIInterval, + }, + }} + } // For each chain, we create a DON on the home chain (2 OCR instances) if err := AddDON( e.Logger, @@ -380,6 +436,7 @@ func DeployCCIPContracts(e deployment.Environment, ab deployment.AddressBook, c chain, e.Chains[c.HomeChainSel], nodes.NonBootstraps(), + tokenDataObserversConf, ); err != nil { e.Logger.Errorw("Failed to add DON", "err", err) return err diff --git a/deployment/ccip/deploy_home_chain.go b/deployment/ccip/deploy_home_chain.go index d17a501783d..9c7c65bc9dc 100644 --- a/deployment/ccip/deploy_home_chain.go +++ b/deployment/ccip/deploy_home_chain.go @@ -395,6 +395,7 @@ func BuildOCR3ConfigForCCIPHome( tokenInfo map[ccipocr3.UnknownEncodedAddress]pluginconfig.TokenInfo, nodes deployment.Nodes, rmnHomeAddress common.Address, + configs []pluginconfig.TokenDataObserverConfig, ) (map[cctypes.PluginType]ccip_home.CCIPHomeOCR3Config, error) { p2pIDs := nodes.PeerIDs() // Get OCR3 Config from helper @@ -438,7 +439,7 @@ func BuildOCR3ConfigForCCIPHome( InflightCacheExpiry: *commonconfig.MustNewDuration(InflightCacheExpiry), RootSnoozeTime: *commonconfig.MustNewDuration(RootSnoozeTime), BatchingStrategyID: BatchingStrategyID, - TokenDataObservers: []pluginconfig.TokenDataObserverConfig{}, + TokenDataObservers: configs, }) } if err2 != nil { @@ -969,8 +970,10 @@ func AddDON( dest deployment.Chain, home deployment.Chain, nodes deployment.Nodes, + tokenConfigs []pluginconfig.TokenDataObserverConfig, ) error { - ocrConfigs, err := BuildOCR3ConfigForCCIPHome(ocrSecrets, offRamp, dest, feedChainSel, tokenInfo, nodes, rmnHomeAddress) + ocrConfigs, err := BuildOCR3ConfigForCCIPHome( + ocrSecrets, offRamp, dest, feedChainSel, tokenInfo, nodes, rmnHomeAddress, tokenConfigs) if err != nil { return err } diff --git a/deployment/ccip/state.go b/deployment/ccip/state.go index cbcdcc1e116..dcbe52524cf 100644 --- a/deployment/ccip/state.go +++ b/deployment/ccip/state.go @@ -2,6 +2,9 @@ package ccipdeployment import ( "fmt" + "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/ccip/generated/mock_usdc_token_messenger" + "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/ccip/generated/mock_usdc_token_transmitter" + "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/ccip/generated/usdc_token_pool" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/common" @@ -80,8 +83,11 @@ type CCIPChainState struct { CCIPConfig *ccip_config.CCIPConfig // Test contracts - Receiver *maybe_revert_message_receiver.MaybeRevertMessageReceiver - TestRouter *router.Router + Receiver *maybe_revert_message_receiver.MaybeRevertMessageReceiver + TestRouter *router.Router + USDCTokenPool *usdc_token_pool.USDCTokenPool + MockUSDCTransmitter *mock_usdc_token_transmitter.MockE2EUSDCTransmitter + MockUSDCTokenMessenger *mock_usdc_token_messenger.MockE2EUSDCTokenMessenger } func (c CCIPChainState) GenerateView() (view.ChainView, error) { @@ -372,6 +378,32 @@ func LoadChainState(chain deployment.Chain, addresses map[string]deployment.Type return state, err } state.LinkToken = lt + case deployment.NewTypeAndVersion(USDCToken, deployment.Version1_0_0).String(): + ut, err := burn_mint_erc677.NewBurnMintERC677(common.HexToAddress(address), chain.Client) + if err != nil { + return state, err + } + state.BurnMintTokens677 = map[TokenSymbol]*burn_mint_erc677.BurnMintERC677{ + USDCSymbol: ut, + } + case deployment.NewTypeAndVersion(USDCTokenPool, deployment.Version1_0_0).String(): + utp, err := usdc_token_pool.NewUSDCTokenPool(common.HexToAddress(address), chain.Client) + if err != nil { + return state, err + } + state.USDCTokenPool = utp + case deployment.NewTypeAndVersion(USDCMockTransmitter, deployment.Version1_0_0).String(): + umt, err := mock_usdc_token_transmitter.NewMockE2EUSDCTransmitter(common.HexToAddress(address), chain.Client) + if err != nil { + return state, err + } + state.MockUSDCTransmitter = umt + case deployment.NewTypeAndVersion(USDCTokenMessenger, deployment.Version1_0_0).String(): + utm, err := mock_usdc_token_messenger.NewMockE2EUSDCTokenMessenger(common.HexToAddress(address), chain.Client) + if err != nil { + return state, err + } + state.MockUSDCTokenMessenger = utm case deployment.NewTypeAndVersion(CCIPHome, deployment.Version1_6_0_dev).String(): ccipHome, err := ccip_home.NewCCIPHome(common.HexToAddress(address), chain.Client) if err != nil { diff --git a/deployment/ccip/test_helpers.go b/deployment/ccip/test_helpers.go index 4c348f46920..d682a72eddc 100644 --- a/deployment/ccip/test_helpers.go +++ b/deployment/ccip/test_helpers.go @@ -9,43 +9,36 @@ import ( "time" mapset "github.com/deckarep/golang-set/v2" - "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common/hexutil" - "github.com/ethereum/go-ethereum/core/types" "github.com/pkg/errors" - - cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" - commonutils "github.com/smartcontractkit/chainlink-common/pkg/utils" - "github.com/smartcontractkit/chainlink-testing-framework/lib/utils/testcontext" - - "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/shared/generated/burn_mint_erc677" - - "github.com/ethereum/go-ethereum/common" "github.com/stretchr/testify/require" "go.uber.org/multierr" "go.uber.org/zap/zapcore" chainsel "github.com/smartcontractkit/chain-selectors" - + "github.com/smartcontractkit/chainlink-ccip/pkg/reader" + cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" + "github.com/smartcontractkit/chainlink-common/pkg/logger" + commonutils "github.com/smartcontractkit/chainlink-common/pkg/utils" jobv1 "github.com/smartcontractkit/chainlink-protos/job-distributor/v1/job" + "github.com/smartcontractkit/chainlink-testing-framework/lib/utils/testcontext" "github.com/smartcontractkit/chainlink/deployment" - "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/generated/mock_ethusd_aggregator_wrapper" - - "github.com/smartcontractkit/chainlink/deployment/environment/memory" - - "github.com/smartcontractkit/chainlink-common/pkg/logger" - "github.com/smartcontractkit/chainlink/deployment/environment/devenv" + "github.com/smartcontractkit/chainlink/deployment/environment/memory" "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/ccip/generated/burn_mint_token_pool" "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/ccip/generated/mock_v3_aggregator_contract" "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/ccip/generated/onramp" "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/ccip/generated/router" + "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/ccip/generated/usdc_token_pool" "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/generated/aggregator_v3_interface" + "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/generated/mock_ethusd_aggregator_wrapper" + "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/shared/generated/burn_mint_erc677" ) const ( @@ -574,18 +567,19 @@ func DeployTransferableToken( } // Add burn/mint permissions - if err := grantMintBurnPermissions(chains[src], srcToken, srcPool.Address()); err != nil { + if err := grantMintBurnPermissions(lggr, chains[src], srcToken, srcPool.Address()); err != nil { return nil, nil, nil, nil, err } - if err := grantMintBurnPermissions(chains[dst], dstToken, dstPool.Address()); err != nil { + if err := grantMintBurnPermissions(lggr, chains[dst], dstToken, dstPool.Address()); err != nil { return nil, nil, nil, nil, err } return srcToken, srcPool, dstToken, dstPool, nil } -func grantMintBurnPermissions(chain deployment.Chain, token *burn_mint_erc677.BurnMintERC677, address common.Address) error { +func grantMintBurnPermissions(lggr logger.Logger, chain deployment.Chain, token *burn_mint_erc677.BurnMintERC677, address common.Address) error { + lggr.Infow("Granting burn permissions", "token", token.Address(), "burner", address) tx, err := token.GrantBurnRole(chain.DeployerKey, address) if err != nil { return err @@ -595,6 +589,7 @@ func grantMintBurnPermissions(chain deployment.Chain, token *burn_mint_erc677.Bu return err } + lggr.Infow("Granting mint permissions", "token", token.Address(), "minter", address) tx, err = token.GrantMintRole(chain.DeployerKey, address) if err != nil { return err @@ -603,6 +598,45 @@ func grantMintBurnPermissions(chain deployment.Chain, token *burn_mint_erc677.Bu return err } +func setUSDCTokenPoolCounterPart( + chain deployment.Chain, + tokenPool *usdc_token_pool.USDCTokenPool, + destChainSelector uint64, + destTokenAddress common.Address, + destTokenPoolAddress common.Address, +) error { + allowedCaller := common.LeftPadBytes(destTokenPoolAddress.Bytes(), 32) + var fixedAddr [32]byte + copy(fixedAddr[:], allowedCaller[:32]) + + domain, _ := reader.AllAvailableDomains()[destChainSelector] + + domains := []usdc_token_pool.USDCTokenPoolDomainUpdate{ + { + AllowedCaller: fixedAddr, + DomainIdentifier: domain, + DestChainSelector: destChainSelector, + Enabled: true, + }, + } + tx, err := tokenPool.SetDomains(chain.DeployerKey, domains) + if err != nil { + return err + } + + _, err = chain.Confirm(tx) + if err != nil { + return err + } + + pool, err := burn_mint_token_pool.NewBurnMintTokenPool(tokenPool.Address(), chain.Client) + if err != nil { + return err + } + + return setTokenPoolCounterPart(chain, pool, destChainSelector, destTokenAddress, destTokenPoolAddress) +} + func setTokenPoolCounterPart( chain deployment.Chain, tokenPool *burn_mint_token_pool.BurnMintTokenPool, diff --git a/deployment/ccip/test_usdc_helpers.go b/deployment/ccip/test_usdc_helpers.go new file mode 100644 index 00000000000..787ca328a8e --- /dev/null +++ b/deployment/ccip/test_usdc_helpers.go @@ -0,0 +1,233 @@ +package ccipdeployment + +import ( + "github.com/ethereum/go-ethereum/common" + "github.com/smartcontractkit/chainlink-ccip/pkg/reader" + "github.com/smartcontractkit/chainlink-common/pkg/logger" + "github.com/smartcontractkit/chainlink/deployment" + "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/ccip/generated/fee_quoter" + "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/ccip/generated/mock_usdc_token_messenger" + "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/ccip/generated/mock_usdc_token_transmitter" + "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/ccip/generated/usdc_token_pool" + "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/shared/generated/burn_mint_erc677" + "math/big" +) + +func ConfigureUSDCTokenPools( + lggr logger.Logger, + chains map[uint64]deployment.Chain, + src, dst uint64, + state CCIPOnChainState, +) (*burn_mint_erc677.BurnMintERC677, *burn_mint_erc677.BurnMintERC677, error) { + srcToken := state.Chains[src].BurnMintTokens677[USDCSymbol] + dstToken := state.Chains[dst].BurnMintTokens677[USDCSymbol] + srcPool := state.Chains[src].USDCTokenPool + dstPool := state.Chains[dst].USDCTokenPool + + // Attach token pools to registry + if err := attachTokenToTheRegistry(chains[src], state.Chains[src], chains[src].DeployerKey, srcToken.Address(), srcPool.Address()); err != nil { + lggr.Errorw("Failed to attach token to the registry", "err", err, "token", srcToken.Address(), "pool", srcPool.Address()) + return nil, nil, err + } + + if err := attachTokenToTheRegistry(chains[dst], state.Chains[dst], chains[dst].DeployerKey, dstToken.Address(), dstPool.Address()); err != nil { + lggr.Errorw("Failed to attach token to the registry", "err", err, "token", dstToken.Address(), "pool", dstPool.Address()) + return nil, nil, err + } + + // Connect pool to each other + if err := setUSDCTokenPoolCounterPart(chains[src], srcPool, dst, dstToken.Address(), dstPool.Address()); err != nil { + lggr.Errorw("Failed to set counter part", "err", err, "srcPool", srcPool.Address(), "dstPool", dstPool.Address()) + return nil, nil, err + } + + if err := setUSDCTokenPoolCounterPart(chains[dst], dstPool, src, srcToken.Address(), srcPool.Address()); err != nil { + lggr.Errorw("Failed to set counter part", "err", err, "srcPool", dstPool.Address(), "dstPool", srcPool.Address()) + return nil, nil, err + } + + // Add burn/mint permissions for source + for _, addr := range []common.Address{ + srcPool.Address(), + state.Chains[src].MockUSDCTokenMessenger.Address(), + state.Chains[src].MockUSDCTransmitter.Address(), + } { + if err := grantMintBurnPermissions(lggr, chains[src], srcToken, addr); err != nil { + lggr.Errorw("Failed to grant mint/burn permissions", "err", err, "token", srcToken.Address(), "minter", addr) + return nil, nil, err + } + } + + // Add burn/mint permissions for dest + for _, addr := range []common.Address{ + dstPool.Address(), + state.Chains[dst].MockUSDCTokenMessenger.Address(), + state.Chains[dst].MockUSDCTransmitter.Address(), + } { + if err := grantMintBurnPermissions(lggr, chains[dst], dstToken, addr); err != nil { + lggr.Errorw("Failed to grant mint/burn permissions", "err", err, "token", dstToken.Address(), "minter", addr) + return nil, nil, err + } + } + + return srcToken, dstToken, nil +} + +func UpdateFeeQuoterForUSDC( + lggr logger.Logger, + chain deployment.Chain, + state CCIPChainState, + dstChain uint64, + usdcToken *burn_mint_erc677.BurnMintERC677, +) error { + config := []fee_quoter.FeeQuoterTokenTransferFeeConfigArgs{ + { + DestChainSelector: dstChain, + TokenTransferFeeConfigs: []fee_quoter.FeeQuoterTokenTransferFeeConfigSingleTokenArgs{ + { + usdcToken.Address(), + fee_quoter.FeeQuoterTokenTransferFeeConfig{ + MinFeeUSDCents: 50, + MaxFeeUSDCents: 50_000, + DeciBps: 0, + DestGasOverhead: 180_000, + DestBytesOverhead: 640, + IsEnabled: true, + }, + }, + }, + }, + } + + tx, err := state.FeeQuoter.ApplyTokenTransferFeeConfigUpdates( + chain.DeployerKey, + config, + []fee_quoter.FeeQuoterTokenTransferFeeConfigRemoveArgs{}, + ) + if err != nil { + lggr.Errorw("Failed to apply token transfer fee config updates", "err", err, "config", config) + return err + } + + _, err = chain.Confirm(tx) + return err +} + +func DeployUSDC( + lggr logger.Logger, + chain deployment.Chain, + addresses deployment.AddressBook, + state CCIPChainState, +) ( + *burn_mint_erc677.BurnMintERC677, + *usdc_token_pool.USDCTokenPool, + *mock_usdc_token_messenger.MockE2EUSDCTokenMessenger, + *mock_usdc_token_transmitter.MockE2EUSDCTransmitter, + error, +) { + token, err := deployment.DeployContract(lggr, chain, addresses, + func(chain deployment.Chain) deployment.ContractDeploy[*burn_mint_erc677.BurnMintERC677] { + tokenAddress, tx, tokenContract, err2 := burn_mint_erc677.DeployBurnMintERC677( + chain.DeployerKey, + chain.Client, + "USDC Token", + "USDC", + uint8(18), + big.NewInt(0).Mul(big.NewInt(1e9), big.NewInt(1e18)), + ) + return deployment.ContractDeploy[*burn_mint_erc677.BurnMintERC677]{ + Address: tokenAddress, + Contract: tokenContract, + Tx: tx, + Tv: deployment.NewTypeAndVersion(USDCToken, deployment.Version1_0_0), + Err: err2, + } + }) + if err != nil { + lggr.Errorw("Failed to deploy USDC token", "err", err) + return nil, nil, nil, nil, err + } + + tx, err := token.Contract.GrantMintRole(chain.DeployerKey, chain.DeployerKey.From) + if err != nil { + lggr.Errorw("Failed to grant mint role", "token", token.Contract.Address(), "err", err) + return nil, nil, nil, nil, err + } + _, err = chain.Confirm(tx) + if err != nil { + return nil, nil, nil, nil, err + } + + transmitter, err := deployment.DeployContract(lggr, chain, addresses, + func(chain deployment.Chain) deployment.ContractDeploy[*mock_usdc_token_transmitter.MockE2EUSDCTransmitter] { + transmitterAddress, tx, transmitterContract, err2 := mock_usdc_token_transmitter.DeployMockE2EUSDCTransmitter( + chain.DeployerKey, + chain.Client, + 0, + reader.AllAvailableDomains()[chain.Selector], + token.Address, + ) + return deployment.ContractDeploy[*mock_usdc_token_transmitter.MockE2EUSDCTransmitter]{ + Address: transmitterAddress, + Contract: transmitterContract, + Tx: tx, + Tv: deployment.NewTypeAndVersion(USDCMockTransmitter, deployment.Version1_0_0), + Err: err2, + } + }) + if err != nil { + lggr.Errorw("Failed to deploy mock USDC transmitter", "err", err) + return nil, nil, nil, nil, err + } + + lggr.Infow("deployed mock USDC transmitter", "addr", transmitter.Address) + + messenger, err := deployment.DeployContract(lggr, chain, addresses, + func(chain deployment.Chain) deployment.ContractDeploy[*mock_usdc_token_messenger.MockE2EUSDCTokenMessenger] { + messengerAddress, tx, messengerContract, err2 := mock_usdc_token_messenger.DeployMockE2EUSDCTokenMessenger( + chain.DeployerKey, + chain.Client, + 0, + transmitter.Address, + ) + return deployment.ContractDeploy[*mock_usdc_token_messenger.MockE2EUSDCTokenMessenger]{ + Address: messengerAddress, + Contract: messengerContract, + Tx: tx, + Tv: deployment.NewTypeAndVersion(USDCTokenMessenger, deployment.Version1_0_0), + Err: err2, + } + }) + if err != nil { + lggr.Errorw("Failed to deploy USDC token messenger", "err", err) + return nil, nil, nil, nil, err + } + lggr.Infow("deployed mock USDC token messenger", "addr", messenger.Address) + + tokenPool, err := deployment.DeployContract(lggr, chain, addresses, + func(chain deployment.Chain) deployment.ContractDeploy[*usdc_token_pool.USDCTokenPool] { + tokenPoolAddress, tx, tokenPoolContract, err2 := usdc_token_pool.DeployUSDCTokenPool( + chain.DeployerKey, + chain.Client, + messenger.Address, + token.Address, + []common.Address{}, + state.RMNProxyExisting.Address(), + state.Router.Address(), + ) + return deployment.ContractDeploy[*usdc_token_pool.USDCTokenPool]{ + Address: tokenPoolAddress, + Contract: tokenPoolContract, + Tx: tx, + Tv: deployment.NewTypeAndVersion(USDCTokenPool, deployment.Version1_0_0), + Err: err2, + } + }) + if err != nil { + lggr.Errorw("Failed to deploy USDC token pool", "err", err) + return nil, nil, nil, nil, err + } + lggr.Infow("deployed USDC token pool", "addr", tokenPool.Address) + + return token.Contract, tokenPool.Contract, messenger.Contract, transmitter.Contract, nil +} diff --git a/deployment/environment.go b/deployment/environment.go index 104db4c5c37..5d4e782b0fe 100644 --- a/deployment/environment.go +++ b/deployment/environment.go @@ -14,6 +14,7 @@ import ( "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/rpc" chain_selectors "github.com/smartcontractkit/chain-selectors" + "github.com/smartcontractkit/chainlink-testing-framework/lib/docker/test_env" types2 "github.com/smartcontractkit/libocr/offchainreporting2/types" types3 "github.com/smartcontractkit/libocr/offchainreporting2plus/types" "google.golang.org/grpc" @@ -75,6 +76,7 @@ type Environment struct { Chains map[uint64]Chain NodeIDs []string Offchain OffchainClient + MockAdapter *test_env.Killgrave } func NewEnvironment( diff --git a/deployment/go.mod b/deployment/go.mod index 6963180766e..8604875a366 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -22,7 +22,7 @@ require ( github.com/sethvargo/go-retry v0.2.4 github.com/smartcontractkit/ccip-owner-contracts v0.0.0-20240926212305-a6deabdfce86 github.com/smartcontractkit/chain-selectors v1.0.29 - github.com/smartcontractkit/chainlink-ccip v0.0.0-20241115103032-ec39846b3436 + github.com/smartcontractkit/chainlink-ccip v0.0.0-20241118091009-43c2b4804cec github.com/smartcontractkit/chainlink-common v0.3.1-0.20241114134822-aadff98ef068 github.com/smartcontractkit/chainlink-protos/job-distributor v0.4.0 github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.13 diff --git a/deployment/go.sum b/deployment/go.sum index 66487c2f9bc..ad68f03afea 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -1382,8 +1382,8 @@ github.com/smartcontractkit/chain-selectors v1.0.29 h1:aZ9+OoUSMn4nqnissHtDvDoKR github.com/smartcontractkit/chain-selectors v1.0.29/go.mod h1:xsKM0aN3YGcQKTPRPDDtPx2l4mlTN1Djmg0VVXV40b8= github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgBc2xpDKBco/Q4h4ydl6+UUU= github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= -github.com/smartcontractkit/chainlink-ccip v0.0.0-20241115103032-ec39846b3436 h1:n3wy96cqxsaJGoCDbFulFPHind6Etq0tiWZcwAnTs3Q= -github.com/smartcontractkit/chainlink-ccip v0.0.0-20241115103032-ec39846b3436/go.mod h1:4adKaHNaxFsRvV/lYfqtbsWyyvIPUMLR0FdOJN/ljis= +github.com/smartcontractkit/chainlink-ccip v0.0.0-20241118091009-43c2b4804cec h1:5vS1k8Qn09p8SQ3JzvS8iy4Pve7s3aVq+UPIdl74smY= +github.com/smartcontractkit/chainlink-ccip v0.0.0-20241118091009-43c2b4804cec/go.mod h1:4adKaHNaxFsRvV/lYfqtbsWyyvIPUMLR0FdOJN/ljis= github.com/smartcontractkit/chainlink-common v0.3.1-0.20241114134822-aadff98ef068 h1:2llRW4Tn9W/EZp2XvXclQ9IjeTBwwxVPrrqaerX+vCE= github.com/smartcontractkit/chainlink-common v0.3.1-0.20241114134822-aadff98ef068/go.mod h1:ny87uTW6hLjCTLiBqBRNFEhETSXhHWevYlPclT5lSco= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241017133723-5277829bd53f h1:BwrIaQIx5Iy6eT+DfLhFfK2XqjxRm74mVdlX8gbu4dw= diff --git a/go.mod b/go.mod index 7655e472f7a..7b3f6f7a161 100644 --- a/go.mod +++ b/go.mod @@ -76,7 +76,7 @@ require ( github.com/shopspring/decimal v1.4.0 github.com/smartcontractkit/chain-selectors v1.0.29 github.com/smartcontractkit/chainlink-automation v0.8.1 - github.com/smartcontractkit/chainlink-ccip v0.0.0-20241115103032-ec39846b3436 + github.com/smartcontractkit/chainlink-ccip v0.0.0-20241118091009-43c2b4804cec github.com/smartcontractkit/chainlink-common v0.3.1-0.20241114134822-aadff98ef068 github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241017133723-5277829bd53f github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241018134907-a00ba3729b5e diff --git a/go.sum b/go.sum index 016997e62f5..61d0934f7ce 100644 --- a/go.sum +++ b/go.sum @@ -1076,8 +1076,8 @@ github.com/smartcontractkit/chain-selectors v1.0.29 h1:aZ9+OoUSMn4nqnissHtDvDoKR github.com/smartcontractkit/chain-selectors v1.0.29/go.mod h1:xsKM0aN3YGcQKTPRPDDtPx2l4mlTN1Djmg0VVXV40b8= github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgBc2xpDKBco/Q4h4ydl6+UUU= github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= -github.com/smartcontractkit/chainlink-ccip v0.0.0-20241115103032-ec39846b3436 h1:n3wy96cqxsaJGoCDbFulFPHind6Etq0tiWZcwAnTs3Q= -github.com/smartcontractkit/chainlink-ccip v0.0.0-20241115103032-ec39846b3436/go.mod h1:4adKaHNaxFsRvV/lYfqtbsWyyvIPUMLR0FdOJN/ljis= +github.com/smartcontractkit/chainlink-ccip v0.0.0-20241118091009-43c2b4804cec h1:5vS1k8Qn09p8SQ3JzvS8iy4Pve7s3aVq+UPIdl74smY= +github.com/smartcontractkit/chainlink-ccip v0.0.0-20241118091009-43c2b4804cec/go.mod h1:4adKaHNaxFsRvV/lYfqtbsWyyvIPUMLR0FdOJN/ljis= github.com/smartcontractkit/chainlink-common v0.3.1-0.20241114134822-aadff98ef068 h1:2llRW4Tn9W/EZp2XvXclQ9IjeTBwwxVPrrqaerX+vCE= github.com/smartcontractkit/chainlink-common v0.3.1-0.20241114134822-aadff98ef068/go.mod h1:ny87uTW6hLjCTLiBqBRNFEhETSXhHWevYlPclT5lSco= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241017133723-5277829bd53f h1:BwrIaQIx5Iy6eT+DfLhFfK2XqjxRm74mVdlX8gbu4dw= diff --git a/integration-tests/ccip-tests/testsetups/test_helpers.go b/integration-tests/ccip-tests/testsetups/test_helpers.go index eeae7f5f8c3..246584be7d5 100644 --- a/integration-tests/ccip-tests/testsetups/test_helpers.go +++ b/integration-tests/ccip-tests/testsetups/test_helpers.go @@ -108,6 +108,7 @@ func NewLocalDevEnvironment( require.NoError(t, err) require.NotNil(t, e) e.ExistingAddresses = ab + e.MockAdapter = testEnv.MockAdapter envNodes, err := deployment.NodeInfo(e.NodeIDs, e.Offchain) require.NoError(t, err) @@ -300,6 +301,7 @@ func CreateDockerEnv(t *testing.T) ( builder := test_env.NewCLTestEnvBuilder(). WithTestConfig(&cfg). WithTestInstance(t). + WithMockAdapter(). WithJobDistributor(cfg.CCIP.JobDistributorConfig). WithStandardCleanup() diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 9e07bd4f7cb..4bf6361f27b 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -36,6 +36,7 @@ require ( github.com/slack-go/slack v0.15.0 github.com/smartcontractkit/chain-selectors v1.0.29 github.com/smartcontractkit/chainlink-automation v0.8.1 + github.com/smartcontractkit/chainlink-ccip v0.0.0-20241118091009-43c2b4804cec github.com/smartcontractkit/chainlink-common v0.3.1-0.20241114134822-aadff98ef068 github.com/smartcontractkit/chainlink-protos/job-distributor v0.4.0 github.com/smartcontractkit/chainlink-testing-framework/havoc v1.50.2 @@ -413,7 +414,6 @@ require ( github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/sirupsen/logrus v1.9.3 // indirect github.com/smartcontractkit/ccip-owner-contracts v0.0.0-20240926212305-a6deabdfce86 // indirect - github.com/smartcontractkit/chainlink-ccip v0.0.0-20241115103032-ec39846b3436 // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241017133723-5277829bd53f // indirect github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241018134907-a00ba3729b5e // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 5635684b688..f743de3f3a6 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1403,8 +1403,8 @@ github.com/smartcontractkit/chain-selectors v1.0.29 h1:aZ9+OoUSMn4nqnissHtDvDoKR github.com/smartcontractkit/chain-selectors v1.0.29/go.mod h1:xsKM0aN3YGcQKTPRPDDtPx2l4mlTN1Djmg0VVXV40b8= github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgBc2xpDKBco/Q4h4ydl6+UUU= github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= -github.com/smartcontractkit/chainlink-ccip v0.0.0-20241115103032-ec39846b3436 h1:n3wy96cqxsaJGoCDbFulFPHind6Etq0tiWZcwAnTs3Q= -github.com/smartcontractkit/chainlink-ccip v0.0.0-20241115103032-ec39846b3436/go.mod h1:4adKaHNaxFsRvV/lYfqtbsWyyvIPUMLR0FdOJN/ljis= +github.com/smartcontractkit/chainlink-ccip v0.0.0-20241118091009-43c2b4804cec h1:5vS1k8Qn09p8SQ3JzvS8iy4Pve7s3aVq+UPIdl74smY= +github.com/smartcontractkit/chainlink-ccip v0.0.0-20241118091009-43c2b4804cec/go.mod h1:4adKaHNaxFsRvV/lYfqtbsWyyvIPUMLR0FdOJN/ljis= github.com/smartcontractkit/chainlink-common v0.3.1-0.20241114134822-aadff98ef068 h1:2llRW4Tn9W/EZp2XvXclQ9IjeTBwwxVPrrqaerX+vCE= github.com/smartcontractkit/chainlink-common v0.3.1-0.20241114134822-aadff98ef068/go.mod h1:ny87uTW6hLjCTLiBqBRNFEhETSXhHWevYlPclT5lSco= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241017133723-5277829bd53f h1:BwrIaQIx5Iy6eT+DfLhFfK2XqjxRm74mVdlX8gbu4dw= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index 30cdab1097d..311fced3e7f 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -65,7 +65,7 @@ require ( github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/sagikazarmark/locafero v0.4.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect - github.com/smartcontractkit/chainlink-ccip v0.0.0-20241115103032-ec39846b3436 // indirect + github.com/smartcontractkit/chainlink-ccip v0.0.0-20241118091009-43c2b4804cec // indirect github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241017133723-5277829bd53f // indirect github.com/smartcontractkit/chainlink-testing-framework/havoc v1.50.2 // indirect github.com/smartcontractkit/grpc-proxy v0.0.0-20240830132753-a7e17fec5ab7 // indirect diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index b4eaf20b15b..19c6c043468 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1392,8 +1392,8 @@ github.com/smartcontractkit/chain-selectors v1.0.29 h1:aZ9+OoUSMn4nqnissHtDvDoKR github.com/smartcontractkit/chain-selectors v1.0.29/go.mod h1:xsKM0aN3YGcQKTPRPDDtPx2l4mlTN1Djmg0VVXV40b8= github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgBc2xpDKBco/Q4h4ydl6+UUU= github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= -github.com/smartcontractkit/chainlink-ccip v0.0.0-20241115103032-ec39846b3436 h1:n3wy96cqxsaJGoCDbFulFPHind6Etq0tiWZcwAnTs3Q= -github.com/smartcontractkit/chainlink-ccip v0.0.0-20241115103032-ec39846b3436/go.mod h1:4adKaHNaxFsRvV/lYfqtbsWyyvIPUMLR0FdOJN/ljis= +github.com/smartcontractkit/chainlink-ccip v0.0.0-20241118091009-43c2b4804cec h1:5vS1k8Qn09p8SQ3JzvS8iy4Pve7s3aVq+UPIdl74smY= +github.com/smartcontractkit/chainlink-ccip v0.0.0-20241118091009-43c2b4804cec/go.mod h1:4adKaHNaxFsRvV/lYfqtbsWyyvIPUMLR0FdOJN/ljis= github.com/smartcontractkit/chainlink-common v0.3.1-0.20241114134822-aadff98ef068 h1:2llRW4Tn9W/EZp2XvXclQ9IjeTBwwxVPrrqaerX+vCE= github.com/smartcontractkit/chainlink-common v0.3.1-0.20241114134822-aadff98ef068/go.mod h1:ny87uTW6hLjCTLiBqBRNFEhETSXhHWevYlPclT5lSco= github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241017133723-5277829bd53f h1:BwrIaQIx5Iy6eT+DfLhFfK2XqjxRm74mVdlX8gbu4dw= diff --git a/integration-tests/smoke/ccip_usdc_test.go b/integration-tests/smoke/ccip_usdc_test.go new file mode 100644 index 00000000000..9fb4544d9f6 --- /dev/null +++ b/integration-tests/smoke/ccip_usdc_test.go @@ -0,0 +1,283 @@ +package smoke + +import ( + "math/big" + "net/http" + "net/http/httptest" + "testing" + "time" + + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/stretchr/testify/require" + + "golang.org/x/exp/maps" + + cciptypes "github.com/smartcontractkit/chainlink-ccip/pkg/types/ccipocr3" + "github.com/smartcontractkit/chainlink-ccip/pluginconfig" + commonconfig "github.com/smartcontractkit/chainlink-common/pkg/config" + "github.com/smartcontractkit/chainlink-common/pkg/utils/tests" + jobv1 "github.com/smartcontractkit/chainlink-protos/job-distributor/v1/job" + "github.com/smartcontractkit/chainlink-testing-framework/lib/utils/testcontext" + "github.com/smartcontractkit/chainlink/deployment" + ccdeploy "github.com/smartcontractkit/chainlink/deployment/ccip" + "github.com/smartcontractkit/chainlink/deployment/ccip/changeset" + "github.com/smartcontractkit/chainlink/integration-tests/ccip-tests/actions" + "github.com/smartcontractkit/chainlink/integration-tests/ccip-tests/testsetups" + + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/utils" + "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/ccip/generated/router" + "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/shared/generated/burn_mint_erc677" + "github.com/smartcontractkit/chainlink/v2/core/logger" +) + +func TestUSDCTokenTransfer(t *testing.T) { + lggr := logger.TestLogger(t) + ctx := ccdeploy.Context(t) + tenv, cluster, _ := testsetups.NewLocalDevEnvironmentWithDefaultPrice(t, lggr) + + var endpoint string + // When inmemory env then spin up in memory mock server + if cluster == nil { + server := mockAttestationResponse() + defer server.Close() + endpoint = server.URL + } else { + err := actions.SetMockServerWithUSDCAttestation(tenv.Env.MockAdapter, nil) + require.NoError(t, err) + endpoint = tenv.Env.MockAdapter.InternalEndpoint + } + + e := tenv.Env + state, err := ccdeploy.LoadOnchainState(e) + require.NoError(t, err) + + allChainSelectors := maps.Keys(e.Chains) + sourceChain := allChainSelectors[0] + destChain := allChainSelectors[1] + + feeds := state.Chains[tenv.FeedChainSel].USDFeeds + tokenConfig := ccdeploy.NewTokenConfig() + tokenConfig.UpsertTokenInfo(ccdeploy.LinkSymbol, + pluginconfig.TokenInfo{ + AggregatorAddress: cciptypes.UnknownEncodedAddress(feeds[ccdeploy.LinkSymbol].Address().String()), + Decimals: ccdeploy.LinkDecimals, + DeviationPPB: cciptypes.NewBigIntFromInt64(1e9), + }, + ) + + output, err := changeset.DeployPrerequisites(e, changeset.DeployPrerequisiteConfig{ + ChainSelectors: e.AllChainSelectors(), + }) + require.NoError(t, err) + require.NoError(t, tenv.Env.ExistingAddresses.Merge(output.AddressBook)) + + // Apply migration + output, err = changeset.InitialDeploy(e, ccdeploy.DeployCCIPContractConfig{ + HomeChainSel: tenv.HomeChainSel, + FeedChainSel: tenv.FeedChainSel, + ChainsToDeploy: e.AllChainSelectors(), + TokenConfig: tokenConfig, + MCMSConfig: ccdeploy.NewTestMCMSConfig(t, e), + OCRSecrets: deployment.XXXGenerateTestOCRSecrets(), + USDCConfig: ccdeploy.USDCConfig{ + Enabled: true, + USDCAttestationConfig: ccdeploy.USDCAttestationConfig{ + API: endpoint, + APITimeout: commonconfig.MustNewDuration(time.Second), + APIInterval: commonconfig.MustNewDuration(500 * time.Millisecond), + }, + }, + }) + require.NoError(t, err) + require.NoError(t, e.ExistingAddresses.Merge(output.AddressBook)) + + state, err = ccdeploy.LoadOnchainState(e) + require.NoError(t, err) + + srcUSDC, dstUSDC, err := ccdeploy.ConfigureUSDCTokenPools(lggr, e.Chains, sourceChain, destChain, state) + require.NoError(t, err) + + // Ensure capreg logs are up to date. + ccdeploy.ReplayLogs(t, e.Offchain, tenv.ReplayBlocks) + + // Apply the jobs. + for nodeID, jobs := range output.JobSpecs { + for _, job := range jobs { + // Note these auto-accept + _, err := e.Offchain.ProposeJob(ctx, + &jobv1.ProposeJobRequest{ + NodeId: nodeID, + Spec: job, + }) + require.NoError(t, err) + } + } + + // Add all lanes + require.NoError(t, ccdeploy.AddLanesForAll(e, state)) + + mintAndAllow(t, e, state, map[uint64]*burn_mint_erc677.BurnMintERC677{ + sourceChain: srcUSDC, + destChain: dstUSDC, + }) + + err = ccdeploy.UpdateFeeQuoterForUSDC(lggr, e.Chains[sourceChain], state.Chains[sourceChain], destChain, srcUSDC) + require.NoError(t, err) + + err = ccdeploy.UpdateFeeQuoterForUSDC(lggr, e.Chains[destChain], state.Chains[destChain], sourceChain, dstUSDC) + require.NoError(t, err) + + // MockE2EUSDCTransmitter always mint 1, see MockE2EUSDCTransmitter.sol for more details + tinyOneCoin := new(big.Int).SetUint64(1) + + srcDstTokenMapping := map[common.Address]*burn_mint_erc677.BurnMintERC677{ + srcUSDC.Address(): dstUSDC, + dstUSDC.Address(): srcUSDC, + } + + tcs := []struct { + name string + receiver common.Address + sourceChain uint64 + destChain uint64 + tokens []router.ClientEVMTokenAmount + data []byte + }{ + { + name: "single USDC token transfer to EOA", + receiver: utils.RandomAddress(), + sourceChain: destChain, + destChain: sourceChain, + tokens: []router.ClientEVMTokenAmount{ + { + Token: dstUSDC.Address(), + Amount: tinyOneCoin, + }}, + }, + { + name: "programmable token transfer to valid contract receiver", + receiver: state.Chains[destChain].Receiver.Address(), + sourceChain: sourceChain, + destChain: destChain, + tokens: []router.ClientEVMTokenAmount{ + { + Token: srcUSDC.Address(), + Amount: tinyOneCoin, + }, + }, + data: []byte("hello world"), + }, + } + + for _, tt := range tcs { + t.Run(tt.name, func(t *testing.T) { + initialBalances := map[common.Address]*big.Int{} + for _, token := range tt.tokens { + destToken := srcDstTokenMapping[token.Token] + + initialBalance, err := destToken.BalanceOf(&bind.CallOpts{Context: tests.Context(t)}, tt.receiver) + require.NoError(t, err) + initialBalances[token.Token] = initialBalance + } + + transferAndWaitForSuccess( + t, + e, + state, + tt.sourceChain, + tt.destChain, + tt.tokens, + tt.receiver, + tt.data, + ) + + for _, token := range tt.tokens { + destToken := srcDstTokenMapping[token.Token] + + balance, err := destToken.BalanceOf(&bind.CallOpts{Context: tests.Context(t)}, tt.receiver) + require.NoError(t, err) + require.Equal(t, new(big.Int).Add(initialBalances[token.Token], tinyOneCoin), balance) + } + }) + } +} + +// mintAndAllow mints tokens for deployers and allow router to spend them +func mintAndAllow( + t *testing.T, + e deployment.Environment, + state ccdeploy.CCIPOnChainState, + tokens map[uint64]*burn_mint_erc677.BurnMintERC677, +) { + for chain, token := range tokens { + twoCoins := new(big.Int).Mul(big.NewInt(1e18), big.NewInt(2)) + + tx, err := token.Mint( + e.Chains[chain].DeployerKey, + e.Chains[chain].DeployerKey.From, + new(big.Int).Mul(twoCoins, big.NewInt(10)), + ) + require.NoError(t, err) + _, err = e.Chains[chain].Confirm(tx) + require.NoError(t, err) + + tx, err = token.Approve(e.Chains[chain].DeployerKey, state.Chains[chain].Router.Address(), twoCoins) + require.NoError(t, err) + _, err = e.Chains[chain].Confirm(tx) + require.NoError(t, err) + } +} + +// transferAndWaitForSuccess sends a message from sourceChain to destChain and waits for it to be executed +func transferAndWaitForSuccess( + t *testing.T, + env deployment.Environment, + state ccdeploy.CCIPOnChainState, + sourceChain, destChain uint64, + tokens []router.ClientEVMTokenAmount, + receiver common.Address, + data []byte, +) { + startBlocks := make(map[uint64]*uint64) + expectedSeqNum := make(map[uint64]uint64) + + latesthdr, err := env.Chains[destChain].Client.HeaderByNumber(testcontext.Get(t), nil) + require.NoError(t, err) + block := latesthdr.Number.Uint64() + startBlocks[destChain] = &block + + msgSentEvent := ccdeploy.TestSendRequest(t, env, state, sourceChain, destChain, false, router.ClientEVM2AnyMessage{ + Receiver: common.LeftPadBytes(receiver.Bytes(), 32), + Data: data, + TokenAmounts: tokens, + FeeToken: common.HexToAddress("0x0"), + ExtraArgs: nil, + }) + expectedSeqNum[destChain] = msgSentEvent.SequenceNumber + + // Wait for all commit reports to land. + ccdeploy.ConfirmCommitForAllWithExpectedSeqNums(t, env, state, expectedSeqNum, startBlocks) + + // Wait for all exec reports to land + ccdeploy.ConfirmExecWithSeqNrForAll(t, env, state, expectedSeqNum, startBlocks) +} + +// mockAttestationResponse mocks the USDC attestation server, it returns random Attestation. +// We don't need to return exactly the same attestation, because our Mocked USDC contract doesn't rely on any specific +// value, but instead of that it just checks if the attestation is present. Therefore, it makes the test a bit simpler +// and doesn't require very detailed mocks. Please see tests in chainlink-ccip for detailed tests using real attestations +func mockAttestationResponse() *httptest.Server { + server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + response := `{ + "status": "complete", + "attestation": "0x9049623e91719ef2aa63c55f357be2529b0e7122ae552c18aff8db58b4633c4d3920ff03d3a6d1ddf11f06bf64d7fd60d45447ac81f527ba628877dc5ca759651b08ffae25a6d3b1411749765244f0a1c131cbfe04430d687a2e12fd9d2e6dc08e118ad95d94ad832332cf3c4f7a4f3da0baa803b7be024b02db81951c0f0714de1b" + }` + + _, err := w.Write([]byte(response)) + if err != nil { + panic(err) + } + })) + return server +} From 63b052ccb1b8581bab173b2d643fa666c095d2c2 Mon Sep 17 00:00:00 2001 From: Adam Hamrick Date: Mon, 18 Nov 2024 12:22:58 -0500 Subject: [PATCH 10/13] Purge GAP From All E2E Test Runs (#15281) * Should purge GAP from all E2E test runs * Update to proper version --- .github/workflows/automation-benchmark-tests.yml | 2 +- .github/workflows/automation-load-tests.yml | 2 +- .github/workflows/automation-nightly-tests.yml | 2 +- .github/workflows/automation-ondemand-tests.yml | 2 +- .github/workflows/ccip-chaos-tests.yml | 3 +-- .github/workflows/ccip-load-tests.yml | 2 +- .github/workflows/integration-chaos-tests.yml | 2 +- .github/workflows/integration-tests.yml | 8 ++++---- .github/workflows/on-demand-ocr-soak-test.yml | 2 +- .github/workflows/on-demand-vrfv2-performance-test.yml | 2 +- .github/workflows/on-demand-vrfv2-smoke-tests.yml | 2 +- .../workflows/on-demand-vrfv2plus-performance-test.yml | 2 +- .github/workflows/on-demand-vrfv2plus-smoke-tests.yml | 2 +- .github/workflows/run-nightly-e2e-tests.yml | 2 +- .github/workflows/run-selected-e2e-tests.yml | 2 +- 15 files changed, 18 insertions(+), 19 deletions(-) diff --git a/.github/workflows/automation-benchmark-tests.yml b/.github/workflows/automation-benchmark-tests.yml index 3a07ecefaa0..9a4a127dede 100644 --- a/.github/workflows/automation-benchmark-tests.yml +++ b/.github/workflows/automation-benchmark-tests.yml @@ -24,7 +24,7 @@ on: jobs: run-e2e-tests-workflow: name: Run E2E Tests - uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@f1f2dac0a20f0e02408eb7f528c768fe95c39229 + uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@5412507526722a7b1c5d719fa686eed5a1bc4035 # ctf-run-tests@0.2.0 with: test_path: .github/e2e-tests.yml test_ids: '${{ inputs.testType }}/automation_test.go:TestAutomationBenchmark' diff --git a/.github/workflows/automation-load-tests.yml b/.github/workflows/automation-load-tests.yml index 71bfbfa029e..24c7017ee9a 100644 --- a/.github/workflows/automation-load-tests.yml +++ b/.github/workflows/automation-load-tests.yml @@ -19,7 +19,7 @@ on: jobs: run-e2e-tests-workflow: name: Run E2E Tests - uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@f1f2dac0a20f0e02408eb7f528c768fe95c39229 + uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@5412507526722a7b1c5d719fa686eed5a1bc4035 # ctf-run-tests@0.2.0 with: test_path: .github/e2e-tests.yml test_ids: 'load/automationv2_1/automationv2_1_test.go:TestLogTrigger' diff --git a/.github/workflows/automation-nightly-tests.yml b/.github/workflows/automation-nightly-tests.yml index 222eac2e75b..c184021f028 100644 --- a/.github/workflows/automation-nightly-tests.yml +++ b/.github/workflows/automation-nightly-tests.yml @@ -10,7 +10,7 @@ on: jobs: run-e2e-tests-workflow: name: Run E2E Tests - uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@f1f2dac0a20f0e02408eb7f528c768fe95c39229 + uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@5412507526722a7b1c5d719fa686eed5a1bc4035 # ctf-run-tests@0.2.0 with: test_path: .github/e2e-tests.yml test_trigger: Automation Nightly Tests diff --git a/.github/workflows/automation-ondemand-tests.yml b/.github/workflows/automation-ondemand-tests.yml index f85a1330e6e..c72715bf9db 100644 --- a/.github/workflows/automation-ondemand-tests.yml +++ b/.github/workflows/automation-ondemand-tests.yml @@ -153,7 +153,7 @@ jobs: call-run-e2e-tests-workflow: name: Run E2E Tests needs: set-tests-to-run - uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@f1f2dac0a20f0e02408eb7f528c768fe95c39229 + uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@5412507526722a7b1c5d719fa686eed5a1bc4035 # ctf-run-tests@0.2.0 with: test_path: .github/e2e-tests.yml test_list: ${{ needs.set-tests-to-run.outputs.test_list }} diff --git a/.github/workflows/ccip-chaos-tests.yml b/.github/workflows/ccip-chaos-tests.yml index 29d41267f1e..14754ee5283 100644 --- a/.github/workflows/ccip-chaos-tests.yml +++ b/.github/workflows/ccip-chaos-tests.yml @@ -15,8 +15,7 @@ concurrency: jobs: run-e2e-tests-workflow: name: Run E2E Tests - uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@f1f2dac0a20f0e02408eb7f528c768fe95c39229 - with: + uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@5412507526722a7b1c5d719fa686eed5a1bc4035 # ctf-run-tests@0.2.0 test_path: .github/e2e-tests.yml chainlink_version: ${{ github.sha }} require_chainlink_image_versions_in_qa_ecr: ${{ github.sha }} diff --git a/.github/workflows/ccip-load-tests.yml b/.github/workflows/ccip-load-tests.yml index 038888f8049..4f5b7ac509c 100644 --- a/.github/workflows/ccip-load-tests.yml +++ b/.github/workflows/ccip-load-tests.yml @@ -31,7 +31,7 @@ concurrency: jobs: run-e2e-tests-workflow: name: Run E2E Tests - uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@f1f2dac0a20f0e02408eb7f528c768fe95c39229 + uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@5412507526722a7b1c5d719fa686eed5a1bc4035 # ctf-run-tests@0.2.0 with: test_path: .github/e2e-tests.yml test_trigger: E2E CCIP Load Tests diff --git a/.github/workflows/integration-chaos-tests.yml b/.github/workflows/integration-chaos-tests.yml index 3be161005f8..314e54a1ab8 100644 --- a/.github/workflows/integration-chaos-tests.yml +++ b/.github/workflows/integration-chaos-tests.yml @@ -10,7 +10,7 @@ on: jobs: run-e2e-tests-workflow: name: Run E2E Tests - uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@f1f2dac0a20f0e02408eb7f528c768fe95c39229 + uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@5412507526722a7b1c5d719fa686eed5a1bc4035 # ctf-run-tests@0.2.0 with: test_path: .github/e2e-tests.yml chainlink_version: ${{ github.sha }} diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index 79019e1c4fc..08383aed12d 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -210,7 +210,7 @@ jobs: contents: read needs: [build-chainlink, changes] if: github.event_name == 'pull_request' && ( needs.changes.outputs.core_changes == 'true' || needs.changes.outputs.github_ci_changes == 'true') - uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@5412507526722a7b1c5d719fa686eed5a1bc4035 #ctf-run-tests@0.2.0 + uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@5412507526722a7b1c5d719fa686eed5a1bc4035 # ctf-run-tests@0.2.0 with: workflow_name: Run Core E2E Tests For PR chainlink_version: ${{ inputs.evm-ref || github.sha }} @@ -251,7 +251,7 @@ jobs: contents: read needs: [build-chainlink, changes] if: github.event_name == 'merge_group' && ( needs.changes.outputs.core_changes == 'true' || needs.changes.outputs.github_ci_changes == 'true') - uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@47a3b0cf4e87a031049eef2d951982c94db04cae #ctf-run-tests@1.0.0 + uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@5412507526722a7b1c5d719fa686eed5a1bc4035 # ctf-run-tests@0.2.0 with: workflow_name: Run Core E2E Tests For Merge Queue chainlink_version: ${{ inputs.evm-ref || github.sha }} @@ -296,7 +296,7 @@ jobs: contents: read needs: [build-chainlink, changes] if: github.event_name == 'pull_request' && (needs.changes.outputs.ccip_changes == 'true' || needs.changes.outputs.github_ci_changes == 'true') - uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@ca50645120f0f07ed8c0df08175a5d6b3e4ac454 #ctf-run-tests@0.1.2 + uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@5412507526722a7b1c5d719fa686eed5a1bc4035 # ctf-run-tests@0.2.0 with: workflow_name: Run CCIP E2E Tests For PR chainlink_version: ${{ inputs.evm-ref || github.sha }} @@ -337,7 +337,7 @@ jobs: contents: read needs: [build-chainlink, changes] if: github.event_name == 'merge_group' && (needs.changes.outputs.ccip_changes == 'true' || needs.changes.outputs.github_ci_changes == 'true') - uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@ca50645120f0f07ed8c0df08175a5d6b3e4ac454 #ctf-run-tests@0.1.2 + uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@5412507526722a7b1c5d719fa686eed5a1bc4035 # ctf-run-tests@0.2.0 with: workflow_name: Run CCIP E2E Tests For Merge Queue chainlink_version: ${{ inputs.evm-ref || github.sha }} diff --git a/.github/workflows/on-demand-ocr-soak-test.yml b/.github/workflows/on-demand-ocr-soak-test.yml index a96c000fa44..ac97d3c6355 100644 --- a/.github/workflows/on-demand-ocr-soak-test.yml +++ b/.github/workflows/on-demand-ocr-soak-test.yml @@ -39,7 +39,7 @@ on: jobs: run-e2e-tests-workflow: name: Run E2E Tests - uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@f1f2dac0a20f0e02408eb7f528c768fe95c39229 + uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@5412507526722a7b1c5d719fa686eed5a1bc4035 # ctf-run-tests@0.2.0 with: test_path: .github/e2e-tests.yml test_ids: ${{ inputs.testToRun}} diff --git a/.github/workflows/on-demand-vrfv2-performance-test.yml b/.github/workflows/on-demand-vrfv2-performance-test.yml index 0a9cec3db93..aadef377718 100644 --- a/.github/workflows/on-demand-vrfv2-performance-test.yml +++ b/.github/workflows/on-demand-vrfv2-performance-test.yml @@ -67,7 +67,7 @@ jobs: run-e2e-tests-workflow: name: Run E2E Tests needs: set-tests-to-run - uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@f1f2dac0a20f0e02408eb7f528c768fe95c39229 + uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@5412507526722a7b1c5d719fa686eed5a1bc4035 # ctf-run-tests@0.2.0 with: custom_test_list_json: ${{ needs.set-tests-to-run.outputs.test_list }} chainlink_version: ${{ inputs.chainlink_version }} diff --git a/.github/workflows/on-demand-vrfv2-smoke-tests.yml b/.github/workflows/on-demand-vrfv2-smoke-tests.yml index fcb083df708..4ebc38a8081 100644 --- a/.github/workflows/on-demand-vrfv2-smoke-tests.yml +++ b/.github/workflows/on-demand-vrfv2-smoke-tests.yml @@ -70,7 +70,7 @@ jobs: run-e2e-tests-workflow: name: Run E2E Tests needs: set-tests-to-run - uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@f1f2dac0a20f0e02408eb7f528c768fe95c39229 + uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@5412507526722a7b1c5d719fa686eed5a1bc4035 # ctf-run-tests@0.2.0 with: custom_test_list_json: ${{ needs.set-tests-to-run.outputs.test_list }} chainlink_version: ${{ inputs.chainlink_version }} diff --git a/.github/workflows/on-demand-vrfv2plus-performance-test.yml b/.github/workflows/on-demand-vrfv2plus-performance-test.yml index 534aea3d27d..f6d120ac178 100644 --- a/.github/workflows/on-demand-vrfv2plus-performance-test.yml +++ b/.github/workflows/on-demand-vrfv2plus-performance-test.yml @@ -67,7 +67,7 @@ jobs: run-e2e-tests-workflow: name: Run E2E Tests needs: set-tests-to-run - uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@f1f2dac0a20f0e02408eb7f528c768fe95c39229 + uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@5412507526722a7b1c5d719fa686eed5a1bc4035 # ctf-run-tests@0.2.0 with: custom_test_list_json: ${{ needs.set-tests-to-run.outputs.test_list }} chainlink_version: ${{ inputs.chainlink_version }} diff --git a/.github/workflows/on-demand-vrfv2plus-smoke-tests.yml b/.github/workflows/on-demand-vrfv2plus-smoke-tests.yml index 9137cc64d98..af26c527988 100644 --- a/.github/workflows/on-demand-vrfv2plus-smoke-tests.yml +++ b/.github/workflows/on-demand-vrfv2plus-smoke-tests.yml @@ -70,7 +70,7 @@ jobs: run-e2e-tests-workflow: name: Run E2E Tests needs: set-tests-to-run - uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@f1f2dac0a20f0e02408eb7f528c768fe95c39229 + uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@5412507526722a7b1c5d719fa686eed5a1bc4035 # ctf-run-tests@0.2.0 with: custom_test_list_json: ${{ needs.set-tests-to-run.outputs.test_list }} chainlink_version: ${{ inputs.chainlink_version }} diff --git a/.github/workflows/run-nightly-e2e-tests.yml b/.github/workflows/run-nightly-e2e-tests.yml index 0637363ca76..eba1108f89f 100644 --- a/.github/workflows/run-nightly-e2e-tests.yml +++ b/.github/workflows/run-nightly-e2e-tests.yml @@ -20,7 +20,7 @@ on: jobs: call-run-e2e-tests-workflow: name: Run E2E Tests - uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@f1f2dac0a20f0e02408eb7f528c768fe95c39229 + uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@5412507526722a7b1c5d719fa686eed5a1bc4035 # ctf-run-tests@0.2.0 with: chainlink_version: ${{ inputs.chainlink_version || 'develop' }} test_path: .github/e2e-tests.yml diff --git a/.github/workflows/run-selected-e2e-tests.yml b/.github/workflows/run-selected-e2e-tests.yml index b53bc756f4d..0e7c97c67fc 100644 --- a/.github/workflows/run-selected-e2e-tests.yml +++ b/.github/workflows/run-selected-e2e-tests.yml @@ -35,7 +35,7 @@ run-name: ${{ inputs.workflow_run_name }} jobs: call-run-e2e-tests-workflow: name: Run E2E Tests - uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@f1f2dac0a20f0e02408eb7f528c768fe95c39229 + uses: smartcontractkit/.github/.github/workflows/run-e2e-tests.yml@5412507526722a7b1c5d719fa686eed5a1bc4035 # ctf-run-tests@0.2.0 with: chainlink_version: ${{ github.event.inputs.chainlink_version }} test_path: .github/e2e-tests.yml From 50fc67f3d40966859e0060d4481a8ff287f0f261 Mon Sep 17 00:00:00 2001 From: Jordan Krage Date: Mon, 18 Nov 2024 11:53:31 -0600 Subject: [PATCH 11/13] common/client: convert MultiNode to use *services.Engine (#15216) --- common/client/multi_node.go | 123 ++++++++---------- common/client/multi_node_test.go | 39 ++---- common/client/node_lifecycle_test.go | 2 +- common/client/transaction_sender_test.go | 66 +++++----- core/chains/evm/client/rpc_client_test.go | 4 +- .../evm/gas/block_history_estimator_test.go | 3 +- .../evm/logpoller/observability_test.go | 6 +- 7 files changed, 101 insertions(+), 142 deletions(-) diff --git a/common/client/multi_node.go b/common/client/multi_node.go index 7d631954c54..5ac595161af 100644 --- a/common/client/multi_node.go +++ b/common/client/multi_node.go @@ -2,7 +2,6 @@ package client import ( "context" - "errors" "fmt" "math/big" "sync" @@ -32,7 +31,9 @@ type MultiNode[ CHAIN_ID types.ID, RPC any, ] struct { - services.StateMachine + services.Service + eng *services.Engine + primaryNodes []Node[CHAIN_ID, RPC] sendOnlyNodes []SendOnlyNode[CHAIN_ID, RPC] chainID CHAIN_ID @@ -47,9 +48,6 @@ type MultiNode[ activeMu sync.RWMutex activeNode Node[CHAIN_ID, RPC] - - chStop services.StopChan - wg sync.WaitGroup } func NewMultiNode[ @@ -73,15 +71,19 @@ func NewMultiNode[ primaryNodes: primaryNodes, sendOnlyNodes: sendOnlyNodes, chainID: chainID, - lggr: logger.Sugared(lggr).Named("MultiNode").With("chainID", chainID.String()), selectionMode: selectionMode, nodeSelector: nodeSelector, - chStop: make(services.StopChan), leaseDuration: leaseDuration, chainFamily: chainFamily, reportInterval: reportInterval, deathDeclarationDelay: deathDeclarationDelay, } + c.Service, c.eng = services.Config{ + Name: "MultiNode", + Start: c.start, + Close: c.close, + }.NewServiceEngine(logger.With(lggr, "chainID", chainID.String())) + c.lggr = c.eng.SugaredLogger c.lggr.Debugf("The MultiNode is configured to use NodeSelectionMode: %s", selectionMode) @@ -93,16 +95,12 @@ func (c *MultiNode[CHAIN_ID, RPC]) ChainID() CHAIN_ID { } func (c *MultiNode[CHAIN_ID, RPC]) DoAll(ctx context.Context, do func(ctx context.Context, rpc RPC, isSendOnly bool)) error { - var err error - ok := c.IfNotStopped(func() { - ctx, _ = c.chStop.Ctx(ctx) - + return c.eng.IfNotStopped(func() error { callsCompleted := 0 for _, n := range c.primaryNodes { select { case <-ctx.Done(): - err = ctx.Err() - return + return ctx.Err() default: if n.State() != nodeStateAlive { continue @@ -111,15 +109,11 @@ func (c *MultiNode[CHAIN_ID, RPC]) DoAll(ctx context.Context, do func(ctx contex callsCompleted++ } } - if callsCompleted == 0 { - err = ErroringNodeError - } for _, n := range c.sendOnlyNodes { select { case <-ctx.Done(): - err = ctx.Err() - return + return ctx.Err() default: if n.State() != nodeStateAlive { continue @@ -127,11 +121,11 @@ func (c *MultiNode[CHAIN_ID, RPC]) DoAll(ctx context.Context, do func(ctx contex do(ctx, n.RPC(), true) } } + if callsCompleted == 0 { + return ErroringNodeError + } + return nil }) - if !ok { - return errors.New("MultiNode is stopped") - } - return err } func (c *MultiNode[CHAIN_ID, RPC]) NodeStates() map[string]string { @@ -149,53 +143,44 @@ func (c *MultiNode[CHAIN_ID, RPC]) NodeStates() map[string]string { // // Nodes handle their own redialing and runloops, so this function does not // return any error if the nodes aren't available -func (c *MultiNode[CHAIN_ID, RPC]) Start(ctx context.Context) error { - return c.StartOnce("MultiNode", func() (merr error) { - if len(c.primaryNodes) == 0 { - return fmt.Errorf("no available nodes for chain %s", c.chainID.String()) +func (c *MultiNode[CHAIN_ID, RPC]) start(ctx context.Context) error { + if len(c.primaryNodes) == 0 { + return fmt.Errorf("no available nodes for chain %s", c.chainID.String()) + } + var ms services.MultiStart + for _, n := range c.primaryNodes { + if n.ConfiguredChainID().String() != c.chainID.String() { + return ms.CloseBecause(fmt.Errorf("node %s has configured chain ID %s which does not match multinode configured chain ID of %s", n.String(), n.ConfiguredChainID().String(), c.chainID.String())) } - var ms services.MultiStart - for _, n := range c.primaryNodes { - if n.ConfiguredChainID().String() != c.chainID.String() { - return ms.CloseBecause(fmt.Errorf("node %s has configured chain ID %s which does not match multinode configured chain ID of %s", n.String(), n.ConfiguredChainID().String(), c.chainID.String())) - } - n.SetPoolChainInfoProvider(c) - // node will handle its own redialing and automatic recovery - if err := ms.Start(ctx, n); err != nil { - return err - } + n.SetPoolChainInfoProvider(c) + // node will handle its own redialing and automatic recovery + if err := ms.Start(ctx, n); err != nil { + return err } - for _, s := range c.sendOnlyNodes { - if s.ConfiguredChainID().String() != c.chainID.String() { - return ms.CloseBecause(fmt.Errorf("sendonly node %s has configured chain ID %s which does not match multinode configured chain ID of %s", s.String(), s.ConfiguredChainID().String(), c.chainID.String())) - } - if err := ms.Start(ctx, s); err != nil { - return err - } + } + for _, s := range c.sendOnlyNodes { + if s.ConfiguredChainID().String() != c.chainID.String() { + return ms.CloseBecause(fmt.Errorf("sendonly node %s has configured chain ID %s which does not match multinode configured chain ID of %s", s.String(), s.ConfiguredChainID().String(), c.chainID.String())) } - c.wg.Add(1) - go c.runLoop() - - if c.leaseDuration.Seconds() > 0 && c.selectionMode != NodeSelectionModeRoundRobin { - c.lggr.Infof("The MultiNode will switch to best node every %s", c.leaseDuration.String()) - c.wg.Add(1) - go c.checkLeaseLoop() - } else { - c.lggr.Info("Best node switching is disabled") + if err := ms.Start(ctx, s); err != nil { + return err } + } + c.eng.Go(c.runLoop) - return nil - }) + if c.leaseDuration.Seconds() > 0 && c.selectionMode != NodeSelectionModeRoundRobin { + c.lggr.Infof("The MultiNode will switch to best node every %s", c.leaseDuration.String()) + c.eng.Go(c.checkLeaseLoop) + } else { + c.lggr.Info("Best node switching is disabled") + } + + return nil } // Close tears down the MultiNode and closes all nodes -func (c *MultiNode[CHAIN_ID, RPC]) Close() error { - return c.StopOnce("MultiNode", func() error { - close(c.chStop) - c.wg.Wait() - - return services.CloseAll(services.MultiCloser(c.primaryNodes), services.MultiCloser(c.sendOnlyNodes)) - }) +func (c *MultiNode[CHAIN_ID, RPC]) close() error { + return services.CloseAll(services.MultiCloser(c.primaryNodes), services.MultiCloser(c.sendOnlyNodes)) } // SelectRPC returns an RPC of an active node. If there are no active nodes it returns an error. @@ -233,8 +218,7 @@ func (c *MultiNode[CHAIN_ID, RPC]) selectNode() (node Node[CHAIN_ID, RPC], err e c.activeNode = c.nodeSelector.Select() if c.activeNode == nil { c.lggr.Criticalw("No live RPC nodes available", "NodeSelectionMode", c.nodeSelector.Name()) - errmsg := fmt.Errorf("no live nodes available for chain %s", c.chainID.String()) - c.SvcErrBuffer.Append(errmsg) + c.eng.EmitHealthErr(fmt.Errorf("no live nodes available for chain %s", c.chainID.String())) return nil, ErroringNodeError } @@ -296,8 +280,7 @@ func (c *MultiNode[CHAIN_ID, RPC]) checkLease() { } } -func (c *MultiNode[CHAIN_ID, RPC]) checkLeaseLoop() { - defer c.wg.Done() +func (c *MultiNode[CHAIN_ID, RPC]) checkLeaseLoop(ctx context.Context) { c.leaseTicker = time.NewTicker(c.leaseDuration) defer c.leaseTicker.Stop() @@ -305,15 +288,13 @@ func (c *MultiNode[CHAIN_ID, RPC]) checkLeaseLoop() { select { case <-c.leaseTicker.C: c.checkLease() - case <-c.chStop: + case <-ctx.Done(): return } } } -func (c *MultiNode[CHAIN_ID, RPC]) runLoop() { - defer c.wg.Done() - +func (c *MultiNode[CHAIN_ID, RPC]) runLoop(ctx context.Context) { nodeStates := make([]nodeWithState, len(c.primaryNodes)) for i, n := range c.primaryNodes { nodeStates[i] = nodeWithState{ @@ -332,7 +313,7 @@ func (c *MultiNode[CHAIN_ID, RPC]) runLoop() { select { case <-monitor.C: c.report(nodeStates) - case <-c.chStop: + case <-ctx.Done(): return } } @@ -376,7 +357,7 @@ func (c *MultiNode[CHAIN_ID, RPC]) report(nodesStateInfo []nodeWithState) { if total == dead { rerr := fmt.Errorf("no primary nodes available: 0/%d nodes are alive", total) c.lggr.Criticalw(rerr.Error(), "nodeStates", nodesStateInfo) - c.SvcErrBuffer.Append(rerr) + c.eng.EmitHealthErr(rerr) } else if dead > 0 { c.lggr.Errorw(fmt.Sprintf("At least one primary node is dead: %d/%d nodes are alive", live, total), "nodeStates", nodesStateInfo) } diff --git a/common/client/multi_node_test.go b/common/client/multi_node_test.go index 57b849a3c0a..f8fdd4261b2 100644 --- a/common/client/multi_node_test.go +++ b/common/client/multi_node_test.go @@ -13,6 +13,7 @@ import ( "github.com/stretchr/testify/require" "go.uber.org/zap" + "github.com/smartcontractkit/chainlink-common/pkg/services/servicetest" "github.com/smartcontractkit/chainlink-common/pkg/utils/tests" "github.com/smartcontractkit/chainlink-common/pkg/logger" @@ -76,7 +77,7 @@ func TestMultiNode_Dial(t *testing.T) { chainID: types.RandomID(), }) err := mn.Start(tests.Context(t)) - assert.EqualError(t, err, fmt.Sprintf("no available nodes for chain %s", mn.chainID.String())) + assert.ErrorContains(t, err, fmt.Sprintf("no available nodes for chain %s", mn.chainID)) }) t.Run("Fails with wrong node's chainID", func(t *testing.T) { t.Parallel() @@ -92,7 +93,7 @@ func TestMultiNode_Dial(t *testing.T) { nodes: []Node[types.ID, multiNodeRPCClient]{node}, }) err := mn.Start(tests.Context(t)) - assert.EqualError(t, err, fmt.Sprintf("node %s has configured chain ID %s which does not match multinode configured chain ID of %s", nodeName, nodeChainID, mn.chainID)) + assert.ErrorContains(t, err, fmt.Sprintf("node %s has configured chain ID %s which does not match multinode configured chain ID of %s", nodeName, nodeChainID, mn.chainID)) }) t.Run("Fails if node fails", func(t *testing.T) { t.Parallel() @@ -108,7 +109,7 @@ func TestMultiNode_Dial(t *testing.T) { nodes: []Node[types.ID, multiNodeRPCClient]{node}, }) err := mn.Start(tests.Context(t)) - assert.EqualError(t, err, expectedError.Error()) + assert.ErrorIs(t, err, expectedError) }) t.Run("Closes started nodes on failure", func(t *testing.T) { @@ -127,7 +128,7 @@ func TestMultiNode_Dial(t *testing.T) { nodes: []Node[types.ID, multiNodeRPCClient]{node1, node2}, }) err := mn.Start(tests.Context(t)) - assert.EqualError(t, err, expectedError.Error()) + assert.ErrorIs(t, err, expectedError) }) t.Run("Fails with wrong send only node's chainID", func(t *testing.T) { t.Parallel() @@ -146,7 +147,7 @@ func TestMultiNode_Dial(t *testing.T) { sendonlys: []SendOnlyNode[types.ID, multiNodeRPCClient]{sendOnly}, }) err := mn.Start(tests.Context(t)) - assert.EqualError(t, err, fmt.Sprintf("sendonly node %s has configured chain ID %s which does not match multinode configured chain ID of %s", sendOnlyName, sendOnlyChainID, mn.chainID)) + assert.ErrorContains(t, err, fmt.Sprintf("sendonly node %s has configured chain ID %s which does not match multinode configured chain ID of %s", sendOnlyName, sendOnlyChainID, mn.chainID)) }) newHealthySendOnly := func(t *testing.T, chainID types.ID) *mockSendOnlyNode[types.ID, multiNodeRPCClient] { @@ -173,7 +174,7 @@ func TestMultiNode_Dial(t *testing.T) { sendonlys: []SendOnlyNode[types.ID, multiNodeRPCClient]{sendOnly1, sendOnly2}, }) err := mn.Start(tests.Context(t)) - assert.EqualError(t, err, expectedError.Error()) + assert.ErrorIs(t, err, expectedError) }) t.Run("Starts successfully with healthy nodes", func(t *testing.T) { t.Parallel() @@ -185,9 +186,7 @@ func TestMultiNode_Dial(t *testing.T) { nodes: []Node[types.ID, multiNodeRPCClient]{node}, sendonlys: []SendOnlyNode[types.ID, multiNodeRPCClient]{newHealthySendOnly(t, chainID)}, }) - defer func() { assert.NoError(t, mn.Close()) }() - err := mn.Start(tests.Context(t)) - require.NoError(t, err) + servicetest.Run(t, mn) selectedNode, err := mn.selectNode() require.NoError(t, err) assert.Equal(t, node, selectedNode) @@ -210,9 +209,7 @@ func TestMultiNode_Report(t *testing.T) { }) mn.reportInterval = tests.TestInterval mn.deathDeclarationDelay = tests.TestInterval - defer func() { assert.NoError(t, mn.Close()) }() - err := mn.Start(tests.Context(t)) - require.NoError(t, err) + servicetest.Run(t, mn) tests.AssertLogCountEventually(t, observedLogs, "At least one primary node is dead: 1/2 nodes are alive", 2) }) t.Run("Report critical error on all node failure", func(t *testing.T) { @@ -228,11 +225,9 @@ func TestMultiNode_Report(t *testing.T) { }) mn.reportInterval = tests.TestInterval mn.deathDeclarationDelay = tests.TestInterval - defer func() { assert.NoError(t, mn.Close()) }() - err := mn.Start(tests.Context(t)) - require.NoError(t, err) + servicetest.Run(t, mn) tests.AssertLogCountEventually(t, observedLogs, "no primary nodes available: 0/1 nodes are alive", 2) - err = mn.Healthy() + err := mn.HealthReport()["MultiNode"] require.Error(t, err) assert.Contains(t, err.Error(), "no primary nodes available: 0/1 nodes are alive") }) @@ -251,9 +246,7 @@ func TestMultiNode_CheckLease(t *testing.T) { logger: lggr, nodes: []Node[types.ID, multiNodeRPCClient]{node}, }) - defer func() { assert.NoError(t, mn.Close()) }() - err := mn.Start(tests.Context(t)) - require.NoError(t, err) + servicetest.Run(t, mn) tests.RequireLogMessage(t, observedLogs, "Best node switching is disabled") }) t.Run("Misconfigured lease check period won't start", func(t *testing.T) { @@ -268,9 +261,7 @@ func TestMultiNode_CheckLease(t *testing.T) { nodes: []Node[types.ID, multiNodeRPCClient]{node}, leaseDuration: 0, }) - defer func() { assert.NoError(t, mn.Close()) }() - err := mn.Start(tests.Context(t)) - require.NoError(t, err) + servicetest.Run(t, mn) tests.RequireLogMessage(t, observedLogs, "Best node switching is disabled") }) t.Run("Lease check updates active node", func(t *testing.T) { @@ -289,10 +280,8 @@ func TestMultiNode_CheckLease(t *testing.T) { nodes: []Node[types.ID, multiNodeRPCClient]{node, bestNode}, leaseDuration: tests.TestInterval, }) - defer func() { assert.NoError(t, mn.Close()) }() mn.nodeSelector = nodeSelector - err := mn.Start(tests.Context(t)) - require.NoError(t, err) + servicetest.Run(t, mn) tests.AssertLogEventually(t, observedLogs, fmt.Sprintf("Switching to best node from %q to %q", node.String(), bestNode.String())) tests.AssertEventually(t, func() bool { mn.activeMu.RLock() diff --git a/common/client/node_lifecycle_test.go b/common/client/node_lifecycle_test.go index 6f9b4653393..e510e0a308a 100644 --- a/common/client/node_lifecycle_test.go +++ b/common/client/node_lifecycle_test.go @@ -395,7 +395,7 @@ func TestUnit_NodeLifecycle_aliveLoop(t *testing.T) { rpc.On("SubscribeToHeads", mock.Anything).Return(make(<-chan Head), sub, nil).Once() expectedError := errors.New("failed to subscribe to finalized heads") rpc.On("SubscribeToFinalizedHeads", mock.Anything).Return(nil, sub, expectedError).Once() - lggr, _ := logger.TestObserved(t, zap.DebugLevel) + lggr := logger.Test(t) node := newDialedNode(t, testNodeOpts{ config: testNodeConfig{ finalizedBlockPollInterval: tests.TestInterval, diff --git a/common/client/transaction_sender_test.go b/common/client/transaction_sender_test.go index 5517a0c8dda..3844a4536ff 100644 --- a/common/client/transaction_sender_test.go +++ b/common/client/transaction_sender_test.go @@ -12,6 +12,7 @@ import ( "go.uber.org/zap" "github.com/smartcontractkit/chainlink-common/pkg/logger" + "github.com/smartcontractkit/chainlink-common/pkg/services/servicetest" "github.com/smartcontractkit/chainlink-common/pkg/utils/tests" "github.com/smartcontractkit/chainlink/v2/common/types" ) @@ -38,31 +39,17 @@ func (rpc *sendTxRPC) SendTransaction(ctx context.Context, _ any) error { return rpc.sendTxErr } +// newTestTransactionSender returns a sendTxMultiNode and TransactionSender. +// Only the TransactionSender is run via Start/Close. func newTestTransactionSender(t *testing.T, chainID types.ID, lggr logger.Logger, nodes []Node[types.ID, SendTxRPCClient[any]], sendOnlyNodes []SendOnlyNode[types.ID, SendTxRPCClient[any]], ) (*sendTxMultiNode, *TransactionSender[any, types.ID, SendTxRPCClient[any]]) { mn := sendTxMultiNode{NewMultiNode[types.ID, SendTxRPCClient[any]]( lggr, NodeSelectionModeRoundRobin, 0, nodes, sendOnlyNodes, chainID, "chainFamily", 0)} - err := mn.StartOnce("startedTestMultiNode", func() error { return nil }) - require.NoError(t, err) txSender := NewTransactionSender[any, types.ID, SendTxRPCClient[any]](lggr, chainID, mn.chainFamily, mn.MultiNode, classifySendTxError, tests.TestInterval) - err = txSender.Start(tests.Context(t)) - require.NoError(t, err) - - t.Cleanup(func() { - err := mn.Close() - if err != nil { - // Allow MultiNode to be closed early for testing - require.EqualError(t, err, "MultiNode has already been stopped: already stopped") - } - err = txSender.Close() - if err != nil { - // Allow TransactionSender to be closed early for testing - require.EqualError(t, err, "TransactionSender has already been stopped: already stopped") - } - }) + servicetest.Run(t, txSender) return &mn, txSender } @@ -82,7 +69,9 @@ func TestTransactionSender_SendTransaction(t *testing.T) { node.On("String").Return("node name").Maybe() node.On("RPC").Return(rpc).Maybe() node.On("State").Return(state).Maybe() - node.On("Close").Return(nil).Once() + node.On("Start", mock.Anything).Return(nil).Maybe() + node.On("Close").Return(nil).Maybe() + node.On("SetPoolChainInfoProvider", mock.Anything).Return(nil).Maybe() return node } @@ -91,10 +80,10 @@ func TestTransactionSender_SendTransaction(t *testing.T) { } t.Run("Fails if there is no nodes available", func(t *testing.T) { - lggr, _ := logger.TestObserved(t, zap.DebugLevel) + lggr := logger.Test(t) _, txSender := newTestTransactionSender(t, types.RandomID(), lggr, nil, nil) _, err := txSender.SendTransaction(tests.Context(t), nil) - assert.EqualError(t, err, ErroringNodeError.Error()) + assert.ErrorIs(t, err, ErroringNodeError) }) t.Run("Transaction failure happy path", func(t *testing.T) { @@ -137,7 +126,7 @@ func TestTransactionSender_SendTransaction(t *testing.T) { <-testContext.Done() }) - lggr, _ := logger.TestObserved(t, zap.DebugLevel) + lggr := logger.Test(t) _, txSender := newTestTransactionSender(t, types.RandomID(), lggr, []Node[types.ID, SendTxRPCClient[any]]{mainNode}, nil) @@ -161,11 +150,11 @@ func TestTransactionSender_SendTransaction(t *testing.T) { <-testContext.Done() }) - lggr, _ := logger.TestObserved(t, zap.DebugLevel) + lggr := logger.Test(t) _, txSender := newTestTransactionSender(t, chainID, lggr, []Node[types.ID, SendTxRPCClient[any]]{fastNode, slowNode}, nil) _, sendErr := txSender.SendTransaction(tests.Context(t), nil) - require.EqualError(t, sendErr, expectedError.Error()) + require.ErrorIs(t, sendErr, expectedError) }) t.Run("Returns success without waiting for the rest of the nodes", func(t *testing.T) { chainID := types.RandomID() @@ -181,19 +170,19 @@ func TestTransactionSender_SendTransaction(t *testing.T) { // block caller til end of the test <-testContext.Done() }) - lggr, _ := logger.TestObserved(t, zap.WarnLevel) - mn, txSender := newTestTransactionSender(t, chainID, lggr, + lggr := logger.Test(t) + _, txSender := newTestTransactionSender(t, chainID, lggr, []Node[types.ID, SendTxRPCClient[any]]{fastNode, slowNode}, []SendOnlyNode[types.ID, SendTxRPCClient[any]]{slowSendOnly}) rtnCode, err := txSender.SendTransaction(tests.Context(t), nil) require.NoError(t, err) require.Equal(t, Successful, rtnCode) - require.NoError(t, mn.Close()) }) t.Run("Fails when multinode is closed", func(t *testing.T) { chainID := types.RandomID() fastNode := newNode(t, nil, nil) + fastNode.On("ConfiguredChainID").Return(chainID).Maybe() // hold reply from the node till end of the test testContext, testCancel := context.WithCancel(tests.Context(t)) defer testCancel() @@ -201,20 +190,21 @@ func TestTransactionSender_SendTransaction(t *testing.T) { // block caller til end of the test <-testContext.Done() }) + slowNode.On("ConfiguredChainID").Return(chainID).Maybe() slowSendOnly := newNode(t, errors.New("send only failed"), func(_ mock.Arguments) { // block caller til end of the test <-testContext.Done() }) + slowSendOnly.On("ConfiguredChainID").Return(chainID).Maybe() - lggr, _ := logger.TestObserved(t, zap.DebugLevel) - - mn, txSender := newTestTransactionSender(t, chainID, lggr, + mn, txSender := newTestTransactionSender(t, chainID, logger.Test(t), []Node[types.ID, SendTxRPCClient[any]]{fastNode, slowNode}, []SendOnlyNode[types.ID, SendTxRPCClient[any]]{slowSendOnly}) + require.NoError(t, mn.Start(tests.Context(t))) require.NoError(t, mn.Close()) _, err := txSender.SendTransaction(tests.Context(t), nil) - require.EqualError(t, err, "MultiNode is stopped") + require.ErrorContains(t, err, "service is stopped") }) t.Run("Fails when closed", func(t *testing.T) { chainID := types.RandomID() @@ -231,22 +221,24 @@ func TestTransactionSender_SendTransaction(t *testing.T) { <-testContext.Done() }) - lggr, _ := logger.TestObserved(t, zap.DebugLevel) + var txSender *TransactionSender[any, types.ID, SendTxRPCClient[any]] - _, txSender := newTestTransactionSender(t, chainID, lggr, + t.Cleanup(func() { // after txSender.Close() + _, err := txSender.SendTransaction(tests.Context(t), nil) + assert.EqualError(t, err, "TransactionSender not started") + }) + + _, txSender = newTestTransactionSender(t, chainID, logger.Test(t), []Node[types.ID, SendTxRPCClient[any]]{fastNode, slowNode}, []SendOnlyNode[types.ID, SendTxRPCClient[any]]{slowSendOnly}) - require.NoError(t, txSender.Close()) - _, err := txSender.SendTransaction(tests.Context(t), nil) - require.EqualError(t, err, "TransactionSender not started") }) t.Run("Returns error if there is no healthy primary nodes", func(t *testing.T) { chainID := types.RandomID() primary := newNodeWithState(t, nodeStateUnreachable, nil, nil) sendOnly := newNodeWithState(t, nodeStateUnreachable, nil, nil) - lggr, _ := logger.TestObserved(t, zap.DebugLevel) + lggr := logger.Test(t) _, txSender := newTestTransactionSender(t, chainID, lggr, []Node[types.ID, SendTxRPCClient[any]]{primary}, @@ -265,7 +257,7 @@ func TestTransactionSender_SendTransaction(t *testing.T) { unhealthyNode := newNodeWithState(t, nodeStateUnreachable, nil, unexpectedCall) unhealthySendOnlyNode := newNodeWithState(t, nodeStateUnreachable, nil, unexpectedCall) - lggr, _ := logger.TestObserved(t, zap.DebugLevel) + lggr := logger.Test(t) _, txSender := newTestTransactionSender(t, chainID, lggr, []Node[types.ID, SendTxRPCClient[any]]{mainNode, unhealthyNode}, diff --git a/core/chains/evm/client/rpc_client_test.go b/core/chains/evm/client/rpc_client_test.go index 51ef65c5348..c8edc7c557c 100644 --- a/core/chains/evm/client/rpc_client_test.go +++ b/core/chains/evm/client/rpc_client_test.go @@ -86,7 +86,7 @@ func TestRPCClient_SubscribeToHeads(t *testing.T) { t.Run("WS and HTTP URL cannot be both empty", func(t *testing.T) { // ws is optional when LogBroadcaster is disabled, however SubscribeFilterLogs will return error if ws is missing - observedLggr, _ := logger.TestObserved(t, zap.DebugLevel) + observedLggr := logger.Test(t) rpcClient := client.NewRPCClient(nodePoolCfgHeadPolling, observedLggr, nil, nil, "rpc", 1, chainId, commonclient.Primary, commonclient.QueryTimeout, commonclient.QueryTimeout, "") require.Equal(t, errors.New("cannot dial rpc client when both ws and http info are missing"), rpcClient.Dial(ctx)) }) @@ -339,7 +339,7 @@ func TestRPCClient_SubscribeFilterLogs(t *testing.T) { defer cancel() t.Run("Failed SubscribeFilterLogs when WSURL is empty", func(t *testing.T) { // ws is optional when LogBroadcaster is disabled, however SubscribeFilterLogs will return error if ws is missing - observedLggr, _ := logger.TestObserved(t, zap.DebugLevel) + observedLggr := logger.Test(t) rpcClient := client.NewRPCClient(nodePoolCfg, observedLggr, nil, &url.URL{}, "rpc", 1, chainId, commonclient.Primary, commonclient.QueryTimeout, commonclient.QueryTimeout, "") require.Nil(t, rpcClient.Dial(ctx)) diff --git a/core/chains/evm/gas/block_history_estimator_test.go b/core/chains/evm/gas/block_history_estimator_test.go index bf4c0eb4eef..e3df261f2cf 100644 --- a/core/chains/evm/gas/block_history_estimator_test.go +++ b/core/chains/evm/gas/block_history_estimator_test.go @@ -16,7 +16,6 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" - "go.uber.org/zap/zapcore" "github.com/smartcontractkit/chainlink-common/pkg/logger" "github.com/smartcontractkit/chainlink-common/pkg/utils/tests" @@ -2179,7 +2178,7 @@ func TestBlockHistoryEstimator_HaltBumping(t *testing.T) { bhCfg := newBlockHistoryConfig() bhCfg.CheckInclusionBlocksF = uint16(4) bhCfg.CheckInclusionPercentileF = uint16(90) - lggr, _ := logger.TestObserved(t, zapcore.DebugLevel) + lggr := logger.Test(t) geCfg := &gas.MockGasEstimatorConfig{} geCfg.EIP1559DynamicFeesF = false geCfg.PriceMinF = assets.NewWeiI(1) diff --git a/core/chains/evm/logpoller/observability_test.go b/core/chains/evm/logpoller/observability_test.go index b34c16c0a98..6ebc5b0cce0 100644 --- a/core/chains/evm/logpoller/observability_test.go +++ b/core/chains/evm/logpoller/observability_test.go @@ -8,12 +8,10 @@ import ( "github.com/ethereum/go-ethereum/common" "github.com/prometheus/client_golang/prometheus" + "github.com/prometheus/client_golang/prometheus/testutil" io_prometheus_client "github.com/prometheus/client_model/go" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "go.uber.org/zap/zapcore" - - "github.com/prometheus/client_golang/prometheus/testutil" "github.com/smartcontractkit/chainlink-common/pkg/logger" @@ -171,7 +169,7 @@ func generateRandomLogs(chainId, count int) []Log { } func createObservedORM(t *testing.T, chainId int64) *ObservedORM { - lggr, _ := logger.TestObserved(t, zapcore.ErrorLevel) + lggr := logger.Test(t) db := pgtest.NewSqlxDB(t) return NewObservedORM(big.NewInt(chainId), db, lggr) } From 7cd17d687a11fcfe36ad78d6279dc642b6186eaa Mon Sep 17 00:00:00 2001 From: Dylan Tinianov Date: Mon, 18 Nov 2024 12:55:03 -0500 Subject: [PATCH 12/13] Bump Solana (#15284) * Bump Solana * Update defaults * Add changeset --- .changeset/weak-weeks-grin.md | 5 +++++ core/scripts/go.mod | 2 +- core/scripts/go.sum | 4 ++-- core/web/solana_chains_controller_test.go | 12 ++++++------ deployment/go.mod | 2 +- deployment/go.sum | 4 ++-- go.mod | 2 +- go.sum | 4 ++-- integration-tests/go.mod | 2 +- integration-tests/go.sum | 4 ++-- integration-tests/load/go.mod | 2 +- integration-tests/load/go.sum | 4 ++-- 12 files changed, 26 insertions(+), 21 deletions(-) create mode 100644 .changeset/weak-weeks-grin.md diff --git a/.changeset/weak-weeks-grin.md b/.changeset/weak-weeks-grin.md new file mode 100644 index 00000000000..df03df2303c --- /dev/null +++ b/.changeset/weak-weeks-grin.md @@ -0,0 +1,5 @@ +--- +"chainlink": patch +--- + +Bump Solana to include MultiNode integration. #added diff --git a/core/scripts/go.mod b/core/scripts/go.mod index 60c811f82bc..63167093ed4 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -412,7 +412,7 @@ require ( github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect github.com/smartcontractkit/chainlink-protos/job-distributor v0.4.0 // indirect github.com/smartcontractkit/chainlink-protos/orchestrator v0.3.0 // indirect - github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241112213949-65ae13752669 // indirect + github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241115191142-8b8369c1f44e // indirect github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241017135645-176a23722fd8 // indirect github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.13 // indirect github.com/smartcontractkit/chainlink-testing-framework/lib/grafana v1.50.0 // indirect diff --git a/core/scripts/go.sum b/core/scripts/go.sum index 781393ad29f..719ea492a88 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1421,8 +1421,8 @@ github.com/smartcontractkit/chainlink-protos/job-distributor v0.4.0 h1:1xTm8UGeD github.com/smartcontractkit/chainlink-protos/job-distributor v0.4.0/go.mod h1:/dVVLXrsp+V0AbcYGJo3XMzKg3CkELsweA/TTopCsKE= github.com/smartcontractkit/chainlink-protos/orchestrator v0.3.0 h1:PBUaFfPLm+Efq7H9kdfGBivH+QhJ6vB5EZTR/sCZsxI= github.com/smartcontractkit/chainlink-protos/orchestrator v0.3.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= -github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241112213949-65ae13752669 h1:CBQ9ORUtGUvCr3dAm/qjpdHlYuB1SRIwtYw5LV8SLys= -github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241112213949-65ae13752669/go.mod h1:mGmRvlk54ufCufV4EBWizOGtXoXfePoFAuYEVC8EwdY= +github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241115191142-8b8369c1f44e h1:XxTWJ9VIXK+XuAjP5131PqqBn0NEt5lBvnRAWRdqy8A= +github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241115191142-8b8369c1f44e/go.mod h1:mGmRvlk54ufCufV4EBWizOGtXoXfePoFAuYEVC8EwdY= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241017135645-176a23722fd8 h1:B4DFdk6MGcQnoCjjMBCx7Z+GWQpxRWJ4O8W/dVJyWGA= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241017135645-176a23722fd8/go.mod h1:WkBqgBo+g34Gm5vWkDDl8Fh3Mzd7bF5hXp7rryg0t5o= github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.13 h1:T0kbw07Vb6xUyA9MIJZfErMgWseWi1zf7cYvRpoq7ug= diff --git a/core/web/solana_chains_controller_test.go b/core/web/solana_chains_controller_test.go index 4aa0dbe579d..fdc9bd16b9b 100644 --- a/core/web/solana_chains_controller_test.go +++ b/core/web/solana_chains_controller_test.go @@ -67,19 +67,19 @@ Nodes = [] [MultiNode] Enabled = false PollFailureThreshold = 5 -PollInterval = '10s' +PollInterval = '15s' SelectionMode = 'PriorityLevel' -SyncThreshold = 5 +SyncThreshold = 10 NodeIsSyncingEnabled = false LeaseDuration = '1m0s' FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = true -DeathDeclarationDelay = '10s' -NodeNoNewHeadsThreshold = '10s' -NoNewFinalizedHeadsThreshold = '10s' +DeathDeclarationDelay = '20s' +NodeNoNewHeadsThreshold = '20s' +NoNewFinalizedHeadsThreshold = '20s' FinalityDepth = 0 FinalityTagEnabled = true -FinalizedBlockOffset = 0 +FinalizedBlockOffset = 50 `, } }, diff --git a/deployment/go.mod b/deployment/go.mod index 8604875a366..0e9b16bad92 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -405,7 +405,7 @@ require ( github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241018134907-a00ba3729b5e // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect github.com/smartcontractkit/chainlink-protos/orchestrator v0.3.0 // indirect - github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241112213949-65ae13752669 // indirect + github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241115191142-8b8369c1f44e // indirect github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241017135645-176a23722fd8 // indirect github.com/smartcontractkit/chainlink-testing-framework/lib/grafana v1.50.0 // indirect github.com/smartcontractkit/chainlink-testing-framework/seth v1.50.5 // indirect diff --git a/deployment/go.sum b/deployment/go.sum index ad68f03afea..b21fdc94975 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -1396,8 +1396,8 @@ github.com/smartcontractkit/chainlink-protos/job-distributor v0.4.0 h1:1xTm8UGeD github.com/smartcontractkit/chainlink-protos/job-distributor v0.4.0/go.mod h1:/dVVLXrsp+V0AbcYGJo3XMzKg3CkELsweA/TTopCsKE= github.com/smartcontractkit/chainlink-protos/orchestrator v0.3.0 h1:PBUaFfPLm+Efq7H9kdfGBivH+QhJ6vB5EZTR/sCZsxI= github.com/smartcontractkit/chainlink-protos/orchestrator v0.3.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= -github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241112213949-65ae13752669 h1:CBQ9ORUtGUvCr3dAm/qjpdHlYuB1SRIwtYw5LV8SLys= -github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241112213949-65ae13752669/go.mod h1:mGmRvlk54ufCufV4EBWizOGtXoXfePoFAuYEVC8EwdY= +github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241115191142-8b8369c1f44e h1:XxTWJ9VIXK+XuAjP5131PqqBn0NEt5lBvnRAWRdqy8A= +github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241115191142-8b8369c1f44e/go.mod h1:mGmRvlk54ufCufV4EBWizOGtXoXfePoFAuYEVC8EwdY= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241017135645-176a23722fd8 h1:B4DFdk6MGcQnoCjjMBCx7Z+GWQpxRWJ4O8W/dVJyWGA= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241017135645-176a23722fd8/go.mod h1:WkBqgBo+g34Gm5vWkDDl8Fh3Mzd7bF5hXp7rryg0t5o= github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.13 h1:T0kbw07Vb6xUyA9MIJZfErMgWseWi1zf7cYvRpoq7ug= diff --git a/go.mod b/go.mod index 7b3f6f7a161..e6039802f93 100644 --- a/go.mod +++ b/go.mod @@ -82,7 +82,7 @@ require ( github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241018134907-a00ba3729b5e github.com/smartcontractkit/chainlink-feeds v0.1.1 github.com/smartcontractkit/chainlink-protos/orchestrator v0.3.0 - github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241112213949-65ae13752669 + github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241115191142-8b8369c1f44e github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241017135645-176a23722fd8 github.com/smartcontractkit/libocr v0.0.0-20241007185508-adbe57025f12 github.com/smartcontractkit/tdh2/go/ocr2/decryptionplugin v0.0.0-20241009055228-33d0c0bf38de diff --git a/go.sum b/go.sum index 61d0934f7ce..270966b2a91 100644 --- a/go.sum +++ b/go.sum @@ -1088,8 +1088,8 @@ github.com/smartcontractkit/chainlink-feeds v0.1.1 h1:JzvUOM/OgGQA1sOqTXXl52R6An github.com/smartcontractkit/chainlink-feeds v0.1.1/go.mod h1:55EZ94HlKCfAsUiKUTNI7QlE/3d3IwTlsU3YNa/nBb4= github.com/smartcontractkit/chainlink-protos/orchestrator v0.3.0 h1:PBUaFfPLm+Efq7H9kdfGBivH+QhJ6vB5EZTR/sCZsxI= github.com/smartcontractkit/chainlink-protos/orchestrator v0.3.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= -github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241112213949-65ae13752669 h1:CBQ9ORUtGUvCr3dAm/qjpdHlYuB1SRIwtYw5LV8SLys= -github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241112213949-65ae13752669/go.mod h1:mGmRvlk54ufCufV4EBWizOGtXoXfePoFAuYEVC8EwdY= +github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241115191142-8b8369c1f44e h1:XxTWJ9VIXK+XuAjP5131PqqBn0NEt5lBvnRAWRdqy8A= +github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241115191142-8b8369c1f44e/go.mod h1:mGmRvlk54ufCufV4EBWizOGtXoXfePoFAuYEVC8EwdY= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241017135645-176a23722fd8 h1:B4DFdk6MGcQnoCjjMBCx7Z+GWQpxRWJ4O8W/dVJyWGA= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241017135645-176a23722fd8/go.mod h1:WkBqgBo+g34Gm5vWkDDl8Fh3Mzd7bF5hXp7rryg0t5o= github.com/smartcontractkit/grpc-proxy v0.0.0-20240830132753-a7e17fec5ab7 h1:12ijqMM9tvYVEm+nR826WsrNi6zCKpwBhuApq127wHs= diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 4bf6361f27b..e3054210700 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -418,7 +418,7 @@ require ( github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241018134907-a00ba3729b5e // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect github.com/smartcontractkit/chainlink-protos/orchestrator v0.3.0 // indirect - github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241112213949-65ae13752669 // indirect + github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241115191142-8b8369c1f44e // indirect github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241017135645-176a23722fd8 // indirect github.com/smartcontractkit/grpc-proxy v0.0.0-20240830132753-a7e17fec5ab7 // indirect github.com/smartcontractkit/tdh2/go/ocr2/decryptionplugin v0.0.0-20241009055228-33d0c0bf38de // indirect diff --git a/integration-tests/go.sum b/integration-tests/go.sum index f743de3f3a6..b2ea8488a23 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1417,8 +1417,8 @@ github.com/smartcontractkit/chainlink-protos/job-distributor v0.4.0 h1:1xTm8UGeD github.com/smartcontractkit/chainlink-protos/job-distributor v0.4.0/go.mod h1:/dVVLXrsp+V0AbcYGJo3XMzKg3CkELsweA/TTopCsKE= github.com/smartcontractkit/chainlink-protos/orchestrator v0.3.0 h1:PBUaFfPLm+Efq7H9kdfGBivH+QhJ6vB5EZTR/sCZsxI= github.com/smartcontractkit/chainlink-protos/orchestrator v0.3.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= -github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241112213949-65ae13752669 h1:CBQ9ORUtGUvCr3dAm/qjpdHlYuB1SRIwtYw5LV8SLys= -github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241112213949-65ae13752669/go.mod h1:mGmRvlk54ufCufV4EBWizOGtXoXfePoFAuYEVC8EwdY= +github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241115191142-8b8369c1f44e h1:XxTWJ9VIXK+XuAjP5131PqqBn0NEt5lBvnRAWRdqy8A= +github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241115191142-8b8369c1f44e/go.mod h1:mGmRvlk54ufCufV4EBWizOGtXoXfePoFAuYEVC8EwdY= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241017135645-176a23722fd8 h1:B4DFdk6MGcQnoCjjMBCx7Z+GWQpxRWJ4O8W/dVJyWGA= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241017135645-176a23722fd8/go.mod h1:WkBqgBo+g34Gm5vWkDDl8Fh3Mzd7bF5hXp7rryg0t5o= github.com/smartcontractkit/chainlink-testing-framework/havoc v1.50.2 h1:GDGrC5OGiV0RyM1znYWehSQXyZQWTOzrEeJRYmysPCE= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index 311fced3e7f..9a1fb0d62ab 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -425,7 +425,7 @@ require ( github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241018134907-a00ba3729b5e // indirect github.com/smartcontractkit/chainlink-feeds v0.1.1 // indirect github.com/smartcontractkit/chainlink-protos/orchestrator v0.3.0 // indirect - github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241112213949-65ae13752669 // indirect + github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241115191142-8b8369c1f44e // indirect github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241017135645-176a23722fd8 // indirect github.com/smartcontractkit/chainlink-testing-framework/lib/grafana v1.50.0 // indirect github.com/smartcontractkit/libocr v0.0.0-20241007185508-adbe57025f12 // indirect diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index 19c6c043468..9b3962dd1a5 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1404,8 +1404,8 @@ github.com/smartcontractkit/chainlink-feeds v0.1.1 h1:JzvUOM/OgGQA1sOqTXXl52R6An github.com/smartcontractkit/chainlink-feeds v0.1.1/go.mod h1:55EZ94HlKCfAsUiKUTNI7QlE/3d3IwTlsU3YNa/nBb4= github.com/smartcontractkit/chainlink-protos/orchestrator v0.3.0 h1:PBUaFfPLm+Efq7H9kdfGBivH+QhJ6vB5EZTR/sCZsxI= github.com/smartcontractkit/chainlink-protos/orchestrator v0.3.0/go.mod h1:m/A3lqD7ms/RsQ9BT5P2uceYY0QX5mIt4KQxT2G6qEo= -github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241112213949-65ae13752669 h1:CBQ9ORUtGUvCr3dAm/qjpdHlYuB1SRIwtYw5LV8SLys= -github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241112213949-65ae13752669/go.mod h1:mGmRvlk54ufCufV4EBWizOGtXoXfePoFAuYEVC8EwdY= +github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241115191142-8b8369c1f44e h1:XxTWJ9VIXK+XuAjP5131PqqBn0NEt5lBvnRAWRdqy8A= +github.com/smartcontractkit/chainlink-solana v1.1.1-0.20241115191142-8b8369c1f44e/go.mod h1:mGmRvlk54ufCufV4EBWizOGtXoXfePoFAuYEVC8EwdY= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241017135645-176a23722fd8 h1:B4DFdk6MGcQnoCjjMBCx7Z+GWQpxRWJ4O8W/dVJyWGA= github.com/smartcontractkit/chainlink-starknet/relayer v0.1.1-0.20241017135645-176a23722fd8/go.mod h1:WkBqgBo+g34Gm5vWkDDl8Fh3Mzd7bF5hXp7rryg0t5o= github.com/smartcontractkit/chainlink-testing-framework/havoc v1.50.2 h1:GDGrC5OGiV0RyM1znYWehSQXyZQWTOzrEeJRYmysPCE= From d1703b7ce576be7f4d0bb1c6c50f3ac5eab27002 Mon Sep 17 00:00:00 2001 From: Erik Burton Date: Mon, 18 Nov 2024 11:03:16 -0800 Subject: [PATCH 13/13] fix: use env for GH_TOKEN (#15253) --- .github/workflows/delete-caches.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/delete-caches.yml b/.github/workflows/delete-caches.yml index aaba0dda623..64b9e799665 100644 --- a/.github/workflows/delete-caches.yml +++ b/.github/workflows/delete-caches.yml @@ -24,10 +24,14 @@ jobs: uses: actions/checkout@v4.1.2 - name: Setup gh-actions-cache extension + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: gh extension install actions/gh-actions-cache - name: Retrieve Trunk SHA id: get-sha + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | SHA=$(gh pr view -R $REPO $PR_NUMBER --json mergeCommit --jq .mergeCommit.oid) echo "sha=$SHA" >> $GITHUB_OUTPUT