From 667a90e76c0f958c37b6b760af4228657df0332d Mon Sep 17 00:00:00 2001 From: bigboydiamonds <57741810+bigboydiamonds@users.noreply.github.com> Date: Tue, 18 Jun 2024 16:37:58 -0700 Subject: [PATCH 01/85] fix(synapse-interface): disable input pending wallet (#2738) * Disable input when wallet prompt pending * Lift isWalletPending to store * Disable input during approve wallet pending --- .../components/StateManagedBridge/InputContainer.tsx | 11 +++++++++-- .../pages/state-managed-bridge/index.tsx | 12 +++++++----- packages/synapse-interface/slices/bridge/reducer.ts | 6 ++++++ 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/packages/synapse-interface/components/StateManagedBridge/InputContainer.tsx b/packages/synapse-interface/components/StateManagedBridge/InputContainer.tsx index b17b6b285d..f526706f2d 100644 --- a/packages/synapse-interface/components/StateManagedBridge/InputContainer.tsx +++ b/packages/synapse-interface/components/StateManagedBridge/InputContainer.tsx @@ -37,8 +37,14 @@ export const InputContainer = () => { const dispatch = useAppDispatch() const { chain, isConnected } = useAccount() const { balances } = usePortfolioState() - const { fromChainId, toChainId, fromToken, toToken, fromValue } = - useBridgeState() + const { + fromChainId, + toChainId, + fromToken, + toToken, + fromValue, + isWalletPending, + } = useBridgeState() const [showValue, setShowValue] = useState('') const [hasMounted, setHasMounted] = useState(false) @@ -152,6 +158,7 @@ export const InputContainer = () => { inputRef={inputRef} showValue={showValue} handleFromValueChange={handleFromValueChange} + disabled={isWalletPending} /> { debouncedFromValue, destinationAddress, isLoading: isQuoteLoading, + isWalletPending, }: BridgeState = useBridgeState() const { showSettingsSlideOver, showDestinationAddress } = useSelector( (state: RootState) => state.bridgeDisplay ) - const [isWalletPending, setIsWalletPending] = useState(false) const [isApproved, setIsApproved] = useState(false) const dispatch = useAppDispatch() @@ -327,6 +326,7 @@ const StateManagedBridge = () => { const approveTxn = async () => { try { + dispatch(setIsWalletPending(true)) const tx = approveToken( bridgeQuote?.routerAddress, fromChainId, @@ -338,6 +338,8 @@ const StateManagedBridge = () => { getAndSetBridgeQuote() } catch (error) { return txErrorHandler(error) + } finally { + dispatch(setIsWalletPending(false)) } } @@ -377,7 +379,7 @@ const StateManagedBridge = () => { }) ) try { - setIsWalletPending(true) + dispatch(setIsWalletPending(true)) const wallet = await getWalletClient(wagmiConfig, { chainId: fromChainId, }) @@ -524,7 +526,7 @@ const StateManagedBridge = () => { return txErrorHandler(error) } finally { - setIsWalletPending(false) + dispatch(setIsWalletPending(false)) } } diff --git a/packages/synapse-interface/slices/bridge/reducer.ts b/packages/synapse-interface/slices/bridge/reducer.ts index 8a63215acf..6fbf365bb6 100644 --- a/packages/synapse-interface/slices/bridge/reducer.ts +++ b/packages/synapse-interface/slices/bridge/reducer.ts @@ -34,6 +34,7 @@ export interface BridgeState { toTokensBridgeQuotes: BridgeQuoteResponse[] toTokensBridgeQuotesStatus: FetchState isLoading: boolean + isWalletPending: boolean deadlineMinutes: number | null destinationAddress: Address | null } @@ -71,6 +72,7 @@ export const initialState: BridgeState = { toTokensBridgeQuotes: [], toTokensBridgeQuotesStatus: FetchState.IDLE, isLoading: false, + isWalletPending: false, deadlineMinutes: null, destinationAddress: null, } @@ -82,6 +84,9 @@ export const bridgeSlice = createSlice({ setIsLoading: (state, action: PayloadAction) => { state.isLoading = action.payload }, + setIsWalletPending: (state, action: PayloadAction) => { + state.isWalletPending = action.payload + }, setFromChainId: (state, action: PayloadAction) => { const incomingFromChainId = action.payload @@ -509,6 +514,7 @@ export const { setDeadlineMinutes, setDestinationAddress, setIsLoading, + setIsWalletPending, resetBridgeInputs, clearDestinationAddress, resetFetchedBridgeQuotes, From 1710a846d071ff2092c8ee5cc0aae088d75c9a2f Mon Sep 17 00:00:00 2001 From: bigboydiamonds Date: Tue, 18 Jun 2024 23:42:11 +0000 Subject: [PATCH 02/85] Publish - @synapsecns/synapse-interface@0.26.2 --- packages/synapse-interface/CHANGELOG.md | 11 +++++++++++ packages/synapse-interface/package.json | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/synapse-interface/CHANGELOG.md b/packages/synapse-interface/CHANGELOG.md index 5194c28c6a..24fbbcf4f1 100644 --- a/packages/synapse-interface/CHANGELOG.md +++ b/packages/synapse-interface/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.26.2](https://github.com/synapsecns/sanguine/compare/@synapsecns/synapse-interface@0.26.1...@synapsecns/synapse-interface@0.26.2) (2024-06-18) + + +### Bug Fixes + +* **synapse-interface:** disable input pending wallet ([#2738](https://github.com/synapsecns/sanguine/issues/2738)) ([667a90e](https://github.com/synapsecns/sanguine/commit/667a90e76c0f958c37b6b760af4228657df0332d)) + + + + + ## [0.26.1](https://github.com/synapsecns/sanguine/compare/@synapsecns/synapse-interface@0.26.0...@synapsecns/synapse-interface@0.26.1) (2024-06-18) **Note:** Version bump only for package @synapsecns/synapse-interface diff --git a/packages/synapse-interface/package.json b/packages/synapse-interface/package.json index c8dfcc923d..2229aeb3a4 100644 --- a/packages/synapse-interface/package.json +++ b/packages/synapse-interface/package.json @@ -1,6 +1,6 @@ { "name": "@synapsecns/synapse-interface", - "version": "0.26.1", + "version": "0.26.2", "private": true, "engines": { "node": ">=18.18.0" From 80aa94373b785b2bf65e47b5e5f30ab9acd19809 Mon Sep 17 00:00:00 2001 From: aureliusbtc <82057759+aureliusbtc@users.noreply.github.com> Date: Wed, 19 Jun 2024 12:46:58 +0100 Subject: [PATCH 03/85] update bl --- packages/synapse-interface/public/blacklist.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/synapse-interface/public/blacklist.json b/packages/synapse-interface/public/blacklist.json index 92bcae6f92..37192e836f 100644 --- a/packages/synapse-interface/public/blacklist.json +++ b/packages/synapse-interface/public/blacklist.json @@ -501,5 +501,10 @@ "0xceb76337738ECA7594B05Cb1BfD6032df8a0Ce33", "0x10811f32947BFEAB9C8D50e38d2F0Cf2c63389E6", "0x9129aff5e78182D81933ac7577Ab75334051560a", - "0xD02fEfD7Cc3fB475DC0B15317a06F915AE526FDE" + "0xD02fEfD7Cc3fB475DC0B15317a06F915AE526FDE", + "0x2DbFDAe8a07E78d0D230deF7210fce0426F71707", + "0x5655f0742C40A05D806274582f71E61B0372d8b6", + "0x44EE9F15E718a8514928CE5dB665e7513a83204c", + "0x8556f84c10439c6636f6621e25f22325148f3a01" + ] From 36a35d225cef28f8d56fc73062cffd6ab87e0d14 Mon Sep 17 00:00:00 2001 From: abtestingalpha Date: Wed, 19 Jun 2024 10:05:11 -0400 Subject: [PATCH 04/85] RFQ input vs bridgeQuote validation --- .../BridgeTransactionButton.tsx | 27 ++++++++++++++----- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/packages/synapse-interface/components/StateManagedBridge/BridgeTransactionButton.tsx b/packages/synapse-interface/components/StateManagedBridge/BridgeTransactionButton.tsx index e087beeabc..eb3fe88574 100644 --- a/packages/synapse-interface/components/StateManagedBridge/BridgeTransactionButton.tsx +++ b/packages/synapse-interface/components/StateManagedBridge/BridgeTransactionButton.tsx @@ -67,23 +67,31 @@ export const BridgeTransactionButton = ({ ) }, [balanceForToken, fromValue, fromChainId, toChainId, toToken]) + const fromTokenDecimals: number | undefined = + fromToken && fromToken?.decimals[fromChainId] + + const fromValueBigInt = useMemo(() => { + return fromTokenDecimals ? stringToBigInt(fromValue, fromTokenDecimals) : 0 + }, [fromValue, fromTokenDecimals]) + + const bridgeQuoteAmountGreaterThanInputForRfq = useMemo(() => { + return ( + bridgeQuote.bridgeModuleName === 'SynapseRFQ' && + bridgeQuote.outputAmount > fromValueBigInt + ) + }, [bridgeQuote.outputAmount, fromValueBigInt]) + const isButtonDisabled = isLoading || bridgeQuote === EMPTY_BRIDGE_QUOTE_ZERO || bridgeQuote === EMPTY_BRIDGE_QUOTE || (destinationAddress && !isAddress(destinationAddress)) || (isConnected && !sufficientBalance) || + bridgeQuoteAmountGreaterThanInputForRfq || isBridgePaused let buttonProperties - const fromTokenDecimals: number | undefined = - fromToken && fromToken?.decimals[fromChainId] - - const fromValueBigInt = useMemo(() => { - return fromTokenDecimals ? stringToBigInt(fromValue, fromTokenDecimals) : 0 - }, [fromValue, fromTokenDecimals]) - if (isBridgePaused) { buttonProperties = { label: 'Bridge paused', @@ -113,6 +121,11 @@ export const BridgeTransactionButton = ({ label: `Amount must be greater than fee`, onClick: null, } + } else if (bridgeQuoteAmountGreaterThanInputForRfq) { + buttonProperties = { + label: 'Invalid bridge quote', + onClick: null, + } } else if (!isConnected && fromValueBigInt > 0) { buttonProperties = { label: `Connect Wallet to Bridge`, From b6461b660d02faaf37dfebeab316a247defc943a Mon Sep 17 00:00:00 2001 From: abtestingalpha Date: Wed, 19 Jun 2024 16:15:07 -0400 Subject: [PATCH 05/85] Remove unused --- .../StateManagedBridge/BridgeTransactionButton.tsx | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/packages/synapse-interface/components/StateManagedBridge/BridgeTransactionButton.tsx b/packages/synapse-interface/components/StateManagedBridge/BridgeTransactionButton.tsx index eb3fe88574..e88f4720c0 100644 --- a/packages/synapse-interface/components/StateManagedBridge/BridgeTransactionButton.tsx +++ b/packages/synapse-interface/components/StateManagedBridge/BridgeTransactionButton.tsx @@ -1,8 +1,6 @@ -import { useSelector } from 'react-redux' import { useMemo } from 'react' import { TransactionButton } from '@/components/buttons/TransactionButton' import { EMPTY_BRIDGE_QUOTE, EMPTY_BRIDGE_QUOTE_ZERO } from '@/constants/bridge' -import { RootState } from '@/store/store' import { useAccount, useAccountEffect, useSwitchChain } from 'wagmi' import { useEffect, useState } from 'react' import { isAddress } from 'viem' @@ -12,10 +10,7 @@ import { stringToBigInt } from '@/utils/bigint/format' import { useBridgeDisplayState, useBridgeState } from '@/slices/bridge/hooks' import { usePortfolioBalances } from '@/slices/portfolio/hooks' import { useAppDispatch } from '@/store/hooks' -import { - setIsDestinationWarningAccepted, - setShowDestinationWarning, -} from '@/slices/bridgeDisplaySlice' +import { setIsDestinationWarningAccepted } from '@/slices/bridgeDisplaySlice' export const BridgeTransactionButton = ({ approveTxn, From 28499ba8ae611a5aa07d05b8c013e8af6d66a810 Mon Sep 17 00:00:00 2001 From: trajan0x <83933037+trajan0x@users.noreply.github.com> Date: Thu, 20 Jun 2024 01:09:39 -0400 Subject: [PATCH 06/85] RFQ Relayer: concurrent request processing (#2739) * Feat: set max open conns to 50 for relayer mysql * Feat: process each quote request in parallel * Feat: add GetDBStats to store and processDB span * Feat: add backoffs to relayer contract calls * Feat: do screener calls in parallel * Feat: add immediate handler forwarding * Fix: set should_relay=true if relayer addresses match * Fix: test * Fix: new goroutine for every reqeuest * Fix: immediately call Handle() vs underlying handler * Feat: add semaphore to limit max requests handled at once * Feat: add relayMtx and mutexMiddleware * Feat: process pre-relay and post-relay requests separately * Cleanup: coalesce processDB funcs, run two dbSelectors * Feat: use Lock() instead of TryLock() * Feat: check shouldProcess() and isProfitable() in parallel * Feat: run post-relay requests in serial * Feat: double wrap db selectors * Feat: get rid of MaxOpenConns * Feat: bump max concurrent requests * Feat: don't use semaphore in serial * Feat: use TryLock() instead of Lock() on sem and mtx * Fix: don't bubble up errors from forwarding * Nit: fix fix #2689 #2690 #2691 #2692 #2693 #2694 from #16 Co-authored-by: Daniel Wasserman Co-authored-by: Trajan0x Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- .github/workflows/go.yml | 2 +- agents/go.mod | 22 +-- agents/go.sum | 43 +++--- contrib/git-changes-action/go.mod | 2 +- contrib/git-changes-action/go.sum | 4 +- contrib/promexporter/go.mod | 20 +-- contrib/promexporter/go.sum | 43 +++--- contrib/screener-api/go.mod | 22 +-- contrib/screener-api/go.sum | 43 +++--- core/go.mod | 22 +-- core/go.sum | 43 +++--- core/metrics/base.go | 2 +- ethergo/go.mod | 22 +-- ethergo/go.sum | 43 +++--- go.work.sum | 12 ++ services/cctp-relayer/go.mod | 22 +-- services/cctp-relayer/go.sum | 43 +++--- services/explorer/go.mod | 22 +-- services/explorer/go.sum | 43 +++--- services/omnirpc/go.mod | 20 +-- services/omnirpc/go.sum | 43 +++--- services/rfq/api/rest/server.go | 2 +- services/rfq/api/rest/server_test.go | 4 +- services/rfq/go.mod | 22 +-- services/rfq/go.sum | 43 +++--- services/rfq/relayer/quoter/quoter.go | 41 ++++-- services/rfq/relayer/reldb/base/model.go | 7 + services/rfq/relayer/reldb/base/quote.go | 11 ++ services/rfq/relayer/reldb/base/rebalance.go | 12 ++ services/rfq/relayer/reldb/db.go | 7 + services/rfq/relayer/reldb/mysql/mysql.go | 3 +- services/rfq/relayer/service/handlers.go | 139 ++++++++++++++---- services/rfq/relayer/service/relayer.go | 128 +++++++++++++--- services/rfq/relayer/service/statushandler.go | 61 ++++++-- services/scribe/go.mod | 22 +-- services/scribe/go.sum | 43 +++--- services/stiprelayer/go.mod | 22 +-- services/stiprelayer/go.sum | 43 +++--- tools/go.mod | 12 +- tools/go.sum | 23 +-- 40 files changed, 740 insertions(+), 443 deletions(-) diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 28e80b7c99..0f9698011e 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -314,7 +314,7 @@ jobs: run: cp ${{matrix.package}}/go.mod go.mod -v - name: golangci-lint - uses: golangci/golangci-lint-action@v3 + uses: golangci/golangci-lint-action@v6 with: working-directory: ${{matrix.package}}/ # Optional: version of golangci-lint to use in form of v1.2 or v1.2.3 or `latest` to use the latest version diff --git a/agents/go.mod b/agents/go.mod index e86cb7ab2b..9043a3cffc 100644 --- a/agents/go.mod +++ b/agents/go.mod @@ -29,7 +29,7 @@ require ( github.com/synapsecns/sanguine/services/scribe v0.0.194 github.com/synapsecns/sanguine/tools v0.0.0-00010101000000-000000000000 github.com/ugorji/go/codec v1.2.12 - github.com/urfave/cli/v2 v2.27.1 + github.com/urfave/cli/v2 v2.27.2 github.com/vburenin/ifacemaker v1.2.0 github.com/vektra/mockery/v2 v2.14.0 go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 @@ -39,7 +39,7 @@ require ( google.golang.org/grpc v1.64.0 gopkg.in/yaml.v2 v2.4.0 gorm.io/driver/mysql v1.5.6 - gorm.io/driver/sqlite v1.5.5 + gorm.io/driver/sqlite v1.5.6 gorm.io/gorm v1.25.10 ) @@ -64,7 +64,7 @@ require ( github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 // indirect github.com/crate-crypto/go-kzg-4844 v0.7.0 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect - github.com/deckarep/golang-set/v2 v2.1.0 // indirect + github.com/deckarep/golang-set/v2 v2.6.0 // indirect github.com/deepmap/oapi-codegen v1.8.2 // indirect github.com/ethereum/c-kzg-4844 v0.4.0 // indirect github.com/flowchartsman/swaggerui v0.0.0-20221017034628-909ed4f3701b // indirect @@ -150,7 +150,7 @@ require ( github.com/chzyer/test v1.0.0 // indirect github.com/cloudflare/circl v1.3.7 // indirect github.com/containerd/continuity v0.4.2 // indirect - github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e // indirect github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect @@ -169,7 +169,7 @@ require ( github.com/fjl/memsize v0.0.2 // indirect github.com/friendsofgo/graphiql v0.2.2 // indirect github.com/gabriel-vasile/mimetype v1.4.3 // indirect - github.com/gin-contrib/cors v1.4.0 // indirect + github.com/gin-contrib/cors v1.7.2 // indirect github.com/gin-contrib/requestid v0.0.6 // indirect github.com/gin-contrib/sse v0.1.0 // indirect github.com/gin-contrib/zap v0.2.0 // indirect @@ -278,7 +278,7 @@ require ( github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 // indirect github.com/teivah/onecontext v1.3.0 // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/tyler-smith/go-bip39 v1.1.0 // indirect github.com/uptrace/opentelemetry-go-extra/otelgorm v0.3.1 // indirect @@ -291,13 +291,13 @@ require ( github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect - github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect + github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 // indirect github.com/yusufpapurcu/wmi v1.2.3 // indirect go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/contrib v1.16.1 // indirect - go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.42.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect - go.opentelemetry.io/contrib/propagators/b3 v1.21.0 // indirect + go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 // indirect + go.opentelemetry.io/contrib/propagators/b3 v1.27.0 // indirect go.opentelemetry.io/otel/exporters/jaeger v1.17.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.27.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0 // indirect @@ -311,7 +311,7 @@ require ( go.uber.org/zap v1.27.0 // indirect golang.org/x/arch v0.8.0 // indirect golang.org/x/crypto v0.24.0 // indirect - golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect + golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 // indirect golang.org/x/image v0.6.0 // indirect golang.org/x/mod v0.18.0 // indirect golang.org/x/net v0.26.0 // indirect diff --git a/agents/go.sum b/agents/go.sum index 7b0b62cd6d..80f62423bc 100644 --- a/agents/go.sum +++ b/agents/go.sum @@ -306,8 +306,8 @@ github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSV github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 h1:d28BXYi+wUpz1KBmiF9bWrjEMacUEREV6MBi2ODnrfQ= github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233/go.mod h1:geZJZH3SzKCqnz5VT0q/DyIG/tvu/dZk+VIfXicupJs= github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA= @@ -329,8 +329,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea/go.mod h1:93vsz/8Wt4joVM7c2AVqh+YRMiUSc14yDtF28KmMOgQ= -github.com/deckarep/golang-set/v2 v2.1.0 h1:g47V4Or+DUdzbs8FxCCmgb6VYd+ptPAngjM6dtGktsI= -github.com/deckarep/golang-set/v2 v2.1.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= +github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80NsVHagjM= +github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= 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= @@ -426,8 +426,8 @@ github.com/getsentry/sentry-go v0.12.0/go.mod h1:NSap0JBYWzHND8oMbyi0+XZhUalc1TB github.com/getsentry/sentry-go v0.18.0 h1:MtBW5H9QgdcJabtZcuJG80BMOwaBpkRDZkxRkNC1sN0= github.com/getsentry/sentry-go v0.18.0/go.mod h1:Kgon4Mby+FJ7ZWHFUAZgVaIa8sxHtnRJRLTXZr51aKQ= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/gin-contrib/cors v1.4.0 h1:oJ6gwtUl3lqV0WEIwM/LxPF1QZ5qe2lGWdY2+bz7y0g= -github.com/gin-contrib/cors v1.4.0/go.mod h1:bs9pNM0x/UsmHPBWT2xZz9ROh8xYjYkiURUfmBoMlcs= +github.com/gin-contrib/cors v1.7.2 h1:oLDHxdg8W/XDoN/8zamqk/Drgt4oVZDvaV0YmvVICQw= +github.com/gin-contrib/cors v1.7.2/go.mod h1:SUJVARKgQ40dmrzgXEVxj2m7Ig1v1qIboQkPDTQ9t2E= github.com/gin-contrib/requestid v0.0.6 h1:mGcxTnHQ45F6QU5HQRgQUDsAfHprD3P7g2uZ4cSZo9o= github.com/gin-contrib/requestid v0.0.6/go.mod h1:9i4vKATX/CdggbkY252dPVasgVucy/ggBeELXuQztm4= github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= @@ -1131,8 +1131,9 @@ github.com/tklauser/go-sysconf v0.3.5/go.mod h1:MkWzOF4RMCshBAMXuhXJs64Rte09mITn github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.2.2/go.mod h1:x3qojaO3uyYt0i56EW/VUYs7uBvdl2fkfZFu0T9wgjM= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/tyler-smith/go-bip39 v1.0.1-0.20181017060643-dbb3b84ba2ef/go.mod h1:sJ5fKU0s6JVwZjjcUEX2zFOnvq0ASQ2K9Zr6cf67kNs= @@ -1156,8 +1157,8 @@ github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.1 h1:0iCp8hx3PFhGihubKHxy github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.1/go.mod h1:FXrjpUJDqwqofvXWG3YNxQwhg2876tUpZASj8VvOMAM= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= -github.com/urfave/cli/v2 v2.27.1 h1:8xSQ6szndafKVRmfyeUMxkNUJQMjL1F2zmsZ+qHpfho= -github.com/urfave/cli/v2 v2.27.1/go.mod h1:8qnjx1vcq5s2/wpsqoZFndg2CE5tNFyrTvS6SinrnYQ= +github.com/urfave/cli/v2 v2.27.2 h1:6e0H+AkS+zDckwPCUrZkKX38mRaau4nL2uipkJpbkcI= +github.com/urfave/cli/v2 v2.27.2/go.mod h1:g0+79LmHHATl7DAcHO99smiR/T7uGLw84w8Y42x+4eM= github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= @@ -1196,8 +1197,8 @@ github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17 github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= -github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= +github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 h1:+qGGcbkzsfDQNPPe9UDgpxAWQrhbbBXOYJFQDq/dtJw= +github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913/go.mod h1:4aEEwZQutDLsQv2Deui4iYQ6DWTxR14g6m8Wv88+Xqk= github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0/go.mod h1:/LWChgwKmvncFJFHJ7Gvn9wZArjbV5/FppcK2fKk/tI= github.com/yudai/gojsondiff v1.0.0/go.mod h1:AY32+k2cwILAkW1fbgxQ5mUmMiZFgLIV+FBNExI05xg= github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82/go.mod h1:lgjkn3NuSvDfVJdfcVVdX+jpBxNmX4rDAzaS45IcYoM= @@ -1221,14 +1222,14 @@ go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/contrib v1.16.1 h1:EpASvVyGx6/ZTlmXzxYfTMZxHROelCeXXa2uLiwltcs= go.opentelemetry.io/contrib v1.16.1/go.mod h1:gIzjwWFoGazJmtCaDgViqOSJPde2mCWzv60o0bWPcZs= -go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.42.0 h1:l7AmwSVqozWKKXeZHycpdmpycQECRpoGwJ1FW2sWfTo= -go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.42.0/go.mod h1:Ep4uoO2ijR0f49Pr7jAqyTjSCyS1SRL18wwttKfwqXA= +go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0 h1:vkioc4XBfqnZZ7u40wK3Kgbjj9JYkvW6FY1ghmM/Shk= +go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0/go.mod h1:vsyxiwPzPlijgouF1SRZRGqbuHod8fV6+MRCH7ltxDE= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 h1:4Pp6oUg3+e/6M4C0A/3kJ2VYa++dsWVTtGgLVj5xtHg= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0/go.mod h1:Mjt1i1INqiaoZOMGR1RIUJN+i3ChKoFRqzrRQhlkbs0= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= -go.opentelemetry.io/contrib/propagators/b3 v1.21.0 h1:uGdgDPNzwQWRwCXJgw/7h29JaRqcq9B87Iv4hJDKAZw= -go.opentelemetry.io/contrib/propagators/b3 v1.21.0/go.mod h1:D9GQXvVGT2pzyTfp1QBOnD1rzKEWzKjjwu5q2mslCUI= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 h1:9l89oX4ba9kHbBol3Xin3leYJ+252h0zszDtBwyKe2A= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0/go.mod h1:XLZfZboOJWHNKUv7eH0inh0E9VV6eWDFB/9yJyTLPp0= +go.opentelemetry.io/contrib/propagators/b3 v1.27.0 h1:IjgxbomVrV9za6bRi8fWCNXENs0co37SZedQilP2hm0= +go.opentelemetry.io/contrib/propagators/b3 v1.27.0/go.mod h1:Dv9obQz25lCisDvvs4dy28UPh974CxkahRDUPsY7y9E= go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo= go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= @@ -1322,8 +1323,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 h1:LoYXNGAShUG3m/ehNk4iFctuhGX/+R1ZpfJ4/ia80JM= -golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= +golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 h1:yixxcjnhBmY0nkL253HFVIm0JsFHwrHdT3Yh6szTnfY= +golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= @@ -1801,8 +1802,8 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gorm.io/driver/mysql v1.5.6 h1:Ld4mkIickM+EliaQZQx3uOJDJHtrd70MxAUqWqlx3Y8= gorm.io/driver/mysql v1.5.6/go.mod h1:sEtPWMiqiN1N1cMXoXmBbd8C6/l+TESwriotuRRpkDM= -gorm.io/driver/sqlite v1.5.5 h1:7MDMtUZhV065SilG62E0MquljeArQZNfJnjd9i9gx3E= -gorm.io/driver/sqlite v1.5.5/go.mod h1:6NgQ7sQWAIFsPrJJl1lSNSu2TABh0ZZ/zm5fosATavE= +gorm.io/driver/sqlite v1.5.6 h1:fO/X46qn5NUEEOZtnjJRWRzZMe8nqJiQ9E+0hi+hKQE= +gorm.io/driver/sqlite v1.5.6/go.mod h1:U+J8craQU6Fzkcvu8oLeAQmi50TkwPEhHDEjQZXDah4= gorm.io/gorm v1.25.7/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= gorm.io/gorm v1.25.10 h1:dQpO+33KalOA+aFYGlK+EfxcI5MbO7EP2yYygwh9h+s= gorm.io/gorm v1.25.10/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= diff --git a/contrib/git-changes-action/go.mod b/contrib/git-changes-action/go.mod index 968f98d54d..f8d5ef8203 100644 --- a/contrib/git-changes-action/go.mod +++ b/contrib/git-changes-action/go.mod @@ -24,7 +24,7 @@ require ( github.com/synapsecns/sanguine/core v0.0.0-00010101000000-000000000000 github.com/vishalkuo/bimap v0.0.0-20230830142743-a9fb9b52066c github.com/xlab/treeprint v1.2.0 - golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 + golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 golang.org/x/mod v0.18.0 golang.org/x/oauth2 v0.20.0 ) diff --git a/contrib/git-changes-action/go.sum b/contrib/git-changes-action/go.sum index 5bcd2ef2ed..5711386c6e 100644 --- a/contrib/git-changes-action/go.sum +++ b/contrib/git-changes-action/go.sum @@ -314,8 +314,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 h1:LoYXNGAShUG3m/ehNk4iFctuhGX/+R1ZpfJ4/ia80JM= -golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= +golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 h1:yixxcjnhBmY0nkL253HFVIm0JsFHwrHdT3Yh6szTnfY= +golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= diff --git a/contrib/promexporter/go.mod b/contrib/promexporter/go.mod index 04cb2115fb..cb65c3f183 100644 --- a/contrib/promexporter/go.mod +++ b/contrib/promexporter/go.mod @@ -34,7 +34,7 @@ require ( github.com/synapsecns/sanguine/ethergo v0.1.0 github.com/synapsecns/sanguine/services/explorer v0.0.0-00010101000000-000000000000 github.com/synapsecns/sanguine/services/omnirpc v0.0.0-00010101000000-000000000000 - github.com/urfave/cli/v2 v2.27.1 + github.com/urfave/cli/v2 v2.27.2 go.opentelemetry.io/otel v1.27.0 go.opentelemetry.io/otel/metric v1.27.0 go.opentelemetry.io/otel/trace v1.27.0 @@ -82,13 +82,13 @@ require ( github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect github.com/consensys/bavard v0.1.13 // indirect github.com/consensys/gnark-crypto v0.12.1 // indirect - github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 // indirect github.com/crate-crypto/go-kzg-4844 v0.7.0 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e // indirect github.com/davecgh/go-spew v1.1.1 // indirect - github.com/deckarep/golang-set/v2 v2.1.0 // indirect + github.com/deckarep/golang-set/v2 v2.6.0 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect github.com/emirpasic/gods v1.18.1 // indirect github.com/ethereum/c-kzg-4844 v0.4.0 // indirect @@ -100,7 +100,7 @@ require ( github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/gballet/go-verkle v0.1.1-0.20231031103413-a67434b50f46 // indirect github.com/getsentry/sentry-go v0.18.0 // indirect - github.com/gin-contrib/cors v1.4.0 // indirect + github.com/gin-contrib/cors v1.7.2 // indirect github.com/gin-contrib/requestid v0.0.6 // indirect github.com/gin-contrib/sse v0.1.0 // indirect github.com/gin-contrib/zap v0.2.0 // indirect @@ -194,7 +194,7 @@ require ( github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 // indirect github.com/teivah/onecontext v1.3.0 // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/tyler-smith/go-bip39 v1.1.0 // indirect github.com/ugorji/go/codec v1.2.12 // indirect @@ -205,12 +205,12 @@ require ( github.com/valyala/fastjson v1.6.4 // indirect github.com/vektah/gqlparser/v2 v2.5.8 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect - github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect + github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 // indirect github.com/yusufpapurcu/wmi v1.2.3 // indirect go.opentelemetry.io/contrib v1.16.1 // indirect - go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.42.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect - go.opentelemetry.io/contrib/propagators/b3 v1.21.0 // indirect + go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 // indirect + go.opentelemetry.io/contrib/propagators/b3 v1.27.0 // indirect go.opentelemetry.io/otel/exporters/jaeger v1.17.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.27.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0 // indirect @@ -224,7 +224,7 @@ require ( go.uber.org/zap v1.27.0 // indirect golang.org/x/arch v0.8.0 // indirect golang.org/x/crypto v0.24.0 // indirect - golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect + golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 // indirect golang.org/x/mod v0.18.0 // indirect golang.org/x/net v0.26.0 // indirect golang.org/x/sys v0.21.0 // indirect diff --git a/contrib/promexporter/go.sum b/contrib/promexporter/go.sum index d7155cefd5..e115b797fa 100644 --- a/contrib/promexporter/go.sum +++ b/contrib/promexporter/go.sum @@ -272,8 +272,8 @@ github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8Nz github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 h1:d28BXYi+wUpz1KBmiF9bWrjEMacUEREV6MBi2ODnrfQ= github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233/go.mod h1:geZJZH3SzKCqnz5VT0q/DyIG/tvu/dZk+VIfXicupJs= github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA= @@ -291,8 +291,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea/go.mod h1:93vsz/8Wt4joVM7c2AVqh+YRMiUSc14yDtF28KmMOgQ= -github.com/deckarep/golang-set/v2 v2.1.0 h1:g47V4Or+DUdzbs8FxCCmgb6VYd+ptPAngjM6dtGktsI= -github.com/deckarep/golang-set/v2 v2.1.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= +github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80NsVHagjM= +github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= 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= @@ -372,8 +372,8 @@ github.com/gballet/go-verkle v0.1.1-0.20231031103413-a67434b50f46/go.mod h1:QNpY github.com/getsentry/sentry-go v0.12.0/go.mod h1:NSap0JBYWzHND8oMbyi0+XZhUalc1TBdRL1M71JZW2c= github.com/getsentry/sentry-go v0.18.0 h1:MtBW5H9QgdcJabtZcuJG80BMOwaBpkRDZkxRkNC1sN0= github.com/getsentry/sentry-go v0.18.0/go.mod h1:Kgon4Mby+FJ7ZWHFUAZgVaIa8sxHtnRJRLTXZr51aKQ= -github.com/gin-contrib/cors v1.4.0 h1:oJ6gwtUl3lqV0WEIwM/LxPF1QZ5qe2lGWdY2+bz7y0g= -github.com/gin-contrib/cors v1.4.0/go.mod h1:bs9pNM0x/UsmHPBWT2xZz9ROh8xYjYkiURUfmBoMlcs= +github.com/gin-contrib/cors v1.7.2 h1:oLDHxdg8W/XDoN/8zamqk/Drgt4oVZDvaV0YmvVICQw= +github.com/gin-contrib/cors v1.7.2/go.mod h1:SUJVARKgQ40dmrzgXEVxj2m7Ig1v1qIboQkPDTQ9t2E= github.com/gin-contrib/requestid v0.0.6 h1:mGcxTnHQ45F6QU5HQRgQUDsAfHprD3P7g2uZ4cSZo9o= github.com/gin-contrib/requestid v0.0.6/go.mod h1:9i4vKATX/CdggbkY252dPVasgVucy/ggBeELXuQztm4= github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= @@ -1020,8 +1020,9 @@ github.com/tklauser/go-sysconf v0.3.5/go.mod h1:MkWzOF4RMCshBAMXuhXJs64Rte09mITn github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.2.2/go.mod h1:x3qojaO3uyYt0i56EW/VUYs7uBvdl2fkfZFu0T9wgjM= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/tyler-smith/go-bip39 v1.0.1-0.20181017060643-dbb3b84ba2ef/go.mod h1:sJ5fKU0s6JVwZjjcUEX2zFOnvq0ASQ2K9Zr6cf67kNs= @@ -1044,8 +1045,8 @@ github.com/uptrace/opentelemetry-go-extra/otelutil v0.3.1/go.mod h1:aiX/F5+EYbY2 github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.1 h1:0iCp8hx3PFhGihubKHxyOCdIlIPxzUr0VsK+rvlMGdk= github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.1/go.mod h1:FXrjpUJDqwqofvXWG3YNxQwhg2876tUpZASj8VvOMAM= github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= -github.com/urfave/cli/v2 v2.27.1 h1:8xSQ6szndafKVRmfyeUMxkNUJQMjL1F2zmsZ+qHpfho= -github.com/urfave/cli/v2 v2.27.1/go.mod h1:8qnjx1vcq5s2/wpsqoZFndg2CE5tNFyrTvS6SinrnYQ= +github.com/urfave/cli/v2 v2.27.2 h1:6e0H+AkS+zDckwPCUrZkKX38mRaau4nL2uipkJpbkcI= +github.com/urfave/cli/v2 v2.27.2/go.mod h1:g0+79LmHHATl7DAcHO99smiR/T7uGLw84w8Y42x+4eM= github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= @@ -1078,8 +1079,8 @@ github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17 github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= -github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= +github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 h1:+qGGcbkzsfDQNPPe9UDgpxAWQrhbbBXOYJFQDq/dtJw= +github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913/go.mod h1:4aEEwZQutDLsQv2Deui4iYQ6DWTxR14g6m8Wv88+Xqk= github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0/go.mod h1:/LWChgwKmvncFJFHJ7Gvn9wZArjbV5/FppcK2fKk/tI= github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= github.com/yudai/gojsondiff v1.0.0/go.mod h1:AY32+k2cwILAkW1fbgxQ5mUmMiZFgLIV+FBNExI05xg= @@ -1104,14 +1105,14 @@ go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/contrib v1.16.1 h1:EpASvVyGx6/ZTlmXzxYfTMZxHROelCeXXa2uLiwltcs= go.opentelemetry.io/contrib v1.16.1/go.mod h1:gIzjwWFoGazJmtCaDgViqOSJPde2mCWzv60o0bWPcZs= -go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.42.0 h1:l7AmwSVqozWKKXeZHycpdmpycQECRpoGwJ1FW2sWfTo= -go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.42.0/go.mod h1:Ep4uoO2ijR0f49Pr7jAqyTjSCyS1SRL18wwttKfwqXA= +go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0 h1:vkioc4XBfqnZZ7u40wK3Kgbjj9JYkvW6FY1ghmM/Shk= +go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0/go.mod h1:vsyxiwPzPlijgouF1SRZRGqbuHod8fV6+MRCH7ltxDE= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 h1:4Pp6oUg3+e/6M4C0A/3kJ2VYa++dsWVTtGgLVj5xtHg= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0/go.mod h1:Mjt1i1INqiaoZOMGR1RIUJN+i3ChKoFRqzrRQhlkbs0= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= -go.opentelemetry.io/contrib/propagators/b3 v1.21.0 h1:uGdgDPNzwQWRwCXJgw/7h29JaRqcq9B87Iv4hJDKAZw= -go.opentelemetry.io/contrib/propagators/b3 v1.21.0/go.mod h1:D9GQXvVGT2pzyTfp1QBOnD1rzKEWzKjjwu5q2mslCUI= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 h1:9l89oX4ba9kHbBol3Xin3leYJ+252h0zszDtBwyKe2A= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0/go.mod h1:XLZfZboOJWHNKUv7eH0inh0E9VV6eWDFB/9yJyTLPp0= +go.opentelemetry.io/contrib/propagators/b3 v1.27.0 h1:IjgxbomVrV9za6bRi8fWCNXENs0co37SZedQilP2hm0= +go.opentelemetry.io/contrib/propagators/b3 v1.27.0/go.mod h1:Dv9obQz25lCisDvvs4dy28UPh974CxkahRDUPsY7y9E= go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo= go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= @@ -1199,8 +1200,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 h1:LoYXNGAShUG3m/ehNk4iFctuhGX/+R1ZpfJ4/ia80JM= -golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= +golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 h1:yixxcjnhBmY0nkL253HFVIm0JsFHwrHdT3Yh6szTnfY= +golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= @@ -1642,8 +1643,8 @@ gorm.io/driver/clickhouse v0.6.1 h1:t7JMB6sLBXxN8hEO6RdzCbJCwq/jAEVZdwXlmQs1Sd4= gorm.io/driver/clickhouse v0.6.1/go.mod h1:riMYpJcGZ3sJ/OAZZ1rEP1j/Y0H6cByOAnwz7fo2AyM= gorm.io/driver/mysql v1.5.6 h1:Ld4mkIickM+EliaQZQx3uOJDJHtrd70MxAUqWqlx3Y8= gorm.io/driver/mysql v1.5.6/go.mod h1:sEtPWMiqiN1N1cMXoXmBbd8C6/l+TESwriotuRRpkDM= -gorm.io/driver/sqlite v1.5.5 h1:7MDMtUZhV065SilG62E0MquljeArQZNfJnjd9i9gx3E= -gorm.io/driver/sqlite v1.5.5/go.mod h1:6NgQ7sQWAIFsPrJJl1lSNSu2TABh0ZZ/zm5fosATavE= +gorm.io/driver/sqlite v1.5.6 h1:fO/X46qn5NUEEOZtnjJRWRzZMe8nqJiQ9E+0hi+hKQE= +gorm.io/driver/sqlite v1.5.6/go.mod h1:U+J8craQU6Fzkcvu8oLeAQmi50TkwPEhHDEjQZXDah4= gorm.io/gorm v1.25.10 h1:dQpO+33KalOA+aFYGlK+EfxcI5MbO7EP2yYygwh9h+s= gorm.io/gorm v1.25.10/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= diff --git a/contrib/screener-api/go.mod b/contrib/screener-api/go.mod index 8b670ac543..6430469427 100644 --- a/contrib/screener-api/go.mod +++ b/contrib/screener-api/go.mod @@ -24,13 +24,13 @@ require ( github.com/swaggo/gin-swagger v1.6.0 github.com/swaggo/swag v1.16.3 github.com/synapsecns/sanguine/core v0.0.0-00010101000000-000000000000 - github.com/urfave/cli/v2 v2.27.1 + github.com/urfave/cli/v2 v2.27.2 go.opentelemetry.io/otel v1.27.0 go.opentelemetry.io/otel/trace v1.27.0 - golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 + golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 gopkg.in/yaml.v2 v2.4.0 gorm.io/driver/mysql v1.5.6 - gorm.io/driver/sqlite v1.5.5 + gorm.io/driver/sqlite v1.5.6 gorm.io/gorm v1.25.10 ) @@ -52,11 +52,11 @@ require ( github.com/cloudwego/base64x v0.1.4 // indirect github.com/cloudwego/iasm v0.2.0 // indirect github.com/containerd/continuity v0.4.2 // indirect - github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e // indirect github.com/davecgh/go-spew v1.1.1 // indirect - github.com/deckarep/golang-set/v2 v2.1.0 // indirect + github.com/deckarep/golang-set/v2 v2.6.0 // indirect github.com/docker/cli v26.0.1+incompatible // indirect github.com/docker/docker v26.0.1+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect @@ -66,7 +66,7 @@ require ( github.com/fatih/structtag v1.2.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/gabriel-vasile/mimetype v1.4.3 // indirect - github.com/gin-contrib/cors v1.4.0 // indirect + github.com/gin-contrib/cors v1.7.2 // indirect github.com/gin-contrib/requestid v0.0.6 // indirect github.com/gin-contrib/sse v0.1.0 // indirect github.com/gin-contrib/zap v0.2.0 // indirect @@ -144,7 +144,7 @@ require ( github.com/skeema/knownhosts v1.2.2 // indirect github.com/spf13/afero v1.10.0 // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/ugorji/go/codec v1.2.12 // indirect github.com/uptrace/opentelemetry-go-extra/otelgorm v0.3.1 // indirect @@ -155,11 +155,11 @@ require ( github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect - github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect + github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 // indirect github.com/yusufpapurcu/wmi v1.2.3 // indirect - go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.42.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect - go.opentelemetry.io/contrib/propagators/b3 v1.21.0 // indirect + go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 // indirect + go.opentelemetry.io/contrib/propagators/b3 v1.27.0 // indirect go.opentelemetry.io/otel/exporters/jaeger v1.17.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.27.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0 // indirect diff --git a/contrib/screener-api/go.sum b/contrib/screener-api/go.sum index 4c6a3f0450..1581213cc9 100644 --- a/contrib/screener-api/go.sum +++ b/contrib/screener-api/go.sum @@ -107,8 +107,8 @@ github.com/containerd/continuity v0.4.2 h1:v3y/4Yz5jwnvqPKJJ+7Wf93fyWoCB3F5EclWG github.com/containerd/continuity v0.4.2/go.mod h1:F6PTNCKepoxEaXLQp3wDAjygEnImnZ/7o4JzpodfroQ= github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA= github.com/crate-crypto/go-kzg-4844 v0.7.0/go.mod h1:1kMhvPgI0Ky3yIa+9lFySEBUBXkYxeOi8ZF1sYioxhc= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= @@ -122,8 +122,8 @@ github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e/go.mod h1:IJg github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/deckarep/golang-set/v2 v2.1.0 h1:g47V4Or+DUdzbs8FxCCmgb6VYd+ptPAngjM6dtGktsI= -github.com/deckarep/golang-set/v2 v2.1.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= +github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80NsVHagjM= +github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= 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/docker/cli v26.0.1+incompatible h1:eZDuplk2jYqgUkNLDYwTBxqmY9cM3yHnmN6OIUEjL3U= @@ -159,8 +159,8 @@ github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSw github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= -github.com/gin-contrib/cors v1.4.0 h1:oJ6gwtUl3lqV0WEIwM/LxPF1QZ5qe2lGWdY2+bz7y0g= -github.com/gin-contrib/cors v1.4.0/go.mod h1:bs9pNM0x/UsmHPBWT2xZz9ROh8xYjYkiURUfmBoMlcs= +github.com/gin-contrib/cors v1.7.2 h1:oLDHxdg8W/XDoN/8zamqk/Drgt4oVZDvaV0YmvVICQw= +github.com/gin-contrib/cors v1.7.2/go.mod h1:SUJVARKgQ40dmrzgXEVxj2m7Ig1v1qIboQkPDTQ9t2E= github.com/gin-contrib/gzip v0.0.6 h1:NjcunTcGAj5CO1gn4N8jHOSIeRFHIbn51z6K+xaN4d4= github.com/gin-contrib/gzip v0.0.6/go.mod h1:QOJlmV2xmayAjkNS2Y8NQsMneuRShOU/kjovCXNuzzk= github.com/gin-contrib/requestid v0.0.6 h1:mGcxTnHQ45F6QU5HQRgQUDsAfHprD3P7g2uZ4cSZo9o= @@ -502,8 +502,9 @@ github.com/temoto/robotstxt v1.1.2 h1:W2pOjSJ6SWvldyEuiFXNxz3xZ8aiWX5LbfDiOFd7Fx github.com/temoto/robotstxt v1.1.2/go.mod h1:+1AmkuG3IYkh1kv0d2qEB9Le88ehNO0zwOr3ujewlOo= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go v1.2.7/go.mod h1:nF9osbDWLy6bDVv/Rtoh6QgnvNDpmCalQV5urGCCS6M= @@ -519,8 +520,8 @@ github.com/uptrace/opentelemetry-go-extra/otelutil v0.3.1/go.mod h1:aiX/F5+EYbY2 github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.1 h1:0iCp8hx3PFhGihubKHxyOCdIlIPxzUr0VsK+rvlMGdk= github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.1/go.mod h1:FXrjpUJDqwqofvXWG3YNxQwhg2876tUpZASj8VvOMAM= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/cli/v2 v2.27.1 h1:8xSQ6szndafKVRmfyeUMxkNUJQMjL1F2zmsZ+qHpfho= -github.com/urfave/cli/v2 v2.27.1/go.mod h1:8qnjx1vcq5s2/wpsqoZFndg2CE5tNFyrTvS6SinrnYQ= +github.com/urfave/cli/v2 v2.27.2 h1:6e0H+AkS+zDckwPCUrZkKX38mRaau4nL2uipkJpbkcI= +github.com/urfave/cli/v2 v2.27.2/go.mod h1:g0+79LmHHATl7DAcHO99smiR/T7uGLw84w8Y42x+4eM= github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= @@ -532,8 +533,8 @@ github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHo github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= -github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= -github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= +github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 h1:+qGGcbkzsfDQNPPe9UDgpxAWQrhbbBXOYJFQDq/dtJw= +github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913/go.mod h1:4aEEwZQutDLsQv2Deui4iYQ6DWTxR14g6m8Wv88+Xqk= 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= @@ -548,12 +549,12 @@ go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= 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.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.42.0 h1:l7AmwSVqozWKKXeZHycpdmpycQECRpoGwJ1FW2sWfTo= -go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.42.0/go.mod h1:Ep4uoO2ijR0f49Pr7jAqyTjSCyS1SRL18wwttKfwqXA= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= -go.opentelemetry.io/contrib/propagators/b3 v1.21.0 h1:uGdgDPNzwQWRwCXJgw/7h29JaRqcq9B87Iv4hJDKAZw= -go.opentelemetry.io/contrib/propagators/b3 v1.21.0/go.mod h1:D9GQXvVGT2pzyTfp1QBOnD1rzKEWzKjjwu5q2mslCUI= +go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0 h1:vkioc4XBfqnZZ7u40wK3Kgbjj9JYkvW6FY1ghmM/Shk= +go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0/go.mod h1:vsyxiwPzPlijgouF1SRZRGqbuHod8fV6+MRCH7ltxDE= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 h1:9l89oX4ba9kHbBol3Xin3leYJ+252h0zszDtBwyKe2A= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0/go.mod h1:XLZfZboOJWHNKUv7eH0inh0E9VV6eWDFB/9yJyTLPp0= +go.opentelemetry.io/contrib/propagators/b3 v1.27.0 h1:IjgxbomVrV9za6bRi8fWCNXENs0co37SZedQilP2hm0= +go.opentelemetry.io/contrib/propagators/b3 v1.27.0/go.mod h1:Dv9obQz25lCisDvvs4dy28UPh974CxkahRDUPsY7y9E= go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo= go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= @@ -624,8 +625,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 h1:LoYXNGAShUG3m/ehNk4iFctuhGX/+R1ZpfJ4/ia80JM= -golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= +golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 h1:yixxcjnhBmY0nkL253HFVIm0JsFHwrHdT3Yh6szTnfY= +golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1001,8 +1002,8 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gorm.io/driver/mysql v1.5.6 h1:Ld4mkIickM+EliaQZQx3uOJDJHtrd70MxAUqWqlx3Y8= gorm.io/driver/mysql v1.5.6/go.mod h1:sEtPWMiqiN1N1cMXoXmBbd8C6/l+TESwriotuRRpkDM= -gorm.io/driver/sqlite v1.5.5 h1:7MDMtUZhV065SilG62E0MquljeArQZNfJnjd9i9gx3E= -gorm.io/driver/sqlite v1.5.5/go.mod h1:6NgQ7sQWAIFsPrJJl1lSNSu2TABh0ZZ/zm5fosATavE= +gorm.io/driver/sqlite v1.5.6 h1:fO/X46qn5NUEEOZtnjJRWRzZMe8nqJiQ9E+0hi+hKQE= +gorm.io/driver/sqlite v1.5.6/go.mod h1:U+J8craQU6Fzkcvu8oLeAQmi50TkwPEhHDEjQZXDah4= gorm.io/gorm v1.25.7/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= gorm.io/gorm v1.25.10 h1:dQpO+33KalOA+aFYGlK+EfxcI5MbO7EP2yYygwh9h+s= gorm.io/gorm v1.25.10/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= diff --git a/core/go.mod b/core/go.mod index 1f190922af..8ae86987d8 100644 --- a/core/go.mod +++ b/core/go.mod @@ -17,7 +17,7 @@ require ( github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e github.com/ethereum/go-ethereum v1.13.8 github.com/fatih/structtag v1.2.0 - github.com/gin-contrib/cors v1.4.0 + github.com/gin-contrib/cors v1.7.2 github.com/gin-contrib/requestid v0.0.6 github.com/gin-contrib/zap v0.2.0 github.com/gin-gonic/gin v1.10.0 @@ -41,11 +41,11 @@ require ( github.com/temoto/robotstxt v1.1.2 github.com/uptrace/opentelemetry-go-extra/otelgorm v0.3.1 github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.1 - github.com/urfave/cli/v2 v2.27.1 + github.com/urfave/cli/v2 v2.27.2 github.com/valyala/fastjson v1.6.4 - go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.42.0 - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 - go.opentelemetry.io/contrib/propagators/b3 v1.21.0 + go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0 + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 + go.opentelemetry.io/contrib/propagators/b3 v1.27.0 go.opentelemetry.io/otel v1.27.0 go.opentelemetry.io/otel/exporters/jaeger v1.17.0 go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.27.0 @@ -58,7 +58,7 @@ require ( go.opentelemetry.io/otel/trace v1.27.0 go.uber.org/zap v1.27.0 golang.org/x/sync v0.7.0 - gorm.io/driver/sqlite v1.5.5 + gorm.io/driver/sqlite v1.5.6 gorm.io/gorm v1.25.10 k8s.io/apimachinery v0.26.2 ) @@ -80,10 +80,10 @@ require ( github.com/cloudwego/base64x v0.1.4 // indirect github.com/cloudwego/iasm v0.2.0 // indirect github.com/containerd/continuity v0.4.2 // indirect - github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/davecgh/go-spew v1.1.1 // indirect - github.com/deckarep/golang-set/v2 v2.1.0 // indirect + github.com/deckarep/golang-set/v2 v2.6.0 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect github.com/docker/cli v26.0.1+incompatible // indirect github.com/docker/docker v26.0.1+incompatible // indirect @@ -150,7 +150,7 @@ require ( github.com/skeema/knownhosts v1.2.2 // indirect github.com/spf13/afero v1.10.0 // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/ugorji/go/codec v1.2.12 // indirect github.com/uptrace/opentelemetry-go-extra/otelsql v0.3.1 // indirect @@ -159,14 +159,14 @@ require ( github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect - github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect + github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 // indirect github.com/yusufpapurcu/wmi v1.2.3 // indirect go.opentelemetry.io/otel/log v0.3.0 // indirect go.opentelemetry.io/proto/otlp v1.2.0 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/arch v0.8.0 // indirect golang.org/x/crypto v0.24.0 // indirect - golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect + golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 // indirect golang.org/x/mod v0.18.0 // indirect golang.org/x/net v0.26.0 // indirect golang.org/x/sys v0.21.0 // indirect diff --git a/core/go.sum b/core/go.sum index 5da64092b5..31e7d1d23c 100644 --- a/core/go.sum +++ b/core/go.sum @@ -113,8 +113,8 @@ github.com/containerd/continuity v0.4.2 h1:v3y/4Yz5jwnvqPKJJ+7Wf93fyWoCB3F5EclWG github.com/containerd/continuity v0.4.2/go.mod h1:F6PTNCKepoxEaXLQp3wDAjygEnImnZ/7o4JzpodfroQ= github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA= github.com/crate-crypto/go-kzg-4844 v0.7.0/go.mod h1:1kMhvPgI0Ky3yIa+9lFySEBUBXkYxeOi8ZF1sYioxhc= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= @@ -128,8 +128,8 @@ github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e/go.mod h1:IJg github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/deckarep/golang-set/v2 v2.1.0 h1:g47V4Or+DUdzbs8FxCCmgb6VYd+ptPAngjM6dtGktsI= -github.com/deckarep/golang-set/v2 v2.1.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= +github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80NsVHagjM= +github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= 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= @@ -165,8 +165,8 @@ github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSw github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= -github.com/gin-contrib/cors v1.4.0 h1:oJ6gwtUl3lqV0WEIwM/LxPF1QZ5qe2lGWdY2+bz7y0g= -github.com/gin-contrib/cors v1.4.0/go.mod h1:bs9pNM0x/UsmHPBWT2xZz9ROh8xYjYkiURUfmBoMlcs= +github.com/gin-contrib/cors v1.7.2 h1:oLDHxdg8W/XDoN/8zamqk/Drgt4oVZDvaV0YmvVICQw= +github.com/gin-contrib/cors v1.7.2/go.mod h1:SUJVARKgQ40dmrzgXEVxj2m7Ig1v1qIboQkPDTQ9t2E= github.com/gin-contrib/requestid v0.0.6 h1:mGcxTnHQ45F6QU5HQRgQUDsAfHprD3P7g2uZ4cSZo9o= github.com/gin-contrib/requestid v0.0.6/go.mod h1:9i4vKATX/CdggbkY252dPVasgVucy/ggBeELXuQztm4= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= @@ -476,8 +476,9 @@ github.com/temoto/robotstxt v1.1.2 h1:W2pOjSJ6SWvldyEuiFXNxz3xZ8aiWX5LbfDiOFd7Fx github.com/temoto/robotstxt v1.1.2/go.mod h1:+1AmkuG3IYkh1kv0d2qEB9Le88ehNO0zwOr3ujewlOo= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go v1.2.7/go.mod h1:nF9osbDWLy6bDVv/Rtoh6QgnvNDpmCalQV5urGCCS6M= @@ -493,8 +494,8 @@ github.com/uptrace/opentelemetry-go-extra/otelutil v0.3.1/go.mod h1:aiX/F5+EYbY2 github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.1 h1:0iCp8hx3PFhGihubKHxyOCdIlIPxzUr0VsK+rvlMGdk= github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.1/go.mod h1:FXrjpUJDqwqofvXWG3YNxQwhg2876tUpZASj8VvOMAM= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/cli/v2 v2.27.1 h1:8xSQ6szndafKVRmfyeUMxkNUJQMjL1F2zmsZ+qHpfho= -github.com/urfave/cli/v2 v2.27.1/go.mod h1:8qnjx1vcq5s2/wpsqoZFndg2CE5tNFyrTvS6SinrnYQ= +github.com/urfave/cli/v2 v2.27.2 h1:6e0H+AkS+zDckwPCUrZkKX38mRaau4nL2uipkJpbkcI= +github.com/urfave/cli/v2 v2.27.2/go.mod h1:g0+79LmHHATl7DAcHO99smiR/T7uGLw84w8Y42x+4eM= github.com/valyala/fastjson v1.6.4 h1:uAUNq9Z6ymTgGhcm0UynUAB6tlbakBrz6CQFax3BXVQ= github.com/valyala/fastjson v1.6.4/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLrsQns1aXY= github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= @@ -508,8 +509,8 @@ github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHo github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= -github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= -github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= +github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 h1:+qGGcbkzsfDQNPPe9UDgpxAWQrhbbBXOYJFQDq/dtJw= +github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913/go.mod h1:4aEEwZQutDLsQv2Deui4iYQ6DWTxR14g6m8Wv88+Xqk= 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= @@ -524,12 +525,12 @@ go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= 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.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.42.0 h1:l7AmwSVqozWKKXeZHycpdmpycQECRpoGwJ1FW2sWfTo= -go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.42.0/go.mod h1:Ep4uoO2ijR0f49Pr7jAqyTjSCyS1SRL18wwttKfwqXA= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= -go.opentelemetry.io/contrib/propagators/b3 v1.21.0 h1:uGdgDPNzwQWRwCXJgw/7h29JaRqcq9B87Iv4hJDKAZw= -go.opentelemetry.io/contrib/propagators/b3 v1.21.0/go.mod h1:D9GQXvVGT2pzyTfp1QBOnD1rzKEWzKjjwu5q2mslCUI= +go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0 h1:vkioc4XBfqnZZ7u40wK3Kgbjj9JYkvW6FY1ghmM/Shk= +go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0/go.mod h1:vsyxiwPzPlijgouF1SRZRGqbuHod8fV6+MRCH7ltxDE= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 h1:9l89oX4ba9kHbBol3Xin3leYJ+252h0zszDtBwyKe2A= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0/go.mod h1:XLZfZboOJWHNKUv7eH0inh0E9VV6eWDFB/9yJyTLPp0= +go.opentelemetry.io/contrib/propagators/b3 v1.27.0 h1:IjgxbomVrV9za6bRi8fWCNXENs0co37SZedQilP2hm0= +go.opentelemetry.io/contrib/propagators/b3 v1.27.0/go.mod h1:Dv9obQz25lCisDvvs4dy28UPh974CxkahRDUPsY7y9E= go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo= go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= @@ -599,8 +600,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 h1:LoYXNGAShUG3m/ehNk4iFctuhGX/+R1ZpfJ4/ia80JM= -golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= +golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 h1:yixxcjnhBmY0nkL253HFVIm0JsFHwrHdT3Yh6szTnfY= +golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -959,8 +960,8 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gorm.io/driver/sqlite v1.5.5 h1:7MDMtUZhV065SilG62E0MquljeArQZNfJnjd9i9gx3E= -gorm.io/driver/sqlite v1.5.5/go.mod h1:6NgQ7sQWAIFsPrJJl1lSNSu2TABh0ZZ/zm5fosATavE= +gorm.io/driver/sqlite v1.5.6 h1:fO/X46qn5NUEEOZtnjJRWRzZMe8nqJiQ9E+0hi+hKQE= +gorm.io/driver/sqlite v1.5.6/go.mod h1:U+J8craQU6Fzkcvu8oLeAQmi50TkwPEhHDEjQZXDah4= gorm.io/gorm v1.25.10 h1:dQpO+33KalOA+aFYGlK+EfxcI5MbO7EP2yYygwh9h+s= gorm.io/gorm v1.25.10/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= diff --git a/core/metrics/base.go b/core/metrics/base.go index 09028ae02c..91d2cadae2 100644 --- a/core/metrics/base.go +++ b/core/metrics/base.go @@ -24,7 +24,7 @@ import ( sdkmetric "go.opentelemetry.io/otel/sdk/metric" "go.opentelemetry.io/otel/sdk/resource" tracesdk "go.opentelemetry.io/otel/sdk/trace" - semconv "go.opentelemetry.io/otel/semconv/v1.21.0" + semconv "go.opentelemetry.io/otel/semconv/v1.25.0" "go.opentelemetry.io/otel/trace" "gorm.io/gorm" "net/http" diff --git a/ethergo/go.mod b/ethergo/go.mod index 7626845dcf..388b74f025 100644 --- a/ethergo/go.mod +++ b/ethergo/go.mod @@ -60,14 +60,14 @@ require ( go.opentelemetry.io/otel/trace v1.27.0 go.uber.org/atomic v1.11.0 go.uber.org/zap v1.27.0 - golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 + golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 golang.org/x/sync v0.7.0 golang.org/x/time v0.5.0 google.golang.org/api v0.169.0 google.golang.org/protobuf v1.34.1 gopkg.in/yaml.v2 v2.4.0 gorm.io/driver/mysql v1.5.6 - gorm.io/driver/sqlite v1.5.5 + gorm.io/driver/sqlite v1.5.6 gorm.io/gorm v1.25.10 gotest.tools v2.2.0+incompatible k8s.io/apimachinery v0.26.2 @@ -118,12 +118,12 @@ require ( github.com/consensys/bavard v0.1.13 // indirect github.com/consensys/gnark-crypto v0.12.1 // indirect github.com/containerd/continuity v0.4.2 // indirect - github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 // indirect github.com/crate-crypto/go-kzg-4844 v0.7.0 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e // indirect - github.com/deckarep/golang-set/v2 v2.1.0 // indirect + github.com/deckarep/golang-set/v2 v2.6.0 // indirect github.com/deepmap/oapi-codegen v1.8.2 // indirect github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect github.com/docker/cli v26.0.1+incompatible // indirect @@ -141,7 +141,7 @@ require ( github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/gballet/go-verkle v0.1.1-0.20231031103413-a67434b50f46 // indirect github.com/getsentry/sentry-go v0.18.0 // indirect - github.com/gin-contrib/cors v1.4.0 // indirect + github.com/gin-contrib/cors v1.7.2 // indirect github.com/gin-contrib/requestid v0.0.6 // indirect github.com/gin-contrib/sse v0.1.0 // indirect github.com/gin-contrib/zap v0.2.0 // indirect @@ -237,26 +237,26 @@ require ( github.com/stretchr/objx v0.5.2 // indirect github.com/supranational/blst v0.3.11 // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/ugorji/go/codec v1.2.12 // indirect github.com/uptrace/opentelemetry-go-extra/otelgorm v0.3.1 // indirect github.com/uptrace/opentelemetry-go-extra/otelsql v0.3.1 // indirect github.com/uptrace/opentelemetry-go-extra/otelutil v0.3.1 // indirect github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.1 // indirect - github.com/urfave/cli/v2 v2.27.1 // indirect + github.com/urfave/cli/v2 v2.27.2 // indirect github.com/valyala/fastjson v1.6.4 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect - github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect + github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 // indirect github.com/yusufpapurcu/wmi v1.2.3 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.42.0 // indirect + go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect - go.opentelemetry.io/contrib/propagators/b3 v1.21.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 // indirect + go.opentelemetry.io/contrib/propagators/b3 v1.27.0 // indirect go.opentelemetry.io/otel/exporters/jaeger v1.17.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.27.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0 // indirect diff --git a/ethergo/go.sum b/ethergo/go.sum index 8ee031a404..57d9afb9e8 100644 --- a/ethergo/go.sum +++ b/ethergo/go.sum @@ -262,8 +262,8 @@ github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 h1:d28BXYi+wUpz1KBmiF9bWrjEMacUEREV6MBi2ODnrfQ= github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233/go.mod h1:geZJZH3SzKCqnz5VT0q/DyIG/tvu/dZk+VIfXicupJs= github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA= @@ -283,8 +283,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea/go.mod h1:93vsz/8Wt4joVM7c2AVqh+YRMiUSc14yDtF28KmMOgQ= -github.com/deckarep/golang-set/v2 v2.1.0 h1:g47V4Or+DUdzbs8FxCCmgb6VYd+ptPAngjM6dtGktsI= -github.com/deckarep/golang-set/v2 v2.1.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= +github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80NsVHagjM= +github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= 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= @@ -369,8 +369,8 @@ github.com/getsentry/sentry-go v0.12.0/go.mod h1:NSap0JBYWzHND8oMbyi0+XZhUalc1TB github.com/getsentry/sentry-go v0.18.0 h1:MtBW5H9QgdcJabtZcuJG80BMOwaBpkRDZkxRkNC1sN0= github.com/getsentry/sentry-go v0.18.0/go.mod h1:Kgon4Mby+FJ7ZWHFUAZgVaIa8sxHtnRJRLTXZr51aKQ= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/gin-contrib/cors v1.4.0 h1:oJ6gwtUl3lqV0WEIwM/LxPF1QZ5qe2lGWdY2+bz7y0g= -github.com/gin-contrib/cors v1.4.0/go.mod h1:bs9pNM0x/UsmHPBWT2xZz9ROh8xYjYkiURUfmBoMlcs= +github.com/gin-contrib/cors v1.7.2 h1:oLDHxdg8W/XDoN/8zamqk/Drgt4oVZDvaV0YmvVICQw= +github.com/gin-contrib/cors v1.7.2/go.mod h1:SUJVARKgQ40dmrzgXEVxj2m7Ig1v1qIboQkPDTQ9t2E= github.com/gin-contrib/requestid v0.0.6 h1:mGcxTnHQ45F6QU5HQRgQUDsAfHprD3P7g2uZ4cSZo9o= github.com/gin-contrib/requestid v0.0.6/go.mod h1:9i4vKATX/CdggbkY252dPVasgVucy/ggBeELXuQztm4= github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= @@ -1002,8 +1002,9 @@ github.com/tklauser/go-sysconf v0.3.5/go.mod h1:MkWzOF4RMCshBAMXuhXJs64Rte09mITn github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.2.2/go.mod h1:x3qojaO3uyYt0i56EW/VUYs7uBvdl2fkfZFu0T9wgjM= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/tyler-smith/go-bip39 v1.0.1-0.20181017060643-dbb3b84ba2ef/go.mod h1:sJ5fKU0s6JVwZjjcUEX2zFOnvq0ASQ2K9Zr6cf67kNs= @@ -1027,8 +1028,8 @@ github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.1 h1:0iCp8hx3PFhGihubKHxy github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.1/go.mod h1:FXrjpUJDqwqofvXWG3YNxQwhg2876tUpZASj8VvOMAM= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= -github.com/urfave/cli/v2 v2.27.1 h1:8xSQ6szndafKVRmfyeUMxkNUJQMjL1F2zmsZ+qHpfho= -github.com/urfave/cli/v2 v2.27.1/go.mod h1:8qnjx1vcq5s2/wpsqoZFndg2CE5tNFyrTvS6SinrnYQ= +github.com/urfave/cli/v2 v2.27.2 h1:6e0H+AkS+zDckwPCUrZkKX38mRaau4nL2uipkJpbkcI= +github.com/urfave/cli/v2 v2.27.2/go.mod h1:g0+79LmHHATl7DAcHO99smiR/T7uGLw84w8Y42x+4eM= github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasthttp v1.6.0/go.mod h1:FstJa9V+Pj9vQ7OJie2qMHdwemEDaDiSdBnvPM1Su9w= @@ -1053,8 +1054,8 @@ github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17 github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= -github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= +github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 h1:+qGGcbkzsfDQNPPe9UDgpxAWQrhbbBXOYJFQDq/dtJw= +github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913/go.mod h1:4aEEwZQutDLsQv2Deui4iYQ6DWTxR14g6m8Wv88+Xqk= github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0/go.mod h1:/LWChgwKmvncFJFHJ7Gvn9wZArjbV5/FppcK2fKk/tI= github.com/yudai/gojsondiff v1.0.0/go.mod h1:AY32+k2cwILAkW1fbgxQ5mUmMiZFgLIV+FBNExI05xg= github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82/go.mod h1:lgjkn3NuSvDfVJdfcVVdX+jpBxNmX4rDAzaS45IcYoM= @@ -1075,14 +1076,14 @@ 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/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.42.0 h1:l7AmwSVqozWKKXeZHycpdmpycQECRpoGwJ1FW2sWfTo= -go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.42.0/go.mod h1:Ep4uoO2ijR0f49Pr7jAqyTjSCyS1SRL18wwttKfwqXA= +go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0 h1:vkioc4XBfqnZZ7u40wK3Kgbjj9JYkvW6FY1ghmM/Shk= +go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0/go.mod h1:vsyxiwPzPlijgouF1SRZRGqbuHod8fV6+MRCH7ltxDE= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 h1:4Pp6oUg3+e/6M4C0A/3kJ2VYa++dsWVTtGgLVj5xtHg= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0/go.mod h1:Mjt1i1INqiaoZOMGR1RIUJN+i3ChKoFRqzrRQhlkbs0= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= -go.opentelemetry.io/contrib/propagators/b3 v1.21.0 h1:uGdgDPNzwQWRwCXJgw/7h29JaRqcq9B87Iv4hJDKAZw= -go.opentelemetry.io/contrib/propagators/b3 v1.21.0/go.mod h1:D9GQXvVGT2pzyTfp1QBOnD1rzKEWzKjjwu5q2mslCUI= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 h1:9l89oX4ba9kHbBol3Xin3leYJ+252h0zszDtBwyKe2A= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0/go.mod h1:XLZfZboOJWHNKUv7eH0inh0E9VV6eWDFB/9yJyTLPp0= +go.opentelemetry.io/contrib/propagators/b3 v1.27.0 h1:IjgxbomVrV9za6bRi8fWCNXENs0co37SZedQilP2hm0= +go.opentelemetry.io/contrib/propagators/b3 v1.27.0/go.mod h1:Dv9obQz25lCisDvvs4dy28UPh974CxkahRDUPsY7y9E= go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo= go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= @@ -1172,8 +1173,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 h1:LoYXNGAShUG3m/ehNk4iFctuhGX/+R1ZpfJ4/ia80JM= -golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= +golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 h1:yixxcjnhBmY0nkL253HFVIm0JsFHwrHdT3Yh6szTnfY= +golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= @@ -1624,8 +1625,8 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gorm.io/driver/mysql v1.5.6 h1:Ld4mkIickM+EliaQZQx3uOJDJHtrd70MxAUqWqlx3Y8= gorm.io/driver/mysql v1.5.6/go.mod h1:sEtPWMiqiN1N1cMXoXmBbd8C6/l+TESwriotuRRpkDM= -gorm.io/driver/sqlite v1.5.5 h1:7MDMtUZhV065SilG62E0MquljeArQZNfJnjd9i9gx3E= -gorm.io/driver/sqlite v1.5.5/go.mod h1:6NgQ7sQWAIFsPrJJl1lSNSu2TABh0ZZ/zm5fosATavE= +gorm.io/driver/sqlite v1.5.6 h1:fO/X46qn5NUEEOZtnjJRWRzZMe8nqJiQ9E+0hi+hKQE= +gorm.io/driver/sqlite v1.5.6/go.mod h1:U+J8craQU6Fzkcvu8oLeAQmi50TkwPEhHDEjQZXDah4= gorm.io/gorm v1.25.7/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= gorm.io/gorm v1.25.10 h1:dQpO+33KalOA+aFYGlK+EfxcI5MbO7EP2yYygwh9h+s= gorm.io/gorm v1.25.10/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= diff --git a/go.work.sum b/go.work.sum index 86a2906072..8181c87786 100644 --- a/go.work.sum +++ b/go.work.sum @@ -1869,6 +1869,7 @@ github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49P github.com/ghemawat/stream v0.0.0-20171120220530-696b145b53b9 h1:r5GgOLGbza2wVHRzK7aAj6lWZjfbAwiu/RDCVOKjRyM= github.com/ghemawat/stream v0.0.0-20171120220530-696b145b53b9/go.mod h1:106OIgooyS7OzLDOpUGgm9fA3bQENb/cFSyyBmMoJDs= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= +github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU= github.com/glycerine/go-unsnap-stream v0.0.0-20180323001048-9f0cb55181dd h1:r04MMPyLHj/QwZuMJ5+7tJcBr1AQjpiAK/rZWRrQT7o= github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31 h1:gclg6gY70GLy3PbkQ1AERPfmLMMagS60DKF78eWwLn8= github.com/go-check/check v0.0.0-20180628173108-788fd7840127 h1:0gkP6mzaMqkmpcJYCFOLkIBwI7xFExG03bbkOkCvUPI= @@ -1902,6 +1903,7 @@ github.com/go-latex/latex v0.0.0-20230307184459-12ec69307ad9/go.mod h1:gWuR/CrFD github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA= github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/zapr v1.2.3 h1:a9vnzlIBPQBBkeaR9IuMUfmVOrQlkoC4YfPoFkX3T7A= github.com/go-logr/zapr v1.2.3/go.mod h1:eIauM6P8qSvTw5o2ez6UEAfGjQKrxQTl5EoK+Qa2oG4= github.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab h1:xveKWz2iaueeTaUgdetzel+U7exyigDYBryyVfV/rZk= @@ -2262,6 +2264,7 @@ github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa02 github.com/klauspost/cpuid/v2 v2.2.3/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= github.com/klauspost/cpuid/v2 v2.2.4/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= +github.com/klauspost/cpuid/v2 v2.2.7/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= github.com/klauspost/crc32 v0.0.0-20161016154125-cb6bfca970f6 h1:KAZ1BW2TCmT6PRihDPpocIy1QTtsAsrx6TneU/4+CMg= github.com/klauspost/pgzip v1.0.2-0.20170402124221-0bf5dcad4ada h1:3L+neHp83cTjegPdCiOxVOJtRIy7/8RldvMTsyPYH10= github.com/klauspost/reedsolomon v1.9.2 h1:E9CMS2Pqbv+C7tsrYad4YC9MfhnMVWhMRsTi7U0UB18= @@ -2428,6 +2431,7 @@ github.com/mattn/go-shellwords v1.0.12 h1:M2zGm7EW6UQJvDeQxo4T51eKPurbeFbe8WtebG github.com/mattn/go-shellwords v1.0.12/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y= github.com/mattn/go-sqlite3 v1.14.5/go.mod h1:WVKg1VTActs4Qso6iwGbiFih2UIHo0ENGwNd0Lj+XmI= github.com/mattn/go-sqlite3 v1.14.17/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= +github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= github.com/mattn/goveralls v0.0.2 h1:7eJB6EqsPhRVxvwEXGnqdO2sJI0PTsrWoTMXEk9/OQc= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= @@ -2596,6 +2600,7 @@ github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3v github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pelletier/go-toml/v2 v2.0.5/go.mod h1:OMHamSCAODeSsVrwwvcJOaoN0LIUIaFVNZzmWyNfXas= github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4= +github.com/pelletier/go-toml/v2 v2.2.1/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= github.com/petar/GoLLRB v0.0.0-20210522233825-ae3b015fd3e9 h1:1/WtZae0yGtPq+TI6+Tv1WTxkukpXeMlviSxvL7SRgk= github.com/petar/GoLLRB v0.0.0-20210522233825-ae3b015fd3e9/go.mod h1:x3N5drFsm2uilKKuuYo6LdyD8vZAW55sH/9w+pbo1sw= github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= @@ -3096,6 +3101,7 @@ go.uber.org/zap v1.25.0/go.mod h1:JIAUzQIH94IC4fOJQm7gMmBJP5k7wQfdcnYdPoEXJYk= go4.org v0.0.0-20180809161055-417644f6feb5 h1:+hE86LblG4AyDgwMCLTE6FOlM9+qjHSYS+rKqxUVdsM= golang.org/dl v0.0.0-20190829154251-82a15e2f2ead h1:jeP6FgaSLNTMP+Yri3qjlACywQLye+huGLmNGhBzm6k= golang.org/x/arch v0.3.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= +golang.org/x/arch v0.7.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys= golang.org/x/build v0.0.0-20190111050920-041ab4dc3f9d h1:E2M5QgjZ/Jg+ObCQAudsXxuTsLj7Nl5RV/lZcQZmKSo= golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220926161630-eccd6366d1be/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= @@ -3110,6 +3116,8 @@ golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M= +golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/exp v0.0.0-20191002040644-a1355ae1e2c3/go.mod h1:NOZ3BPKG0ec/BKJQgnvsSFpcKLM5xXVWnvZS97DWHgE= golang.org/x/exp v0.0.0-20221205204356-47842c84f3db/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= golang.org/x/exp v0.0.0-20230206171751-46f607a40771/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= @@ -3146,6 +3154,7 @@ golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQI= golang.org/x/oauth2 v0.13.0/go.mod h1:/JMhi4ZRXAf4HG9LiNmxvk+45+96RUlVThiH8FzNBn0= @@ -3174,6 +3183,7 @@ golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/telemetry v0.0.0-20240208230135-b75ee8823808 h1:+Kc94D8UVEVxJnLXp/+FMfqQARZtWHfVrcRtcG8aT3g= golang.org/x/telemetry v0.0.0-20240208230135-b75ee8823808/go.mod h1:KG1lNk5ZFNssSZLrpVb4sMXKMpGwGXOxSG3rnu2gZQQ= @@ -3290,6 +3300,7 @@ google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqw google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/airbrake/gobrake.v2 v2.0.9 h1:7z2uVWwn7oVeeugY1DtlPAy5H+KYgB1KeKTnqjNatLo= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc= @@ -3324,6 +3335,7 @@ gopkg.in/square/go-jose.v2 v2.5.1 h1:7odma5RETjNHWJnR32wx8t+Io4djHE1PqxCFx3iiZ2w gopkg.in/square/go-jose.v2 v2.5.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/urfave/cli.v1 v1.20.0 h1:NdAVW6RYxDif9DhDHaAortIu956m2c0v+09AZBPTbE0= gorm.io/gorm v1.24.5/go.mod h1:DVrVomtaYTbqs7gB/x2uVvqnXzv0nqjB396B8cG4dBA= +gorm.io/gorm v1.25.7-0.20240204074919-46816ad31dde/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= gotest.tools/gotestsum v1.8.2 h1:szU3TaSz8wMx/uG+w/A2+4JUPwH903YYaMI9yOOYAyI= grpc.go4.org v0.0.0-20170609214715-11d0a25b4919 h1:tmXTu+dfa+d9Evp8NpJdgOy6+rt8/x4yG7qPBrtNfLY= honnef.co/go/tools v0.2.2 h1:MNh1AVMyVX23VUHE2O27jm6lNj3vjO5DexS4A1xvnzk= diff --git a/services/cctp-relayer/go.mod b/services/cctp-relayer/go.mod index fef1950734..fba189ce5f 100644 --- a/services/cctp-relayer/go.mod +++ b/services/cctp-relayer/go.mod @@ -21,14 +21,14 @@ require ( github.com/synapsecns/sanguine/core v0.0.0-00010101000000-000000000000 github.com/synapsecns/sanguine/ethergo v0.1.0 github.com/synapsecns/sanguine/services/omnirpc v0.0.0-00010101000000-000000000000 - github.com/urfave/cli/v2 v2.27.1 + github.com/urfave/cli/v2 v2.27.2 go.opentelemetry.io/otel v1.27.0 go.opentelemetry.io/otel/trace v1.27.0 golang.org/x/sync v0.7.0 google.golang.org/grpc v1.64.0 gopkg.in/yaml.v2 v2.4.0 gorm.io/driver/mysql v1.5.6 - gorm.io/driver/sqlite v1.5.5 + gorm.io/driver/sqlite v1.5.6 gorm.io/gorm v1.25.10 ) @@ -90,12 +90,12 @@ require ( github.com/consensys/bavard v0.1.13 // indirect github.com/consensys/gnark-crypto v0.12.1 // indirect github.com/containerd/continuity v0.4.2 // indirect - github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 // indirect github.com/crate-crypto/go-kzg-4844 v0.7.0 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e // indirect - github.com/deckarep/golang-set/v2 v2.1.0 // indirect + github.com/deckarep/golang-set/v2 v2.6.0 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect github.com/deepmap/oapi-codegen v1.8.2 // indirect github.com/dgrr/http2 v0.3.5 // indirect @@ -115,7 +115,7 @@ require ( github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/gballet/go-verkle v0.1.1-0.20231031103413-a67434b50f46 // indirect github.com/getsentry/sentry-go v0.18.0 // indirect - github.com/gin-contrib/cors v1.4.0 // indirect + github.com/gin-contrib/cors v1.7.2 // indirect github.com/gin-contrib/requestid v0.0.6 // indirect github.com/gin-contrib/sse v0.1.0 // indirect github.com/gin-contrib/zap v0.2.0 // indirect @@ -233,7 +233,7 @@ require ( github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 // indirect github.com/teivah/onecontext v1.3.0 // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/tyler-smith/go-bip39 v1.1.0 // indirect github.com/ugorji/go/codec v1.2.12 // indirect @@ -249,13 +249,13 @@ require ( github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect - github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect + github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 // indirect github.com/yusufpapurcu/wmi v1.2.3 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.42.0 // indirect + go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect - go.opentelemetry.io/contrib/propagators/b3 v1.21.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 // indirect + go.opentelemetry.io/contrib/propagators/b3 v1.27.0 // indirect go.opentelemetry.io/otel/exporters/jaeger v1.17.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.27.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0 // indirect @@ -270,7 +270,7 @@ require ( go.uber.org/zap v1.27.0 // indirect golang.org/x/arch v0.8.0 // indirect golang.org/x/crypto v0.24.0 // indirect - golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect + golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 // indirect golang.org/x/mod v0.18.0 // indirect golang.org/x/net v0.26.0 // indirect golang.org/x/oauth2 v0.20.0 // indirect diff --git a/services/cctp-relayer/go.sum b/services/cctp-relayer/go.sum index e8dcf643dd..6c5e8608b5 100644 --- a/services/cctp-relayer/go.sum +++ b/services/cctp-relayer/go.sum @@ -276,8 +276,8 @@ github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 h1:d28BXYi+wUpz1KBmiF9bWrjEMacUEREV6MBi2ODnrfQ= github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233/go.mod h1:geZJZH3SzKCqnz5VT0q/DyIG/tvu/dZk+VIfXicupJs= github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA= @@ -297,8 +297,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea/go.mod h1:93vsz/8Wt4joVM7c2AVqh+YRMiUSc14yDtF28KmMOgQ= -github.com/deckarep/golang-set/v2 v2.1.0 h1:g47V4Or+DUdzbs8FxCCmgb6VYd+ptPAngjM6dtGktsI= -github.com/deckarep/golang-set/v2 v2.1.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= +github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80NsVHagjM= +github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= 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= @@ -381,8 +381,8 @@ github.com/getsentry/sentry-go v0.12.0/go.mod h1:NSap0JBYWzHND8oMbyi0+XZhUalc1TB github.com/getsentry/sentry-go v0.18.0 h1:MtBW5H9QgdcJabtZcuJG80BMOwaBpkRDZkxRkNC1sN0= github.com/getsentry/sentry-go v0.18.0/go.mod h1:Kgon4Mby+FJ7ZWHFUAZgVaIa8sxHtnRJRLTXZr51aKQ= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/gin-contrib/cors v1.4.0 h1:oJ6gwtUl3lqV0WEIwM/LxPF1QZ5qe2lGWdY2+bz7y0g= -github.com/gin-contrib/cors v1.4.0/go.mod h1:bs9pNM0x/UsmHPBWT2xZz9ROh8xYjYkiURUfmBoMlcs= +github.com/gin-contrib/cors v1.7.2 h1:oLDHxdg8W/XDoN/8zamqk/Drgt4oVZDvaV0YmvVICQw= +github.com/gin-contrib/cors v1.7.2/go.mod h1:SUJVARKgQ40dmrzgXEVxj2m7Ig1v1qIboQkPDTQ9t2E= github.com/gin-contrib/requestid v0.0.6 h1:mGcxTnHQ45F6QU5HQRgQUDsAfHprD3P7g2uZ4cSZo9o= github.com/gin-contrib/requestid v0.0.6/go.mod h1:9i4vKATX/CdggbkY252dPVasgVucy/ggBeELXuQztm4= github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= @@ -1037,8 +1037,9 @@ github.com/tklauser/go-sysconf v0.3.5/go.mod h1:MkWzOF4RMCshBAMXuhXJs64Rte09mITn github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.2.2/go.mod h1:x3qojaO3uyYt0i56EW/VUYs7uBvdl2fkfZFu0T9wgjM= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/tyler-smith/go-bip39 v1.0.1-0.20181017060643-dbb3b84ba2ef/go.mod h1:sJ5fKU0s6JVwZjjcUEX2zFOnvq0ASQ2K9Zr6cf67kNs= @@ -1062,8 +1063,8 @@ github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.1 h1:0iCp8hx3PFhGihubKHxy github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.1/go.mod h1:FXrjpUJDqwqofvXWG3YNxQwhg2876tUpZASj8VvOMAM= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= -github.com/urfave/cli/v2 v2.27.1 h1:8xSQ6szndafKVRmfyeUMxkNUJQMjL1F2zmsZ+qHpfho= -github.com/urfave/cli/v2 v2.27.1/go.mod h1:8qnjx1vcq5s2/wpsqoZFndg2CE5tNFyrTvS6SinrnYQ= +github.com/urfave/cli/v2 v2.27.2 h1:6e0H+AkS+zDckwPCUrZkKX38mRaau4nL2uipkJpbkcI= +github.com/urfave/cli/v2 v2.27.2/go.mod h1:g0+79LmHHATl7DAcHO99smiR/T7uGLw84w8Y42x+4eM= github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= @@ -1096,8 +1097,8 @@ github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17 github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= -github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= +github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 h1:+qGGcbkzsfDQNPPe9UDgpxAWQrhbbBXOYJFQDq/dtJw= +github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913/go.mod h1:4aEEwZQutDLsQv2Deui4iYQ6DWTxR14g6m8Wv88+Xqk= github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0/go.mod h1:/LWChgwKmvncFJFHJ7Gvn9wZArjbV5/FppcK2fKk/tI= github.com/yudai/gojsondiff v1.0.0/go.mod h1:AY32+k2cwILAkW1fbgxQ5mUmMiZFgLIV+FBNExI05xg= github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82/go.mod h1:lgjkn3NuSvDfVJdfcVVdX+jpBxNmX4rDAzaS45IcYoM= @@ -1118,14 +1119,14 @@ 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/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.42.0 h1:l7AmwSVqozWKKXeZHycpdmpycQECRpoGwJ1FW2sWfTo= -go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.42.0/go.mod h1:Ep4uoO2ijR0f49Pr7jAqyTjSCyS1SRL18wwttKfwqXA= +go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0 h1:vkioc4XBfqnZZ7u40wK3Kgbjj9JYkvW6FY1ghmM/Shk= +go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0/go.mod h1:vsyxiwPzPlijgouF1SRZRGqbuHod8fV6+MRCH7ltxDE= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 h1:4Pp6oUg3+e/6M4C0A/3kJ2VYa++dsWVTtGgLVj5xtHg= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0/go.mod h1:Mjt1i1INqiaoZOMGR1RIUJN+i3ChKoFRqzrRQhlkbs0= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= -go.opentelemetry.io/contrib/propagators/b3 v1.21.0 h1:uGdgDPNzwQWRwCXJgw/7h29JaRqcq9B87Iv4hJDKAZw= -go.opentelemetry.io/contrib/propagators/b3 v1.21.0/go.mod h1:D9GQXvVGT2pzyTfp1QBOnD1rzKEWzKjjwu5q2mslCUI= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 h1:9l89oX4ba9kHbBol3Xin3leYJ+252h0zszDtBwyKe2A= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0/go.mod h1:XLZfZboOJWHNKUv7eH0inh0E9VV6eWDFB/9yJyTLPp0= +go.opentelemetry.io/contrib/propagators/b3 v1.27.0 h1:IjgxbomVrV9za6bRi8fWCNXENs0co37SZedQilP2hm0= +go.opentelemetry.io/contrib/propagators/b3 v1.27.0/go.mod h1:Dv9obQz25lCisDvvs4dy28UPh974CxkahRDUPsY7y9E= go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo= go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= @@ -1217,8 +1218,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 h1:LoYXNGAShUG3m/ehNk4iFctuhGX/+R1ZpfJ4/ia80JM= -golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= +golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 h1:yixxcjnhBmY0nkL253HFVIm0JsFHwrHdT3Yh6szTnfY= +golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= @@ -1682,8 +1683,8 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gorm.io/driver/mysql v1.5.6 h1:Ld4mkIickM+EliaQZQx3uOJDJHtrd70MxAUqWqlx3Y8= gorm.io/driver/mysql v1.5.6/go.mod h1:sEtPWMiqiN1N1cMXoXmBbd8C6/l+TESwriotuRRpkDM= -gorm.io/driver/sqlite v1.5.5 h1:7MDMtUZhV065SilG62E0MquljeArQZNfJnjd9i9gx3E= -gorm.io/driver/sqlite v1.5.5/go.mod h1:6NgQ7sQWAIFsPrJJl1lSNSu2TABh0ZZ/zm5fosATavE= +gorm.io/driver/sqlite v1.5.6 h1:fO/X46qn5NUEEOZtnjJRWRzZMe8nqJiQ9E+0hi+hKQE= +gorm.io/driver/sqlite v1.5.6/go.mod h1:U+J8craQU6Fzkcvu8oLeAQmi50TkwPEhHDEjQZXDah4= gorm.io/gorm v1.25.7/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= gorm.io/gorm v1.25.10 h1:dQpO+33KalOA+aFYGlK+EfxcI5MbO7EP2yYygwh9h+s= gorm.io/gorm v1.25.10/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= diff --git a/services/explorer/go.mod b/services/explorer/go.mod index de9820718f..92795103b2 100644 --- a/services/explorer/go.mod +++ b/services/explorer/go.mod @@ -41,7 +41,7 @@ require ( github.com/synapsecns/sanguine/core v0.0.0-00010101000000-000000000000 github.com/synapsecns/sanguine/ethergo v0.1.0 github.com/synapsecns/sanguine/services/scribe v0.0.0-00010101000000-000000000000 - github.com/urfave/cli/v2 v2.27.1 + github.com/urfave/cli/v2 v2.27.2 github.com/vektah/gqlparser/v2 v2.5.8 go.opentelemetry.io/otel v1.27.0 go.opentelemetry.io/otel/metric v1.27.0 @@ -99,14 +99,14 @@ require ( github.com/consensys/bavard v0.1.13 // indirect github.com/consensys/gnark-crypto v0.12.1 // indirect github.com/containerd/continuity v0.4.2 // indirect - github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 // indirect github.com/crate-crypto/go-kzg-4844 v0.7.0 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e // indirect github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964 // indirect github.com/davecgh/go-spew v1.1.1 // indirect - github.com/deckarep/golang-set/v2 v2.1.0 // indirect + github.com/deckarep/golang-set/v2 v2.6.0 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect github.com/deepmap/oapi-codegen v1.8.2 // indirect github.com/disintegration/imaging v1.6.2 // indirect @@ -127,7 +127,7 @@ require ( github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/gballet/go-verkle v0.1.1-0.20231031103413-a67434b50f46 // indirect github.com/getsentry/sentry-go v0.18.0 // indirect - github.com/gin-contrib/cors v1.4.0 // indirect + github.com/gin-contrib/cors v1.7.2 // indirect github.com/gin-contrib/requestid v0.0.6 // indirect github.com/gin-contrib/sse v0.1.0 // indirect github.com/gin-contrib/zap v0.2.0 // indirect @@ -240,7 +240,7 @@ require ( github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 // indirect github.com/teivah/onecontext v1.3.0 // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/tyler-smith/go-bip39 v1.1.0 // indirect github.com/ugorji/go/codec v1.2.12 // indirect @@ -253,13 +253,13 @@ require ( github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect - github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect + github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 // indirect github.com/yusufpapurcu/wmi v1.2.3 // indirect go.opentelemetry.io/contrib v1.16.1 // indirect - go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.42.0 // indirect + go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect - go.opentelemetry.io/contrib/propagators/b3 v1.21.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 // indirect + go.opentelemetry.io/contrib/propagators/b3 v1.27.0 // indirect go.opentelemetry.io/otel/exporters/jaeger v1.17.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.27.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0 // indirect @@ -274,7 +274,7 @@ require ( go.uber.org/zap v1.27.0 // indirect golang.org/x/arch v0.8.0 // indirect golang.org/x/crypto v0.24.0 // indirect - golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect + golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 // indirect golang.org/x/image v0.6.0 // indirect golang.org/x/mod v0.18.0 // indirect golang.org/x/net v0.26.0 // indirect @@ -290,7 +290,7 @@ require ( gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect gorm.io/driver/mysql v1.5.6 // indirect - gorm.io/driver/sqlite v1.5.5 // indirect + gorm.io/driver/sqlite v1.5.6 // indirect k8s.io/klog/v2 v2.90.1 // indirect k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 // indirect rsc.io/tmplfunc v0.0.3 // indirect diff --git a/services/explorer/go.sum b/services/explorer/go.sum index b9cdbe92be..ef8dc98677 100644 --- a/services/explorer/go.sum +++ b/services/explorer/go.sum @@ -260,8 +260,8 @@ github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 h1:d28BXYi+wUpz1KBmiF9bWrjEMacUEREV6MBi2ODnrfQ= github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233/go.mod h1:geZJZH3SzKCqnz5VT0q/DyIG/tvu/dZk+VIfXicupJs= github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA= @@ -283,8 +283,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea/go.mod h1:93vsz/8Wt4joVM7c2AVqh+YRMiUSc14yDtF28KmMOgQ= -github.com/deckarep/golang-set/v2 v2.1.0 h1:g47V4Or+DUdzbs8FxCCmgb6VYd+ptPAngjM6dtGktsI= -github.com/deckarep/golang-set/v2 v2.1.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= +github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80NsVHagjM= +github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= 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= @@ -378,8 +378,8 @@ github.com/getsentry/sentry-go v0.12.0/go.mod h1:NSap0JBYWzHND8oMbyi0+XZhUalc1TB github.com/getsentry/sentry-go v0.18.0 h1:MtBW5H9QgdcJabtZcuJG80BMOwaBpkRDZkxRkNC1sN0= github.com/getsentry/sentry-go v0.18.0/go.mod h1:Kgon4Mby+FJ7ZWHFUAZgVaIa8sxHtnRJRLTXZr51aKQ= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/gin-contrib/cors v1.4.0 h1:oJ6gwtUl3lqV0WEIwM/LxPF1QZ5qe2lGWdY2+bz7y0g= -github.com/gin-contrib/cors v1.4.0/go.mod h1:bs9pNM0x/UsmHPBWT2xZz9ROh8xYjYkiURUfmBoMlcs= +github.com/gin-contrib/cors v1.7.2 h1:oLDHxdg8W/XDoN/8zamqk/Drgt4oVZDvaV0YmvVICQw= +github.com/gin-contrib/cors v1.7.2/go.mod h1:SUJVARKgQ40dmrzgXEVxj2m7Ig1v1qIboQkPDTQ9t2E= github.com/gin-contrib/requestid v0.0.6 h1:mGcxTnHQ45F6QU5HQRgQUDsAfHprD3P7g2uZ4cSZo9o= github.com/gin-contrib/requestid v0.0.6/go.mod h1:9i4vKATX/CdggbkY252dPVasgVucy/ggBeELXuQztm4= github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= @@ -1021,8 +1021,9 @@ github.com/tklauser/go-sysconf v0.3.5/go.mod h1:MkWzOF4RMCshBAMXuhXJs64Rte09mITn github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.2.2/go.mod h1:x3qojaO3uyYt0i56EW/VUYs7uBvdl2fkfZFu0T9wgjM= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/tyler-smith/go-bip39 v1.0.1-0.20181017060643-dbb3b84ba2ef/go.mod h1:sJ5fKU0s6JVwZjjcUEX2zFOnvq0ASQ2K9Zr6cf67kNs= @@ -1046,8 +1047,8 @@ github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.1 h1:0iCp8hx3PFhGihubKHxy github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.1/go.mod h1:FXrjpUJDqwqofvXWG3YNxQwhg2876tUpZASj8VvOMAM= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= -github.com/urfave/cli/v2 v2.27.1 h1:8xSQ6szndafKVRmfyeUMxkNUJQMjL1F2zmsZ+qHpfho= -github.com/urfave/cli/v2 v2.27.1/go.mod h1:8qnjx1vcq5s2/wpsqoZFndg2CE5tNFyrTvS6SinrnYQ= +github.com/urfave/cli/v2 v2.27.2 h1:6e0H+AkS+zDckwPCUrZkKX38mRaau4nL2uipkJpbkcI= +github.com/urfave/cli/v2 v2.27.2/go.mod h1:g0+79LmHHATl7DAcHO99smiR/T7uGLw84w8Y42x+4eM= github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= @@ -1082,8 +1083,8 @@ github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17 github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= -github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= +github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 h1:+qGGcbkzsfDQNPPe9UDgpxAWQrhbbBXOYJFQDq/dtJw= +github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913/go.mod h1:4aEEwZQutDLsQv2Deui4iYQ6DWTxR14g6m8Wv88+Xqk= github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0/go.mod h1:/LWChgwKmvncFJFHJ7Gvn9wZArjbV5/FppcK2fKk/tI= github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= github.com/yudai/gojsondiff v1.0.0/go.mod h1:AY32+k2cwILAkW1fbgxQ5mUmMiZFgLIV+FBNExI05xg= @@ -1106,14 +1107,14 @@ 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.opentelemetry.io/contrib v1.16.1 h1:EpASvVyGx6/ZTlmXzxYfTMZxHROelCeXXa2uLiwltcs= go.opentelemetry.io/contrib v1.16.1/go.mod h1:gIzjwWFoGazJmtCaDgViqOSJPde2mCWzv60o0bWPcZs= -go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.42.0 h1:l7AmwSVqozWKKXeZHycpdmpycQECRpoGwJ1FW2sWfTo= -go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.42.0/go.mod h1:Ep4uoO2ijR0f49Pr7jAqyTjSCyS1SRL18wwttKfwqXA= +go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0 h1:vkioc4XBfqnZZ7u40wK3Kgbjj9JYkvW6FY1ghmM/Shk= +go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0/go.mod h1:vsyxiwPzPlijgouF1SRZRGqbuHod8fV6+MRCH7ltxDE= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 h1:4Pp6oUg3+e/6M4C0A/3kJ2VYa++dsWVTtGgLVj5xtHg= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0/go.mod h1:Mjt1i1INqiaoZOMGR1RIUJN+i3ChKoFRqzrRQhlkbs0= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= -go.opentelemetry.io/contrib/propagators/b3 v1.21.0 h1:uGdgDPNzwQWRwCXJgw/7h29JaRqcq9B87Iv4hJDKAZw= -go.opentelemetry.io/contrib/propagators/b3 v1.21.0/go.mod h1:D9GQXvVGT2pzyTfp1QBOnD1rzKEWzKjjwu5q2mslCUI= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 h1:9l89oX4ba9kHbBol3Xin3leYJ+252h0zszDtBwyKe2A= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0/go.mod h1:XLZfZboOJWHNKUv7eH0inh0E9VV6eWDFB/9yJyTLPp0= +go.opentelemetry.io/contrib/propagators/b3 v1.27.0 h1:IjgxbomVrV9za6bRi8fWCNXENs0co37SZedQilP2hm0= +go.opentelemetry.io/contrib/propagators/b3 v1.27.0/go.mod h1:Dv9obQz25lCisDvvs4dy28UPh974CxkahRDUPsY7y9E= go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo= go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= @@ -1204,8 +1205,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 h1:LoYXNGAShUG3m/ehNk4iFctuhGX/+R1ZpfJ4/ia80JM= -golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= +golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 h1:yixxcjnhBmY0nkL253HFVIm0JsFHwrHdT3Yh6szTnfY= +golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= @@ -1661,8 +1662,8 @@ gorm.io/driver/clickhouse v0.6.1 h1:t7JMB6sLBXxN8hEO6RdzCbJCwq/jAEVZdwXlmQs1Sd4= gorm.io/driver/clickhouse v0.6.1/go.mod h1:riMYpJcGZ3sJ/OAZZ1rEP1j/Y0H6cByOAnwz7fo2AyM= gorm.io/driver/mysql v1.5.6 h1:Ld4mkIickM+EliaQZQx3uOJDJHtrd70MxAUqWqlx3Y8= gorm.io/driver/mysql v1.5.6/go.mod h1:sEtPWMiqiN1N1cMXoXmBbd8C6/l+TESwriotuRRpkDM= -gorm.io/driver/sqlite v1.5.5 h1:7MDMtUZhV065SilG62E0MquljeArQZNfJnjd9i9gx3E= -gorm.io/driver/sqlite v1.5.5/go.mod h1:6NgQ7sQWAIFsPrJJl1lSNSu2TABh0ZZ/zm5fosATavE= +gorm.io/driver/sqlite v1.5.6 h1:fO/X46qn5NUEEOZtnjJRWRzZMe8nqJiQ9E+0hi+hKQE= +gorm.io/driver/sqlite v1.5.6/go.mod h1:U+J8craQU6Fzkcvu8oLeAQmi50TkwPEhHDEjQZXDah4= gorm.io/gorm v1.25.7/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= gorm.io/gorm v1.25.10 h1:dQpO+33KalOA+aFYGlK+EfxcI5MbO7EP2yYygwh9h+s= gorm.io/gorm v1.25.10/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= diff --git a/services/omnirpc/go.mod b/services/omnirpc/go.mod index 775ed9e5ca..4c47f45a62 100644 --- a/services/omnirpc/go.mod +++ b/services/omnirpc/go.mod @@ -40,13 +40,13 @@ require ( github.com/synapsecns/fasthttp-http2 v1.0.0 github.com/synapsecns/sanguine/core v0.0.0-00010101000000-000000000000 github.com/synapsecns/sanguine/ethergo v0.0.2 - github.com/urfave/cli/v2 v2.27.1 + github.com/urfave/cli/v2 v2.27.2 github.com/valyala/fasthttp v1.41.0 go.opentelemetry.io/otel v1.27.0 go.opentelemetry.io/otel/metric v1.27.0 go.opentelemetry.io/otel/trace v1.27.0 go.uber.org/automaxprocs v1.5.2 - golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 + golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 golang.org/x/sync v0.7.0 gopkg.in/yaml.v3 v3.0.1 k8s.io/apimachinery v0.26.2 @@ -89,12 +89,12 @@ require ( github.com/consensys/bavard v0.1.13 // indirect github.com/consensys/gnark-crypto v0.12.1 // indirect github.com/containerd/continuity v0.4.2 // indirect - github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 // indirect github.com/crate-crypto/go-kzg-4844 v0.7.0 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e // indirect - github.com/deckarep/golang-set/v2 v2.1.0 // indirect + github.com/deckarep/golang-set/v2 v2.6.0 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect github.com/deepmap/oapi-codegen v1.8.2 // indirect github.com/dgrr/http2 v0.3.5 // indirect @@ -112,7 +112,7 @@ require ( github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/gballet/go-verkle v0.1.1-0.20231031103413-a67434b50f46 // indirect github.com/getsentry/sentry-go v0.18.0 // indirect - github.com/gin-contrib/cors v1.4.0 // indirect + github.com/gin-contrib/cors v1.7.2 // indirect github.com/gin-contrib/requestid v0.0.6 // indirect github.com/gin-contrib/sse v0.1.0 // indirect github.com/gin-contrib/zap v0.2.0 // indirect @@ -219,7 +219,7 @@ require ( github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 // indirect github.com/teivah/onecontext v1.3.0 // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/tyler-smith/go-bip39 v1.1.0 // indirect github.com/ugorji/go/codec v1.2.12 // indirect @@ -234,11 +234,11 @@ require ( github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect - github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect + github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 // indirect github.com/yusufpapurcu/wmi v1.2.3 // indirect - go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.42.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect - go.opentelemetry.io/contrib/propagators/b3 v1.21.0 // indirect + go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 // indirect + go.opentelemetry.io/contrib/propagators/b3 v1.27.0 // indirect go.opentelemetry.io/otel/exporters/jaeger v1.17.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.27.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0 // indirect diff --git a/services/omnirpc/go.sum b/services/omnirpc/go.sum index 1cf18be119..a6dcb4a680 100644 --- a/services/omnirpc/go.sum +++ b/services/omnirpc/go.sum @@ -267,8 +267,8 @@ github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSV github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 h1:d28BXYi+wUpz1KBmiF9bWrjEMacUEREV6MBi2ODnrfQ= github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233/go.mod h1:geZJZH3SzKCqnz5VT0q/DyIG/tvu/dZk+VIfXicupJs= github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA= @@ -288,8 +288,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea/go.mod h1:93vsz/8Wt4joVM7c2AVqh+YRMiUSc14yDtF28KmMOgQ= -github.com/deckarep/golang-set/v2 v2.1.0 h1:g47V4Or+DUdzbs8FxCCmgb6VYd+ptPAngjM6dtGktsI= -github.com/deckarep/golang-set/v2 v2.1.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= +github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80NsVHagjM= +github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= 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= @@ -370,8 +370,8 @@ github.com/getsentry/sentry-go v0.12.0/go.mod h1:NSap0JBYWzHND8oMbyi0+XZhUalc1TB github.com/getsentry/sentry-go v0.18.0 h1:MtBW5H9QgdcJabtZcuJG80BMOwaBpkRDZkxRkNC1sN0= github.com/getsentry/sentry-go v0.18.0/go.mod h1:Kgon4Mby+FJ7ZWHFUAZgVaIa8sxHtnRJRLTXZr51aKQ= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/gin-contrib/cors v1.4.0 h1:oJ6gwtUl3lqV0WEIwM/LxPF1QZ5qe2lGWdY2+bz7y0g= -github.com/gin-contrib/cors v1.4.0/go.mod h1:bs9pNM0x/UsmHPBWT2xZz9ROh8xYjYkiURUfmBoMlcs= +github.com/gin-contrib/cors v1.7.2 h1:oLDHxdg8W/XDoN/8zamqk/Drgt4oVZDvaV0YmvVICQw= +github.com/gin-contrib/cors v1.7.2/go.mod h1:SUJVARKgQ40dmrzgXEVxj2m7Ig1v1qIboQkPDTQ9t2E= github.com/gin-contrib/requestid v0.0.6 h1:mGcxTnHQ45F6QU5HQRgQUDsAfHprD3P7g2uZ4cSZo9o= github.com/gin-contrib/requestid v0.0.6/go.mod h1:9i4vKATX/CdggbkY252dPVasgVucy/ggBeELXuQztm4= github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= @@ -1039,8 +1039,9 @@ github.com/tklauser/go-sysconf v0.3.5/go.mod h1:MkWzOF4RMCshBAMXuhXJs64Rte09mITn github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.2.2/go.mod h1:x3qojaO3uyYt0i56EW/VUYs7uBvdl2fkfZFu0T9wgjM= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/tyler-smith/go-bip39 v1.0.1-0.20181017060643-dbb3b84ba2ef/go.mod h1:sJ5fKU0s6JVwZjjcUEX2zFOnvq0ASQ2K9Zr6cf67kNs= @@ -1064,8 +1065,8 @@ github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.1 h1:0iCp8hx3PFhGihubKHxy github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.1/go.mod h1:FXrjpUJDqwqofvXWG3YNxQwhg2876tUpZASj8VvOMAM= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= -github.com/urfave/cli/v2 v2.27.1 h1:8xSQ6szndafKVRmfyeUMxkNUJQMjL1F2zmsZ+qHpfho= -github.com/urfave/cli/v2 v2.27.1/go.mod h1:8qnjx1vcq5s2/wpsqoZFndg2CE5tNFyrTvS6SinrnYQ= +github.com/urfave/cli/v2 v2.27.2 h1:6e0H+AkS+zDckwPCUrZkKX38mRaau4nL2uipkJpbkcI= +github.com/urfave/cli/v2 v2.27.2/go.mod h1:g0+79LmHHATl7DAcHO99smiR/T7uGLw84w8Y42x+4eM= github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= @@ -1098,8 +1099,8 @@ github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17 github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= -github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= +github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 h1:+qGGcbkzsfDQNPPe9UDgpxAWQrhbbBXOYJFQDq/dtJw= +github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913/go.mod h1:4aEEwZQutDLsQv2Deui4iYQ6DWTxR14g6m8Wv88+Xqk= github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0/go.mod h1:/LWChgwKmvncFJFHJ7Gvn9wZArjbV5/FppcK2fKk/tI= github.com/yudai/gojsondiff v1.0.0/go.mod h1:AY32+k2cwILAkW1fbgxQ5mUmMiZFgLIV+FBNExI05xg= github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82/go.mod h1:lgjkn3NuSvDfVJdfcVVdX+jpBxNmX4rDAzaS45IcYoM= @@ -1120,14 +1121,14 @@ 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/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.42.0 h1:l7AmwSVqozWKKXeZHycpdmpycQECRpoGwJ1FW2sWfTo= -go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.42.0/go.mod h1:Ep4uoO2ijR0f49Pr7jAqyTjSCyS1SRL18wwttKfwqXA= +go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0 h1:vkioc4XBfqnZZ7u40wK3Kgbjj9JYkvW6FY1ghmM/Shk= +go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0/go.mod h1:vsyxiwPzPlijgouF1SRZRGqbuHod8fV6+MRCH7ltxDE= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 h1:4Pp6oUg3+e/6M4C0A/3kJ2VYa++dsWVTtGgLVj5xtHg= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0/go.mod h1:Mjt1i1INqiaoZOMGR1RIUJN+i3ChKoFRqzrRQhlkbs0= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= -go.opentelemetry.io/contrib/propagators/b3 v1.21.0 h1:uGdgDPNzwQWRwCXJgw/7h29JaRqcq9B87Iv4hJDKAZw= -go.opentelemetry.io/contrib/propagators/b3 v1.21.0/go.mod h1:D9GQXvVGT2pzyTfp1QBOnD1rzKEWzKjjwu5q2mslCUI= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 h1:9l89oX4ba9kHbBol3Xin3leYJ+252h0zszDtBwyKe2A= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0/go.mod h1:XLZfZboOJWHNKUv7eH0inh0E9VV6eWDFB/9yJyTLPp0= +go.opentelemetry.io/contrib/propagators/b3 v1.27.0 h1:IjgxbomVrV9za6bRi8fWCNXENs0co37SZedQilP2hm0= +go.opentelemetry.io/contrib/propagators/b3 v1.27.0/go.mod h1:Dv9obQz25lCisDvvs4dy28UPh974CxkahRDUPsY7y9E= go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo= go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= @@ -1221,8 +1222,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 h1:LoYXNGAShUG3m/ehNk4iFctuhGX/+R1ZpfJ4/ia80JM= -golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= +golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 h1:yixxcjnhBmY0nkL253HFVIm0JsFHwrHdT3Yh6szTnfY= +golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= @@ -1685,8 +1686,8 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gorm.io/driver/mysql v1.5.6 h1:Ld4mkIickM+EliaQZQx3uOJDJHtrd70MxAUqWqlx3Y8= gorm.io/driver/mysql v1.5.6/go.mod h1:sEtPWMiqiN1N1cMXoXmBbd8C6/l+TESwriotuRRpkDM= -gorm.io/driver/sqlite v1.5.5 h1:7MDMtUZhV065SilG62E0MquljeArQZNfJnjd9i9gx3E= -gorm.io/driver/sqlite v1.5.5/go.mod h1:6NgQ7sQWAIFsPrJJl1lSNSu2TABh0ZZ/zm5fosATavE= +gorm.io/driver/sqlite v1.5.6 h1:fO/X46qn5NUEEOZtnjJRWRzZMe8nqJiQ9E+0hi+hKQE= +gorm.io/driver/sqlite v1.5.6/go.mod h1:U+J8craQU6Fzkcvu8oLeAQmi50TkwPEhHDEjQZXDah4= gorm.io/gorm v1.25.10 h1:dQpO+33KalOA+aFYGlK+EfxcI5MbO7EP2yYygwh9h+s= gorm.io/gorm v1.25.10/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= diff --git a/services/rfq/api/rest/server.go b/services/rfq/api/rest/server.go index 84ea008d38..37f4213433 100644 --- a/services/rfq/api/rest/server.go +++ b/services/rfq/api/rest/server.go @@ -290,7 +290,7 @@ func (r *QuoterAPIServer) PutRelayAck(c *gin.Context) { // Otherwise, insert the current relayer's address into the cache. r.ackMux.Lock() ack := r.relayAckCache.Get(ackReq.TxID) - shouldRelay := ack == nil + shouldRelay := ack == nil || common.HexToAddress(relayerAddr).Hex() == common.HexToAddress(ack.Value()).Hex() if shouldRelay { r.relayAckCache.Set(ackReq.TxID, relayerAddr, ttlcache.DefaultTTL) } else { diff --git a/services/rfq/api/rest/server_test.go b/services/rfq/api/rest/server_test.go index 52059820c7..c8c0e727ea 100644 --- a/services/rfq/api/rest/server_test.go +++ b/services/rfq/api/rest/server_test.go @@ -235,12 +235,12 @@ func (c *ServerSuite) TestPutAck() { c.Require().NoError(err) c.Equal(http.StatusOK, resp.StatusCode) - // Expect ack with shouldRelay=false + // Expect ack with shouldRelay=true err = json.NewDecoder(resp.Body).Decode(&result) c.Require().NoError(err) expectedResult = relapi.PutRelayAckResponse{ TxID: testTxID, - ShouldRelay: false, + ShouldRelay: true, RelayerAddress: c.testWallet.Address().Hex(), } c.Equal(expectedResult, result) diff --git a/services/rfq/go.mod b/services/rfq/go.mod index a584abfbb9..7878b859ec 100644 --- a/services/rfq/go.mod +++ b/services/rfq/go.mod @@ -28,16 +28,16 @@ require ( github.com/synapsecns/sanguine/ethergo v0.1.0 github.com/synapsecns/sanguine/services/cctp-relayer v0.0.0-00010101000000-000000000000 github.com/synapsecns/sanguine/services/omnirpc v0.0.0-00010101000000-000000000000 - github.com/urfave/cli/v2 v2.27.1 - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 + github.com/urfave/cli/v2 v2.27.2 + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 go.opentelemetry.io/otel v1.27.0 go.opentelemetry.io/otel/metric v1.27.0 go.opentelemetry.io/otel/trace v1.27.0 - golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 + golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 golang.org/x/sync v0.7.0 gopkg.in/yaml.v2 v2.4.0 gorm.io/driver/mysql v1.5.6 - gorm.io/driver/sqlite v1.5.5 + gorm.io/driver/sqlite v1.5.6 gorm.io/gorm v1.25.10 ) @@ -101,13 +101,13 @@ require ( github.com/consensys/bavard v0.1.13 // indirect github.com/consensys/gnark-crypto v0.12.1 // indirect github.com/containerd/continuity v0.4.2 // indirect - github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 // indirect github.com/crate-crypto/go-kzg-4844 v0.7.0 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e // indirect github.com/davecgh/go-spew v1.1.1 // indirect - github.com/deckarep/golang-set/v2 v2.1.0 // indirect + github.com/deckarep/golang-set/v2 v2.6.0 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect github.com/deepmap/oapi-codegen v1.8.2 // indirect github.com/dgrr/http2 v0.3.5 // indirect @@ -127,7 +127,7 @@ require ( github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/gballet/go-verkle v0.1.1-0.20231031103413-a67434b50f46 // indirect github.com/getsentry/sentry-go v0.18.0 // indirect - github.com/gin-contrib/cors v1.4.0 // indirect + github.com/gin-contrib/cors v1.7.2 // indirect github.com/gin-contrib/requestid v0.0.6 // indirect github.com/gin-contrib/sse v0.1.0 // indirect github.com/gin-contrib/zap v0.2.0 // indirect @@ -249,7 +249,7 @@ require ( github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 // indirect github.com/teivah/onecontext v1.3.0 // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/tyler-smith/go-bip39 v1.1.0 // indirect github.com/ugorji/go/codec v1.2.12 // indirect @@ -265,12 +265,12 @@ require ( github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect - github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect + github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 // indirect github.com/yusufpapurcu/wmi v1.2.3 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.42.0 // indirect + go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect - go.opentelemetry.io/contrib/propagators/b3 v1.21.0 // indirect + go.opentelemetry.io/contrib/propagators/b3 v1.27.0 // indirect go.opentelemetry.io/otel/exporters/jaeger v1.17.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.27.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0 // indirect diff --git a/services/rfq/go.sum b/services/rfq/go.sum index 760de287e0..989f7b7505 100644 --- a/services/rfq/go.sum +++ b/services/rfq/go.sum @@ -280,8 +280,8 @@ github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 h1:d28BXYi+wUpz1KBmiF9bWrjEMacUEREV6MBi2ODnrfQ= github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233/go.mod h1:geZJZH3SzKCqnz5VT0q/DyIG/tvu/dZk+VIfXicupJs= github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA= @@ -301,8 +301,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea/go.mod h1:93vsz/8Wt4joVM7c2AVqh+YRMiUSc14yDtF28KmMOgQ= -github.com/deckarep/golang-set/v2 v2.1.0 h1:g47V4Or+DUdzbs8FxCCmgb6VYd+ptPAngjM6dtGktsI= -github.com/deckarep/golang-set/v2 v2.1.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= +github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80NsVHagjM= +github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= 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= @@ -385,8 +385,8 @@ github.com/getsentry/sentry-go v0.12.0/go.mod h1:NSap0JBYWzHND8oMbyi0+XZhUalc1TB github.com/getsentry/sentry-go v0.18.0 h1:MtBW5H9QgdcJabtZcuJG80BMOwaBpkRDZkxRkNC1sN0= github.com/getsentry/sentry-go v0.18.0/go.mod h1:Kgon4Mby+FJ7ZWHFUAZgVaIa8sxHtnRJRLTXZr51aKQ= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/gin-contrib/cors v1.4.0 h1:oJ6gwtUl3lqV0WEIwM/LxPF1QZ5qe2lGWdY2+bz7y0g= -github.com/gin-contrib/cors v1.4.0/go.mod h1:bs9pNM0x/UsmHPBWT2xZz9ROh8xYjYkiURUfmBoMlcs= +github.com/gin-contrib/cors v1.7.2 h1:oLDHxdg8W/XDoN/8zamqk/Drgt4oVZDvaV0YmvVICQw= +github.com/gin-contrib/cors v1.7.2/go.mod h1:SUJVARKgQ40dmrzgXEVxj2m7Ig1v1qIboQkPDTQ9t2E= github.com/gin-contrib/gzip v0.0.6 h1:NjcunTcGAj5CO1gn4N8jHOSIeRFHIbn51z6K+xaN4d4= github.com/gin-contrib/gzip v0.0.6/go.mod h1:QOJlmV2xmayAjkNS2Y8NQsMneuRShOU/kjovCXNuzzk= github.com/gin-contrib/requestid v0.0.6 h1:mGcxTnHQ45F6QU5HQRgQUDsAfHprD3P7g2uZ4cSZo9o= @@ -1069,8 +1069,9 @@ github.com/tklauser/go-sysconf v0.3.5/go.mod h1:MkWzOF4RMCshBAMXuhXJs64Rte09mITn github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.2.2/go.mod h1:x3qojaO3uyYt0i56EW/VUYs7uBvdl2fkfZFu0T9wgjM= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/tyler-smith/go-bip39 v1.0.1-0.20181017060643-dbb3b84ba2ef/go.mod h1:sJ5fKU0s6JVwZjjcUEX2zFOnvq0ASQ2K9Zr6cf67kNs= @@ -1094,8 +1095,8 @@ github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.1 h1:0iCp8hx3PFhGihubKHxy github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.1/go.mod h1:FXrjpUJDqwqofvXWG3YNxQwhg2876tUpZASj8VvOMAM= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= -github.com/urfave/cli/v2 v2.27.1 h1:8xSQ6szndafKVRmfyeUMxkNUJQMjL1F2zmsZ+qHpfho= -github.com/urfave/cli/v2 v2.27.1/go.mod h1:8qnjx1vcq5s2/wpsqoZFndg2CE5tNFyrTvS6SinrnYQ= +github.com/urfave/cli/v2 v2.27.2 h1:6e0H+AkS+zDckwPCUrZkKX38mRaau4nL2uipkJpbkcI= +github.com/urfave/cli/v2 v2.27.2/go.mod h1:g0+79LmHHATl7DAcHO99smiR/T7uGLw84w8Y42x+4eM= github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= @@ -1128,8 +1129,8 @@ github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17 github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= -github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= +github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 h1:+qGGcbkzsfDQNPPe9UDgpxAWQrhbbBXOYJFQDq/dtJw= +github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913/go.mod h1:4aEEwZQutDLsQv2Deui4iYQ6DWTxR14g6m8Wv88+Xqk= github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0/go.mod h1:/LWChgwKmvncFJFHJ7Gvn9wZArjbV5/FppcK2fKk/tI= github.com/yudai/gojsondiff v1.0.0/go.mod h1:AY32+k2cwILAkW1fbgxQ5mUmMiZFgLIV+FBNExI05xg= github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82/go.mod h1:lgjkn3NuSvDfVJdfcVVdX+jpBxNmX4rDAzaS45IcYoM= @@ -1150,14 +1151,14 @@ 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/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.42.0 h1:l7AmwSVqozWKKXeZHycpdmpycQECRpoGwJ1FW2sWfTo= -go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.42.0/go.mod h1:Ep4uoO2ijR0f49Pr7jAqyTjSCyS1SRL18wwttKfwqXA= +go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0 h1:vkioc4XBfqnZZ7u40wK3Kgbjj9JYkvW6FY1ghmM/Shk= +go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0/go.mod h1:vsyxiwPzPlijgouF1SRZRGqbuHod8fV6+MRCH7ltxDE= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 h1:4Pp6oUg3+e/6M4C0A/3kJ2VYa++dsWVTtGgLVj5xtHg= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0/go.mod h1:Mjt1i1INqiaoZOMGR1RIUJN+i3ChKoFRqzrRQhlkbs0= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= -go.opentelemetry.io/contrib/propagators/b3 v1.21.0 h1:uGdgDPNzwQWRwCXJgw/7h29JaRqcq9B87Iv4hJDKAZw= -go.opentelemetry.io/contrib/propagators/b3 v1.21.0/go.mod h1:D9GQXvVGT2pzyTfp1QBOnD1rzKEWzKjjwu5q2mslCUI= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 h1:9l89oX4ba9kHbBol3Xin3leYJ+252h0zszDtBwyKe2A= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0/go.mod h1:XLZfZboOJWHNKUv7eH0inh0E9VV6eWDFB/9yJyTLPp0= +go.opentelemetry.io/contrib/propagators/b3 v1.27.0 h1:IjgxbomVrV9za6bRi8fWCNXENs0co37SZedQilP2hm0= +go.opentelemetry.io/contrib/propagators/b3 v1.27.0/go.mod h1:Dv9obQz25lCisDvvs4dy28UPh974CxkahRDUPsY7y9E= go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo= go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= @@ -1249,8 +1250,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 h1:LoYXNGAShUG3m/ehNk4iFctuhGX/+R1ZpfJ4/ia80JM= -golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= +golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 h1:yixxcjnhBmY0nkL253HFVIm0JsFHwrHdT3Yh6szTnfY= +golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= @@ -1719,8 +1720,8 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gorm.io/driver/mysql v1.5.6 h1:Ld4mkIickM+EliaQZQx3uOJDJHtrd70MxAUqWqlx3Y8= gorm.io/driver/mysql v1.5.6/go.mod h1:sEtPWMiqiN1N1cMXoXmBbd8C6/l+TESwriotuRRpkDM= -gorm.io/driver/sqlite v1.5.5 h1:7MDMtUZhV065SilG62E0MquljeArQZNfJnjd9i9gx3E= -gorm.io/driver/sqlite v1.5.5/go.mod h1:6NgQ7sQWAIFsPrJJl1lSNSu2TABh0ZZ/zm5fosATavE= +gorm.io/driver/sqlite v1.5.6 h1:fO/X46qn5NUEEOZtnjJRWRzZMe8nqJiQ9E+0hi+hKQE= +gorm.io/driver/sqlite v1.5.6/go.mod h1:U+J8craQU6Fzkcvu8oLeAQmi50TkwPEhHDEjQZXDah4= gorm.io/gorm v1.25.7/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= gorm.io/gorm v1.25.10 h1:dQpO+33KalOA+aFYGlK+EfxcI5MbO7EP2yYygwh9h+s= gorm.io/gorm v1.25.10/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= diff --git a/services/rfq/relayer/quoter/quoter.go b/services/rfq/relayer/quoter/quoter.go index c3ed50f850..c73aef6adc 100644 --- a/services/rfq/relayer/quoter/quoter.go +++ b/services/rfq/relayer/quoter/quoter.go @@ -25,6 +25,7 @@ import ( "github.com/synapsecns/sanguine/services/rfq/relayer/relconfig" "github.com/synapsecns/sanguine/services/rfq/relayer/reldb" "golang.org/x/exp/slices" + "golang.org/x/sync/errgroup" "github.com/ethereum/go-ethereum/common" "github.com/synapsecns/sanguine/ethergo/signer/signer" @@ -149,23 +150,35 @@ func (m *Manager) ShouldProcess(parentCtx context.Context, quote reldb.QuoteRequ } if m.screener != nil { - blocked, err := m.screener.ScreenAddress(ctx, screenerRuleset, quote.Transaction.OriginSender.String()) - if err != nil { - span.RecordError(fmt.Errorf("error screening address: %w", err)) - return false, fmt.Errorf("error screening address: %w", err) - } - if blocked { - span.AddEvent(fmt.Sprintf("address %s blocked", quote.Transaction.OriginSender)) - return false, nil - } + // screen sender and recipient in parallel + g, gctx := errgroup.WithContext(ctx) + var senderBlocked, recipientBlocked bool + g.Go(func() error { + senderBlocked, err = m.screener.ScreenAddress(gctx, screenerRuleset, quote.Transaction.OriginSender.String()) + if err != nil { + span.RecordError(fmt.Errorf("error screening address: %w", err)) + return fmt.Errorf("error screening address: %w", err) + } + return nil + }) + g.Go(func() error { + recipientBlocked, err = m.screener.ScreenAddress(gctx, screenerRuleset, quote.Transaction.DestRecipient.String()) + if err != nil { + span.RecordError(fmt.Errorf("error screening address: %w", err)) + return fmt.Errorf("error screening address: %w", err) + } + return nil + }) - blocked, err = m.screener.ScreenAddress(ctx, screenerRuleset, quote.Transaction.DestRecipient.String()) + err = g.Wait() if err != nil { - span.RecordError(fmt.Errorf("error screening address: %w", err)) - return false, fmt.Errorf("error screening address: %w", err) + return false, fmt.Errorf("error screening addresses: %w", err) } - if blocked { - span.AddEvent(fmt.Sprintf("address %s blocked", quote.Transaction.DestRecipient)) + if senderBlocked || recipientBlocked { + span.SetAttributes( + attribute.Bool("sender_blocked", senderBlocked), + attribute.Bool("recipient_blocked", recipientBlocked), + ) return false, nil } } diff --git a/services/rfq/relayer/reldb/base/model.go b/services/rfq/relayer/reldb/base/model.go index 542bf2bbc3..ce717f311b 100644 --- a/services/rfq/relayer/reldb/base/model.go +++ b/services/rfq/relayer/reldb/base/model.go @@ -23,6 +23,7 @@ func init() { originTxHashFieldName = namer.GetConsistentName("OriginTxHash") destTxHashFieldName = namer.GetConsistentName("DestTxHash") rebalanceIDFieldName = namer.GetConsistentName("RebalanceID") + relayNonceFieldName = namer.GetConsistentName("RelayNonce") } var ( @@ -36,6 +37,8 @@ var ( destTxHashFieldName string // rebalanceIDFieldName is the rebalances id field name. rebalanceIDFieldName string + // relayNonceFieldName is the relay nonce field name. + relayNonceFieldName string ) // RequestForQuote is the primary event model. @@ -88,6 +91,8 @@ type RequestForQuote struct { RawRequest string // SendChainGas is true if the chain should send gas SendChainGas bool + // RelayNonce is the nonce for the relay transaction. + RelayNonce uint64 } // Rebalance is the event model for a rebalance action. @@ -130,6 +135,7 @@ func FromQuoteRequest(request reldb.QuoteRequest) RequestForQuote { OriginNonce: int(request.Transaction.Nonce.Uint64()), Status: request.Status, BlockNumber: request.BlockNumber, + RelayNonce: request.RelayNonce, } } @@ -216,6 +222,7 @@ func (r RequestForQuote) ToQuoteRequest() (*reldb.QuoteRequest, error) { Status: r.Status, OriginTxHash: common.HexToHash(r.OriginTxHash.String), DestTxHash: common.HexToHash(r.DestTxHash.String), + RelayNonce: r.RelayNonce, }, nil } diff --git a/services/rfq/relayer/reldb/base/quote.go b/services/rfq/relayer/reldb/base/quote.go index b424a3f20a..fa96d1dae1 100644 --- a/services/rfq/relayer/reldb/base/quote.go +++ b/services/rfq/relayer/reldb/base/quote.go @@ -109,3 +109,14 @@ func (s Store) UpdateDestTxHash(ctx context.Context, id [32]byte, destTxHash com } return nil } + +// UpdateRelayNonce todo: db test. +func (s Store) UpdateRelayNonce(ctx context.Context, id [32]byte, nonce uint64) error { + tx := s.DB().WithContext(ctx).Model(&RequestForQuote{}). + Where(fmt.Sprintf("%s = ?", transactionIDFieldName), hexutil.Encode(id[:])). + Update(relayNonceFieldName, nonce) + if tx.Error != nil { + return fmt.Errorf("could not update: %w", tx.Error) + } + return nil +} diff --git a/services/rfq/relayer/reldb/base/rebalance.go b/services/rfq/relayer/reldb/base/rebalance.go index 32f99fccfc..94d79a370f 100644 --- a/services/rfq/relayer/reldb/base/rebalance.go +++ b/services/rfq/relayer/reldb/base/rebalance.go @@ -5,6 +5,8 @@ import ( "errors" "fmt" + "database/sql" + "github.com/synapsecns/sanguine/services/rfq/relayer/reldb" "gorm.io/gorm" ) @@ -125,3 +127,13 @@ func (s Store) GetRebalanceByID(ctx context.Context, rebalanceID string) (*reldb return rebalance, nil } + +// GetDBStats gets the database stats. +func (s Store) GetDBStats(ctx context.Context) (*sql.DBStats, error) { + sqlDB, err := s.DB().WithContext(ctx).DB() + if err != nil { + return nil, fmt.Errorf("could not get db: %w", err) + } + stats := sqlDB.Stats() + return &stats, nil +} diff --git a/services/rfq/relayer/reldb/db.go b/services/rfq/relayer/reldb/db.go index 84624342b2..183d83d117 100644 --- a/services/rfq/relayer/reldb/db.go +++ b/services/rfq/relayer/reldb/db.go @@ -2,6 +2,7 @@ package reldb import ( "context" + "database/sql" "database/sql/driver" "errors" "fmt" @@ -29,6 +30,8 @@ type Writer interface { UpdateRebalance(ctx context.Context, rebalance Rebalance, updateID bool) error // UpdateDestTxHash updates the dest tx hash of a quote request UpdateDestTxHash(ctx context.Context, id [32]byte, destTxHash common.Hash) error + // UpdateRelayNonce updates the relay nonce of a quote request + UpdateRelayNonce(ctx context.Context, id [32]byte, nonce uint64) error } // Reader is the interface for reading from the database. @@ -43,6 +46,8 @@ type Reader interface { GetPendingRebalances(ctx context.Context, chainIDs ...uint64) ([]*Rebalance, error) // GetRebalance gets a rebalance by ID. Should return ErrNoRebalanceForID if not found. GetRebalanceByID(ctx context.Context, rebalanceID string) (*Rebalance, error) + // GetDBStats gets the database stats. + GetDBStats(ctx context.Context) (*sql.DBStats, error) } // Service is the interface for the database service. @@ -76,6 +81,8 @@ type QuoteRequest struct { Status QuoteRequestStatus OriginTxHash common.Hash DestTxHash common.Hash + // RelayNonce is the nonce for the relay transaction. + RelayNonce uint64 } // GetOriginIDPair gets the origin chain id and token address pair. diff --git a/services/rfq/relayer/reldb/mysql/mysql.go b/services/rfq/relayer/reldb/mysql/mysql.go index b5407e253f..1e6ad56fcb 100644 --- a/services/rfq/relayer/reldb/mysql/mysql.go +++ b/services/rfq/relayer/reldb/mysql/mysql.go @@ -4,6 +4,8 @@ package mysql import ( "context" "fmt" + "time" + "github.com/ipfs/go-log" "github.com/synapsecns/sanguine/core/dbcommon" "github.com/synapsecns/sanguine/core/metrics" @@ -11,7 +13,6 @@ import ( "gorm.io/driver/mysql" "gorm.io/gorm" "gorm.io/gorm/schema" - "time" ) var logger = log.Logger("mysql-logger") diff --git a/services/rfq/relayer/service/handlers.go b/services/rfq/relayer/service/handlers.go index 8bbe5dc0c0..493b7092ca 100644 --- a/services/rfq/relayer/service/handlers.go +++ b/services/rfq/relayer/service/handlers.go @@ -5,11 +5,13 @@ import ( "errors" "fmt" "strings" + "time" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/common/hexutil" "github.com/ethereum/go-ethereum/core/types" "github.com/synapsecns/sanguine/core/metrics" + "github.com/synapsecns/sanguine/core/retry" "github.com/synapsecns/sanguine/services/rfq/api/model" "github.com/synapsecns/sanguine/services/rfq/contracts/fastbridge" "github.com/synapsecns/sanguine/services/rfq/relayer/inventory" @@ -18,6 +20,8 @@ import ( "go.opentelemetry.io/otel/trace" ) +var maxRPCRetryTime = 15 * time.Second + // handleBridgeRequestedLog handles the BridgeRequestedLog event. // Step 1: Seen // @@ -33,7 +37,15 @@ func (r *Relayer) handleBridgeRequestedLog(parentCtx context.Context, req *fastb metrics.EndSpanWithErr(span, err) }() - // TODO: consider a mapmutex + unlocker, ok := r.relayMtx.TryLock(hexutil.Encode(req.TransactionId[:])) + if !ok { + span.SetAttributes(attribute.Bool("locked", true)) + // already processing this request + return nil + } + + defer unlocker.Unlock() + _, err = r.db.GetQuoteRequestByID(ctx, req.TransactionId) // expect no results if !errors.Is(err, reldb.ErrNoQuoteForID) { @@ -41,6 +53,10 @@ func (r *Relayer) handleBridgeRequestedLog(parentCtx context.Context, req *fastb if err != nil { return fmt.Errorf("could not call db: %w", err) } + + span.AddEvent("already known") + // already seen this request + return nil } // TODO: these should be premade @@ -54,9 +70,17 @@ func (r *Relayer) handleBridgeRequestedLog(parentCtx context.Context, req *fastb return fmt.Errorf("could not get correct fast bridge: %w", err) } - bridgeTx, err := fastBridge.GetBridgeTransaction(&bind.CallOpts{Context: ctx}, req.Request) + var bridgeTx fastbridge.IFastBridgeBridgeTransaction + call := func(ctx context.Context) error { + bridgeTx, err = fastBridge.GetBridgeTransaction(&bind.CallOpts{Context: ctx}, req.Request) + if err != nil { + return fmt.Errorf("could not get bridge transaction: %w", err) + } + return nil + } + err = retry.WithBackoff(ctx, call, retry.WithMaxTotalTime(maxRPCRetryTime)) if err != nil { - return fmt.Errorf("could not get bridge transaction: %w", err) + return fmt.Errorf("could not make call: %w", err) } // TODO: you can just pull these out of inventory. If they don't exist mark as invalid. @@ -71,7 +95,7 @@ func (r *Relayer) handleBridgeRequestedLog(parentCtx context.Context, req *fastb return fmt.Errorf("could not get decimals: %w", err) } - err = r.db.StoreQuoteRequest(ctx, reldb.QuoteRequest{ + dbReq := reldb.QuoteRequest{ BlockNumber: req.Raw.BlockNumber, RawRequest: req.Request, OriginTokenDecimals: *originDecimals, @@ -81,11 +105,25 @@ func (r *Relayer) handleBridgeRequestedLog(parentCtx context.Context, req *fastb Transaction: bridgeTx, Status: reldb.Seen, OriginTxHash: req.Raw.TxHash, - }) + } + err = r.db.StoreQuoteRequest(ctx, dbReq) if err != nil { return fmt.Errorf("could not get db: %w", err) } + // immediately forward the request to handleSeen + span.AddEvent("sending to handleSeen") + qr, err := r.requestToHandler(ctx, dbReq) + if err != nil { + return fmt.Errorf("could not get quote request handler: %w", err) + } + // Forward instead of lock since we called lock above. + fwdErr := qr.Forward(ctx, dbReq) + if fwdErr != nil { + logger.Errorf("could not forward to handle seen: %w", fwdErr) + span.AddEvent("could not forward to handle seen") + } + return nil } @@ -167,10 +205,20 @@ func (q *QuoteRequestHandler) handleSeen(ctx context.Context, span trace.Span, r return nil } + request.Status = reldb.CommittedPending err = q.db.UpdateQuoteRequestStatus(ctx, request.TransactionID, reldb.CommittedPending) if err != nil { return fmt.Errorf("could not update request status: %w", err) } + + // immediately forward the request to handleCommitPending + span.AddEvent("forwarding to handleCommitPending") + fwdErr := q.Forward(ctx, request) + if fwdErr != nil { + logger.Errorf("could not forward to handle commit pending: %w", fwdErr) + span.AddEvent("could not forward to handle commit pending") + } + return nil } @@ -201,20 +249,40 @@ func (q *QuoteRequestHandler) handleCommitPending(ctx context.Context, span trac return nil } - bs, err := q.Origin.Bridge.BridgeStatuses(&bind.CallOpts{Context: ctx}, request.TransactionID) + var bs uint8 + call := func(ctx context.Context) error { + bs, err = q.Origin.Bridge.BridgeStatuses(&bind.CallOpts{Context: ctx}, request.TransactionID) + if err != nil { + return fmt.Errorf("could not get bridge status: %w", err) + } + return nil + } + err = retry.WithBackoff(ctx, call, retry.WithMaxTotalTime(maxRPCRetryTime)) if err != nil { - return fmt.Errorf("could not get bridge status: %w", err) + return fmt.Errorf("could not make contract call: %w", err) } span.AddEvent("status_check", trace.WithAttributes(attribute.String("chain_bridge_status", fastbridge.BridgeStatus(bs).String()))) // sanity check to make sure it's still requested. - if bs == fastbridge.REQUESTED.Int() { - err = q.db.UpdateQuoteRequestStatus(ctx, request.TransactionID, reldb.CommittedConfirmed) - if err != nil { - return fmt.Errorf("could not update request status: %w", err) - } + if bs != fastbridge.REQUESTED.Int() { + return nil } + + request.Status = reldb.CommittedConfirmed + err = q.db.UpdateQuoteRequestStatus(ctx, request.TransactionID, reldb.CommittedConfirmed) + if err != nil { + return fmt.Errorf("could not update request status: %w", err) + } + + // immediately forward to handleCommitConfirmed + span.AddEvent("forwarding to handleCommitConfirmed") + fwdErr := q.Forward(ctx, request) + if fwdErr != nil { + logger.Errorf("could not forward to handle commit confirmed: %w", fwdErr) + span.AddEvent("could not forward to handle commit confirmed") + } + return nil } @@ -223,22 +291,25 @@ func (q *QuoteRequestHandler) handleCommitPending(ctx context.Context, span trac // // This is the fourth step in the bridge process. Here we submit the relay transaction to the destination chain. // TODO: just to be safe, we should probably check if another relayer has already relayed this. -func (q *QuoteRequestHandler) handleCommitConfirmed(ctx context.Context, _ trace.Span, request reldb.QuoteRequest) (err error) { - err = q.db.UpdateQuoteRequestStatus(ctx, request.TransactionID, reldb.RelayStarted) - if err != nil { - return fmt.Errorf("could not update quote request status: %w", err) - } - +func (q *QuoteRequestHandler) handleCommitConfirmed(ctx context.Context, span trace.Span, request reldb.QuoteRequest) (err error) { // TODO: store the dest txhash connected to the nonce nonce, _, err := q.Dest.SubmitRelay(ctx, request) if err != nil { return fmt.Errorf("could not submit relay: %w", err) } - _ = nonce + span.AddEvent("relay successfully submitted") + span.SetAttributes(attribute.Int("relay_nonce", int(nonce))) + err = q.db.UpdateQuoteRequestStatus(ctx, request.TransactionID, reldb.RelayStarted) if err != nil { - return fmt.Errorf("could not update request status: %w", err) + return fmt.Errorf("could not update quote request status: %w", err) + } + + err = q.db.UpdateRelayNonce(ctx, request.TransactionID, nonce) + if err != nil { + return fmt.Errorf("could not update relay nonce: %w", err) } + return nil } @@ -253,7 +324,9 @@ func (r *Relayer) handleRelayLog(ctx context.Context, req *fastbridge.FastBridge return fmt.Errorf("could not get quote request: %w", err) } // we might've accidentally gotten this later, if so we'll just ignore it - if reqID.Status != reldb.RelayStarted { + // note that in the edge case where we pessimistically marked as DeadlineExceeded + // and the relay was actually successful, we should continue the proving process + if reqID.Status != reldb.RelayStarted && reqID.Status != reldb.DeadlineExceeded { logger.Warnf("got relay log for request that was not relay started (transaction id: %s, txhash: %s)", hexutil.Encode(reqID.TransactionID[:]), req.Raw.TxHash) return nil } @@ -321,9 +394,17 @@ func (q *QuoteRequestHandler) handleProofPosted(ctx context.Context, _ trace.Spa // make sure relayer hasn't already proved. This is neeeded in case of an abrupt halt in event sourcing // note: this assumes caller has already checked the sender is the relayer. - bs, err := q.Origin.Bridge.BridgeStatuses(&bind.CallOpts{Context: ctx}, request.TransactionID) + var bs uint8 + call := func(ctx context.Context) error { + bs, err = q.Origin.Bridge.BridgeStatuses(&bind.CallOpts{Context: ctx}, request.TransactionID) + if err != nil { + return fmt.Errorf("could not get bridge status: %w", err) + } + return nil + } + err = retry.WithBackoff(ctx, call, retry.WithMaxTotalTime(maxRPCRetryTime)) if err != nil { - return fmt.Errorf("could not get bridge status: %w", err) + return fmt.Errorf("could not make contract call: %w", err) } if bs == fastbridge.RelayerClaimed.Int() { @@ -334,9 +415,17 @@ func (q *QuoteRequestHandler) handleProofPosted(ctx context.Context, _ trace.Spa return nil } - canClaim, err := q.Origin.Bridge.CanClaim(&bind.CallOpts{Context: ctx}, request.TransactionID, q.RelayerAddress) + var canClaim bool + claimCall := func(ctx context.Context) error { + canClaim, err = q.Origin.Bridge.CanClaim(&bind.CallOpts{Context: ctx}, request.TransactionID, q.RelayerAddress) + if err != nil { + return fmt.Errorf("could not check if can claim: %w", err) + } + return nil + } + err = retry.WithBackoff(ctx, claimCall, retry.WithMaxTotalTime(maxRPCRetryTime)) if err != nil { - return fmt.Errorf("could not check if can claim: %w", err) + return fmt.Errorf("could not make call: %w", err) } // can't claim yet. we'll check again later diff --git a/services/rfq/relayer/service/relayer.go b/services/rfq/relayer/service/relayer.go index d55fb2cada..819316e5d3 100644 --- a/services/rfq/relayer/service/relayer.go +++ b/services/rfq/relayer/service/relayer.go @@ -4,14 +4,17 @@ import ( "context" "fmt" "math/big" + "sync" "time" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/common/hexutil" "github.com/ipfs/go-log" "github.com/jellydator/ttlcache/v3" "github.com/puzpuzpuz/xsync/v2" "github.com/synapsecns/sanguine/core/dbcommon" + "github.com/synapsecns/sanguine/core/mapmutex" "github.com/synapsecns/sanguine/core/metrics" "github.com/synapsecns/sanguine/ethergo/listener" signerConfig "github.com/synapsecns/sanguine/ethergo/signer/config" @@ -30,9 +33,14 @@ import ( "github.com/synapsecns/sanguine/services/rfq/relayer/relconfig" "github.com/synapsecns/sanguine/services/rfq/relayer/reldb" "github.com/synapsecns/sanguine/services/rfq/relayer/reldb/connect" + "go.opentelemetry.io/otel/attribute" + "go.opentelemetry.io/otel/trace" "golang.org/x/sync/errgroup" + "golang.org/x/sync/semaphore" ) +const maxConcurrentRequests = 150 + // Relayer is the core of the relayer application. type Relayer struct { cfg relconfig.Config @@ -48,6 +56,10 @@ type Relayer struct { signer signer.Signer claimCache *ttlcache.Cache[common.Hash, bool] decimalsCache *xsync.MapOf[string, *uint8] + // semaphore is used to limit the number of concurrent requests + semaphore *semaphore.Weighted + // relayMtx is used to synchronize handling of relay requests + relayMtx mapmutex.StringMapMutex } var logger = log.Logger("relayer") @@ -142,6 +154,8 @@ func NewRelayer(ctx context.Context, metricHandler metrics.Handler, cfg relconfi chainListeners: chainListeners, apiServer: apiServer, apiClient: apiClient, + semaphore: semaphore.NewWeighted(maxConcurrentRequests), + relayMtx: mapmutex.NewStringMapMutex(), } return &rel, nil } @@ -198,7 +212,21 @@ func (r *Relayer) Start(ctx context.Context) (err error) { case <-ctx.Done(): return nil case <-time.After(defaultPostInterval * time.Second): - err := r.runDBSelector(ctx) + err := r.runDBSelector(ctx, false, reldb.Seen, reldb.CommittedPending, reldb.CommittedConfirmed, reldb.NotEnoughInventory) + if err != nil { + return fmt.Errorf("could not start db selector: %w", err) + } + } + } + }) + + g.Go(func() error { + for { + select { + case <-ctx.Done(): + return nil + case <-time.After(defaultPostInterval * time.Second): + err := r.runDBSelector(ctx, true, reldb.RelayStarted, reldb.RelayCompleted, reldb.ProvePosted) if err != nil { return fmt.Errorf("could not start db selector: %w", err) } @@ -246,8 +274,9 @@ func (r *Relayer) Start(ctx context.Context) (err error) { return nil } -func (r *Relayer) runDBSelector(ctx context.Context) error { +func (r *Relayer) runDBSelector(ctx context.Context, serial bool, matchStatuses ...reldb.QuoteRequestStatus) error { interval := r.cfg.GetDBSelectorInterval() + for { select { case <-ctx.Done(): @@ -256,7 +285,7 @@ func (r *Relayer) runDBSelector(ctx context.Context) error { // TODO: add context w/ timeout // TODO: add trigger // TODO: should not fail on error - err := r.processDB(ctx) + err := r.processDB(ctx, serial, matchStatuses...) if err != nil { return err } @@ -297,35 +326,100 @@ func (r *Relayer) startCCTPRelayer(ctx context.Context) (err error) { return nil } -func (r *Relayer) processDB(parentCtx context.Context) (err error) { - ctx, span := r.metrics.Tracer().Start(parentCtx, "processDB") +func (r *Relayer) processDB(ctx context.Context, serial bool, matchStatuses ...reldb.QuoteRequestStatus) (err error) { + ctx, span := r.metrics.Tracer().Start(ctx, "processDB", trace.WithAttributes( + attribute.Bool("serial", serial), + )) defer func() { + r.recordDBStats(ctx, span) metrics.EndSpanWithErr(span, err) }() - requests, err := r.db.GetQuoteResultsByStatus(ctx, reldb.Seen, reldb.CommittedPending, reldb.CommittedConfirmed, reldb.RelayCompleted, reldb.ProvePosted, reldb.NotEnoughInventory) + requests, err := r.db.GetQuoteResultsByStatus(ctx, matchStatuses...) if err != nil { return fmt.Errorf("could not get quote results: %w", err) } + + wg := sync.WaitGroup{} // Obviously, these are only seen. - for _, request := range requests { - // if deadline < now - if request.Transaction.Deadline.Cmp(big.NewInt(time.Now().Unix())) < 0 && request.Status.Int() < reldb.RelayCompleted.Int() { - err = r.db.UpdateQuoteRequestStatus(ctx, request.TransactionID, reldb.DeadlineExceeded) + for _, req := range requests { + //nolint: nestif + if serial { + // process in serial + err = r.processRequest(ctx, req) if err != nil { - return fmt.Errorf("could not update request status: %w", err) + return fmt.Errorf("could not process request: %w", err) + } + } else { + // process in parallel (new goroutine) + request := req // capture func literal + ok := r.semaphore.TryAcquire(1) + if !ok { + span.AddEvent("could not acquire semaphore", trace.WithAttributes( + attribute.String("transaction_id", hexutil.Encode(request.TransactionID[:])), + )) + continue } + if err != nil { + return fmt.Errorf("could not acquire semaphore: %w", err) + } + wg.Add(1) + go func() { + defer r.semaphore.Release(1) + defer wg.Done() + err = r.processRequest(ctx, request) + if err != nil { + logger.Errorf("could not process request: %w", err) + } + }() } + } - qr, err := r.requestToHandler(ctx, request) - if err != nil { - return fmt.Errorf("could not get request to handler: %w", err) - } + // no-op if serial is specified + wg.Wait() + return nil +} + +func (r *Relayer) processRequest(parentCtx context.Context, request reldb.QuoteRequest) (err error) { + ctx, span := r.metrics.Tracer().Start(parentCtx, "processRequest", trace.WithAttributes( + attribute.String("transaction_id", hexutil.Encode(request.TransactionID[:])), + attribute.String("status", request.Status.String()), + )) + defer func() { + metrics.EndSpanWithErr(span, err) + }() - err = qr.Handle(ctx, request) + // if deadline < now + if request.Transaction.Deadline.Cmp(big.NewInt(time.Now().Unix())) < 0 && request.Status.Int() < reldb.RelayCompleted.Int() { + err = r.db.UpdateQuoteRequestStatus(ctx, request.TransactionID, reldb.DeadlineExceeded) if err != nil { - return fmt.Errorf("could not handle request: %w", err) + return fmt.Errorf("could not update request status: %w", err) } } + + qr, err := r.requestToHandler(ctx, request) + if err != nil { + return fmt.Errorf("could not get request to handler: %w", err) + } + + err = qr.Handle(ctx, request) + if err != nil { + return fmt.Errorf("could not handle request: %w", err) + } return nil } + +func (r *Relayer) recordDBStats(ctx context.Context, span trace.Span) { + sqlStats, sqlErr := r.db.GetDBStats(ctx) + if sqlErr != nil { + span.SetAttributes(attribute.String("sql_error", sqlErr.Error())) + return + } + if sqlStats != nil { + span.SetAttributes(attribute.Int64("sql_open_conns", int64(sqlStats.OpenConnections))) + span.SetAttributes(attribute.Int64("sql_in_use_conns", int64(sqlStats.InUse))) + span.SetAttributes(attribute.Int64("sql_idle_conns", int64(sqlStats.Idle))) + span.SetAttributes(attribute.Int64("sql_wait_count", sqlStats.WaitCount)) + span.SetAttributes(attribute.String("sql_wait_duration", sqlStats.WaitDuration.String())) + } +} diff --git a/services/rfq/relayer/service/statushandler.go b/services/rfq/relayer/service/statushandler.go index a2bc5d72f6..64208e5a5b 100644 --- a/services/rfq/relayer/service/statushandler.go +++ b/services/rfq/relayer/service/statushandler.go @@ -45,6 +45,9 @@ type QuoteRequestHandler struct { metrics metrics.Handler // apiClient is used to get acks before submitting a relay transaction. apiClient client.AuthenticatedClient + // mutexMiddlewareFunc is used to wrap the handler in a mutex middleware. + // this should only be done if Handling, not forwarding. + mutexMiddlewareFunc func(func(ctx context.Context, span trace.Span, req reldb.QuoteRequest) error) func(ctx context.Context, span trace.Span, req reldb.QuoteRequest) error } // Handler is the handler for a quote request. @@ -62,22 +65,28 @@ func (r *Relayer) requestToHandler(ctx context.Context, req reldb.QuoteRequest) } qr := &QuoteRequestHandler{ - Origin: *origin, - Dest: *dest, - db: r.db, - Inventory: r.inventory, - Quoter: r.quoter, - handlers: make(map[reldb.QuoteRequestStatus]Handler), - metrics: r.metrics, - RelayerAddress: r.signer.Address(), - claimCache: r.claimCache, - apiClient: r.apiClient, + Origin: *origin, + Dest: *dest, + db: r.db, + Inventory: r.inventory, + Quoter: r.quoter, + handlers: make(map[reldb.QuoteRequestStatus]Handler), + metrics: r.metrics, + RelayerAddress: r.signer.Address(), + claimCache: r.claimCache, + apiClient: r.apiClient, + mutexMiddlewareFunc: r.mutexMiddleware, } + // wrap in deadline middleware since the relay has not yet happened qr.handlers[reldb.Seen] = r.deadlineMiddleware(r.gasMiddleware(qr.handleSeen)) qr.handlers[reldb.CommittedPending] = r.deadlineMiddleware(r.gasMiddleware(qr.handleCommitPending)) qr.handlers[reldb.CommittedConfirmed] = r.deadlineMiddleware(r.gasMiddleware(qr.handleCommitConfirmed)) - // no more need for deadline middleware now, we already relayed. + + // no-op edge case, but we still want to check the deadline + qr.handlers[reldb.RelayStarted] = r.deadlineMiddleware(func(_ context.Context, _ trace.Span, _ reldb.QuoteRequest) error { return nil }) + + // no more need for deadline middleware now, we already relayed qr.handlers[reldb.RelayCompleted] = qr.handleRelayCompleted qr.handlers[reldb.ProvePosted] = qr.handleProofPosted @@ -87,6 +96,19 @@ func (r *Relayer) requestToHandler(ctx context.Context, req reldb.QuoteRequest) return qr, nil } +func (r *Relayer) mutexMiddleware(next func(ctx context.Context, span trace.Span, req reldb.QuoteRequest) error) func(ctx context.Context, span trace.Span, req reldb.QuoteRequest) error { + return func(ctx context.Context, span trace.Span, req reldb.QuoteRequest) (err error) { + unlocker, ok := r.relayMtx.TryLock(hexutil.Encode(req.TransactionID[:])) + if !ok { + span.SetAttributes(attribute.Bool("locked", true)) + return nil + } + defer unlocker.Unlock() + + return next(ctx, span, req) + } +} + func (r *Relayer) deadlineMiddleware(next func(ctx context.Context, span trace.Span, req reldb.QuoteRequest) error) func(ctx context.Context, span trace.Span, req reldb.QuoteRequest) error { return func(ctx context.Context, span trace.Span, req reldb.QuoteRequest) error { // apply deadline buffer @@ -191,5 +213,22 @@ func (q *QuoteRequestHandler) Handle(ctx context.Context, request reldb.QuoteReq metrics.EndSpanWithErr(span, err) }() + // we're handling and not forwarding, so we need to wrap the handler in a mutex middleware + handler := q.mutexMiddlewareFunc(q.handlers[request.Status]) + return handler(ctx, span, request) +} + +// Forward forwards a quote request. +// this ignores the mutex middleware. +func (q *QuoteRequestHandler) Forward(ctx context.Context, request reldb.QuoteRequest) (err error) { + ctx, span := q.metrics.Tracer().Start(ctx, fmt.Sprintf("forward-%s", request.Status.String()), trace.WithAttributes( + attribute.String("transaction_id", hexutil.Encode(request.TransactionID[:])), + )) + defer func() { + metrics.EndSpanWithErr(span, err) + }() + + // TODO: consider adding a lock attempt/fail here as a defensive coding strategy. We *expect* stuff to be locked by the time we get to forward. + return q.handlers[request.Status](ctx, span, request) } diff --git a/services/scribe/go.mod b/services/scribe/go.mod index a017e53e59..60c7f9cd75 100644 --- a/services/scribe/go.mod +++ b/services/scribe/go.mod @@ -49,7 +49,7 @@ require ( github.com/synapsecns/sanguine/ethergo v0.1.0 github.com/synapsecns/sanguine/services/omnirpc v0.0.0-00010101000000-000000000000 github.com/synapsecns/sanguine/tools v0.0.0-00010101000000-000000000000 - github.com/urfave/cli/v2 v2.27.1 + github.com/urfave/cli/v2 v2.27.2 github.com/vektah/gqlparser/v2 v2.5.8 github.com/vektra/mockery/v2 v2.14.0 go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 @@ -57,7 +57,7 @@ require ( go.opentelemetry.io/otel/metric v1.27.0 go.opentelemetry.io/otel/trace v1.27.0 go.uber.org/atomic v1.11.0 - golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 + golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 golang.org/x/oauth2 v0.20.0 golang.org/x/sync v0.7.0 google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5 @@ -65,7 +65,7 @@ require ( google.golang.org/protobuf v1.34.1 gopkg.in/yaml.v2 v2.4.0 gorm.io/driver/mysql v1.5.6 - gorm.io/driver/sqlite v1.5.5 + gorm.io/driver/sqlite v1.5.6 gorm.io/gorm v1.25.10 k8s.io/apimachinery v0.26.2 ) @@ -114,13 +114,13 @@ require ( github.com/consensys/bavard v0.1.13 // indirect github.com/consensys/gnark-crypto v0.12.1 // indirect github.com/containerd/continuity v0.4.2 // indirect - github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 // indirect github.com/crate-crypto/go-kzg-4844 v0.7.0 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e // indirect github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964 // indirect - github.com/deckarep/golang-set/v2 v2.1.0 // indirect + github.com/deckarep/golang-set/v2 v2.6.0 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect github.com/deepmap/oapi-codegen v1.8.2 // indirect github.com/dgrr/http2 v0.3.5 // indirect @@ -143,7 +143,7 @@ require ( github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/gballet/go-verkle v0.1.1-0.20231031103413-a67434b50f46 // indirect github.com/getsentry/sentry-go v0.18.0 // indirect - github.com/gin-contrib/cors v1.4.0 // indirect + github.com/gin-contrib/cors v1.7.2 // indirect github.com/gin-contrib/requestid v0.0.6 // indirect github.com/gin-contrib/sse v0.1.0 // indirect github.com/gin-contrib/zap v0.2.0 // indirect @@ -257,7 +257,7 @@ require ( github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 // indirect github.com/teivah/onecontext v1.3.0 // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/tyler-smith/go-bip39 v1.1.0 // indirect github.com/ugorji/go/codec v1.2.12 // indirect @@ -273,12 +273,12 @@ require ( github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect - github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect + github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 // indirect github.com/yusufpapurcu/wmi v1.2.3 // indirect go.opentelemetry.io/contrib v1.16.1 // indirect - go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.42.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect - go.opentelemetry.io/contrib/propagators/b3 v1.21.0 // indirect + go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 // indirect + go.opentelemetry.io/contrib/propagators/b3 v1.27.0 // indirect go.opentelemetry.io/otel/exporters/jaeger v1.17.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.27.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0 // indirect diff --git a/services/scribe/go.sum b/services/scribe/go.sum index 3a87725cc0..cf6a9cf3c5 100644 --- a/services/scribe/go.sum +++ b/services/scribe/go.sum @@ -292,8 +292,8 @@ github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSV github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 h1:d28BXYi+wUpz1KBmiF9bWrjEMacUEREV6MBi2ODnrfQ= github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233/go.mod h1:geZJZH3SzKCqnz5VT0q/DyIG/tvu/dZk+VIfXicupJs= github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA= @@ -315,8 +315,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea/go.mod h1:93vsz/8Wt4joVM7c2AVqh+YRMiUSc14yDtF28KmMOgQ= -github.com/deckarep/golang-set/v2 v2.1.0 h1:g47V4Or+DUdzbs8FxCCmgb6VYd+ptPAngjM6dtGktsI= -github.com/deckarep/golang-set/v2 v2.1.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= +github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80NsVHagjM= +github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= 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= @@ -410,8 +410,8 @@ github.com/getsentry/sentry-go v0.12.0/go.mod h1:NSap0JBYWzHND8oMbyi0+XZhUalc1TB github.com/getsentry/sentry-go v0.18.0 h1:MtBW5H9QgdcJabtZcuJG80BMOwaBpkRDZkxRkNC1sN0= github.com/getsentry/sentry-go v0.18.0/go.mod h1:Kgon4Mby+FJ7ZWHFUAZgVaIa8sxHtnRJRLTXZr51aKQ= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/gin-contrib/cors v1.4.0 h1:oJ6gwtUl3lqV0WEIwM/LxPF1QZ5qe2lGWdY2+bz7y0g= -github.com/gin-contrib/cors v1.4.0/go.mod h1:bs9pNM0x/UsmHPBWT2xZz9ROh8xYjYkiURUfmBoMlcs= +github.com/gin-contrib/cors v1.7.2 h1:oLDHxdg8W/XDoN/8zamqk/Drgt4oVZDvaV0YmvVICQw= +github.com/gin-contrib/cors v1.7.2/go.mod h1:SUJVARKgQ40dmrzgXEVxj2m7Ig1v1qIboQkPDTQ9t2E= github.com/gin-contrib/requestid v0.0.6 h1:mGcxTnHQ45F6QU5HQRgQUDsAfHprD3P7g2uZ4cSZo9o= github.com/gin-contrib/requestid v0.0.6/go.mod h1:9i4vKATX/CdggbkY252dPVasgVucy/ggBeELXuQztm4= github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= @@ -1095,8 +1095,9 @@ github.com/tklauser/go-sysconf v0.3.5/go.mod h1:MkWzOF4RMCshBAMXuhXJs64Rte09mITn github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.2.2/go.mod h1:x3qojaO3uyYt0i56EW/VUYs7uBvdl2fkfZFu0T9wgjM= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/tyler-smith/go-bip39 v1.0.1-0.20181017060643-dbb3b84ba2ef/go.mod h1:sJ5fKU0s6JVwZjjcUEX2zFOnvq0ASQ2K9Zr6cf67kNs= @@ -1120,8 +1121,8 @@ github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.1 h1:0iCp8hx3PFhGihubKHxy github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.1/go.mod h1:FXrjpUJDqwqofvXWG3YNxQwhg2876tUpZASj8VvOMAM= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= -github.com/urfave/cli/v2 v2.27.1 h1:8xSQ6szndafKVRmfyeUMxkNUJQMjL1F2zmsZ+qHpfho= -github.com/urfave/cli/v2 v2.27.1/go.mod h1:8qnjx1vcq5s2/wpsqoZFndg2CE5tNFyrTvS6SinrnYQ= +github.com/urfave/cli/v2 v2.27.2 h1:6e0H+AkS+zDckwPCUrZkKX38mRaau4nL2uipkJpbkcI= +github.com/urfave/cli/v2 v2.27.2/go.mod h1:g0+79LmHHATl7DAcHO99smiR/T7uGLw84w8Y42x+4eM= github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= @@ -1158,8 +1159,8 @@ github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17 github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= -github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= +github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 h1:+qGGcbkzsfDQNPPe9UDgpxAWQrhbbBXOYJFQDq/dtJw= +github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913/go.mod h1:4aEEwZQutDLsQv2Deui4iYQ6DWTxR14g6m8Wv88+Xqk= github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0/go.mod h1:/LWChgwKmvncFJFHJ7Gvn9wZArjbV5/FppcK2fKk/tI= github.com/yudai/gojsondiff v1.0.0/go.mod h1:AY32+k2cwILAkW1fbgxQ5mUmMiZFgLIV+FBNExI05xg= github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82/go.mod h1:lgjkn3NuSvDfVJdfcVVdX+jpBxNmX4rDAzaS45IcYoM= @@ -1182,14 +1183,14 @@ go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/contrib v1.16.1 h1:EpASvVyGx6/ZTlmXzxYfTMZxHROelCeXXa2uLiwltcs= go.opentelemetry.io/contrib v1.16.1/go.mod h1:gIzjwWFoGazJmtCaDgViqOSJPde2mCWzv60o0bWPcZs= -go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.42.0 h1:l7AmwSVqozWKKXeZHycpdmpycQECRpoGwJ1FW2sWfTo= -go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.42.0/go.mod h1:Ep4uoO2ijR0f49Pr7jAqyTjSCyS1SRL18wwttKfwqXA= +go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0 h1:vkioc4XBfqnZZ7u40wK3Kgbjj9JYkvW6FY1ghmM/Shk= +go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0/go.mod h1:vsyxiwPzPlijgouF1SRZRGqbuHod8fV6+MRCH7ltxDE= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 h1:4Pp6oUg3+e/6M4C0A/3kJ2VYa++dsWVTtGgLVj5xtHg= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0/go.mod h1:Mjt1i1INqiaoZOMGR1RIUJN+i3ChKoFRqzrRQhlkbs0= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= -go.opentelemetry.io/contrib/propagators/b3 v1.21.0 h1:uGdgDPNzwQWRwCXJgw/7h29JaRqcq9B87Iv4hJDKAZw= -go.opentelemetry.io/contrib/propagators/b3 v1.21.0/go.mod h1:D9GQXvVGT2pzyTfp1QBOnD1rzKEWzKjjwu5q2mslCUI= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 h1:9l89oX4ba9kHbBol3Xin3leYJ+252h0zszDtBwyKe2A= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0/go.mod h1:XLZfZboOJWHNKUv7eH0inh0E9VV6eWDFB/9yJyTLPp0= +go.opentelemetry.io/contrib/propagators/b3 v1.27.0 h1:IjgxbomVrV9za6bRi8fWCNXENs0co37SZedQilP2hm0= +go.opentelemetry.io/contrib/propagators/b3 v1.27.0/go.mod h1:Dv9obQz25lCisDvvs4dy28UPh974CxkahRDUPsY7y9E= go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo= go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= @@ -1282,8 +1283,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 h1:LoYXNGAShUG3m/ehNk4iFctuhGX/+R1ZpfJ4/ia80JM= -golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= +golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 h1:yixxcjnhBmY0nkL253HFVIm0JsFHwrHdT3Yh6szTnfY= +golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= @@ -1755,8 +1756,8 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gorm.io/driver/mysql v1.5.6 h1:Ld4mkIickM+EliaQZQx3uOJDJHtrd70MxAUqWqlx3Y8= gorm.io/driver/mysql v1.5.6/go.mod h1:sEtPWMiqiN1N1cMXoXmBbd8C6/l+TESwriotuRRpkDM= -gorm.io/driver/sqlite v1.5.5 h1:7MDMtUZhV065SilG62E0MquljeArQZNfJnjd9i9gx3E= -gorm.io/driver/sqlite v1.5.5/go.mod h1:6NgQ7sQWAIFsPrJJl1lSNSu2TABh0ZZ/zm5fosATavE= +gorm.io/driver/sqlite v1.5.6 h1:fO/X46qn5NUEEOZtnjJRWRzZMe8nqJiQ9E+0hi+hKQE= +gorm.io/driver/sqlite v1.5.6/go.mod h1:U+J8craQU6Fzkcvu8oLeAQmi50TkwPEhHDEjQZXDah4= gorm.io/gorm v1.25.7/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= gorm.io/gorm v1.25.10 h1:dQpO+33KalOA+aFYGlK+EfxcI5MbO7EP2yYygwh9h+s= gorm.io/gorm v1.25.10/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= diff --git a/services/stiprelayer/go.mod b/services/stiprelayer/go.mod index 26a88f56e1..716b713d03 100644 --- a/services/stiprelayer/go.mod +++ b/services/stiprelayer/go.mod @@ -17,14 +17,14 @@ require ( github.com/synapsecns/sanguine/ethergo v0.1.0 github.com/synapsecns/sanguine/services/omnirpc v0.0.0-00010101000000-000000000000 github.com/synapsecns/sanguine/services/rfq v0.0.28 - github.com/urfave/cli/v2 v2.27.1 + github.com/urfave/cli/v2 v2.27.2 go.opentelemetry.io/otel v1.27.0 go.opentelemetry.io/otel/trace v1.27.0 golang.org/x/sync v0.7.0 golang.org/x/time v0.5.0 gopkg.in/yaml.v2 v2.4.0 gorm.io/driver/mysql v1.5.6 - gorm.io/driver/sqlite v1.5.5 + gorm.io/driver/sqlite v1.5.6 gorm.io/gorm v1.25.10 ) @@ -84,13 +84,13 @@ require ( github.com/consensys/bavard v0.1.13 // indirect github.com/consensys/gnark-crypto v0.12.1 // indirect github.com/containerd/continuity v0.4.2 // indirect - github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 // indirect github.com/crate-crypto/go-kzg-4844 v0.7.0 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e // indirect github.com/davecgh/go-spew v1.1.1 // indirect - github.com/deckarep/golang-set/v2 v2.1.0 // indirect + github.com/deckarep/golang-set/v2 v2.6.0 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect github.com/deepmap/oapi-codegen v1.8.2 // indirect github.com/dgrr/http2 v0.3.5 // indirect @@ -110,7 +110,7 @@ require ( github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/gballet/go-verkle v0.1.1-0.20231031103413-a67434b50f46 // indirect github.com/getsentry/sentry-go v0.18.0 // indirect - github.com/gin-contrib/cors v1.4.0 // indirect + github.com/gin-contrib/cors v1.7.2 // indirect github.com/gin-contrib/requestid v0.0.6 // indirect github.com/gin-contrib/sse v0.1.0 // indirect github.com/gin-contrib/zap v0.2.0 // indirect @@ -228,7 +228,7 @@ require ( github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 // indirect github.com/teivah/onecontext v1.3.0 // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/tyler-smith/go-bip39 v1.1.0 // indirect github.com/ugorji/go/codec v1.2.12 // indirect @@ -244,13 +244,13 @@ require ( github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect - github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect + github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 // indirect github.com/yusufpapurcu/wmi v1.2.3 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.42.0 // indirect + go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect - go.opentelemetry.io/contrib/propagators/b3 v1.21.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 // indirect + go.opentelemetry.io/contrib/propagators/b3 v1.27.0 // indirect go.opentelemetry.io/otel/exporters/jaeger v1.17.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.27.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0 // indirect @@ -265,7 +265,7 @@ require ( go.uber.org/zap v1.27.0 // indirect golang.org/x/arch v0.8.0 // indirect golang.org/x/crypto v0.24.0 // indirect - golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect + golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 // indirect golang.org/x/mod v0.18.0 // indirect golang.org/x/net v0.26.0 // indirect golang.org/x/oauth2 v0.20.0 // indirect diff --git a/services/stiprelayer/go.sum b/services/stiprelayer/go.sum index d75e9cad17..c5e33a521a 100644 --- a/services/stiprelayer/go.sum +++ b/services/stiprelayer/go.sum @@ -272,8 +272,8 @@ github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 h1:d28BXYi+wUpz1KBmiF9bWrjEMacUEREV6MBi2ODnrfQ= github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233/go.mod h1:geZJZH3SzKCqnz5VT0q/DyIG/tvu/dZk+VIfXicupJs= github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA= @@ -293,8 +293,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea/go.mod h1:93vsz/8Wt4joVM7c2AVqh+YRMiUSc14yDtF28KmMOgQ= -github.com/deckarep/golang-set/v2 v2.1.0 h1:g47V4Or+DUdzbs8FxCCmgb6VYd+ptPAngjM6dtGktsI= -github.com/deckarep/golang-set/v2 v2.1.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= +github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80NsVHagjM= +github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= 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= @@ -377,8 +377,8 @@ github.com/getsentry/sentry-go v0.12.0/go.mod h1:NSap0JBYWzHND8oMbyi0+XZhUalc1TB github.com/getsentry/sentry-go v0.18.0 h1:MtBW5H9QgdcJabtZcuJG80BMOwaBpkRDZkxRkNC1sN0= github.com/getsentry/sentry-go v0.18.0/go.mod h1:Kgon4Mby+FJ7ZWHFUAZgVaIa8sxHtnRJRLTXZr51aKQ= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/gin-contrib/cors v1.4.0 h1:oJ6gwtUl3lqV0WEIwM/LxPF1QZ5qe2lGWdY2+bz7y0g= -github.com/gin-contrib/cors v1.4.0/go.mod h1:bs9pNM0x/UsmHPBWT2xZz9ROh8xYjYkiURUfmBoMlcs= +github.com/gin-contrib/cors v1.7.2 h1:oLDHxdg8W/XDoN/8zamqk/Drgt4oVZDvaV0YmvVICQw= +github.com/gin-contrib/cors v1.7.2/go.mod h1:SUJVARKgQ40dmrzgXEVxj2m7Ig1v1qIboQkPDTQ9t2E= github.com/gin-contrib/requestid v0.0.6 h1:mGcxTnHQ45F6QU5HQRgQUDsAfHprD3P7g2uZ4cSZo9o= github.com/gin-contrib/requestid v0.0.6/go.mod h1:9i4vKATX/CdggbkY252dPVasgVucy/ggBeELXuQztm4= github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= @@ -1033,8 +1033,9 @@ github.com/tklauser/go-sysconf v0.3.5/go.mod h1:MkWzOF4RMCshBAMXuhXJs64Rte09mITn github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.2.2/go.mod h1:x3qojaO3uyYt0i56EW/VUYs7uBvdl2fkfZFu0T9wgjM= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/tyler-smith/go-bip39 v1.0.1-0.20181017060643-dbb3b84ba2ef/go.mod h1:sJ5fKU0s6JVwZjjcUEX2zFOnvq0ASQ2K9Zr6cf67kNs= @@ -1058,8 +1059,8 @@ github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.1 h1:0iCp8hx3PFhGihubKHxy github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.1/go.mod h1:FXrjpUJDqwqofvXWG3YNxQwhg2876tUpZASj8VvOMAM= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= -github.com/urfave/cli/v2 v2.27.1 h1:8xSQ6szndafKVRmfyeUMxkNUJQMjL1F2zmsZ+qHpfho= -github.com/urfave/cli/v2 v2.27.1/go.mod h1:8qnjx1vcq5s2/wpsqoZFndg2CE5tNFyrTvS6SinrnYQ= +github.com/urfave/cli/v2 v2.27.2 h1:6e0H+AkS+zDckwPCUrZkKX38mRaau4nL2uipkJpbkcI= +github.com/urfave/cli/v2 v2.27.2/go.mod h1:g0+79LmHHATl7DAcHO99smiR/T7uGLw84w8Y42x+4eM= github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= @@ -1092,8 +1093,8 @@ github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17 github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= -github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= +github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 h1:+qGGcbkzsfDQNPPe9UDgpxAWQrhbbBXOYJFQDq/dtJw= +github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913/go.mod h1:4aEEwZQutDLsQv2Deui4iYQ6DWTxR14g6m8Wv88+Xqk= github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0/go.mod h1:/LWChgwKmvncFJFHJ7Gvn9wZArjbV5/FppcK2fKk/tI= github.com/yudai/gojsondiff v1.0.0/go.mod h1:AY32+k2cwILAkW1fbgxQ5mUmMiZFgLIV+FBNExI05xg= github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82/go.mod h1:lgjkn3NuSvDfVJdfcVVdX+jpBxNmX4rDAzaS45IcYoM= @@ -1114,14 +1115,14 @@ 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/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.42.0 h1:l7AmwSVqozWKKXeZHycpdmpycQECRpoGwJ1FW2sWfTo= -go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.42.0/go.mod h1:Ep4uoO2ijR0f49Pr7jAqyTjSCyS1SRL18wwttKfwqXA= +go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0 h1:vkioc4XBfqnZZ7u40wK3Kgbjj9JYkvW6FY1ghmM/Shk= +go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0/go.mod h1:vsyxiwPzPlijgouF1SRZRGqbuHod8fV6+MRCH7ltxDE= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 h1:4Pp6oUg3+e/6M4C0A/3kJ2VYa++dsWVTtGgLVj5xtHg= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0/go.mod h1:Mjt1i1INqiaoZOMGR1RIUJN+i3ChKoFRqzrRQhlkbs0= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= -go.opentelemetry.io/contrib/propagators/b3 v1.21.0 h1:uGdgDPNzwQWRwCXJgw/7h29JaRqcq9B87Iv4hJDKAZw= -go.opentelemetry.io/contrib/propagators/b3 v1.21.0/go.mod h1:D9GQXvVGT2pzyTfp1QBOnD1rzKEWzKjjwu5q2mslCUI= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 h1:9l89oX4ba9kHbBol3Xin3leYJ+252h0zszDtBwyKe2A= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0/go.mod h1:XLZfZboOJWHNKUv7eH0inh0E9VV6eWDFB/9yJyTLPp0= +go.opentelemetry.io/contrib/propagators/b3 v1.27.0 h1:IjgxbomVrV9za6bRi8fWCNXENs0co37SZedQilP2hm0= +go.opentelemetry.io/contrib/propagators/b3 v1.27.0/go.mod h1:Dv9obQz25lCisDvvs4dy28UPh974CxkahRDUPsY7y9E= go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo= go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= @@ -1213,8 +1214,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 h1:LoYXNGAShUG3m/ehNk4iFctuhGX/+R1ZpfJ4/ia80JM= -golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= +golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 h1:yixxcjnhBmY0nkL253HFVIm0JsFHwrHdT3Yh6szTnfY= +golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= @@ -1678,8 +1679,8 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gorm.io/driver/mysql v1.5.6 h1:Ld4mkIickM+EliaQZQx3uOJDJHtrd70MxAUqWqlx3Y8= gorm.io/driver/mysql v1.5.6/go.mod h1:sEtPWMiqiN1N1cMXoXmBbd8C6/l+TESwriotuRRpkDM= -gorm.io/driver/sqlite v1.5.5 h1:7MDMtUZhV065SilG62E0MquljeArQZNfJnjd9i9gx3E= -gorm.io/driver/sqlite v1.5.5/go.mod h1:6NgQ7sQWAIFsPrJJl1lSNSu2TABh0ZZ/zm5fosATavE= +gorm.io/driver/sqlite v1.5.6 h1:fO/X46qn5NUEEOZtnjJRWRzZMe8nqJiQ9E+0hi+hKQE= +gorm.io/driver/sqlite v1.5.6/go.mod h1:U+J8craQU6Fzkcvu8oLeAQmi50TkwPEhHDEjQZXDah4= gorm.io/gorm v1.25.7/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= gorm.io/gorm v1.25.10 h1:dQpO+33KalOA+aFYGlK+EfxcI5MbO7EP2yYygwh9h+s= gorm.io/gorm v1.25.10/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= diff --git a/tools/go.mod b/tools/go.mod index c0744fefb7..1ca0438e44 100644 --- a/tools/go.mod +++ b/tools/go.mod @@ -17,7 +17,7 @@ require ( github.com/stretchr/testify v1.9.0 github.com/synapsecns/sanguine/core v0.0.0-00010101000000-000000000000 github.com/thoas/go-funk v0.9.0 - github.com/urfave/cli/v2 v2.27.1 + github.com/urfave/cli/v2 v2.27.2 golang.org/x/mod v0.18.0 golang.org/x/tools v0.22.0 ) @@ -37,11 +37,11 @@ require ( github.com/cockroachdb/redact v1.1.3 // indirect github.com/consensys/bavard v0.1.13 // indirect github.com/consensys/gnark-crypto v0.12.1 // indirect - github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect github.com/crate-crypto/go-kzg-4844 v0.7.0 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/davecgh/go-spew v1.1.1 // indirect - github.com/deckarep/golang-set/v2 v2.1.0 // indirect + github.com/deckarep/golang-set/v2 v2.6.0 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect github.com/emirpasic/gods v1.18.1 // indirect github.com/ethereum/c-kzg-4844 v0.4.0 // indirect @@ -88,14 +88,14 @@ require ( github.com/supranational/blst v0.3.11 // indirect github.com/tadvi/systray v0.0.0-20190226123456-11a2b8fa57af // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect - github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect + github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 // indirect github.com/yusufpapurcu/wmi v1.2.3 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/crypto v0.24.0 // indirect - golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect + golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 // indirect golang.org/x/net v0.26.0 // indirect golang.org/x/sync v0.7.0 // indirect golang.org/x/sys v0.21.0 // indirect diff --git a/tools/go.sum b/tools/go.sum index 7b22289008..dd8ac51b67 100644 --- a/tools/go.sum +++ b/tools/go.sum @@ -113,8 +113,8 @@ github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc 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/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= -github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 h1:d28BXYi+wUpz1KBmiF9bWrjEMacUEREV6MBi2ODnrfQ= github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233/go.mod h1:geZJZH3SzKCqnz5VT0q/DyIG/tvu/dZk+VIfXicupJs= github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA= @@ -125,8 +125,8 @@ github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxG github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/deckarep/golang-set/v2 v2.1.0 h1:g47V4Or+DUdzbs8FxCCmgb6VYd+ptPAngjM6dtGktsI= -github.com/deckarep/golang-set/v2 v2.1.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= +github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80NsVHagjM= +github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= 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= @@ -481,16 +481,17 @@ github.com/thoas/go-funk v0.9.0 h1:Yzu8aTjTb1sqHZzSZLBt4qaZrFfjNizhA7IfnefjEzo= github.com/thoas/go-funk v0.9.0/go.mod h1:+IWnUfUmFO1+WVYQWQtIJHeRRdaIyyYglZN7xzUPe4Q= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= 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/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= -github.com/urfave/cli/v2 v2.27.1 h1:8xSQ6szndafKVRmfyeUMxkNUJQMjL1F2zmsZ+qHpfho= -github.com/urfave/cli/v2 v2.27.1/go.mod h1:8qnjx1vcq5s2/wpsqoZFndg2CE5tNFyrTvS6SinrnYQ= +github.com/urfave/cli/v2 v2.27.2 h1:6e0H+AkS+zDckwPCUrZkKX38mRaau4nL2uipkJpbkcI= +github.com/urfave/cli/v2 v2.27.2/go.mod h1:g0+79LmHHATl7DAcHO99smiR/T7uGLw84w8Y42x+4eM= github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasthttp v1.6.0/go.mod h1:FstJa9V+Pj9vQ7OJie2qMHdwemEDaDiSdBnvPM1Su9w= @@ -503,8 +504,8 @@ github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2 github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= -github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= +github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 h1:+qGGcbkzsfDQNPPe9UDgpxAWQrhbbBXOYJFQDq/dtJw= +github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913/go.mod h1:4aEEwZQutDLsQv2Deui4iYQ6DWTxR14g6m8Wv88+Xqk= github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0/go.mod h1:/LWChgwKmvncFJFHJ7Gvn9wZArjbV5/FppcK2fKk/tI= github.com/yudai/gojsondiff v1.0.0/go.mod h1:AY32+k2cwILAkW1fbgxQ5mUmMiZFgLIV+FBNExI05xg= github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82/go.mod h1:lgjkn3NuSvDfVJdfcVVdX+jpBxNmX4rDAzaS45IcYoM= @@ -564,8 +565,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 h1:LoYXNGAShUG3m/ehNk4iFctuhGX/+R1ZpfJ4/ia80JM= -golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= +golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 h1:yixxcjnhBmY0nkL253HFVIm0JsFHwrHdT3Yh6szTnfY= +golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= From 7e5c29a94f6a2821cb40b5768dc284ea829e32fc Mon Sep 17 00:00:00 2001 From: trajan0x <83933037+trajan0x@users.noreply.github.com> Date: Thu, 20 Jun 2024 10:30:39 -0400 Subject: [PATCH 07/85] deprecate dependencies (#2754) Co-authored-by: Trajan0x --- .codecov.yml | 4 - README.md | 1 - docker/stiprelayer.Dockerfile | 15 - go.work | 1 - services/stiprelayer/.goreleaser.yml | 87 - services/stiprelayer/Makefile | 1 - services/stiprelayer/README.md | 4 - services/stiprelayer/cmd/cmd.go | 35 - services/stiprelayer/cmd/commands.go | 60 - services/stiprelayer/db/sql/base/base.go | 40 - services/stiprelayer/db/sql/base/doc.go | 2 - services/stiprelayer/db/sql/base/store.go | 91 - services/stiprelayer/db/sql/doc.go | 2 - services/stiprelayer/db/sql/mysql/doc.go | 2 - services/stiprelayer/db/sql/mysql/store.go | 66 - services/stiprelayer/db/sql/sqlite/doc.go | 2 - services/stiprelayer/db/sql/sqlite/sqlite.go | 63 - services/stiprelayer/db/sql/store.go | 37 - services/stiprelayer/db/stip_db.go | 50 - services/stiprelayer/db/stip_db_test.go | 45 - services/stiprelayer/db/suite_test.go | 109 -- services/stiprelayer/go.mod | 301 --- services/stiprelayer/go.sum | 1713 ------------------ services/stiprelayer/main.go | 14 - services/stiprelayer/metadata/metadata.go | 15 - services/stiprelayer/relayer/doc.go | 2 - services/stiprelayer/relayer/dune.go | 135 -- services/stiprelayer/relayer/relayer.go | 530 ------ services/stiprelayer/relayer/relayer_test.go | 99 - services/stiprelayer/relayer/suite_test.go | 126 -- services/stiprelayer/stipapi/server.go | 161 -- services/stiprelayer/stipapi/server_test.go | 57 - services/stiprelayer/stipconfig/config.go | 94 - 33 files changed, 3964 deletions(-) delete mode 100644 docker/stiprelayer.Dockerfile delete mode 100644 services/stiprelayer/.goreleaser.yml delete mode 120000 services/stiprelayer/Makefile delete mode 100644 services/stiprelayer/README.md delete mode 100644 services/stiprelayer/cmd/cmd.go delete mode 100644 services/stiprelayer/cmd/commands.go delete mode 100644 services/stiprelayer/db/sql/base/base.go delete mode 100644 services/stiprelayer/db/sql/base/doc.go delete mode 100644 services/stiprelayer/db/sql/base/store.go delete mode 100644 services/stiprelayer/db/sql/doc.go delete mode 100644 services/stiprelayer/db/sql/mysql/doc.go delete mode 100644 services/stiprelayer/db/sql/mysql/store.go delete mode 100644 services/stiprelayer/db/sql/sqlite/doc.go delete mode 100644 services/stiprelayer/db/sql/sqlite/sqlite.go delete mode 100644 services/stiprelayer/db/sql/store.go delete mode 100644 services/stiprelayer/db/stip_db.go delete mode 100644 services/stiprelayer/db/stip_db_test.go delete mode 100644 services/stiprelayer/db/suite_test.go delete mode 100644 services/stiprelayer/go.mod delete mode 100644 services/stiprelayer/go.sum delete mode 100644 services/stiprelayer/main.go delete mode 100644 services/stiprelayer/metadata/metadata.go delete mode 100644 services/stiprelayer/relayer/doc.go delete mode 100644 services/stiprelayer/relayer/dune.go delete mode 100644 services/stiprelayer/relayer/relayer.go delete mode 100644 services/stiprelayer/relayer/relayer_test.go delete mode 100644 services/stiprelayer/relayer/suite_test.go delete mode 100644 services/stiprelayer/stipapi/server.go delete mode 100644 services/stiprelayer/stipapi/server_test.go delete mode 100644 services/stiprelayer/stipconfig/config.go diff --git a/.codecov.yml b/.codecov.yml index 244d47b884..d6c362e433 100644 --- a/.codecov.yml +++ b/.codecov.yml @@ -57,10 +57,6 @@ flags: paths: - services/scribe/ carryforward: true - stiprelayer: - paths: - - services/stiprelayer/ - carryforward: true solidity-core: paths: - packages/contracts-core/ diff --git a/README.md b/README.md index d1ec28cea0..30a8be3910 100644 --- a/README.md +++ b/README.md @@ -71,7 +71,6 @@ root ├── services │ ├── CCTP Relayer: CCTP message relayer │ ├── explorer: Bridge/messaging explorer ba -│ ├── stiprelayer: STIP relayer for rewards. │ ├── rfq: RFQ contracts │ ├── scribe: Generalized ethereum event logger │ ├── omnirpc: Latency aware RPC Client used across multiple-chains at once diff --git a/docker/stiprelayer.Dockerfile b/docker/stiprelayer.Dockerfile deleted file mode 100644 index fadb1768be..0000000000 --- a/docker/stiprelayer.Dockerfile +++ /dev/null @@ -1,15 +0,0 @@ -FROM gcr.io/distroless/static:latest - -LABEL org.label-schema.description="Stiprelayer Docker Image" -LABEL org.label-schema.name="ghcr.io/synapsecns/sanguine/services/stiprelayer" -LABEL org.label-schema.schema-version="1.0.0" -LABEL org.label-schema.vcs-url="https://github.com/synapsecns/sanguine" -LABEL org.opencontainers.image.source="https://github.com/synapsecns/sanguine" -LABEL org.opencontainers.image.description="Stiprelayer Docker image" - -USER nonroot:nonroot - -WORKDIR /app -COPY --chown=nonroot:nonroot stiprelayer /app/stiprelayer - -ENTRYPOINT ["/app/stiprelayer"] diff --git a/go.work b/go.work index 2327f881ce..51f0b3dfda 100644 --- a/go.work +++ b/go.work @@ -15,6 +15,5 @@ use ( ./services/omnirpc ./services/rfq ./services/scribe - ./services/stiprelayer ./tools ) diff --git a/services/stiprelayer/.goreleaser.yml b/services/stiprelayer/.goreleaser.yml deleted file mode 100644 index e4ae01d244..0000000000 --- a/services/stiprelayer/.goreleaser.yml +++ /dev/null @@ -1,87 +0,0 @@ -project_name: stiprelayer - -monorepo: - tag_prefix: services/stiprelayer/ - dir: services/stiprelayer/ - -# for now, this is a library release -builds: - # Linux AMD64 - - id: stiprelayer - binary: stiprelayer - ldflags: - # We need to build a static binary because we are building in a glibc based system and running in a musl container - - -s -w -extldflags "-static" - # required workaround for https://github.com/Shopify/sarama/issues/2206 - # See: https://github.com/golang/go/issues/35067#issuecomment-544805311 because we're statically compiling, - # without forcing netgo, we use the cgo resolver which will not work for .local (a canonical tld in kubernetes) - # the other way to resolve this would be to modify the nsswitch.conf in the container, but that's a bit less clean. - # osusergo was included as a recommendation here: https://github.com/kubernetes/kubernetes/pull/114225#issuecomment-1348920040 - tags: - - netgo - - osusergo - env: - - CC=gcc - - CXX=g++ - main: main.go - goos: - - linux - goarch: - - amd64 - -# add a source archive at release time -source: - enabled: true - -# Archives -archives: - - format: tar.gz - wrap_in_directory: true - format_overrides: - - goos: windows - format: zip - name_template: '{{.ProjectName}}-{{.Version}}_{{.Os}}_{{.Arch}}' - files: - - README.md - -checksum: - name_template: checksums.txt - -# Add a changelog -changelog: - sort: asc - - - -dockers: - # Docker AMD64 - - goos: linux - goarch: amd64 - image_templates: - - 'ghcr.io/synapsecns/sanguine/stiprelayer:latest' - - 'ghcr.io/synapsecns/sanguine/stiprelayer:{{ .FullCommit }}' - - 'ghcr.io/synapsecns/sanguine/stiprelayer:{{ .Tag }}' - build_flag_templates: - - '--label=org.opencontainers.image.created={{.Date}}' - - '--label=org.opencontainers.image.name={{.ProjectName}}' - - '--label=org.opencontainers.image.revision={{.FullCommit}}' - - '--label=org.opencontainers.image.version={{.Version}}' - - '--label=org.opencontainers.image.source={{.GitURL}}' - dockerfile: ../../docker/stiprelayer.Dockerfile - ids: - - stiprelayer - -# track sizes -report_sizes: true - -# modified timestamps -metadata: - # Set the modified timestamp on the metadata files. - # - # Templates: allowed. - mod_timestamp: '{{ .CommitTimestamp }}' - -# produce software bill of lading -sboms: - - artifacts: archive - diff --git a/services/stiprelayer/Makefile b/services/stiprelayer/Makefile deleted file mode 120000 index 15e4536f4b..0000000000 --- a/services/stiprelayer/Makefile +++ /dev/null @@ -1 +0,0 @@ -../../make/go.Makefile \ No newline at end of file diff --git a/services/stiprelayer/README.md b/services/stiprelayer/README.md deleted file mode 100644 index 7e822f3d37..0000000000 --- a/services/stiprelayer/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# STIP Relayer - -[![Go Reference](https://pkg.go.dev/badge/github.com/synapsecns/sanguine/services/stiprelayer.svg)](https://pkg.go.dev/github.com/synapsecns/sanguine/services/stiprelayer) -[![Go Report Card](https://goreportcard.com/badge/github.com/synapsecns/sanguine/services/stiprelayer)](https://goreportcard.com/report/github.com/synapsecns/sanguine/services/stiprelayer) diff --git a/services/stiprelayer/cmd/cmd.go b/services/stiprelayer/cmd/cmd.go deleted file mode 100644 index f390299201..0000000000 --- a/services/stiprelayer/cmd/cmd.go +++ /dev/null @@ -1,35 +0,0 @@ -package cmd - -import ( - "fmt" - - "github.com/synapsecns/sanguine/core/commandline" - "github.com/synapsecns/sanguine/core/config" - "github.com/synapsecns/sanguine/core/metrics" - "github.com/urfave/cli/v2" -) - -// Start starts the command line. -func Start(args []string, buildInfo config.BuildInfo) { - app := cli.NewApp() - app.Name = buildInfo.Name() - app.Description = buildInfo.VersionString() + "Synapse STIP Relayer" - app.Usage = fmt.Sprintf("%s --help", buildInfo.Name()) - app.EnableBashCompletion = true - // TODO: should we really halt boot on because of metrics? - app.Before = func(c *cli.Context) error { - // nolint:wrapcheck - return metrics.Setup(c.Context, buildInfo) - } - - // commands - app.Commands = cli.Commands{runCommand} - shellCommand := commandline.GenerateShellCommand(app.Commands) - app.Commands = append(app.Commands, shellCommand) - app.Action = shellCommand.Action - - err := app.Run(args) - if err != nil { - panic(err) - } -} diff --git a/services/stiprelayer/cmd/commands.go b/services/stiprelayer/cmd/commands.go deleted file mode 100644 index 96493c08ec..0000000000 --- a/services/stiprelayer/cmd/commands.go +++ /dev/null @@ -1,60 +0,0 @@ -// Package cmd provides the command line interface for the stip relayer service. -package cmd - -import ( - "fmt" - - "github.com/synapsecns/sanguine/core/commandline" - "github.com/synapsecns/sanguine/core/dbcommon" - - "github.com/synapsecns/sanguine/core" - "github.com/synapsecns/sanguine/core/metrics" - omniClient "github.com/synapsecns/sanguine/services/omnirpc/client" - "github.com/synapsecns/sanguine/services/stiprelayer/db/sql" - "github.com/synapsecns/sanguine/services/stiprelayer/relayer" - "github.com/synapsecns/sanguine/services/stiprelayer/stipconfig" - "github.com/urfave/cli/v2" -) - -var configFlag = &cli.StringFlag{ - Name: "config", - Usage: "path to the config file", - TakesFile: true, -} - -// runCommand runs the cctp relayer. -var runCommand = &cli.Command{ - Name: "run", - Description: "run the API Server", - Flags: []cli.Flag{configFlag, &commandline.LogLevel}, - Action: func(c *cli.Context) (err error) { - commandline.SetLogLevel(c) - cfg, err := stipconfig.LoadConfig(core.ExpandOrReturnPath(c.String(configFlag.Name))) - if err != nil { - return fmt.Errorf("could not read config file: %w", err) - } - - metricsProvider := metrics.Get() - - dbType, err := dbcommon.DBTypeFromString(cfg.Database.Type) - if err != nil { - return fmt.Errorf("could not get db type: %w", err) - } - store, err := sql.Connect(c.Context, dbType, cfg.Database.DSN, metricsProvider) - if err != nil { - return fmt.Errorf("could not connect to database: %w", err) - } - - omnirpcClient := omniClient.NewOmnirpcClient(cfg.OmniRPCURL, metricsProvider, omniClient.WithCaptureReqRes()) - stipRelayer, err := relayer.NewSTIPRelayer(c.Context, cfg, metricsProvider, omnirpcClient, store) - if err != nil { - return fmt.Errorf("could not create STIP relayer instance: %w", err) - } - - err = stipRelayer.Run(c.Context) - if err != nil { - return fmt.Errorf("could not run STIP relayer: %w", err) - } - return nil - }, -} diff --git a/services/stiprelayer/db/sql/base/base.go b/services/stiprelayer/db/sql/base/base.go deleted file mode 100644 index 1f14ba7d06..0000000000 --- a/services/stiprelayer/db/sql/base/base.go +++ /dev/null @@ -1,40 +0,0 @@ -package base - -import ( - "github.com/synapsecns/sanguine/core/metrics" - submitterDB "github.com/synapsecns/sanguine/ethergo/submitter/db" - "github.com/synapsecns/sanguine/ethergo/submitter/db/txdb" - "github.com/synapsecns/sanguine/services/stiprelayer/db" - "gorm.io/gorm" -) - -// Store is a store that implements an underlying gorm db. -type Store struct { - db *gorm.DB - submitterStore submitterDB.Service -} - -// NewStore creates a new store. -func NewStore(db *gorm.DB, metrics metrics.Handler) *Store { - txDB := txdb.NewTXStore(db, metrics) - return &Store{db: db, submitterStore: txDB} -} - -// DB gets the database object for mutation outside of the lib. -func (s Store) DB() *gorm.DB { - return s.db -} - -// SubmitterDB gets the submitter database object for mutation outside of the lib. -func (s Store) SubmitterDB() submitterDB.Service { - return s.submitterStore -} - -// GetAllModels gets all models to migrate. -// see: https://medium.com/@SaifAbid/slice-interfaces-8c78f8b6345d for an explanation of why we can't do this at initialization time -func GetAllModels() (allModels []interface{}) { - allModels = append(txdb.GetAllModels(), &db.STIPTransactions{}) - return allModels -} - -var _ db.STIPDB = &Store{} diff --git a/services/stiprelayer/db/sql/base/doc.go b/services/stiprelayer/db/sql/base/doc.go deleted file mode 100644 index 9b758883a1..0000000000 --- a/services/stiprelayer/db/sql/base/doc.go +++ /dev/null @@ -1,2 +0,0 @@ -// Package base contains the base sql implementation -package base diff --git a/services/stiprelayer/db/sql/base/store.go b/services/stiprelayer/db/sql/base/store.go deleted file mode 100644 index 443c8d7ff0..0000000000 --- a/services/stiprelayer/db/sql/base/store.go +++ /dev/null @@ -1,91 +0,0 @@ -package base - -import ( - "context" - "fmt" - "math/big" - - "github.com/synapsecns/sanguine/services/stiprelayer/db" - "gorm.io/gorm/clause" -) - -// Write some queries here - -// GetSTIPTransactionsNotRebated gets transactions that have not yet been rebated. -func (s *Store) GetSTIPTransactionsNotRebated(ctx context.Context) ([]*db.STIPTransactions, error) { - var stipTransactions []*db.STIPTransactions - - result := s.db.WithContext(ctx).Where("rebated = ?", false).Where("do_not_process = ?", false).Find(&stipTransactions) - if result.Error != nil { - return nil, result.Error - } - return stipTransactions, nil -} - -// GetTotalArbRebated gets the total amount of arb rebated for a given address. -func (s *Store) GetTotalArbRebated(ctx context.Context, address string) (*big.Int, error) { - var stipTransactions []*db.STIPTransactions - - // Fetch all transactions that have been rebated for the given address - result := s.db.WithContext(ctx). - Where("rebated = ?", true). - Where("address = ?", address). - Find(&stipTransactions) - if result.Error != nil { - return nil, result.Error - } - - // Compute the sum of arb rebated across all transactions - totalRebated := big.NewInt(0) - for _, stipTransaction := range stipTransactions { - rebatedAmount, ok := new(big.Int).SetString(stipTransaction.ArbAmountRebated, 10) - if !ok { - return nil, fmt.Errorf("failed to convert arb amount rebated to number") - } - totalRebated.Add(totalRebated, rebatedAmount) - } - return totalRebated, nil -} - -// UpdateSTIPTransactionRebated updates the rebated status of a transaction. -func (s *Store) UpdateSTIPTransactionRebated(ctx context.Context, hash string, nonce uint64, arbTransferAmount string) error { - result := s.db.WithContext(ctx).Model(&db.STIPTransactions{}).Where("hash = ?", hash).Update("rebated", true).Update("nonce", nonce).Update("arb_amount_rebated", arbTransferAmount) - if result.Error != nil { - return result.Error - } - return nil -} - -// UpdateSTIPTransactionDoNotProcess updates the rebated status of a transaction. -func (s *Store) UpdateSTIPTransactionDoNotProcess(ctx context.Context, hash string) error { - result := s.db.WithContext(ctx).Model(&db.STIPTransactions{}).Where("hash = ?", hash).Update("do_not_process", true) - if result.Error != nil { - return result.Error - } - return nil -} - -// InsertNewStipTransactions inserts new transactions into the database. -func (s *Store) InsertNewStipTransactions(ctx context.Context, stipTransactions []db.STIPTransactions) error { - batchSize := 50 // Adjust batch size based on your DB's performance and limitations - - for i := 0; i < len(stipTransactions); i += batchSize { - end := i + batchSize - if end > len(stipTransactions) { - end = len(stipTransactions) - } - batch := stipTransactions[i:end] - - // Using CreateInBatches with ON CONFLICT clause to ignore duplicates based on the hash - tx := s.db.WithContext(ctx).Clauses(clause.OnConflict{ - Columns: []clause.Column{{Name: "hash"}}, // Conflict detection based on the hash column - DoNothing: true, // In case of conflict, do nothing - }).CreateInBatches(batch, len(batch)) - - if tx.Error != nil { - return tx.Error - } - } - - return nil -} diff --git a/services/stiprelayer/db/sql/doc.go b/services/stiprelayer/db/sql/doc.go deleted file mode 100644 index 9c3daf2957..0000000000 --- a/services/stiprelayer/db/sql/doc.go +++ /dev/null @@ -1,2 +0,0 @@ -// Package sql provides a common interface for starting sql-lite databases -package sql diff --git a/services/stiprelayer/db/sql/mysql/doc.go b/services/stiprelayer/db/sql/mysql/doc.go deleted file mode 100644 index a6b8106850..0000000000 --- a/services/stiprelayer/db/sql/mysql/doc.go +++ /dev/null @@ -1,2 +0,0 @@ -// Package mysql contains a mysql db -package mysql diff --git a/services/stiprelayer/db/sql/mysql/store.go b/services/stiprelayer/db/sql/mysql/store.go deleted file mode 100644 index 6ecd45302c..0000000000 --- a/services/stiprelayer/db/sql/mysql/store.go +++ /dev/null @@ -1,66 +0,0 @@ -package mysql - -import ( - "context" - "fmt" - "time" - - "github.com/ipfs/go-log" - common_base "github.com/synapsecns/sanguine/core/dbcommon" - "github.com/synapsecns/sanguine/core/metrics" - "github.com/synapsecns/sanguine/services/stiprelayer/db" - "github.com/synapsecns/sanguine/services/stiprelayer/db/sql/base" - "gorm.io/driver/mysql" - "gorm.io/gorm" - "gorm.io/gorm/schema" -) - -// Logger is the mysql logger. -var logger = log.Logger("stip-mysql") - -// NewMysqlStore creates a new mysql store for a given data store. -func NewMysqlStore(ctx context.Context, dbURL string, handler metrics.Handler) (*Store, error) { - logger.Debug("create mysql store") - - gdb, err := gorm.Open(mysql.Open(dbURL), &gorm.Config{ - Logger: common_base.GetGormLogger(logger), - FullSaveAssociations: true, - NamingStrategy: NamingStrategy, - NowFunc: time.Now, - }) - - if err != nil { - return nil, fmt.Errorf("could not create mysql connection: %w", err) - } - - sqlDB, err := gdb.DB() - if err != nil { - return nil, fmt.Errorf("could not get sql db: %w", err) - } - - // fixes a timeout issue https://stackoverflow.com/a/42146536 - sqlDB.SetMaxIdleConns(MaxIdleConns) - sqlDB.SetConnMaxLifetime(time.Hour) - - handler.AddGormCallbacks(gdb) - - err = gdb.WithContext(ctx).AutoMigrate(base.GetAllModels()...) - if err != nil { - return nil, fmt.Errorf("could not migrate on mysql: %w", err) - } - - return &Store{base.NewStore(gdb, handler)}, nil -} - -// Store is the mysql store. It extends the bsae store for mysql queries. -type Store struct { - *base.Store -} - -// MaxIdleConns is exported here for testing. Tests execute too slowly with a reconnect each time. -var MaxIdleConns = 10 - -// NamingStrategy is for table prefixes. -var NamingStrategy = schema.NamingStrategy{} - -var _ db.STIPDB = &Store{} diff --git a/services/stiprelayer/db/sql/sqlite/doc.go b/services/stiprelayer/db/sql/sqlite/doc.go deleted file mode 100644 index d30fb340b9..0000000000 --- a/services/stiprelayer/db/sql/sqlite/doc.go +++ /dev/null @@ -1,2 +0,0 @@ -// Package sqlite implements the sqlite package -package sqlite diff --git a/services/stiprelayer/db/sql/sqlite/sqlite.go b/services/stiprelayer/db/sql/sqlite/sqlite.go deleted file mode 100644 index 8b5f15ef90..0000000000 --- a/services/stiprelayer/db/sql/sqlite/sqlite.go +++ /dev/null @@ -1,63 +0,0 @@ -package sqlite - -import ( - "context" - "fmt" - "os" - - "github.com/synapsecns/sanguine/services/stiprelayer/db/sql/base" - - "github.com/ipfs/go-log" - common_base "github.com/synapsecns/sanguine/core/dbcommon" - "github.com/synapsecns/sanguine/core/metrics" - "github.com/synapsecns/sanguine/services/stiprelayer/db" - "gorm.io/driver/sqlite" - "gorm.io/gorm" -) - -// Store is the sqlite store. It extends the base store for sqlite specific queries. -type Store struct { - *base.Store -} - -var logger = log.Logger("stip-sqlite") - -// NewSqliteStore creates a new sqlite data store. -func NewSqliteStore(parentCtx context.Context, dbPath string, handler metrics.Handler, skipMigrations bool) (_ *Store, err error) { - logger.Debugf("creating sqlite store at %s", dbPath) - - ctx, span := handler.Tracer().Start(parentCtx, "start-sqlite") - defer func() { - metrics.EndSpanWithErr(span, err) - }() - - // create the directory to the store if it doesn't exist - err = os.MkdirAll(dbPath, os.ModePerm) - if err != nil { - return nil, fmt.Errorf("could not create sqlite store") - } - - logger.Warnf("stip database is at %s/stip.db", dbPath) - - gdb, err := gorm.Open(sqlite.Open(fmt.Sprintf("%s/%s", dbPath, "stip.db")), &gorm.Config{ - DisableForeignKeyConstraintWhenMigrating: true, - Logger: common_base.GetGormLogger(logger), - FullSaveAssociations: true, - SkipDefaultTransaction: true, - }) - if err != nil { - return nil, fmt.Errorf("could not connect to db %s: %w", dbPath, err) - } - - handler.AddGormCallbacks(gdb) - - if !skipMigrations { - err = gdb.WithContext(ctx).AutoMigrate(base.GetAllModels()...) - if err != nil { - return nil, fmt.Errorf("could not migrate models: %w", err) - } - } - return &Store{base.NewStore(gdb, handler)}, nil -} - -var _ db.STIPDB = &Store{} diff --git a/services/stiprelayer/db/sql/store.go b/services/stiprelayer/db/sql/store.go deleted file mode 100644 index e57243d318..0000000000 --- a/services/stiprelayer/db/sql/store.go +++ /dev/null @@ -1,37 +0,0 @@ -package sql - -import ( - "context" - "errors" - "fmt" - - "github.com/synapsecns/sanguine/core/dbcommon" - "github.com/synapsecns/sanguine/core/metrics" - "github.com/synapsecns/sanguine/services/stiprelayer/db" - "github.com/synapsecns/sanguine/services/stiprelayer/db/sql/mysql" - "github.com/synapsecns/sanguine/services/stiprelayer/db/sql/sqlite" -) - -// Connect connects to the database. -func Connect(ctx context.Context, dbType dbcommon.DBType, path string, metrics metrics.Handler) (db.STIPDB, error) { - switch dbType { - case dbcommon.Mysql: - store, err := mysql.NewMysqlStore(ctx, path, metrics) - if err != nil { - return nil, fmt.Errorf("could not create mysql store: %w", err) - } - - return store, nil - case dbcommon.Sqlite: - store, err := sqlite.NewSqliteStore(ctx, path, metrics, false) - if err != nil { - return nil, fmt.Errorf("could not create sqlite store: %w", err) - } - - return store, nil - case dbcommon.Clickhouse: - return nil, errors.New("driver not supported") - default: - return nil, fmt.Errorf("unsupported driver: %s", dbType) - } -} diff --git a/services/stiprelayer/db/stip_db.go b/services/stiprelayer/db/stip_db.go deleted file mode 100644 index cdd216419c..0000000000 --- a/services/stiprelayer/db/stip_db.go +++ /dev/null @@ -1,50 +0,0 @@ -// Package db provides the database interfaces and types for the STIP Relayer. -package db - -import ( - "context" - "math/big" - "time" - - submitterDB "github.com/synapsecns/sanguine/ethergo/submitter/db" -) - -// STIPTransactions is the model that saves raw Dune response data. -type STIPTransactions struct { - ExecutionID string `gorm:"column:execution_id;index"` - Address string `gorm:"column:address"` - Amount float64 `gorm:"column:amount"` - AmountUSD float64 `gorm:"column:amount_usd"` - ArbPrice float64 `gorm:"column:arb_price"` - BlockTime time.Time `gorm:"column:block_time"` - Direction string `gorm:"column:direction"` - Hash string `gorm:"column:hash;index;primaryKey"` - Module string `gorm:"column:module"` - Token string `gorm:"column:token"` - TokenPrice float64 `gorm:"column:token_price"` - Rebated bool `gorm:"column:rebated"` - Nonce uint64 `gorm:"column:nonce"` - DoNotProcess bool `gorm:"column:do_not_process"` - ArbAmountRebated string `gorm:"column:arb_amount_rebated"` -} - -// STIPDBReader is the interface for reading from the database. -type STIPDBReader interface { - GetSTIPTransactionsNotRebated(ctx context.Context) ([]*STIPTransactions, error) - GetTotalArbRebated(ctx context.Context, address string) (*big.Int, error) -} - -// STIPDBWriter is the interface for writing to the database. -type STIPDBWriter interface { - UpdateSTIPTransactionRebated(ctx context.Context, hash string, nonce uint64, arbAmountRebated string) error - InsertNewStipTransactions(ctx context.Context, stipTransactions []STIPTransactions) error - UpdateSTIPTransactionDoNotProcess(ctx context.Context, hash string) error -} - -// STIPDB is the interface for the database service. -type STIPDB interface { - STIPDBReader - STIPDBWriter - // SubmitterDB returns the submitter database service. - SubmitterDB() submitterDB.Service -} diff --git a/services/stiprelayer/db/stip_db_test.go b/services/stiprelayer/db/stip_db_test.go deleted file mode 100644 index 6dea08357c..0000000000 --- a/services/stiprelayer/db/stip_db_test.go +++ /dev/null @@ -1,45 +0,0 @@ -package db_test - -import ( - "time" - - "github.com/synapsecns/sanguine/services/stiprelayer/db" -) - -func (d *DBSuite) TestGetSTIPTransactionsNotRebated() { - d.RunOnAllDBs(func(testDB db.STIPDB) { - // Arrange: Create and insert a transaction - expectedTransaction := &db.STIPTransactions{ - // Initialize all fields - ExecutionID: "123456", - Address: "0x3f5CE5FBFe3E9af3971dD833D26bA9b5C936f0bE", - Amount: 100.0, - AmountUSD: 200.0, - ArbPrice: 300.0, - BlockTime: time.Now(), - Direction: "inbound", - Hash: "0xabc123", - Module: "module1", - Token: "token1", - TokenPrice: 400.0, - Rebated: false, - Nonce: 1, - } - err := testDB.InsertNewStipTransactions(d.GetTestContext(), []db.STIPTransactions{*expectedTransaction}) - d.Require().NoError(err) - - // Act: Retrieve transactions by DestChainID and DestTokenAddr that have not been rebated - transactions, err := testDB.GetSTIPTransactionsNotRebated(d.GetTestContext()) - d.Require().NoError(err) - - // Assert: Check if the retrieved transactions match the inserted transaction - d.Len(transactions, 1) - d.Equal(expectedTransaction.Address, transactions[0].Address) - d.Equal(expectedTransaction.Hash, transactions[0].Hash) - d.Equal(expectedTransaction.Rebated, transactions[0].Rebated) - }) -} - -func (d *DBSuite) TestUpdateSTIPTransactionRebated() {} - -func (d *DBSuite) TestInsertNewStipTransactions() {} diff --git a/services/stiprelayer/db/suite_test.go b/services/stiprelayer/db/suite_test.go deleted file mode 100644 index 219e63bacb..0000000000 --- a/services/stiprelayer/db/suite_test.go +++ /dev/null @@ -1,109 +0,0 @@ -package db_test - -import ( - dbSQL "database/sql" - "fmt" - "os" - "sync" - "testing" - - "github.com/Flaque/filet" - . "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/suite" - "github.com/synapsecns/sanguine/core" - "github.com/synapsecns/sanguine/core/dbcommon" - "github.com/synapsecns/sanguine/core/metrics" - "github.com/synapsecns/sanguine/core/metrics/localmetrics" - "github.com/synapsecns/sanguine/core/testsuite" - "github.com/synapsecns/sanguine/services/stiprelayer/db" - "github.com/synapsecns/sanguine/services/stiprelayer/db/sql" - "github.com/synapsecns/sanguine/services/stiprelayer/db/sql/mysql" - "github.com/synapsecns/sanguine/services/stiprelayer/metadata" - "gorm.io/gorm/schema" -) - -type DBSuite struct { - *testsuite.TestSuite - dbs []db.STIPDB - metrics metrics.Handler -} - -// NewDBSuite creates a new DBSuite. -func NewDBSuite(tb testing.TB) *DBSuite { - tb.Helper() - return &DBSuite{ - TestSuite: testsuite.NewTestSuite(tb), - dbs: []db.STIPDB{}, - } -} -func (d *DBSuite) SetupSuite() { - d.TestSuite.SetupSuite() - - // don't use metrics on ci for integration tests - isCI := core.GetEnvBool("CI", false) - useMetrics := !isCI - metricsHandler := metrics.Null - - if useMetrics { - localmetrics.SetupTestJaeger(d.GetSuiteContext(), d.T()) - metricsHandler = metrics.Jaeger - } - - var err error - d.metrics, err = metrics.NewByType(d.GetSuiteContext(), metadata.BuildInfo(), metricsHandler) - Nil(d.T(), err) -} - -func (d *DBSuite) SetupTest() { - d.TestSuite.SetupTest() - - sqliteStore, err := sql.Connect(d.GetTestContext(), dbcommon.Sqlite, filet.TmpDir(d.T(), ""), d.metrics) - Nil(d.T(), err) - - d.dbs = []db.STIPDB{sqliteStore} - d.setupMysqlDB() -} - -func (d *DBSuite) setupMysqlDB() { - if os.Getenv(dbcommon.EnableMysqlTestVar) != "true" { - return - } - - mysql.NamingStrategy = schema.NamingStrategy{ - TablePrefix: fmt.Sprintf("stip_%d", d.GetTestID()), - } - - // sets up the conn string to the default database - connString := dbcommon.GetTestConnString() - // sets up the myqsl db - testDB, err := dbSQL.Open("mysql", connString) - d.Require().NoError(err) - // close the db once the connection is don - defer func() { - d.Require().NoError(testDB.Close()) - }() - - mysqlStore, err := mysql.NewMysqlStore(d.GetTestContext(), connString, d.metrics) - d.Require().NoError(err) - - d.dbs = append(d.dbs, mysqlStore) -} - -func (d *DBSuite) RunOnAllDBs(testFunc func(testDB db.STIPDB)) { - d.T().Helper() - - wg := sync.WaitGroup{} - for _, testDB := range d.dbs { - wg.Add(1) - // capture the value - go func(testDB db.STIPDB) { - defer wg.Done() - testFunc(testDB) - }(testDB) - } - wg.Wait() -} - -func TestDBSuite(t *testing.T) { - suite.Run(t, NewDBSuite(t)) -} diff --git a/services/stiprelayer/go.mod b/services/stiprelayer/go.mod deleted file mode 100644 index 716b713d03..0000000000 --- a/services/stiprelayer/go.mod +++ /dev/null @@ -1,301 +0,0 @@ -module github.com/synapsecns/sanguine/services/stiprelayer - -go 1.22 - -toolchain go1.22.4 - -require ( - github.com/Flaque/filet v0.0.0-20201012163910-45f684403088 - github.com/cenkalti/backoff v2.2.1+incompatible - github.com/ethereum/go-ethereum v1.13.8 - github.com/gin-gonic/gin v1.10.0 - github.com/ipfs/go-log v1.0.5 - github.com/jftuga/ellipsis v1.0.0 - github.com/stretchr/testify v1.9.0 - github.com/synapsecns/sanguine/contrib/screener-api v0.0.0-00010101000000-000000000000 - github.com/synapsecns/sanguine/core v0.0.0-00010101000000-000000000000 - github.com/synapsecns/sanguine/ethergo v0.1.0 - github.com/synapsecns/sanguine/services/omnirpc v0.0.0-00010101000000-000000000000 - github.com/synapsecns/sanguine/services/rfq v0.0.28 - github.com/urfave/cli/v2 v2.27.2 - go.opentelemetry.io/otel v1.27.0 - go.opentelemetry.io/otel/trace v1.27.0 - golang.org/x/sync v0.7.0 - golang.org/x/time v0.5.0 - gopkg.in/yaml.v2 v2.4.0 - gorm.io/driver/mysql v1.5.6 - gorm.io/driver/sqlite v1.5.6 - gorm.io/gorm v1.25.10 -) - -require ( - cloud.google.com/go/compute/metadata v0.3.0 // indirect - cloud.google.com/go/iam v1.1.6 // indirect - cloud.google.com/go/kms v1.15.7 // indirect - dario.cat/mergo v1.0.0 // indirect - github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect - github.com/DataDog/zstd v1.5.2 // indirect - github.com/DenrianWeiss/tracely v0.0.0-20220624070317-49cf8afaaf18 // indirect - github.com/ImVexed/fasturl v0.0.0-20230304231329-4e41488060f3 // indirect - github.com/LK4d4/trylock v0.0.0-20191027065348-ff7e133a5c54 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect - github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 // indirect - github.com/ProtonMail/go-crypto v1.0.0 // indirect - github.com/Soft/iter v0.1.0 // indirect - github.com/VictoriaMetrics/fastcache v1.12.1 // indirect - github.com/andybalholm/brotli v1.1.0 // indirect - github.com/aws/aws-sdk-go-v2 v1.21.2 // indirect - github.com/aws/aws-sdk-go-v2/config v1.18.45 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.13.43 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.13 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.43 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.37 // indirect - github.com/aws/aws-sdk-go-v2/internal/ini v1.3.45 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.37 // indirect - github.com/aws/aws-sdk-go-v2/service/kms v1.17.3 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.15.2 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.3 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.23.2 // indirect - github.com/aws/smithy-go v1.15.0 // indirect - github.com/bcicen/jstream v1.0.1 // indirect - github.com/benbjohnson/immutable v0.4.3 // indirect - github.com/beorn7/perks v1.0.1 // indirect - github.com/bits-and-blooms/bitset v1.10.0 // indirect - github.com/brianvoe/gofakeit/v6 v6.27.0 // indirect - github.com/btcsuite/btcd v0.22.1 // indirect - github.com/btcsuite/btcd/btcec/v2 v2.3.0 // indirect - github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 // indirect - github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce // indirect - github.com/buger/jsonparser v1.1.1 // indirect - github.com/bytedance/sonic v1.11.6 // indirect - github.com/bytedance/sonic/loader v0.1.1 // indirect - github.com/c-bata/go-prompt v0.2.6 // indirect - github.com/cenkalti/backoff/v4 v4.3.0 // indirect - github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/cheekybits/genny v1.0.0 // indirect - github.com/cloudflare/circl v1.3.7 // indirect - github.com/cloudwego/base64x v0.1.4 // indirect - github.com/cloudwego/iasm v0.2.0 // indirect - github.com/cockroachdb/errors v1.9.1 // indirect - github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect - github.com/cockroachdb/pebble v0.0.0-20230928194634-aa077af62593 // indirect - github.com/cockroachdb/redact v1.1.3 // indirect - github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect - github.com/consensys/bavard v0.1.13 // indirect - github.com/consensys/gnark-crypto v0.12.1 // indirect - github.com/containerd/continuity v0.4.2 // indirect - github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect - github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 // indirect - github.com/crate-crypto/go-kzg-4844 v0.7.0 // indirect - github.com/cyphar/filepath-securejoin v0.2.4 // indirect - github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/deckarep/golang-set/v2 v2.6.0 // indirect - github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect - github.com/deepmap/oapi-codegen v1.8.2 // indirect - github.com/dgrr/http2 v0.3.5 // indirect - github.com/docker/cli v26.0.1+incompatible // indirect - github.com/docker/docker v26.0.1+incompatible // indirect - github.com/docker/go-connections v0.5.0 // indirect - github.com/docker/go-units v0.5.0 // indirect - github.com/dubonzi/otelresty v1.2.0 // indirect - github.com/emirpasic/gods v1.18.1 // indirect - github.com/ethereum/c-kzg-4844 v0.4.0 // indirect - github.com/fatih/structtag v1.2.0 // indirect - github.com/felixge/httpsnoop v1.0.4 // indirect - github.com/fjl/memsize v0.0.2 // indirect - github.com/flowchartsman/swaggerui v0.0.0-20221017034628-909ed4f3701b // indirect - github.com/fsnotify/fsnotify v1.6.0 // indirect - github.com/gabriel-vasile/mimetype v1.4.3 // indirect - github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect - github.com/gballet/go-verkle v0.1.1-0.20231031103413-a67434b50f46 // indirect - github.com/getsentry/sentry-go v0.18.0 // indirect - github.com/gin-contrib/cors v1.7.2 // indirect - github.com/gin-contrib/requestid v0.0.6 // indirect - github.com/gin-contrib/sse v0.1.0 // indirect - github.com/gin-contrib/zap v0.2.0 // indirect - github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect - github.com/go-git/go-billy/v5 v5.5.0 // indirect - github.com/go-git/go-git/v5 v5.12.0 // indirect - github.com/go-http-utils/headers v0.0.0-20181008091004-fed159eddc2a // indirect - 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-playground/locales v0.14.1 // indirect - github.com/go-playground/universal-translator v0.18.1 // indirect - github.com/go-playground/validator/v10 v10.20.0 // indirect - github.com/go-resty/resty/v2 v2.11.0 // indirect - github.com/go-sql-driver/mysql v1.7.0 // indirect - github.com/goccy/go-json v0.10.2 // indirect - github.com/gofrs/flock v0.8.1 // indirect - github.com/gogo/protobuf v1.3.3 // indirect - github.com/golang-jwt/jwt/v4 v4.5.0 // indirect - github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect - github.com/golang/protobuf v1.5.4 // indirect - github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect - github.com/google/go-cmp v0.6.0 // indirect - github.com/google/s2a-go v0.1.7 // indirect - github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect - github.com/google/uuid v1.6.0 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect - github.com/googleapis/gax-go/v2 v2.12.2 // indirect - github.com/gorilla/websocket v1.5.1 // indirect - github.com/grafana/otel-profiling-go v0.5.1 // indirect - github.com/grafana/pyroscope-go v1.1.1 // indirect - github.com/grafana/pyroscope-go/godeltaprof v0.1.7 // indirect - github.com/graph-gophers/graphql-go v1.3.0 // indirect - github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 // indirect - github.com/hashicorp/errwrap v1.1.0 // indirect - github.com/hashicorp/go-bexpr v0.1.10 // indirect - github.com/hashicorp/go-multierror v1.1.1 // indirect - github.com/hashicorp/golang-lru v1.0.2 // indirect - github.com/hedzr/cmdr v1.10.49 // indirect - github.com/hedzr/log v1.6.3 // indirect - github.com/holiman/billy v0.0.0-20230718173358-1c7e68d277a7 // indirect - github.com/holiman/bloomfilter/v2 v2.0.3 // indirect - github.com/holiman/uint256 v1.2.4 // indirect - github.com/huin/goupnp v1.3.0 // indirect - github.com/iancoleman/orderedmap v0.0.0-20190318233801-ac98e3ecb4b0 // indirect - github.com/imkira/go-interpol v1.1.0 // indirect - github.com/influxdata/influxdb-client-go/v2 v2.5.1 // indirect - github.com/influxdata/influxdb1-client v0.0.0-20220302092344-a9ab5670611c // indirect - github.com/influxdata/line-protocol v0.0.0-20210311194329-9aa0e372d097 // indirect - github.com/integralist/go-findroot v0.0.0-20160518114804-ac90681525dc // indirect - github.com/invopop/jsonschema v0.7.0 // indirect - github.com/ipfs/go-log/v2 v2.5.1 // indirect - github.com/jackpal/go-nat-pmp v1.0.2 // indirect - github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect - github.com/jinzhu/inflection v1.0.0 // indirect - github.com/jinzhu/now v1.1.5 // indirect - github.com/jpillora/backoff v1.0.0 // indirect - github.com/json-iterator/go v1.1.12 // indirect - github.com/kevinburke/ssh_config v1.2.0 // indirect - github.com/klauspost/compress v1.17.8 // indirect - github.com/klauspost/cpuid/v2 v2.2.8 // indirect - github.com/kr/pretty v0.3.1 // indirect - github.com/kr/text v0.2.0 // indirect - github.com/leodido/go-urn v1.4.0 // indirect - github.com/libp2p/go-libp2p v0.33.0 // indirect - github.com/lmittmann/w3 v0.10.0 // indirect - github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.20 // indirect - github.com/mattn/go-runewidth v0.0.13 // indirect - github.com/mattn/go-sqlite3 v2.0.3+incompatible // indirect - github.com/mattn/go-tty v0.0.3 // indirect - github.com/miguelmota/go-ethereum-hdwallet v0.1.1 // indirect - github.com/mitchellh/go-homedir v1.1.0 // indirect - github.com/mitchellh/mapstructure v1.5.0 // indirect - github.com/mitchellh/pointerstructure v1.2.0 // indirect - github.com/mmcloughlin/addchain v0.4.0 // indirect - github.com/moby/docker-image-spec v1.3.1 // 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/olekukonko/tablewriter v0.0.5 // indirect - github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect - github.com/opencontainers/runc v1.1.5 // indirect - github.com/opentracing/opentracing-go v1.2.0 // indirect - github.com/ory/dockertest/v3 v3.10.0 // indirect - github.com/pelletier/go-toml/v2 v2.2.2 // indirect - github.com/peterh/liner v1.2.1 // indirect - github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5 // indirect - github.com/pjbgf/sha1cd v0.3.0 // indirect - github.com/pkg/errors v0.9.1 // indirect - github.com/pkg/term v1.2.0-beta.2 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/client_golang v1.19.1 // indirect - github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.53.0 // indirect - github.com/prometheus/procfs v0.15.0 // indirect - github.com/puzpuzpuz/xsync v1.4.3 // indirect - github.com/puzpuzpuz/xsync/v2 v2.5.1 // indirect - github.com/rbretecher/go-postman-collection v0.9.0 // indirect - github.com/rivo/uniseg v0.2.0 // indirect - github.com/rogpeppe/go-internal v1.12.0 // indirect - github.com/rs/cors v1.8.2 // indirect - github.com/rung/go-safecast v1.0.1 // indirect - github.com/russross/blackfriday/v2 v2.1.0 // indirect - github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect - github.com/shibukawa/configdir v0.0.0-20170330084843-e180dbdc8da0 // indirect - github.com/shirou/gopsutil v3.21.11+incompatible // indirect - github.com/sirupsen/logrus v1.9.3 // indirect - github.com/skeema/knownhosts v1.2.2 // indirect - github.com/spf13/afero v1.10.0 // indirect - github.com/status-im/keycard-go v0.2.0 // indirect - github.com/supranational/blst v0.3.11 // indirect - github.com/synapsecns/fasthttp-http2 v1.0.0 // indirect - github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 // indirect - github.com/teivah/onecontext v1.3.0 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.8.0 // indirect - github.com/twitchyliquid64/golang-asm v0.15.1 // indirect - github.com/tyler-smith/go-bip39 v1.1.0 // indirect - github.com/ugorji/go/codec v1.2.12 // indirect - github.com/uptrace/opentelemetry-go-extra/otelgorm v0.3.1 // indirect - github.com/uptrace/opentelemetry-go-extra/otelsql v0.3.1 // indirect - github.com/uptrace/opentelemetry-go-extra/otelutil v0.3.1 // indirect - github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.1 // indirect - github.com/valyala/bytebufferpool v1.0.0 // indirect - github.com/valyala/fasthttp v1.41.0 // indirect - github.com/valyala/fastjson v1.6.4 // indirect - github.com/valyala/fastrand v1.1.0 // indirect - github.com/xanzy/ssh-agent v0.3.3 // indirect - github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect - github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect - github.com/xeipuuv/gojsonschema v1.2.0 // indirect - github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 // indirect - github.com/yusufpapurcu/wmi v1.2.3 // indirect - go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0 // indirect - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 // indirect - go.opentelemetry.io/contrib/propagators/b3 v1.27.0 // indirect - go.opentelemetry.io/otel/exporters/jaeger v1.17.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.27.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.27.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.49.0 // indirect - go.opentelemetry.io/otel/log v0.3.0 // indirect - go.opentelemetry.io/otel/metric v1.27.0 // indirect - go.opentelemetry.io/otel/sdk v1.27.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.27.0 // indirect - go.opentelemetry.io/proto/otlp v1.2.0 // indirect - go.uber.org/multierr v1.11.0 // indirect - go.uber.org/zap v1.27.0 // indirect - golang.org/x/arch v0.8.0 // indirect - golang.org/x/crypto v0.24.0 // indirect - golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 // indirect - golang.org/x/mod v0.18.0 // indirect - golang.org/x/net v0.26.0 // indirect - golang.org/x/oauth2 v0.20.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect - golang.org/x/text v0.16.0 // indirect - golang.org/x/tools v0.22.0 // indirect - google.golang.org/api v0.169.0 // indirect - google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291 // indirect - google.golang.org/grpc v1.64.0 // indirect - google.golang.org/protobuf v1.34.1 // indirect - gopkg.in/hedzr/errors.v3 v3.1.1 // indirect - gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect - gopkg.in/warnings.v0 v0.1.2 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apimachinery v0.26.2 // indirect - k8s.io/klog/v2 v2.90.1 // indirect - k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 // indirect - rsc.io/tmplfunc v0.0.3 // indirect -) - -replace ( - // later versions give erros on uint64 being too high. - github.com/brianvoe/gofakeit/v6 => github.com/brianvoe/gofakeit/v6 v6.9.0 - github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 - github.com/synapsecns/sanguine/contrib/screener-api => ../../contrib/screener-api - github.com/synapsecns/sanguine/core => ../../core - github.com/synapsecns/sanguine/ethergo => ../../ethergo - github.com/synapsecns/sanguine/services/omnirpc => ../omnirpc - github.com/synapsecns/sanguine/services/rfq => ../rfq -) diff --git a/services/stiprelayer/go.sum b/services/stiprelayer/go.sum deleted file mode 100644 index c5e33a521a..0000000000 --- a/services/stiprelayer/go.sum +++ /dev/null @@ -1,1713 +0,0 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.43.0/go.mod h1:BOSR3VbTLkk6FDC/TcffxP4NF/FFBGA5ku+jvKOP7pg= -cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= -cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= -cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= -cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= -cloud.google.com/go v0.51.0/go.mod h1:hWtGJ6gnXH+KgDv+V0zFGDvpi07n3z8ZNj3T1RW0Gcw= -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.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= -cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= -cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= -cloud.google.com/go v0.112.1 h1:uJSeirPke5UNZHIb4SxfZklVSiWWVqW4oXlETwZziwM= -cloud.google.com/go v0.112.1/go.mod h1:+Vbu+Y1UU+I1rjmzeMOb/8RfkKJK2Gyxi1X6jJCZLo4= -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/bigtable v1.2.0/go.mod h1:JcVAOl45lrTmQfLj7T6TxyMzIN/3FGGcFm+2xVAli2o= -cloud.google.com/go/compute/metadata v0.3.0 h1:Tz+eQXMEqDIKRsmY3cHTL6FVaynIjX2QxYC4trgAKZc= -cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= -cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= -cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/iam v1.1.6 h1:bEa06k05IO4f4uJonbB5iAgKTPpABy1ayxaIZV/GHVc= -cloud.google.com/go/iam v1.1.6/go.mod h1:O0zxdPeGBoFdWW3HWmBxJsk0pfvNM/p/qa82rWOGTwI= -cloud.google.com/go/kms v1.15.7 h1:7caV9K3yIxvlQPAcaFffhlT7d1qpxjB1wHBtjWa13SM= -cloud.google.com/go/kms v1.15.7/go.mod h1:ub54lbsa6tDkUwnu4W7Yt1aAIFLnspgh0kPGToDukeI= -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.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= -collectd.org v0.3.0/go.mod h1:A/8DzQBkF6abtvrT2j/AU/4tiBgJWYyh0y/oB/4MlWE= -dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= -dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/AndreasBriese/bbloom v0.0.0-20190306092124-e2d15f34fcf9/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= -github.com/Azure/azure-pipeline-go v0.2.1/go.mod h1:UGSo8XybXnIGZ3epmeBw7Jdz+HiUVpqIlpz/HKHylF4= -github.com/Azure/azure-pipeline-go v0.2.2/go.mod h1:4rQ/NZncSvGqNkkOsNpOU1tgoNuIlp9AfUH5G1tvCHc= -github.com/Azure/azure-storage-blob-go v0.7.0/go.mod h1:f9YQKtsG1nMisotuTPpO0tjNuEjKRYAcJU8/ydDI++4= -github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= -github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= -github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= -github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0= -github.com/Azure/go-autorest/autorest/adal v0.8.0/go.mod h1:Z6vX6WXXuyieHAXwMj0S6HY6e6wcHn37qQMBQlvY3lc= -github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA= -github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+vPmf1Ij9AEBM5FuBIXLmIy0g= -github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= -github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= -github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM= -github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= -github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8= -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/CloudyKit/fastprinter v0.0.0-20200109182630-33d98a066a53/go.mod h1:+3IMCy2vIlbG1XG/0ggNQv0SvxCAIpPM5b1nCz56Xno= -github.com/CloudyKit/jet/v3 v3.0.0/go.mod h1:HKQPgSJmdK8hdoAbKUUWajkHyHo4RaU5rMdUywE7VMo= -github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= -github.com/DataDog/zstd v1.5.2 h1:vUG4lAyuPCXO0TLbXvPv7EB7cNK1QV/luu55UHLrrn8= -github.com/DataDog/zstd v1.5.2/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= -github.com/DenrianWeiss/tracely v0.0.0-20220624070317-49cf8afaaf18 h1:P59U5VxzQPxbTHXmqFidQI+m8WnYVqNZVtqEgypMqv0= -github.com/DenrianWeiss/tracely v0.0.0-20220624070317-49cf8afaaf18/go.mod h1:vpygTLtVT7OKK9uI2O2jGDA4EWN/r57LgFzg9drqGEY= -github.com/Flaque/filet v0.0.0-20201012163910-45f684403088 h1:PnnQln5IGbhLeJOi6hVs+lCeF+B1dRfFKPGXUAez0Ww= -github.com/Flaque/filet v0.0.0-20201012163910-45f684403088/go.mod h1:TK+jB3mBs+8ZMWhU5BqZKnZWJ1MrLo8etNVg51ueTBo= -github.com/ImVexed/fasturl v0.0.0-20230304231329-4e41488060f3 h1:ClzzXMDDuUbWfNNZqGeYq4PnYOlwlOVIvSyNaIy0ykg= -github.com/ImVexed/fasturl v0.0.0-20230304231329-4e41488060f3/go.mod h1:we0YA5CsBbH5+/NUzC/AlMmxaDtWlXeNsqrwXjTzmzA= -github.com/Joker/hpp v1.0.0/go.mod h1:8x5n+M1Hp5hC0g8okX3sR3vFQwynaX/UgSOM9MeBKzY= -github.com/LK4D4/trylock v0.0.0-20191027065348-ff7e133a5c54 h1:sg9CWNOhr58hMGmJ0q7x7jQ/B1RK/GyHNmeaYCJos9M= -github.com/LK4D4/trylock v0.0.0-20191027065348-ff7e133a5c54/go.mod h1:uHbOgfPowb74TKlV4AR5Az2haG6evxzM8Lmj1Xil25E= -github.com/LK4d4/trylock v0.0.0-20191027065348-ff7e133a5c54 h1:mD+/7fgGmTO9w3g8xYfovo7GBSkyjkmQiacVj9VPx+0= -github.com/LK4d4/trylock v0.0.0-20191027065348-ff7e133a5c54/go.mod h1:sAFuaugbNEiH1k50YhFNuD2+Gwga8oetKMT2RSFpglU= -github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= -github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEVMRuU21PR1EtLVZJmdB18Gu3Rw= -github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/ProtonMail/go-crypto v1.0.0 h1:LRuvITjQWX+WIfr930YHG2HNfjR1uOfyf5vE0kC2U78= -github.com/ProtonMail/go-crypto v1.0.0/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= -github.com/Shopify/goreferrer v0.0.0-20181106222321-ec9c9a553398/go.mod h1:a1uqRtAwp2Xwc6WNPJEufxJ7fx3npB4UV/JOLmbu5I0= -github.com/Soft/iter v0.1.0 h1:fEWgwubt0cnnJo3Vd2IzYcaJ5ORI/dJDkaC3loI7Ys8= -github.com/Soft/iter v0.1.0/go.mod h1:8brXuNcweP5AZyF0Yzjvje+IR/6RNFyyLF6DTMiPXRc= -github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= -github.com/VictoriaMetrics/fastcache v1.6.0/go.mod h1:0qHz5QP0GMX4pfmMA/zt5RgfNuXJrTP0zS7DqpHGGTw= -github.com/VictoriaMetrics/fastcache v1.12.1 h1:i0mICQuojGDL3KblA7wUNlY5lOK6a4bwt3uRKnkZU40= -github.com/VictoriaMetrics/fastcache v1.12.1/go.mod h1:tX04vaqcNoQeGLD+ra5pU5sWkuxnzWhEzLwhP9w653o= -github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= -github.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY= -github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -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= -github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= -github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= -github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M= -github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY= -github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= -github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4= -github.com/apache/arrow/go/arrow v0.0.0-20191024131854-af6fa24be0db/go.mod h1:VTxUBvSJ3s3eHAg65PNgrsn5BtqCRPdmyXh6rAfdxN0= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -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/aws/aws-sdk-go v1.43.16 h1:Y7wBby44f+tINqJjw5fLH3vA+gFq4uMITIKqditwM14= -github.com/aws/aws-sdk-go v1.43.16/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= -github.com/aws/aws-sdk-go-v2 v1.2.0/go.mod h1:zEQs02YRBw1DjK0PoJv3ygDYOFTre1ejlJWl8FwAuQo= -github.com/aws/aws-sdk-go-v2 v1.16.5/go.mod h1:Wh7MEsmEApyL5hrWzpDkba4gwAPc5/piwLVLFnCxp48= -github.com/aws/aws-sdk-go-v2 v1.21.2 h1:+LXZ0sgo8quN9UOKXXzAWRT3FWd4NxeXWOZom9pE7GA= -github.com/aws/aws-sdk-go-v2 v1.21.2/go.mod h1:ErQhvNuEMhJjweavOYhxVkn2RUx7kQXVATHrjKtxIpM= -github.com/aws/aws-sdk-go-v2/config v1.1.1/go.mod h1:0XsVy9lBI/BCXm+2Tuvt39YmdHwS5unDQmxZOYe8F5Y= -github.com/aws/aws-sdk-go-v2/config v1.18.45 h1:Aka9bI7n8ysuwPeFdm77nfbyHCAKQ3z9ghB3S/38zes= -github.com/aws/aws-sdk-go-v2/config v1.18.45/go.mod h1:ZwDUgFnQgsazQTnWfeLWk5GjeqTQTL8lMkoE1UXzxdE= -github.com/aws/aws-sdk-go-v2/credentials v1.1.1/go.mod h1:mM2iIjwl7LULWtS6JCACyInboHirisUUdkBPoTHMOUo= -github.com/aws/aws-sdk-go-v2/credentials v1.13.43 h1:LU8vo40zBlo3R7bAvBVy/ku4nxGEyZe9N8MqAeFTzF8= -github.com/aws/aws-sdk-go-v2/credentials v1.13.43/go.mod h1:zWJBz1Yf1ZtX5NGax9ZdNjhhI4rgjfgsyk6vTY1yfVg= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.0.2/go.mod h1:3hGg3PpiEjHnrkrlasTfxFqUsZ2GCk/fMUn4CbKgSkM= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.13 h1:PIktER+hwIG286DqXyvVENjgLTAwGgoeriLDD5C+YlQ= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.13/go.mod h1:f/Ib/qYjhV2/qdsf79H3QP/eRE4AkVyEf6sk7XfZ1tg= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.12/go.mod h1:Afj/U8svX6sJ77Q+FPWMzabJ9QjbwP32YlopgKALUpg= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.43 h1:nFBQlGtkbPzp/NjZLuFxRqmT91rLJkgvsEQs68h962Y= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.43/go.mod h1:auo+PiyLl0n1l8A0e8RIeR8tOzYPfZZH/JNlrJ8igTQ= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.6/go.mod h1:FwpAKI+FBPIELJIdmQzlLtRe8LQSOreMcM2wBsPMvvc= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.37 h1:JRVhO25+r3ar2mKGP7E0LDl8K9/G36gjlqca5iQbaqc= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.37/go.mod h1:Qe+2KtKml+FEsQF/DHmDV+xjtche/hwoF75EG4UlHW8= -github.com/aws/aws-sdk-go-v2/internal/ini v1.3.45 h1:hze8YsjSh8Wl1rYa1CJpRmXP21BvOBuc76YhW0HsuQ4= -github.com/aws/aws-sdk-go-v2/internal/ini v1.3.45/go.mod h1:lD5M20o09/LCuQ2mE62Mb/iSdSlCNuj6H5ci7tW7OsE= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.0.2/go.mod h1:45MfaXZ0cNbeuT0KQ1XJylq8A6+OpVV2E5kvY/Kq+u8= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.37 h1:WWZA/I2K4ptBS1kg0kV1JbBtG/umed0vwHRrmcr9z7k= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.37/go.mod h1:vBmDnwWXWxNPFRMmG2m/3MKOe+xEcMDo1tanpaWCcck= -github.com/aws/aws-sdk-go-v2/service/kms v1.17.3 h1:M9bIvNNpbtvDTlZC5I38Kn2yuinJZ/9L+AM2Qom23zI= -github.com/aws/aws-sdk-go-v2/service/kms v1.17.3/go.mod h1:EKkrWWXwWYf8x3Nrm6Oix3zZP9NRBHqxw5buFGVBHA0= -github.com/aws/aws-sdk-go-v2/service/route53 v1.1.1/go.mod h1:rLiOUrPLW/Er5kRcQ7NkwbjlijluLsrIbu/iyl35RO4= -github.com/aws/aws-sdk-go-v2/service/sso v1.1.1/go.mod h1:SuZJxklHxLAXgLTc1iFXbEWkXs7QRTQpCLGaKIprQW0= -github.com/aws/aws-sdk-go-v2/service/sso v1.15.2 h1:JuPGc7IkOP4AaqcZSIcyqLpFSqBWK32rM9+a1g6u73k= -github.com/aws/aws-sdk-go-v2/service/sso v1.15.2/go.mod h1:gsL4keucRCgW+xA85ALBpRFfdSLH4kHOVSnLMSuBECo= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.3 h1:HFiiRkf1SdaAmV3/BHOFZ9DjFynPHj8G/UIO1lQS+fk= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.3/go.mod h1:a7bHA82fyUXOm+ZSWKU6PIoBxrjSprdLoM8xPYvzYVg= -github.com/aws/aws-sdk-go-v2/service/sts v1.1.1/go.mod h1:Wi0EBZwiz/K44YliU0EKxqTCJGUfYTWXrrBwkq736bM= -github.com/aws/aws-sdk-go-v2/service/sts v1.23.2 h1:0BkLfgeDjfZnZ+MhB3ONb01u9pwFYTCZVhlsSSBvlbU= -github.com/aws/aws-sdk-go-v2/service/sts v1.23.2/go.mod h1:Eows6e1uQEsc4ZaHANmsPRzAKcVDrcmjjWiih2+HUUQ= -github.com/aws/smithy-go v1.1.0/go.mod h1:EzMw8dbp/YJL4A5/sbhGddag+NPT7q084agLbB9LgIw= -github.com/aws/smithy-go v1.11.3/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= -github.com/aws/smithy-go v1.15.0 h1:PS/durmlzvAFpQHDs4wi4sNNP9ExsqZh6IlfdHXgKK8= -github.com/aws/smithy-go v1.15.0/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= -github.com/aymerick/raymond v2.0.3-0.20180322193309-b565731e1464+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g= -github.com/bcicen/jstream v1.0.1 h1:BXY7Cu4rdmc0rhyTVyT3UkxAiX3bnLpKLas9btbH5ck= -github.com/bcicen/jstream v1.0.1/go.mod h1:9ielPxqFry7Y4Tg3j4BfjPocfJ3TbsRtXOAYXYmRuAQ= -github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= -github.com/benbjohnson/immutable v0.4.3 h1:GYHcksoJ9K6HyAUpGxwZURrbTkXA0Dh4otXGqbhdrjA= -github.com/benbjohnson/immutable v0.4.3/go.mod h1:qJIKKSmdqz1tVzNtst1DZzvaqOU1onk1rc03IeM3Owk= -github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= -github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= -github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= -github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bits-and-blooms/bitset v1.10.0 h1:ePXTeiPEazB5+opbv5fr8umg2R/1NlzgDsyepwsSr88= -github.com/bits-and-blooms/bitset v1.10.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= -github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40/go.mod h1:8rLXio+WjiTceGBHIoTvn60HIbs7Hm7bcHjyrSqYB9c= -github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= -github.com/brianvoe/gofakeit/v6 v6.9.0 h1:UCGhPCKLiqBc910TKS7LcOGf74NozftibFCbGIS6GZQ= -github.com/brianvoe/gofakeit/v6 v6.9.0/go.mod h1:palrJUk4Fyw38zIFB/uBZqsgzW5VsNllhHKKwAebzew= -github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= -github.com/btcsuite/btcd v0.21.0-beta/go.mod h1:ZSWyehm27aAuS9bvkATT+Xte3hjHZ+MRgMY/8NJ7K94= -github.com/btcsuite/btcd v0.22.1 h1:CnwP9LM/M9xuRrGSCGeMVs9iv09uMqwsVX7EeIpgV2c= -github.com/btcsuite/btcd v0.22.1/go.mod h1:wqgTSL29+50LRkmOVknEdmt8ZojIzhuWvgu/iptuN7Y= -github.com/btcsuite/btcd/btcec/v2 v2.3.0 h1:S/6K1GEwlEsFzZP4cOOl5mg6PEd/pr0zz7hvXcaxhJ4= -github.com/btcsuite/btcd/btcec/v2 v2.3.0/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04= -github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 h1:q0rUy8C/TYNBQS1+CGKw68tLOFYSNEs0TFnxxnS9+4U= -github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= -github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= -github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= -github.com/btcsuite/btcutil v1.0.2/go.mod h1:j9HUFwoQRsZL3V4n+qG+CUnEGHOarIxfC3Le2Yhbcts= -github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce h1:YtWJF7RHm2pYCvA5t0RPmAaLUhREsKuKd+SLhxFbFeQ= -github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce/go.mod h1:0DVlHczLPewLcPGEIeUEzfOJhqGPQ0mJJRDBtD307+o= -github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= -github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= -github.com/btcsuite/goleveldb v1.0.0/go.mod h1:QiK9vBlgftBg6rWQIj6wFzbPfRjiykIEhBH4obrXJ/I= -github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= -github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= -github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= -github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= -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/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= -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/c-bata/go-prompt v0.2.2/go.mod h1:VzqtzE2ksDBcdln8G7mk2RX9QyGjH+OVqOCSiVIqS34= -github.com/c-bata/go-prompt v0.2.6 h1:POP+nrHE+DfLYx370bedwNhsqmpCUynWPxuHi0C5vZI= -github.com/c-bata/go-prompt v0.2.6/go.mod h1:/LMAke8wD2FsNu9EXNdHxNLbd9MedkPnCdfpU9wwHfY= -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= -github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/cp v0.1.0/go.mod h1:SOGHArjBr4JWaSDEVpWpo/hNg6RoKrls6Oh40hiwW+s= -github.com/cespare/cp v1.1.1 h1:nCb6ZLdB7NRaqsm91JtQTAme2SKJzXVsdPIPkyJr1MU= -github.com/cespare/cp v1.1.1/go.mod h1:SOGHArjBr4JWaSDEVpWpo/hNg6RoKrls6Oh40hiwW+s= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= -github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -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/checkpoint-restore/go-criu/v5 v5.3.0/go.mod h1:E/eQpaFtUKGOOSEBZgmKAcn+zUUwWxqcaKZlF54wK8E= -github.com/cheekybits/genny v1.0.0 h1:uGGa4nei+j20rOSeDeP5Of12XVm7TGUd4dJA9RDitfE= -github.com/cheekybits/genny v1.0.0/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= -github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= -github.com/chzyer/logex v1.2.1 h1:XHDu3E6q+gdHgsdTPH6ImJMIp436vR6MPtH8gP05QzM= -github.com/chzyer/logex v1.2.1/go.mod h1:JLbx6lG2kDbNRFnfkgvh4eRJRPX1QCoOIWomwysCBrQ= -github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= -github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/chzyer/test v1.0.0 h1:p3BQDXSxOhOG0P9z6/hGnII4LGiEPOYBhs8asl/fC04= -github.com/chzyer/test v1.0.0/go.mod h1:2JlltgoNkt4TW/z9V/IzDdFaMTM2JPIi26O1pF38GC8= -github.com/cilium/ebpf v0.7.0/go.mod h1:/oI2+1shJiTGAMgl6/RgJr36Eo1jzrRcAWbcXO2usCA= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= -github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU= -github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA= -github.com/cloudflare/cloudflare-go v0.14.0/go.mod h1:EnwdgGMaFOruiPZRFSgn+TsQ3hQ7C/YWzIGLeu5c304= -github.com/cloudwego/base64x v0.1.4 h1:jwCgWpFanWmN8xoIUHa2rtzmkd5J2plF/dnLS6Xd/0Y= -github.com/cloudwego/base64x v0.1.4/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= -github.com/cloudwego/iasm v0.2.0 h1:1KNIy1I1H9hNNFEEH3DVnI4UujN+1zjpuk6gwHLTssg= -github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY= -github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cockroachdb/datadriven v1.0.2/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= -github.com/cockroachdb/datadriven v1.0.3-0.20230801171734-e384cf455877 h1:1MLK4YpFtIEo3ZtMA5C795Wtv5VuUnrXX7mQG+aHg6o= -github.com/cockroachdb/datadriven v1.0.3-0.20230801171734-e384cf455877/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= -github.com/cockroachdb/errors v1.9.1 h1:yFVvsI0VxmRShfawbt/laCIDy/mtTqqnvoNgiy5bEV8= -github.com/cockroachdb/errors v1.9.1/go.mod h1:2sxOtL2WIc096WSZqZ5h8fa17rdDq9HZOZLBCor4mBk= -github.com/cockroachdb/logtags v0.0.0-20211118104740-dabe8e521a4f/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= -github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE= -github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= -github.com/cockroachdb/pebble v0.0.0-20230928194634-aa077af62593 h1:aPEJyR4rPBvDmeyi+l/FS/VtA00IWvjeFvjen1m1l1A= -github.com/cockroachdb/pebble v0.0.0-20230928194634-aa077af62593/go.mod h1:6hk1eMY/u5t+Cf18q5lFMUA1Rc+Sm5I6Ra1QuPyxXCo= -github.com/cockroachdb/redact v1.1.3 h1:AKZds10rFSIj7qADf0g46UixK8NNLwWTNdCIGS5wfSQ= -github.com/cockroachdb/redact v1.1.3/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/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0/go.mod h1:4Zcjuz89kmFXt9morQgcfYZAYZ5n8WHjt81YYWIwtTM= -github.com/consensys/bavard v0.1.8-0.20210406032232-f3452dc9b572/go.mod h1:Bpd0/3mZuaj6Sj+PqrmIquiOKy397AKGThQPaGzNXAQ= -github.com/consensys/bavard v0.1.13 h1:oLhMLOFGTLdlda/kma4VOJazblc7IM5y5QPd2A/YjhQ= -github.com/consensys/bavard v0.1.13/go.mod h1:9ItSMtA/dXMAiL7BG6bqW2m3NdSEObYWoH223nGHukI= -github.com/consensys/gnark-crypto v0.4.1-0.20210426202927-39ac3d4b3f1f/go.mod h1:815PAHg3wvysy0SyIqanF8gZ0Y1wjk/hrDHD/iT88+Q= -github.com/consensys/gnark-crypto v0.12.1 h1:lHH39WuuFgVHONRl3J0LRBtuYdQTumFSDtJF7HpyG8M= -github.com/consensys/gnark-crypto v0.12.1/go.mod h1:v2Gy7L/4ZRosZ7Ivs+9SfUDr0f5UlG+EM5t7MPHiLuY= -github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U= -github.com/containerd/continuity v0.4.2 h1:v3y/4Yz5jwnvqPKJJ+7Wf93fyWoCB3F5EclWG023MDM= -github.com/containerd/continuity v0.4.2/go.mod h1:F6PTNCKepoxEaXLQp3wDAjygEnImnZ/7o4JzpodfroQ= -github.com/coreos/etcd v3.3.10+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-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= -github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 h1:d28BXYi+wUpz1KBmiF9bWrjEMacUEREV6MBi2ODnrfQ= -github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233/go.mod h1:geZJZH3SzKCqnz5VT0q/DyIG/tvu/dZk+VIfXicupJs= -github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA= -github.com/crate-crypto/go-kzg-4844 v0.7.0/go.mod h1:1kMhvPgI0Ky3yIa+9lFySEBUBXkYxeOi8ZF1sYioxhc= -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/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4= -github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= -github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= -github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= -github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e h1:5jVSh2l/ho6ajWhSPNN84eHEdq3dp0T7+f6r3Tc6hsk= -github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e/go.mod h1:IJgIiGUARc4aOr4bOQ85klmjsShkEEfiRc6q/yBSfo8= -github.com/dave/jennifer v1.2.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg= -github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea/go.mod h1:93vsz/8Wt4joVM7c2AVqh+YRMiUSc14yDtF28KmMOgQ= -github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80NsVHagjM= -github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= -github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= -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/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218= -github.com/deepmap/oapi-codegen v1.8.2 h1:SegyeYGcdi0jLLrpbCMoJxnUUn8GBXHsvr4rbzjuhfU= -github.com/deepmap/oapi-codegen v1.8.2/go.mod h1:YLgSKSDv/bZQB7N4ws6luhozi3cEdRktEqrX88CvjIw= -github.com/dgraph-io/badger v1.6.0/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6psNgSztDR4= -github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgrr/http2 v0.3.5 h1:R54Afxa+yX21j64nbh3+qcj8vhvfuCows0NCxk83c54= -github.com/dgrr/http2 v0.3.5/go.mod h1:ZYb0czp1g5/p7q01JWWKA6qkERz8SScP8KL62ugeqes= -github.com/dgryski/go-bitstream v0.0.0-20180413035011-3522498ce2c8/go.mod h1:VMaSuZ+SZcx/wljOQKvp5srsbCiKDEb6K2wC4+PiBmQ= -github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/dlclark/regexp2 v1.2.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= -github.com/docker/cli v26.0.1+incompatible h1:eZDuplk2jYqgUkNLDYwTBxqmY9cM3yHnmN6OIUEjL3U= -github.com/docker/cli v26.0.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= -github.com/docker/docker v1.4.2-0.20180625184442-8e610b2b55bf/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v26.0.1+incompatible h1:t39Hm6lpXuXtgkF0dm1t9a5HkbUfdGy6XbWexmGr+hA= -github.com/docker/docker v26.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= -github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= -github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= -github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/dop251/goja v0.0.0-20200721192441-a695b0cdd498/go.mod h1:Mw6PkjjMXWbTj+nnj4s3QPXq1jaT0s5pC0iFD4+BOAA= -github.com/dubonzi/otelresty v1.2.0 h1:tLWW1J0paY4Fugh5cD3qhMFHNWgM5LSXEfPCW03jyi0= -github.com/dubonzi/otelresty v1.2.0/go.mod h1:oMTNjqB31Fh8nFEWqrk+4diB4YwSmEy3zpBzxGHeLXA= -github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/dvyukov/go-fuzz v0.0.0-20200318091601-be3528f3a813/go.mod h1:11Gm+ccJnvAhCNLlf5+cS9KjtbaD5I5zaZpFMsTHWTw= -github.com/eclipse/paho.mqtt.golang v1.2.0/go.mod h1:H9keYFcgq3Qr5OUJm/JZI/i6U7joQ8SYLhZwfeOo6Ts= -github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= -github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385/go.mod h1:0vRUJqYpeSZifjYj7uP3BG/gKcuzL9xWVV/Y+cK33KM= -github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a h1:mATvB/9r/3gvcejNsXKSkQ6lcIaNec2nyfOdlTBR2lU= -github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a/go.mod h1:Ro8st/ElPeALwNFlcTpWmkr6IoMFfkjXAvTHpevnDsM= -github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= -github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= -github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/etcd-io/bbolt v1.3.3/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw= -github.com/ethereum/c-kzg-4844 v0.4.0 h1:3MS1s4JtA868KpJxroZoepdV0ZKBp3u/O5HcZ7R3nlY= -github.com/ethereum/c-kzg-4844 v0.4.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0= -github.com/ethereum/go-ethereum v1.10.4/go.mod h1:nEE0TP5MtxGzOMd7egIrbPJMQBnhVU3ELNxhBglIzhg= -github.com/ethereum/go-ethereum v1.13.8 h1:1od+thJel3tM52ZUNQwvpYOeRHlbkVFZ5S8fhi0Lgsg= -github.com/ethereum/go-ethereum v1.13.8/go.mod h1:sc48XYQxCzH3fG9BcrXCOOgQk2JfZzNAmIKnceogzsA= -github.com/fasthttp-contrib/websocket v0.0.0-20160511215533-1f3b11f56072/go.mod h1:duJ4Jxv5lDcvg4QuQr0oowTf7dz4/CR8NtyCooz9HL8= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= -github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= -github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4= -github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94= -github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= -github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0= -github.com/fjl/memsize v0.0.2 h1:27txuSD9or+NZlnOWdKUxeBzTAUkWCVh+4Gf2dWFOzA= -github.com/fjl/memsize v0.0.2/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0= -github.com/flowchartsman/swaggerui v0.0.0-20221017034628-909ed4f3701b h1:oy54yVy300Db264NfQCJubZHpJOl+SoT6udALQdFbSI= -github.com/flowchartsman/swaggerui v0.0.0-20221017034628-909ed4f3701b/go.mod h1:/RJwPD5L4xWgCbqQ1L5cB12ndgfKKT54n9cZFf+8pus= -github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= -github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= -github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= -github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= -github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= -github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= -github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= -github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww= -github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 h1:f6D9Hr8xV8uYKlyuj8XIruxlh9WjVjdh1gIicAS7ays= -github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww= -github.com/gballet/go-verkle v0.1.1-0.20231031103413-a67434b50f46 h1:BAIP2GihuqhwdILrV+7GJel5lyPV3u1+PgzrWLc0TkE= -github.com/gballet/go-verkle v0.1.1-0.20231031103413-a67434b50f46/go.mod h1:QNpY22eby74jVhqH4WhDLDwxc/vqsern6pW+u2kbkpc= -github.com/getkin/kin-openapi v0.61.0/go.mod h1:7Yn5whZr5kJi6t+kShccXS8ae1APpYTW6yheSwk8Yi4= -github.com/getsentry/sentry-go v0.12.0/go.mod h1:NSap0JBYWzHND8oMbyi0+XZhUalc1TBdRL1M71JZW2c= -github.com/getsentry/sentry-go v0.18.0 h1:MtBW5H9QgdcJabtZcuJG80BMOwaBpkRDZkxRkNC1sN0= -github.com/getsentry/sentry-go v0.18.0/go.mod h1:Kgon4Mby+FJ7ZWHFUAZgVaIa8sxHtnRJRLTXZr51aKQ= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/gin-contrib/cors v1.7.2 h1:oLDHxdg8W/XDoN/8zamqk/Drgt4oVZDvaV0YmvVICQw= -github.com/gin-contrib/cors v1.7.2/go.mod h1:SUJVARKgQ40dmrzgXEVxj2m7Ig1v1qIboQkPDTQ9t2E= -github.com/gin-contrib/requestid v0.0.6 h1:mGcxTnHQ45F6QU5HQRgQUDsAfHprD3P7g2uZ4cSZo9o= -github.com/gin-contrib/requestid v0.0.6/go.mod h1:9i4vKATX/CdggbkY252dPVasgVucy/ggBeELXuQztm4= -github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= -github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= -github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= -github.com/gin-contrib/zap v0.2.0 h1:HLvt3rZXyC8XC+s2lHzMFow3UDqiEbfrBWJyHHS6L8A= -github.com/gin-contrib/zap v0.2.0/go.mod h1:eqfbe9ZmI+GgTZF6nRiC2ZwDeM4DK1Viwc8OxTCphh0= -github.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/3rZdM= -github.com/gin-gonic/gin v1.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk= -github.com/gin-gonic/gin v1.10.0 h1:nTuyha1TYqgedzytsKYqna+DfLos46nTv2ygFy86HFU= -github.com/gin-gonic/gin v1.10.0/go.mod h1:4PMNQiOhvDRa013RKVbsiNwoyezlm2rm0uX/T7kzp5Y= -github.com/gliderlabs/ssh v0.3.7 h1:iV3Bqi942d9huXnzEF2Mt+CY9gLu8DNM4Obd+8bODRE= -github.com/gliderlabs/ssh v0.3.7/go.mod h1:zpHEXBstFnQYtGnB8k8kQLol82umzn/2/snG7alWVD8= -github.com/glycerine/go-unsnap-stream v0.0.0-20180323001048-9f0cb55181dd/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE= -github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24= -github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= -github.com/go-chi/chi/v5 v5.0.0/go.mod h1:BBug9lr0cqtdAhsu6R4AAdvufI0/XBzAQSsUqJpoZOs= -github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= -github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= -github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= -github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI= -github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic= -github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU= -github.com/go-git/go-billy/v5 v5.5.0/go.mod h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgFRpCtpDCKow= -github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMje31YglSBqCdIqdhKBW8lokaMrL3uTkpGYlE2OOT4= -github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399/go.mod h1:1OCfN199q1Jm3HZlxleg+Dw/mwps2Wbk9frAWm+4FII= -github.com/go-git/go-git/v5 v5.12.0 h1:7Md+ndsjrzZxbddRDZjF14qK+NN56sy6wkqaVrjZtys= -github.com/go-git/go-git/v5 v5.12.0/go.mod h1:FTM9VKtnI2m65hNI/TenDDDnUf2Q9FHnXYjuz9i5OEY= -github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-http-utils/headers v0.0.0-20181008091004-fed159eddc2a h1:v6zMvHuY9yue4+QkG/HQ/W67wvtQmWJ4SDo9aK/GIno= -github.com/go-http-utils/headers v0.0.0-20181008091004-fed159eddc2a/go.mod h1:I79BieaU4fxrw4LMXby6q5OS9XnoR9UIKLOzDFjUmuw= -github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= -github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -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-martini/martini v0.0.0-20170121215854-22fa46961aab/go.mod h1:/P9AEU963A2AYjv4d1V5eVL1CQbEJq6aCNHDDjibzu8= -github.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8= -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/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -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= -github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs= -github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= -github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= -github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA= -github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= -github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.10.0/go.mod h1:74x4gJWsvQexRdW8Pn3dXSGrTK4nAUsbPlLADvpJkos= -github.com/go-playground/validator/v10 v10.20.0 h1:K9ISHbSaI0lyB2eWMPJo+kOS/FBExVwjEviJTixqxL8= -github.com/go-playground/validator/v10 v10.20.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= -github.com/go-resty/resty/v2 v2.11.0 h1:i7jMfNOJYMp69lq7qozJP+bjgzfAzeOhuGlyDrqxT/8= -github.com/go-resty/resty/v2 v2.11.0/go.mod h1:iiP/OpA0CkcL3IGt1O0+/SIItFUbkkyw5BGXiVdTu+A= -github.com/go-sourcemap/sourcemap v2.1.2+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= -github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= -github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc= -github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= -github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= -github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= -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= -github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/godbus/dbus/v5 v5.0.6/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 v3.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= -github.com/gofrs/uuid v4.2.0+incompatible h1:yyYWMnhkhrKwwr8gAOcOCYxOOscHgDS9yZgBrnJfGa0= -github.com/gofrs/uuid v4.2.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/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= -github.com/gogo/status v1.1.0/go.mod h1:BFv9nrluPLmrS0EmGVvLaPNmRosr9KapBYd5/hpY1WM= -github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= -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/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= -github.com/golang/geo v0.0.0-20190916061304-5b978397cfec/go.mod h1:QZ0nwyI2jOfgRAoBvP+ab5aRr7c9x7lhGEJrKvBwjWI= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= -github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -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/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -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= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= -github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= -github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= -github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golangci/lint-1 v0.0.0-20181222135242-d2cdd8c08219/go.mod h1:/X8TswGSh1pIozq4ZwCfxS0WA5JGXguxk94ar/4c87Y= -github.com/gomodule/redigo v1.7.1-0.20190724094224-574c33c3df38/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= -github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/flatbuffers v1.11.0/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -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.8/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-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= -github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/gofuzz v1.1.1-0.20200604201612-c04b05f3adfa/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -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/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -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-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -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.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.1.5/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= -github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= -github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= -github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gax-go/v2 v2.12.2 h1:mhN09QQW1jEWeMF74zGR81R30z4VJzjZsfkUhuHF+DA= -github.com/googleapis/gax-go/v2 v2.12.2/go.mod h1:61M8vcyyXR2kqKFxKrfA22jaA8JGF7Dc8App1U3H6jc= -github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -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/otel-profiling-go v0.5.1 h1:stVPKAFZSa7eGiqbYuG25VcqYksR6iWvF3YH66t4qL8= -github.com/grafana/otel-profiling-go v0.5.1/go.mod h1:ftN/t5A/4gQI19/8MoWurBEtC6gFw8Dns1sJZ9W4Tls= -github.com/grafana/pyroscope-go v1.1.1 h1:PQoUU9oWtO3ve/fgIiklYuGilvsm8qaGhlY4Vw6MAcQ= -github.com/grafana/pyroscope-go v1.1.1/go.mod h1:Mw26jU7jsL/KStNSGGuuVYdUq7Qghem5P8aXYXSXG88= -github.com/grafana/pyroscope-go/godeltaprof v0.1.7 h1:C11j63y7gymiW8VugJ9ZW0pWfxTZugdSJyC48olk5KY= -github.com/grafana/pyroscope-go/godeltaprof v0.1.7/go.mod h1:Tk376Nbldo4Cha9RgiU7ik8WKFkNpfds98aUzS8omLE= -github.com/graph-gophers/graphql-go v0.0.0-20201113091052-beb923fada29/go.mod h1:9CQHMSxwO4MprSdzoIEobiHpoLtHm77vfxsvsIN5Vuc= -github.com/graph-gophers/graphql-go v1.3.0 h1:Eb9x/q6MFpCLz7jBCiP/WTxjSDrYLR1QY41SORZyNJ0= -github.com/graph-gophers/graphql-go v1.3.0/go.mod h1:9CQHMSxwO4MprSdzoIEobiHpoLtHm77vfxsvsIN5Vuc= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 h1:bkypFPDjIYGfCYD5mRBvpqxfYX1YCS1PXdKYWi8FsN0= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0/go.mod h1:P+Lt/0by1T8bfcF3z737NnSbmxQAppXMRziHUxPOC8k= -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-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-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -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= -github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= -github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iPY6p1c= -github.com/hashicorp/golang-lru v1.0.2/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/hedzr/cmdr v1.10.49 h1:AQikWGtJOv1Ty5gnNpW/SI7VKSoUEbuy9wSPSDhUNHQ= -github.com/hedzr/cmdr v1.10.49/go.mod h1:VO8NQdh+zZlRrEcc+StjeEZ6/I3uuZ3v0mYDDRqNVT8= -github.com/hedzr/cmdr-base v0.1.3 h1:pMhVLP+Uxdhuf6BeasAC2OivMXJ3vxJHvFJHPQscQPU= -github.com/hedzr/cmdr-base v0.1.3/go.mod h1:c3vMkHa5PME2P2W8lE3T9+JX12tq9tmCUt6lXbmt5kI= -github.com/hedzr/log v1.6.3 h1:qCdnDUpeQ+E9vmfDKk+IHjA0QipnWNds2mr4hh6iGxA= -github.com/hedzr/log v1.6.3/go.mod h1:goMXeVWLSKZYxNs+10viGe2O1fbzBNnnLpdx0MoCRkA= -github.com/hedzr/logex v1.5.53 h1:uCTn+8bGHFJRy3UzFBYIhdVq/OPUMqJb0GqhRo1wXwk= -github.com/hedzr/logex v1.5.53/go.mod h1:BLQ7Q6xs2pD0xGi+iMhA8q1PTa44A2uoEtE3/qsLoRg= -github.com/holiman/billy v0.0.0-20230718173358-1c7e68d277a7 h1:3JQNjnMRil1yD0IfZKHF9GxxWKDJGj8I0IqOUol//sw= -github.com/holiman/billy v0.0.0-20230718173358-1c7e68d277a7/go.mod h1:5GuXa7vkL8u9FkFuWdVvfR5ix8hRB7DbOAaYULamFpc= -github.com/holiman/bloomfilter/v2 v2.0.3 h1:73e0e/V0tCydx14a0SCYS/EWCxgwLZ18CZcZKVu0fao= -github.com/holiman/bloomfilter/v2 v2.0.3/go.mod h1:zpoh+gs7qcpqrHr3dB55AMiJwo0iURXE7ZOP9L9hSkA= -github.com/holiman/uint256 v1.2.0/go.mod h1:y4ga/t+u+Xwd7CpDgZESaRcWy0I7XMlTMA25ApIH5Jw= -github.com/holiman/uint256 v1.2.4 h1:jUc4Nk8fm9jZabQuqr2JzednajVmBpC+oiTiXZJEApU= -github.com/holiman/uint256 v1.2.4/go.mod h1:EOMSn4q6Nyt9P6efbI3bueV4e1b3dGlUCXeiRV4ng7E= -github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/huin/goupnp v1.0.1-0.20210310174557-0ca763054c88/go.mod h1:nNs7wvRfN1eKaMknBydLNQU6146XQim8t4h+q90biWo= -github.com/huin/goupnp v1.3.0 h1:UvLUlWDNpoUdYzb2TCn+MuTWtcjXKSza2n6CBdQ0xXc= -github.com/huin/goupnp v1.3.0/go.mod h1:gnGPsThkYa7bFi/KWmEysQRf48l2dvR5bxr2OFckNX8= -github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150/go.mod h1:PpLOETDnJ0o3iZrZfqZzyLl6l7F3c6L1oWn7OICBi6o= -github.com/hydrogen18/memlistener v0.0.0-20200120041712-dcc25e7acd91/go.mod h1:qEIFzExnS6016fRpRfxrExeVn2gbClQA99gQhnIcdhE= -github.com/iancoleman/orderedmap v0.0.0-20190318233801-ac98e3ecb4b0 h1:i462o439ZjprVSFSZLZxcsoAe592sZB1rci2Z8j4wdk= -github.com/iancoleman/orderedmap v0.0.0-20190318233801-ac98e3ecb4b0/go.mod h1:N0Wam8K1arqPXNWjMo21EXnBPOPp36vB07FNRdD2geA= -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/imkira/go-interpol v1.1.0 h1:KIiKr0VSG2CUW1hl1jpiyuzuJeKUUpC8iM1AIE7N1Vk= -github.com/imkira/go-interpol v1.1.0/go.mod h1:z0h2/2T3XF8kyEPpRgJ3kmNv+C43p+I/CoI+jC3w2iA= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/influxdata/flux v0.65.1/go.mod h1:J754/zds0vvpfwuq7Gc2wRdVwEodfpCFM7mYlOw2LqY= -github.com/influxdata/influxdb v1.8.3/go.mod h1:JugdFhsvvI8gadxOI6noqNeeBHvWNTbfYGtiAn+2jhI= -github.com/influxdata/influxdb-client-go/v2 v2.5.1 h1:ytMbX2YeupSsec1Exp3zALTjvfhXkvxcyV6nOXkjG3s= -github.com/influxdata/influxdb-client-go/v2 v2.5.1/go.mod h1:Y/0W1+TZir7ypoQZYd2IrnVOKB3Tq6oegAQeSVN/+EU= -github.com/influxdata/influxdb1-client v0.0.0-20220302092344-a9ab5670611c h1:qSHzRbhzK8RdXOsAdfDgO49TtqC1oZ+acxPrkfTxcCs= -github.com/influxdata/influxdb1-client v0.0.0-20220302092344-a9ab5670611c/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= -github.com/influxdata/influxql v1.1.1-0.20200828144457-65d3ef77d385/go.mod h1:gHp9y86a/pxhjJ+zMjNXiQAA197Xk9wLxaz+fGG+kWk= -github.com/influxdata/line-protocol v0.0.0-20180522152040-32c6aa80de5e/go.mod h1:4kt73NQhadE3daL3WhR5EJ/J2ocX0PZzwxQ0gXJ7oFE= -github.com/influxdata/line-protocol v0.0.0-20200327222509-2487e7298839/go.mod h1:xaLFMmpvUxqXtVkUJfg9QmT88cDaCJ3ZKgdZ78oO8Qo= -github.com/influxdata/line-protocol v0.0.0-20210311194329-9aa0e372d097 h1:vilfsDSy7TDxedi9gyBkMvAirat/oRcL0lFdJBf6tdM= -github.com/influxdata/line-protocol v0.0.0-20210311194329-9aa0e372d097/go.mod h1:xaLFMmpvUxqXtVkUJfg9QmT88cDaCJ3ZKgdZ78oO8Qo= -github.com/influxdata/promql/v2 v2.12.0/go.mod h1:fxOPu+DY0bqCTCECchSRtWfc+0X19ybifQhZoQNF5D8= -github.com/influxdata/roaring v0.4.13-0.20180809181101-fc520f41fab6/go.mod h1:bSgUQ7q5ZLSO+bKBGqJiCBGAl+9DxyW63zLTujjUlOE= -github.com/influxdata/tdigest v0.0.0-20181121200506-bf2b5ad3c0a9/go.mod h1:Js0mqiSBE6Ffsg94weZZ2c+v/ciT8QRHFOap7EKDrR0= -github.com/influxdata/usage-client v0.0.0-20160829180054-6d3895376368/go.mod h1:Wbbw6tYNvwa5dlB6304Sd+82Z3f7PmVZHVKU637d4po= -github.com/integralist/go-findroot v0.0.0-20160518114804-ac90681525dc h1:4IZpk3M4m6ypx0IlRoEyEyY1gAdicWLMQ0NcG/gBnnA= -github.com/integralist/go-findroot v0.0.0-20160518114804-ac90681525dc/go.mod h1:UlaC6ndby46IJz9m/03cZPKKkR9ykeIVBBDE3UDBdJk= -github.com/invopop/jsonschema v0.7.0 h1:2vgQcBz1n256N+FpX3Jq7Y17AjYt46Ig3zIWyy770So= -github.com/invopop/jsonschema v0.7.0/go.mod h1:O9uiLokuu0+MGFlyiaqtWxwqJm41/+8Nj0lD7A36YH0= -github.com/ipfs/go-cid v0.4.1 h1:A/T3qGvxi4kpKWWcPC/PgbvDA2bjVLO7n4UeVwnbs/s= -github.com/ipfs/go-cid v0.4.1/go.mod h1:uQHwDeX4c6CtyrFwdqyhpNcxVewur1M7l7fNU7LKwZk= -github.com/ipfs/go-log v1.0.5 h1:2dOuUCB1Z7uoczMWgAyDck5JLb72zHzrMnGnCNNbvY8= -github.com/ipfs/go-log v1.0.5/go.mod h1:j0b8ZoR+7+R99LD9jZ6+AJsrzkPbSXbZfGakb5JPtIo= -github.com/ipfs/go-log/v2 v2.1.3/go.mod h1:/8d0SH3Su5Ooc31QlL1WysJhvyOTDCjcCZ9Axpmri6g= -github.com/ipfs/go-log/v2 v2.5.1 h1:1XdUzF7048prq4aBjDQQ4SL5RxftpRGdXhNRwKSAlcY= -github.com/ipfs/go-log/v2 v2.5.1/go.mod h1:prSpmC1Gpllc9UYWxDiZDreBYw7zp4Iqp1kOLU9U5UI= -github.com/iris-contrib/blackfriday v2.0.0+incompatible/go.mod h1:UzZ2bDEoaSGPbkg6SAB4att1aAwTmVIx/5gCVqeyUdI= -github.com/iris-contrib/go.uuid v2.0.0+incompatible/go.mod h1:iz2lgM/1UnEf1kP0L/+fafWORmlnuysV2EMP8MW+qe0= -github.com/iris-contrib/jade v1.1.3/go.mod h1:H/geBymxJhShH5kecoiOCSssPX7QWYH7UaeZTSWddIk= -github.com/iris-contrib/pongo2 v0.0.1/go.mod h1:Ssh+00+3GAZqSQb30AvBRNxBx7rf0GqwkjqxNd0u65g= -github.com/iris-contrib/schema v0.0.1/go.mod h1:urYA3uvUNG1TIIjOSCzHr9/LmbQo8LrOcOqfqxa4hXw= -github.com/jackpal/go-nat-pmp v1.0.2-0.20160603034137-1fa385a6f458/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= -github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= -github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= -github.com/jarcoal/httpmock v1.2.0 h1:gSvTxxFR/MEMfsGrvRbdfpRUMBStovlSRLw0Ep1bwwc= -github.com/jarcoal/httpmock v1.2.0/go.mod h1:oCoTsnAz4+UoOUIf5lJOWV2QQIW5UoeUI6aM2YnWAZk= -github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= -github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= -github.com/jedisct1/go-minisign v0.0.0-20190909160543-45766022959e/go.mod h1:G1CVv03EnqU1wYL2dFwXxW2An0az9JTl/ZsqXQeBlkU= -github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jftuga/ellipsis v1.0.0 h1:ERi1XBFERM2YpadkvM1P9bxQKgOC40Hr6TCKkvLBDtY= -github.com/jftuga/ellipsis v1.0.0/go.mod h1:phJ3vQPi8MPrtRKdo0aESNJdw56f09SLVX0k/FY+jr0= -github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= -github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= -github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= -github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= -github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= -github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= -github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= -github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= -github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= -github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= -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.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/jsternberg/zap-logfmt v1.0.0/go.mod h1:uvPs/4X51zdkcm5jXl5SYoN+4RK21K8mysFmDaM/h+o= -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/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= -github.com/jwilder/encoding v0.0.0-20170811194829-b4e1701a28ef/go.mod h1:Ct9fl0F6iIOGgxJ5npU/IUOhOhqlVrGjyIZc8/MagT0= -github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k= -github.com/karalabe/usb v0.0.0-20190919080040-51dc0efba356/go.mod h1:Od972xHfMJowv7NGVDiWVxk2zxnWgjLlJzE+F4F7AGU= -github.com/kataras/golog v0.0.10/go.mod h1:yJ8YKCmyL+nWjERB90Qwn+bdyBZsaQwU3bTVFgkFIp8= -github.com/kataras/iris/v12 v12.1.8/go.mod h1:LMYy4VlP67TQ3Zgriz8RE2h2kMZV2SgMYbq3UhfoFmE= -github.com/kataras/neffos v0.0.14/go.mod h1:8lqADm8PnbeFfL7CLXh1WHw53dG27MC3pgi2R1rmoTE= -github.com/kataras/pio v0.0.2/go.mod h1:hAoW0t9UmXi4R5Oyq5Z4irTbaTsOemSrDGUtaTl7Dro= -github.com/kataras/sitemap v0.0.5/go.mod h1:KY2eugMKiPwsJgx7+U103YZehfvNGOXURubcGyk0Bz8= -github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4= -github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= -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/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= -github.com/klauspost/compress v1.4.0/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= -github.com/klauspost/compress v1.8.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= -github.com/klauspost/compress v1.9.7/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= -github.com/klauspost/compress v1.15.0/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= -github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= -github.com/klauspost/compress v1.17.3/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM= -github.com/klauspost/compress v1.17.8 h1:YcnTYrq7MikUT7k0Yb5eceMmALQPYBW/Xltxn0NAMnU= -github.com/klauspost/compress v1.17.8/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= -github.com/klauspost/cpuid v0.0.0-20170728055534-ae7887de9fa5/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= -github.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= -github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/klauspost/cpuid/v2 v2.2.8 h1:+StwCXwm9PdpiEkPyzBXIy+M9KUb4ODm0Zarf1kS5BM= -github.com/klauspost/cpuid/v2 v2.2.8/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= -github.com/klauspost/crc32 v0.0.0-20161016154125-cb6bfca970f6/go.mod h1:+ZoRqAPRLkC4NPOvfYeR5KNOrY6TD+/sAC3HXPZgDYg= -github.com/klauspost/pgzip v1.0.2-0.20170402124221-0bf5dcad4ada/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= -github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= -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.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8= -github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= -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= -github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= -github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= -github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= -github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/labstack/echo/v4 v4.2.1/go.mod h1:AA49e0DZ8kk5jTOOCKNuPR6oTnBS0dYiM4FW1e6jwpg= -github.com/labstack/echo/v4 v4.5.0/go.mod h1:czIriw4a0C1dFun+ObrXp7ok03xON0N1awStJ6ArI7Y= -github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k= -github.com/leanovate/gopter v0.2.9 h1:fQjYxZaynp97ozCzfOyOuAGOU4aU/z37zf/tOujFk7c= -github.com/leanovate/gopter v0.2.9/go.mod h1:U2L/78B+KVFIx2VmW6onHJQzXtFb+p5y3y2Sh+Jxxv8= -github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= -github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= -github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= -github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lib/pq v1.10.6 h1:jbk+ZieJ0D7EVGJYpL9QTz7/YW6UHbmdnZWYyK5cdBs= -github.com/lib/pq v1.10.6/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/libp2p/go-libp2p v0.33.0 h1:yTPSr8sJRbfeEYXyeN8VPVSlTlFjtMUwGDRniwaf/xQ= -github.com/libp2p/go-libp2p v0.33.0/go.mod h1:RIJFRQVUBKy82dnW7J5f1homqqv6NcsDJAl3e7CRGfE= -github.com/lmittmann/w3 v0.10.0 h1:AjQJKfcwHSDLr7cnRbS+0Jio9xt/h1JDBAP/jvLWC58= -github.com/lmittmann/w3 v0.10.0/go.mod h1:AydD3eqJiyg7tubFve39JL025kZr8QWO1lemXllK+Sw= -github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/matryer/moq v0.0.0-20190312154309-6cfb0558e1bd/go.mod h1:9ELz6aaclSIGnZBoaSLZ3NAl1VTufbOrXBPvtcy6WiQ= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-colorable v0.1.0/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= -github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= -github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-colorable v0.1.11/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= -github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= -github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= -github.com/mattn/go-ieproxy v0.0.0-20190610004146-91bb50d98149/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc= -github.com/mattn/go-ieproxy v0.0.0-20190702010315-6dee0af9227d/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc= -github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-isatty v0.0.5-0.20180830101745-3fb116b82035/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= -github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= -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.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.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/mattn/go-runewidth v0.0.6/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU= -github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= -github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= -github.com/mattn/go-sqlite3 v2.0.3+incompatible h1:gXHsfypPkaMZrKbD5209QV9jbUTJKjyR5WD3HYQSd+U= -github.com/mattn/go-sqlite3 v2.0.3+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= -github.com/mattn/go-tty v0.0.0-20180907095812-13ff1204f104/go.mod h1:XPvLUNfbS4fJH25nqRHfWLMa1ONC8Amw+mIA639KxkE= -github.com/mattn/go-tty v0.0.3 h1:5OfyWorkyO7xP52Mq7tB36ajHDG5OHrmBGIS/DtakQI= -github.com/mattn/go-tty v0.0.3/go.mod h1:ihxohKRERHTVzN+aSVRwACLCeqIoZAWpoICkkvrWyR0= -github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= -github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/mediocregopher/radix/v3 v3.4.2/go.mod h1:8FL3F6UQRXHXIBSPUs5h0RybMF8i4n7wVopoX3x7Bv8= -github.com/microcosm-cc/bluemonday v1.0.2/go.mod h1:iVP4YcDBq+n/5fb23BhYFvIMq/leAFZyRl6bYmGDlGc= -github.com/miguelmota/go-ethereum-hdwallet v0.1.1 h1:zdXGlHao7idpCBjEGTXThVAtMKs+IxAgivZ75xqkWK0= -github.com/miguelmota/go-ethereum-hdwallet v0.1.1/go.mod h1:f9m9uXokAHA6WNoYOPjj4AqjJS5pquQRiYYj/XSyPYc= -github.com/minio/sha256-simd v1.0.1 h1:6kaan5IFmwTNynnKKpDHe6FWHohJOHhCPchzK49dzMM= -github.com/minio/sha256-simd v1.0.1/go.mod h1:Pz6AKMiUdngCLpeTL/RJY1M9rUuPMYujV5xJjtbRSN8= -github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= -github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= -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/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/sys/mountinfo v0.5.0/go.mod h1:3bMD3Rg+zkqx8MRYPi7Pyb0Ie97QEBmdxbhnCLlSvSU= -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= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -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/moul/http2curl v1.0.0/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOAZ3H0fQ= -github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o= -github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= -github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ= -github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE+eKJXWVjKXM4ck2QobLqTDytGJbLLhJg= -github.com/multiformats/go-base32 v0.1.0 h1:pVx9xoSPqEIQG8o+UbAe7DNi51oej1NtK+aGkbLYxPE= -github.com/multiformats/go-base32 v0.1.0/go.mod h1:Kj3tFY6zNr+ABYMqeUNeGvkIC/UYgtWibDcT0rExnbI= -github.com/multiformats/go-base36 v0.2.0 h1:lFsAbNOGeKtuKozrtBsAkSVhv1p9D0/qedU9rQyccr0= -github.com/multiformats/go-base36 v0.2.0/go.mod h1:qvnKE++v+2MWCfePClUEjE78Z7P2a1UV0xHgWc0hkp4= -github.com/multiformats/go-multiaddr v0.12.2 h1:9G9sTY/wCYajKa9lyfWPmpZAwe6oV+Wb1zcmMS1HG24= -github.com/multiformats/go-multiaddr v0.12.2/go.mod h1:GKyaTYjZRdcUhyOetrxTk9z0cW+jA/YrnqTOvKgi44M= -github.com/multiformats/go-multibase v0.2.0 h1:isdYCVLvksgWlMW9OZRYJEa9pZETFivncJHmHnnd87g= -github.com/multiformats/go-multibase v0.2.0/go.mod h1:bFBZX4lKCA/2lyOFSAoKH5SS6oPyjtnzK/XTFDPkNuk= -github.com/multiformats/go-multicodec v0.9.0 h1:pb/dlPnzee/Sxv/j4PmkDRxCOi3hXTz3IbPKOXWJkmg= -github.com/multiformats/go-multicodec v0.9.0/go.mod h1:L3QTQvMIaVBkXOXXtVmYE+LI16i14xuaojr/H7Ai54k= -github.com/multiformats/go-multihash v0.2.3 h1:7Lyc8XfX/IY2jWb/gI7JP+o7JEq9hOa7BFvVU9RSh+U= -github.com/multiformats/go-multihash v0.2.3/go.mod h1:dXgKXCXjBzdscBLk9JkjINiEsCKRVch90MdaGiKsvSM= -github.com/multiformats/go-varint v0.0.7 h1:sWSGR+f/eu5ABZA2ZpYKBILXTTs9JWpdEM/nEGOHFS8= -github.com/multiformats/go-varint v0.0.7/go.mod h1:r8PUYw/fD/SjBCiKOoDlGF6QawOELpZAu9eioSos/OU= -github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0= -github.com/naoina/toml v0.1.2-0.20170918210437-9fafd6967416/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= -github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= -github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w= -github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= -github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= -github.com/neverlee/keymutex v0.0.0-20171121013845-f593aa834bf9 h1:UfW5pM66x0MWE72ySrpd2Ymrn+b62kNHirozKkY3ojE= -github.com/neverlee/keymutex v0.0.0-20171121013845-f593aa834bf9/go.mod h1:3hf2IoUXDKjCg/EuqSLUB5TY8StGS3haWYJiqzP907c= -github.com/nsmithuk/local-kms v0.0.0-20220503165244-1bbbfed09b08 h1:Jt0FS0td/3yEMxXoiCmwShR+LfzzVd7/MMdZo4121u8= -github.com/nsmithuk/local-kms v0.0.0-20220503165244-1bbbfed09b08/go.mod h1:F0zq7SoYkgpbXrZcXsf+S6nvbRjczBkJrMjwTAYb7e8= -github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= -github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= -github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= -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= -github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= -github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= -github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= -github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= -github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= -github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.30.0 h1:hvMK7xYz4D3HapigLTeGdId/NcfQx1VHMJc60ew99+8= -github.com/onsi/gomega v1.30.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ= -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-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= -github.com/opencontainers/runc v1.1.5 h1:L44KXEpKmfWDcS02aeGm8QNTFXTo2D+8MYGDIJ/GDEs= -github.com/opencontainers/runc v1.1.5/go.mod h1:1J5XiS+vdZ3wCyZybsuxXZWGrgSr8fFJHLXuG2PsnNg= -github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/selinux v1.10.0/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI= -github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/opentracing/opentracing-go v1.0.3-0.20180606204148-bd9c31933947/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -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 v3.10.0 h1:4K3z2VMe8Woe++invjaTB7VRyQXQy5UY+loujO4aNE4= -github.com/ory/dockertest/v3 v3.10.0/go.mod h1:nr57ZbRWMqfsdGdFNLHz5jjNdDb7VVFnzAeW1n5N1Lg= -github.com/paulbellamy/ratecounter v0.2.0/go.mod h1:Hfx1hDpSGoqxkVVpBi/IlYD7kChlfo5C6hzIHwPqfFE= -github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pelletier/go-toml/v2 v2.0.1/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo= -github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM= -github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= -github.com/peterh/liner v1.0.1-0.20180619022028-8c1271fcf47f/go.mod h1:xIteQHvHuaLYG9IFj6mSxM0fCKrs34IrEQUhOYuGPHc= -github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf8GS0= -github.com/peterh/liner v1.2.1 h1:O4BlKaq/LWu6VRWmol4ByWfzx6MfXc5Op5HETyIy5yg= -github.com/peterh/liner v1.2.1/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf8GS0= -github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5 h1:Ii+DKncOVM8Cu1Hc+ETb5K+23HdAMvESYE3ZJ5b5cMI= -github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5/go.mod h1:iIss55rKnNBTvrwdmkUpLnDpZoAHvWaiq5+iMmen4AE= -github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= -github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= -github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= -github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= -github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4= -github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI= -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= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= -github.com/pkg/term v0.0.0-20180730021639-bffc007b7fd5/go.mod h1:eCbImbZ95eXtAUIbLAuAVnBnwf83mjf6QIVH8SHYwqQ= -github.com/pkg/term v1.2.0-beta.2 h1:L3y/h2jkuBVFdWiJvNfYfKmzcCnILw7mJWm2JQuMppw= -github.com/pkg/term v1.2.0-beta.2/go.mod h1:E25nymQcrSllhX42Ok8MRm1+hyBdHY0dCeiKZ9jpNGw= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= -github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho= -github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= -github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= -github.com/prometheus/common v0.53.0 h1:U2pL9w9nmJwJDa4qqLQ3ZaePJ6ZTwt7cMD3AG3+aLCE= -github.com/prometheus/common v0.53.0/go.mod h1:BrxBKv3FWBIGXw89Mg1AeBq7FSyRzXWI3l3e7W3RN5U= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.15.0 h1:A82kmvXJq2jTu5YUhSGNlYoxh85zLnKgPz4bMZgI5Ek= -github.com/prometheus/procfs v0.15.0/go.mod h1:Y0RJ/Y5g5wJpkTisOtqwDSo4HwhGmLB4VQSw2sQJLHk= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/puzpuzpuz/xsync v1.4.3 h1:nS/Iqc4EnpJ8jm/MzJ+e3MUaP2Ys2mqXeEfoxoU0HaM= -github.com/puzpuzpuz/xsync v1.4.3/go.mod h1:K98BYhX3k1dQ2M63t1YNVDanbwUPmBCAhNmVrrxfiGg= -github.com/puzpuzpuz/xsync/v2 v2.5.1 h1:mVGYAvzDSu52+zaGyNjC+24Xw2bQi3kTr4QJ6N9pIIU= -github.com/puzpuzpuz/xsync/v2 v2.5.1/go.mod h1:gD2H2krq/w52MfPLE+Uy64TzJDVY7lP2znR9qmR35kU= -github.com/rbretecher/go-postman-collection v0.9.0 h1:vXw6KBhASpz0L0igH3OsJCx5pjKbWXn9RiYMMnOO4QQ= -github.com/rbretecher/go-postman-collection v0.9.0/go.mod h1:pptkyjdB/sqPycH+CCa1zrA6Wpj2Kc8Nz846qRstVVs= -github.com/regen-network/protobuf v1.3.3-alpha.regen.1 h1:OHEc+q5iIAXpqiqFKeLpu5NwTIkVXUs48vFMwzqpqY4= -github.com/regen-network/protobuf v1.3.3-alpha.regen.1/go.mod h1:2DjTFR1HhMQhiWC5sZ4OhQ3+NtdbZ6oBDKQwq5Ou+FI= -github.com/retailnext/hllpp v1.0.1-0.20180308014038-101a6d2f8b52/go.mod h1:RDpi1RftBQPUCDRw6SmxeaREsAaRKnOclghuzp/WRzc= -github.com/richardwilkes/toolbox v1.74.0 h1:TNvXxph1jJk6IQmVoZdAY9peRlL6Tv//7OpyJkjMiPI= -github.com/richardwilkes/toolbox v1.74.0/go.mod h1:OFTDv8rUUsF+Hb98k9l65zu7fuKt3EEhWywv6zyJ750= -github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= -github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= -github.com/rjeczalik/notify v0.9.1/go.mod h1:rKwnCoCGeuQnwBtTSPL9Dad03Vh2n40ePRrjvIXnJho= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= -github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= -github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= -github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= -github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= -github.com/rs/cors v1.8.2 h1:KCooALfAYGs415Cwu5ABvv9n9509fSiG5SQJn/AQo4U= -github.com/rs/cors v1.8.2/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= -github.com/rs/zerolog v1.27.0 h1:1T7qCieN22GVc8S4Q2yuexzBb1EqjbgjSH9RohbMjKs= -github.com/rs/zerolog v1.27.0/go.mod h1:7frBqO0oezxmnO7GF86FY++uy8I0Tk/If5ni1G9Qc0U= -github.com/rung/go-safecast v1.0.1 h1:7rkt2qO4JGdOkWKdPEBFLaEwQy20y0IhhWJNFxmH0p0= -github.com/rung/go-safecast v1.0.1/go.mod h1:dzUcUS2UMtbfVc7w6mx/Ur3UYcpXEZC+WilISksJ4P8= -github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= -github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/schollz/closestmatch v2.1.0+incompatible/go.mod h1:RtP1ddjLong6gTkbtmuhtR2uUrrJOpYzYRvbcPAid+g= -github.com/seccomp/libseccomp-golang v0.9.2-0.20220502022130-f33da4d89646/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= -github.com/segmentio/kafka-go v0.1.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo= -github.com/segmentio/kafka-go v0.2.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo= -github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8= -github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4= -github.com/shibukawa/configdir v0.0.0-20170330084843-e180dbdc8da0 h1:Xuk8ma/ibJ1fOy4Ee11vHhUFHQNpHhrBneOCNHVXS5w= -github.com/shibukawa/configdir v0.0.0-20170330084843-e180dbdc8da0/go.mod h1:7AwjWCpdPhkSmNAgUv5C7EJ4AbmjEB3r047r3DXWu3Y= -github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= -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/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= -github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/skeema/knownhosts v1.2.2 h1:Iug2P4fLmDw9f41PB6thxUkNUkJzB5i+1/exaj40L3A= -github.com/skeema/knownhosts v1.2.2/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo= -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/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= -github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/afero v1.10.0 h1:EaGW2JJh15aKOejeuJ+wpFSHnbd7GE6Wvp3TsNhb6LY= -github.com/spf13/afero v1.10.0/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/status-im/keycard-go v0.0.0-20190316090335-8537d3370df4/go.mod h1:RZLeN1LMWmRsyYjvAu+I6Dm9QmlDaIIt+Y+4Kd7Tp+Q= -github.com/status-im/keycard-go v0.2.0 h1:QDLFswOQu1r5jsycloeQh3bVU8n/NatHHaZobtDnDzA= -github.com/status-im/keycard-go v0.2.0/go.mod h1:wlp8ZLbsmrF6g6WjugPAx+IzoLrkdf9+mHxBEeo3Hbg= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= -github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= -github.com/stretchr/testify v1.2.0/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.3.1-0.20190311161405-34c6fa2dc709/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/summerwind/h2spec v2.2.1+incompatible/go.mod h1:eP7IHGVDEe9cbCxRNtmGfII77lBvLgJLNfJjTaKa9sI= -github.com/supranational/blst v0.3.11 h1:LyU6FolezeWAhvQk0k6O/d49jqgO52MSDDfYgbeoEm4= -github.com/supranational/blst v0.3.11/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/j+w+fVonLw= -github.com/synapsecns/fasthttp-http2 v1.0.0 h1:G1/8AKgAzVImHpGbCGZo8w4c0kUBXb4eRKkMlWUW4eA= -github.com/synapsecns/fasthttp-http2 v1.0.0/go.mod h1:QM9mQS/FygGB3PdvmW8a0/70FirWmEZVvj6Dlo1pisw= -github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/syndtr/goleveldb v1.0.1-0.20210305035536-64b5b1c73954/go.mod h1:u2MKkTVTVJWe5D1rCvame8WqhBd88EuIwODJZ1VHCPM= -github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70Z7CTTCmYQn2CKbY8j86K7/FAIr141uY= -github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= -github.com/teivah/onecontext v1.3.0 h1:tbikMhAlo6VhAuEGCvhc8HlTnpX4xTNPTOseWuhO1J0= -github.com/teivah/onecontext v1.3.0/go.mod h1:hoW1nmdPVK/0jrvGtcx8sCKYs2PiS4z0zzfdeuEVyb0= -github.com/temoto/robotstxt v1.1.2 h1:W2pOjSJ6SWvldyEuiFXNxz3xZ8aiWX5LbfDiOFd7Fxg= -github.com/temoto/robotstxt v1.1.2/go.mod h1:+1AmkuG3IYkh1kv0d2qEB9Le88ehNO0zwOr3ujewlOo= -github.com/tinylib/msgp v1.0.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= -github.com/tklauser/go-sysconf v0.3.5/go.mod h1:MkWzOF4RMCshBAMXuhXJs64Rte09mITnppBXY/rYEFI= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.2.2/go.mod h1:x3qojaO3uyYt0i56EW/VUYs7uBvdl2fkfZFu0T9wgjM= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= -github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= -github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= -github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= -github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= -github.com/tyler-smith/go-bip39 v1.0.1-0.20181017060643-dbb3b84ba2ef/go.mod h1:sJ5fKU0s6JVwZjjcUEX2zFOnvq0ASQ2K9Zr6cf67kNs= -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/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= -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= -github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= -github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY= -github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65EE= -github.com/ugorji/go/codec v1.2.12/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= -github.com/uptrace/opentelemetry-go-extra/otelgorm v0.3.1 h1:GFFXCsiOWqrAovcIzxqJOYBEy2A/0jd//JNz/jTy1CA= -github.com/uptrace/opentelemetry-go-extra/otelgorm v0.3.1/go.mod h1:ncqprpzpjuZHDkvsnl/baPLA0stLgZSLsYEvUhAVkbM= -github.com/uptrace/opentelemetry-go-extra/otelsql v0.3.1 h1:i4f4ey/v5x0zXurkqV/zbOZlMLu8WNIvpDn1tJzdutY= -github.com/uptrace/opentelemetry-go-extra/otelsql v0.3.1/go.mod h1:ZKgZNsGk5Y+uOxRHcYb4MKLVpmKYU4/u7BUtbStJm7w= -github.com/uptrace/opentelemetry-go-extra/otelutil v0.3.1 h1:Suvl9fe12MM0oi8/rcGxlGd7XawNQawU369aHzZFFec= -github.com/uptrace/opentelemetry-go-extra/otelutil v0.3.1/go.mod h1:aiX/F5+EYbY2ed2OQEYRXzMcNGvI9pip5gW2ZtBDers= -github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.1 h1:0iCp8hx3PFhGihubKHxyOCdIlIPxzUr0VsK+rvlMGdk= -github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.1/go.mod h1:FXrjpUJDqwqofvXWG3YNxQwhg2876tUpZASj8VvOMAM= -github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= -github.com/urfave/cli/v2 v2.27.2 h1:6e0H+AkS+zDckwPCUrZkKX38mRaau4nL2uipkJpbkcI= -github.com/urfave/cli/v2 v2.27.2/go.mod h1:g0+79LmHHATl7DAcHO99smiR/T7uGLw84w8Y42x+4eM= -github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= -github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= -github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= -github.com/valyala/fasthttp v1.6.0/go.mod h1:FstJa9V+Pj9vQ7OJie2qMHdwemEDaDiSdBnvPM1Su9w= -github.com/valyala/fasthttp v1.34.0/go.mod h1:epZA5N+7pY6ZaEKRmstzOuYJx9HI8DI1oaCGZpdH4h0= -github.com/valyala/fasthttp v1.41.0 h1:zeR0Z1my1wDHTRiamBCXVglQdbUwgb9uWG3k1HQz6jY= -github.com/valyala/fasthttp v1.41.0/go.mod h1:f6VbjjoI3z1NDOZOv17o6RvtRSWxC77seBFc2uWtgiY= -github.com/valyala/fastjson v1.6.4 h1:uAUNq9Z6ymTgGhcm0UynUAB6tlbakBrz6CQFax3BXVQ= -github.com/valyala/fastjson v1.6.4/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLrsQns1aXY= -github.com/valyala/fastrand v1.0.0/go.mod h1:HWqCzkrkg6QXT8V2EXWvXCoow7vLwOFN002oeRzjapQ= -github.com/valyala/fastrand v1.1.0 h1:f+5HkLW4rsgzdNoleUOB69hyT9IlD2ZQh9GyDMfb5G8= -github.com/valyala/fastrand v1.1.0/go.mod h1:HWqCzkrkg6QXT8V2EXWvXCoow7vLwOFN002oeRzjapQ= -github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= -github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= -github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio= -github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= -github.com/viant/toolbox v0.24.0 h1:6TteTDQ68CjgcCe8wH3D3ZhUQQOJXMTbj/D9rkk2a1k= -github.com/viant/toolbox v0.24.0/go.mod h1:OxMCG57V0PXuIP2HNQrtJf2CjqdmbrOx5EkMILuUhzM= -github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= -github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= -github.com/willf/bitset v1.1.3/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= -github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= -github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= -github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= -github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo= -github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= -github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= -github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= -github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= -github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= -github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 h1:+qGGcbkzsfDQNPPe9UDgpxAWQrhbbBXOYJFQDq/dtJw= -github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913/go.mod h1:4aEEwZQutDLsQv2Deui4iYQ6DWTxR14g6m8Wv88+Xqk= -github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0/go.mod h1:/LWChgwKmvncFJFHJ7Gvn9wZArjbV5/FppcK2fKk/tI= -github.com/yudai/gojsondiff v1.0.0/go.mod h1:AY32+k2cwILAkW1fbgxQ5mUmMiZFgLIV+FBNExI05xg= -github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82/go.mod h1:lgjkn3NuSvDfVJdfcVVdX+jpBxNmX4rDAzaS45IcYoM= -github.com/yudai/pp v2.0.1+incompatible/go.mod h1:PuxR/8QJ7cyCkFp/aUDS+JY727OFEZkTdatxwunjIkc= -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/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= -github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= -go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= -go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -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/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0 h1:vkioc4XBfqnZZ7u40wK3Kgbjj9JYkvW6FY1ghmM/Shk= -go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0/go.mod h1:vsyxiwPzPlijgouF1SRZRGqbuHod8fV6+MRCH7ltxDE= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 h1:4Pp6oUg3+e/6M4C0A/3kJ2VYa++dsWVTtGgLVj5xtHg= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0/go.mod h1:Mjt1i1INqiaoZOMGR1RIUJN+i3ChKoFRqzrRQhlkbs0= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 h1:9l89oX4ba9kHbBol3Xin3leYJ+252h0zszDtBwyKe2A= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0/go.mod h1:XLZfZboOJWHNKUv7eH0inh0E9VV6eWDFB/9yJyTLPp0= -go.opentelemetry.io/contrib/propagators/b3 v1.27.0 h1:IjgxbomVrV9za6bRi8fWCNXENs0co37SZedQilP2hm0= -go.opentelemetry.io/contrib/propagators/b3 v1.27.0/go.mod h1:Dv9obQz25lCisDvvs4dy28UPh974CxkahRDUPsY7y9E= -go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo= -go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= -go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= -go.opentelemetry.io/otel/exporters/jaeger v1.17.0 h1:D7UpUy2Xc2wsi1Ras6V40q806WM07rqoCWzXu7Sqy+4= -go.opentelemetry.io/otel/exporters/jaeger v1.17.0/go.mod h1:nPCqOnEH9rNLKqH/+rrUjiMzHJdV1BlpKcTwRTyKkKI= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.27.0 h1:R9DE4kQ4k+YtfLI2ULwX82VtNQ2J8yZmA7ZIF/D+7Mc= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.27.0/go.mod h1:OQFyQVrDlbe+R7xrEyDr/2Wr67Ol0hRUgsfA+V5A95s= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0 h1:qFffATk0X+HD+f1Z8lswGiOQYKHRlzfmdJm0wEaVrFA= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0/go.mod h1:MOiCmryaYtc+V0Ei+Tx9o5S1ZjA7kzLucuVuyzBZloQ= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.27.0 h1:QY7/0NeRPKlzusf40ZE4t1VlMKbqSNT7cJRYzWuja0s= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.27.0/go.mod h1:HVkSiDhTM9BoUJU8qE6j2eSWLLXvi1USXjyd2BXT8PY= -go.opentelemetry.io/otel/exporters/prometheus v0.49.0 h1:Er5I1g/YhfYv9Affk9nJLfH/+qCCVVg1f2R9AbJfqDQ= -go.opentelemetry.io/otel/exporters/prometheus v0.49.0/go.mod h1:KfQ1wpjf3zsHjzP149P4LyAwWRupc6c7t1ZJ9eXpKQM= -go.opentelemetry.io/otel/log v0.3.0 h1:kJRFkpUFYtny37NQzL386WbznUByZx186DpEMKhEGZs= -go.opentelemetry.io/otel/log v0.3.0/go.mod h1:ziCwqZr9soYDwGNbIL+6kAvQC+ANvjgG367HVcyR/ys= -go.opentelemetry.io/otel/metric v1.21.0/go.mod h1:o1p3CA8nNHW8j5yuQLdc1eeqEaPfzug24uvsyIEJRWM= -go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= -go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= -go.opentelemetry.io/otel/sdk v1.21.0/go.mod h1:Nna6Yv7PWTdgJHVRD9hIYywQBRx7pbox6nwBnZIxl/E= -go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= -go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= -go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= -go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= -go.opentelemetry.io/otel/trace v1.21.0/go.mod h1:LGbsEB0f9LGjN+OZaQQ26sohbOmiMR+BaslueVtS/qQ= -go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= -go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= -go.opentelemetry.io/proto/otlp v1.2.0 h1:pVeZGk7nXDC9O2hncA6nHldxEjm6LByfA2aN8IOkz94= -go.opentelemetry.io/proto/otlp v1.2.0/go.mod h1:gGpR8txAl5M03pDhMC79G6SdqNV26naRm/KDsgaHD8A= -go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= -go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= -go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= -go.uber.org/goleak v1.1.11-0.20210813005559-691160354723/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= -go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= -go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= -go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= -go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= -go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= -go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= -go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= -go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI= -go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= -go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= -golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= -golang.org/x/arch v0.8.0 h1:3wRIsP3pM4yUptoR96otTUOXI367OS0+c9eeRi9doIc= -golang.org/x/arch v0.8.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys= -golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -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-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190909091759-094676da4a83/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200115085410-6d4e4cb37c7d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= -golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= -golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= -golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/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.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= -golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= -golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= -golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= -golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 h1:yixxcjnhBmY0nkL253HFVIm0JsFHwrHdT3Yh6szTnfY= -golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= -golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= -golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= -golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.18.0 h1:5+9lSbEzPSdWkH32vYPBwEpX8KwDbM52Ud9xBUvNlb0= -golang.org/x/mod v0.18.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190327091125-710a502c58a2/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -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-20190827160401-ba9fcec4b297/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-20200813134508-3edf25e44fcc/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-20201031054903-ff519b6c9102/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-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210220033124-5f55cee0dc0d/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20211008194852-3b03d305991f/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-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.0.0-20220906165146-f3363e06e74c/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= -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.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= -golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -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-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.20.0 h1:4mQdhULixXKP1rwYBW0vAijoXnkTG0BLCDRzfe1idMo= -golang.org/x/oauth2 v0.20.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -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= -golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= -golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -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-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-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191115151921-52ab43148777/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-20200107162124-548cf772de50/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-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200826173525-f9321e4c35a6/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200918174421-af09f7315aff/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-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/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-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210316164454-77fc1eacc6aa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210420205809-ac73e9fd8988/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/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-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-20210906170528-6f6e22806c34/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211116061358-0a5406a5449c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/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-20220908164124-27713097b956/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.3.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= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/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.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= -golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= -golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= -golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -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.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -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= -golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= -golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= -golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= -golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= -golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181221001348-537d06c36207/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190327201419-c70d86f8b7cf/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -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-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200108203644-89082a384178/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -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-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= -golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= -golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.22.0 h1:gqSGLZqv+AI9lIQzniJ0nZDRG5GBPsSi+DRNHWNz6yA= -golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= -gonum.org/v1/gonum v0.0.0-20181121035319-3f7ecaa7e8ca/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= -gonum.org/v1/gonum v0.6.0/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= -gonum.org/v1/netlib v0.0.0-20181029234149-ec6d1f5cefe6/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= -gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= -gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= -google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= -google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -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.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= -google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= -google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= -google.golang.org/api v0.169.0 h1:QwWPy71FgMWqJN/l6jVlFHUa29a7dcUy02I8o799nPY= -google.golang.org/api v0.169.0/go.mod h1:gpNOiMA2tZ4mf5R9Iwf4rK/Dcz0fbdIgWYWVoxmsyLg= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.1/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-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190716160619-c506a9f90610/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200108215221-bd8f9a0ef82f/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -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-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-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-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= -google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de h1:F6qOa9AZTYJXOUEr4jDysRDLrm4PHePlge4v4TGAlxY= -google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:VUhTRKeHn9wwcdrk73nvdC9gF178Tzhmt/qyaFcPLSo= -google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5 h1:P8OJ/WCl/Xo4E4zoe4/bifHpSmmKwARqyqE4nW6J2GQ= -google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5/go.mod h1:RGnPtTG7r4i8sPlNyDeikXF99hMM+hN6QMm4ooG9g2g= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291 h1:AgADTJarZTBqgjiUzRgfaBchgYB3/WFTC80GPwsMcRI= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= -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= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -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.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= -google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.64.0 h1:KH3VH9y/MgNQg1dE7b3XfVK0GsPSIzJwdF617gUSbvY= -google.golang.org/grpc v1.64.0/go.mod h1:oxjF8E3FBnjp+/gVFYdWacaLDx9na1aqy9oovLpxQYg= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -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= -google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= -google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= -gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -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/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= -gopkg.in/hedzr/errors.v3 v3.1.1 h1:2p1fo4poIOYmBcfN9j6vkXKlJUKTXrxQLj4JWTrQo9I= -gopkg.in/hedzr/errors.v3 v3.1.1/go.mod h1:UwtyepqtGTIAmdZGSc7wxXT5Gfd/BjcfRMhPpxwkJM4= -gopkg.in/ini.v1 v1.51.1/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= -gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8= -gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= -gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce/go.mod h1:5AcXVHNjg+BDxry382+8OKon8SEWiKktQR07RKPsv1c= -gopkg.in/olebedev/go-duktape.v3 v3.0.0-20200619000410-60c24ae608a6/go.mod h1:uAJfkITjFhyEEuUfm7bsmCZRbW5WRq8s9EY8HZ6hCns= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/urfave/cli.v1 v1.20.0/go.mod h1:vuBzUtMdQeixQj8LVd+/98pzhxNGQoyuPBlsXHOQNO0= -gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= -gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= -gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20191120175047-4206685974f2/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= -gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gorm.io/driver/mysql v1.5.6 h1:Ld4mkIickM+EliaQZQx3uOJDJHtrd70MxAUqWqlx3Y8= -gorm.io/driver/mysql v1.5.6/go.mod h1:sEtPWMiqiN1N1cMXoXmBbd8C6/l+TESwriotuRRpkDM= -gorm.io/driver/sqlite v1.5.6 h1:fO/X46qn5NUEEOZtnjJRWRzZMe8nqJiQ9E+0hi+hKQE= -gorm.io/driver/sqlite v1.5.6/go.mod h1:U+J8craQU6Fzkcvu8oLeAQmi50TkwPEhHDEjQZXDah4= -gorm.io/gorm v1.25.7/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= -gorm.io/gorm v1.25.10 h1:dQpO+33KalOA+aFYGlK+EfxcI5MbO7EP2yYygwh9h+s= -gorm.io/gorm v1.25.10/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= -gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= -gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= -gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= -gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -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/apimachinery v0.26.2 h1:da1u3D5wfR5u2RpLhE/ZtZS2P7QvDgLZTi9wrNZl/tQ= -k8s.io/apimachinery v0.26.2/go.mod h1:ats7nN1LExKHvJ9TmwootT00Yz05MuYqPXEXaVeOy5I= -k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw= -k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 h1:kmDqav+P+/5e1i9tFfHq1qcF3sOrDp+YEkVDAHu7Jwk= -k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -lukechampine.com/blake3 v1.2.1 h1:YuqqRuaqsGV71BV/nm9xlI0MKUv4QC54jQnBChWbGnI= -lukechampine.com/blake3 v1.2.1/go.mod h1:0OFRp7fBtAylGVCO40o87sbupkyIGgbpv1+M1k1LM6k= -nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= -rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= -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= diff --git a/services/stiprelayer/main.go b/services/stiprelayer/main.go deleted file mode 100644 index 7613c9cf82..0000000000 --- a/services/stiprelayer/main.go +++ /dev/null @@ -1,14 +0,0 @@ -// Package main is the entry point for the STIP Relayer -package main - -import ( - "os" - - "github.com/synapsecns/sanguine/services/stiprelayer/cmd" - "github.com/synapsecns/sanguine/services/stiprelayer/metadata" -) - -// main is the entry point for the stip relayer. -func main() { - cmd.Start(os.Args, metadata.BuildInfo()) -} diff --git a/services/stiprelayer/metadata/metadata.go b/services/stiprelayer/metadata/metadata.go deleted file mode 100644 index 3e51291f85..0000000000 --- a/services/stiprelayer/metadata/metadata.go +++ /dev/null @@ -1,15 +0,0 @@ -// Package metadata provides a metadata service for the STIP Relayer. -package metadata - -import "github.com/synapsecns/sanguine/core/config" - -var ( - version = config.DefaultVersion - commit = config.DefaultCommit - date = config.DefaultDate -) - -// BuildInfo returns the build info for the service. -func BuildInfo() config.BuildInfo { - return config.NewBuildInfo(version, commit, "stiprelayer", date) -} diff --git a/services/stiprelayer/relayer/doc.go b/services/stiprelayer/relayer/doc.go deleted file mode 100644 index 97e02c6f21..0000000000 --- a/services/stiprelayer/relayer/doc.go +++ /dev/null @@ -1,2 +0,0 @@ -// Package relayer is the entry point for the STIP Relayer -package relayer diff --git a/services/stiprelayer/relayer/dune.go b/services/stiprelayer/relayer/dune.go deleted file mode 100644 index a63827b494..0000000000 --- a/services/stiprelayer/relayer/dune.go +++ /dev/null @@ -1,135 +0,0 @@ -package relayer - -import ( - "bytes" - "context" - "encoding/json" - "fmt" - "io" - "net/http" - "os" - - "github.com/synapsecns/sanguine/core/metrics" - "go.opentelemetry.io/otel/attribute" - "go.opentelemetry.io/otel/trace" -) - -// DuneAPIKey is the API key for Dune, fetched from the environment variables. -var DuneAPIKey = os.Getenv("DUNE_API_KEY") - -const dunePerformance = "large" - -type duneQueryBody struct { - QueryParameters stipQueryParams `json:"query_parameters"` - Performance string `json:"performance"` -} - -type stipQueryParams struct { - LastHours int `json:"last_hours"` -} - -// ExecuteDuneQuery executes a predefined query on the Dune API and returns the http response. -func (s *STIPRelayer) ExecuteDuneQuery(parentCtx context.Context) (executionID string, err error) { - ctx, span := s.handler.Tracer().Start(parentCtx, "ExecuteDuneQuery") - defer func() { - metrics.EndSpanWithErr(span, err) - }() - - client := &http.Client{} - s.handler.ConfigureHTTPClient(client) - params := duneQueryBody{ - QueryParameters: stipQueryParams{ - LastHours: s.cfg.GetDuneLookbackHours(), - }, - Performance: dunePerformance, - } - reqBody, err := json.Marshal(params) - if err != nil { - return "", fmt.Errorf("failed to marshal request body: %w", err) - } - req, err := http.NewRequestWithContext(ctx, http.MethodPost, fmt.Sprintf("https://api.dune.com/api/v1/query/%d/execute", s.cfg.StipQueryID), bytes.NewBuffer(reqBody)) - if err != nil { - return "", fmt.Errorf("failed to create request: %w", err) - } - - req.Header.Set("X-Dune-API-Key", DuneAPIKey) - req.Header.Set("Content-Type", "application/json") - - resp, err := client.Do(req) - if err != nil { - return "", fmt.Errorf("failed to execute Dune query: %w", err) - } - - defer func() { - if err := resp.Body.Close(); err != nil { - fmt.Printf("failed to close response body: %v", err) - } - }() - - fmt.Println("EXECUTING DUNE QUERY") - - body, err := io.ReadAll(resp.Body) - if err != nil { - return "", fmt.Errorf("failed to read response body: %w", err) - } - - var result map[string]string - err = json.Unmarshal(body, &result) - if err != nil { - return "", fmt.Errorf("failed to unmarshal response body: %w", err) - } - - var ok bool - executionID, ok = result["execution_id"] - if !ok { - return "", fmt.Errorf("no execution_id found in response") - } - span.SetAttributes(attribute.String("execution_id", executionID)) - - return executionID, nil -} - -// GetExecutionResults fetches the results of a Dune query execution using the provided execution ID. -func (s *STIPRelayer) GetExecutionResults(parentCtx context.Context, executionID string) (_ *QueryResult, err error) { - ctx, span := s.handler.Tracer().Start(parentCtx, "ExecuteDuneQuery", trace.WithAttributes(attribute.String("executionID", executionID))) - defer func() { - metrics.EndSpanWithErr(span, err) - }() - - client := &http.Client{} - s.handler.ConfigureHTTPClient(client) - req, err := http.NewRequestWithContext(ctx, http.MethodGet, fmt.Sprintf("https://api.dune.com/api/v1/execution/%s/results", executionID), nil) - if err != nil { - return nil, fmt.Errorf("failed to create request: %w", err) - } - - req.Header.Set("X-Dune-API-Key", DuneAPIKey) - - resp, err := client.Do(req) - if err != nil { - return nil, fmt.Errorf("failed to get execution results: %w", err) - } - defer func() { - if err := resp.Body.Close(); err != nil { - fmt.Printf("failed to close response body: %v", err) - } - }() - fmt.Println("GETTING EXECUTION RESULTS") - - if resp.StatusCode != http.StatusOK { - return nil, fmt.Errorf("expected status code 200, got %d", resp.StatusCode) - } - - getResultsBody, err := io.ReadAll(resp.Body) - if err != nil { - return nil, fmt.Errorf("failed to read execution results body: %w", err) - } - - var jsonResult QueryResult - err = json.Unmarshal(getResultsBody, &jsonResult) - if err != nil { - return nil, fmt.Errorf("error unmarshalling JSON: %w", err) - } - - return &jsonResult, nil -} diff --git a/services/stiprelayer/relayer/relayer.go b/services/stiprelayer/relayer/relayer.go deleted file mode 100644 index 811e9b6281..0000000000 --- a/services/stiprelayer/relayer/relayer.go +++ /dev/null @@ -1,530 +0,0 @@ -package relayer - -import ( - "context" - "fmt" - "github.com/synapsecns/sanguine/contrib/screener-api/client" - "math/big" - "strings" - "time" - - "github.com/cenkalti/backoff" - "github.com/ethereum/go-ethereum/accounts/abi/bind" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/types" - "github.com/synapsecns/sanguine/core/metrics" - signerConfig "github.com/synapsecns/sanguine/ethergo/signer/config" - "github.com/synapsecns/sanguine/ethergo/signer/signer" - "github.com/synapsecns/sanguine/ethergo/submitter" - omniClient "github.com/synapsecns/sanguine/services/omnirpc/client" - "github.com/synapsecns/sanguine/services/rfq/contracts/ierc20" - "github.com/synapsecns/sanguine/services/stiprelayer/db" - "github.com/synapsecns/sanguine/services/stiprelayer/stipapi" - "github.com/synapsecns/sanguine/services/stiprelayer/stipconfig" - "go.opentelemetry.io/otel/attribute" - "golang.org/x/sync/errgroup" - "golang.org/x/time/rate" -) - -// Check Dune Query -// Store in database - -// Call database -// Submit transactions for corresponding rebate - -// STIPRelayer is the main struct for the STIP relayer service. -type STIPRelayer struct { - cfg stipconfig.Config - db db.STIPDB - omnirpcClient omniClient.RPCClient - handler metrics.Handler - submittter submitter.TransactionSubmitter - signer signer.Signer - apiServer *stipapi.Server - // screener is used to screen addresses using the screener-api client stub. - screener client.ScreenerClient -} - -// NewSTIPRelayer creates a new STIPRelayer with the provided context and configuration. -func NewSTIPRelayer(ctx context.Context, - cfg stipconfig.Config, - handler metrics.Handler, - omniRPCClient omniClient.RPCClient, - store db.STIPDB, -) (*STIPRelayer, error) { - sg, err := signerConfig.SignerFromConfig(ctx, cfg.Signer) - if err != nil { - return nil, fmt.Errorf("could not get signer: %w", err) - } - sm := submitter.NewTransactionSubmitter(handler, sg, omniRPCClient, store.SubmitterDB(), &cfg.SubmitterConfig) - - apiServer, err := stipapi.NewStipAPI(ctx, cfg, handler) - if err != nil { - return nil, fmt.Errorf("could not get api server: %w", err) - } - - screener, _ := client.NewNoOpClient() - - if cfg.ScreenerAPIUrl != "" { - screener, err = client.NewClient(handler, cfg.ScreenerAPIUrl) - if err != nil { - return nil, fmt.Errorf("could not create screener client: %w", err) - } - } - - return &STIPRelayer{ - cfg: cfg, - db: store, - handler: handler, - omnirpcClient: omniRPCClient, - submittter: sm, - signer: sg, - apiServer: apiServer, - screener: screener, - }, nil -} - -// QueryResult represents the result of a Dune query. -type QueryResult struct { - ExecutionID string `json:"execution_id"` - QueryID int `json:"query_id"` - State string `json:"state"` - SubmittedAt time.Time `json:"submitted_at"` - ExpiresAt time.Time `json:"expires_at"` - ExecutionStartedAt time.Time `json:"execution_started_at"` - ExecutionEndedAt time.Time `json:"execution_ended_at"` - Result Result `json:"result"` -} - -// Result represents the data structure for the result of a query execution. -type Result struct { - Rows []Row `json:"rows"` - Metadata Metadata `json:"metadata"` -} - -// Row represents a single row of the result of a query execution. -type Row struct { - Address string `json:"address"` - Amount float64 `json:"amount"` - AmountUsd float64 `json:"amount_usd"` - ArbPrice float64 `json:"arb_price"` - BlockTime CustomTime `json:"block_time"` - Direction string `json:"direction"` - Hash string `json:"hash"` - Module string `json:"module"` - Token string `json:"token"` - TokenPrice float64 `json:"token_price"` -} - -// Metadata represents the metadata of a query execution result. -type Metadata struct { - ColumnNames []string `json:"column_names"` - ResultSetBytes int `json:"result_set_bytes"` - TotalRowCount int `json:"total_row_count"` - DatapointCount int `json:"datapoint_count"` - PendingTimeMillis int `json:"pending_time_millis"` - ExecutionTimeMillis int `json:"execution_time_millis"` -} - -// CustomTime is a custom time type for handling specific time format in JSON unmarshalling. -type CustomTime struct { - time.Time -} - -const ctLayout = "2006-01-02 15:04:05.000 MST" - -// UnmarshalJSON overrides the default JSON unmarshaling for CustomTime to handle specific time format. -func (ct *CustomTime) UnmarshalJSON(b []byte) error { - s := strings.Trim(string(b), "\"") - if s == "null" { - return nil - } - t, err := time.Parse(ctLayout, s) - if err != nil { - return fmt.Errorf("failed to parse time: %w", err) - } - ct.Time = t - return nil -} - -// Run starts the STIPRelayer service by initiating various goroutines. -func (s *STIPRelayer) Run(ctx context.Context) error { - g, ctx := errgroup.WithContext(ctx) - - // Start the submitter goroutine - g.Go(func() error { - return s.StartSubmitter(ctx) - }) - - g.Go(func() error { - err := s.apiServer.Run(ctx) - if err != nil { - return fmt.Errorf("could not start api server: %w", err) - } - return nil - }) - - err := s.ProcessExecutionResults(ctx) - if err != nil { - return fmt.Errorf("error processing execution results: %w", err) - } - - // Start the ticker goroutine for requesting and storing execution results - g.Go(func() error { - return s.RequestAndStoreResults(ctx) - }) - - // Start the goroutine for querying, rebating/relaying, and updating results - g.Go(func() error { - return s.QueryRebateAndUpdate(ctx) - }) - - // Wait for all goroutines to finish - if err := g.Wait(); err != nil { - return fmt.Errorf("could not run: %w", err) // handle the error from goroutines - } - - return nil -} - -// StartSubmitter handles the initialization of the submitter. -func (s *STIPRelayer) StartSubmitter(ctx context.Context) error { - err := s.submittter.Start(ctx) - if err != nil { - fmt.Printf("could not start submitter: %v", err) - // TODO: Will this force a panic in the Run() function? - return fmt.Errorf("could not start submitter: %w", err) // panic in case submitter cannot start - } - return nil -} - -// RequestAndStoreResults handles the continuous request of new execution results and storing them in the database. -func (s *STIPRelayer) RequestAndStoreResults(ctx context.Context) error { - // TODO: If undefined, what do? Need a default, otherwise, panic - ticker := time.NewTicker(s.cfg.DuneInterval) - defer ticker.Stop() - - for { - select { - case <-ctx.Done(): - //nolint: wrapcheck - return ctx.Err() // exit if context is canceled - case <-ticker.C: - err := s.ProcessExecutionResults(ctx) - if err != nil { - // Log the error and decide whether to continue based on the error - fmt.Printf("Error processing execution results: %v", err) - // Optionally, you can return the error to stop the goroutine - // return err - } - } - } -} - -// ProcessExecutionResults encapsulates the logic for requesting and storing execution results. -func (s *STIPRelayer) ProcessExecutionResults(parentCtx context.Context) (err error) { - fmt.Println("Starting execution logic") - - ctx, span := s.handler.Tracer().Start(parentCtx, "ProcessExecutionResults") - defer func() { - metrics.EndSpanWithErr(span, err) - }() - - executionID, err := s.ExecuteDuneQuery(ctx) - if err != nil { - return fmt.Errorf("failed to execute Dune query: %w", err) - } - span.SetAttributes(attribute.String("execution_id", executionID)) - - // TODO: remove if exponentialBackoff.InitialInterval waits 30 seconds? - // time.Sleep(30 * time.Second) // Consider replacing this with a more robust solution - var getResultsJSONResult QueryResult - operation := func() error { - jsonResult, err := s.GetExecutionResults(ctx, executionID) - if err != nil { - return fmt.Errorf("failed to get execution results: %w", err) - } - - if jsonResult.State != "QUERY_STATE_COMPLETED" { - // query state is not completed, so return an error to retry - return fmt.Errorf("query state is not completed") - } - getResultsJSONResult = *jsonResult - return nil - } - - // Create a new exponential backoff policy - expBackOff := backoff.NewExponentialBackOff() - expBackOff.InitialInterval = 30 * time.Second - expBackOff.MaxElapsedTime = 300 * time.Second - - // Retry the operation with the backoff policy - err = backoff.Retry(operation, expBackOff) - if err != nil { - return fmt.Errorf("failed to get execution results after retries: %w", err) - } - - var rowsAfterStartDate []Row - var firstResultTime time.Time - for _, row := range getResultsJSONResult.Result.Rows { - // TODO: Will this panic if StartDate not set? - if row.BlockTime.After(s.cfg.StartDate) { - rowsAfterStartDate = append(rowsAfterStartDate, row) - } - if firstResultTime.IsZero() || row.BlockTime.Before(firstResultTime) { - firstResultTime = row.BlockTime.Time - } - } - span.SetAttributes( - attribute.Int("number_of_rows", len(rowsAfterStartDate)), - attribute.String("first_result_time", firstResultTime.String()), - ) - fmt.Println("Number of rows after start date:", len(rowsAfterStartDate)) - - // Convert each Row to a STIPTransactions and store them in the database - return s.StoreResultsInDatabase(ctx, rowsAfterStartDate, getResultsJSONResult.ExecutionID) -} - -// StoreResultsInDatabase handles the storage of results in the database. -func (s *STIPRelayer) StoreResultsInDatabase(ctx context.Context, rows []Row, executionID string) error { - stipTransactions := make([]db.STIPTransactions, len(rows)) - for i, row := range rows { - stipTransactions[i] = db.STIPTransactions{ - Address: row.Address, - Amount: row.Amount, - AmountUSD: row.AmountUsd, - ArbPrice: row.ArbPrice, - BlockTime: row.BlockTime.Time, - Direction: row.Direction, - ExecutionID: executionID, - Hash: row.Hash, - Module: row.Module, - Token: row.Token, - TokenPrice: row.TokenPrice, - Rebated: false, - } - } - - if len(stipTransactions) > 0 { - if err := s.db.InsertNewStipTransactions(ctx, stipTransactions); err != nil { - return fmt.Errorf("error inserting new STIP transactions: %w", err) - } - } - - return nil -} - -// QueryRebateAndUpdate handles the querying for new, non-relayed/rebated results, rebates/relays them, and updates the result row. -func (s *STIPRelayer) QueryRebateAndUpdate(ctx context.Context) error { - // TODO: If undefined, what do? Need a default, otherwise, panic - ticker := time.NewTicker(s.cfg.RebateInterval) - defer ticker.Stop() - - for { - select { - case <-ctx.Done(): - //nolint: wrapcheck - return ctx.Err() // exit if context is canceled - case <-ticker.C: - if err := s.RelayAndRebateTransactions(ctx); err != nil { - // Log the error and decide whether to continue based on the error - fmt.Printf("Error relaying and rebating transactions: %v", err) - // Optionally, you can return the error to stop the goroutine - // return err - } - } - } -} - -// RelayAndRebateTransactions encapsulates the logic for querying, rebating/relaying, and updating results. -func (s *STIPRelayer) RelayAndRebateTransactions(ctx context.Context) error { - // Define the rate limit (e.g., 5 transactions per second) - // You can adjust r (rate per second) and b (burst size) according to your specific requirements - // TODO: Consider making these values configurable. - r := rate.Limit(2) - b := 1 - limiter := rate.NewLimiter(r, b) - - // Query DB to get all STIPs that need to be relayed - stipTransactionsNotRebated, err := s.db.GetSTIPTransactionsNotRebated(ctx) - if err != nil { - return fmt.Errorf("error getting STIP transactions not rebated: %w", err) - } - if len(stipTransactionsNotRebated) == 0 { - fmt.Println("No STIP transactions found that have not been rebated.") - return nil - } - fmt.Println("Found", len(stipTransactionsNotRebated), "STIP transactions that have not been rebated.") - - // Relay and rebate transactions with rate limiting - for _, transaction := range stipTransactionsNotRebated { - // Wait for the limiter to allow another event - if err := limiter.Wait(ctx); err != nil { - fmt.Printf("Error waiting for rate limiter: %v", err) - // Handle the error (e.g., break the loop or return the error) - return fmt.Errorf("error waiting for rate limiter: %w", err) - } - - // Submit and rebate the transaction - if err := s.SubmitAndRebateTransaction(ctx, transaction); err != nil { - // Log the error and continue processing the rest of the transactions - fmt.Printf("Error relaying and rebating transaction: %v", err) - // Optionally, you can return the error to stop processing further transactions - // return err - } - } - - return nil -} - -const stipRuleset = "stip" - -// SubmitAndRebateTransaction handles the relaying and rebating of a single transaction. -// nolint: cyclop -func (s *STIPRelayer) SubmitAndRebateTransaction(ctx context.Context, transaction *db.STIPTransactions) error { - // Check if the address is blocked - blocked, err := s.screener.ScreenAddress(ctx, stipRuleset, transaction.Address) - if err != nil { - return fmt.Errorf("could not screen address: %w", err) - } - - if blocked { - err = s.db.UpdateSTIPTransactionDoNotProcess(ctx, transaction.Hash) - if err != nil { - return fmt.Errorf("could not update STIP transaction as do not process: %w", err) - } - return fmt.Errorf("address is blocked: %s", transaction.Address) - } - - // Calculate the transfer amount based on transaction details - // This function encapsulates the logic for determining the transfer amount - // You can define it elsewhere and call it here - transferAmount, err := s.CalculateTransferAmount(ctx, transaction) - if err != nil { - err := s.db.UpdateSTIPTransactionDoNotProcess(ctx, transaction.Hash) - if err != nil { - return fmt.Errorf("could not update STIP transaction as do not process: %w", err) - } - return fmt.Errorf("could not calculate transfer amount: %w", err) - } - - // Setup for submitting the transaction - chainID := s.cfg.ArbChainID - arbAddress := s.cfg.ArbAddress - backendClient, err := s.omnirpcClient.GetClient(ctx, big.NewInt(int64(chainID))) - if err != nil { - return fmt.Errorf("could not get client: %w", err) - } - - // Submit the transaction - nonceSubmitted, err := s.submittter.SubmitTransaction(ctx, big.NewInt(int64(chainID)), func(transactor *bind.TransactOpts) (tx *types.Transaction, err error) { - erc20, err := ierc20.NewIERC20(common.HexToAddress(arbAddress), backendClient) - if err != nil { - return nil, fmt.Errorf("could not get erc20: %w", err) - } - - // Use the calculated transfer amount in the actual transfer - transferTx, err := erc20.Transfer(transactor, common.HexToAddress(transaction.Address), transferAmount) - if err != nil { - return nil, fmt.Errorf("could not transfer: %w", err) - } - - return transferTx, nil - }) - - if err != nil { - return fmt.Errorf("could not submit transfer: %w", err) - } - - // Update the database to mark the transaction as rebated - err = s.db.UpdateSTIPTransactionRebated(ctx, transaction.Hash, nonceSubmitted, transferAmount.String()) - if err != nil { - return fmt.Errorf("could not update STIP transaction as rebated: %w", err) - } - - return nil -} - -// CalculateTransferAmount determines the amount to transfer based on the transaction. -func (s *STIPRelayer) CalculateTransferAmount(ctx context.Context, transaction *db.STIPTransactions) (*big.Int, error) { - var toChainID int - switch transaction.Direction { - case "ARB": - toChainID = 42161 - case "ETH": - toChainID = 1 - case "AVAX": - toChainID = 43114 - } - - moduleConfig, ok := s.cfg.FeesAndRebates[toChainID][transaction.Module] - if !ok { - return nil, fmt.Errorf("module configuration not found for module %s", transaction.Module) - } - - tokenConfig, ok := moduleConfig[transaction.Token] - if !ok { - return nil, fmt.Errorf("token configuration not found for token %s", transaction.Token) - } - - // Convert values to big.Float for precision during calculations - amountUSD := new(big.Float).SetFloat64(transaction.AmountUSD) - rebateBPS := new(big.Float).SetFloat64(tokenConfig.RebateBps) - - // Calculate rebate in USD (amountUSD * rebateBPS / 10000) - // Divide rebateBPS by 10000 to get the actual rebate rate - rebateRate := new(big.Float).Quo(rebateBPS, big.NewFloat(10000)) - rebateUSD := new(big.Float).Mul(amountUSD, rebateRate) - - // Convert arbPrice to big.Float - arbPrice := new(big.Float).SetFloat64(transaction.ArbPrice) - - // Calculate the amount of ARB to transfer (rebateUSD / arbPrice) - transferAmountFloat := new(big.Float).Quo(rebateUSD, arbPrice) - - // Convert the transfer amount to big.Int (assuming we want to truncate to the integer value) - // Multiply by 10^18 to get the value in wei (like params.Ether does) - transferAmountFloatWei := new(big.Float).Mul(transferAmountFloat, big.NewFloat(1e18)) - transferAmount, _ := transferAmountFloatWei.Int(nil) // Truncate fractional part - // Check if transferAmount is greater than configured max ARB (MaxAmount * 10^18 wei) - limit := big.NewInt(s.cfg.ARBMaxTransfer) - limit = limit.Mul(limit, big.NewInt(1e18)) // Convert to wei - if transferAmount.Cmp(limit) > 0 { - return nil, fmt.Errorf("transfer amount exceeds the limit of %d ARB", s.cfg.ARBMaxTransfer) - } - // Check if transferAmount is lower than configured min ARB (MinAmount * 10^18 wei) - minAmountFloat := new(big.Float).SetFloat64(s.cfg.ARBMinTransfer) - minAmountFloatWei := new(big.Float).Mul(minAmountFloat, big.NewFloat(1e18)) - minAmount, _ := minAmountFloatWei.Int(nil) // Truncate fractional part - if transferAmount.Cmp(minAmount) < 0 { - return nil, fmt.Errorf("transfer amount is lower than the minimum of %f ARB", s.cfg.ARBMinTransfer) - } - // If you need to round to the nearest integer instead of truncating, use the following: - // transferAmount := new(big.Int) - // transferAmountFloat.Int(transferAmount) // Round to the nearest integer - - // Finally, apply the rebate cap - var err error - transferAmount, err = s.applyRebateCap(ctx, transaction, transferAmount) - if err != nil { - return nil, fmt.Errorf("could not apply rebate cap: %w", err) - } - - return transferAmount, nil -} - -func (s *STIPRelayer) applyRebateCap(ctx context.Context, transaction *db.STIPTransactions, amount *big.Int) (*big.Int, error) { - totalArbRebated, err := s.db.GetTotalArbRebated(ctx, transaction.Address) - if err != nil { - return nil, fmt.Errorf("could not get total ARB rebated: %w", err) - } - rebateCap := new(big.Int).Mul(big.NewInt(s.cfg.GetArbCapPerAddress()), big.NewInt(1e18)) // Convert to wei - remainingAmount := new(big.Int).Sub(rebateCap, totalArbRebated) - - if remainingAmount.Cmp(big.NewInt(0)) <= 0 { - return nil, fmt.Errorf("address has reached the ARB rebate cap: %s", rebateCap.String()) - } else if amount.Cmp(remainingAmount) >= 0 { - return remainingAmount, nil - } - return amount, nil -} diff --git a/services/stiprelayer/relayer/relayer_test.go b/services/stiprelayer/relayer/relayer_test.go deleted file mode 100644 index 8961a3c29c..0000000000 --- a/services/stiprelayer/relayer/relayer_test.go +++ /dev/null @@ -1,99 +0,0 @@ -package relayer_test - -// func TestExecuteDuneQuery(t *testing.T) { -// resp, err := stiprelayer.ExecuteDuneQuery() -// if err != nil { -// t.Fatalf("Failed to execute Dune query: %v", err) -// } - -// if resp.StatusCode != 200 { -// t.Errorf("Expected status code 200, got %d", resp.StatusCode) -// } - -// body, err := ioutil.ReadAll(resp.Body) -// if err != nil { -// t.Fatalf("Failed to read response body: %v", err) -// } - -// if len(body) == 0 { -// t.Error("Expected non-empty response body, got empty") -// } - -// fmt.Println(string(body)) -// } - -// func TestGetExecutionResults(t *testing.T) { -// resp, err := stiprelayer.ExecuteDuneQuery() -// if err != nil { -// t.Fatalf("Failed to execute Dune query: %v", err) -// } - -// body, err := ioutil.ReadAll(resp.Body) -// if err != nil { -// t.Fatalf("Failed to read response body: %v", err) -// } - -// var result map[string]string -// err = json.Unmarshal(body, &result) -// if err != nil { -// t.Fatalf("Failed to unmarshal response body: %v", err) -// } - -// execution_id, ok := result["execution_id"] -// if !ok { -// t.Fatal("No execution_id found in the response") -// } - -// time.Sleep(20000 * time.Millisecond) - -// resp, err = stiprelayer.GetExecutionResults(execution_id) -// if err != nil { -// t.Fatalf("Failed to get execution results: %v", err) -// } - -// if resp.StatusCode != 200 { -// t.Errorf("Expected status code 200, got %d", resp.StatusCode) -// } - -// getResultsBody, err := ioutil.ReadAll(resp.Body) - -// fmt.Println(string(getResultsBody)) - -// } - -func (c *STIPRelayerSuite) TestStartRelayer() { - // go func() { - // _ = c.stipRelayer.Run(c.GetTestContext()) - // }() - - // time.Sleep(30000 * time.Millisecond) - // results, err := c.database.GetSTIPTransactionsNotRebated(c.GetTestContext()) - // c.Require().NoError(err) - - // fmt.Println("LENGTH: " + strconv.Itoa(len(results))) - - // time.Sleep(30000 * time.Millisecond) - - // arbERC20Instance, err := mockerc20.NewMockERC20(c.arbERC20Address, c.arbitrumSimulatedBackend) - // c.Require().NoError(err) - // balance, err := arbERC20Instance.BalanceOf(&bind.CallOpts{}, common.HexToAddress("0x119bde4540d7703c2f12d37aba39a24cc49d74e8")) - // c.Require().NoError(err) - // c.Require().Equal(balance.String(), "1000000000000000000") - // fmt.Println("BALANCE: " + balance.String()) -} - -func (c *STIPRelayerSuite) TestQueryAndStore() { - // c.stipRelayer.ProcessExecutionResults(c.GetTestContext()) - // resultsFirst, err := c.database.GetSTIPTransactionsNotRebated(c.GetTestContext()) - // c.Require().NoError(err) - - // fmt.Println("LENGTH: " + strconv.Itoa(len(resultsFirst))) - - // c.stipRelayer.ProcessExecutionResults(c.GetTestContext()) - - // resultsSecond, err := c.database.GetSTIPTransactionsNotRebated(c.GetTestContext()) - // c.Require().NoError(err) - - // fmt.Println("LENGTH: " + strconv.Itoa(len(resultsSecond))) - // c.Require().Equal(len(resultsFirst), len(resultsSecond)) -} diff --git a/services/stiprelayer/relayer/suite_test.go b/services/stiprelayer/relayer/suite_test.go deleted file mode 100644 index 72e0dcd5a6..0000000000 --- a/services/stiprelayer/relayer/suite_test.go +++ /dev/null @@ -1,126 +0,0 @@ -package relayer_test - -import ( - "fmt" - "testing" - "time" - - "math/big" - - "github.com/Flaque/filet" - "github.com/ethereum/go-ethereum/accounts/abi/bind" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/params" - "github.com/stretchr/testify/suite" - "github.com/synapsecns/sanguine/core/dbcommon" - "github.com/synapsecns/sanguine/core/metrics" - "github.com/synapsecns/sanguine/core/testsuite" - "github.com/synapsecns/sanguine/ethergo/backends" - "github.com/synapsecns/sanguine/ethergo/backends/geth" - signerConfig "github.com/synapsecns/sanguine/ethergo/signer/config" - "github.com/synapsecns/sanguine/ethergo/signer/wallet" - submitterConfig "github.com/synapsecns/sanguine/ethergo/submitter/config" - omniClient "github.com/synapsecns/sanguine/services/omnirpc/client" - omnirpcHelper "github.com/synapsecns/sanguine/services/omnirpc/testhelper" - "github.com/synapsecns/sanguine/services/rfq/contracts/testcontracts/mockerc20" - "github.com/synapsecns/sanguine/services/stiprelayer/db" - "github.com/synapsecns/sanguine/services/stiprelayer/db/sql" - "github.com/synapsecns/sanguine/services/stiprelayer/relayer" - "github.com/synapsecns/sanguine/services/stiprelayer/stipconfig" -) - -type STIPRelayerSuite struct { - *testsuite.TestSuite - omniRPCClient omniClient.RPCClient - omniRPCTestBackends []backends.SimulatedTestBackend - arbitrumSimulatedBackend backends.SimulatedTestBackend - database db.STIPDB - cfg stipconfig.Config - testWallet wallet.Wallet - handler metrics.Handler - arbERC20Address common.Address - stipRelayer *relayer.STIPRelayer -} - -func NewSTIPRelayerSuite(tb testing.TB) *STIPRelayerSuite { - tb.Helper() - return &STIPRelayerSuite{ - TestSuite: testsuite.NewTestSuite(tb), - } -} - -func (c *STIPRelayerSuite) SetupTest() { - c.TestSuite.SetupTest() - - testOmnirpc := omnirpcHelper.NewOmnirpcServer(c.GetTestContext(), c.T(), c.omniRPCTestBackends...) - omniRPCClient := omniClient.NewOmnirpcClient(testOmnirpc, c.handler, omniClient.WithCaptureReqRes()) - c.omniRPCClient = omniRPCClient - - stipRelayerInstance, err := relayer.NewSTIPRelayer(c.GetTestContext(), c.cfg, c.handler, c.omniRPCClient, c.database) - c.Require().NoError(err) - c.stipRelayer = stipRelayerInstance -} - -func (c *STIPRelayerSuite) SetupSuite() { - c.TestSuite.SetupSuite() - - arbChainID := uint64(42161) - backend := geth.NewEmbeddedBackendForChainID(c.GetSuiteContext(), c.T(), new(big.Int).SetUint64(arbChainID)) - - testWallet, err := wallet.FromRandom() - c.Require().NoError(err) - c.testWallet = testWallet - c.Require().NoError(err) - // Fund with relayer gas to deploy arb address for testing - backend.FundAccount(c.GetSuiteContext(), c.testWallet.Address(), *big.NewInt(params.Ether)) - - c.arbitrumSimulatedBackend = backend - c.omniRPCTestBackends = append(c.omniRPCTestBackends, c.arbitrumSimulatedBackend) - fmt.Println(c.arbitrumSimulatedBackend.RPCAddress()) - fmt.Println(c.omniRPCTestBackends[0].RPCAddress()) - c.handler = metrics.NewNullHandler() - - // Create an auth to interact with the blockchain - arbChainIDBigInt := big.NewInt(int64(arbChainID)) - auth, err := bind.NewKeyedTransactorWithChainID(c.testWallet.PrivateKey(), arbChainIDBigInt) - c.Require().NoError(err) - - mockErc20Address, tx, _, err := mockerc20.DeployMockERC20(auth, backend, "Arbitrum", 18) - c.Require().NoError(err) - backend.WaitForConfirmation(c.GetSuiteContext(), tx) - - c.arbERC20Address = mockErc20Address - - arbERC20Instance, err := mockerc20.NewMockERC20(c.arbERC20Address, backend) - c.Require().NoError(err) - // Mint 1e18 - ether := big.NewInt(params.Ether) - tx, err = arbERC20Instance.Mint(auth, c.testWallet.Address(), ether.Mul(ether, big.NewInt(10000))) - c.Require().NoError(err) - backend.WaitForConfirmation(c.GetSuiteContext(), tx) - - signerConfig := signerConfig.SignerConfig{ - Type: signerConfig.FileType.String(), - File: filet.TmpFile(c.T(), "", c.testWallet.PrivateKeyHex()).Name(), - } - - dbType, err := dbcommon.DBTypeFromString("sqlite") - c.Require().NoError(err) - - // TODO use temp file / in memory sqlite3 to not create in directory files - testDB, _ := sql.Connect(c.GetSuiteContext(), dbType, filet.TmpDir(c.T(), ""), c.handler) - c.database = testDB - - c.cfg = stipconfig.Config{ - Signer: signerConfig, - SubmitterConfig: submitterConfig.Config{}, - ArbAddress: c.arbERC20Address.Hex(), - ArbChainID: arbChainID, - StartDate: time.Date(2024, time.January, 23, 0, 0, 0, 0, time.UTC), - } -} - -// TestConfigSuite runs the integration test suite. -func TestSTIPRelayerSuite(t *testing.T) { - suite.Run(t, NewSTIPRelayerSuite(t)) -} diff --git a/services/stiprelayer/stipapi/server.go b/services/stiprelayer/stipapi/server.go deleted file mode 100644 index bd9966b8ed..0000000000 --- a/services/stiprelayer/stipapi/server.go +++ /dev/null @@ -1,161 +0,0 @@ -// Package stipapi provides RESTful API services for the STIP relayer -package stipapi - -import ( - "context" - "fmt" - "net/http" - - "github.com/gin-gonic/gin" - "github.com/ipfs/go-log" - "github.com/synapsecns/sanguine/core/ginhelper" - "github.com/synapsecns/sanguine/core/metrics" - baseServer "github.com/synapsecns/sanguine/core/server" - "github.com/synapsecns/sanguine/services/stiprelayer/stipconfig" -) - -// Server struct holds the configuration, gin engine, and metrics handler. -type Server struct { - cfg stipconfig.Config - engine *gin.Engine - handler metrics.Handler -} - -// NewStipAPI creates a new instance of Server with the provided configuration and metrics handler. -func NewStipAPI( - ctx context.Context, - cfg stipconfig.Config, - handler metrics.Handler, -) (*Server, error) { - if ctx == nil { - return nil, fmt.Errorf("context is nil") - } - if handler == nil { - return nil, fmt.Errorf("handler is nil") - } - - return &Server{ - cfg: cfg, - handler: handler, - }, nil -} - -var logger = log.Logger("stip-api") - -// Handler is the REST API handler. -type Handler struct { - cfg stipconfig.Config -} - -// NewHandler creates a new REST API handler. -func NewHandler(cfg stipconfig.Config) *Handler { - return &Handler{ - cfg: cfg, - } -} - -// GetHealth returns a successful response to signify the API is up and running. -func (h *Handler) GetHealth(c *gin.Context) { - c.JSON(http.StatusOK, gin.H{"status": "ok"}) -} - -// GetFeeAndRebateInfo returns the current STIP Relayer's rebate configuration. -func (h *Handler) GetFeeAndRebateInfo(c *gin.Context) { - feesAndRebates := ConvertFeesAndRebatesToJSON(h.cfg.FeesAndRebates) - c.JSON(http.StatusOK, feesAndRebates) -} - -const ( - getHealthRoute = "/health" - getFeeAndRebateInfo = "/fee-rebate-bps" -) - -// Run runs the rest api server. -func (r *Server) Run(ctx context.Context) error { - // TODO: Use Gin Helper - engine := ginhelper.New(logger) - h := NewHandler(r.cfg) - - // Assign GET routes - engine.GET(getHealthRoute, h.GetHealth) - engine.GET(getFeeAndRebateInfo, h.GetFeeAndRebateInfo) - - r.engine = engine - - connection := baseServer.Server{} - fmt.Printf("starting api at http://localhost:%s\n", r.cfg.StipAPIPort) - err := connection.ListenAndServe(ctx, fmt.Sprintf(":%s", r.cfg.StipAPIPort), r.engine) - if err != nil { - return fmt.Errorf("could not start relayer api server: %w", err) - } - - return nil -} - -// ConvertFeesAndRebatesToJSON converts the configured fees and rebates to a JSON that is more consumable. -func ConvertFeesAndRebatesToJSON(feesAndRebates stipconfig.FeesAndRebates) map[int]interface{} { - jsonOutput := make(map[int]interface{}) - - for toChain, moduleFeeRebate := range feesAndRebates { - fromChain := determineFromChain(toChain) - - // Initialize the toChainMap if necessary - if _, exists := jsonOutput[toChain]; !exists { - jsonOutput[toChain] = make(map[string]interface{}) - } - toChainMap, ok := jsonOutput[toChain].(map[string]interface{}) - if !ok { - // Instead of logging fatally, we should handle the error gracefully - // Log the error and continue with an empty map for toChainMap - fmt.Printf("Type assertion failed: expected map[string]interface{}, got %T\n", jsonOutput[toChain]) - toChainMap = make(map[string]interface{}) - } - - // Initialize the fromChainMap if necessary - var fromChainMap map[string]interface{} - existingFromChainMap, exists := toChainMap[fromChain] - if exists { - var ok bool - fromChainMap, ok = existingFromChainMap.(map[string]interface{}) - if !ok { - fmt.Printf("Type assertion failed: expected map[string]interface{}, got %T\n", existingFromChainMap) - fromChainMap = make(map[string]interface{}) - } - } else { - fromChainMap = make(map[string]interface{}) - toChainMap[fromChain] = fromChainMap - } - - for moduleName, tokenFeeRebate := range moduleFeeRebate { - // Initialize moduleMap if necessary - if _, exists := fromChainMap[moduleName]; !exists { - fromChainMap[moduleName] = make(map[string]interface{}) - } - moduleMap, ok := fromChainMap[moduleName].(map[string]interface{}) - if !ok { - fmt.Printf("Type assertion failed: expected map[string]interface{}, got %T\n", fromChainMap[moduleName]) - moduleMap = make(map[string]interface{}) - } - - for token, feeRebate := range tokenFeeRebate { - // Convert each FeeRebate into a map with "fee" and "rebate" as keys - moduleMap[token] = map[string]float64{"fee": feeRebate.Fee, "rebate": feeRebate.RebateBps} - } - } - } - - return jsonOutput -} - -func determineFromChain(toChain int) string { - switch toChain { - case 42161: - return "anyFromChain" - case 1: - return "42161" - case 43114: - return "42161" - default: - return "anyFromChain" - } -} diff --git a/services/stiprelayer/stipapi/server_test.go b/services/stiprelayer/stipapi/server_test.go deleted file mode 100644 index dbcd5c0949..0000000000 --- a/services/stiprelayer/stipapi/server_test.go +++ /dev/null @@ -1,57 +0,0 @@ -package stipapi_test - -// func TestLoadAndConvertFeesAndRebates(t *testing.T) { -// // Load the config -// config, err := stipconfig.LoadConfig("../test-config.yaml") -// if err != nil { -// t.Fatalf("Failed to load config: %s", err) -// } - -// // Convert the FeesAndRebates data -// jsonOutput := stipapi.ConvertFeesAndRebatesToJSON(config.FeesAndRebates) - -// // Expected output (based on your requirements and sample data) -// expectedOutput := map[int]interface{}{ -// 42161: map[string]interface{}{ -// "anyFromChain": map[string]interface{}{ -// "SynapseBridge": map[string]interface{}{ -// "nETH": map[string]int{"fee": 4, "rebate": 6}, -// "WETH": map[string]int{"fee": 4, "rebate": 6}, -// "nUSD": map[string]int{"fee": 4, "rebate": 6}, -// "GMX": map[string]int{"fee": 5, "rebate": 6}, -// }, -// "SynapseCCTP": map[string]interface{}{ -// "USDC": map[string]int{"fee": 4, "rebate": 5}, -// }, -// "SynapseRFQ": map[string]interface{}{ -// "USDC": map[string]int{"fee": 4, "rebate": 5}, -// }, -// }, -// }, -// 1: map[string]interface{}{ -// "42161": map[string]interface{}{ -// "SynapseBridge": map[string]interface{}{ -// "nETH": map[string]int{"fee": 10, "rebate": 12}, -// "WETH": map[string]int{"fee": 10, "rebate": 12}, -// "nUSD": map[string]int{"fee": 12, "rebate": 14}, -// }, -// "SynapseCCTP": map[string]interface{}{ -// "USDC": map[string]int{"fee": 4, "rebate": 5}, -// }, -// "SynapseRFQ": map[string]interface{}{ -// "USDC": map[string]int{"fee": 4, "rebate": 5}, -// }, -// }, -// }, -// 43114: map[string]interface{}{ -// "42161": map[string]interface{}{ -// "SynapseBridge": map[string]interface{}{ -// "GMX": map[string]int{"fee": 5, "rebate": 6}, -// }, -// "SynapseCCTP": map[string]interface{}{}, -// "SynapseRFQ": map[string]interface{}{}, -// }, -// }, -// } - -// } diff --git a/services/stiprelayer/stipconfig/config.go b/services/stiprelayer/stipconfig/config.go deleted file mode 100644 index 7f5a96ecc3..0000000000 --- a/services/stiprelayer/stipconfig/config.go +++ /dev/null @@ -1,94 +0,0 @@ -// Package stipconfig contains the configuration structures and logic for the STIP relayer service. -package stipconfig - -import ( - "fmt" - "os" - "path/filepath" - "time" - - "github.com/jftuga/ellipsis" - "github.com/synapsecns/sanguine/ethergo/signer/config" - submitterConfig "github.com/synapsecns/sanguine/ethergo/submitter/config" - "gopkg.in/yaml.v2" -) - -// DatabaseConfig represents the configuration for the database. -type DatabaseConfig struct { - Type string `yaml:"type"` - DSN string `yaml:"dsn"` // Data Source Name -} - -// FeeRebate represents the fee and rebate values. -type FeeRebate struct { - Fee float64 `yaml:"fee"` // Fee is the cost that will be charged. - RebateBps float64 `yaml:"rebate_bps"` // RebateBps is the amount that will be returned, in units of basis points. -} - -// TokenFeeRebate is a map where the key is a string representing a token, -// and the value is a FeeRebate struct representing the fee and rebate for that token. -type TokenFeeRebate map[string]FeeRebate - -// ModuleFeeRebate is a map where the key is a string representing a module, -// and the value is a TokenFeeRebate map representing the fee and rebate for each token in that module. -type ModuleFeeRebate map[string]TokenFeeRebate - -// FeesAndRebates is a map where the key is an integer representing a specific category or group, -// and the value is a ModuleFeeRebate map representing the fee and rebate for each module in that category or group. -type FeesAndRebates map[int]ModuleFeeRebate - -// Config holds the configuration for the STIP relayer service. -type Config struct { - Signer config.SignerConfig `yaml:"signer"` - // Submitter is the submitter config. - SubmitterConfig submitterConfig.Config `yaml:"submitter_config"` - ArbAddress string `yaml:"arb_address"` - ArbChainID uint64 `yaml:"arb_chain_id"` - StartDate time.Time `yaml:"start_date"` - Database DatabaseConfig `yaml:"database"` - OmniRPCURL string `yaml:"omnirpc_url"` - FeesAndRebates FeesAndRebates `yaml:"fees_and_rebates"` - DuneInterval time.Duration `yaml:"dune_interval"` - RebateInterval time.Duration `yaml:"rebate_interval"` - StipAPIPort string `yaml:"stip_api_port"` - ARBMaxTransfer int64 `yaml:"ARB_max_transfer"` - ArbCapPerAddress int64 `yaml:"arb_cap_per_address"` - ARBMinTransfer float64 `yaml:"ARB_min_transfer"` - DuneLookbackHours int `yaml:"dune_lookback_hours"` - StipQueryID int `yaml:"stip_query_id"` - // ScreenerAPIUrl is the TRM API url. - ScreenerAPIUrl string `yaml:"screener_api_url"` -} - -const defaultArbCapPerAddress = 2000 - -// GetArbCapPerAddress returns the configured arb cap per address, in human-readable units. -func (c Config) GetArbCapPerAddress() int64 { - if c.ArbCapPerAddress == 0 { - return defaultArbCapPerAddress - } - return c.ArbCapPerAddress -} - -const defaultDuneLookbackHours = 24 - -// GetDuneLookbackHours returns the configured dune lookback hours. -func (c Config) GetDuneLookbackHours() int { - if c.DuneLookbackHours == 0 { - return defaultDuneLookbackHours - } - return c.DuneLookbackHours -} - -// LoadConfig loads the config from the given path. -func LoadConfig(path string) (config Config, err error) { - input, err := os.ReadFile(filepath.Clean(path)) - if err != nil { - return Config{}, fmt.Errorf("failed to read file: %w", err) - } - err = yaml.Unmarshal(input, &config) - if err != nil { - return Config{}, fmt.Errorf("could not unmarshall config %s: %w", ellipsis.Shorten(string(input), 30), err) - } - return config, nil -} From 3eccadbe1c6975493ebe487cd9de7735af4cc874 Mon Sep 17 00:00:00 2001 From: trajan0x <83933037+trajan0x@users.noreply.github.com> Date: Thu, 20 Jun 2024 10:39:13 -0400 Subject: [PATCH 08/85] bump harmony version (#2741) Co-authored-by: Trajan0x --- services/omnirpc/modules/harmonyproxy/harmonyproxy.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/omnirpc/modules/harmonyproxy/harmonyproxy.go b/services/omnirpc/modules/harmonyproxy/harmonyproxy.go index 5a1701cf46..54ab79007d 100644 --- a/services/omnirpc/modules/harmonyproxy/harmonyproxy.go +++ b/services/omnirpc/modules/harmonyproxy/harmonyproxy.go @@ -239,7 +239,7 @@ func (r *HarmonyProxy) makeReq(parentCtx context.Context, body []byte) (_ []byte return respBody, nil } -const expectedVersion = "Harmony (C) 2023. harmony, version v8197-v2023.4.2-1-g40a2374d" +const expectedVersion = "Harmony (C) 2023. harmony, version v8342-v2024.1.0-0-gb02ea4c83" // nolint: cyclop func (r *HarmonyProxy) getHarmonyReceiptVerify(parentCtx context.Context, txHash common.Hash, rawBody []byte, checkVersion bool) (_ []byte, err error) { From d014dce1ba1a8c94970bfc2dccf5b7d40064bd45 Mon Sep 17 00:00:00 2001 From: golangisfun123 Date: Thu, 20 Jun 2024 17:47:18 -0500 Subject: [PATCH 09/85] first commit --- ethergo/listener/listener.go | 24 ++++++++++++++++++++++++ ethergo/listener/options.go | 24 ++++++++++++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/ethergo/listener/listener.go b/ethergo/listener/listener.go index 8e8befd582..8c02dba98f 100644 --- a/ethergo/listener/listener.go +++ b/ethergo/listener/listener.go @@ -12,6 +12,7 @@ import ( "github.com/ethereum/go-ethereum" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/rpc" "github.com/ipfs/go-log" "github.com/jpillora/backoff" "github.com/synapsecns/sanguine/core/metrics" @@ -48,6 +49,8 @@ type chainListener struct { pollInterval, pollIntervalSetting time.Duration // newBlockHandler is an optional handler that is called when a new block is detected. newBlockHandler NewBlockHandler + finalityMode rpc.BlockNumber + blockWait uint64 } var ( @@ -66,6 +69,8 @@ func NewChainListener(omnirpcClient client.EVM, store listenerDB.ChainListenerDB client: omnirpcClient, backoff: newBackoffConfig(), pollIntervalSetting: time.Millisecond * 50, + finalityMode: FinalityModeLatest, + blockWait: 0, } for _, option := range options { @@ -183,6 +188,25 @@ func (c *chainListener) doPoll(parentCtx context.Context, handler HandleLog) (er return nil } +func (c chainListener) getBlockNumber(ctx context.Context) (uint64, error) { + var block *types.Block + var err error + + block, err = c.client.BlockByNumber(ctx, big.NewInt(c.finalityMode.Int64())) + + if err != nil { + return 0, err + } + + blockNumber := block.Number() + + if c.blockWait > 0 { + blockNumber.Sub(blockNumber, big.NewInt(int64(c.blockWait))) + } + + return blockNumber.Uint64(), nil +} + func (c chainListener) getMetadata(parentCtx context.Context) (startBlock, chainID uint64, err error) { var lastIndexed uint64 ctx, span := c.handler.Tracer().Start(parentCtx, "getMetadata") diff --git a/ethergo/listener/options.go b/ethergo/listener/options.go index 89c45c759d..c0e976efcf 100644 --- a/ethergo/listener/options.go +++ b/ethergo/listener/options.go @@ -3,6 +3,8 @@ package listener import ( "context" "time" + + "github.com/ethereum/go-ethereum/rpc" ) // Option is a functional option for chainListener. @@ -24,3 +26,25 @@ func WithPollInterval(interval time.Duration) Option { c.pollIntervalSetting = interval } } + +// FinalityMode represents the finality mode for block queries. + +const ( + FinalityModeSafe rpc.BlockNumber = rpc.SafeBlockNumber + FinalityModeFinalized rpc.BlockNumber = rpc.FinalizedBlockNumber + FinalityModeLatest rpc.BlockNumber = rpc.FinalizedBlockNumber +) + +// WithFinalityMode sets the finality mode. +func WithFinalityMode(mode rpc.BlockNumber) Option { + return func(c *chainListener) { + c.finalityMode = mode + } +} + +// WithBlockWait sets the block wait. +func WithBlockWait(wait uint64) Option { + return func(c *chainListener) { + c.blockWait = wait + } +} From b2b0ea0eb5164b2971b81b5d1f27b95c1db77155 Mon Sep 17 00:00:00 2001 From: golangisfun123 Date: Thu, 20 Jun 2024 17:55:34 -0500 Subject: [PATCH 10/85] fixing --- ethergo/listener/listener.go | 8 ++------ ethergo/listener/options.go | 10 +++++----- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/ethergo/listener/listener.go b/ethergo/listener/listener.go index 8c02dba98f..ccd5ca7a05 100644 --- a/ethergo/listener/listener.go +++ b/ethergo/listener/listener.go @@ -137,7 +137,7 @@ func (c *chainListener) doPoll(parentCtx context.Context, handler HandleLog) (er }() oldLatestBlock := c.latestBlock - c.latestBlock, err = c.client.BlockNumber(ctx) + c.latestBlock, err = c.getBlockNumber(ctx) if err != nil { return fmt.Errorf("could not get block number: %w", err) } @@ -189,11 +189,7 @@ func (c *chainListener) doPoll(parentCtx context.Context, handler HandleLog) (er } func (c chainListener) getBlockNumber(ctx context.Context) (uint64, error) { - var block *types.Block - var err error - - block, err = c.client.BlockByNumber(ctx, big.NewInt(c.finalityMode.Int64())) - + block, err := c.client.BlockByNumber(ctx, big.NewInt(c.finalityMode.Int64())) if err != nil { return 0, err } diff --git a/ethergo/listener/options.go b/ethergo/listener/options.go index c0e976efcf..b71ffb7c3a 100644 --- a/ethergo/listener/options.go +++ b/ethergo/listener/options.go @@ -27,12 +27,12 @@ func WithPollInterval(interval time.Duration) Option { } } -// FinalityMode represents the finality mode for block queries. - const ( - FinalityModeSafe rpc.BlockNumber = rpc.SafeBlockNumber - FinalityModeFinalized rpc.BlockNumber = rpc.FinalizedBlockNumber - FinalityModeLatest rpc.BlockNumber = rpc.FinalizedBlockNumber + FinalityModeSafe rpc.BlockNumber = rpc.SafeBlockNumber + FinalityModeFinalized rpc.BlockNumber = rpc.FinalizedBlockNumber + FinalityModeLatest rpc.BlockNumber = rpc.LatestBlockNumber + FinalityModePending rpc.BlockNumber = rpc.PendingBlockNumber + FinalityModeEarliestBlockNumber rpc.BlockNumber = rpc.EarliestBlockNumber ) // WithFinalityMode sets the finality mode. From 32ce20c43e9e00a190a0a6f3956ac4cfc2686ebc Mon Sep 17 00:00:00 2001 From: golangisfun123 Date: Thu, 20 Jun 2024 18:18:24 -0500 Subject: [PATCH 11/85] cleanup --- ethergo/listener/listener.go | 2 +- ethergo/listener/options.go | 23 +++++++++++++---------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/ethergo/listener/listener.go b/ethergo/listener/listener.go index ccd5ca7a05..9f59c1b0d5 100644 --- a/ethergo/listener/listener.go +++ b/ethergo/listener/listener.go @@ -69,7 +69,7 @@ func NewChainListener(omnirpcClient client.EVM, store listenerDB.ChainListenerDB client: omnirpcClient, backoff: newBackoffConfig(), pollIntervalSetting: time.Millisecond * 50, - finalityMode: FinalityModeLatest, + finalityMode: rpc.LatestBlockNumber, blockWait: 0, } diff --git a/ethergo/listener/options.go b/ethergo/listener/options.go index b71ffb7c3a..97f87b20ac 100644 --- a/ethergo/listener/options.go +++ b/ethergo/listener/options.go @@ -27,18 +27,21 @@ func WithPollInterval(interval time.Duration) Option { } } -const ( - FinalityModeSafe rpc.BlockNumber = rpc.SafeBlockNumber - FinalityModeFinalized rpc.BlockNumber = rpc.FinalizedBlockNumber - FinalityModeLatest rpc.BlockNumber = rpc.LatestBlockNumber - FinalityModePending rpc.BlockNumber = rpc.PendingBlockNumber - FinalityModeEarliestBlockNumber rpc.BlockNumber = rpc.EarliestBlockNumber -) - // WithFinalityMode sets the finality mode. -func WithFinalityMode(mode rpc.BlockNumber) Option { +func WithFinalityMode(mode string) Option { return func(c *chainListener) { - c.finalityMode = mode + switch mode { + case "latest": + c.finalityMode = rpc.LatestBlockNumber + case "earliest": + c.finalityMode = rpc.EarliestBlockNumber + case "pending": + c.finalityMode = rpc.PendingBlockNumber + case "safe": + c.finalityMode = rpc.SafeBlockNumber + case "finalized": + c.finalityMode = rpc.FinalizedBlockNumber + } } } From 1ec0562b1e7da6596df7c463160b9c65119cfefd Mon Sep 17 00:00:00 2001 From: golangisfun123 Date: Thu, 20 Jun 2024 18:59:16 -0500 Subject: [PATCH 12/85] test --- ethergo/listener/listener_test.go | 78 +++++++++++++++++++++++++++---- ethergo/listener/options.go | 4 -- 2 files changed, 68 insertions(+), 14 deletions(-) diff --git a/ethergo/listener/listener_test.go b/ethergo/listener/listener_test.go index 633a5cfcef..7feae7f5d4 100644 --- a/ethergo/listener/listener_test.go +++ b/ethergo/listener/listener_test.go @@ -3,10 +3,11 @@ package listener_test import ( "context" "fmt" + "sync" + "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/core/types" "github.com/synapsecns/sanguine/ethergo/listener" - "sync" ) func (l *ListenerTestSuite) TestListenForEvents() { @@ -14,13 +15,10 @@ func (l *ListenerTestSuite) TestListenForEvents() { var wg sync.WaitGroup const iterations = 10 for i := 0; i < iterations; i++ { - i := i wg.Add(1) - go func(_ int) { + go func() { defer wg.Done() - auth := l.backend.GetTxContext(l.GetTestContext(), nil) - //nolint:typecheck bridgeRequestTX, err := handle.IncrementCounter(auth.TransactOpts) l.NoError(err) @@ -32,7 +30,7 @@ func (l *ListenerTestSuite) TestListenForEvents() { l.NoError(err) l.NotNil(bridgeResponseTX) l.backend.WaitForConfirmation(l.GetTestContext(), bridgeResponseTX) - }(i) + }() } wg.Wait() @@ -40,10 +38,47 @@ func (l *ListenerTestSuite) TestListenForEvents() { startBlock, err := handle.DeployBlock(&bind.CallOpts{Context: l.GetTestContext()}) l.NoError(err) - cl, err := listener.NewChainListener(l.backend, l.store, handle.Address(), uint64(startBlock.Int64()), l.metrics, listener.WithNewBlockHandler(func(ctx context.Context, block uint64) error { - fmt.Println(block) - return nil - })) + cl, err := listener.NewChainListener( + l.backend, + l.store, + handle.Address(), + uint64(startBlock.Int64()), + l.metrics, + listener.WithNewBlockHandler(func(ctx context.Context, block uint64) error { + fmt.Println(block) + return nil + }), + ) + l.NoError(err) + + clSafe, err := listener.NewChainListener( + l.backend, + l.store, + handle.Address(), + uint64(startBlock.Int64()), + l.metrics, + listener.WithNewBlockHandler(func(ctx context.Context, block uint64) error { + fmt.Println(block) + return nil + }), + listener.WithFinalityMode("safe"), + listener.WithBlockWait(10), + ) + l.NoError(err) + + clFinalized, err := listener.NewChainListener( + l.backend, + l.store, + handle.Address(), + uint64(startBlock.Int64()), + l.metrics, + listener.WithNewBlockHandler(func(ctx context.Context, block uint64) error { + fmt.Println(block) + return nil + }), + listener.WithFinalityMode("finalized"), + listener.WithBlockWait(10), + ) l.NoError(err) eventCount := 0 @@ -59,4 +94,27 @@ func (l *ListenerTestSuite) TestListenForEvents() { return nil }) + + _ = clSafe.Listen(listenCtx, func(ctx context.Context, log types.Log) error { + eventCount++ + + if eventCount == iterations*2 { + cancel() + } + + return nil + }) + + _ = clFinalized.Listen(listenCtx, func(ctx context.Context, log types.Log) error { + eventCount++ + + if eventCount == iterations*2 { + cancel() + } + + return nil + }) + + l.NotEqual(cl.LatestBlock(), clFinalized.LatestBlock(), clSafe.LatestBlock()) + } diff --git a/ethergo/listener/options.go b/ethergo/listener/options.go index 97f87b20ac..9413ab315e 100644 --- a/ethergo/listener/options.go +++ b/ethergo/listener/options.go @@ -33,10 +33,6 @@ func WithFinalityMode(mode string) Option { switch mode { case "latest": c.finalityMode = rpc.LatestBlockNumber - case "earliest": - c.finalityMode = rpc.EarliestBlockNumber - case "pending": - c.finalityMode = rpc.PendingBlockNumber case "safe": c.finalityMode = rpc.SafeBlockNumber case "finalized": From 7ac826a2f5c72a4ae7275d666a3bb2b8c054dbb8 Mon Sep 17 00:00:00 2001 From: trajan0x <83933037+trajan0x@users.noreply.github.com> Date: Thu, 20 Jun 2024 19:59:38 -0400 Subject: [PATCH 13/85] extracontainers (#2759) Co-authored-by: Trajan0x --- charts/cctp/Chart.yaml | 2 +- charts/cctp/templates/deployment.yaml | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/charts/cctp/Chart.yaml b/charts/cctp/Chart.yaml index 2019e77684..7184346a8f 100644 --- a/charts/cctp/Chart.yaml +++ b/charts/cctp/Chart.yaml @@ -15,7 +15,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.2.2 +version: 0.3.0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to diff --git a/charts/cctp/templates/deployment.yaml b/charts/cctp/templates/deployment.yaml index 2aab897082..20273ca48a 100644 --- a/charts/cctp/templates/deployment.yaml +++ b/charts/cctp/templates/deployment.yaml @@ -57,6 +57,9 @@ spec: volumeMounts: - name: configmap mountPath: /config + {{- if .extraContainers }} + {{- toYaml .extraContainers | nindent 8 }} + {{- end }} {{- with .Values.nodeSelector }} nodeSelector: {{- toYaml . | nindent 8 }} From 888792fb80aa71ecb8aa064ffc12ec928d5ae7d5 Mon Sep 17 00:00:00 2001 From: golangisfun123 Date: Thu, 20 Jun 2024 19:05:06 -0500 Subject: [PATCH 14/85] wrapped error lint --- ethergo/listener/listener.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ethergo/listener/listener.go b/ethergo/listener/listener.go index 9f59c1b0d5..e55a997b09 100644 --- a/ethergo/listener/listener.go +++ b/ethergo/listener/listener.go @@ -191,7 +191,7 @@ func (c *chainListener) doPoll(parentCtx context.Context, handler HandleLog) (er func (c chainListener) getBlockNumber(ctx context.Context) (uint64, error) { block, err := c.client.BlockByNumber(ctx, big.NewInt(c.finalityMode.Int64())) if err != nil { - return 0, err + return 0, fmt.Errorf("could not get block by number: %w", err) } blockNumber := block.Number() From b189451ec8d63b4ca4a06e248b6dffb79c9a32cc Mon Sep 17 00:00:00 2001 From: trajan0x <83933037+trajan0x@users.noreply.github.com> Date: Thu, 20 Jun 2024 20:11:21 -0400 Subject: [PATCH 15/85] add default backup behavior (#2761) Co-authored-by: Trajan0x --- .../modules/receiptsbackup/receiptsbackup.go | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/services/omnirpc/modules/receiptsbackup/receiptsbackup.go b/services/omnirpc/modules/receiptsbackup/receiptsbackup.go index 39eb5aee32..94e7f122d9 100644 --- a/services/omnirpc/modules/receiptsbackup/receiptsbackup.go +++ b/services/omnirpc/modules/receiptsbackup/receiptsbackup.go @@ -136,11 +136,12 @@ func (r *receiptsProxyImpl) ProxyRequest(c *gin.Context) (err error) { } func (r *receiptsProxyImpl) processRequest(ctx context.Context, rpcRequest rpc.Request, requestID []byte) (resp omniHTTP.Response, err error) { + req := r.client.NewRequest() + body, err := json.Marshal(rpcRequest) + //nolint: exhaustive switch client.RPCMethod(rpcRequest.Method) { case client.TransactionReceiptByHashMethod: - req := r.client.NewRequest() - body, err := json.Marshal(rpcRequest) if err != nil { return nil, errors.New("could not marshal request") } @@ -172,7 +173,22 @@ func (r *receiptsProxyImpl) processRequest(ctx context.Context, rpcRequest rpc.R return nil, fmt.Errorf("could not get response from backup RPC %s: %w", r.proxyURL, err) } } + return resp, nil + default: + resp, err = req. + SetContext(ctx). + SetRequestURI(r.proxyURL). + SetBody(body). + SetHeaderBytes(omniHTTP.XRequestID, requestID). + SetHeaderBytes(omniHTTP.XForwardedFor, []byte(r.proxyURL)). + SetHeaderBytes(omniHTTP.ContentType, omniHTTP.JSONType). + SetHeaderBytes(omniHTTP.Accept, omniHTTP.JSONType). + Do() + + if err != nil { + return nil, fmt.Errorf("could not get response from RPC %s: %w", r.proxyURL, err) + } + return resp, nil } - return nil, nil } From 37af1a8b1a06d58038d5405b1246f2a475f48180 Mon Sep 17 00:00:00 2001 From: dwasse Date: Fri, 21 Jun 2024 10:04:52 -0500 Subject: [PATCH 16/85] Submitter: fix transaction bumping (#2756) * Feat: use vanilla wg instead of errgroup * Cleanup: make wg local * [goreleaser] --- ethergo/submitter/chain_queue.go | 197 ++++++++++++++++--------------- 1 file changed, 101 insertions(+), 96 deletions(-) diff --git a/ethergo/submitter/chain_queue.go b/ethergo/submitter/chain_queue.go index dc05d9defb..3fb012d795 100644 --- a/ethergo/submitter/chain_queue.go +++ b/ethergo/submitter/chain_queue.go @@ -21,7 +21,6 @@ import ( "go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/metric" "go.opentelemetry.io/otel/trace" - "golang.org/x/sync/errgroup" ) // chainQueue is a single use queue for a single chain. @@ -29,8 +28,6 @@ type chainQueue struct { *txSubmitterImpl // client is the client for this chain client client.EVM - // g is the errgroup for this chain - g *errgroup.Group // client is the nonce used for this chain nonce uint64 // txsHaveConfirmed is true if any of the txes have confirmed @@ -71,11 +68,10 @@ func (t *txSubmitterImpl) chainPendingQueue(parentCtx context.Context, chainID * span.AddEvent("could not register nonce", trace.WithAttributes(attribute.String("error", registerErr.Error()))) } - g, gCtx := errgroup.WithContext(ctx) + wg := &sync.WaitGroup{} cq := chainQueue{ txSubmitterImpl: t, - g: g, chainID: core.CopyBigInt(chainID), nonce: currentNonce, client: chainClient, @@ -105,15 +101,30 @@ func (t *txSubmitterImpl) chainPendingQueue(parentCtx context.Context, chainID * span.AddEvent("tx out of gas", trace.WithAttributes(txToAttributes(tx.Transaction, tx.UUID)...)) break } - cq.bumpTX(gCtx, tx) - } - cq.updateOldTxStatuses(gCtx) - err = cq.g.Wait() - if err != nil { - return fmt.Errorf("error in chainPendingQueue: %w", err) + // bump tx in new goroutine + wg.Add(1) + go func() { + defer wg.Done() + bumpErr := cq.bumpTX(ctx, tx) + if bumpErr != nil { + logger.Errorf("could not bump tx: %v", bumpErr) + } + }() } + // update old tx statuses in parallel + wg.Add(1) + go func() { + defer wg.Done() + updateErr := cq.updateOldTxStatuses(ctx) + if updateErr != nil { + logger.Errorf("could not update old tx statuses: %v", updateErr) + } + }() + + wg.Wait() + sort.Slice(cq.reprocessQueue, func(i, j int) bool { return cq.reprocessQueue[i].Nonce() < cq.reprocessQueue[j].Nonce() }) @@ -209,89 +220,87 @@ func (c *chainQueue) registerNumPendingTXes(ctx context.Context, num, chainID in } // nolint: cyclop -func (c *chainQueue) bumpTX(parentCtx context.Context, ogTx db.TX) { - c.g.Go(func() (err error) { - if !c.isBumpIntervalElapsed(ogTx) { - c.addToReprocessQueue(ogTx) - return nil - } - // copy the transaction, switching the type if we need to. - // this is required if the config changes to use legacy transactions on a tx that is already bumped. - tx, err := util.CopyTX(ogTx.Transaction, util.WithTxType(c.txTypeForChain(c.chainID))) - if err != nil { - return fmt.Errorf("could not copy tx: %w", err) - } +func (c *chainQueue) bumpTX(parentCtx context.Context, ogTx db.TX) (err error) { + if !c.isBumpIntervalElapsed(ogTx) { + c.addToReprocessQueue(ogTx) + return nil + } + // copy the transaction, switching the type if we need to. + // this is required if the config changes to use legacy transactions on a tx that is already bumped. + tx, err := util.CopyTX(ogTx.Transaction, util.WithTxType(c.txTypeForChain(c.chainID))) + if err != nil { + return fmt.Errorf("could not copy tx: %w", err) + } - ctx, span := c.metrics.Tracer().Start(parentCtx, "chainPendingQueue.bumpTX", trace.WithAttributes(attribute.Stringer(metrics.TxHash, tx.Hash()))) - defer func() { - metrics.EndSpanWithErr(span, err) - }() + ctx, span := c.metrics.Tracer().Start(parentCtx, "chainPendingQueue.bumpTX", trace.WithAttributes(attribute.Stringer(metrics.TxHash, tx.Hash()))) + defer func() { + metrics.EndSpanWithErr(span, err) + }() - newGasEstimate, err := c.getGasEstimate(ctx, c.client, c.chainIDInt(), tx) - if err != nil { - return fmt.Errorf("could not get gas estimate: %w", err) - } + newGasEstimate, err := c.getGasEstimate(ctx, c.client, c.chainIDInt(), tx) + if err != nil { + return fmt.Errorf("could not get gas estimate: %w", err) + } - transactor, err := c.signer.GetTransactor(ctx, c.chainID) - if err != nil { - return fmt.Errorf("could not get transactor: %w", err) - } + transactor, err := c.signer.GetTransactor(ctx, c.chainID) + if err != nil { + return fmt.Errorf("could not get transactor: %w", err) + } - transactor.NoSend = true - transactor.Nonce = new(big.Int).SetUint64(tx.Nonce()) - transactor.GasLimit = newGasEstimate + transactor.NoSend = true + transactor.Nonce = new(big.Int).SetUint64(tx.Nonce()) + transactor.GasLimit = newGasEstimate - err = c.setGasPrice(ctx, c.client, transactor, c.chainID, ogTx.Transaction) - if err != nil { - return fmt.Errorf("could not set gas price: %w", err) - } + err = c.setGasPrice(ctx, c.client, transactor, c.chainID, ogTx.Transaction) + if err != nil { + return fmt.Errorf("could not set gas price: %w", err) + } - switch tx.Type() { - case types.LegacyTxType: - tx = types.NewTx(&types.LegacyTx{ - Nonce: tx.Nonce(), - GasPrice: transactor.GasPrice, - Gas: transactor.GasLimit, - To: tx.To(), - Value: tx.Value(), - Data: tx.Data(), - }) - case types.DynamicFeeTxType: - tx = types.NewTx(&types.DynamicFeeTx{ - ChainID: tx.ChainId(), - Nonce: tx.Nonce(), - GasTipCap: core.CopyBigInt(transactor.GasTipCap), - GasFeeCap: core.CopyBigInt(transactor.GasFeeCap), - Gas: transactor.GasLimit, - To: tx.To(), - Value: tx.Value(), - Data: tx.Data(), - }) - default: - return fmt.Errorf("unknown tx type: %v", ogTx.Type()) - } + switch tx.Type() { + case types.LegacyTxType: + tx = types.NewTx(&types.LegacyTx{ + Nonce: tx.Nonce(), + GasPrice: transactor.GasPrice, + Gas: transactor.GasLimit, + To: tx.To(), + Value: tx.Value(), + Data: tx.Data(), + }) + case types.DynamicFeeTxType: + tx = types.NewTx(&types.DynamicFeeTx{ + ChainID: tx.ChainId(), + Nonce: tx.Nonce(), + GasTipCap: core.CopyBigInt(transactor.GasTipCap), + GasFeeCap: core.CopyBigInt(transactor.GasFeeCap), + Gas: transactor.GasLimit, + To: tx.To(), + Value: tx.Value(), + Data: tx.Data(), + }) + default: + return fmt.Errorf("unknown tx type: %v", ogTx.Type()) + } - tx, err = transactor.Signer(transactor.From, tx) - if err != nil { - return fmt.Errorf("could not sign tx: %w", err) - } + tx, err = transactor.Signer(transactor.From, tx) + if err != nil { + return fmt.Errorf("could not sign tx: %w", err) + } - span.AddEvent("add to reprocess queue") - span.SetAttributes(txToAttributes(tx, ogTx.UUID)...) + span.AddEvent("add to reprocess queue") + span.SetAttributes(txToAttributes(tx, ogTx.UUID)...) - c.addToReprocessQueue(db.TX{ - UUID: ogTx.UUID, - Transaction: tx, - Status: db.Stored, - }) + c.addToReprocessQueue(db.TX{ + UUID: ogTx.UUID, + Transaction: tx, + Status: db.Stored, + }) - registerErr := c.registerBumpTx(ctx, tx) - if registerErr != nil { - span.AddEvent("could not register bump tx", trace.WithAttributes(attribute.String("error", registerErr.Error()))) - } + registerErr := c.registerBumpTx(ctx, tx) + if registerErr != nil { + span.AddEvent("could not register bump tx", trace.WithAttributes(attribute.String("error", registerErr.Error()))) + } - return nil - }) + return nil } // addToReprocessQueue adds a tx to the reprocess queue. @@ -327,24 +336,20 @@ func (c *chainQueue) registerBumpTx(ctx context.Context, tx *types.Transaction) // updateOldTxStatuses updates the status of txes that are before the current nonce // this will only run if we have txes that have confirmed. -func (c *chainQueue) updateOldTxStatuses(parentCtx context.Context) { +func (c *chainQueue) updateOldTxStatuses(parentCtx context.Context) (err error) { // nothing to do if !c.txsHaveConfirmed { return } ctx, span := c.metrics.Tracer().Start(parentCtx, "chainPendingQueue.updateOldTxStatuses") + defer func() { + metrics.EndSpanWithErr(span, err) + }() - // start a new goroutine to mark the txes as replaced or confirmed in parallel - c.g.Go(func() (err error) { - defer func() { - metrics.EndSpanWithErr(span, err) - }() - - err = c.db.MarkAllBeforeNonceReplacedOrConfirmed(ctx, c.signer.Address(), c.chainID, c.nonce) - if err != nil { - return fmt.Errorf("could not mark txes: %w", err) - } - return nil - }) + err = c.db.MarkAllBeforeNonceReplacedOrConfirmed(ctx, c.signer.Address(), c.chainID, c.nonce) + if err != nil { + return fmt.Errorf("could not mark txes: %w", err) + } + return nil } From f10fae5c199a551a6e2f99bfb5296c688ba00c9b Mon Sep 17 00:00:00 2001 From: golangisfun123 Date: Fri, 21 Jun 2024 11:14:47 -0500 Subject: [PATCH 17/85] safe --- ethergo/listener/options.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ethergo/listener/options.go b/ethergo/listener/options.go index 9413ab315e..b8032e0ec1 100644 --- a/ethergo/listener/options.go +++ b/ethergo/listener/options.go @@ -2,6 +2,7 @@ package listener import ( "context" + "strings" "time" "github.com/ethereum/go-ethereum/rpc" @@ -30,13 +31,15 @@ func WithPollInterval(interval time.Duration) Option { // WithFinalityMode sets the finality mode. func WithFinalityMode(mode string) Option { return func(c *chainListener) { - switch mode { + switch strings.ToLower(mode) { case "latest": c.finalityMode = rpc.LatestBlockNumber case "safe": c.finalityMode = rpc.SafeBlockNumber case "finalized": c.finalityMode = rpc.FinalizedBlockNumber + default: + c.finalityMode = rpc.SafeBlockNumber } } } From afa9e473f1dade0ce99ae73ad568648928a44969 Mon Sep 17 00:00:00 2001 From: trajan0x <83933037+trajan0x@users.noreply.github.com> Date: Sat, 22 Jun 2024 04:09:07 -0400 Subject: [PATCH 18/85] opbot mvp (#2770) Co-authored-by: Trajan0x --- .codecov.yml | 4 + .gitattributes | 1 + .golangci.yml | 12 +- README.md | 1 + agents/go.mod | 49 +- agents/go.sum | 127 +-- contrib/git-changes-action/go.mod | 12 +- contrib/git-changes-action/go.sum | 23 +- contrib/opbot/.gitignore | 1 + contrib/opbot/.goreleaser.yml | 86 ++ contrib/opbot/Makefile | 1 + contrib/opbot/README.md | 1 + contrib/opbot/botmd/botmd.go | 40 + contrib/opbot/botmd/commands.go | 111 +++ contrib/opbot/cmd/cmd.go | 33 + contrib/opbot/cmd/commands.go | 53 ++ contrib/opbot/config/config.go | 19 + contrib/opbot/go.mod | 197 +++++ contrib/opbot/go.sum | 741 +++++++++++++++++ contrib/opbot/main.go | 13 + contrib/opbot/metadata/metadata.go | 15 + contrib/opbot/signoz/authed.go | 242 ++++++ contrib/opbot/signoz/doc.go | 3 + .../opbot/signoz/example/keychain/darwin.go | 21 + contrib/opbot/signoz/example/keychain/doc.go | 2 + .../signoz/example/keychain/unsupported.go | 19 + contrib/opbot/signoz/example/main.go | 170 ++++ contrib/opbot/signoz/generated/auth.go | 71 ++ contrib/opbot/signoz/generated/config.go | 57 ++ contrib/opbot/signoz/generated/dashboards.go | 254 ++++++ contrib/opbot/signoz/generated/db.go | 100 +++ contrib/opbot/signoz/generated/doc.go | 3 + contrib/opbot/signoz/generated/errors.go | 36 + contrib/opbot/signoz/generated/featureSet.go | 110 +++ contrib/opbot/signoz/generated/queryParams.go | 562 +++++++++++++ contrib/opbot/signoz/generated/response.go | 658 +++++++++++++++ .../signoz/generated/response_easyjson.go | 328 ++++++++ contrib/opbot/signoz/generated/v3/v3.go | 748 ++++++++++++++++++ contrib/opbot/signoz/unauthed.go | 66 ++ contrib/opbot/signoz/util.go | 111 +++ contrib/promexporter/go.mod | 22 +- contrib/promexporter/go.sum | 88 ++- contrib/screener-api/cmd/cmd.go | 2 +- contrib/screener-api/go.mod | 33 +- contrib/screener-api/go.sum | 96 ++- core/go.mod | 23 +- core/go.sum | 46 +- docker/opbot.Dockerfile | 15 + ethergo/go.mod | 43 +- ethergo/go.sum | 91 ++- go.work | 5 +- go.work.sum | 658 ++++++++++++++- services/cctp-relayer/go.mod | 42 +- services/cctp-relayer/go.sum | 109 +-- services/explorer/go.mod | 28 +- services/explorer/go.sum | 67 +- services/omnirpc/go.mod | 32 +- services/omnirpc/go.sum | 119 +-- services/rfq/go.mod | 50 +- services/rfq/go.sum | 135 ++-- services/scribe/go.mod | 35 +- services/scribe/go.sum | 126 +-- tools/go.mod | 16 +- tools/go.sum | 35 +- 64 files changed, 6297 insertions(+), 720 deletions(-) create mode 100644 contrib/opbot/.gitignore create mode 100644 contrib/opbot/.goreleaser.yml create mode 120000 contrib/opbot/Makefile create mode 100644 contrib/opbot/README.md create mode 100644 contrib/opbot/botmd/botmd.go create mode 100644 contrib/opbot/botmd/commands.go create mode 100644 contrib/opbot/cmd/cmd.go create mode 100644 contrib/opbot/cmd/commands.go create mode 100644 contrib/opbot/config/config.go create mode 100644 contrib/opbot/go.mod create mode 100644 contrib/opbot/go.sum create mode 100644 contrib/opbot/main.go create mode 100644 contrib/opbot/metadata/metadata.go create mode 100644 contrib/opbot/signoz/authed.go create mode 100644 contrib/opbot/signoz/doc.go create mode 100644 contrib/opbot/signoz/example/keychain/darwin.go create mode 100644 contrib/opbot/signoz/example/keychain/doc.go create mode 100644 contrib/opbot/signoz/example/keychain/unsupported.go create mode 100644 contrib/opbot/signoz/example/main.go create mode 100644 contrib/opbot/signoz/generated/auth.go create mode 100644 contrib/opbot/signoz/generated/config.go create mode 100644 contrib/opbot/signoz/generated/dashboards.go create mode 100644 contrib/opbot/signoz/generated/db.go create mode 100644 contrib/opbot/signoz/generated/doc.go create mode 100644 contrib/opbot/signoz/generated/errors.go create mode 100644 contrib/opbot/signoz/generated/featureSet.go create mode 100644 contrib/opbot/signoz/generated/queryParams.go create mode 100644 contrib/opbot/signoz/generated/response.go create mode 100644 contrib/opbot/signoz/generated/response_easyjson.go create mode 100644 contrib/opbot/signoz/generated/v3/v3.go create mode 100644 contrib/opbot/signoz/unauthed.go create mode 100644 contrib/opbot/signoz/util.go create mode 100644 docker/opbot.Dockerfile diff --git a/.codecov.yml b/.codecov.yml index d6c362e433..1e2a8275a0 100644 --- a/.codecov.yml +++ b/.codecov.yml @@ -26,6 +26,10 @@ flags: paths: - contrib/screener-api/ carryforward: true + opbot: + paths: + - contrib/opbot/ + carryforward: true git-changes-action: paths: - contrib/git-changes-action/ diff --git a/.gitattributes b/.gitattributes index e4f0d12e15..b9692ea318 100644 --- a/.gitattributes +++ b/.gitattributes @@ -15,6 +15,7 @@ *_gen.go linguist-generated # ignore ifacemaker files *_generated.go linguist-generated +contrib/opbot/generated/* linguist-generated # svg should be treated as a binary https://git.io/JE2VK diff --git a/.golangci.yml b/.golangci.yml index 91848e6c36..e3e8a211cf 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -132,6 +132,16 @@ issues: - path: \.resolvers\.go linters: - cyclop - + - path: signoz/* + linters: + - mnd + - stylecheck + - path: example/* + linters: + - revive + - cyclop + - forcetypeassert + - staticcheck + - wrapcheck exclude-use-default: false new-from-rev: a9a6f84f0569de877d06a027257aeca266aeda49 diff --git a/README.md b/README.md index 30a8be3910..8bad25066f 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,7 @@ root ├── charts: The helm charts used for deploying sanguine related services ├── contrib: Devops related tools │ ├── git-changes-action: Github action for identifying changes in dependent modules in a go workspace +│ ├── op bot: Slack bot for managing operations. │ ├── promexporter: Multi-service prometheus exporter │ ├── screener-api: Optional address screening api ├── core: The Go core library with common utilities for use across the monorepo diff --git a/agents/go.mod b/agents/go.mod index 9043a3cffc..80acf289af 100644 --- a/agents/go.mod +++ b/agents/go.mod @@ -11,7 +11,7 @@ require ( github.com/aws/smithy-go v1.15.0 github.com/brianvoe/gofakeit/v6 v6.27.0 github.com/coinbase/rosetta-sdk-go v0.8.1 - github.com/davecgh/go-spew v1.1.1 + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/ethereum/go-ethereum v1.13.8 github.com/hedzr/log v1.6.3 github.com/imkira/go-interpol v1.1.0 @@ -44,6 +44,10 @@ require ( ) require ( + cloud.google.com/go v0.114.0 // indirect + cloud.google.com/go/auth v0.5.1 // indirect + cloud.google.com/go/auth/oauth2adapt v0.2.2 // indirect + cloud.google.com/go/longrunning v0.5.7 // indirect dario.cat/mergo v1.0.0 // indirect github.com/DataDog/zstd v1.5.2 // indirect github.com/DenrianWeiss/tracely v0.0.0-20220624070317-49cf8afaaf18 // indirect @@ -68,7 +72,7 @@ require ( github.com/deepmap/oapi-codegen v1.8.2 // indirect github.com/ethereum/c-kzg-4844 v0.4.0 // indirect github.com/flowchartsman/swaggerui v0.0.0-20221017034628-909ed4f3701b // indirect - github.com/fsnotify/fsnotify v1.6.0 // indirect + github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/gballet/go-verkle v0.1.1-0.20231031103413-a67434b50f46 // indirect github.com/getsentry/sentry-go v0.18.0 // indirect @@ -96,8 +100,8 @@ require ( github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.1 // indirect github.com/valyala/fastjson v1.6.4 // indirect go.opentelemetry.io/otel/log v0.3.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 // indirect gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect rsc.io/tmplfunc v0.0.3 // indirect ) @@ -105,8 +109,8 @@ require ( require ( bitbucket.org/tentontrain/math v0.0.0-20220519191623-a4e86beba92a // indirect cloud.google.com/go/compute/metadata v0.3.0 // indirect - cloud.google.com/go/iam v1.1.6 // indirect - cloud.google.com/go/kms v1.15.7 // indirect + cloud.google.com/go/iam v1.1.8 // indirect + cloud.google.com/go/kms v1.17.1 // indirect github.com/99designs/gqlgen v0.17.36 // indirect github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect github.com/ImVexed/fasturl v0.0.0-20230304231329-4e41488060f3 // indirect @@ -158,12 +162,12 @@ require ( github.com/disintegration/imaging v1.6.2 // indirect github.com/dlclark/regexp2 v1.7.0 // indirect github.com/docker/cli v26.0.1+incompatible // indirect - github.com/docker/docker v26.0.1+incompatible // indirect + github.com/docker/docker v26.1.3+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/eliukblau/pixterm/pkg/ansimage v0.0.0-20191210081756-9fb6cf8c2f75 // indirect github.com/emirpasic/gods v1.18.1 // indirect - github.com/fatih/color v1.13.0 // indirect + github.com/fatih/color v1.16.0 // indirect github.com/fatih/structtag v1.2.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fjl/memsize v0.0.2 // indirect @@ -184,7 +188,7 @@ require ( 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.20.0 // indirect - github.com/go-resty/resty/v2 v2.11.0 // indirect + github.com/go-resty/resty/v2 v2.13.1 // indirect github.com/go-sql-driver/mysql v1.7.0 // indirect github.com/goccy/go-json v0.10.2 // indirect github.com/gogo/protobuf v1.3.3 // indirect @@ -198,10 +202,10 @@ require ( github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect github.com/google/uuid v1.6.0 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect - github.com/googleapis/gax-go/v2 v2.12.2 // indirect + github.com/googleapis/gax-go/v2 v2.12.4 // indirect github.com/gorilla/websocket v1.5.1 // indirect github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 // indirect - github.com/hashicorp/consul/sdk v0.8.0 // indirect + github.com/hashicorp/consul/sdk v0.14.0 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-bexpr v0.1.10 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect @@ -227,15 +231,14 @@ require ( github.com/leodido/go-urn v1.4.0 // indirect github.com/libs4go/errors v0.0.3 // indirect github.com/lmittmann/w3 v0.10.0 // indirect - github.com/lucasb-eyer/go-colorful v1.0.3 // indirect + github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/mattn/go-runewidth v0.0.13 // indirect + github.com/mattn/go-runewidth v0.0.15 // indirect github.com/mattn/go-sqlite3 v2.0.3+incompatible // indirect github.com/mattn/go-tty v0.0.3 // indirect github.com/miguelmota/go-ethereum-hdwallet v0.1.1 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect - github.com/mitchellh/go-testing-interface v1.14.1 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/mitchellh/pointerstructure v1.2.0 // indirect github.com/moby/term v0.5.0 // indirect @@ -252,15 +255,15 @@ require ( github.com/pjbgf/sha1cd v0.3.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pkg/term v1.2.0-beta.2 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/client_golang v1.19.1 // indirect github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.53.0 // indirect + github.com/prometheus/common v0.54.0 // indirect github.com/prometheus/procfs v0.15.0 // indirect github.com/puzpuzpuz/xsync v1.4.3 // indirect github.com/ravilushqa/otelgqlgen v0.13.1 // indirect github.com/rbretecher/go-postman-collection v0.9.0 // indirect - github.com/rivo/uniseg v0.2.0 // indirect + github.com/rivo/uniseg v0.4.7 // indirect github.com/rs/cors v1.8.2 // indirect github.com/rs/zerolog v1.27.0 // indirect github.com/rung/go-safecast v1.0.1 // indirect @@ -315,21 +318,21 @@ require ( golang.org/x/image v0.6.0 // indirect golang.org/x/mod v0.18.0 // indirect golang.org/x/net v0.26.0 // indirect - golang.org/x/oauth2 v0.20.0 // indirect + golang.org/x/oauth2 v0.21.0 // indirect golang.org/x/sys v0.21.0 // indirect golang.org/x/term v0.21.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.22.0 // indirect - google.golang.org/api v0.169.0 // indirect - google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect + google.golang.org/api v0.183.0 // indirect + google.golang.org/genproto v0.0.0-20240528184218-531527333157 // indirect google.golang.org/protobuf v1.34.1 // indirect gopkg.in/hedzr/errors.v3 v3.1.1 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apimachinery v0.26.2 // indirect - k8s.io/klog/v2 v2.90.1 // indirect - k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 // indirect + k8s.io/apimachinery v0.29.3 // indirect + k8s.io/klog/v2 v2.120.1 // indirect + k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect ) replace ( diff --git a/agents/go.sum b/agents/go.sum index 80f62423bc..0364b336b6 100644 --- a/agents/go.sum +++ b/agents/go.sum @@ -21,8 +21,12 @@ cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHOb cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= -cloud.google.com/go v0.112.1 h1:uJSeirPke5UNZHIb4SxfZklVSiWWVqW4oXlETwZziwM= -cloud.google.com/go v0.112.1/go.mod h1:+Vbu+Y1UU+I1rjmzeMOb/8RfkKJK2Gyxi1X6jJCZLo4= +cloud.google.com/go v0.114.0 h1:OIPFAdfrFDFO2ve2U7r/H5SwSbBzEdrBdE7xkgwc+kY= +cloud.google.com/go v0.114.0/go.mod h1:ZV9La5YYxctro1HTPug5lXH/GefROyW8PPD4T8n9J8E= +cloud.google.com/go/auth v0.5.1 h1:0QNO7VThG54LUzKiQxv8C6x1YX7lUrzlAa1nVLF8CIw= +cloud.google.com/go/auth v0.5.1/go.mod h1:vbZT8GjzDf3AVqCcQmqeeM32U9HBFc32vVVAbwDsa6s= +cloud.google.com/go/auth/oauth2adapt v0.2.2 h1:+TTV8aXpjeChS9M+aTtN/TjdQnzJvmzKFt//oWu7HX4= +cloud.google.com/go/auth/oauth2adapt v0.2.2/go.mod h1:wcYjgpZI9+Yu7LyYBg4pqSiaRkfEK3GQcpb7C/uyF1Q= 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= @@ -34,10 +38,12 @@ cloud.google.com/go/compute/metadata v0.3.0 h1:Tz+eQXMEqDIKRsmY3cHTL6FVaynIjX2Qx cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/iam v1.1.6 h1:bEa06k05IO4f4uJonbB5iAgKTPpABy1ayxaIZV/GHVc= -cloud.google.com/go/iam v1.1.6/go.mod h1:O0zxdPeGBoFdWW3HWmBxJsk0pfvNM/p/qa82rWOGTwI= -cloud.google.com/go/kms v1.15.7 h1:7caV9K3yIxvlQPAcaFffhlT7d1qpxjB1wHBtjWa13SM= -cloud.google.com/go/kms v1.15.7/go.mod h1:ub54lbsa6tDkUwnu4W7Yt1aAIFLnspgh0kPGToDukeI= +cloud.google.com/go/iam v1.1.8 h1:r7umDwhj+BQyz0ScZMp4QrGXjSTI3ZINnpgU2nlB/K0= +cloud.google.com/go/iam v1.1.8/go.mod h1:GvE6lyMmfxXauzNq8NbgJbeVQNspG+tcdL/W8QO1+zE= +cloud.google.com/go/kms v1.17.1 h1:5k0wXqkxL+YcXd4viQzTqCgzzVKKxzgrK+rCZJytEQs= +cloud.google.com/go/kms v1.17.1/go.mod h1:DCMnCF/apA6fZk5Cj4XsD979OyHAqFasPuA5Sd0kGlQ= +cloud.google.com/go/longrunning v0.5.7 h1:WLbHekDbjK1fVFD3ibpFFVoyizlLRl73I7YKuAKilhU= +cloud.google.com/go/longrunning v0.5.7/go.mod h1:8GClkudohy1Fxm3owmBGid8W0pSgodEMwEAztp38Xng= 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= @@ -146,8 +152,8 @@ github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0/go.mod h1:t2tdK github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= 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/aws/aws-sdk-go v1.43.16 h1:Y7wBby44f+tINqJjw5fLH3vA+gFq4uMITIKqditwM14= -github.com/aws/aws-sdk-go v1.43.16/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= +github.com/aws/aws-sdk-go v1.53.16 h1:8oZjKQO/ml1WLUZw5hvF7pvYjPf8o9f57Wldoy/q9Qc= +github.com/aws/aws-sdk-go v1.53.16/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= github.com/aws/aws-sdk-go-v2 v1.2.0/go.mod h1:zEQs02YRBw1DjK0PoJv3ygDYOFTre1ejlJWl8FwAuQo= github.com/aws/aws-sdk-go-v2 v1.16.5/go.mod h1:Wh7MEsmEApyL5hrWzpDkba4gwAPc5/piwLVLFnCxp48= github.com/aws/aws-sdk-go-v2 v1.21.2 h1:+LXZ0sgo8quN9UOKXXzAWRT3FWd4NxeXWOZom9pE7GA= @@ -313,8 +319,8 @@ github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233/go.mod h1:geZJ github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA= github.com/crate-crypto/go-kzg-4844 v0.7.0/go.mod h1:1kMhvPgI0Ky3yIa+9lFySEBUBXkYxeOi8ZF1sYioxhc= 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/creack/pty v1.1.21 h1:1/QdRyBaHHJP61QkWMXlOIBfsgdDeeKfK8SYVUWJKf0= +github.com/creack/pty v1.1.21/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4= github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= @@ -326,8 +332,9 @@ github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964/go.mod h1:Xd9 github.com/dave/jennifer v1.2.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg= github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea/go.mod h1:93vsz/8Wt4joVM7c2AVqh+YRMiUSc14yDtF28KmMOgQ= github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80NsVHagjM= github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= @@ -356,8 +363,8 @@ github.com/dlclark/regexp2 v1.7.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnm github.com/docker/cli v26.0.1+incompatible h1:eZDuplk2jYqgUkNLDYwTBxqmY9cM3yHnmN6OIUEjL3U= github.com/docker/cli v26.0.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/docker v1.4.2-0.20180625184442-8e610b2b55bf/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v26.0.1+incompatible h1:t39Hm6lpXuXtgkF0dm1t9a5HkbUfdGy6XbWexmGr+hA= -github.com/docker/docker v26.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v26.1.3+incompatible h1:lLCzRbrVZrljpVNobJu1J2FHk8V0s4BawoZippkc+xo= +github.com/docker/docker v26.1.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= @@ -393,8 +400,9 @@ github.com/ethereum/go-ethereum v1.13.8/go.mod h1:sc48XYQxCzH3fG9BcrXCOOgQk2JfZz github.com/fasthttp-contrib/websocket v0.0.0-20160511215533-1f3b11f56072/go.mod h1:duJ4Jxv5lDcvg4QuQr0oowTf7dz4/CR8NtyCooz9HL8= 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 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= +github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= +github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4= github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94= @@ -411,8 +419,8 @@ github.com/friendsofgo/graphiql v0.2.2 h1:ccnuxpjgIkB+Lr9YB2ZouiZm7wvciSfqwpa9ug github.com/friendsofgo/graphiql v0.2.2/go.mod h1:8Y2kZ36AoTGWs78+VRpvATyt3LJBx0SZXmay80ZTRWo= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= -github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= +github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= @@ -464,7 +472,6 @@ github.com/go-http-utils/headers v0.0.0-20181008091004-fed159eddc2a/go.mod h1:I7 github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= @@ -490,8 +497,8 @@ 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.20.0 h1:K9ISHbSaI0lyB2eWMPJo+kOS/FBExVwjEviJTixqxL8= github.com/go-playground/validator/v10 v10.20.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= -github.com/go-resty/resty/v2 v2.11.0 h1:i7jMfNOJYMp69lq7qozJP+bjgzfAzeOhuGlyDrqxT/8= -github.com/go-resty/resty/v2 v2.11.0/go.mod h1:iiP/OpA0CkcL3IGt1O0+/SIItFUbkkyw5BGXiVdTu+A= +github.com/go-resty/resty/v2 v2.13.1 h1:x+LHXBI2nMB1vqndymf26quycC4aggYJ7DECYbiz03g= +github.com/go-resty/resty/v2 v2.13.1/go.mod h1:GznXlLxkq6Nh4sU59rPmUw3VtgpO3aS96ORAI6Q7d+0= github.com/go-sourcemap/sourcemap v2.1.2+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc= @@ -610,8 +617,8 @@ github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfF github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gax-go/v2 v2.12.2 h1:mhN09QQW1jEWeMF74zGR81R30z4VJzjZsfkUhuHF+DA= -github.com/googleapis/gax-go/v2 v2.12.2/go.mod h1:61M8vcyyXR2kqKFxKrfA22jaA8JGF7Dc8App1U3H6jc= +github.com/googleapis/gax-go/v2 v2.12.4 h1:9gWcmF85Wvq4ryPFvGFaOgPIs1AQX0d0bcbGw4Z96qg= +github.com/googleapis/gax-go/v2 v2.12.4/go.mod h1:KYEYLorsnIGDi/rPC8b5TdlB9kbKoFubselGIoBMCwI= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= @@ -630,18 +637,15 @@ github.com/graph-gophers/graphql-go v1.3.0 h1:Eb9x/q6MFpCLz7jBCiP/WTxjSDrYLR1QY4 github.com/graph-gophers/graphql-go v1.3.0/go.mod h1:9CQHMSxwO4MprSdzoIEobiHpoLtHm77vfxsvsIN5Vuc= github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 h1:bkypFPDjIYGfCYD5mRBvpqxfYX1YCS1PXdKYWi8FsN0= github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0/go.mod h1:P+Lt/0by1T8bfcF3z737NnSbmxQAppXMRziHUxPOC8k= -github.com/hashicorp/consul/sdk v0.8.0 h1:OJtKBtEjboEZvG6AOUdh4Z1Zbyu0WcxQ0qatRrZHTVU= -github.com/hashicorp/consul/sdk v0.8.0/go.mod h1:GBvyrGALthsZObzUGsfgHZQDXjg4lOjagTIwIR1vPms= +github.com/hashicorp/consul/sdk v0.14.0 h1:Hly+BMNMssVzoWddbBnBFi3W+Fzytvm0haSkihhj3GU= +github.com/hashicorp/consul/sdk v0.14.0/go.mod h1:gHYeuDa0+0qRAD6Wwr6yznMBvBwHKoxSBoW5l73+saE= 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.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= -github.com/hashicorp/go-hclog v0.12.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= 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-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= 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= @@ -781,7 +785,6 @@ github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxv github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= 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.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= @@ -822,8 +825,9 @@ github.com/libs4go/sdi4go v0.0.6/go.mod h1:Svi0Rb3k+beTb28vHKIjs0KKSS/Ty7TMw1DM2 github.com/libs4go/slf4go v0.0.4/go.mod h1:OWacxmrtRCiUHnHF/ndzEdHCucKjB+eoUXg/yMbj5W4= github.com/lmittmann/w3 v0.10.0 h1:AjQJKfcwHSDLr7cnRbS+0Jio9xt/h1JDBAP/jvLWC58= github.com/lmittmann/w3 v0.10.0/go.mod h1:AydD3eqJiyg7tubFve39JL025kZr8QWO1lemXllK+Sw= -github.com/lucasb-eyer/go-colorful v1.0.3 h1:QIbQXiugsb+q10B+MI+7DI1oQLdmnep86tWFlaaUAac= github.com/lucasb-eyer/go-colorful v1.0.3/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= +github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= +github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= @@ -857,8 +861,8 @@ github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzp github.com/mattn/go-runewidth v0.0.6/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= -github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU= -github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= +github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/go-sqlite3 v2.0.3+incompatible h1:gXHsfypPkaMZrKbD5209QV9jbUTJKjyR5WD3HYQSd+U= github.com/mattn/go-sqlite3 v2.0.3+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= @@ -875,9 +879,6 @@ github.com/minio/sha256-simd v1.0.1 h1:6kaan5IFmwTNynnKKpDHe6FWHohJOHhCPchzK49dz github.com/minio/sha256-simd v1.0.1/go.mod h1:Pz6AKMiUdngCLpeTL/RJY1M9rUuPMYujV5xJjtbRSN8= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= -github.com/mitchellh/go-testing-interface v1.14.1 h1:jrgshOhYAUVNMAJiKbEu7EqAwgJJ2JqpQmpLJOu07cU= -github.com/mitchellh/go-testing-interface v1.14.1/go.mod h1:gfgS7OtZj6MA4U1UrDRp04twqAjfvlZyCfX3sDjEym8= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= @@ -990,8 +991,9 @@ github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qR github.com/pkg/term v0.0.0-20180730021639-bffc007b7fd5/go.mod h1:eCbImbZ95eXtAUIbLAuAVnBnwf83mjf6QIVH8SHYwqQ= github.com/pkg/term v1.2.0-beta.2 h1:L3y/h2jkuBVFdWiJvNfYfKmzcCnILw7mJWm2JQuMppw= github.com/pkg/term v1.2.0-beta.2/go.mod h1:E25nymQcrSllhX42Ok8MRm1+hyBdHY0dCeiKZ9jpNGw= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +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/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= @@ -1004,8 +1006,8 @@ github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQy github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= -github.com/prometheus/common v0.53.0 h1:U2pL9w9nmJwJDa4qqLQ3ZaePJ6ZTwt7cMD3AG3+aLCE= -github.com/prometheus/common v0.53.0/go.mod h1:BrxBKv3FWBIGXw89Mg1AeBq7FSyRzXWI3l3e7W3RN5U= +github.com/prometheus/common v0.54.0 h1:ZlZy0BgJhTwVZUn7dLOkwCZHUkrAqd3WYtcFCWnM1D8= +github.com/prometheus/common v0.54.0/go.mod h1:/TQgMJP5CuVYveyT7n/0Ix8yLNNXy9yRSkhnLTHPDIQ= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.15.0 h1:A82kmvXJq2jTu5YUhSGNlYoxh85zLnKgPz4bMZgI5Ek= @@ -1025,8 +1027,9 @@ github.com/retailnext/hllpp v1.0.1-0.20180308014038-101a6d2f8b52/go.mod h1:RDpi1 github.com/richardwilkes/toolbox v1.74.0 h1:TNvXxph1jJk6IQmVoZdAY9peRlL6Tv//7OpyJkjMiPI= github.com/richardwilkes/toolbox v1.74.0/go.mod h1:OFTDv8rUUsF+Hb98k9l65zu7fuKt3EEhWywv6zyJ750= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= -github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= +github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rjeczalik/notify v0.9.1/go.mod h1:rKwnCoCGeuQnwBtTSPL9Dad03Vh2n40ePRrjvIXnJho= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= @@ -1307,7 +1310,8 @@ golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1417,7 +1421,8 @@ 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.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -1429,8 +1434,8 @@ golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.20.0 h1:4mQdhULixXKP1rwYBW0vAijoXnkTG0BLCDRzfe1idMo= -golang.org/x/oauth2 v0.20.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= +golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1479,7 +1484,6 @@ golang.org/x/sys v0.0.0-20200107162124-548cf772de50/go.mod h1:h1NjWce9XRLGQEsW7w 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-20200124204421-9fbb57f87de9/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= @@ -1532,7 +1536,6 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc 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-20220908164124-27713097b956/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.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1540,8 +1543,9 @@ 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= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= @@ -1551,7 +1555,8 @@ 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.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= -golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1567,7 +1572,8 @@ 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.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= 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= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1575,7 +1581,6 @@ golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -1672,8 +1677,8 @@ google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz513 google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= -google.golang.org/api v0.169.0 h1:QwWPy71FgMWqJN/l6jVlFHUa29a7dcUy02I8o799nPY= -google.golang.org/api v0.169.0/go.mod h1:gpNOiMA2tZ4mf5R9Iwf4rK/Dcz0fbdIgWYWVoxmsyLg= +google.golang.org/api v0.183.0 h1:PNMeRDwo1pJdgNcFQ9GstuLe/noWKIc89pRWRLMvLwE= +google.golang.org/api v0.183.0/go.mod h1:q43adC5/pHoSZTx5h2mSmdF7NcyfW9JuDyIOJAgS9ZQ= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1722,12 +1727,12 @@ google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= -google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de h1:F6qOa9AZTYJXOUEr4jDysRDLrm4PHePlge4v4TGAlxY= -google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:VUhTRKeHn9wwcdrk73nvdC9gF178Tzhmt/qyaFcPLSo= -google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5 h1:P8OJ/WCl/Xo4E4zoe4/bifHpSmmKwARqyqE4nW6J2GQ= -google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5/go.mod h1:RGnPtTG7r4i8sPlNyDeikXF99hMM+hN6QMm4ooG9g2g= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291 h1:AgADTJarZTBqgjiUzRgfaBchgYB3/WFTC80GPwsMcRI= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= +google.golang.org/genproto v0.0.0-20240528184218-531527333157 h1:u7WMYrIrVvs0TF5yaKwKNbcJyySYf+HAIFXxWltJOXE= +google.golang.org/genproto v0.0.0-20240528184218-531527333157/go.mod h1:ubQlAQnzejB8uZzszhrTCU2Fyp6Vi7ZE5nn0c3W8+qQ= +google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 h1:7whR9kGa5LUwFtpLm2ArCEejtnxlGeLbAyjFY8sGNFw= +google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157/go.mod h1:99sLkeliLXfdj2J75X3Ho+rrVCaJze0uwN7zDDkjPVU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 h1:Zy9XzmMEflZ/MAaA7vNcoebnRAld7FsPW1EeBB7V0m8= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= 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= @@ -1819,12 +1824,12 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt 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/apimachinery v0.26.2 h1:da1u3D5wfR5u2RpLhE/ZtZS2P7QvDgLZTi9wrNZl/tQ= -k8s.io/apimachinery v0.26.2/go.mod h1:ats7nN1LExKHvJ9TmwootT00Yz05MuYqPXEXaVeOy5I= -k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw= -k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 h1:kmDqav+P+/5e1i9tFfHq1qcF3sOrDp+YEkVDAHu7Jwk= -k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/apimachinery v0.29.3 h1:2tbx+5L7RNvqJjn7RIuIKu9XTsIZ9Z5wX2G22XAa5EU= +k8s.io/apimachinery v0.29.3/go.mod h1:hx/S4V2PNW4OMg3WizRrHutyB5la0iCUbZym+W0EQIU= +k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= +k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= lukechampine.com/blake3 v1.2.1 h1:YuqqRuaqsGV71BV/nm9xlI0MKUv4QC54jQnBChWbGnI= lukechampine.com/blake3 v1.2.1/go.mod h1:0OFRp7fBtAylGVCO40o87sbupkyIGgbpv1+M1k1LM6k= nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= diff --git a/contrib/git-changes-action/go.mod b/contrib/git-changes-action/go.mod index f8d5ef8203..381f06dddc 100644 --- a/contrib/git-changes-action/go.mod +++ b/contrib/git-changes-action/go.mod @@ -26,7 +26,7 @@ require ( github.com/xlab/treeprint v1.2.0 golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 golang.org/x/mod v0.18.0 - golang.org/x/oauth2 v0.20.0 + golang.org/x/oauth2 v0.21.0 ) require ( @@ -36,7 +36,7 @@ require ( github.com/btcsuite/btcd/btcec/v2 v2.3.0 // indirect github.com/cloudflare/circl v1.3.7 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect github.com/emirpasic/gods v1.18.1 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect @@ -57,7 +57,7 @@ require ( github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/pjbgf/sha1cd v0.3.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect github.com/sethvargo/go-envconfig v0.8.0 // indirect @@ -74,7 +74,7 @@ require ( golang.org/x/tools v0.22.0 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apimachinery v0.26.2 // indirect - k8s.io/klog/v2 v2.90.1 // indirect - k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 // indirect + k8s.io/apimachinery v0.29.3 // indirect + k8s.io/klog/v2 v2.120.1 // indirect + k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect ) diff --git a/contrib/git-changes-action/go.sum b/contrib/git-changes-action/go.sum index 5711386c6e..91d17fe5d5 100644 --- a/contrib/git-changes-action/go.sum +++ b/contrib/git-changes-action/go.sum @@ -76,8 +76,9 @@ github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnht github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= 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= @@ -109,7 +110,6 @@ github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2 github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= -github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= 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/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= @@ -231,8 +231,9 @@ github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +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/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/regen-network/protobuf v1.3.3-alpha.regen.1 h1:OHEc+q5iIAXpqiqFKeLpu5NwTIkVXUs48vFMwzqpqY4= github.com/regen-network/protobuf v1.3.3-alpha.regen.1/go.mod h1:2DjTFR1HhMQhiWC5sZ4OhQ3+NtdbZ6oBDKQwq5Ou+FI= @@ -392,8 +393,8 @@ golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.20.0 h1:4mQdhULixXKP1rwYBW0vAijoXnkTG0BLCDRzfe1idMo= -golang.org/x/oauth2 v0.20.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= +golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -652,12 +653,12 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh 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= -k8s.io/apimachinery v0.26.2 h1:da1u3D5wfR5u2RpLhE/ZtZS2P7QvDgLZTi9wrNZl/tQ= -k8s.io/apimachinery v0.26.2/go.mod h1:ats7nN1LExKHvJ9TmwootT00Yz05MuYqPXEXaVeOy5I= -k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw= -k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 h1:kmDqav+P+/5e1i9tFfHq1qcF3sOrDp+YEkVDAHu7Jwk= -k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/apimachinery v0.29.3 h1:2tbx+5L7RNvqJjn7RIuIKu9XTsIZ9Z5wX2G22XAa5EU= +k8s.io/apimachinery v0.29.3/go.mod h1:hx/S4V2PNW4OMg3WizRrHutyB5la0iCUbZym+W0EQIU= +k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= +k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/contrib/opbot/.gitignore b/contrib/opbot/.gitignore new file mode 100644 index 0000000000..1d3ed4c17a --- /dev/null +++ b/contrib/opbot/.gitignore @@ -0,0 +1 @@ +config.yml diff --git a/contrib/opbot/.goreleaser.yml b/contrib/opbot/.goreleaser.yml new file mode 100644 index 0000000000..c79d930fbd --- /dev/null +++ b/contrib/opbot/.goreleaser.yml @@ -0,0 +1,86 @@ +project_name: opbot + +monorepo: + tag_prefix: contrib/opbot/ + dir: contrib/opbot/ + +builds: + # Linux AMD64 + - id: opbot + binary: opbot + ldflags: + # We need to build a static binary because we are building in a glibc based system and running in a musl container + - -s -w -extldflags '-static' + # required workaround for https://github.com/Shopify/sarama/issues/2206 + # See: https://github.com/golang/go/issues/35067#issuecomment-544805311 because we're statically compiling, + # without forcing netgo, we use the cgo resolver which will not work for .local (a canonical tld in kubernetes) + # the other way to resolve this would be to modify the nsswitch.conf in the container, but that's a bit less clean. + # osusergo was included as a recommendation here: https://github.com/kubernetes/kubernetes/pull/114225#issuecomment-1348920040 + tags: + - netgo + - osusergo + env: + - CC=gcc + - CXX=g++ + main: main.go + goos: + - linux + goarch: + - amd64 + - id: signozexample + binary: signozexample + ldflags: + # We need to build a static binary because we are building in a glibc based system and running in a musl container + - -s -w -extldflags '-static' + # see above about workaround + tags: + - netgo + - osusergo + env: + - CC=gcc + - CXX=g++ + main: signoz/example/main.go + goos: + - linux + goarch: + - amd64 +# add a source archive at release time +source: + enabled: true + +# Archives +archives: + - format: tar.gz + wrap_in_directory: true + format_overrides: + - goos: windows + format: zip + name_template: '{{.ProjectName}}-{{.Version}}_{{.Os}}_{{.Arch}}' + files: + - README.md + +checksum: + name_template: checksums.txt + +# Add a changelog +changelog: + sort: asc + +dockers: + # Docker AMD64 + - goos: linux + goarch: amd64 + image_templates: + - 'ghcr.io/synapsecns/sanguine/opbot:latest' + - 'ghcr.io/synapsecns/sanguine/opbot:{{ .FullCommit }}' + - 'ghcr.io/synapsecns/sanguine/opbot:{{ .Tag }}' + build_flag_templates: + - '--label=org.opencontainers.image.created={{.Date}}' + - '--label=org.opencontainers.image.name={{.ProjectName}}' + - '--label=org.opencontainers.image.revision={{.FullCommit}}' + - '--label=org.opencontainers.image.version={{.Version}}' + - '--label=org.opencontainers.image.source={{.GitURL}}' + dockerfile: ../../docker/opbot.Dockerfile + ids: + - opbot + diff --git a/contrib/opbot/Makefile b/contrib/opbot/Makefile new file mode 120000 index 0000000000..15e4536f4b --- /dev/null +++ b/contrib/opbot/Makefile @@ -0,0 +1 @@ +../../make/go.Makefile \ No newline at end of file diff --git a/contrib/opbot/README.md b/contrib/opbot/README.md new file mode 100644 index 0000000000..fd0de47851 --- /dev/null +++ b/contrib/opbot/README.md @@ -0,0 +1 @@ +# Op Bot is a slack bot diff --git a/contrib/opbot/botmd/botmd.go b/contrib/opbot/botmd/botmd.go new file mode 100644 index 0000000000..deece7c1a1 --- /dev/null +++ b/contrib/opbot/botmd/botmd.go @@ -0,0 +1,40 @@ +package botmd + +import ( + "context" + "github.com/slack-io/slacker" + "github.com/synapsecns/sanguine/contrib/opbot/config" + "github.com/synapsecns/sanguine/contrib/opbot/signoz" + "github.com/synapsecns/sanguine/core/metrics" +) + +// Bot represents the bot server. +type Bot struct { + handler metrics.Handler + server *slacker.Slacker + cfg config.Config + signozClient *signoz.Client +} + +// NewBot creates a new bot server. +func NewBot(handler metrics.Handler, cfg config.Config) Bot { + server := slacker.NewClient(cfg.SlackBotToken, cfg.SlackAppToken) + bot := Bot{ + handler: handler, + cfg: cfg, + server: server, + } + + bot.signozClient = signoz.NewClientFromUser(handler, cfg.SignozBaseURL, cfg.SignozEmail, cfg.SignozPassword) + + server.AddCommand(bot.traceCommand()) + + return bot +} + +// Start starts the bot server. +// nolint: wrapcheck +func (b *Bot) Start(ctx context.Context) error { + // nolint: wrapcheck + return b.server.Listen(ctx) +} diff --git a/contrib/opbot/botmd/commands.go b/contrib/opbot/botmd/commands.go new file mode 100644 index 0000000000..73f4157dc6 --- /dev/null +++ b/contrib/opbot/botmd/commands.go @@ -0,0 +1,111 @@ +// Package botmd provides the bot server. Here botmd=cmd not markdown. +// nolint: forcetypeassert, mnd, cyclop +package botmd + +import ( + "fmt" + "github.com/hako/durafmt" + "github.com/slack-go/slack" + "github.com/slack-io/slacker" + "github.com/synapsecns/sanguine/contrib/opbot/signoz" + "log" + "strings" + "time" +) + +// nolint: traceCommand, gocognit +// TODO: add trace middleware. +func (b *Bot) traceCommand() *slacker.CommandDefinition { + return &slacker.CommandDefinition{ + Command: "trace ", + Description: "find a transaction in signoz", + Examples: []string{ + "trace transaction_id:0x1234 serviceName:rfq", + }, + Handler: func(ctx *slacker.CommandContext) { + tags := ctx.Request().Param("tags") + splitTags := strings.Split(tags, " ") + if len(splitTags) == 0 { + _, err := ctx.Response().Reply("please provide tags in a key:value format") + if err != nil { + log.Println(err) + } + return + } + + searchMap := make(map[string]string) + for _, combinedTag := range splitTags { + tag := strings.Split(combinedTag, ":") + if len(tag) != 2 { + _, err := ctx.Response().Reply("please provide tags in a key:value format") + if err != nil { + log.Println(err) + } + return + } + searchMap[tag[0]] = tag[1] + } + + // search for the transaction + res, err := b.signozClient.SearchTraces(ctx.Context(), signoz.Last3Hr, searchMap) + if err != nil { + _, err := ctx.Response().Reply("error searching for the transaction") + if err != nil { + log.Println(err) + } + return + } + + if res.Status != "success" || res.Data.ContextTimeout || len(res.Data.Result) != 1 { + _, err := ctx.Response().Reply(fmt.Sprintf("error searching for the transaction %s", res.Data.ContextTimeoutMessage)) + if err != nil { + log.Println(err) + } + return + } + + traceList := res.Data.Result[0].List + if len(traceList) == 0 { + _, err := ctx.Response().Reply("no transaction found") + if err != nil { + log.Println(err) + } + return + } + + slackBlocks := []slack.Block{slack.NewHeaderBlock(slack.NewTextBlockObject(slack.PlainTextType, "Traces", false, false))} + + for _, results := range traceList { + trace := results.Data["traceID"].(string) + spanID := results.Data["spanID"].(string) + serviceName := results.Data["serviceName"].(string) + + // anon.to is used here to prevent unfurl https://github.com/slack-io/slacker/issues/11 + url := fmt.Sprintf("https://anon.to/?%s/trace/%s?spanId=%s", b.cfg.SignozBaseURL, trace, spanID) + traceName := fmt.Sprintf("<%s|%s>", url, results.Data["name"].(string)) + + relativeTime := durafmt.Parse(time.Since(results.Timestamp)).LimitFirstN(1).String() + + slackBlocks = append(slackBlocks, slack.NewSectionBlock(nil, []*slack.TextBlockObject{ + { + Type: slack.MarkdownType, + Text: fmt.Sprintf("*Name*: %s", traceName), + }, + { + Type: slack.MarkdownType, + Text: fmt.Sprintf("*Service*: %s", serviceName), + }, + { + Type: slack.MarkdownType, + Text: fmt.Sprintf("*When*: %s", fmt.Sprintf("%s ago", relativeTime)), + }, + }, nil)) + } + + _, err = ctx.Response().ReplyBlocks(slackBlocks) + if err != nil { + log.Println(err) + } + }, + } +} diff --git a/contrib/opbot/cmd/cmd.go b/contrib/opbot/cmd/cmd.go new file mode 100644 index 0000000000..c4aca9c817 --- /dev/null +++ b/contrib/opbot/cmd/cmd.go @@ -0,0 +1,33 @@ +// Package cmd provides the command line interface for the opbot. +package cmd + +import ( + "fmt" + "github.com/synapsecns/sanguine/core/commandline" + "github.com/synapsecns/sanguine/core/config" + "github.com/synapsecns/sanguine/core/metrics" + "github.com/urfave/cli/v2" +) + +// Start starts the command line tool. +func Start(args []string, buildInfo config.BuildInfo) { + app := cli.NewApp() + app.Name = buildInfo.Name() + + app.Description = buildInfo.VersionString() + "Opbot is a tool to manage operations." + app.Usage = fmt.Sprintf("%s --help", buildInfo.Name()) + app.EnableBashCompletion = true + app.Before = func(c *cli.Context) error { + // nolint:wrapcheck + return metrics.Setup(c.Context, buildInfo) + } + app.Commands = cli.Commands{slackBotCommand} + shellCommand := commandline.GenerateShellCommand(app.Commands) + app.Commands = append(app.Commands, shellCommand) + app.Action = shellCommand.Action + err := app.Run(args) + + if err != nil { + panic(err) + } +} diff --git a/contrib/opbot/cmd/commands.go b/contrib/opbot/cmd/commands.go new file mode 100644 index 0000000000..7d09a59924 --- /dev/null +++ b/contrib/opbot/cmd/commands.go @@ -0,0 +1,53 @@ +package cmd + +import ( + "fmt" + "github.com/synapsecns/sanguine/contrib/opbot/botmd" + "github.com/synapsecns/sanguine/core/metrics" + + // used for testing. + _ "github.com/joho/godotenv/autoload" + "github.com/synapsecns/sanguine/contrib/opbot/config" + "github.com/urfave/cli/v2" + "gopkg.in/yaml.v3" + "os" +) + +var fileFlag = &cli.StringFlag{ + Name: "config", + Usage: "--config /Users/synapsecns/config.yaml", +} + +var slackBotCommand = &cli.Command{ + Name: "start", + Usage: "start the slack bot", + Flags: []cli.Flag{fileFlag}, + Action: func(c *cli.Context) error { + configFile, err := os.ReadFile(c.String(fileFlag.Name)) + if err != nil { + return fmt.Errorf("failed to open config file: %w", err) + } + + var cfg config.Config + err = yaml.Unmarshal(configFile, &cfg) + if err != nil { + return fmt.Errorf("failed to unmarshal config file: %w", err) + } + + if cfg.SlackAppToken == "" { + return fmt.Errorf("slack app token is required") + } + + if cfg.SlackBotToken == "" { + return fmt.Errorf("slack bot token is required") + } + + botServer := botmd.NewBot(metrics.Get(), cfg) + err = botServer.Start(c.Context) + if err != nil { + return fmt.Errorf("failed to start bot: %w", err) + } + + return nil + }, +} diff --git a/contrib/opbot/config/config.go b/contrib/opbot/config/config.go new file mode 100644 index 0000000000..edcc26870d --- /dev/null +++ b/contrib/opbot/config/config.go @@ -0,0 +1,19 @@ +// Package config provides a simple way to read and write configuration files. +package config + +// Config represents the configuration of the application. +type Config struct { + // SlackBotToken is the token of the slack bot. + SlackBotToken string `yaml:"slack_bot_token"` + // SlackAppToken is the token of the slack app. + SlackAppToken string `yaml:"slack_app_token"` + // Email is the email address of the user. + // this is used to authenticate with signoz and should be a READ ONLY KEY. + SignozEmail string `yaml:"signoz_email"` + // Password is the password of the user. + // this is used to authenticate with signoz and should be a READ ONLY KEY. + // inject only with init container! + SignozPassword string `yaml:"signoz_password"` + // SignozBaseURL is the base url of the signoz instance. + SignozBaseURL string `yaml:"signoz_base_url"` +} diff --git a/contrib/opbot/go.mod b/contrib/opbot/go.mod new file mode 100644 index 0000000000..5d466fcafe --- /dev/null +++ b/contrib/opbot/go.mod @@ -0,0 +1,197 @@ +module github.com/synapsecns/sanguine/contrib/opbot + +go 1.22.4 + +require ( + github.com/badoux/checkmail v1.2.4 + github.com/charmbracelet/huh v0.4.2 + github.com/charmbracelet/huh/spinner v0.0.0-20240618200428-90406d79077d + github.com/davidmytton/url-verifier v1.0.1 + github.com/dubonzi/otelresty v1.2.0 + github.com/go-http-utils/headers v0.0.0-20181008091004-fed159eddc2a + github.com/go-resty/resty/v2 v2.13.1 + github.com/google/uuid v1.6.0 + github.com/hako/durafmt v0.0.0-20210608085754-5c1018a4e16b + github.com/joho/godotenv v1.5.1 + github.com/keybase/go-keychain v0.0.0-20231219164618-57a3676c3af6 + github.com/mailru/easyjson v0.7.7 + github.com/pkg/errors v0.9.1 + github.com/prometheus/prometheus v0.53.0 + github.com/slack-go/slack v0.13.0 + github.com/slack-io/slacker v0.1.0 + github.com/synapsecns/sanguine/core v0.0.0-00010101000000-000000000000 + github.com/urfave/cli/v2 v2.27.2 + gopkg.in/yaml.v2 v2.4.0 + gopkg.in/yaml.v3 v3.0.1 + k8s.io/apimachinery v0.29.3 +) + +require ( + dario.cat/mergo v1.0.0 // indirect + github.com/ImVexed/fasturl v0.0.0-20230304231329-4e41488060f3 // indirect + github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/ProtonMail/go-crypto v1.0.0 // indirect + github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect + github.com/atotto/clipboard v0.1.4 // indirect + github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect + github.com/beorn7/perks v1.0.1 // indirect + github.com/bytedance/sonic v1.11.6 // indirect + github.com/bytedance/sonic/loader v0.1.1 // indirect + github.com/c-bata/go-prompt v0.2.6 // indirect + github.com/catppuccin/go v0.2.0 // indirect + github.com/cenkalti/backoff/v4 v4.3.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect + github.com/charmbracelet/bubbles v0.18.0 // indirect + github.com/charmbracelet/bubbletea v0.26.5 // indirect + github.com/charmbracelet/lipgloss v0.11.0 // indirect + github.com/charmbracelet/x/ansi v0.1.2 // indirect + github.com/charmbracelet/x/exp/strings v0.0.0-20240524151031-ff83003bf67a // indirect + github.com/charmbracelet/x/input v0.1.2 // indirect + github.com/charmbracelet/x/term v0.1.1 // indirect + github.com/charmbracelet/x/windows v0.1.2 // indirect + github.com/cloudflare/circl v1.3.7 // indirect + github.com/cloudwego/base64x v0.1.4 // indirect + github.com/cloudwego/iasm v0.2.0 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect + github.com/cyphar/filepath-securejoin v0.2.4 // indirect + github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/deckarep/golang-set/v2 v2.6.0 // indirect + github.com/dennwc/varint v1.0.0 // indirect + github.com/dustin/go-humanize v1.0.1 // indirect + github.com/emirpasic/gods v1.18.1 // indirect + github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect + github.com/ethereum/go-ethereum v1.13.8 // indirect + github.com/felixge/httpsnoop v1.0.4 // indirect + github.com/gabriel-vasile/mimetype v1.4.3 // indirect + github.com/gin-contrib/cors v1.7.2 // indirect + github.com/gin-contrib/requestid v0.0.6 // indirect + github.com/gin-contrib/sse v0.1.0 // indirect + github.com/gin-contrib/zap v0.2.0 // indirect + github.com/gin-gonic/gin v1.10.0 // indirect + github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect + github.com/go-git/go-billy/v5 v5.5.0 // indirect + github.com/go-git/go-git/v5 v5.12.0 // indirect + github.com/go-kit/log v0.2.1 // indirect + github.com/go-logfmt/logfmt v0.6.0 // indirect + 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-playground/locales v0.14.1 // indirect + github.com/go-playground/universal-translator v0.18.1 // indirect + github.com/go-playground/validator/v10 v10.20.0 // indirect + github.com/goccy/go-json v0.10.2 // indirect + github.com/gogo/protobuf v1.3.3 // indirect + github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect + github.com/gorilla/websocket v1.5.1 // indirect + github.com/grafana/otel-profiling-go v0.5.1 // indirect + github.com/grafana/pyroscope-go v1.1.1 // indirect + github.com/grafana/pyroscope-go/godeltaprof v0.1.7 // indirect + github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 // indirect + github.com/holiman/uint256 v1.2.4 // indirect + github.com/integralist/go-findroot v0.0.0-20160518114804-ac90681525dc // indirect + github.com/ipfs/go-log v1.0.5 // indirect + github.com/ipfs/go-log/v2 v2.5.1 // indirect + github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect + github.com/jinzhu/inflection v1.0.0 // indirect + github.com/jinzhu/now v1.1.5 // indirect + github.com/josharian/intern v1.0.0 // indirect + github.com/json-iterator/go v1.1.12 // indirect + github.com/kevinburke/ssh_config v1.2.0 // indirect + github.com/klauspost/compress v1.17.8 // indirect + github.com/klauspost/cpuid/v2 v2.2.8 // indirect + github.com/leodido/go-urn v1.4.0 // indirect + github.com/lucasb-eyer/go-colorful v1.2.0 // indirect + github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/mattn/go-localereader v0.0.1 // indirect + github.com/mattn/go-runewidth v0.0.15 // indirect + github.com/mattn/go-tty v0.0.3 // indirect + github.com/mitchellh/go-homedir v1.1.0 // indirect + github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect + github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect + github.com/muesli/cancelreader v0.2.2 // indirect + github.com/muesli/termenv v0.15.2 // indirect + github.com/opentracing/opentracing-go v1.2.0 // indirect + github.com/pelletier/go-toml/v2 v2.2.2 // indirect + github.com/pjbgf/sha1cd v0.3.0 // indirect + github.com/pkg/term v1.2.0-beta.2 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/prometheus/client_golang v1.19.1 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.54.0 // indirect + github.com/prometheus/procfs v0.15.0 // indirect + github.com/rivo/uniseg v0.4.7 // indirect + github.com/robfig/cron/v3 v3.0.1 // indirect + github.com/russross/blackfriday/v2 v2.1.0 // indirect + github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect + github.com/shibukawa/configdir v0.0.0-20170330084843-e180dbdc8da0 // indirect + github.com/shirou/gopsutil v3.21.11+incompatible // indirect + github.com/shomali11/commander v0.0.0-20230730023802-0b64f620037d // indirect + github.com/shomali11/proper v0.0.0-20190608032528-6e70a05688e7 // indirect + github.com/skeema/knownhosts v1.2.2 // indirect + github.com/stretchr/testify v1.9.0 // indirect + github.com/tklauser/go-sysconf v0.3.12 // indirect + github.com/tklauser/numcpus v0.8.0 // indirect + github.com/twitchyliquid64/golang-asm v0.15.1 // indirect + github.com/ugorji/go/codec v1.2.12 // indirect + github.com/uptrace/opentelemetry-go-extra/otelgorm v0.3.1 // indirect + github.com/uptrace/opentelemetry-go-extra/otelsql v0.3.1 // indirect + github.com/uptrace/opentelemetry-go-extra/otelutil v0.3.1 // indirect + github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.1 // indirect + github.com/xanzy/ssh-agent v0.3.3 // indirect + github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect + github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 // indirect + github.com/yusufpapurcu/wmi v1.2.3 // indirect + go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 // indirect + go.opentelemetry.io/contrib/propagators/b3 v1.27.0 // indirect + go.opentelemetry.io/otel v1.27.0 // indirect + go.opentelemetry.io/otel/exporters/jaeger v1.17.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.27.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.27.0 // indirect + go.opentelemetry.io/otel/exporters/prometheus v0.49.0 // indirect + go.opentelemetry.io/otel/log v0.3.0 // indirect + go.opentelemetry.io/otel/metric v1.27.0 // indirect + go.opentelemetry.io/otel/sdk v1.27.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.27.0 // indirect + go.opentelemetry.io/otel/trace v1.27.0 // indirect + go.opentelemetry.io/proto/otlp v1.2.0 // indirect + go.uber.org/atomic v1.11.0 // indirect + go.uber.org/multierr v1.11.0 // indirect + go.uber.org/zap v1.27.0 // indirect + golang.org/x/arch v0.8.0 // indirect + golang.org/x/crypto v0.24.0 // indirect + golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 // indirect + golang.org/x/mod v0.18.0 // indirect + golang.org/x/net v0.26.0 // indirect + golang.org/x/sync v0.7.0 // indirect + golang.org/x/sys v0.21.0 // indirect + golang.org/x/text v0.16.0 // indirect + golang.org/x/tools v0.22.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 // indirect + google.golang.org/grpc v1.64.0 // indirect + google.golang.org/protobuf v1.34.1 // indirect + gopkg.in/warnings.v0 v0.1.2 // indirect + gorm.io/gorm v1.25.10 // indirect + k8s.io/klog/v2 v2.120.1 // indirect + k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect +) + +replace ( + github.com/Yamashou/gqlgenc => github.com/synapsecns/gqlgenc v0.10.0-hotfix + // later versions give errors on uint64 being too high. + github.com/brianvoe/gofakeit/v6 => github.com/brianvoe/gofakeit/v6 v6.9.0 + github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 + // required by slacker + github.com/slack-go/slack => github.com/slack-go/slack v0.12.2 + github.com/synapsecns/sanguine/core => ./../../core + github.com/synapsecns/sanguine/ethergo => ./../../ethergo + github.com/synapsecns/sanguine/services/explorer => ../../services/explorer + github.com/synapsecns/sanguine/services/omnirpc => ../../services/omnirpc + github.com/synapsecns/sanguine/services/scribe => ../../services/scribe +) diff --git a/contrib/opbot/go.sum b/contrib/opbot/go.sum new file mode 100644 index 0000000000..964720227c --- /dev/null +++ b/contrib/opbot/go.sum @@ -0,0 +1,741 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= +dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.11.1 h1:E+OJmp2tPvt1W+amx48v1eqbjDYsgN+RzP4q16yV5eM= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.11.1/go.mod h1:a6xsAQUZg+VsS3TJ05SRp524Hs4pZ/AeFSr5ENf0Yjo= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.2 h1:FDif4R1+UUR+00q6wquyX90K7A8dN+R5E8GEadoP7sU= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.2/go.mod h1:aiYBYui4BJ/BJCAIKs92XiPyQfTaBWqvHujDwKb6CBU= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.6.0 h1:sUFnFjzDUie80h24I7mrKtwCKgLY9L8h5Tp2x9+TWqk= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.6.0/go.mod h1:52JbnQTp15qg5mRkMBHwp0j0ZFwHJ42Sx3zVV5RE9p0= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +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/Flaque/filet v0.0.0-20201012163910-45f684403088 h1:PnnQln5IGbhLeJOi6hVs+lCeF+B1dRfFKPGXUAez0Ww= +github.com/Flaque/filet v0.0.0-20201012163910-45f684403088/go.mod h1:TK+jB3mBs+8ZMWhU5BqZKnZWJ1MrLo8etNVg51ueTBo= +github.com/ImVexed/fasturl v0.0.0-20230304231329-4e41488060f3 h1:ClzzXMDDuUbWfNNZqGeYq4PnYOlwlOVIvSyNaIy0ykg= +github.com/ImVexed/fasturl v0.0.0-20230304231329-4e41488060f3/go.mod h1:we0YA5CsBbH5+/NUzC/AlMmxaDtWlXeNsqrwXjTzmzA= +github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= +github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= +github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEVMRuU21PR1EtLVZJmdB18Gu3Rw= +github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk= +github.com/ProtonMail/go-crypto v1.0.0 h1:LRuvITjQWX+WIfr930YHG2HNfjR1uOfyf5vE0kC2U78= +github.com/ProtonMail/go-crypto v1.0.0/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= +github.com/alecthomas/units v0.0.0-20231202071711-9a357b53e9c9 h1:ez/4by2iGztzR4L0zgAOR8lTQK9VlyBVVd7G4omaOQs= +github.com/alecthomas/units v0.0.0-20231202071711-9a357b53e9c9/go.mod h1:OMCwj8VM1Kc9e19TLln2VL61YJF0x1XFtfdL4JdbSyE= +github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= +github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4= +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/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4= +github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI= +github.com/aws/aws-sdk-go v1.53.16 h1:8oZjKQO/ml1WLUZw5hvF7pvYjPf8o9f57Wldoy/q9Qc= +github.com/aws/aws-sdk-go v1.53.16/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= +github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= +github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8= +github.com/badoux/checkmail v1.2.4 h1:4zMjdYDjE2Q7xF06VNfyN8P9JGU7epLjNb+Yu5OThVI= +github.com/badoux/checkmail v1.2.4/go.mod h1:XroCOBU5zzZJcLvgwU15I+2xXyCdTWXyR9MGfRhBYy0= +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/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= +github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/bits-and-blooms/bitset v1.10.0 h1:ePXTeiPEazB5+opbv5fr8umg2R/1NlzgDsyepwsSr88= +github.com/bits-and-blooms/bitset v1.10.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= +github.com/brianvoe/gofakeit/v6 v6.9.0 h1:UCGhPCKLiqBc910TKS7LcOGf74NozftibFCbGIS6GZQ= +github.com/brianvoe/gofakeit/v6 v6.9.0/go.mod h1:palrJUk4Fyw38zIFB/uBZqsgzW5VsNllhHKKwAebzew= +github.com/btcsuite/btcd/btcec/v2 v2.3.0 h1:S/6K1GEwlEsFzZP4cOOl5mg6PEd/pr0zz7hvXcaxhJ4= +github.com/btcsuite/btcd/btcec/v2 v2.3.0/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04= +github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= +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/c-bata/go-prompt v0.2.6 h1:POP+nrHE+DfLYx370bedwNhsqmpCUynWPxuHi0C5vZI= +github.com/c-bata/go-prompt v0.2.6/go.mod h1:/LMAke8wD2FsNu9EXNdHxNLbd9MedkPnCdfpU9wwHfY= +github.com/catppuccin/go v0.2.0 h1:ktBeIrIP42b/8FGiScP9sgrWOss3lw0Z5SktRoithGA= +github.com/catppuccin/go v0.2.0/go.mod h1:8IHJuMGaUUjQM82qBrGNBv7LFq6JI3NnQCF6MOlZjpc= +github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= +github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +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/charmbracelet/bubbles v0.18.0 h1:PYv1A036luoBGroX6VWjQIE9Syf2Wby2oOl/39KLfy0= +github.com/charmbracelet/bubbles v0.18.0/go.mod h1:08qhZhtIwzgrtBjAcJnij1t1H0ZRjwHyGsy6AL11PSw= +github.com/charmbracelet/bubbletea v0.26.5 h1:90pqTPElAReb/qQUgSMUresTkfwVr0Wx+zczeHHOgxk= +github.com/charmbracelet/bubbletea v0.26.5/go.mod h1:dz8CWPlfCCGLFbBlTY4N7bjLiyOGDJEnd2Muu7pOWhk= +github.com/charmbracelet/huh v0.4.2 h1:5wLkwrA58XDAfEZsJzNQlfJ+K8N9+wYwvR5FOM7jXFM= +github.com/charmbracelet/huh v0.4.2/go.mod h1:g9OXBgtY3zRV4ahnVih9bZE+1yGYN+y2C9Q6L2P+WM0= +github.com/charmbracelet/huh/spinner v0.0.0-20240618200428-90406d79077d h1:OpthCCWiHBSx6LTAYGGkN9OeuJrKzjobe0q12wO6BX0= +github.com/charmbracelet/huh/spinner v0.0.0-20240618200428-90406d79077d/go.mod h1:CrXBZnOWs3zpyppOZZS7lu2CpLq2jx6U5chL/frRG/E= +github.com/charmbracelet/lipgloss v0.11.0 h1:UoAcbQ6Qml8hDwSWs0Y1cB5TEQuZkDPH/ZqwWWYTG4g= +github.com/charmbracelet/lipgloss v0.11.0/go.mod h1:1UdRTH9gYgpcdNN5oBtjbu/IzNKtzVtb7sqN1t9LNn8= +github.com/charmbracelet/x/ansi v0.1.2 h1:6+LR39uG8DE6zAmbu023YlqjJHkYXDF1z36ZwzO4xZY= +github.com/charmbracelet/x/ansi v0.1.2/go.mod h1:dk73KoMTT5AX5BsX0KrqhsTqAnhZZoCBjs7dGWp4Ktw= +github.com/charmbracelet/x/exp/strings v0.0.0-20240524151031-ff83003bf67a h1:lOpqe2UvPmlln41DGoii7wlSZ/q8qGIon5JJ8Biu46I= +github.com/charmbracelet/x/exp/strings v0.0.0-20240524151031-ff83003bf67a/go.mod h1:pBhA0ybfXv6hDjQUZ7hk1lVxBiUbupdw5R31yPUViVQ= +github.com/charmbracelet/x/exp/term v0.0.0-20240524151031-ff83003bf67a h1:k/s6UoOSVynWiw7PlclyGO2VdVs5ZLbMIHiGp4shFZE= +github.com/charmbracelet/x/exp/term v0.0.0-20240524151031-ff83003bf67a/go.mod h1:YBotIGhfoWhHDlnUpJMkjebGV2pdGRCn1Y4/Nk/vVcU= +github.com/charmbracelet/x/input v0.1.2 h1:QJAZr33eOhDowkkEQ24rsJy4Llxlm+fRDf/cQrmqJa0= +github.com/charmbracelet/x/input v0.1.2/go.mod h1:LGBim0maUY4Pitjn/4fHnuXb4KirU3DODsyuHuXdOyA= +github.com/charmbracelet/x/term v0.1.1 h1:3cosVAiPOig+EV4X9U+3LDgtwwAoEzJjNdwbXDjF6yI= +github.com/charmbracelet/x/term v0.1.1/go.mod h1:wB1fHt5ECsu3mXYusyzcngVWWlu1KKUmmLhfgr/Flxw= +github.com/charmbracelet/x/windows v0.1.2 h1:Iumiwq2G+BRmgoayww/qfcvof7W/3uLoelhxojXlRWg= +github.com/charmbracelet/x/windows v0.1.2/go.mod h1:GLEO/l+lizvFDBPLIOk+49gdX49L9YWMB5t+DZd0jkQ= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= +github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU= +github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA= +github.com/cloudwego/base64x v0.1.4 h1:jwCgWpFanWmN8xoIUHa2rtzmkd5J2plF/dnLS6Xd/0Y= +github.com/cloudwego/base64x v0.1.4/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= +github.com/cloudwego/iasm v0.2.0 h1:1KNIy1I1H9hNNFEEH3DVnI4UujN+1zjpuk6gwHLTssg= +github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/consensys/bavard v0.1.13 h1:oLhMLOFGTLdlda/kma4VOJazblc7IM5y5QPd2A/YjhQ= +github.com/consensys/bavard v0.1.13/go.mod h1:9ItSMtA/dXMAiL7BG6bqW2m3NdSEObYWoH223nGHukI= +github.com/consensys/gnark-crypto v0.12.1 h1:lHH39WuuFgVHONRl3J0LRBtuYdQTumFSDtJF7HpyG8M= +github.com/consensys/gnark-crypto v0.12.1/go.mod h1:v2Gy7L/4ZRosZ7Ivs+9SfUDr0f5UlG+EM5t7MPHiLuY= +github.com/containerd/continuity v0.4.2 h1:v3y/4Yz5jwnvqPKJJ+7Wf93fyWoCB3F5EclWG023MDM= +github.com/containerd/continuity v0.4.2/go.mod h1:F6PTNCKepoxEaXLQp3wDAjygEnImnZ/7o4JzpodfroQ= +github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA= +github.com/crate-crypto/go-kzg-4844 v0.7.0/go.mod h1:1kMhvPgI0Ky3yIa+9lFySEBUBXkYxeOi8ZF1sYioxhc= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= +github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= +github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e h1:5jVSh2l/ho6ajWhSPNN84eHEdq3dp0T7+f6r3Tc6hsk= +github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e/go.mod h1:IJgIiGUARc4aOr4bOQ85klmjsShkEEfiRc6q/yBSfo8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davidmytton/url-verifier v1.0.1 h1:eTSdMo5v0HtvrFObYInmt/WTmy5Izlh5gAa0AtrUzKc= +github.com/davidmytton/url-verifier v1.0.1/go.mod h1:kha47HNj0Zg0cozShEaIEPmT3nn7c8N1TGnh8U2B4jc= +github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80NsVHagjM= +github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= +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/docker/cli v26.0.1+incompatible h1:eZDuplk2jYqgUkNLDYwTBxqmY9cM3yHnmN6OIUEjL3U= +github.com/docker/cli v26.0.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/docker v26.1.3+incompatible h1:lLCzRbrVZrljpVNobJu1J2FHk8V0s4BawoZippkc+xo= +github.com/docker/docker v26.1.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= +github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= +github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= +github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/dubonzi/otelresty v1.2.0 h1:tLWW1J0paY4Fugh5cD3qhMFHNWgM5LSXEfPCW03jyi0= +github.com/dubonzi/otelresty v1.2.0/go.mod h1:oMTNjqB31Fh8nFEWqrk+4diB4YwSmEy3zpBzxGHeLXA= +github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= +github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= +github.com/dvyukov/go-fuzz v0.0.0-20200318091601-be3528f3a813/go.mod h1:11Gm+ccJnvAhCNLlf5+cS9KjtbaD5I5zaZpFMsTHWTw= +github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a h1:mATvB/9r/3gvcejNsXKSkQ6lcIaNec2nyfOdlTBR2lU= +github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a/go.mod h1:Ro8st/ElPeALwNFlcTpWmkr6IoMFfkjXAvTHpevnDsM= +github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= +github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f h1:Y/CXytFA4m6baUTXGLOoWe4PQhGxaX0KpnayAqC48p4= +github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f/go.mod h1:vw97MGsxSvLiUE2X8qFplwetxpGLQrlU1Q9AUEIzCaM= +github.com/ethereum/c-kzg-4844 v0.4.0 h1:3MS1s4JtA868KpJxroZoepdV0ZKBp3u/O5HcZ7R3nlY= +github.com/ethereum/c-kzg-4844 v0.4.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0= +github.com/ethereum/go-ethereum v1.13.8 h1:1od+thJel3tM52ZUNQwvpYOeRHlbkVFZ5S8fhi0Lgsg= +github.com/ethereum/go-ethereum v1.13.8/go.mod h1:sc48XYQxCzH3fG9BcrXCOOgQk2JfZzNAmIKnceogzsA= +github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= +github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= +github.com/gin-contrib/cors v1.7.2 h1:oLDHxdg8W/XDoN/8zamqk/Drgt4oVZDvaV0YmvVICQw= +github.com/gin-contrib/cors v1.7.2/go.mod h1:SUJVARKgQ40dmrzgXEVxj2m7Ig1v1qIboQkPDTQ9t2E= +github.com/gin-contrib/requestid v0.0.6 h1:mGcxTnHQ45F6QU5HQRgQUDsAfHprD3P7g2uZ4cSZo9o= +github.com/gin-contrib/requestid v0.0.6/go.mod h1:9i4vKATX/CdggbkY252dPVasgVucy/ggBeELXuQztm4= +github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= +github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= +github.com/gin-contrib/zap v0.2.0 h1:HLvt3rZXyC8XC+s2lHzMFow3UDqiEbfrBWJyHHS6L8A= +github.com/gin-contrib/zap v0.2.0/go.mod h1:eqfbe9ZmI+GgTZF6nRiC2ZwDeM4DK1Viwc8OxTCphh0= +github.com/gin-gonic/gin v1.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk= +github.com/gin-gonic/gin v1.10.0 h1:nTuyha1TYqgedzytsKYqna+DfLos46nTv2ygFy86HFU= +github.com/gin-gonic/gin v1.10.0/go.mod h1:4PMNQiOhvDRa013RKVbsiNwoyezlm2rm0uX/T7kzp5Y= +github.com/gliderlabs/ssh v0.3.7 h1:iV3Bqi942d9huXnzEF2Mt+CY9gLu8DNM4Obd+8bODRE= +github.com/gliderlabs/ssh v0.3.7/go.mod h1:zpHEXBstFnQYtGnB8k8kQLol82umzn/2/snG7alWVD8= +github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI= +github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic= +github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU= +github.com/go-git/go-billy/v5 v5.5.0/go.mod h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgFRpCtpDCKow= +github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMje31YglSBqCdIqdhKBW8lokaMrL3uTkpGYlE2OOT4= +github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399/go.mod h1:1OCfN199q1Jm3HZlxleg+Dw/mwps2Wbk9frAWm+4FII= +github.com/go-git/go-git/v5 v5.12.0 h1:7Md+ndsjrzZxbddRDZjF14qK+NN56sy6wkqaVrjZtys= +github.com/go-git/go-git/v5 v5.12.0/go.mod h1:FTM9VKtnI2m65hNI/TenDDDnUf2Q9FHnXYjuz9i5OEY= +github.com/go-http-utils/headers v0.0.0-20181008091004-fed159eddc2a h1:v6zMvHuY9yue4+QkG/HQ/W67wvtQmWJ4SDo9aK/GIno= +github.com/go-http-utils/headers v0.0.0-20181008091004-fed159eddc2a/go.mod h1:I79BieaU4fxrw4LMXby6q5OS9XnoR9UIKLOzDFjUmuw= +github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= +github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= +github.com/go-logfmt/logfmt v0.6.0 h1:wGYYu3uicYdqXVgoYbvnkrPVXkuLM1p1ifugDMEdRi4= +github.com/go-logfmt/logfmt v0.6.0/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +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-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-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= +github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs= +github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= +github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= +github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA= +github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= +github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= +github.com/go-playground/validator/v10 v10.10.0/go.mod h1:74x4gJWsvQexRdW8Pn3dXSGrTK4nAUsbPlLADvpJkos= +github.com/go-playground/validator/v10 v10.20.0 h1:K9ISHbSaI0lyB2eWMPJo+kOS/FBExVwjEviJTixqxL8= +github.com/go-playground/validator/v10 v10.20.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= +github.com/go-resty/resty/v2 v2.13.1 h1:x+LHXBI2nMB1vqndymf26quycC4aggYJ7DECYbiz03g= +github.com/go-resty/resty/v2 v2.13.1/go.mod h1:GznXlLxkq6Nh4sU59rPmUw3VtgpO3aS96ORAI6Q7d+0= +github.com/go-test/deep v1.0.4 h1:u2CU3YKy9I2pmu9pX0eq50wCgjfGIt539SqR7FbHiho= +github.com/go-test/deep v1.0.4/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= +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= +github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= +github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/protobuf v1.2.0/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.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= +github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.5.5/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.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +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/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +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/otel-profiling-go v0.5.1 h1:stVPKAFZSa7eGiqbYuG25VcqYksR6iWvF3YH66t4qL8= +github.com/grafana/otel-profiling-go v0.5.1/go.mod h1:ftN/t5A/4gQI19/8MoWurBEtC6gFw8Dns1sJZ9W4Tls= +github.com/grafana/pyroscope-go v1.1.1 h1:PQoUU9oWtO3ve/fgIiklYuGilvsm8qaGhlY4Vw6MAcQ= +github.com/grafana/pyroscope-go v1.1.1/go.mod h1:Mw26jU7jsL/KStNSGGuuVYdUq7Qghem5P8aXYXSXG88= +github.com/grafana/pyroscope-go/godeltaprof v0.1.7 h1:C11j63y7gymiW8VugJ9ZW0pWfxTZugdSJyC48olk5KY= +github.com/grafana/pyroscope-go/godeltaprof v0.1.7/go.mod h1:Tk376Nbldo4Cha9RgiU7ik8WKFkNpfds98aUzS8omLE= +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/grpc-ecosystem/grpc-gateway/v2 v2.20.0 h1:bkypFPDjIYGfCYD5mRBvpqxfYX1YCS1PXdKYWi8FsN0= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0/go.mod h1:P+Lt/0by1T8bfcF3z737NnSbmxQAppXMRziHUxPOC8k= +github.com/hako/durafmt v0.0.0-20210608085754-5c1018a4e16b h1:wDUNC2eKiL35DbLvsDhiblTUXHxcOPwQSCzi7xpQUN4= +github.com/hako/durafmt v0.0.0-20210608085754-5c1018a4e16b/go.mod h1:VzxiSdG6j1pi7rwGm/xYI5RbtpBgM8sARDXlvEvxlu0= +github.com/holiman/uint256 v1.2.4 h1:jUc4Nk8fm9jZabQuqr2JzednajVmBpC+oiTiXZJEApU= +github.com/holiman/uint256 v1.2.4/go.mod h1:EOMSn4q6Nyt9P6efbI3bueV4e1b3dGlUCXeiRV4ng7E= +github.com/integralist/go-findroot v0.0.0-20160518114804-ac90681525dc h1:4IZpk3M4m6ypx0IlRoEyEyY1gAdicWLMQ0NcG/gBnnA= +github.com/integralist/go-findroot v0.0.0-20160518114804-ac90681525dc/go.mod h1:UlaC6ndby46IJz9m/03cZPKKkR9ykeIVBBDE3UDBdJk= +github.com/ipfs/go-log v1.0.5 h1:2dOuUCB1Z7uoczMWgAyDck5JLb72zHzrMnGnCNNbvY8= +github.com/ipfs/go-log v1.0.5/go.mod h1:j0b8ZoR+7+R99LD9jZ6+AJsrzkPbSXbZfGakb5JPtIo= +github.com/ipfs/go-log/v2 v2.1.3/go.mod h1:/8d0SH3Su5Ooc31QlL1WysJhvyOTDCjcCZ9Axpmri6g= +github.com/ipfs/go-log/v2 v2.5.1 h1:1XdUzF7048prq4aBjDQQ4SL5RxftpRGdXhNRwKSAlcY= +github.com/ipfs/go-log/v2 v2.5.1/go.mod h1:prSpmC1Gpllc9UYWxDiZDreBYw7zp4Iqp1kOLU9U5UI= +github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= +github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= +github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= +github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= +github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= +github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= +github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= +github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= +github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= +github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= +github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= +github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= +github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= +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/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4= +github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= +github.com/keybase/go-keychain v0.0.0-20231219164618-57a3676c3af6 h1:IsMZxCuZqKuao2vNdfD82fjjgPLfyHLpR41Z88viRWs= +github.com/keybase/go-keychain v0.0.0-20231219164618-57a3676c3af6/go.mod h1:3VeWNIJaW+O5xpRQbPp0Ybqu1vJd/pm7s2F473HRrkw= +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.17.3/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM= +github.com/klauspost/compress v1.17.8 h1:YcnTYrq7MikUT7k0Yb5eceMmALQPYBW/Xltxn0NAMnU= +github.com/klauspost/compress v1.17.8/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= +github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= +github.com/klauspost/cpuid/v2 v2.2.8 h1:+StwCXwm9PdpiEkPyzBXIy+M9KUb4ODm0Zarf1kS5BM= +github.com/klauspost/cpuid/v2 v2.2.8/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= +github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= +github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= +github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= +github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= +github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= +github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= +github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= +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.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-localereader v0.0.1 h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4= +github.com/mattn/go-localereader v0.0.1/go.mod h1:8fBrzywKY7BI3czFoHkuzRoWE9C+EiG4R1k4Cjx5p88= +github.com/mattn/go-runewidth v0.0.6/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= +github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= +github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= +github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-tty v0.0.3 h1:5OfyWorkyO7xP52Mq7tB36ajHDG5OHrmBGIS/DtakQI= +github.com/mattn/go-tty v0.0.3/go.mod h1:ihxohKRERHTVzN+aSVRwACLCeqIoZAWpoICkkvrWyR0= +github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= +github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= +github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +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/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/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= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +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/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 h1:ZK8zHtRHOkbHy6Mmr5D264iyp3TiX5OmNcI5cIARiQI= +github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6/go.mod h1:CJlz5H+gyd6CUWT45Oy4q24RdLyn7Md9Vj2/ldJBSIo= +github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA= +github.com/muesli/cancelreader v0.2.2/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo= +github.com/muesli/termenv v0.15.2 h1:GohcuySI0QmI3wN8Ok9PtKGkgkFIk7y6Vpb5PvrY+Wo= +github.com/muesli/termenv v0.15.2/go.mod h1:Epx+iuz8sNs7mNKhxzH4fWXGNpZwUaJKRS1noLXviQ8= +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/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= +github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= +github.com/onsi/gomega v1.30.0 h1:hvMK7xYz4D3HapigLTeGdId/NcfQx1VHMJc60ew99+8= +github.com/onsi/gomega v1.30.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ= +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-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= +github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/runc v1.1.5 h1:L44KXEpKmfWDcS02aeGm8QNTFXTo2D+8MYGDIJ/GDEs= +github.com/opencontainers/runc v1.1.5/go.mod h1:1J5XiS+vdZ3wCyZybsuxXZWGrgSr8fFJHLXuG2PsnNg= +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 v3.10.0 h1:4K3z2VMe8Woe++invjaTB7VRyQXQy5UY+loujO4aNE4= +github.com/ory/dockertest/v3 v3.10.0/go.mod h1:nr57ZbRWMqfsdGdFNLHz5jjNdDb7VVFnzAeW1n5N1Lg= +github.com/pelletier/go-toml/v2 v2.0.1/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo= +github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM= +github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= +github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5 h1:Ii+DKncOVM8Cu1Hc+ETb5K+23HdAMvESYE3ZJ5b5cMI= +github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5/go.mod h1:iIss55rKnNBTvrwdmkUpLnDpZoAHvWaiq5+iMmen4AE= +github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4= +github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI= +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.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/term v1.2.0-beta.2 h1:L3y/h2jkuBVFdWiJvNfYfKmzcCnILw7mJWm2JQuMppw= +github.com/pkg/term v1.2.0-beta.2/go.mod h1:E25nymQcrSllhX42Ok8MRm1+hyBdHY0dCeiKZ9jpNGw= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +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/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= +github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= +github.com/prometheus/common v0.54.0 h1:ZlZy0BgJhTwVZUn7dLOkwCZHUkrAqd3WYtcFCWnM1D8= +github.com/prometheus/common v0.54.0/go.mod h1:/TQgMJP5CuVYveyT7n/0Ix8yLNNXy9yRSkhnLTHPDIQ= +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/procfs v0.15.0 h1:A82kmvXJq2jTu5YUhSGNlYoxh85zLnKgPz4bMZgI5Ek= +github.com/prometheus/procfs v0.15.0/go.mod h1:Y0RJ/Y5g5wJpkTisOtqwDSo4HwhGmLB4VQSw2sQJLHk= +github.com/prometheus/prometheus v0.53.0 h1:vOnhpUKrDv954jnVBvhG/ZQJ3kqscnKI+Hbdwo2tAhc= +github.com/prometheus/prometheus v0.53.0/go.mod h1:RZDkzs+ShMBDkAPQkLEaLBXpjmDcjhNxU2drUVPgKUU= +github.com/regen-network/protobuf v1.3.3-alpha.regen.1 h1:OHEc+q5iIAXpqiqFKeLpu5NwTIkVXUs48vFMwzqpqY4= +github.com/regen-network/protobuf v1.3.3-alpha.regen.1/go.mod h1:2DjTFR1HhMQhiWC5sZ4OhQ3+NtdbZ6oBDKQwq5Ou+FI= +github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= +github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= +github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= +github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= +github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= +github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= +github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8= +github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4= +github.com/shibukawa/configdir v0.0.0-20170330084843-e180dbdc8da0 h1:Xuk8ma/ibJ1fOy4Ee11vHhUFHQNpHhrBneOCNHVXS5w= +github.com/shibukawa/configdir v0.0.0-20170330084843-e180dbdc8da0/go.mod h1:7AwjWCpdPhkSmNAgUv5C7EJ4AbmjEB3r047r3DXWu3Y= +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/shomali11/commander v0.0.0-20230730023802-0b64f620037d h1:IImd1gV+EdlKWWi8RoHSaccjLQtSi4tJiFOjq6mM+ZQ= +github.com/shomali11/commander v0.0.0-20230730023802-0b64f620037d/go.mod h1:bYyJw/Aj9fK+qoFmRbPJeWsDgq7WGO8f/Qof95qPug4= +github.com/shomali11/proper v0.0.0-20180607004733-233a9a872c30/go.mod h1:O723XwIZBX3FR45rBic/Eyp/DKo/YtchYFURzpUWY2c= +github.com/shomali11/proper v0.0.0-20190608032528-6e70a05688e7 h1:wAyBXFZOcLkbaoDlDbMpTCw9xy3yP2YJDMRrbTVuVKU= +github.com/shomali11/proper v0.0.0-20190608032528-6e70a05688e7/go.mod h1:cg2VM85Y+0BcVSICzB+OafOlTcJ9QPbtF4qtuhuR/GA= +github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/skeema/knownhosts v1.2.2 h1:Iug2P4fLmDw9f41PB6thxUkNUkJzB5i+1/exaj40L3A= +github.com/skeema/knownhosts v1.2.2/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo= +github.com/slack-go/slack v0.12.2 h1:x3OppyMyGIbbiyFhsBmpf9pwkUzMhthJMRNmNlA4LaQ= +github.com/slack-go/slack v0.12.2/go.mod h1:hlGi5oXA+Gt+yWTPP0plCdRKmjsDxecdHxYQdlMQKOw= +github.com/slack-io/slacker v0.1.0 h1:im8hrddzZEnkpavutIc5/It+zmQIybjhceFGJix0MTY= +github.com/slack-io/slacker v0.1.0/go.mod h1:VPW+xhTrmB4lUoxA5tiB180fmWFt6UFW+96ZWYtj0Qg= +github.com/spf13/afero v1.10.0 h1:EaGW2JJh15aKOejeuJ+wpFSHnbd7GE6Wvp3TsNhb6LY= +github.com/spf13/afero v1.10.0/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= +github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= +github.com/stretchr/testify v1.2.1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/supranational/blst v0.3.11 h1:LyU6FolezeWAhvQk0k6O/d49jqgO52MSDDfYgbeoEm4= +github.com/supranational/blst v0.3.11/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/j+w+fVonLw= +github.com/temoto/robotstxt v1.1.2 h1:W2pOjSJ6SWvldyEuiFXNxz3xZ8aiWX5LbfDiOFd7Fxg= +github.com/temoto/robotstxt v1.1.2/go.mod h1:+1AmkuG3IYkh1kv0d2qEB9Le88ehNO0zwOr3ujewlOo= +github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= +github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= +github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= +github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= +github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= +github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= +github.com/ugorji/go v1.2.7/go.mod h1:nF9osbDWLy6bDVv/Rtoh6QgnvNDpmCalQV5urGCCS6M= +github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY= +github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65EE= +github.com/ugorji/go/codec v1.2.12/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= +github.com/uptrace/opentelemetry-go-extra/otelgorm v0.3.1 h1:GFFXCsiOWqrAovcIzxqJOYBEy2A/0jd//JNz/jTy1CA= +github.com/uptrace/opentelemetry-go-extra/otelgorm v0.3.1/go.mod h1:ncqprpzpjuZHDkvsnl/baPLA0stLgZSLsYEvUhAVkbM= +github.com/uptrace/opentelemetry-go-extra/otelsql v0.3.1 h1:i4f4ey/v5x0zXurkqV/zbOZlMLu8WNIvpDn1tJzdutY= +github.com/uptrace/opentelemetry-go-extra/otelsql v0.3.1/go.mod h1:ZKgZNsGk5Y+uOxRHcYb4MKLVpmKYU4/u7BUtbStJm7w= +github.com/uptrace/opentelemetry-go-extra/otelutil v0.3.1 h1:Suvl9fe12MM0oi8/rcGxlGd7XawNQawU369aHzZFFec= +github.com/uptrace/opentelemetry-go-extra/otelutil v0.3.1/go.mod h1:aiX/F5+EYbY2ed2OQEYRXzMcNGvI9pip5gW2ZtBDers= +github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.1 h1:0iCp8hx3PFhGihubKHxyOCdIlIPxzUr0VsK+rvlMGdk= +github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.1/go.mod h1:FXrjpUJDqwqofvXWG3YNxQwhg2876tUpZASj8VvOMAM= +github.com/urfave/cli/v2 v2.27.2 h1:6e0H+AkS+zDckwPCUrZkKX38mRaau4nL2uipkJpbkcI= +github.com/urfave/cli/v2 v2.27.2/go.mod h1:g0+79LmHHATl7DAcHO99smiR/T7uGLw84w8Y42x+4eM= +github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= +github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= +github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo= +github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= +github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= +github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= +github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= +github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no= +github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM= +github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 h1:+qGGcbkzsfDQNPPe9UDgpxAWQrhbbBXOYJFQDq/dtJw= +github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913/go.mod h1:4aEEwZQutDLsQv2Deui4iYQ6DWTxR14g6m8Wv88+Xqk= +github.com/yuin/goldmark v1.1.27/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/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= +github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0 h1:vkioc4XBfqnZZ7u40wK3Kgbjj9JYkvW6FY1ghmM/Shk= +go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0/go.mod h1:vsyxiwPzPlijgouF1SRZRGqbuHod8fV6+MRCH7ltxDE= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 h1:9l89oX4ba9kHbBol3Xin3leYJ+252h0zszDtBwyKe2A= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0/go.mod h1:XLZfZboOJWHNKUv7eH0inh0E9VV6eWDFB/9yJyTLPp0= +go.opentelemetry.io/contrib/propagators/b3 v1.27.0 h1:IjgxbomVrV9za6bRi8fWCNXENs0co37SZedQilP2hm0= +go.opentelemetry.io/contrib/propagators/b3 v1.27.0/go.mod h1:Dv9obQz25lCisDvvs4dy28UPh974CxkahRDUPsY7y9E= +go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo= +go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= +go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= +go.opentelemetry.io/otel/exporters/jaeger v1.17.0 h1:D7UpUy2Xc2wsi1Ras6V40q806WM07rqoCWzXu7Sqy+4= +go.opentelemetry.io/otel/exporters/jaeger v1.17.0/go.mod h1:nPCqOnEH9rNLKqH/+rrUjiMzHJdV1BlpKcTwRTyKkKI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.27.0 h1:R9DE4kQ4k+YtfLI2ULwX82VtNQ2J8yZmA7ZIF/D+7Mc= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.27.0/go.mod h1:OQFyQVrDlbe+R7xrEyDr/2Wr67Ol0hRUgsfA+V5A95s= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0 h1:qFffATk0X+HD+f1Z8lswGiOQYKHRlzfmdJm0wEaVrFA= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0/go.mod h1:MOiCmryaYtc+V0Ei+Tx9o5S1ZjA7kzLucuVuyzBZloQ= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.27.0 h1:QY7/0NeRPKlzusf40ZE4t1VlMKbqSNT7cJRYzWuja0s= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.27.0/go.mod h1:HVkSiDhTM9BoUJU8qE6j2eSWLLXvi1USXjyd2BXT8PY= +go.opentelemetry.io/otel/exporters/prometheus v0.49.0 h1:Er5I1g/YhfYv9Affk9nJLfH/+qCCVVg1f2R9AbJfqDQ= +go.opentelemetry.io/otel/exporters/prometheus v0.49.0/go.mod h1:KfQ1wpjf3zsHjzP149P4LyAwWRupc6c7t1ZJ9eXpKQM= +go.opentelemetry.io/otel/log v0.3.0 h1:kJRFkpUFYtny37NQzL386WbznUByZx186DpEMKhEGZs= +go.opentelemetry.io/otel/log v0.3.0/go.mod h1:ziCwqZr9soYDwGNbIL+6kAvQC+ANvjgG367HVcyR/ys= +go.opentelemetry.io/otel/metric v1.21.0/go.mod h1:o1p3CA8nNHW8j5yuQLdc1eeqEaPfzug24uvsyIEJRWM= +go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= +go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= +go.opentelemetry.io/otel/sdk v1.21.0/go.mod h1:Nna6Yv7PWTdgJHVRD9hIYywQBRx7pbox6nwBnZIxl/E= +go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= +go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= +go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= +go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= +go.opentelemetry.io/otel/trace v1.21.0/go.mod h1:LGbsEB0f9LGjN+OZaQQ26sohbOmiMR+BaslueVtS/qQ= +go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= +go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= +go.opentelemetry.io/proto/otlp v1.2.0 h1:pVeZGk7nXDC9O2hncA6nHldxEjm6LByfA2aN8IOkz94= +go.opentelemetry.io/proto/otlp v1.2.0/go.mod h1:gGpR8txAl5M03pDhMC79G6SdqNV26naRm/KDsgaHD8A= +go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= +go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= +go.uber.org/goleak v1.1.11-0.20210813005559-691160354723/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= +go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= +go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= +go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= +go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= +go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= +go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= +go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI= +go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= +go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= +golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= +golang.org/x/arch v0.8.0 h1:3wRIsP3pM4yUptoR96otTUOXI367OS0+c9eeRi9doIc= +golang.org/x/arch v0.8.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/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-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= +golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= +golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= +golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 h1:yixxcjnhBmY0nkL253HFVIm0JsFHwrHdT3Yh6szTnfY= +golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.18.0 h1:5+9lSbEzPSdWkH32vYPBwEpX8KwDbM52Ud9xBUvNlb0= +golang.org/x/mod v0.18.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/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-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/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-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +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.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= +golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= +golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= +golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +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-20201020160332-67f06af15bc9/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= +golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191008105621-543471e840be/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-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200918174421-af09f7315aff/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-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/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-20210615035016-665e8c7367d1/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-20210809222454-d867a43fc93e/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-20220811171246-fbc7d0a398ab/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.3.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= +golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= +golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/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.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= +golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= +golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/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.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= +golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/tools v0.22.0 h1:gqSGLZqv+AI9lIQzniJ0nZDRG5GBPsSi+DRNHWNz6yA= +golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20200324203455-a04cca1dde73/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 h1:7whR9kGa5LUwFtpLm2ArCEejtnxlGeLbAyjFY8sGNFw= +google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157/go.mod h1:99sLkeliLXfdj2J75X3Ho+rrVCaJze0uwN7zDDkjPVU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 h1:Zy9XzmMEflZ/MAaA7vNcoebnRAld7FsPW1EeBB7V0m8= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +google.golang.org/grpc v1.64.0 h1:KH3VH9y/MgNQg1dE7b3XfVK0GsPSIzJwdF617gUSbvY= +google.golang.org/grpc v1.64.0/go.mod h1:oxjF8E3FBnjp+/gVFYdWacaLDx9na1aqy9oovLpxQYg= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= +google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +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/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= +gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gorm.io/gorm v1.25.10 h1:dQpO+33KalOA+aFYGlK+EfxcI5MbO7EP2yYygwh9h+s= +gorm.io/gorm v1.25.10/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +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= +k8s.io/apimachinery v0.29.3 h1:2tbx+5L7RNvqJjn7RIuIKu9XTsIZ9Z5wX2G22XAa5EU= +k8s.io/apimachinery v0.29.3/go.mod h1:hx/S4V2PNW4OMg3WizRrHutyB5la0iCUbZym+W0EQIU= +k8s.io/client-go v0.29.3 h1:R/zaZbEAxqComZ9FHeQwOh3Y1ZUs7FaHKZdQtIc2WZg= +k8s.io/client-go v0.29.3/go.mod h1:tkDisCvgPfiRpxGnOORfkljmS+UrW+WtXAy2fTvXJB0= +k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= +k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= +rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= +rsc.io/tmplfunc v0.0.3 h1:53XFQh69AfOa8Tw0Jm7t+GV7KZhOi6jzsCzTtKbMvzU= +rsc.io/tmplfunc v0.0.3/go.mod h1:AG3sTPzElb1Io3Yg4voV9AGZJuleGAwaVRxL9M49PhA= diff --git a/contrib/opbot/main.go b/contrib/opbot/main.go new file mode 100644 index 0000000000..9e57af42fb --- /dev/null +++ b/contrib/opbot/main.go @@ -0,0 +1,13 @@ +// Package main provides the entry point for the opbot. +package main + +import ( + "os" + + "github.com/synapsecns/sanguine/contrib/opbot/cmd" + "github.com/synapsecns/sanguine/contrib/opbot/metadata" +) + +func main() { + cmd.Start(os.Args, metadata.BuildInfo()) +} diff --git a/contrib/opbot/metadata/metadata.go b/contrib/opbot/metadata/metadata.go new file mode 100644 index 0000000000..c6a93e5cdd --- /dev/null +++ b/contrib/opbot/metadata/metadata.go @@ -0,0 +1,15 @@ +// Package metadata provides a metadata service for opbot. +package metadata + +import "github.com/synapsecns/sanguine/core/config" + +var ( + version = config.DefaultVersion + commit = config.DefaultCommit + date = config.DefaultDate +) + +// BuildInfo returns the build info for the service. +func BuildInfo() config.BuildInfo { + return config.NewBuildInfo(version, commit, "opbot", date) +} diff --git a/contrib/opbot/signoz/authed.go b/contrib/opbot/signoz/authed.go new file mode 100644 index 0000000000..befa2d57c7 --- /dev/null +++ b/contrib/opbot/signoz/authed.go @@ -0,0 +1,242 @@ +package signoz + +import ( + "context" + "fmt" + "github.com/dubonzi/otelresty" + "github.com/go-resty/resty/v2" + v3 "github.com/synapsecns/sanguine/contrib/opbot/signoz/generated/v3" + "github.com/synapsecns/sanguine/core/metrics" + "time" +) + +// Client is a signoz client. +type Client struct { + *UnauthenticatedClient + handler metrics.Handler + client *resty.Client + url string + email, pass string + bearerToken, refreshToken string + bearerExpiry, refreshExpiry int64 +} + +// NewClientFromUser creates a new signoz client from a user. +func NewClientFromUser(handler metrics.Handler, url, email, password string) *Client { + if len(url) == 0 { + panic("url is required") + } + + if url[len(url)-1] == '/' { + url = url[:len(url)-1] + } + + res := &Client{ + UnauthenticatedClient: NewUnauthenticatedClient(handler, url), + url: url, + handler: handler, + client: resty.New(), + email: email, + pass: password, + } + + res.client.SetBaseURL(url) + res.client.OnBeforeRequest(res.beforeRequest) + otelresty.TraceClient(res.client, otelresty.WithTracerProvider(res.handler.GetTracerProvider())) + + return res +} + +func (c *Client) beforeRequest(_ *resty.Client, request *resty.Request) error { + // if bearer token & refresh token are not set, login + // TODO: we haven't built bearer refresh so just re-login every time + if (c.bearerToken == "" && c.refreshToken == "") || c.bearerExpiry < time.Now().Unix() { + res, err := c.UnauthenticatedClient.Login(request.Context(), c.email, c.pass) + if err != nil { + return err + } + + c.bearerToken = res.AccessJwt + c.refreshToken = res.RefreshJwt + c.bearerExpiry = int64(res.AccessJwtExpiry) + c.refreshExpiry = int64(res.AccessJwtExpiry) + } + + // nolint: revive, staticcheck + if c.bearerExpiry < time.Now().Unix() { + // TODO: implement refresh token logic and change above to be c.refreshExpiry + } + + request.Header.Set("Authorization", fmt.Sprintf("Bearer %s", c.bearerToken)) + + return nil +} + +// ServiceResponse is a signoz service. +type ServiceResponse struct { + ServiceName string `json:"serviceName"` + P99 float64 `json:"p99"` + AvgDuration float64 `json:"avgDuration"` + NumCalls int `json:"numCalls"` + CallRate float64 `json:"callRate"` + NumErrors int `json:"numErrors"` + ErrorRate float64 `json:"errorRate"` + Num4XX float64 `json:"num4XX"` + FourXXRate float64 `json:"fourXXRate"` +} + +// ServiceRequest is a request to get services. +type ServiceRequest struct { + Start string `json:"start"` + End string `json:"end"` + Tags []interface{} `json:"tags"` +} + +// Services gets services. +func (c *Client) Services(ctx context.Context, timePeriod TimePreferenceType) (res []ServiceResponse, err error) { + param := GetStartAndEndTime(timePeriod) + + resp, err := c.client.R(). + SetBody(ServiceRequest{ + Start: param.Start, + End: param.End, + Tags: []interface{}{}, + }). + SetContext(ctx). + SetResult(&res). + Post("/api/v1/services") + if err != nil { + return nil, fmt.Errorf("error getting services %w", err) + } + + if resp.IsError() { + return nil, fmt.Errorf("error getting services %w", err) + } + + return res, nil +} + +func hasField(field string, fields []v3.AttributeKey) bool { + for _, f := range fields { + if f.Key == field { + return true + } + } + + return false +} + +// QueryRangeResponse is a response to a query range. +type QueryRangeResponse struct { + Status string `json:"status"` + Data *v3.QueryRangeResponse `json:"data"` +} + +// SearchTraces searches for traces. +func (c *Client) SearchTraces(ctx context.Context, timePeriod TimePreferenceType, searchTerms map[string]string) (*QueryRangeResponse, error) { + param, err := GetStartAndEndTimeInt(timePeriod) + if err != nil { + return nil, err + } + + columns := []v3.AttributeKey{ + { + Key: "serviceName", + DataType: v3.AttributeKeyDataTypeString, + Type: v3.AttributeKeyTypeTag, + IsColumn: true, + }, + { + Key: "httpMethod", + DataType: v3.AttributeKeyDataTypeString, + Type: v3.AttributeKeyTypeTag, + IsColumn: true, + }, + { + Key: "responseStatusCode", + DataType: v3.AttributeKeyDataTypeString, + Type: v3.AttributeKeyTypeTag, + IsColumn: true, + }, + { + Key: "httpUrl", + DataType: v3.AttributeKeyDataTypeString, + Type: v3.AttributeKeyTypeTag, + IsColumn: true, + }, + { + Key: "name", + DataType: v3.AttributeKeyDataTypeString, + Type: v3.AttributeKeyTypeTag, + IsColumn: true, + }, + } + + filterItems := make([]v3.FilterItem, 0, len(searchTerms)) + for key, value := range searchTerms { + filterItems = append(filterItems, v3.FilterItem{ + Key: v3.AttributeKey{ + Key: key, + DataType: v3.AttributeKeyDataTypeString, + Type: v3.AttributeKeyTypeTag, + IsColumn: hasField(key, columns), + IsJSON: false, + }, + Operator: "=", + Value: value, + }) + } + + query := v3.QueryRangeParamsV3{ + Start: param.Start, + End: param.End, + Step: 60, + CompositeQuery: &v3.CompositeQuery{ + BuilderQueries: map[string]*v3.BuilderQuery{ + "A": { + DataSource: v3.DataSourceTraces, + AggregateOperator: v3.AggregateOperatorNoOp, + Filters: &v3.FilterSet{ + Operator: "AND", + // TODO: add filters + Items: filterItems, + }, + // TODO + Limit: 10, + Offset: 0, + Expression: "A", + QueryName: "A", + StepInterval: 10, + ReduceTo: v3.ReduceToOperatorSum, + OrderBy: []v3.OrderBy{ + { + ColumnName: "timestamp", + Order: "desc", + }, + }, + SelectColumns: columns, + }, + }, + PanelType: v3.PanelTypeList, + QueryType: v3.QueryTypeBuilder, + }, + } + + var res QueryRangeResponse + + resp, err := c.client.R(). + SetContext(ctx). + SetBody(query). + SetResult(&res). + Post("/api/v3/query_range") + + if err != nil { + return nil, fmt.Errorf("error getting traces %w", err) + } + + if resp.IsError() { + return nil, fmt.Errorf("error getting traces %w", err) + } + + return &res, nil +} diff --git a/contrib/opbot/signoz/doc.go b/contrib/opbot/signoz/doc.go new file mode 100644 index 0000000000..90819b89d9 --- /dev/null +++ b/contrib/opbot/signoz/doc.go @@ -0,0 +1,3 @@ +// Package signoz is a api client for signoz, more specifically the trace API +// https://signoz.io/docs/traces-management/trace-api/overview/ the client is based on resty. +package signoz diff --git a/contrib/opbot/signoz/example/keychain/darwin.go b/contrib/opbot/signoz/example/keychain/darwin.go new file mode 100644 index 0000000000..9427464854 --- /dev/null +++ b/contrib/opbot/signoz/example/keychain/darwin.go @@ -0,0 +1,21 @@ +//go:build darwin +// +build darwin + +package keychain + +import keychainHelper "github.com/keybase/go-keychain" + +// NewGenericPassword creates a new generic password item. +func NewGenericPassword(service string, account string, label string, data []byte, accessGroup string) interface{} { + return keychainHelper.NewGenericPassword(service, account, label, data, accessGroup) +} + +// AddItem adds an item to the keychain. +func AddItem(item interface{}) error { + return keychainHelper.AddItem(item.(keychainHelper.Item)) +} + +// GetGenericPassword retrieves a generic password from the keychain. +func GetGenericPassword(service string, account string, label string, accessGroup string) ([]byte, error) { + return keychainHelper.GetGenericPassword(service, account, label, accessGroup) +} diff --git a/contrib/opbot/signoz/example/keychain/doc.go b/contrib/opbot/signoz/example/keychain/doc.go new file mode 100644 index 0000000000..b30e3f2c40 --- /dev/null +++ b/contrib/opbot/signoz/example/keychain/doc.go @@ -0,0 +1,2 @@ +// Package keychain wraps go-keychain. It provides a way to compile dependent packages on non-darwin platforms. +package keychain diff --git a/contrib/opbot/signoz/example/keychain/unsupported.go b/contrib/opbot/signoz/example/keychain/unsupported.go new file mode 100644 index 0000000000..2bf58c6162 --- /dev/null +++ b/contrib/opbot/signoz/example/keychain/unsupported.go @@ -0,0 +1,19 @@ +//go:build !darwin +// +build !darwin + +package keychain + +// NewGenericPassword creates a new generic password item. +func NewGenericPassword(service string, account string, label string, data []byte, accessGroup string) interface{} { + panic("unsupported platform") +} + +// AddItem adds an item to the keychain. +func AddItem(item interface{}) error { + panic("unsupported platform") +} + +// GetGenericPassword retrieves a generic password from the keychain. +func GetGenericPassword(service string, account string, label string, accessGroup string) ([]byte, error) { + panic("unsupported platform") +} diff --git a/contrib/opbot/signoz/example/main.go b/contrib/opbot/signoz/example/main.go new file mode 100644 index 0000000000..6389b1b8f9 --- /dev/null +++ b/contrib/opbot/signoz/example/main.go @@ -0,0 +1,170 @@ +package main + +import ( + "context" + "errors" + "fmt" + "github.com/badoux/checkmail" + "github.com/charmbracelet/huh" + "github.com/charmbracelet/huh/spinner" + "github.com/davidmytton/url-verifier" + "github.com/synapsecns/sanguine/contrib/opbot/signoz" + "github.com/synapsecns/sanguine/contrib/opbot/signoz/example/keychain" + "github.com/synapsecns/sanguine/core" + "github.com/synapsecns/sanguine/core/metrics" + "os" +) + +func main() { + client := loadConfig() + + resp, err := client.SearchTraces(context.Background(), signoz.Last1Hr, map[string]string{}) + if err != nil { + panic(err) + } + + _ = resp +} + +const ( + // ConfigPath for plaintext config files. + ConfigPath = "~/.signoz/" + // EmailPath path to email file. + EmailPath = ConfigPath + "email" + // URLPath path to url file. + URLPath = ConfigPath + "url" + // KeychainServiceName (service name for key chain: ios only). + KeychainServiceName = "signoz-example" +) + +type config struct { + email string + url string + password string +} + +func loadConfig() *signoz.Client { + cfg := config{} + + var configFormFields []huh.Field + + if cfg.url = readPath(URLPath); cfg.url == "" { + configFormFields = append(configFormFields, huh.NewInput(). + Value(&cfg.url). + Title("URL"). + Validate(func(s string) error { + verifier := urlverifier.NewVerifier() + if _, err := verifier.Verify(s); err != nil { + return fmt.Errorf("invalid URL: %w", err) + } + return nil + }). + Placeholder("URL Path")) + } + + if cfg.email = readPath(EmailPath); cfg.email == "" { + configFormFields = append(configFormFields, huh.NewInput(). + Value(&cfg.email). + Title("Email"). + Validate(func(s string) error { + err := checkmail.ValidateFormat(s) + if err != nil { + return fmt.Errorf("invalid email address: %w", err) + } + return nil + }). + Placeholder("Email Address")) + } + + var err error + cfg.password, err = getPassword() + if err != nil { + panic(err) + } + + if cfg.password == "" { + configFormFields = append(configFormFields, huh.NewInput(). + Value(&cfg.password). + EchoMode(huh.EchoModePassword). + Title("Password"). + Placeholder("Password")) + } + + // if either key is not set, prepend the note to the form + if len(configFormFields) > 0 { + configFormFields = append([]huh.Field{ + huh.NewNote(). + Title("Setup Signoz Configuration"). + Next(true). + Description("Signoz requires an API key to authenticate with the server. You can find your API key in the Signoz dashboard.")}, configFormFields...) + + group := huh.NewGroup(configFormFields...) + err = huh.NewForm(group).Run() + if err != nil { + panic(err) + } + } + + // try to login, if it works, save creds otherwise panic! + var clientErr error + var client *signoz.Client + + err = spinner.New(). + Title("Logging in..."). + Action(func() { + client = signoz.NewClientFromUser(metrics.NewNullHandler(), cfg.url, cfg.email, cfg.password) + + _, err := client.Services(context.Background(), signoz.Last1Hr) + if err != nil { + clientErr = fmt.Errorf("could not login: %w", err) + } + }).Run() + if err != nil { + panic(err) + } + + if clientErr != nil { + panic(clientErr) + } + + storeConfig(cfg) + + return client +} + +func storeConfig(cfg config) { + _ = os.MkdirAll(core.ExpandOrReturnPath(ConfigPath), 0700) + err := os.WriteFile(core.ExpandOrReturnPath(EmailPath), []byte(cfg.email), 0600) + if err != nil { + panic(err) + } + + err = os.WriteFile(core.ExpandOrReturnPath(URLPath), []byte(cfg.url), 0600) + if err != nil { + panic(err) + } + + _, err = getPassword() + if err != nil { + item := keychain.NewGenericPassword(KeychainServiceName, KeychainServiceName, "signoz password", []byte(cfg.password), KeychainServiceName) + err := keychain.AddItem(item) + if err != nil { + panic(err) + } + } +} + +// readPath reads a path. +func readPath(path string) string { + fileBytes, err := os.ReadFile(core.ExpandOrReturnPath(path)) + if err != nil && !errors.Is(err, os.ErrNotExist) { + panic(err) + } + + return string(fileBytes) +} + +func getPassword() (string, error) { + res, err := keychain.GetGenericPassword(KeychainServiceName, KeychainServiceName, "signoz password", KeychainServiceName) + return string(res), err +} diff --git a/contrib/opbot/signoz/generated/auth.go b/contrib/opbot/signoz/generated/auth.go new file mode 100644 index 0000000000..7fb69cc2c9 --- /dev/null +++ b/contrib/opbot/signoz/generated/auth.go @@ -0,0 +1,71 @@ +package generated + +import "github.com/pkg/errors" + +var ( + ErrorTokenExpired = errors.New("Token is expired") +) + +type InviteRequest struct { + Name string `json:"name"` + Email string `json:"email"` + Role string `json:"role"` + FrontendBaseUrl string `json:"frontendBaseUrl"` +} + +type InviteResponse struct { + Email string `json:"email"` + InviteToken string `json:"inviteToken"` +} + +type InvitationResponseObject struct { + Email string `json:"email" db:"email"` + Name string `json:"name" db:"name"` + Token string `json:"token" db:"token"` + CreatedAt int64 `json:"createdAt" db:"created_at"` + Role string `json:"role" db:"role"` + Organization string `json:"organization" db:"organization"` +} + +type LoginRequest struct { + Email string `json:"email"` + Password string `json:"password"` + RefreshToken string `json:"refreshToken"` +} + +// PrecheckResponse contains login precheck response +type PrecheckResponse struct { + SSO bool `json:"sso"` + SsoUrl string `json:"ssoUrl"` + CanSelfRegister bool `json:"canSelfRegister"` + IsUser bool `json:"isUser"` + SsoError string `json:"ssoError"` +} + +type UserJwtObject struct { + AccessJwt string `json:"accessJwt"` + AccessJwtExpiry int64 `json:"accessJwtExpiry"` + RefreshJwt string `json:"refreshJwt"` + RefreshJwtExpiry int64 `json:"refreshJwtExpiry"` +} + +type LoginResponse struct { + UserJwtObject + UserId string `json:"userId"` +} + +type ChangePasswordRequest struct { + UserId string `json:"userId"` + OldPassword string `json:"oldPassword"` + NewPassword string `json:"newPassword"` +} + +type ResetPasswordEntry struct { + UserId string `json:"userId" db:"user_id"` + Token string `json:"token" db:"token"` +} + +type UserRole struct { + UserId string `json:"user_id"` + GroupName string `json:"group_name"` +} diff --git a/contrib/opbot/signoz/generated/config.go b/contrib/opbot/signoz/generated/config.go new file mode 100644 index 0000000000..6eab0fc5c8 --- /dev/null +++ b/contrib/opbot/signoz/generated/config.go @@ -0,0 +1,57 @@ +package generated + +import ( + "os" + + "gopkg.in/yaml.v2" +) + +type SkipConfig struct { + Services []ServiceSkipConfig `yaml:"services"` +} + +type ServiceSkipConfig struct { + Name string `yaml:"name"` + Operations []string `yaml:"operations"` +} + +func (s *SkipConfig) ShouldSkip(serviceName, name string) bool { + for _, service := range s.Services { + if service.Name == serviceName { + for _, operation := range service.Operations { + if name == operation { + return true + } + } + } + } + return false +} + +func ReadYaml(path string, v interface{}) error { + f, err := os.Open(path) + if err != nil { + return err + } + defer f.Close() + + decoder := yaml.NewDecoder(f) + err = decoder.Decode(v) + if err != nil { + return err + } + return nil +} + +func ReadSkipConfig(path string) (*SkipConfig, error) { + if path == "" { + return &SkipConfig{}, nil + } + + skipConfig := &SkipConfig{} + err := ReadYaml(path, skipConfig) + if err != nil { + return nil, err + } + return skipConfig, nil +} diff --git a/contrib/opbot/signoz/generated/dashboards.go b/contrib/opbot/signoz/generated/dashboards.go new file mode 100644 index 0000000000..3d33db9385 --- /dev/null +++ b/contrib/opbot/signoz/generated/dashboards.go @@ -0,0 +1,254 @@ +package generated + +type Datasource struct { + Type string `json:"type"` + UID string `json:"uid"` +} + +type Panels struct { + Datasource interface{} `json:"datasource"` + Description string `json:"description,omitempty"` + FieldConfig struct { + Defaults struct { + Color struct { + Mode string `json:"mode"` + } `json:"color"` + Max float64 `json:"max"` + Min float64 `json:"min"` + Thresholds struct { + Mode string `json:"mode"` + Steps []struct { + Color string `json:"color"` + Value interface{} `json:"value"` + } `json:"steps"` + } `json:"thresholds"` + Unit string `json:"unit"` + } `json:"defaults"` + Overrides []interface{} `json:"overrides"` + } `json:"fieldConfig,omitempty"` + GridPos struct { + H int `json:"h"` + W int `json:"w"` + X int `json:"x"` + Y int `json:"y"` + } `json:"gridPos"` + ID int `json:"id"` + Links []interface{} `json:"links,omitempty"` + Options struct { + Orientation string `json:"orientation"` + ReduceOptions struct { + Calcs []string `json:"calcs"` + Fields string `json:"fields"` + Values bool `json:"values"` + } `json:"reduceOptions"` + ShowThresholdLabels bool `json:"showThresholdLabels"` + ShowThresholdMarkers bool `json:"showThresholdMarkers"` + } `json:"options,omitempty"` + PluginVersion string `json:"pluginVersion,omitempty"` + Targets []struct { + Datasource interface{} `json:"datasource"` + EditorMode string `json:"editorMode"` + Expr string `json:"expr"` + Hide bool `json:"hide"` + IntervalFactor int `json:"intervalFactor"` + LegendFormat string `json:"legendFormat"` + Range bool `json:"range"` + RefID string `json:"refId"` + Step int `json:"step"` + } `json:"targets"` + Title string `json:"title"` + Type string `json:"type"` + HideTimeOverride bool `json:"hideTimeOverride,omitempty"` + MaxDataPoints int `json:"maxDataPoints,omitempty"` + Collapsed bool `json:"collapsed,omitempty"` + Panels []Panels `json:"panels,omitempty"` +} + +type GrafanaJSON struct { + Inputs []struct { + Name string `json:"name"` + Label string `json:"label"` + Description string `json:"description"` + Type string `json:"type"` + PluginID string `json:"pluginId"` + PluginName string `json:"pluginName"` + } `json:"__inputs"` + Requires []struct { + Type string `json:"type"` + ID string `json:"id"` + Name string `json:"name"` + Version string `json:"version"` + } `json:"__requires"` + Annotations struct { + List []struct { + HashKey string `json:"$$hashKey"` + BuiltIn int `json:"builtIn"` + Datasource interface{} `json:"datasource"` + Enable bool `json:"enable"` + Hide bool `json:"hide"` + IconColor string `json:"iconColor"` + Name string `json:"name"` + Target struct { + Limit int `json:"limit"` + MatchAny bool `json:"matchAny"` + Tags []interface{} `json:"tags"` + Type string `json:"type"` + } `json:"target"` + Type string `json:"type"` + } `json:"list"` + } `json:"annotations"` + Editable bool `json:"editable"` + FiscalYearStartMonth int `json:"fiscalYearStartMonth"` + GnetID int `json:"gnetId"` + GraphTooltip int `json:"graphTooltip"` + ID interface{} `json:"id"` + Links []struct { + Icon string `json:"icon"` + Tags []interface{} `json:"tags"` + TargetBlank bool `json:"targetBlank"` + Title string `json:"title"` + Type string `json:"type"` + URL string `json:"url"` + } `json:"links"` + LiveNow bool `json:"liveNow"` + Panels []Panels `json:"panels"` + SchemaVersion int `json:"schemaVersion"` + Style string `json:"style"` + Tags []string `json:"tags"` + Templating struct { + List []struct { + Current struct { + Selected bool `json:"selected"` + Text interface{} `json:"text"` + Value interface{} `json:"value"` + } `json:"current"` + Hide int `json:"hide"` + IncludeAll bool `json:"includeAll"` + Label string `json:"label,omitempty"` + Multi bool `json:"multi"` + Name string `json:"name"` + Options []interface{} `json:"options"` + Query interface{} `json:"query"` + Refresh int `json:"refresh,omitempty"` + Regex string `json:"regex,omitempty"` + SkipURLSync bool `json:"skipUrlSync"` + Type string `json:"type"` + Datasource interface{} `json:"datasource,omitempty"` + Definition string `json:"definition,omitempty"` + Sort int `json:"sort,omitempty"` + TagValuesQuery string `json:"tagValuesQuery,omitempty"` + TagsQuery string `json:"tagsQuery,omitempty"` + UseTags bool `json:"useTags,omitempty"` + } `json:"list"` + } `json:"templating"` + Time struct { + From string `json:"from"` + To string `json:"to"` + } `json:"time"` + Timepicker struct { + RefreshIntervals []string `json:"refresh_intervals"` + TimeOptions []string `json:"time_options"` + } `json:"timepicker"` + Timezone string `json:"timezone"` + Title string `json:"title"` + UID string `json:"uid"` + Version int `json:"version"` + WeekStart string `json:"weekStart"` +} +type Layout struct { + H int `json:"h"` + I string `json:"i"` + Moved bool `json:"moved"` + Static bool `json:"static"` + W int `json:"w"` + X int `json:"x"` + Y int `json:"y"` +} + +type Variable struct { + AllSelected bool `json:"allSelected"` + CustomValue string `json:"customValue"` + Description string `json:"description"` + ModificationUUID string `json:"modificationUUID"` + MultiSelect bool `json:"multiSelect"` + QueryValue string `json:"queryValue"` + SelectedValue string `json:"selectedValue"` + ShowALLOption bool `json:"showALLOption"` + Sort string `json:"sort"` + TextboxValue string `json:"textboxValue"` + Type string `json:"type"` +} + +type Data struct { + Legend string `json:"legend"` + Query string `json:"query"` + QueryData []interface{} `json:"queryData"` +} + +type QueryDataDashboard struct { + Data Data `json:"data"` + Error bool `json:"error"` + ErrorMessage string `json:"errorMessage"` + Loading bool `json:"loading"` +} + +type ClickHouseQueryDashboard struct { + Legend string `json:"legend"` + Name string `json:"name"` + Query string `json:"rawQuery"` + Disabled bool `json:"disabled"` +} + +type QueryBuilder struct { + AggregateOperator interface{} `json:"aggregateOperator"` + Disabled bool `json:"disabled"` + GroupBy []string `json:"groupBy"` + Legend string `json:"legend"` + MetricName string `json:"metricName"` + Name string `json:"name"` + TagFilters TagFilters `json:"tagFilters"` + ReduceTo interface{} `json:"reduceTo"` +} + +type MetricsBuilder struct { + Formulas []string `json:"formulas"` + QueryBuilder []QueryBuilder `json:"queryBuilder"` +} + +type PromQueryDashboard struct { + Query string `json:"query"` + Disabled bool `json:"disabled"` + Name string `json:"name"` + Legend string `json:"legend"` +} + +type Query struct { + ClickHouse []ClickHouseQueryDashboard `json:"clickHouse"` + PromQL []PromQueryDashboard `json:"promQL"` + MetricsBuilder MetricsBuilder `json:"metricsBuilder"` + QueryType int `json:"queryType"` +} + +type Widget struct { + Description string `json:"description"` + ID string `json:"id"` + IsStacked bool `json:"isStacked"` + NullZeroValues string `json:"nullZeroValues"` + Opacity string `json:"opacity"` + PanelTypes string `json:"panelTypes"` + Query Query `json:"query"` + QueryData QueryDataDashboard `json:"queryData"` + TimePreferance string `json:"timePreferance"` + Title string `json:"title"` + YAxisUnit string `json:"yAxisUnit"` + QueryType int `json:"queryType"` +} + +type DashboardData struct { + Description string `json:"description"` + Tags []string `json:"tags"` + Layout []Layout `json:"layout"` + Title string `json:"title"` + Widgets []Widget `json:"widgets"` + Variables map[string]Variable `json:"variables"` +} diff --git a/contrib/opbot/signoz/generated/db.go b/contrib/opbot/signoz/generated/db.go new file mode 100644 index 0000000000..06925ef0ee --- /dev/null +++ b/contrib/opbot/signoz/generated/db.go @@ -0,0 +1,100 @@ +package generated + +import ( + "database/sql/driver" + "encoding/json" + "fmt" + "time" +) + +type Organization struct { + Id string `json:"id" db:"id"` + Name string `json:"name" db:"name"` + CreatedAt int64 `json:"createdAt" db:"created_at"` + IsAnonymous bool `json:"isAnonymous" db:"is_anonymous"` + HasOptedUpdates bool `json:"hasOptedUpdates" db:"has_opted_updates"` +} + +// InvitationObject represents the token object stored in the db +type InvitationObject struct { + Id string `json:"id" db:"id"` + Email string `json:"email" db:"email"` + Name string `json:"name" db:"name"` + Token string `json:"token" db:"token"` + CreatedAt int64 `json:"createdAt" db:"created_at"` + Role string `json:"role" db:"role"` + OrgId string `json:"orgId" db:"org_id"` +} + +type User struct { + Id string `json:"id" db:"id"` + Name string `json:"name" db:"name"` + Email string `json:"email" db:"email"` + Password string `json:"password,omitempty" db:"password"` + CreatedAt int64 `json:"createdAt" db:"created_at"` + ProfilePictureURL string `json:"profilePictureURL" db:"profile_picture_url"` + OrgId string `json:"orgId,omitempty" db:"org_id"` + GroupId string `json:"groupId,omitempty" db:"group_id"` +} + +type ApdexSettings struct { + ServiceName string `json:"serviceName" db:"service_name"` + Threshold float64 `json:"threshold" db:"threshold"` + ExcludeStatusCodes string `json:"excludeStatusCodes" db:"exclude_status_codes"` // sqlite doesn't support array type +} + +type IngestionKey struct { + KeyId string `json:"keyId" db:"key_id"` + Name string `json:"name" db:"name"` + CreatedAt time.Time `json:"createdAt" db:"created_at"` + IngestionKey string `json:"ingestionKey" db:"ingestion_key"` + IngestionURL string `json:"ingestionURL" db:"ingestion_url"` + DataRegion string `json:"dataRegion" db:"data_region"` +} + +type UserFlag map[string]string + +func (uf UserFlag) Value() (driver.Value, error) { + f := make(map[string]string, 0) + for k, v := range uf { + f[k] = v + } + return json.Marshal(f) +} + +func (uf *UserFlag) Scan(value interface{}) error { + if value == "" { + return nil + } + + b, ok := value.(string) + if !ok { + return fmt.Errorf("type assertion to []byte failed while scanning user flag") + } + f := make(map[string]string, 0) + if err := json.Unmarshal([]byte(b), &f); err != nil { + return err + } + *uf = make(UserFlag, len(f)) + for k, v := range f { + (*uf)[k] = v + } + return nil +} + +type UserPayload struct { + User + Role string `json:"role"` + Organization string `json:"organization"` + Flags UserFlag `json:"flags"` +} + +type Group struct { + Id string `json:"id" db:"id"` + Name string `json:"name" db:"name"` +} + +type ResetPasswordRequest struct { + Password string `json:"password"` + Token string `json:"token"` +} diff --git a/contrib/opbot/signoz/generated/doc.go b/contrib/opbot/signoz/generated/doc.go new file mode 100644 index 0000000000..e36b0bb153 --- /dev/null +++ b/contrib/opbot/signoz/generated/doc.go @@ -0,0 +1,3 @@ +// Package model contains the data models for the Signoz API. +// copied from https://github.com/SigNoz/signoz/tree/v0.36.1/pkg/query-service/model +package generated diff --git a/contrib/opbot/signoz/generated/errors.go b/contrib/opbot/signoz/generated/errors.go new file mode 100644 index 0000000000..b7799ce53d --- /dev/null +++ b/contrib/opbot/signoz/generated/errors.go @@ -0,0 +1,36 @@ +package generated + +import "fmt" + +// custom errors related to registration +type ErrFeatureUnavailable struct { + Key string +} + +func (errFeatureUnavailable ErrFeatureUnavailable) Error() string { + return fmt.Sprintf("feature unavailable: %s", errFeatureUnavailable.Key) +} + +type ErrEmailRequired struct{} + +func (errEmailRequired ErrEmailRequired) Error() string { + return "email is required" +} + +type ErrPasswordRequired struct{} + +func (errPasswordRequired ErrPasswordRequired) Error() string { + return "password is required" +} + +type ErrSignupFailed struct{} + +func (errSignupFailed ErrSignupFailed) Error() string { + return "failed to register user" +} + +type ErrNoOrgFound struct{} + +func (errNoOrgFound ErrNoOrgFound) Error() string { + return "no org found" +} diff --git a/contrib/opbot/signoz/generated/featureSet.go b/contrib/opbot/signoz/generated/featureSet.go new file mode 100644 index 0000000000..395dad74b7 --- /dev/null +++ b/contrib/opbot/signoz/generated/featureSet.go @@ -0,0 +1,110 @@ +package generated + +type FeatureSet []Feature +type Feature struct { + Name string `db:"name" json:"name"` + Active bool `db:"active" json:"active"` + Usage int64 `db:"usage" json:"usage"` + UsageLimit int64 `db:"usage_limit" json:"usage_limit"` + Route string `db:"route" json:"route"` +} + +const SmartTraceDetail = "SMART_TRACE_DETAIL" +const CustomMetricsFunction = "CUSTOM_METRICS_FUNCTION" +const DisableUpsell = "DISABLE_UPSELL" +const OSS = "OSS" +const QueryBuilderPanels = "QUERY_BUILDER_PANELS" +const QueryBuilderAlerts = "QUERY_BUILDER_ALERTS" +const UseSpanMetrics = "USE_SPAN_METRICS" +const AlertChannelSlack = "ALERT_CHANNEL_SLACK" +const AlertChannelWebhook = "ALERT_CHANNEL_WEBHOOK" +const AlertChannelPagerduty = "ALERT_CHANNEL_PAGERDUTY" +const AlertChannelMsTeams = "ALERT_CHANNEL_MSTEAMS" +const AlertChannelOpsgenie = "ALERT_CHANNEL_OPSGENIE" + +var BasicPlan = FeatureSet{ + Feature{ + Name: OSS, + Active: true, + Usage: 0, + UsageLimit: -1, + Route: "", + }, + Feature{ + Name: DisableUpsell, + Active: false, + Usage: 0, + UsageLimit: -1, + Route: "", + }, + Feature{ + Name: SmartTraceDetail, + Active: false, + Usage: 0, + UsageLimit: -1, + Route: "", + }, + Feature{ + Name: CustomMetricsFunction, + Active: false, + Usage: 0, + UsageLimit: -1, + Route: "", + }, + Feature{ + Name: QueryBuilderPanels, + Active: true, + Usage: 0, + UsageLimit: 20, + Route: "", + }, + Feature{ + Name: QueryBuilderAlerts, + Active: true, + Usage: 0, + UsageLimit: 10, + Route: "", + }, + Feature{ + Name: UseSpanMetrics, + Active: false, + Usage: 0, + UsageLimit: -1, + Route: "", + }, + Feature{ + Name: AlertChannelSlack, + Active: true, + Usage: 0, + UsageLimit: -1, + Route: "", + }, + Feature{ + Name: AlertChannelWebhook, + Active: true, + Usage: 0, + UsageLimit: -1, + Route: "", + }, + Feature{ + Name: AlertChannelPagerduty, + Active: true, + Usage: 0, + UsageLimit: -1, + Route: "", + }, + Feature{ + Name: AlertChannelOpsgenie, + Active: true, + Usage: 0, + UsageLimit: -1, + Route: "", + }, + Feature{ + Name: AlertChannelMsTeams, + Active: false, + Usage: 0, + UsageLimit: -1, + Route: "", + }, +} diff --git a/contrib/opbot/signoz/generated/queryParams.go b/contrib/opbot/signoz/generated/queryParams.go new file mode 100644 index 0000000000..d21339e74a --- /dev/null +++ b/contrib/opbot/signoz/generated/queryParams.go @@ -0,0 +1,562 @@ +package generated + +import ( + "time" +) + +type InstantQueryMetricsParams struct { + Time time.Time + Query string + Stats string +} + +type QueryRangeParams struct { + Start time.Time + End time.Time + Step time.Duration + Query string + Stats string +} + +type MetricQuery struct { + QueryName string `json:"queryName"` + MetricName string `json:"metricName"` + TagFilters *FilterSet `json:"tagFilters,omitempty"` + GroupingTags []string `json:"groupBy,omitempty"` + AggregateOperator AggregateOperator `json:"aggregateOperator"` + Expression string `json:"expression"` + Disabled bool `json:"disabled"` + ReduceTo ReduceToOperator `json:"reduceTo,omitempty"` +} + +type ReduceToOperator int + +const ( + _ ReduceToOperator = iota + RLAST + RSUM + RAVG + RMAX + RMIN +) + +type QueryType int + +const ( + _ QueryType = iota + QUERY_BUILDER + CLICKHOUSE + PROM +) + +type PromQuery struct { + Query string `json:"query"` + Stats string `json:"stats,omitempty"` + Disabled bool `json:"disabled"` +} + +type ClickHouseQuery struct { + Query string `json:"query"` + Disabled bool `json:"disabled"` +} + +type PanelType int + +const ( + _ PanelType = iota + TIME_SERIES + QUERY_VALUE +) + +type CompositeMetricQuery struct { + BuilderQueries map[string]*MetricQuery `json:"builderQueries,omitempty"` + ClickHouseQueries map[string]*ClickHouseQuery `json:"chQueries,omitempty"` + PromQueries map[string]*PromQuery `json:"promQueries,omitempty"` + PanelType PanelType `json:"panelType"` + QueryType QueryType `json:"queryType"` +} + +type AggregateOperator int + +const ( + _ AggregateOperator = iota + NOOP + COUNT + COUNT_DISTINCT + SUM + AVG + MAX + MIN + P05 + P10 + P20 + P25 + P50 + P75 + P90 + P95 + P99 + RATE + SUM_RATE + // leave blank space for possily {AVG, X}_RATE + _ + _ + _ + RATE_SUM + RATE_AVG + RATE_MAX + RATE_MIN + HIST_QUANTILE_50 + HIST_QUANTILE_75 + HIST_QUANTILE_90 + HIST_QUANTILE_95 + HIST_QUANTILE_99 +) + +type DataSource int + +const ( + _ DataSource = iota + METRICS + TRACES + LOGS +) + +const ( + StringTagMapCol = "stringTagMap" + NumberTagMapCol = "numberTagMap" + BoolTagMapCol = "boolTagMap" + ResourceTagMapCol = "resourceTagsMap" +) + +type QueryRangeParamsV2 struct { + DataSource DataSource `json:"dataSource"` + Start int64 `json:"start"` + End int64 `json:"end"` + Step int64 `json:"step"` + CompositeMetricQuery *CompositeMetricQuery `json:"compositeMetricQuery"` + Variables map[string]interface{} `json:"variables,omitempty"` + NoCache bool `json:"noCache"` +} + +type DashboardVars struct { + Query string `json:"query"` + Variables map[string]interface{} `json:"variables,omitempty"` +} + +// Metric auto complete types +type metricTags map[string]string + +type MetricAutocompleteTagParams struct { + MetricName string + MetricTags metricTags + Match string + TagKey string +} + +type GetTopOperationsParams struct { + StartTime string `json:"start"` + EndTime string `json:"end"` + ServiceName string `json:"service"` + Start *time.Time + End *time.Time + Tags []TagQueryParam `json:"tags"` + Limit int `json:"limit"` +} + +type GetUsageParams struct { + StartTime string + EndTime string + ServiceName string + Period string + StepHour int + Start *time.Time + End *time.Time +} + +type GetServicesParams struct { + StartTime string `json:"start"` + EndTime string `json:"end"` + Period int + Start *time.Time + End *time.Time + Tags []TagQueryParam `json:"tags"` +} + +type GetServiceOverviewParams struct { + StartTime string `json:"start"` + EndTime string `json:"end"` + Period string + Start *time.Time + End *time.Time + Tags []TagQueryParam `json:"tags"` + ServiceName string `json:"service"` + StepSeconds int `json:"step"` +} + +type TagQueryParam struct { + Key string `json:"key"` + TagType TagType `json:"tagType"` + StringValues []string `json:"stringValues"` + BoolValues []bool `json:"boolValues"` + NumberValues []float64 `json:"numberValues"` + Operator Operator `json:"operator"` +} + +type Operator string + +const ( + InOperator Operator = "In" + NotInOperator Operator = "NotIn" + EqualOperator Operator = "Equals" + NotEqualOperator Operator = "NotEquals" + ExistsOperator Operator = "Exists" + NotExistsOperator Operator = "NotExists" + ContainsOperator Operator = "Contains" + NotContainsOperator Operator = "NotContains" + LessThanOperator Operator = "LessThan" + GreaterThanOperator Operator = "GreaterThan" + LessThanEqualOperator Operator = "LessThanEquals" + GreaterThanEqualOperator Operator = "GreaterThanEquals" + StartsWithOperator Operator = "StartsWith" + NotStartsWithOperator Operator = "NotStartsWith" +) + +type TagType string + +const ( + ResourceAttributeTagType TagType = "ResourceAttribute" + SpanAttributeTagType TagType = "SpanAttribute" +) + +type TagQuery interface { + GetKey() string + GetValues() []interface{} + GetOperator() Operator + GetTagType() TagType + GetTagMapColumn() string +} + +type TagQueryString struct { + key string + values []string + operator Operator + tagType TagType +} + +func NewTagQueryString(tag TagQueryParam) TagQueryString { + return TagQueryString{ + key: tag.Key, + values: tag.StringValues, + operator: tag.Operator, + tagType: tag.TagType, + } +} + +func (tqn TagQueryNumber) GetKey() string { + return tqn.key +} + +func (tqs TagQueryString) GetValues() []interface{} { + values := make([]interface{}, len(tqs.values)) + for i, v := range tqs.values { + values[i] = v + } + return values +} + +func (tqs TagQueryString) GetOperator() Operator { + return tqs.operator +} + +func (tqs TagQueryString) GetTagType() TagType { + return tqs.tagType +} + +func (tqs TagQueryString) GetTagMapColumn() string { + if tqs.GetTagType() == ResourceAttributeTagType { + return ResourceTagMapCol + } else { + return StringTagMapCol + } +} + +type TagQueryBool struct { + key string + values []bool + operator Operator + tagType TagType +} + +func NewTagQueryBool(tag TagQueryParam) TagQueryBool { + return TagQueryBool{ + key: tag.Key, + values: tag.BoolValues, + operator: tag.Operator, + tagType: tag.TagType, + } +} + +func (tqb TagQueryBool) GetKey() string { + return tqb.key +} + +func (tqb TagQueryBool) GetValues() []interface{} { + values := make([]interface{}, len(tqb.values)) + for i, v := range tqb.values { + values[i] = v + } + return values +} + +func (tqb TagQueryBool) GetOperator() Operator { + return tqb.operator +} + +func (tqb TagQueryBool) GetTagType() TagType { + return tqb.tagType +} + +func (tqb TagQueryBool) GetTagMapColumn() string { + return BoolTagMapCol +} + +type TagQueryNumber struct { + key string + values []float64 + operator Operator + tagType TagType +} + +func NewTagQueryNumber(tag TagQueryParam) TagQueryNumber { + return TagQueryNumber{ + key: tag.Key, + values: tag.NumberValues, + operator: tag.Operator, + tagType: tag.TagType, + } +} + +func (tqs TagQueryString) GetKey() string { + return tqs.key +} + +func (tqn TagQueryNumber) GetValues() []interface{} { + values := make([]interface{}, len(tqn.values)) + for i, v := range tqn.values { + values[i] = v + } + return values +} + +func (tqn TagQueryNumber) GetOperator() Operator { + return tqn.operator +} + +func (tqn TagQueryNumber) GetTagType() TagType { + return tqn.tagType +} + +func (tqn TagQueryNumber) GetTagMapColumn() string { + return NumberTagMapCol +} + +type GetFilteredSpansParams struct { + TraceID []string `json:"traceID"` + ServiceName []string `json:"serviceName"` + Operation []string `json:"operation"` + SpanKind string `json:"spanKind"` + Status []string `json:"status"` + HttpRoute []string `json:"httpRoute"` + HttpCode []string `json:"httpCode"` + HttpUrl []string `json:"httpUrl"` + HttpHost []string `json:"httpHost"` + HttpMethod []string `json:"httpMethod"` + Component []string `json:"component"` + RPCMethod []string `json:"rpcMethod"` + ResponseStatusCode []string `json:"responseStatusCode"` + StartStr string `json:"start"` + EndStr string `json:"end"` + MinDuration string `json:"minDuration"` + MaxDuration string `json:"maxDuration"` + Limit int64 `json:"limit"` + OrderParam string `json:"orderParam"` + Order string `json:"order"` + Offset int64 `json:"offset"` + Tags []TagQueryParam `json:"tags"` + Exclude []string `json:"exclude"` + Start *time.Time + End *time.Time +} + +type GetFilteredSpanAggregatesParams struct { + TraceID []string `json:"traceID"` + ServiceName []string `json:"serviceName"` + Operation []string `json:"operation"` + SpanKind string `json:"spanKind"` + Status []string `json:"status"` + HttpRoute []string `json:"httpRoute"` + HttpCode []string `json:"httpCode"` + HttpUrl []string `json:"httpUrl"` + HttpHost []string `json:"httpHost"` + HttpMethod []string `json:"httpMethod"` + Component []string `json:"component"` + RPCMethod []string `json:"rpcMethod"` + ResponseStatusCode []string `json:"responseStatusCode"` + MinDuration string `json:"minDuration"` + MaxDuration string `json:"maxDuration"` + Tags []TagQueryParam `json:"tags"` + StartStr string `json:"start"` + EndStr string `json:"end"` + StepSeconds int `json:"step"` + Dimension string `json:"dimension"` + AggregationOption string `json:"aggregationOption"` + GroupBy string `json:"groupBy"` + Function string `json:"function"` + Exclude []string `json:"exclude"` + Start *time.Time + End *time.Time +} + +type SpanFilterParams struct { + TraceID []string `json:"traceID"` + Status []string `json:"status"` + ServiceName []string `json:"serviceName"` + SpanKind string `json:"spanKind"` + HttpRoute []string `json:"httpRoute"` + HttpCode []string `json:"httpCode"` + HttpUrl []string `json:"httpUrl"` + HttpHost []string `json:"httpHost"` + HttpMethod []string `json:"httpMethod"` + Component []string `json:"component"` + Operation []string `json:"operation"` + RPCMethod []string `json:"rpcMethod"` + ResponseStatusCode []string `json:"responseStatusCode"` + GetFilters []string `json:"getFilters"` + Exclude []string `json:"exclude"` + MinDuration string `json:"minDuration"` + MaxDuration string `json:"maxDuration"` + StartStr string `json:"start"` + EndStr string `json:"end"` + Start *time.Time + End *time.Time +} + +type TagFilterParams struct { + TraceID []string `json:"traceID"` + Status []string `json:"status"` + ServiceName []string `json:"serviceName"` + HttpRoute []string `json:"httpRoute"` + HttpCode []string `json:"httpCode"` + SpanKind string `json:"spanKind"` + HttpUrl []string `json:"httpUrl"` + HttpHost []string `json:"httpHost"` + HttpMethod []string `json:"httpMethod"` + Component []string `json:"component"` + Operation []string `json:"operation"` + RPCMethod []string `json:"rpcMethod"` + ResponseStatusCode []string `json:"responseStatusCode"` + Exclude []string `json:"exclude"` + MinDuration string `json:"minDuration"` + MaxDuration string `json:"maxDuration"` + StartStr string `json:"start"` + EndStr string `json:"end"` + TagKey TagKey `json:"tagKey"` + Limit int `json:"limit"` + Start *time.Time + End *time.Time +} + +type TagDataType string + +const ( + TagTypeString TagDataType = "string" + TagTypeNumber TagDataType = "number" + TagTypeBool TagDataType = "bool" +) + +type TagKey struct { + Key string `json:"key"` + Type TagDataType `json:"type"` +} + +type TTLParams struct { + Type string // It can be one of {traces, metrics}. + ColdStorageVolume string // Name of the cold storage volume. + ToColdStorageDuration int64 // Seconds after which data will be moved to cold storage. + DelDuration int64 // Seconds after which data will be deleted. +} + +type GetTTLParams struct { + Type string +} + +type ListErrorsParams struct { + StartStr string `json:"start"` + EndStr string `json:"end"` + Start *time.Time + End *time.Time + Limit int64 `json:"limit"` + OrderParam string `json:"orderParam"` + Order string `json:"order"` + Offset int64 `json:"offset"` + ServiceName string `json:"serviceName"` + ExceptionType string `json:"exceptionType"` + Tags []TagQueryParam `json:"tags"` +} + +type CountErrorsParams struct { + StartStr string `json:"start"` + EndStr string `json:"end"` + Start *time.Time + End *time.Time + ServiceName string `json:"serviceName"` + ExceptionType string `json:"exceptionType"` + Tags []TagQueryParam `json:"tags"` +} + +type GetErrorParams struct { + GroupID string + ErrorID string + Timestamp *time.Time +} + +type FilterItem struct { + Key string `json:"key"` + Value interface{} `json:"value"` + Operator string `json:"op"` +} + +type FilterSet struct { + Operator string `json:"op,omitempty"` + Items []FilterItem `json:"items"` +} + +type UpdateField struct { + Name string `json:"name"` + DataType string `json:"dataType"` + Type string `json:"type"` + Selected bool `json:"selected"` + IndexType string `json:"index"` + IndexGranularity int `json:"indexGranularity"` +} + +type LogsFilterParams struct { + Limit int `json:"limit"` + OrderBy string `json:"orderBy"` + Order string `json:"order"` + Query string `json:"q"` + TimestampStart uint64 `json:"timestampStart"` + TimestampEnd uint64 `json:"timestampEnd"` + IdGt string `json:"idGt"` + IdLT string `json:"idLt"` +} + +type LogsAggregateParams struct { + Query string `json:"q"` + TimestampStart uint64 `json:"timestampStart"` + TimestampEnd uint64 `json:"timestampEnd"` + GroupBy string `json:"groupBy"` + Function string `json:"function"` + StepSeconds int `json:"step"` +} diff --git a/contrib/opbot/signoz/generated/response.go b/contrib/opbot/signoz/generated/response.go new file mode 100644 index 0000000000..c11cfcb217 --- /dev/null +++ b/contrib/opbot/signoz/generated/response.go @@ -0,0 +1,658 @@ +package generated + +import ( + "encoding/json" + "fmt" + "math" + "sort" + "strconv" + "time" + + "github.com/pkg/errors" + "github.com/prometheus/prometheus/promql/parser" + "github.com/prometheus/prometheus/util/stats" + "k8s.io/apimachinery/pkg/labels" +) + +type BaseApiError interface { + Type() ErrorType + ToError() error + Error() string + IsNil() bool +} + +type ApiError struct { + Typ ErrorType + Err error +} + +func (a *ApiError) Type() ErrorType { + return a.Typ +} + +func (a *ApiError) ToError() error { + if a != nil { + return a.Err + } + return a +} + +func (a *ApiError) Error() string { + if a == nil || a.Err == nil { + return "" + } + return a.Err.Error() +} + +func (a *ApiError) IsNil() bool { + return a == nil || a.Err == nil +} + +type ErrorType string + +const ( + ErrorNone ErrorType = "" + ErrorTimeout ErrorType = "timeout" + ErrorCanceled ErrorType = "canceled" + ErrorExec ErrorType = "execution" + ErrorBadData ErrorType = "bad_data" + ErrorInternal ErrorType = "internal" + ErrorUnavailable ErrorType = "unavailable" + ErrorNotFound ErrorType = "not_found" + ErrorNotImplemented ErrorType = "not_implemented" + ErrorUnauthorized ErrorType = "unauthorized" + ErrorForbidden ErrorType = "forbidden" + ErrorConflict ErrorType = "conflict" + ErrorStreamingNotSupported ErrorType = "streaming is not supported" + ErrorStatusServiceUnavailable ErrorType = "service unavailable" +) + +// BadRequest returns a ApiError object of bad request +func BadRequest(err error) *ApiError { + return &ApiError{ + Typ: ErrorBadData, + Err: err, + } +} + +// BadRequestStr returns a ApiError object of bad request +func BadRequestStr(s string) *ApiError { + return &ApiError{ + Typ: ErrorBadData, + Err: fmt.Errorf(s), + } +} + +// InternalError returns a ApiError object of internal type +func InternalError(err error) *ApiError { + return &ApiError{ + Typ: ErrorInternal, + Err: err, + } +} + +func NotFoundError(err error) *ApiError { + return &ApiError{ + Typ: ErrorNotFound, + Err: err, + } +} + +func UnauthorizedError(err error) *ApiError { + return &ApiError{ + Typ: ErrorUnauthorized, + Err: err, + } +} + +func UnavailableError(err error) *ApiError { + return &ApiError{ + Typ: ErrorUnavailable, + Err: err, + } +} + +func WrapApiError(err *ApiError, msg string) *ApiError { + return &ApiError{ + Typ: err.Type(), + Err: errors.Wrap(err.ToError(), msg), + } +} + +type QueryDataV2 struct { + ResultType parser.ValueType `json:"resultType"` + Result parser.Value `json:"result"` +} + +type QueryData struct { + ResultType parser.ValueType `json:"resultType"` + Result parser.Value `json:"result"` + Stats *stats.QueryStats `json:"stats,omitempty"` +} + +type RuleResponseItem struct { + Id int `json:"id" db:"id"` + UpdatedAt time.Time `json:"updated_at" db:"updated_at"` + Data string `json:"data" db:"data"` +} + +type TTLStatusItem struct { + Id int `json:"id" db:"id"` + UpdatedAt time.Time `json:"updated_at" db:"updated_at"` + CreatedAt time.Time `json:"created_at" db:"created_at"` + TableName string `json:"table_name" db:"table_name"` + TTL int `json:"ttl" db:"ttl"` + Status string `json:"status" db:"status"` + ColdStorageTtl int `json:"cold_storage_ttl" db:"cold_storage_ttl"` +} + +type ChannelItem struct { + Id int `json:"id" db:"id"` + CreatedAt time.Time `json:"created_at" db:"created_at"` + UpdatedAt time.Time `json:"updated_at" db:"updated_at"` + Name string `json:"name" db:"name"` + Type string `json:"type" db:"type"` + Data string `json:"data" db:"data"` +} + +// AlertDiscovery has info for all active alerts. +type AlertDiscovery struct { + Alerts []*AlertingRuleResponse `json:"rules"` +} + +// Alert has info for an alert. +type AlertingRuleResponse struct { + Labels labels.Labels `json:"labels"` + Annotations labels.Labels `json:"annotations"` + State string `json:"state"` + Name string `json:"name"` + Id int `json:"id"` + // ActiveAt *time.Time `json:"activeAt,omitempty"` + // Value float64 `json:"value"` +} + +type ServiceItem struct { + ServiceName string `json:"serviceName" ch:"serviceName"` + Percentile99 float64 `json:"p99" ch:"p99"` + AvgDuration float64 `json:"avgDuration" ch:"avgDuration"` + NumCalls uint64 `json:"numCalls" ch:"numCalls"` + CallRate float64 `json:"callRate" ch:"callRate"` + NumErrors uint64 `json:"numErrors" ch:"numErrors"` + ErrorRate float64 `json:"errorRate" ch:"errorRate"` + Num4XX uint64 `json:"num4XX" ch:"num4xx"` + FourXXRate float64 `json:"fourXXRate" ch:"fourXXRate"` +} +type ServiceErrorItem struct { + Time time.Time `json:"time" ch:"time"` + Timestamp int64 `json:"timestamp" ch:"timestamp"` + NumErrors uint64 `json:"numErrors" ch:"numErrors"` +} +type ServiceOverviewItem struct { + Time time.Time `json:"time" ch:"time"` + Timestamp int64 `json:"timestamp" ch:"timestamp"` + Percentile50 float64 `json:"p50" ch:"p50"` + Percentile95 float64 `json:"p95" ch:"p95"` + Percentile99 float64 `json:"p99" ch:"p99"` + NumCalls uint64 `json:"numCalls" ch:"numCalls"` + CallRate float64 `json:"callRate" ch:"callRate"` + NumErrors uint64 `json:"numErrors" ch:"numErrors"` + ErrorRate float64 `json:"errorRate" ch:"errorRate"` +} + +type SearchSpansResult struct { + Columns []string `json:"columns"` + Events [][]interface{} `json:"events"` +} + +type GetFilterSpansResponseItem struct { + Timestamp time.Time `ch:"timestamp" json:"timestamp"` + SpanID string `ch:"spanID" json:"spanID"` + TraceID string `ch:"traceID" json:"traceID"` + ServiceName string `ch:"serviceName" json:"serviceName"` + Operation string `ch:"name" json:"operation"` + DurationNano uint64 `ch:"durationNano" json:"durationNano"` + HttpMethod string `ch:"httpMethod"` + Method string `json:"method"` + ResponseStatusCode string `ch:"responseStatusCode" json:"statusCode"` + RPCMethod string `ch:"rpcMethod"` +} + +type GetFilterSpansResponse struct { + Spans []GetFilterSpansResponseItem `json:"spans"` + TotalSpans uint64 `json:"totalSpans"` +} + +type SearchSpanDBResponseItem struct { + Timestamp time.Time `ch:"timestamp"` + TraceID string `ch:"traceID"` + Model string `ch:"model"` +} + +type Event struct { + Name string `json:"name,omitempty"` + TimeUnixNano uint64 `json:"timeUnixNano,omitempty"` + AttributeMap map[string]interface{} `json:"attributeMap,omitempty"` + IsError bool `json:"isError,omitempty"` +} + +//easyjson:json +type SearchSpanResponseItem struct { + TimeUnixNano uint64 `json:"timestamp"` + DurationNano int64 `json:"durationNano"` + SpanID string `json:"spanId"` + RootSpanID string `json:"rootSpanId"` + TraceID string `json:"traceId"` + HasError bool `json:"hasError"` + Kind int32 `json:"kind"` + ServiceName string `json:"serviceName"` + Name string `json:"name"` + References []OtelSpanRef `json:"references,omitempty"` + TagMap map[string]string `json:"tagMap"` + Events []string `json:"event"` + RootName string `json:"rootName"` +} + +type OtelSpanRef struct { + TraceId string `json:"traceId,omitempty"` + SpanId string `json:"spanId,omitempty"` + RefType string `json:"refType,omitempty"` +} + +func (ref *OtelSpanRef) ToString() string { + + retString := fmt.Sprintf(`{TraceId=%s, SpanId=%s, RefType=%s}`, ref.TraceId, ref.SpanId, ref.RefType) + + return retString +} + +func (item *SearchSpanResponseItem) GetValues() []interface{} { + + references := []OtelSpanRef{} + jsonbody, _ := json.Marshal(item.References) + json.Unmarshal(jsonbody, &references) + + referencesStringArray := []string{} + for _, item := range references { + referencesStringArray = append(referencesStringArray, item.ToString()) + } + + if item.Events == nil { + item.Events = []string{} + } + keys := make([]string, 0, len(item.TagMap)) + values := make([]string, 0, len(item.TagMap)) + + for k, v := range item.TagMap { + keys = append(keys, k) + values = append(values, v) + } + returnArray := []interface{}{item.TimeUnixNano, item.SpanID, item.TraceID, item.ServiceName, item.Name, strconv.Itoa(int(item.Kind)), strconv.FormatInt(item.DurationNano, 10), keys, values, referencesStringArray, item.Events, item.HasError} + + return returnArray +} + +type UsageItem struct { + Time time.Time `json:"time,omitempty" ch:"time"` + Timestamp uint64 `json:"timestamp" ch:"timestamp"` + Count uint64 `json:"count" ch:"count"` +} + +type TopOperationsItem struct { + Percentile50 float64 `json:"p50" ch:"p50"` + Percentile95 float64 `json:"p95" ch:"p95"` + Percentile99 float64 `json:"p99" ch:"p99"` + NumCalls uint64 `json:"numCalls" ch:"numCalls"` + ErrorCount uint64 `json:"errorCount" ch:"errorCount"` + Name string `json:"name" ch:"name"` +} + +type TagFilters struct { + StringTagKeys []string `json:"stringTagKeys" ch:"stringTagKeys"` + NumberTagKeys []string `json:"numberTagKeys" ch:"numberTagKeys"` + BoolTagKeys []string `json:"boolTagKeys" ch:"boolTagKeys"` +} + +type TagValues struct { + StringTagValues []string `json:"stringTagValues" ch:"stringTagValues"` + BoolTagValues []bool `json:"boolTagValues" ch:"boolTagValues"` + NumberTagValues []float64 `json:"numberTagValues" ch:"numberTagValues"` +} + +type ServiceMapDependencyResponseItem struct { + Parent string `json:"parent" ch:"parent"` + Child string `json:"child" ch:"child"` + CallCount uint64 `json:"callCount" ch:"callCount"` + CallRate float64 `json:"callRate" ch:"callRate"` + ErrorRate float64 `json:"errorRate" ch:"errorRate"` + P99 float64 `json:"p99" ch:"p99"` + P95 float64 `json:"p95" ch:"p95"` + P90 float64 `json:"p90" ch:"p90"` + P75 float64 `json:"p75" ch:"p75"` + P50 float64 `json:"p50" ch:"p50"` +} + +type GetFilteredSpansAggregatesResponse struct { + Items map[int64]SpanAggregatesResponseItem `json:"items"` +} +type SpanAggregatesResponseItem struct { + Timestamp int64 `json:"timestamp,omitempty" ` + Value float32 `json:"value,omitempty"` + GroupBy map[string]float32 `json:"groupBy,omitempty"` +} +type SpanAggregatesDBResponseItem struct { + Timestamp int64 `ch:"timestamp" ` + Time time.Time `ch:"time"` + Value uint64 `ch:"value"` + FloatValue float32 `ch:"floatValue"` + Float64Value float64 `ch:"float64Value"` + GroupBy string `ch:"groupBy"` +} + +type SetTTLResponseItem struct { + Message string `json:"message"` +} + +type DiskItem struct { + Name string `json:"name,omitempty" ch:"name"` + Type string `json:"type,omitempty" ch:"type"` +} + +type DBResponseTTL struct { + EngineFull string `ch:"engine_full"` +} + +type GetTTLResponseItem struct { + MetricsTime int `json:"metrics_ttl_duration_hrs,omitempty"` + MetricsMoveTime int `json:"metrics_move_ttl_duration_hrs,omitempty"` + TracesTime int `json:"traces_ttl_duration_hrs,omitempty"` + TracesMoveTime int `json:"traces_move_ttl_duration_hrs,omitempty"` + LogsTime int `json:"logs_ttl_duration_hrs,omitempty"` + LogsMoveTime int `json:"logs_move_ttl_duration_hrs,omitempty"` + ExpectedMetricsTime int `json:"expected_metrics_ttl_duration_hrs,omitempty"` + ExpectedMetricsMoveTime int `json:"expected_metrics_move_ttl_duration_hrs,omitempty"` + ExpectedTracesTime int `json:"expected_traces_ttl_duration_hrs,omitempty"` + ExpectedTracesMoveTime int `json:"expected_traces_move_ttl_duration_hrs,omitempty"` + ExpectedLogsTime int `json:"expected_logs_ttl_duration_hrs,omitempty"` + ExpectedLogsMoveTime int `json:"expected_logs_move_ttl_duration_hrs,omitempty"` + Status string `json:"status"` +} + +type DBResponseServiceName struct { + ServiceName string `ch:"serviceName"` + Count uint64 `ch:"count"` +} + +type DBResponseHttpCode struct { + HttpCode string `ch:"httpCode"` + Count uint64 `ch:"count"` +} + +type DBResponseHttpRoute struct { + HttpRoute string `ch:"httpRoute"` + Count uint64 `ch:"count"` +} + +type DBResponseHttpUrl struct { + HttpUrl string `ch:"httpUrl"` + Count uint64 `ch:"count"` +} + +type DBResponseHttpMethod struct { + HttpMethod string `ch:"httpMethod"` + Count uint64 `ch:"count"` +} + +type DBResponseStatusCodeMethod struct { + ResponseStatusCode string `ch:"responseStatusCode"` + Count uint64 `ch:"count"` +} + +type DBResponseRPCMethod struct { + RPCMethod string `ch:"rpcMethod"` + Count uint64 `ch:"count"` +} + +type DBResponseHttpHost struct { + HttpHost string `ch:"httpHost"` + Count uint64 `ch:"count"` +} + +type DBResponseOperation struct { + Operation string `ch:"name"` + Count uint64 `ch:"count"` +} + +type DBResponseComponent struct { + Component string `ch:"component"` + Count uint64 `ch:"count"` +} + +type DBResponseTotal struct { + NumTotal uint64 `ch:"numTotal"` +} + +type DBResponseMinMax struct { + Min uint64 `ch:"min"` + Max uint64 `ch:"max"` +} + +type SpanFiltersResponse struct { + ServiceName map[string]uint64 `json:"serviceName"` + Status map[string]uint64 `json:"status"` + Duration map[string]uint64 `json:"duration"` + Operation map[string]uint64 `json:"operation"` + HttpCode map[string]uint64 `json:"httpCode"` + ResponseStatusCode map[string]uint64 `json:"responseStatusCode"` + RPCMethod map[string]uint64 `json:"rpcMethod"` + HttpUrl map[string]uint64 `json:"httpUrl"` + HttpMethod map[string]uint64 `json:"httpMethod"` + HttpRoute map[string]uint64 `json:"httpRoute"` + HttpHost map[string]uint64 `json:"httpHost"` + Component map[string]uint64 `json:"component"` +} +type Error struct { + ExceptionType string `json:"exceptionType" ch:"exceptionType"` + ExceptionMsg string `json:"exceptionMessage" ch:"exceptionMessage"` + ExceptionCount uint64 `json:"exceptionCount" ch:"exceptionCount"` + LastSeen time.Time `json:"lastSeen" ch:"lastSeen"` + FirstSeen time.Time `json:"firstSeen" ch:"firstSeen"` + ServiceName string `json:"serviceName" ch:"serviceName"` + GroupID string `json:"groupID" ch:"groupID"` +} + +type ErrorWithSpan struct { + ErrorID string `json:"errorId" ch:"errorID"` + ExceptionType string `json:"exceptionType" ch:"exceptionType"` + ExceptionStacktrace string `json:"exceptionStacktrace" ch:"exceptionStacktrace"` + ExceptionEscaped bool `json:"exceptionEscaped" ch:"exceptionEscaped"` + ExceptionMsg string `json:"exceptionMessage" ch:"exceptionMessage"` + Timestamp time.Time `json:"timestamp" ch:"timestamp"` + SpanID string `json:"spanID" ch:"spanID"` + TraceID string `json:"traceID" ch:"traceID"` + ServiceName string `json:"serviceName" ch:"serviceName"` + GroupID string `json:"groupID" ch:"groupID"` +} + +type NextPrevErrorIDsDBResponse struct { + NextErrorID string `ch:"nextErrorID"` + NextTimestamp time.Time `ch:"nextTimestamp"` + PrevErrorID string `ch:"prevErrorID"` + PrevTimestamp time.Time `ch:"prevTimestamp"` + Timestamp time.Time `ch:"timestamp"` +} + +type NextPrevErrorIDs struct { + NextErrorID string `json:"nextErrorID"` + NextTimestamp time.Time `json:"nextTimestamp"` + PrevErrorID string `json:"prevErrorID"` + PrevTimestamp time.Time `json:"prevTimestamp"` + GroupID string `json:"groupID"` +} + +type Series struct { + QueryName string `json:"queryName"` + Labels map[string]string `json:"metric"` + Points []MetricPoint `json:"values"` +} + +func (s *Series) SortPoints() { + sort.Slice(s.Points, func(i, j int) bool { + return s.Points[i].Timestamp < s.Points[j].Timestamp + }) +} + +type MetricPoint struct { + Timestamp int64 + Value float64 +} + +// MarshalJSON implements json.Marshaler. +func (p *MetricPoint) MarshalJSON() ([]byte, error) { + v := strconv.FormatFloat(p.Value, 'f', -1, 64) + return json.Marshal([...]interface{}{float64(p.Timestamp) / 1000, v}) +} + +// UnmarshalJSON implements json.Unmarshaler. +func (p *MetricPoint) UnmarshalJSON(b []byte) error { + var a [2]interface{} + if err := json.Unmarshal(b, &a); err != nil { + return err + } + p.Timestamp = int64(a[0].(float64) * 1000) + p.Value, _ = strconv.ParseFloat(a[1].(string), 64) + return nil +} + +type ShowCreateTableStatement struct { + Statement string `json:"statement" ch:"statement"` +} + +type LogField struct { + Name string `json:"name" ch:"name"` + DataType string `json:"dataType" ch:"datatype"` + Type string `json:"type"` +} + +type GetFieldsResponse struct { + Selected []LogField `json:"selected"` + Interesting []LogField `json:"interesting"` +} + +// Represents a log record in query service requests and responses. +type SignozLog struct { + Timestamp uint64 `json:"timestamp" ch:"timestamp"` + ID string `json:"id" ch:"id"` + TraceID string `json:"trace_id" ch:"trace_id"` + SpanID string `json:"span_id" ch:"span_id"` + TraceFlags uint32 `json:"trace_flags" ch:"trace_flags"` + SeverityText string `json:"severity_text" ch:"severity_text"` + SeverityNumber uint8 `json:"severity_number" ch:"severity_number"` + Body string `json:"body" ch:"body"` + Resources_string map[string]string `json:"resources_string" ch:"resources_string"` + Attributes_string map[string]string `json:"attributes_string" ch:"attributes_string"` + Attributes_int64 map[string]int64 `json:"attributes_int" ch:"attributes_int64"` + Attributes_float64 map[string]float64 `json:"attributes_float" ch:"attributes_float64"` + Attributes_bool map[string]bool `json:"attributes_bool" ch:"attributes_bool"` +} + +type LogsTailClient struct { + Name string + Logs chan *SignozLog + Done chan *bool + Error chan error + Filter LogsFilterParams +} + +type GetLogsAggregatesResponse struct { + Items map[int64]LogsAggregatesResponseItem `json:"items"` +} + +type LogsAggregatesResponseItem struct { + Timestamp int64 `json:"timestamp,omitempty" ` + Value interface{} `json:"value,omitempty"` + GroupBy map[string]interface{} `json:"groupBy,omitempty"` +} + +type LogsAggregatesDBResponseItem struct { + Timestamp int64 `ch:"ts_start_interval"` + Value float64 `ch:"value"` + GroupBy string `ch:"groupBy"` +} + +// MarshalJSON implements json.Marshaler. +func (s *ServiceItem) MarshalJSON() ([]byte, error) { + // If a service didn't not send any data in the last interval duration + // it's values such as 99th percentile will return as NaN and + // json encoding doesn't support NaN + // We still want to show it in the UI, so we'll replace NaN with 0 + type Alias ServiceItem + if math.IsInf(s.AvgDuration, 0) || math.IsNaN(s.AvgDuration) { + s.AvgDuration = 0 + } + if math.IsInf(s.CallRate, 0) || math.IsNaN(s.CallRate) { + s.CallRate = 0 + } + if math.IsInf(s.ErrorRate, 0) || math.IsNaN(s.ErrorRate) { + s.ErrorRate = 0 + } + if math.IsInf(s.Percentile99, 0) || math.IsNaN(s.Percentile99) { + s.Percentile99 = 0 + } + + return json.Marshal(&struct { + *Alias + }{ + Alias: (*Alias)(s), + }) +} + +type DashboardVar struct { + VariableValues []interface{} `json:"variableValues"` +} + +type TagsInfo struct { + Languages map[string]interface{} `json:"languages"` + Env string `json:"env"` +} + +type AlertsInfo struct { + TotalAlerts int `json:"totalAlerts"` + LogsBasedAlerts int `json:"logsBasedAlerts"` + MetricBasedAlerts int `json:"metricBasedAlerts"` + TracesBasedAlerts int `json:"tracesBasedAlerts"` +} + +type DashboardsInfo struct { + TotalDashboards int `json:"totalDashboards"` + LogsBasedPanels int `json:"logsBasedPanels"` + MetricBasedPanels int `json:"metricBasedPanels"` + TracesBasedPanels int `json:"tracesBasedPanels"` +} + +type TagTelemetryData struct { + ServiceName string `json:"serviceName" ch:"serviceName"` + Env string `json:"env" ch:"env"` + Language string `json:"language" ch:"language"` +} + +type ClusterInfo struct { + ShardNum uint32 `json:"shard_num" ch:"shard_num"` + ShardWeight uint32 `json:"shard_weight" ch:"shard_weight"` + ReplicaNum uint32 `json:"replica_num" ch:"replica_num"` + ErrorsCount uint32 `json:"errors_count" ch:"errors_count"` + SlowdownsCount uint32 `json:"slowdowns_count" ch:"slowdowns_count"` + EstimatedRecoveryTime uint32 `json:"estimated_recovery_time" ch:"estimated_recovery_time"` +} + +func (ci *ClusterInfo) GetMapFromStruct() map[string]interface{} { + var clusterInfoMap map[string]interface{} + data, _ := json.Marshal(*ci) + json.Unmarshal(data, &clusterInfoMap) + return clusterInfoMap +} + +type GetVersionResponse struct { + Version string `json:"version"` + EE string `json:"ee"` + SetupCompleted bool `json:"setupCompleted"` +} diff --git a/contrib/opbot/signoz/generated/response_easyjson.go b/contrib/opbot/signoz/generated/response_easyjson.go new file mode 100644 index 0000000000..af9f1e3603 --- /dev/null +++ b/contrib/opbot/signoz/generated/response_easyjson.go @@ -0,0 +1,328 @@ +// Code generated by easyjson for marshaling/unmarshaling. DO NOT EDIT. + +package generated + +import ( + json "encoding/json" + easyjson "github.com/mailru/easyjson" + jlexer "github.com/mailru/easyjson/jlexer" + jwriter "github.com/mailru/easyjson/jwriter" +) + +// suppress unused package warning +var ( + _ *json.RawMessage + _ *jlexer.Lexer + _ *jwriter.Writer + _ easyjson.Marshaler +) + +func easyjson6ff3ac1dDecodeGoSignozIoSignozPkgQueryServiceModel(in *jlexer.Lexer, out *SearchSpanResponseItem) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeFieldName(false) + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "timestamp": + out.TimeUnixNano = uint64(in.Uint64()) + case "durationNano": + out.DurationNano = int64(in.Int64()) + case "spanId": + out.SpanID = string(in.String()) + case "rootSpanId": + out.RootSpanID = string(in.String()) + case "traceId": + out.TraceID = string(in.String()) + case "hasError": + out.HasError = bool(in.Bool()) + case "kind": + out.Kind = int32(in.Int32()) + case "serviceName": + out.ServiceName = string(in.String()) + case "name": + out.Name = string(in.String()) + case "references": + if in.IsNull() { + in.Skip() + out.References = nil + } else { + in.Delim('[') + if out.References == nil { + if !in.IsDelim(']') { + out.References = make([]OtelSpanRef, 0, 1) + } else { + out.References = []OtelSpanRef{} + } + } else { + out.References = (out.References)[:0] + } + for !in.IsDelim(']') { + var v1 OtelSpanRef + easyjson6ff3ac1dDecodeGoSignozIoSignozPkgQueryServiceModel1(in, &v1) + out.References = append(out.References, v1) + in.WantComma() + } + in.Delim(']') + } + case "tagMap": + if in.IsNull() { + in.Skip() + } else { + in.Delim('{') + out.TagMap = make(map[string]string) + for !in.IsDelim('}') { + key := string(in.String()) + in.WantColon() + var v2 string + v2 = string(in.String()) + (out.TagMap)[key] = v2 + in.WantComma() + } + in.Delim('}') + } + case "event": + if in.IsNull() { + in.Skip() + out.Events = nil + } else { + in.Delim('[') + if out.Events == nil { + if !in.IsDelim(']') { + out.Events = make([]string, 0, 4) + } else { + out.Events = []string{} + } + } else { + out.Events = (out.Events)[:0] + } + for !in.IsDelim(']') { + var v3 string + v3 = string(in.String()) + out.Events = append(out.Events, v3) + in.WantComma() + } + in.Delim(']') + } + case "rootName": + out.RootName = string(in.String()) + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson6ff3ac1dEncodeGoSignozIoSignozPkgQueryServiceModel(out *jwriter.Writer, in SearchSpanResponseItem) { + out.RawByte('{') + first := true + _ = first + { + const prefix string = ",\"timestamp\":" + out.RawString(prefix[1:]) + out.Uint64(uint64(in.TimeUnixNano)) + } + { + const prefix string = ",\"durationNano\":" + out.RawString(prefix) + out.Int64(int64(in.DurationNano)) + } + { + const prefix string = ",\"spanId\":" + out.RawString(prefix) + out.String(string(in.SpanID)) + } + { + const prefix string = ",\"rootSpanId\":" + out.RawString(prefix) + out.String(string(in.RootSpanID)) + } + { + const prefix string = ",\"traceId\":" + out.RawString(prefix) + out.String(string(in.TraceID)) + } + { + const prefix string = ",\"hasError\":" + out.RawString(prefix) + out.Bool(bool(in.HasError)) + } + { + const prefix string = ",\"kind\":" + out.RawString(prefix) + out.Int32(int32(in.Kind)) + } + { + const prefix string = ",\"serviceName\":" + out.RawString(prefix) + out.String(string(in.ServiceName)) + } + { + const prefix string = ",\"name\":" + out.RawString(prefix) + out.String(string(in.Name)) + } + if len(in.References) != 0 { + const prefix string = ",\"references\":" + out.RawString(prefix) + { + out.RawByte('[') + for v4, v5 := range in.References { + if v4 > 0 { + out.RawByte(',') + } + easyjson6ff3ac1dEncodeGoSignozIoSignozPkgQueryServiceModel1(out, v5) + } + out.RawByte(']') + } + } + { + const prefix string = ",\"tagMap\":" + out.RawString(prefix) + if in.TagMap == nil && (out.Flags&jwriter.NilMapAsEmpty) == 0 { + out.RawString(`null`) + } else { + out.RawByte('{') + v6First := true + for v6Name, v6Value := range in.TagMap { + if v6First { + v6First = false + } else { + out.RawByte(',') + } + out.String(string(v6Name)) + out.RawByte(':') + out.String(string(v6Value)) + } + out.RawByte('}') + } + } + { + const prefix string = ",\"event\":" + out.RawString(prefix) + if in.Events == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 { + out.RawString("null") + } else { + out.RawByte('[') + for v7, v8 := range in.Events { + if v7 > 0 { + out.RawByte(',') + } + out.String(string(v8)) + } + out.RawByte(']') + } + } + { + const prefix string = ",\"rootName\":" + out.RawString(prefix) + out.String(string(in.RootName)) + } + out.RawByte('}') +} + +// MarshalJSON supports json.Marshaler interface +func (v SearchSpanResponseItem) MarshalJSON() ([]byte, error) { + w := jwriter.Writer{} + easyjson6ff3ac1dEncodeGoSignozIoSignozPkgQueryServiceModel(&w, v) + return w.Buffer.BuildBytes(), w.Error +} + +// MarshalEasyJSON supports easyjson.Marshaler interface +func (v SearchSpanResponseItem) MarshalEasyJSON(w *jwriter.Writer) { + easyjson6ff3ac1dEncodeGoSignozIoSignozPkgQueryServiceModel(w, v) +} + +// UnmarshalJSON supports json.Unmarshaler interface +func (v *SearchSpanResponseItem) UnmarshalJSON(data []byte) error { + r := jlexer.Lexer{Data: data} + easyjson6ff3ac1dDecodeGoSignozIoSignozPkgQueryServiceModel(&r, v) + return r.Error() +} + +// UnmarshalEasyJSON supports easyjson.Unmarshaler interface +func (v *SearchSpanResponseItem) UnmarshalEasyJSON(l *jlexer.Lexer) { + easyjson6ff3ac1dDecodeGoSignozIoSignozPkgQueryServiceModel(l, v) +} +func easyjson6ff3ac1dDecodeGoSignozIoSignozPkgQueryServiceModel1(in *jlexer.Lexer, out *OtelSpanRef) { + isTopLevel := in.IsStart() + if in.IsNull() { + if isTopLevel { + in.Consumed() + } + in.Skip() + return + } + in.Delim('{') + for !in.IsDelim('}') { + key := in.UnsafeFieldName(false) + in.WantColon() + if in.IsNull() { + in.Skip() + in.WantComma() + continue + } + switch key { + case "traceId": + out.TraceId = string(in.String()) + case "spanId": + out.SpanId = string(in.String()) + case "refType": + out.RefType = string(in.String()) + default: + in.SkipRecursive() + } + in.WantComma() + } + in.Delim('}') + if isTopLevel { + in.Consumed() + } +} +func easyjson6ff3ac1dEncodeGoSignozIoSignozPkgQueryServiceModel1(out *jwriter.Writer, in OtelSpanRef) { + out.RawByte('{') + first := true + _ = first + if in.TraceId != "" { + const prefix string = ",\"traceId\":" + first = false + out.RawString(prefix[1:]) + out.String(string(in.TraceId)) + } + if in.SpanId != "" { + const prefix string = ",\"spanId\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.SpanId)) + } + if in.RefType != "" { + const prefix string = ",\"refType\":" + if first { + first = false + out.RawString(prefix[1:]) + } else { + out.RawString(prefix) + } + out.String(string(in.RefType)) + } + out.RawByte('}') +} diff --git a/contrib/opbot/signoz/generated/v3/v3.go b/contrib/opbot/signoz/generated/v3/v3.go new file mode 100644 index 0000000000..5d78ba8d06 --- /dev/null +++ b/contrib/opbot/signoz/generated/v3/v3.go @@ -0,0 +1,748 @@ +package v3 + +import ( + "database/sql/driver" + "encoding/json" + "fmt" + "sort" + "strconv" + "time" + + "github.com/google/uuid" + "github.com/pkg/errors" + "github.com/synapsecns/sanguine/contrib/opbot/signoz/generated" +) + +type DataSource string + +const ( + DataSourceTraces DataSource = "traces" + DataSourceLogs DataSource = "logs" + DataSourceMetrics DataSource = "metrics" +) + +func (d DataSource) Validate() error { + switch d { + case DataSourceTraces, DataSourceLogs, DataSourceMetrics: + return nil + default: + return fmt.Errorf("invalid data source: %s", d) + } +} + +type AggregateOperator string + +const ( + AggregateOperatorNoOp AggregateOperator = "noop" + AggregateOperatorCount AggregateOperator = "count" + AggregateOperatorCountDistinct AggregateOperator = "count_distinct" + AggregateOperatorSum AggregateOperator = "sum" + AggregateOperatorAvg AggregateOperator = "avg" + AggregateOperatorMin AggregateOperator = "min" + AggregateOperatorMax AggregateOperator = "max" + AggregateOperatorP05 AggregateOperator = "p05" + AggregateOperatorP10 AggregateOperator = "p10" + AggregateOperatorP20 AggregateOperator = "p20" + AggregateOperatorP25 AggregateOperator = "p25" + AggregateOperatorP50 AggregateOperator = "p50" + AggregateOperatorP75 AggregateOperator = "p75" + AggregateOperatorP90 AggregateOperator = "p90" + AggregateOperatorP95 AggregateOperator = "p95" + AggregateOperatorP99 AggregateOperator = "p99" + AggregateOperatorRate AggregateOperator = "rate" + AggregateOperatorSumRate AggregateOperator = "sum_rate" + AggregateOperatorAvgRate AggregateOperator = "avg_rate" + AggregateOperatorMinRate AggregateOperator = "min_rate" + AggregateOperatorMaxRate AggregateOperator = "max_rate" + AggregateOperatorRateSum AggregateOperator = "rate_sum" + AggregateOperatorRateAvg AggregateOperator = "rate_avg" + AggregateOperatorRateMin AggregateOperator = "rate_min" + AggregateOperatorRateMax AggregateOperator = "rate_max" + AggregateOperatorHistQuant50 AggregateOperator = "hist_quantile_50" + AggregateOperatorHistQuant75 AggregateOperator = "hist_quantile_75" + AggregateOperatorHistQuant90 AggregateOperator = "hist_quantile_90" + AggregateOperatorHistQuant95 AggregateOperator = "hist_quantile_95" + AggregateOperatorHistQuant99 AggregateOperator = "hist_quantile_99" +) + +func (a AggregateOperator) Validate() error { + switch a { + case AggregateOperatorNoOp, + AggregateOperatorCount, + AggregateOperatorCountDistinct, + AggregateOperatorSum, + AggregateOperatorAvg, + AggregateOperatorMin, + AggregateOperatorMax, + AggregateOperatorP05, + AggregateOperatorP10, + AggregateOperatorP20, + AggregateOperatorP25, + AggregateOperatorP50, + AggregateOperatorP75, + AggregateOperatorP90, + AggregateOperatorP95, + AggregateOperatorP99, + AggregateOperatorRate, + AggregateOperatorSumRate, + AggregateOperatorAvgRate, + AggregateOperatorMinRate, + AggregateOperatorMaxRate, + AggregateOperatorRateSum, + AggregateOperatorRateAvg, + AggregateOperatorRateMin, + AggregateOperatorRateMax, + AggregateOperatorHistQuant50, + AggregateOperatorHistQuant75, + AggregateOperatorHistQuant90, + AggregateOperatorHistQuant95, + AggregateOperatorHistQuant99: + return nil + default: + return fmt.Errorf("invalid operator: %s", a) + } +} + +// RequireAttribute returns true if the aggregate operator requires an attribute +// to be specified. +func (a AggregateOperator) RequireAttribute(dataSource DataSource) bool { + switch dataSource { + case DataSourceMetrics: + switch a { + case AggregateOperatorNoOp, + AggregateOperatorCount: + return false + default: + return true + } + case DataSourceLogs: + switch a { + case AggregateOperatorNoOp, + AggregateOperatorCount, + AggregateOperatorRate: + return false + default: + return true + } + case DataSourceTraces: + switch a { + case AggregateOperatorNoOp, + AggregateOperatorCount, + AggregateOperatorRate: + return false + default: + return true + } + default: + return false + } +} + +func (a AggregateOperator) IsRateOperator() bool { + switch a { + case AggregateOperatorRate, + AggregateOperatorSumRate, + AggregateOperatorAvgRate, + AggregateOperatorMinRate, + AggregateOperatorMaxRate, + AggregateOperatorRateSum, + AggregateOperatorRateAvg, + AggregateOperatorRateMin, + AggregateOperatorRateMax: + return true + + default: + return false + } +} + +type ReduceToOperator string + +const ( + ReduceToOperatorLast ReduceToOperator = "last" + ReduceToOperatorSum ReduceToOperator = "sum" + ReduceToOperatorAvg ReduceToOperator = "avg" + ReduceToOperatorMin ReduceToOperator = "min" + ReduceToOperatorMax ReduceToOperator = "max" +) + +func (r ReduceToOperator) Validate() error { + switch r { + case ReduceToOperatorLast, ReduceToOperatorSum, ReduceToOperatorAvg, ReduceToOperatorMin, ReduceToOperatorMax: + return nil + default: + return fmt.Errorf("invalid reduce to operator: %s", r) + } +} + +type QueryType string + +const ( + QueryTypeUnknown QueryType = "unknown" + QueryTypeBuilder QueryType = "builder" + QueryTypeClickHouseSQL QueryType = "clickhouse_sql" + QueryTypePromQL QueryType = "promql" +) + +func (q QueryType) Validate() error { + switch q { + case QueryTypeBuilder, QueryTypeClickHouseSQL, QueryTypePromQL: + return nil + default: + return fmt.Errorf("invalid query type: %s", q) + } +} + +type PanelType string + +const ( + PanelTypeValue PanelType = "value" + PanelTypeGraph PanelType = "graph" + PanelTypeTable PanelType = "table" + PanelTypeList PanelType = "list" + PanelTypeTrace PanelType = "trace" +) + +func (p PanelType) Validate() error { + switch p { + case PanelTypeValue, PanelTypeGraph, PanelTypeTable, PanelTypeList, PanelTypeTrace: + return nil + default: + return fmt.Errorf("invalid panel type: %s", p) + } +} + +// AggregateAttributeRequest is a request to fetch possible attribute keys +// for a selected aggregate operator and search text. +// The context of the selected aggregate operator is used as the +// type of the attribute key is different for different aggregate operators. +// For example, for the aggregate operator "avg" the attribute value type must be +// a number +type AggregateAttributeRequest struct { + DataSource DataSource `json:"dataSource"` + Operator AggregateOperator `json:"aggregateOperator"` + SearchText string `json:"searchText"` + Limit int `json:"limit"` +} + +type TagType string + +const ( + TagTypeTag TagType = "tag" + TagTypeResource TagType = "resource" +) + +func (q TagType) Validate() error { + switch q { + case TagTypeTag, TagTypeResource: + return nil + default: + return fmt.Errorf("invalid tag type: %s", q) + } +} + +// FilterAttributeKeyRequest is a request to fetch possible attribute keys +// for a selected aggregate operator and aggregate attribute and search text. +type FilterAttributeKeyRequest struct { + DataSource DataSource `json:"dataSource"` + AggregateOperator AggregateOperator `json:"aggregateOperator"` + AggregateAttribute string `json:"aggregateAttribute"` + SearchText string `json:"searchText"` + Limit int `json:"limit"` +} + +type AttributeKeyDataType string + +const ( + AttributeKeyDataTypeUnspecified AttributeKeyDataType = "" + AttributeKeyDataTypeString AttributeKeyDataType = "string" + AttributeKeyDataTypeInt64 AttributeKeyDataType = "int64" + AttributeKeyDataTypeFloat64 AttributeKeyDataType = "float64" + AttributeKeyDataTypeBool AttributeKeyDataType = "bool" + AttributeKeyDataTypeArrayString AttributeKeyDataType = "array(string)" + AttributeKeyDataTypeArrayInt64 AttributeKeyDataType = "array(int64)" + AttributeKeyDataTypeArrayFloat64 AttributeKeyDataType = "array(float64)" + AttributeKeyDataTypeArrayBool AttributeKeyDataType = "array(bool)" +) + +func (q AttributeKeyDataType) Validate() error { + switch q { + case AttributeKeyDataTypeString, AttributeKeyDataTypeInt64, AttributeKeyDataTypeFloat64, AttributeKeyDataTypeBool: + return nil + default: + return fmt.Errorf("invalid tag data type: %s", q) + } +} + +// FilterAttributeValueRequest is a request to fetch possible attribute values +// for a selected aggregate operator, aggregate attribute, filter attribute key +// and search text. +type FilterAttributeValueRequest struct { + DataSource DataSource `json:"dataSource"` + AggregateOperator AggregateOperator `json:"aggregateOperator"` + AggregateAttribute string `json:"aggregateAttribute"` + FilterAttributeKey string `json:"filterAttributeKey"` + FilterAttributeKeyDataType AttributeKeyDataType `json:"filterAttributeKeyDataType"` + TagType TagType `json:"tagType"` + SearchText string `json:"searchText"` + Limit int `json:"limit"` +} + +type AggregateAttributeResponse struct { + AttributeKeys []AttributeKey `json:"attributeKeys"` +} + +type FilterAttributeKeyResponse struct { + AttributeKeys []AttributeKey `json:"attributeKeys"` +} + +type AttributeKeyType string + +const ( + AttributeKeyTypeUnspecified AttributeKeyType = "" + AttributeKeyTypeTag AttributeKeyType = "tag" + AttributeKeyTypeResource AttributeKeyType = "resource" +) + +type AttributeKey struct { + Key string `json:"key"` + DataType AttributeKeyDataType `json:"dataType"` + Type AttributeKeyType `json:"type"` + IsColumn bool `json:"isColumn"` + IsJSON bool `json:"isJSON"` +} + +func (a AttributeKey) CacheKey() string { + return fmt.Sprintf("%s-%s-%s-%t", a.Key, a.DataType, a.Type, a.IsColumn) +} + +func (a AttributeKey) Validate() error { + switch a.DataType { + case AttributeKeyDataTypeBool, AttributeKeyDataTypeInt64, AttributeKeyDataTypeFloat64, AttributeKeyDataTypeString, AttributeKeyDataTypeArrayFloat64, AttributeKeyDataTypeArrayString, AttributeKeyDataTypeArrayInt64, AttributeKeyDataTypeArrayBool, AttributeKeyDataTypeUnspecified: + break + default: + return fmt.Errorf("invalid attribute dataType: %s", a.DataType) + } + + if a.IsColumn { + switch a.Type { + case AttributeKeyTypeResource, AttributeKeyTypeTag, AttributeKeyTypeUnspecified: + break + default: + return fmt.Errorf("invalid attribute type: %s", a.Type) + } + } + + if a.Key == "" { + return fmt.Errorf("key is empty") + } + + return nil +} + +type FilterAttributeValueResponse struct { + StringAttributeValues []string `json:"stringAttributeValues"` + NumberAttributeValues []interface{} `json:"numberAttributeValues"` + BoolAttributeValues []bool `json:"boolAttributeValues"` +} + +type QueryRangeParamsV3 struct { + Start int64 `json:"start"` + End int64 `json:"end"` + Step int64 `json:"step"` // step is in seconds; used for prometheus queries + CompositeQuery *CompositeQuery `json:"compositeQuery"` + Variables map[string]interface{} `json:"variables,omitempty"` + NoCache bool `json:"noCache"` +} + +type PromQuery struct { + Query string `json:"query"` + Stats string `json:"stats,omitempty"` + Disabled bool `json:"disabled"` + Legend string `json:"legend,omitempty"` +} + +func (p *PromQuery) Validate() error { + if p == nil { + return nil + } + + if p.Query == "" { + return fmt.Errorf("query is empty") + } + + return nil +} + +type ClickHouseQuery struct { + Query string `json:"query"` + Disabled bool `json:"disabled"` + Legend string `json:"legend,omitempty"` +} + +func (c *ClickHouseQuery) Validate() error { + if c == nil { + return nil + } + + if c.Query == "" { + return fmt.Errorf("query is empty") + } + + return nil +} + +type CompositeQuery struct { + BuilderQueries map[string]*BuilderQuery `json:"builderQueries,omitempty"` + ClickHouseQueries map[string]*ClickHouseQuery `json:"chQueries,omitempty"` + PromQueries map[string]*PromQuery `json:"promQueries,omitempty"` + PanelType PanelType `json:"panelType"` + QueryType QueryType `json:"queryType"` + Unit string `json:"unit,omitempty"` +} + +func (c *CompositeQuery) Validate() error { + if c == nil { + return nil + } + + if c.BuilderQueries == nil && c.ClickHouseQueries == nil && c.PromQueries == nil { + return fmt.Errorf("composite query must contain at least one query") + } + + for name, query := range c.BuilderQueries { + if err := query.Validate(); err != nil { + return fmt.Errorf("builder query %s is invalid: %w", name, err) + } + } + + for name, query := range c.ClickHouseQueries { + if err := query.Validate(); err != nil { + return fmt.Errorf("clickhouse query %s is invalid: %w", name, err) + } + } + + for name, query := range c.PromQueries { + if err := query.Validate(); err != nil { + return fmt.Errorf("prom query %s is invalid: %w", name, err) + } + } + + if err := c.PanelType.Validate(); err != nil { + return fmt.Errorf("panel type is invalid: %w", err) + } + + if err := c.QueryType.Validate(); err != nil { + return fmt.Errorf("query type is invalid: %w", err) + } + + return nil +} + +type Temporality string + +const ( + Unspecified Temporality = "Unspecified" + Delta Temporality = "Delta" + Cumulative Temporality = "Cumulative" +) + +type TimeAggregation string + +const ( + TimeAggregationUnspecified TimeAggregation = "" + TimeAggregationAnyLast TimeAggregation = "latest" + TimeAggregationSum TimeAggregation = "sum" + TimeAggregationAvg TimeAggregation = "avg" + TimeAggregationMin TimeAggregation = "min" + TimeAggregationMax TimeAggregation = "max" + TimeAggregationCount TimeAggregation = "count" + TimeAggregationCountDistinct TimeAggregation = "count_distinct" + TimeAggregationRate TimeAggregation = "rate" + TimeAggregationIncrease TimeAggregation = "increase" +) + +type SpaceAggregation string + +const ( + SpaceAggregationUnspecified SpaceAggregation = "" + SpaceAggregationSum SpaceAggregation = "sum" + SpaceAggregationAvg SpaceAggregation = "avg" + SpaceAggregationMin SpaceAggregation = "min" + SpaceAggregationMax SpaceAggregation = "max" + SpaceAggregationCount SpaceAggregation = "count" +) + +type Function struct { + Category string `json:"category"` + Name string `json:"name"` + Args []interface{} `json:"args,omitempty"` +} + +type BuilderQuery struct { + QueryName string `json:"queryName"` + StepInterval int64 `json:"stepInterval"` + DataSource DataSource `json:"dataSource"` + AggregateOperator AggregateOperator `json:"aggregateOperator"` + AggregateAttribute AttributeKey `json:"aggregateAttribute,omitempty"` + Temporality Temporality `json:"temporality,omitempty"` + Filters *FilterSet `json:"filters,omitempty"` + GroupBy []AttributeKey `json:"groupBy,omitempty"` + Expression string `json:"expression"` + Disabled bool `json:"disabled"` + Having []Having `json:"having,omitempty"` + Legend string `json:"legend,omitempty"` + Limit uint64 `json:"limit"` + Offset uint64 `json:"offset"` + PageSize uint64 `json:"pageSize"` + OrderBy []OrderBy `json:"orderBy,omitempty"` + ReduceTo ReduceToOperator `json:"reduceTo,omitempty"` + SelectColumns []AttributeKey `json:"selectColumns,omitempty"` + TimeAggregation TimeAggregation `json:"timeAggregation,omitempty"` + SpaceAggregation SpaceAggregation `json:"spaceAggregation,omitempty"` + Functions []Function `json:"functions,omitempty"` +} + +func (b *BuilderQuery) Validate() error { + if b == nil { + return nil + } + if b.QueryName == "" { + return fmt.Errorf("query name is required") + } + + // if expression is same as query name, it's a simple builder query and not a formula + // formula involves more than one data source, aggregate operator, etc. + if b.QueryName == b.Expression { + if err := b.DataSource.Validate(); err != nil { + return fmt.Errorf("data source is invalid: %w", err) + } + if err := b.AggregateOperator.Validate(); err != nil { + return fmt.Errorf("aggregate operator is invalid: %w", err) + } + if b.AggregateAttribute == (AttributeKey{}) && b.AggregateOperator.RequireAttribute(b.DataSource) { + return fmt.Errorf("aggregate attribute is required") + } + } + + if b.Filters != nil { + if err := b.Filters.Validate(); err != nil { + return fmt.Errorf("filters are invalid: %w", err) + } + } + if b.GroupBy != nil { + for _, groupBy := range b.GroupBy { + if err := groupBy.Validate(); err != nil { + return fmt.Errorf("group by is invalid %w", err) + } + } + + if b.DataSource == DataSourceMetrics && len(b.GroupBy) > 0 { + if b.AggregateOperator == AggregateOperatorNoOp || b.AggregateOperator == AggregateOperatorRate { + return fmt.Errorf("group by requires aggregate operator other than noop or rate") + } + } + } + + for _, selectColumn := range b.SelectColumns { + if err := selectColumn.Validate(); err != nil { + return fmt.Errorf("select column is invalid %w", err) + } + } + + if b.Expression == "" { + return fmt.Errorf("expression is required") + } + return nil +} + +type FilterSet struct { + Operator string `json:"op,omitempty"` + Items []FilterItem `json:"items"` +} + +func (f *FilterSet) Validate() error { + if f == nil { + return nil + } + if f.Operator != "" && f.Operator != "AND" && f.Operator != "OR" { + return fmt.Errorf("operator must be AND or OR") + } + for _, item := range f.Items { + if err := item.Key.Validate(); err != nil { + return fmt.Errorf("filter item key is invalid: %w", err) + } + } + return nil +} + +// For serializing to and from db +func (f *FilterSet) Scan(src interface{}) error { + if data, ok := src.([]byte); ok { + return json.Unmarshal(data, &f) + } + return nil +} + +func (f *FilterSet) Value() (driver.Value, error) { + filterSetJson, err := json.Marshal(f) + if err != nil { + return nil, errors.Wrap(err, "could not serialize FilterSet to JSON") + } + return filterSetJson, nil +} + +type FilterOperator string + +const ( + FilterOperatorEqual FilterOperator = "=" + FilterOperatorNotEqual FilterOperator = "!=" + FilterOperatorGreaterThan FilterOperator = ">" + FilterOperatorGreaterThanOrEq FilterOperator = ">=" + FilterOperatorLessThan FilterOperator = "<" + FilterOperatorLessThanOrEq FilterOperator = "<=" + FilterOperatorIn FilterOperator = "in" + FilterOperatorNotIn FilterOperator = "nin" + FilterOperatorContains FilterOperator = "contains" + FilterOperatorNotContains FilterOperator = "ncontains" + FilterOperatorRegex FilterOperator = "regex" + FilterOperatorNotRegex FilterOperator = "nregex" + // (I)LIKE is faster than REGEX and supports index + FilterOperatorLike FilterOperator = "like" + FilterOperatorNotLike FilterOperator = "nlike" + + FilterOperatorExists FilterOperator = "exists" + FilterOperatorNotExists FilterOperator = "nexists" + + FilterOperatorHas FilterOperator = "has" + FilterOperatorNotHas FilterOperator = "nhas" +) + +type FilterItem struct { + Key AttributeKey `json:"key"` + Value interface{} `json:"value"` + Operator FilterOperator `json:"op"` +} + +func (f *FilterItem) CacheKey() string { + return fmt.Sprintf("key:%s,op:%s,value:%v", f.Key.CacheKey(), f.Operator, f.Value) +} + +type OrderBy struct { + ColumnName string `json:"columnName"` + Order string `json:"order"` + Key string `json:"-"` + DataType AttributeKeyDataType `json:"-"` + Type AttributeKeyType `json:"-"` + IsColumn bool `json:"-"` +} + +type Having struct { + ColumnName string `json:"columnName"` + Operator string `json:"op"` + Value interface{} `json:"value"` +} + +func (h *Having) CacheKey() string { + return fmt.Sprintf("column:%s,op:%s,value:%v", h.ColumnName, h.Operator, h.Value) +} + +type QueryRangeResponse struct { + ContextTimeout bool `json:"contextTimeout,omitempty"` + ContextTimeoutMessage string `json:"contextTimeoutMessage,omitempty"` + ResultType string `json:"resultType"` + Result []*Result `json:"result"` +} + +type Result struct { + QueryName string `json:"queryName"` + Series []*Series `json:"series"` + List []*Row `json:"list"` +} + +type LogsLiveTailClient struct { + Name string + Logs chan *generated.SignozLog + Done chan *bool + Error chan error +} + +type Series struct { + Labels map[string]string `json:"labels"` + LabelsArray []map[string]string `json:"labelsArray"` + Points []Point `json:"values"` + GroupingSetsPoint *Point `json:"-"` +} + +func (s *Series) SortPoints() { + sort.Slice(s.Points, func(i, j int) bool { + return s.Points[i].Timestamp < s.Points[j].Timestamp + }) +} + +type Row struct { + Timestamp time.Time `json:"timestamp"` + Data map[string]interface{} `json:"data"` +} + +type Point struct { + Timestamp int64 + Value float64 +} + +// MarshalJSON implements json.Marshaler. +func (p *Point) MarshalJSON() ([]byte, error) { + v := strconv.FormatFloat(p.Value, 'f', -1, 64) + return json.Marshal(map[string]interface{}{"timestamp": p.Timestamp, "value": v}) +} + +// UnmarshalJSON implements json.Unmarshaler. +func (p *Point) UnmarshalJSON(data []byte) error { + var v struct { + Timestamp int64 `json:"timestamp"` + Value string `json:"value"` + } + if err := json.Unmarshal(data, &v); err != nil { + return err + } + p.Timestamp = v.Timestamp + var err error + p.Value, err = strconv.ParseFloat(v.Value, 64) + return err +} + +// SavedView is a saved query for the explore page +// It is a composite query with a source page name and user defined tags +// The source page name is used to identify the page that initiated the query +// The source page could be "traces", "logs", "metrics". +type SavedView struct { + UUID string `json:"uuid,omitempty"` + Name string `json:"name"` + Category string `json:"category"` + CreatedAt time.Time `json:"createdAt"` + CreatedBy string `json:"createdBy"` + UpdatedAt time.Time `json:"updatedAt"` + UpdatedBy string `json:"updatedBy"` + SourcePage string `json:"sourcePage"` + Tags []string `json:"tags"` + CompositeQuery *CompositeQuery `json:"compositeQuery"` + // ExtraData is JSON encoded data used by frontend to store additional data + ExtraData string `json:"extraData"` +} + +func (eq *SavedView) Validate() error { + + if eq.CompositeQuery == nil { + return fmt.Errorf("composite query is required") + } + + if eq.UUID == "" { + eq.UUID = uuid.New().String() + } + return eq.CompositeQuery.Validate() +} + +type LatencyMetricMetadataResponse struct { + Delta bool `json:"delta"` + Le []float64 `json:"le"` +} diff --git a/contrib/opbot/signoz/unauthed.go b/contrib/opbot/signoz/unauthed.go new file mode 100644 index 0000000000..0ebf21d590 --- /dev/null +++ b/contrib/opbot/signoz/unauthed.go @@ -0,0 +1,66 @@ +package signoz + +import ( + "context" + "fmt" + "github.com/dubonzi/otelresty" + "github.com/go-http-utils/headers" + "github.com/go-resty/resty/v2" + "github.com/synapsecns/sanguine/core/metrics" +) + +// UnauthenticatedClient is an unauthenticated client. +type UnauthenticatedClient struct { + client *resty.Client +} + +// NewUnauthenticatedClient creates a new unauthenticated client. +func NewUnauthenticatedClient(handler metrics.Handler, url string) *UnauthenticatedClient { + client := resty.New() + client.SetBaseURL(url) + client.SetHeader(headers.UserAgent, "query-service") + otelresty.TraceClient(client, otelresty.WithTracerProvider(handler.GetTracerProvider())) + + return &UnauthenticatedClient{ + client: client, + } +} + +// Login logs in a user. +func (c *UnauthenticatedClient) Login(ctx context.Context, email, password string) (_ *LoginResponse, err error) { + type RequestBody struct { + Email string `json:"email"` + Password string `json:"password"` + } + + var res LoginResponse + + resp, err := c.client.R(). + SetBody(RequestBody{Email: email, Password: password}). + SetContext(ctx). + SetResult(&res). + Post("/api/v1/login") + if err != nil { + return nil, fmt.Errorf("error logging in: %w", err) + } + + if resp.IsError() { + return nil, fmt.Errorf("login failed: %w", err) + } + + return &res, nil +} + +// LoginResponse is the response from the login endpoint. +type LoginResponse struct { + // UserID is the user ID. + UserID string `json:"userId"` + // AccessJWT is the access JWT. + AccessJwt string `json:"accessJwt"` + // AccessJWTExpiry is the access JWT expiry. + AccessJwtExpiry int `json:"accessJwtExpiry"` + // RefreshJWT is the refresh JWT. + RefreshJwt string `json:"refreshJwt"` + // RefreshJWTExpiry is the refresh JWT expiry. + RefreshJwtExpiry int `json:"refreshJwtExpiry"` +} diff --git a/contrib/opbot/signoz/util.go b/contrib/opbot/signoz/util.go new file mode 100644 index 0000000000..2689f1e901 --- /dev/null +++ b/contrib/opbot/signoz/util.go @@ -0,0 +1,111 @@ +package signoz + +import ( + "fmt" + "strconv" + "time" +) + +// TimePreferenceType is the type of time preference. +type TimePreferenceType string + +const ( + // Last5Min is the last 5 minutes. + Last5Min TimePreferenceType = "LAST_5_MIN" + // Last30Min is the last 30 minutes. + Last30Min TimePreferenceType = "LAST_30_MIN" + // Last1Hr is the last 1 hour. + Last1Hr TimePreferenceType = "LAST_1_HR" + // Last3Hr is the last 3 hour. + Last3Hr TimePreferenceType = "LAST_3_HR" + // Last15Min is the last 15 minutes. + Last15Min TimePreferenceType = "LAST_15_MIN" + // Last6Hr is the last 6 hours. + Last6Hr TimePreferenceType = "LAST_6_HR" + // Last1Day is the last 1 day. + Last1Day TimePreferenceType = "LAST_1_DAY" + // Last3Days is the last 3 days. + Last3Days TimePreferenceType = "LAST_3_DAYS" + // Last1Week is the last 1 week. + Last1Week TimePreferenceType = "LAST_1_WEEK" +) + +// StartEnd is the start and end time. +type StartEnd struct { + Start string + End string +} + +// StartEndInt is the start and end time. +type StartEndInt struct { + Start int64 + End int64 +} + +func getMicroSeconds(t time.Time) string { + return fmt.Sprintf("%d", t.UnixNano()) +} + +func getMinAgo(minutes int) time.Time { + return time.Now().Add(-time.Duration(minutes) * time.Minute) +} + +func calculateStartAndEndTime(minutes int, endString string) StartEnd { + agoDate := getMinAgo(minutes) + agoString := getMicroSeconds(agoDate) + + return StartEnd{ + Start: agoString, + End: endString, + } +} + +// GetStartAndEndTimeInt returns the start and end time as integers. +func GetStartAndEndTimeInt(preference TimePreferenceType) (StartEndInt, error) { + res := GetStartAndEndTime(preference) + start, err := strconv.Atoi(res.Start) + if err != nil { + return StartEndInt{}, fmt.Errorf("error converting start time to int: %w", err) + } + + end, err := strconv.Atoi(res.End) + if err != nil { + return StartEndInt{}, fmt.Errorf("error converting end time to int: %w", err) + } + + return StartEndInt{ + Start: int64(start), + End: int64(end), + }, nil +} + +// GetStartAndEndTime returns the start and end time. +// nolint: cyclop +func GetStartAndEndTime(preference TimePreferenceType) StartEnd { + end := time.Now() + endString := getMicroSeconds(end) + + switch preference { + case Last5Min: + return calculateStartAndEndTime(5, endString) + case Last30Min: + return calculateStartAndEndTime(30, endString) + case Last1Hr: + return calculateStartAndEndTime(60, endString) + case Last15Min: + return calculateStartAndEndTime(15, endString) + case Last3Hr: + return calculateStartAndEndTime(3*60, endString) + case Last6Hr: + return calculateStartAndEndTime(6*60, endString) + case Last1Day: + return calculateStartAndEndTime(24*60, endString) + case Last3Days: + return calculateStartAndEndTime(24*60*3, endString) + case Last1Week: + return calculateStartAndEndTime(24*60*7, endString) + default: + // TODO: log error + return calculateStartAndEndTime(30, endString) + } +} diff --git a/contrib/promexporter/go.mod b/contrib/promexporter/go.mod index cb65c3f183..3e25c3dd0d 100644 --- a/contrib/promexporter/go.mod +++ b/contrib/promexporter/go.mod @@ -87,7 +87,7 @@ require ( github.com/crate-crypto/go-kzg-4844 v0.7.0 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e // indirect - github.com/davecgh/go-spew v1.1.1 // indirect + 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/emirpasic/gods v1.18.1 // indirect @@ -95,7 +95,7 @@ require ( github.com/fatih/structtag v1.2.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/friendsofgo/graphiql v0.2.2 // indirect - github.com/fsnotify/fsnotify v1.6.0 // indirect + github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/gabriel-vasile/mimetype v1.4.3 // indirect github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/gballet/go-verkle v0.1.1-0.20231031103413-a67434b50f46 // indirect @@ -153,7 +153,7 @@ require ( github.com/libp2p/go-libp2p v0.33.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/mattn/go-runewidth v0.0.13 // indirect + github.com/mattn/go-runewidth v0.0.15 // indirect github.com/mattn/go-tty v0.0.3 // indirect github.com/miguelmota/go-ethereum-hdwallet v0.1.1 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect @@ -169,15 +169,15 @@ require ( github.com/pjbgf/sha1cd v0.3.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pkg/term v1.2.0-beta.2 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/client_golang v1.19.1 // indirect github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.53.0 // indirect + github.com/prometheus/common v0.54.0 // indirect github.com/prometheus/procfs v0.15.0 // indirect github.com/puzpuzpuz/xsync/v2 v2.5.1 // indirect github.com/ravilushqa/otelgqlgen v0.13.1 // indirect github.com/richardwilkes/toolbox v1.74.0 // indirect - github.com/rivo/uniseg v0.2.0 // indirect + github.com/rivo/uniseg v0.4.7 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/rung/go-safecast v1.0.1 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect @@ -231,16 +231,16 @@ require ( golang.org/x/text v0.16.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.22.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 // indirect google.golang.org/grpc v1.64.0 // indirect google.golang.org/protobuf v1.34.1 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect gorm.io/driver/clickhouse v0.6.1 // indirect gorm.io/gorm v1.25.10 // indirect - k8s.io/apimachinery v0.26.2 // indirect - k8s.io/klog/v2 v2.90.1 // indirect - k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 // indirect + k8s.io/apimachinery v0.29.3 // indirect + k8s.io/klog/v2 v2.120.1 // indirect + k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect rsc.io/tmplfunc v0.0.3 // indirect ) diff --git a/contrib/promexporter/go.sum b/contrib/promexporter/go.sum index e115b797fa..56bfcb7758 100644 --- a/contrib/promexporter/go.sum +++ b/contrib/promexporter/go.sum @@ -21,7 +21,12 @@ cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHOb cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= -cloud.google.com/go v0.112.1 h1:uJSeirPke5UNZHIb4SxfZklVSiWWVqW4oXlETwZziwM= +cloud.google.com/go v0.114.0 h1:OIPFAdfrFDFO2ve2U7r/H5SwSbBzEdrBdE7xkgwc+kY= +cloud.google.com/go v0.114.0/go.mod h1:ZV9La5YYxctro1HTPug5lXH/GefROyW8PPD4T8n9J8E= +cloud.google.com/go/auth v0.5.1 h1:0QNO7VThG54LUzKiQxv8C6x1YX7lUrzlAa1nVLF8CIw= +cloud.google.com/go/auth v0.5.1/go.mod h1:vbZT8GjzDf3AVqCcQmqeeM32U9HBFc32vVVAbwDsa6s= +cloud.google.com/go/auth/oauth2adapt v0.2.2 h1:+TTV8aXpjeChS9M+aTtN/TjdQnzJvmzKFt//oWu7HX4= +cloud.google.com/go/auth/oauth2adapt v0.2.2/go.mod h1:wcYjgpZI9+Yu7LyYBg4pqSiaRkfEK3GQcpb7C/uyF1Q= 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= @@ -34,10 +39,12 @@ cloud.google.com/go/compute/metadata v0.3.0 h1:Tz+eQXMEqDIKRsmY3cHTL6FVaynIjX2Qx cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/iam v1.1.6 h1:bEa06k05IO4f4uJonbB5iAgKTPpABy1ayxaIZV/GHVc= -cloud.google.com/go/iam v1.1.6/go.mod h1:O0zxdPeGBoFdWW3HWmBxJsk0pfvNM/p/qa82rWOGTwI= -cloud.google.com/go/kms v1.15.7 h1:7caV9K3yIxvlQPAcaFffhlT7d1qpxjB1wHBtjWa13SM= -cloud.google.com/go/kms v1.15.7/go.mod h1:ub54lbsa6tDkUwnu4W7Yt1aAIFLnspgh0kPGToDukeI= +cloud.google.com/go/iam v1.1.8 h1:r7umDwhj+BQyz0ScZMp4QrGXjSTI3ZINnpgU2nlB/K0= +cloud.google.com/go/iam v1.1.8/go.mod h1:GvE6lyMmfxXauzNq8NbgJbeVQNspG+tcdL/W8QO1+zE= +cloud.google.com/go/kms v1.17.1 h1:5k0wXqkxL+YcXd4viQzTqCgzzVKKxzgrK+rCZJytEQs= +cloud.google.com/go/kms v1.17.1/go.mod h1:DCMnCF/apA6fZk5Cj4XsD979OyHAqFasPuA5Sd0kGlQ= +cloud.google.com/go/longrunning v0.5.7 h1:WLbHekDbjK1fVFD3ibpFFVoyizlLRl73I7YKuAKilhU= +cloud.google.com/go/longrunning v0.5.7/go.mod h1:8GClkudohy1Fxm3owmBGid8W0pSgodEMwEAztp38Xng= 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= @@ -129,8 +136,8 @@ github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0/go.mod h1:t2tdK github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= 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/aws/aws-sdk-go v1.43.16 h1:Y7wBby44f+tINqJjw5fLH3vA+gFq4uMITIKqditwM14= -github.com/aws/aws-sdk-go v1.43.16/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= +github.com/aws/aws-sdk-go v1.53.16 h1:8oZjKQO/ml1WLUZw5hvF7pvYjPf8o9f57Wldoy/q9Qc= +github.com/aws/aws-sdk-go v1.53.16/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= github.com/aws/aws-sdk-go-v2 v1.2.0/go.mod h1:zEQs02YRBw1DjK0PoJv3ygDYOFTre1ejlJWl8FwAuQo= github.com/aws/aws-sdk-go-v2 v1.21.2 h1:+LXZ0sgo8quN9UOKXXzAWRT3FWd4NxeXWOZom9pE7GA= github.com/aws/aws-sdk-go-v2 v1.21.2/go.mod h1:ErQhvNuEMhJjweavOYhxVkn2RUx7kQXVATHrjKtxIpM= @@ -288,8 +295,9 @@ github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e/go.mod h1:IJg github.com/dave/jennifer v1.2.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg= github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea/go.mod h1:93vsz/8Wt4joVM7c2AVqh+YRMiUSc14yDtF28KmMOgQ= github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80NsVHagjM= github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= @@ -313,8 +321,8 @@ github.com/dlclark/regexp2 v1.2.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55k github.com/docker/cli v26.0.1+incompatible h1:eZDuplk2jYqgUkNLDYwTBxqmY9cM3yHnmN6OIUEjL3U= github.com/docker/cli v26.0.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/docker v1.4.2-0.20180625184442-8e610b2b55bf/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v26.0.1+incompatible h1:t39Hm6lpXuXtgkF0dm1t9a5HkbUfdGy6XbWexmGr+hA= -github.com/docker/docker v26.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v26.1.3+incompatible h1:lLCzRbrVZrljpVNobJu1J2FHk8V0s4BawoZippkc+xo= +github.com/docker/docker v26.1.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= @@ -359,8 +367,8 @@ github.com/friendsofgo/graphiql v0.2.2 h1:ccnuxpjgIkB+Lr9YB2ZouiZm7wvciSfqwpa9ug github.com/friendsofgo/graphiql v0.2.2/go.mod h1:8Y2kZ36AoTGWs78+VRpvATyt3LJBx0SZXmay80ZTRWo= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= -github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= +github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= @@ -413,7 +421,6 @@ github.com/go-http-utils/headers v0.0.0-20181008091004-fed159eddc2a/go.mod h1:I7 github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= @@ -437,8 +444,8 @@ 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.20.0 h1:K9ISHbSaI0lyB2eWMPJo+kOS/FBExVwjEviJTixqxL8= github.com/go-playground/validator/v10 v10.20.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= -github.com/go-resty/resty/v2 v2.11.0 h1:i7jMfNOJYMp69lq7qozJP+bjgzfAzeOhuGlyDrqxT/8= -github.com/go-resty/resty/v2 v2.11.0/go.mod h1:iiP/OpA0CkcL3IGt1O0+/SIItFUbkkyw5BGXiVdTu+A= +github.com/go-resty/resty/v2 v2.13.1 h1:x+LHXBI2nMB1vqndymf26quycC4aggYJ7DECYbiz03g= +github.com/go-resty/resty/v2 v2.13.1/go.mod h1:GznXlLxkq6Nh4sU59rPmUw3VtgpO3aS96ORAI6Q7d+0= github.com/go-sourcemap/sourcemap v2.1.2+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc= @@ -551,8 +558,8 @@ github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfF github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gax-go/v2 v2.12.2 h1:mhN09QQW1jEWeMF74zGR81R30z4VJzjZsfkUhuHF+DA= -github.com/googleapis/gax-go/v2 v2.12.2/go.mod h1:61M8vcyyXR2kqKFxKrfA22jaA8JGF7Dc8App1U3H6jc= +github.com/googleapis/gax-go/v2 v2.12.4 h1:9gWcmF85Wvq4ryPFvGFaOgPIs1AQX0d0bcbGw4Z96qg= +github.com/googleapis/gax-go/v2 v2.12.4/go.mod h1:KYEYLorsnIGDi/rPC8b5TdlB9kbKoFubselGIoBMCwI= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= @@ -756,8 +763,8 @@ github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.6/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU= -github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= +github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/go-sqlite3 v2.0.3+incompatible h1:gXHsfypPkaMZrKbD5209QV9jbUTJKjyR5WD3HYQSd+U= github.com/mattn/go-sqlite3 v2.0.3+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= @@ -886,8 +893,9 @@ github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qR github.com/pkg/term v0.0.0-20180730021639-bffc007b7fd5/go.mod h1:eCbImbZ95eXtAUIbLAuAVnBnwf83mjf6QIVH8SHYwqQ= github.com/pkg/term v1.2.0-beta.2 h1:L3y/h2jkuBVFdWiJvNfYfKmzcCnILw7mJWm2JQuMppw= github.com/pkg/term v1.2.0-beta.2/go.mod h1:E25nymQcrSllhX42Ok8MRm1+hyBdHY0dCeiKZ9jpNGw= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +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/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= @@ -900,8 +908,8 @@ github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQy github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= -github.com/prometheus/common v0.53.0 h1:U2pL9w9nmJwJDa4qqLQ3ZaePJ6ZTwt7cMD3AG3+aLCE= -github.com/prometheus/common v0.53.0/go.mod h1:BrxBKv3FWBIGXw89Mg1AeBq7FSyRzXWI3l3e7W3RN5U= +github.com/prometheus/common v0.54.0 h1:ZlZy0BgJhTwVZUn7dLOkwCZHUkrAqd3WYtcFCWnM1D8= +github.com/prometheus/common v0.54.0/go.mod h1:/TQgMJP5CuVYveyT7n/0Ix8yLNNXy9yRSkhnLTHPDIQ= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.15.0 h1:A82kmvXJq2jTu5YUhSGNlYoxh85zLnKgPz4bMZgI5Ek= @@ -920,8 +928,9 @@ github.com/regen-network/protobuf v1.3.3-alpha.regen.1/go.mod h1:2DjTFR1HhMQhiWC github.com/retailnext/hllpp v1.0.1-0.20180308014038-101a6d2f8b52/go.mod h1:RDpi1RftBQPUCDRw6SmxeaREsAaRKnOclghuzp/WRzc= github.com/richardwilkes/toolbox v1.74.0 h1:TNvXxph1jJk6IQmVoZdAY9peRlL6Tv//7OpyJkjMiPI= github.com/richardwilkes/toolbox v1.74.0/go.mod h1:OFTDv8rUUsF+Hb98k9l65zu7fuKt3EEhWywv6zyJ750= -github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= +github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rjeczalik/notify v0.9.1/go.mod h1:rKwnCoCGeuQnwBtTSPL9Dad03Vh2n40ePRrjvIXnJho= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= @@ -1292,8 +1301,8 @@ golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.20.0 h1:4mQdhULixXKP1rwYBW0vAijoXnkTG0BLCDRzfe1idMo= -golang.org/x/oauth2 v0.20.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= +golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1380,7 +1389,6 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc 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-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220908164124-27713097b956/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.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1511,8 +1519,8 @@ google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz513 google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= -google.golang.org/api v0.169.0 h1:QwWPy71FgMWqJN/l6jVlFHUa29a7dcUy02I8o799nPY= -google.golang.org/api v0.169.0/go.mod h1:gpNOiMA2tZ4mf5R9Iwf4rK/Dcz0fbdIgWYWVoxmsyLg= +google.golang.org/api v0.183.0 h1:PNMeRDwo1pJdgNcFQ9GstuLe/noWKIc89pRWRLMvLwE= +google.golang.org/api v0.183.0/go.mod h1:q43adC5/pHoSZTx5h2mSmdF7NcyfW9JuDyIOJAgS9ZQ= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1561,12 +1569,12 @@ google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= -google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de h1:F6qOa9AZTYJXOUEr4jDysRDLrm4PHePlge4v4TGAlxY= -google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:VUhTRKeHn9wwcdrk73nvdC9gF178Tzhmt/qyaFcPLSo= -google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5 h1:P8OJ/WCl/Xo4E4zoe4/bifHpSmmKwARqyqE4nW6J2GQ= -google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5/go.mod h1:RGnPtTG7r4i8sPlNyDeikXF99hMM+hN6QMm4ooG9g2g= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291 h1:AgADTJarZTBqgjiUzRgfaBchgYB3/WFTC80GPwsMcRI= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= +google.golang.org/genproto v0.0.0-20240528184218-531527333157 h1:u7WMYrIrVvs0TF5yaKwKNbcJyySYf+HAIFXxWltJOXE= +google.golang.org/genproto v0.0.0-20240528184218-531527333157/go.mod h1:ubQlAQnzejB8uZzszhrTCU2Fyp6Vi7ZE5nn0c3W8+qQ= +google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 h1:7whR9kGa5LUwFtpLm2ArCEejtnxlGeLbAyjFY8sGNFw= +google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157/go.mod h1:99sLkeliLXfdj2J75X3Ho+rrVCaJze0uwN7zDDkjPVU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 h1:Zy9XzmMEflZ/MAaA7vNcoebnRAld7FsPW1EeBB7V0m8= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= 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= @@ -1657,12 +1665,12 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt 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/apimachinery v0.26.2 h1:da1u3D5wfR5u2RpLhE/ZtZS2P7QvDgLZTi9wrNZl/tQ= -k8s.io/apimachinery v0.26.2/go.mod h1:ats7nN1LExKHvJ9TmwootT00Yz05MuYqPXEXaVeOy5I= -k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw= -k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 h1:kmDqav+P+/5e1i9tFfHq1qcF3sOrDp+YEkVDAHu7Jwk= -k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/apimachinery v0.29.3 h1:2tbx+5L7RNvqJjn7RIuIKu9XTsIZ9Z5wX2G22XAa5EU= +k8s.io/apimachinery v0.29.3/go.mod h1:hx/S4V2PNW4OMg3WizRrHutyB5la0iCUbZym+W0EQIU= +k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= +k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= lukechampine.com/blake3 v1.2.1 h1:YuqqRuaqsGV71BV/nm9xlI0MKUv4QC54jQnBChWbGnI= lukechampine.com/blake3 v1.2.1/go.mod h1:0OFRp7fBtAylGVCO40o87sbupkyIGgbpv1+M1k1LM6k= nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= diff --git a/contrib/screener-api/cmd/cmd.go b/contrib/screener-api/cmd/cmd.go index 105285f7b7..84f7e4bba6 100644 --- a/contrib/screener-api/cmd/cmd.go +++ b/contrib/screener-api/cmd/cmd.go @@ -14,7 +14,7 @@ func Start(args []string, buildInfo config.BuildInfo) { app := cli.NewApp() app.Name = buildInfo.Name() - app.Description = buildInfo.VersionString() + "Senior Care Data Utils" + app.Description = buildInfo.VersionString() + "Screener API is a tool to screen and split data." app.Usage = fmt.Sprintf("%s --help", buildInfo.Name()) app.EnableBashCompletion = true app.Before = func(c *cli.Context) error { diff --git a/contrib/screener-api/go.mod b/contrib/screener-api/go.mod index 6430469427..4667f36476 100644 --- a/contrib/screener-api/go.mod +++ b/contrib/screener-api/go.mod @@ -14,7 +14,7 @@ require ( github.com/brianvoe/gofakeit/v6 v6.27.0 github.com/dubonzi/otelresty v1.2.0 github.com/gin-gonic/gin v1.10.0 - github.com/go-resty/resty/v2 v2.11.0 + github.com/go-resty/resty/v2 v2.13.1 github.com/gocarina/gocsv v0.0.0-20240520201108-78e41c74b4b1 github.com/google/uuid v1.6.0 github.com/ipfs/go-log v1.0.5 @@ -55,10 +55,10 @@ require ( github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e // indirect - github.com/davecgh/go-spew v1.1.1 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/deckarep/golang-set/v2 v2.6.0 // indirect github.com/docker/cli v26.0.1+incompatible // indirect - github.com/docker/docker v26.0.1+incompatible // indirect + github.com/docker/docker v26.1.3+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/emirpasic/gods v1.18.1 // indirect @@ -77,10 +77,10 @@ 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/jsonpointer v0.19.5 // indirect - github.com/go-openapi/jsonreference v0.20.0 // indirect - github.com/go-openapi/spec v0.20.4 // indirect - github.com/go-openapi/swag v0.22.3 // indirect + github.com/go-openapi/jsonpointer v0.20.2 // indirect + github.com/go-openapi/jsonreference v0.20.4 // indirect + github.com/go-openapi/spec v0.20.14 // indirect + github.com/go-openapi/swag v0.22.9 // 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.20.0 // indirect @@ -111,7 +111,7 @@ require ( github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/mattn/go-runewidth v0.0.13 // indirect + github.com/mattn/go-runewidth v0.0.15 // indirect github.com/mattn/go-sqlite3 v2.0.3+incompatible // indirect github.com/mattn/go-tty v0.0.3 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect @@ -129,12 +129,12 @@ require ( github.com/pjbgf/sha1cd v0.3.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pkg/term v1.2.0-beta.2 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/client_golang v1.19.1 // indirect github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.53.0 // indirect + github.com/prometheus/common v0.54.0 // indirect github.com/prometheus/procfs v0.15.0 // indirect - github.com/rivo/uniseg v0.2.0 // indirect + github.com/rivo/uniseg v0.4.7 // indirect github.com/rung/go-safecast v1.0.1 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect @@ -179,15 +179,14 @@ require ( golang.org/x/sync v0.7.0 // indirect golang.org/x/sys v0.21.0 // indirect golang.org/x/text v0.16.0 // indirect - golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.22.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 // indirect google.golang.org/grpc v1.64.0 // indirect google.golang.org/protobuf v1.34.1 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apimachinery v0.26.2 // indirect - k8s.io/klog/v2 v2.90.1 // indirect - k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 // indirect + k8s.io/apimachinery v0.29.3 // indirect + k8s.io/klog/v2 v2.120.1 // indirect + k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect ) diff --git a/contrib/screener-api/go.sum b/contrib/screener-api/go.sum index 1581213cc9..63267dc945 100644 --- a/contrib/screener-api/go.sum +++ b/contrib/screener-api/go.sum @@ -55,8 +55,6 @@ github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEV github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk= github.com/ProtonMail/go-crypto v1.0.0 h1:LRuvITjQWX+WIfr930YHG2HNfjR1uOfyf5vE0kC2U78= github.com/ProtonMail/go-crypto v1.0.0/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= -github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= @@ -112,24 +110,25 @@ github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46t github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA= github.com/crate-crypto/go-kzg-4844 v0.7.0/go.mod h1:1kMhvPgI0Ky3yIa+9lFySEBUBXkYxeOi8ZF1sYioxhc= 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/creack/pty v1.1.21 h1:1/QdRyBaHHJP61QkWMXlOIBfsgdDeeKfK8SYVUWJKf0= +github.com/creack/pty v1.1.21/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e h1:5jVSh2l/ho6ajWhSPNN84eHEdq3dp0T7+f6r3Tc6hsk= github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e/go.mod h1:IJgIiGUARc4aOr4bOQ85klmjsShkEEfiRc6q/yBSfo8= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80NsVHagjM= github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= 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/docker/cli v26.0.1+incompatible h1:eZDuplk2jYqgUkNLDYwTBxqmY9cM3yHnmN6OIUEjL3U= github.com/docker/cli v26.0.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= -github.com/docker/docker v26.0.1+incompatible h1:t39Hm6lpXuXtgkF0dm1t9a5HkbUfdGy6XbWexmGr+hA= -github.com/docker/docker v26.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v26.1.3+incompatible h1:lLCzRbrVZrljpVNobJu1J2FHk8V0s4BawoZippkc+xo= +github.com/docker/docker v26.1.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= @@ -187,7 +186,6 @@ github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2 github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-http-utils/headers v0.0.0-20181008091004-fed159eddc2a h1:v6zMvHuY9yue4+QkG/HQ/W67wvtQmWJ4SDo9aK/GIno= github.com/go-http-utils/headers v0.0.0-20181008091004-fed159eddc2a/go.mod h1:I79BieaU4fxrw4LMXby6q5OS9XnoR9UIKLOzDFjUmuw= -github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= @@ -197,18 +195,14 @@ github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre 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/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY= -github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonreference v0.19.6/go.mod h1:diGHMEHg2IqXZGKxqyvWdfWU/aim5Dprw5bqpKkTvns= -github.com/go-openapi/jsonreference v0.20.0 h1:MYlu0sBgChmCfJxxUKZ8g1cPWFOB37YSZqewK7OKeyA= -github.com/go-openapi/jsonreference v0.20.0/go.mod h1:Ag74Ico3lPc+zR+qjn4XBUmXymS4zJbYVCZmcgkasdo= -github.com/go-openapi/spec v0.20.4 h1:O8hJrt0UMnhHcluhIdUgCLRWyM2x7QkBXRvOs7m+O1M= -github.com/go-openapi/spec v0.20.4/go.mod h1:faYFR1CvsJZ0mNsmsphTMSoRrNV3TEDoAM7FOEWeq8I= -github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.19.15/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= -github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g= -github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= +github.com/go-openapi/jsonpointer v0.20.2 h1:mQc3nmndL8ZBzStEo3JYF8wzmeWffDH4VbXz58sAx6Q= +github.com/go-openapi/jsonpointer v0.20.2/go.mod h1:bHen+N0u1KEO3YlmqOjTT9Adn1RfD91Ar825/PuiRVs= +github.com/go-openapi/jsonreference v0.20.4 h1:bKlDxQxQJgwpUSgOENiMPzCTBVuc7vTdXSSgNeAhojU= +github.com/go-openapi/jsonreference v0.20.4/go.mod h1:5pZJyJP2MnYCpoeoMAql78cCHauHj0V9Lhc506VOpw4= +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/swag v0.22.9 h1:XX2DssF+mQKM2DHsbgZK74y/zj4mo9I99+89xUmuZCE= +github.com/go-openapi/swag v0.22.9/go.mod h1:3/OXnFfnMAwBD099SwYRk7GD3xOrr1iL7d/XNLXVVwE= 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= @@ -221,8 +215,8 @@ 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.20.0 h1:K9ISHbSaI0lyB2eWMPJo+kOS/FBExVwjEviJTixqxL8= github.com/go-playground/validator/v10 v10.20.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= -github.com/go-resty/resty/v2 v2.11.0 h1:i7jMfNOJYMp69lq7qozJP+bjgzfAzeOhuGlyDrqxT/8= -github.com/go-resty/resty/v2 v2.11.0/go.mod h1:iiP/OpA0CkcL3IGt1O0+/SIItFUbkkyw5BGXiVdTu+A= +github.com/go-resty/resty/v2 v2.13.1 h1:x+LHXBI2nMB1vqndymf26quycC4aggYJ7DECYbiz03g= +github.com/go-resty/resty/v2 v2.13.1/go.mod h1:GznXlLxkq6Nh4sU59rPmUw3VtgpO3aS96ORAI6Q7d+0= github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc= github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= github.com/gocarina/gocsv v0.0.0-20240520201108-78e41c74b4b1 h1:FWNFq4fM1wPfcK40yHE5UO3RUdSNPaBC+j3PokzA6OQ= @@ -361,9 +355,6 @@ github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= github.com/lib/pq v1.10.6 h1:jbk+ZieJ0D7EVGJYpL9QTz7/YW6UHbmdnZWYyK5cdBs= github.com/lib/pq v1.10.6/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= @@ -379,8 +370,8 @@ github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWE github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.6/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU= -github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= +github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-sqlite3 v2.0.3+incompatible h1:gXHsfypPkaMZrKbD5209QV9jbUTJKjyR5WD3HYQSd+U= github.com/mattn/go-sqlite3 v2.0.3+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/go-tty v0.0.3 h1:5OfyWorkyO7xP52Mq7tB36ajHDG5OHrmBGIS/DtakQI= @@ -402,7 +393,6 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ 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/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/onsi/gomega v1.30.0 h1:hvMK7xYz4D3HapigLTeGdId/NcfQx1VHMJc60ew99+8= github.com/onsi/gomega v1.30.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= @@ -431,21 +421,23 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= github.com/pkg/term v1.2.0-beta.2 h1:L3y/h2jkuBVFdWiJvNfYfKmzcCnILw7mJWm2JQuMppw= github.com/pkg/term v1.2.0-beta.2/go.mod h1:E25nymQcrSllhX42Ok8MRm1+hyBdHY0dCeiKZ9jpNGw= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +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/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.53.0 h1:U2pL9w9nmJwJDa4qqLQ3ZaePJ6ZTwt7cMD3AG3+aLCE= -github.com/prometheus/common v0.53.0/go.mod h1:BrxBKv3FWBIGXw89Mg1AeBq7FSyRzXWI3l3e7W3RN5U= +github.com/prometheus/common v0.54.0 h1:ZlZy0BgJhTwVZUn7dLOkwCZHUkrAqd3WYtcFCWnM1D8= +github.com/prometheus/common v0.54.0/go.mod h1:/TQgMJP5CuVYveyT7n/0Ix8yLNNXy9yRSkhnLTHPDIQ= github.com/prometheus/procfs v0.15.0 h1:A82kmvXJq2jTu5YUhSGNlYoxh85zLnKgPz4bMZgI5Ek= github.com/prometheus/procfs v0.15.0/go.mod h1:Y0RJ/Y5g5wJpkTisOtqwDSo4HwhGmLB4VQSw2sQJLHk= github.com/regen-network/protobuf v1.3.3-alpha.regen.1 h1:OHEc+q5iIAXpqiqFKeLpu5NwTIkVXUs48vFMwzqpqY4= github.com/regen-network/protobuf v1.3.3-alpha.regen.1/go.mod h1:2DjTFR1HhMQhiWC5sZ4OhQ3+NtdbZ6oBDKQwq5Ou+FI= -github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= +github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= @@ -612,7 +604,8 @@ golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -687,7 +680,6 @@ golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= 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= @@ -695,7 +687,8 @@ golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -766,7 +759,6 @@ golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -788,8 +780,9 @@ 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= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -798,7 +791,8 @@ 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.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= -golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -813,13 +807,13 @@ 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.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= 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= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -945,10 +939,10 @@ google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5 h1:P8OJ/WCl/Xo4E4zoe4/bifHpSmmKwARqyqE4nW6J2GQ= -google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5/go.mod h1:RGnPtTG7r4i8sPlNyDeikXF99hMM+hN6QMm4ooG9g2g= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291 h1:AgADTJarZTBqgjiUzRgfaBchgYB3/WFTC80GPwsMcRI= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= +google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 h1:7whR9kGa5LUwFtpLm2ArCEejtnxlGeLbAyjFY8sGNFw= +google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157/go.mod h1:99sLkeliLXfdj2J75X3Ho+rrVCaJze0uwN7zDDkjPVU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 h1:Zy9XzmMEflZ/MAaA7vNcoebnRAld7FsPW1EeBB7V0m8= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= 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= @@ -985,7 +979,6 @@ google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHh gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= 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= @@ -996,7 +989,6 @@ gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= @@ -1016,12 +1008,12 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh 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= -k8s.io/apimachinery v0.26.2 h1:da1u3D5wfR5u2RpLhE/ZtZS2P7QvDgLZTi9wrNZl/tQ= -k8s.io/apimachinery v0.26.2/go.mod h1:ats7nN1LExKHvJ9TmwootT00Yz05MuYqPXEXaVeOy5I= -k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw= -k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 h1:kmDqav+P+/5e1i9tFfHq1qcF3sOrDp+YEkVDAHu7Jwk= -k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/apimachinery v0.29.3 h1:2tbx+5L7RNvqJjn7RIuIKu9XTsIZ9Z5wX2G22XAa5EU= +k8s.io/apimachinery v0.29.3/go.mod h1:hx/S4V2PNW4OMg3WizRrHutyB5la0iCUbZym+W0EQIU= +k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= +k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= diff --git a/core/go.mod b/core/go.mod index 8ae86987d8..a4ba9767f3 100644 --- a/core/go.mod +++ b/core/go.mod @@ -60,7 +60,7 @@ require ( golang.org/x/sync v0.7.0 gorm.io/driver/sqlite v1.5.6 gorm.io/gorm v1.25.10 - k8s.io/apimachinery v0.26.2 + k8s.io/apimachinery v0.29.3 ) require ( @@ -81,12 +81,13 @@ require ( github.com/cloudwego/iasm v0.2.0 // indirect github.com/containerd/continuity v0.4.2 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect + github.com/creack/pty v1.1.21 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect + 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/docker/cli v26.0.1+incompatible // indirect - github.com/docker/docker v26.0.1+incompatible // indirect + github.com/docker/docker v26.1.3+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/emirpasic/gods v1.18.1 // indirect @@ -122,7 +123,7 @@ require ( github.com/lib/pq v1.10.6 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/mattn/go-runewidth v0.0.13 // indirect + github.com/mattn/go-runewidth v0.0.15 // indirect github.com/mattn/go-sqlite3 v2.0.3+incompatible // indirect github.com/mattn/go-tty v0.0.3 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect @@ -138,11 +139,11 @@ require ( github.com/pelletier/go-toml/v2 v2.2.2 // indirect github.com/pjbgf/sha1cd v0.3.0 // indirect github.com/pkg/term v1.2.0-beta.2 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.53.0 // indirect + github.com/prometheus/common v0.54.0 // indirect github.com/prometheus/procfs v0.15.0 // indirect - github.com/rivo/uniseg v0.2.0 // indirect + github.com/rivo/uniseg v0.4.7 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect github.com/shirou/gopsutil v3.21.11+incompatible // indirect @@ -172,14 +173,14 @@ require ( golang.org/x/sys v0.21.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/tools v0.22.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 // indirect google.golang.org/grpc v1.64.0 // indirect google.golang.org/protobuf v1.34.1 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect gotest.tools/v3 v3.5.0 // indirect - k8s.io/klog/v2 v2.90.1 // indirect - k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 // indirect + k8s.io/klog/v2 v2.120.1 // indirect + k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect ) diff --git a/core/go.sum b/core/go.sum index 31e7d1d23c..466cb3283e 100644 --- a/core/go.sum +++ b/core/go.sum @@ -118,16 +118,17 @@ github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46t github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA= github.com/crate-crypto/go-kzg-4844 v0.7.0/go.mod h1:1kMhvPgI0Ky3yIa+9lFySEBUBXkYxeOi8ZF1sYioxhc= 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/creack/pty v1.1.21 h1:1/QdRyBaHHJP61QkWMXlOIBfsgdDeeKfK8SYVUWJKf0= +github.com/creack/pty v1.1.21/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e h1:5jVSh2l/ho6ajWhSPNN84eHEdq3dp0T7+f6r3Tc6hsk= github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e/go.mod h1:IJgIiGUARc4aOr4bOQ85klmjsShkEEfiRc6q/yBSfo8= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80NsVHagjM= github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= @@ -136,8 +137,8 @@ github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etly github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= github.com/docker/cli v26.0.1+incompatible h1:eZDuplk2jYqgUkNLDYwTBxqmY9cM3yHnmN6OIUEjL3U= github.com/docker/cli v26.0.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= -github.com/docker/docker v26.0.1+incompatible h1:t39Hm6lpXuXtgkF0dm1t9a5HkbUfdGy6XbWexmGr+hA= -github.com/docker/docker v26.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v26.1.3+incompatible h1:lLCzRbrVZrljpVNobJu1J2FHk8V0s4BawoZippkc+xo= +github.com/docker/docker v26.1.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= @@ -191,7 +192,6 @@ github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2 github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-http-utils/headers v0.0.0-20181008091004-fed159eddc2a h1:v6zMvHuY9yue4+QkG/HQ/W67wvtQmWJ4SDo9aK/GIno= github.com/go-http-utils/headers v0.0.0-20181008091004-fed159eddc2a/go.mod h1:I79BieaU4fxrw4LMXby6q5OS9XnoR9UIKLOzDFjUmuw= -github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= @@ -360,8 +360,8 @@ github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWE github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.6/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU= -github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= +github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-sqlite3 v2.0.3+incompatible h1:gXHsfypPkaMZrKbD5209QV9jbUTJKjyR5WD3HYQSd+U= github.com/mattn/go-sqlite3 v2.0.3+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/go-tty v0.0.3 h1:5OfyWorkyO7xP52Mq7tB36ajHDG5OHrmBGIS/DtakQI= @@ -411,21 +411,23 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= github.com/pkg/term v1.2.0-beta.2 h1:L3y/h2jkuBVFdWiJvNfYfKmzcCnILw7mJWm2JQuMppw= github.com/pkg/term v1.2.0-beta.2/go.mod h1:E25nymQcrSllhX42Ok8MRm1+hyBdHY0dCeiKZ9jpNGw= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +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/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.53.0 h1:U2pL9w9nmJwJDa4qqLQ3ZaePJ6ZTwt7cMD3AG3+aLCE= -github.com/prometheus/common v0.53.0/go.mod h1:BrxBKv3FWBIGXw89Mg1AeBq7FSyRzXWI3l3e7W3RN5U= +github.com/prometheus/common v0.54.0 h1:ZlZy0BgJhTwVZUn7dLOkwCZHUkrAqd3WYtcFCWnM1D8= +github.com/prometheus/common v0.54.0/go.mod h1:/TQgMJP5CuVYveyT7n/0Ix8yLNNXy9yRSkhnLTHPDIQ= github.com/prometheus/procfs v0.15.0 h1:A82kmvXJq2jTu5YUhSGNlYoxh85zLnKgPz4bMZgI5Ek= github.com/prometheus/procfs v0.15.0/go.mod h1:Y0RJ/Y5g5wJpkTisOtqwDSo4HwhGmLB4VQSw2sQJLHk= github.com/regen-network/protobuf v1.3.3-alpha.regen.1 h1:OHEc+q5iIAXpqiqFKeLpu5NwTIkVXUs48vFMwzqpqY4= github.com/regen-network/protobuf v1.3.3-alpha.regen.1/go.mod h1:2DjTFR1HhMQhiWC5sZ4OhQ3+NtdbZ6oBDKQwq5Ou+FI= -github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= +github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= @@ -907,10 +909,10 @@ google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5 h1:P8OJ/WCl/Xo4E4zoe4/bifHpSmmKwARqyqE4nW6J2GQ= -google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5/go.mod h1:RGnPtTG7r4i8sPlNyDeikXF99hMM+hN6QMm4ooG9g2g= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291 h1:AgADTJarZTBqgjiUzRgfaBchgYB3/WFTC80GPwsMcRI= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= +google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 h1:7whR9kGa5LUwFtpLm2ArCEejtnxlGeLbAyjFY8sGNFw= +google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157/go.mod h1:99sLkeliLXfdj2J75X3Ho+rrVCaJze0uwN7zDDkjPVU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 h1:Zy9XzmMEflZ/MAaA7vNcoebnRAld7FsPW1EeBB7V0m8= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= 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= @@ -973,12 +975,12 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh 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= -k8s.io/apimachinery v0.26.2 h1:da1u3D5wfR5u2RpLhE/ZtZS2P7QvDgLZTi9wrNZl/tQ= -k8s.io/apimachinery v0.26.2/go.mod h1:ats7nN1LExKHvJ9TmwootT00Yz05MuYqPXEXaVeOy5I= -k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw= -k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 h1:kmDqav+P+/5e1i9tFfHq1qcF3sOrDp+YEkVDAHu7Jwk= -k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/apimachinery v0.29.3 h1:2tbx+5L7RNvqJjn7RIuIKu9XTsIZ9Z5wX2G22XAa5EU= +k8s.io/apimachinery v0.29.3/go.mod h1:hx/S4V2PNW4OMg3WizRrHutyB5la0iCUbZym+W0EQIU= +k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= +k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= diff --git a/docker/opbot.Dockerfile b/docker/opbot.Dockerfile new file mode 100644 index 0000000000..824403f038 --- /dev/null +++ b/docker/opbot.Dockerfile @@ -0,0 +1,15 @@ +FROM gcr.io/distroless/static:latest + +LABEL org.label-schema.description="Opbot Dockerfile" +LABEL org.label-schema.name="ghcr.io/synapsecns/sanguine/contrib/opbot" +LABEL org.label-schema.schema-version="1.0.0" +LABEL org.label-schema.vcs-url="https://github.com/synapsecns/sanguine" +LABEL org.opencontainers.image.source="https://github.com/synapsecns/sanguine" +LABEL org.opencontainers.image.description="Op Bot Docker image" + +USER nonroot:nonroot + +WORKDIR /app +COPY --chown=nonroot:nonroot opbot /app/opbot + +ENTRYPOINT ["/app/opbot"] diff --git a/ethergo/go.mod b/ethergo/go.mod index 388b74f025..7ad71cec5f 100644 --- a/ethergo/go.mod +++ b/ethergo/go.mod @@ -5,7 +5,7 @@ go 1.22 toolchain go1.22.4 require ( - cloud.google.com/go/kms v1.15.7 + cloud.google.com/go/kms v1.17.1 github.com/DenrianWeiss/tracely v0.0.0-20220624070317-49cf8afaaf18 github.com/Flaque/filet v0.0.0-20201012163910-45f684403088 github.com/ImVexed/fasturl v0.0.0-20230304231329-4e41488060f3 @@ -19,14 +19,14 @@ require ( github.com/btcsuite/btcd v0.22.1 github.com/btcsuite/btcd/btcec/v2 v2.3.0 github.com/chzyer/test v1.0.0 - github.com/davecgh/go-spew v1.1.1 + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 github.com/dgraph-io/ristretto v0.1.0 github.com/ethereum/go-ethereum v1.13.8 github.com/goccy/go-json v0.10.2 github.com/google/go-cmp v0.6.0 github.com/google/uuid v1.6.0 - github.com/googleapis/gax-go/v2 v2.12.2 + github.com/googleapis/gax-go/v2 v2.12.4 github.com/hashicorp/go-multierror v1.1.1 github.com/hashicorp/golang-lru v1.0.2 github.com/imkira/go-interpol v1.1.0 @@ -63,20 +63,23 @@ require ( golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 golang.org/x/sync v0.7.0 golang.org/x/time v0.5.0 - google.golang.org/api v0.169.0 + google.golang.org/api v0.183.0 google.golang.org/protobuf v1.34.1 gopkg.in/yaml.v2 v2.4.0 gorm.io/driver/mysql v1.5.6 gorm.io/driver/sqlite v1.5.6 gorm.io/gorm v1.25.10 gotest.tools v2.2.0+incompatible - k8s.io/apimachinery v0.26.2 + k8s.io/apimachinery v0.29.3 ) require ( - cloud.google.com/go v0.112.1 // indirect + cloud.google.com/go v0.114.0 // indirect + cloud.google.com/go/auth v0.5.1 // indirect + cloud.google.com/go/auth/oauth2adapt v0.2.2 // indirect cloud.google.com/go/compute/metadata v0.3.0 // indirect - cloud.google.com/go/iam v1.1.6 // indirect + cloud.google.com/go/iam v1.1.8 // indirect + cloud.google.com/go/longrunning v0.5.7 // indirect dario.cat/mergo v1.0.0 // indirect github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect github.com/DataDog/zstd v1.5.2 // indirect @@ -85,7 +88,7 @@ require ( github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 // indirect github.com/ProtonMail/go-crypto v1.0.0 // indirect github.com/VictoriaMetrics/fastcache v1.12.1 // indirect - github.com/aws/aws-sdk-go v1.43.16 // indirect + github.com/aws/aws-sdk-go v1.53.16 // indirect github.com/aws/aws-sdk-go-v2/credentials v1.13.43 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.13 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.43 // indirect @@ -127,7 +130,7 @@ require ( github.com/deepmap/oapi-codegen v1.8.2 // indirect github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect github.com/docker/cli v26.0.1+incompatible // indirect - github.com/docker/docker v26.0.1+incompatible // indirect + github.com/docker/docker v26.1.3+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/dustin/go-humanize v1.0.1 // indirect @@ -136,7 +139,7 @@ require ( github.com/fatih/structtag v1.2.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fjl/memsize v0.0.2 // indirect - github.com/fsnotify/fsnotify v1.6.0 // indirect + github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/gabriel-vasile/mimetype v1.4.3 // indirect github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/gballet/go-verkle v0.1.1-0.20231031103413-a67434b50f46 // indirect @@ -199,7 +202,7 @@ require ( github.com/leodido/go-urn v1.4.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/mattn/go-runewidth v0.0.13 // indirect + github.com/mattn/go-runewidth v0.0.15 // indirect github.com/mattn/go-sqlite3 v2.0.3+incompatible // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect @@ -218,11 +221,11 @@ require ( github.com/pelletier/go-toml/v2 v2.2.2 // indirect github.com/peterh/liner v1.2.1 // indirect github.com/pjbgf/sha1cd v0.3.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.53.0 // indirect + github.com/prometheus/common v0.54.0 // indirect github.com/prometheus/procfs v0.15.0 // indirect - github.com/rivo/uniseg v0.2.0 // indirect + github.com/rivo/uniseg v0.4.7 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/rs/cors v1.8.2 // indirect github.com/rung/go-safecast v1.0.1 // indirect @@ -270,19 +273,19 @@ require ( golang.org/x/crypto v0.24.0 // indirect golang.org/x/mod v0.18.0 // indirect golang.org/x/net v0.26.0 // indirect - golang.org/x/oauth2 v0.20.0 // indirect + golang.org/x/oauth2 v0.21.0 // indirect golang.org/x/sys v0.21.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/tools v0.22.0 // indirect - google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291 // indirect + google.golang.org/genproto v0.0.0-20240528184218-531527333157 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 // indirect google.golang.org/grpc v1.64.0 // indirect gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/klog/v2 v2.90.1 // indirect - k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 // indirect + k8s.io/klog/v2 v2.120.1 // indirect + k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect rsc.io/tmplfunc v0.0.3 // indirect ) diff --git a/ethergo/go.sum b/ethergo/go.sum index 57d9afb9e8..0abad36bbb 100644 --- a/ethergo/go.sum +++ b/ethergo/go.sum @@ -19,8 +19,12 @@ cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHOb cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= -cloud.google.com/go v0.112.1 h1:uJSeirPke5UNZHIb4SxfZklVSiWWVqW4oXlETwZziwM= -cloud.google.com/go v0.112.1/go.mod h1:+Vbu+Y1UU+I1rjmzeMOb/8RfkKJK2Gyxi1X6jJCZLo4= +cloud.google.com/go v0.114.0 h1:OIPFAdfrFDFO2ve2U7r/H5SwSbBzEdrBdE7xkgwc+kY= +cloud.google.com/go v0.114.0/go.mod h1:ZV9La5YYxctro1HTPug5lXH/GefROyW8PPD4T8n9J8E= +cloud.google.com/go/auth v0.5.1 h1:0QNO7VThG54LUzKiQxv8C6x1YX7lUrzlAa1nVLF8CIw= +cloud.google.com/go/auth v0.5.1/go.mod h1:vbZT8GjzDf3AVqCcQmqeeM32U9HBFc32vVVAbwDsa6s= +cloud.google.com/go/auth/oauth2adapt v0.2.2 h1:+TTV8aXpjeChS9M+aTtN/TjdQnzJvmzKFt//oWu7HX4= +cloud.google.com/go/auth/oauth2adapt v0.2.2/go.mod h1:wcYjgpZI9+Yu7LyYBg4pqSiaRkfEK3GQcpb7C/uyF1Q= 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= @@ -32,10 +36,12 @@ cloud.google.com/go/compute/metadata v0.3.0 h1:Tz+eQXMEqDIKRsmY3cHTL6FVaynIjX2Qx cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/iam v1.1.6 h1:bEa06k05IO4f4uJonbB5iAgKTPpABy1ayxaIZV/GHVc= -cloud.google.com/go/iam v1.1.6/go.mod h1:O0zxdPeGBoFdWW3HWmBxJsk0pfvNM/p/qa82rWOGTwI= -cloud.google.com/go/kms v1.15.7 h1:7caV9K3yIxvlQPAcaFffhlT7d1qpxjB1wHBtjWa13SM= -cloud.google.com/go/kms v1.15.7/go.mod h1:ub54lbsa6tDkUwnu4W7Yt1aAIFLnspgh0kPGToDukeI= +cloud.google.com/go/iam v1.1.8 h1:r7umDwhj+BQyz0ScZMp4QrGXjSTI3ZINnpgU2nlB/K0= +cloud.google.com/go/iam v1.1.8/go.mod h1:GvE6lyMmfxXauzNq8NbgJbeVQNspG+tcdL/W8QO1+zE= +cloud.google.com/go/kms v1.17.1 h1:5k0wXqkxL+YcXd4viQzTqCgzzVKKxzgrK+rCZJytEQs= +cloud.google.com/go/kms v1.17.1/go.mod h1:DCMnCF/apA6fZk5Cj4XsD979OyHAqFasPuA5Sd0kGlQ= +cloud.google.com/go/longrunning v0.5.7 h1:WLbHekDbjK1fVFD3ibpFFVoyizlLRl73I7YKuAKilhU= +cloud.google.com/go/longrunning v0.5.7/go.mod h1:8GClkudohy1Fxm3owmBGid8W0pSgodEMwEAztp38Xng= 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= @@ -115,8 +121,8 @@ github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5 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/aws/aws-sdk-go v1.35.0/go.mod h1:H7NKnBqNVzoTJpGfLrQkkD+ytBA93eiDYi/+8rV9s48= -github.com/aws/aws-sdk-go v1.43.16 h1:Y7wBby44f+tINqJjw5fLH3vA+gFq4uMITIKqditwM14= -github.com/aws/aws-sdk-go v1.43.16/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= +github.com/aws/aws-sdk-go v1.53.16 h1:8oZjKQO/ml1WLUZw5hvF7pvYjPf8o9f57Wldoy/q9Qc= +github.com/aws/aws-sdk-go v1.53.16/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= github.com/aws/aws-sdk-go-v2 v1.2.0/go.mod h1:zEQs02YRBw1DjK0PoJv3ygDYOFTre1ejlJWl8FwAuQo= github.com/aws/aws-sdk-go-v2 v1.16.5/go.mod h1:Wh7MEsmEApyL5hrWzpDkba4gwAPc5/piwLVLFnCxp48= github.com/aws/aws-sdk-go-v2 v1.21.2 h1:+LXZ0sgo8quN9UOKXXzAWRT3FWd4NxeXWOZom9pE7GA= @@ -269,8 +275,8 @@ github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233/go.mod h1:geZJ github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA= github.com/crate-crypto/go-kzg-4844 v0.7.0/go.mod h1:1kMhvPgI0Ky3yIa+9lFySEBUBXkYxeOi8ZF1sYioxhc= 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/creack/pty v1.1.21 h1:1/QdRyBaHHJP61QkWMXlOIBfsgdDeeKfK8SYVUWJKf0= +github.com/creack/pty v1.1.21/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4= github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= @@ -280,8 +286,9 @@ github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e/go.mod h1:IJg github.com/dave/jennifer v1.2.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg= github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea/go.mod h1:93vsz/8Wt4joVM7c2AVqh+YRMiUSc14yDtF28KmMOgQ= github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80NsVHagjM= github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= @@ -305,8 +312,8 @@ github.com/dlclark/regexp2 v1.2.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55k github.com/docker/cli v26.0.1+incompatible h1:eZDuplk2jYqgUkNLDYwTBxqmY9cM3yHnmN6OIUEjL3U= github.com/docker/cli v26.0.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/docker v1.4.2-0.20180625184442-8e610b2b55bf/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v26.0.1+incompatible h1:t39Hm6lpXuXtgkF0dm1t9a5HkbUfdGy6XbWexmGr+hA= -github.com/docker/docker v26.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v26.1.3+incompatible h1:lLCzRbrVZrljpVNobJu1J2FHk8V0s4BawoZippkc+xo= +github.com/docker/docker v26.1.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= @@ -354,8 +361,8 @@ github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/ github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= -github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= +github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= @@ -407,7 +414,6 @@ github.com/go-http-utils/headers v0.0.0-20181008091004-fed159eddc2a/go.mod h1:I7 github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= @@ -550,8 +556,8 @@ github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfF github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gax-go/v2 v2.12.2 h1:mhN09QQW1jEWeMF74zGR81R30z4VJzjZsfkUhuHF+DA= -github.com/googleapis/gax-go/v2 v2.12.2/go.mod h1:61M8vcyyXR2kqKFxKrfA22jaA8JGF7Dc8App1U3H6jc= +github.com/googleapis/gax-go/v2 v2.12.4 h1:9gWcmF85Wvq4ryPFvGFaOgPIs1AQX0d0bcbGw4Z96qg= +github.com/googleapis/gax-go/v2 v2.12.4/go.mod h1:KYEYLorsnIGDi/rPC8b5TdlB9kbKoFubselGIoBMCwI= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= @@ -754,8 +760,8 @@ github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWE github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU= -github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= +github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/go-sqlite3 v2.0.3+incompatible h1:gXHsfypPkaMZrKbD5209QV9jbUTJKjyR5WD3HYQSd+U= github.com/mattn/go-sqlite3 v2.0.3+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= @@ -879,8 +885,9 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= github.com/pkg/term v0.0.0-20180730021639-bffc007b7fd5/go.mod h1:eCbImbZ95eXtAUIbLAuAVnBnwf83mjf6QIVH8SHYwqQ= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +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/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= @@ -893,8 +900,8 @@ github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQy github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= -github.com/prometheus/common v0.53.0 h1:U2pL9w9nmJwJDa4qqLQ3ZaePJ6ZTwt7cMD3AG3+aLCE= -github.com/prometheus/common v0.53.0/go.mod h1:BrxBKv3FWBIGXw89Mg1AeBq7FSyRzXWI3l3e7W3RN5U= +github.com/prometheus/common v0.54.0 h1:ZlZy0BgJhTwVZUn7dLOkwCZHUkrAqd3WYtcFCWnM1D8= +github.com/prometheus/common v0.54.0/go.mod h1:/TQgMJP5CuVYveyT7n/0Ix8yLNNXy9yRSkhnLTHPDIQ= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.15.0 h1:A82kmvXJq2jTu5YUhSGNlYoxh85zLnKgPz4bMZgI5Ek= @@ -907,8 +914,9 @@ github.com/regen-network/protobuf v1.3.3-alpha.regen.1/go.mod h1:2DjTFR1HhMQhiWC github.com/retailnext/hllpp v1.0.1-0.20180308014038-101a6d2f8b52/go.mod h1:RDpi1RftBQPUCDRw6SmxeaREsAaRKnOclghuzp/WRzc= github.com/richardwilkes/toolbox v1.74.0 h1:TNvXxph1jJk6IQmVoZdAY9peRlL6Tv//7OpyJkjMiPI= github.com/richardwilkes/toolbox v1.74.0/go.mod h1:OFTDv8rUUsF+Hb98k9l65zu7fuKt3EEhWywv6zyJ750= -github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= +github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rjeczalik/notify v0.9.1/go.mod h1:rKwnCoCGeuQnwBtTSPL9Dad03Vh2n40ePRrjvIXnJho= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= @@ -1252,7 +1260,6 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20211008194852-3b03d305991f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= 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= @@ -1268,8 +1275,8 @@ golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.20.0 h1:4mQdhULixXKP1rwYBW0vAijoXnkTG0BLCDRzfe1idMo= -golang.org/x/oauth2 v0.20.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= +golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1357,13 +1364,11 @@ golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211116061358-0a5406a5449c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220209214540-3681064d5158/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-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220908164124-27713097b956/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.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1497,8 +1502,8 @@ google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz513 google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= -google.golang.org/api v0.169.0 h1:QwWPy71FgMWqJN/l6jVlFHUa29a7dcUy02I8o799nPY= -google.golang.org/api v0.169.0/go.mod h1:gpNOiMA2tZ4mf5R9Iwf4rK/Dcz0fbdIgWYWVoxmsyLg= +google.golang.org/api v0.183.0 h1:PNMeRDwo1pJdgNcFQ9GstuLe/noWKIc89pRWRLMvLwE= +google.golang.org/api v0.183.0/go.mod h1:q43adC5/pHoSZTx5h2mSmdF7NcyfW9JuDyIOJAgS9ZQ= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1547,12 +1552,12 @@ google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= -google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de h1:F6qOa9AZTYJXOUEr4jDysRDLrm4PHePlge4v4TGAlxY= -google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:VUhTRKeHn9wwcdrk73nvdC9gF178Tzhmt/qyaFcPLSo= -google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5 h1:P8OJ/WCl/Xo4E4zoe4/bifHpSmmKwARqyqE4nW6J2GQ= -google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5/go.mod h1:RGnPtTG7r4i8sPlNyDeikXF99hMM+hN6QMm4ooG9g2g= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291 h1:AgADTJarZTBqgjiUzRgfaBchgYB3/WFTC80GPwsMcRI= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= +google.golang.org/genproto v0.0.0-20240528184218-531527333157 h1:u7WMYrIrVvs0TF5yaKwKNbcJyySYf+HAIFXxWltJOXE= +google.golang.org/genproto v0.0.0-20240528184218-531527333157/go.mod h1:ubQlAQnzejB8uZzszhrTCU2Fyp6Vi7ZE5nn0c3W8+qQ= +google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 h1:7whR9kGa5LUwFtpLm2ArCEejtnxlGeLbAyjFY8sGNFw= +google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157/go.mod h1:99sLkeliLXfdj2J75X3Ho+rrVCaJze0uwN7zDDkjPVU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 h1:Zy9XzmMEflZ/MAaA7vNcoebnRAld7FsPW1EeBB7V0m8= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= 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= @@ -1642,12 +1647,12 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt 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/apimachinery v0.26.2 h1:da1u3D5wfR5u2RpLhE/ZtZS2P7QvDgLZTi9wrNZl/tQ= -k8s.io/apimachinery v0.26.2/go.mod h1:ats7nN1LExKHvJ9TmwootT00Yz05MuYqPXEXaVeOy5I= -k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw= -k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 h1:kmDqav+P+/5e1i9tFfHq1qcF3sOrDp+YEkVDAHu7Jwk= -k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/apimachinery v0.29.3 h1:2tbx+5L7RNvqJjn7RIuIKu9XTsIZ9Z5wX2G22XAa5EU= +k8s.io/apimachinery v0.29.3/go.mod h1:hx/S4V2PNW4OMg3WizRrHutyB5la0iCUbZym+W0EQIU= +k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= +k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= lukechampine.com/blake3 v1.2.1 h1:YuqqRuaqsGV71BV/nm9xlI0MKUv4QC54jQnBChWbGnI= lukechampine.com/blake3 v1.2.1/go.mod h1:0OFRp7fBtAylGVCO40o87sbupkyIGgbpv1+M1k1LM6k= nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= diff --git a/go.work b/go.work index 51f0b3dfda..9da4cd2ae8 100644 --- a/go.work +++ b/go.work @@ -1,11 +1,10 @@ -go 1.22 - -toolchain go1.22.4 +go 1.22.4 // note: new paths should be added as flags to the .codecov.yaml use ( ./agents ./contrib/git-changes-action + ./contrib/opbot ./contrib/promexporter ./contrib/screener-api ./core diff --git a/go.work.sum b/go.work.sum index 8181c87786..f36c24783b 100644 --- a/go.work.sum +++ b/go.work.sum @@ -13,6 +13,8 @@ cloud.google.com/go v0.107.0/go.mod h1:wpc2eNrD7hXUTy8EKS10jkxpZBjASrORK7goS+3YX cloud.google.com/go v0.110.2/go.mod h1:k04UEeEtb6ZBRTv3dZz4CeJC3jKGxyhl0sAiVVquxiw= cloud.google.com/go v0.110.8/go.mod h1:Iz8AkXJf1qmxC3Oxoep8R1T36w8B92yU29PcBhHO5fk= cloud.google.com/go v0.112.0/go.mod h1:3jEEVwZ/MHU4djK5t5RHuKOA/GbLddgTdVubX1qnPD4= +cloud.google.com/go v0.112.2/go.mod h1:iEqjp//KquGIJV/m+Pk3xecgKNhV+ry+vVTsy4TbDms= +cloud.google.com/go v0.113.0/go.mod h1:glEqlogERKYeePz6ZdkcLJ28Q2I6aERgDDErBg9GzO8= cloud.google.com/go/accessapproval v1.4.0/go.mod h1:zybIuC3KpDOvotz59lFe5qxRZx6C75OtwbisN56xYB4= cloud.google.com/go/accessapproval v1.5.0/go.mod h1:HFy3tuiGvMdcd/u+Cu5b9NkO1pEICJ46IR82PoUdplw= cloud.google.com/go/accessapproval v1.6.0 h1:x0cEHro/JFPd7eS4BlEWNTMecIj2HdXjOVB5BtvwER0= @@ -23,6 +25,8 @@ cloud.google.com/go/accessapproval v1.7.4 h1:ZvLvJ952zK8pFHINjpMBY5k7LTAp/6pBf50 cloud.google.com/go/accessapproval v1.7.4/go.mod h1:/aTEh45LzplQgFYdQdwPMR9YdX0UlhBmvB84uAmQKUc= cloud.google.com/go/accessapproval v1.7.5 h1:uzmAMSgYcnlHa9X9YSQZ4Q1wlfl4NNkZyQgho1Z6p04= cloud.google.com/go/accessapproval v1.7.5/go.mod h1:g88i1ok5dvQ9XJsxpUInWWvUBrIZhyPDPbk4T01OoJ0= +cloud.google.com/go/accessapproval v1.7.7 h1:vO95gvBi7qUgfA9SflexQs9hB4U4tnri/GwADIrLQy8= +cloud.google.com/go/accessapproval v1.7.7/go.mod h1:10ZDPYiTm8tgxuMPid8s2DL93BfCt6xBh/Vg0Xd8pU0= cloud.google.com/go/accesscontextmanager v1.3.0/go.mod h1:TgCBehyr5gNMz7ZaH9xubp+CE8dkrszb4oK9CWyvD4o= cloud.google.com/go/accesscontextmanager v1.4.0/go.mod h1:/Kjh7BBu/Gh83sv+K60vN9QE5NJcd80sU33vIe2IFPE= cloud.google.com/go/accesscontextmanager v1.6.0/go.mod h1:8XCvZWfYw3K/ji0iVnp+6pu7huxoQTLmxAbVjbloTtM= @@ -34,6 +38,8 @@ cloud.google.com/go/accesscontextmanager v1.8.4 h1:Yo4g2XrBETBCqyWIibN3NHNPQKUfQ cloud.google.com/go/accesscontextmanager v1.8.4/go.mod h1:ParU+WbMpD34s5JFEnGAnPBYAgUHozaTmDJU7aCU9+M= cloud.google.com/go/accesscontextmanager v1.8.5 h1:2GLNaNu9KRJhJBFTIVRoPwk6xE5mUDgD47abBq4Zp/I= cloud.google.com/go/accesscontextmanager v1.8.5/go.mod h1:TInEhcZ7V9jptGNqN3EzZ5XMhT6ijWxTGjzyETwmL0Q= +cloud.google.com/go/accesscontextmanager v1.8.7 h1:GgdNoDwZR5RIO3j8XwXqa6Gc6q5mP3KYMdFC7FEVyG4= +cloud.google.com/go/accesscontextmanager v1.8.7/go.mod h1:jSvChL1NBQ+uLY9zUBdPy9VIlozPoHptdBnRYeWuQoM= cloud.google.com/go/aiplatform v1.22.0/go.mod h1:ig5Nct50bZlzV6NvKaTwmplLLddFx0YReh9WfTO5jKw= cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY= cloud.google.com/go/aiplatform v1.27.0/go.mod h1:Bvxqtl40l0WImSb04d0hXFU7gDOiq9jQmorivIiWcKg= @@ -47,6 +53,8 @@ cloud.google.com/go/aiplatform v1.58.0 h1:xyCAfpI4yUMOQ4VtHN/bdmxPQ8xoEkTwFM1nbV cloud.google.com/go/aiplatform v1.58.0/go.mod h1:pwZMGvqe0JRkI1GWSZCtnAfrR4K1bv65IHILGA//VEU= cloud.google.com/go/aiplatform v1.60.0 h1:0cSrii1ZeLr16MbBoocyy5KVnrSdiQ3KN/vtrTe7RqE= cloud.google.com/go/aiplatform v1.60.0/go.mod h1:eTlGuHOahHprZw3Hio5VKmtThIOak5/qy6pzdsqcQnM= +cloud.google.com/go/aiplatform v1.67.0 h1:YWeqD4BjYwrmY4fa+isGcw0P81lJ3dKVxbWxdBchoiU= +cloud.google.com/go/aiplatform v1.67.0/go.mod h1:s/sJ6btBEr6bKnrNWdK9ZgHCvwbZNdP90b3DDtxxw+Y= cloud.google.com/go/analytics v0.11.0/go.mod h1:DjEWCu41bVbYcKyvlws9Er60YE4a//bK6mnhWvQeFNI= cloud.google.com/go/analytics v0.12.0/go.mod h1:gkfj9h6XRf9+TS4bmuhPEShsh3hH8PAZzm/41OOhQd4= cloud.google.com/go/analytics v0.17.0/go.mod h1:WXFa3WSym4IZ+JiKmavYdJwGG/CvpqiqczmL59bTD9M= @@ -59,6 +67,8 @@ cloud.google.com/go/analytics v0.21.6 h1:fnV7B8lqyEYxCU0LKk+vUL7mTlqRAq4uFlIthId cloud.google.com/go/analytics v0.21.6/go.mod h1:eiROFQKosh4hMaNhF85Oc9WO97Cpa7RggD40e/RBy8w= cloud.google.com/go/analytics v0.23.0 h1:Q+y94XH84jM8SK8O7qiY/PJRexb6n7dRbQ6PiUa4YGM= cloud.google.com/go/analytics v0.23.0/go.mod h1:YPd7Bvik3WS95KBok2gPXDqQPHy08TsCQG6CdUCb+u0= +cloud.google.com/go/analytics v0.23.2 h1:O0fj88npvQFxg8LfXo7fArcSrC/wtAstGuWQ7dCHWjg= +cloud.google.com/go/analytics v0.23.2/go.mod h1:vtE3olAXZ6edJYk1UOndEs6EfaEc9T2B28Y4G5/a7Fo= cloud.google.com/go/apigateway v1.3.0/go.mod h1:89Z8Bhpmxu6AmUxuVRg/ECRGReEdiP3vQtk4Z1J9rJk= cloud.google.com/go/apigateway v1.4.0/go.mod h1:pHVY9MKGaH9PQ3pJ4YLzoj6U5FUDeDFBllIz7WmzJoc= cloud.google.com/go/apigateway v1.5.0 h1:ZI9mVO7x3E9RK/BURm2p1aw9YTBSCQe3klmyP1WxWEg= @@ -69,6 +79,8 @@ cloud.google.com/go/apigateway v1.6.4 h1:VVIxCtVerchHienSlaGzV6XJGtEM9828Erzyr3m cloud.google.com/go/apigateway v1.6.4/go.mod h1:0EpJlVGH5HwAN4VF4Iec8TAzGN1aQgbxAWGJsnPCGGY= cloud.google.com/go/apigateway v1.6.5 h1:sPXnpk+6TneKIrjCjcpX5YGsAKy3PTdpIchoj8/74OE= cloud.google.com/go/apigateway v1.6.5/go.mod h1:6wCwvYRckRQogyDDltpANi3zsCDl6kWi0b4Je+w2UiI= +cloud.google.com/go/apigateway v1.6.7 h1:DO5Vn3zmY1aDyfoqni8e8+x+lwrfLCoAAbEui9NB0y8= +cloud.google.com/go/apigateway v1.6.7/go.mod h1:7wAMb/33Rzln+PrGK16GbGOfA1zAO5Pq6wp19jtIt7c= cloud.google.com/go/apigeeconnect v1.3.0/go.mod h1:G/AwXFAKo0gIXkPTVfZDd2qA1TxBXJ3MgMRBQkIi9jc= cloud.google.com/go/apigeeconnect v1.4.0/go.mod h1:kV4NwOKqjvt2JYR0AoIWo2QGfoRtn/pkS3QlHp0Ni04= cloud.google.com/go/apigeeconnect v1.5.0 h1:sWOmgDyAsi1AZ48XRHcATC0tsi9SkPT7DA/+VCfkaeA= @@ -79,6 +91,8 @@ cloud.google.com/go/apigeeconnect v1.6.4 h1:jSoGITWKgAj/ssVogNE9SdsTqcXnryPzsulE cloud.google.com/go/apigeeconnect v1.6.4/go.mod h1:CapQCWZ8TCjnU0d7PobxhpOdVz/OVJ2Hr/Zcuu1xFx0= cloud.google.com/go/apigeeconnect v1.6.5 h1:CrfIKv9Go3fh/QfQgisU3MeP90Ww7l/sVGmr3TpECo8= cloud.google.com/go/apigeeconnect v1.6.5/go.mod h1:MEKm3AiT7s11PqTfKE3KZluZA9O91FNysvd3E6SJ6Ow= +cloud.google.com/go/apigeeconnect v1.6.7 h1:z08Xuv7ZtaB2d4jsJi9/WhbnnI5s19wlLDZpssn3Fus= +cloud.google.com/go/apigeeconnect v1.6.7/go.mod h1:hZxCKvAvDdKX8+eT0g5eEAbRSS9Gkzi+MPWbgAMAy5U= cloud.google.com/go/apigeeregistry v0.4.0/go.mod h1:EUG4PGcsZvxOXAdyEghIdXwAEi/4MEaoqLMLDMIwKXY= cloud.google.com/go/apigeeregistry v0.5.0/go.mod h1:YR5+s0BVNZfVOUkMa5pAR2xGd0A473vA5M7j247o1wM= cloud.google.com/go/apigeeregistry v0.6.0 h1:E43RdhhCxdlV+I161gUY2rI4eOaMzHTA5kNkvRsFXvc= @@ -89,6 +103,8 @@ cloud.google.com/go/apigeeregistry v0.8.2 h1:DSaD1iiqvELag+lV4VnnqUUFd8GXELu01tK cloud.google.com/go/apigeeregistry v0.8.2/go.mod h1:h4v11TDGdeXJDJvImtgK2AFVvMIgGWjSb0HRnBSjcX8= cloud.google.com/go/apigeeregistry v0.8.3 h1:C+QU2K+DzDjk4g074ouwHQGkoff1h5OMQp6sblCVreQ= cloud.google.com/go/apigeeregistry v0.8.3/go.mod h1:aInOWnqF4yMQx8kTjDqHNXjZGh/mxeNlAf52YqtASUs= +cloud.google.com/go/apigeeregistry v0.8.5 h1:o1C/+IvzwYeV1doum61XmJQ/Bwpk/4+2DT1JyVu2x64= +cloud.google.com/go/apigeeregistry v0.8.5/go.mod h1:ZMg60hq2K35tlqZ1VVywb9yjFzk9AJ7zqxrysOxLi3o= cloud.google.com/go/apikeys v0.4.0/go.mod h1:XATS/yqZbaBK0HOssf+ALHp8jAlNHUgyfprvNcBIszU= cloud.google.com/go/apikeys v0.5.0/go.mod h1:5aQfwY4D+ewMMWScd3hm2en3hCj+BROlyrt3ytS7KLI= cloud.google.com/go/apikeys v0.6.0 h1:B9CdHFZTFjVti89tmyXXrO+7vSNo2jvZuHG8zD5trdQ= @@ -105,6 +121,8 @@ cloud.google.com/go/appengine v1.8.4 h1:Qub3fqR7iA1daJWdzjp/Q0Jz0fUG0JbMc7Ui4E9I cloud.google.com/go/appengine v1.8.4/go.mod h1:TZ24v+wXBujtkK77CXCpjZbnuTvsFNT41MUaZ28D6vg= cloud.google.com/go/appengine v1.8.5 h1:l2SviT44zWQiOv8bPoMBzW0vOcMO22iO0s+nVtVhdts= cloud.google.com/go/appengine v1.8.5/go.mod h1:uHBgNoGLTS5di7BvU25NFDuKa82v0qQLjyMJLuPQrVo= +cloud.google.com/go/appengine v1.8.7 h1:qYrjEHEFY7+CL4QlHIHuwTgrTnZbSKzdPFqgjZDsQNo= +cloud.google.com/go/appengine v1.8.7/go.mod h1:1Fwg2+QTgkmN6Y+ALGwV8INLbdkI7+vIvhcKPZCML0g= cloud.google.com/go/area120 v0.5.0/go.mod h1:DE/n4mp+iqVyvxHN41Vf1CR602GiHQjFPusMFW6bGR4= cloud.google.com/go/area120 v0.6.0/go.mod h1:39yFJqWVgm0UZqWTOdqkLhjoC7uFfgXRC8g/ZegeAh0= cloud.google.com/go/area120 v0.7.0/go.mod h1:a3+8EUD1SX5RUcCs3MY5YasiO1z6yLiNLRiFrykbynY= @@ -116,6 +134,8 @@ cloud.google.com/go/area120 v0.8.4 h1:YnSO8m02pOIo6AEOgiOoUDVbw4pf+bg2KLHi4rky32 cloud.google.com/go/area120 v0.8.4/go.mod h1:jfawXjxf29wyBXr48+W+GyX/f8fflxp642D/bb9v68M= cloud.google.com/go/area120 v0.8.5 h1:vTs08KPLN/iMzTbxpu5ciL06KcsrVPMjz4IwcQyZ4uY= cloud.google.com/go/area120 v0.8.5/go.mod h1:BcoFCbDLZjsfe4EkCnEq1LKvHSK0Ew/zk5UFu6GMyA0= +cloud.google.com/go/area120 v0.8.7 h1:sUrR96yokdL6tTTXK0X13V1TLMta8/1u328bRG5lWZc= +cloud.google.com/go/area120 v0.8.7/go.mod h1:L/xTq4NLP9mmxiGdcsVz7y1JLc9DI8pfaXRXbnjkR6w= cloud.google.com/go/artifactregistry v1.6.0/go.mod h1:IYt0oBPSAGYj/kprzsBjZ/4LnG/zOcHyFHjWPCi6SAQ= cloud.google.com/go/artifactregistry v1.7.0/go.mod h1:mqTOFOnGZx8EtSqK/ZWcsm/4U8B77rbcLP6ruDU2Ixk= cloud.google.com/go/artifactregistry v1.8.0/go.mod h1:w3GQXkJX8hiKN0v+at4b0qotwijQbYUqF2GWkZzAhC0= @@ -131,6 +151,8 @@ cloud.google.com/go/artifactregistry v1.14.6 h1:/hQaadYytMdA5zBh+RciIrXZQBWK4vN7 cloud.google.com/go/artifactregistry v1.14.6/go.mod h1:np9LSFotNWHcjnOgh8UVK0RFPCTUGbO0ve3384xyHfE= cloud.google.com/go/artifactregistry v1.14.7 h1:W9sVlyb1VRcUf83w7aM3yMsnp4HS4PoyGqYQNG0O5lI= cloud.google.com/go/artifactregistry v1.14.7/go.mod h1:0AUKhzWQzfmeTvT4SjfI4zjot72EMfrkvL9g9aRjnnM= +cloud.google.com/go/artifactregistry v1.14.9 h1:SSvoD0ofOydm5gA1++15pW9VPgQbk0OmNlcb7JczoO4= +cloud.google.com/go/artifactregistry v1.14.9/go.mod h1:n2OsUqbYoUI2KxpzQZumm6TtBgtRf++QulEohdnlsvI= cloud.google.com/go/asset v1.5.0/go.mod h1:5mfs8UvcM5wHhqtSv8J1CtxxaQq3AdBxxQi2jGW/K4o= cloud.google.com/go/asset v1.7.0/go.mod h1:YbENsRK4+xTiL+Ofoj5Ckf+O17kJtgp3Y3nn4uzZz5s= cloud.google.com/go/asset v1.8.0/go.mod h1:mUNGKhiqIdbr8X7KNayoYvyc4HbbFO9URsjbytpUaW0= @@ -146,6 +168,8 @@ cloud.google.com/go/asset v1.16.0 h1:VjwWNtEVsbpXfJqZbb2RLOBzSgAjN69vf2UJADHnkxk cloud.google.com/go/asset v1.16.0/go.mod h1:yYLfUD4wL4X589A9tYrv4rFrba0QlDeag0CMcM5ggXU= cloud.google.com/go/asset v1.17.2 h1:xgFnBP3luSbUcC9RWJvb3Zkt+y/wW6PKwPHr3ssnIP8= cloud.google.com/go/asset v1.17.2/go.mod h1:SVbzde67ehddSoKf5uebOD1sYw8Ab/jD/9EIeWg99q4= +cloud.google.com/go/asset v1.19.1 h1:mCqyoaDjDzaW1RqmmQtCJuawb9nca5bEu7HvVcpZDwg= +cloud.google.com/go/asset v1.19.1/go.mod h1:kGOS8DiCXv6wU/JWmHWCgaErtSZ6uN5noCy0YwVaGfs= cloud.google.com/go/assuredworkloads v1.5.0/go.mod h1:n8HOZ6pff6re5KYfBXcFvSViQjDwxFkAkmUFffJRbbY= cloud.google.com/go/assuredworkloads v1.6.0/go.mod h1:yo2YOk37Yc89Rsd5QMVECvjaMKymF9OP+QXWlKXUkXw= cloud.google.com/go/assuredworkloads v1.7.0/go.mod h1:z/736/oNmtGAyU47reJgGN+KVoYoxeLBoj4XkKYscNI= @@ -159,6 +183,10 @@ cloud.google.com/go/assuredworkloads v1.11.4 h1:FsLSkmYYeNuzDm8L4YPfLWV+lQaUrJmH cloud.google.com/go/assuredworkloads v1.11.4/go.mod h1:4pwwGNwy1RP0m+y12ef3Q/8PaiWrIDQ6nD2E8kvWI9U= cloud.google.com/go/assuredworkloads v1.11.5 h1:gCrN3IyvqY3cP0wh2h43d99CgH3G+WYs9CeuFVKChR8= cloud.google.com/go/assuredworkloads v1.11.5/go.mod h1:FKJ3g3ZvkL2D7qtqIGnDufFkHxwIpNM9vtmhvt+6wqk= +cloud.google.com/go/assuredworkloads v1.11.7 h1:xieyFA+JKyTDkO/Z9UyVEpkHW8pDYykU51O4G0pvXEg= +cloud.google.com/go/assuredworkloads v1.11.7/go.mod h1:CqXcRH9N0KCDtHhFisv7kk+cl//lyV+pYXGi1h8rCEU= +cloud.google.com/go/auth v0.3.0/go.mod h1:lBv6NKTWp8E3LPzmO1TbiiRKc4drLOfHsgmlH9ogv5w= +cloud.google.com/go/auth v0.4.1/go.mod h1:QVBuVEKpCn4Zp58hzRGvL0tjRGU0YqdRTdCHM1IHnro= cloud.google.com/go/automl v1.5.0/go.mod h1:34EjfoFGMZ5sgJ9EoLsRtdPSNZLcfflJR39VbVNS2M0= cloud.google.com/go/automl v1.6.0/go.mod h1:ugf8a6Fx+zP0D59WLhqgTDsQI9w07o64uf/Is3Nh5p8= cloud.google.com/go/automl v1.7.0/go.mod h1:RL9MYCCsJEOmt0Wf3z9uzG0a7adTT1fe+aObgSpkCt8= @@ -171,6 +199,8 @@ cloud.google.com/go/automl v1.13.4 h1:i9tOKXX+1gE7+rHpWKjiuPfGBVIYoWvLNIGpWgPtF5 cloud.google.com/go/automl v1.13.4/go.mod h1:ULqwX/OLZ4hBVfKQaMtxMSTlPx0GqGbWN8uA/1EqCP8= cloud.google.com/go/automl v1.13.5 h1:ijiJy9sYWh75WrqImXsfWc1e3HR3iO+ef9fvW03Ig/4= cloud.google.com/go/automl v1.13.5/go.mod h1:MDw3vLem3yh+SvmSgeYUmUKqyls6NzSumDm9OJ3xJ1Y= +cloud.google.com/go/automl v1.13.7 h1:w9AyogtMLXbcy5kzXPvk/Q3MGQkgJH7ZDB8fAUUxTt8= +cloud.google.com/go/automl v1.13.7/go.mod h1:E+s0VOsYXUdXpq0y4gNZpi0A/s6y9+lAarmV5Eqlg40= cloud.google.com/go/baremetalsolution v0.3.0/go.mod h1:XOrocE+pvK1xFfleEnShBlNAXf+j5blPPxrhjKgnIFc= cloud.google.com/go/baremetalsolution v0.4.0/go.mod h1:BymplhAadOO/eBa7KewQ0Ppg4A4Wplbn+PsFKRLo0uI= cloud.google.com/go/baremetalsolution v0.5.0 h1:2AipdYXL0VxMboelTTw8c1UJ7gYu35LZYUbuRv9Q28s= @@ -181,6 +211,8 @@ cloud.google.com/go/baremetalsolution v1.2.3 h1:oQiFYYCe0vwp7J8ZmF6siVKEumWtiPFJ cloud.google.com/go/baremetalsolution v1.2.3/go.mod h1:/UAQ5xG3faDdy180rCUv47e0jvpp3BFxT+Cl0PFjw5g= cloud.google.com/go/baremetalsolution v1.2.4 h1:LFydisRmS7hQk9P/YhekwuZGqb45TW4QavcrMToWo5A= cloud.google.com/go/baremetalsolution v1.2.4/go.mod h1:BHCmxgpevw9IEryE99HbYEfxXkAEA3hkMJbYYsHtIuY= +cloud.google.com/go/baremetalsolution v1.2.6 h1:W4oSMS6vRCo9DLr1RPyDP8oeLverbvhJRzaZSsipft8= +cloud.google.com/go/baremetalsolution v1.2.6/go.mod h1:KkS2BtYXC7YGbr42067nzFr+ABFMs6cxEcA1F+cedIw= cloud.google.com/go/batch v0.3.0/go.mod h1:TR18ZoAekj1GuirsUsR1ZTKN3FC/4UDnScjT8NXImFE= cloud.google.com/go/batch v0.4.0/go.mod h1:WZkHnP43R/QCGQsZ+0JyG4i79ranE2u8xvjq/9+STPE= cloud.google.com/go/batch v0.7.0 h1:YbMt0E6BtqeD5FvSv1d56jbVsWEzlGm55lYte+M6Mzs= @@ -191,6 +223,8 @@ cloud.google.com/go/batch v1.7.0 h1:AxuSPoL2fWn/rUyvWeNCNd0V2WCr+iHRCU9QO1PUmpY= cloud.google.com/go/batch v1.7.0/go.mod h1:J64gD4vsNSA2O5TtDB5AAux3nJ9iV8U3ilg3JDBYejU= cloud.google.com/go/batch v1.8.0 h1:2HK4JerwVaIcCh/lJiHwh6+uswPthiMMWhiSWLELayk= cloud.google.com/go/batch v1.8.0/go.mod h1:k8V7f6VE2Suc0zUM4WtoibNrA6D3dqBpB+++e3vSGYc= +cloud.google.com/go/batch v1.8.6 h1:yjAV0wkKYqO5Lh20dGdq5HDzQDG2qWWfbirLohNbpn0= +cloud.google.com/go/batch v1.8.6/go.mod h1:rQovrciYbtuY40Uprg/IWLlhmUR1GZYzX9xnymUdfBU= cloud.google.com/go/beyondcorp v0.2.0/go.mod h1:TB7Bd+EEtcw9PCPQhCJtJGjk/7TC6ckmnSFS+xwTfm4= cloud.google.com/go/beyondcorp v0.3.0/go.mod h1:E5U5lcrcXMsCuoDNyGrpyTm/hn7ne941Jz2vmksAxW8= cloud.google.com/go/beyondcorp v0.4.0/go.mod h1:3ApA0mbhHx6YImmuubf5pyW8srKnCEPON32/5hj+RmM= @@ -202,6 +236,8 @@ cloud.google.com/go/beyondcorp v1.0.3 h1:VXf9SnrnSmj2BF2cHkoTHvOUp8gjsz1KJFOMW7c cloud.google.com/go/beyondcorp v1.0.3/go.mod h1:HcBvnEd7eYr+HGDd5ZbuVmBYX019C6CEXBonXbCVwJo= cloud.google.com/go/beyondcorp v1.0.4 h1:qs0J0O9Ol2h1yA0AU+r7l3hOCPzs2MjE1d6d/kaHIKo= cloud.google.com/go/beyondcorp v1.0.4/go.mod h1:Gx8/Rk2MxrvWfn4WIhHIG1NV7IBfg14pTKv1+EArVcc= +cloud.google.com/go/beyondcorp v1.0.6 h1:KBcujO3QRvBIwzZLtvQEPB9SXdovHnMBx0V/uhucH9o= +cloud.google.com/go/beyondcorp v1.0.6/go.mod h1:wRkenqrVRtnGFfnyvIg0zBFUdN2jIfeojFF9JJDwVIA= cloud.google.com/go/bigquery v1.42.0/go.mod h1:8dRTJxhtG+vwBKzE5OseQn/hiydoQN3EedCaOdYmxRA= cloud.google.com/go/bigquery v1.43.0/go.mod h1:ZMQcXHsl+xmU1z36G2jNGZmKp9zNY5BUua5wDgmNCfw= cloud.google.com/go/bigquery v1.44.0/go.mod h1:0Y33VqXTEsbamHJvJHdFmtqHvMIY28aK1+dFsvaChGc= @@ -216,6 +252,8 @@ cloud.google.com/go/bigquery v1.57.1 h1:FiULdbbzUxWD0Y4ZGPSVCDLvqRSyCIO6zKV7E2nf cloud.google.com/go/bigquery v1.57.1/go.mod h1:iYzC0tGVWt1jqSzBHqCr3lrRn0u13E8e+AqowBsDgug= cloud.google.com/go/bigquery v1.59.1 h1:CpT+/njKuKT3CEmswm6IbhNu9u35zt5dO4yPDLW+nG4= cloud.google.com/go/bigquery v1.59.1/go.mod h1:VP1UJYgevyTwsV7desjzNzDND5p6hZB+Z8gZJN1GQUc= +cloud.google.com/go/bigquery v1.61.0 h1:w2Goy9n6gh91LVi6B2Sc+HpBl8WbWhIyzdvVvrAuEIw= +cloud.google.com/go/bigquery v1.61.0/go.mod h1:PjZUje0IocbuTOdq4DBOJLNYB0WF3pAKBHzAYyxCwFo= cloud.google.com/go/bigtable v1.2.0 h1:F4cCmA4nuV84V5zYQ3MKY+M1Cw1avHDuf3S/LcZPA9c= cloud.google.com/go/billing v1.4.0/go.mod h1:g9IdKBEFlItS8bTtlrZdVLWSSdSyFUZKXNS02zKMOZY= cloud.google.com/go/billing v1.5.0/go.mod h1:mztb1tBc3QekhjSgmpf/CV4LzWXLzCArwpLmP2Gm88s= @@ -230,6 +268,8 @@ cloud.google.com/go/billing v1.18.0 h1:GvKy4xLy1zF1XPbwP5NJb2HjRxhnhxjjXxvyZ1S/I cloud.google.com/go/billing v1.18.0/go.mod h1:5DOYQStCxquGprqfuid/7haD7th74kyMBHkjO/OvDtk= cloud.google.com/go/billing v1.18.2 h1:oWUEQvuC4JvtnqLZ35zgzdbuHt4Itbftvzbe6aEyFdE= cloud.google.com/go/billing v1.18.2/go.mod h1:PPIwVsOOQ7xzbADCwNe8nvK776QpfrOAUkvKjCUcpSE= +cloud.google.com/go/billing v1.18.5 h1:GbOg1uGvoV8FXxMStFoNcq5z9AEUwCpKt/6GNcuDSZM= +cloud.google.com/go/billing v1.18.5/go.mod h1:lHw7fxS6p7hLWEPzdIolMtOd0ahLwlokW06BzbleKP8= cloud.google.com/go/binaryauthorization v1.1.0/go.mod h1:xwnoWu3Y84jbuHa0zd526MJYmtnVXn0syOjaJgy4+dM= cloud.google.com/go/binaryauthorization v1.2.0/go.mod h1:86WKkJHtRcv5ViNABtYMhhNWRrD1Vpi//uKEy7aYEfI= cloud.google.com/go/binaryauthorization v1.3.0/go.mod h1:lRZbKgjDIIQvzYQS1p99A7/U1JqvqeZg0wiI5tp6tg0= @@ -242,6 +282,8 @@ cloud.google.com/go/binaryauthorization v1.8.0 h1:PHS89lcFayWIEe0/s2jTBiEOtqghCx cloud.google.com/go/binaryauthorization v1.8.0/go.mod h1:VQ/nUGRKhrStlGr+8GMS8f6/vznYLkdK5vaKfdCIpvU= cloud.google.com/go/binaryauthorization v1.8.1 h1:1jcyh2uIUwSZkJ/JmL8kd5SUkL/Krbv8zmYLEbAz6kY= cloud.google.com/go/binaryauthorization v1.8.1/go.mod h1:1HVRyBerREA/nhI7yLang4Zn7vfNVA3okoAR9qYQJAQ= +cloud.google.com/go/binaryauthorization v1.8.3 h1:RHnEM4HXbWShlGhPA0Jzj2YYETCHxmisNMU0OE2fXQM= +cloud.google.com/go/binaryauthorization v1.8.3/go.mod h1:Cul4SsGlbzEsWPOz2sH8m+g2Xergb6ikspUyQ7iOThE= cloud.google.com/go/certificatemanager v1.3.0/go.mod h1:n6twGDvcUBFu9uBgt4eYvvf3sQ6My8jADcOVwHmzadg= cloud.google.com/go/certificatemanager v1.4.0/go.mod h1:vowpercVFyqs8ABSmrdV+GiFf2H/ch3KyudYQEMM590= cloud.google.com/go/certificatemanager v1.6.0 h1:5C5UWeSt8Jkgp7OWn2rCkLmYurar/vIWIoSQ2+LaTOc= @@ -252,6 +294,8 @@ cloud.google.com/go/certificatemanager v1.7.4 h1:5YMQ3Q+dqGpwUZ9X5sipsOQ1fLPsxod cloud.google.com/go/certificatemanager v1.7.4/go.mod h1:FHAylPe/6IIKuaRmHbjbdLhGhVQ+CWHSD5Jq0k4+cCE= cloud.google.com/go/certificatemanager v1.7.5 h1:UMBr/twXvH3jcT5J5/YjRxf2tvwTYIfrpemTebe0txc= cloud.google.com/go/certificatemanager v1.7.5/go.mod h1:uX+v7kWqy0Y3NG/ZhNvffh0kuqkKZIXdvlZRO7z0VtM= +cloud.google.com/go/certificatemanager v1.8.1 h1:XURrQhj5COWAEvICivbGID/Hu67AvMYHAhMRIyc3Ux8= +cloud.google.com/go/certificatemanager v1.8.1/go.mod h1:hDQzr50Vx2gDB+dOfmDSsQzJy/UPrYRdzBdJ5gAVFIc= cloud.google.com/go/channel v1.8.0/go.mod h1:W5SwCXDJsq/rg3tn3oG0LOxpAo6IMxNa09ngphpSlnk= cloud.google.com/go/channel v1.9.0/go.mod h1:jcu05W0my9Vx4mt3/rEHpfxc9eKi9XwsdDL8yBMbKUk= cloud.google.com/go/channel v1.11.0/go.mod h1:IdtI0uWGqhEeatSB62VOoJ8FSUhJ9/+iGkJVqp74CGE= @@ -263,6 +307,8 @@ cloud.google.com/go/channel v1.17.3 h1:Rd4+fBrjiN6tZ4TR8R/38elkyEkz6oogGDr7jDyjm cloud.google.com/go/channel v1.17.3/go.mod h1:QcEBuZLGGrUMm7kNj9IbU1ZfmJq2apotsV83hbxX7eE= cloud.google.com/go/channel v1.17.5 h1:/omiBnyFjm4S1ETHoOmJbL7LH7Ljcei4rYG6Sj3hc80= cloud.google.com/go/channel v1.17.5/go.mod h1:FlpaOSINDAXgEext0KMaBq/vwpLMkkPAw9b2mApQeHc= +cloud.google.com/go/channel v1.17.7 h1:PrplNaAS6Dn187e+OcGzyEKETX8iL3tCaDqcPPW7Zoo= +cloud.google.com/go/channel v1.17.7/go.mod h1:b+FkgBrhMKM3GOqKUvqHFY/vwgp+rwsAuaMd54wCdN4= cloud.google.com/go/cloudbuild v1.3.0/go.mod h1:WequR4ULxlqvMsjDEEEFnOG5ZSRSgWOywXYDb1vPE6U= cloud.google.com/go/cloudbuild v1.4.0/go.mod h1:5Qwa40LHiOXmz3386FrjrYM93rM/hdRr7b53sySrTqA= cloud.google.com/go/cloudbuild v1.6.0/go.mod h1:UIbc/w9QCbH12xX+ezUsgblrWv+Cv4Tw83GiSMHOn9M= @@ -275,6 +321,8 @@ cloud.google.com/go/cloudbuild v1.15.0 h1:9IHfEMWdCklJ1cwouoiQrnxmP0q3pH7JUt8Hqx cloud.google.com/go/cloudbuild v1.15.0/go.mod h1:eIXYWmRt3UtggLnFGx4JvXcMj4kShhVzGndL1LwleEM= cloud.google.com/go/cloudbuild v1.15.1 h1:ZB6oOmJo+MTov9n629fiCrO9YZPOg25FZvQ7gIHu5ng= cloud.google.com/go/cloudbuild v1.15.1/go.mod h1:gIofXZSu+XD2Uy+qkOrGKEx45zd7s28u/k8f99qKals= +cloud.google.com/go/cloudbuild v1.16.1 h1:zkCG1dBezxRM3dtgQ9h1Y+IJ7V+lARWgp0l9k/SZsfU= +cloud.google.com/go/cloudbuild v1.16.1/go.mod h1:c2KUANTtCBD8AsRavpPout6Vx8W+fsn5zTsWxCpWgq4= cloud.google.com/go/clouddms v1.3.0/go.mod h1:oK6XsCDdW4Ib3jCCBugx+gVjevp2TMXFtgxvPSee3OM= cloud.google.com/go/clouddms v1.4.0/go.mod h1:Eh7sUGCC+aKry14O1NRljhjyrr0NFC0G2cjwX0cByRk= cloud.google.com/go/clouddms v1.5.0 h1:E7v4TpDGUyEm1C/4KIrpVSOCTm0P6vWdHT0I4mostRA= @@ -285,6 +333,8 @@ cloud.google.com/go/clouddms v1.7.3 h1:xe/wJKz55VO1+L891a1EG9lVUgfHr9Ju/I3xh1nwF cloud.google.com/go/clouddms v1.7.3/go.mod h1:fkN2HQQNUYInAU3NQ3vRLkV2iWs8lIdmBKOx4nrL6Hc= cloud.google.com/go/clouddms v1.7.4 h1:Sr0Zo5EAcPQiCBgHWICg3VGkcdS/LLP1d9SR7qQBM/s= cloud.google.com/go/clouddms v1.7.4/go.mod h1:RdrVqoFG9RWI5AvZ81SxJ/xvxPdtcRhFotwdE79DieY= +cloud.google.com/go/clouddms v1.7.6 h1:Q47KKoA0zsNcC9U5aCmop5TPPItVq4cx7Wwqgra+5PU= +cloud.google.com/go/clouddms v1.7.6/go.mod h1:8HWZ2tznZ0mNAtTpfnRNT0QOThqn9MBUqTj0Lx8npIs= cloud.google.com/go/cloudtasks v1.5.0/go.mod h1:fD92REy1x5woxkKEkLdvavGnPJGEn8Uic9nWuLzqCpY= cloud.google.com/go/cloudtasks v1.6.0/go.mod h1:C6Io+sxuke9/KNRkbQpihnW93SWDU3uXt92nu85HkYI= cloud.google.com/go/cloudtasks v1.7.0/go.mod h1:ImsfdYWwlWNJbdgPIIGJWC+gemEGTBK/SunNQQNCAb4= @@ -298,6 +348,8 @@ cloud.google.com/go/cloudtasks v1.12.4 h1:5xXuFfAjg0Z5Wb81j2GAbB3e0bwroCeSF+5jBn cloud.google.com/go/cloudtasks v1.12.4/go.mod h1:BEPu0Gtt2dU6FxZHNqqNdGqIG86qyWKBPGnsb7udGY0= cloud.google.com/go/cloudtasks v1.12.6 h1:EUt1hIZ9bLv8Iz9yWaCrqgMnIU+Tdh0yXM1MMVGhjfE= cloud.google.com/go/cloudtasks v1.12.6/go.mod h1:b7c7fe4+TJsFZfDyzO51F7cjq7HLUlRi/KZQLQjDsaY= +cloud.google.com/go/cloudtasks v1.12.8 h1:Y0HUuiCAVk9BojLItOycBl91tY25NXH8oFsyi1IC/U4= +cloud.google.com/go/cloudtasks v1.12.8/go.mod h1:aX8qWCtmVf4H4SDYUbeZth9C0n9dBj4dwiTYi4Or/P4= cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU= cloud.google.com/go/compute v1.12.0/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU= cloud.google.com/go/compute v1.12.1/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU= @@ -315,8 +367,11 @@ cloud.google.com/go/compute v1.23.1/go.mod h1:CqB3xpmPKKt3OJpW2ndFIXnA9A4xAy/F3X cloud.google.com/go/compute v1.23.4/go.mod h1:/EJMj55asU6kAFnuZET8zqgwgJ9FvXWXOkkfQZa4ioI= cloud.google.com/go/compute v1.24.0/go.mod h1:kw1/T+h/+tK2LJK0wiPPx1intgdAM3j/g3hFDlscY40= cloud.google.com/go/compute v1.25.1/go.mod h1:oopOIR53ly6viBYxaDhBfJwzUAxf1zE//uf3IB011ls= +cloud.google.com/go/compute v1.27.0 h1:EGawh2RUnfHT5g8f/FX3Ds6KZuIBC77hZoDrBvEZw94= +cloud.google.com/go/compute v1.27.0/go.mod h1:LG5HwRmWFKM2C5XxHRiNzkLLXW48WwvyVC0mfWsYPOM= cloud.google.com/go/compute/metadata v0.1.0/go.mod h1:Z1VN+bulIf6bt4P/C37K4DyZYZEXYonfTBHHFPO/4UU= cloud.google.com/go/compute/metadata v0.2.1/go.mod h1:jgHgmJd2RKBGzXqF5LR2EZMGxBkeanZ9wwa75XHJgOM= +cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= cloud.google.com/go/contactcenterinsights v1.3.0/go.mod h1:Eu2oemoePuEFc/xKFPjbTuPSj0fYJcPls9TFlPNnHHY= cloud.google.com/go/contactcenterinsights v1.4.0/go.mod h1:L2YzkGbPsv+vMQMCADxJoT9YiTTnSEd6fEvCeHTYVck= cloud.google.com/go/contactcenterinsights v1.6.0 h1:jXIpfcH/VYSE1SYcPzO0n1VVb+sAamiLOgCw45JbOQk= @@ -327,6 +382,8 @@ cloud.google.com/go/contactcenterinsights v1.12.1 h1:EiGBeejtDDtr3JXt9W7xlhXyZ+R cloud.google.com/go/contactcenterinsights v1.12.1/go.mod h1:HHX5wrz5LHVAwfI2smIotQG9x8Qd6gYilaHcLLLmNis= cloud.google.com/go/contactcenterinsights v1.13.0 h1:6Vs/YnDG5STGjlWMEjN/xtmft7MrOTOnOZYUZtGTx0w= cloud.google.com/go/contactcenterinsights v1.13.0/go.mod h1:ieq5d5EtHsu8vhe2y3amtZ+BE+AQwX5qAy7cpo0POsI= +cloud.google.com/go/contactcenterinsights v1.13.2 h1:46ertIh+cGkTg/lN7fN+TOx09SoM65dpdUp96vXBcMY= +cloud.google.com/go/contactcenterinsights v1.13.2/go.mod h1:AfkSB8t7mt2sIY6WpfO61nD9J9fcidIchtxm9FqJVXk= cloud.google.com/go/container v1.6.0/go.mod h1:Xazp7GjJSeUYo688S+6J5V+n/t+G5sKBTFkKNudGRxg= cloud.google.com/go/container v1.7.0/go.mod h1:Dp5AHtmothHGX3DwwIHPgq45Y8KmNsgN3amoYfxVkLo= cloud.google.com/go/container v1.13.1/go.mod h1:6wgbMPeQRw9rSnKBCAJXnds3Pzj03C4JHamr8asWKy4= @@ -339,6 +396,8 @@ cloud.google.com/go/container v1.29.0 h1:jIltU529R2zBFvP8rhiG1mgeTcnT27KhU0H/1d6 cloud.google.com/go/container v1.29.0/go.mod h1:b1A1gJeTBXVLQ6GGw9/9M4FG94BEGsqJ5+t4d/3N7O4= cloud.google.com/go/container v1.31.0 h1:MAaNH7VRNPWEhvqOypq2j+7ONJKrKzon4v9nS3nLZe0= cloud.google.com/go/container v1.31.0/go.mod h1:7yABn5s3Iv3lmw7oMmyGbeV6tQj86njcTijkkGuvdZA= +cloud.google.com/go/container v1.35.1 h1:Vbu/3PZNrgV1Z5DGcRubQdUccX/uMUDNc+NgHNIfbEk= +cloud.google.com/go/container v1.35.1/go.mod h1:udm8fgLm3TtpnjFN4QLLjZezAIIp/VnMo316yIRVRQU= cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I= cloud.google.com/go/containeranalysis v0.6.0/go.mod h1:HEJoiEIu+lEXM+k7+qLCci0h33lX3ZqoYFdmPcoO7s4= cloud.google.com/go/containeranalysis v0.7.0/go.mod h1:9aUL+/vZ55P2CXfuZjS4UjQ9AgXoSw8Ts6lemfmxBxI= @@ -350,6 +409,8 @@ cloud.google.com/go/containeranalysis v0.11.3 h1:5rhYLX+3a01drpREqBZVXR9YmWH45Rn cloud.google.com/go/containeranalysis v0.11.3/go.mod h1:kMeST7yWFQMGjiG9K7Eov+fPNQcGhb8mXj/UcTiWw9U= cloud.google.com/go/containeranalysis v0.11.4 h1:doJ0M1ljS4hS0D2UbHywlHGwB7sQLNrt9vFk9Zyi7vY= cloud.google.com/go/containeranalysis v0.11.4/go.mod h1:cVZT7rXYBS9NG1rhQbWL9pWbXCKHWJPYraE8/FTSYPE= +cloud.google.com/go/containeranalysis v0.11.6 h1:mSrneOVadcpnDZHJebg+ts/10azGTUKOCSQET7KdT7g= +cloud.google.com/go/containeranalysis v0.11.6/go.mod h1:YRf7nxcTcN63/Kz9f86efzvrV33g/UV8JDdudRbYEUI= cloud.google.com/go/datacatalog v1.3.0/go.mod h1:g9svFY6tuR+j+hrTw3J2dNcmI0dzmSiyOzm8kpLq0a0= cloud.google.com/go/datacatalog v1.5.0/go.mod h1:M7GPLNQeLfWqeIm3iuiruhPzkt65+Bx8dAKvScX8jvs= cloud.google.com/go/datacatalog v1.6.0/go.mod h1:+aEyF8JKg+uXcIdAmmaMUmZ3q1b/lKLtXCmXdnc0lbc= @@ -365,6 +426,8 @@ cloud.google.com/go/datacatalog v1.19.0 h1:rbYNmHwvAOOwnW2FPXYkaK3Mf1MmGqRzK0mMi cloud.google.com/go/datacatalog v1.19.0/go.mod h1:5FR6ZIF8RZrtml0VUao22FxhdjkoG+a0866rEnObryM= cloud.google.com/go/datacatalog v1.19.3 h1:A0vKYCQdxQuV4Pi0LL9p39Vwvg4jH5yYveMv50gU5Tw= cloud.google.com/go/datacatalog v1.19.3/go.mod h1:ra8V3UAsciBpJKQ+z9Whkxzxv7jmQg1hfODr3N3YPJ4= +cloud.google.com/go/datacatalog v1.20.1 h1:czcba5mxwRM5V//jSadyig0y+8aOHmN7gUl9GbHu59E= +cloud.google.com/go/datacatalog v1.20.1/go.mod h1:Jzc2CoHudhuZhpv78UBAjMEg3w7I9jHA11SbRshWUjk= cloud.google.com/go/dataflow v0.6.0/go.mod h1:9QwV89cGoxjjSR9/r7eFDqqjtvbKxAK2BaYU6PVk9UM= cloud.google.com/go/dataflow v0.7.0/go.mod h1:PX526vb4ijFMesO1o202EaUmouZKBpjHsTlCtB4parQ= cloud.google.com/go/dataflow v0.8.0 h1:eYyD9o/8Nm6EttsKZaEGD84xC17bNgSKCu0ZxwqUbpg= @@ -375,6 +438,8 @@ cloud.google.com/go/dataflow v0.9.4 h1:7VmCNWcPJBS/srN2QnStTB6nu4Eb5TMcpkmtaPVhR cloud.google.com/go/dataflow v0.9.4/go.mod h1:4G8vAkHYCSzU8b/kmsoR2lWyHJD85oMJPHMtan40K8w= cloud.google.com/go/dataflow v0.9.5 h1:RYHtcPhmE664+F0Je46p+NvFbG8z//KCXp+uEqB4jZU= cloud.google.com/go/dataflow v0.9.5/go.mod h1:udl6oi8pfUHnL0z6UN9Lf9chGqzDMVqcYTcZ1aPnCZQ= +cloud.google.com/go/dataflow v0.9.7 h1:wKEakCbRevlwsWqTn34pWJUFmdbx0HKwpRH6HhU7NIs= +cloud.google.com/go/dataflow v0.9.7/go.mod h1:3BjkOxANrm1G3+/EBnEsTEEgJu1f79mFqoOOZfz3v+E= cloud.google.com/go/dataform v0.3.0/go.mod h1:cj8uNliRlHpa6L3yVhDOBrUXH+BPAO1+KFMQQNSThKo= cloud.google.com/go/dataform v0.4.0/go.mod h1:fwV6Y4Ty2yIFL89huYlEkwUPtS7YZinZbzzj5S9FzCE= cloud.google.com/go/dataform v0.5.0/go.mod h1:GFUYRe8IBa2hcomWplodVmUx/iTL0FrsauObOM3Ipr0= @@ -387,6 +452,8 @@ cloud.google.com/go/dataform v0.9.1 h1:jV+EsDamGX6cE127+QAcCR/lergVeeZdEQ6DdrxW3 cloud.google.com/go/dataform v0.9.1/go.mod h1:pWTg+zGQ7i16pyn0bS1ruqIE91SdL2FDMvEYu/8oQxs= cloud.google.com/go/dataform v0.9.2 h1:5e4eqGrd0iDTCg4Q+VlAao5j2naKAA7xRurNtwmUknU= cloud.google.com/go/dataform v0.9.2/go.mod h1:S8cQUwPNWXo7m/g3DhWHsLBoufRNn9EgFrMgne2j7cI= +cloud.google.com/go/dataform v0.9.4 h1:MiK1Us7YP9+sdNViUE4X2B2vLScrKcjOPw5b6uamZvE= +cloud.google.com/go/dataform v0.9.4/go.mod h1:jjo4XY+56UrNE0wsEQsfAw4caUs4DLJVSyFBDelRDtQ= cloud.google.com/go/datafusion v1.4.0/go.mod h1:1Zb6VN+W6ALo85cXnM1IKiPw+yQMKMhB9TsTSRDo/38= cloud.google.com/go/datafusion v1.5.0/go.mod h1:Kz+l1FGHB0J+4XF2fud96WMmRiq/wj8N9u007vyXZ2w= cloud.google.com/go/datafusion v1.6.0 h1:sZjRnS3TWkGsu1LjYPFD/fHeMLZNXDK6PDHi2s2s/bk= @@ -397,6 +464,8 @@ cloud.google.com/go/datafusion v1.7.4 h1:Q90alBEYlMi66zL5gMSGQHfbZLB55mOAg03DhwT cloud.google.com/go/datafusion v1.7.4/go.mod h1:BBs78WTOLYkT4GVZIXQCZT3GFpkpDN4aBY4NDX/jVlM= cloud.google.com/go/datafusion v1.7.5 h1:HQ/BUOP8OIGJxuztpYvNvlb+/U+/Bfs9SO8tQbh61fk= cloud.google.com/go/datafusion v1.7.5/go.mod h1:bYH53Oa5UiqahfbNK9YuYKteeD4RbQSNMx7JF7peGHc= +cloud.google.com/go/datafusion v1.7.7 h1:ViFnMnUK7LNcWvisZgihxXit76JxSHFeijYI5U/gjOE= +cloud.google.com/go/datafusion v1.7.7/go.mod h1:qGTtQcUs8l51lFA9ywuxmZJhS4ozxsBSus6ItqCUWMU= cloud.google.com/go/datalabeling v0.5.0/go.mod h1:TGcJ0G2NzcsXSE/97yWjIZO0bXj0KbVlINXMG9ud42I= cloud.google.com/go/datalabeling v0.6.0/go.mod h1:WqdISuk/+WIGeMkpw/1q7bK/tFEZxsrFJOJdY2bXvTQ= cloud.google.com/go/datalabeling v0.7.0 h1:ch4qA2yvddGRUrlfwrNJCr79qLqhS9QBwofPHfFlDIk= @@ -407,6 +476,8 @@ cloud.google.com/go/datalabeling v0.8.4 h1:zrq4uMmunf2KFDl/7dS6iCDBBAxBnKVDyw6+a cloud.google.com/go/datalabeling v0.8.4/go.mod h1:Z1z3E6LHtffBGrNUkKwbwbDxTiXEApLzIgmymj8A3S8= cloud.google.com/go/datalabeling v0.8.5 h1:GpIFRdm0qIZNsxqURFJwHt0ZBJZ0nF/mUVEigR7PH/8= cloud.google.com/go/datalabeling v0.8.5/go.mod h1:IABB2lxQnkdUbMnQaOl2prCOfms20mcPxDBm36lps+s= +cloud.google.com/go/datalabeling v0.8.7 h1:M6irSHns6VxMro+IbvDxDJLD6tkfjlW+mo2MPaM23KA= +cloud.google.com/go/datalabeling v0.8.7/go.mod h1:/PPncW5gxrU15UzJEGQoOT3IobeudHGvoExrtZ8ZBwo= cloud.google.com/go/dataplex v1.3.0/go.mod h1:hQuRtDg+fCiFgC8j0zV222HvzFQdRd+SVX8gdmFcZzA= cloud.google.com/go/dataplex v1.4.0/go.mod h1:X51GfLXEMVJ6UN47ESVqvlsRplbLhcsAt0kZCCKsU0A= cloud.google.com/go/dataplex v1.5.2/go.mod h1:cVMgQHsmfRoI5KFYq4JtIBEUbYwc3c7tXmIDhRmNNVQ= @@ -418,6 +489,8 @@ cloud.google.com/go/dataplex v1.13.0 h1:ACVOuxwe7gP0SqEso9SLyXbcZNk5l8hjcTX+XLnt cloud.google.com/go/dataplex v1.13.0/go.mod h1:mHJYQQ2VEJHsyoC0OdNyy988DvEbPhqFs5OOLffLX0c= cloud.google.com/go/dataplex v1.14.2 h1:fxIfdU8fxzR3clhOoNI7XFppvAmndxDu1AMH+qX9WKQ= cloud.google.com/go/dataplex v1.14.2/go.mod h1:0oGOSFlEKef1cQeAHXy4GZPB/Ife0fz/PxBf+ZymA2U= +cloud.google.com/go/dataplex v1.16.0 h1:e8SV0yKuSjgHEZaQcZwjKXe0ta1jZrvLxX/2i/IAG+8= +cloud.google.com/go/dataplex v1.16.0/go.mod h1:OlBoytuQ56+7aUCC03D34CtoF/4TJ5SiIrLsBdDu87Q= cloud.google.com/go/dataproc v1.7.0/go.mod h1:CKAlMjII9H90RXaMpSxQ8EU6dQx6iAYNPcYPOkSbi8s= cloud.google.com/go/dataproc v1.8.0/go.mod h1:5OW+zNAH0pMpw14JVrPONsxMQYMBqJuzORhIBfBn9uI= cloud.google.com/go/dataproc v1.12.0 h1:W47qHL3W4BPkAIbk4SWmIERwsWBaNnWm0P2sdx3YgGU= @@ -428,6 +501,8 @@ cloud.google.com/go/dataproc/v2 v2.3.0 h1:tTVP9tTxmc8fixxOd/8s6Q6Pz/+yzn7r7XdZHr cloud.google.com/go/dataproc/v2 v2.3.0/go.mod h1:G5R6GBc9r36SXv/RtZIVfB8SipI+xVn0bX5SxUzVYbY= cloud.google.com/go/dataproc/v2 v2.4.0 h1:/u81Fd+BvCLp+xjctI1DiWVJn6cn9/s3Akc8xPH02yk= cloud.google.com/go/dataproc/v2 v2.4.0/go.mod h1:3B1Ht2aRB8VZIteGxQS/iNSJGzt9+CA0WGnDVMEm7Z4= +cloud.google.com/go/dataproc/v2 v2.4.2 h1:RNMG5ffWKdbWOkwvjC4GqxLaxEaWFpm2hQCF2WFW/vo= +cloud.google.com/go/dataproc/v2 v2.4.2/go.mod h1:smGSj1LZP3wtnsM9eyRuDYftNAroAl6gvKp/Wk64XDE= cloud.google.com/go/dataqna v0.5.0/go.mod h1:90Hyk596ft3zUQ8NkFfvICSIfHFh1Bc7C4cK3vbhkeo= cloud.google.com/go/dataqna v0.6.0/go.mod h1:1lqNpM7rqNLVgWBJyk5NF6Uen2PHym0jtVJonplVsDA= cloud.google.com/go/dataqna v0.7.0 h1:yFzi/YU4YAdjyo7pXkBE2FeHbgz5OQQBVDdbErEHmVQ= @@ -438,6 +513,8 @@ cloud.google.com/go/dataqna v0.8.4 h1:NJnu1kAPamZDs/if3bJ3+Wb6tjADHKL83NUWsaIp2z cloud.google.com/go/dataqna v0.8.4/go.mod h1:mySRKjKg5Lz784P6sCov3p1QD+RZQONRMRjzGNcFd0c= cloud.google.com/go/dataqna v0.8.5 h1:9ybXs3nr9BzxSGC04SsvtuXaHY0qmJSLIpIAbZo9GqQ= cloud.google.com/go/dataqna v0.8.5/go.mod h1:vgihg1mz6n7pb5q2YJF7KlXve6tCglInd6XO0JGOlWM= +cloud.google.com/go/dataqna v0.8.7 h1:qM60MGNTGsSJuzAziVJjtRA7pGby2dA8OuqdVRe/lYo= +cloud.google.com/go/dataqna v0.8.7/go.mod h1:hvxGaSvINAVH5EJJsONIwT1y+B7OQogjHPjizOFoWOo= cloud.google.com/go/datastore v1.10.0/go.mod h1:PC5UzAmDEkAmkfaknstTYbNpgE49HAgW2J1gcgUfmdM= cloud.google.com/go/datastore v1.11.0 h1:iF6I/HaLs3Ado8uRKMvZRvF/ZLkWaWE9i8AiHzbC774= cloud.google.com/go/datastore v1.11.0/go.mod h1:TvGxBIHCS50u8jzG+AW/ppf87v1of8nwzFNgEZU1D3c= @@ -445,6 +522,8 @@ cloud.google.com/go/datastore v1.13.0 h1:ktbC66bOQB3HJPQe8qNI1/aiQ77PMu7hD4mzE6u cloud.google.com/go/datastore v1.13.0/go.mod h1:KjdB88W897MRITkvWWJrg2OUtrR5XVj1EoLgSp6/N70= cloud.google.com/go/datastore v1.15.0 h1:0P9WcsQeTWjuD1H14JIY7XQscIPQ4Laje8ti96IC5vg= cloud.google.com/go/datastore v1.15.0/go.mod h1:GAeStMBIt9bPS7jMJA85kgkpsMkvseWWXiaHya9Jes8= +cloud.google.com/go/datastore v1.17.0 h1:UEmzuUdyDE58HV2jcb0BoqwCAwsJS2mtHapCsMmhVh0= +cloud.google.com/go/datastore v1.17.0/go.mod h1:RiRZU0G6VVlIVlv1HRo3vSAPFHULV0ddBNsXO+Sony4= cloud.google.com/go/datastream v1.2.0/go.mod h1:i/uTP8/fZwgATHS/XFu0TcNUhuA0twZxxQ3EyCUQMwo= cloud.google.com/go/datastream v1.3.0/go.mod h1:cqlOX8xlyYF/uxhiKn6Hbv6WjwPPuI9W2M9SAXwaLLQ= cloud.google.com/go/datastream v1.4.0/go.mod h1:h9dpzScPhDTs5noEMQVWP8Wx8AFBRyS0s8KWPx/9r0g= @@ -458,6 +537,8 @@ cloud.google.com/go/datastream v1.10.3 h1:Z2sKPIB7bT2kMW5Uhxy44ZgdJzxzE5uKjavoW+ cloud.google.com/go/datastream v1.10.3/go.mod h1:YR0USzgjhqA/Id0Ycu1VvZe8hEWwrkjuXrGbzeDOSEA= cloud.google.com/go/datastream v1.10.4 h1:o1QDKMo/hk0FN7vhoUQURREuA0rgKmnYapB+1M+7Qz4= cloud.google.com/go/datastream v1.10.4/go.mod h1:7kRxPdxZxhPg3MFeCSulmAJnil8NJGGvSNdn4p1sRZo= +cloud.google.com/go/datastream v1.10.6 h1:FfNUy9j3aRQ99L4a5Rdm82RMuiw0BIe3lpPn2ykom8k= +cloud.google.com/go/datastream v1.10.6/go.mod h1:lPeXWNbQ1rfRPjBFBLUdi+5r7XrniabdIiEaCaAU55o= cloud.google.com/go/deploy v1.4.0/go.mod h1:5Xghikd4VrmMLNaF6FiRFDlHb59VM59YoDQnOUdsH/c= cloud.google.com/go/deploy v1.5.0/go.mod h1:ffgdD0B89tToyW/U/D2eL0jN2+IEV/3EMuXHA0l4r+s= cloud.google.com/go/deploy v1.6.0/go.mod h1:f9PTHehG/DjCom3QH0cntOVRm93uGBDt2vKzAPwpXQI= @@ -469,6 +550,8 @@ cloud.google.com/go/deploy v1.16.0 h1:5OVjzm8MPC5kP+Ywbs0mdE0O7AXvAUXksSyHAyMFyM cloud.google.com/go/deploy v1.16.0/go.mod h1:e5XOUI5D+YGldyLNZ21wbp9S8otJbBE4i88PtO9x/2g= cloud.google.com/go/deploy v1.17.1 h1:m27Ojwj03gvpJqCbodLYiVmE9x4/LrHGGMjzc0LBfM4= cloud.google.com/go/deploy v1.17.1/go.mod h1:SXQyfsXrk0fBmgBHRzBjQbZhMfKZ3hMQBw5ym7MN/50= +cloud.google.com/go/deploy v1.19.0 h1:fzbObuGgoViO0ArFuOQIJ2yr5bH5YzbORVvMDBrDC5I= +cloud.google.com/go/deploy v1.19.0/go.mod h1:BW9vAujmxi4b/+S7ViEuYR65GiEsqL6Mhf5S/9TeDRU= cloud.google.com/go/dialogflow v1.15.0/go.mod h1:HbHDWs33WOGJgn6rfzBW1Kv807BE3O1+xGbn59zZWI4= cloud.google.com/go/dialogflow v1.16.1/go.mod h1:po6LlzGfK+smoSmTBnbkIZY2w8ffjz/RcGSS+sh1el0= cloud.google.com/go/dialogflow v1.17.0/go.mod h1:YNP09C/kXA1aZdBgC/VtXX74G/TKn7XVCcVumTflA+8= @@ -484,6 +567,8 @@ cloud.google.com/go/dialogflow v1.47.0 h1:tLCWad8HZhlyUNfDzDP5m+oH6h/1Uvw/ei7B9A cloud.google.com/go/dialogflow v1.47.0/go.mod h1:mHly4vU7cPXVweuB5R0zsYKPMzy240aQdAu06SqBbAQ= cloud.google.com/go/dialogflow v1.49.0 h1:KqG0oxGE71qo0lRVyAoeBozefCvsMfcDzDjoLYSY0F4= cloud.google.com/go/dialogflow v1.49.0/go.mod h1:dhVrXKETtdPlpPhE7+2/k4Z8FRNUp6kMV3EW3oz/fe0= +cloud.google.com/go/dialogflow v1.53.0 h1:C9wQ0odRYQsar0XqwCQb0c13BkRBsoSjOaejOg5ntgQ= +cloud.google.com/go/dialogflow v1.53.0/go.mod h1:LqAvxq7bXiiGC3/DWIz9XXCxth2z2qpSnBAAmlNOj6U= cloud.google.com/go/dlp v1.6.0/go.mod h1:9eyB2xIhpU0sVwUixfBubDoRwP+GjeUoxxeueZmqvmM= cloud.google.com/go/dlp v1.7.0/go.mod h1:68ak9vCiMBjbasxeVD17hVPxDEck+ExiHavX8kiHG+Q= cloud.google.com/go/dlp v1.9.0 h1:1JoJqezlgu6NWCroBxr4rOZnwNFILXr4cB9dMaSKO4A= @@ -494,6 +579,8 @@ cloud.google.com/go/dlp v1.11.1 h1:OFlXedmPP/5//X1hBEeq3D9kUVm9fb6ywYANlpv/EsQ= cloud.google.com/go/dlp v1.11.1/go.mod h1:/PA2EnioBeXTL/0hInwgj0rfsQb3lpE3R8XUJxqUNKI= cloud.google.com/go/dlp v1.11.2 h1:lTipOuJaSjlYnnotPMbEhKURLC6GzCMDDzVbJAEbmYM= cloud.google.com/go/dlp v1.11.2/go.mod h1:9Czi+8Y/FegpWzgSfkRlyz+jwW6Te9Rv26P3UfU/h/w= +cloud.google.com/go/dlp v1.13.0 h1:T7p+nTgLyp++5WcYAYD9+hVA5TsYWD4zasD5LsoyhvU= +cloud.google.com/go/dlp v1.13.0/go.mod h1:5T/dFtKOn2Q3QLnaKjjir7nEGA8K00WaqoKodLkbF/c= cloud.google.com/go/documentai v1.7.0/go.mod h1:lJvftZB5NRiFSX4moiye1SMxHx0Bc3x1+p9e/RfXYiU= cloud.google.com/go/documentai v1.8.0/go.mod h1:xGHNEB7CtsnySCNrCFdCyyMz44RhFEEX2Q7UD0c5IhU= cloud.google.com/go/documentai v1.9.0/go.mod h1:FS5485S8R00U10GhgBC0aNGrJxBP8ZVpEeJ7PQDZd6k= @@ -507,6 +594,8 @@ cloud.google.com/go/documentai v1.23.7 h1:hlYieOXUwiJ7HpBR/vEPfr8nfSxveLVzbqbUkS cloud.google.com/go/documentai v1.23.7/go.mod h1:ghzBsyVTiVdkfKaUCum/9bGBEyBjDO4GfooEcYKhN+g= cloud.google.com/go/documentai v1.25.0 h1:lI62GMEEPO6vXJI9hj+G9WjOvnR0hEjvjokrnex4cxA= cloud.google.com/go/documentai v1.25.0/go.mod h1:ftLnzw5VcXkLItp6pw1mFic91tMRyfv6hHEY5br4KzY= +cloud.google.com/go/documentai v1.28.1 h1:UrEp5LASw0zIxBJaVsXSCHYpsMB9YcVZ66CPOmJQWyo= +cloud.google.com/go/documentai v1.28.1/go.mod h1:dOMSDsZQoyguECOiT1XeR4PoJeALsXqlJjLIEk+QneY= cloud.google.com/go/domains v0.6.0/go.mod h1:T9Rz3GasrpYk6mEGHh4rymIhjlnIuB4ofT1wTxDeT4Y= cloud.google.com/go/domains v0.7.0/go.mod h1:PtZeqS1xjnXuRPKE/88Iru/LdfoRyEHYA9nFQf4UKpg= cloud.google.com/go/domains v0.8.0 h1:2ti/o9tlWL4N+wIuWUNH+LbfgpwxPr8J1sv9RHA4bYQ= @@ -517,6 +606,8 @@ cloud.google.com/go/domains v0.9.4 h1:ua4GvsDztZ5F3xqjeLKVRDeOvJshf5QFgWGg1CKti3 cloud.google.com/go/domains v0.9.4/go.mod h1:27jmJGShuXYdUNjyDG0SodTfT5RwLi7xmH334Gvi3fY= cloud.google.com/go/domains v0.9.5 h1:Mml/R6s3vQQvFPpi/9oX3O5dRirgjyJ8cksK8N19Y7g= cloud.google.com/go/domains v0.9.5/go.mod h1:dBzlxgepazdFhvG7u23XMhmMKBjrkoUNaw0A8AQB55Y= +cloud.google.com/go/domains v0.9.7 h1:IixFIMRzUJWZUAOe8s/K2X4Bvtp0A3xjHLljfNC4aSo= +cloud.google.com/go/domains v0.9.7/go.mod h1:u/yVf3BgfPJW3QDZl51qTJcDXo9PLqnEIxfGmGgbHEc= cloud.google.com/go/edgecontainer v0.1.0/go.mod h1:WgkZ9tp10bFxqO8BLPqv2LlfmQF1X8lZqwW4r1BTajk= cloud.google.com/go/edgecontainer v0.2.0/go.mod h1:RTmLijy+lGpQ7BXuTDa4C4ssxyXT34NIuHIgKuP4s5w= cloud.google.com/go/edgecontainer v0.3.0/go.mod h1:FLDpP4nykgwwIfcLt6zInhprzw0lEi2P1fjO6Ie0qbc= @@ -528,6 +619,8 @@ cloud.google.com/go/edgecontainer v1.1.4 h1:Szy3Q/N6bqgQGyxqjI+6xJZbmvPvnFHp3UZr cloud.google.com/go/edgecontainer v1.1.4/go.mod h1:AvFdVuZuVGdgaE5YvlL1faAoa1ndRR/5XhXZvPBHbsE= cloud.google.com/go/edgecontainer v1.1.5 h1:tBY32km78ScpK2aOP84JoW/+wtpx5WluyPUSEE3270U= cloud.google.com/go/edgecontainer v1.1.5/go.mod h1:rgcjrba3DEDEQAidT4yuzaKWTbkTI5zAMu3yy6ZWS0M= +cloud.google.com/go/edgecontainer v1.2.1 h1:xa6MIQhGylE24QdWaxhfIfAJE3Pupcr+i77WEx3NJrg= +cloud.google.com/go/edgecontainer v1.2.1/go.mod h1:OE2D0lbkmGDVYLCvpj8Y0M4a4K076QB7E2JupqOR/qU= cloud.google.com/go/errorreporting v0.3.0 h1:kj1XEWMu8P0qlLhm3FwcaFsUvXChV/OraZwA70trRR0= cloud.google.com/go/errorreporting v0.3.0/go.mod h1:xsP2yaAp+OAW4OIm60An2bbLpqIhKXdWR/tawvl7QzU= cloud.google.com/go/essentialcontacts v1.3.0/go.mod h1:r+OnHa5jfj90qIfZDO/VztSFqbQan7HV75p8sA+mdGI= @@ -540,6 +633,8 @@ cloud.google.com/go/essentialcontacts v1.6.5 h1:S2if6wkjR4JCEAfDtIiYtD+sTz/oXjh2 cloud.google.com/go/essentialcontacts v1.6.5/go.mod h1:jjYbPzw0x+yglXC890l6ECJWdYeZ5dlYACTFL0U/VuM= cloud.google.com/go/essentialcontacts v1.6.6 h1:13eHn5qBnsawxI7mIrv4jRIEmQ1xg0Ztqw5ZGqtUNfA= cloud.google.com/go/essentialcontacts v1.6.6/go.mod h1:XbqHJGaiH0v2UvtuucfOzFXN+rpL/aU5BCZLn4DYl1Q= +cloud.google.com/go/essentialcontacts v1.6.8 h1:p5Y7ZNVPiV9pEAHzvWiPcSiQRMQqcuHxOP0ZOP0vVww= +cloud.google.com/go/essentialcontacts v1.6.8/go.mod h1:EHONVDSum2xxG2p+myyVda/FwwvGbY58ZYC4XqI/lDQ= cloud.google.com/go/eventarc v1.7.0/go.mod h1:6ctpF3zTnaQCxUjHUdcfgcA1A2T309+omHZth7gDfmc= cloud.google.com/go/eventarc v1.8.0/go.mod h1:imbzxkyAU4ubfsaKYdQg04WS1NvncblHEup4kvF+4gw= cloud.google.com/go/eventarc v1.10.0/go.mod h1:u3R35tmZ9HvswGRBnF48IlYgYeBcPUCjkr4BTdem2Kw= @@ -551,6 +646,8 @@ cloud.google.com/go/eventarc v1.13.3 h1:+pFmO4eu4dOVipSaFBLkmqrRYG94Xl/TQZFOeohk cloud.google.com/go/eventarc v1.13.3/go.mod h1:RWH10IAZIRcj1s/vClXkBgMHwh59ts7hSWcqD3kaclg= cloud.google.com/go/eventarc v1.13.4 h1:ORkd6/UV5FIdA8KZQDLNZYKS7BBOrj0p01DXPmT4tE4= cloud.google.com/go/eventarc v1.13.4/go.mod h1:zV5sFVoAa9orc/52Q+OuYUG9xL2IIZTbbuTHC6JSY8s= +cloud.google.com/go/eventarc v1.13.6 h1:we+qx5uCZ88aQzQS3MJXRvAh/ik+EmqVyjcW1oYFW44= +cloud.google.com/go/eventarc v1.13.6/go.mod h1:QReOaYnDNdjwAQQWNC7nfr63WnaKFUw7MSdQ9PXJYj0= cloud.google.com/go/filestore v1.3.0/go.mod h1:+qbvHGvXU1HaKX2nD0WEPo92TP/8AQuCVEBXNY9z0+w= cloud.google.com/go/filestore v1.4.0/go.mod h1:PaG5oDfo9r224f8OYXURtAsY+Fbyq/bLYoINEK8XQAI= cloud.google.com/go/filestore v1.5.0/go.mod h1:FqBXDWBp4YLHqRnVGveOkHDf8svj9r5+mUDLupOWEDs= @@ -562,12 +659,16 @@ cloud.google.com/go/filestore v1.8.0 h1:/+wUEGwk3x3Kxomi2cP5dsR8+SIXxo7M0THDjreF cloud.google.com/go/filestore v1.8.0/go.mod h1:S5JCxIbFjeBhWMTfIYH2Jx24J6BqjwpkkPl+nBA5DlI= cloud.google.com/go/filestore v1.8.1 h1:X5G4y/vrUo1B8Nsz93qSWTMAcM8LXbGUldq33OdcdCw= cloud.google.com/go/filestore v1.8.1/go.mod h1:MbN9KcaM47DRTIuLfQhJEsjaocVebNtNQhSLhKCF5GM= +cloud.google.com/go/filestore v1.8.3 h1:CpRnsUpMU5gxUKyfh7TD0SM+E+7E4ORaDea2JctKfpY= +cloud.google.com/go/filestore v1.8.3/go.mod h1:QTpkYpKBF6jlPRmJwhLqXfJQjVrQisplyb4e2CwfJWc= cloud.google.com/go/firestore v1.9.0 h1:IBlRyxgGySXu5VuW0RgGFlTtLukSnNkpDiEOMkQkmpA= cloud.google.com/go/firestore v1.9.0/go.mod h1:HMkjKHNTtRyZNiMzu7YAsLr9K3X2udY2AMwDaMEQiiE= cloud.google.com/go/firestore v1.12.0 h1:aeEA/N7DW7+l2u5jtkO8I0qv0D95YwjggD8kUHrTHO4= cloud.google.com/go/firestore v1.12.0/go.mod h1:b38dKhgzlmNNGTNZZwe7ZRFEuRab1Hay3/DBsIGKKy4= cloud.google.com/go/firestore v1.14.0 h1:8aLcKnMPoldYU3YHgu4t2exrKhLQkqaXAGqT0ljrFVw= cloud.google.com/go/firestore v1.14.0/go.mod h1:96MVaHLsEhbvkBEdZgfN+AS/GIkco1LRpH9Xp9YZfzQ= +cloud.google.com/go/firestore v1.15.0 h1:/k8ppuWOtNuDHt2tsRV42yI21uaGnKDEQnRFeBpbFF8= +cloud.google.com/go/firestore v1.15.0/go.mod h1:GWOxFXcv8GZUtYpWHw/w6IuYNux/BtmeVTMmjrm4yhk= cloud.google.com/go/functions v1.6.0/go.mod h1:3H1UA3qiIPRWD7PeZKLvHZ9SaQhR26XIJcC0A5GbvAk= cloud.google.com/go/functions v1.7.0/go.mod h1:+d+QBcWM+RsrgZfV9xo6KfA1GlzJfxcfZcRPEhDDfzg= cloud.google.com/go/functions v1.8.0/go.mod h1:RTZ4/HsQjIqIYP9a9YPbU+QFoQsAlYgrwOXJWHn1POY= @@ -582,6 +683,8 @@ cloud.google.com/go/functions v1.15.4 h1:ZjdiV3MyumRM6++1Ixu6N0VV9LAGlCX4AhW6Yjr cloud.google.com/go/functions v1.15.4/go.mod h1:CAsTc3VlRMVvx+XqXxKqVevguqJpnVip4DdonFsX28I= cloud.google.com/go/functions v1.16.0 h1:IWVylmK5F6hJ3R5zaRW7jI5PrWhCvtBVU4axQLmXSo4= cloud.google.com/go/functions v1.16.0/go.mod h1:nbNpfAG7SG7Duw/o1iZ6ohvL7mc6MapWQVpqtM29n8k= +cloud.google.com/go/functions v1.16.2 h1:83bd2lCgtu2nLbX2jrqsrQhIs7VuVA1N6Op5syeRVIg= +cloud.google.com/go/functions v1.16.2/go.mod h1:+gMvV5E3nMb9EPqX6XwRb646jTyVz8q4yk3DD6xxHpg= cloud.google.com/go/gaming v1.5.0/go.mod h1:ol7rGcxP/qHTRQE/RO4bxkXq+Fix0j6D4LFPzYTIrDM= cloud.google.com/go/gaming v1.6.0/go.mod h1:YMU1GEvA39Qt3zWGyAVA9bpYz/yAhTvaQ1t2sK4KPUA= cloud.google.com/go/gaming v1.7.0/go.mod h1:LrB8U7MHdGgFG851iHAfqUdLcKBdQ55hzXy9xBJz0+w= @@ -600,6 +703,8 @@ cloud.google.com/go/gkebackup v1.3.4 h1:KhnOrr9A1tXYIYeXKqCKbCI8TL2ZNGiD3dm+d7BD cloud.google.com/go/gkebackup v1.3.4/go.mod h1:gLVlbM8h/nHIs09ns1qx3q3eaXcGSELgNu1DWXYz1HI= cloud.google.com/go/gkebackup v1.3.5 h1:iuE8KNtTsPOc79qeWoNS8zOWoXPD9SAdOmwgxtlCmh8= cloud.google.com/go/gkebackup v1.3.5/go.mod h1:KJ77KkNN7Wm1LdMopOelV6OodM01pMuK2/5Zt1t4Tvc= +cloud.google.com/go/gkebackup v1.5.0 h1:wysUXEkggPwENZY3BXroOyWoyVfPypzaqNHgOZD9Kck= +cloud.google.com/go/gkebackup v1.5.0/go.mod h1:eLaf/+n8jEmIvOvDriGjo99SN7wRvVadoqzbZu0WzEw= cloud.google.com/go/gkeconnect v0.5.0/go.mod h1:c5lsNAg5EwAy7fkqX/+goqFsU1Da/jQFqArp+wGNr/o= cloud.google.com/go/gkeconnect v0.6.0/go.mod h1:Mln67KyU/sHJEBY8kFZ0xTeyPtzbq9StAVvEULYK16A= cloud.google.com/go/gkeconnect v0.7.0 h1:gXYKciHS/Lgq0GJ5Kc9SzPA35NGc3yqu6SkjonpEr2Q= @@ -610,6 +715,8 @@ cloud.google.com/go/gkeconnect v0.8.4 h1:1JLpZl31YhQDQeJ98tK6QiwTpgHFYRJwpntggpQ cloud.google.com/go/gkeconnect v0.8.4/go.mod h1:84hZz4UMlDCKl8ifVW8layK4WHlMAFeq8vbzjU0yJkw= cloud.google.com/go/gkeconnect v0.8.5 h1:17d+ZSSXKqG/RwZCq3oFMIWLPI8Zw3b8+a9/BEVlwH0= cloud.google.com/go/gkeconnect v0.8.5/go.mod h1:LC/rS7+CuJ5fgIbXv8tCD/mdfnlAadTaUufgOkmijuk= +cloud.google.com/go/gkeconnect v0.8.7 h1:BfXsTXYs5xlicAlgbtlo8Cw+YdzU3PrlBg7dATJUwrk= +cloud.google.com/go/gkeconnect v0.8.7/go.mod h1:iUH1jgQpTyNFMK5LgXEq2o0beIJ2p7KKUUFerkf/eGc= cloud.google.com/go/gkehub v0.9.0/go.mod h1:WYHN6WG8w9bXU0hqNxt8rm5uxnk8IH+lPY9J2TV7BK0= cloud.google.com/go/gkehub v0.10.0/go.mod h1:UIPwxI0DsrpsVoWpLB0stwKCP+WFVG9+y977wO+hBH0= cloud.google.com/go/gkehub v0.11.0/go.mod h1:JOWHlmN+GHyIbuWQPl47/C2RFhnFKH38jH9Ascu3n0E= @@ -621,6 +728,8 @@ cloud.google.com/go/gkehub v0.14.4 h1:J5tYUtb3r0cl2mM7+YHvV32eL+uZQ7lONyUZnPikCE cloud.google.com/go/gkehub v0.14.4/go.mod h1:Xispfu2MqnnFt8rV/2/3o73SK1snL8s9dYJ9G2oQMfc= cloud.google.com/go/gkehub v0.14.5 h1:RboLNFzf9wEMSo7DrKVBlf+YhK/A/jrLN454L5Tz99Q= cloud.google.com/go/gkehub v0.14.5/go.mod h1:6bzqxM+a+vEH/h8W8ec4OJl4r36laxTs3A/fMNHJ0wA= +cloud.google.com/go/gkehub v0.14.7 h1:bHwcvgh8AmcYm6p6/ZrWW3a7J7sKBDtqtsyVXKssnPs= +cloud.google.com/go/gkehub v0.14.7/go.mod h1:NLORJVTQeCdxyAjDgUwUp0A6BLEaNLq84mCiulsM4OE= cloud.google.com/go/gkemulticloud v0.3.0/go.mod h1:7orzy7O0S+5kq95e4Hpn7RysVA7dPs8W/GgfUtsPbrA= cloud.google.com/go/gkemulticloud v0.4.0/go.mod h1:E9gxVBnseLWCk24ch+P9+B2CoDFJZTyIgLKSalC7tuI= cloud.google.com/go/gkemulticloud v0.5.0 h1:8I84Q4vl02rJRsFiinBxl7WCozfdLlUVBQuSrqr9Wtk= @@ -631,10 +740,16 @@ cloud.google.com/go/gkemulticloud v1.0.3 h1:NmJsNX9uQ2CT78957xnjXZb26TDIMvv+d5W2 cloud.google.com/go/gkemulticloud v1.0.3/go.mod h1:7NpJBN94U6DY1xHIbsDqB2+TFZUfjLUKLjUX8NGLor0= cloud.google.com/go/gkemulticloud v1.1.1 h1:rsSZAGLhyjyE/bE2ToT5fqo1qSW7S+Ubsc9jFOcbhSI= cloud.google.com/go/gkemulticloud v1.1.1/go.mod h1:C+a4vcHlWeEIf45IB5FFR5XGjTeYhF83+AYIpTy4i2Q= +cloud.google.com/go/gkemulticloud v1.2.0 h1:zaWBakKPT6mPHVn5iefuRqttjpbNsb8LlMw9KgfyfyU= +cloud.google.com/go/gkemulticloud v1.2.0/go.mod h1:iN5wBxTLPR6VTBWpkUsOP2zuPOLqZ/KbgG1bZir1Cng= cloud.google.com/go/grafeas v0.2.0 h1:CYjC+xzdPvbV65gi6Dr4YowKcmLo045pm18L0DhdELM= cloud.google.com/go/grafeas v0.2.0/go.mod h1:KhxgtF2hb0P191HlY5besjYm6MqTSTj3LSI+M+ByZHc= cloud.google.com/go/grafeas v0.3.0 h1:oyTL/KjiUeBs9eYLw/40cpSZglUC+0F7X4iu/8t7NWs= cloud.google.com/go/grafeas v0.3.0/go.mod h1:P7hgN24EyONOTMyeJH6DxG4zD7fwiYa5Q6GUgyFSOU8= +cloud.google.com/go/grafeas v0.3.4 h1:D4x32R/cHX3MTofKwirz015uEdVk4uAxvZkZCZkOrF4= +cloud.google.com/go/grafeas v0.3.4/go.mod h1:A5m316hcG+AulafjAbPKXBO/+I5itU4LOdKO2R/uDIc= +cloud.google.com/go/grafeas v0.3.5 h1:Z87HxC4vnjR1kWWtzP6BuQXa6xBmndRK/kaz4iu6oMA= +cloud.google.com/go/grafeas v0.3.5/go.mod h1:y54iTBcI+lgUdI+kAPKb8jtPqeTkA2dsYzWSrQtpc5s= cloud.google.com/go/gsuiteaddons v1.3.0/go.mod h1:EUNK/J1lZEZO8yPtykKxLXI6JSVN2rg9bN8SXOa0bgM= cloud.google.com/go/gsuiteaddons v1.4.0/go.mod h1:rZK5I8hht7u7HxFQcFei0+AtfS9uSushomRlg+3ua1o= cloud.google.com/go/gsuiteaddons v1.5.0 h1:1mvhXqJzV0Vg5Fa95QwckljODJJfDFXV4pn+iL50zzA= @@ -645,6 +760,8 @@ cloud.google.com/go/gsuiteaddons v1.6.4 h1:uuw2Xd37yHftViSI8J2hUcCS8S7SH3ZWH09sU cloud.google.com/go/gsuiteaddons v1.6.4/go.mod h1:rxtstw7Fx22uLOXBpsvb9DUbC+fiXs7rF4U29KHM/pE= cloud.google.com/go/gsuiteaddons v1.6.5 h1:CZEbaBwmbYdhFw21Fwbo+C35HMe36fTE0FBSR4KSfWg= cloud.google.com/go/gsuiteaddons v1.6.5/go.mod h1:Lo4P2IvO8uZ9W+RaC6s1JVxo42vgy+TX5a6hfBZ0ubs= +cloud.google.com/go/gsuiteaddons v1.6.7 h1:06Jg3JeLslEfBYX1sDqOPLnF7a3wmhNcDUXF/fVOb50= +cloud.google.com/go/gsuiteaddons v1.6.7/go.mod h1:u+sGBvr07OKNnOnQiB/Co1q4U2cjo50ERQwvnlcpNis= cloud.google.com/go/iam v0.1.0/go.mod h1:vcUNEa0pEm0qRVpmWepWaFMIAI8/hjB9mO8rNCJtF6c= cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc= cloud.google.com/go/iam v0.6.0/go.mod h1:+1AH33ueBne5MzYccyMHtEKqLE4/kJOibtffMHDMFMc= @@ -655,6 +772,7 @@ cloud.google.com/go/iam v0.12.0/go.mod h1:knyHGviacl11zrtZUoDuYpDgLjvr28sLQaG0YB cloud.google.com/go/iam v0.13.0/go.mod h1:ljOg+rcNfzZ5d6f1nAUJ8ZIxOaZUVoS14bKCtaLZ/D0= cloud.google.com/go/iam v1.1.0/go.mod h1:nxdHjaKfCr7fNYx/HJMM8LgiMugmveWlkatear5gVyk= cloud.google.com/go/iam v1.1.3/go.mod h1:3khUlaBXfPKKe7huYgEpDn6FtgRyMEqbkvBxrQyY5SE= +cloud.google.com/go/iam v1.1.7/go.mod h1:J4PMPg8TtyurAUvSmPj8FF3EDgY1SPRZxcUGrn7WXGA= cloud.google.com/go/iap v1.4.0/go.mod h1:RGFwRJdihTINIe4wZ2iCP0zF/qu18ZwyKxrhMhygBEc= cloud.google.com/go/iap v1.5.0/go.mod h1:UH/CGgKd4KyohZL5Pt0jSKE4m3FR51qg6FKQ/z/Ix9A= cloud.google.com/go/iap v1.6.0/go.mod h1:NSuvI9C/j7UdjGjIde7t7HBz+QTwBcapPE07+sSRcLk= @@ -667,6 +785,8 @@ cloud.google.com/go/iap v1.9.3 h1:M4vDbQ4TLXdaljXVZSwW7XtxpwXUUarY2lIs66m0aCM= cloud.google.com/go/iap v1.9.3/go.mod h1:DTdutSZBqkkOm2HEOTBzhZxh2mwwxshfD/h3yofAiCw= cloud.google.com/go/iap v1.9.4 h1:94zirc2r4t6KzhAMW0R6Dme005eTP6yf7g6vN4IhRrA= cloud.google.com/go/iap v1.9.4/go.mod h1:vO4mSq0xNf/Pu6E5paORLASBwEmphXEjgCFg7aeNu1w= +cloud.google.com/go/iap v1.9.6 h1:rcuRS9XfOgr1v6TAoihVeSXntOnpVhFlVHtPfgOkLAo= +cloud.google.com/go/iap v1.9.6/go.mod h1:YiK+tbhDszhaVifvzt2zTEF2ch9duHtp6xzxj9a0sQk= cloud.google.com/go/ids v1.1.0/go.mod h1:WIuwCaYVOzHIj2OhN9HAwvW+DBdmUAdcWlFxRl+KubM= cloud.google.com/go/ids v1.2.0/go.mod h1:5WXvp4n25S0rA/mQWAg1YEEBBq6/s+7ml1RDCW1IrcY= cloud.google.com/go/ids v1.3.0 h1:fodnCDtOXuMmS8LTC2y3h8t24U8F3eKWfhi+3LY6Qf0= @@ -677,6 +797,8 @@ cloud.google.com/go/ids v1.4.4 h1:VuFqv2ctf/A7AyKlNxVvlHTzjrEvumWaZflUzBPz/M4= cloud.google.com/go/ids v1.4.4/go.mod h1:z+WUc2eEl6S/1aZWzwtVNWoSZslgzPxAboS0lZX0HjI= cloud.google.com/go/ids v1.4.5 h1:xd4U7pgl3GHV+MABnv1BF4/Vy/zBF7CYC8XngkOLzag= cloud.google.com/go/ids v1.4.5/go.mod h1:p0ZnyzjMWxww6d2DvMGnFwCsSxDJM666Iir1bK1UuBo= +cloud.google.com/go/ids v1.4.7 h1:wtd+r415yrfZ8LsB6yH6WrOZ26tYt7w6wy3i5a4HQZ8= +cloud.google.com/go/ids v1.4.7/go.mod h1:yUkDC71u73lJoTaoONy0dsA0T7foekvg6ZRg9IJL0AA= cloud.google.com/go/iot v1.3.0/go.mod h1:r7RGh2B61+B8oz0AGE+J72AhA0G7tdXItODWsaA2oLs= cloud.google.com/go/iot v1.4.0/go.mod h1:dIDxPOn0UvNDUMD8Ger7FIaTuvMkj+aGk94RPP0iV+g= cloud.google.com/go/iot v1.5.0/go.mod h1:mpz5259PDl3XJthEmh9+ap0affn/MqNSP4My77Qql9o= @@ -688,6 +810,8 @@ cloud.google.com/go/iot v1.7.4 h1:m1WljtkZnvLTIRYW1YTOv5A6H1yKgLHR6nU7O8yf27w= cloud.google.com/go/iot v1.7.4/go.mod h1:3TWqDVvsddYBG++nHSZmluoCAVGr1hAcabbWZNKEZLk= cloud.google.com/go/iot v1.7.5 h1:munTeBlbqI33iuTYgXy7S8lW2TCgi5l1hA4roSIY+EE= cloud.google.com/go/iot v1.7.5/go.mod h1:nq3/sqTz3HGaWJi1xNiX7F41ThOzpud67vwk0YsSsqs= +cloud.google.com/go/iot v1.7.7 h1:M9SKIj9eoxoXCzytkLZVAuf5wmoui1OeDqEjC97wRbY= +cloud.google.com/go/iot v1.7.7/go.mod h1:tr0bCOSPXtsg64TwwZ/1x+ReTWKlQRVXbM+DnrE54yM= cloud.google.com/go/kms v1.4.0/go.mod h1:fajBHndQ+6ubNw6Ss2sSd+SWvjL26RNo/dr7uxsnnOA= cloud.google.com/go/kms v1.5.0/go.mod h1:QJS2YY0eJGBg3mnDfuaCyLauWwBJiHRboYxJ++1xJNg= cloud.google.com/go/kms v1.6.0/go.mod h1:Jjy850yySiasBUDi6KFUwUv2n1+o7QZFyuUJg6OgjA0= @@ -706,6 +830,8 @@ cloud.google.com/go/language v1.12.2 h1:zg9uq2yS9PGIOdc0Kz/l+zMtOlxKWonZjjo5w5YP cloud.google.com/go/language v1.12.2/go.mod h1:9idWapzr/JKXBBQ4lWqVX/hcadxB194ry20m/bTrhWc= cloud.google.com/go/language v1.12.3 h1:iaJZg6K4j/2PvZZVcjeO/btcWWIllVRBhuTFjGO4LXs= cloud.google.com/go/language v1.12.3/go.mod h1:evFX9wECX6mksEva8RbRnr/4wi/vKGYnAJrTRXU8+f8= +cloud.google.com/go/language v1.12.5 h1:kOYJEcuZgyUX/i/4DFrfXPcrddm1XCQD2lDI5hIFmZQ= +cloud.google.com/go/language v1.12.5/go.mod h1:w/6a7+Rhg6Bc2Uzw6thRdKKNjnOzfKTJuxzD0JZZ0nM= cloud.google.com/go/lifesciences v0.5.0/go.mod h1:3oIKy8ycWGPUyZDR/8RNnTOYevhaMLqh5vLUXs9zvT8= cloud.google.com/go/lifesciences v0.6.0/go.mod h1:ddj6tSX/7BOnhxCSd3ZcETvtNr8NZ6t/iPhY2Tyfu08= cloud.google.com/go/lifesciences v0.8.0 h1:uWrMjWTsGjLZpCTWEAzYvyXj+7fhiZST45u9AgasasI= @@ -716,11 +842,15 @@ cloud.google.com/go/lifesciences v0.9.4 h1:rZEI/UxcxVKEzyoRS/kdJ1VoolNItRWjNN0Uk cloud.google.com/go/lifesciences v0.9.4/go.mod h1:bhm64duKhMi7s9jR9WYJYvjAFJwRqNj+Nia7hF0Z7JA= cloud.google.com/go/lifesciences v0.9.5 h1:gXvN70m2p+4zgJFzaz6gMKaxTuF9WJ0USYoMLWAOm8g= cloud.google.com/go/lifesciences v0.9.5/go.mod h1:OdBm0n7C0Osh5yZB7j9BXyrMnTRGBJIZonUMxo5CzPw= +cloud.google.com/go/lifesciences v0.9.7 h1:qqEmApr5YFOQjkrU8Jy6o6QpkESqfGbfrE6bnUZZbV8= +cloud.google.com/go/lifesciences v0.9.7/go.mod h1:FQ713PhjAOHqUVnuwsCe1KPi9oAdaTfh58h1xPiW13g= cloud.google.com/go/logging v1.6.1/go.mod h1:5ZO0mHHbvm8gEmeEUHrmDlTDSu5imF6MUP9OfilNXBw= cloud.google.com/go/logging v1.7.0 h1:CJYxlNNNNAMkHp9em/YEXcfJg+rPDg7YfwoRpMU+t5I= cloud.google.com/go/logging v1.7.0/go.mod h1:3xjP2CjkM3ZkO73aj4ASA5wRPGGCRrPIAeNqVNkzY8M= cloud.google.com/go/logging v1.9.0 h1:iEIOXFO9EmSiTjDmfpbRjOxECO7R8C7b8IXUGOj7xZw= cloud.google.com/go/logging v1.9.0/go.mod h1:1Io0vnZv4onoUnsVUQY3HZ3Igb1nBchky0A0y7BBBhE= +cloud.google.com/go/logging v1.10.0 h1:f+ZXMqyrSJ5vZ5pE/zr0xC8y/M9BLNzQeLBwfeZ+wY4= +cloud.google.com/go/logging v1.10.0/go.mod h1:EHOwcxlltJrYGqMGfghSet736KR3hX1MAj614mrMk9I= cloud.google.com/go/longrunning v0.1.1/go.mod h1:UUFxuDWkv22EuY93jjmDMFT5GPQKeFVJBIF6QlTqdsE= cloud.google.com/go/longrunning v0.3.0/go.mod h1:qth9Y41RRSUE69rDcOn6DdK3HfQfsUI0YSmW3iIlLJc= cloud.google.com/go/longrunning v0.5.0/go.mod h1:0JNuqRShmscVAhIACGtskSAWtqtOoPkwP0YF1oVEchc= @@ -729,6 +859,7 @@ cloud.google.com/go/longrunning v0.5.4 h1:w8xEcbZodnA2BbW6sVirkkoC+1gP8wS57EUUgG cloud.google.com/go/longrunning v0.5.4/go.mod h1:zqNVncI0BOP8ST6XQD1+VcvuShMmq7+xFSzOL++V0dI= cloud.google.com/go/longrunning v0.5.5 h1:GOE6pZFdSrTb4KAiKnXsJBtlE6mEyaW44oKyMILWnOg= cloud.google.com/go/longrunning v0.5.5/go.mod h1:WV2LAxD8/rg5Z1cNW6FJ/ZpX4E4VnDnoTk0yawPBB7s= +cloud.google.com/go/longrunning v0.5.6/go.mod h1:vUaDrWYOMKRuhiv6JBnn49YxCPz2Ayn9GqyjaBT8/mA= cloud.google.com/go/managedidentities v1.3.0/go.mod h1:UzlW3cBOiPrzucO5qWkNkh0w33KFtBJU281hacNvsdE= cloud.google.com/go/managedidentities v1.4.0/go.mod h1:NWSBYbEMgqmbZsLIyKvxrYbtqOsxY1ZrGM+9RgDqInM= cloud.google.com/go/managedidentities v1.5.0 h1:ZRQ4k21/jAhrHBVKl/AY7SjgzeJwG1iZa+mJ82P+VNg= @@ -739,6 +870,8 @@ cloud.google.com/go/managedidentities v1.6.4 h1:SF/u1IJduMqQQdJA4MDyivlIQ4SrV5qA cloud.google.com/go/managedidentities v1.6.4/go.mod h1:WgyaECfHmF00t/1Uk8Oun3CQ2PGUtjc3e9Alh79wyiM= cloud.google.com/go/managedidentities v1.6.5 h1:+bpih1piZVLxla/XBqeSUzJBp8gv9plGHIMAI7DLpDM= cloud.google.com/go/managedidentities v1.6.5/go.mod h1:fkFI2PwwyRQbjLxlm5bQ8SjtObFMW3ChBGNqaMcgZjI= +cloud.google.com/go/managedidentities v1.6.7 h1:uWA9WQyfA0JdkeAFymWUsa3qE9tC33LUElla790Ou1A= +cloud.google.com/go/managedidentities v1.6.7/go.mod h1:UzslJgHnc6luoyx2JV19cTCi2Fni/7UtlcLeSYRzTV8= cloud.google.com/go/maps v0.1.0/go.mod h1:BQM97WGyfw9FWEmQMpZ5T6cpovXXSd1cGmFma94eubI= cloud.google.com/go/maps v0.6.0/go.mod h1:o6DAMMfb+aINHz/p/jbcY+mYeXBoZoxTfdSQ8VAJaCw= cloud.google.com/go/maps v0.7.0 h1:mv9YaczD4oZBZkM5XJl6fXQ984IkJNHPwkc8MUsdkBo= @@ -749,6 +882,8 @@ cloud.google.com/go/maps v1.6.2 h1:WxxLo//b60nNFESefLgaBQevu8QGUmRV3+noOjCfIHs= cloud.google.com/go/maps v1.6.2/go.mod h1:4+buOHhYXFBp58Zj/K+Lc1rCmJssxxF4pJ5CJnhdz18= cloud.google.com/go/maps v1.6.4 h1:EVCZAiDvog9So46460BGbCasPhi613exoaQbpilMVlk= cloud.google.com/go/maps v1.6.4/go.mod h1:rhjqRy8NWmDJ53saCfsXQ0LKwBHfi6OSh5wkq6BaMhI= +cloud.google.com/go/maps v1.10.0 h1:0VHFOkgid3256RAwa+RmPRcnAOcqrcXFM4CiFprrXHI= +cloud.google.com/go/maps v1.10.0/go.mod h1:lbl3+NkLJ88H4qv3rO8KWOHOYhJiOwsqHOAXMHb9seA= cloud.google.com/go/mediatranslation v0.5.0/go.mod h1:jGPUhGTybqsPQn91pNXw0xVHfuJ3leR1wj37oU3y1f4= cloud.google.com/go/mediatranslation v0.6.0/go.mod h1:hHdBCTYNigsBxshbznuIMFNe5QXEowAuNmmC7h8pu5w= cloud.google.com/go/mediatranslation v0.7.0 h1:anPxH+/WWt8Yc3EdoEJhPMBRF7EhIdz426A+tuoA0OU= @@ -759,6 +894,8 @@ cloud.google.com/go/mediatranslation v0.8.4 h1:VRCQfZB4s6jN0CSy7+cO3m4ewNwgVnaeP cloud.google.com/go/mediatranslation v0.8.4/go.mod h1:9WstgtNVAdN53m6TQa5GjIjLqKQPXe74hwSCxUP6nj4= cloud.google.com/go/mediatranslation v0.8.5 h1:c76KdIXljQHSCb/Cy47S8H4s05A4zbK3pAFGzwcczZo= cloud.google.com/go/mediatranslation v0.8.5/go.mod h1:y7kTHYIPCIfgyLbKncgqouXJtLsU+26hZhHEEy80fSs= +cloud.google.com/go/mediatranslation v0.8.7 h1:izgww3TlyvWyDWdFKnrASpbh12IkAuw8o2ION8sAjX0= +cloud.google.com/go/mediatranslation v0.8.7/go.mod h1:6eJbPj1QJwiCP8R4K413qMx6ZHZJUi9QFpApqY88xWU= cloud.google.com/go/memcache v1.4.0/go.mod h1:rTOfiGZtJX1AaFUrOgsMHX5kAzaTQ8azHiuDoTPzNsE= cloud.google.com/go/memcache v1.5.0/go.mod h1:dk3fCK7dVo0cUU2c36jKb4VqKPS22BTkf81Xq617aWM= cloud.google.com/go/memcache v1.6.0/go.mod h1:XS5xB0eQZdHtTuTF9Hf8eJkKtR3pVRCcvJwtm68T3rA= @@ -771,6 +908,8 @@ cloud.google.com/go/memcache v1.10.4 h1:cdex/ayDd294XBj2cGeMe6Y+H1JvhN8y78B9UW7p cloud.google.com/go/memcache v1.10.4/go.mod h1:v/d8PuC8d1gD6Yn5+I3INzLR01IDn0N4Ym56RgikSI0= cloud.google.com/go/memcache v1.10.5 h1:yeDv5qxRedFosvpMSEswrqUsJM5OdWvssPHFliNFTc4= cloud.google.com/go/memcache v1.10.5/go.mod h1:/FcblbNd0FdMsx4natdj+2GWzTq+cjZvMa1I+9QsuMA= +cloud.google.com/go/memcache v1.10.7 h1:hE7f3ze3+eWh/EbYXEz7oXkm0LXcr7UCoLklwi7gsLU= +cloud.google.com/go/memcache v1.10.7/go.mod h1:SrU6+QBhvXJV0TA59+B3oCHtLkPx37eqdKmRUlmSE1k= cloud.google.com/go/metastore v1.5.0/go.mod h1:2ZNrDcQwghfdtCwJ33nM0+GrBGlVuh8rakL3vdPY3XY= cloud.google.com/go/metastore v1.6.0/go.mod h1:6cyQTls8CWXzk45G55x57DVQ9gWg7RiH65+YgPsNh9s= cloud.google.com/go/metastore v1.7.0/go.mod h1:s45D0B4IlsINu87/AsWiEVYbLaIMeUSoxlKKDqBGFS8= @@ -783,6 +922,8 @@ cloud.google.com/go/metastore v1.13.3 h1:94l/Yxg9oBZjin2bzI79oK05feYefieDq0o5fjL cloud.google.com/go/metastore v1.13.3/go.mod h1:K+wdjXdtkdk7AQg4+sXS8bRrQa9gcOr+foOMF2tqINE= cloud.google.com/go/metastore v1.13.4 h1:dR7vqWXlK6IYR8Wbu9mdFfwlVjodIBhd1JRrpZftTEg= cloud.google.com/go/metastore v1.13.4/go.mod h1:FMv9bvPInEfX9Ac1cVcRXp8EBBQnBcqH6gz3KvJ9BAE= +cloud.google.com/go/metastore v1.13.6 h1:otHcJkci5f/sNRedrSM7eM81QRnu0yZ3HvkvWGphABA= +cloud.google.com/go/metastore v1.13.6/go.mod h1:OBCVMCP7X9vA4KKD+5J4Q3d+tiyKxalQZnksQMq5MKY= cloud.google.com/go/monitoring v1.7.0/go.mod h1:HpYse6kkGo//7p6sT0wsIC6IBDET0RhIsnmlA53dvEk= cloud.google.com/go/monitoring v1.8.0/go.mod h1:E7PtoMJ1kQXWxPjB6mv2fhC5/15jInuulFdYYtlcvT4= cloud.google.com/go/monitoring v1.12.0/go.mod h1:yx8Jj2fZNEkL/GYZyTLS4ZtZEZN8WtDEiEqG4kLK50w= @@ -794,6 +935,8 @@ cloud.google.com/go/monitoring v1.17.0 h1:blrdvF0MkPPivSO041ihul7rFMhXdVp8Uq7F59 cloud.google.com/go/monitoring v1.17.0/go.mod h1:KwSsX5+8PnXv5NJnICZzW2R8pWTis8ypC4zmdRD63Tw= cloud.google.com/go/monitoring v1.18.0 h1:NfkDLQDG2UR3WYZVQE8kwSbUIEyIqJUPl+aOQdFH1T4= cloud.google.com/go/monitoring v1.18.0/go.mod h1:c92vVBCeq/OB4Ioyo+NbN2U7tlg5ZH41PZcdvfc+Lcg= +cloud.google.com/go/monitoring v1.19.0 h1:NCXf8hfQi+Kmr56QJezXRZ6GPb80ZI7El1XztyUuLQI= +cloud.google.com/go/monitoring v1.19.0/go.mod h1:25IeMR5cQ5BoZ8j1eogHE5VPJLlReQ7zFp5OiLgiGZw= cloud.google.com/go/networkconnectivity v1.4.0/go.mod h1:nOl7YL8odKyAOtzNX73/M5/mGZgqqMeryi6UPZTk/rA= cloud.google.com/go/networkconnectivity v1.5.0/go.mod h1:3GzqJx7uhtlM3kln0+x5wyFvuVH1pIBJjhCpjzSt75o= cloud.google.com/go/networkconnectivity v1.6.0/go.mod h1:OJOoEXW+0LAxHh89nXd64uGG+FbQoeH8DtxCHVOMlaM= @@ -807,6 +950,8 @@ cloud.google.com/go/networkconnectivity v1.14.3 h1:e9lUkCe2BexsqsUc2bjV8+gFBpQa5 cloud.google.com/go/networkconnectivity v1.14.3/go.mod h1:4aoeFdrJpYEXNvrnfyD5kIzs8YtHg945Og4koAjHQek= cloud.google.com/go/networkconnectivity v1.14.4 h1:GBfXFhLyPspnaBE3nI/BRjdhW8vcbpT9QjE/4kDCDdc= cloud.google.com/go/networkconnectivity v1.14.4/go.mod h1:PU12q++/IMnDJAB+3r+tJtuCXCfwfN+C6Niyj6ji1Po= +cloud.google.com/go/networkconnectivity v1.14.6 h1:jYpQ86mZ7OYZc7WadvCIlIaPXmXhr5nD7wgE/ekMVpM= +cloud.google.com/go/networkconnectivity v1.14.6/go.mod h1:/azB7+oCSmyBs74Z26EogZ2N3UcXxdCHkCPcz8G32bU= cloud.google.com/go/networkmanagement v1.4.0/go.mod h1:Q9mdLLRn60AsOrPc8rs8iNV6OHXaGcDdsIQe1ohekq8= cloud.google.com/go/networkmanagement v1.5.0/go.mod h1:ZnOeZ/evzUdUsnvRt792H0uYEnHQEMaz+REhhzJRcf4= cloud.google.com/go/networkmanagement v1.6.0 h1:8KWEUNGcpSX9WwZXq7FtciuNGPdPdPN/ruDm769yAEM= @@ -817,6 +962,8 @@ cloud.google.com/go/networkmanagement v1.9.3 h1:HsQk4FNKJUX04k3OI6gUsoveiHMGvDRq cloud.google.com/go/networkmanagement v1.9.3/go.mod h1:y7WMO1bRLaP5h3Obm4tey+NquUvB93Co1oh4wpL+XcU= cloud.google.com/go/networkmanagement v1.9.4 h1:aLV5GcosBNmd6M8+a0ekB0XlLRexv4fvnJJrYnqeBcg= cloud.google.com/go/networkmanagement v1.9.4/go.mod h1:daWJAl0KTFytFL7ar33I6R/oNBH8eEOX/rBNHrC/8TA= +cloud.google.com/go/networkmanagement v1.13.2 h1:Ex1/aYkA0areleSmOGXHvEFBGohteIYJr2SGPrjOUe0= +cloud.google.com/go/networkmanagement v1.13.2/go.mod h1:24VrV/5HFIOXMEtVQEUoB4m/w8UWvUPAYjfnYZcBc4c= cloud.google.com/go/networksecurity v0.5.0/go.mod h1:xS6fOCoqpVC5zx15Z/MqkfDwH4+m/61A3ODiDV1xmiQ= cloud.google.com/go/networksecurity v0.6.0/go.mod h1:Q5fjhTr9WMI5mbpRYEbiexTzROf7ZbDzvzCrNl14nyU= cloud.google.com/go/networksecurity v0.7.0/go.mod h1:mAnzoxx/8TBSyXEeESMy9OOYwo1v+gZ5eMRnsT5bC8k= @@ -828,6 +975,8 @@ cloud.google.com/go/networksecurity v0.9.4 h1:947tNIPnj1bMGTIEBo3fc4QrrFKS5hh0bF cloud.google.com/go/networksecurity v0.9.4/go.mod h1:E9CeMZ2zDsNBkr8axKSYm8XyTqNhiCHf1JO/Vb8mD1w= cloud.google.com/go/networksecurity v0.9.5 h1:+caSxBTj0E8OYVh/5wElFdjEMO1S/rZtE1152Cepchc= cloud.google.com/go/networksecurity v0.9.5/go.mod h1:KNkjH/RsylSGyyZ8wXpue8xpCEK+bTtvof8SBfIhMG8= +cloud.google.com/go/networksecurity v0.9.7 h1:aepEkfiwOvUL9eu3ginVZhTaXDRHncQKi9lTT1BycH0= +cloud.google.com/go/networksecurity v0.9.7/go.mod h1:aB6UiPnh/l32+TRvgTeOxVRVAHAFFqvK+ll3idU5BoY= cloud.google.com/go/notebooks v1.2.0/go.mod h1:9+wtppMfVPUeJ8fIWPOq1UnATHISkGXGqTkxeieQ6UY= cloud.google.com/go/notebooks v1.3.0/go.mod h1:bFR5lj07DtCPC7YAAJ//vHskFBxA5JzYlH68kXVdk34= cloud.google.com/go/notebooks v1.4.0/go.mod h1:4QPMngcwmgb6uw7Po99B2xv5ufVoIQ7nOGDyL4P8AgA= @@ -841,6 +990,8 @@ cloud.google.com/go/notebooks v1.11.2 h1:eTOTfNL1yM6L/PCtquJwjWg7ZZGR0URFaFgbs8k cloud.google.com/go/notebooks v1.11.2/go.mod h1:z0tlHI/lREXC8BS2mIsUeR3agM1AkgLiS+Isov3SS70= cloud.google.com/go/notebooks v1.11.3 h1:FH48boYmrWVQ6k0Mx/WrnNafXncT5iSYxA8CNyWTgy0= cloud.google.com/go/notebooks v1.11.3/go.mod h1:0wQyI2dQC3AZyQqWnRsp+yA+kY4gC7ZIVP4Qg3AQcgo= +cloud.google.com/go/notebooks v1.11.5 h1:sFU1ETg1HfIN/Tev8gD0dleAITLv7cHp0JClwFmJ6bo= +cloud.google.com/go/notebooks v1.11.5/go.mod h1:pz6P8l2TvhWqAW3sysIsS0g2IUJKOzEklsjWJfi8sd4= cloud.google.com/go/optimization v1.1.0/go.mod h1:5po+wfvX5AQlPznyVEZjGJTMr4+CAkJf2XSTQOOl9l4= cloud.google.com/go/optimization v1.2.0/go.mod h1:Lr7SOHdRDENsh+WXVmQhQTrzdu9ybg0NecjHidBq6xs= cloud.google.com/go/optimization v1.3.1 h1:dj8O4VOJRB4CUwZXdmwNViH1OtI0WtWL867/lnYH248= @@ -851,6 +1002,8 @@ cloud.google.com/go/optimization v1.6.2 h1:iFsoexcp13cGT3k/Hv8PA5aK+FP7FnbhwDO9l cloud.google.com/go/optimization v1.6.2/go.mod h1:mWNZ7B9/EyMCcwNl1frUGEuY6CPijSkz88Fz2vwKPOY= cloud.google.com/go/optimization v1.6.3 h1:63NZaWyN+5rZEKHPX4ACpw3BjgyeuY8+rCehiCMaGPY= cloud.google.com/go/optimization v1.6.3/go.mod h1:8ve3svp3W6NFcAEFr4SfJxrldzhUl4VMUJmhrqVKtYA= +cloud.google.com/go/optimization v1.6.5 h1:FPfowA/LEckKTQT0A4NJMI2bSou999c2ZyFX1zGiYxY= +cloud.google.com/go/optimization v1.6.5/go.mod h1:eiJjNge1NqqLYyY75AtIGeQWKO0cvzD1ct/moCFaP2Q= cloud.google.com/go/orchestration v1.3.0/go.mod h1:Sj5tq/JpWiB//X/q3Ngwdl5K7B7Y0KZ7bfv0wL6fqVA= cloud.google.com/go/orchestration v1.4.0/go.mod h1:6W5NLFWs2TlniBphAViZEVhrXRSMgUGDfW7vrWKvsBk= cloud.google.com/go/orchestration v1.6.0 h1:Vw+CEXo8M/FZ1rb4EjcLv0gJqqw89b7+g+C/EmniTb8= @@ -861,6 +1014,8 @@ cloud.google.com/go/orchestration v1.8.4 h1:kgwZ2f6qMMYIVBtUGGoU8yjYWwMTHDanLwM/ cloud.google.com/go/orchestration v1.8.4/go.mod h1:d0lywZSVYtIoSZXb0iFjv9SaL13PGyVOKDxqGxEf/qI= cloud.google.com/go/orchestration v1.8.5 h1:YHgWMlrPttIVGItgGfuvO2KM7x+y9ivN/Yk92pMm1a4= cloud.google.com/go/orchestration v1.8.5/go.mod h1:C1J7HesE96Ba8/hZ71ISTV2UAat0bwN+pi85ky38Yq8= +cloud.google.com/go/orchestration v1.9.2 h1:C2WL4ZnclXsh4XickGhKYKlPjqVZj35y1sbRjdsZ3g4= +cloud.google.com/go/orchestration v1.9.2/go.mod h1:8bGNigqCQb/O1kK7PeStSNlyi58rQvZqDiuXT9KAcbg= cloud.google.com/go/orgpolicy v1.4.0/go.mod h1:xrSLIV4RePWmP9P3tBl8S93lTmlAxjm06NSm2UTmKvE= cloud.google.com/go/orgpolicy v1.5.0/go.mod h1:hZEc5q3wzwXJaKrsx5+Ewg0u1LxJ51nNFlext7Tanwc= cloud.google.com/go/orgpolicy v1.10.0 h1:XDriMWug7sd0kYT1QKofRpRHzjad0bK8Q8uA9q+XrU4= @@ -871,6 +1026,8 @@ cloud.google.com/go/orgpolicy v1.11.4 h1:RWuXQDr9GDYhjmrredQJC7aY7cbyqP9ZuLbq5GJ cloud.google.com/go/orgpolicy v1.11.4/go.mod h1:0+aNV/nrfoTQ4Mytv+Aw+stBDBjNf4d8fYRA9herfJI= cloud.google.com/go/orgpolicy v1.12.1 h1:2JbXigqBJVp8Dx5dONUttFqewu4fP0p3pgOdIZAhpYU= cloud.google.com/go/orgpolicy v1.12.1/go.mod h1:aibX78RDl5pcK3jA8ysDQCFkVxLj3aOQqrbBaUL2V5I= +cloud.google.com/go/orgpolicy v1.12.3 h1:fGftW2bPi8vTjQm57xlwtLBZQcrgC+c3HMFBzJ+KWPc= +cloud.google.com/go/orgpolicy v1.12.3/go.mod h1:6BOgIgFjWfJzTsVcib/4QNHOAeOjCdaBj69aJVs//MA= cloud.google.com/go/osconfig v1.7.0/go.mod h1:oVHeCeZELfJP7XLxcBGTMBvRO+1nQ5tFG9VQTmYS2Fs= cloud.google.com/go/osconfig v1.8.0/go.mod h1:EQqZLu5w5XA7eKizepumcvWx+m8mJUhEwiPqWiZeEdg= cloud.google.com/go/osconfig v1.9.0/go.mod h1:Yx+IeIZJ3bdWmzbQU4fxNl8xsZ4amB+dygAwFPlvnNo= @@ -883,6 +1040,8 @@ cloud.google.com/go/osconfig v1.12.4 h1:OrRCIYEAbrbXdhm13/JINn9pQchvTTIzgmOCA7uJ cloud.google.com/go/osconfig v1.12.4/go.mod h1:B1qEwJ/jzqSRslvdOCI8Kdnp0gSng0xW4LOnIebQomA= cloud.google.com/go/osconfig v1.12.5 h1:Mo5jGAxOMKH/PmDY7fgY19yFcVbvwREb5D5zMPQjFfo= cloud.google.com/go/osconfig v1.12.5/go.mod h1:D9QFdxzfjgw3h/+ZaAb5NypM8bhOMqBzgmbhzWViiW8= +cloud.google.com/go/osconfig v1.12.7 h1:HXsXGFaFaLTklwKgSob/GSE+c3verYDQDgreFaosxyc= +cloud.google.com/go/osconfig v1.12.7/go.mod h1:ID7Lbqr0fiihKMwAOoPomWRqsZYKWxfiuafNZ9j1Y1M= cloud.google.com/go/oslogin v1.4.0/go.mod h1:YdgMXWRaElXz/lDk1Na6Fh5orF7gvmJ0FGLIs9LId4E= cloud.google.com/go/oslogin v1.5.0/go.mod h1:D260Qj11W2qx/HVF29zBg+0fd6YCSjSqLUkY/qEenQU= cloud.google.com/go/oslogin v1.6.0/go.mod h1:zOJ1O3+dTU8WPlGEkFSh7qeHPPSoxrcMbbK1Nm2iX70= @@ -895,6 +1054,8 @@ cloud.google.com/go/oslogin v1.12.2 h1:NP/KgsD9+0r9hmHC5wKye0vJXVwdciv219DtYKYjg cloud.google.com/go/oslogin v1.12.2/go.mod h1:CQ3V8Jvw4Qo4WRhNPF0o+HAM4DiLuE27Ul9CX9g2QdY= cloud.google.com/go/oslogin v1.13.1 h1:1K4nOT5VEZNt7XkhaTXupBYos5HjzvJMfhvyD2wWdFs= cloud.google.com/go/oslogin v1.13.1/go.mod h1:vS8Sr/jR7QvPWpCjNqy6LYZr5Zs1e8ZGW/KPn9gmhws= +cloud.google.com/go/oslogin v1.13.3 h1:7AgOWH1oMPrB1AVU0/f47ADdOt+XfdBY7QRb8tcMUp8= +cloud.google.com/go/oslogin v1.13.3/go.mod h1:WW7Rs1OJQ1iSUckZDilvNBSNPE8on740zF+4ZDR4o8U= cloud.google.com/go/phishingprotection v0.5.0/go.mod h1:Y3HZknsK9bc9dMi+oE8Bim0lczMU6hrX0UpADuMefr0= cloud.google.com/go/phishingprotection v0.6.0/go.mod h1:9Y3LBLgy0kDTcYET8ZH3bq/7qni15yVUoAxiFxnlSUA= cloud.google.com/go/phishingprotection v0.7.0 h1:l6tDkT7qAEV49MNEJkEJTB6vOO/onbSOcNtAT09HPuA= @@ -905,6 +1066,8 @@ cloud.google.com/go/phishingprotection v0.8.4 h1:sPLUQkHq6b4AL0czSJZ0jd6vL55GSTH cloud.google.com/go/phishingprotection v0.8.4/go.mod h1:6b3kNPAc2AQ6jZfFHioZKg9MQNybDg4ixFd4RPZZ2nE= cloud.google.com/go/phishingprotection v0.8.5 h1:DH3WFLzEoJdW/6xgsmoDqOwT1xddFi7gKu0QGZQhpGU= cloud.google.com/go/phishingprotection v0.8.5/go.mod h1:g1smd68F7mF1hgQPuYn3z8HDbNre8L6Z0b7XMYFmX7I= +cloud.google.com/go/phishingprotection v0.8.7 h1:CbCjfR/pgDHyRMu94o9nuGwaONEcarWnUfSGGw+I2ZI= +cloud.google.com/go/phishingprotection v0.8.7/go.mod h1:FtYaOyGc/HQQU7wY4sfwYZBFDKAL+YtVBjUj8E3A3/I= cloud.google.com/go/policytroubleshooter v1.3.0/go.mod h1:qy0+VwANja+kKrjlQuOzmlvscn4RNsAc0e15GGqfMxg= cloud.google.com/go/policytroubleshooter v1.4.0/go.mod h1:DZT4BcRw3QoO8ota9xw/LKtPa8lKeCByYeKTIf/vxdE= cloud.google.com/go/policytroubleshooter v1.5.0/go.mod h1:Rz1WfV+1oIpPdN2VvvuboLVRsB1Hclg3CKQ53j9l8vw= @@ -916,6 +1079,8 @@ cloud.google.com/go/policytroubleshooter v1.10.2 h1:sq+ScLP83d7GJy9+wpwYJVnY+q6x cloud.google.com/go/policytroubleshooter v1.10.2/go.mod h1:m4uF3f6LseVEnMV6nknlN2vYGRb+75ylQwJdnOXfnv0= cloud.google.com/go/policytroubleshooter v1.10.3 h1:c0WOzC6hz964QWNBkyKfna8A2jOIx1zzZa43Gx/P09o= cloud.google.com/go/policytroubleshooter v1.10.3/go.mod h1:+ZqG3agHT7WPb4EBIRqUv4OyIwRTZvsVDHZ8GlZaoxk= +cloud.google.com/go/policytroubleshooter v1.10.5 h1:LGt85MZUKlq9oqsbBL9+M6jAyeuR1TtCx6k5HfAQxTY= +cloud.google.com/go/policytroubleshooter v1.10.5/go.mod h1:bpOf94YxjWUqsVKokzPBibMSAx937Jp2UNGVoMAtGYI= cloud.google.com/go/privatecatalog v0.5.0/go.mod h1:XgosMUvvPyxDjAVNDYxJ7wBW8//hLDDYmnsNcMGq1K0= cloud.google.com/go/privatecatalog v0.6.0/go.mod h1:i/fbkZR0hLN29eEWiiwue8Pb+GforiEIBnV9yrRUOKI= cloud.google.com/go/privatecatalog v0.7.0/go.mod h1:2s5ssIFO69F5csTXcwBP7NPFTZvps26xGzvQ2PQaBYg= @@ -927,6 +1092,8 @@ cloud.google.com/go/privatecatalog v0.9.4 h1:Vo10IpWKbNvc/z/QZPVXgCiwfjpWoZ/wbgf cloud.google.com/go/privatecatalog v0.9.4/go.mod h1:SOjm93f+5hp/U3PqMZAHTtBtluqLygrDrVO8X8tYtG0= cloud.google.com/go/privatecatalog v0.9.5 h1:UZ0assTnATXSggoxUIh61RjTQ4P9zCMk/kEMbn0nMYA= cloud.google.com/go/privatecatalog v0.9.5/go.mod h1:fVWeBOVe7uj2n3kWRGlUQqR/pOd450J9yZoOECcQqJk= +cloud.google.com/go/privatecatalog v0.9.7 h1:wGZKKJhYyuf4gcAEywQqQ6F19yxhBJGnzgyxOTbJjBw= +cloud.google.com/go/privatecatalog v0.9.7/go.mod h1:NWLa8MCL6NkRSt8jhL8Goy2A/oHkvkeAxiA0gv0rIXI= cloud.google.com/go/pubsub v1.26.0/go.mod h1:QgBH3U/jdJy/ftjPhTkyXNj543Tin1pRYcdcPRnFIRI= cloud.google.com/go/pubsub v1.27.1/go.mod h1:hQN39ymbV9geqBnfQq6Xf63yNhUAhv9CZhzp5O6qsW0= cloud.google.com/go/pubsub v1.28.0/go.mod h1:vuXFpwaVoIPQMGXqRyUQigu/AX1S3IWugR9xznmcXX8= @@ -936,6 +1103,8 @@ cloud.google.com/go/pubsub v1.33.0 h1:6SPCPvWav64tj0sVX/+npCBKhUi/UjJehy9op/V3p2 cloud.google.com/go/pubsub v1.33.0/go.mod h1:f+w71I33OMyxf9VpMVcZbnG5KSUkCOUHYpFd5U1GdRc= cloud.google.com/go/pubsub v1.36.1 h1:dfEPuGCHGbWUhaMCTHUFjfroILEkx55iUmKBZTP5f+Y= cloud.google.com/go/pubsub v1.36.1/go.mod h1:iYjCa9EzWOoBiTdd4ps7QoMtMln5NwaZQpK1hbRfBDE= +cloud.google.com/go/pubsub v1.38.0 h1:J1OT7h51ifATIedjqk/uBNPh+1hkvUaH4VKbz4UuAsc= +cloud.google.com/go/pubsub v1.38.0/go.mod h1:IPMJSWSus/cu57UyR01Jqa/bNOQA+XnPF6Z4dKW4fAA= cloud.google.com/go/pubsublite v1.5.0/go.mod h1:xapqNQ1CuLfGi23Yda/9l4bBCKz/wC3KIJ5gKcxveZg= cloud.google.com/go/pubsublite v1.6.0/go.mod h1:1eFCS0U11xlOuMFV/0iBqw3zP12kddMeCbj/F3FSj9k= cloud.google.com/go/pubsublite v1.7.0 h1:cb9fsrtpINtETHiJ3ECeaVzrfIVhcGjhhJEjybHXHao= @@ -958,6 +1127,8 @@ cloud.google.com/go/recaptchaenterprise/v2 v2.9.0 h1:Zrd4LvT9PaW91X/Z13H0i5RKEv9 cloud.google.com/go/recaptchaenterprise/v2 v2.9.0/go.mod h1:Dak54rw6lC2gBY8FBznpOCAR58wKf+R+ZSJRoeJok4w= cloud.google.com/go/recaptchaenterprise/v2 v2.9.2 h1:U3Wfq12X9cVMuTpsWDSURnXF0Z9hSPTHj+xsnXDRLsw= cloud.google.com/go/recaptchaenterprise/v2 v2.9.2/go.mod h1:trwwGkfhCmp05Ll5MSJPXY7yvnO0p4v3orGANAFHAuU= +cloud.google.com/go/recaptchaenterprise/v2 v2.13.0 h1:+QG02kE63W13vXI+rwAxFF3EhGX6K7gXwFz9OKwKcHw= +cloud.google.com/go/recaptchaenterprise/v2 v2.13.0/go.mod h1:jNYyn2ScR4DTg+VNhjhv/vJQdaU8qz+NpmpIzEE7HFQ= cloud.google.com/go/recommendationengine v0.5.0/go.mod h1:E5756pJcVFeVgaQv3WNpImkFP8a+RptV6dDLGPILjvg= cloud.google.com/go/recommendationengine v0.6.0/go.mod h1:08mq2umu9oIqc7tDy8sx+MNJdLG0fUi3vaSVbztHgJ4= cloud.google.com/go/recommendationengine v0.7.0 h1:VibRFCwWXrFebEWKHfZAt2kta6pS7Tlimsnms0fjv7k= @@ -968,6 +1139,8 @@ cloud.google.com/go/recommendationengine v0.8.4 h1:JRiwe4hvu3auuh2hujiTc2qNgPPfV cloud.google.com/go/recommendationengine v0.8.4/go.mod h1:GEteCf1PATl5v5ZsQ60sTClUE0phbWmo3rQ1Js8louU= cloud.google.com/go/recommendationengine v0.8.5 h1:ineqLswaCSBY0csYv5/wuXJMBlxATK6Xc5jJkpiTEdM= cloud.google.com/go/recommendationengine v0.8.5/go.mod h1:A38rIXHGFvoPvmy6pZLozr0g59NRNREz4cx7F58HAsQ= +cloud.google.com/go/recommendationengine v0.8.7 h1:N6n/TEr0FQzeP4ZtvF5daMszOhdZI94uMiPiAi9kFMo= +cloud.google.com/go/recommendationengine v0.8.7/go.mod h1:YsUIbweUcpm46OzpVEsV5/z+kjuV6GzMxl7OAKIGgKE= cloud.google.com/go/recommender v1.5.0/go.mod h1:jdoeiBIVrJe9gQjwd759ecLJbxCDED4A6p+mqoqDvTg= cloud.google.com/go/recommender v1.6.0/go.mod h1:+yETpm25mcoiECKh9DEScGzIRyDKpZ0cEhWGo+8bo+c= cloud.google.com/go/recommender v1.7.0/go.mod h1:XLHs/W+T8olwlGOgfQenXBTbIseGclClff6lhFVe9Bs= @@ -980,6 +1153,8 @@ cloud.google.com/go/recommender v1.12.0 h1:tC+ljmCCbuZ/ybt43odTFlay91n/HLIhflvaO cloud.google.com/go/recommender v1.12.0/go.mod h1:+FJosKKJSId1MBFeJ/TTyoGQZiEelQQIZMKYYD8ruK4= cloud.google.com/go/recommender v1.12.1 h1:LVLYS3r3u0MSCxQSDUtLSkporEGi9OAE6hGvayrZNPs= cloud.google.com/go/recommender v1.12.1/go.mod h1:gf95SInWNND5aPas3yjwl0I572dtudMhMIG4ni8nr+0= +cloud.google.com/go/recommender v1.12.3 h1:v9x75vXP5wMXw3QG3xmgjVHLlqYufuLn/ht3oNWCA3w= +cloud.google.com/go/recommender v1.12.3/go.mod h1:OgN0MjV7/6FZUUPgF2QPQtYErtZdZc4u+5onvurcGEI= cloud.google.com/go/redis v1.7.0/go.mod h1:V3x5Jq1jzUcg+UNsRvdmsfuFnit1cfe3Z/PGyq/lm4Y= cloud.google.com/go/redis v1.8.0/go.mod h1:Fm2szCDavWzBk2cDKxrkmWBqoCiL1+Ctwq7EyqBCA/A= cloud.google.com/go/redis v1.9.0/go.mod h1:HMYQuajvb2D0LvMgZmLDZW8V5aOC/WxstZHiy4g8OiA= @@ -992,6 +1167,8 @@ cloud.google.com/go/redis v1.14.1 h1:J9cEHxG9YLmA9o4jTSvWt/RuVEn6MTrPlYSCRHujxDQ cloud.google.com/go/redis v1.14.1/go.mod h1:MbmBxN8bEnQI4doZPC1BzADU4HGocHBk2de3SbgOkqs= cloud.google.com/go/redis v1.14.2 h1:QF0maEdVv0Fj/2roU8sX3NpiDBzP9ICYTO+5F32gQNo= cloud.google.com/go/redis v1.14.2/go.mod h1:g0Lu7RRRz46ENdFKQ2EcQZBAJ2PtJHJLuiiRuEXwyQw= +cloud.google.com/go/redis v1.15.0 h1:YB4i013/3jdHgQf+MVUOX4GLNcuHPSWI94QMVc1pSIU= +cloud.google.com/go/redis v1.15.0/go.mod h1:X9Fp3vG5kqr5ho+5YM6AgJxypn+I9Ea5ANCuFKXLdX0= cloud.google.com/go/resourcemanager v1.3.0/go.mod h1:bAtrTjZQFJkiWTPDb1WBjzvc6/kifjj4QBYuKCCoqKA= cloud.google.com/go/resourcemanager v1.4.0/go.mod h1:MwxuzkumyTX7/a3n37gmsT3py7LIXwrShilPh3P1tR0= cloud.google.com/go/resourcemanager v1.5.0/go.mod h1:eQoXNAiAvCf5PXxWxXjhKQoTMaUSNrEfg+6qdf/wots= @@ -1004,6 +1181,8 @@ cloud.google.com/go/resourcemanager v1.9.4 h1:JwZ7Ggle54XQ/FVYSBrMLOQIKoIT/uer8m cloud.google.com/go/resourcemanager v1.9.4/go.mod h1:N1dhP9RFvo3lUfwtfLWVxfUWq8+KUQ+XLlHLH3BoFJ0= cloud.google.com/go/resourcemanager v1.9.5 h1:AZWr1vWVDKGwfLsVhcN+vcwOz3xqqYxtmMa0aABCMms= cloud.google.com/go/resourcemanager v1.9.5/go.mod h1:hep6KjelHA+ToEjOfO3garMKi/CLYwTqeAw7YiEI9x8= +cloud.google.com/go/resourcemanager v1.9.7 h1:SdvD0PaPX60+yeKoSe16mawFpM0EPuiPPihTIVlhRsY= +cloud.google.com/go/resourcemanager v1.9.7/go.mod h1:cQH6lJwESufxEu6KepsoNAsjrUtYYNXRwxm4QFE5g8A= cloud.google.com/go/resourcesettings v1.3.0/go.mod h1:lzew8VfESA5DQ8gdlHwMrqZs1S9V87v3oCnKCWoOuQU= cloud.google.com/go/resourcesettings v1.4.0/go.mod h1:ldiH9IJpcrlC3VSuCGvjR5of/ezRrOxFtpJoJo5SmXg= cloud.google.com/go/resourcesettings v1.5.0 h1:8Dua37kQt27CCWHm4h/Q1XqCF6ByD7Ouu49xg95qJzI= @@ -1014,6 +1193,8 @@ cloud.google.com/go/resourcesettings v1.6.4 h1:yTIL2CsZswmMfFyx2Ic77oLVzfBFoWBYg cloud.google.com/go/resourcesettings v1.6.4/go.mod h1:pYTTkWdv2lmQcjsthbZLNBP4QW140cs7wqA3DuqErVI= cloud.google.com/go/resourcesettings v1.6.5 h1:BTr5MVykJwClASci/7Og4Qfx70aQ4n3epsNLj94ZYgw= cloud.google.com/go/resourcesettings v1.6.5/go.mod h1:WBOIWZraXZOGAgoR4ukNj0o0HiSMO62H9RpFi9WjP9I= +cloud.google.com/go/resourcesettings v1.6.7 h1:88SlpWtogkwjMuYTEl//qm36azX1OpawThAyvXT/hHw= +cloud.google.com/go/resourcesettings v1.6.7/go.mod h1:zwRL5ZoNszs1W6+eJYMk6ILzgfnTj13qfU4Wvfupuqk= cloud.google.com/go/retail v1.8.0/go.mod h1:QblKS8waDmNUhghY2TI9O3JLlFk8jybHeV4BF19FrE4= cloud.google.com/go/retail v1.9.0/go.mod h1:g6jb6mKuCS1QKnH/dpu7isX253absFl6iE92nHwlBUY= cloud.google.com/go/retail v1.10.0/go.mod h1:2gDk9HsL4HMS4oZwz6daui2/jmKvqShXKQuB2RZ+cCc= @@ -1026,6 +1207,8 @@ cloud.google.com/go/retail v1.14.4 h1:geqdX1FNqqL2p0ADXjPpw8lq986iv5GrVcieTYafuJ cloud.google.com/go/retail v1.14.4/go.mod h1:l/N7cMtY78yRnJqp5JW8emy7MB1nz8E4t2yfOmklYfg= cloud.google.com/go/retail v1.16.0 h1:Fn1GuAua1c6crCGqfJ1qMxG1Xh10Tg/x5EUODEHMqkw= cloud.google.com/go/retail v1.16.0/go.mod h1:LW7tllVveZo4ReWt68VnldZFWJRzsh9np+01J9dYWzE= +cloud.google.com/go/retail v1.16.2 h1:msP5a8BOxVym2DvoubeWAxAeV6VhYkKnYHc2XOkd/+U= +cloud.google.com/go/retail v1.16.2/go.mod h1:T7UcBh4/eoxRBpP3vwZCoa+PYA9/qWRTmOCsV8DRdZ0= cloud.google.com/go/run v0.2.0/go.mod h1:CNtKsTA1sDcnqqIFR3Pb5Tq0usWxJJvsWOCPldRU3Do= cloud.google.com/go/run v0.3.0/go.mod h1:TuyY1+taHxTjrD0ZFk2iAR+xyOXEA0ztb7U3UNA0zBo= cloud.google.com/go/run v0.8.0/go.mod h1:VniEnuBwqjigv0A7ONfQUaEItaiCRVujlMqerPPiktM= @@ -1037,6 +1220,8 @@ cloud.google.com/go/run v1.3.3 h1:qdfZteAm+vgzN1iXzILo3nJFQbzziudkJrvd9wCf3FQ= cloud.google.com/go/run v1.3.3/go.mod h1:WSM5pGyJ7cfYyYbONVQBN4buz42zFqwG67Q3ch07iK4= cloud.google.com/go/run v1.3.4 h1:m9WDA7DzTpczhZggwYlZcBWgCRb+kgSIisWn1sbw2rQ= cloud.google.com/go/run v1.3.4/go.mod h1:FGieuZvQ3tj1e9GnzXqrMABSuir38AJg5xhiYq+SF3o= +cloud.google.com/go/run v1.3.7 h1:E4Z5e681Qh7UJrJRMCgYhp+3tkcoXiaKGh3UZmUPaAQ= +cloud.google.com/go/run v1.3.7/go.mod h1:iEUflDx4Js+wK0NzF5o7hE9Dj7QqJKnRj0/b6rhVq20= cloud.google.com/go/scheduler v1.4.0/go.mod h1:drcJBmxF3aqZJRhmkHQ9b3uSSpQoltBPGPxGAWROx6s= cloud.google.com/go/scheduler v1.5.0/go.mod h1:ri073ym49NW3AfT6DZi21vLZrG07GXr5p3H1KxN5QlI= cloud.google.com/go/scheduler v1.6.0/go.mod h1:SgeKVM7MIwPn3BqtcBntpLyrIJftQISRrYB5ZtT+KOk= @@ -1050,6 +1235,8 @@ cloud.google.com/go/scheduler v1.10.5 h1:eMEettHlFhG5pXsoHouIM5nRT+k+zU4+GUvRtnx cloud.google.com/go/scheduler v1.10.5/go.mod h1:MTuXcrJC9tqOHhixdbHDFSIuh7xZF2IysiINDuiq6NI= cloud.google.com/go/scheduler v1.10.6 h1:5U8iXLoQ03qOB+ZXlAecU7fiE33+u3QiM9nh4cd0eTE= cloud.google.com/go/scheduler v1.10.6/go.mod h1:pe2pNCtJ+R01E06XCDOJs1XvAMbv28ZsQEbqknxGOuE= +cloud.google.com/go/scheduler v1.10.8 h1:Jn/unfNUgRiNJRc1nrApzimKiVj91UYlLT8mMfpUu48= +cloud.google.com/go/scheduler v1.10.8/go.mod h1:0YXHjROF1f5qTMvGTm4o7GH1PGAcmu/H/7J7cHOiHl0= cloud.google.com/go/secretmanager v1.6.0/go.mod h1:awVa/OXF6IiyaU1wQ34inzQNc4ISIDIrId8qE5QGgKA= cloud.google.com/go/secretmanager v1.8.0/go.mod h1:hnVgi/bN5MYHd3Gt0SPuTPPp5ENina1/LxM+2W9U9J4= cloud.google.com/go/secretmanager v1.9.0/go.mod h1:b71qH2l1yHmWQHt9LC80akm86mX8AL6X1MA01dW8ht4= @@ -1061,6 +1248,8 @@ cloud.google.com/go/secretmanager v1.11.4 h1:krnX9qpG2kR2fJ+u+uNyNo+ACVhplIAS4Pu cloud.google.com/go/secretmanager v1.11.4/go.mod h1:wreJlbS9Zdq21lMzWmJ0XhWW2ZxgPeahsqeV/vZoJ3w= cloud.google.com/go/secretmanager v1.11.5 h1:82fpF5vBBvu9XW4qj0FU2C6qVMtj1RM/XHwKXUEAfYY= cloud.google.com/go/secretmanager v1.11.5/go.mod h1:eAGv+DaCHkeVyQi0BeXgAHOU0RdrMeZIASKc+S7VqH4= +cloud.google.com/go/secretmanager v1.13.1 h1:TTGo2Vz7ZxYn2QbmuFP7Zo4lDm5VsbzBjDReo3SA5h4= +cloud.google.com/go/secretmanager v1.13.1/go.mod h1:y9Ioh7EHp1aqEKGYXk3BOC+vkhlHm9ujL7bURT4oI/4= cloud.google.com/go/security v1.5.0/go.mod h1:lgxGdyOKKjHL4YG3/YwIL2zLqMFCKs0UbQwgyZmfJl4= cloud.google.com/go/security v1.7.0/go.mod h1:mZklORHl6Bg7CNnnjLH//0UlAlaXqiG7Lb9PsPXLfD0= cloud.google.com/go/security v1.8.0/go.mod h1:hAQOwgmaHhztFhiQ41CjDODdWP0+AE1B3sX4OFlq+GU= @@ -1075,6 +1264,8 @@ cloud.google.com/go/security v1.15.4 h1:sdnh4Islb1ljaNhpIXlIPgb3eYj70QWgPVDKOUYv cloud.google.com/go/security v1.15.4/go.mod h1:oN7C2uIZKhxCLiAAijKUCuHLZbIt/ghYEo8MqwD/Ty4= cloud.google.com/go/security v1.15.5 h1:wTKJQ10j8EYgvE8Y+KhovxDRVDk2iv/OsxZ6GrLP3kE= cloud.google.com/go/security v1.15.5/go.mod h1:KS6X2eG3ynWjqcIX976fuToN5juVkF6Ra6c7MPnldtc= +cloud.google.com/go/security v1.17.0 h1:u4RCnEQPvlrrnFRFinU0T3WsjtrsQErkWBfqTM5oUQI= +cloud.google.com/go/security v1.17.0/go.mod h1:eSuFs0SlBv1gWg7gHIoF0hYOvcSwJCek/GFXtgO6aA0= cloud.google.com/go/securitycenter v1.13.0/go.mod h1:cv5qNAqjY84FCN6Y9z28WlkKXyWsgLO832YiWwkCWcU= cloud.google.com/go/securitycenter v1.14.0/go.mod h1:gZLAhtyKv85n52XYWt6RmeBdydyxfPeTrpToDPw4Auc= cloud.google.com/go/securitycenter v1.15.0/go.mod h1:PeKJ0t8MoFmmXLXWm41JidyzI3PJjd8sXWaVqg43WWk= @@ -1088,6 +1279,8 @@ cloud.google.com/go/securitycenter v1.24.3 h1:crdn2Z2rFIy8WffmmhdlX3CwZJusqCiSht cloud.google.com/go/securitycenter v1.24.3/go.mod h1:l1XejOngggzqwr4Fa2Cn+iWZGf+aBLTXtB/vXjy5vXM= cloud.google.com/go/securitycenter v1.24.4 h1:/5jjkZ+uGe8hZ7pvd7pO30VW/a+pT2MrrdgOqjyucKQ= cloud.google.com/go/securitycenter v1.24.4/go.mod h1:PSccin+o1EMYKcFQzz9HMMnZ2r9+7jbc+LvPjXhpwcU= +cloud.google.com/go/securitycenter v1.30.0 h1:Y8C0I/mzLbaxAl5cw3EaLox0Rvpy+VUwEuCGWIQDMU8= +cloud.google.com/go/securitycenter v1.30.0/go.mod h1:/tmosjS/dfTnzJxOzZhTXdX3MXWsCmPWfcYOgkJmaJk= cloud.google.com/go/servicecontrol v1.4.0/go.mod h1:o0hUSJ1TXJAmi/7fLJAedOovnujSEvjKCAFNXPQ1RaU= cloud.google.com/go/servicecontrol v1.5.0/go.mod h1:qM0CnXHhyqKVuiZnGKrIurvVImCs8gmqWsDoqe9sU1s= cloud.google.com/go/servicecontrol v1.10.0/go.mod h1:pQvyvSRh7YzUF2efw7H87V92mxU8FnFDawMClGCNuAA= @@ -1107,6 +1300,8 @@ cloud.google.com/go/servicedirectory v1.11.3 h1:5niCMfkw+jifmFtbBrtRedbXkJm3fubS cloud.google.com/go/servicedirectory v1.11.3/go.mod h1:LV+cHkomRLr67YoQy3Xq2tUXBGOs5z5bPofdq7qtiAw= cloud.google.com/go/servicedirectory v1.11.4 h1:da7HFI1229kyzIyuVEzHXip0cw0d+E0s8mjQby0WN+k= cloud.google.com/go/servicedirectory v1.11.4/go.mod h1:Bz2T9t+/Ehg6x+Y7Ycq5xiShYLD96NfEsWNHyitj1qM= +cloud.google.com/go/servicedirectory v1.11.7 h1:c3OAhTcZ8LbIiKps5T3p6i0QcPI8/aWYwOfoZobICKo= +cloud.google.com/go/servicedirectory v1.11.7/go.mod h1:fiO/tM0jBpVhpCAe7Yp5HmEsmxSUcOoc4vPrO02v68I= cloud.google.com/go/servicemanagement v1.4.0/go.mod h1:d8t8MDbezI7Z2R1O/wu8oTggo3BI2GKYbdG4y/SJTco= cloud.google.com/go/servicemanagement v1.5.0/go.mod h1:XGaCRe57kfqu4+lRxaFEAuqmjzF0r+gWHjWqKqBvKFo= cloud.google.com/go/servicemanagement v1.6.0/go.mod h1:aWns7EeeCOtGEX4OvZUWCCJONRZeFKiptqKf1D0l/Jc= @@ -1127,6 +1322,8 @@ cloud.google.com/go/shell v1.7.4 h1:nurhlJcSVFZneoRZgkBEHumTYf/kFJptCK2eBUq/88M= cloud.google.com/go/shell v1.7.4/go.mod h1:yLeXB8eKLxw0dpEmXQ/FjriYrBijNsONpwnWsdPqlKM= cloud.google.com/go/shell v1.7.5 h1:3Fq2hzO0ZSyaqBboJrFkwwf/qMufDtqwwA6ep8EZxEI= cloud.google.com/go/shell v1.7.5/go.mod h1:hL2++7F47/IfpfTO53KYf1EC+F56k3ThfNEXd4zcuiE= +cloud.google.com/go/shell v1.7.7 h1:HxCzcUxSsCh6FJWkmbOUrGI1sKe4E1Yy4vaykn4RhJ4= +cloud.google.com/go/shell v1.7.7/go.mod h1:7OYaMm3TFMSZBh8+QYw6Qef+fdklp7CjjpxYAoJpZbQ= cloud.google.com/go/spanner v1.41.0/go.mod h1:MLYDBJR/dY4Wt7ZaMIQ7rXOTLjYrmxLE/5ve9vFfWos= cloud.google.com/go/spanner v1.44.0/go.mod h1:G8XIgYdOK+Fbcpbs7p2fiprDw4CaZX63whnSMLVBxjk= cloud.google.com/go/spanner v1.45.0 h1:7VdjZ8zj4sHbDw55atp5dfY6kn1j9sam9DRNpPQhqR4= @@ -1137,6 +1334,8 @@ cloud.google.com/go/spanner v1.54.0 h1:ttU+lhARPF/iZE3OkCpmfsemCz9mLaqBhGPd3Qub2 cloud.google.com/go/spanner v1.54.0/go.mod h1:wZvSQVBgngF0Gq86fKup6KIYmN2be7uOKjtK97X+bQU= cloud.google.com/go/spanner v1.57.0 h1:fJq+ZfQUDHE+cy1li0bJA8+sy2oiSGhuGqN5nqVaZdU= cloud.google.com/go/spanner v1.57.0/go.mod h1:aXQ5QDdhPRIqVhYmnkAdwPYvj/DRN0FguclhEWw+jOo= +cloud.google.com/go/spanner v1.63.0 h1:P6+BY70Wtol4MtryBgnXZVTZfsdySEvWfz0EpyLwHi4= +cloud.google.com/go/spanner v1.63.0/go.mod h1:iqDx7urZpgD7RekZ+CFvBRH6kVTW1ZSEb2HMDKOp5Cc= cloud.google.com/go/speech v1.6.0/go.mod h1:79tcr4FHCimOp56lwC01xnt/WPJZc4v3gzyT7FoBkCM= cloud.google.com/go/speech v1.7.0/go.mod h1:KptqL+BAQIhMsj1kOP2la5DSEEerPDuOP/2mmkhHhZQ= cloud.google.com/go/speech v1.8.0/go.mod h1:9bYIl1/tjsAnMgKGHKmBZzXKEkGgtU+MpdDPTE9f7y0= @@ -1150,6 +1349,8 @@ cloud.google.com/go/speech v1.21.0 h1:qkxNao58oF8ghAHE1Eghen7XepawYEN5zuZXYWaUTA cloud.google.com/go/speech v1.21.0/go.mod h1:wwolycgONvfz2EDU8rKuHRW3+wc9ILPsAWoikBEWavY= cloud.google.com/go/speech v1.21.1 h1:nuFc+Kj5B8de75nN4FdPyUbI2SiBoHZG6BLurXL56Q0= cloud.google.com/go/speech v1.21.1/go.mod h1:E5GHZXYQlkqWQwY5xRSLHw2ci5NMQNG52FfMU1aZrIA= +cloud.google.com/go/speech v1.23.1 h1:TcWEAOLQH1Lb2fhHS6/GjvAh+ue0dt4xUDHXHG6vF04= +cloud.google.com/go/speech v1.23.1/go.mod h1:UNgzNxhNBuo/OxpF1rMhA/U2rdai7ILL6PBXFs70wq0= cloud.google.com/go/storage v1.14.0 h1:6RRlFMv1omScs6iq2hfE3IvgE+l6RfJPampq8UZc5TU= cloud.google.com/go/storage v1.23.0/go.mod h1:vOEEDNFnciUMhBeT6hsJIn3ieU5cFRmzeLgDvXzfIXc= cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s= @@ -1161,6 +1362,8 @@ cloud.google.com/go/storage v1.30.1 h1:uOdMxAs8HExqBlnLtnQyP0YkvbiDpdGShGKtx6U/o cloud.google.com/go/storage v1.30.1/go.mod h1:NfxhC0UJE1aXSx7CIIbCf7y9HKT7BiccwkR7+P7gN8E= cloud.google.com/go/storage v1.38.0 h1:Az68ZRGlnNTpIBbLjSMIV2BDcwwXYlRlQzis0llkpJg= cloud.google.com/go/storage v1.38.0/go.mod h1:tlUADB0mAb9BgYls9lq+8MGkfzOXuLrnHXlpHmvFJoY= +cloud.google.com/go/storage v1.40.0 h1:VEpDQV5CJxFmJ6ueWNsKxcr1QAYOXEgxDa+sBbJahPw= +cloud.google.com/go/storage v1.40.0/go.mod h1:Rrj7/hKlG87BLqDJYtwR0fbPld8uJPbQ2ucUMY7Ir0g= cloud.google.com/go/storagetransfer v1.5.0/go.mod h1:dxNzUopWy7RQevYFHewchb29POFv3/AaBgnhqzqiK0w= cloud.google.com/go/storagetransfer v1.6.0/go.mod h1:y77xm4CQV/ZhFZH75PLEXY0ROiS7Gh6pSKrM8dJyg6I= cloud.google.com/go/storagetransfer v1.7.0/go.mod h1:8Giuj1QNb1kfLAiWM1bN6dHzfdlDAVC9rv9abHot2W4= @@ -1172,6 +1375,8 @@ cloud.google.com/go/storagetransfer v1.10.3 h1:YM1dnj5gLjfL6aDldO2s4GeU8JoAvH1xy cloud.google.com/go/storagetransfer v1.10.3/go.mod h1:Up8LY2p6X68SZ+WToswpQbQHnJpOty/ACcMafuey8gc= cloud.google.com/go/storagetransfer v1.10.4 h1:dy4fL3wO0VABvzM05ycMUPFHxTPbJz9Em8ikAJVqSbI= cloud.google.com/go/storagetransfer v1.10.4/go.mod h1:vef30rZKu5HSEf/x1tK3WfWrL0XVoUQN/EPDRGPzjZs= +cloud.google.com/go/storagetransfer v1.10.6 h1:CXmoNEvz7y2NtHFZuH3Z8ASN43rxRINWa2Q/IlBzM2k= +cloud.google.com/go/storagetransfer v1.10.6/go.mod h1:3sAgY1bx1TpIzfSzdvNGHrGYldeCTyGI/Rzk6Lc6A7w= cloud.google.com/go/talent v1.1.0/go.mod h1:Vl4pt9jiHKvOgF9KoZo6Kob9oV4lwd/ZD5Cto54zDRw= cloud.google.com/go/talent v1.2.0/go.mod h1:MoNF9bhFQbiJ6eFD3uSsg0uBALw4n4gaCaEjBw9zo8g= cloud.google.com/go/talent v1.3.0/go.mod h1:CmcxwJ/PKfRgd1pBjQgU6W3YBwiewmUzQYH5HHmSCmM= @@ -1184,6 +1389,8 @@ cloud.google.com/go/talent v1.6.5 h1:LnRJhhYkODDBoTwf6BeYkiJHFw9k+1mAFNyArwZUZAs cloud.google.com/go/talent v1.6.5/go.mod h1:Mf5cma696HmE+P2BWJ/ZwYqeJXEeU0UqjHFXVLadEDI= cloud.google.com/go/talent v1.6.6 h1:JssV0CE3FNujuSWn7SkosOzg7qrMxVnt6txOfGcMSa4= cloud.google.com/go/talent v1.6.6/go.mod h1:y/WQDKrhVz12WagoarpAIyKKMeKGKHWPoReZ0g8tseQ= +cloud.google.com/go/talent v1.6.8 h1:RoyEtftfJrbwJcu63zuWE4IjC76xMyVsJBhmleIp3bE= +cloud.google.com/go/talent v1.6.8/go.mod h1:kqPAJvhxmhoUTuqxjjk2KqA8zUEeTDmH+qKztVubGlQ= cloud.google.com/go/texttospeech v1.4.0/go.mod h1:FX8HQHA6sEpJ7rCMSfXuzBcysDAuWusNNNvN9FELDd8= cloud.google.com/go/texttospeech v1.5.0/go.mod h1:oKPLhR4n4ZdQqWKURdwxMy0uiTS1xU161C8W57Wkea4= cloud.google.com/go/texttospeech v1.6.0 h1:H4g1ULStsbVtalbZGktyzXzw6jP26RjVGYx9RaYjBzc= @@ -1194,6 +1401,8 @@ cloud.google.com/go/texttospeech v1.7.4 h1:ahrzTgr7uAbvebuhkBAAVU6kRwVD0HWsmDsvM cloud.google.com/go/texttospeech v1.7.4/go.mod h1:vgv0002WvR4liGuSd5BJbWy4nDn5Ozco0uJymY5+U74= cloud.google.com/go/texttospeech v1.7.5 h1:dxY2Q5mHCbrGa3oPR2O3PCicdnvKa1JmwGQK36EFLOw= cloud.google.com/go/texttospeech v1.7.5/go.mod h1:tzpCuNWPwrNJnEa4Pu5taALuZL4QRRLcb+K9pbhXT6M= +cloud.google.com/go/texttospeech v1.7.7 h1:qR6Mu+EM2OfaZR1/Rl8BDBTVfi2X5OtwKKvJRSQyG+o= +cloud.google.com/go/texttospeech v1.7.7/go.mod h1:XO4Wr2VzWHjzQpMe3gS58Oj68nmtXMyuuH+4t0wy9eA= cloud.google.com/go/tpu v1.3.0/go.mod h1:aJIManG0o20tfDQlRIej44FcwGGl/cD0oiRyMKG19IQ= cloud.google.com/go/tpu v1.4.0/go.mod h1:mjZaX8p0VBgllCzF6wcU2ovUXN9TONFLd7iz227X2Xg= cloud.google.com/go/tpu v1.5.0 h1:/34T6CbSi+kTv5E19Q9zbU/ix8IviInZpzwz3rsFE+A= @@ -1204,6 +1413,8 @@ cloud.google.com/go/tpu v1.6.4 h1:XIEH5c0WeYGaVy9H+UueiTaf3NI6XNdB4/v6TFQJxtE= cloud.google.com/go/tpu v1.6.4/go.mod h1:NAm9q3Rq2wIlGnOhpYICNI7+bpBebMJbh0yyp3aNw1Y= cloud.google.com/go/tpu v1.6.5 h1:C8YyYda8WtNdBoCgFwwBzZd+S6+EScHOxM/z1h0NNp8= cloud.google.com/go/tpu v1.6.5/go.mod h1:P9DFOEBIBhuEcZhXi+wPoVy/cji+0ICFi4TtTkMHSSs= +cloud.google.com/go/tpu v1.6.7 h1:ngQokxUB1z2gvHn3vAf04m7SFnNYMiQIIpny81fCGAs= +cloud.google.com/go/tpu v1.6.7/go.mod h1:o8qxg7/Jgt7TCgZc3jNkd4kTsDwuYD3c4JTMqXZ36hU= cloud.google.com/go/trace v1.3.0/go.mod h1:FFUE83d9Ca57C+K8rDl/Ih8LwOzWIV1krKgxg6N0G28= cloud.google.com/go/trace v1.4.0/go.mod h1:UG0v8UBqzusp+z63o7FK74SdFE+AXpCLdFb1rshXG+Y= cloud.google.com/go/trace v1.8.0/go.mod h1:zH7vcsbAhklH8hWFig58HvxcxyQbaIqMarMg9hn5ECA= @@ -1215,6 +1426,8 @@ cloud.google.com/go/trace v1.10.4 h1:2qOAuAzNezwW3QN+t41BtkDJOG42HywL73q8x/f6fnM cloud.google.com/go/trace v1.10.4/go.mod h1:Nso99EDIK8Mj5/zmB+iGr9dosS/bzWCJ8wGmE6TXNWY= cloud.google.com/go/trace v1.10.5 h1:0pr4lIKJ5XZFYD9GtxXEWr0KkVeigc3wlGpZco0X1oA= cloud.google.com/go/trace v1.10.5/go.mod h1:9hjCV1nGBCtXbAE4YK7OqJ8pmPYSxPA0I67JwRd5s3M= +cloud.google.com/go/trace v1.10.7 h1:gK8z2BIJQ3KIYGddw9RJLne5Fx0FEXkrEQzPaeEYVvk= +cloud.google.com/go/trace v1.10.7/go.mod h1:qk3eiKmZX0ar2dzIJN/3QhY2PIFh1eqcIdaN5uEjQPM= cloud.google.com/go/translate v1.3.0/go.mod h1:gzMUwRjvOqj5i69y/LYLd8RrNQk+hOmIXTi9+nb3Djs= cloud.google.com/go/translate v1.4.0/go.mod h1:06Dn/ppvLD6WvA5Rhdp029IX2Mi3Mn7fpMRLPvXT5Wg= cloud.google.com/go/translate v1.5.0/go.mod h1:29YDSYveqqpA1CQFD7NQuP49xymq17RXNaUDdc0mNu0= @@ -1227,6 +1440,8 @@ cloud.google.com/go/translate v1.9.3 h1:t5WXTqlrk8VVJu/i3WrYQACjzYJiff5szARHiyqq cloud.google.com/go/translate v1.9.3/go.mod h1:Kbq9RggWsbqZ9W5YpM94Q1Xv4dshw/gr/SHfsl5yCZ0= cloud.google.com/go/translate v1.10.1 h1:upovZ0wRMdzZvXnu+RPam41B0mRJ+coRXFP2cYFJ7ew= cloud.google.com/go/translate v1.10.1/go.mod h1:adGZcQNom/3ogU65N9UXHOnnSvjPwA/jKQUMnsYXOyk= +cloud.google.com/go/translate v1.10.3 h1:g+B29z4gtRGsiKDoTF+bNeH25bLRokAaElygX2FcZkE= +cloud.google.com/go/translate v1.10.3/go.mod h1:GW0vC1qvPtd3pgtypCv4k4U8B7EdgK9/QEF2aJEUovs= cloud.google.com/go/video v1.8.0/go.mod h1:sTzKFc0bUSByE8Yoh8X0mn8bMymItVGPfTuUBUyRgxk= cloud.google.com/go/video v1.9.0/go.mod h1:0RhNKFRF5v92f8dQt0yhaHrEuH95m068JYOvLZYnJSw= cloud.google.com/go/video v1.12.0/go.mod h1:MLQew95eTuaNDEGriQdcYn0dTwf9oWiA4uYebxM5kdg= @@ -1240,6 +1455,8 @@ cloud.google.com/go/video v1.20.3 h1:Xrpbm2S9UFQ1pZEeJt9Vqm5t2T/z9y/M3rNXhFoo8Is cloud.google.com/go/video v1.20.3/go.mod h1:TnH/mNZKVHeNtpamsSPygSR0iHtvrR/cW1/GDjN5+GU= cloud.google.com/go/video v1.20.4 h1:TXwotxkShP1OqgKsbd+b8N5hrIHavSyLGvYnLGCZ7xc= cloud.google.com/go/video v1.20.4/go.mod h1:LyUVjyW+Bwj7dh3UJnUGZfyqjEto9DnrvTe1f/+QrW0= +cloud.google.com/go/video v1.20.6 h1:YZHUgiIHE77SdZNT6gjagoni5GRcUkkrm4YCFFPqtBw= +cloud.google.com/go/video v1.20.6/go.mod h1:d5AOlIfWXpDg15wvztHmjFvKTTImWJU7EnMVWkoiEAk= cloud.google.com/go/videointelligence v1.6.0/go.mod h1:w0DIDlVRKtwPCn/C4iwZIJdvC69yInhW0cfi+p546uU= cloud.google.com/go/videointelligence v1.7.0/go.mod h1:k8pI/1wAhjznARtVT9U1llUaFNPh7muw8QyOUpavru4= cloud.google.com/go/videointelligence v1.8.0/go.mod h1:dIcCn4gVDdS7yte/w+koiXn5dWVplOZkE+xwG9FgK+M= @@ -1252,6 +1469,8 @@ cloud.google.com/go/videointelligence v1.11.4 h1:YS4j7lY0zxYyneTFXjBJUj2r4CFe/Uo cloud.google.com/go/videointelligence v1.11.4/go.mod h1:kPBMAYsTPFiQxMLmmjpcZUMklJp3nC9+ipJJtprccD8= cloud.google.com/go/videointelligence v1.11.5 h1:mYaWH8uhUCXLJCN3gdXswKzRa2+lK0zN6/KsIubm6pE= cloud.google.com/go/videointelligence v1.11.5/go.mod h1:/PkeQjpRponmOerPeJxNPuxvi12HlW7Em0lJO14FC3I= +cloud.google.com/go/videointelligence v1.11.7 h1:SKBkFTuOclESLjQL1LwraqVFm2fL5oL9tbzKITU+FOY= +cloud.google.com/go/videointelligence v1.11.7/go.mod h1:iMCXbfjurmBVgKuyLedTzv90kcnppOJ6ttb0+rLDID0= cloud.google.com/go/vision v1.2.0 h1:/CsSTkbmO9HC8iQpxbK8ATms3OQaX3YQUeTMGCxlaK4= cloud.google.com/go/vision v1.2.0/go.mod h1:SmNwgObm5DpFBme2xpyOyasvBc1aPdjvMk2bBk0tKD0= cloud.google.com/go/vision/v2 v2.2.0/go.mod h1:uCdV4PpN1S0jyCyq8sIM42v2Y6zOLkZs+4R9LrGYwFo= @@ -1267,6 +1486,8 @@ cloud.google.com/go/vision/v2 v2.7.5 h1:T/ujUghvEaTb+YnFY/jiYwVAkMbIC8EieK0CJo6B cloud.google.com/go/vision/v2 v2.7.5/go.mod h1:GcviprJLFfK9OLf0z8Gm6lQb6ZFUulvpZws+mm6yPLM= cloud.google.com/go/vision/v2 v2.8.0 h1:W52z1b6LdGI66MVhE70g/NFty9zCYYcjdKuycqmlhtg= cloud.google.com/go/vision/v2 v2.8.0/go.mod h1:ocqDiA2j97pvgogdyhoxiQp2ZkDCyr0HWpicywGGRhU= +cloud.google.com/go/vision/v2 v2.8.2 h1:j9RxG8DcyJO/D7/ps2pOey8VZys+TMqF79bWAhuM7QU= +cloud.google.com/go/vision/v2 v2.8.2/go.mod h1:BHZA1LC7dcHjSr9U9OVhxMtLKd5l2jKPzLRALEJvuaw= cloud.google.com/go/vmmigration v1.2.0/go.mod h1:IRf0o7myyWFSmVR1ItrBSFLFD/rJkfDCUTO4vLlJvsE= cloud.google.com/go/vmmigration v1.3.0/go.mod h1:oGJ6ZgGPQOFdjHuocGcLqX4lc98YQ7Ygq8YQwHh9A7g= cloud.google.com/go/vmmigration v1.5.0/go.mod h1:E4YQ8q7/4W9gobHjQg4JJSgXXSgY21nA5r8swQV+Xxc= @@ -1278,6 +1499,8 @@ cloud.google.com/go/vmmigration v1.7.4 h1:qPNdab4aGgtaRX+51jCOtJxlJp6P26qua4o1xx cloud.google.com/go/vmmigration v1.7.4/go.mod h1:yBXCmiLaB99hEl/G9ZooNx2GyzgsjKnw5fWcINRgD70= cloud.google.com/go/vmmigration v1.7.5 h1:5v9RT2vWyuw3pK2ox0HQpkoftO7Q7/8591dTxxQc79g= cloud.google.com/go/vmmigration v1.7.5/go.mod h1:pkvO6huVnVWzkFioxSghZxIGcsstDvYiVCxQ9ZH3eYI= +cloud.google.com/go/vmmigration v1.7.7 h1:bf2qKqEN7iqT62IptQ/FDadoDLJI9sthyrW3PVaH8bY= +cloud.google.com/go/vmmigration v1.7.7/go.mod h1:qYIK5caZY3IDMXQK+A09dy81QU8qBW0/JDTc39OaKRw= cloud.google.com/go/vmwareengine v0.1.0/go.mod h1:RsdNEf/8UDvKllXhMz5J40XxDrNJNN4sagiox+OI208= cloud.google.com/go/vmwareengine v0.2.2/go.mod h1:sKdctNJxb3KLZkE/6Oui94iw/xs9PRNC2wnNLXsHvH8= cloud.google.com/go/vmwareengine v0.3.0 h1:b0NBu7S294l0gmtrT0nOJneMYgZapr5x9tVWvgDoVEM= @@ -1288,6 +1511,8 @@ cloud.google.com/go/vmwareengine v1.0.3 h1:WY526PqM6QNmFHSqe2sRfK6gRpzWjmL98UFkq cloud.google.com/go/vmwareengine v1.0.3/go.mod h1:QSpdZ1stlbfKtyt6Iu19M6XRxjmXO+vb5a/R6Fvy2y4= cloud.google.com/go/vmwareengine v1.1.1 h1:EGdDi9QbqThfZq3ILcDK5g+m9jTevc34AY5tACx5v7k= cloud.google.com/go/vmwareengine v1.1.1/go.mod h1:nMpdsIVkUrSaX8UvmnBhzVzG7PPvNYc5BszcvIVudYs= +cloud.google.com/go/vmwareengine v1.1.3 h1:x4KwHB4JlBEzMaITVhrbbpHrU+2I5LrlvHGEEluT0vc= +cloud.google.com/go/vmwareengine v1.1.3/go.mod h1:UoyF6LTdrIJRvDN8uUB8d0yimP5A5Ehkr1SRzL1APZw= cloud.google.com/go/vpcaccess v1.4.0/go.mod h1:aQHVbTWDYUR1EbTApSVvMq1EnT57ppDmQzZ3imqIk4w= cloud.google.com/go/vpcaccess v1.5.0/go.mod h1:drmg4HLk9NkZpGfCmZ3Tz0Bwnm2+DKqViEpeEpOq0m8= cloud.google.com/go/vpcaccess v1.6.0 h1:FOe6CuiQD3BhHJWt7E8QlbBcaIzVRddupwJlp7eqmn4= @@ -1298,6 +1523,8 @@ cloud.google.com/go/vpcaccess v1.7.4 h1:zbs3V+9ux45KYq8lxxn/wgXole6SlBHHKKyZhNJo cloud.google.com/go/vpcaccess v1.7.4/go.mod h1:lA0KTvhtEOb/VOdnH/gwPuOzGgM+CWsmGu6bb4IoMKk= cloud.google.com/go/vpcaccess v1.7.5 h1:XyL6hTLtEM/eE4F1GEge8xUN9ZCkiVWn44K/YA7z1rQ= cloud.google.com/go/vpcaccess v1.7.5/go.mod h1:slc5ZRvvjP78c2dnL7m4l4R9GwL3wDLcpIWz6P/ziig= +cloud.google.com/go/vpcaccess v1.7.7 h1:F5woMLufKnshmDvPVxCzoC+Di12RYXQ1W8kNmpBT8z0= +cloud.google.com/go/vpcaccess v1.7.7/go.mod h1:EzfSlgkoAnFWEMznZW0dVNvdjFjEW97vFlKk4VNBhwY= cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xXZmFiHmGE= cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg= cloud.google.com/go/webrisk v1.6.0/go.mod h1:65sW9V9rOosnc9ZY7A7jsy1zoHS5W9IAXv6dGqhMQMc= @@ -1310,6 +1537,8 @@ cloud.google.com/go/webrisk v1.9.4 h1:iceR3k0BCRZgf2D/NiKviVMFfuNC9LmeNLtxUFRB/w cloud.google.com/go/webrisk v1.9.4/go.mod h1:w7m4Ib4C+OseSr2GL66m0zMBywdrVNTDKsdEsfMl7X0= cloud.google.com/go/webrisk v1.9.5 h1:251MvGuC8wisNN7+jqu9DDDZAi38KiMXxOpA/EWy4dE= cloud.google.com/go/webrisk v1.9.5/go.mod h1:aako0Fzep1Q714cPEM5E+mtYX8/jsfegAuS8aivxy3U= +cloud.google.com/go/webrisk v1.9.7 h1:EWTSVagWWeQjVAsebiF/wJMwC5bq6Zz3LqOmD9Uid4s= +cloud.google.com/go/webrisk v1.9.7/go.mod h1:7FkQtqcKLeNwXCdhthdXHIQNcFWPF/OubrlyRcLHNuQ= cloud.google.com/go/websecurityscanner v1.3.0/go.mod h1:uImdKm2wyeXQevQJXeh8Uun/Ym1VqworNDlBXQevGMo= cloud.google.com/go/websecurityscanner v1.4.0/go.mod h1:ebit/Fp0a+FWu5j4JOmJEV8S8CzdTkAS77oDsiSqYWQ= cloud.google.com/go/websecurityscanner v1.5.0 h1:AHC1xmaNMOZtNqxI9Rmm87IJEyPaRkOxeI0gpAacXGk= @@ -1320,6 +1549,8 @@ cloud.google.com/go/websecurityscanner v1.6.4 h1:5Gp7h5j7jywxLUp6NTpjNPkgZb3ngl0 cloud.google.com/go/websecurityscanner v1.6.4/go.mod h1:mUiyMQ+dGpPPRkHgknIZeCzSHJ45+fY4F52nZFDHm2o= cloud.google.com/go/websecurityscanner v1.6.5 h1:YqWZrZYabG88TZt7364XWRJGhxmxhony2ZUyZEYMF2k= cloud.google.com/go/websecurityscanner v1.6.5/go.mod h1:QR+DWaxAz2pWooylsBF854/Ijvuoa3FCyS1zBa1rAVQ= +cloud.google.com/go/websecurityscanner v1.6.7 h1:R5OW5SNRqD0DSEmyWLUMNYAXWYnz/NLSXBawVFrc9a0= +cloud.google.com/go/websecurityscanner v1.6.7/go.mod h1:EpiW84G5KXxsjtFKK7fSMQNt8JcuLA8tQp7j0cyV458= cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0= cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= cloud.google.com/go/workflows v1.8.0/go.mod h1:ysGhmEajwZxGn1OhGOGKsTXc5PyxOc0vfKf5Af+to4M= @@ -1332,6 +1563,8 @@ cloud.google.com/go/workflows v1.12.3 h1:qocsqETmLAl34mSa01hKZjcqAvt699gaoFbooGG cloud.google.com/go/workflows v1.12.3/go.mod h1:fmOUeeqEwPzIU81foMjTRQIdwQHADi/vEr1cx9R1m5g= cloud.google.com/go/workflows v1.12.4 h1:uHNmUiatTbPQ4H1pabwfzpfEYD4BBnqDHqMm2IesOh4= cloud.google.com/go/workflows v1.12.4/go.mod h1:yQ7HUqOkdJK4duVtMeBCAOPiN1ZF1E9pAMX51vpwB/w= +cloud.google.com/go/workflows v1.12.6 h1:2bE69mh68law1UZWPjgmvOQsjsGSppRudABAXwNAy58= +cloud.google.com/go/workflows v1.12.6/go.mod h1:oDbEHKa4otYg4abwdw2Z094jB0TLLiFGAPA78EDAKag= collectd.org v0.3.0 h1:iNBHGw1VvPJxH2B6RiFWFZ+vsjo1lCdRszBeOuwGi00= contrib.go.opencensus.io/exporter/stackdriver v0.13.4 h1:ksUxwH3OD5sxkjzEqGxNTl+Xjsmu3BnC/300MhSVTSc= dmitri.shuralyov.com/app/changes v0.0.0-20180602232624-0a106ad413e3 h1:hJiie5Bf3QucGRa4ymsAUOxyhYwGEz1xrsVk0P8erlw= @@ -1360,16 +1593,19 @@ github.com/Azure/azure-pipeline-go v0.2.2 h1:6oiIS9yaG6XCCzhgAgKFfIWyo4LLCiDhZot github.com/Azure/azure-sdk-for-go v16.2.1+incompatible h1:KnPIugL51v3N3WwvaSmZbxukD1WuWXOiE9fRdu32f2I= github.com/Azure/azure-sdk-for-go v56.3.0+incompatible h1:DmhwMrUIvpeoTDiWRDtNHqelNUd3Og8JCkrLHQK795c= github.com/Azure/azure-sdk-for-go v56.3.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= +github.com/Azure/azure-sdk-for-go v65.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/azure-sdk-for-go/sdk/azcore v0.21.1 h1:qoVeMsc9/fh/yhxVaA0obYjVH/oI/ihrOoMwsLS9KSA= github.com/Azure/azure-sdk-for-go/sdk/azcore v0.21.1/go.mod h1:fBF9PQNqB8scdgpZ3ufzaLntG0AG7C1WjPMsiFOmfHM= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.0 h1:8q4SaHjFsClSvuVne0ID/5Ka8u3fcIHyqkLjcFpNRHQ= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.0/go.mod h1:bjGvMhVMb+EEm3VRNQawDMUyMMjo+S5ewNjflkep/0Q= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.0 h1:vcYCAze6p19qBW7MhZybIsqD8sMV8js0NyQM8JDnVtg= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.0/go.mod h1:OQeznEEkTZ9OrhHJoDD8ZDq51FHgXjqtP9z6bEwBq9U= github.com/Azure/azure-sdk-for-go/sdk/internal v0.8.3 h1:E+m3SkZCN0Bf5q7YdTs5lSm2CYY3CK4spn5OmUIiQtk= github.com/Azure/azure-sdk-for-go/sdk/internal v0.8.3/go.mod h1:KLF4gFr6DcKFZwSuH8w8yEK6DpFl3LP5rhdvAb7Yz5I= github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 h1:sXr+ck84g/ZlZUOZiNELInmMgOsuGwdjjVkEIde0OtY= github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0/go.mod h1:okt5dMMTOFjX/aovMlrjvvXoPMBVSPzk9185BT0+eZM= +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/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.2.0 h1:Ma67P/GGprNwsslzEH6+Kb8nybI8jpDTm4Wmzu2ReK8= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.2.0/go.mod h1:c+Lifp3EDEamAkPVzMooRNOK6CZjNSdEnf1A7jsI9u4= github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.3.0 h1:Px2UA+2RvSSvv+RvJNuUB6n7rs5Wsel4dXLe90Um2n4= @@ -1382,21 +1618,25 @@ github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSW github.com/Azure/go-autorest/autorest v0.11.18 h1:90Y4srNYrwOtAgVo3ndrQkTYn6kf1Eg/AjTFJ8Is2aM= github.com/Azure/go-autorest/autorest v0.11.24 h1:1fIGgHKqVm54KIPT+q8Zmd1QlVsmHqeUGso5qm2BqqE= github.com/Azure/go-autorest/autorest v0.11.24/go.mod h1:G6kyRlFnTuSbEYkQGawPfsCswgme4iYf6rfSKUDzbCc= +github.com/Azure/go-autorest/autorest v0.11.29 h1:I4+HL/JDvErx2LjyzaVxllw2lRDB5/BT2Bm4g20iqYw= +github.com/Azure/go-autorest/autorest v0.11.29/go.mod h1:ZtEzC4Jy2JDrZLxvWs8LrBWEBycl1hbT1eknI8MtfAs= github.com/Azure/go-autorest/autorest/adal v0.9.13 h1:Mp5hbtOePIzM8pJVRa3YLrWWmZtoxRXqUEzCfJt3+/Q= github.com/Azure/go-autorest/autorest/adal v0.9.18 h1:kLnPsRjzZZUF3K5REu/Kc+qMQrvuza2bwSnNdhmzLfQ= github.com/Azure/go-autorest/autorest/adal v0.9.18/go.mod h1:XVVeme+LZwABT8K5Lc3hA4nAe8LDBVle26gTrguhhPQ= +github.com/Azure/go-autorest/autorest/adal v0.9.23 h1:Yepx8CvFxwNKpH6ja7RZ+sKX+DWYNldbLiALMC3BTz8= +github.com/Azure/go-autorest/autorest/adal v0.9.23/go.mod h1:5pcMqFkdPhviJdlEy3kC/v1ZLnQl0MH6XA5YCcMhy4c= github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw= github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= github.com/Azure/go-autorest/autorest/mocks v0.4.1 h1:K0laFcLE6VLTOwNgSxaGbUcLPuGXlNkbVvq4cW4nIHk= github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= github.com/Azure/go-autorest/autorest/to v0.4.0 h1:oXVqrxakqqV1UZdSazDOPOLvOIz+XA683u8EctwboHk= github.com/Azure/go-autorest/autorest/to v0.4.0/go.mod h1:fE8iZBn7LQR7zH/9XU2NcPR4o9jEImooCeWJcYV/zLE= +github.com/Azure/go-autorest/autorest/validation v0.3.1 h1:AgyqjAd94fwNAoTjl/WQXg4VvFeRFpO+UhNyRXqF1ac= +github.com/Azure/go-autorest/autorest/validation v0.3.1/go.mod h1:yhLgjC0Wda5DYXl6JAsWyUe4KVNffhoDhG0zVzUMo3E= github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+ZtXWSmf4Tg= github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo= github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= -github.com/AzureAD/microsoft-authentication-library-for-go v1.0.0 h1:OBhqkivkhkMqLPymWEppkm7vgPQY2XsHoEkaMQ0AdZY= -github.com/AzureAD/microsoft-authentication-library-for-go v1.0.0/go.mod h1:kgDmCTgBzIEPFElEF+FK0SdjAor06dRq2Go927dnQ6o= github.com/BurntSushi/toml v1.2.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802 h1:1BDTz0u9nC3//pOCMdNH+CiXJVYJh5UQNCOBG7jbELc= github.com/ClickHouse/clickhouse-go v1.5.4 h1:cKjXeYLNWVJIx2J1K6H2CqyRmfwVJVY1OV1coaaFcI0= @@ -1408,10 +1648,16 @@ github.com/CloudyKit/jet v2.1.3-0.20180809161101-62edd43e4f88+incompatible/go.mo github.com/CloudyKit/jet/v3 v3.0.0 h1:1PwO5w5VCtlUUl+KTOBsTGZlhjWkcybsGaAau52tOy8= github.com/CloudyKit/jet/v6 v6.1.0 h1:hvO96X345XagdH1fAoBjpBYG4a1ghhL/QzalkduPuXk= github.com/CloudyKit/jet/v6 v6.1.0/go.mod h1:d3ypHeIRNo2+XyqnGA8s+aphtcVpjP5hPwP/Lzo7Ro4= +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/DATA-DOG/go-sqlmock v1.3.3 h1:CWUqKXe0s8A2z6qCgkP4Kru7wC11YoAnoupUKFDnH08= +github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 h1:sHglBQTwgx+rWPdisA5ynNEsoARbiCBOyGcJM4/OzsM= github.com/GoogleCloudPlatform/cloudsql-proxy v0.0.0-20190129172621-c8b1d7a94ddf h1:8F6fjL5iQP6sArGtPuXh0l6hggdcIpAm4ChjVJE4oTs= github.com/GoogleCloudPlatform/cloudsql-proxy v0.0.0-20190129172621-c8b1d7a94ddf/go.mod h1:aJ4qN3TfrelA6NZ6AXsXRfmEVaYin3EDbSPJrKS8OXo= +github.com/GoogleCloudPlatform/grpc-gcp-go/grpcgcp v1.5.0 h1:oVLqHXhnYtUwM89y9T1fXGaK9wTkXHgNp8/ZNMQzUxE= +github.com/GoogleCloudPlatform/grpc-gcp-go/grpcgcp v1.5.0/go.mod h1:dppbR7CwXD4pgtV9t3wD1812RaLDcBjtblcDF5f1vI0= +github.com/HdrHistogram/hdrhistogram-go v1.1.0/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo= 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/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c h1:RGWPOewvKIROun94nF7v2cua9qP+thov/7M50KEoeSU= @@ -1419,6 +1665,9 @@ github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0 github.com/Joker/hpp v1.0.0 h1:65+iuJYdRXv/XyN62C1uEmmOx3432rNG/rKlX6V7Kkc= github.com/Joker/jade v1.0.1-0.20190614124447-d475f43051e7 h1:mreN1m/5VJ/Zc3b4pzj9qU6D9SRQ6Vm+3KfI328t3S8= github.com/Joker/jade v1.0.1-0.20190614124447-d475f43051e7/go.mod h1:6E6s8o2AE4KhCrqr6GRJjdC/gNfTdxkIXvuGZZda2VM= +github.com/KimMachineGun/automemlimit v0.6.1 h1:ILa9j1onAAMadBsyyUJv5cack8Y1WT26yLj/V+ulKp8= +github.com/KimMachineGun/automemlimit v0.6.1/go.mod h1:T7xYht7B8r6AG/AqFcUdc7fzd2bIdBKmepfP2S1svPY= +github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= github.com/Masterminds/sprig v2.22.0+incompatible h1:z4yfnGrZ7netVz+0EDJ0Wi+5VZCSYp4Z0m2dk6cEM60= github.com/Masterminds/vcs v1.13.3 h1:IIA2aBdXvfbIM+yl/eTnL4hb1XwdpvuQLglAix1gweE= @@ -1428,6 +1677,7 @@ github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7 github.com/Microsoft/hcsshim v0.11.4/go.mod h1:smjE4dvqPX9Zldna+t5FG3rnoHhaB7QYxPRqGcpAD9w= github.com/Microsoft/hcsshim/test v0.0.0-20210227013316-43a75bb4edd3 h1:4FA+QBaydEHlwxg0lMN3rhwoDaQy6LKhVWR4qvq4BuA= github.com/Microsoft/hcsshim/test v0.0.0-20210227013316-43a75bb4edd3/go.mod h1:mw7qgWloBUl75W/gVH3cQszUg1+gUITj7D6NY7ywVnY= +github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I= github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE= @@ -1435,16 +1685,21 @@ github.com/OneOfOne/xxhash v1.2.8 h1:31czK/TI9sNkxIKfaUfGlU47BAxQ0ztGgd9vPyqimf8 github.com/OneOfOne/xxhash v1.2.8/go.mod h1:eZbhyaAYD41SGSSsnmcpxVoRiQ/MPUTjUdIIOT9Um7Q= github.com/OpenPeeDeeP/depguard v1.0.1 h1:VlW4R6jmBIv3/u1JNlawEvJMM4J+dPORPaZasQee8Us= github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= +github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= +github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/Shopify/goreferrer v0.0.0-20220729165902-8cddb4f5de06 h1:KkH3I3sJuOLP3TjA/dfr4NAY8bghDwnXiU7cTKxQqo0= github.com/Shopify/goreferrer v0.0.0-20220729165902-8cddb4f5de06/go.mod h1:7erjKLwalezA0k99cWs5L11HWOAPNjdUZ6RxH1BXbbM= github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d h1:UrqY+r/OJnIp5u0s1SbQ8dVfLCZJsnvazdBP5hS4iRs= github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d/go.mod h1:HI8ITrYtUY+O+ZhtlqUnD8+KwNPOyugEhfP9fdUIaEQ= +github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= github.com/Shopify/sarama v1.23.1 h1:XxJBCZEoWJtoWjf/xRbmGUpAmTZGnuuF0ON0EvxxBrs= github.com/Shopify/toxiproxy v2.1.4+incompatible h1:TKdv8HiTLgE5wdJuEML90aBgNWsokNbMijUGhmcoBJc= +github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= github.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d h1:G0m3OIz70MZUWq3EgK3CesDbo8upS2Vm9/P3FtgI+Jk= github.com/StackExchange/wmi v1.2.1 h1:VIkavFPXSjcnS+O8yTq7NI32k0R5Aj+v39y29VYDOSA= github.com/StackExchange/wmi v1.2.1/go.mod h1:rcmrprowKIVzvc+NUiLncP2uuArMWLCbu9SBzvHz7e8= +github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= github.com/Zilliqa/gozilliqa-sdk v1.2.1-0.20201201074141-dd0ecada1be6 h1:1d9pzdbkth4D9AX6ndKSl7of3UTV0RYl3z64U2dXMGo= github.com/Zilliqa/gozilliqa-sdk v1.2.1-0.20201201074141-dd0ecada1be6/go.mod h1:eSYp2T6f0apnuW8TzhV3f6Aff2SE8Dwio++U4ha4yEM= github.com/aclements/go-gg v0.0.0-20170118225347-6dbb4e4fefb0 h1:E5Dzlk3akC+T2Zj1LBHgfPK1y8YWgLDnNDRmG+tpSKw= @@ -1454,6 +1709,7 @@ github.com/aclements/go-moremath v0.0.0-20210112150236-f10218a38794/go.mod h1:7e github.com/acomagu/bufpipe v1.0.4 h1:e3H4WUzM3npvo5uv95QuJM3cQspFNtFBzvJ2oNjKIDQ= github.com/acomagu/bufpipe v1.0.4/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4= github.com/aead/siphash v1.0.1 h1:FwHfE/T45KPKYuuSAKyyvE+oPWcaQ+CUmFW0bPlM+kg= +github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= github.com/agl/ed25519 v0.0.0-20170116200512-5312a6153412 h1:w1UutsfOrms1J05zt7ISrnJIXKzwaspym5BTKGx93EI= github.com/ajg/form v1.5.1 h1:t9c7v8JUKu/XxOGBU0yjNpaMloxGEJhUkqFRq0ibGeU= github.com/ajstarks/deck v0.0.0-20200831202436-30c9fc6549a9 h1:7kQgkwGRoLzC9K0oyXdJo7nve/bynv/KwUsxbiTlzAM= @@ -1477,6 +1733,8 @@ github.com/alecthomas/kingpin/v2 v2.4.0/go.mod h1:0gyi0zQnjuFk8xrkNKamJoyUo382HR github.com/alecthomas/kong v0.2.1-0.20190708041108-0548c6b1afae h1:C4Q9m+oXOxcSWwYk9XzzafY2xAVAaeubZbUHJkw3PlY= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 h1:JYp7IbQjafoB+tBA3gMyHYHrpOtNuDiK/uB5uXxq5wM= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +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-20211218093645-b94a6e3cc137 h1:s6gZFSlWYmbqAuRjVTiNNhvNRfY2Wxp9nhfyel4rklc= github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137/go.mod h1:OMCwj8VM1Kc9e19TLln2VL61YJF0x1XFtfdL4JdbSyE= github.com/alexflint/go-filemutex v1.1.0 h1:IAWuUuRYL2hETx5b8vCgwnD+xSdlsTQY6s2JjBsqLdg= @@ -1498,6 +1756,10 @@ github.com/apache/arrow/go/v11 v11.0.0 h1:hqauxvFQxww+0mEU/2XHG6LT7eZternCZq+A5Y github.com/apache/arrow/go/v11 v11.0.0/go.mod h1:Eg5OsL5H+e299f7u5ssuXsuHQVEGC4xei5aX110hRiI= github.com/apache/arrow/go/v12 v12.0.0 h1:xtZE63VWl7qLdB0JObIXvvhGjoVNrQ9ciIHG2OK5cmc= github.com/apache/arrow/go/v12 v12.0.0/go.mod h1:d+tV/eHZZ7Dz7RPrFKtPK02tpr+c9/PEd/zm8mDS9Vg= +github.com/apache/arrow/go/v14 v14.0.2 h1:N8OkaJEOfI3mEZt07BIkvo4sC6XDbL+48MBPWO5IONw= +github.com/apache/arrow/go/v14 v14.0.2/go.mod h1:u3fgh3EdgN/YQ8cVQRguVW3R+seMybFg8QBQ5LU+eBY= +github.com/apache/arrow/go/v15 v15.0.2 h1:60IliRbiyTWCWjERBCkO1W4Qun9svcYoZrSLcyOsMLE= +github.com/apache/arrow/go/v15 v15.0.2/go.mod h1:DGXsR3ajT524njufqf95822i+KTh+yea1jass9YXgjA= github.com/apache/thrift v0.16.0 h1:qEy6UW60iVOlUy+b9ZR0d5WzUWYGOo4HfopoyBaNmoY= github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= github.com/apparentlymart/go-textseg v1.0.0 h1:rRmlIsPEEhUTIKQb7T++Nz/A5Q6C9IuX2wFoYVvnCs0= @@ -1511,6 +1773,10 @@ github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hC github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6 h1:G1bPvciwNyF7IUmKXNt9Ak3m6u9DE1rF+RmtIkBpVdA= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da h1:8GUt8eRujhVEGZFFEjBj46YV4rDjvGrNxb0KMWYkL2I= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= +github.com/armon/go-metrics v0.3.10/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc= +github.com/armon/go-metrics v0.4.0/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4= +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 h1:BUAU3CGlLvorLI26FmByPp2eC2qla6E1Tw+scpcg/to= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/armon/go-radix v1.0.0 h1:F4z6KzEeeQIMeLFa97iZU6vupzoecKdU5TX24SNppXI= @@ -1521,9 +1787,13 @@ github.com/ashanbrown/forbidigo v1.1.0 h1:SJOPJyqsrVL3CvR0veFZFmIM0fXS/Kvyikqvfp github.com/ashanbrown/makezero v0.0.0-20210308000810-4155955488a0 h1:27owMIbvO33XL56BKWPy+SCU69I9wPwPXuMf5mAbVGU= 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.40.45/go.mod h1:585smgzpB/KqRA+K3y/NL/oYRqQvpNJYvLm+LY1U59Q= +github.com/aws/aws-sdk-go-v2 v1.9.1/go.mod h1:cK/D0BBs0b/oWPIcX/Z/obahJK1TT7IPVjy53i/mX/4= +github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.8.1/go.mod h1:CM+19rL1+4dFWnOQKwDc7H1KwXTz+h61oUSHyhV0b3o= github.com/aws/aws-sdk-go-v2/service/route53 v1.1.1 h1:cKr6St+CtC3/dl/rEBJvlk7A/IN5D5F02GNkGzfbtVU= github.com/aws/aws-sdk-go-v2/service/route53 v1.30.2 h1:/RPQNjh1sDIezpXaFIkZb7MlXnSyAqjVdAwcJuGYTqg= github.com/aws/aws-sdk-go-v2/service/route53 v1.30.2/go.mod h1:TQZBt/WaQy+zTHoW++rnl8JBrmZ0VO6EUbVua1+foCA= +github.com/aws/smithy-go v1.8.0/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E= github.com/aymerick/douceur v0.2.0 h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk= github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4= github.com/aymerick/raymond v2.0.3-0.20180322193309-b565731e1464+incompatible h1:Ppm0npCCsmuR9oQaBtRuZcmILVE74aXE+AmrJj8L2ns= @@ -1574,14 +1844,23 @@ github.com/bwesterb/go-ristretto v1.2.3 h1:1w53tCkGhCQ5djbat3+MH0BAQ5Kfgbt56UZQ/ github.com/bytecodealliance/wasmtime-go v0.36.0 h1:B6thr7RMM9xQmouBtUqm1RpkJjuLS37m6nxX+iwsQSc= github.com/bytecodealliance/wasmtime-go v0.36.0/go.mod h1:q320gUxqyI8yB+ZqRuaJOEnGkAnHh6WtJjMaT2CW4wI= github.com/bytedance/sonic v1.9.1/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U= +github.com/casbin/casbin/v2 v2.37.0/go.mod h1:vByNa/Fchek0KZUgG5wEsl7iFsiviAYKRtgrQfcJqHg= github.com/celo-org/celo-blockchain v0.0.0-20210222234634-f8c8f6744526 h1:rdY1F8vUybjjsv+V58eaSYsYPTNO+AXK9o7l+BQuhhU= github.com/celo-org/celo-bls-go v0.2.4 h1:V1y92kM5IRJWQZ6DCwqiKLW7swmUA5y/dPJ9YbU4HfA= +github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= github.com/census-instrumentation/opencensus-proto v0.4.1 h1:iKLQ0xPNFxR/2hzXZMrBo8f1j86j5WHzznCCQxV/b8g= github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054 h1:uH66TXeswKn5PW5zdZ39xEwfS9an067BirqA+P4QaLI= github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= +github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/charithe/durationcheck v0.0.6 h1:Tsy7EppNow2pDC0jN7Hsmcb6mHd71ZbI1vFissRBtc0= +github.com/charmbracelet/harmonica v0.2.0 h1:8NxJWRWg/bzKqqEaaeFNipOu77YR5t8aSwG4pgaUBiQ= +github.com/charmbracelet/harmonica v0.2.0/go.mod h1:KSri/1RMQOZLbw7AHqgcBycp8pgJnQMYYT8QZRqZ1Ao= +github.com/charmbracelet/ssh v0.0.0-20240515141028-546b2ee33a4d h1:u9HPsRc4wlU2mGLEX180ZeP4UIutqT2nQ7LVVgejP2E= +github.com/charmbracelet/ssh v0.0.0-20240515141028-546b2ee33a4d/go.mod h1:8/Ve8iGRRIGFM1kepYfRF2pEOF5Y3TEZYoJaA54228U= +github.com/charmbracelet/x/errors v0.0.0-20240524151031-ff83003bf67a h1:0lYEktGULal6+O5l2gmEf6ZIEujR9OQqHF4K6V+rGYE= +github.com/charmbracelet/x/errors v0.0.0-20240524151031-ff83003bf67a/go.mod h1:2P0UgXMEa6TsToMSuFqKFQR+fZTO9CNGUNokkPatT/0= github.com/chavacava/garif v0.0.0-20210405163807-87a70f3d418b h1:StHNkfM8nXnNQnk5/0uYYhIqvvENd14hoHPnZsakTNo= github.com/checkpoint-restore/go-criu/v4 v4.1.0 h1:WW2B2uxx9KWF6bGlHqhm8Okiafwwx7Y2kcpn8lCpjgo= github.com/checkpoint-restore/go-criu/v4 v4.1.0/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw= @@ -1608,6 +1887,11 @@ github.com/chzyer/test v0.0.0-20210722231415-061457976a23/go.mod h1:Q3SI9o4m/ZMn github.com/cilium/ebpf v0.7.0 h1:1k/q3ATgxSXRdrmPfH8d7YK0GfqVsEKZAX9dQZvs56k= github.com/cilium/ebpf v0.9.1 h1:64sn2K3UKw8NbP/blsixRpF3nXuyhz/VjRlRzvlBRu4= github.com/cilium/ebpf v0.9.1/go.mod h1:+OhNOIXx/Fnu1IE8bJz2dzOA+VSfyTfdNUVdlQnxUFY= +github.com/cilium/ebpf v0.11.0 h1:V8gS/bTCCjX9uUnkUFUpPsksM8n1lXBAvHcpiFk1X2Y= +github.com/cilium/ebpf v0.11.0/go.mod h1:WE7CZAnqOL2RouJ4f1uyNhqr2P4CCvXFIqdRDUgWsVs= +github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= +github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= +github.com/clbanning/mxj v1.8.4/go.mod h1:BVjHeAH+rl9rs6f+QIpeRl0tfu10SXn1pUSa5PVGJng= github.com/client9/misspell v0.3.4 h1:ta993UF76GwbvJcIo3Y68y/M3WxlpEHPWIGDkJYwzJI= github.com/cloudflare/cloudflare-go v0.14.0 h1:gFqGlGl/5f9UGXAaKapCGUfaTCgRKKnzu2VvzMZlOFA= github.com/cloudflare/cloudflare-go v0.79.0 h1:ErwCYDjFCYppDJlDJ/5WhsSmzegAUe2+K9qgFyQDg3M= @@ -1616,6 +1900,8 @@ github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 h1:F1EaeKL/ta07PY github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58/go.mod h1:EOBUe0h4xcZ5GoxqC5SDxFQ8gwyZPKQoEzownBlhI80= github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe h1:QQ3GSy+MqSHxm/d8nCtnAiZdYFd45cYZPs8vOOIYKfk= github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= +github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20240318125728-8a4994d93e50 h1:DBmgJDC9dTfkVyGgipamEh2BpGYxScCH1TOF1LL1cXc= github.com/cncf/xds/go v0.0.0-20240318125728-8a4994d93e50/go.mod h1:5e1+Vvlzido69INQaVO6d87Qn543Xr6nooe9Kz7oBFM= @@ -1640,7 +1926,11 @@ github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaD github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw= github.com/containerd/cgroups/v3 v3.0.2 h1:f5WFqIVSgo5IZmtTT3qVBo6TzI1ON6sycSBKkymb9L0= github.com/containerd/cgroups/v3 v3.0.2/go.mod h1:JUgITrzdFqp42uI2ryGA+ge0ap/nxzYgkGmIcetmErE= +github.com/containerd/cgroups/v3 v3.0.3 h1:S5ByHZ/h9PMe5IOQoN7E+nMc2UcLEM/V48DGDJ9kip0= +github.com/containerd/cgroups/v3 v3.0.3/go.mod h1:8HBe7V3aWGLFPd/k03swSIsGjZhHI2WzJmticMgVuz0= github.com/containerd/console v1.0.3 h1:lIr7SlA5PxZyMV30bDW0MGbiOPXwc63yRuCP0ARubLw= +github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 h1:q2hJAaP1k2wIvVRd/hEHD7lacgqrCPS+k8g1MndzfWY= +github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81/go.mod h1:YynlIjWYF8myEu6sdkwKIvGQq+cOckRm6So2avqoYAk= github.com/containerd/containerd v1.6.8 h1:h4dOFDwzHmqFEP754PgfgTeVXFnLiRc6kiqC7tplDJs= github.com/containerd/containerd v1.7.12 h1:+KQsnv4VnzyxWcfO9mlxxELaoztsDEjOuCMPAuPqgU0= github.com/containerd/containerd v1.7.12/go.mod h1:/5OMpE1p0ylxtEUGY8kuCYkDRzJm9NO1TFMWjUpdevk= @@ -1746,6 +2036,10 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumC github.com/dgryski/go-bitstream v0.0.0-20180413035011-3522498ce2c8 h1:akOQj8IVgoeFfBTzGOEQakCYshWD6RNo1M5pivFXt70= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954 h1:RMLoZVzv4GliuWafOuPuQDKSm1SJph7uCRnnS61JAn4= +github.com/digitalocean/godo v1.99.0 h1:gUHO7n9bDaZFWvbzOum4bXE0/09ZuYA9yA8idQHX57E= +github.com/digitalocean/godo v1.99.0/go.mod h1:SsS2oXo2rznfM/nORlZ/6JaUJZFhmKTib1YhopUc8NA= +github.com/digitalocean/godo v1.117.0 h1:WVlTe09melDYTd7VCVyvHcNWbgB+uI1O115+5LOtdSw= +github.com/digitalocean/godo v1.117.0/go.mod h1:Vk0vpCot2HOAJwc5WE8wljZGtJ3ZtWIc8MQ8rF38sdo= github.com/distribution/distribution/v3 v3.0.0-20220526142353-ffbd94cbe269 h1:hbCT8ZPPMqefiAWD2ZKjn7ypokIGViTvBBg/ExLSdCk= github.com/distribution/distribution/v3 v3.0.0-20220526142353-ffbd94cbe269/go.mod h1:28YO/VJk9/64+sTGNuYaBjWxrXTPrj0C0XmgTIOjxX4= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= @@ -1761,6 +2055,8 @@ github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyG github.com/dnephin/pflag v1.0.7 h1:oxONGlWxhmUct0YzKTgrpQv9AUA1wtPBn7zuSjJqptk= github.com/docker/distribution v2.8.1+incompatible h1:Q50tZOPR6T/hjNsyc9g8/syEs6bk8XXApsHjKukMl68= github.com/docker/distribution v2.8.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= +github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8= +github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/docker-credential-helpers v0.6.3 h1:zI2p9+1NQYdnG6sMU26EX4aVGlqbInSQxQXLvzJ4RPQ= github.com/docker/docker-credential-helpers v0.7.0 h1:xtCHsjxogADNZcdv1pKUHXryefjlVRqWqIhk/uXJp0A= github.com/docker/docker-credential-helpers v0.7.0/go.mod h1:rETQfLdHNT3foU5kuNkFR1R1V12OJRRO5lzt2D1b5X0= @@ -1786,10 +2082,15 @@ github.com/dvyukov/go-fuzz v0.0.0-20200318091601-be3528f3a813 h1:NgO45/5mBLRVfiX github.com/dynamicgo/go-config v1.0.0 h1:iY97zNL+b3ds6IKddlFLIBMWPomnwTYxnFtnu5rDuAE= github.com/dynamicgo/xerrors v0.0.0-20190219051451-ec7525ce5de1 h1:bp3Xehls+lEKwcD2uaTXR8qgpSzkfCLuqKYOIOEG2TM= github.com/eapache/go-resiliency v1.1.0 h1:1NtRmCAqadE2FN4ZcN6g90TP3uk8cg9rn9eNK2197aU= +github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 h1:YEetp8/yCZMuEPMUDHG0CW/brkkEp8mzqk2+ODEitlw= +github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc= +github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= github.com/eclipse/paho.mqtt.golang v1.2.0 h1:1F8mhG9+aO5/xpdtFkW4SxOJB67ukuDC3t2y2qayIX0= github.com/edsrzf/mmap-go v1.0.0 h1:CEBF7HpRnUCSJgGUb5h1Gm7e3VkmVDrR8lvWVLtrOFw= +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/eknkc/amber v0.0.0-20171010120322-cdade1c07385 h1:clC1lXBpe2kTj2VHdaIu9ajZQe4kcEY9j0NsnDDBZ3o= github.com/elastic/gosigar v0.14.2 h1:Dg80n8cr90OZ7x+bAax/QjoW/XqTI11RmA79ZwIm9/4= github.com/elastic/gosigar v0.14.2/go.mod h1:iXRIGg2tLnu7LBdpqzyQfGDEidKCfWcCMS0WKyPWoMs= @@ -1797,8 +2098,13 @@ github.com/elazarl/goproxy/ext v0.0.0-20190711103511-473e67f1d7d2 h1:dWB6v3RcOy0 github.com/elazarl/goproxy/ext v0.0.0-20190711103511-473e67f1d7d2/go.mod h1:gNh8nYJoAm43RfaxurUnxr+N1PwuFV3ZMl/efxlIlY8= github.com/emicklei/go-restful v2.9.5+incompatible h1:spTtZBk5DYEvbxMVutUuTyh1Ao2r4iyvLdACqsl/Ljk= github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= +github.com/emicklei/go-restful/v3 v3.8.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/emicklei/go-restful/v3 v3.10.1 h1:rc42Y5YTp7Am7CS630D7JmhRjq4UlEUuEKfrDac4bSQ= github.com/emicklei/go-restful/v3 v3.10.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g= +github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= +github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= github.com/envoyproxy/go-control-plane v0.11.1 h1:wSUXTlLfiAQRWs2F+p+EKOY9rUyis1MyGqJ2DIk5HpM= github.com/envoyproxy/go-control-plane v0.11.1/go.mod h1:uhMcXKCQMEJHiAb0w+YGefQLaTEw+YhGluxZkrTmD0g= github.com/envoyproxy/go-control-plane v0.12.0 h1:4X+VP1GHd1Mhj6IB5mMeGbLCleqxjletLK6K0rbxyZI= @@ -1813,6 +2119,10 @@ github.com/ethereum/go-ethereum v1.13.7/go.mod h1:sc48XYQxCzH3fG9BcrXCOOgQk2JfZz github.com/ettle/strcase v0.1.1 h1:htFueZyVeE1XNnMEfbqp5r67qAN/4r6ya1ysq8Q+Zcw= github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84= github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +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/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/fasthttp-contrib/websocket v0.0.0-20160511215533-1f3b11f56072 h1:DddqAaWDpywytcG8w/qoQ5sAN8X12d3Z3koB0C3Rxsc= github.com/fatih/structs v1.1.0 h1:Q7juDM0QtcnhCpeyLGQKyg4TOIghuNXrkL32pHAUMxo= github.com/ferranbt/fastssz v0.1.2 h1:Dky6dXlngF6Qjc+EfDipAkE83N5I5DE68bY6O0VLNPk= @@ -1840,6 +2150,8 @@ github.com/foxcpp/go-mockdns v0.0.0-20210729171921-fb145fc6f897 h1:E52jfcE64UG42 github.com/foxcpp/go-mockdns v0.0.0-20210729171921-fb145fc6f897/go.mod h1:lgRN6+KxQBawyIghpnl5CezHFGS9VLzvtVlwxvzXTQ4= github.com/francoispqt/gojay v1.2.13 h1:d2m3sFjloqoIUQU3TsHBgj6qg/BVGlTBeHDUmyJnXKk= github.com/francoispqt/gojay v1.2.13/go.mod h1:ehT5mTG4ua4581f1++1WLG0vPdaA9HaiDsoyrBGkyDY= +github.com/franela/goblin v0.0.0-20210519012713-85d372ac71e2/go.mod h1:VzmDKDJVZI3aJmnRI9VjAn9nJ8qPPsN1fqzr9dqInIo= +github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= github.com/frankban/quicktest v1.11.3 h1:8sXhOn0uLys67V8EsXLc6eszDs8VXWxL3iRvebPhedY= github.com/frankban/quicktest v1.14.0 h1:+cqqvzZV87b4adx/5ayVOaYZ2CrvM4ejQvUdBzPPUss= github.com/frankban/quicktest v1.14.0/go.mod h1:NeW+ay9A/U67EYXNFA1nPE8e/tnQv/09mUdL/ijj8og= @@ -1893,13 +2205,17 @@ github.com/go-ini/ini v1.66.6 h1:h6k2Bb0HWS/BXXHCXj4QHjxPmlIU4NK+7MuLp9SD+4k= github.com/go-ini/ini v1.66.6/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-kit/kit v0.9.0 h1:wDJmvq38kDhkVxi50ni9ykkdUr1PKgqKOoi01fa0Mdk= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= -github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= +github.com/go-kit/kit v0.12.0 h1:e4o3o3IsBfAKQh5Qbbiqyfu97Ku7jrO/JbohvztANh4= +github.com/go-kit/kit v0.12.0/go.mod h1:lHd+EkCZPIwYItmGDDRdhinkzX2A1sj+M9biaEaizzs= +github.com/go-kit/kit v0.13.0 h1:OoneCcHKHQ03LfBpoQCUfCluwd2Vt3ohz+kvbJneZAU= +github.com/go-kit/kit v0.13.0/go.mod h1:phqEHMMUbyrCFCTgH48JueqrM3md2HcAZ8N3XE4FKDg= +github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= github.com/go-latex/latex v0.0.0-20210118124228-b3d85cf34e07/go.mod h1:CO1AlKB2CSIqUrmQPqA0gdRIlnLEY0gK5JGjh37zN5U= github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81 h1:6zl3BbBhdnMkpSj2YY30qV3gDcVBGtFgVsV3+/i+mKQ= github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81/go.mod h1:SX0U8uGpxhq9o2S/CELCSUxEWWAuoCUcVCQWv7G2OCk= github.com/go-latex/latex v0.0.0-20230307184459-12ec69307ad9 h1:NxXI5pTAtpEaU49bpLpQoDsu1zrteW/vxzTz8Cd2UAs= github.com/go-latex/latex v0.0.0-20230307184459-12ec69307ad9/go.mod h1:gWuR/CrFDDeVRFQwHPvsv9soJVB/iqymhuZQuJ3a9OM= +github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA= github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= @@ -1907,7 +2223,32 @@ github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ4 github.com/go-logr/zapr v1.2.3 h1:a9vnzlIBPQBBkeaR9IuMUfmVOrQlkoC4YfPoFkX3T7A= github.com/go-logr/zapr v1.2.3/go.mod h1:eIauM6P8qSvTw5o2ez6UEAfGjQKrxQTl5EoK+Qa2oG4= github.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab h1:xveKWz2iaueeTaUgdetzel+U7exyigDYBryyVfV/rZk= +github.com/go-openapi/analysis v0.21.4 h1:ZDFLvSNxpDaomuCueM0BlSXxpANBlFYiBvr+GXrvIHc= +github.com/go-openapi/analysis v0.21.4/go.mod h1:4zQ35W4neeZTqh3ol0rv/O8JBbka9QyAgQRPp9y3pfo= +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.20.3 h1:rz6kiC84sqNQoqrtulzaL/VERgkoCyB6WdEkc2ujzUc= +github.com/go-openapi/errors v0.20.3/go.mod h1:Z3FlZ4I8jEGxjUK+bugx3on2mIAk4txuAOhlsB1FSgk= +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/jsonreference v0.19.6/go.mod h1:diGHMEHg2IqXZGKxqyvWdfWU/aim5Dprw5bqpKkTvns= +github.com/go-openapi/jsonreference v0.20.1/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= +github.com/go-openapi/loads v0.21.2 h1:r2a/xFIYeZ4Qd2TnGpWDIQNcP80dIaZgf704za8enro= +github.com/go-openapi/loads v0.21.2/go.mod h1:Jq58Os6SSGz0rzh62ptiu8Z31I+OTHqmULx5e/gJbNw= +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.19.3 h1:0XRyw8kguri6Yw4SxhsQA/atC88yqrk0+G4YhI2wabc= +github.com/go-openapi/spec v0.20.4/go.mod h1:faYFR1CvsJZ0mNsmsphTMSoRrNV3TEDoAM7FOEWeq8I= +github.com/go-openapi/strfmt v0.21.7 h1:rspiXgNWgeUzhjo1YU01do6qsahtJNByjLVbPLNHb8k= +github.com/go-openapi/strfmt v0.21.7/go.mod h1:adeGTkxE44sPyLk0JV235VQAO/ZXUr8KAzYjclFs3ew= +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.22.5/go.mod h1:Gl91UqO+btAM0plGGxHqJcQZ1ZTy6jbmridBTsDy8A0= +github.com/go-openapi/swag v0.22.6/go.mod h1:Gl91UqO+btAM0plGGxHqJcQZ1ZTy6jbmridBTsDy8A0= +github.com/go-openapi/validate v0.22.0 h1:b0QecH6VslW/TxtpKgzpO1SNG7GU2FsaqKdP1E2T50Y= +github.com/go-openapi/validate v0.22.0/go.mod h1:rjnrwK57VJ7A8xqfpAOEKRH8yQSGUriMu5/zuPSQ1hg= +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-pdf/fpdf v0.5.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= github.com/go-pdf/fpdf v0.6.0 h1:MlgtGIfsdMEEQJr2le6b/HNr1ZlQwxyWr77r2aj2U/8= github.com/go-pdf/fpdf v0.6.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= @@ -1932,6 +2273,9 @@ github.com/go-toolsmith/strparse v1.0.0 h1:Vcw78DnpCAKlM20kSbAyO4mPfJn/lyYA4BJUD github.com/go-toolsmith/typep v1.0.2 h1:8xdsa1+FSIH/RhEkgnD1j2CJOy5mNllW1Q9tRiYwvlk= github.com/go-xmlfmt/xmlfmt v0.0.0-20191208150333-d5b6f63a941b h1:khEcpUM4yFcxg4/FHQWkvVRmgijNXRfzkIDHh23ggEo= github.com/go-yaml/yaml v2.1.0+incompatible h1:RYi2hDdss1u4YE7GwixGzWwVo47T8UQwnTLB6vQiq+o= +github.com/go-zookeeper/zk v1.0.2/go.mod h1:nOB03cncLtlp4t+UAkGSV+9beXP/akpekBwL+UX1Qcw= +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/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee h1:s+21KNqlpePfkah2I+gwHF8xmJWRjooY+5248k6m4A0= @@ -1951,12 +2295,14 @@ github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6 github.com/godror/godror v0.24.2 h1:uxGAD7UdnNGjX5gf4NnEIGw0JAPTIFiqAyRBZTPKwXs= github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0= github.com/gogo/status v1.1.0 h1:+eIkrewn5q6b30y+g/BJINVVdi2xH7je5MPJ3ZPK3JA= +github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe h1:lXe2qZdvpiX5WZkZR4hgp4KJVfY3nMkvmwbVkpv1rVY= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g= github.com/golang/geo v0.0.0-20190916061304-5b978397cfec h1:lJwO/92dFXWeXOZdoGXgptLmNLwynMSHUmU6besqtiw= github.com/golang/lint v0.0.0-20180702182130-06c8688daad7 h1:2hRPrmiwPrp3fQX967rNJIhQPtiGXdlQWAxKbKw3VHA= 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.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2 h1:23T5iq8rbUYlhpt5DB4XJkc6BU31uODLD1o1gKvZmD0= github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a h1:w8hkcTqaFpzKqonE9uMCefW1WDie15eSP/4MssdenaM= github.com/golangci/go-misc v0.0.0-20180628070357-927a3d87b613 h1:9kfjN3AdxcbsZBf8NjltjWihK2QfBBBZuv91cMFfDHw= @@ -1992,23 +2338,34 @@ github.com/google/certificate-transparency-go v1.1.1 h1:6JHXZhXEvilMcTjR4MGZn5KV github.com/google/flatbuffers v1.11.0 h1:O7CEyB8Cb3/DmtxODGtLHcEvpr81Jm5qLg/hsHnxA2A= github.com/google/flatbuffers v2.0.8+incompatible h1:ivUb1cGomAB101ZM1T0nOiWz9pSrTMoa9+EiY7igmkM= github.com/google/flatbuffers v2.0.8+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= +github.com/google/flatbuffers v23.5.26+incompatible h1:M9dgRyhJemaM4Sw8+66GHBu8ioaQmyPLg1b8VwK5WJg= +github.com/google/flatbuffers v23.5.26+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/gnostic v0.5.7-v3refs h1:FhTMOKj2VhjpouxvWJAV1TL304uMlb9zcDqkl6cEI54= github.com/google/gnostic v0.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ= +github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= +github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= github.com/google/go-containerregistry v0.5.1 h1:/+mFTs4AlwsJ/mJe8NDtKb7BxLtbZFpcn8vDsneEkwQ= github.com/google/go-containerregistry v0.14.0 h1:z58vMqHxuwvAsVwvKEkmVBz2TlgBgH5k6koEXBtlYkw= github.com/google/go-containerregistry v0.14.0/go.mod h1:aiJ2fp/SXvkWgmYHioXnbMdlgB8eXiiYOY55gfN91Wk= github.com/google/go-github v17.0.0+incompatible h1:N0LgJ1j65A7kfXrZnUDaYCs/Sf4rEjNlfyDHW9dolSY= github.com/google/go-pkcs11 v0.2.1-0.20230907215043-c6f79328ddf9 h1:OF1IPgv+F4NmqmJ98KTjdN97Vs1JxDPB3vbmYzV2dpk= github.com/google/go-pkcs11 v0.2.1-0.20230907215043-c6f79328ddf9/go.mod h1:6eQoGcuNJpa7jnd5pMGdkSaQpNDYvPlXWMcjXXThLlY= +github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gopacket v1.1.19 h1:ves8RnFZPGiFnTS0uPQStjwru6uO6h+nlr9j6fL7kF8= github.com/google/gopacket v1.1.19/go.mod h1:iJ8V8n6KS+z2U1A8pUwu8bW5SyEMkXJB8Yo/Vo+TKTo= github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no= github.com/google/martian/v3 v3.1.0 h1:wCKgOCHuUEVfsaQLpPSJb7VdYCdTVZQAuOdYm1yc/60= github.com/google/martian/v3 v3.3.2 h1:IqNFLAmvJOgVlpdEBiQbDc2EwKW77amAycfTuWKdfvw= github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= +github.com/google/martian/v3 v3.3.3 h1:DIhPTQrbPkgs2yJYdXU/eNACCG5DVQjySNRNlflZ9Fc= +github.com/google/martian/v3 v3.3.3/go.mod h1:iEPrYcgCF7jA9OtScMFQyAlZZ4YXTKEtJ1E6RWzmBA0= +github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20230207041349-798e818bf904/go.mod h1:uglQLonpP8qtYCYyzA+8c/9qtqgA3qsXGYqCPKARAFg= github.com/google/pprof v0.0.0-20240207164012-fb44976bdcd5 h1:E/LAvt58di64hlYjx7AsNS6C/ysHWYo+2qPCZKTQhRo= github.com/google/pprof v0.0.0-20240207164012-fb44976bdcd5/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= +github.com/google/pprof v0.0.0-20240528025155-186aa0362fba h1:ql1qNgCyOB7iAEk8JTNM+zJrgIbnyCKX/wdlyPufP5g= +github.com/google/pprof v0.0.0-20240528025155-186aa0362fba/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo= github.com/google/renameio v0.1.0 h1:GOZbcHa3HfsPKPlmyPyN2KEohoMXOhdMbHrvbpl2QaA= github.com/google/safehtml v0.0.2 h1:ZOt2VXg4x24bW0m2jtzAOkhoXV0iM8vNKc0paByCZqM= github.com/google/safehtml v0.0.2/go.mod h1:L4KWwDsUJdECRAEpZoBn3O64bQaywRscowZjJAzjHnU= @@ -2019,20 +2376,27 @@ github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/googleapis/gax-go v0.0.0-20161107002406-da06d194a00e/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY= github.com/googleapis/gax-go v2.0.0+incompatible h1:j0GKcs05QVmm7yesiZq2+9cxHkNK9YM6zKx4D2qucQU= github.com/googleapis/gax-go/v2 v2.12.1/go.mod h1:61M8vcyyXR2kqKFxKrfA22jaA8JGF7Dc8App1U3H6jc= +github.com/googleapis/gax-go/v2 v2.12.3/go.mod h1:AKloxT6GtNbaLm8QTNSidHUVsHYcBHwWRvkNFJUQcS4= github.com/googleapis/gnostic v0.5.5 h1:9fHAtK0uDfpveeqqo1hkEZJcFvYXAiCN3UutL8F9xHw= github.com/googleapis/gnostic v0.5.5/go.mod h1:7+EbHbldMins07ALC74bsA81Ovc97DwqyJO1AENw9kA= github.com/googleapis/go-type-adapters v1.0.0 h1:9XdMn+d/G57qq1s8dNc5IesGCXHf6V2HZ2JwRxfA2tA= github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8 h1:tlyzajkF3030q6M8SvmJSemC9DTHL/xaMa18b65+JM4= github.com/gookit/color v1.3.8 h1:w2WcSwaCa1ojRWO60Mm4GJUJomBNKR9G+x9DwaaCL1c= +github.com/gophercloud/gophercloud v1.5.0 h1:cDN6XFCLKiiqvYpjQLq9AiM7RDRbIC9450WpPH+yvXo= +github.com/gophercloud/gophercloud v1.5.0/go.mod h1:aAVqcocTSXh2vYFZ1JTvx4EQmfgzxRcNupUfxZbBNDM= +github.com/gophercloud/gophercloud v1.12.0 h1:Jrz16vPAL93l80q16fp8NplrTCp93y7rZh2P3Q4Yq7g= +github.com/gophercloud/gophercloud v1.12.0/go.mod h1:aAVqcocTSXh2vYFZ1JTvx4EQmfgzxRcNupUfxZbBNDM= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= github.com/gordonklaus/ineffassign v0.0.0-20210225214923-2e10b2664254 h1:Nb2aRlC404yz7gQIfRZxX9/MLvQiqXyiBTJtgAy6yrI= github.com/gorhill/cronexpr v0.0.0-20180427100037-88b0669f7d75 h1:f0n1xnMSmBLzVfsMMvriDyA75NB/oBgILX2GcHXIQzY= +github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= github.com/gorilla/css v1.0.0 h1:BQqNyPTi50JCFMTw/b67hByjMVXZRwGha6wxVGkeihY= github.com/gorilla/css v1.0.0/go.mod h1:Dn721qIggHpt4+EFCcTLTU/vk5ySda2ReITrtgBl60c= github.com/gorilla/handlers v1.4.2 h1:0QniY0USkHQ1RGCLfKxeNHK9bkDHGRYGNDFBCS+YARg= github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH4= github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q= +github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/securecookie v1.1.1 h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyCS8BvQ= github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= github.com/gostaticanalysis/analysisutil v0.4.1 h1:/7clKqrVfiVwiBQLM0Uke4KvXnO6JcCTS7HwF2D6wG8= @@ -2054,28 +2418,57 @@ github.com/gxed/hashland/keccakpg v0.0.1 h1:wrk3uMNaMxbXiHibbPO4S0ymqJMm41WiudyF github.com/gxed/hashland/murmur3 v0.0.1 h1:SheiaIt0sda5K+8FLz952/1iWS9zrnKsEJaOJu4ZbSc= github.com/hashicorp/consul/api v1.1.0 h1:BNQPM9ytxj6jbjjdRPioQ94T6YXriSopn0i8COv6SRA= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= +github.com/hashicorp/consul/api v1.14.0/go.mod h1:bcaw5CSZ7NE9qfOfKCI1xb7ZKjzu/MyvQkCLTfqLqxQ= +github.com/hashicorp/consul/api v1.22.0 h1:ydEvDooB/A0c/xpsBd8GSt7P2/zYPBui4KrNip0xGjE= +github.com/hashicorp/consul/api v1.22.0/go.mod h1:zHpYgZ7TeYqS6zaszjwSt128OwESRpnhU9aGa6ue3Eg= +github.com/hashicorp/consul/api v1.29.1 h1:UEwOjYJrd3lG1x5w7HxDRMGiAUPrb3f103EoeKuuEcc= +github.com/hashicorp/consul/api v1.29.1/go.mod h1:lumfRkY/coLuqMICkI7Fh3ylMG31mQSRZyef2c5YvJI= +github.com/hashicorp/consul/sdk v0.10.0/go.mod h1:yPkX5Q6CsxTFMjQQDJwzeNmUUF5NUGGbrDsv9wTb8cw= +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/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-cleanhttp v0.5.1 h1:dH3aiDG9Jvb5r5+bYHsikaOUIpcM0xvgMXVoDkXMzJM= github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= github.com/hashicorp/go-getter v1.5.0 h1:ciWJaeZWSMbc5OiLMpKp40MKFPqO44i0h3uyfXPBkkk= github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= github.com/hashicorp/go-hclog v0.12.0 h1:d4QkX8FRTYaKaCZBoXYY8zJX2BXjWxurN/GA2tkrmZM= +github.com/hashicorp/go-hclog v0.14.1/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= +github.com/hashicorp/go-hclog v1.2.2/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= +github.com/hashicorp/go-hclog v1.5.0 h1:bI2ocEMgcVlz55Oj1xZNBsVi900c7II+fWDyV9o+13c= +github.com/hashicorp/go-hclog v1.5.0/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= github.com/hashicorp/go-immutable-radix v1.0.0 h1:AKDB1HM5PWEA7i4nhcpwOrO2byshxBjXVn/J/3+z5/0= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-immutable-radix v1.3.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +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 h1:zKjpN5BK/P5lMYrLmBHdBULWbJ0XpYR+7NGzqkZzoD4= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= +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-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= github.com/hashicorp/go-retryablehttp v0.7.4 h1:ZQgVdpTdAL7WpMIwLzCfbalOcSUdkDZnpUv3/+BxzFA= github.com/hashicorp/go-retryablehttp v0.7.4/go.mod h1:Jy/gPYAdjqffZ/yFGCFV2doI5wjtH1ewM9u8iYVjtX8= github.com/hashicorp/go-rootcerts v1.0.0 h1:Rqb66Oo1X/eSV1x66xbDccZjhJigjg0+e82kpwzSwCI= 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-sockaddr v1.0.0 h1:GeH6tui99pF4NJgfnhp+L6+FfobzVW3Ah46sLo0ICXs= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= +github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A= github.com/hashicorp/go-syslog v1.0.0 h1:KaodqZuhUoZereWVIYmpUgZysurB1kBLX2j0MwMrUAE= 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 h1:fv1ep09latC32wFoVwnqcnKJGnMSdBanPczbHAYm1BE= +github.com/hashicorp/go-uuid v1.0.2/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.2.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go.net v0.0.1 h1:sNCoNyDEvN1xa+X0baata4RdcpKwcMS6DH+xwfqPgjw= github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= +github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/golang-lru/arc/v2 v2.0.5 h1:l2zaLDubNhW4XO3LnliVj0GXO3+/CGNJAg1dcN2Fpfw= github.com/hashicorp/golang-lru/arc/v2 v2.0.5/go.mod h1:ny6zBSQZi2JxIeYcv7kt2sH2PXJtirBN7RDhRpxPkxU= github.com/hashicorp/golang-lru/v2 v2.0.5/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= @@ -2084,33 +2477,58 @@ github.com/hashicorp/logutils v1.0.0 h1:dLEQVugN8vlakKOUE3ihGLTZJRB4j+M2cdTm/ORI github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/mdns v1.0.0 h1:WhIgCr5a7AaVH6jPUwjtRuuE7/RDufnUvzIr48smyxs= 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 h1:EmmoJme1matNzb+hMpDuR/0sbJSUisxyqBGG676r31M= github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= +github.com/hashicorp/memberlist v0.3.0/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE= +github.com/hashicorp/memberlist v0.3.1/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE= +github.com/hashicorp/memberlist v0.4.0/go.mod h1:yvyXLpo0QaGE59Y7hDTsTzDD25JYBZ4mHgHUZ8lrOI0= +github.com/hashicorp/memberlist v0.5.0/go.mod h1:yvyXLpo0QaGE59Y7hDTsTzDD25JYBZ4mHgHUZ8lrOI0= +github.com/hashicorp/nomad/api v0.0.0-20230718173136-3a687930bd3e h1:sr4lujmn9heD030xx/Pd4B/JSmvRhFzuotNXaaV0WLs= +github.com/hashicorp/nomad/api v0.0.0-20230718173136-3a687930bd3e/go.mod h1:O23qLAZuCx4htdY9zBaO4cJPXgleSFEdq6D/sezGgYE= +github.com/hashicorp/nomad/api v0.0.0-20240604134157-e73d8bb1140d h1:KHq+mAzWSkumj4PDoXc5VZbycPGcmYu8tohgVLQ6SIc= +github.com/hashicorp/nomad/api v0.0.0-20240604134157-e73d8bb1140d/go.mod h1:svtxn6QnrQ69P23VvIWMR34tg3vmwLz4UdUzm1dSCgE= github.com/hashicorp/serf v0.8.2 h1:YZ7UKsJv+hKjqGVUUbtE3HNj79Eln2oQ75tniF6iPt0= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= +github.com/hashicorp/serf v0.9.7/go.mod h1:TXZNMjZQijwlDvp+r0b63xZ45H7JmCmgg4gpTwn9UV4= +github.com/hashicorp/serf v0.10.0/go.mod h1:bXN03oZc5xlH46k/K1qTrpXb9ERKyY1/i/N5mxvgrZw= +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/terraform-plugin-docs v0.13.0 h1:6e+VIWsVGb6jYJewfzq2ok2smPzZrt1Wlm9koLeKazY= github.com/hashicorp/terraform-plugin-docs v0.13.0/go.mod h1:W0oCmHAjIlTHBbvtppWHe8fLfZ2BznQbuv8+UD8OucQ= github.com/hdevalence/ed25519consensus v0.0.0-20201207055737-7fde80a9d5ff h1:LeVKjw8pcDQj7WVVnbFvbD7ovcv+r/l15ka1NH6Lswc= +github.com/hetznercloud/hcloud-go/v2 v2.0.0 h1:Sg1DJ+MAKvbYAqaBaq9tPbwXBS2ckPIaMtVdUjKu+4g= +github.com/hetznercloud/hcloud-go/v2 v2.0.0/go.mod h1:4iUG2NG8b61IAwNx6UsMWQ6IfIf/i1RsG0BbsKAyR5Q= +github.com/hetznercloud/hcloud-go/v2 v2.9.0 h1:s0N6R7Zoi2DPfMtUF5o9VeUBzTtHVY6MIkHOQnfu/AY= +github.com/hetznercloud/hcloud-go/v2 v2.9.0/go.mod h1:qtW/TuU7Bs16ibXl/ktJarWqU2LwHr7eGlwoilHxtgg= github.com/holiman/uint256 v1.2.2-0.20230321075855-87b91420868c/go.mod h1:SC8Ryt4n+UBbPbIBKaG9zbbDlp4jOru9xFZmPzLUTxw= github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= +github.com/hudl/fargo v1.4.0/go.mod h1:9Ai6uvFy5fQNq6VPKtg+Ceq1+eTY4nKUlR2JElEOcDo= github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150 h1:vlNjIqmUZ9CMAWsbURYl3a6wZbw7q5RHVvlXTNS/Bs8= github.com/hydrogen18/memlistener v0.0.0-20141126152155-54553eb933fb/go.mod h1:qEIFzExnS6016fRpRfxrExeVn2gbClQA99gQhnIcdhE= github.com/hydrogen18/memlistener v0.0.0-20200120041712-dcc25e7acd91 h1:KyZDvZ/GGn+r+Y3DKZ7UOQ/TP4xV6HNkrwiVMB1GnNY= github.com/iancoleman/strcase v0.2.0 h1:05I4QRnGpI0m37iZQRuskXh+w77mr6Z41lwQzuHLwW0= github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= +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-20200824232613-28f6c0f3b639 h1:mV02weKRL81bEnm8A0HT1/CAelMQDBuQIfLw8n+d6xI= github.com/ianlancetaylor/demangle v0.0.0-20220319035150-800ac71e25c2/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w= github.com/ianlancetaylor/demangle v0.0.0-20230524184225-eabc099b10ab h1:BA4a7pe6ZTd9F8kXETBoijjFJ/ntaa//1wiH9BZu4zU= github.com/ianlancetaylor/demangle v0.0.0-20230524184225-eabc099b10ab/go.mod h1:gx7rwoVhcfuVKG5uya9Hs3Sxj7EIvldVofAWIUtGouw= +github.com/ianlancetaylor/demangle v0.0.0-20240312041847-bd984b5ce465 h1:KwWnWVWCNtNq/ewIX7HIKnELmEx2nDP42yskD/pi7QE= +github.com/ianlancetaylor/demangle v0.0.0-20240312041847-bd984b5ce465/go.mod h1:gx7rwoVhcfuVKG5uya9Hs3Sxj7EIvldVofAWIUtGouw= github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU= github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk= github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= +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/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/influxdata/flux v0.65.1 h1:77BcVUCzvN5HMm8+j9PRBQ4iZcu98Dl4Y9rf+J5vhnc= github.com/influxdata/influxdb v1.8.3 h1:WEypI1BQFTT4teLM+1qkEcvUi0dAvopAI/ir0vAiBg8= +github.com/influxdata/influxdb1-client v0.0.0-20200827194710-b269163b24ab/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= github.com/influxdata/influxql v1.1.1-0.20200828144457-65d3ef77d385 h1:ED4e5Cc3z5vSN2Tz2GkOHN7vs4Sxe2yds6CXvDnvZFE= github.com/influxdata/promql/v2 v2.12.0 h1:kXn3p0D7zPw16rOtfDR+wo6aaiH8tSMfhPwONTxrlEc= github.com/influxdata/roaring v0.4.13-0.20180809181101-fc520f41fab6 h1:UzJnB7VRL4PSkUJHwsyzseGOmrO/r4yA+AuxGJxiZmA= @@ -2119,6 +2537,10 @@ github.com/influxdata/usage-client v0.0.0-20160829180054-6d3895376368 h1:+TUUmaF github.com/intel/goresctrl v0.2.0 h1:JyZjdMQu9Kl/wLXe9xA6s1X+tF6BWsQPFGJMEeCfWzE= github.com/intel/goresctrl v0.3.0 h1:K2D3GOzihV7xSBedGxONSlaw/un1LZgWsc9IfqipN4c= github.com/intel/goresctrl v0.3.0/go.mod h1:fdz3mD85cmP9sHD8JUlrNWAxvwM86CrbmVXltEKd7zk= +github.com/ionos-cloud/sdk-go/v6 v6.1.8 h1:493wE/BkZxJf7x79UCE0cYGPZoqQcPiEBALvt7uVGY0= +github.com/ionos-cloud/sdk-go/v6 v6.1.8/go.mod h1:EzEgRIDxBELvfoa/uBN0kOQaqovLjUWEB7iW4/Q+t4k= +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/ipfs/go-block-format v0.1.2 h1:GAjkfhVx1f4YTODS6Esrj1wt2HhrtwTnhEr+DyPUaJo= github.com/ipfs/go-block-format v0.1.2/go.mod h1:mACVcrxarQKstUU3Yf/RdwbC4DzPV6++rO2a3d+a/KE= github.com/ipfs/go-datastore v0.5.0/go.mod h1:9zhEApYMTl17C8YDp7JmU7sQZi2/wqiYh73hakZ90Bk= @@ -2198,6 +2620,8 @@ github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUB github.com/josephspurrier/goversioninfo v1.4.0 h1:Puhl12NSHUSALHSuzYwPYQkqa2E1+7SrtAPJorKK0C8= github.com/josephspurrier/goversioninfo v1.4.0/go.mod h1:JWzv5rKQr+MmW+LvM412ToT/IkYDZjaclF2pKDss8IY= github.com/jrick/logrotate v1.0.0 h1:lQ1bL/n9mBNeIXoTUoYRlK4dHuNJVofX9oWqBtPnSzI= +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/jstemmer/go-junit-report v0.9.1 h1:6QPYqodiu3GuPL+7mfx+NwDdp2eTkp9IfEUpgAwUN0o= github.com/jsternberg/zap-logfmt v1.0.0 h1:0Dz2s/eturmdUS34GM82JwNEdQ9hPoJgqptcEKcbpzY= github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= @@ -2247,6 +2671,8 @@ github.com/keep-network/keep-common v1.7.1-0.20211012131917-7102d7b9c6a0 h1:pQ6I github.com/keep-network/keep-common v1.7.1-0.20211012131917-7102d7b9c6a0/go.mod h1:g4RTDmhQMgwnlkU5bzW6cSz9dM+0UiQDPtow5NWdYbc= github.com/kevinmbeaulieu/eq-go v1.0.0 h1:AQgYHURDOmnVJ62jnEk0W/7yFKEn+Lv8RHN6t7mB0Zo= github.com/kevinmbeaulieu/eq-go v1.0.0/go.mod h1:G3S8ajA56gKBZm4UB9AOyoOS37JO3roToPzKNM8dtdM= +github.com/keybase/dbus v0.0.0-20220506165403-5aa21ea2c23a h1:K0EAzgzEQHW4Y5lxrmvPMltmlRDzlhLfGmots9EHUTI= +github.com/keybase/dbus v0.0.0-20220506165403-5aa21ea2c23a/go.mod h1:YPNKjjE7Ubp9dTbnWvsP3HT+hYnY6TfXzubYTBeUxc8= github.com/keybase/go-crypto v0.0.0-20161004153544-93f5b35093ba h1:NARVGAAgEXvoMeNPHhPFt1SBt1VMznA3Gnz9d0qj+co= github.com/kilic/bls12-381 v0.1.0 h1:encrdjqKMEvabVQ7qYOKu1OvhqpK4s47wDYtNiPtlp4= github.com/kilic/bls12-381 v0.1.0/go.mod h1:vDTTHJONJ6G+P2R74EhnyotQDTliQDnFEwhdmfzw1ig= @@ -2257,6 +2683,7 @@ github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23 h1:FOOIBWrEkLgmlgGfM github.com/klauspost/asmfmt v1.3.2 h1:4Ri7ox3EwapiOjCki+hw14RyKk201CN4rzyCJRFLpK4= github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= github.com/klauspost/compress v1.9.0/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +github.com/klauspost/compress v1.14.4/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= github.com/klauspost/compress v1.17.7/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= github.com/klauspost/cpuid v1.2.1 h1:vJi+O/nMdFt0vqm8NZBI6wzALWdA2X+egi0ogNyrC/w= @@ -2269,6 +2696,8 @@ github.com/klauspost/crc32 v0.0.0-20161016154125-cb6bfca970f6 h1:KAZ1BW2TCmT6PRi github.com/klauspost/pgzip v1.0.2-0.20170402124221-0bf5dcad4ada h1:3L+neHp83cTjegPdCiOxVOJtRIy7/8RldvMTsyPYH10= github.com/klauspost/reedsolomon v1.9.2 h1:E9CMS2Pqbv+C7tsrYad4YC9MfhnMVWhMRsTi7U0UB18= github.com/knz/go-libedit v1.10.1 h1:0pHpWtx9vcvC0xGZqEQlQdfSQs7WRlAjuPvk3fOZDCo= +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/koron/go-ssdp v0.0.4 h1:1IDwrghSKYM7yLf7XCzbByg2sJ/JcNOZRXS2jczTwz0= github.com/koron/go-ssdp v0.0.4/go.mod h1:oDXq+E5IL5q0U8uSBcoAXzTzInwy5lEgC91HoKtbmZk= github.com/kortschak/utter v1.0.1 h1:AJVccwLrdrikvkH0aI5JKlzZIORLpfMeGBQ5tHfIXis= @@ -2380,6 +2809,10 @@ github.com/libs4go/fixed v0.0.4 h1:gJEnJ7MfzLwCcKf2jf7jd48iQvcd5fsXRk+lS/Md7T4= github.com/libs4go/scf4go v0.0.1 h1:KYpHjom3+rqg1jGQ/yBmtN8mgup7pwwlZCZ9jHQf0v4= github.com/libs4go/sdi4go v0.0.6 h1:s662OqbB3QK9dl8c55NINn925ptSwm2xqVGNxgsc4xM= github.com/libs4go/slf4go v0.0.4 h1:TEnFk5yVZWeR6q56SxacOUWRarhvdzw850FikXnw6XM= +github.com/linode/linodego v1.19.0 h1:n4WJrcr9+30e9JGZ6DI0nZbm5SdAj1kSwvvt/998YUw= +github.com/linode/linodego v1.19.0/go.mod h1:XZFR+yJ9mm2kwf6itZ6SCpu+6w3KnIevV0Uu5HNWJgQ= +github.com/linode/linodego v1.35.0 h1:rIhUeCHBLEDlkoRnOTwzSGzljQ3ksXwLxacmXnrV+Do= +github.com/linode/linodego v1.35.0/go.mod h1:JxuhOEAMfSxun6RU5/MgTKH2GGTmFrhKRj3wL1NFin0= github.com/linuxkit/virtsock v0.0.0-20201010232012-f8cee7dfc7a3 h1:jUp75lepDg0phMUJBCmvaeFDldD2N3S1lBuPwUTszio= github.com/linuxkit/virtsock v0.0.0-20201010232012-f8cee7dfc7a3/go.mod h1:3r6x7q95whyfWQpmGZTu3gk3v2YkMi05HEzl7Tf7YEo= github.com/lithammer/dedent v1.1.0 h1:VNzHMVCBNG1j0fh3OrsFRkVUwStdDArbgBWoPAffktY= @@ -2418,11 +2851,16 @@ github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd h1:br0buuQ854V8 github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd/go.mod h1:QuCEs1Nt24+FYQEqAAncTDPJIuGs+LxK1MCiFL25pMU= github.com/matoous/godox v0.0.0-20210227103229-6504466cf951 h1:pWxk9e//NbPwfxat7RXkts09K+dEBJWakUWwICVqYbA= github.com/matryer/is v1.2.0 h1:92UTHpy8CDwaJ08GqLDzhhuixiBUUD1p3AU6PHddz4A= +github.com/matryer/is v1.4.1 h1:55ehd8zaGABKLXQUe2awZ99BD/PTc2ls+KV/dXphgEQ= +github.com/matryer/is v1.4.1/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU= github.com/matryer/moq v0.2.7 h1:RtpiPUM8L7ZSCbSwK+QcZH/E9tgqAkFjKQxsRs25b4w= github.com/matryer/moq v0.2.7/go.mod h1:kITsx543GOENm48TUAQyJ9+SAvFSr7iGQXPoth/VUBk= github.com/matryer/try v0.0.0-20161228173917-9ac251b645a2 h1:JAEbJn3j/FrhdWA9jW8B5ajsLIjeuEHLi8xE4fk997o= github.com/matryer/try v0.0.0-20161228173917-9ac251b645a2/go.mod h1:0KeJpeMD6o+O4hW7qJOT7vyQPKrWmj26uf5wMc/IiIs= +github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-ieproxy v0.0.0-20190702010315-6dee0af9227d h1:oNAwILwmgWKFpuU+dXvI6dl9jG2mAWAZLX3r9s0PPiw= +github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-oci8 v0.1.1 h1:aEUDxNAyDG0tv8CA3TArnDQNyc4EhnWlsfxRgDHABHM= github.com/mattn/go-pointer v0.0.1 h1:n+XhsuGeVO6MEAp7xyEukFINEa+Quek5psIR/ylA6o0= @@ -2450,8 +2888,13 @@ github.com/mgechev/dots v0.0.0-20190921121421-c36f7dcfbb81 h1:QASJXOGm2RZ5Ardbc8 github.com/mgechev/revive v1.0.6 h1:MgRQ3ys2uQCyVjelaDhVs8oSvOPYInzGA/nNGMa+MNU= github.com/microcosm-cc/bluemonday v1.0.21 h1:dNH3e4PSyE4vNX+KlRGHT5KrSvjeUkoNPwEORjffHJg= github.com/microcosm-cc/bluemonday v1.0.21/go.mod h1:ytNkv4RrDrLJ2pqlsSI46O6IVXmZOBBD4SaJyDwwTkM= +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.43/go.mod h1:+evo5L0630/F6ca/Z9+GAqzhjGyn8/c+TBaOyfEl0V4= github.com/miekg/dns v1.1.58 h1:ca2Hdkz+cDg/7eNF6V56jjzuZ4aCAE+DbVkILdQWG/4= github.com/miekg/dns v1.1.58/go.mod h1:Ypv+3b/KadlvW9vJfXOTf300O4UqaHFzFCuHz+rPkBY= +github.com/miekg/dns v1.1.59 h1:C9EXc/UToRwKLhK5wKU/I4QVsBUc8kE6MkHBkeypWZs= +github.com/miekg/dns v1.1.59/go.mod h1:nZpewl5p6IvctfgrckopVx2OlSEHPRO/U4SYkRklrEk= github.com/miekg/pkcs11 v1.1.1 h1:Ugu9pdy6vAYku5DEpVWVFPYnzV+bxB+iRdbuFSu7TvU= github.com/miekg/pkcs11 v1.1.1/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b h1:z78hV3sbSMAUoyUMM0I83AUIT6Hu17AWfgjzIbtrYFc= @@ -2472,13 +2915,18 @@ github.com/mistifyio/go-zfs/v3 v3.0.1 h1:YaoXgBePoMA12+S1u/ddkv+QqxcfiZK4prI6HPn github.com/mistifyio/go-zfs/v3 v3.0.1/go.mod h1:CzVgeB0RvF2EGzQnytKVvVSDwmKJXxkOTUGbNrTja/k= github.com/mitchellh/cli v1.0.0 h1:iGBIsUe3+HZ/AD/Vd7DErOt5sU9fa8Uj7A2s1aggv1Y= 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/cli v1.1.4 h1:qj8czE26AU4PbiaPXK5uVmMSM+V5BYsFBiM9HhGRLUA= github.com/mitchellh/cli v1.1.4/go.mod h1:vTLESy5mRhKOs9KDp0/RATawxP1UqBmdrpVRMnpcvKQ= github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc= +github.com/mitchellh/go-testing-interface v1.0.0 h1:fzU/JVNcaqHQEcVFAKeR41fkiLdIPrefOvVG1VZ96U0= +github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= +github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= github.com/mitchellh/gox v0.4.0 h1:lfGJxY7ToLJQjHHwi0EX6uYBdK78egf954SQl13PQJc= github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= github.com/mitchellh/iochan v1.0.0 h1:C+X3KsSTLFVBr/tK1eYN/vs4rJcvsiLU338UhYPJWeY= github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= +github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/osext v0.0.0-20151018003038-5e2d6d41470f h1:2+myh5ml7lgEU/51gbeLHfKGNfgEQQIWrlbdaOsidbQ= github.com/mitchellh/osext v0.0.0-20151018003038-5e2d6d41470f/go.mod h1:OkQIRizQZAeMln+1tSwduZz7+Af5oFlKirV/MSYes2A= github.com/mkevac/debugcharts v0.0.0-20191222103121-ae1c48aa8615 h1:/mD+ABZyXD39BzJI2XyRJlqdZG11gXFo0SSynL+OFeU= @@ -2516,6 +2964,8 @@ github.com/mozilla/scribe v0.0.0-20180711195314-fb71baf557c1 h1:29NKShH4TWd3lxCD github.com/mozilla/tls-observatory v0.0.0-20210209181001-cf43108d6880 h1:DXaIt8v4XXkFoVZXkG/PjLS5Rz3I2yoflOQrnuGgJeA= github.com/mrunalp/fileutils v0.5.0 h1:NKzVxiH7eSk+OQ4M+ZYW1K6h27RUV3MI6NUTsHhU6Z4= github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae h1:VeRdUYdCw49yizlSbMEn2SZ+gT+3IUKx8BqxyQdz+BY= +github.com/muesli/reflow v0.3.0 h1:IFsN6K9NfGtjeggFP+68I4chLZV2yIKsXJFNZ+eWh6s= +github.com/muesli/reflow v0.3.0/go.mod h1:pbwTDkVPibjO2kyvBQRBxTWEEGDGq0FlB1BIKtnHY/8= github.com/multiformats/go-multiaddr-dns v0.3.1 h1:QgQgR+LQVt3NPTjbrLLpsaT2ufAA2y0Mkk+QRVJbW3A= github.com/multiformats/go-multiaddr-dns v0.3.1/go.mod h1:G/245BRQ6FJGmryJCrOuTdB37AMA5AMOVuO6NY3JwTk= github.com/multiformats/go-multiaddr-fmt v0.1.0 h1:WLEFClPycPkp4fnIzoFoV9FVd49/eQsuaL3/CWe167E= @@ -2524,10 +2974,9 @@ github.com/multiformats/go-multiaddr-net v0.2.0 h1:MSXRGN0mFymt6B1yo/6BPnIRpLPEn github.com/multiformats/go-multiaddr-net v0.2.0/go.mod h1:gGdH3UXny6U3cKKYCvpXI5rnK7YaOIEOPVDI9tsJbEA= github.com/multiformats/go-multistream v0.5.0 h1:5htLSLl7lvJk3xx3qT/8Zm9J4K8vEOf/QGkvOGQAyiE= github.com/multiformats/go-multistream v0.5.0/go.mod h1:n6tMZiwiP2wUsR8DgfDWw1dydlEqV3l6N3/GBsX6ILA= +github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= 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-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= -github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-proto-validators v0.2.0 h1:F6LFfmgVnfULfaRsQWBbe7F7ocuHCr9+7m+GAeDzNbQ= 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= @@ -2535,10 +2984,13 @@ github.com/nakabonne/nestif v0.3.0 h1:+yOViDGhg8ygGrmII72nV9B/zGxY188TYpfolntsaP github.com/naoina/go-stringutil v0.1.0 h1:rCUeRUHjBjGTSHl0VC00jUPLz8/F9dDzYI70Hzifhks= github.com/naoina/toml v0.1.2-0.20170918210437-9fafd6967416 h1:shk/vn9oCoOTmwcouEdwIeOtOGA/ELRUw/GwvxwfT+0= github.com/nats-io/jwt v0.3.0 h1:xdnzwFETV++jNc4W1mw//qFyJGb2ABOombmZJQS4+Qo= +github.com/nats-io/jwt/v2 v2.2.1-0.20220330180145-442af02fd36a/go.mod h1:0tqz9Hlu6bCBFLWAASKhE5vUA4c24L9KPUUgvwumE/k= github.com/nats-io/jwt/v2 v2.3.0 h1:z2mA1a7tIf5ShggOFlR1oBPgd6hGqcDYsISxZByUzdI= github.com/nats-io/jwt/v2 v2.3.0/go.mod h1:0tqz9Hlu6bCBFLWAASKhE5vUA4c24L9KPUUgvwumE/k= +github.com/nats-io/nats-server/v2 v2.8.4/go.mod h1:8zZa+Al3WsESfmgSs98Fi06dRWLH5Bnq90m5bKD/eT4= github.com/nats-io/nats.go v1.8.1/go.mod h1:BrFz9vVn0fU3AcH9Vn4Kd7W0NpJ651tD5omQ3M8LwxM= github.com/nats-io/nats.go v1.9.1 h1:ik3HbLhZ0YABLto7iX80pZLPw/6dx3T+++MZJwLnMrQ= +github.com/nats-io/nats.go v1.15.0/go.mod h1:BPko4oXsySz4aSWeFgOHLZs3G4Jq4ZAyE6/zMCxRT6w= github.com/nats-io/nats.go v1.16.0 h1:zvLE7fGBQYW6MWaFaRdsgm9qT39PJDQoju+DS8KsO1g= github.com/nats-io/nats.go v1.16.0/go.mod h1:BPko4oXsySz4aSWeFgOHLZs3G4Jq4ZAyE6/zMCxRT6w= github.com/nats-io/nkeys v0.0.2/go.mod h1:dab7URMsZm6Z/jp9Z5UGa87Uutgc2mVpXLC4B7TDb/4= @@ -2558,17 +3010,27 @@ github.com/neilotoole/errgroup v0.1.6/go.mod h1:Q2nLGf+594h0CLBs/Mbg6qOr7GtqDK7C github.com/networkplumbing/go-nft v0.2.0 h1:eKapmyVUt/3VGfhYaDos5yeprm+LPt881UeksmKKZHY= github.com/networkplumbing/go-nft v0.2.0/go.mod h1:HnnM+tYvlGAsMU7yoYwXEVLLiDW9gdMmb5HoGcwpuQs= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nishanths/exhaustive v0.1.0 h1:kVlMw8h2LHPMGUVqUj6230oQjjTMFjwcZrnkhXzFfl8= github.com/nishanths/predeclared v0.2.1 h1:1TXtjmy4f3YCFjTxRd8zcFHOmoUir+gp0ESzjFzG2sw= github.com/nsf/jsondiff v0.0.0-20200515183724-f29ed568f4ce h1:RPclfga2SEJmgMmz2k+Mg7cowZ8yv4Trqw9UsJby758= -github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= +github.com/nsf/jsondiff v0.0.0-20230430225905-43f6cf3098c1 h1:dOYG7LS/WK00RWZc8XGgcUTlTxpp3mKhdR2Q9z9HbXM= +github.com/nsf/jsondiff v0.0.0-20230430225905-43f6cf3098c1/go.mod h1:mpRZBD8SJ55OIICQ3iWH0Yz3cjzA61JdqMLoWXeB2+8= +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/onsi/ginkgo v1.16.2/go.mod h1:CObGmKUOKaSC0RjmoAK7tKyn4Azo5P2IWuoMnvwxz1E= +github.com/onsi/ginkgo/v2 v2.1.4/go.mod h1:um6tUpWM/cxCK3/FK8BXqEiUMUwRgSM4JXG47RKZmLU= github.com/onsi/ginkgo/v2 v2.4.0/go.mod h1:iHkDK1fKGcBoEHT5W7YBq4RFWaQulw+caOMkAt4OrFo= github.com/onsi/ginkgo/v2 v2.9.5/go.mod h1:tvAoo1QUJwNEU2ITftXTpR7R1RbCzoZUOs3RonqW57k= github.com/onsi/ginkgo/v2 v2.13.0/go.mod h1:TE309ZR8s5FsKKpuB1YAQYBzCaAfUgatB/xlT/ETL/o= github.com/onsi/ginkgo/v2 v2.15.0 h1:79HwNRBAZHOEwrczrgSOPy+eFTTlIGELKy5as+ClttY= github.com/onsi/ginkgo/v2 v2.15.0/go.mod h1:HlxMHtYF57y6Dpf+mc5529KKmSq9h2FpCF+/ZkwUxKM= +github.com/onsi/gomega v1.13.0/go.mod h1:lRk9szgn8TxENtWd0Tp4c3wjlRfMTMH27I+3Je41yGY= +github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= github.com/onsi/gomega v1.23.0/go.mod h1:Z/NWtiqwBrwUt4/2loMmHL63EDLnYHmVbuBpDr2vQAg= github.com/onsi/gomega v1.27.6/go.mod h1:PIQNjfQwkP3aQAH7lf7j87O/5FiNr+ZR8+ipb+qQlhg= +github.com/onsi/gomega v1.29.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ= +github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= github.com/open-policy-agent/opa v0.42.2 h1:qocVAKyjrqMjCqsU02S/gHyLr4AQQ9xMtuV1kKnnyhM= github.com/open-policy-agent/opa v0.42.2/go.mod h1:MrmoTi/BsKWT58kXlVayBb+rYVeaMwuBm3nYAN3923s= github.com/openconfig/gnmi v0.0.0-20190823184014-89b2bf29312c h1:a380JP+B7xlMbEQOlha1buKhzBPXFqgFXplyWCEIGEY= @@ -2581,14 +3043,20 @@ github.com/opencontainers/runtime-tools v0.9.1-0.20221107090550-2e043c6bd626/go. github.com/opencontainers/selinux v1.10.1 h1:09LIPVRP3uuZGQvgR+SgMSNBd1Eb3vlRbGqQpoHsF8w= github.com/opencontainers/selinux v1.11.0 h1:+5Zbo97w3Lbmb3PeqQtpmTkMwsW5nRI3YaLpt7tQ7oU= github.com/opencontainers/selinux v1.11.0/go.mod h1:E5dMC3VPuVvVHDYmi78qvhJp8+M586T4DlDRYpFkyec= +github.com/openzipkin/zipkin-go v0.2.5/go.mod h1:KpXfKdgRDnnhsxw4pNIH9Md5lyFqKUa4YDFlwRYAMyE= github.com/openzipkin/zipkin-go v0.4.1 h1:kNd/ST2yLLWhaWrkgchya40TJabe8Hioj9udfPcEO5A= github.com/openzipkin/zipkin-go v0.4.1/go.mod h1:qY0VqDSN1pOBN94dBc6w2GJlWLiovAyg7Qt6/I9HecM= github.com/openzipkin/zipkin-go v0.4.2 h1:zjqfqHjUpPmB3c1GlCvvgsM1G4LkvqQbBDueDOCg/jA= github.com/openzipkin/zipkin-go v0.4.2/go.mod h1:ZeVkFjuuBiSy13y8vpSDCjMi9GoI3hPpCJSBx/EYFhY= github.com/orisano/pixelmatch v0.0.0-20220722002657-fb0b55479cde h1:x0TT0RDC7UhAVbbWWBzr41ElhJx5tXPWkIHA2HWPRuw= github.com/orisano/pixelmatch v0.0.0-20220722002657-fb0b55479cde/go.mod h1:nZgzbfBr3hhjoZnS66nKrHmduYNpc34ny7RK4z5/HM0= +github.com/ovh/go-ovh v1.4.1 h1:VBGa5wMyQtTP7Zb+w97zRCh9sLtM/2YKRyy+MEJmWaM= +github.com/ovh/go-ovh v1.4.1/go.mod h1:6bL6pPyUT7tBfI0pqOegJgRjgjuO+mOo+MyXd1EEC0M= +github.com/ovh/go-ovh v1.5.1 h1:P8O+7H+NQuFK9P/j4sFW5C0fvSS2DnHYGPwdVCp45wI= +github.com/ovh/go-ovh v1.5.1/go.mod h1:cTVDnl94z4tl8pP1uZ/8jlVxntjSIf09bNcQ5TJSC7c= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c h1:Lgl0gzECD8GnQ5QCWA8o6BtfL6mDH5rQgM4/fX3avOs= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= +github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/name v1.0.1 h1:9lnXOHeqeHHnWLbKfH6X98+4+ETVqFqxN09UXSjcMb0= github.com/pascaldekloe/name v1.0.1/go.mod h1:Z//MfYJnH4jVpQ9wkclwu2I2MkHmXTlT9wR5UZScttM= github.com/paulbellamy/ratecounter v0.2.0 h1:2L/RhJq+HA8gBQImDXtLPrDXK5qAj6ozWVK/zFXVJGs= @@ -2601,6 +3069,7 @@ github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCko github.com/pelletier/go-toml/v2 v2.0.5/go.mod h1:OMHamSCAODeSsVrwwvcJOaoN0LIUIaFVNZzmWyNfXas= github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4= github.com/pelletier/go-toml/v2 v2.2.1/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= +github.com/performancecopilot/speed/v4 v4.0.0/go.mod h1:qxrSyuDGrTOWfV+uKRFhfxw6h/4HXRGUiZiufxo49BM= github.com/petar/GoLLRB v0.0.0-20210522233825-ae3b015fd3e9 h1:1/WtZae0yGtPq+TI6+Tv1WTxkukpXeMlviSxvL7SRgk= github.com/petar/GoLLRB v0.0.0-20210522233825-ae3b015fd3e9/go.mod h1:x3N5drFsm2uilKKuuYo6LdyD8vZAW55sH/9w+pbo1sw= github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= @@ -2612,6 +3081,7 @@ github.com/phpdave11/gofpdf v1.4.2/go.mod h1:zpO6xFn9yxo3YLyMvW8HcKWVdbNqgIfOOp2 github.com/phpdave11/gofpdi v1.0.12/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= github.com/phpdave11/gofpdi v1.0.13 h1:o61duiW8M9sMlkVXWlvP92sZJtGKENvW3VExs6dZukQ= github.com/phpdave11/gofpdi v1.0.13/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= +github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= github.com/pierrec/lz4 v2.0.5+incompatible h1:2xWsjqPFWcplujydGg4WmhC/6fZqK42wMM8aXeqhl0I= github.com/pion/datachannel v1.5.5 h1:10ef4kwdjije+M9d7Xm9im2Y3O6A6ccQb0zcqZcJew8= github.com/pion/datachannel v1.5.5/go.mod h1:iMz+lECmfdCMqFRhXhcA/219B0SQlbpoR2V118yimL0= @@ -2681,10 +3151,9 @@ github.com/pion/webrtc/v3 v3.2.9 h1:U8NSjQDlZZ+Iy/hg42Q/u6mhEVSXYvKrOIZiZwYTfLc= github.com/pion/webrtc/v3 v3.2.9/go.mod h1:gjQLMZeyN3jXBGdxGmUYCyKjOuYX/c99BDjGqmadq0A= github.com/pion/webrtc/v3 v3.2.23 h1:GbqEuxBbVLFhXk0GwxKAoaIJYiEa9TyoZPEZC+2HZxM= github.com/pion/webrtc/v3 v3.2.23/go.mod h1:1CaT2fcZzZ6VZA+O1i9yK2DU4EOcXVvSbWG9pr5jefs= -github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU= -github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e h1:aoZm08cpOy4WuID//EZDgcC4zIxODThtZNPirFr42+A= github.com/pkg/profile v1.2.1 h1:F++O52m40owAmADcojzM+9gyjmMOY/T4oYJkgFDH8RE= +github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pkg/sftp v1.13.1 h1:I2qBYMChEhIjOgazfJmV3/mZM256btk6wkCDRmW7JYs= github.com/polyfloyd/go-errorlint v0.0.0-20210418123303-74da32850375 h1:uuOfAQo7em74dKh41UzjlQ6dXmE9wYxjvUcfg2EHTDw= github.com/posener/complete v1.1.1 h1:ccV59UEOTzVDnDUEFdT95ZzHVZ+5+158q8+SJb2QV5w= @@ -2696,21 +3165,46 @@ github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:Om github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021 h1:0XM1XL/OFFJjXsYXlG30spTkV/E9+gmd5GD1w2HE8xM= github.com/pquerna/cachecontrol v0.1.0 h1:yJMy84ti9h/+OEWa752kBTKv4XC30OtVVHYv/8cTqKc= github.com/pquerna/cachecontrol v0.1.0/go.mod h1:NrUG3Z7Rdu85UNR3vm7SOsl1nFIeSiQnrHV5K9mBcUI= +github.com/prometheus/alertmanager v0.25.1 h1:LGBNMspOfv8h7brb+LWj2wnwBCg2ZuuKWTh6CAVw2/Y= +github.com/prometheus/alertmanager v0.25.1/go.mod h1:MEZ3rFVHqKZsw7IcNS/m4AWZeXThmJhumpiWR4eHU/w= +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 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.11.1/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= github.com/prometheus/client_golang v1.12.0/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= github.com/prometheus/client_golang v1.15.1/go.mod h1:e9yaBhRPU2pPNsZwE+JdQl0KEt1N9XgF6zxWmaC0xOk= github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k= +github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.1-0.20210607210712-147c58e9608a/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +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.30.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc= github.com/prometheus/common v0.48.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc= +github.com/prometheus/common/assets v0.2.0 h1:0P5OrzoHrYBOSM1OigWL3mY8ZvV2N4zIE/5AahrSrfM= +github.com/prometheus/common/assets v0.2.0/go.mod h1:D17UVUE12bHbim7HzwUvtqm6gwBEaDQ0F+hIGbFbccI= +github.com/prometheus/exporter-toolkit v0.10.0 h1:yOAzZTi4M22ZzVxD+fhy1URTuNRj/36uQJJ5S8IPza8= +github.com/prometheus/exporter-toolkit v0.10.0/go.mod h1:+sVFzuvV5JDyw+Ih6p3zFxZNVnKQa3x5qPmDSiPu4ZY= +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.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.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY= github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= +github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= +github.com/prometheus/prometheus v2.5.0+incompatible/go.mod h1:oAIUtOny2rjMX0OWN5vPR5/q/twIROJvdqnQKDdil/s= github.com/prometheus/tsdb v0.7.1 h1:YZcsG11NqnK4czYLrWd9mpEuAJIHVQLwdrleYfszMAA= github.com/prometheus/tsdb v0.10.0 h1:If5rVCMTp6W2SiRAQFlbpJNgVlgMEd+U2GZckwK38ic= github.com/protolambda/bls12-381-util v0.0.0-20220416220906-d8552aa452c7 h1:cZC+usqsYgHtlBaGulVnZ1hfKAi8iWtujBnRLQE698c= @@ -2739,9 +3233,11 @@ github.com/quic-go/quic-go v0.41.0 h1:aD8MmHfgqTURWNJy48IYFg2OnxwHT3JL7ahGs73lb4 github.com/quic-go/quic-go v0.41.0/go.mod h1:qCkNjqczPEvgsOnxZ0eCD14lv+B2LHlFAB++CNOh9hA= github.com/quic-go/webtransport-go v0.6.0 h1:CvNsKqc4W2HljHJnoT+rMmbRJybShZ0YPFDD3NxaZLY= github.com/quic-go/webtransport-go v0.6.0/go.mod h1:9KjU4AEBqEQidGHNDkZrb8CAa1abRaosM2yGOyiikEc= +github.com/rabbitmq/amqp091-go v1.2.0/go.mod h1:ogQDLSOACsLPsIq0NpbtiifNZi2YOz0VTJ0kHRghqbM= github.com/raulk/go-watchdog v1.3.0 h1:oUmdlHxdkXRJlwfG0O9omj8ukerm8MEQavSiDTEtBsk= github.com/raulk/go-watchdog v1.3.0/go.mod h1:fIvOnLbF0b0ZwkB9YU4mOW9Did//4vPZtDqv66NfsMU= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a h1:9ZKAASQSHhDYGoxY8uLVpewe1GDZ2vu2Tr/vTdVAkFQ= +github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0 h1:MkV+77GLUNo5oJ0jf870itWm3D0Sjh7+Za9gazKc5LQ= github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= @@ -2754,6 +3250,7 @@ github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L github.com/rogpeppe/go-charset v0.0.0-20180617210344-2471d30d28b4 h1:BN/Nyn2nWMoqGRA7G7paDNDqTXE30mXGqzzybrfo05w= github.com/rogpeppe/go-charset v0.0.0-20180617210344-2471d30d28b4/go.mod h1:qgYeAmZ5ZIpBWTGllZSQnw97Dj+woV0toclVaRGI8pc= github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= github.com/rs/xhandler v0.0.0-20160618193221-ed27b6fd6521 h1:3hxavr+IHMsQBrYUPQM5v0CgENFktkkbg1sfpgM3h20= github.com/rs/xid v1.3.0 h1:6NjYksEUlhurdVehpc7S7dk6DAmcKv8V9gG0FsVN2U4= github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo= @@ -2764,15 +3261,22 @@ github.com/ruudk/golang-pdf417 v0.0.0-20201230142125-a7e3863a1245 h1:K1Xf3bKttbF github.com/ruudk/golang-pdf417 v0.0.0-20201230142125-a7e3863a1245/go.mod h1:pQAZKsJ8yyVxGRWYNEm9oFB8ieLgKFnamEyDmSA0BRk= github.com/ryancurrah/gomodguard v1.2.0 h1:YWfhGOrXwLGiqcC/u5EqG6YeS8nh+1fw0HEc85CVZro= github.com/ryanrolds/sqlclosecheck v0.3.0 h1:AZx+Bixh8zdUBxUA1NxbxVAS78vTPq4rCb8OUZI9xFw= +github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/ryanuber/columnize v2.1.0+incompatible h1:j1Wcmh8OrK4Q7GXY+V7SVSY8nUWQxHW5TkBe7YUl+2s= github.com/safchain/ethtool v0.0.0-20210803160452-9aa261dae9b1 h1:ZFfeKAhIQiiOrQaI3/znw0gOmYpO28Tcu1YaqMa/jtQ= github.com/safchain/ethtool v0.2.0 h1:dILxMBqDnQfX192cCAPjZr9v2IgVXeElHPy435Z/IdE= github.com/safchain/ethtool v0.2.0/go.mod h1:WkKB1DnNtvsMlDmQ50sgwowDJV/hGbJSOvJoEXs1AJQ= +github.com/sahilm/fuzzy v0.1.1-0.20230530133925-c48e322e2a8f h1:MvTmaQdww/z0Q4wrYjDSCcZ78NoftLQyHBSLW/Cx79Y= +github.com/sahilm/fuzzy v0.1.1-0.20230530133925-c48e322e2a8f/go.mod h1:VFvziUEIMCrT6A6tw2RFIXPXXmzXbOsSHF0DOI8ZK9Y= github.com/samber/lo v1.36.0 h1:4LaOxH1mHnbDGhTVE0i1z8v/lWaQW8AIfOD3HU4mSaw= github.com/samber/lo v1.36.0/go.mod h1:HLeWcJRRyLKp3+/XBJvOrerCQn9mhdKMHyd7IRlgeQ8= github.com/samber/lo v1.39.0 h1:4gTz1wUhNYLhFSKl6O+8peW0v2F4BCY034GRpU9WnuA= github.com/samber/lo v1.39.0/go.mod h1:+m/ZKRl6ClXCE2Lgf3MsQlWfh4bn1bz6CXEOxnEXnEA= github.com/sanposhiho/wastedassign v1.0.0 h1:dB+7OV0iJ5b0SpGwKjKlPCr8GDZJX6Ylm3YG+66xGpc= +github.com/scaleway/scaleway-sdk-go v1.0.0-beta.20 h1:a9hSJdJcd16e0HoMsnFvaHvxB3pxSD+SC7+CISp7xY0= +github.com/scaleway/scaleway-sdk-go v1.0.0-beta.20/go.mod h1:fCa7OJZ/9DRTnOKmxvT6pn+LPWUptQAmHF/SBJUGEcg= +github.com/scaleway/scaleway-sdk-go v1.0.0-beta.27 h1:yGAraK1uUjlhSXgNMIy8o/J4LFNcy7yeipBqt9N9mVg= +github.com/scaleway/scaleway-sdk-go v1.0.0-beta.27/go.mod h1:fCa7OJZ/9DRTnOKmxvT6pn+LPWUptQAmHF/SBJUGEcg= github.com/schollz/closestmatch v2.1.0+incompatible h1:Uel2GXEpJqOWBrlyI+oY9LTiyyjYS17cCYRqP13/SHk= github.com/sclevine/agouti v3.0.0+incompatible h1:8IBJS6PWz3uTlMP3YBIR5f+KAldcGuOeFkFbUWfBgK4= github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw= @@ -2813,6 +3317,8 @@ github.com/shurcooL/httperror v0.0.0-20170206035902-86b7830d14cc h1:eHRtZoIi6n9W github.com/shurcooL/httpfs v0.0.0-20171119174359-809beceb2371 h1:SWV2fHctRpRrp49VXJ6UZja7gU9QLHwRpIPBN89SKEo= github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749 h1:bUGsEnyNbVPw06Bs80sCeARAlK8lhwqGyi6UT8ymuGk= github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg= +github.com/shurcooL/httpfs v0.0.0-20230704072500-f1e31cf0ba5c h1:aqg5Vm5dwtvL+YgDpBcK1ITf3o96N/K7/wsRXQnUTEs= +github.com/shurcooL/httpfs v0.0.0-20230704072500-f1e31cf0ba5c/go.mod h1:owqhoLW1qZoYLZzLnBw+QkPP9WZnjlSWihhxAJC1+/M= github.com/shurcooL/httpgzip v0.0.0-20180522190206-b1c53ac65af9 h1:fxoFD0in0/CBzXoyNhMTjvBZYW6ilSnTw7N7y/8vkmM= github.com/shurcooL/issues v0.0.0-20181008053335-6292fdc1e191 h1:T4wuULTrzCKMFlg3HmKHgXAF8oStFb/+lOIupLV2v+o= github.com/shurcooL/issuesapp v0.0.0-20180602232740-048589ce2241 h1:Y+TeIabU8sJD10Qwd/zMty2/LEaT9GNDaA6nyZf+jgo= @@ -2824,9 +3330,13 @@ github.com/shurcooL/users v0.0.0-20180125191416-49c67e49c537 h1:YGaxtkYjb8mnTvtu github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546 h1:pXY9qYc/MP5zdvqWEUH6SjNiu7VhSjuVFTFiTcphaLU= github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546/go.mod h1:TrYk7fJVaAttu97ZZKrO9UbRa8izdowaMIZcxYMbVaw= github.com/shurcooL/webdavfs v0.0.0-20170829043945-18c3829fa133 h1:JtcyT0rk/9PKOdnKQzuDR+FSjh7SGtJwpgVpfZBRKlQ= +github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= +github.com/slack-go/slack v0.12.2 h1:x3OppyMyGIbbiyFhsBmpf9pwkUzMhthJMRNmNlA4LaQ= +github.com/slack-go/slack v0.12.2/go.mod h1:hlGi5oXA+Gt+yWTPP0plCdRKmjsDxecdHxYQdlMQKOw= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= github.com/sonatard/noctx v0.0.1 h1:VC1Qhl6Oxx9vvWo3UDgrGXYCeKCe3Wbw7qAWL6FrmTY= +github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= github.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d h1:yKm7XZV6j9Ev6lojP2XaIshpT4ymkqhMeSghO5Ps00E= github.com/sourcegraph/go-diff v0.6.1 h1:hmA1LzxW0n1c3Q4YbrFgg4P99GSnebYa3x8gr0HZqLQ= github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e h1:qpG93cPwA5f7s/ZPBJnGOYQNK/vKsaDaseuKT5Asee8= @@ -2853,6 +3363,10 @@ github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980 h1:lIOOH github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980/go.mod h1:AO3tvPzVZ/ayst6UlUKUv6rcPQInYe3IknH3jYhAKu8= github.com/stoewer/go-strcase v1.2.0 h1:Z2iHWqGXH00XYgqDmNgQbIBxf3wrNq0F3feEy0ainaU= github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= +github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= +github.com/streadway/handy v0.0.0-20200128134331-0f66f006fb2e/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= +github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= +github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/subosito/gotenv v1.4.0 h1:yAzM1+SmVcz5R4tXGsNMu1jUl2aOJXoiWUCEwwnGrvs= github.com/subosito/gotenv v1.4.0/go.mod h1:mZd6rFysKEcUhUHXJk0C/08wAgyDBFuwEYL7vWWGaGo= @@ -2895,6 +3409,7 @@ github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1 github.com/tomarrell/wrapcheck/v2 v2.1.0 h1:LTzwrYlgBUwi9JldazhbJN84fN9nS2UNGrZIo2syqxE= github.com/tomasen/realip v0.0.0-20180522021738-f0c99a92ddce h1:fb190+cK2Xz/dvi9Hv8eCYJYvIGUTN2/KLq1pT6CjEc= github.com/tommy-muehle/go-mnd/v2 v2.3.2 h1:SLkFtxVVkoypCu6eTERr5U2IC3Kce/zOhA4IyNesPV4= +github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c h1:u6SKchux2yDvFQnDHS3lPnIRmfVJ5Sxy3ao2SIdysLQ= github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c/go.mod h1:hzIxponao9Kjc7aWznkXaL4U4TWaDSs8zcsY4Ka08nM= github.com/ucarion/urlpath v0.0.0-20200424170820-7ccc79b76bbb h1:Ywfo8sUltxogBpFuMOFRrrSifO788kAFxmvVw31PtQQ= @@ -2930,6 +3445,8 @@ github.com/vmihailenco/msgpack/v5 v5.3.5 h1:5gO0H1iULLWGhs2H5tbAHIZTV8/cYafcFOr9 github.com/vmihailenco/msgpack/v5 v5.3.5/go.mod h1:7xyJ9e+0+9SaZT0Wt1RGleJXzli6Q/V5KbhBonMG9jc= github.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAhO7/IwNM9g= github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds= +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/warpfork/go-testmark v0.11.0 h1:J6LnV8KpceDvo7spaNU4+DauH2n1x+6RaO2rJrmpQ9U= github.com/warpfork/go-testmark v0.11.0/go.mod h1:jhEf8FVxd+F17juRubpmut64NEG6I2rgkUhlcqqXwE0= github.com/whyrusleeping/base32 v0.0.0-20170828182744-c30ac30633cc h1:BCPnHtcboadS0DvysUuJXZ4lWVv5Bh5i7+tbIyi+ck4= @@ -2986,27 +3503,35 @@ github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= +go.einride.tech/aip v0.66.0 h1:XfV+NQX6L7EOYK11yoHHFtndeaWh3KbD9/cN/6iWEt8= +go.einride.tech/aip v0.66.0/go.mod h1:qAhMsfT7plxBX+Oy7Huol6YUvZ0ZzdUz26yZsQwfl1M= +go.einride.tech/aip v0.67.1 h1:d/4TW92OxXBngkSOwWS2CH5rez869KpKMaN44mdxkFI= +go.einride.tech/aip v0.67.1/go.mod h1:ZGX4/zKw8dcgzdLsrvpOOGxfxI2QSk12SlP7d6c0/XI= go.etcd.io/bbolt v1.3.6 h1:/ecaJf0sk1l4l6V4awd65v2C3ILy7MSj+s/x1ADCIMU= go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ= go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489 h1:1JFLBqwIgdyHN1ZtgjTBwO+blA6gVOmZurpiMEsETKo= go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489/go.mod h1:yVHk9ub3CSBatqGNg7GRmsnfLWtoW60w4eDYfh7vHDg= go.etcd.io/etcd/api/v3 v3.5.0 h1:GsV3S+OfZEOCNXdtNkBSR7kgLobAa/SO6tCxRa0GAYw= +go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= go.etcd.io/etcd/api/v3 v3.5.4 h1:OHVyt3TopwtUQ2GKdd5wu3PmmipR4FTwCqoEjSyRdIc= go.etcd.io/etcd/api/v3 v3.5.4/go.mod h1:5GB2vv4A4AOn3yk7MftYGHkUfGtDHnEraIjym4dYz5A= go.etcd.io/etcd/api/v3 v3.5.5 h1:BX4JIbQ7hl7+jL+g+2j5UAr0o1bctCm6/Ct+ArBGkf0= go.etcd.io/etcd/api/v3 v3.5.5/go.mod h1:KFtNaxGDw4Yx/BA4iPPwevUTAuqcsPxzyX8PHydchN8= go.etcd.io/etcd/client/pkg/v3 v3.5.0 h1:2aQv6F436YnN7I4VbI8PPYrBhu+SmrTaADcf8Mi/6PU= +go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= go.etcd.io/etcd/client/pkg/v3 v3.5.4 h1:lrneYvz923dvC14R54XcA7FXoZ3mlGZAgmwhfm7HqOg= go.etcd.io/etcd/client/pkg/v3 v3.5.4/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= go.etcd.io/etcd/client/pkg/v3 v3.5.5 h1:9S0JUVvmrVl7wCF39iTQthdaaNIiAaQbmK75ogO6GU8= go.etcd.io/etcd/client/pkg/v3 v3.5.5/go.mod h1:ggrwbk069qxpKPq8/FKkQ3Xq9y39kbFR4LnKszpRXeQ= go.etcd.io/etcd/client/v2 v2.305.0 h1:ftQ0nOOHMcbMS3KIaDQ0g5Qcd6bhaBrQT6b89DfwLTs= +go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= go.etcd.io/etcd/client/v2 v2.305.4 h1:Dcx3/MYyfKcPNLpR4VVQUP5KgYrBeJtktBwEKkw08Ao= go.etcd.io/etcd/client/v2 v2.305.4/go.mod h1:Ud+VUwIi9/uQHOMA+4ekToJ12lTxlv0zB/+DHwTGEbU= go.etcd.io/etcd/client/v2 v2.305.5 h1:DktRP60//JJpnPC0VBymAN/7V71GHMdjDCBt4ZPXDjI= go.etcd.io/etcd/client/v2 v2.305.5/go.mod h1:zQjKllfqfBVyVStbt4FaosoX2iYd8fV/GRy/PbowgP4= go.etcd.io/etcd/client/v3 v3.5.0 h1:62Eh0XOro+rDwkrypAGDfgmNh5Joq+z+W9HZdlXMzek= +go.etcd.io/etcd/client/v3 v3.5.0/go.mod h1:AIKXXVX/DQXtfTEqBryiLTUXwON+GuvO6Z7lLS/oTh0= go.etcd.io/etcd/client/v3 v3.5.4 h1:p83BUL3tAYS0OT/r0qglgc3M1JjhM0diV8DSWAhVXv4= go.etcd.io/etcd/client/v3 v3.5.4/go.mod h1:ZaRkVgBZC+L+dLCjTcF1hRXpgZXQPOvnA/Ak/gq3kiY= go.etcd.io/etcd/client/v3 v3.5.5 h1:q++2WTJbUgpQu4B6hCuT7VkdwaTP7Qz6Daak3WzbrlI= @@ -3030,13 +3555,25 @@ go.etcd.io/gofail v0.1.0 h1:XItAMIhOojXFQMgrxjnd2EIIHun/d5qL0Pf7FzVTkFg= go.etcd.io/gofail v0.1.0/go.mod h1:VZBCXYGZhHAinaBiiqYvuDynvahNsAyLFwB3kEHKz1M= go.mongodb.org/mongo-driver v1.11.1 h1:QP0znIRTuL0jf1oBQoAoM0C6ZJfBK4kx0Uumtv1A7w8= go.mongodb.org/mongo-driver v1.11.4 h1:4ayjakA013OdpGyL2K3ZqylTac/rMjrJOMZ1EHizXas= +go.mongodb.org/mongo-driver v1.14.0 h1:P98w8egYRjYe3XDjxhYJagTokP/H6HzlsnojRgZRd80= +go.mongodb.org/mongo-driver v1.14.0/go.mod h1:Vzb0Mk/pa7e6cWw85R4F/endUC3u0U9jGcNU603k65c= go.mozilla.org/mozlog v0.0.0-20170222151521-4bb13139d403 h1:rKyWXYDfrVOpMFBion4Pmx5sJbQreQNXycHvm4KwJSg= go.mozilla.org/pkcs7 v0.0.0-20200128120323-432b2356ecb1 h1:A/5uWzF44DlIgdm/PQFwfMkW0JX+cIcQi/SwLAmZP5M= go.mozilla.org/pkcs7 v0.0.0-20200128120323-432b2356ecb1/go.mod h1:SNgMg+EgDFwmvSmLRTNKC5fegJjB7v23qTQ0XLGUNHk= +go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= +go.opentelemetry.io/collector/pdata v1.0.0-rcv0014 h1:iT5qH0NLmkGeIdDtnBogYDx7L58t6CaWGL378DEo2QY= +go.opentelemetry.io/collector/pdata v1.0.0-rcv0014/go.mod h1:BRvDrx43kiSoUx3mr7SoA7h9B8+OY99mUK+CZSQFWW4= +go.opentelemetry.io/collector/pdata v1.8.0 h1:d/QQgZxB4Y+d3mqLVh2ozvzujUhloD3P/fk7X+In764= +go.opentelemetry.io/collector/pdata v1.8.0/go.mod h1:/W7clu0wFC4WSRp94Ucn6Vm36Wkrt+tmtlDb1aiNZCY= +go.opentelemetry.io/collector/semconv v0.81.0 h1:lCYNNo3powDvFIaTPP2jDKIrBiV1T92NK4QgL/aHYXw= +go.opentelemetry.io/collector/semconv v0.81.0/go.mod h1:TlYPtzvsXyHOgr5eATi43qEMqwSmIziivJB2uctKswo= +go.opentelemetry.io/collector/semconv v0.101.0 h1:tOe9iTe9dDCnvz/bqgfNRr4w80kXG8505tQJ5h5v08Q= +go.opentelemetry.io/collector/semconv v0.101.0/go.mod h1:8ElcRZ8Cdw5JnvhTOQOdYizkJaQ10Z2fS+R6djOnj6A= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0/go.mod h1:r9vWsPS/3AQItv3OSlEJ/E4mbrhUbbw18meOjArPtKQ= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.48.0/go.mod h1:tIKj3DbO8N9Y2xo52og3irLsPI4GW02DSMtrVgNMgxg= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0/go.mod h1:SK2UL73Zy1quvRPonmOmRDiWk1KBV3LyIeeIxcEApWw= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.48.0/go.mod h1:rdENBZMT2OE6Ne/KLwpiXudnAsbdrdBaqBvTN8M8BgA= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= go.opentelemetry.io/otel v1.7.0/go.mod h1:5BdUoMIz5WEs0vt0CUEMtSSaTSHBBVwrhnz7+nrD5xk= go.opentelemetry.io/otel v1.13.0/go.mod h1:FH3RtdZCzRkJYFTCsAKDy9l/XYjMdNv6QrkFFB8DvVg= go.opentelemetry.io/otel v1.16.0/go.mod h1:vl0h9NUa1D5s1nv3A5vZOYWn8av4K8Ml6JDeHrT/bx4= @@ -3053,6 +3590,8 @@ go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.10.0 h1:TaB+1rQhddO1sF go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.10.0/go.mod h1:78XhIg8Ht9vR4tbLNUhXsiOnE2HOuSeKAiAcoVQEpOY= go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.14.0 h1:/fXHZHGvro6MVqV34fJzDhi7sHGpX3Ej/Qjmfn003ho= go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.14.0/go.mod h1:UFG7EBMRdXyFstOwH028U0sVf+AvukSGhF0g8+dmNG8= +go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.16.0 h1:t4ZwRPU+emrcvM2e9DHd0Fsf0JTPVcbfa/BhTDF03d0= +go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.16.0/go.mod h1:vLarbg68dH2Wa77g71zmKQqlQ8+8Rq3GRG31uc0WcWI= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.14.0 h1:sEL90JjOO/4yhquXl5zTAkLLsZ5+MycAgX99SDsxGc8= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.14.0/go.mod h1:oCslUcizYdpKYyS9e8srZEqM6BB8fq41VJBjLAE6z1w= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.21.0 h1:VhlEQAPp9R1ktYfrPk5SOryw1e9LDDTZCbIPFrho0ec= @@ -3076,6 +3615,7 @@ go.opentelemetry.io/otel/sdk v1.7.0/go.mod h1:uTEOTwaqIVuTGiJN7ii13Ibp75wJmYUDe3 go.opentelemetry.io/otel/sdk v1.17.0/go.mod h1:U87sE0f5vQB7hwUoW98pW5Rz4ZDuCFBZFNUBlSgmDFQ= go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/sdk v1.22.0/go.mod h1:iu7luyVGYovrRpe2fmj3CVKouQNdTOkxtLzPvPz1DOc= +go.opentelemetry.io/otel/sdk v1.24.0/go.mod h1:KVrIYw6tEubO9E96HQpcmpTKDVn9gdv35HoYiQWGDFg= go.opentelemetry.io/otel/sdk/export/metric v0.20.0 h1:c5VRjxCXdQlx1HjzwGdQHzZaVI82b5EbBgOu2ljD92g= go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi+bJK+Dr8NQCh0qGhm1KDnNlE= go.opentelemetry.io/otel/trace v1.7.0/go.mod h1:fzLSB9nqR2eXzxPXb2JW9IKE+ScyXA48yyE4TNvoHqU= @@ -3086,6 +3626,8 @@ go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmY go.opentelemetry.io/otel/trace v1.22.0/go.mod h1:RbbHXVqKES9QhzZq/fE5UnOSILqRt40a21sPw2He1xo= go.opentelemetry.io/otel/trace v1.23.0/go.mod h1:GSGTbIClEsuZrGIzoEHqsVfxgn5UkggkflQwDScNUsk= go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU= +go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= +go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/dig v1.17.1 h1:Tga8Lz8PcYNsWsyHMZ1Vm0OQOUaJNDyvPImgbAu9YSc= go.uber.org/dig v1.17.1/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= go.uber.org/fx v1.20.1 h1:zVwVQGS8zYvhh9Xxcu4w1M6ESyeMzebzj2NbSayZ4Mk= @@ -3094,16 +3636,21 @@ go.uber.org/goleak v1.2.0/go.mod h1:XJYK+MuIchqpmGmUSAzotztawfKvYLUIgg7guXrwVUo= go.uber.org/mock v0.3.0/go.mod h1:a6FSlNadKUHUa9IP5Vyt1zh4fC7uAwxMutEAscFbkZc= go.uber.org/mock v0.4.0 h1:VcM4ZOtdbR4f6VXfiOpwpVJDL6lCReaZ6mw31wqh7KU= go.uber.org/mock v0.4.0/go.mod h1:a6FSlNadKUHUa9IP5Vyt1zh4fC7uAwxMutEAscFbkZc= +go.uber.org/multierr v1.7.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak= go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee h1:0mgffUl7nfd+FpvXMVz4IDEaUSmT1ysygQC7qYo7sG4= go.uber.org/zap v1.14.1/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc= +go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= go.uber.org/zap v1.25.0/go.mod h1:JIAUzQIH94IC4fOJQm7gMmBJP5k7wQfdcnYdPoEXJYk= go4.org v0.0.0-20180809161055-417644f6feb5 h1:+hE86LblG4AyDgwMCLTE6FOlM9+qjHSYS+rKqxUVdsM= golang.org/dl v0.0.0-20190829154251-82a15e2f2ead h1:jeP6FgaSLNTMP+Yri3qjlACywQLye+huGLmNGhBzm6k= golang.org/x/arch v0.3.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= golang.org/x/arch v0.7.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys= golang.org/x/build v0.0.0-20190111050920-041ab4dc3f9d h1:E2M5QgjZ/Jg+ObCQAudsXxuTsLj7Nl5RV/lZcQZmKSo= +golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY= +golang.org/x/crypto v0.0.0-20210314154223-e6e6c4f2bb5b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220315160706-3147a52a75dd/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220926161630-eccd6366d1be/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.4.0/go.mod h1:3quD/ATkf6oY+rnes5c3ExXTbLc8mueNue5/DoinL80= golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= @@ -3115,12 +3662,11 @@ golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliY golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= -golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M= -golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/exp v0.0.0-20191002040644-a1355ae1e2c3/go.mod h1:NOZ3BPKG0ec/BKJQgnvsSFpcKLM5xXVWnvZS97DWHgE= golang.org/x/exp v0.0.0-20221205204356-47842c84f3db/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= golang.org/x/exp v0.0.0-20230206171751-46f607a40771/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= +golang.org/x/exp v0.0.0-20230321023759-10a507213a29/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/exp v0.0.0-20230626212559-97b1e661b5df/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc= golang.org/x/image v0.0.0-20190910094157-69e4b8554b2a/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= @@ -3139,27 +3685,37 @@ golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI= golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.13.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8= +golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM= +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-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211216030914-fe4d6282115f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20221002022538-bcab6841153b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= -golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/net v0.11.0/go.mod h1:2L/ixqYpgIVXmeoSA/4Lu7BzTG4KIyPIryS4IsOd1oQ= golang.org/x/net v0.13.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/net v0.16.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= -golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= -golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= +golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQI= golang.org/x/oauth2 v0.13.0/go.mod h1:/JMhi4ZRXAf4HG9LiNmxvk+45+96RUlVThiH8FzNBn0= golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= golang.org/x/oauth2 v0.17.0/go.mod h1:OzPDGQiuQMguemayvdylqddI7qcD9lnSDb+1FiwQ5HA= +golang.org/x/oauth2 v0.18.0/go.mod h1:Wf7knwG0MPoWIMMBgFlEaSUDaKskp0dCfrlJRJXbBi8= +golang.org/x/oauth2 v0.19.0/go.mod h1:vYi7skDa1x015PmRRYZ7+s1cWyPgrPiSYRe4rnsexc8= golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852 h1:xYq6+9AtI+xP3M4r0N1hCkHrInHDBohhquRgx9Kk6gI= golang.org/x/perf v0.0.0-20230113213139-801c7ef9e5c5 h1:ObuXPmIgI4ZMyQLIz48cJYgSyWdjUXc2SZAdyJMwEAU= golang.org/x/perf v0.0.0-20230113213139-801c7ef9e5c5/go.mod h1:UBKtEnL8aqnd+0JHqZ+2qoMDwtuy6cYhhKNoHLBiTQc= @@ -3168,41 +3724,57 @@ golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190130150945-aca44879d564/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +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-20200106162015-b016eb3dc98e/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-20201101102859-da207088b7d1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210304124612-50617c2ba197/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211103235746-7861aae1554b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +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-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220823224334-20c2bfdbfe24/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220928140112-f11e5e49a4ec/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/telemetry v0.0.0-20240208230135-b75ee8823808 h1:+Kc94D8UVEVxJnLXp/+FMfqQARZtWHfVrcRtcG8aT3g= golang.org/x/telemetry v0.0.0-20240208230135-b75ee8823808/go.mod h1:KG1lNk5ZFNssSZLrpVb4sMXKMpGwGXOxSG3rnu2gZQQ= golang.org/x/telemetry v0.0.0-20240521205824-bda55230c457 h1:zf5N6UOrA487eEFacMePxjXAJctxKmyjKUsjA11Uzuk= golang.org/x/telemetry v0.0.0-20240521205824-bda55230c457/go.mod h1:pRgIJT+bRLFKnoM1ldnzKoxTIn14Yxz928LQRYYgIN0= -golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= golang.org/x/term v0.9.0/go.mod h1:M6DEAAIenWoTxdKrOltXcmDY3rSplQUkrvaDU5FcQyo= golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o= golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= +golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/time v0.0.0-20211116232009-f0f3c7e86c11/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20220922220347-f3bd1da661af/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190927191325-030b2cf1153e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA= golang.org/x/tools v0.9.1/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc= golang.org/x/tools v0.12.0/go.mod h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM= @@ -3211,12 +3783,14 @@ golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg golang.org/x/tools v0.16.0/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= golang.org/x/tools v0.16.1/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= +golang.org/x/tools v0.18.0/go.mod h1:GL7B4CwcLLeo59yx/9UWWuNOW1n3VZ4f5axWfML7Lcg= golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df h1:5Pf6pFKu98ODmgnpvkJ3kFUOQGGLIzLIkbzUHp47618= golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 h1:+cNy6SZtPcJQH3LJVLOSmiC7MMxXNOb3PU/VUEz+EhU= golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= gonum.org/v1/gonum v0.6.0 h1:DJy6UzXbahnGUf1ujUNkh/NEtK14qMo2nvlBPs4U5yw= gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0= @@ -3233,10 +3807,16 @@ google.golang.org/api v0.160.0/go.mod h1:0mu0TpK33qnydLvWqbImq2b1eQ5FHRSDCBzAxX9 google.golang.org/api v0.162.0/go.mod h1:6SulDkfoBIg4NFmCuZ39XeeAgSHCPecfSUuDyYlAHs0= google.golang.org/api v0.164.0/go.mod h1:2OatzO7ZDQsoS7IFf3rvsE17/TldiU3F/zxFHeqUB5o= google.golang.org/api v0.166.0/go.mod h1:4FcBc686KFi7QI/U51/2GKKevfZMpM17sCdibqe/bSA= +google.golang.org/api v0.176.1/go.mod h1:j2MaSDYcvYV1lkZ1+SMW4IeF90SrEyFA+tluDYWRrFg= +google.golang.org/api v0.177.0/go.mod h1:srbhue4MLjkjbkux5p3dw/ocYOSZTaIEvf7bCOnFQDw= +google.golang.org/api v0.180.0/go.mod h1:51AiyoEg1MJPSZ9zvklA8VnRILPXxn1iVen9v25XHAE= google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/cloud v0.0.0-20151119220103-975617b05ea8 h1:Cpp2P6TPjujNoC5M2KHY6g7wfyLYfIWRZaSdIKfDasA= google.golang.org/cloud v0.0.0-20151119220103-975617b05ea8/go.mod h1:0H1ncTHf11KCFhTc/+EFRbzSCOZx+VUbRMk55Yv5MYk= +google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210917145530-b395a37504d4/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:xZnkP7mREFX5MORlOPEzLMr+90PPZQ2QWzrVTWfAq64= google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97/go.mod h1:t1VqOqqvce95G3hIDCT5FeO3YUc6Q4Oe24L/+rNMxRk= google.golang.org/genproto v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:CgAqfJo+Xmu0GwA0411Ht3OU3OntXwsGmrmjI8ioGXI= @@ -3245,6 +3825,7 @@ google.golang.org/genproto v0.0.0-20240116215550-a9fa1716bcac/go.mod h1:+Rvu7ElI google.golang.org/genproto v0.0.0-20240125205218-1f4bbc51befe/go.mod h1:cc8bqMqtv9gMOr0zHg2Vzff5ULhhL2IXP4sbcn32Dro= google.golang.org/genproto v0.0.0-20240205150955-31a09d347014/go.mod h1:xEgQu1e4stdSSsxPDK8Azkrk/ECl5HvdPf6nbZrTS5M= google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9/go.mod h1:mqHbVIp48Muh7Ywss/AD6I5kNVKZMmAa/QEW58Gxp2s= +google.golang.org/genproto v0.0.0-20240401170217-c3f982113cda/go.mod h1:g2LLCvCeCSir/JJSWosk19BR4NVxGqHUC6rxIRsd7Aw= google.golang.org/genproto/googleapis/api v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97/go.mod h1:iargEX0SFPm3xcfMI0d1domjg0ZF4Aa0p2awqyxhvF0= google.golang.org/genproto/googleapis/api v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:IBQ646DjkDkvUIsVq/cc03FUFQ9wbZu7yE396YcL870= @@ -3257,11 +3838,16 @@ google.golang.org/genproto/googleapis/api v0.0.0-20240221002015-b0ce06bbee7c/go. google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:5iCWqnniDlqZHrd3neWVTOwvh/v6s3232omMecelax8= google.golang.org/genproto/googleapis/api v0.0.0-20240311132316-a219d84964c2/go.mod h1:O1cOfN1Cy6QEYr7VxtjOyP5AdAuR0aJ/MYZaaof623Y= google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237/go.mod h1:Z5Iiy3jtmioajWHDGFk7CeugTyHtPvMHA4UTmUkyalE= +google.golang.org/genproto/googleapis/api v0.0.0-20240415180920-8c6c420018be/go.mod h1:dvdCTIoAGbkWbcIKBniID56/7XHTt6WfxXNMxuziJ+w= +google.golang.org/genproto/googleapis/api v0.0.0-20240429193739-8cf5692501f6/go.mod h1:10yRODfgim2/T8csjQsMPgZOMvtytXKTDRzH6HRGzRw= google.golang.org/genproto/googleapis/api v0.0.0-20240513163218-0867130af1f8/go.mod h1:vPrPUTsDCYxXWjP7clS81mZ6/803D8K4iM9Ma27VKas= +google.golang.org/genproto/googleapis/api v0.0.0-20240521202816-d264139d666e/go.mod h1:LweJcLbyVij6rCex8YunD8DYR5VDonap/jYl3ZRxcIU= google.golang.org/genproto/googleapis/bytestream v0.0.0-20231030173426-d783a09b4405 h1:o4S3HvTUEXgRsNSUQsALDVog0O9F/U1JJlHmmUN8Uas= google.golang.org/genproto/googleapis/bytestream v0.0.0-20231030173426-d783a09b4405/go.mod h1:GRUCuLdzVqZte8+Dl/D4N25yLzcGqqWaYkeVOwulFqw= google.golang.org/genproto/googleapis/bytestream v0.0.0-20240304161311-37d4d3c04a78 h1:YqFWYZXim8bG9v68xU8WjTZmYKb5M5dMeSOWIp6jogI= google.golang.org/genproto/googleapis/bytestream v0.0.0-20240304161311-37d4d3c04a78/go.mod h1:vh/N7795ftP0AkN1w8XKqN4w1OdUKXW5Eummda+ofv8= +google.golang.org/genproto/googleapis/bytestream v0.0.0-20240528184218-531527333157 h1:znHUtThh5/fLbEC/p3Khp5xOucyAgMZ1Nj9ditbxd44= +google.golang.org/genproto/googleapis/bytestream v0.0.0-20240528184218-531527333157/go.mod h1:0J6mmn3XAEjfNbPvpH63c0RXCjGNFcCzlEfWSN4In+k= google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/genproto/googleapis/rpc v0.0.0-20231002182017-d307bd883b97/go.mod h1:v7nGkzlmW8P3n/bKmWBn2WpBjpOEx8Q6gMueudAmKfY= @@ -3277,10 +3863,17 @@ google.golang.org/genproto/googleapis/rpc v0.0.0-20240221002015-b0ce06bbee7c/go. google.golang.org/genproto/googleapis/rpc v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:H4O17MA/PE9BsGx3w+a+W2VOLLD1Qf7oJneAoU6WktY= google.golang.org/genproto/googleapis/rpc v0.0.0-20240304161311-37d4d3c04a78/go.mod h1:UCOku4NytXMJuLQE5VuqA5lX3PcHCBo8pxNyvkf4xBs= google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240415180920-8c6c420018be/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240429193739-8cf5692501f6/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= google.golang.org/genproto/googleapis/rpc v0.0.0-20240509183442-62759503f434/go.mod h1:I7Y+G38R2bu5j1aLzfFmQfTcU/WnFuqDwLZAbvKTKpM= google.golang.org/genproto/googleapis/rpc v0.0.0-20240513163218-0867130af1f8/go.mod h1:I7Y+G38R2bu5j1aLzfFmQfTcU/WnFuqDwLZAbvKTKpM= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240521202816-d264139d666e/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= google.golang.org/grpc v0.0.0-20170208002647-2a6bf6142e96/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= +google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= +google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= +google.golang.org/grpc v1.41.0/go.mod h1:U3l9uK9J0sini8mHphKoXyaqDA/8VyGnDee1zzIUK6k= google.golang.org/grpc v1.56.1/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= google.golang.org/grpc v1.58.2/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= @@ -3312,6 +3905,7 @@ gopkg.in/cheggaaa/pb.v1 v1.0.28 h1:n1tBJnnK2r7g9OW2btFH91V92STTUevLXYFb8gy9EMk= gopkg.in/errgo.v2 v2.1.0 h1:0vLT13EuvQ0hNvakwLuFZ/jYrLp5F3kcWHXdRggjCE8= gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= gopkg.in/gcfg.v1 v1.2.3 h1:m8OOJ4ccYHnx2f4gQwpno8nAX5OGOh7RLaaz0pj3Ogs= +gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2 h1:OAj3g0cR6Dx/R07QgQe8wkA9RNjB2u4i700xBkIT4e0= gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo= gopkg.in/go-playground/assert.v1 v1.2.1 h1:xoYuJVE7KT85PYWrN730RguIQO0ePzVRfFMXadIrXTM= @@ -3334,6 +3928,7 @@ gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/square/go-jose.v2 v2.5.1 h1:7odma5RETjNHWJnR32wx8t+Io4djHE1PqxCFx3iiZ2w= gopkg.in/square/go-jose.v2 v2.5.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/urfave/cli.v1 v1.20.0 h1:NdAVW6RYxDif9DhDHaAortIu956m2c0v+09AZBPTbE0= +gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gorm.io/gorm v1.24.5/go.mod h1:DVrVomtaYTbqs7gB/x2uVvqnXzv0nqjB396B8cG4dBA= gorm.io/gorm v1.25.7-0.20240204074919-46816ad31dde/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= gotest.tools/gotestsum v1.8.2 h1:szU3TaSz8wMx/uG+w/A2+4JUPwH903YYaMI9yOOYAyI= @@ -3343,12 +3938,18 @@ honnef.co/go/tools v0.2.2/go.mod h1:lPVVZ2BS5TfnjLyizF7o7hv7j9/L+8cZY2hLyjP9cGY= k8s.io/api v0.22.5 h1:xk7C+rMjF/EGELiD560jdmwzrB788mfcHiNbMQLIVI8= k8s.io/api v0.26.2 h1:dM3cinp3PGB6asOySalOZxEG4CZ0IAdJsrYZXE/ovGQ= k8s.io/api v0.26.2/go.mod h1:1kjMQsFE+QHPfskEcVNgL3+Hp88B80uj0QtSOlj8itU= +k8s.io/api v0.27.3 h1:yR6oQXXnUEBWEWcvPWS0jQL575KoAboQPfJAuKNrw5Y= +k8s.io/api v0.27.3/go.mod h1:C4BNvZnQOF7JA/0Xed2S+aUyJSfTGkGFxLXz9MnpIpg= +k8s.io/api v0.29.3 h1:2ORfZ7+bGC3YJqGpV0KSDDEVf8hdGQ6A03/50vj8pmw= +k8s.io/api v0.29.3/go.mod h1:y2yg2NTyHUUkIoTC+phinTnEa3KFM6RZ3szxt014a80= k8s.io/apiserver v0.22.5 h1:71krQxCUz218ecb+nPhfDsNB6QgP1/4EMvi1a2uYBlg= k8s.io/apiserver v0.26.2 h1:Pk8lmX4G14hYqJd1poHGC08G03nIHVqdJMR0SD3IH3o= k8s.io/apiserver v0.26.2/go.mod h1:GHcozwXgXsPuOJ28EnQ/jXEM9QeG6HT22YxSNmpYNh8= k8s.io/client-go v0.22.5 h1:I8Zn/UqIdi2r02aZmhaJ1hqMxcpfJ3t5VqvHtctHYFo= k8s.io/client-go v0.26.2 h1:s1WkVujHX3kTp4Zn4yGNFK+dlDXy1bAAkIl+cFAiuYI= k8s.io/client-go v0.26.2/go.mod h1:u5EjOuSyBa09yqqyY7m3abZeovO/7D/WehVVlZ2qcqU= +k8s.io/client-go v0.27.3 h1:7dnEGHZEJld3lYwxvLl7WoehK6lAq7GvgjxpA3nv1E8= +k8s.io/client-go v0.27.3/go.mod h1:2MBEKuTo6V1lbKy3z1euEGnhPfGZLKTS9tiJ2xodM48= k8s.io/code-generator v0.19.7 h1:kM/68Y26Z/u//TFc1ggVVcg62te8A2yQh57jBfD0FWQ= k8s.io/code-generator v0.19.7/go.mod h1:lwEq3YnLYb/7uVXLorOJfxg+cUu2oihFhHZ0n9NIla0= k8s.io/code-generator v0.25.5 h1:K3MSqc27VT6fGJtVlE037N2dGmtqyhZi3S+1GkrKH+c= @@ -3366,14 +3967,24 @@ k8s.io/gengo v0.0.0-20201113003025-83324d819ded h1:JApXBKYyB7l9xx+DK7/+mFjC7A9Bt k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c h1:GohjlNKauSai7gN4wsJkeZ3WAJx4Sh+oT/b5IYn5suA= k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/gengo v0.0.0-20211129171323-c02415ce4185 h1:TT1WdmqqXareKxZ/oNXEUSwKlLiHzPMyB0t8BaFeBYI= +k8s.io/gengo v0.0.0-20230829151522-9cce18d56c01 h1:pWEwq4Asjm4vjW7vcsmijwBhOr1/shsbSYiWXmNGlks= +k8s.io/gengo v0.0.0-20230829151522-9cce18d56c01/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= +k8s.io/gengo/v2 v2.0.0-20240228010128-51d4e06bde70 h1:NGrVE502P0s0/1hudf8zjgwki1X/TByhmAoILTarmzo= +k8s.io/gengo/v2 v2.0.0-20240228010128-51d4e06bde70/go.mod h1:VH3AT8AaQOqiGjMF9p0/IM1Dj+82ZwjfxUP1IxaHE+8= k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= +k8s.io/klog/v2 v2.80.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= +k8s.io/klog/v2 v2.110.1/go.mod h1:YGtd1984u+GgbuZ7e08/yBuAfKLSO0+uR1Fhi6ExXjo= k8s.io/kms v0.26.2 h1:GM1gg3tFK3OUU/QQFi93yGjG3lJT8s8l3Wkn2+VxBLM= k8s.io/kms v0.26.2/go.mod h1:69qGnf1NsFOQP07fBYqNLZklqEHSJF024JqYCaeVxHg= k8s.io/kube-openapi v0.0.0-20220803162953-67bda5d908f1 h1:MQ8BAZPZlWk3S9K4a9NCkIFQtZShWqoha7snGixVgEA= k8s.io/kube-openapi v0.0.0-20220803162953-67bda5d908f1/go.mod h1:C/N6wCaBHeBHkHUesQOQy2/MZqGgMAFPqGsGQLdbZBU= k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 h1:+70TFaan3hfJzs+7VK2o+OGxg8HsuBr/5f6tVAjDu6E= k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280/go.mod h1:+Axhij7bCpeqhklhUTe3xmOn6bWxolyZEeyaFpjGtl4= +k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 h1:aVUu9fTY98ivBPKR9Y5w/AuzbMm96cd3YHRTU83I780= +k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA= +k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag= +k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98= k8s.io/kubernetes v1.13.0 h1:qTfB+u5M92k2fCCCVP2iuhgwwSOv1EkAkvQY1tQODD8= k8s.io/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk= k8s.io/metrics v0.24.2 h1:3lgEq973VGPWAEaT9VI/p0XmI0R5kJgb/r9Ufr5fz8k= @@ -3428,10 +4039,15 @@ sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.35 h1:+xBL5uTc+BkPB sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.35/go.mod h1:WxjusMwXlKzfAs4p9km6XJRndVt2FROgMVCE4cdohFo= sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 h1:iXTIw73aPyC+oRdyqqvVJuloN1p0AC/kzH07hu3NE+k= sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= +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/cmd/config v0.10.6 h1:Qjs7z/Q1NrVmW86tavmhM7wZtgWJ7aitLMARlUKrj98= sigs.k8s.io/kustomize/kustomize/v4 v4.5.4 h1:rzGrL+DA4k8bT6SMz7/U+2z3iiZf1t2RaYJWx8OeTmE= sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE= sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E= +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.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= sourcegraph.com/sourcegraph/go-diff v0.5.0 h1:eTiIR0CoWjGzJcnQ3OkhIl/b9GJovq4lSAVRt0ZFEG8= diff --git a/services/cctp-relayer/go.mod b/services/cctp-relayer/go.mod index fba189ce5f..e938478ee4 100644 --- a/services/cctp-relayer/go.mod +++ b/services/cctp-relayer/go.mod @@ -9,7 +9,7 @@ require ( github.com/ImVexed/fasturl v0.0.0-20230304231329-4e41488060f3 github.com/alecthomas/assert v1.0.0 github.com/brianvoe/gofakeit/v6 v6.27.0 - github.com/davecgh/go-spew v1.1.1 + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/ethereum/go-ethereum v1.13.8 github.com/gin-gonic/gin v1.10.0 github.com/ipfs/go-log v1.0.5 @@ -33,9 +33,13 @@ require ( ) require ( + cloud.google.com/go v0.114.0 // indirect + cloud.google.com/go/auth v0.5.1 // indirect + cloud.google.com/go/auth/oauth2adapt v0.2.2 // indirect cloud.google.com/go/compute/metadata v0.3.0 // indirect - cloud.google.com/go/iam v1.1.6 // indirect - cloud.google.com/go/kms v1.15.7 // indirect + cloud.google.com/go/iam v1.1.8 // indirect + cloud.google.com/go/kms v1.17.1 // indirect + cloud.google.com/go/longrunning v0.5.7 // indirect dario.cat/mergo v1.0.0 // indirect github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect github.com/DataDog/zstd v1.5.2 // indirect @@ -100,7 +104,7 @@ require ( github.com/deepmap/oapi-codegen v1.8.2 // indirect github.com/dgrr/http2 v0.3.5 // indirect github.com/docker/cli v26.0.1+incompatible // indirect - github.com/docker/docker v26.0.1+incompatible // indirect + github.com/docker/docker v26.1.3+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/dubonzi/otelresty v1.2.0 // indirect @@ -110,7 +114,7 @@ require ( github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fjl/memsize v0.0.2 // indirect github.com/flowchartsman/swaggerui v0.0.0-20221017034628-909ed4f3701b // indirect - github.com/fsnotify/fsnotify v1.6.0 // indirect + github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/gabriel-vasile/mimetype v1.4.3 // indirect github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/gballet/go-verkle v0.1.1-0.20231031103413-a67434b50f46 // indirect @@ -129,7 +133,7 @@ require ( 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.20.0 // indirect - github.com/go-resty/resty/v2 v2.11.0 // indirect + github.com/go-resty/resty/v2 v2.13.1 // indirect github.com/go-sql-driver/mysql v1.7.0 // indirect github.com/goccy/go-json v0.10.2 // indirect github.com/gofrs/flock v0.8.1 // indirect @@ -143,7 +147,7 @@ require ( github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect github.com/google/uuid v1.6.0 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect - github.com/googleapis/gax-go/v2 v2.12.2 // indirect + github.com/googleapis/gax-go/v2 v2.12.4 // indirect github.com/gorilla/websocket v1.5.1 // indirect github.com/grafana/otel-profiling-go v0.5.1 // indirect github.com/grafana/pyroscope-go v1.1.1 // indirect @@ -184,7 +188,7 @@ require ( github.com/lmittmann/w3 v0.10.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/mattn/go-runewidth v0.0.13 // indirect + github.com/mattn/go-runewidth v0.0.15 // indirect github.com/mattn/go-sqlite3 v2.0.3+incompatible // indirect github.com/mattn/go-tty v0.0.3 // indirect github.com/miguelmota/go-ethereum-hdwallet v0.1.1 // indirect @@ -208,15 +212,15 @@ require ( github.com/pjbgf/sha1cd v0.3.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pkg/term v1.2.0-beta.2 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/client_golang v1.19.1 // indirect github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.53.0 // indirect + github.com/prometheus/common v0.54.0 // indirect github.com/prometheus/procfs v0.15.0 // indirect github.com/puzpuzpuz/xsync v1.4.3 // indirect github.com/puzpuzpuz/xsync/v2 v2.5.1 // indirect github.com/rbretecher/go-postman-collection v0.9.0 // indirect - github.com/rivo/uniseg v0.2.0 // indirect + github.com/rivo/uniseg v0.4.7 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/rs/cors v1.8.2 // indirect github.com/rung/go-safecast v1.0.1 // indirect @@ -273,24 +277,24 @@ require ( golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 // indirect golang.org/x/mod v0.18.0 // indirect golang.org/x/net v0.26.0 // indirect - golang.org/x/oauth2 v0.20.0 // indirect + golang.org/x/oauth2 v0.21.0 // indirect golang.org/x/sys v0.21.0 // indirect golang.org/x/term v0.21.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.22.0 // indirect - google.golang.org/api v0.169.0 // indirect - google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291 // indirect + google.golang.org/api v0.183.0 // indirect + google.golang.org/genproto v0.0.0-20240528184218-531527333157 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 // indirect google.golang.org/protobuf v1.34.1 // indirect gopkg.in/hedzr/errors.v3 v3.1.1 // indirect gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apimachinery v0.26.2 // indirect - k8s.io/klog/v2 v2.90.1 // indirect - k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 // indirect + k8s.io/apimachinery v0.29.3 // indirect + k8s.io/klog/v2 v2.120.1 // indirect + k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect rsc.io/tmplfunc v0.0.3 // indirect ) diff --git a/services/cctp-relayer/go.sum b/services/cctp-relayer/go.sum index 6c5e8608b5..a1d8e6f1aa 100644 --- a/services/cctp-relayer/go.sum +++ b/services/cctp-relayer/go.sum @@ -19,8 +19,12 @@ cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHOb cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= -cloud.google.com/go v0.112.1 h1:uJSeirPke5UNZHIb4SxfZklVSiWWVqW4oXlETwZziwM= -cloud.google.com/go v0.112.1/go.mod h1:+Vbu+Y1UU+I1rjmzeMOb/8RfkKJK2Gyxi1X6jJCZLo4= +cloud.google.com/go v0.114.0 h1:OIPFAdfrFDFO2ve2U7r/H5SwSbBzEdrBdE7xkgwc+kY= +cloud.google.com/go v0.114.0/go.mod h1:ZV9La5YYxctro1HTPug5lXH/GefROyW8PPD4T8n9J8E= +cloud.google.com/go/auth v0.5.1 h1:0QNO7VThG54LUzKiQxv8C6x1YX7lUrzlAa1nVLF8CIw= +cloud.google.com/go/auth v0.5.1/go.mod h1:vbZT8GjzDf3AVqCcQmqeeM32U9HBFc32vVVAbwDsa6s= +cloud.google.com/go/auth/oauth2adapt v0.2.2 h1:+TTV8aXpjeChS9M+aTtN/TjdQnzJvmzKFt//oWu7HX4= +cloud.google.com/go/auth/oauth2adapt v0.2.2/go.mod h1:wcYjgpZI9+Yu7LyYBg4pqSiaRkfEK3GQcpb7C/uyF1Q= 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= @@ -32,10 +36,12 @@ cloud.google.com/go/compute/metadata v0.3.0 h1:Tz+eQXMEqDIKRsmY3cHTL6FVaynIjX2Qx cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/iam v1.1.6 h1:bEa06k05IO4f4uJonbB5iAgKTPpABy1ayxaIZV/GHVc= -cloud.google.com/go/iam v1.1.6/go.mod h1:O0zxdPeGBoFdWW3HWmBxJsk0pfvNM/p/qa82rWOGTwI= -cloud.google.com/go/kms v1.15.7 h1:7caV9K3yIxvlQPAcaFffhlT7d1qpxjB1wHBtjWa13SM= -cloud.google.com/go/kms v1.15.7/go.mod h1:ub54lbsa6tDkUwnu4W7Yt1aAIFLnspgh0kPGToDukeI= +cloud.google.com/go/iam v1.1.8 h1:r7umDwhj+BQyz0ScZMp4QrGXjSTI3ZINnpgU2nlB/K0= +cloud.google.com/go/iam v1.1.8/go.mod h1:GvE6lyMmfxXauzNq8NbgJbeVQNspG+tcdL/W8QO1+zE= +cloud.google.com/go/kms v1.17.1 h1:5k0wXqkxL+YcXd4viQzTqCgzzVKKxzgrK+rCZJytEQs= +cloud.google.com/go/kms v1.17.1/go.mod h1:DCMnCF/apA6fZk5Cj4XsD979OyHAqFasPuA5Sd0kGlQ= +cloud.google.com/go/longrunning v0.5.7 h1:WLbHekDbjK1fVFD3ibpFFVoyizlLRl73I7YKuAKilhU= +cloud.google.com/go/longrunning v0.5.7/go.mod h1:8GClkudohy1Fxm3owmBGid8W0pSgodEMwEAztp38Xng= 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= @@ -125,8 +131,8 @@ github.com/apache/arrow/go/arrow v0.0.0-20191024131854-af6fa24be0db/go.mod h1:VT github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= 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/aws/aws-sdk-go v1.43.16 h1:Y7wBby44f+tINqJjw5fLH3vA+gFq4uMITIKqditwM14= -github.com/aws/aws-sdk-go v1.43.16/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= +github.com/aws/aws-sdk-go v1.53.16 h1:8oZjKQO/ml1WLUZw5hvF7pvYjPf8o9f57Wldoy/q9Qc= +github.com/aws/aws-sdk-go v1.53.16/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= github.com/aws/aws-sdk-go-v2 v1.2.0/go.mod h1:zEQs02YRBw1DjK0PoJv3ygDYOFTre1ejlJWl8FwAuQo= github.com/aws/aws-sdk-go-v2 v1.16.5/go.mod h1:Wh7MEsmEApyL5hrWzpDkba4gwAPc5/piwLVLFnCxp48= github.com/aws/aws-sdk-go-v2 v1.21.2 h1:+LXZ0sgo8quN9UOKXXzAWRT3FWd4NxeXWOZom9pE7GA= @@ -283,8 +289,8 @@ github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233/go.mod h1:geZJ github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA= github.com/crate-crypto/go-kzg-4844 v0.7.0/go.mod h1:1kMhvPgI0Ky3yIa+9lFySEBUBXkYxeOi8ZF1sYioxhc= 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/creack/pty v1.1.21 h1:1/QdRyBaHHJP61QkWMXlOIBfsgdDeeKfK8SYVUWJKf0= +github.com/creack/pty v1.1.21/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4= github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= @@ -294,8 +300,9 @@ github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e/go.mod h1:IJg github.com/dave/jennifer v1.2.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg= github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea/go.mod h1:93vsz/8Wt4joVM7c2AVqh+YRMiUSc14yDtF28KmMOgQ= github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80NsVHagjM= github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= @@ -317,8 +324,8 @@ github.com/dlclark/regexp2 v1.2.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55k github.com/docker/cli v26.0.1+incompatible h1:eZDuplk2jYqgUkNLDYwTBxqmY9cM3yHnmN6OIUEjL3U= github.com/docker/cli v26.0.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/docker v1.4.2-0.20180625184442-8e610b2b55bf/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v26.0.1+incompatible h1:t39Hm6lpXuXtgkF0dm1t9a5HkbUfdGy6XbWexmGr+hA= -github.com/docker/docker v26.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v26.1.3+incompatible h1:lLCzRbrVZrljpVNobJu1J2FHk8V0s4BawoZippkc+xo= +github.com/docker/docker v26.1.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= @@ -366,8 +373,8 @@ github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/ github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= -github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= +github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= @@ -419,7 +426,6 @@ github.com/go-http-utils/headers v0.0.0-20181008091004-fed159eddc2a/go.mod h1:I7 github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= @@ -445,8 +451,8 @@ 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.20.0 h1:K9ISHbSaI0lyB2eWMPJo+kOS/FBExVwjEviJTixqxL8= github.com/go-playground/validator/v10 v10.20.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= -github.com/go-resty/resty/v2 v2.11.0 h1:i7jMfNOJYMp69lq7qozJP+bjgzfAzeOhuGlyDrqxT/8= -github.com/go-resty/resty/v2 v2.11.0/go.mod h1:iiP/OpA0CkcL3IGt1O0+/SIItFUbkkyw5BGXiVdTu+A= +github.com/go-resty/resty/v2 v2.13.1 h1:x+LHXBI2nMB1vqndymf26quycC4aggYJ7DECYbiz03g= +github.com/go-resty/resty/v2 v2.13.1/go.mod h1:GznXlLxkq6Nh4sU59rPmUw3VtgpO3aS96ORAI6Q7d+0= github.com/go-sourcemap/sourcemap v2.1.2+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc= @@ -562,8 +568,8 @@ github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfF github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gax-go/v2 v2.12.2 h1:mhN09QQW1jEWeMF74zGR81R30z4VJzjZsfkUhuHF+DA= -github.com/googleapis/gax-go/v2 v2.12.2/go.mod h1:61M8vcyyXR2kqKFxKrfA22jaA8JGF7Dc8App1U3H6jc= +github.com/googleapis/gax-go/v2 v2.12.4 h1:9gWcmF85Wvq4ryPFvGFaOgPIs1AQX0d0bcbGw4Z96qg= +github.com/googleapis/gax-go/v2 v2.12.4/go.mod h1:KYEYLorsnIGDi/rPC8b5TdlB9kbKoFubselGIoBMCwI= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= @@ -779,8 +785,8 @@ github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.6/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU= -github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= +github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/go-sqlite3 v2.0.3+incompatible h1:gXHsfypPkaMZrKbD5209QV9jbUTJKjyR5WD3HYQSd+U= github.com/mattn/go-sqlite3 v2.0.3+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= @@ -908,8 +914,9 @@ github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qR github.com/pkg/term v0.0.0-20180730021639-bffc007b7fd5/go.mod h1:eCbImbZ95eXtAUIbLAuAVnBnwf83mjf6QIVH8SHYwqQ= github.com/pkg/term v1.2.0-beta.2 h1:L3y/h2jkuBVFdWiJvNfYfKmzcCnILw7mJWm2JQuMppw= github.com/pkg/term v1.2.0-beta.2/go.mod h1:E25nymQcrSllhX42Ok8MRm1+hyBdHY0dCeiKZ9jpNGw= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +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/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= @@ -922,8 +929,8 @@ github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQy github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= -github.com/prometheus/common v0.53.0 h1:U2pL9w9nmJwJDa4qqLQ3ZaePJ6ZTwt7cMD3AG3+aLCE= -github.com/prometheus/common v0.53.0/go.mod h1:BrxBKv3FWBIGXw89Mg1AeBq7FSyRzXWI3l3e7W3RN5U= +github.com/prometheus/common v0.54.0 h1:ZlZy0BgJhTwVZUn7dLOkwCZHUkrAqd3WYtcFCWnM1D8= +github.com/prometheus/common v0.54.0/go.mod h1:/TQgMJP5CuVYveyT7n/0Ix8yLNNXy9yRSkhnLTHPDIQ= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.15.0 h1:A82kmvXJq2jTu5YUhSGNlYoxh85zLnKgPz4bMZgI5Ek= @@ -940,8 +947,9 @@ github.com/regen-network/protobuf v1.3.3-alpha.regen.1/go.mod h1:2DjTFR1HhMQhiWC github.com/retailnext/hllpp v1.0.1-0.20180308014038-101a6d2f8b52/go.mod h1:RDpi1RftBQPUCDRw6SmxeaREsAaRKnOclghuzp/WRzc= github.com/richardwilkes/toolbox v1.74.0 h1:TNvXxph1jJk6IQmVoZdAY9peRlL6Tv//7OpyJkjMiPI= github.com/richardwilkes/toolbox v1.74.0/go.mod h1:OFTDv8rUUsF+Hb98k9l65zu7fuKt3EEhWywv6zyJ750= -github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= +github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rjeczalik/notify v0.9.1/go.mod h1:rKwnCoCGeuQnwBtTSPL9Dad03Vh2n40ePRrjvIXnJho= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= @@ -1202,7 +1210,8 @@ golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1304,7 +1313,8 @@ 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.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -1316,8 +1326,8 @@ golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.20.0 h1:4mQdhULixXKP1rwYBW0vAijoXnkTG0BLCDRzfe1idMo= -golang.org/x/oauth2 v0.20.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= +golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1414,7 +1424,6 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc 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-20220908164124-27713097b956/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.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1422,8 +1431,9 @@ 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= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= @@ -1433,7 +1443,8 @@ 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.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= -golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1449,7 +1460,8 @@ 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.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= 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= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1457,7 +1469,6 @@ golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -1553,8 +1564,8 @@ google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz513 google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= -google.golang.org/api v0.169.0 h1:QwWPy71FgMWqJN/l6jVlFHUa29a7dcUy02I8o799nPY= -google.golang.org/api v0.169.0/go.mod h1:gpNOiMA2tZ4mf5R9Iwf4rK/Dcz0fbdIgWYWVoxmsyLg= +google.golang.org/api v0.183.0 h1:PNMeRDwo1pJdgNcFQ9GstuLe/noWKIc89pRWRLMvLwE= +google.golang.org/api v0.183.0/go.mod h1:q43adC5/pHoSZTx5h2mSmdF7NcyfW9JuDyIOJAgS9ZQ= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1603,12 +1614,12 @@ google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= -google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de h1:F6qOa9AZTYJXOUEr4jDysRDLrm4PHePlge4v4TGAlxY= -google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:VUhTRKeHn9wwcdrk73nvdC9gF178Tzhmt/qyaFcPLSo= -google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5 h1:P8OJ/WCl/Xo4E4zoe4/bifHpSmmKwARqyqE4nW6J2GQ= -google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5/go.mod h1:RGnPtTG7r4i8sPlNyDeikXF99hMM+hN6QMm4ooG9g2g= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291 h1:AgADTJarZTBqgjiUzRgfaBchgYB3/WFTC80GPwsMcRI= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= +google.golang.org/genproto v0.0.0-20240528184218-531527333157 h1:u7WMYrIrVvs0TF5yaKwKNbcJyySYf+HAIFXxWltJOXE= +google.golang.org/genproto v0.0.0-20240528184218-531527333157/go.mod h1:ubQlAQnzejB8uZzszhrTCU2Fyp6Vi7ZE5nn0c3W8+qQ= +google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 h1:7whR9kGa5LUwFtpLm2ArCEejtnxlGeLbAyjFY8sGNFw= +google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157/go.mod h1:99sLkeliLXfdj2J75X3Ho+rrVCaJze0uwN7zDDkjPVU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 h1:Zy9XzmMEflZ/MAaA7vNcoebnRAld7FsPW1EeBB7V0m8= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= 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= @@ -1700,12 +1711,12 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt 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/apimachinery v0.26.2 h1:da1u3D5wfR5u2RpLhE/ZtZS2P7QvDgLZTi9wrNZl/tQ= -k8s.io/apimachinery v0.26.2/go.mod h1:ats7nN1LExKHvJ9TmwootT00Yz05MuYqPXEXaVeOy5I= -k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw= -k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 h1:kmDqav+P+/5e1i9tFfHq1qcF3sOrDp+YEkVDAHu7Jwk= -k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/apimachinery v0.29.3 h1:2tbx+5L7RNvqJjn7RIuIKu9XTsIZ9Z5wX2G22XAa5EU= +k8s.io/apimachinery v0.29.3/go.mod h1:hx/S4V2PNW4OMg3WizRrHutyB5la0iCUbZym+W0EQIU= +k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= +k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= lukechampine.com/blake3 v1.2.1 h1:YuqqRuaqsGV71BV/nm9xlI0MKUv4QC54jQnBChWbGnI= lukechampine.com/blake3 v1.2.1/go.mod h1:0OFRp7fBtAylGVCO40o87sbupkyIGgbpv1+M1k1LM6k= nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= diff --git a/services/explorer/go.mod b/services/explorer/go.mod index 92795103b2..80bd6da9f5 100644 --- a/services/explorer/go.mod +++ b/services/explorer/go.mod @@ -50,7 +50,7 @@ require ( gopkg.in/yaml.v2 v2.4.0 gorm.io/driver/clickhouse v0.6.1 gorm.io/gorm v1.25.10 - k8s.io/apimachinery v0.26.2 + k8s.io/apimachinery v0.29.3 ) require ( @@ -105,24 +105,24 @@ require ( github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e // indirect github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect + 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/deepmap/oapi-codegen v1.8.2 // indirect github.com/disintegration/imaging v1.6.2 // indirect github.com/dlclark/regexp2 v1.7.0 // indirect github.com/docker/cli v26.0.1+incompatible // indirect - github.com/docker/docker v26.0.1+incompatible // indirect + github.com/docker/docker v26.1.3+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/eliukblau/pixterm/pkg/ansimage v0.0.0-20191210081756-9fb6cf8c2f75 // indirect github.com/emirpasic/gods v1.18.1 // indirect github.com/ethereum/c-kzg-4844 v0.4.0 // indirect - github.com/fatih/color v1.13.0 // indirect + github.com/fatih/color v1.16.0 // indirect github.com/fatih/structtag v1.2.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fjl/memsize v0.0.2 // indirect - github.com/fsnotify/fsnotify v1.6.0 // indirect + github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/gabriel-vasile/mimetype v1.4.3 // indirect github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/gballet/go-verkle v0.1.1-0.20231031103413-a67434b50f46 // indirect @@ -186,10 +186,10 @@ require ( github.com/kyokomi/emoji/v2 v2.2.8 // indirect github.com/leodido/go-urn v1.4.0 // indirect github.com/lmittmann/w3 v0.10.0 // indirect - github.com/lucasb-eyer/go-colorful v1.0.3 // indirect + github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/mattn/go-runewidth v0.0.13 // indirect + github.com/mattn/go-runewidth v0.0.15 // indirect github.com/mattn/go-sqlite3 v2.0.3+incompatible // indirect github.com/mattn/go-tty v0.0.3 // indirect github.com/miguelmota/go-ethereum-hdwallet v0.1.1 // indirect @@ -214,13 +214,13 @@ require ( github.com/pjbgf/sha1cd v0.3.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pkg/term v1.2.0-beta.2 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/client_golang v1.19.1 // indirect github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.53.0 // indirect + github.com/prometheus/common v0.54.0 // indirect github.com/prometheus/procfs v0.15.0 // indirect github.com/puzpuzpuz/xsync/v2 v2.5.1 // indirect - github.com/rivo/uniseg v0.2.0 // indirect + github.com/rivo/uniseg v0.4.7 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/rs/cors v1.8.2 // indirect github.com/rung/go-safecast v1.0.1 // indirect @@ -282,8 +282,8 @@ require ( golang.org/x/text v0.16.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.22.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 // indirect google.golang.org/grpc v1.64.0 // indirect google.golang.org/protobuf v1.34.1 // indirect gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect @@ -291,7 +291,7 @@ require ( gopkg.in/yaml.v3 v3.0.1 // indirect gorm.io/driver/mysql v1.5.6 // indirect gorm.io/driver/sqlite v1.5.6 // indirect - k8s.io/klog/v2 v2.90.1 // indirect - k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 // indirect + k8s.io/klog/v2 v2.120.1 // indirect + k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect rsc.io/tmplfunc v0.0.3 // indirect ) diff --git a/services/explorer/go.sum b/services/explorer/go.sum index ef8dc98677..493792e138 100644 --- a/services/explorer/go.sum +++ b/services/explorer/go.sum @@ -267,8 +267,8 @@ github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233/go.mod h1:geZJ github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA= github.com/crate-crypto/go-kzg-4844 v0.7.0/go.mod h1:1kMhvPgI0Ky3yIa+9lFySEBUBXkYxeOi8ZF1sYioxhc= 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/creack/pty v1.1.21 h1:1/QdRyBaHHJP61QkWMXlOIBfsgdDeeKfK8SYVUWJKf0= +github.com/creack/pty v1.1.21/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4= github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= @@ -280,8 +280,9 @@ github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964/go.mod h1:Xd9 github.com/dave/jennifer v1.2.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg= github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea/go.mod h1:93vsz/8Wt4joVM7c2AVqh+YRMiUSc14yDtF28KmMOgQ= github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80NsVHagjM= github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= @@ -310,8 +311,8 @@ github.com/dlclark/regexp2 v1.7.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnm github.com/docker/cli v26.0.1+incompatible h1:eZDuplk2jYqgUkNLDYwTBxqmY9cM3yHnmN6OIUEjL3U= github.com/docker/cli v26.0.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/docker v1.4.2-0.20180625184442-8e610b2b55bf/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v26.0.1+incompatible h1:t39Hm6lpXuXtgkF0dm1t9a5HkbUfdGy6XbWexmGr+hA= -github.com/docker/docker v26.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v26.1.3+incompatible h1:lLCzRbrVZrljpVNobJu1J2FHk8V0s4BawoZippkc+xo= +github.com/docker/docker v26.1.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= @@ -345,8 +346,8 @@ github.com/ethereum/go-ethereum v1.13.8/go.mod h1:sc48XYQxCzH3fG9BcrXCOOgQk2JfZz github.com/fasthttp-contrib/websocket v0.0.0-20160511215533-1f3b11f56072/go.mod h1:duJ4Jxv5lDcvg4QuQr0oowTf7dz4/CR8NtyCooz9HL8= 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 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w= -github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= +github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= +github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4= github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94= @@ -363,8 +364,8 @@ github.com/friendsofgo/graphiql v0.2.2 h1:ccnuxpjgIkB+Lr9YB2ZouiZm7wvciSfqwpa9ug github.com/friendsofgo/graphiql v0.2.2/go.mod h1:8Y2kZ36AoTGWs78+VRpvATyt3LJBx0SZXmay80ZTRWo= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= -github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= +github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= @@ -420,7 +421,6 @@ github.com/go-http-utils/headers v0.0.0-20181008091004-fed159eddc2a/go.mod h1:I7 github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= @@ -446,8 +446,8 @@ 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.20.0 h1:K9ISHbSaI0lyB2eWMPJo+kOS/FBExVwjEviJTixqxL8= github.com/go-playground/validator/v10 v10.20.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= -github.com/go-resty/resty/v2 v2.11.0 h1:i7jMfNOJYMp69lq7qozJP+bjgzfAzeOhuGlyDrqxT/8= -github.com/go-resty/resty/v2 v2.11.0/go.mod h1:iiP/OpA0CkcL3IGt1O0+/SIItFUbkkyw5BGXiVdTu+A= +github.com/go-resty/resty/v2 v2.13.1 h1:x+LHXBI2nMB1vqndymf26quycC4aggYJ7DECYbiz03g= +github.com/go-resty/resty/v2 v2.13.1/go.mod h1:GznXlLxkq6Nh4sU59rPmUw3VtgpO3aS96ORAI6Q7d+0= github.com/go-sourcemap/sourcemap v2.1.2+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc= @@ -736,8 +736,9 @@ github.com/libp2p/go-libp2p v0.33.0 h1:yTPSr8sJRbfeEYXyeN8VPVSlTlFjtMUwGDRniwaf/ github.com/libp2p/go-libp2p v0.33.0/go.mod h1:RIJFRQVUBKy82dnW7J5f1homqqv6NcsDJAl3e7CRGfE= github.com/lmittmann/w3 v0.10.0 h1:AjQJKfcwHSDLr7cnRbS+0Jio9xt/h1JDBAP/jvLWC58= github.com/lmittmann/w3 v0.10.0/go.mod h1:AydD3eqJiyg7tubFve39JL025kZr8QWO1lemXllK+Sw= -github.com/lucasb-eyer/go-colorful v1.0.3 h1:QIbQXiugsb+q10B+MI+7DI1oQLdmnep86tWFlaaUAac= github.com/lucasb-eyer/go-colorful v1.0.3/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= +github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= +github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= @@ -748,7 +749,6 @@ github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVc github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.11/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= @@ -770,8 +770,8 @@ github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzp github.com/mattn/go-runewidth v0.0.6/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= -github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU= -github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= +github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/go-sqlite3 v2.0.3+incompatible h1:gXHsfypPkaMZrKbD5209QV9jbUTJKjyR5WD3HYQSd+U= github.com/mattn/go-sqlite3 v2.0.3+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= @@ -885,8 +885,9 @@ github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qR github.com/pkg/term v0.0.0-20180730021639-bffc007b7fd5/go.mod h1:eCbImbZ95eXtAUIbLAuAVnBnwf83mjf6QIVH8SHYwqQ= github.com/pkg/term v1.2.0-beta.2 h1:L3y/h2jkuBVFdWiJvNfYfKmzcCnILw7mJWm2JQuMppw= github.com/pkg/term v1.2.0-beta.2/go.mod h1:E25nymQcrSllhX42Ok8MRm1+hyBdHY0dCeiKZ9jpNGw= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +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/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= @@ -899,8 +900,8 @@ github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQy github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= -github.com/prometheus/common v0.53.0 h1:U2pL9w9nmJwJDa4qqLQ3ZaePJ6ZTwt7cMD3AG3+aLCE= -github.com/prometheus/common v0.53.0/go.mod h1:BrxBKv3FWBIGXw89Mg1AeBq7FSyRzXWI3l3e7W3RN5U= +github.com/prometheus/common v0.54.0 h1:ZlZy0BgJhTwVZUn7dLOkwCZHUkrAqd3WYtcFCWnM1D8= +github.com/prometheus/common v0.54.0/go.mod h1:/TQgMJP5CuVYveyT7n/0Ix8yLNNXy9yRSkhnLTHPDIQ= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.15.0 h1:A82kmvXJq2jTu5YUhSGNlYoxh85zLnKgPz4bMZgI5Ek= @@ -920,8 +921,9 @@ github.com/retailnext/hllpp v1.0.1-0.20180308014038-101a6d2f8b52/go.mod h1:RDpi1 github.com/richardwilkes/toolbox v1.74.0 h1:TNvXxph1jJk6IQmVoZdAY9peRlL6Tv//7OpyJkjMiPI= github.com/richardwilkes/toolbox v1.74.0/go.mod h1:OFTDv8rUUsF+Hb98k9l65zu7fuKt3EEhWywv6zyJ750= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= -github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= +github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rjeczalik/notify v0.9.1/go.mod h1:rKwnCoCGeuQnwBtTSPL9Dad03Vh2n40ePRrjvIXnJho= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= @@ -1304,8 +1306,8 @@ golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.20.0 h1:4mQdhULixXKP1rwYBW0vAijoXnkTG0BLCDRzfe1idMo= -golang.org/x/oauth2 v0.20.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= +golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1401,7 +1403,6 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc 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-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220908164124-27713097b956/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.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1582,10 +1583,10 @@ google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= -google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5 h1:P8OJ/WCl/Xo4E4zoe4/bifHpSmmKwARqyqE4nW6J2GQ= -google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5/go.mod h1:RGnPtTG7r4i8sPlNyDeikXF99hMM+hN6QMm4ooG9g2g= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291 h1:AgADTJarZTBqgjiUzRgfaBchgYB3/WFTC80GPwsMcRI= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= +google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 h1:7whR9kGa5LUwFtpLm2ArCEejtnxlGeLbAyjFY8sGNFw= +google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157/go.mod h1:99sLkeliLXfdj2J75X3Ho+rrVCaJze0uwN7zDDkjPVU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 h1:Zy9XzmMEflZ/MAaA7vNcoebnRAld7FsPW1EeBB7V0m8= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= 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= @@ -1679,12 +1680,12 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt 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/apimachinery v0.26.2 h1:da1u3D5wfR5u2RpLhE/ZtZS2P7QvDgLZTi9wrNZl/tQ= -k8s.io/apimachinery v0.26.2/go.mod h1:ats7nN1LExKHvJ9TmwootT00Yz05MuYqPXEXaVeOy5I= -k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw= -k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 h1:kmDqav+P+/5e1i9tFfHq1qcF3sOrDp+YEkVDAHu7Jwk= -k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/apimachinery v0.29.3 h1:2tbx+5L7RNvqJjn7RIuIKu9XTsIZ9Z5wX2G22XAa5EU= +k8s.io/apimachinery v0.29.3/go.mod h1:hx/S4V2PNW4OMg3WizRrHutyB5la0iCUbZym+W0EQIU= +k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= +k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= diff --git a/services/omnirpc/go.mod b/services/omnirpc/go.mod index 4c47f45a62..cc32cf4b4a 100644 --- a/services/omnirpc/go.mod +++ b/services/omnirpc/go.mod @@ -16,12 +16,12 @@ require ( github.com/Soft/iter v0.1.0 github.com/brianvoe/gofakeit/v6 v6.27.0 github.com/buger/jsonparser v1.1.1 - github.com/davecgh/go-spew v1.1.1 + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/ethereum/go-ethereum v1.13.8 github.com/flowchartsman/swaggerui v0.0.0-20221017034628-909ed4f3701b github.com/gin-gonic/gin v1.10.0 github.com/go-http-utils/headers v0.0.0-20181008091004-fed159eddc2a - github.com/go-resty/resty/v2 v2.11.0 + github.com/go-resty/resty/v2 v2.13.1 github.com/goccy/go-json v0.10.2 github.com/google/uuid v1.6.0 github.com/hashicorp/go-multierror v1.1.1 @@ -45,11 +45,11 @@ require ( go.opentelemetry.io/otel v1.27.0 go.opentelemetry.io/otel/metric v1.27.0 go.opentelemetry.io/otel/trace v1.27.0 - go.uber.org/automaxprocs v1.5.2 + go.uber.org/automaxprocs v1.5.3 golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 golang.org/x/sync v0.7.0 gopkg.in/yaml.v3 v3.0.1 - k8s.io/apimachinery v0.26.2 + k8s.io/apimachinery v0.29.3 ) require ( @@ -99,7 +99,7 @@ require ( github.com/deepmap/oapi-codegen v1.8.2 // indirect github.com/dgrr/http2 v0.3.5 // indirect github.com/docker/cli v26.0.1+incompatible // indirect - github.com/docker/docker v26.0.1+incompatible // indirect + github.com/docker/docker v26.1.3+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/emirpasic/gods v1.18.1 // indirect @@ -107,7 +107,7 @@ require ( github.com/fatih/structtag v1.2.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fjl/memsize v0.0.2 // indirect - github.com/fsnotify/fsnotify v1.6.0 // indirect + github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/gabriel-vasile/mimetype v1.4.3 // indirect github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/gballet/go-verkle v0.1.1-0.20231031103413-a67434b50f46 // indirect @@ -122,8 +122,8 @@ 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/jsonpointer v0.19.5 // indirect - github.com/go-openapi/swag v0.22.3 // indirect + github.com/go-openapi/jsonpointer v0.20.2 // indirect + github.com/go-openapi/swag v0.22.9 // 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.20.0 // indirect @@ -173,7 +173,7 @@ require ( github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/mattn/go-runewidth v0.0.13 // indirect + github.com/mattn/go-runewidth v0.0.15 // indirect github.com/mattn/go-tty v0.0.3 // indirect github.com/miguelmota/go-ethereum-hdwallet v0.1.1 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect @@ -195,13 +195,13 @@ require ( github.com/pjbgf/sha1cd v0.3.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pkg/term v1.2.0-beta.2 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/client_golang v1.19.1 // indirect github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.53.0 // indirect + github.com/prometheus/common v0.54.0 // indirect github.com/prometheus/procfs v0.15.0 // indirect github.com/puzpuzpuz/xsync/v2 v2.5.1 // indirect - github.com/rivo/uniseg v0.2.0 // indirect + github.com/rivo/uniseg v0.4.7 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/rs/cors v1.8.2 // indirect github.com/rs/zerolog v1.27.0 // indirect @@ -259,8 +259,8 @@ require ( golang.org/x/text v0.16.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.22.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 // indirect google.golang.org/grpc v1.64.0 // indirect google.golang.org/protobuf v1.34.1 // indirect gopkg.in/hedzr/errors.v3 v3.1.1 // indirect @@ -268,7 +268,7 @@ require ( gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gorm.io/gorm v1.25.10 // indirect - k8s.io/klog/v2 v2.90.1 // indirect - k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 // indirect + k8s.io/klog/v2 v2.120.1 // indirect + k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect rsc.io/tmplfunc v0.0.3 // indirect ) diff --git a/services/omnirpc/go.sum b/services/omnirpc/go.sum index a6dcb4a680..1221d30ed8 100644 --- a/services/omnirpc/go.sum +++ b/services/omnirpc/go.sum @@ -19,7 +19,12 @@ cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHOb cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= -cloud.google.com/go v0.112.1 h1:uJSeirPke5UNZHIb4SxfZklVSiWWVqW4oXlETwZziwM= +cloud.google.com/go v0.114.0 h1:OIPFAdfrFDFO2ve2U7r/H5SwSbBzEdrBdE7xkgwc+kY= +cloud.google.com/go v0.114.0/go.mod h1:ZV9La5YYxctro1HTPug5lXH/GefROyW8PPD4T8n9J8E= +cloud.google.com/go/auth v0.5.1 h1:0QNO7VThG54LUzKiQxv8C6x1YX7lUrzlAa1nVLF8CIw= +cloud.google.com/go/auth v0.5.1/go.mod h1:vbZT8GjzDf3AVqCcQmqeeM32U9HBFc32vVVAbwDsa6s= +cloud.google.com/go/auth/oauth2adapt v0.2.2 h1:+TTV8aXpjeChS9M+aTtN/TjdQnzJvmzKFt//oWu7HX4= +cloud.google.com/go/auth/oauth2adapt v0.2.2/go.mod h1:wcYjgpZI9+Yu7LyYBg4pqSiaRkfEK3GQcpb7C/uyF1Q= 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= @@ -32,10 +37,12 @@ cloud.google.com/go/compute/metadata v0.3.0 h1:Tz+eQXMEqDIKRsmY3cHTL6FVaynIjX2Qx cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/iam v1.1.6 h1:bEa06k05IO4f4uJonbB5iAgKTPpABy1ayxaIZV/GHVc= -cloud.google.com/go/iam v1.1.6/go.mod h1:O0zxdPeGBoFdWW3HWmBxJsk0pfvNM/p/qa82rWOGTwI= -cloud.google.com/go/kms v1.15.7 h1:7caV9K3yIxvlQPAcaFffhlT7d1qpxjB1wHBtjWa13SM= -cloud.google.com/go/kms v1.15.7/go.mod h1:ub54lbsa6tDkUwnu4W7Yt1aAIFLnspgh0kPGToDukeI= +cloud.google.com/go/iam v1.1.8 h1:r7umDwhj+BQyz0ScZMp4QrGXjSTI3ZINnpgU2nlB/K0= +cloud.google.com/go/iam v1.1.8/go.mod h1:GvE6lyMmfxXauzNq8NbgJbeVQNspG+tcdL/W8QO1+zE= +cloud.google.com/go/kms v1.17.1 h1:5k0wXqkxL+YcXd4viQzTqCgzzVKKxzgrK+rCZJytEQs= +cloud.google.com/go/kms v1.17.1/go.mod h1:DCMnCF/apA6fZk5Cj4XsD979OyHAqFasPuA5Sd0kGlQ= +cloud.google.com/go/longrunning v0.5.7 h1:WLbHekDbjK1fVFD3ibpFFVoyizlLRl73I7YKuAKilhU= +cloud.google.com/go/longrunning v0.5.7/go.mod h1:8GClkudohy1Fxm3owmBGid8W0pSgodEMwEAztp38Xng= 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= @@ -119,8 +126,8 @@ github.com/apache/arrow/go/arrow v0.0.0-20191024131854-af6fa24be0db/go.mod h1:VT github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= 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/aws/aws-sdk-go v1.43.16 h1:Y7wBby44f+tINqJjw5fLH3vA+gFq4uMITIKqditwM14= -github.com/aws/aws-sdk-go v1.43.16/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= +github.com/aws/aws-sdk-go v1.53.16 h1:8oZjKQO/ml1WLUZw5hvF7pvYjPf8o9f57Wldoy/q9Qc= +github.com/aws/aws-sdk-go v1.53.16/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= github.com/aws/aws-sdk-go-v2 v1.2.0/go.mod h1:zEQs02YRBw1DjK0PoJv3ygDYOFTre1ejlJWl8FwAuQo= github.com/aws/aws-sdk-go-v2 v1.21.2 h1:+LXZ0sgo8quN9UOKXXzAWRT3FWd4NxeXWOZom9pE7GA= github.com/aws/aws-sdk-go-v2 v1.21.2/go.mod h1:ErQhvNuEMhJjweavOYhxVkn2RUx7kQXVATHrjKtxIpM= @@ -274,8 +281,8 @@ github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233/go.mod h1:geZJ github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA= github.com/crate-crypto/go-kzg-4844 v0.7.0/go.mod h1:1kMhvPgI0Ky3yIa+9lFySEBUBXkYxeOi8ZF1sYioxhc= 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/creack/pty v1.1.21 h1:1/QdRyBaHHJP61QkWMXlOIBfsgdDeeKfK8SYVUWJKf0= +github.com/creack/pty v1.1.21/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4= github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= @@ -285,8 +292,9 @@ github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e/go.mod h1:IJg github.com/dave/jennifer v1.2.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg= github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea/go.mod h1:93vsz/8Wt4joVM7c2AVqh+YRMiUSc14yDtF28KmMOgQ= github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80NsVHagjM= github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= @@ -308,8 +316,8 @@ github.com/dlclark/regexp2 v1.2.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55k github.com/docker/cli v26.0.1+incompatible h1:eZDuplk2jYqgUkNLDYwTBxqmY9cM3yHnmN6OIUEjL3U= github.com/docker/cli v26.0.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/docker v1.4.2-0.20180625184442-8e610b2b55bf/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v26.0.1+incompatible h1:t39Hm6lpXuXtgkF0dm1t9a5HkbUfdGy6XbWexmGr+hA= -github.com/docker/docker v26.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v26.1.3+incompatible h1:lLCzRbrVZrljpVNobJu1J2FHk8V0s4BawoZippkc+xo= +github.com/docker/docker v26.1.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= @@ -355,8 +363,8 @@ github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/ github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= -github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= +github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= @@ -408,7 +416,6 @@ github.com/go-http-utils/headers v0.0.0-20181008091004-fed159eddc2a/go.mod h1:I7 github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= @@ -420,11 +427,12 @@ github.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dT 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/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY= github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= +github.com/go-openapi/jsonpointer v0.20.2 h1:mQc3nmndL8ZBzStEo3JYF8wzmeWffDH4VbXz58sAx6Q= +github.com/go-openapi/jsonpointer v0.20.2/go.mod h1:bHen+N0u1KEO3YlmqOjTT9Adn1RfD91Ar825/PuiRVs= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g= -github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= +github.com/go-openapi/swag v0.22.9 h1:XX2DssF+mQKM2DHsbgZK74y/zj4mo9I99+89xUmuZCE= +github.com/go-openapi/swag v0.22.9/go.mod h1:3/OXnFfnMAwBD099SwYRk7GD3xOrr1iL7d/XNLXVVwE= 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= @@ -437,8 +445,8 @@ 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.20.0 h1:K9ISHbSaI0lyB2eWMPJo+kOS/FBExVwjEviJTixqxL8= github.com/go-playground/validator/v10 v10.20.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= -github.com/go-resty/resty/v2 v2.11.0 h1:i7jMfNOJYMp69lq7qozJP+bjgzfAzeOhuGlyDrqxT/8= -github.com/go-resty/resty/v2 v2.11.0/go.mod h1:iiP/OpA0CkcL3IGt1O0+/SIItFUbkkyw5BGXiVdTu+A= +github.com/go-resty/resty/v2 v2.13.1 h1:x+LHXBI2nMB1vqndymf26quycC4aggYJ7DECYbiz03g= +github.com/go-resty/resty/v2 v2.13.1/go.mod h1:GznXlLxkq6Nh4sU59rPmUw3VtgpO3aS96ORAI6Q7d+0= github.com/go-sourcemap/sourcemap v2.1.2+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc= @@ -552,8 +560,8 @@ github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfF github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gax-go/v2 v2.12.2 h1:mhN09QQW1jEWeMF74zGR81R30z4VJzjZsfkUhuHF+DA= -github.com/googleapis/gax-go/v2 v2.12.2/go.mod h1:61M8vcyyXR2kqKFxKrfA22jaA8JGF7Dc8App1U3H6jc= +github.com/googleapis/gax-go/v2 v2.12.4 h1:9gWcmF85Wvq4ryPFvGFaOgPIs1AQX0d0bcbGw4Z96qg= +github.com/googleapis/gax-go/v2 v2.12.4/go.mod h1:KYEYLorsnIGDi/rPC8b5TdlB9kbKoFubselGIoBMCwI= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= @@ -776,8 +784,8 @@ github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.6/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU= -github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= +github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/go-sqlite3 v2.0.3+incompatible h1:gXHsfypPkaMZrKbD5209QV9jbUTJKjyR5WD3HYQSd+U= github.com/mattn/go-sqlite3 v2.0.3+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= @@ -907,8 +915,9 @@ github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qR github.com/pkg/term v0.0.0-20180730021639-bffc007b7fd5/go.mod h1:eCbImbZ95eXtAUIbLAuAVnBnwf83mjf6QIVH8SHYwqQ= github.com/pkg/term v1.2.0-beta.2 h1:L3y/h2jkuBVFdWiJvNfYfKmzcCnILw7mJWm2JQuMppw= github.com/pkg/term v1.2.0-beta.2/go.mod h1:E25nymQcrSllhX42Ok8MRm1+hyBdHY0dCeiKZ9jpNGw= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +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/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g= github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= @@ -923,8 +932,8 @@ github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQy github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= -github.com/prometheus/common v0.53.0 h1:U2pL9w9nmJwJDa4qqLQ3ZaePJ6ZTwt7cMD3AG3+aLCE= -github.com/prometheus/common v0.53.0/go.mod h1:BrxBKv3FWBIGXw89Mg1AeBq7FSyRzXWI3l3e7W3RN5U= +github.com/prometheus/common v0.54.0 h1:ZlZy0BgJhTwVZUn7dLOkwCZHUkrAqd3WYtcFCWnM1D8= +github.com/prometheus/common v0.54.0/go.mod h1:/TQgMJP5CuVYveyT7n/0Ix8yLNNXy9yRSkhnLTHPDIQ= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.15.0 h1:A82kmvXJq2jTu5YUhSGNlYoxh85zLnKgPz4bMZgI5Ek= @@ -941,8 +950,9 @@ github.com/regen-network/protobuf v1.3.3-alpha.regen.1/go.mod h1:2DjTFR1HhMQhiWC github.com/retailnext/hllpp v1.0.1-0.20180308014038-101a6d2f8b52/go.mod h1:RDpi1RftBQPUCDRw6SmxeaREsAaRKnOclghuzp/WRzc= github.com/richardwilkes/toolbox v1.74.0 h1:TNvXxph1jJk6IQmVoZdAY9peRlL6Tv//7OpyJkjMiPI= github.com/richardwilkes/toolbox v1.74.0/go.mod h1:OFTDv8rUUsF+Hb98k9l65zu7fuKt3EEhWywv6zyJ750= -github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= +github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rjeczalik/notify v0.9.1/go.mod h1:rKwnCoCGeuQnwBtTSPL9Dad03Vh2n40ePRrjvIXnJho= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= @@ -1162,8 +1172,8 @@ go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= -go.uber.org/automaxprocs v1.5.2 h1:2LxUOGiR3O6tw8ui5sZa2LAaHnsviZdVOUZw4fvbnME= -go.uber.org/automaxprocs v1.5.2/go.mod h1:eRbA25aqJrxAbsLO0xy5jVwPt7FQnRgjW+efnwa1WM0= +go.uber.org/automaxprocs v1.5.3 h1:kWazyxZUrS3Gs4qUpbwo5kEIMGe/DAvi5Z4tl2NW4j8= +go.uber.org/automaxprocs v1.5.3/go.mod h1:eRbA25aqJrxAbsLO0xy5jVwPt7FQnRgjW+efnwa1WM0= go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= go.uber.org/goleak v1.1.11-0.20210813005559-691160354723/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= @@ -1206,7 +1216,8 @@ golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1307,7 +1318,8 @@ 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.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -1319,8 +1331,8 @@ golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.20.0 h1:4mQdhULixXKP1rwYBW0vAijoXnkTG0BLCDRzfe1idMo= -golang.org/x/oauth2 v0.20.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= +golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1417,7 +1429,6 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc 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-20220908164124-27713097b956/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.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1425,8 +1436,9 @@ 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= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= @@ -1436,7 +1448,8 @@ 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.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= -golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1452,7 +1465,8 @@ 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.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= 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= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1460,7 +1474,6 @@ golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -1556,8 +1569,8 @@ google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz513 google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= -google.golang.org/api v0.169.0 h1:QwWPy71FgMWqJN/l6jVlFHUa29a7dcUy02I8o799nPY= -google.golang.org/api v0.169.0/go.mod h1:gpNOiMA2tZ4mf5R9Iwf4rK/Dcz0fbdIgWYWVoxmsyLg= +google.golang.org/api v0.183.0 h1:PNMeRDwo1pJdgNcFQ9GstuLe/noWKIc89pRWRLMvLwE= +google.golang.org/api v0.183.0/go.mod h1:q43adC5/pHoSZTx5h2mSmdF7NcyfW9JuDyIOJAgS9ZQ= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1606,12 +1619,12 @@ google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= -google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de h1:F6qOa9AZTYJXOUEr4jDysRDLrm4PHePlge4v4TGAlxY= -google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:VUhTRKeHn9wwcdrk73nvdC9gF178Tzhmt/qyaFcPLSo= -google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5 h1:P8OJ/WCl/Xo4E4zoe4/bifHpSmmKwARqyqE4nW6J2GQ= -google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5/go.mod h1:RGnPtTG7r4i8sPlNyDeikXF99hMM+hN6QMm4ooG9g2g= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291 h1:AgADTJarZTBqgjiUzRgfaBchgYB3/WFTC80GPwsMcRI= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= +google.golang.org/genproto v0.0.0-20240528184218-531527333157 h1:u7WMYrIrVvs0TF5yaKwKNbcJyySYf+HAIFXxWltJOXE= +google.golang.org/genproto v0.0.0-20240528184218-531527333157/go.mod h1:ubQlAQnzejB8uZzszhrTCU2Fyp6Vi7ZE5nn0c3W8+qQ= +google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 h1:7whR9kGa5LUwFtpLm2ArCEejtnxlGeLbAyjFY8sGNFw= +google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157/go.mod h1:99sLkeliLXfdj2J75X3Ho+rrVCaJze0uwN7zDDkjPVU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 h1:Zy9XzmMEflZ/MAaA7vNcoebnRAld7FsPW1EeBB7V0m8= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= 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= @@ -1702,12 +1715,12 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt 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/apimachinery v0.26.2 h1:da1u3D5wfR5u2RpLhE/ZtZS2P7QvDgLZTi9wrNZl/tQ= -k8s.io/apimachinery v0.26.2/go.mod h1:ats7nN1LExKHvJ9TmwootT00Yz05MuYqPXEXaVeOy5I= -k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw= -k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 h1:kmDqav+P+/5e1i9tFfHq1qcF3sOrDp+YEkVDAHu7Jwk= -k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/apimachinery v0.29.3 h1:2tbx+5L7RNvqJjn7RIuIKu9XTsIZ9Z5wX2G22XAa5EU= +k8s.io/apimachinery v0.29.3/go.mod h1:hx/S4V2PNW4OMg3WizRrHutyB5la0iCUbZym+W0EQIU= +k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= +k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= lukechampine.com/blake3 v1.2.1 h1:YuqqRuaqsGV71BV/nm9xlI0MKUv4QC54jQnBChWbGnI= lukechampine.com/blake3 v1.2.1/go.mod h1:0OFRp7fBtAylGVCO40o87sbupkyIGgbpv1+M1k1LM6k= nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= diff --git a/services/rfq/go.mod b/services/rfq/go.mod index 7878b859ec..62c777dd8e 100644 --- a/services/rfq/go.mod +++ b/services/rfq/go.mod @@ -10,7 +10,7 @@ require ( github.com/brianvoe/gofakeit/v6 v6.27.0 github.com/ethereum/go-ethereum v1.13.8 github.com/gin-gonic/gin v1.10.0 - github.com/go-resty/resty/v2 v2.11.0 + github.com/go-resty/resty/v2 v2.13.1 github.com/google/uuid v1.6.0 github.com/ipfs/go-log v1.0.5 github.com/jellydator/ttlcache/v3 v3.1.1 @@ -42,9 +42,13 @@ require ( ) require ( + cloud.google.com/go v0.114.0 // indirect + cloud.google.com/go/auth v0.5.1 // indirect + cloud.google.com/go/auth/oauth2adapt v0.2.2 // indirect cloud.google.com/go/compute/metadata v0.3.0 // indirect - cloud.google.com/go/iam v1.1.6 // indirect - cloud.google.com/go/kms v1.15.7 // indirect + cloud.google.com/go/iam v1.1.8 // indirect + cloud.google.com/go/kms v1.17.1 // indirect + cloud.google.com/go/longrunning v0.5.7 // indirect dario.cat/mergo v1.0.0 // indirect github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect github.com/DataDog/zstd v1.5.2 // indirect @@ -106,13 +110,13 @@ require ( github.com/crate-crypto/go-kzg-4844 v0.7.0 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e // indirect - github.com/davecgh/go-spew v1.1.1 // indirect + 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/deepmap/oapi-codegen v1.8.2 // indirect github.com/dgrr/http2 v0.3.5 // indirect github.com/docker/cli v26.0.1+incompatible // indirect - github.com/docker/docker v26.0.1+incompatible // indirect + github.com/docker/docker v26.1.3+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/dubonzi/otelresty v1.2.0 // indirect @@ -122,7 +126,7 @@ require ( github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fjl/memsize v0.0.2 // indirect github.com/flowchartsman/swaggerui v0.0.0-20221017034628-909ed4f3701b // indirect - github.com/fsnotify/fsnotify v1.6.0 // indirect + github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/gabriel-vasile/mimetype v1.4.3 // indirect github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/gballet/go-verkle v0.1.1-0.20231031103413-a67434b50f46 // indirect @@ -138,10 +142,10 @@ 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/jsonpointer v0.19.5 // indirect - github.com/go-openapi/jsonreference v0.20.0 // indirect - github.com/go-openapi/spec v0.20.4 // indirect - github.com/go-openapi/swag v0.22.3 // indirect + github.com/go-openapi/jsonpointer v0.20.2 // indirect + github.com/go-openapi/jsonreference v0.20.4 // indirect + github.com/go-openapi/spec v0.20.14 // indirect + github.com/go-openapi/swag v0.22.9 // 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.20.0 // indirect @@ -157,7 +161,7 @@ require ( github.com/google/s2a-go v0.1.7 // indirect github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect - github.com/googleapis/gax-go/v2 v2.12.2 // indirect + github.com/googleapis/gax-go/v2 v2.12.4 // indirect github.com/gorilla/websocket v1.5.1 // indirect github.com/grafana/otel-profiling-go v0.5.1 // indirect github.com/grafana/pyroscope-go v1.1.1 // indirect @@ -199,7 +203,7 @@ require ( github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/mattn/go-runewidth v0.0.13 // indirect + github.com/mattn/go-runewidth v0.0.15 // indirect github.com/mattn/go-sqlite3 v2.0.3+incompatible // indirect github.com/mattn/go-tty v0.0.3 // indirect github.com/miguelmota/go-ethereum-hdwallet v0.1.1 // indirect @@ -223,15 +227,15 @@ require ( github.com/pjbgf/sha1cd v0.3.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pkg/term v1.2.0-beta.2 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/client_golang v1.19.1 // indirect github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.53.0 // indirect + github.com/prometheus/common v0.54.0 // indirect github.com/prometheus/procfs v0.15.0 // indirect github.com/puzpuzpuz/xsync v1.4.3 // indirect github.com/rbretecher/go-postman-collection v0.9.0 // indirect github.com/richardwilkes/toolbox v1.74.0 // indirect - github.com/rivo/uniseg v0.2.0 // indirect + github.com/rivo/uniseg v0.4.7 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/rs/cors v1.8.2 // indirect github.com/rung/go-safecast v1.0.1 // indirect @@ -286,25 +290,25 @@ require ( golang.org/x/crypto v0.24.0 // indirect golang.org/x/mod v0.18.0 // indirect golang.org/x/net v0.26.0 // indirect - golang.org/x/oauth2 v0.20.0 // indirect + golang.org/x/oauth2 v0.21.0 // indirect golang.org/x/sys v0.21.0 // indirect golang.org/x/term v0.21.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.22.0 // indirect - google.golang.org/api v0.169.0 // indirect - google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291 // indirect + google.golang.org/api v0.183.0 // indirect + google.golang.org/genproto v0.0.0-20240528184218-531527333157 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 // indirect google.golang.org/grpc v1.64.0 // indirect google.golang.org/protobuf v1.34.1 // indirect gopkg.in/hedzr/errors.v3 v3.1.1 // indirect gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apimachinery v0.26.2 // indirect - k8s.io/klog/v2 v2.90.1 // indirect - k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 // indirect + k8s.io/apimachinery v0.29.3 // indirect + k8s.io/klog/v2 v2.120.1 // indirect + k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect rsc.io/tmplfunc v0.0.3 // indirect ) diff --git a/services/rfq/go.sum b/services/rfq/go.sum index 989f7b7505..95b2917ae9 100644 --- a/services/rfq/go.sum +++ b/services/rfq/go.sum @@ -19,8 +19,12 @@ cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHOb cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= -cloud.google.com/go v0.112.1 h1:uJSeirPke5UNZHIb4SxfZklVSiWWVqW4oXlETwZziwM= -cloud.google.com/go v0.112.1/go.mod h1:+Vbu+Y1UU+I1rjmzeMOb/8RfkKJK2Gyxi1X6jJCZLo4= +cloud.google.com/go v0.114.0 h1:OIPFAdfrFDFO2ve2U7r/H5SwSbBzEdrBdE7xkgwc+kY= +cloud.google.com/go v0.114.0/go.mod h1:ZV9La5YYxctro1HTPug5lXH/GefROyW8PPD4T8n9J8E= +cloud.google.com/go/auth v0.5.1 h1:0QNO7VThG54LUzKiQxv8C6x1YX7lUrzlAa1nVLF8CIw= +cloud.google.com/go/auth v0.5.1/go.mod h1:vbZT8GjzDf3AVqCcQmqeeM32U9HBFc32vVVAbwDsa6s= +cloud.google.com/go/auth/oauth2adapt v0.2.2 h1:+TTV8aXpjeChS9M+aTtN/TjdQnzJvmzKFt//oWu7HX4= +cloud.google.com/go/auth/oauth2adapt v0.2.2/go.mod h1:wcYjgpZI9+Yu7LyYBg4pqSiaRkfEK3GQcpb7C/uyF1Q= 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= @@ -32,10 +36,12 @@ cloud.google.com/go/compute/metadata v0.3.0 h1:Tz+eQXMEqDIKRsmY3cHTL6FVaynIjX2Qx cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/iam v1.1.6 h1:bEa06k05IO4f4uJonbB5iAgKTPpABy1ayxaIZV/GHVc= -cloud.google.com/go/iam v1.1.6/go.mod h1:O0zxdPeGBoFdWW3HWmBxJsk0pfvNM/p/qa82rWOGTwI= -cloud.google.com/go/kms v1.15.7 h1:7caV9K3yIxvlQPAcaFffhlT7d1qpxjB1wHBtjWa13SM= -cloud.google.com/go/kms v1.15.7/go.mod h1:ub54lbsa6tDkUwnu4W7Yt1aAIFLnspgh0kPGToDukeI= +cloud.google.com/go/iam v1.1.8 h1:r7umDwhj+BQyz0ScZMp4QrGXjSTI3ZINnpgU2nlB/K0= +cloud.google.com/go/iam v1.1.8/go.mod h1:GvE6lyMmfxXauzNq8NbgJbeVQNspG+tcdL/W8QO1+zE= +cloud.google.com/go/kms v1.17.1 h1:5k0wXqkxL+YcXd4viQzTqCgzzVKKxzgrK+rCZJytEQs= +cloud.google.com/go/kms v1.17.1/go.mod h1:DCMnCF/apA6fZk5Cj4XsD979OyHAqFasPuA5Sd0kGlQ= +cloud.google.com/go/longrunning v0.5.7 h1:WLbHekDbjK1fVFD3ibpFFVoyizlLRl73I7YKuAKilhU= +cloud.google.com/go/longrunning v0.5.7/go.mod h1:8GClkudohy1Fxm3owmBGid8W0pSgodEMwEAztp38Xng= 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= @@ -96,8 +102,6 @@ github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8 github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/ProtonMail/go-crypto v1.0.0 h1:LRuvITjQWX+WIfr930YHG2HNfjR1uOfyf5vE0kC2U78= github.com/ProtonMail/go-crypto v1.0.0/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= -github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/Shopify/goreferrer v0.0.0-20181106222321-ec9c9a553398/go.mod h1:a1uqRtAwp2Xwc6WNPJEufxJ7fx3npB4UV/JOLmbu5I0= github.com/Soft/iter v0.1.0 h1:fEWgwubt0cnnJo3Vd2IzYcaJ5ORI/dJDkaC3loI7Ys8= github.com/Soft/iter v0.1.0/go.mod h1:8brXuNcweP5AZyF0Yzjvje+IR/6RNFyyLF6DTMiPXRc= @@ -129,8 +133,8 @@ github.com/apache/arrow/go/arrow v0.0.0-20191024131854-af6fa24be0db/go.mod h1:VT github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= 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/aws/aws-sdk-go v1.43.16 h1:Y7wBby44f+tINqJjw5fLH3vA+gFq4uMITIKqditwM14= -github.com/aws/aws-sdk-go v1.43.16/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= +github.com/aws/aws-sdk-go v1.53.16 h1:8oZjKQO/ml1WLUZw5hvF7pvYjPf8o9f57Wldoy/q9Qc= +github.com/aws/aws-sdk-go v1.53.16/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= github.com/aws/aws-sdk-go-v2 v1.2.0/go.mod h1:zEQs02YRBw1DjK0PoJv3ygDYOFTre1ejlJWl8FwAuQo= github.com/aws/aws-sdk-go-v2 v1.16.5/go.mod h1:Wh7MEsmEApyL5hrWzpDkba4gwAPc5/piwLVLFnCxp48= github.com/aws/aws-sdk-go-v2 v1.21.2 h1:+LXZ0sgo8quN9UOKXXzAWRT3FWd4NxeXWOZom9pE7GA= @@ -287,8 +291,8 @@ github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233/go.mod h1:geZJ github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA= github.com/crate-crypto/go-kzg-4844 v0.7.0/go.mod h1:1kMhvPgI0Ky3yIa+9lFySEBUBXkYxeOi8ZF1sYioxhc= 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/creack/pty v1.1.21 h1:1/QdRyBaHHJP61QkWMXlOIBfsgdDeeKfK8SYVUWJKf0= +github.com/creack/pty v1.1.21/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4= github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= @@ -298,8 +302,9 @@ github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e/go.mod h1:IJg github.com/dave/jennifer v1.2.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg= github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea/go.mod h1:93vsz/8Wt4joVM7c2AVqh+YRMiUSc14yDtF28KmMOgQ= github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80NsVHagjM= github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= @@ -321,8 +326,8 @@ github.com/dlclark/regexp2 v1.2.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55k github.com/docker/cli v26.0.1+incompatible h1:eZDuplk2jYqgUkNLDYwTBxqmY9cM3yHnmN6OIUEjL3U= github.com/docker/cli v26.0.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/docker v1.4.2-0.20180625184442-8e610b2b55bf/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v26.0.1+incompatible h1:t39Hm6lpXuXtgkF0dm1t9a5HkbUfdGy6XbWexmGr+hA= -github.com/docker/docker v26.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v26.1.3+incompatible h1:lLCzRbrVZrljpVNobJu1J2FHk8V0s4BawoZippkc+xo= +github.com/docker/docker v26.1.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= @@ -370,8 +375,8 @@ github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/ github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= -github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= +github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= @@ -425,7 +430,6 @@ github.com/go-http-utils/headers v0.0.0-20181008091004-fed159eddc2a/go.mod h1:I7 github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= @@ -437,18 +441,16 @@ github.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dT 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/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY= github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonreference v0.19.6/go.mod h1:diGHMEHg2IqXZGKxqyvWdfWU/aim5Dprw5bqpKkTvns= -github.com/go-openapi/jsonreference v0.20.0 h1:MYlu0sBgChmCfJxxUKZ8g1cPWFOB37YSZqewK7OKeyA= -github.com/go-openapi/jsonreference v0.20.0/go.mod h1:Ag74Ico3lPc+zR+qjn4XBUmXymS4zJbYVCZmcgkasdo= -github.com/go-openapi/spec v0.20.4 h1:O8hJrt0UMnhHcluhIdUgCLRWyM2x7QkBXRvOs7m+O1M= -github.com/go-openapi/spec v0.20.4/go.mod h1:faYFR1CvsJZ0mNsmsphTMSoRrNV3TEDoAM7FOEWeq8I= +github.com/go-openapi/jsonpointer v0.20.2 h1:mQc3nmndL8ZBzStEo3JYF8wzmeWffDH4VbXz58sAx6Q= +github.com/go-openapi/jsonpointer v0.20.2/go.mod h1:bHen+N0u1KEO3YlmqOjTT9Adn1RfD91Ar825/PuiRVs= +github.com/go-openapi/jsonreference v0.20.4 h1:bKlDxQxQJgwpUSgOENiMPzCTBVuc7vTdXSSgNeAhojU= +github.com/go-openapi/jsonreference v0.20.4/go.mod h1:5pZJyJP2MnYCpoeoMAql78cCHauHj0V9Lhc506VOpw4= +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/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.19.15/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= -github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g= -github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= +github.com/go-openapi/swag v0.22.9 h1:XX2DssF+mQKM2DHsbgZK74y/zj4mo9I99+89xUmuZCE= +github.com/go-openapi/swag v0.22.9/go.mod h1:3/OXnFfnMAwBD099SwYRk7GD3xOrr1iL7d/XNLXVVwE= 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= @@ -461,8 +463,8 @@ 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.20.0 h1:K9ISHbSaI0lyB2eWMPJo+kOS/FBExVwjEviJTixqxL8= github.com/go-playground/validator/v10 v10.20.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= -github.com/go-resty/resty/v2 v2.11.0 h1:i7jMfNOJYMp69lq7qozJP+bjgzfAzeOhuGlyDrqxT/8= -github.com/go-resty/resty/v2 v2.11.0/go.mod h1:iiP/OpA0CkcL3IGt1O0+/SIItFUbkkyw5BGXiVdTu+A= +github.com/go-resty/resty/v2 v2.13.1 h1:x+LHXBI2nMB1vqndymf26quycC4aggYJ7DECYbiz03g= +github.com/go-resty/resty/v2 v2.13.1/go.mod h1:GznXlLxkq6Nh4sU59rPmUw3VtgpO3aS96ORAI6Q7d+0= github.com/go-sourcemap/sourcemap v2.1.2+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc= @@ -578,8 +580,8 @@ github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfF github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gax-go/v2 v2.12.2 h1:mhN09QQW1jEWeMF74zGR81R30z4VJzjZsfkUhuHF+DA= -github.com/googleapis/gax-go/v2 v2.12.2/go.mod h1:61M8vcyyXR2kqKFxKrfA22jaA8JGF7Dc8App1U3H6jc= +github.com/googleapis/gax-go/v2 v2.12.4 h1:9gWcmF85Wvq4ryPFvGFaOgPIs1AQX0d0bcbGw4Z96qg= +github.com/googleapis/gax-go/v2 v2.12.4/go.mod h1:KYEYLorsnIGDi/rPC8b5TdlB9kbKoFubselGIoBMCwI= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= @@ -772,7 +774,6 @@ github.com/lmittmann/w3 v0.10.0/go.mod h1:AydD3eqJiyg7tubFve39JL025kZr8QWO1lemXl github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/matryer/moq v0.0.0-20190312154309-6cfb0558e1bd/go.mod h1:9ELz6aaclSIGnZBoaSLZ3NAl1VTufbOrXBPvtcy6WiQ= @@ -802,8 +803,8 @@ github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.6/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU= -github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= +github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/go-sqlite3 v2.0.3+incompatible h1:gXHsfypPkaMZrKbD5209QV9jbUTJKjyR5WD3HYQSd+U= github.com/mattn/go-sqlite3 v2.0.3+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= @@ -869,7 +870,6 @@ github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxzi github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= github.com/neverlee/keymutex v0.0.0-20171121013845-f593aa834bf9 h1:UfW5pM66x0MWE72ySrpd2Ymrn+b62kNHirozKkY3ojE= github.com/neverlee/keymutex v0.0.0-20171121013845-f593aa834bf9/go.mod h1:3hf2IoUXDKjCg/EuqSLUB5TY8StGS3haWYJiqzP907c= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nsmithuk/local-kms v0.0.0-20220503165244-1bbbfed09b08 h1:Jt0FS0td/3yEMxXoiCmwShR+LfzzVd7/MMdZo4121u8= github.com/nsmithuk/local-kms v0.0.0-20220503165244-1bbbfed09b08/go.mod h1:F0zq7SoYkgpbXrZcXsf+S6nvbRjczBkJrMjwTAYb7e8= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= @@ -932,8 +932,9 @@ github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qR github.com/pkg/term v0.0.0-20180730021639-bffc007b7fd5/go.mod h1:eCbImbZ95eXtAUIbLAuAVnBnwf83mjf6QIVH8SHYwqQ= github.com/pkg/term v1.2.0-beta.2 h1:L3y/h2jkuBVFdWiJvNfYfKmzcCnILw7mJWm2JQuMppw= github.com/pkg/term v1.2.0-beta.2/go.mod h1:E25nymQcrSllhX42Ok8MRm1+hyBdHY0dCeiKZ9jpNGw= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +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/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= @@ -946,8 +947,8 @@ github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQy github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= -github.com/prometheus/common v0.53.0 h1:U2pL9w9nmJwJDa4qqLQ3ZaePJ6ZTwt7cMD3AG3+aLCE= -github.com/prometheus/common v0.53.0/go.mod h1:BrxBKv3FWBIGXw89Mg1AeBq7FSyRzXWI3l3e7W3RN5U= +github.com/prometheus/common v0.54.0 h1:ZlZy0BgJhTwVZUn7dLOkwCZHUkrAqd3WYtcFCWnM1D8= +github.com/prometheus/common v0.54.0/go.mod h1:/TQgMJP5CuVYveyT7n/0Ix8yLNNXy9yRSkhnLTHPDIQ= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.15.0 h1:A82kmvXJq2jTu5YUhSGNlYoxh85zLnKgPz4bMZgI5Ek= @@ -964,8 +965,9 @@ github.com/regen-network/protobuf v1.3.3-alpha.regen.1/go.mod h1:2DjTFR1HhMQhiWC github.com/retailnext/hllpp v1.0.1-0.20180308014038-101a6d2f8b52/go.mod h1:RDpi1RftBQPUCDRw6SmxeaREsAaRKnOclghuzp/WRzc= github.com/richardwilkes/toolbox v1.74.0 h1:TNvXxph1jJk6IQmVoZdAY9peRlL6Tv//7OpyJkjMiPI= github.com/richardwilkes/toolbox v1.74.0/go.mod h1:OFTDv8rUUsF+Hb98k9l65zu7fuKt3EEhWywv6zyJ750= -github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= +github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rjeczalik/notify v0.9.1/go.mod h1:rKwnCoCGeuQnwBtTSPL9Dad03Vh2n40ePRrjvIXnJho= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= @@ -1234,7 +1236,8 @@ golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1327,7 +1330,6 @@ golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210220033124-5f55cee0dc0d/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM= golang.org/x/net v0.0.0-20211008194852-3b03d305991f/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= @@ -1338,7 +1340,8 @@ golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -1350,8 +1353,8 @@ golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.20.0 h1:4mQdhULixXKP1rwYBW0vAijoXnkTG0BLCDRzfe1idMo= -golang.org/x/oauth2 v0.20.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= +golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1427,7 +1430,6 @@ golang.org/x/sys v0.0.0-20210316164454-77fc1eacc6aa/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210420205809-ac73e9fd8988/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1449,7 +1451,6 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc 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-20220908164124-27713097b956/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.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1457,8 +1458,9 @@ 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= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= @@ -1468,7 +1470,8 @@ 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.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= -golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1484,7 +1487,8 @@ 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.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= 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= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1492,7 +1496,6 @@ golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -1588,8 +1591,8 @@ google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz513 google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= -google.golang.org/api v0.169.0 h1:QwWPy71FgMWqJN/l6jVlFHUa29a7dcUy02I8o799nPY= -google.golang.org/api v0.169.0/go.mod h1:gpNOiMA2tZ4mf5R9Iwf4rK/Dcz0fbdIgWYWVoxmsyLg= +google.golang.org/api v0.183.0 h1:PNMeRDwo1pJdgNcFQ9GstuLe/noWKIc89pRWRLMvLwE= +google.golang.org/api v0.183.0/go.mod h1:q43adC5/pHoSZTx5h2mSmdF7NcyfW9JuDyIOJAgS9ZQ= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1638,12 +1641,12 @@ google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= -google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de h1:F6qOa9AZTYJXOUEr4jDysRDLrm4PHePlge4v4TGAlxY= -google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:VUhTRKeHn9wwcdrk73nvdC9gF178Tzhmt/qyaFcPLSo= -google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5 h1:P8OJ/WCl/Xo4E4zoe4/bifHpSmmKwARqyqE4nW6J2GQ= -google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5/go.mod h1:RGnPtTG7r4i8sPlNyDeikXF99hMM+hN6QMm4ooG9g2g= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291 h1:AgADTJarZTBqgjiUzRgfaBchgYB3/WFTC80GPwsMcRI= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= +google.golang.org/genproto v0.0.0-20240528184218-531527333157 h1:u7WMYrIrVvs0TF5yaKwKNbcJyySYf+HAIFXxWltJOXE= +google.golang.org/genproto v0.0.0-20240528184218-531527333157/go.mod h1:ubQlAQnzejB8uZzszhrTCU2Fyp6Vi7ZE5nn0c3W8+qQ= +google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 h1:7whR9kGa5LUwFtpLm2ArCEejtnxlGeLbAyjFY8sGNFw= +google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157/go.mod h1:99sLkeliLXfdj2J75X3Ho+rrVCaJze0uwN7zDDkjPVU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 h1:Zy9XzmMEflZ/MAaA7vNcoebnRAld7FsPW1EeBB7V0m8= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= 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= @@ -1684,7 +1687,6 @@ gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLks gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= 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= @@ -1714,7 +1716,6 @@ gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20191120175047-4206685974f2/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= @@ -1737,12 +1738,12 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt 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/apimachinery v0.26.2 h1:da1u3D5wfR5u2RpLhE/ZtZS2P7QvDgLZTi9wrNZl/tQ= -k8s.io/apimachinery v0.26.2/go.mod h1:ats7nN1LExKHvJ9TmwootT00Yz05MuYqPXEXaVeOy5I= -k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw= -k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 h1:kmDqav+P+/5e1i9tFfHq1qcF3sOrDp+YEkVDAHu7Jwk= -k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/apimachinery v0.29.3 h1:2tbx+5L7RNvqJjn7RIuIKu9XTsIZ9Z5wX2G22XAa5EU= +k8s.io/apimachinery v0.29.3/go.mod h1:hx/S4V2PNW4OMg3WizRrHutyB5la0iCUbZym+W0EQIU= +k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= +k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= lukechampine.com/blake3 v1.2.1 h1:YuqqRuaqsGV71BV/nm9xlI0MKUv4QC54jQnBChWbGnI= lukechampine.com/blake3 v1.2.1/go.mod h1:0OFRp7fBtAylGVCO40o87sbupkyIGgbpv1+M1k1LM6k= nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= diff --git a/services/scribe/go.mod b/services/scribe/go.mod index 60c7f9cd75..a5dcdb2966 100644 --- a/services/scribe/go.mod +++ b/services/scribe/go.mod @@ -26,12 +26,12 @@ require ( github.com/aws/smithy-go v1.15.0 github.com/benbjohnson/immutable v0.4.3 github.com/brianvoe/gofakeit/v6 v6.27.0 - github.com/davecgh/go-spew v1.1.1 + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/ethereum/go-ethereum v1.13.8 github.com/friendsofgo/graphiql v0.2.2 github.com/gin-gonic/gin v1.10.0 github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 - github.com/hashicorp/consul/sdk v0.8.0 + github.com/hashicorp/consul/sdk v0.14.0 github.com/hashicorp/golang-lru v1.0.2 github.com/integralist/go-findroot v0.0.0-20160518114804-ac90681525dc github.com/ipfs/go-log v1.0.5 @@ -58,16 +58,16 @@ require ( go.opentelemetry.io/otel/trace v1.27.0 go.uber.org/atomic v1.11.0 golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 - golang.org/x/oauth2 v0.20.0 + golang.org/x/oauth2 v0.21.0 golang.org/x/sync v0.7.0 - google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5 + google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 google.golang.org/grpc v1.64.0 google.golang.org/protobuf v1.34.1 gopkg.in/yaml.v2 v2.4.0 gorm.io/driver/mysql v1.5.6 gorm.io/driver/sqlite v1.5.6 gorm.io/gorm v1.25.10 - k8s.io/apimachinery v0.26.2 + k8s.io/apimachinery v0.29.3 ) require ( @@ -127,18 +127,18 @@ require ( github.com/disintegration/imaging v1.6.2 // indirect github.com/dlclark/regexp2 v1.7.0 // indirect github.com/docker/cli v26.0.1+incompatible // indirect - github.com/docker/docker v26.0.1+incompatible // indirect + github.com/docker/docker v26.1.3+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/eliukblau/pixterm/pkg/ansimage v0.0.0-20191210081756-9fb6cf8c2f75 // indirect github.com/emirpasic/gods v1.18.1 // indirect github.com/ethereum/c-kzg-4844 v0.4.0 // indirect - github.com/fatih/color v1.13.0 // indirect + github.com/fatih/color v1.16.0 // indirect github.com/fatih/structtag v1.2.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fjl/memsize v0.0.2 // indirect github.com/flowchartsman/swaggerui v0.0.0-20221017034628-909ed4f3701b // indirect - github.com/fsnotify/fsnotify v1.6.0 // indirect + github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/gabriel-vasile/mimetype v1.4.3 // indirect github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/gballet/go-verkle v0.1.1-0.20231031103413-a67434b50f46 // indirect @@ -157,7 +157,7 @@ require ( 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.20.0 // indirect - github.com/go-resty/resty/v2 v2.11.0 // indirect + github.com/go-resty/resty/v2 v2.13.1 // indirect github.com/go-sql-driver/mysql v1.7.0 // indirect github.com/goccy/go-json v0.10.2 // indirect github.com/gofrs/flock v0.8.1 // indirect @@ -203,15 +203,14 @@ require ( github.com/kyokomi/emoji/v2 v2.2.8 // indirect github.com/leodido/go-urn v1.4.0 // indirect github.com/libp2p/go-libp2p v0.33.0 // indirect - github.com/lucasb-eyer/go-colorful v1.0.3 // indirect + github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/mattn/go-runewidth v0.0.13 // indirect + github.com/mattn/go-runewidth v0.0.15 // indirect github.com/mattn/go-sqlite3 v2.0.3+incompatible // indirect github.com/mattn/go-tty v0.0.3 // indirect github.com/miguelmota/go-ethereum-hdwallet v0.1.1 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect - github.com/mitchellh/go-testing-interface v1.14.1 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/mitchellh/pointerstructure v1.2.0 // indirect github.com/mmcloughlin/addchain v0.4.0 // indirect @@ -230,15 +229,15 @@ require ( github.com/peterh/liner v1.2.1 // indirect github.com/pjbgf/sha1cd v0.3.0 // indirect github.com/pkg/term v1.2.0-beta.2 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/client_golang v1.19.1 // indirect github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.53.0 // indirect + github.com/prometheus/common v0.54.0 // indirect github.com/prometheus/procfs v0.15.0 // indirect github.com/puzpuzpuz/xsync v1.4.3 // indirect github.com/puzpuzpuz/xsync/v2 v2.5.1 // indirect github.com/rbretecher/go-postman-collection v0.9.0 // indirect - github.com/rivo/uniseg v0.2.0 // indirect + github.com/rivo/uniseg v0.4.7 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/rs/cors v1.8.2 // indirect github.com/rs/zerolog v1.27.0 // indirect @@ -300,12 +299,12 @@ require ( golang.org/x/text v0.16.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.22.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 // indirect gopkg.in/hedzr/errors.v3 v3.1.1 // indirect gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/klog/v2 v2.90.1 // indirect - k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 // indirect + k8s.io/klog/v2 v2.120.1 // indirect + k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect rsc.io/tmplfunc v0.0.3 // indirect ) diff --git a/services/scribe/go.sum b/services/scribe/go.sum index cf6a9cf3c5..25f09d4c07 100644 --- a/services/scribe/go.sum +++ b/services/scribe/go.sum @@ -21,7 +21,12 @@ cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHOb cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= -cloud.google.com/go v0.112.1 h1:uJSeirPke5UNZHIb4SxfZklVSiWWVqW4oXlETwZziwM= +cloud.google.com/go v0.114.0 h1:OIPFAdfrFDFO2ve2U7r/H5SwSbBzEdrBdE7xkgwc+kY= +cloud.google.com/go v0.114.0/go.mod h1:ZV9La5YYxctro1HTPug5lXH/GefROyW8PPD4T8n9J8E= +cloud.google.com/go/auth v0.5.1 h1:0QNO7VThG54LUzKiQxv8C6x1YX7lUrzlAa1nVLF8CIw= +cloud.google.com/go/auth v0.5.1/go.mod h1:vbZT8GjzDf3AVqCcQmqeeM32U9HBFc32vVVAbwDsa6s= +cloud.google.com/go/auth/oauth2adapt v0.2.2 h1:+TTV8aXpjeChS9M+aTtN/TjdQnzJvmzKFt//oWu7HX4= +cloud.google.com/go/auth/oauth2adapt v0.2.2/go.mod h1:wcYjgpZI9+Yu7LyYBg4pqSiaRkfEK3GQcpb7C/uyF1Q= 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= @@ -34,10 +39,12 @@ cloud.google.com/go/compute/metadata v0.3.0 h1:Tz+eQXMEqDIKRsmY3cHTL6FVaynIjX2Qx cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/iam v1.1.6 h1:bEa06k05IO4f4uJonbB5iAgKTPpABy1ayxaIZV/GHVc= -cloud.google.com/go/iam v1.1.6/go.mod h1:O0zxdPeGBoFdWW3HWmBxJsk0pfvNM/p/qa82rWOGTwI= -cloud.google.com/go/kms v1.15.7 h1:7caV9K3yIxvlQPAcaFffhlT7d1qpxjB1wHBtjWa13SM= -cloud.google.com/go/kms v1.15.7/go.mod h1:ub54lbsa6tDkUwnu4W7Yt1aAIFLnspgh0kPGToDukeI= +cloud.google.com/go/iam v1.1.8 h1:r7umDwhj+BQyz0ScZMp4QrGXjSTI3ZINnpgU2nlB/K0= +cloud.google.com/go/iam v1.1.8/go.mod h1:GvE6lyMmfxXauzNq8NbgJbeVQNspG+tcdL/W8QO1+zE= +cloud.google.com/go/kms v1.17.1 h1:5k0wXqkxL+YcXd4viQzTqCgzzVKKxzgrK+rCZJytEQs= +cloud.google.com/go/kms v1.17.1/go.mod h1:DCMnCF/apA6fZk5Cj4XsD979OyHAqFasPuA5Sd0kGlQ= +cloud.google.com/go/longrunning v0.5.7 h1:WLbHekDbjK1fVFD3ibpFFVoyizlLRl73I7YKuAKilhU= +cloud.google.com/go/longrunning v0.5.7/go.mod h1:8GClkudohy1Fxm3owmBGid8W0pSgodEMwEAztp38Xng= 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= @@ -144,8 +151,8 @@ github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0/go.mod h1:t2tdK github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= 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/aws/aws-sdk-go v1.43.16 h1:Y7wBby44f+tINqJjw5fLH3vA+gFq4uMITIKqditwM14= -github.com/aws/aws-sdk-go v1.43.16/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= +github.com/aws/aws-sdk-go v1.53.16 h1:8oZjKQO/ml1WLUZw5hvF7pvYjPf8o9f57Wldoy/q9Qc= +github.com/aws/aws-sdk-go v1.53.16/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= github.com/aws/aws-sdk-go-v2 v1.2.0/go.mod h1:zEQs02YRBw1DjK0PoJv3ygDYOFTre1ejlJWl8FwAuQo= github.com/aws/aws-sdk-go-v2 v1.21.2 h1:+LXZ0sgo8quN9UOKXXzAWRT3FWd4NxeXWOZom9pE7GA= github.com/aws/aws-sdk-go-v2 v1.21.2/go.mod h1:ErQhvNuEMhJjweavOYhxVkn2RUx7kQXVATHrjKtxIpM= @@ -299,8 +306,8 @@ github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233/go.mod h1:geZJ github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA= github.com/crate-crypto/go-kzg-4844 v0.7.0/go.mod h1:1kMhvPgI0Ky3yIa+9lFySEBUBXkYxeOi8ZF1sYioxhc= 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/creack/pty v1.1.21 h1:1/QdRyBaHHJP61QkWMXlOIBfsgdDeeKfK8SYVUWJKf0= +github.com/creack/pty v1.1.21/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4= github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= @@ -312,8 +319,9 @@ github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964/go.mod h1:Xd9 github.com/dave/jennifer v1.2.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg= github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea/go.mod h1:93vsz/8Wt4joVM7c2AVqh+YRMiUSc14yDtF28KmMOgQ= github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80NsVHagjM= github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= @@ -342,8 +350,8 @@ github.com/dlclark/regexp2 v1.7.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnm github.com/docker/cli v26.0.1+incompatible h1:eZDuplk2jYqgUkNLDYwTBxqmY9cM3yHnmN6OIUEjL3U= github.com/docker/cli v26.0.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/docker v1.4.2-0.20180625184442-8e610b2b55bf/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v26.0.1+incompatible h1:t39Hm6lpXuXtgkF0dm1t9a5HkbUfdGy6XbWexmGr+hA= -github.com/docker/docker v26.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v26.1.3+incompatible h1:lLCzRbrVZrljpVNobJu1J2FHk8V0s4BawoZippkc+xo= +github.com/docker/docker v26.1.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= @@ -377,8 +385,9 @@ github.com/ethereum/go-ethereum v1.13.8/go.mod h1:sc48XYQxCzH3fG9BcrXCOOgQk2JfZz github.com/fasthttp-contrib/websocket v0.0.0-20160511215533-1f3b11f56072/go.mod h1:duJ4Jxv5lDcvg4QuQr0oowTf7dz4/CR8NtyCooz9HL8= 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 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= +github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= +github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4= github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94= @@ -395,8 +404,8 @@ github.com/friendsofgo/graphiql v0.2.2 h1:ccnuxpjgIkB+Lr9YB2ZouiZm7wvciSfqwpa9ug github.com/friendsofgo/graphiql v0.2.2/go.mod h1:8Y2kZ36AoTGWs78+VRpvATyt3LJBx0SZXmay80ZTRWo= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= -github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= +github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= @@ -448,7 +457,6 @@ github.com/go-http-utils/headers v0.0.0-20181008091004-fed159eddc2a/go.mod h1:I7 github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= @@ -474,8 +482,8 @@ 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.20.0 h1:K9ISHbSaI0lyB2eWMPJo+kOS/FBExVwjEviJTixqxL8= github.com/go-playground/validator/v10 v10.20.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= -github.com/go-resty/resty/v2 v2.11.0 h1:i7jMfNOJYMp69lq7qozJP+bjgzfAzeOhuGlyDrqxT/8= -github.com/go-resty/resty/v2 v2.11.0/go.mod h1:iiP/OpA0CkcL3IGt1O0+/SIItFUbkkyw5BGXiVdTu+A= +github.com/go-resty/resty/v2 v2.13.1 h1:x+LHXBI2nMB1vqndymf26quycC4aggYJ7DECYbiz03g= +github.com/go-resty/resty/v2 v2.13.1/go.mod h1:GznXlLxkq6Nh4sU59rPmUw3VtgpO3aS96ORAI6Q7d+0= github.com/go-sourcemap/sourcemap v2.1.2+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc= @@ -592,8 +600,8 @@ github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfF github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gax-go/v2 v2.12.2 h1:mhN09QQW1jEWeMF74zGR81R30z4VJzjZsfkUhuHF+DA= -github.com/googleapis/gax-go/v2 v2.12.2/go.mod h1:61M8vcyyXR2kqKFxKrfA22jaA8JGF7Dc8App1U3H6jc= +github.com/googleapis/gax-go/v2 v2.12.4 h1:9gWcmF85Wvq4ryPFvGFaOgPIs1AQX0d0bcbGw4Z96qg= +github.com/googleapis/gax-go/v2 v2.12.4/go.mod h1:KYEYLorsnIGDi/rPC8b5TdlB9kbKoFubselGIoBMCwI= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= @@ -612,18 +620,15 @@ github.com/graph-gophers/graphql-go v1.3.0 h1:Eb9x/q6MFpCLz7jBCiP/WTxjSDrYLR1QY4 github.com/graph-gophers/graphql-go v1.3.0/go.mod h1:9CQHMSxwO4MprSdzoIEobiHpoLtHm77vfxsvsIN5Vuc= github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 h1:bkypFPDjIYGfCYD5mRBvpqxfYX1YCS1PXdKYWi8FsN0= github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0/go.mod h1:P+Lt/0by1T8bfcF3z737NnSbmxQAppXMRziHUxPOC8k= -github.com/hashicorp/consul/sdk v0.8.0 h1:OJtKBtEjboEZvG6AOUdh4Z1Zbyu0WcxQ0qatRrZHTVU= -github.com/hashicorp/consul/sdk v0.8.0/go.mod h1:GBvyrGALthsZObzUGsfgHZQDXjg4lOjagTIwIR1vPms= +github.com/hashicorp/consul/sdk v0.14.0 h1:Hly+BMNMssVzoWddbBnBFi3W+Fzytvm0haSkihhj3GU= +github.com/hashicorp/consul/sdk v0.14.0/go.mod h1:gHYeuDa0+0qRAD6Wwr6yznMBvBwHKoxSBoW5l73+saE= 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.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= -github.com/hashicorp/go-hclog v0.12.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= 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-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= 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= @@ -760,7 +765,6 @@ github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxv github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= 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.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= @@ -792,8 +796,9 @@ github.com/libp2p/go-libp2p v0.33.0 h1:yTPSr8sJRbfeEYXyeN8VPVSlTlFjtMUwGDRniwaf/ github.com/libp2p/go-libp2p v0.33.0/go.mod h1:RIJFRQVUBKy82dnW7J5f1homqqv6NcsDJAl3e7CRGfE= github.com/lmittmann/w3 v0.10.0 h1:AjQJKfcwHSDLr7cnRbS+0Jio9xt/h1JDBAP/jvLWC58= github.com/lmittmann/w3 v0.10.0/go.mod h1:AydD3eqJiyg7tubFve39JL025kZr8QWO1lemXllK+Sw= -github.com/lucasb-eyer/go-colorful v1.0.3 h1:QIbQXiugsb+q10B+MI+7DI1oQLdmnep86tWFlaaUAac= github.com/lucasb-eyer/go-colorful v1.0.3/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= +github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= +github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= @@ -827,8 +832,8 @@ github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzp github.com/mattn/go-runewidth v0.0.6/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= -github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU= -github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= +github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/go-sqlite3 v2.0.3+incompatible h1:gXHsfypPkaMZrKbD5209QV9jbUTJKjyR5WD3HYQSd+U= github.com/mattn/go-sqlite3 v2.0.3+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= @@ -845,9 +850,6 @@ github.com/minio/sha256-simd v1.0.1 h1:6kaan5IFmwTNynnKKpDHe6FWHohJOHhCPchzK49dz github.com/minio/sha256-simd v1.0.1/go.mod h1:Pz6AKMiUdngCLpeTL/RJY1M9rUuPMYujV5xJjtbRSN8= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= -github.com/mitchellh/go-testing-interface v1.14.1 h1:jrgshOhYAUVNMAJiKbEu7EqAwgJJ2JqpQmpLJOu07cU= -github.com/mitchellh/go-testing-interface v1.14.1/go.mod h1:gfgS7OtZj6MA4U1UrDRp04twqAjfvlZyCfX3sDjEym8= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= @@ -959,8 +961,9 @@ github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qR github.com/pkg/term v0.0.0-20180730021639-bffc007b7fd5/go.mod h1:eCbImbZ95eXtAUIbLAuAVnBnwf83mjf6QIVH8SHYwqQ= github.com/pkg/term v1.2.0-beta.2 h1:L3y/h2jkuBVFdWiJvNfYfKmzcCnILw7mJWm2JQuMppw= github.com/pkg/term v1.2.0-beta.2/go.mod h1:E25nymQcrSllhX42Ok8MRm1+hyBdHY0dCeiKZ9jpNGw= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +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/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= @@ -973,8 +976,8 @@ github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQy github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= -github.com/prometheus/common v0.53.0 h1:U2pL9w9nmJwJDa4qqLQ3ZaePJ6ZTwt7cMD3AG3+aLCE= -github.com/prometheus/common v0.53.0/go.mod h1:BrxBKv3FWBIGXw89Mg1AeBq7FSyRzXWI3l3e7W3RN5U= +github.com/prometheus/common v0.54.0 h1:ZlZy0BgJhTwVZUn7dLOkwCZHUkrAqd3WYtcFCWnM1D8= +github.com/prometheus/common v0.54.0/go.mod h1:/TQgMJP5CuVYveyT7n/0Ix8yLNNXy9yRSkhnLTHPDIQ= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.15.0 h1:A82kmvXJq2jTu5YUhSGNlYoxh85zLnKgPz4bMZgI5Ek= @@ -994,8 +997,9 @@ github.com/retailnext/hllpp v1.0.1-0.20180308014038-101a6d2f8b52/go.mod h1:RDpi1 github.com/richardwilkes/toolbox v1.74.0 h1:TNvXxph1jJk6IQmVoZdAY9peRlL6Tv//7OpyJkjMiPI= github.com/richardwilkes/toolbox v1.74.0/go.mod h1:OFTDv8rUUsF+Hb98k9l65zu7fuKt3EEhWywv6zyJ750= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= -github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= +github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rjeczalik/notify v0.9.1/go.mod h1:rKwnCoCGeuQnwBtTSPL9Dad03Vh2n40ePRrjvIXnJho= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= @@ -1267,7 +1271,8 @@ golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1374,7 +1379,8 @@ 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.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -1386,8 +1392,8 @@ golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.20.0 h1:4mQdhULixXKP1rwYBW0vAijoXnkTG0BLCDRzfe1idMo= -golang.org/x/oauth2 v0.20.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= +golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1436,7 +1442,6 @@ golang.org/x/sys v0.0.0-20200107162124-548cf772de50/go.mod h1:h1NjWce9XRLGQEsW7w 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-20200124204421-9fbb57f87de9/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= @@ -1487,7 +1492,6 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc 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-20220908164124-27713097b956/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.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1495,8 +1499,9 @@ 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= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= @@ -1506,7 +1511,8 @@ 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.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= -golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1522,7 +1528,8 @@ 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.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= 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= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1530,7 +1537,6 @@ golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -1626,8 +1632,8 @@ google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz513 google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= -google.golang.org/api v0.169.0 h1:QwWPy71FgMWqJN/l6jVlFHUa29a7dcUy02I8o799nPY= -google.golang.org/api v0.169.0/go.mod h1:gpNOiMA2tZ4mf5R9Iwf4rK/Dcz0fbdIgWYWVoxmsyLg= +google.golang.org/api v0.183.0 h1:PNMeRDwo1pJdgNcFQ9GstuLe/noWKIc89pRWRLMvLwE= +google.golang.org/api v0.183.0/go.mod h1:q43adC5/pHoSZTx5h2mSmdF7NcyfW9JuDyIOJAgS9ZQ= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1676,12 +1682,12 @@ google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= -google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de h1:F6qOa9AZTYJXOUEr4jDysRDLrm4PHePlge4v4TGAlxY= -google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:VUhTRKeHn9wwcdrk73nvdC9gF178Tzhmt/qyaFcPLSo= -google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5 h1:P8OJ/WCl/Xo4E4zoe4/bifHpSmmKwARqyqE4nW6J2GQ= -google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5/go.mod h1:RGnPtTG7r4i8sPlNyDeikXF99hMM+hN6QMm4ooG9g2g= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291 h1:AgADTJarZTBqgjiUzRgfaBchgYB3/WFTC80GPwsMcRI= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= +google.golang.org/genproto v0.0.0-20240528184218-531527333157 h1:u7WMYrIrVvs0TF5yaKwKNbcJyySYf+HAIFXxWltJOXE= +google.golang.org/genproto v0.0.0-20240528184218-531527333157/go.mod h1:ubQlAQnzejB8uZzszhrTCU2Fyp6Vi7ZE5nn0c3W8+qQ= +google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 h1:7whR9kGa5LUwFtpLm2ArCEejtnxlGeLbAyjFY8sGNFw= +google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157/go.mod h1:99sLkeliLXfdj2J75X3Ho+rrVCaJze0uwN7zDDkjPVU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 h1:Zy9XzmMEflZ/MAaA7vNcoebnRAld7FsPW1EeBB7V0m8= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= 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= @@ -1773,12 +1779,12 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt 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/apimachinery v0.26.2 h1:da1u3D5wfR5u2RpLhE/ZtZS2P7QvDgLZTi9wrNZl/tQ= -k8s.io/apimachinery v0.26.2/go.mod h1:ats7nN1LExKHvJ9TmwootT00Yz05MuYqPXEXaVeOy5I= -k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw= -k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 h1:kmDqav+P+/5e1i9tFfHq1qcF3sOrDp+YEkVDAHu7Jwk= -k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/apimachinery v0.29.3 h1:2tbx+5L7RNvqJjn7RIuIKu9XTsIZ9Z5wX2G22XAa5EU= +k8s.io/apimachinery v0.29.3/go.mod h1:hx/S4V2PNW4OMg3WizRrHutyB5la0iCUbZym+W0EQIU= +k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= +k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= lukechampine.com/blake3 v1.2.1 h1:YuqqRuaqsGV71BV/nm9xlI0MKUv4QC54jQnBChWbGnI= lukechampine.com/blake3 v1.2.1/go.mod h1:0OFRp7fBtAylGVCO40o87sbupkyIGgbpv1+M1k1LM6k= nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= diff --git a/tools/go.mod b/tools/go.mod index 1ca0438e44..27c24c923b 100644 --- a/tools/go.mod +++ b/tools/go.mod @@ -40,12 +40,12 @@ require ( github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect github.com/crate-crypto/go-kzg-4844 v0.7.0 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect + 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/emirpasic/gods v1.18.1 // indirect github.com/ethereum/c-kzg-4844 v0.4.0 // indirect - github.com/fsnotify/fsnotify v1.6.0 // indirect + github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect github.com/getsentry/sentry-go v0.18.0 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect @@ -68,7 +68,7 @@ require ( github.com/kevinburke/ssh_config v1.2.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/mattn/go-runewidth v0.0.13 // indirect + github.com/mattn/go-runewidth v0.0.15 // indirect github.com/mattn/go-tty v0.0.3 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mmcloughlin/addchain v0.4.0 // indirect @@ -76,8 +76,8 @@ require ( github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/pjbgf/sha1cd v0.3.0 // indirect github.com/pkg/term v1.2.0-beta.2 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/rivo/uniseg v0.2.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/rivo/uniseg v0.4.7 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect @@ -102,9 +102,9 @@ require ( golang.org/x/text v0.16.0 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apimachinery v0.26.2 // indirect - k8s.io/klog/v2 v2.90.1 // indirect - k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 // indirect + k8s.io/apimachinery v0.29.3 // indirect + k8s.io/klog/v2 v2.120.1 // indirect + k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect rsc.io/tmplfunc v0.0.3 // indirect ) diff --git a/tools/go.sum b/tools/go.sum index dd8ac51b67..bcae9b9df7 100644 --- a/tools/go.sum +++ b/tools/go.sum @@ -123,8 +123,9 @@ github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ3 github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80NsVHagjM= github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= @@ -154,8 +155,8 @@ github.com/ethereum/go-ethereum v1.13.8/go.mod h1:sc48XYQxCzH3fG9BcrXCOOgQk2JfZz github.com/fasthttp-contrib/websocket v0.0.0-20160511215533-1f3b11f56072/go.mod h1:duJ4Jxv5lDcvg4QuQr0oowTf7dz4/CR8NtyCooz9HL8= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= -github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= +github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 h1:f6D9Hr8xV8uYKlyuj8XIruxlh9WjVjdh1gIicAS7ays= github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww= @@ -183,7 +184,6 @@ github.com/go-git/go-git/v5 v5.12.0/go.mod h1:FTM9VKtnI2m65hNI/TenDDDnUf2Q9FHnXY github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= 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-martini/martini v0.0.0-20170121215854-22fa46961aab/go.mod h1:/P9AEU963A2AYjv4d1V5eVL1CQbEJq6aCNHDDjibzu8= @@ -369,8 +369,8 @@ github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWE github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.6/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU= -github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= +github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-tty v0.0.3 h1:5OfyWorkyO7xP52Mq7tB36ajHDG5OHrmBGIS/DtakQI= github.com/mattn/go-tty v0.0.3/go.mod h1:ihxohKRERHTVzN+aSVRwACLCeqIoZAWpoICkkvrWyR0= github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= @@ -415,21 +415,23 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= github.com/pkg/term v1.2.0-beta.2 h1:L3y/h2jkuBVFdWiJvNfYfKmzcCnILw7mJWm2JQuMppw= github.com/pkg/term v1.2.0-beta.2/go.mod h1:E25nymQcrSllhX42Ok8MRm1+hyBdHY0dCeiKZ9jpNGw= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +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/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.53.0 h1:U2pL9w9nmJwJDa4qqLQ3ZaePJ6ZTwt7cMD3AG3+aLCE= -github.com/prometheus/common v0.53.0/go.mod h1:BrxBKv3FWBIGXw89Mg1AeBq7FSyRzXWI3l3e7W3RN5U= +github.com/prometheus/common v0.54.0 h1:ZlZy0BgJhTwVZUn7dLOkwCZHUkrAqd3WYtcFCWnM1D8= +github.com/prometheus/common v0.54.0/go.mod h1:/TQgMJP5CuVYveyT7n/0Ix8yLNNXy9yRSkhnLTHPDIQ= github.com/prometheus/procfs v0.15.0 h1:A82kmvXJq2jTu5YUhSGNlYoxh85zLnKgPz4bMZgI5Ek= github.com/prometheus/procfs v0.15.0/go.mod h1:Y0RJ/Y5g5wJpkTisOtqwDSo4HwhGmLB4VQSw2sQJLHk= github.com/regen-network/protobuf v1.3.3-alpha.regen.1 h1:OHEc+q5iIAXpqiqFKeLpu5NwTIkVXUs48vFMwzqpqY4= github.com/regen-network/protobuf v1.3.3-alpha.regen.1/go.mod h1:2DjTFR1HhMQhiWC5sZ4OhQ3+NtdbZ6oBDKQwq5Ou+FI= -github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= +github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= @@ -723,7 +725,6 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc 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-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220908164124-27713097b956/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.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -951,12 +952,12 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh 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= -k8s.io/apimachinery v0.26.2 h1:da1u3D5wfR5u2RpLhE/ZtZS2P7QvDgLZTi9wrNZl/tQ= -k8s.io/apimachinery v0.26.2/go.mod h1:ats7nN1LExKHvJ9TmwootT00Yz05MuYqPXEXaVeOy5I= -k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw= -k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 h1:kmDqav+P+/5e1i9tFfHq1qcF3sOrDp+YEkVDAHu7Jwk= -k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/apimachinery v0.29.3 h1:2tbx+5L7RNvqJjn7RIuIKu9XTsIZ9Z5wX2G22XAa5EU= +k8s.io/apimachinery v0.29.3/go.mod h1:hx/S4V2PNW4OMg3WizRrHutyB5la0iCUbZym+W0EQIU= +k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= +k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= From 99185a51a6c46e710d78d2dd69669811c05a9a30 Mon Sep 17 00:00:00 2001 From: trajan0x <83933037+trajan0x@users.noreply.github.com> Date: Sat, 22 Jun 2024 16:05:39 -0400 Subject: [PATCH 19/85] add minimal rfq relayer query interface (#2772) --------- Co-authored-by: Trajan0x --- contrib/opbot/README.md | 75 +- contrib/opbot/botmd/botmd.go | 8 +- contrib/opbot/botmd/commands.go | 135 +++- contrib/opbot/config/config.go | 3 +- contrib/opbot/go.mod | 89 ++- contrib/opbot/go.sum | 844 +++++++++++++++++++++ ethergo/chaindata/chaindata.go | 198 +++++ services/rfq/go.mod | 6 +- services/rfq/relayer/relapi/client.go | 102 +++ services/rfq/relayer/relapi/client_test.go | 51 ++ services/rfq/relayer/relapi/handler.go | 20 +- services/rfq/relayer/relapi/model.go | 10 +- services/rfq/relayer/relapi/server_test.go | 26 +- services/rfq/relayer/relapi/suite_test.go | 31 + services/scribe/db/transaction_test.go | 2 +- 15 files changed, 1567 insertions(+), 33 deletions(-) create mode 100644 ethergo/chaindata/chaindata.go create mode 100644 services/rfq/relayer/relapi/client.go create mode 100644 services/rfq/relayer/relapi/client_test.go diff --git a/contrib/opbot/README.md b/contrib/opbot/README.md index fd0de47851..1946d41eef 100644 --- a/contrib/opbot/README.md +++ b/contrib/opbot/README.md @@ -1 +1,74 @@ -# Op Bot is a slack bot +# OpBot + +OpBot is a Slack bot written in Go that interacts with the Signoz trace API to provide various functionalities, including searching for transactions based on user-provided tags. This bot is designed to help teams monitor and manage their operations more effectively by integrating with Slack and Signoz. + +## Features + +- **Slack Integration**: Interact with the bot directly from Slack. +- **Signoz Integration**: Search for transactions and traces using the Signoz API. +- **Configuration Management**: Easily manage configuration through YAML files. +- **Metrics Handling**: Integrated with metrics handling for better monitoring. + +## Installation + +1. **Clone the repository**: + ```sh + git clone https://github.com/synapsecns/sanguine.git + cd sanguine/contrib/opbot + ``` + +2. **Install dependencies**: + Ensure you have Go installed (version 1.22.4 or later). Then, run: + ```sh + go mod tidy + ``` + +3. **Build the bot**: + ```sh + go build -o opbot main.go + ``` + +## Configuration + +OpBot uses a YAML configuration file to manage its settings. The configuration file should be named `config.yml` and placed in the same directory as the executable. + +### Example `config.yml` + +```yaml +slack_bot_token: "your-slack-bot-token" +slack_app_token: "your-slack-app-token" +signoz_email: "your-signoz-email" +signoz_password: "your-signoz-password" +signoz_base_url: "https://signoz.example.com" +``` + +### Configuration Fields + +- `slack_bot_token`: The token for your Slack bot. +- `slack_app_token`: The token for your Slack app. +- `signoz_email`: The email address used to log in to Signoz. +- `signoz_password`: The password used to log in to Signoz. +- `signoz_base_url`: The base URL for the Signoz API. + +## Usage + +1. **Start the bot**: + ```sh + ./opbot start --config config.yml + ``` + +2. **Interact with the bot in Slack**: + - Use commands to search for transactions in Signoz. + - Example command: `/opbot search --tag key:value` + +## Development + +### Directory Structure + +- **`cmd`**: Contains the command line interface for the bot. +- **`config`**: Provides functionality to read and write configuration files. +- **`botmd`**: Contains the main bot server implementation. +- **`metadata`**: Provides metadata services for the bot. +- **`signoz`**: Contains the Signoz client for interacting with the Signoz API. + +Feel free to reach out if you have any questions or need further assistance! diff --git a/contrib/opbot/botmd/botmd.go b/contrib/opbot/botmd/botmd.go index deece7c1a1..25b4041e64 100644 --- a/contrib/opbot/botmd/botmd.go +++ b/contrib/opbot/botmd/botmd.go @@ -27,11 +27,17 @@ func NewBot(handler metrics.Handler, cfg config.Config) Bot { bot.signozClient = signoz.NewClientFromUser(handler, cfg.SignozBaseURL, cfg.SignozEmail, cfg.SignozPassword) - server.AddCommand(bot.traceCommand()) + bot.addCommands(bot.traceCommand(), bot.rfqLookupCommand()) return bot } +func (b *Bot) addCommands(commands ...*slacker.CommandDefinition) { + for _, command := range commands { + b.server.AddCommand(command) + } +} + // Start starts the bot server. // nolint: wrapcheck func (b *Bot) Start(ctx context.Context) error { diff --git a/contrib/opbot/botmd/commands.go b/contrib/opbot/botmd/commands.go index 73f4157dc6..9057c72328 100644 --- a/contrib/opbot/botmd/commands.go +++ b/contrib/opbot/botmd/commands.go @@ -4,12 +4,16 @@ package botmd import ( "fmt" + "github.com/ethereum/go-ethereum/common" "github.com/hako/durafmt" "github.com/slack-go/slack" "github.com/slack-io/slacker" "github.com/synapsecns/sanguine/contrib/opbot/signoz" + "github.com/synapsecns/sanguine/ethergo/chaindata" + "github.com/synapsecns/sanguine/services/rfq/relayer/relapi" "log" "strings" + "sync" "time" ) @@ -73,7 +77,7 @@ func (b *Bot) traceCommand() *slacker.CommandDefinition { return } - slackBlocks := []slack.Block{slack.NewHeaderBlock(slack.NewTextBlockObject(slack.PlainTextType, "Traces", false, false))} + slackBlocks := []slack.Block{slack.NewHeaderBlock(slack.NewTextBlockObject(slack.PlainTextType, fmt.Sprintf("Traces for %s", tags), false, false))} for _, results := range traceList { trace := results.Data["traceID"].(string) @@ -109,3 +113,132 @@ func (b *Bot) traceCommand() *slacker.CommandDefinition { }, } } + +func (b *Bot) rfqLookupCommand() *slacker.CommandDefinition { + return &slacker.CommandDefinition{ + Command: "rfq ", + Description: "find a rfq transaction by either tx hash or txid on all configured relayers", + Examples: []string{ + "rfq 0x30f96b45ba689c809f7e936c140609eb31c99b182bef54fccf49778716a7e1ca", + }, + Handler: func(ctx *slacker.CommandContext) { + type Status struct { + relayer string + *relapi.GetQuoteRequestStatusResponse + } + + var statuses []Status + var sliceMux sync.Mutex + + if len(b.cfg.RelayerURLS) == 0 { + _, err := ctx.Response().Reply("no relayer urls configured") + if err != nil { + log.Println(err) + } + return + } + + tx := ctx.Request().Param("tx") + + var wg sync.WaitGroup + // 2 routines per relayer, one for tx hashh one for tx id + wg.Add(len(b.cfg.RelayerURLS) * 2) + for _, relayer := range b.cfg.RelayerURLS { + client := relapi.NewRelayerClient(b.handler, relayer) + go func() { + defer wg.Done() + res, err := client.GetQuoteRequestStatusByTxHash(ctx.Context(), tx) + if err != nil { + log.Printf("error fetching quote request status by tx hash: %v\n", err) + return + } + sliceMux.Lock() + defer sliceMux.Unlock() + statuses = append(statuses, Status{relayer: relayer, GetQuoteRequestStatusResponse: res}) + }() + + go func() { + defer wg.Done() + res, err := client.GetQuoteRequestStatusByTxID(ctx.Context(), tx) + if err != nil { + log.Printf("error fetching quote request status by tx id: %v\n", err) + return + } + sliceMux.Lock() + defer sliceMux.Unlock() + statuses = append(statuses, Status{relayer: relayer, GetQuoteRequestStatusResponse: res}) + }() + } + wg.Wait() + + if len(statuses) == 0 { + _, err := ctx.Response().Reply("no quote request found") + if err != nil { + log.Println(err) + } + return + } + + var slackBlocks []slack.Block + for _, status := range statuses { + objects := []*slack.TextBlockObject{ + { + Type: slack.MarkdownType, + Text: fmt.Sprintf("*Relayer*: %s", status.relayer), + }, + { + Type: slack.MarkdownType, + Text: fmt.Sprintf("*Status*: %s", status.Status), + }, + { + Type: slack.MarkdownType, + Text: fmt.Sprintf("*TxID*: %s", toExplorerSlackLink(status.TxID)), + }, + { + Type: slack.MarkdownType, + Text: fmt.Sprintf("*OriginTxHash*: %s", toTXSlackLink(status.OriginTxHash, status.OriginChainID)), + }, + } + + if status.DestTxHash == (common.Hash{}).String() { + objects = append(objects, &slack.TextBlockObject{ + Type: slack.MarkdownType, + Text: "*DestTxHash*: not available", + }) + } else { + objects = append(objects, &slack.TextBlockObject{ + Type: slack.MarkdownType, + Text: fmt.Sprintf("*DestTxHash*: %s", toTXSlackLink(status.DestTxHash, status.DestChainID)), + }) + } + + slackBlocks = append(slackBlocks, slack.NewSectionBlock(nil, objects, nil)) + } + + _, err := ctx.Response().ReplyBlocks(slackBlocks) + if err != nil { + log.Println(err) + } + }} +} + +func toExplorerSlackLink(ogHash string) string { + rfqHash := strings.ToUpper(ogHash) + // cut off 0x + if len(rfqHash) > 0 { + rfqHash = strings.ToLower(rfqHash[2:]) + } + + return fmt.Sprintf("", rfqHash, ogHash) +} + +// produce a salck link if the explorer exists. +func toTXSlackLink(txHash string, chainID uint32) string { + url := chaindata.ToTXLink(int64(chainID), txHash) + if url == "" { + return txHash + } + + // TODO: remove when we can contorl unfurl + return fmt.Sprintf("", url, txHash) +} diff --git a/contrib/opbot/config/config.go b/contrib/opbot/config/config.go index edcc26870d..7a6e1d9800 100644 --- a/contrib/opbot/config/config.go +++ b/contrib/opbot/config/config.go @@ -15,5 +15,6 @@ type Config struct { // inject only with init container! SignozPassword string `yaml:"signoz_password"` // SignozBaseURL is the base url of the signoz instance. - SignozBaseURL string `yaml:"signoz_base_url"` + SignozBaseURL string `yaml:"signoz_base_url"` + RelayerURLS []string `yaml:"rfq_relayer_urls"` } diff --git a/contrib/opbot/go.mod b/contrib/opbot/go.mod index 5d466fcafe..04d72140c1 100644 --- a/contrib/opbot/go.mod +++ b/contrib/opbot/go.mod @@ -8,6 +8,7 @@ require ( github.com/charmbracelet/huh/spinner v0.0.0-20240618200428-90406d79077d github.com/davidmytton/url-verifier v1.0.1 github.com/dubonzi/otelresty v1.2.0 + github.com/ethereum/go-ethereum v1.13.8 github.com/go-http-utils/headers v0.0.0-20181008091004-fed159eddc2a github.com/go-resty/resty/v2 v2.13.1 github.com/google/uuid v1.6.0 @@ -20,6 +21,8 @@ require ( github.com/slack-go/slack v0.13.0 github.com/slack-io/slacker v0.1.0 github.com/synapsecns/sanguine/core v0.0.0-00010101000000-000000000000 + github.com/synapsecns/sanguine/ethergo v0.1.0 + github.com/synapsecns/sanguine/services/rfq v0.0.0-00010101000000-000000000000 github.com/urfave/cli/v2 v2.27.2 gopkg.in/yaml.v2 v2.4.0 gopkg.in/yaml.v3 v3.0.1 @@ -27,14 +30,43 @@ require ( ) require ( + cloud.google.com/go v0.114.0 // indirect + cloud.google.com/go/auth v0.5.1 // indirect + cloud.google.com/go/auth/oauth2adapt v0.2.2 // indirect + cloud.google.com/go/compute/metadata v0.3.0 // indirect + cloud.google.com/go/iam v1.1.8 // indirect + cloud.google.com/go/kms v1.17.1 // indirect + cloud.google.com/go/longrunning v0.5.7 // indirect dario.cat/mergo v1.0.0 // indirect + github.com/DataDog/zstd v1.5.2 // indirect github.com/ImVexed/fasturl v0.0.0-20230304231329-4e41488060f3 // indirect + github.com/LK4d4/trylock v0.0.0-20191027065348-ff7e133a5c54 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect github.com/ProtonMail/go-crypto v1.0.0 // indirect + github.com/VictoriaMetrics/fastcache v1.12.1 // indirect github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect github.com/atotto/clipboard v0.1.4 // indirect + github.com/aws/aws-sdk-go-v2 v1.21.2 // indirect + github.com/aws/aws-sdk-go-v2/config v1.18.45 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.13.43 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.13 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.43 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.37 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.3.45 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.37 // indirect + github.com/aws/aws-sdk-go-v2/service/kms v1.17.3 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.15.2 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.3 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.23.2 // indirect + github.com/aws/smithy-go v1.15.0 // indirect github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect + github.com/benbjohnson/immutable v0.4.3 // indirect github.com/beorn7/perks v1.0.1 // indirect + github.com/bits-and-blooms/bitset v1.10.0 // indirect + github.com/btcsuite/btcd v0.22.1 // indirect + github.com/btcsuite/btcd/btcec/v2 v2.3.0 // indirect + github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 // indirect + github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce // indirect github.com/bytedance/sonic v1.11.6 // indirect github.com/bytedance/sonic/loader v0.1.1 // indirect github.com/c-bata/go-prompt v0.2.6 // indirect @@ -52,18 +84,32 @@ require ( github.com/cloudflare/circl v1.3.7 // indirect github.com/cloudwego/base64x v0.1.4 // indirect github.com/cloudwego/iasm v0.2.0 // indirect + github.com/cockroachdb/errors v1.9.1 // indirect + github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect + github.com/cockroachdb/pebble v0.0.0-20230928194634-aa077af62593 // indirect + github.com/cockroachdb/redact v1.1.3 // indirect + github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect + github.com/consensys/bavard v0.1.13 // indirect + github.com/consensys/gnark-crypto v0.12.1 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect + github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 // indirect + github.com/crate-crypto/go-kzg-4844 v0.7.0 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e // indirect 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/dustin/go-humanize v1.0.1 // indirect github.com/emirpasic/gods v1.18.1 // indirect github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect - github.com/ethereum/go-ethereum v1.13.8 // indirect + github.com/ethereum/c-kzg-4844 v0.4.0 // indirect + github.com/fatih/structtag v1.2.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect + github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/gabriel-vasile/mimetype v1.4.3 // indirect + github.com/gballet/go-verkle v0.1.1-0.20231031103413-a67434b50f46 // indirect + github.com/getsentry/sentry-go v0.18.0 // indirect github.com/gin-contrib/cors v1.7.2 // indirect github.com/gin-contrib/requestid v0.0.6 // indirect github.com/gin-contrib/sse v0.1.0 // indirect @@ -81,39 +127,58 @@ require ( github.com/go-playground/universal-translator v0.18.1 // indirect github.com/go-playground/validator/v10 v10.20.0 // indirect github.com/goccy/go-json v0.10.2 // indirect + github.com/gofrs/flock v0.8.1 // indirect github.com/gogo/protobuf v1.3.3 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect + github.com/golang/protobuf v1.5.4 // indirect + github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect + github.com/google/s2a-go v0.1.7 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect + github.com/googleapis/gax-go/v2 v2.12.4 // indirect github.com/gorilla/websocket v1.5.1 // indirect github.com/grafana/otel-profiling-go v0.5.1 // indirect github.com/grafana/pyroscope-go v1.1.1 // indirect github.com/grafana/pyroscope-go/godeltaprof v0.1.7 // indirect github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc // indirect github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 // indirect + github.com/holiman/billy v0.0.0-20230718173358-1c7e68d277a7 // indirect + github.com/holiman/bloomfilter/v2 v2.0.3 // indirect github.com/holiman/uint256 v1.2.4 // indirect + github.com/huin/goupnp v1.3.0 // indirect github.com/integralist/go-findroot v0.0.0-20160518114804-ac90681525dc // indirect github.com/ipfs/go-log v1.0.5 // indirect github.com/ipfs/go-log/v2 v2.5.1 // indirect + github.com/jackpal/go-nat-pmp v1.0.2 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect + github.com/jftuga/ellipsis v1.0.0 // indirect github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/now v1.1.5 // indirect 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/kevinburke/ssh_config v1.2.0 // indirect github.com/klauspost/compress v1.17.8 // indirect github.com/klauspost/cpuid/v2 v2.2.8 // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/kr/text v0.2.0 // indirect github.com/leodido/go-urn v1.4.0 // indirect + github.com/libp2p/go-libp2p v0.33.0 // indirect + github.com/lmittmann/w3 v0.10.0 // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-localereader v0.0.1 // indirect github.com/mattn/go-runewidth v0.0.15 // indirect github.com/mattn/go-tty v0.0.3 // indirect + github.com/miguelmota/go-ethereum-hdwallet v0.1.1 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect + github.com/mmcloughlin/addchain v0.4.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect github.com/muesli/cancelreader v0.2.2 // indirect github.com/muesli/termenv v0.15.2 // indirect + github.com/olekukonko/tablewriter v0.0.5 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/pelletier/go-toml/v2 v2.2.2 // indirect github.com/pjbgf/sha1cd v0.3.0 // indirect @@ -123,8 +188,12 @@ require ( github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.54.0 // indirect github.com/prometheus/procfs v0.15.0 // indirect + github.com/puzpuzpuz/xsync/v2 v2.5.1 // indirect + github.com/richardwilkes/toolbox v1.74.0 // indirect github.com/rivo/uniseg v0.4.7 // indirect github.com/robfig/cron/v3 v3.0.1 // indirect + github.com/rogpeppe/go-internal v1.12.0 // indirect + github.com/rung/go-safecast v1.0.1 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect github.com/shibukawa/configdir v0.0.0-20170330084843-e180dbdc8da0 // indirect @@ -133,19 +202,28 @@ require ( github.com/shomali11/proper v0.0.0-20190608032528-6e70a05688e7 // indirect github.com/skeema/knownhosts v1.2.2 // indirect github.com/stretchr/testify v1.9.0 // indirect + github.com/supranational/blst v0.3.11 // indirect + github.com/synapsecns/sanguine/services/cctp-relayer v0.0.0-00010101000000-000000000000 // indirect + github.com/synapsecns/sanguine/services/omnirpc v0.0.0-00010101000000-000000000000 // indirect + github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 // indirect + github.com/teivah/onecontext v1.3.0 // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect github.com/tklauser/numcpus v0.8.0 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect + github.com/tyler-smith/go-bip39 v1.1.0 // indirect github.com/ugorji/go/codec v1.2.12 // indirect github.com/uptrace/opentelemetry-go-extra/otelgorm v0.3.1 // indirect github.com/uptrace/opentelemetry-go-extra/otelsql v0.3.1 // indirect github.com/uptrace/opentelemetry-go-extra/otelutil v0.3.1 // indirect github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.1 // indirect + github.com/valyala/fastjson v1.6.4 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 // indirect github.com/yusufpapurcu/wmi v1.2.3 // indirect + go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 // indirect go.opentelemetry.io/contrib/propagators/b3 v1.27.0 // indirect go.opentelemetry.io/otel v1.27.0 // indirect @@ -168,10 +246,14 @@ require ( golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 // indirect golang.org/x/mod v0.18.0 // indirect golang.org/x/net v0.26.0 // indirect + golang.org/x/oauth2 v0.21.0 // indirect golang.org/x/sync v0.7.0 // indirect golang.org/x/sys v0.21.0 // indirect golang.org/x/text v0.16.0 // indirect + golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.22.0 // indirect + google.golang.org/api v0.183.0 // indirect + google.golang.org/genproto v0.0.0-20240528184218-531527333157 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 // indirect google.golang.org/grpc v1.64.0 // indirect @@ -180,6 +262,7 @@ require ( gorm.io/gorm v1.25.10 // indirect k8s.io/klog/v2 v2.120.1 // indirect k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect + rsc.io/tmplfunc v0.0.3 // indirect ) replace ( @@ -191,7 +274,7 @@ replace ( github.com/slack-go/slack => github.com/slack-go/slack v0.12.2 github.com/synapsecns/sanguine/core => ./../../core github.com/synapsecns/sanguine/ethergo => ./../../ethergo - github.com/synapsecns/sanguine/services/explorer => ../../services/explorer + github.com/synapsecns/sanguine/services/cctp-relayer => ./../../services/cctp-relayer github.com/synapsecns/sanguine/services/omnirpc => ../../services/omnirpc - github.com/synapsecns/sanguine/services/scribe => ../../services/scribe + github.com/synapsecns/sanguine/services/rfq => ./../../services/rfq ) diff --git a/contrib/opbot/go.sum b/contrib/opbot/go.sum index 964720227c..487b07d111 100644 --- a/contrib/opbot/go.sum +++ b/contrib/opbot/go.sum @@ -1,32 +1,119 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.43.0/go.mod h1:BOSR3VbTLkk6FDC/TcffxP4NF/FFBGA5ku+jvKOP7pg= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= +cloud.google.com/go v0.51.0/go.mod h1:hWtGJ6gnXH+KgDv+V0zFGDvpi07n3z8ZNj3T1RW0Gcw= +cloud.google.com/go v0.114.0 h1:OIPFAdfrFDFO2ve2U7r/H5SwSbBzEdrBdE7xkgwc+kY= +cloud.google.com/go v0.114.0/go.mod h1:ZV9La5YYxctro1HTPug5lXH/GefROyW8PPD4T8n9J8E= +cloud.google.com/go/auth v0.5.1 h1:0QNO7VThG54LUzKiQxv8C6x1YX7lUrzlAa1nVLF8CIw= +cloud.google.com/go/auth v0.5.1/go.mod h1:vbZT8GjzDf3AVqCcQmqeeM32U9HBFc32vVVAbwDsa6s= +cloud.google.com/go/auth/oauth2adapt v0.2.2 h1:+TTV8aXpjeChS9M+aTtN/TjdQnzJvmzKFt//oWu7HX4= +cloud.google.com/go/auth/oauth2adapt v0.2.2/go.mod h1:wcYjgpZI9+Yu7LyYBg4pqSiaRkfEK3GQcpb7C/uyF1Q= +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/bigtable v1.2.0/go.mod h1:JcVAOl45lrTmQfLj7T6TxyMzIN/3FGGcFm+2xVAli2o= +cloud.google.com/go/compute/metadata v0.3.0 h1:Tz+eQXMEqDIKRsmY3cHTL6FVaynIjX2QxYC4trgAKZc= +cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/iam v1.1.8 h1:r7umDwhj+BQyz0ScZMp4QrGXjSTI3ZINnpgU2nlB/K0= +cloud.google.com/go/iam v1.1.8/go.mod h1:GvE6lyMmfxXauzNq8NbgJbeVQNspG+tcdL/W8QO1+zE= +cloud.google.com/go/kms v1.17.1 h1:5k0wXqkxL+YcXd4viQzTqCgzzVKKxzgrK+rCZJytEQs= +cloud.google.com/go/kms v1.17.1/go.mod h1:DCMnCF/apA6fZk5Cj4XsD979OyHAqFasPuA5Sd0kGlQ= +cloud.google.com/go/longrunning v0.5.7 h1:WLbHekDbjK1fVFD3ibpFFVoyizlLRl73I7YKuAKilhU= +cloud.google.com/go/longrunning v0.5.7/go.mod h1:8GClkudohy1Fxm3owmBGid8W0pSgodEMwEAztp38Xng= +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/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= +collectd.org v0.3.0/go.mod h1:A/8DzQBkF6abtvrT2j/AU/4tiBgJWYyh0y/oB/4MlWE= dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +github.com/AndreasBriese/bbloom v0.0.0-20190306092124-e2d15f34fcf9/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Azure/azure-pipeline-go v0.2.1/go.mod h1:UGSo8XybXnIGZ3epmeBw7Jdz+HiUVpqIlpz/HKHylF4= +github.com/Azure/azure-pipeline-go v0.2.2/go.mod h1:4rQ/NZncSvGqNkkOsNpOU1tgoNuIlp9AfUH5G1tvCHc= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.11.1 h1:E+OJmp2tPvt1W+amx48v1eqbjDYsgN+RzP4q16yV5eM= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.11.1/go.mod h1:a6xsAQUZg+VsS3TJ05SRp524Hs4pZ/AeFSr5ENf0Yjo= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.2 h1:FDif4R1+UUR+00q6wquyX90K7A8dN+R5E8GEadoP7sU= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.2/go.mod h1:aiYBYui4BJ/BJCAIKs92XiPyQfTaBWqvHujDwKb6CBU= github.com/Azure/azure-sdk-for-go/sdk/internal v1.6.0 h1:sUFnFjzDUie80h24I7mrKtwCKgLY9L8h5Tp2x9+TWqk= github.com/Azure/azure-sdk-for-go/sdk/internal v1.6.0/go.mod h1:52JbnQTp15qg5mRkMBHwp0j0ZFwHJ42Sx3zVV5RE9p0= +github.com/Azure/azure-storage-blob-go v0.7.0/go.mod h1:f9YQKtsG1nMisotuTPpO0tjNuEjKRYAcJU8/ydDI++4= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= +github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0= +github.com/Azure/go-autorest/autorest/adal v0.8.0/go.mod h1:Z6vX6WXXuyieHAXwMj0S6HY6e6wcHn37qQMBQlvY3lc= +github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA= +github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+vPmf1Ij9AEBM5FuBIXLmIy0g= +github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= +github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= +github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM= +github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= +github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= 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/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/CloudyKit/fastprinter v0.0.0-20200109182630-33d98a066a53/go.mod h1:+3IMCy2vIlbG1XG/0ggNQv0SvxCAIpPM5b1nCz56Xno= +github.com/CloudyKit/jet/v3 v3.0.0/go.mod h1:HKQPgSJmdK8hdoAbKUUWajkHyHo4RaU5rMdUywE7VMo= +github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= +github.com/DataDog/zstd v1.5.2 h1:vUG4lAyuPCXO0TLbXvPv7EB7cNK1QV/luu55UHLrrn8= +github.com/DataDog/zstd v1.5.2/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= +github.com/DenrianWeiss/tracely v0.0.0-20220624070317-49cf8afaaf18 h1:P59U5VxzQPxbTHXmqFidQI+m8WnYVqNZVtqEgypMqv0= +github.com/DenrianWeiss/tracely v0.0.0-20220624070317-49cf8afaaf18/go.mod h1:vpygTLtVT7OKK9uI2O2jGDA4EWN/r57LgFzg9drqGEY= github.com/Flaque/filet v0.0.0-20201012163910-45f684403088 h1:PnnQln5IGbhLeJOi6hVs+lCeF+B1dRfFKPGXUAez0Ww= github.com/Flaque/filet v0.0.0-20201012163910-45f684403088/go.mod h1:TK+jB3mBs+8ZMWhU5BqZKnZWJ1MrLo8etNVg51ueTBo= github.com/ImVexed/fasturl v0.0.0-20230304231329-4e41488060f3 h1:ClzzXMDDuUbWfNNZqGeYq4PnYOlwlOVIvSyNaIy0ykg= github.com/ImVexed/fasturl v0.0.0-20230304231329-4e41488060f3/go.mod h1:we0YA5CsBbH5+/NUzC/AlMmxaDtWlXeNsqrwXjTzmzA= +github.com/Joker/hpp v1.0.0/go.mod h1:8x5n+M1Hp5hC0g8okX3sR3vFQwynaX/UgSOM9MeBKzY= +github.com/LK4D4/trylock v0.0.0-20191027065348-ff7e133a5c54 h1:sg9CWNOhr58hMGmJ0q7x7jQ/B1RK/GyHNmeaYCJos9M= +github.com/LK4D4/trylock v0.0.0-20191027065348-ff7e133a5c54/go.mod h1:uHbOgfPowb74TKlV4AR5Az2haG6evxzM8Lmj1Xil25E= +github.com/LK4d4/trylock v0.0.0-20191027065348-ff7e133a5c54 h1:mD+/7fgGmTO9w3g8xYfovo7GBSkyjkmQiacVj9VPx+0= +github.com/LK4d4/trylock v0.0.0-20191027065348-ff7e133a5c54/go.mod h1:sAFuaugbNEiH1k50YhFNuD2+Gwga8oetKMT2RSFpglU= github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEVMRuU21PR1EtLVZJmdB18Gu3Rw= github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk= +github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/ProtonMail/go-crypto v1.0.0 h1:LRuvITjQWX+WIfr930YHG2HNfjR1uOfyf5vE0kC2U78= github.com/ProtonMail/go-crypto v1.0.0/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= +github.com/Shopify/goreferrer v0.0.0-20181106222321-ec9c9a553398/go.mod h1:a1uqRtAwp2Xwc6WNPJEufxJ7fx3npB4UV/JOLmbu5I0= +github.com/Soft/iter v0.1.0 h1:fEWgwubt0cnnJo3Vd2IzYcaJ5ORI/dJDkaC3loI7Ys8= +github.com/Soft/iter v0.1.0/go.mod h1:8brXuNcweP5AZyF0Yzjvje+IR/6RNFyyLF6DTMiPXRc= +github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= +github.com/VictoriaMetrics/fastcache v1.6.0/go.mod h1:0qHz5QP0GMX4pfmMA/zt5RgfNuXJrTP0zS7DqpHGGTw= +github.com/VictoriaMetrics/fastcache v1.12.1 h1:i0mICQuojGDL3KblA7wUNlY5lOK6a4bwt3uRKnkZU40= +github.com/VictoriaMetrics/fastcache v1.12.1/go.mod h1:tX04vaqcNoQeGLD+ra5pU5sWkuxnzWhEzLwhP9w653o= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY= +github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= +github.com/alecthomas/assert v1.0.0 h1:3XmGh/PSuLzDbK3W2gUbRXwgW5lqPkuqvRgeQ30FI5o= +github.com/alecthomas/assert v1.0.0/go.mod h1:va/d2JC+M7F6s+80kl/R3G7FUiW6JzUO+hPhLyJ36ZY= +github.com/alecthomas/colour v0.1.0 h1:nOE9rJm6dsZ66RGWYSFrXw461ZIt9A6+nHgL7FRrDUk= +github.com/alecthomas/colour v0.1.0/go.mod h1:QO9JBoKquHd+jz9nshCh40fOfO+JzsoXy8qTHF68zU0= +github.com/alecthomas/repr v0.0.0-20210801044451-80ca428c5142 h1:8Uy0oSf5co/NZXje7U1z8Mpep++QJOldL2hs/sBQf48= +github.com/alecthomas/repr v0.0.0-20210801044451-80ca428c5142/go.mod h1:2kn6fqh/zIyPLmm3ugklbEi5hg5wS435eygvNfaDQL8= +github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/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-20231202071711-9a357b53e9c9 h1:ez/4by2iGztzR4L0zgAOR8lTQK9VlyBVVd7G4omaOQs= github.com/alecthomas/units v0.0.0-20231202071711-9a357b53e9c9/go.mod h1:OMCwj8VM1Kc9e19TLln2VL61YJF0x1XFtfdL4JdbSyE= +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= +github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= +github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M= +github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4= +github.com/apache/arrow/go/arrow v0.0.0-20191024131854-af6fa24be0db/go.mod h1:VTxUBvSJ3s3eHAg65PNgrsn5BtqCRPdmyXh6rAfdxN0= +github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= 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= @@ -35,26 +122,95 @@ github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI= github.com/aws/aws-sdk-go v1.53.16 h1:8oZjKQO/ml1WLUZw5hvF7pvYjPf8o9f57Wldoy/q9Qc= github.com/aws/aws-sdk-go v1.53.16/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= +github.com/aws/aws-sdk-go-v2 v1.2.0/go.mod h1:zEQs02YRBw1DjK0PoJv3ygDYOFTre1ejlJWl8FwAuQo= +github.com/aws/aws-sdk-go-v2 v1.16.5/go.mod h1:Wh7MEsmEApyL5hrWzpDkba4gwAPc5/piwLVLFnCxp48= +github.com/aws/aws-sdk-go-v2 v1.21.2 h1:+LXZ0sgo8quN9UOKXXzAWRT3FWd4NxeXWOZom9pE7GA= +github.com/aws/aws-sdk-go-v2 v1.21.2/go.mod h1:ErQhvNuEMhJjweavOYhxVkn2RUx7kQXVATHrjKtxIpM= +github.com/aws/aws-sdk-go-v2/config v1.1.1/go.mod h1:0XsVy9lBI/BCXm+2Tuvt39YmdHwS5unDQmxZOYe8F5Y= +github.com/aws/aws-sdk-go-v2/config v1.18.45 h1:Aka9bI7n8ysuwPeFdm77nfbyHCAKQ3z9ghB3S/38zes= +github.com/aws/aws-sdk-go-v2/config v1.18.45/go.mod h1:ZwDUgFnQgsazQTnWfeLWk5GjeqTQTL8lMkoE1UXzxdE= +github.com/aws/aws-sdk-go-v2/credentials v1.1.1/go.mod h1:mM2iIjwl7LULWtS6JCACyInboHirisUUdkBPoTHMOUo= +github.com/aws/aws-sdk-go-v2/credentials v1.13.43 h1:LU8vo40zBlo3R7bAvBVy/ku4nxGEyZe9N8MqAeFTzF8= +github.com/aws/aws-sdk-go-v2/credentials v1.13.43/go.mod h1:zWJBz1Yf1ZtX5NGax9ZdNjhhI4rgjfgsyk6vTY1yfVg= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.0.2/go.mod h1:3hGg3PpiEjHnrkrlasTfxFqUsZ2GCk/fMUn4CbKgSkM= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.13 h1:PIktER+hwIG286DqXyvVENjgLTAwGgoeriLDD5C+YlQ= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.13/go.mod h1:f/Ib/qYjhV2/qdsf79H3QP/eRE4AkVyEf6sk7XfZ1tg= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.12/go.mod h1:Afj/U8svX6sJ77Q+FPWMzabJ9QjbwP32YlopgKALUpg= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.43 h1:nFBQlGtkbPzp/NjZLuFxRqmT91rLJkgvsEQs68h962Y= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.43/go.mod h1:auo+PiyLl0n1l8A0e8RIeR8tOzYPfZZH/JNlrJ8igTQ= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.6/go.mod h1:FwpAKI+FBPIELJIdmQzlLtRe8LQSOreMcM2wBsPMvvc= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.37 h1:JRVhO25+r3ar2mKGP7E0LDl8K9/G36gjlqca5iQbaqc= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.37/go.mod h1:Qe+2KtKml+FEsQF/DHmDV+xjtche/hwoF75EG4UlHW8= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.45 h1:hze8YsjSh8Wl1rYa1CJpRmXP21BvOBuc76YhW0HsuQ4= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.45/go.mod h1:lD5M20o09/LCuQ2mE62Mb/iSdSlCNuj6H5ci7tW7OsE= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.0.2/go.mod h1:45MfaXZ0cNbeuT0KQ1XJylq8A6+OpVV2E5kvY/Kq+u8= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.37 h1:WWZA/I2K4ptBS1kg0kV1JbBtG/umed0vwHRrmcr9z7k= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.37/go.mod h1:vBmDnwWXWxNPFRMmG2m/3MKOe+xEcMDo1tanpaWCcck= +github.com/aws/aws-sdk-go-v2/service/kms v1.17.3 h1:M9bIvNNpbtvDTlZC5I38Kn2yuinJZ/9L+AM2Qom23zI= +github.com/aws/aws-sdk-go-v2/service/kms v1.17.3/go.mod h1:EKkrWWXwWYf8x3Nrm6Oix3zZP9NRBHqxw5buFGVBHA0= +github.com/aws/aws-sdk-go-v2/service/route53 v1.1.1/go.mod h1:rLiOUrPLW/Er5kRcQ7NkwbjlijluLsrIbu/iyl35RO4= +github.com/aws/aws-sdk-go-v2/service/sso v1.1.1/go.mod h1:SuZJxklHxLAXgLTc1iFXbEWkXs7QRTQpCLGaKIprQW0= +github.com/aws/aws-sdk-go-v2/service/sso v1.15.2 h1:JuPGc7IkOP4AaqcZSIcyqLpFSqBWK32rM9+a1g6u73k= +github.com/aws/aws-sdk-go-v2/service/sso v1.15.2/go.mod h1:gsL4keucRCgW+xA85ALBpRFfdSLH4kHOVSnLMSuBECo= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.3 h1:HFiiRkf1SdaAmV3/BHOFZ9DjFynPHj8G/UIO1lQS+fk= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.3/go.mod h1:a7bHA82fyUXOm+ZSWKU6PIoBxrjSprdLoM8xPYvzYVg= +github.com/aws/aws-sdk-go-v2/service/sts v1.1.1/go.mod h1:Wi0EBZwiz/K44YliU0EKxqTCJGUfYTWXrrBwkq736bM= +github.com/aws/aws-sdk-go-v2/service/sts v1.23.2 h1:0BkLfgeDjfZnZ+MhB3ONb01u9pwFYTCZVhlsSSBvlbU= +github.com/aws/aws-sdk-go-v2/service/sts v1.23.2/go.mod h1:Eows6e1uQEsc4ZaHANmsPRzAKcVDrcmjjWiih2+HUUQ= +github.com/aws/smithy-go v1.1.0/go.mod h1:EzMw8dbp/YJL4A5/sbhGddag+NPT7q084agLbB9LgIw= +github.com/aws/smithy-go v1.11.3/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= +github.com/aws/smithy-go v1.15.0 h1:PS/durmlzvAFpQHDs4wi4sNNP9ExsqZh6IlfdHXgKK8= +github.com/aws/smithy-go v1.15.0/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8= +github.com/aymerick/raymond v2.0.3-0.20180322193309-b565731e1464+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g= github.com/badoux/checkmail v1.2.4 h1:4zMjdYDjE2Q7xF06VNfyN8P9JGU7epLjNb+Yu5OThVI= github.com/badoux/checkmail v1.2.4/go.mod h1:XroCOBU5zzZJcLvgwU15I+2xXyCdTWXyR9MGfRhBYy0= 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/bcicen/jstream v1.0.1 h1:BXY7Cu4rdmc0rhyTVyT3UkxAiX3bnLpKLas9btbH5ck= +github.com/bcicen/jstream v1.0.1/go.mod h1:9ielPxqFry7Y4Tg3j4BfjPocfJ3TbsRtXOAYXYmRuAQ= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= +github.com/benbjohnson/immutable v0.4.3 h1:GYHcksoJ9K6HyAUpGxwZURrbTkXA0Dh4otXGqbhdrjA= +github.com/benbjohnson/immutable v0.4.3/go.mod h1:qJIKKSmdqz1tVzNtst1DZzvaqOU1onk1rc03IeM3Owk= +github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bits-and-blooms/bitset v1.10.0 h1:ePXTeiPEazB5+opbv5fr8umg2R/1NlzgDsyepwsSr88= github.com/bits-and-blooms/bitset v1.10.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= +github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40/go.mod h1:8rLXio+WjiTceGBHIoTvn60HIbs7Hm7bcHjyrSqYB9c= +github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= github.com/brianvoe/gofakeit/v6 v6.9.0 h1:UCGhPCKLiqBc910TKS7LcOGf74NozftibFCbGIS6GZQ= github.com/brianvoe/gofakeit/v6 v6.9.0/go.mod h1:palrJUk4Fyw38zIFB/uBZqsgzW5VsNllhHKKwAebzew= +github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= +github.com/btcsuite/btcd v0.21.0-beta/go.mod h1:ZSWyehm27aAuS9bvkATT+Xte3hjHZ+MRgMY/8NJ7K94= +github.com/btcsuite/btcd v0.22.1 h1:CnwP9LM/M9xuRrGSCGeMVs9iv09uMqwsVX7EeIpgV2c= +github.com/btcsuite/btcd v0.22.1/go.mod h1:wqgTSL29+50LRkmOVknEdmt8ZojIzhuWvgu/iptuN7Y= github.com/btcsuite/btcd/btcec/v2 v2.3.0 h1:S/6K1GEwlEsFzZP4cOOl5mg6PEd/pr0zz7hvXcaxhJ4= github.com/btcsuite/btcd/btcec/v2 v2.3.0/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04= +github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 h1:q0rUy8C/TYNBQS1+CGKw68tLOFYSNEs0TFnxxnS9+4U= +github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/btcutil v1.0.2/go.mod h1:j9HUFwoQRsZL3V4n+qG+CUnEGHOarIxfC3Le2Yhbcts= +github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce h1:YtWJF7RHm2pYCvA5t0RPmAaLUhREsKuKd+SLhxFbFeQ= +github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce/go.mod h1:0DVlHczLPewLcPGEIeUEzfOJhqGPQ0mJJRDBtD307+o= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/goleveldb v1.0.0/go.mod h1:QiK9vBlgftBg6rWQIj6wFzbPfRjiykIEhBH4obrXJ/I= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +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/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= 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/c-bata/go-prompt v0.2.2/go.mod h1:VzqtzE2ksDBcdln8G7mk2RX9QyGjH+OVqOCSiVIqS34= github.com/c-bata/go-prompt v0.2.6 h1:POP+nrHE+DfLYx370bedwNhsqmpCUynWPxuHi0C5vZI= github.com/c-bata/go-prompt v0.2.6/go.mod h1:/LMAke8wD2FsNu9EXNdHxNLbd9MedkPnCdfpU9wwHfY= github.com/catppuccin/go v0.2.0 h1:ktBeIrIP42b/8FGiScP9sgrWOss3lw0Z5SktRoithGA= @@ -62,6 +218,12 @@ github.com/catppuccin/go v0.2.0/go.mod h1:8IHJuMGaUUjQM82qBrGNBv7LFq6JI3NnQCF6MO github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/cespare/cp v0.1.0/go.mod h1:SOGHArjBr4JWaSDEVpWpo/hNg6RoKrls6Oh40hiwW+s= +github.com/cespare/cp v1.1.1 h1:nCb6ZLdB7NRaqsm91JtQTAme2SKJzXVsdPIPkyJr1MU= +github.com/cespare/cp v1.1.1/go.mod h1:SOGHArjBr4JWaSDEVpWpo/hNg6RoKrls6Oh40hiwW+s= +github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= +github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +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/charmbracelet/bubbles v0.18.0 h1:PYv1A036luoBGroX6VWjQIE9Syf2Wby2oOl/39KLfy0= @@ -86,23 +248,58 @@ github.com/charmbracelet/x/term v0.1.1 h1:3cosVAiPOig+EV4X9U+3LDgtwwAoEzJjNdwbXD github.com/charmbracelet/x/term v0.1.1/go.mod h1:wB1fHt5ECsu3mXYusyzcngVWWlu1KKUmmLhfgr/Flxw= github.com/charmbracelet/x/windows v0.1.2 h1:Iumiwq2G+BRmgoayww/qfcvof7W/3uLoelhxojXlRWg= github.com/charmbracelet/x/windows v0.1.2/go.mod h1:GLEO/l+lizvFDBPLIOk+49gdX49L9YWMB5t+DZd0jkQ= +github.com/cheekybits/genny v1.0.0 h1:uGGa4nei+j20rOSeDeP5Of12XVm7TGUd4dJA9RDitfE= +github.com/cheekybits/genny v1.0.0/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/logex v1.2.1 h1:XHDu3E6q+gdHgsdTPH6ImJMIp436vR6MPtH8gP05QzM= +github.com/chzyer/logex v1.2.1/go.mod h1:JLbx6lG2kDbNRFnfkgvh4eRJRPX1QCoOIWomwysCBrQ= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/chzyer/test v1.0.0 h1:p3BQDXSxOhOG0P9z6/hGnII4LGiEPOYBhs8asl/fC04= +github.com/chzyer/test v1.0.0/go.mod h1:2JlltgoNkt4TW/z9V/IzDdFaMTM2JPIi26O1pF38GC8= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU= github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA= +github.com/cloudflare/cloudflare-go v0.14.0/go.mod h1:EnwdgGMaFOruiPZRFSgn+TsQ3hQ7C/YWzIGLeu5c304= github.com/cloudwego/base64x v0.1.4 h1:jwCgWpFanWmN8xoIUHa2rtzmkd5J2plF/dnLS6Xd/0Y= github.com/cloudwego/base64x v0.1.4/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= github.com/cloudwego/iasm v0.2.0 h1:1KNIy1I1H9hNNFEEH3DVnI4UujN+1zjpuk6gwHLTssg= github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cockroachdb/datadriven v1.0.2/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= +github.com/cockroachdb/datadriven v1.0.3-0.20230801171734-e384cf455877 h1:1MLK4YpFtIEo3ZtMA5C795Wtv5VuUnrXX7mQG+aHg6o= +github.com/cockroachdb/datadriven v1.0.3-0.20230801171734-e384cf455877/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= +github.com/cockroachdb/errors v1.9.1 h1:yFVvsI0VxmRShfawbt/laCIDy/mtTqqnvoNgiy5bEV8= +github.com/cockroachdb/errors v1.9.1/go.mod h1:2sxOtL2WIc096WSZqZ5h8fa17rdDq9HZOZLBCor4mBk= +github.com/cockroachdb/logtags v0.0.0-20211118104740-dabe8e521a4f/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= +github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE= +github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= +github.com/cockroachdb/pebble v0.0.0-20230928194634-aa077af62593 h1:aPEJyR4rPBvDmeyi+l/FS/VtA00IWvjeFvjen1m1l1A= +github.com/cockroachdb/pebble v0.0.0-20230928194634-aa077af62593/go.mod h1:6hk1eMY/u5t+Cf18q5lFMUA1Rc+Sm5I6Ra1QuPyxXCo= +github.com/cockroachdb/redact v1.1.3 h1:AKZds10rFSIj7qADf0g46UixK8NNLwWTNdCIGS5wfSQ= +github.com/cockroachdb/redact v1.1.3/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/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0/go.mod h1:4Zcjuz89kmFXt9morQgcfYZAYZ5n8WHjt81YYWIwtTM= +github.com/consensys/bavard v0.1.8-0.20210406032232-f3452dc9b572/go.mod h1:Bpd0/3mZuaj6Sj+PqrmIquiOKy397AKGThQPaGzNXAQ= github.com/consensys/bavard v0.1.13 h1:oLhMLOFGTLdlda/kma4VOJazblc7IM5y5QPd2A/YjhQ= github.com/consensys/bavard v0.1.13/go.mod h1:9ItSMtA/dXMAiL7BG6bqW2m3NdSEObYWoH223nGHukI= +github.com/consensys/gnark-crypto v0.4.1-0.20210426202927-39ac3d4b3f1f/go.mod h1:815PAHg3wvysy0SyIqanF8gZ0Y1wjk/hrDHD/iT88+Q= github.com/consensys/gnark-crypto v0.12.1 h1:lHH39WuuFgVHONRl3J0LRBtuYdQTumFSDtJF7HpyG8M= github.com/consensys/gnark-crypto v0.12.1/go.mod h1:v2Gy7L/4ZRosZ7Ivs+9SfUDr0f5UlG+EM5t7MPHiLuY= github.com/containerd/continuity v0.4.2 h1:v3y/4Yz5jwnvqPKJJ+7Wf93fyWoCB3F5EclWG023MDM= github.com/containerd/continuity v0.4.2/go.mod h1:F6PTNCKepoxEaXLQp3wDAjygEnImnZ/7o4JzpodfroQ= +github.com/coreos/etcd v3.3.10+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/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= +github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 h1:d28BXYi+wUpz1KBmiF9bWrjEMacUEREV6MBi2ODnrfQ= +github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233/go.mod h1:geZJZH3SzKCqnz5VT0q/DyIG/tvu/dZk+VIfXicupJs= github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA= github.com/crate-crypto/go-kzg-4844 v0.7.0/go.mod h1:1kMhvPgI0Ky3yIa+9lFySEBUBXkYxeOi8ZF1sYioxhc= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= @@ -110,31 +307,53 @@ github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53E github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e h1:5jVSh2l/ho6ajWhSPNN84eHEdq3dp0T7+f6r3Tc6hsk= github.com/danielkov/gin-helmet v0.0.0-20171108135313-1387e224435e/go.mod h1:IJgIiGUARc4aOr4bOQ85klmjsShkEEfiRc6q/yBSfo8= +github.com/dave/jennifer v1.2.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davidmytton/url-verifier v1.0.1 h1:eTSdMo5v0HtvrFObYInmt/WTmy5Izlh5gAa0AtrUzKc= github.com/davidmytton/url-verifier v1.0.1/go.mod h1:kha47HNj0Zg0cozShEaIEPmT3nn7c8N1TGnh8U2B4jc= +github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea/go.mod h1:93vsz/8Wt4joVM7c2AVqh+YRMiUSc14yDtF28KmMOgQ= github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80NsVHagjM= github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= +github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= +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/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218= +github.com/deepmap/oapi-codegen v1.8.2 h1:SegyeYGcdi0jLLrpbCMoJxnUUn8GBXHsvr4rbzjuhfU= +github.com/deepmap/oapi-codegen v1.8.2/go.mod h1:YLgSKSDv/bZQB7N4ws6luhozi3cEdRktEqrX88CvjIw= github.com/dennwc/varint v1.0.0 h1:kGNFFSSw8ToIy3obO/kKr8U9GZYUAxQEVuix4zfDWzE= github.com/dennwc/varint v1.0.0/go.mod h1:hnItb35rvZvJrbTALZtY/iQfDs48JKRG1RPpgziApxA= +github.com/dgraph-io/badger v1.6.0/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6psNgSztDR4= +github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/dgrr/http2 v0.3.5 h1:R54Afxa+yX21j64nbh3+qcj8vhvfuCows0NCxk83c54= +github.com/dgrr/http2 v0.3.5/go.mod h1:ZYb0czp1g5/p7q01JWWKA6qkERz8SScP8KL62ugeqes= +github.com/dgryski/go-bitstream v0.0.0-20180413035011-3522498ce2c8/go.mod h1:VMaSuZ+SZcx/wljOQKvp5srsbCiKDEb6K2wC4+PiBmQ= +github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/dlclark/regexp2 v1.2.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= github.com/docker/cli v26.0.1+incompatible h1:eZDuplk2jYqgUkNLDYwTBxqmY9cM3yHnmN6OIUEjL3U= github.com/docker/cli v26.0.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/docker v1.4.2-0.20180625184442-8e610b2b55bf/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker v26.1.3+incompatible h1:lLCzRbrVZrljpVNobJu1J2FHk8V0s4BawoZippkc+xo= github.com/docker/docker v26.1.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/dop251/goja v0.0.0-20200721192441-a695b0cdd498/go.mod h1:Mw6PkjjMXWbTj+nnj4s3QPXq1jaT0s5pC0iFD4+BOAA= github.com/dubonzi/otelresty v1.2.0 h1:tLWW1J0paY4Fugh5cD3qhMFHNWgM5LSXEfPCW03jyi0= github.com/dubonzi/otelresty v1.2.0/go.mod h1:oMTNjqB31Fh8nFEWqrk+4diB4YwSmEy3zpBzxGHeLXA= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/dvyukov/go-fuzz v0.0.0-20200318091601-be3528f3a813/go.mod h1:11Gm+ccJnvAhCNLlf5+cS9KjtbaD5I5zaZpFMsTHWTw= +github.com/eclipse/paho.mqtt.golang v1.2.0/go.mod h1:H9keYFcgq3Qr5OUJm/JZI/i6U7joQ8SYLhZwfeOo6Ts= +github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= +github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385/go.mod h1:0vRUJqYpeSZifjYj7uP3BG/gKcuzL9xWVV/Y+cK33KM= github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a h1:mATvB/9r/3gvcejNsXKSkQ6lcIaNec2nyfOdlTBR2lU= github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a/go.mod h1:Ro8st/ElPeALwNFlcTpWmkr6IoMFfkjXAvTHpevnDsM= github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= @@ -142,30 +361,65 @@ github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FM github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f h1:Y/CXytFA4m6baUTXGLOoWe4PQhGxaX0KpnayAqC48p4= github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f/go.mod h1:vw97MGsxSvLiUE2X8qFplwetxpGLQrlU1Q9AUEIzCaM= +github.com/etcd-io/bbolt v1.3.3/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw= github.com/ethereum/c-kzg-4844 v0.4.0 h1:3MS1s4JtA868KpJxroZoepdV0ZKBp3u/O5HcZ7R3nlY= github.com/ethereum/c-kzg-4844 v0.4.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0= +github.com/ethereum/go-ethereum v1.10.4/go.mod h1:nEE0TP5MtxGzOMd7egIrbPJMQBnhVU3ELNxhBglIzhg= github.com/ethereum/go-ethereum v1.13.8 h1:1od+thJel3tM52ZUNQwvpYOeRHlbkVFZ5S8fhi0Lgsg= github.com/ethereum/go-ethereum v1.13.8/go.mod h1:sc48XYQxCzH3fG9BcrXCOOgQk2JfZzNAmIKnceogzsA= +github.com/fasthttp-contrib/websocket v0.0.0-20160511215533-1f3b11f56072/go.mod h1:duJ4Jxv5lDcvg4QuQr0oowTf7dz4/CR8NtyCooz9HL8= +github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= +github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4= +github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0= +github.com/fjl/memsize v0.0.2 h1:27txuSD9or+NZlnOWdKUxeBzTAUkWCVh+4Gf2dWFOzA= +github.com/fjl/memsize v0.0.2/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0= +github.com/flowchartsman/swaggerui v0.0.0-20221017034628-909ed4f3701b h1:oy54yVy300Db264NfQCJubZHpJOl+SoT6udALQdFbSI= +github.com/flowchartsman/swaggerui v0.0.0-20221017034628-909ed4f3701b/go.mod h1:/RJwPD5L4xWgCbqQ1L5cB12ndgfKKT54n9cZFf+8pus= +github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= +github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= +github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= +github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= +github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww= +github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 h1:f6D9Hr8xV8uYKlyuj8XIruxlh9WjVjdh1gIicAS7ays= +github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww= +github.com/gballet/go-verkle v0.1.1-0.20231031103413-a67434b50f46 h1:BAIP2GihuqhwdILrV+7GJel5lyPV3u1+PgzrWLc0TkE= +github.com/gballet/go-verkle v0.1.1-0.20231031103413-a67434b50f46/go.mod h1:QNpY22eby74jVhqH4WhDLDwxc/vqsern6pW+u2kbkpc= +github.com/getsentry/sentry-go v0.12.0/go.mod h1:NSap0JBYWzHND8oMbyi0+XZhUalc1TBdRL1M71JZW2c= +github.com/getsentry/sentry-go v0.18.0 h1:MtBW5H9QgdcJabtZcuJG80BMOwaBpkRDZkxRkNC1sN0= +github.com/getsentry/sentry-go v0.18.0/go.mod h1:Kgon4Mby+FJ7ZWHFUAZgVaIa8sxHtnRJRLTXZr51aKQ= github.com/gin-contrib/cors v1.7.2 h1:oLDHxdg8W/XDoN/8zamqk/Drgt4oVZDvaV0YmvVICQw= github.com/gin-contrib/cors v1.7.2/go.mod h1:SUJVARKgQ40dmrzgXEVxj2m7Ig1v1qIboQkPDTQ9t2E= github.com/gin-contrib/requestid v0.0.6 h1:mGcxTnHQ45F6QU5HQRgQUDsAfHprD3P7g2uZ4cSZo9o= github.com/gin-contrib/requestid v0.0.6/go.mod h1:9i4vKATX/CdggbkY252dPVasgVucy/ggBeELXuQztm4= +github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-contrib/zap v0.2.0 h1:HLvt3rZXyC8XC+s2lHzMFow3UDqiEbfrBWJyHHS6L8A= github.com/gin-contrib/zap v0.2.0/go.mod h1:eqfbe9ZmI+GgTZF6nRiC2ZwDeM4DK1Viwc8OxTCphh0= +github.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/3rZdM= github.com/gin-gonic/gin v1.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk= github.com/gin-gonic/gin v1.10.0 h1:nTuyha1TYqgedzytsKYqna+DfLos46nTv2ygFy86HFU= github.com/gin-gonic/gin v1.10.0/go.mod h1:4PMNQiOhvDRa013RKVbsiNwoyezlm2rm0uX/T7kzp5Y= github.com/gliderlabs/ssh v0.3.7 h1:iV3Bqi942d9huXnzEF2Mt+CY9gLu8DNM4Obd+8bODRE= github.com/gliderlabs/ssh v0.3.7/go.mod h1:zpHEXBstFnQYtGnB8k8kQLol82umzn/2/snG7alWVD8= +github.com/glycerine/go-unsnap-stream v0.0.0-20180323001048-9f0cb55181dd/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE= +github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= +github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= +github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI= github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic= github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU= @@ -174,10 +428,15 @@ github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMj github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399/go.mod h1:1OCfN199q1Jm3HZlxleg+Dw/mwps2Wbk9frAWm+4FII= github.com/go-git/go-git/v5 v5.12.0 h1:7Md+ndsjrzZxbddRDZjF14qK+NN56sy6wkqaVrjZtys= github.com/go-git/go-git/v5 v5.12.0/go.mod h1:FTM9VKtnI2m65hNI/TenDDDnUf2Q9FHnXYjuz9i5OEY= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-http-utils/headers v0.0.0-20181008091004-fed159eddc2a h1:v6zMvHuY9yue4+QkG/HQ/W67wvtQmWJ4SDo9aK/GIno= github.com/go-http-utils/headers v0.0.0-20181008091004-fed159eddc2a/go.mod h1:I79BieaU4fxrw4LMXby6q5OS9XnoR9UIKLOzDFjUmuw= +github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= +github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= +github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.6.0 h1:wGYYu3uicYdqXVgoYbvnkrPVXkuLM1p1ifugDMEdRi4= github.com/go-logfmt/logfmt v0.6.0/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= @@ -186,6 +445,8 @@ 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-martini/martini v0.0.0-20170121215854-22fa46961aab/go.mod h1:/P9AEU963A2AYjv4d1V5eVL1CQbEJq6aCNHDDjibzu8= +github.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8= 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= @@ -203,36 +464,112 @@ github.com/go-playground/validator/v10 v10.20.0 h1:K9ISHbSaI0lyB2eWMPJo+kOS/FBEx github.com/go-playground/validator/v10 v10.20.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= github.com/go-resty/resty/v2 v2.13.1 h1:x+LHXBI2nMB1vqndymf26quycC4aggYJ7DECYbiz03g= github.com/go-resty/resty/v2 v2.13.1/go.mod h1:GznXlLxkq6Nh4sU59rPmUw3VtgpO3aS96ORAI6Q7d+0= +github.com/go-sourcemap/sourcemap v2.1.2+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= +github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= +github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc= +github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= +github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-test/deep v1.0.4 h1:u2CU3YKy9I2pmu9pX0eq50wCgjfGIt539SqR7FbHiho= github.com/go-test/deep v1.0.4/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= +github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= +github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= +github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= 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= +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 v3.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +github.com/gofrs/uuid v4.2.0+incompatible h1:yyYWMnhkhrKwwr8gAOcOCYxOOscHgDS9yZgBrnJfGa0= +github.com/gofrs/uuid v4.2.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/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= +github.com/gogo/status v1.1.0/go.mod h1:BFv9nrluPLmrS0EmGVvLaPNmRosr9KapBYd5/hpY1WM= +github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY= +github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= +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= github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= +github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= +github.com/golang/geo v0.0.0-20190916061304-5b978397cfec/go.mod h1:QZ0nwyI2jOfgRAoBvP+ab5aRr7c9x7lhGEJrKvBwjWI= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +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/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +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.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= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/gomodule/redigo v1.7.1-0.20190724094224-574c33c3df38/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/flatbuffers v1.11.0/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +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.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.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= +github.com/google/go-cmp v0.5.8/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-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/gofuzz v1.1.1-0.20200604201612-c04b05f3adfa/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +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/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= 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.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.1.5/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= +github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/googleapis/gax-go/v2 v2.12.4 h1:9gWcmF85Wvq4ryPFvGFaOgPIs1AQX0d0bcbGw4Z96qg= +github.com/googleapis/gax-go/v2 v2.12.4/go.mod h1:KYEYLorsnIGDi/rPC8b5TdlB9kbKoFubselGIoBMCwI= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= 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= @@ -244,48 +581,146 @@ github.com/grafana/pyroscope-go/godeltaprof v0.1.7 h1:C11j63y7gymiW8VugJ9ZW0pWfx github.com/grafana/pyroscope-go/godeltaprof v0.1.7/go.mod h1:Tk376Nbldo4Cha9RgiU7ik8WKFkNpfds98aUzS8omLE= 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/graphql-go v0.0.0-20201113091052-beb923fada29/go.mod h1:9CQHMSxwO4MprSdzoIEobiHpoLtHm77vfxsvsIN5Vuc= +github.com/graph-gophers/graphql-go v1.3.0 h1:Eb9x/q6MFpCLz7jBCiP/WTxjSDrYLR1QY41SORZyNJ0= +github.com/graph-gophers/graphql-go v1.3.0/go.mod h1:9CQHMSxwO4MprSdzoIEobiHpoLtHm77vfxsvsIN5Vuc= github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 h1:bkypFPDjIYGfCYD5mRBvpqxfYX1YCS1PXdKYWi8FsN0= github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0/go.mod h1:P+Lt/0by1T8bfcF3z737NnSbmxQAppXMRziHUxPOC8k= github.com/hako/durafmt v0.0.0-20210608085754-5c1018a4e16b h1:wDUNC2eKiL35DbLvsDhiblTUXHxcOPwQSCzi7xpQUN4= github.com/hako/durafmt v0.0.0-20210608085754-5c1018a4e16b/go.mod h1:VzxiSdG6j1pi7rwGm/xYI5RbtpBgM8sARDXlvEvxlu0= +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-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-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +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= +github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= +github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iPY6p1c= +github.com/hashicorp/golang-lru v1.0.2/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= +github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hedzr/cmdr v1.10.49 h1:AQikWGtJOv1Ty5gnNpW/SI7VKSoUEbuy9wSPSDhUNHQ= +github.com/hedzr/cmdr v1.10.49/go.mod h1:VO8NQdh+zZlRrEcc+StjeEZ6/I3uuZ3v0mYDDRqNVT8= +github.com/hedzr/log v1.6.3 h1:qCdnDUpeQ+E9vmfDKk+IHjA0QipnWNds2mr4hh6iGxA= +github.com/hedzr/log v1.6.3/go.mod h1:goMXeVWLSKZYxNs+10viGe2O1fbzBNnnLpdx0MoCRkA= +github.com/holiman/billy v0.0.0-20230718173358-1c7e68d277a7 h1:3JQNjnMRil1yD0IfZKHF9GxxWKDJGj8I0IqOUol//sw= +github.com/holiman/billy v0.0.0-20230718173358-1c7e68d277a7/go.mod h1:5GuXa7vkL8u9FkFuWdVvfR5ix8hRB7DbOAaYULamFpc= +github.com/holiman/bloomfilter/v2 v2.0.3 h1:73e0e/V0tCydx14a0SCYS/EWCxgwLZ18CZcZKVu0fao= +github.com/holiman/bloomfilter/v2 v2.0.3/go.mod h1:zpoh+gs7qcpqrHr3dB55AMiJwo0iURXE7ZOP9L9hSkA= +github.com/holiman/uint256 v1.2.0/go.mod h1:y4ga/t+u+Xwd7CpDgZESaRcWy0I7XMlTMA25ApIH5Jw= github.com/holiman/uint256 v1.2.4 h1:jUc4Nk8fm9jZabQuqr2JzednajVmBpC+oiTiXZJEApU= github.com/holiman/uint256 v1.2.4/go.mod h1:EOMSn4q6Nyt9P6efbI3bueV4e1b3dGlUCXeiRV4ng7E= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/huin/goupnp v1.0.1-0.20210310174557-0ca763054c88/go.mod h1:nNs7wvRfN1eKaMknBydLNQU6146XQim8t4h+q90biWo= +github.com/huin/goupnp v1.3.0 h1:UvLUlWDNpoUdYzb2TCn+MuTWtcjXKSza2n6CBdQ0xXc= +github.com/huin/goupnp v1.3.0/go.mod h1:gnGPsThkYa7bFi/KWmEysQRf48l2dvR5bxr2OFckNX8= +github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150/go.mod h1:PpLOETDnJ0o3iZrZfqZzyLl6l7F3c6L1oWn7OICBi6o= +github.com/hydrogen18/memlistener v0.0.0-20200120041712-dcc25e7acd91/go.mod h1:qEIFzExnS6016fRpRfxrExeVn2gbClQA99gQhnIcdhE= +github.com/iancoleman/orderedmap v0.0.0-20190318233801-ac98e3ecb4b0 h1:i462o439ZjprVSFSZLZxcsoAe592sZB1rci2Z8j4wdk= +github.com/iancoleman/orderedmap v0.0.0-20190318233801-ac98e3ecb4b0/go.mod h1:N0Wam8K1arqPXNWjMo21EXnBPOPp36vB07FNRdD2geA= +github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/imkira/go-interpol v1.1.0 h1:KIiKr0VSG2CUW1hl1jpiyuzuJeKUUpC8iM1AIE7N1Vk= +github.com/imkira/go-interpol v1.1.0/go.mod h1:z0h2/2T3XF8kyEPpRgJ3kmNv+C43p+I/CoI+jC3w2iA= +github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/influxdata/flux v0.65.1/go.mod h1:J754/zds0vvpfwuq7Gc2wRdVwEodfpCFM7mYlOw2LqY= +github.com/influxdata/influxdb v1.8.3/go.mod h1:JugdFhsvvI8gadxOI6noqNeeBHvWNTbfYGtiAn+2jhI= +github.com/influxdata/influxdb-client-go/v2 v2.5.1 h1:ytMbX2YeupSsec1Exp3zALTjvfhXkvxcyV6nOXkjG3s= +github.com/influxdata/influxdb-client-go/v2 v2.5.1/go.mod h1:Y/0W1+TZir7ypoQZYd2IrnVOKB3Tq6oegAQeSVN/+EU= +github.com/influxdata/influxdb1-client v0.0.0-20220302092344-a9ab5670611c h1:qSHzRbhzK8RdXOsAdfDgO49TtqC1oZ+acxPrkfTxcCs= +github.com/influxdata/influxdb1-client v0.0.0-20220302092344-a9ab5670611c/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= +github.com/influxdata/influxql v1.1.1-0.20200828144457-65d3ef77d385/go.mod h1:gHp9y86a/pxhjJ+zMjNXiQAA197Xk9wLxaz+fGG+kWk= +github.com/influxdata/line-protocol v0.0.0-20180522152040-32c6aa80de5e/go.mod h1:4kt73NQhadE3daL3WhR5EJ/J2ocX0PZzwxQ0gXJ7oFE= +github.com/influxdata/line-protocol v0.0.0-20210311194329-9aa0e372d097 h1:vilfsDSy7TDxedi9gyBkMvAirat/oRcL0lFdJBf6tdM= +github.com/influxdata/line-protocol v0.0.0-20210311194329-9aa0e372d097/go.mod h1:xaLFMmpvUxqXtVkUJfg9QmT88cDaCJ3ZKgdZ78oO8Qo= +github.com/influxdata/promql/v2 v2.12.0/go.mod h1:fxOPu+DY0bqCTCECchSRtWfc+0X19ybifQhZoQNF5D8= +github.com/influxdata/roaring v0.4.13-0.20180809181101-fc520f41fab6/go.mod h1:bSgUQ7q5ZLSO+bKBGqJiCBGAl+9DxyW63zLTujjUlOE= +github.com/influxdata/tdigest v0.0.0-20181121200506-bf2b5ad3c0a9/go.mod h1:Js0mqiSBE6Ffsg94weZZ2c+v/ciT8QRHFOap7EKDrR0= +github.com/influxdata/usage-client v0.0.0-20160829180054-6d3895376368/go.mod h1:Wbbw6tYNvwa5dlB6304Sd+82Z3f7PmVZHVKU637d4po= github.com/integralist/go-findroot v0.0.0-20160518114804-ac90681525dc h1:4IZpk3M4m6ypx0IlRoEyEyY1gAdicWLMQ0NcG/gBnnA= github.com/integralist/go-findroot v0.0.0-20160518114804-ac90681525dc/go.mod h1:UlaC6ndby46IJz9m/03cZPKKkR9ykeIVBBDE3UDBdJk= +github.com/invopop/jsonschema v0.7.0 h1:2vgQcBz1n256N+FpX3Jq7Y17AjYt46Ig3zIWyy770So= +github.com/invopop/jsonschema v0.7.0/go.mod h1:O9uiLokuu0+MGFlyiaqtWxwqJm41/+8Nj0lD7A36YH0= +github.com/ipfs/go-cid v0.4.1 h1:A/T3qGvxi4kpKWWcPC/PgbvDA2bjVLO7n4UeVwnbs/s= +github.com/ipfs/go-cid v0.4.1/go.mod h1:uQHwDeX4c6CtyrFwdqyhpNcxVewur1M7l7fNU7LKwZk= github.com/ipfs/go-log v1.0.5 h1:2dOuUCB1Z7uoczMWgAyDck5JLb72zHzrMnGnCNNbvY8= github.com/ipfs/go-log v1.0.5/go.mod h1:j0b8ZoR+7+R99LD9jZ6+AJsrzkPbSXbZfGakb5JPtIo= github.com/ipfs/go-log/v2 v2.1.3/go.mod h1:/8d0SH3Su5Ooc31QlL1WysJhvyOTDCjcCZ9Axpmri6g= github.com/ipfs/go-log/v2 v2.5.1 h1:1XdUzF7048prq4aBjDQQ4SL5RxftpRGdXhNRwKSAlcY= github.com/ipfs/go-log/v2 v2.5.1/go.mod h1:prSpmC1Gpllc9UYWxDiZDreBYw7zp4Iqp1kOLU9U5UI= +github.com/iris-contrib/blackfriday v2.0.0+incompatible/go.mod h1:UzZ2bDEoaSGPbkg6SAB4att1aAwTmVIx/5gCVqeyUdI= +github.com/iris-contrib/go.uuid v2.0.0+incompatible/go.mod h1:iz2lgM/1UnEf1kP0L/+fafWORmlnuysV2EMP8MW+qe0= +github.com/iris-contrib/jade v1.1.3/go.mod h1:H/geBymxJhShH5kecoiOCSssPX7QWYH7UaeZTSWddIk= +github.com/iris-contrib/pongo2 v0.0.1/go.mod h1:Ssh+00+3GAZqSQb30AvBRNxBx7rf0GqwkjqxNd0u65g= +github.com/iris-contrib/schema v0.0.1/go.mod h1:urYA3uvUNG1TIIjOSCzHr9/LmbQo8LrOcOqfqxa4hXw= +github.com/jackpal/go-nat-pmp v1.0.2-0.20160603034137-1fa385a6f458/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= +github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= +github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= +github.com/jarcoal/httpmock v1.2.0 h1:gSvTxxFR/MEMfsGrvRbdfpRUMBStovlSRLw0Ep1bwwc= +github.com/jarcoal/httpmock v1.2.0/go.mod h1:oCoTsnAz4+UoOUIf5lJOWV2QQIW5UoeUI6aM2YnWAZk= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= +github.com/jedisct1/go-minisign v0.0.0-20190909160543-45766022959e/go.mod h1:G1CVv03EnqU1wYL2dFwXxW2An0az9JTl/ZsqXQeBlkU= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jftuga/ellipsis v1.0.0 h1:ERi1XBFERM2YpadkvM1P9bxQKgOC40Hr6TCKkvLBDtY= +github.com/jftuga/ellipsis v1.0.0/go.mod h1:phJ3vQPi8MPrtRKdo0aESNJdw56f09SLVX0k/FY+jr0= github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +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.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/jsternberg/zap-logfmt v1.0.0/go.mod h1:uvPs/4X51zdkcm5jXl5SYoN+4RK21K8mysFmDaM/h+o= +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/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= +github.com/jwilder/encoding v0.0.0-20170811194829-b4e1701a28ef/go.mod h1:Ct9fl0F6iIOGgxJ5npU/IUOhOhqlVrGjyIZc8/MagT0= +github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k= +github.com/karalabe/usb v0.0.0-20190919080040-51dc0efba356/go.mod h1:Od972xHfMJowv7NGVDiWVxk2zxnWgjLlJzE+F4F7AGU= +github.com/kataras/golog v0.0.10/go.mod h1:yJ8YKCmyL+nWjERB90Qwn+bdyBZsaQwU3bTVFgkFIp8= +github.com/kataras/iris/v12 v12.1.8/go.mod h1:LMYy4VlP67TQ3Zgriz8RE2h2kMZV2SgMYbq3UhfoFmE= +github.com/kataras/neffos v0.0.14/go.mod h1:8lqADm8PnbeFfL7CLXh1WHw53dG27MC3pgi2R1rmoTE= +github.com/kataras/pio v0.0.2/go.mod h1:hAoW0t9UmXi4R5Oyq5Z4irTbaTsOemSrDGUtaTl7Dro= +github.com/kataras/sitemap v0.0.5/go.mod h1:KY2eugMKiPwsJgx7+U103YZehfvNGOXURubcGyk0Bz8= github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4= github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= github.com/keybase/go-keychain v0.0.0-20231219164618-57a3676c3af6 h1:IsMZxCuZqKuao2vNdfD82fjjgPLfyHLpR41Z88viRWs= github.com/keybase/go-keychain v0.0.0-20231219164618-57a3676c3af6/go.mod h1:3VeWNIJaW+O5xpRQbPp0Ybqu1vJd/pm7s2F473HRrkw= 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/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/klauspost/compress v1.4.0/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +github.com/klauspost/compress v1.8.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +github.com/klauspost/compress v1.9.7/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.17.3/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM= github.com/klauspost/compress v1.17.8 h1:YcnTYrq7MikUT7k0Yb5eceMmALQPYBW/Xltxn0NAMnU= github.com/klauspost/compress v1.17.8/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= +github.com/klauspost/cpuid v0.0.0-20170728055534-ae7887de9fa5/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= +github.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.2.8 h1:+StwCXwm9PdpiEkPyzBXIy+M9KUb4ODm0Zarf1kS5BM= github.com/klauspost/cpuid/v2 v2.2.8/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= +github.com/klauspost/crc32 v0.0.0-20161016154125-cb6bfca970f6/go.mod h1:+ZoRqAPRLkC4NPOvfYeR5KNOrY6TD+/sAC3HXPZgDYg= +github.com/klauspost/pgzip v1.0.2-0.20170402124221-0bf5dcad4ada/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= +github.com/konsorten/go-windows-terminal-sequences v1.0.1/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= github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= @@ -297,18 +732,41 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/labstack/echo/v4 v4.5.0/go.mod h1:czIriw4a0C1dFun+ObrXp7ok03xON0N1awStJ6ArI7Y= +github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k= +github.com/leanovate/gopter v0.2.9 h1:fQjYxZaynp97ozCzfOyOuAGOU4aU/z37zf/tOujFk7c= +github.com/leanovate/gopter v0.2.9/go.mod h1:U2L/78B+KVFIx2VmW6onHJQzXtFb+p5y3y2Sh+Jxxv8= github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= +github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= +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/libp2p/go-libp2p v0.33.0 h1:yTPSr8sJRbfeEYXyeN8VPVSlTlFjtMUwGDRniwaf/xQ= +github.com/libp2p/go-libp2p v0.33.0/go.mod h1:RIJFRQVUBKy82dnW7J5f1homqqv6NcsDJAl3e7CRGfE= +github.com/lmittmann/w3 v0.10.0 h1:AjQJKfcwHSDLr7cnRbS+0Jio9xt/h1JDBAP/jvLWC58= +github.com/lmittmann/w3 v0.10.0/go.mod h1:AydD3eqJiyg7tubFve39JL025kZr8QWO1lemXllK+Sw= github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= +github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-colorable v0.1.0/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.11/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-ieproxy v0.0.0-20190610004146-91bb50d98149/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc= +github.com/mattn/go-ieproxy v0.0.0-20190702010315-6dee0af9227d/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc= +github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-isatty v0.0.5-0.20180830101745-3fb116b82035/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= 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= @@ -317,18 +775,35 @@ github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWE github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-localereader v0.0.1 h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4= github.com/mattn/go-localereader v0.0.1/go.mod h1:8fBrzywKY7BI3czFoHkuzRoWE9C+EiG4R1k4Cjx5p88= +github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.6/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= +github.com/mattn/go-sqlite3 v2.0.3+incompatible h1:gXHsfypPkaMZrKbD5209QV9jbUTJKjyR5WD3HYQSd+U= +github.com/mattn/go-sqlite3 v2.0.3+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= +github.com/mattn/go-tty v0.0.0-20180907095812-13ff1204f104/go.mod h1:XPvLUNfbS4fJH25nqRHfWLMa1ONC8Amw+mIA639KxkE= github.com/mattn/go-tty v0.0.3 h1:5OfyWorkyO7xP52Mq7tB36ajHDG5OHrmBGIS/DtakQI= github.com/mattn/go-tty v0.0.3/go.mod h1:ihxohKRERHTVzN+aSVRwACLCeqIoZAWpoICkkvrWyR0= +github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= +github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/mediocregopher/radix/v3 v3.4.2/go.mod h1:8FL3F6UQRXHXIBSPUs5h0RybMF8i4n7wVopoX3x7Bv8= +github.com/microcosm-cc/bluemonday v1.0.2/go.mod h1:iVP4YcDBq+n/5fb23BhYFvIMq/leAFZyRl6bYmGDlGc= +github.com/miguelmota/go-ethereum-hdwallet v0.1.1 h1:zdXGlHao7idpCBjEGTXThVAtMKs+IxAgivZ75xqkWK0= +github.com/miguelmota/go-ethereum-hdwallet v0.1.1/go.mod h1:f9m9uXokAHA6WNoYOPjj4AqjJS5pquQRiYYj/XSyPYc= +github.com/minio/sha256-simd v1.0.1 h1:6kaan5IFmwTNynnKKpDHe6FWHohJOHhCPchzK49dzMM= +github.com/minio/sha256-simd v1.0.1/go.mod h1:Pz6AKMiUdngCLpeTL/RJY1M9rUuPMYujV5xJjtbRSN8= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= 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/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/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= @@ -336,18 +811,65 @@ github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3 github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +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/moul/http2curl v1.0.0/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOAZ3H0fQ= +github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o= +github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= +github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE+eKJXWVjKXM4ck2QobLqTDytGJbLLhJg= github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 h1:ZK8zHtRHOkbHy6Mmr5D264iyp3TiX5OmNcI5cIARiQI= github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6/go.mod h1:CJlz5H+gyd6CUWT45Oy4q24RdLyn7Md9Vj2/ldJBSIo= github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA= github.com/muesli/cancelreader v0.2.2/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo= github.com/muesli/termenv v0.15.2 h1:GohcuySI0QmI3wN8Ok9PtKGkgkFIk7y6Vpb5PvrY+Wo= github.com/muesli/termenv v0.15.2/go.mod h1:Epx+iuz8sNs7mNKhxzH4fWXGNpZwUaJKRS1noLXviQ8= +github.com/multiformats/go-base32 v0.1.0 h1:pVx9xoSPqEIQG8o+UbAe7DNi51oej1NtK+aGkbLYxPE= +github.com/multiformats/go-base32 v0.1.0/go.mod h1:Kj3tFY6zNr+ABYMqeUNeGvkIC/UYgtWibDcT0rExnbI= +github.com/multiformats/go-base36 v0.2.0 h1:lFsAbNOGeKtuKozrtBsAkSVhv1p9D0/qedU9rQyccr0= +github.com/multiformats/go-base36 v0.2.0/go.mod h1:qvnKE++v+2MWCfePClUEjE78Z7P2a1UV0xHgWc0hkp4= +github.com/multiformats/go-multiaddr v0.12.2 h1:9G9sTY/wCYajKa9lyfWPmpZAwe6oV+Wb1zcmMS1HG24= +github.com/multiformats/go-multiaddr v0.12.2/go.mod h1:GKyaTYjZRdcUhyOetrxTk9z0cW+jA/YrnqTOvKgi44M= +github.com/multiformats/go-multibase v0.2.0 h1:isdYCVLvksgWlMW9OZRYJEa9pZETFivncJHmHnnd87g= +github.com/multiformats/go-multibase v0.2.0/go.mod h1:bFBZX4lKCA/2lyOFSAoKH5SS6oPyjtnzK/XTFDPkNuk= +github.com/multiformats/go-multicodec v0.9.0 h1:pb/dlPnzee/Sxv/j4PmkDRxCOi3hXTz3IbPKOXWJkmg= +github.com/multiformats/go-multicodec v0.9.0/go.mod h1:L3QTQvMIaVBkXOXXtVmYE+LI16i14xuaojr/H7Ai54k= +github.com/multiformats/go-multihash v0.2.3 h1:7Lyc8XfX/IY2jWb/gI7JP+o7JEq9hOa7BFvVU9RSh+U= +github.com/multiformats/go-multihash v0.2.3/go.mod h1:dXgKXCXjBzdscBLk9JkjINiEsCKRVch90MdaGiKsvSM= +github.com/multiformats/go-varint v0.0.7 h1:sWSGR+f/eu5ABZA2ZpYKBILXTTs9JWpdEM/nEGOHFS8= +github.com/multiformats/go-varint v0.0.7/go.mod h1:r8PUYw/fD/SjBCiKOoDlGF6QawOELpZAu9eioSos/OU= +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/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0= +github.com/naoina/toml v0.1.2-0.20170918210437-9fafd6967416/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= +github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= +github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w= +github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= +github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= +github.com/neverlee/keymutex v0.0.0-20171121013845-f593aa834bf9 h1:UfW5pM66x0MWE72ySrpd2Ymrn+b62kNHirozKkY3ojE= +github.com/neverlee/keymutex v0.0.0-20171121013845-f593aa834bf9/go.mod h1:3hf2IoUXDKjCg/EuqSLUB5TY8StGS3haWYJiqzP907c= +github.com/nsmithuk/local-kms v0.0.0-20220503165244-1bbbfed09b08 h1:Jt0FS0td/3yEMxXoiCmwShR+LfzzVd7/MMdZo4121u8= +github.com/nsmithuk/local-kms v0.0.0-20220503165244-1bbbfed09b08/go.mod h1:F0zq7SoYkgpbXrZcXsf+S6nvbRjczBkJrMjwTAYb7e8= +github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= +github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= +github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= 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= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= +github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= +github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= +github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= +github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= +github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.30.0 h1:hvMK7xYz4D3HapigLTeGdId/NcfQx1VHMJc60ew99+8= github.com/onsi/gomega v1.30.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= @@ -356,59 +878,109 @@ github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/ github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= github.com/opencontainers/runc v1.1.5 h1:L44KXEpKmfWDcS02aeGm8QNTFXTo2D+8MYGDIJ/GDEs= github.com/opencontainers/runc v1.1.5/go.mod h1:1J5XiS+vdZ3wCyZybsuxXZWGrgSr8fFJHLXuG2PsnNg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/opentracing/opentracing-go v1.0.3-0.20180606204148-bd9c31933947/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +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 v3.10.0 h1:4K3z2VMe8Woe++invjaTB7VRyQXQy5UY+loujO4aNE4= github.com/ory/dockertest/v3 v3.10.0/go.mod h1:nr57ZbRWMqfsdGdFNLHz5jjNdDb7VVFnzAeW1n5N1Lg= +github.com/paulbellamy/ratecounter v0.2.0/go.mod h1:Hfx1hDpSGoqxkVVpBi/IlYD7kChlfo5C6hzIHwPqfFE= +github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml/v2 v2.0.1/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo= github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM= github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= +github.com/peterh/liner v1.0.1-0.20180619022028-8c1271fcf47f/go.mod h1:xIteQHvHuaLYG9IFj6mSxM0fCKrs34IrEQUhOYuGPHc= +github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf8GS0= +github.com/peterh/liner v1.2.1 h1:O4BlKaq/LWu6VRWmol4ByWfzx6MfXc5Op5HETyIy5yg= +github.com/peterh/liner v1.2.1/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf8GS0= github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5 h1:Ii+DKncOVM8Cu1Hc+ETb5K+23HdAMvESYE3ZJ5b5cMI= github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5/go.mod h1:iIss55rKnNBTvrwdmkUpLnDpZoAHvWaiq5+iMmen4AE= +github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= +github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= +github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4= github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI= 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= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/term v0.0.0-20180730021639-bffc007b7fd5/go.mod h1:eCbImbZ95eXtAUIbLAuAVnBnwf83mjf6QIVH8SHYwqQ= github.com/pkg/term v1.2.0-beta.2 h1:L3y/h2jkuBVFdWiJvNfYfKmzcCnILw7mJWm2JQuMppw= github.com/pkg/term v1.2.0-beta.2/go.mod h1:E25nymQcrSllhX42Ok8MRm1+hyBdHY0dCeiKZ9jpNGw= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= 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/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho= +github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= +github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= +github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= github.com/prometheus/common v0.54.0 h1:ZlZy0BgJhTwVZUn7dLOkwCZHUkrAqd3WYtcFCWnM1D8= github.com/prometheus/common v0.54.0/go.mod h1:/TQgMJP5CuVYveyT7n/0Ix8yLNNXy9yRSkhnLTHPDIQ= 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/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.15.0 h1:A82kmvXJq2jTu5YUhSGNlYoxh85zLnKgPz4bMZgI5Ek= github.com/prometheus/procfs v0.15.0/go.mod h1:Y0RJ/Y5g5wJpkTisOtqwDSo4HwhGmLB4VQSw2sQJLHk= github.com/prometheus/prometheus v0.53.0 h1:vOnhpUKrDv954jnVBvhG/ZQJ3kqscnKI+Hbdwo2tAhc= github.com/prometheus/prometheus v0.53.0/go.mod h1:RZDkzs+ShMBDkAPQkLEaLBXpjmDcjhNxU2drUVPgKUU= +github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= +github.com/puzpuzpuz/xsync v1.4.3 h1:nS/Iqc4EnpJ8jm/MzJ+e3MUaP2Ys2mqXeEfoxoU0HaM= +github.com/puzpuzpuz/xsync v1.4.3/go.mod h1:K98BYhX3k1dQ2M63t1YNVDanbwUPmBCAhNmVrrxfiGg= +github.com/puzpuzpuz/xsync/v2 v2.5.1 h1:mVGYAvzDSu52+zaGyNjC+24Xw2bQi3kTr4QJ6N9pIIU= +github.com/puzpuzpuz/xsync/v2 v2.5.1/go.mod h1:gD2H2krq/w52MfPLE+Uy64TzJDVY7lP2znR9qmR35kU= +github.com/rbretecher/go-postman-collection v0.9.0 h1:vXw6KBhASpz0L0igH3OsJCx5pjKbWXn9RiYMMnOO4QQ= +github.com/rbretecher/go-postman-collection v0.9.0/go.mod h1:pptkyjdB/sqPycH+CCa1zrA6Wpj2Kc8Nz846qRstVVs= github.com/regen-network/protobuf v1.3.3-alpha.regen.1 h1:OHEc+q5iIAXpqiqFKeLpu5NwTIkVXUs48vFMwzqpqY4= github.com/regen-network/protobuf v1.3.3-alpha.regen.1/go.mod h1:2DjTFR1HhMQhiWC5sZ4OhQ3+NtdbZ6oBDKQwq5Ou+FI= +github.com/retailnext/hllpp v1.0.1-0.20180308014038-101a6d2f8b52/go.mod h1:RDpi1RftBQPUCDRw6SmxeaREsAaRKnOclghuzp/WRzc= +github.com/richardwilkes/toolbox v1.74.0 h1:TNvXxph1jJk6IQmVoZdAY9peRlL6Tv//7OpyJkjMiPI= +github.com/richardwilkes/toolbox v1.74.0/go.mod h1:OFTDv8rUUsF+Hb98k9l65zu7fuKt3EEhWywv6zyJ750= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= +github.com/rjeczalik/notify v0.9.1/go.mod h1:rKwnCoCGeuQnwBtTSPL9Dad03Vh2n40ePRrjvIXnJho= github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= +github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= +github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= +github.com/rs/cors v1.8.2 h1:KCooALfAYGs415Cwu5ABvv9n9509fSiG5SQJn/AQo4U= +github.com/rs/cors v1.8.2/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= +github.com/rung/go-safecast v1.0.1 h1:7rkt2qO4JGdOkWKdPEBFLaEwQy20y0IhhWJNFxmH0p0= +github.com/rung/go-safecast v1.0.1/go.mod h1:dzUcUS2UMtbfVc7w6mx/Ur3UYcpXEZC+WilISksJ4P8= +github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= +github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/schollz/closestmatch v2.1.0+incompatible/go.mod h1:RtP1ddjLong6gTkbtmuhtR2uUrrJOpYzYRvbcPAid+g= +github.com/segmentio/kafka-go v0.1.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo= +github.com/segmentio/kafka-go v0.2.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo= +github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8= github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4= github.com/shibukawa/configdir v0.0.0-20170330084843-e180dbdc8da0 h1:Xuk8ma/ibJ1fOy4Ee11vHhUFHQNpHhrBneOCNHVXS5w= github.com/shibukawa/configdir v0.0.0-20170330084843-e180dbdc8da0/go.mod h1:7AwjWCpdPhkSmNAgUv5C7EJ4AbmjEB3r047r3DXWu3Y= +github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= 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/shomali11/commander v0.0.0-20230730023802-0b64f620037d h1:IImd1gV+EdlKWWi8RoHSaccjLQtSi4tJiFOjq6mM+ZQ= @@ -416,6 +988,10 @@ github.com/shomali11/commander v0.0.0-20230730023802-0b64f620037d/go.mod h1:bYyJ github.com/shomali11/proper v0.0.0-20180607004733-233a9a872c30/go.mod h1:O723XwIZBX3FR45rBic/Eyp/DKo/YtchYFURzpUWY2c= github.com/shomali11/proper v0.0.0-20190608032528-6e70a05688e7 h1:wAyBXFZOcLkbaoDlDbMpTCw9xy3yP2YJDMRrbTVuVKU= github.com/shomali11/proper v0.0.0-20190608032528-6e70a05688e7/go.mod h1:cg2VM85Y+0BcVSICzB+OafOlTcJ9QPbtF4qtuhuR/GA= +github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k= +github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME= +github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= @@ -425,17 +1001,35 @@ github.com/slack-go/slack v0.12.2 h1:x3OppyMyGIbbiyFhsBmpf9pwkUzMhthJMRNmNlA4LaQ github.com/slack-go/slack v0.12.2/go.mod h1:hlGi5oXA+Gt+yWTPP0plCdRKmjsDxecdHxYQdlMQKOw= github.com/slack-io/slacker v0.1.0 h1:im8hrddzZEnkpavutIc5/It+zmQIybjhceFGJix0MTY= github.com/slack-io/slacker v0.1.0/go.mod h1:VPW+xhTrmB4lUoxA5tiB180fmWFt6UFW+96ZWYtj0Qg= +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/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= +github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.10.0 h1:EaGW2JJh15aKOejeuJ+wpFSHnbd7GE6Wvp3TsNhb6LY= github.com/spf13/afero v1.10.0/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ= +github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= +github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= +github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= +github.com/status-im/keycard-go v0.0.0-20190316090335-8537d3370df4/go.mod h1:RZLeN1LMWmRsyYjvAu+I6Dm9QmlDaIIt+Y+4Kd7Tp+Q= +github.com/status-im/keycard-go v0.2.0 h1:QDLFswOQu1r5jsycloeQh3bVU8n/NatHHaZobtDnDzA= +github.com/status-im/keycard-go v0.2.0/go.mod h1:wlp8ZLbsmrF6g6WjugPAx+IzoLrkdf9+mHxBEeo3Hbg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= +github.com/stretchr/testify v1.2.0/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= @@ -446,16 +1040,33 @@ github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsT github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/supranational/blst v0.3.11 h1:LyU6FolezeWAhvQk0k6O/d49jqgO52MSDDfYgbeoEm4= github.com/supranational/blst v0.3.11/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/j+w+fVonLw= +github.com/synapsecns/fasthttp-http2 v1.0.0 h1:G1/8AKgAzVImHpGbCGZo8w4c0kUBXb4eRKkMlWUW4eA= +github.com/synapsecns/fasthttp-http2 v1.0.0/go.mod h1:QM9mQS/FygGB3PdvmW8a0/70FirWmEZVvj6Dlo1pisw= +github.com/syndtr/goleveldb v1.0.1-0.20210305035536-64b5b1c73954/go.mod h1:u2MKkTVTVJWe5D1rCvame8WqhBd88EuIwODJZ1VHCPM= +github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70Z7CTTCmYQn2CKbY8j86K7/FAIr141uY= +github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= +github.com/teivah/onecontext v1.3.0 h1:tbikMhAlo6VhAuEGCvhc8HlTnpX4xTNPTOseWuhO1J0= +github.com/teivah/onecontext v1.3.0/go.mod h1:hoW1nmdPVK/0jrvGtcx8sCKYs2PiS4z0zzfdeuEVyb0= github.com/temoto/robotstxt v1.1.2 h1:W2pOjSJ6SWvldyEuiFXNxz3xZ8aiWX5LbfDiOFd7Fxg= github.com/temoto/robotstxt v1.1.2/go.mod h1:+1AmkuG3IYkh1kv0d2qEB9Le88ehNO0zwOr3ujewlOo= +github.com/tinylib/msgp v1.0.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= +github.com/tklauser/go-sysconf v0.3.5/go.mod h1:MkWzOF4RMCshBAMXuhXJs64Rte09mITnppBXY/rYEFI= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= +github.com/tklauser/numcpus v0.2.2/go.mod h1:x3qojaO3uyYt0i56EW/VUYs7uBvdl2fkfZFu0T9wgjM= github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= +github.com/tyler-smith/go-bip39 v1.0.1-0.20181017060643-dbb3b84ba2ef/go.mod h1:sJ5fKU0s6JVwZjjcUEX2zFOnvq0ASQ2K9Zr6cf67kNs= +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/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= +github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= 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= +github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY= github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65EE= github.com/ugorji/go/codec v1.2.12/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= @@ -467,28 +1078,59 @@ github.com/uptrace/opentelemetry-go-extra/otelutil v0.3.1 h1:Suvl9fe12MM0oi8/rcG github.com/uptrace/opentelemetry-go-extra/otelutil v0.3.1/go.mod h1:aiX/F5+EYbY2ed2OQEYRXzMcNGvI9pip5gW2ZtBDers= github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.1 h1:0iCp8hx3PFhGihubKHxyOCdIlIPxzUr0VsK+rvlMGdk= github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.1/go.mod h1:FXrjpUJDqwqofvXWG3YNxQwhg2876tUpZASj8VvOMAM= +github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= github.com/urfave/cli/v2 v2.27.2 h1:6e0H+AkS+zDckwPCUrZkKX38mRaau4nL2uipkJpbkcI= github.com/urfave/cli/v2 v2.27.2/go.mod h1:g0+79LmHHATl7DAcHO99smiR/T7uGLw84w8Y42x+4eM= +github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= +github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= +github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= +github.com/valyala/fasthttp v1.6.0/go.mod h1:FstJa9V+Pj9vQ7OJie2qMHdwemEDaDiSdBnvPM1Su9w= +github.com/valyala/fasthttp v1.41.0 h1:zeR0Z1my1wDHTRiamBCXVglQdbUwgb9uWG3k1HQz6jY= +github.com/valyala/fasthttp v1.41.0/go.mod h1:f6VbjjoI3z1NDOZOv17o6RvtRSWxC77seBFc2uWtgiY= +github.com/valyala/fastjson v1.6.4 h1:uAUNq9Z6ymTgGhcm0UynUAB6tlbakBrz6CQFax3BXVQ= +github.com/valyala/fastjson v1.6.4/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLrsQns1aXY= +github.com/valyala/fastrand v1.1.0 h1:f+5HkLW4rsgzdNoleUOB69hyT9IlD2ZQh9GyDMfb5G8= +github.com/valyala/fastrand v1.1.0/go.mod h1:HWqCzkrkg6QXT8V2EXWvXCoow7vLwOFN002oeRzjapQ= +github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= +github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= +github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio= +github.com/viant/toolbox v0.24.0 h1:6TteTDQ68CjgcCe8wH3D3ZhUQQOJXMTbj/D9rkk2a1k= +github.com/viant/toolbox v0.24.0/go.mod h1:OxMCG57V0PXuIP2HNQrtJf2CjqdmbrOx5EkMILuUhzM= +github.com/willf/bitset v1.1.3/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= +github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo= github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= +github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg= github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no= github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM= +github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 h1:+qGGcbkzsfDQNPPe9UDgpxAWQrhbbBXOYJFQDq/dtJw= github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913/go.mod h1:4aEEwZQutDLsQv2Deui4iYQ6DWTxR14g6m8Wv88+Xqk= +github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0/go.mod h1:/LWChgwKmvncFJFHJ7Gvn9wZArjbV5/FppcK2fKk/tI= +github.com/yudai/gojsondiff v1.0.0/go.mod h1:AY32+k2cwILAkW1fbgxQ5mUmMiZFgLIV+FBNExI05xg= +github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82/go.mod h1:lgjkn3NuSvDfVJdfcVVdX+jpBxNmX4rDAzaS45IcYoM= +github.com/yudai/pp v2.0.1+incompatible/go.mod h1:PuxR/8QJ7cyCkFp/aUDS+JY727OFEZkTdatxwunjIkc= github.com/yuin/goldmark v1.1.27/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/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= +go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0 h1:vkioc4XBfqnZZ7u40wK3Kgbjj9JYkvW6FY1ghmM/Shk= go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.52.0/go.mod h1:vsyxiwPzPlijgouF1SRZRGqbuHod8fV6+MRCH7ltxDE= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 h1:4Pp6oUg3+e/6M4C0A/3kJ2VYa++dsWVTtGgLVj5xtHg= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0/go.mod h1:Mjt1i1INqiaoZOMGR1RIUJN+i3ChKoFRqzrRQhlkbs0= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 h1:9l89oX4ba9kHbBol3Xin3leYJ+252h0zszDtBwyKe2A= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0/go.mod h1:XLZfZboOJWHNKUv7eH0inh0E9VV6eWDFB/9yJyTLPp0= go.opentelemetry.io/contrib/propagators/b3 v1.27.0 h1:IjgxbomVrV9za6bRi8fWCNXENs0co37SZedQilP2hm0= @@ -521,18 +1163,22 @@ go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5 go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= go.opentelemetry.io/proto/otlp v1.2.0 h1:pVeZGk7nXDC9O2hncA6nHldxEjm6LByfA2aN8IOkz94= go.opentelemetry.io/proto/otlp v1.2.0/go.mod h1:gGpR8txAl5M03pDhMC79G6SdqNV26naRm/KDsgaHD8A= +go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= +go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= go.uber.org/goleak v1.1.11-0.20210813005559-691160354723/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= +go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= +go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= @@ -540,10 +1186,20 @@ go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= golang.org/x/arch v0.8.0 h1:3wRIsP3pM4yUptoR96otTUOXI367OS0+c9eeRi9doIc= golang.org/x/arch v0.8.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= 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-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190909091759-094676da4a83/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200115085410-6d4e4cb37c7d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/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-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= @@ -553,14 +1209,35 @@ golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDf golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= +golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 h1:yixxcjnhBmY0nkL253HFVIm0JsFHwrHdT3Yh6szTnfY= golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= +golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -568,17 +1245,36 @@ golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91 golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.18.0 h1:5+9lSbEzPSdWkH32vYPBwEpX8KwDbM52Ud9xBUvNlb0= golang.org/x/mod v0.18.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190327091125-710a502c58a2/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +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-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/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-20200226121028-0de0cce0169b/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-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/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-20210220033124-5f55cee0dc0d/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-20211008194852-3b03d305991f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= 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= @@ -590,12 +1286,19 @@ golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +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.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 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-20201020160332-67f06af15bc9/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= @@ -603,28 +1306,56 @@ golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +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-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191008105621-543471e840be/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-20200107162124-548cf772de50/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200918174421-af09f7315aff/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-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-20210316164454-77fc1eacc6aa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210420205809-ac73e9fd8988/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-20210615035016-665e8c7367d1/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-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220209214540-3681064d5158/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= @@ -652,8 +1383,11 @@ golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +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= @@ -664,19 +1398,46 @@ golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181221001348-537d06c36207/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190327201419-c70d86f8b7cf/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +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-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200108203644-89082a384178/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= 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= +golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= @@ -686,47 +1447,127 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= +gonum.org/v1/gonum v0.0.0-20181121035319-3f7ecaa7e8ca/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= +gonum.org/v1/gonum v0.6.0/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= +gonum.org/v1/netlib v0.0.0-20181029234149-ec6d1f5cefe6/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= +gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= +gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.183.0 h1:PNMeRDwo1pJdgNcFQ9GstuLe/noWKIc89pRWRLMvLwE= +google.golang.org/api v0.183.0/go.mod h1:q43adC5/pHoSZTx5h2mSmdF7NcyfW9JuDyIOJAgS9ZQ= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.5/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-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190716160619-c506a9f90610/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200108215221-bd8f9a0ef82f/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200324203455-a04cca1dde73/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= +google.golang.org/genproto v0.0.0-20240528184218-531527333157 h1:u7WMYrIrVvs0TF5yaKwKNbcJyySYf+HAIFXxWltJOXE= +google.golang.org/genproto v0.0.0-20240528184218-531527333157/go.mod h1:ubQlAQnzejB8uZzszhrTCU2Fyp6Vi7ZE5nn0c3W8+qQ= google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 h1:7whR9kGa5LUwFtpLm2ArCEejtnxlGeLbAyjFY8sGNFw= google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157/go.mod h1:99sLkeliLXfdj2J75X3Ho+rrVCaJze0uwN7zDDkjPVU= google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 h1:Zy9XzmMEflZ/MAaA7vNcoebnRAld7FsPW1EeBB7V0m8= google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= +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= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= +google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= google.golang.org/grpc v1.64.0 h1:KH3VH9y/MgNQg1dE7b3XfVK0GsPSIzJwdF617gUSbvY= google.golang.org/grpc v1.64.0/go.mod h1:oxjF8E3FBnjp+/gVFYdWacaLDx9na1aqy9oovLpxQYg= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +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.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= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= 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/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= +gopkg.in/hedzr/errors.v3 v3.1.1 h1:2p1fo4poIOYmBcfN9j6vkXKlJUKTXrxQLj4JWTrQo9I= +gopkg.in/hedzr/errors.v3 v3.1.1/go.mod h1:UwtyepqtGTIAmdZGSc7wxXT5Gfd/BjcfRMhPpxwkJM4= +gopkg.in/ini.v1 v1.51.1/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= +gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8= +gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= +gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce/go.mod h1:5AcXVHNjg+BDxry382+8OKon8SEWiKktQR07RKPsv1c= +gopkg.in/olebedev/go-duktape.v3 v3.0.0-20200619000410-60c24ae608a6/go.mod h1:uAJfkITjFhyEEuUfm7bsmCZRbW5WRq8s9EY8HZ6hCns= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/urfave/cli.v1 v1.20.0/go.mod h1:vuBzUtMdQeixQj8LVd+/98pzhxNGQoyuPBlsXHOQNO0= gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.0-20191120175047-4206685974f2/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gorm.io/driver/mysql v1.5.6 h1:Ld4mkIickM+EliaQZQx3uOJDJHtrd70MxAUqWqlx3Y8= +gorm.io/driver/mysql v1.5.6/go.mod h1:sEtPWMiqiN1N1cMXoXmBbd8C6/l+TESwriotuRRpkDM= +gorm.io/driver/sqlite v1.5.6 h1:fO/X46qn5NUEEOZtnjJRWRzZMe8nqJiQ9E+0hi+hKQE= +gorm.io/driver/sqlite v1.5.6/go.mod h1:U+J8craQU6Fzkcvu8oLeAQmi50TkwPEhHDEjQZXDah4= gorm.io/gorm v1.25.10 h1:dQpO+33KalOA+aFYGlK+EfxcI5MbO7EP2yYygwh9h+s= gorm.io/gorm v1.25.10/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= +gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= +gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= 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.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= k8s.io/apimachinery v0.29.3 h1:2tbx+5L7RNvqJjn7RIuIKu9XTsIZ9Z5wX2G22XAa5EU= k8s.io/apimachinery v0.29.3/go.mod h1:hx/S4V2PNW4OMg3WizRrHutyB5la0iCUbZym+W0EQIU= k8s.io/client-go v0.29.3 h1:R/zaZbEAxqComZ9FHeQwOh3Y1ZUs7FaHKZdQtIc2WZg= @@ -735,7 +1576,10 @@ k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +lukechampine.com/blake3 v1.2.1 h1:YuqqRuaqsGV71BV/nm9xlI0MKUv4QC54jQnBChWbGnI= +lukechampine.com/blake3 v1.2.1/go.mod h1:0OFRp7fBtAylGVCO40o87sbupkyIGgbpv1+M1k1LM6k= nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= rsc.io/tmplfunc v0.0.3 h1:53XFQh69AfOa8Tw0Jm7t+GV7KZhOi6jzsCzTtKbMvzU= rsc.io/tmplfunc v0.0.3/go.mod h1:AG3sTPzElb1Io3Yg4voV9AGZJuleGAwaVRxL9M49PhA= diff --git a/ethergo/chaindata/chaindata.go b/ethergo/chaindata/chaindata.go new file mode 100644 index 0000000000..5b9a2f791a --- /dev/null +++ b/ethergo/chaindata/chaindata.go @@ -0,0 +1,198 @@ +// Package chaindata provides the chain metadata. +// TODO: this more elegantly. +// nolint: mnd +package chaindata + +import "strings" + +// ChainMetadata represents the chain metadata. +type ChainMetadata struct { + // ChainID is the chain id. + ChainID int64 + // ChainName is the chain name. + ChainName string + // Explorer is the chain explorer. + Explorer string +} + +// ChainMetadataList is the list of chain metadata. +var ChainMetadataList = []ChainMetadata{ + { + ChainID: 1, + ChainName: "ethereum", + Explorer: "https://etherscan.io", + }, + { + ChainID: 56, + ChainName: "bsc", + Explorer: "https://bscscan.com", + }, + { + ChainID: 137, + ChainName: "polygon", + Explorer: "https://polygonscan.com", + }, + { + ChainID: 80001, + ChainName: "mumbai", + Explorer: "https://mumbai.polygonscan.com", + }, + { + ChainID: 250, + ChainName: "fantom", + Explorer: "https://ftmscan.com", + }, + { + ChainID: 43114, + ChainName: "avalanche", + Explorer: "https://snowtrace.io/", + }, + { + ChainID: 42161, + ChainName: "arbitrum", + Explorer: "https://arbiscan.io", + }, + { + ChainID: 1337, + ChainName: "local", + Explorer: "http://localhost:1337", + }, + { + ChainID: 42220, + ChainName: "celo", + Explorer: "https://explorer.celo.org", + }, + { + ChainID: 128, + ChainName: "heco", + Explorer: "https://hecoinfo.com", + }, + { + ChainID: 66, + ChainName: "okexchain", + Explorer: "https://www.oklink.com/okexchain", + }, + { + ChainID: 100, + ChainName: "xdai", + Explorer: "https://blockscout.com/poa/xdai", + }, + { + ChainID: 10, + ChainName: "optimism", + Explorer: "https://optimistic.etherscan.io", + }, + { + ChainID: 25, + ChainName: "cronos", + Explorer: "https://cronoscan.com", + }, + { + ChainID: 1285, + ChainName: "moonriver", + Explorer: "https://moonriver.moonscan.io", + }, + { + ChainID: 1284, + ChainName: "moonbeam", + Explorer: "https://moonbeam.moonscan.io", + }, + { + ChainID: 66, + ChainName: "okc", + Explorer: "https://www.oklink.com/en/okc", + }, + { + ChainID: 9001, + ChainName: "evmos", + Explorer: "https://evm.evmos.org", + }, + { + ChainID: 7700, + ChainName: "canto", + Explorer: "https://tuber.build/", + }, + { + ChainID: 53935, + ChainName: "dfk chain", + Explorer: "https://subnets.avax.network/defi-kingdoms", + }, + { + ChainID: 8217, + ChainName: "klaytn", + Explorer: "https://scope.klaytn.com", + }, + { + ChainID: 288, + ChainName: "boba", + Explorer: "https://bobascan.com", + }, + { + ChainID: 1088, + ChainName: "metis", + Explorer: "https://andromeda-explorer.metis.io", + }, + { + ChainID: 1313161554, + ChainName: "aurora", + Explorer: "https://explorer.mainnet.aurora.dev", + }, + { + ChainID: 1666600000, + ChainName: "harmony", + Explorer: "https://explorer.harmony.one", + }, + { + ChainID: 2000, + ChainName: "dogechain", + Explorer: "https://explorer.dogechain.dog", + }, + { + ChainID: 8453, + ChainName: "base", + Explorer: "https://basescan.org", + }, + { + ChainID: 81457, + ChainName: "blast", + Explorer: "https://blastscan.io", + }, + { + ChainID: 534352, + ChainName: "scroll", + Explorer: "https://scrollscan.com", + }, +} + +// ChainIDToChainName converts the chain id to the chain name. +func ChainIDToChainName(chainID int64, isUpper bool) string { + for _, chainMetadata := range ChainMetadataList { + if chainMetadata.ChainID == chainID { + // upper the first letter + if isUpper { + return strings.ToUpper(chainMetadata.ChainName) + } + return chainMetadata.ChainName + } + } + return "" +} + +// ChainIDToExplorer converts the chain id to the chain explorer. +func ChainIDToExplorer(chainID int64) string { + for _, chainMetadata := range ChainMetadataList { + if chainMetadata.ChainID == chainID { + return chainMetadata.Explorer + } + } + return "" +} + +// ToTXLink converts the chain id and hash to the explorer link. +func ToTXLink(chainID int64, hash string) string { + explorer := ChainIDToExplorer(chainID) + if explorer == "" { + return "" + } + return explorer + "/tx/" + hash +} diff --git a/services/rfq/go.mod b/services/rfq/go.mod index 62c777dd8e..c5b13b8860 100644 --- a/services/rfq/go.mod +++ b/services/rfq/go.mod @@ -8,8 +8,10 @@ require ( github.com/Flaque/filet v0.0.0-20201012163910-45f684403088 github.com/alecthomas/assert v1.0.0 github.com/brianvoe/gofakeit/v6 v6.27.0 + github.com/dubonzi/otelresty v1.2.0 github.com/ethereum/go-ethereum v1.13.8 github.com/gin-gonic/gin v1.10.0 + github.com/go-http-utils/headers v0.0.0-20181008091004-fed159eddc2a github.com/go-resty/resty/v2 v2.13.1 github.com/google/uuid v1.6.0 github.com/ipfs/go-log v1.0.5 @@ -29,6 +31,7 @@ require ( github.com/synapsecns/sanguine/services/cctp-relayer v0.0.0-00010101000000-000000000000 github.com/synapsecns/sanguine/services/omnirpc v0.0.0-00010101000000-000000000000 github.com/urfave/cli/v2 v2.27.2 + github.com/valyala/fastjson v1.6.4 go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 go.opentelemetry.io/otel v1.27.0 go.opentelemetry.io/otel/metric v1.27.0 @@ -119,7 +122,6 @@ require ( github.com/docker/docker v26.1.3+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect - github.com/dubonzi/otelresty v1.2.0 // indirect github.com/emirpasic/gods v1.18.1 // indirect github.com/ethereum/c-kzg-4844 v0.4.0 // indirect github.com/fatih/structtag v1.2.0 // indirect @@ -138,7 +140,6 @@ require ( github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect github.com/go-git/go-billy/v5 v5.5.0 // indirect github.com/go-git/go-git/v5 v5.12.0 // indirect - github.com/go-http-utils/headers v0.0.0-20181008091004-fed159eddc2a // indirect 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 @@ -263,7 +264,6 @@ require ( github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.1 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasthttp v1.41.0 // indirect - github.com/valyala/fastjson v1.6.4 // indirect github.com/valyala/fastrand v1.1.0 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect diff --git a/services/rfq/relayer/relapi/client.go b/services/rfq/relayer/relapi/client.go new file mode 100644 index 0000000000..59add9ccd0 --- /dev/null +++ b/services/rfq/relayer/relapi/client.go @@ -0,0 +1,102 @@ +package relapi + +import ( + "context" + "fmt" + "github.com/dubonzi/otelresty" + "github.com/go-http-utils/headers" + "github.com/go-resty/resty/v2" + "github.com/synapsecns/sanguine/core/metrics" + "github.com/valyala/fastjson" + "net/http" +) + +// RelayerClient is the interface for the relayer client. +type RelayerClient interface { + Health(ctx context.Context) (ok bool, err error) + GetQuoteRequestStatusByTxHash(ctx context.Context, hash string) (*GetQuoteRequestStatusResponse, error) + GetQuoteRequestStatusByTxID(ctx context.Context, hash string) (*GetQuoteRequestStatusResponse, error) + RetryTransaction(ctx context.Context, txhash string) (*GetTxRetryResponse, error) +} + +type relayerClient struct { + client *resty.Client +} + +// NewRelayerClient creates a new RelayerClient. +func NewRelayerClient(handler metrics.Handler, url string) RelayerClient { + client := resty.New() + client.SetBaseURL(url) + client.SetHeader(headers.UserAgent, "relayer-client") + + otelresty.TraceClient(client, otelresty.WithTracerProvider(handler.GetTracerProvider())) + + return &relayerClient{ + client: client, + } +} + +// Health checks if the relayer is healthy. +func (r *relayerClient) Health(ctx context.Context) (ok bool, err error) { + resp, err := r.client.R().SetContext(ctx).Get(getHealthRoute) + if err != nil { + return false, fmt.Errorf("failed to check health: %w", err) + } + if resp.StatusCode() != http.StatusOK { + return false, fmt.Errorf("unexpected status code: %d", resp.StatusCode()) + } + + ok = fastjson.GetString(resp.Body(), "status") == "ok" + + return ok, nil +} + +func (r *relayerClient) GetQuoteRequestStatusByTxHash(ctx context.Context, hash string) (*GetQuoteRequestStatusResponse, error) { + var res GetQuoteRequestStatusResponse + + resp, err := r.client.R().SetContext(ctx). + SetQueryParam("hash", hash). + SetResult(&res). + Get(getQuoteStatusByTxHashRoute) + if err != nil { + return nil, fmt.Errorf("failed to get quote request status by tx hash: %w", err) + } + if resp.StatusCode() != http.StatusOK { + return nil, fmt.Errorf("unexpected status code: %d", resp.StatusCode()) + } + + return &res, nil +} + +func (r *relayerClient) GetQuoteRequestStatusByTxID(ctx context.Context, txid string) (*GetQuoteRequestStatusResponse, error) { + var res GetQuoteRequestStatusResponse + + resp, err := r.client.R().SetContext(ctx). + SetQueryParam("id", txid). + SetResult(&res). + Get(getQuoteStatusByTxIDRoute) + if err != nil { + return nil, fmt.Errorf("failed to get quote request status by tx hash: %w", err) + } + if resp.StatusCode() != http.StatusOK { + return nil, fmt.Errorf("unexpected status code: %d", resp.StatusCode()) + } + + return &res, nil +} + +func (r *relayerClient) RetryTransaction(ctx context.Context, txhash string) (*GetTxRetryResponse, error) { + var res GetTxRetryResponse + resp, err := r.client.R().SetContext(ctx). + SetQueryParam("hash", txhash). + SetResult(&res). + Get(getRetryRoute) + if err != nil { + return nil, fmt.Errorf("failed to retry transaction: %w", err) + } + if resp.StatusCode() != http.StatusOK { + return nil, fmt.Errorf("unexpected status code: %d", resp.StatusCode()) + } + + return &res, nil +} diff --git a/services/rfq/relayer/relapi/client_test.go b/services/rfq/relayer/relapi/client_test.go new file mode 100644 index 0000000000..875eb71c04 --- /dev/null +++ b/services/rfq/relayer/relapi/client_test.go @@ -0,0 +1,51 @@ +package relapi_test + +import ( + "github.com/ethereum/go-ethereum/common/hexutil" + "github.com/synapsecns/sanguine/services/rfq/relayer/reldb" +) + +func (c *RelayerClientSuite) TestHealth() { + ok, err := c.Client.Health(c.GetTestContext()) + c.NoError(err) + c.True(ok) +} + +func (c *RelayerClientSuite) TestGetQuoteRequestStatusByTxHash() { + testReq := c.underlying.getTestQuoteRequest(reldb.Seen) + err := c.underlying.database.StoreQuoteRequest(c.GetTestContext(), testReq) + c.Require().NoError(err) + + resp, err := c.Client.GetQuoteRequestStatusByTxHash(c.GetTestContext(), testReq.OriginTxHash.String()) + c.Require().NoError(err) + + c.Equal(resp.Status, testReq.Status.String()) + c.Equal(resp.TxID, hexutil.Encode(testReq.TransactionID[:])) + c.Equal(resp.DestTxHash, testReq.DestTxHash.String()) + c.Equal(resp.OriginTxHash, testReq.OriginTxHash.String()) +} + +func (c *RelayerClientSuite) TestGetQuoteRequestStatusByTxID() { + testReq := c.underlying.getTestQuoteRequest(reldb.Seen) + err := c.underlying.database.StoreQuoteRequest(c.GetTestContext(), testReq) + c.Require().NoError(err) + + resp, err := c.Client.GetQuoteRequestStatusByTxID(c.GetTestContext(), hexutil.Encode(testReq.TransactionID[:])) + c.Require().NoError(err) + + c.Equal(resp.Status, testReq.Status.String()) + c.Equal(resp.TxID, hexutil.Encode(testReq.TransactionID[:])) + c.Equal(resp.DestTxHash, testReq.DestTxHash.String()) + c.Equal(resp.OriginTxHash, testReq.OriginTxHash.String()) +} + +func (c *RelayerClientSuite) TestRetryTransaction() { + testReq := c.underlying.getTestQuoteRequest(reldb.Seen) + err := c.underlying.database.StoreQuoteRequest(c.GetTestContext(), testReq) + c.Require().NoError(err) + + resp, err := c.Client.RetryTransaction(c.GetTestContext(), testReq.OriginTxHash.String()) + c.Require().NoError(err) + + c.Equal(resp.TxID, hexutil.Encode(testReq.TransactionID[:])) +} diff --git a/services/rfq/relayer/relapi/handler.go b/services/rfq/relayer/relapi/handler.go index 94514c9476..3b80387b46 100644 --- a/services/rfq/relayer/relapi/handler.go +++ b/services/rfq/relayer/relapi/handler.go @@ -48,10 +48,12 @@ func (h *Handler) GetQuoteRequestStatusByTxHash(c *gin.Context) { } resp := GetQuoteRequestStatusResponse{ - Status: quoteRequest.Status.String(), - TxID: hexutil.Encode(quoteRequest.TransactionID[:]), - OriginTxHash: quoteRequest.OriginTxHash.String(), - DestTxHash: quoteRequest.DestTxHash.String(), + Status: quoteRequest.Status.String(), + TxID: hexutil.Encode(quoteRequest.TransactionID[:]), + OriginTxHash: quoteRequest.OriginTxHash.String(), + OriginChainID: quoteRequest.Transaction.OriginChainId, + DestChainID: quoteRequest.Transaction.DestChainId, + DestTxHash: quoteRequest.DestTxHash.String(), } c.JSON(http.StatusOK, resp) } @@ -79,10 +81,12 @@ func (h *Handler) GetQuoteRequestStatusByTxID(c *gin.Context) { } resp := GetQuoteRequestStatusResponse{ - Status: quoteRequest.Status.String(), - TxID: hexutil.Encode(quoteRequest.TransactionID[:]), - OriginTxHash: quoteRequest.OriginTxHash.String(), - DestTxHash: quoteRequest.DestTxHash.String(), + Status: quoteRequest.Status.String(), + TxID: hexutil.Encode(quoteRequest.TransactionID[:]), + OriginTxHash: quoteRequest.OriginTxHash.String(), + OriginChainID: quoteRequest.Transaction.OriginChainId, + DestChainID: quoteRequest.Transaction.DestChainId, + DestTxHash: quoteRequest.DestTxHash.String(), } c.JSON(http.StatusOK, resp) } diff --git a/services/rfq/relayer/relapi/model.go b/services/rfq/relayer/relapi/model.go index 563a3ab5ba..dbae73fd14 100644 --- a/services/rfq/relayer/relapi/model.go +++ b/services/rfq/relayer/relapi/model.go @@ -2,10 +2,12 @@ package relapi // GetQuoteRequestStatusResponse contains the schema for a GET /quote response. type GetQuoteRequestStatusResponse struct { - Status string `json:"status"` - TxID string `json:"tx_id"` - OriginTxHash string `json:"origin_tx_hash"` - DestTxHash string `json:"dest_tx_hash"` + Status string `json:"status"` + TxID string `json:"tx_id"` + OriginTxHash string `json:"origin_tx_hash"` + OriginChainID uint32 `json:"origin_chain_id"` + DestTxHash string `json:"dest_tx_hash"` + DestChainID uint32 `json:"dest_chain_id"` } // GetTxRetryResponse contains the schema for a PUT /tx/retry response. diff --git a/services/rfq/relayer/relapi/server_test.go b/services/rfq/relayer/relapi/server_test.go index faf78cefcc..379d8f0b2f 100644 --- a/services/rfq/relayer/relapi/server_test.go +++ b/services/rfq/relayer/relapi/server_test.go @@ -59,10 +59,12 @@ func (c *RelayerServerSuite) TestGetQuoteRequestByTxHash() { err = json.NewDecoder(resp.Body).Decode(&result) c.Require().NoError(err) expectedResult := relapi.GetQuoteRequestStatusResponse{ - Status: quoteRequest.Status.String(), - TxID: hexutil.Encode(quoteRequest.TransactionID[:]), - OriginTxHash: quoteRequest.OriginTxHash.String(), - DestTxHash: quoteRequest.DestTxHash.String(), + Status: quoteRequest.Status.String(), + TxID: hexutil.Encode(quoteRequest.TransactionID[:]), + OriginTxHash: quoteRequest.OriginTxHash.String(), + OriginChainID: quoteRequest.Transaction.OriginChainId, + DestChainID: quoteRequest.Transaction.DestChainId, + DestTxHash: quoteRequest.DestTxHash.String(), } c.Equal(expectedResult, result) c.GetTestContext().Done() @@ -94,10 +96,12 @@ func (c *RelayerServerSuite) TestGetQuoteRequestByTxID() { err = json.NewDecoder(resp.Body).Decode(&result) c.Require().NoError(err) expectedResult := relapi.GetQuoteRequestStatusResponse{ - Status: quoteRequest.Status.String(), - TxID: hexutil.Encode(quoteRequest.TransactionID[:]), - OriginTxHash: quoteRequest.OriginTxHash.String(), - DestTxHash: quoteRequest.DestTxHash.String(), + Status: quoteRequest.Status.String(), + TxID: hexutil.Encode(quoteRequest.TransactionID[:]), + OriginTxHash: quoteRequest.OriginTxHash.String(), + OriginChainID: quoteRequest.Transaction.OriginChainId, + DestChainID: quoteRequest.Transaction.DestChainId, + DestTxHash: quoteRequest.DestTxHash.String(), } c.Equal(expectedResult, result) c.GetTestContext().Done() @@ -156,8 +160,10 @@ func (c *RelayerServerSuite) startQuoterAPIServer() { c.Require().NoError(err) resp, err := client.Do(req) defer func() { - closeErr := resp.Body.Close() - c.NoError(closeErr) + if resp.Body != nil { + closeErr := resp.Body.Close() + c.NoError(closeErr) + } }() if err != nil { return fmt.Errorf("server not ready: %w", err) diff --git a/services/rfq/relayer/relapi/suite_test.go b/services/rfq/relayer/relapi/suite_test.go index 39b51339fd..ff16728fb8 100644 --- a/services/rfq/relayer/relapi/suite_test.go +++ b/services/rfq/relayer/relapi/suite_test.go @@ -194,3 +194,34 @@ func (c *RelayerServerSuite) SetupSuite() { func TestRelayerServerSuite(t *testing.T) { suite.Run(t, NewRelayerServerSuite(t)) } + +type RelayerClientSuite struct { + *testsuite.TestSuite + underlying *RelayerServerSuite + Client relapi.RelayerClient +} + +// NewRelayerClientSuite creates a new relayer client suite. +func NewRelayerClientSuite(tb testing.TB) *RelayerClientSuite { + tb.Helper() + underlying := NewRelayerServerSuite(tb) + + return &RelayerClientSuite{ + TestSuite: underlying.TestSuite, + underlying: underlying, + } +} +func (c *RelayerClientSuite) SetupSuite() { + c.underlying.SetupSuite() +} + +func (c *RelayerClientSuite) SetupTest() { + c.underlying.SetupTest() + c.underlying.startQuoterAPIServer() + c.Client = relapi.NewRelayerClient(c.underlying.handler, fmt.Sprintf("http://localhost:%d", c.underlying.port)) +} + +// TestConfigSuite runs the integration test suite. +func TestRelayerClientSuite(t *testing.T) { + suite.Run(t, NewRelayerClientSuite(t)) +} diff --git a/services/scribe/db/transaction_test.go b/services/scribe/db/transaction_test.go index b4f02f1ba6..1539d9df30 100644 --- a/services/scribe/db/transaction_test.go +++ b/services/scribe/db/transaction_test.go @@ -81,7 +81,7 @@ func (t *DBSuite) TestStoreAndRetrieveEthTx() { err = testDB.StoreEthTx(t.GetTestContext(), signedTx, uint32(testTx.ChainId().Uint64()), common.BigToHash(big.NewInt(gofakeit.Int64())), gofakeit.Uint64(), gofakeit.Uint64()) Nil(t.T(), err) - // err = testDB.StoreEthTxAtHead(t.GetTestContext(), signedTx, uint32(testTx.ChainId().Uint64()), common.BigToHash(big.NewInt(gofakeit.Int64())), gofakeit.Uint64(), gofakeit.Uint64()) + // err = testDB.StoreEthTxAtHead(t.GetTestContext(), signedTx, uint32(testTx.ChainID().Uint64()), common.BigToHash(big.NewInt(gofakeit.Int64())), gofakeit.Uint64(), gofakeit.Uint64()) // Nil(t.T(), err) ethTxFilter := db.EthTxFilter{ From 719dcf3d95ee324439cb143e50e66e40bad04719 Mon Sep 17 00:00:00 2001 From: trajan0x <83933037+trajan0x@users.noreply.github.com> Date: Sat, 22 Jun 2024 17:20:03 -0400 Subject: [PATCH 20/85] fix listener on l2 [goreleaser] (#2774) Co-authored-by: Trajan0x --- ethergo/listener/listener.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ethergo/listener/listener.go b/ethergo/listener/listener.go index e55a997b09..63cef6e48e 100644 --- a/ethergo/listener/listener.go +++ b/ethergo/listener/listener.go @@ -189,12 +189,12 @@ func (c *chainListener) doPoll(parentCtx context.Context, handler HandleLog) (er } func (c chainListener) getBlockNumber(ctx context.Context) (uint64, error) { - block, err := c.client.BlockByNumber(ctx, big.NewInt(c.finalityMode.Int64())) + block, err := c.client.HeaderByNumber(ctx, big.NewInt(c.finalityMode.Int64())) if err != nil { return 0, fmt.Errorf("could not get block by number: %w", err) } - blockNumber := block.Number() + blockNumber := block.Number if c.blockWait > 0 { blockNumber.Sub(blockNumber, big.NewInt(int64(c.blockWait))) From 99ec69f07ae065db1b694098d9f48708310cf569 Mon Sep 17 00:00:00 2001 From: trajan0x <83933037+trajan0x@users.noreply.github.com> Date: Sat, 22 Jun 2024 17:52:55 -0400 Subject: [PATCH 21/85] remove 0x prefix (#2775) --- contrib/opbot/botmd/commands.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/opbot/botmd/commands.go b/contrib/opbot/botmd/commands.go index 9057c72328..85ef736f15 100644 --- a/contrib/opbot/botmd/commands.go +++ b/contrib/opbot/botmd/commands.go @@ -225,7 +225,7 @@ func (b *Bot) rfqLookupCommand() *slacker.CommandDefinition { func toExplorerSlackLink(ogHash string) string { rfqHash := strings.ToUpper(ogHash) // cut off 0x - if len(rfqHash) > 0 { + if strings.HasPrefix(rfqHash, "0x") { rfqHash = strings.ToLower(rfqHash[2:]) } From 2ffac4507f4070b31c1a87408199af8a4e764fc0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 22 Jun 2024 19:07:58 -0400 Subject: [PATCH 22/85] fix(deps): update dependency graphql to v16.8.2 (#2748) | datasource | package | from | to | | ---------- | ------- | ------ | ------ | | npm | graphql | 16.8.1 | 16.8.2 | Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 56038b8704..8139a28edf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -20267,9 +20267,9 @@ graphql-ws@^5.14.0: integrity sha512-xWGAtm3fig9TIhSaNsg0FaDZ8Pyn/3re3RFlP4rhQcmjRDIPpk1EhRuNB+YSJtLzttyuToaDiNhwT1OMoGnJnw== graphql@^16.5.0, graphql@^16.7.1: - version "16.8.1" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.8.1.tgz#1930a965bef1170603702acdb68aedd3f3cf6f07" - integrity sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw== + version "16.8.2" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.8.2.tgz#54771c7ff195da913f5e70af8044a026d32eca2a" + integrity sha512-cvVIBILwuoSyD54U4cF/UXDh5yAobhNV/tPygI4lZhgOIJQE/WLWC4waBRb4I6bDVYb3OVx3lfHbaQOEoUD5sg== gray-matter@^4.0.3: version "4.0.3" From 7ecc1856ba7e83fa36b411931b42255142c49919 Mon Sep 17 00:00:00 2001 From: aureliusbtc <82057759+aureliusbtc@users.noreply.github.com> Date: Sun, 23 Jun 2024 12:09:14 +0100 Subject: [PATCH 23/85] update BL --- packages/synapse-interface/public/blacklist.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/synapse-interface/public/blacklist.json b/packages/synapse-interface/public/blacklist.json index 37192e836f..afbe56bc8e 100644 --- a/packages/synapse-interface/public/blacklist.json +++ b/packages/synapse-interface/public/blacklist.json @@ -505,6 +505,7 @@ "0x2DbFDAe8a07E78d0D230deF7210fce0426F71707", "0x5655f0742C40A05D806274582f71E61B0372d8b6", "0x44EE9F15E718a8514928CE5dB665e7513a83204c", - "0x8556f84c10439c6636f6621e25f22325148f3a01" + "0x8556f84c10439c6636f6621e25f22325148f3a01", + "0xb0efCEB94Ac930f2E92E2a217f07a1175f472452" ] From 87afd9b09da7faeae11c9e9a566b228b9bbc1c95 Mon Sep 17 00:00:00 2001 From: dwasse Date: Sun, 23 Jun 2024 10:49:44 -0500 Subject: [PATCH 24/85] RFQ Relayer: use mutex on listener-triggered handlers (#2767) * Feat: blocking lock on handlers triggered by listener * [goreleaser] * Feat: lock before RelayRaceLost check * [goreleaser] * Feat: lock check on forwarding * [goreleaser] --------- Co-authored-by: Trajan0x --- services/rfq/relayer/service/chainindexer.go | 11 +++++++++++ services/rfq/relayer/service/statushandler.go | 13 +++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/services/rfq/relayer/service/chainindexer.go b/services/rfq/relayer/service/chainindexer.go index 7b11646c4b..935167c8f0 100644 --- a/services/rfq/relayer/service/chainindexer.go +++ b/services/rfq/relayer/service/chainindexer.go @@ -6,6 +6,7 @@ import ( "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/synapsecns/sanguine/core/metrics" "github.com/synapsecns/sanguine/services/rfq/contracts/fastbridge" @@ -77,6 +78,10 @@ func (r *Relayer) runChainIndexer(ctx context.Context, chainID int) (err error) return fmt.Errorf("could not handle request: %w", err) } case *fastbridge.FastBridgeBridgeRelayed: + // blocking lock on the txid mutex to ensure state transitions are not overrwitten + unlocker := r.relayMtx.Lock(hexutil.Encode(event.TransactionId[:])) + defer unlocker.Unlock() + // it wasn't me if event.Relayer != r.signer.Address() { //nolint: wrapcheck @@ -88,6 +93,9 @@ func (r *Relayer) runChainIndexer(ctx context.Context, chainID int) (err error) return fmt.Errorf("could not handle relay: %w", err) } case *fastbridge.FastBridgeBridgeProofProvided: + unlocker := r.relayMtx.Lock(hexutil.Encode(event.TransactionId[:])) + defer unlocker.Unlock() + // it wasn't me if event.Relayer != r.signer.Address() { //nolint: wrapcheck @@ -99,6 +107,9 @@ func (r *Relayer) runChainIndexer(ctx context.Context, chainID int) (err error) return fmt.Errorf("could not handle proof provided: %w", err) } case *fastbridge.FastBridgeBridgeDepositClaimed: + unlocker := r.relayMtx.Lock(hexutil.Encode(event.TransactionId[:])) + defer unlocker.Unlock() + // it wasn't me if event.Relayer != r.signer.Address() { //nolint: wrapcheck diff --git a/services/rfq/relayer/service/statushandler.go b/services/rfq/relayer/service/statushandler.go index 64208e5a5b..4f8b9bbdc2 100644 --- a/services/rfq/relayer/service/statushandler.go +++ b/services/rfq/relayer/service/statushandler.go @@ -9,6 +9,7 @@ import ( "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common/hexutil" "github.com/jellydator/ttlcache/v3" + "github.com/synapsecns/sanguine/core/mapmutex" "github.com/synapsecns/sanguine/core/metrics" "github.com/synapsecns/sanguine/services/rfq/api/client" "github.com/synapsecns/sanguine/services/rfq/relayer/chain" @@ -48,6 +49,8 @@ type QuoteRequestHandler struct { // mutexMiddlewareFunc is used to wrap the handler in a mutex middleware. // this should only be done if Handling, not forwarding. mutexMiddlewareFunc func(func(ctx context.Context, span trace.Span, req reldb.QuoteRequest) error) func(ctx context.Context, span trace.Span, req reldb.QuoteRequest) error + // relayMtx is the mutex for relaying. + relayMtx mapmutex.StringMapMutex } // Handler is the handler for a quote request. @@ -76,6 +79,7 @@ func (r *Relayer) requestToHandler(ctx context.Context, req reldb.QuoteRequest) claimCache: r.claimCache, apiClient: r.apiClient, mutexMiddlewareFunc: r.mutexMiddleware, + relayMtx: r.relayMtx, } // wrap in deadline middleware since the relay has not yet happened @@ -221,14 +225,19 @@ func (q *QuoteRequestHandler) Handle(ctx context.Context, request reldb.QuoteReq // Forward forwards a quote request. // this ignores the mutex middleware. func (q *QuoteRequestHandler) Forward(ctx context.Context, request reldb.QuoteRequest) (err error) { + txID := hexutil.Encode(request.TransactionID[:]) ctx, span := q.metrics.Tracer().Start(ctx, fmt.Sprintf("forward-%s", request.Status.String()), trace.WithAttributes( - attribute.String("transaction_id", hexutil.Encode(request.TransactionID[:])), + attribute.String("transaction_id", txID), )) defer func() { metrics.EndSpanWithErr(span, err) }() - // TODO: consider adding a lock attempt/fail here as a defensive coding strategy. We *expect* stuff to be locked by the time we get to forward. + // sanity check to make sure that the lock is already acquired for this tx + _, ok := q.relayMtx.TryLock(txID) + if ok { + panic(fmt.Sprintf("attempted forward while lock was not acquired for tx: %s", txID)) + } return q.handlers[request.Status](ctx, span, request) } From d3ef26884b9da797e030af6b349ec1d0cb377d80 Mon Sep 17 00:00:00 2001 From: dwasse Date: Sun, 23 Jun 2024 12:42:10 -0500 Subject: [PATCH 25/85] RFQ Relayer: check for db status mismatch (#2769) * Feat: check for status mismatch * [goreleaser] --------- Co-authored-by: Trajan0x --- services/rfq/relayer/service/statushandler.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/services/rfq/relayer/service/statushandler.go b/services/rfq/relayer/service/statushandler.go index 4f8b9bbdc2..3034f9174e 100644 --- a/services/rfq/relayer/service/statushandler.go +++ b/services/rfq/relayer/service/statushandler.go @@ -109,6 +109,20 @@ func (r *Relayer) mutexMiddleware(next func(ctx context.Context, span trace.Span } defer unlocker.Unlock() + // make sure the status has not changed since we last saw it + dbReq, err := r.db.GetQuoteRequestByID(ctx, req.TransactionID) + if err != nil { + return fmt.Errorf("could not get request: %w", err) + } + if dbReq.Status != req.Status { + span.SetAttributes( + attribute.Bool("status_changed", true), + attribute.String("db_status", dbReq.Status.String()), + attribute.String("handler_status", req.Status.String()), + ) + return nil + } + return next(ctx, span, req) } } From 870032e82c9524660fcff3099b9e2da6d876708a Mon Sep 17 00:00:00 2001 From: aureliusbtc <82057759+aureliusbtc@users.noreply.github.com> Date: Sun, 23 Jun 2024 22:40:10 +0100 Subject: [PATCH 26/85] update bl --- packages/synapse-interface/public/blacklist.json | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/synapse-interface/public/blacklist.json b/packages/synapse-interface/public/blacklist.json index afbe56bc8e..8ab7d5723d 100644 --- a/packages/synapse-interface/public/blacklist.json +++ b/packages/synapse-interface/public/blacklist.json @@ -506,6 +506,16 @@ "0x5655f0742C40A05D806274582f71E61B0372d8b6", "0x44EE9F15E718a8514928CE5dB665e7513a83204c", "0x8556f84c10439c6636f6621e25f22325148f3a01", - "0xb0efCEB94Ac930f2E92E2a217f07a1175f472452" + "0xb0efCEB94Ac930f2E92E2a217f07a1175f472452", + "0xc385F837463F1E2bf079A423E2c76E50D3Cc1B99", + "0xEF3c73730a79441d9cE839A0A782b1EaC2edbDd3", + "0xc3a8E8f6392b261381e9B284Cd622adDBcEC1b99", + "0xf227d2a55907D05c412309d870b5A5137fBd3dA0", + "0x071958c831C50a3d6f3F0AcCaaAe717415C6F22b", + "0x033A41Ddb54E5bC1672e85657C05C086c1814E31", + "0x886A65792dC623Ad63c3b5865555F494389B4944", + "0xa2137EE16ccDd84da10B8c1a161e9710e03CE82B", + "0x033A41Ddb54E5bC1672e85657C05C086c1814E31", + "0xc385F837463F1E2bf079A423E2c76E50D3Cc1B99" ] From 674668916e92e1dc2754570e92fdfdea36ce091c Mon Sep 17 00:00:00 2001 From: aureliusbtc <82057759+aureliusbtc@users.noreply.github.com> Date: Mon, 24 Jun 2024 10:50:09 +0100 Subject: [PATCH 27/85] Update blacklist.json --- packages/synapse-interface/public/blacklist.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/synapse-interface/public/blacklist.json b/packages/synapse-interface/public/blacklist.json index 8ab7d5723d..c54e05838e 100644 --- a/packages/synapse-interface/public/blacklist.json +++ b/packages/synapse-interface/public/blacklist.json @@ -516,6 +516,6 @@ "0x886A65792dC623Ad63c3b5865555F494389B4944", "0xa2137EE16ccDd84da10B8c1a161e9710e03CE82B", "0x033A41Ddb54E5bC1672e85657C05C086c1814E31", - "0xc385F837463F1E2bf079A423E2c76E50D3Cc1B99" - + "0xc385F837463F1E2bf079A423E2c76E50D3Cc1B99", + "0xf219B0000466908E12151a7021d1D32a36c5fC16" ] From 1f6fe5de3110c774da13e47b088530cca0af1300 Mon Sep 17 00:00:00 2001 From: aureliusbtc <82057759+aureliusbtc@users.noreply.github.com> Date: Mon, 24 Jun 2024 11:12:48 +0100 Subject: [PATCH 28/85] update bl --- packages/synapse-interface/public/blacklist.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/synapse-interface/public/blacklist.json b/packages/synapse-interface/public/blacklist.json index c54e05838e..2bc4de5c54 100644 --- a/packages/synapse-interface/public/blacklist.json +++ b/packages/synapse-interface/public/blacklist.json @@ -517,5 +517,6 @@ "0xa2137EE16ccDd84da10B8c1a161e9710e03CE82B", "0x033A41Ddb54E5bC1672e85657C05C086c1814E31", "0xc385F837463F1E2bf079A423E2c76E50D3Cc1B99", - "0xf219B0000466908E12151a7021d1D32a36c5fC16" + "0xf219B0000466908E12151a7021d1D32a36c5fC16", + "0x039647cca0ca2576721360ed09279d65ddde26d7" ] From 015ee049563c2471cb21f15b809d67a9b072ab69 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 24 Jun 2024 10:53:58 -0400 Subject: [PATCH 29/85] fix(deps): update module github.com/vektah/gqlparser/v2 to v2.5.14 [security] (#2723) * fix(deps): update module github.com/vektah/gqlparser/v2 to v2.5.14 [security] | datasource | package | from | to | | ---------- | ------------------------------ | ------ | ------- | | go | github.com/vektah/gqlparser/v2 | v2.5.8 | v2.5.14 | Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * cleanup --------- Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Trajan0x --- CODEOWNERS | 2 +- agents/go.mod | 2 +- agents/go.sum | 5 ++--- contrib/promexporter/go.mod | 2 +- contrib/promexporter/go.sum | 5 ++--- services/explorer/go.mod | 2 +- services/explorer/go.sum | 5 ++--- services/scribe/go.mod | 2 +- services/scribe/go.sum | 5 ++--- 9 files changed, 13 insertions(+), 17 deletions(-) diff --git a/CODEOWNERS b/CODEOWNERS index b1475a0dd4..b5108340d6 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -20,7 +20,7 @@ packages/sdk-router/ @aureliusbtc @ChiTimesChi @trajan0x packages/explorer-ui/ @trajan0x @bigboydiamonds @abtestingalpha packages/rest-api/ @trajan0x @Defi-Moses packages/synapse-interface/ @bigboydiamonds @abtestingalpha @aureliusbtc - +yarn.lock @bigboydiamonds @abtestingalpha contrib/ @trajan0x services/explorer @trajan0x diff --git a/agents/go.mod b/agents/go.mod index 80acf289af..00612a572a 100644 --- a/agents/go.mod +++ b/agents/go.mod @@ -289,7 +289,7 @@ require ( github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasthttp v1.41.0 // indirect github.com/valyala/fastrand v1.1.0 // indirect - github.com/vektah/gqlparser/v2 v2.5.8 // indirect + github.com/vektah/gqlparser/v2 v2.5.14 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect diff --git a/agents/go.sum b/agents/go.sum index 0364b336b6..237e173f26 100644 --- a/agents/go.sum +++ b/agents/go.sum @@ -1058,7 +1058,6 @@ github.com/segmentio/fasthash v1.0.3/go.mod h1:waKX8l2N8yckOgmSsXJi7x1ZfdKZ4x7KR github.com/segmentio/kafka-go v0.1.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo= github.com/segmentio/kafka-go v0.2.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8= github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4= github.com/shibukawa/configdir v0.0.0-20170330084843-e180dbdc8da0 h1:Xuk8ma/ibJ1fOy4Ee11vHhUFHQNpHhrBneOCNHVXS5w= @@ -1180,8 +1179,8 @@ github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= github.com/vburenin/ifacemaker v1.2.0 h1:jREjCJ8RgTZuH5EYWB0/1ZHdTpJVqhMBU87XIUeX+2I= github.com/vburenin/ifacemaker v1.2.0/go.mod h1:oZwuhpbmYD8SjjofPhscHVmYxNtRLdczDCslWrb/q2w= -github.com/vektah/gqlparser/v2 v2.5.8 h1:pm6WOnGdzFOCfcQo9L3+xzW51mKrlwTEg4Wr7AH1JW4= -github.com/vektah/gqlparser/v2 v2.5.8/go.mod h1:z8xXUff237NntSuH8mLFijZ+1tjV1swDbpDqjJmk6ME= +github.com/vektah/gqlparser/v2 v2.5.14 h1:dzLq75BJe03jjQm6n56PdH1oweB8ana42wj7E4jRy70= +github.com/vektah/gqlparser/v2 v2.5.14/go.mod h1:WQQjFc+I1YIzoPvZBhUQX7waZgg3pMLi0r8KymvAE2w= github.com/vektra/mockery/v2 v2.14.0 h1:KZ1p5Hrn8tiY+LErRMr14HHle6khxo+JKOXLBW/yfqs= github.com/vektra/mockery/v2 v2.14.0/go.mod h1:bnD1T8tExSgPD1ripLkDbr60JA9VtQeu12P3wgLZd7M= github.com/viant/toolbox v0.24.0 h1:6TteTDQ68CjgcCe8wH3D3ZhUQQOJXMTbj/D9rkk2a1k= diff --git a/contrib/promexporter/go.mod b/contrib/promexporter/go.mod index 3e25c3dd0d..f913074ba6 100644 --- a/contrib/promexporter/go.mod +++ b/contrib/promexporter/go.mod @@ -203,7 +203,7 @@ require ( github.com/uptrace/opentelemetry-go-extra/otelutil v0.3.1 // indirect github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.1 // indirect github.com/valyala/fastjson v1.6.4 // indirect - github.com/vektah/gqlparser/v2 v2.5.8 // indirect + github.com/vektah/gqlparser/v2 v2.5.14 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 // indirect github.com/yusufpapurcu/wmi v1.2.3 // indirect diff --git a/contrib/promexporter/go.sum b/contrib/promexporter/go.sum index 56bfcb7758..6acbfad515 100644 --- a/contrib/promexporter/go.sum +++ b/contrib/promexporter/go.sum @@ -955,7 +955,6 @@ github.com/segmentio/asm v1.2.0/go.mod h1:BqMnlJP91P8d+4ibuonYZw9mfnzI9HfxselHZr github.com/segmentio/kafka-go v0.1.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo= github.com/segmentio/kafka-go v0.2.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8= github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4= github.com/shibukawa/configdir v0.0.0-20170330084843-e180dbdc8da0 h1:Xuk8ma/ibJ1fOy4Ee11vHhUFHQNpHhrBneOCNHVXS5w= @@ -1069,8 +1068,8 @@ github.com/valyala/fastrand v1.1.0/go.mod h1:HWqCzkrkg6QXT8V2EXWvXCoow7vLwOFN002 github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio= -github.com/vektah/gqlparser/v2 v2.5.8 h1:pm6WOnGdzFOCfcQo9L3+xzW51mKrlwTEg4Wr7AH1JW4= -github.com/vektah/gqlparser/v2 v2.5.8/go.mod h1:z8xXUff237NntSuH8mLFijZ+1tjV1swDbpDqjJmk6ME= +github.com/vektah/gqlparser/v2 v2.5.14 h1:dzLq75BJe03jjQm6n56PdH1oweB8ana42wj7E4jRy70= +github.com/vektah/gqlparser/v2 v2.5.14/go.mod h1:WQQjFc+I1YIzoPvZBhUQX7waZgg3pMLi0r8KymvAE2w= github.com/viant/toolbox v0.24.0 h1:6TteTDQ68CjgcCe8wH3D3ZhUQQOJXMTbj/D9rkk2a1k= github.com/viant/toolbox v0.24.0/go.mod h1:OxMCG57V0PXuIP2HNQrtJf2CjqdmbrOx5EkMILuUhzM= github.com/willf/bitset v1.1.3/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= diff --git a/services/explorer/go.mod b/services/explorer/go.mod index 80bd6da9f5..aa0cc1b363 100644 --- a/services/explorer/go.mod +++ b/services/explorer/go.mod @@ -42,7 +42,7 @@ require ( github.com/synapsecns/sanguine/ethergo v0.1.0 github.com/synapsecns/sanguine/services/scribe v0.0.0-00010101000000-000000000000 github.com/urfave/cli/v2 v2.27.2 - github.com/vektah/gqlparser/v2 v2.5.8 + github.com/vektah/gqlparser/v2 v2.5.14 go.opentelemetry.io/otel v1.27.0 go.opentelemetry.io/otel/metric v1.27.0 go.uber.org/atomic v1.11.0 diff --git a/services/explorer/go.sum b/services/explorer/go.sum index 493792e138..3ef0c9e185 100644 --- a/services/explorer/go.sum +++ b/services/explorer/go.sum @@ -949,7 +949,6 @@ github.com/segmentio/asm v1.2.0/go.mod h1:BqMnlJP91P8d+4ibuonYZw9mfnzI9HfxselHZr github.com/segmentio/kafka-go v0.1.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo= github.com/segmentio/kafka-go v0.2.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8= github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4= github.com/shibukawa/configdir v0.0.0-20170330084843-e180dbdc8da0 h1:Xuk8ma/ibJ1fOy4Ee11vHhUFHQNpHhrBneOCNHVXS5w= @@ -1064,8 +1063,8 @@ github.com/valyala/fastrand v1.1.0/go.mod h1:HWqCzkrkg6QXT8V2EXWvXCoow7vLwOFN002 github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio= -github.com/vektah/gqlparser/v2 v2.5.8 h1:pm6WOnGdzFOCfcQo9L3+xzW51mKrlwTEg4Wr7AH1JW4= -github.com/vektah/gqlparser/v2 v2.5.8/go.mod h1:z8xXUff237NntSuH8mLFijZ+1tjV1swDbpDqjJmk6ME= +github.com/vektah/gqlparser/v2 v2.5.14 h1:dzLq75BJe03jjQm6n56PdH1oweB8ana42wj7E4jRy70= +github.com/vektah/gqlparser/v2 v2.5.14/go.mod h1:WQQjFc+I1YIzoPvZBhUQX7waZgg3pMLi0r8KymvAE2w= github.com/viant/toolbox v0.24.0 h1:6TteTDQ68CjgcCe8wH3D3ZhUQQOJXMTbj/D9rkk2a1k= github.com/viant/toolbox v0.24.0/go.mod h1:OxMCG57V0PXuIP2HNQrtJf2CjqdmbrOx5EkMILuUhzM= github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= diff --git a/services/scribe/go.mod b/services/scribe/go.mod index a5dcdb2966..57e9436d3d 100644 --- a/services/scribe/go.mod +++ b/services/scribe/go.mod @@ -50,7 +50,7 @@ require ( github.com/synapsecns/sanguine/services/omnirpc v0.0.0-00010101000000-000000000000 github.com/synapsecns/sanguine/tools v0.0.0-00010101000000-000000000000 github.com/urfave/cli/v2 v2.27.2 - github.com/vektah/gqlparser/v2 v2.5.8 + github.com/vektah/gqlparser/v2 v2.5.14 github.com/vektra/mockery/v2 v2.14.0 go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 go.opentelemetry.io/otel v1.27.0 diff --git a/services/scribe/go.sum b/services/scribe/go.sum index 25f09d4c07..47ae2d655d 100644 --- a/services/scribe/go.sum +++ b/services/scribe/go.sum @@ -1026,7 +1026,6 @@ github.com/seccomp/libseccomp-golang v0.9.2-0.20220502022130-f33da4d89646/go.mod github.com/segmentio/kafka-go v0.1.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo= github.com/segmentio/kafka-go v0.2.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8= github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4= github.com/shibukawa/configdir v0.0.0-20170330084843-e180dbdc8da0 h1:Xuk8ma/ibJ1fOy4Ee11vHhUFHQNpHhrBneOCNHVXS5w= @@ -1143,8 +1142,8 @@ github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPU github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio= github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= -github.com/vektah/gqlparser/v2 v2.5.8 h1:pm6WOnGdzFOCfcQo9L3+xzW51mKrlwTEg4Wr7AH1JW4= -github.com/vektah/gqlparser/v2 v2.5.8/go.mod h1:z8xXUff237NntSuH8mLFijZ+1tjV1swDbpDqjJmk6ME= +github.com/vektah/gqlparser/v2 v2.5.14 h1:dzLq75BJe03jjQm6n56PdH1oweB8ana42wj7E4jRy70= +github.com/vektah/gqlparser/v2 v2.5.14/go.mod h1:WQQjFc+I1YIzoPvZBhUQX7waZgg3pMLi0r8KymvAE2w= github.com/vektra/mockery/v2 v2.14.0 h1:KZ1p5Hrn8tiY+LErRMr14HHle6khxo+JKOXLBW/yfqs= github.com/vektra/mockery/v2 v2.14.0/go.mod h1:bnD1T8tExSgPD1ripLkDbr60JA9VtQeu12P3wgLZd7M= github.com/viant/toolbox v0.24.0 h1:6TteTDQ68CjgcCe8wH3D3ZhUQQOJXMTbj/D9rkk2a1k= From 1adf867abb85ca1325c0ba0cdd292d54b054fa75 Mon Sep 17 00:00:00 2001 From: trajan0x <83933037+trajan0x@users.noreply.github.com> Date: Mon, 24 Jun 2024 11:19:05 -0400 Subject: [PATCH 30/85] cleanup analyzer (#2776) Co-authored-by: Trajan0x --- .codeclimate.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.codeclimate.yml b/.codeclimate.yml index 15919a5c50..38f59424fb 100644 --- a/.codeclimate.yml +++ b/.codeclimate.yml @@ -14,6 +14,8 @@ plugins: exclude_patterns: - '.*\\.abigen\\.go$' + - '*/*.abigen.go' + - '*.gen.go' #gql gen - '.*\\.metadata\\.go$' - '.*\\.pb\\.go$' - '.*_gen.go$' From ee88f2c350203e2c8ab09e836eb185e2ca19f62a Mon Sep 17 00:00:00 2001 From: trajan0x <83933037+trajan0x@users.noreply.github.com> Date: Tue, 25 Jun 2024 01:32:47 -0400 Subject: [PATCH 31/85] strip links from command input (#2784) * fix #2783 [goreleaser] * debug [goreleaser] * Revert "debug [goreleaser]" This reverts commit d6a16322682bd5fef947f4dd6bae319034a329aa. --------- Co-authored-by: Trajan0x --- contrib/opbot/botmd/commands.go | 10 ++++++++-- contrib/opbot/botmd/commands_test.go | 15 +++++++++++++++ contrib/opbot/botmd/export_test.go | 5 +++++ contrib/screener-api/.gitignore | 1 + 4 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 contrib/opbot/botmd/commands_test.go create mode 100644 contrib/opbot/botmd/export_test.go create mode 100644 contrib/screener-api/.gitignore diff --git a/contrib/opbot/botmd/commands.go b/contrib/opbot/botmd/commands.go index 85ef736f15..09939360cd 100644 --- a/contrib/opbot/botmd/commands.go +++ b/contrib/opbot/botmd/commands.go @@ -12,6 +12,7 @@ import ( "github.com/synapsecns/sanguine/ethergo/chaindata" "github.com/synapsecns/sanguine/services/rfq/relayer/relapi" "log" + "regexp" "strings" "sync" "time" @@ -27,7 +28,7 @@ func (b *Bot) traceCommand() *slacker.CommandDefinition { "trace transaction_id:0x1234 serviceName:rfq", }, Handler: func(ctx *slacker.CommandContext) { - tags := ctx.Request().Param("tags") + tags := stripLinks(ctx.Request().Param("tags")) splitTags := strings.Split(tags, " ") if len(splitTags) == 0 { _, err := ctx.Response().Reply("please provide tags in a key:value format") @@ -138,7 +139,7 @@ func (b *Bot) rfqLookupCommand() *slacker.CommandDefinition { return } - tx := ctx.Request().Param("tx") + tx := stripLinks(ctx.Request().Param("tx")) var wg sync.WaitGroup // 2 routines per relayer, one for tx hashh one for tx id @@ -242,3 +243,8 @@ func toTXSlackLink(txHash string, chainID uint32) string { // TODO: remove when we can contorl unfurl return fmt.Sprintf("", url, txHash) } + +func stripLinks(input string) string { + linkRegex := regexp.MustCompile(`]+\|([^>]+)>`) + return linkRegex.ReplaceAllString(input, "$1") +} diff --git a/contrib/opbot/botmd/commands_test.go b/contrib/opbot/botmd/commands_test.go new file mode 100644 index 0000000000..402ab3a4a0 --- /dev/null +++ b/contrib/opbot/botmd/commands_test.go @@ -0,0 +1,15 @@ +package botmd_test + +import ( + "github.com/synapsecns/sanguine/contrib/opbot/botmd" + "testing" +) + +func TestStripLinks(t *testing.T) { + testLink := "" + expected := "example" + + if got := botmd.StripLinks(testLink); got != expected { + t.Errorf("StripLinks(%s) = %s; want %s", testLink, got, expected) + } +} diff --git a/contrib/opbot/botmd/export_test.go b/contrib/opbot/botmd/export_test.go new file mode 100644 index 0000000000..36a3ba400c --- /dev/null +++ b/contrib/opbot/botmd/export_test.go @@ -0,0 +1,5 @@ +package botmd + +func StripLinks(input string) string { + return stripLinks(input) +} diff --git a/contrib/screener-api/.gitignore b/contrib/screener-api/.gitignore new file mode 100644 index 0000000000..1d3ed4c17a --- /dev/null +++ b/contrib/screener-api/.gitignore @@ -0,0 +1 @@ +config.yml From 239a99636d3a01238a2beb8416bf2bc532807806 Mon Sep 17 00:00:00 2001 From: trajan0x <83933037+trajan0x@users.noreply.github.com> Date: Tue, 25 Jun 2024 01:40:21 -0400 Subject: [PATCH 32/85] add opbot badges to readme (#2786) Co-authored-by: Trajan0x --- contrib/opbot/README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/contrib/opbot/README.md b/contrib/opbot/README.md index 1946d41eef..690f7ea302 100644 --- a/contrib/opbot/README.md +++ b/contrib/opbot/README.md @@ -1,5 +1,8 @@ # OpBot +[![Go Reference](https://pkg.go.dev/badge/github.com/synapsecns/sanguine/contrib/opbot.svg)](https://pkg.go.dev/github.com/synapsecns/sanguine/contrib/opbot) +[![Go Report Card](https://goreportcard.com/badge/github.com/synapsecns/sanguine/contrib/opbot)](https://goreportcard.com/report/github.com/synapsecns/sanguine/contrib/opbot) + OpBot is a Slack bot written in Go that interacts with the Signoz trace API to provide various functionalities, including searching for transactions based on user-provided tags. This bot is designed to help teams monitor and manage their operations more effectively by integrating with Slack and Signoz. ## Features From 9d193268dc7f9500c9410bb506d5d1d201dd15cf Mon Sep 17 00:00:00 2001 From: vro <168573323+golangisfun123@users.noreply.github.com> Date: Tue, 25 Jun 2024 09:52:32 -0500 Subject: [PATCH 33/85] screener auth fix/gindump middleware (#2782) --------- Co-authored-by: Trajan0x --- contrib/screener-api/client/client.go | 11 +- contrib/screener-api/screener/export_test.go | 1 + contrib/screener-api/screener/screener.go | 53 ++--- contrib/screener-api/screener/suite_test.go | 112 +++++++--- core/ginhelper/README.md | 124 +++++++++++ core/ginhelper/gindump.go | 205 +++++++++++++++++++ core/ginhelper/gindump_test.go | 115 +++++++++++ core/ginhelper/parse.go | 150 ++++++++++++++ 8 files changed, 710 insertions(+), 61 deletions(-) create mode 100644 core/ginhelper/README.md create mode 100644 core/ginhelper/gindump.go create mode 100644 core/ginhelper/gindump_test.go create mode 100644 core/ginhelper/parse.go diff --git a/contrib/screener-api/client/client.go b/contrib/screener-api/client/client.go index c5f0e70811..eec18e3307 100644 --- a/contrib/screener-api/client/client.go +++ b/contrib/screener-api/client/client.go @@ -92,18 +92,17 @@ func (c clientImpl) BlacklistAddress(ctx context.Context, appsecret string, appi } message := fmt.Sprintf("%s%s%s%s%s%s%s", - appid, timestamp, nonce, "POST", "/api/data/sync/", queryString, string(bodyBz)) + appid, timestamp, nonce, "POST", "/api/data/sync", queryString, string(bodyBz)) signature := GenerateSignature(appsecret, message) resp, err := c.rClient.R(). SetContext(ctx). SetHeader("Content-Type", "application/json"). - SetHeader("AppID", appid). - SetHeader("Timestamp", timestamp). - SetHeader("Nonce", nonce). - SetHeader("QueryString", queryString). - SetHeader("Signature", signature). + SetHeader("X-Signature-appid", appid). + SetHeader("X-Signature-timestamp", timestamp). + SetHeader("X-Signature-nonce", nonce). + SetHeader("X-Signature-signature", signature). SetBody(body). SetResult(&blacklistRes). Post("/api/data/sync/") diff --git a/contrib/screener-api/screener/export_test.go b/contrib/screener-api/screener/export_test.go index 720ddb05af..b03d72db6e 100644 --- a/contrib/screener-api/screener/export_test.go +++ b/contrib/screener-api/screener/export_test.go @@ -3,6 +3,7 @@ package screener import ( "context" "fmt" + "github.com/synapsecns/sanguine/contrib/screener-api/config" "github.com/synapsecns/sanguine/contrib/screener-api/trmlabs" "github.com/synapsecns/sanguine/core/metrics" diff --git a/contrib/screener-api/screener/screener.go b/contrib/screener-api/screener/screener.go index e262066b96..82527fdc88 100644 --- a/contrib/screener-api/screener/screener.go +++ b/contrib/screener-api/screener/screener.go @@ -2,6 +2,7 @@ package screener import ( + "bytes" "context" "encoding/json" "errors" @@ -94,7 +95,7 @@ func NewScreener(ctx context.Context, cfg config.Config, metricHandler metrics.H screener.router.Use(screener.metrics.Gin()) screener.router.Handle(http.MethodGet, "/:ruleset/address/:address", screener.screenAddress) - screener.router.Handle(http.MethodPost, "/api/data/sync", screener.authMiddleware(cfg), screener.blacklistAddress) + screener.router.Handle(http.MethodPost, "/api/data/sync", ginhelper.TraceMiddleware(metricHandler.Tracer(), true), screener.authMiddleware(cfg), screener.blacklistAddress) screener.router.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerfiles.Handler)) return &screener, nil @@ -201,7 +202,7 @@ func (s *screenerImpl) blacklistAddress(c *gin.Context) { return case "delete": - if err := s.db.DeleteBlacklistedAddress(ctx, blacklistedAddress.Address); err != nil { + if err := s.db.DeleteBlacklistedAddress(ctx, blacklistedAddress.ID); err != nil { span.AddEvent("error", trace.WithAttributes(attribute.String("error", err.Error()))) c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) return @@ -220,47 +221,53 @@ func (s *screenerImpl) blacklistAddress(c *gin.Context) { // This function takes the HTTP headers and the body of the request and reconstructs the signature to // compare it with the signature provided. If they match, the request is allowed to pass through. +// nolint: canonicalheader func (s *screenerImpl) authMiddleware(cfg config.Config) gin.HandlerFunc { return func(c *gin.Context) { _, span := s.metrics.Tracer().Start(c.Request.Context(), "authMiddleware") defer span.End() - appID := c.Request.Header.Get("AppID") - timestamp := c.Request.Header.Get("Timestamp") - nonce := c.Request.Header.Get("Nonce") - signature := c.Request.Header.Get("Signature") - queryString := c.Request.Header.Get("QueryString") - bodyBytes, _ := io.ReadAll(c.Request.Body) + appID := c.Request.Header.Get("X-Signature-appid") + timestamp := c.Request.Header.Get("X-Signature-timestamp") + nonce := c.Request.Header.Get("X-Signature-nonce") + signature := c.Request.Header.Get("X-Signature-signature") + queryString := c.Request.URL.RawQuery + + bodyBytes, err := io.ReadAll(c.Request.Body) + if err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": "could not read request body"}) + c.Abort() + return + } + c.Request.Body = io.NopCloser(bytes.NewBuffer(bodyBytes)) bodyStr := string(bodyBytes) - c.Request.Body = io.NopCloser(strings.NewReader(bodyStr)) + message := fmt.Sprintf("%s%s%s%s%s%s%s", + appID, timestamp, nonce, "POST", "/api/data/sync", queryString, bodyStr) + + expectedSignature := client.GenerateSignature(cfg.AppSecret, message) span.SetAttributes( - attribute.String("appId", appID), + attribute.String("appid", appID), attribute.String("timestamp", timestamp), attribute.String("nonce", nonce), attribute.String("signature", signature), attribute.String("queryString", queryString), - attribute.String("bodyString", bodyStr), + attribute.String("body", bodyStr), + attribute.String("expectedSignature", expectedSignature), + attribute.String("message", message), ) - message := fmt.Sprintf("%s%s%s%s%s%s%s", - appID, timestamp, nonce, "POST", "/api/data/sync/", queryString, bodyStr) - - span.AddEvent("message", trace.WithAttributes(attribute.String("message", message))) - - expectedSignature := client.GenerateSignature(cfg.AppSecret, message) - - span.AddEvent("generated_signature", trace.WithAttributes(attribute.String("expectedSignature", expectedSignature))) - if expectedSignature != signature { - span.AddEvent("error", trace.WithAttributes(attribute.String("error", "Invalid signature"))) + span.AddEvent( + "error", + trace.WithAttributes(attribute.String("error", "Invalid signature"+expectedSignature)), + ) c.JSON(http.StatusUnauthorized, gin.H{"error": "Invalid signature"}) c.Abort() return } - - span.AddEvent("signature_validated") + span.AddEvent("success", trace.WithAttributes(attribute.String("message", "Valid signature"+expectedSignature))) c.Next() } } diff --git a/contrib/screener-api/screener/suite_test.go b/contrib/screener-api/screener/suite_test.go index 7be0ee3bc1..ed45863e19 100644 --- a/contrib/screener-api/screener/suite_test.go +++ b/contrib/screener-api/screener/suite_test.go @@ -2,8 +2,11 @@ package screener_test import ( "context" + "crypto/rand" + "encoding/json" "errors" "fmt" + "math/big" "strconv" "testing" "time" @@ -154,47 +157,81 @@ func (s *ScreenerSuite) TestScreener() { False(s.T(), out) // now test crud screener - blacklistBody := client.BlackListBody{ - Type: "create", - ID: "1", - Data: "{\"test\":\"data\"}", - Address: "0x123", - Network: "eth", - Tag: "tag", - Remark: "remark", - } - - // post to the blacklist - status, err := apiClient.BlacklistAddress(s.GetTestContext(), cfg.AppSecret, cfg.AppID, blacklistBody) - fmt.Println(status) - Equal(s.T(), "success", status) + // create a bunch + statuses, err := blacklistTestWithOperation(s.T(), "create", apiClient, cfg) + Equal(s.T(), len(statuses), 10) + all(s.T(), statuses, func(status string) bool { + return status == success + }) Nil(s.T(), err) - // update an address on the blacklist - blacklistBody.Type = "update" - blacklistBody.Remark = "new remark" - - status, err = apiClient.BlacklistAddress(s.GetTestContext(), cfg.AppSecret, cfg.AppID, blacklistBody) - fmt.Println(status) - Equal(s.T(), "success", status) + // update a bunch + statuses, err = blacklistTestWithOperation(s.T(), "update", apiClient, cfg) + Equal(s.T(), len(statuses), 10) + all(s.T(), statuses, func(status string) bool { + return status == success + }) Nil(s.T(), err) - // delete the address on the blacklist - blacklistBody.Type = "delete" - blacklistBody.ID = "1" - - status, err = apiClient.BlacklistAddress(s.GetTestContext(), cfg.AppSecret, cfg.AppID, blacklistBody) - fmt.Println(status) - Equal(s.T(), "success", status) + // delete a bunch + statuses, err = blacklistTestWithOperation(s.T(), "delete", apiClient, cfg) + Equal(s.T(), len(statuses), 10) + all(s.T(), statuses, func(status string) bool { + return status == success + }) Nil(s.T(), err) - // unauthorized - status, err = apiClient.BlacklistAddress(s.GetTestContext(), "bad", cfg.AppID, blacklistBody) - fmt.Println(status) - NotEqual(s.T(), "success", status) + // unauthorized, return on err so statuses will be only one + cfg.AppSecret = "BAD" + statuses, err = blacklistTestWithOperation(s.T(), "create", apiClient, cfg) + all(s.T(), statuses, func(status string) bool { + return status == "401 Unauthorized" + }) + Equal(s.T(), len(statuses), 1) NotNil(s.T(), err) } +func blacklistTestWithOperation(t *testing.T, operation string, apiClient client.ScreenerClient, cfg config.Config) (statuses []string, err error) { + t.Helper() + for range 10 { + randomNumber, err := rand.Int(rand.Reader, big.NewInt(1000)) + if err != nil { + return statuses, fmt.Errorf("error generating random number: %w", err) + } + + dataMap := map[string]string{"key": fmt.Sprintf("value-%d", randomNumber)} + dataStr, err := json.Marshal(dataMap) + if err != nil { + return statuses, fmt.Errorf("error marshaling data: %w", err) + } + + var body client.BlackListBody + + if operation == "create" || operation == "update" { + body = client.BlackListBody{ + Type: operation, + ID: fmt.Sprintf("unique-id-%d", randomNumber), + Data: string(dataStr), + Address: fmt.Sprintf("address-%d", randomNumber), + Network: fmt.Sprintf("network-%d", randomNumber), + Tag: fmt.Sprintf("tag-%d", randomNumber), + Remark: "remark", + } + } else { + body = client.BlackListBody{ + Type: operation, + ID: fmt.Sprintf("unique-id-%d", randomNumber), + } + } + status, err := apiClient.BlacklistAddress(context.Background(), cfg.AppSecret, cfg.AppID, body) + statuses = append(statuses, status) + if err != nil { + return statuses, fmt.Errorf("error blacklisting address: %w", err) + } + } + return statuses, nil +} + type mockClient struct { responseMap map[string][]trmlabs.ScreenResponse } @@ -226,3 +263,14 @@ func TestSplitCSV(t *testing.T) { Equal(t, "false", out["RFQ"][1].Enabled) Equal(t, "true", out["RFQ"][2].Enabled) } + +func all(t *testing.T, statuses []string, f func(string) bool) { + t.Helper() + for _, status := range statuses { + if !f(status) { + t.Fail() + } + } +} + +const success = "success" diff --git a/core/ginhelper/README.md b/core/ginhelper/README.md new file mode 100644 index 0000000000..c6fac6e5ac --- /dev/null +++ b/core/ginhelper/README.md @@ -0,0 +1,124 @@ +# Gin Helper + +Note: gindump utilities are courtesy of [this repo](https://github.com/tpkeeper/gin-dump) and have only been updated/modified here because of dependency issues. + + +* Gin middleware/handler to dump header/body of request and response . + +* Very helpful for debugging your applications. + +* More beautiful output than httputil.DumpXXX() + +## Content-type support / todo + +* [x] application/json +* [x] application/x-www-form-urlencoded +* [ ] text/xml +* [ ] application/xml +* [ ] text/plain + +## Usage + +All: + +```go +func main() { + router := gin.Default() + + //use Dump() default will print on stdout + router.Use(gindump.Dump()) + + //or use DumpWithOptions() with more options + router.Use(gindump.DumpWithOptions(true, true, false, true, false, func(dumpStr string) { + fmt.Println(dumpStr) + })) + + router.Post("/",myHandler) + + ... + + router.Run() +} +``` + +Group: + +```go +func main() { + router := gin.Default() + + dumpGroup := router.Group("/group") + + //use Dump() default will print on stdout + dumpGroup.Use(gindump.Dump()) + + //or use DumpWithOptions() with more options + dumpGroup.Use(gindump.DumpWithOptions(true, true, false, true, false, func(dumpStr string) { + fmt.Println(dumpStr) + })) + + dumpGroup.Post("/",myHandler) + + ... + + router.Run() +} + +``` + +EndPoint: + +```go +func main() { + router := gin.Default() + + //use Dump() default will print on stdout + router.Post("/",gindump.Dump(),myHandler) + + //or use DumpWithOptions() with more options + router.Post("/",gindump.DumpWithOptions(true, true, false, true, false, func(dumpStr string) { + fmt.Println(dumpStr) + }),myHandler) + + ... + + router.Run() +} +``` + + +### Output is as follows + +```sh +[GIN-dump]: +Request-Header: +{ + "Content-Type": [ + "application/x-www-form-urlencoded" + ] +} +Request-Body: +{ + "bar": [ + "baz" + ], + "foo": [ + "bar", + "bar2" + ] +} +Response-Header: +{ + "Content-Type": [ + "application/json; charset=utf-8" + ] +} +Response-Body: +{ + "data": { + "addr": "tpkeeper@qq.com", + "name": "jfise" + }, + "ok": true +} +``` diff --git a/core/ginhelper/gindump.go b/core/ginhelper/gindump.go new file mode 100644 index 0000000000..a1b2116b3e --- /dev/null +++ b/core/ginhelper/gindump.go @@ -0,0 +1,205 @@ +package ginhelper + +import ( + "bytes" + "fmt" + "go.opentelemetry.io/otel/attribute" + "go.opentelemetry.io/otel/trace" + "io" + "mime" + "net/http" + "net/url" + "strings" + + "github.com/gin-gonic/gin" +) + +const traceName = "ginDump" +const dumpName = "http.dump" + +// TraceMiddleware is a middleware that traces the request/response. +func TraceMiddleware(tracer trace.Tracer, printStr bool) gin.HandlerFunc { + return func(ctx *gin.Context) { + _, span := tracer.Start(ctx, traceName) + defer span.End() + + // DumpWithOptions will call ctx.Next() to continue the request/response flow. + DumpWithOptions(true, true, true, true, true, func(dumpStr string) { + span.SetAttributes(attribute.String(dumpName, dumpStr)) + if printStr { + fmt.Println(dumpStr) + } + })(ctx) + } +} + +// Dump dumps the request and response. +func Dump() gin.HandlerFunc { + return DumpWithOptions(true, true, true, true, true, nil) +} + +// DumpWithOptions dumps the request and response with options. +// nolint: gocognit, nestif, cyclop +func DumpWithOptions(showReq bool, showResp bool, showBody bool, showHeaders bool, showCookies bool, cb func(dumpStr string)) gin.HandlerFunc { + headerHiddenFields := make([]string, 0) + bodyHiddenFields := make([]string, 0) + + if !showCookies { + headerHiddenFields = append(headerHiddenFields, "cookie") + } + + return func(ctx *gin.Context) { + var strB strings.Builder + + if showReq && showHeaders { + // dump req header + s, err := FormatToBeautifulJSON(ctx.Request.Header, headerHiddenFields) + + if err != nil { + strB.WriteString(fmt.Sprintf("\nparse req header err \n" + err.Error())) + } else { + strB.WriteString("Request-Header:\n") + strB.Write(s) + } + } + + if showReq && showBody { + // dump req body + // nolint: nestif + if ctx.Request.ContentLength > 0 { + buf, err := io.ReadAll(ctx.Request.Body) + if err != nil { + strB.WriteString(fmt.Sprintf("\nread bodyCache err \n %s", err.Error())) + goto DumpRes + } + rdr := io.NopCloser(bytes.NewBuffer(buf)) + ctx.Request.Body = io.NopCloser(bytes.NewBuffer(buf)) + ctGet := ctx.Request.Header.Get("Content-Type") + ct, _, err := mime.ParseMediaType(ctGet) + if err != nil { + strB.WriteString(fmt.Sprintf("\ncontent_type: %s parse err \n %s", ctGet, err.Error())) + goto DumpRes + } + + switch ct { + case gin.MIMEJSON: + bts, err := io.ReadAll(rdr) + if err != nil { + strB.WriteString(fmt.Sprintf("\nread rdr err \n %s", err.Error())) + goto DumpRes + } + + s, err := BeautifyJSONBytes(bts, bodyHiddenFields) + if err != nil { + strB.WriteString(fmt.Sprintf("\nparse req body err \n" + err.Error())) + goto DumpRes + } + + strB.WriteString("\nRequest-Body:\n") + strB.Write(s) + case gin.MIMEPOSTForm: + bts, err := io.ReadAll(rdr) + if err != nil { + strB.WriteString(fmt.Sprintf("\nread rdr err \n %s", err.Error())) + goto DumpRes + } + val, err := url.ParseQuery(string(bts)) + if err != nil { + strB.WriteString(fmt.Sprintf("\nparse query err \n" + err.Error())) + goto DumpRes + } + + s, err := FormatToBeautifulJSON(val, bodyHiddenFields) + if err != nil { + strB.WriteString(fmt.Sprintf("\nparse req body err \n" + err.Error())) + goto DumpRes + } + strB.WriteString("\nRequest-Body:\n") + strB.Write(s) + + case gin.MIMEMultipartPOSTForm: + default: + } + } + + DumpRes: + ctx.Writer = &bodyWriter{bodyCache: bytes.NewBufferString(""), ResponseWriter: ctx.Writer} + ctx.Next() + } + + if showResp && showHeaders { + // dump res header + sHeader, err := FormatToBeautifulJSON(ctx.Writer.Header(), headerHiddenFields) + if err != nil { + strB.WriteString(fmt.Sprintf("\nparse res header err \n" + err.Error())) + } else { + strB.WriteString("\nResponse-Header:\n") + strB.Write(sHeader) + } + } + + if showResp && showBody { + bw, ok := ctx.Writer.(*bodyWriter) + if !ok { + strB.WriteString("\nbodyWriter was override , can not read bodyCache") + goto End + } + + // dump res body + if bodyAllowedForStatus(ctx.Writer.Status()) && bw.bodyCache.Len() > 0 { + ctGet := ctx.Writer.Header().Get("Content-Type") + ct, _, err := mime.ParseMediaType(ctGet) + if err != nil { + strB.WriteString(fmt.Sprintf("\ncontent-type: %s parse err \n %s", ctGet, err.Error())) + goto End + } + switch ct { + case gin.MIMEJSON: + + s, err := BeautifyJSONBytes(bw.bodyCache.Bytes(), bodyHiddenFields) + if err != nil { + strB.WriteString(fmt.Sprintf("\nparse bodyCache err \n" + err.Error())) + goto End + } + strB.WriteString("\nResponse-Body:\n") + + strB.Write(s) + case gin.MIMEHTML: + default: + } + } + } + + End: + if cb != nil { + cb(strB.String()) + } else { + fmt.Println(strB.String()) + } + } +} + +type bodyWriter struct { + gin.ResponseWriter + bodyCache *bytes.Buffer +} + +// rewrite Write(). +func (w bodyWriter) Write(b []byte) (int, error) { + w.bodyCache.Write(b) + //nolint: wrapcheck + return w.ResponseWriter.Write(b) +} + +// bodyAllowedForStatus is a copy of http.bodyAllowedForStatus non-exported function. +func bodyAllowedForStatus(status int) bool { + switch { + case status >= 100 && status <= 199: + return false + case status == http.StatusNoContent: + return false + case status == http.StatusNotModified: + return false + } + return true +} diff --git a/core/ginhelper/gindump_test.go b/core/ginhelper/gindump_test.go new file mode 100644 index 0000000000..4af1c3e502 --- /dev/null +++ b/core/ginhelper/gindump_test.go @@ -0,0 +1,115 @@ +package ginhelper_test + +import ( + "bytes" + "context" + "encoding/json" + "fmt" + "github.com/synapsecns/sanguine/core/ginhelper" + "io" + "net/http" + "net/http/httptest" + "net/url" + "strings" + "testing" + + "github.com/gin-gonic/gin" +) + +func init() { + gin.SetMode(gin.TestMode) +} + +// nolint: unparam +func performRequest(ctx context.Context, r http.Handler, method, contentType string, path string, body io.Reader) *httptest.ResponseRecorder { + req, _ := http.NewRequestWithContext(ctx, method, path, body) + req.Header.Set("Content-Type", contentType) + w := httptest.NewRecorder() + r.ServeHTTP(w, req) + return w +} + +func TestMIMEJSON(t *testing.T) { + router := gin.New() + router.Use(ginhelper.Dump()) + + router.POST("/dump", func(c *gin.Context) { + c.JSON(http.StatusOK, gin.H{ + "ok": true, + "data": "gin-dump", + }) + }) + + type params struct { + StartTime string `json:"start_time"` + EndTime string `json:"end_time"` + } + + var httpdata = params{ + StartTime: "2019-03-03", + EndTime: "2019-03-03", + } + b, err := json.Marshal(httpdata) + if err != nil { + fmt.Println("json format error:", err) + return + } + + body := bytes.NewBuffer(b) + + _ = performRequest(context.Background(), router, "POST", gin.MIMEJSON, "/dump", body) +} +func TestMIMEJSONWithOption(t *testing.T) { + router := gin.New() + router.Use(ginhelper.DumpWithOptions(true, false, true, true, false, func(dumpStr string) { + fmt.Println(dumpStr) + })) + + router.POST("/dump", func(c *gin.Context) { + c.JSON(http.StatusOK, gin.H{ + "ok": true, + "data": "gin-dump", + }) + }) + + type params struct { + StartTime string `json:"start_time"` + EndTime string `json:"end_time"` + } + + var httpdata = params{ + StartTime: "2019-03-03", + EndTime: "2019-03-03", + } + b, err := json.Marshal(httpdata) + if err != nil { + fmt.Println("json format error:", err) + return + } + + body := bytes.NewBuffer(b) + _ = performRequest(context.Background(), router, "POST", gin.MIMEJSON, "/dump", body) +} + +func TestMIMEPOSTFORM(t *testing.T) { + router := gin.New() + router.Use(ginhelper.Dump()) + + router.POST("/dump", func(c *gin.Context) { + c.JSON(http.StatusOK, gin.H{ + "ok": true, + "data": map[string]interface{}{ + "name": "jfise", + "addr": "tpkeeper@qq.com", + }, + }) + }) + + form := make(url.Values) + form.Set("foo", "bar") + form.Add("foo", "bar2") + form.Set("bar", "baz") + + body := strings.NewReader(form.Encode()) + _ = performRequest(context.Background(), router, "POST", gin.MIMEPOSTForm, "/dump", body) +} diff --git a/core/ginhelper/parse.go b/core/ginhelper/parse.go new file mode 100644 index 0000000000..9fab60137f --- /dev/null +++ b/core/ginhelper/parse.go @@ -0,0 +1,150 @@ +package ginhelper + +import ( + "bytes" + "encoding/json" + "fmt" + "sort" + "strconv" + "strings" +) + +// StringMaxLength is the maximum length of a string to display. +var StringMaxLength = 0 + +// Newline is the string to use for newlines. +var Newline = "\n" + +// Indent is the number of spaces to indent. +var Indent = 4 + +// BeautifyJSONBytes beautifies json bytes. +func BeautifyJSONBytes(data []byte, hiddenFields []string) ([]byte, error) { + var v interface{} + if err := json.Unmarshal(data, &v); err != nil { + return nil, fmt.Errorf("failed to unmarshal json: %w", err) + } + + v = removeHiddenFields(v, hiddenFields) + + return []byte(format(v, 1)), nil +} + +// FormatToBeautifulJSON dumps v to beautified json bytes. +func FormatToBeautifulJSON(v interface{}, hiddenFields []string) ([]byte, error) { + data, err := json.Marshal(v) + if err != nil { + return nil, fmt.Errorf("failed to marshal json: %w", err) + } + return BeautifyJSONBytes(data, hiddenFields) +} + +func format(v interface{}, depth int) string { + switch val := v.(type) { + case string: + return formatString(val) + case float64: + return fmt.Sprint(strconv.FormatFloat(val, 'f', -1, 64)) + case bool: + return fmt.Sprint(strconv.FormatBool(val)) + case nil: + return "null" + case map[string]interface{}: + return formatMap(val, depth) + case []interface{}: + return formatArray(val, depth) + } + + return "" +} + +func formatString(s string) string { + r := []rune(s) + if StringMaxLength != 0 && len(r) >= StringMaxLength { + s = string(r[0:StringMaxLength]) + "..." + } + + buf := &bytes.Buffer{} + encoder := json.NewEncoder(buf) + encoder.SetEscapeHTML(false) + // TODO: check error + //nolint:errchkjson + _ = encoder.Encode(s) + s = buf.String() + s = strings.TrimSuffix(s, "\n") + + return fmt.Sprint(s) +} + +func formatMap(m map[string]interface{}, depth int) string { + if len(m) == 0 { + return "{}" + } + + currentIndent := generateIndent(depth - 1) + nextIndent := generateIndent(depth) + rows := []string{} + keys := []string{} + + for key := range m { + keys = append(keys, key) + } + + sort.Strings(keys) + + for _, key := range keys { + val := m[key] + k := fmt.Sprintf(`"%s"`, key) + v := format(val, depth+1) + + valueIndent := " " + if Newline == "" { + valueIndent = "" + } + row := fmt.Sprintf("%s%s:%s%s", nextIndent, k, valueIndent, v) + rows = append(rows, row) + } + + return fmt.Sprintf("{%s%s%s%s}", Newline, strings.Join(rows, ","+Newline), Newline, currentIndent) +} + +func formatArray(a []interface{}, depth int) string { + if len(a) == 0 { + return "[]" + } + + currentIndent := generateIndent(depth - 1) + nextIndent := generateIndent(depth) + rows := []string{} + + for _, val := range a { + c := format(val, depth+1) + row := nextIndent + c + rows = append(rows, row) + } + return fmt.Sprintf("[%s%s%s%s]", Newline, strings.Join(rows, ","+Newline), Newline, currentIndent) +} + +func generateIndent(depth int) string { + return strings.Repeat(" ", Indent*depth) +} + +func removeHiddenFields(v interface{}, hiddenFields []string) interface{} { + if _, ok := v.(map[string]interface{}); !ok { + return v + } + + // nolint: forcetypeassert + m := v.(map[string]interface{}) + + // case insensitive key deletion + for _, hiddenField := range hiddenFields { + for k := range m { + if strings.EqualFold(k, hiddenField) { + delete(m, k) + } + } + } + + return m +} From 0de75b014e0cd5d0370110f431cfa64c69f8cf33 Mon Sep 17 00:00:00 2001 From: dwasse Date: Tue, 25 Jun 2024 10:43:20 -0500 Subject: [PATCH 34/85] RFQ API: fix prometheus setup (#2701) * Feat: properly initialize prom metrics * [goreleaser] * Feat: add logs * [goreleaser] * Feat: start metrics server * [goreleaser] * Cleanup: logs * [goreleaser] * Feat: convert quote amount hist to gauge * Feat: change remaining hists to gauges * [goreleaser] * Fix: call setupMetrics() in submitter * [goreleaser] * Feat: tag wallets in metrics * [goreleaser] * Cleanup: lint * make metrics thread safe * mod tidy [goreleaser] * fix flake [goreleaser] --------- Co-authored-by: Trajan0x --- agents/go.mod | 1 + agents/go.sum | 2 + contrib/opbot/go.mod | 1 + contrib/opbot/go.sum | 2 + contrib/promexporter/go.mod | 1 + contrib/promexporter/go.sum | 2 + ethergo/go.mod | 1 + ethergo/go.sum | 2 + ethergo/submitter/chain_queue.go | 91 +++++++------------- ethergo/submitter/submitter.go | 48 ++++++++++- services/cctp-relayer/go.mod | 1 + services/cctp-relayer/go.sum | 2 + services/omnirpc/go.mod | 1 + services/omnirpc/go.sum | 2 + services/rfq/api/rest/server.go | 25 +++++- services/rfq/go.mod | 1 + services/rfq/go.sum | 2 + services/rfq/relayer/inventory/manager.go | 4 - services/rfq/relayer/quoter/quoter.go | 98 +++++++++++----------- services/rfq/relayer/relapi/server_test.go | 26 ++++-- 20 files changed, 187 insertions(+), 126 deletions(-) diff --git a/agents/go.mod b/agents/go.mod index 00612a572a..9591fca78a 100644 --- a/agents/go.mod +++ b/agents/go.mod @@ -65,6 +65,7 @@ require ( github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect github.com/consensys/bavard v0.1.13 // indirect github.com/consensys/gnark-crypto v0.12.1 // indirect + github.com/cornelk/hashmap v1.0.8 // indirect github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 // indirect github.com/crate-crypto/go-kzg-4844 v0.7.0 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect diff --git a/agents/go.sum b/agents/go.sum index 237e173f26..42b39c65d7 100644 --- a/agents/go.sum +++ b/agents/go.sum @@ -310,6 +310,8 @@ github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8Nz github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/cornelk/hashmap v1.0.8 h1:nv0AWgw02n+iDcawr5It4CjQIAcdMMKRrs10HOJYlrc= +github.com/cornelk/hashmap v1.0.8/go.mod h1:RfZb7JO3RviW/rT6emczVuC/oxpdz4UsSB2LJSclR1k= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= diff --git a/contrib/opbot/go.mod b/contrib/opbot/go.mod index 04d72140c1..089ef3ea02 100644 --- a/contrib/opbot/go.mod +++ b/contrib/opbot/go.mod @@ -91,6 +91,7 @@ require ( github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect github.com/consensys/bavard v0.1.13 // indirect github.com/consensys/gnark-crypto v0.12.1 // indirect + github.com/cornelk/hashmap v1.0.8 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 // indirect github.com/crate-crypto/go-kzg-4844 v0.7.0 // indirect diff --git a/contrib/opbot/go.sum b/contrib/opbot/go.sum index 487b07d111..3559587205 100644 --- a/contrib/opbot/go.sum +++ b/contrib/opbot/go.sum @@ -294,6 +294,8 @@ github.com/containerd/continuity v0.4.2/go.mod h1:F6PTNCKepoxEaXLQp3wDAjygEnImnZ github.com/coreos/etcd v3.3.10+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/cornelk/hashmap v1.0.8 h1:nv0AWgw02n+iDcawr5It4CjQIAcdMMKRrs10HOJYlrc= +github.com/cornelk/hashmap v1.0.8/go.mod h1:RfZb7JO3RviW/rT6emczVuC/oxpdz4UsSB2LJSclR1k= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= diff --git a/contrib/promexporter/go.mod b/contrib/promexporter/go.mod index f913074ba6..e8808188a0 100644 --- a/contrib/promexporter/go.mod +++ b/contrib/promexporter/go.mod @@ -82,6 +82,7 @@ require ( github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect github.com/consensys/bavard v0.1.13 // indirect github.com/consensys/gnark-crypto v0.12.1 // indirect + github.com/cornelk/hashmap v1.0.8 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 // indirect github.com/crate-crypto/go-kzg-4844 v0.7.0 // indirect diff --git a/contrib/promexporter/go.sum b/contrib/promexporter/go.sum index 6acbfad515..88ea2b28c7 100644 --- a/contrib/promexporter/go.sum +++ b/contrib/promexporter/go.sum @@ -277,6 +277,8 @@ github.com/containerd/continuity v0.4.2/go.mod h1:F6PTNCKepoxEaXLQp3wDAjygEnImnZ github.com/coreos/etcd v3.3.10+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/cornelk/hashmap v1.0.8 h1:nv0AWgw02n+iDcawr5It4CjQIAcdMMKRrs10HOJYlrc= +github.com/cornelk/hashmap v1.0.8/go.mod h1:RfZb7JO3RviW/rT6emczVuC/oxpdz4UsSB2LJSclR1k= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= diff --git a/ethergo/go.mod b/ethergo/go.mod index 7ad71cec5f..104d4dacc2 100644 --- a/ethergo/go.mod +++ b/ethergo/go.mod @@ -19,6 +19,7 @@ require ( github.com/btcsuite/btcd v0.22.1 github.com/btcsuite/btcd/btcec/v2 v2.3.0 github.com/chzyer/test v1.0.0 + github.com/cornelk/hashmap v1.0.8 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 github.com/dgraph-io/ristretto v0.1.0 diff --git a/ethergo/go.sum b/ethergo/go.sum index 0abad36bbb..6b0d66ec1f 100644 --- a/ethergo/go.sum +++ b/ethergo/go.sum @@ -266,6 +266,8 @@ github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc 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-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/cornelk/hashmap v1.0.8 h1:nv0AWgw02n+iDcawr5It4CjQIAcdMMKRrs10HOJYlrc= +github.com/cornelk/hashmap v1.0.8/go.mod h1:RfZb7JO3RviW/rT6emczVuC/oxpdz4UsSB2LJSclR1k= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= diff --git a/ethergo/submitter/chain_queue.go b/ethergo/submitter/chain_queue.go index 3fb012d795..b3a0c98793 100644 --- a/ethergo/submitter/chain_queue.go +++ b/ethergo/submitter/chain_queue.go @@ -63,10 +63,7 @@ func (t *txSubmitterImpl) chainPendingQueue(parentCtx context.Context, chainID * return fmt.Errorf("could not get nonce: %w", err) } span.SetAttributes(attribute.Int("nonce", int(currentNonce))) - registerErr := t.registerCurrentNonce(ctx, currentNonce, int(chainID.Int64())) - if registerErr != nil { - span.AddEvent("could not register nonce", trace.WithAttributes(attribute.String("error", registerErr.Error()))) - } + t.currentNonces.Set(uint32(chainID.Int64()), currentNonce) wg := &sync.WaitGroup{} @@ -136,35 +133,43 @@ func (t *txSubmitterImpl) chainPendingQueue(parentCtx context.Context, chainID * } cq.storeAndSubmit(ctx, calls, span) - - registerErr = cq.registerNumPendingTXes(ctx, len(cq.reprocessQueue), int(chainID.Int64())) - if registerErr != nil { - span.AddEvent("could not register pending txes", trace.WithAttributes(attribute.String("error", registerErr.Error()))) - } + t.numPendingTxes.Set(uint32(chainID.Int64()), len(cq.reprocessQueue)) return nil } -var meter metric.Meter - -func getMeter(handler metrics.Handler) metric.Meter { - if meter == nil { - meter = handler.Meter(meterName) +func (t *txSubmitterImpl) recordNumPending(_ context.Context, observer metric.Observer) (err error) { + if t.metrics == nil || t.numPendingGauge == nil || t.numPendingTxes == nil { + return nil } - return meter + + t.numPendingTxes.Range(func(chainID uint32, numPending int) bool { + opts := metric.WithAttributes( + attribute.Int(metrics.ChainID, int(chainID)), + attribute.String("wallet", t.signer.Address().Hex()), + ) + observer.ObserveInt64(t.numPendingGauge, int64(numPending), opts) + + return true + }) + + return nil } -func (t *txSubmitterImpl) registerCurrentNonce(ctx context.Context, nonce uint64, chainID int) (err error) { - meter := getMeter(t.metrics) - nonceHist, err := meter.Int64Histogram("current_nonce") - if err != nil { - return fmt.Errorf("error creating nonce histogram: %w", err) +func (t *txSubmitterImpl) recordNonces(_ context.Context, observer metric.Observer) (err error) { + if t.metrics == nil || t.nonceGauge == nil || t.currentNonces == nil { + return nil } - attributes := attribute.NewSet( - attribute.Int(metrics.ChainID, chainID), - attribute.String("wallet", t.signer.Address().Hex()), - ) - nonceHist.Record(ctx, int64(nonce), metric.WithAttributeSet(attributes)) + + t.currentNonces.Range(func(chainID uint32, nonce uint64) bool { + opts := metric.WithAttributes( + attribute.Int(metrics.ChainID, int(chainID)), + attribute.String("wallet", t.signer.Address().Hex()), + ) + observer.ObserveInt64(t.nonceGauge, int64(nonce), opts) + return true + }) + return nil } @@ -203,22 +208,6 @@ func (c *chainQueue) storeAndSubmit(ctx context.Context, calls []w3types.Caller, wg.Wait() } -const meterName = "github.com/synapsecns/sanguine/ethergo/submitter" - -func (c *chainQueue) registerNumPendingTXes(ctx context.Context, num, chainID int) (err error) { - meter := getMeter(c.metrics) - numPendingHist, err := meter.Int64Histogram("num_pending_txes") - if err != nil { - return fmt.Errorf("error creating num pending txes histogram: %w", err) - } - attributes := attribute.NewSet( - attribute.Int(metrics.ChainID, chainID), - attribute.String("wallet", c.signer.Address().Hex()), - ) - numPendingHist.Record(ctx, int64(num), metric.WithAttributeSet(attributes)) - return nil -} - // nolint: cyclop func (c *chainQueue) bumpTX(parentCtx context.Context, ogTx db.TX) (err error) { if !c.isBumpIntervalElapsed(ogTx) { @@ -295,11 +284,6 @@ func (c *chainQueue) bumpTX(parentCtx context.Context, ogTx db.TX) (err error) { Status: db.Stored, }) - registerErr := c.registerBumpTx(ctx, tx) - if registerErr != nil { - span.AddEvent("could not register bump tx", trace.WithAttributes(attribute.String("error", registerErr.Error()))) - } - return nil } @@ -319,21 +303,6 @@ func (c *chainQueue) isBumpIntervalElapsed(tx db.TX) bool { return elapsedSeconds >= 0 } -func (c *chainQueue) registerBumpTx(ctx context.Context, tx *types.Transaction) (err error) { - meter := getMeter(c.metrics) - bumpCountGauge, err := meter.Int64Counter("bump_count") - if err != nil { - return fmt.Errorf("error creating bump count gauge: %w", err) - } - attributes := attribute.NewSet( - attribute.Int64(metrics.ChainID, tx.ChainId().Int64()), - attribute.Int64(metrics.Nonce, int64(tx.Nonce())), - attribute.String("wallet", c.signer.Address().Hex()), - ) - bumpCountGauge.Add(ctx, 1, metric.WithAttributeSet(attributes)) - return nil -} - // updateOldTxStatuses updates the status of txes that are before the current nonce // this will only run if we have txes that have confirmed. func (c *chainQueue) updateOldTxStatuses(parentCtx context.Context) (err error) { diff --git a/ethergo/submitter/submitter.go b/ethergo/submitter/submitter.go index beaf8cec99..811e537a2d 100644 --- a/ethergo/submitter/submitter.go +++ b/ethergo/submitter/submitter.go @@ -4,6 +4,7 @@ import ( "context" "errors" "fmt" + "github.com/cornelk/hashmap" "math" "math/big" "reflect" @@ -30,12 +31,15 @@ import ( "github.com/synapsecns/sanguine/ethergo/submitter/db" "github.com/synapsecns/sanguine/ethergo/util" "go.opentelemetry.io/otel/attribute" + "go.opentelemetry.io/otel/metric" "go.opentelemetry.io/otel/trace" "golang.org/x/sync/errgroup" ) var logger = log.Logger("ethergo-submitter") +const meterName = "github.com/synapsecns/sanguine/services/rfq/api/rest" + // TransactionSubmitter is the interface for submitting transactions to the chain. type TransactionSubmitter interface { // Start starts the transaction submitter. @@ -51,6 +55,7 @@ type TransactionSubmitter interface { // txSubmitterImpl is the implementation of the transaction submitter. type txSubmitterImpl struct { metrics metrics.Handler + meter metric.Meter // signer is the signer for signing transactions. signer signer.Signer // nonceMux is the mutex for the nonces. It is keyed by chain. @@ -72,6 +77,14 @@ type txSubmitterImpl struct { lastGasBlockCache *xsync.MapOf[int, *types.Header] // config is the config for the transaction submitter. config config.IConfig + // numPendingGauge is the gauge for the number of pending transactions. + numPendingGauge metric.Int64ObservableGauge + // nonceGauge is the gauge for the current nonce. + nonceGauge metric.Int64ObservableGauge + // numPendingTxes is used for metrics. + numPendingTxes *hashmap.Map[uint32, int] + // currentNonces is used for metrics. + currentNonces *hashmap.Map[uint32, uint64] } // ClientFetcher is the interface for fetching a chain client. @@ -83,16 +96,20 @@ type ClientFetcher interface { // NewTransactionSubmitter creates a new transaction submitter. func NewTransactionSubmitter(metrics metrics.Handler, signer signer.Signer, fetcher ClientFetcher, db db.Service, config config.IConfig) TransactionSubmitter { + return &txSubmitterImpl{ db: db, config: config, metrics: metrics, + meter: metrics.Meter(meterName), signer: signer, fetcher: fetcher, nonceMux: mapmutex.NewStringerMapMutex(), statusMux: mapmutex.NewStringMapMutex(), retryNow: make(chan bool, 1), lastGasBlockCache: xsync.NewIntegerMapOf[int, *types.Header](), + numPendingTxes: hashmap.New[uint32, int](), + currentNonces: hashmap.New[uint32, uint64](), } } @@ -105,7 +122,12 @@ func (t *txSubmitterImpl) GetRetryInterval() time.Duration { return retryInterval } -func (t *txSubmitterImpl) Start(ctx context.Context) error { +func (t *txSubmitterImpl) Start(ctx context.Context) (err error) { + err = t.setupMetrics() + if err != nil { + return fmt.Errorf("could not setup metrics: %w", err) + } + i := 0 for { i++ @@ -120,6 +142,30 @@ func (t *txSubmitterImpl) Start(ctx context.Context) error { } } +func (t *txSubmitterImpl) setupMetrics() (err error) { + t.numPendingGauge, err = t.meter.Int64ObservableGauge("num_pending_txes") + if err != nil { + return fmt.Errorf("could not create num pending txes gauge: %w", err) + } + + _, err = t.meter.RegisterCallback(t.recordNumPending, t.numPendingGauge) + if err != nil { + return fmt.Errorf("could not register callback: %w", err) + } + + t.nonceGauge, err = t.meter.Int64ObservableGauge("current_nonce") + if err != nil { + return fmt.Errorf("could not create nonce gauge: %w", err) + } + + _, err = t.meter.RegisterCallback(t.recordNonces, t.nonceGauge) + if err != nil { + return fmt.Errorf("could not register callback: %w", err) + } + + return nil +} + func (t *txSubmitterImpl) GetSubmissionStatus(ctx context.Context, chainID *big.Int, nonce uint64) (status SubmissionStatus, err error) { nonceStatus, err := t.db.GetNonceStatus(ctx, t.signer.Address(), chainID, nonce) if err != nil { diff --git a/services/cctp-relayer/go.mod b/services/cctp-relayer/go.mod index e938478ee4..cc0552c4b4 100644 --- a/services/cctp-relayer/go.mod +++ b/services/cctp-relayer/go.mod @@ -94,6 +94,7 @@ require ( github.com/consensys/bavard v0.1.13 // indirect github.com/consensys/gnark-crypto v0.12.1 // indirect github.com/containerd/continuity v0.4.2 // indirect + github.com/cornelk/hashmap v1.0.8 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 // indirect github.com/crate-crypto/go-kzg-4844 v0.7.0 // indirect diff --git a/services/cctp-relayer/go.sum b/services/cctp-relayer/go.sum index a1d8e6f1aa..c05b216e13 100644 --- a/services/cctp-relayer/go.sum +++ b/services/cctp-relayer/go.sum @@ -280,6 +280,8 @@ github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc 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-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/cornelk/hashmap v1.0.8 h1:nv0AWgw02n+iDcawr5It4CjQIAcdMMKRrs10HOJYlrc= +github.com/cornelk/hashmap v1.0.8/go.mod h1:RfZb7JO3RviW/rT6emczVuC/oxpdz4UsSB2LJSclR1k= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= diff --git a/services/omnirpc/go.mod b/services/omnirpc/go.mod index cc32cf4b4a..154f951661 100644 --- a/services/omnirpc/go.mod +++ b/services/omnirpc/go.mod @@ -89,6 +89,7 @@ require ( github.com/consensys/bavard v0.1.13 // indirect github.com/consensys/gnark-crypto v0.12.1 // indirect github.com/containerd/continuity v0.4.2 // indirect + github.com/cornelk/hashmap v1.0.8 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 // indirect github.com/crate-crypto/go-kzg-4844 v0.7.0 // indirect diff --git a/services/omnirpc/go.sum b/services/omnirpc/go.sum index 1221d30ed8..a4cdd7c9df 100644 --- a/services/omnirpc/go.sum +++ b/services/omnirpc/go.sum @@ -272,6 +272,8 @@ github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8Nz github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/cornelk/hashmap v1.0.8 h1:nv0AWgw02n+iDcawr5It4CjQIAcdMMKRrs10HOJYlrc= +github.com/cornelk/hashmap v1.0.8/go.mod h1:RfZb7JO3RviW/rT6emczVuC/oxpdz4UsSB2LJSclR1k= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= diff --git a/services/rfq/api/rest/server.go b/services/rfq/api/rest/server.go index 37f4213433..886c7d075c 100644 --- a/services/rfq/api/rest/server.go +++ b/services/rfq/api/rest/server.go @@ -31,6 +31,8 @@ import ( "github.com/synapsecns/sanguine/services/rfq/relayer/relapi" ) +const meterName = "github.com/synapsecns/sanguine/services/rfq/api/rest" + // QuoterAPIServer is a struct that holds the configuration, database connection, gin engine, RPC client, metrics handler, and fast bridge contracts. // It is used to initialize and run the API server. type QuoterAPIServer struct { @@ -39,6 +41,7 @@ type QuoterAPIServer struct { engine *gin.Engine omnirpcClient omniClient.RPCClient handler metrics.Handler + meter metric.Meter fastBridgeContracts map[uint32]*fastbridge.FastBridge roleCache map[uint32]*ttlcache.Cache[string, bool] // relayAckCache contains a set of transactionID values that reflect @@ -109,16 +112,31 @@ func NewAPI( relayAckCache.Stop() }() - return &QuoterAPIServer{ + q := &QuoterAPIServer{ cfg: cfg, db: store, omnirpcClient: omniRPCClient, handler: handler, + meter: handler.Meter(meterName), fastBridgeContracts: bridges, roleCache: roles, relayAckCache: relayAckCache, ackMux: sync.Mutex{}, - }, nil + } + + // Prometheus metrics setup + var err error + q.latestQuoteAgeGauge, err = q.meter.Float64ObservableGauge("latest_quote_age") + if err != nil { + return nil, fmt.Errorf("could not create latest quote age gauge: %w", err) + } + + _, err = q.meter.RegisterCallback(q.recordLatestQuoteAge, q.latestQuoteAgeGauge) + if err != nil { + return nil, fmt.Errorf("could not register callback: %w", err) + } + + return q, nil } const ( @@ -150,6 +168,9 @@ func (r *QuoterAPIServer) Run(ctx context.Context) error { // engine.PUT("/quotes", h.ModifyQuote) engine.GET(QuoteRoute, h.GetQuotes) + // Expose Prometheus metrics + engine.GET(metrics.MetricsPathDefault, gin.WrapH(r.handler.Handler())) + r.engine = engine connection := baseServer.Server{} diff --git a/services/rfq/go.mod b/services/rfq/go.mod index c5b13b8860..8291bb3fdc 100644 --- a/services/rfq/go.mod +++ b/services/rfq/go.mod @@ -108,6 +108,7 @@ require ( github.com/consensys/bavard v0.1.13 // indirect github.com/consensys/gnark-crypto v0.12.1 // indirect github.com/containerd/continuity v0.4.2 // indirect + github.com/cornelk/hashmap v1.0.8 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 // indirect github.com/crate-crypto/go-kzg-4844 v0.7.0 // indirect diff --git a/services/rfq/go.sum b/services/rfq/go.sum index 95b2917ae9..faa4c36a37 100644 --- a/services/rfq/go.sum +++ b/services/rfq/go.sum @@ -282,6 +282,8 @@ github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc 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-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/cornelk/hashmap v1.0.8 h1:nv0AWgw02n+iDcawr5It4CjQIAcdMMKRrs10HOJYlrc= +github.com/cornelk/hashmap v1.0.8/go.mod h1:RfZb7JO3RviW/rT6emczVuC/oxpdz4UsSB2LJSclR1k= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= diff --git a/services/rfq/relayer/inventory/manager.go b/services/rfq/relayer/inventory/manager.go index 889cb97d1d..5c731401ac 100644 --- a/services/rfq/relayer/inventory/manager.go +++ b/services/rfq/relayer/inventory/manager.go @@ -194,10 +194,6 @@ func NewInventoryManager(ctx context.Context, clientFetcher submitter.ClientFetc } } - if err != nil { - return nil, fmt.Errorf("could not create balance gauge: %w", err) - } - i := inventoryManagerImpl{ relayerAddress: relayer, handler: handler, diff --git a/services/rfq/relayer/quoter/quoter.go b/services/rfq/relayer/quoter/quoter.go index c73aef6adc..c19b4ba02e 100644 --- a/services/rfq/relayer/quoter/quoter.go +++ b/services/rfq/relayer/quoter/quoter.go @@ -11,7 +11,6 @@ import ( "sync/atomic" "github.com/synapsecns/sanguine/contrib/screener-api/client" - "github.com/synapsecns/sanguine/core" "github.com/ethereum/go-ethereum/common/hexutil" "go.opentelemetry.io/otel/attribute" @@ -74,8 +73,10 @@ type Manager struct { relayPaused atomic.Bool // meter is the meter used by this package. meter metric.Meter - // quoteAmountHist stores a histogram of quote amounts. - quoteAmountHist metric.Float64Histogram + // quoteAmountGauge stores a histogram of quote amounts. + quoteAmountGauge metric.Float64ObservableGauge + // currentQuotes is used for recording quote metrics. + currentQuotes []model.PutQuoteRequest } // NewQuoterManager creates a new QuoterManager. @@ -107,17 +108,7 @@ func NewQuoterManager(config relconfig.Config, metricsHandler metrics.Handler, i } } - var meter metric.Meter - var quoteAmountHist metric.Float64Histogram - if metricsHandler.Type() != metrics.Null { - meter := metricsHandler.Meter(meterName) - quoteAmountHist, err = meter.Float64Histogram("quote_amount") - if err != nil { - return nil, fmt.Errorf("error creating quote amount hist: %w", err) - } - } - - return &Manager{ + m := &Manager{ config: config, inventoryManager: inventoryManager, rfqClient: apiClient, @@ -126,9 +117,21 @@ func NewQuoterManager(config relconfig.Config, metricsHandler metrics.Handler, i metricsHandler: metricsHandler, feePricer: feePricer, screener: ss, - meter: meter, - quoteAmountHist: quoteAmountHist, - }, nil + meter: metricsHandler.Meter(meterName), + currentQuotes: []model.PutQuoteRequest{}, + } + + m.quoteAmountGauge, err = m.meter.Float64ObservableGauge("quote_amount") + if err != nil { + return nil, fmt.Errorf("error creating quote amount gauge: %w", err) + } + + _, err = m.meter.RegisterCallback(m.recordQuoteAmounts, m.quoteAmountGauge) + if err != nil { + return nil, fmt.Errorf("could not register callback: %w", err) + } + + return m, nil } const screenerRuleset = "rfq" @@ -329,18 +332,11 @@ func (m *Manager) generateQuotes(parentCtx context.Context, chainID int, address )) continue } - - registerErr := m.registerQuote(ctx, quote) - if registerErr != nil { - span.AddEvent("error registering quote", trace.WithAttributes( - attribute.String("error", registerErr.Error()), - )) - } - quotes = append(quotes, *quote) } } } + m.currentQuotes = quotes return quotes, nil } @@ -401,34 +397,38 @@ func (m *Manager) generateQuote(ctx context.Context, keyTokenID string, chainID return quote, nil } -// registerQuote registers a quote with the metrics handler. -func (m *Manager) registerQuote(ctx context.Context, quote *model.PutQuoteRequest) (err error) { - if m.meter == nil || m.quoteAmountHist == nil { +// recordQuoteAmounts records the latest quotes from the relayer. +func (m *Manager) recordQuoteAmounts(_ context.Context, observer metric.Observer) (err error) { + if m.meter == nil || m.quoteAmountGauge == nil || m.currentQuotes == nil { return nil } - originMetadata, err := m.inventoryManager.GetTokenMetadata(quote.OriginChainID, common.HexToAddress(quote.OriginTokenAddr)) - if err != nil { - return fmt.Errorf("error getting origin token metadata: %w", err) + for _, quote := range m.currentQuotes { + originMetadata, err := m.inventoryManager.GetTokenMetadata(quote.OriginChainID, common.HexToAddress(quote.OriginTokenAddr)) + if err != nil { + return fmt.Errorf("error getting origin token metadata: %w", err) + } + destMetadata, err := m.inventoryManager.GetTokenMetadata(quote.DestChainID, common.HexToAddress(quote.DestTokenAddr)) + if err != nil { + return fmt.Errorf("error getting dest token metadata: %w", err) + } + + destAmount, err := strconv.ParseFloat(quote.DestAmount, 64) + if err != nil { + return fmt.Errorf("error parsing dest amount: %w", err) + } + opts := metric.WithAttributes( + attribute.Int(metrics.Origin, quote.OriginChainID), + attribute.Int(metrics.Destination, quote.DestChainID), + attribute.String("origin_token_name", originMetadata.Name), + attribute.String("dest_token_name", destMetadata.Name), + attribute.String("max_origin_amount", quote.MaxOriginAmount), + attribute.String("fixed_fee", quote.FixedFee), + attribute.String("relayer", m.relayerSigner.Address().Hex()), + ) + observer.ObserveFloat64(m.quoteAmountGauge, destAmount, opts) } - destMetadata, err := m.inventoryManager.GetTokenMetadata(quote.DestChainID, common.HexToAddress(quote.DestTokenAddr)) - if err != nil { - return fmt.Errorf("error getting dest token metadata: %w", err) - } - destAmount, ok := new(big.Int).SetString(quote.DestAmount, 10) - if !ok { - return fmt.Errorf("error parsing dest amount: %w", err) - } - attributes := attribute.NewSet( - attribute.Int(metrics.Origin, quote.OriginChainID), - attribute.Int(metrics.Destination, quote.DestChainID), - attribute.String("origin_token_name", originMetadata.Name), - attribute.String("dest_token_name", destMetadata.Name), - attribute.String("max_origin_amount", quote.MaxOriginAmount), - attribute.String("fixed_fee", quote.FixedFee), - attribute.String("relayer", m.relayerSigner.Address().Hex()), - ) - m.quoteAmountHist.Record(ctx, core.BigToDecimals(destAmount, destMetadata.Decimals), metric.WithAttributeSet(attributes)) + return nil } diff --git a/services/rfq/relayer/relapi/server_test.go b/services/rfq/relayer/relapi/server_test.go index 379d8f0b2f..24ff6f5ccf 100644 --- a/services/rfq/relayer/relapi/server_test.go +++ b/services/rfq/relayer/relapi/server_test.go @@ -27,8 +27,10 @@ func (c *RelayerServerSuite) TestNewQuoterAPIServer() { resp, err := client.Do(req) c.Require().NoError(err) defer func() { - err = resp.Body.Close() - c.Require().NoError(err) + if resp != nil && resp.Body != nil { + err = resp.Body.Close() + c.Require().NoError(err) + } }() c.Equal(http.StatusOK, resp.StatusCode) c.GetTestContext().Done() @@ -49,8 +51,10 @@ func (c *RelayerServerSuite) TestGetQuoteRequestByTxHash() { resp, err := client.Do(req) c.Require().NoError(err) defer func() { - err = resp.Body.Close() - c.Require().NoError(err) + if resp != nil && resp.Body != nil { + err = resp.Body.Close() + c.Require().NoError(err) + } }() c.Equal(http.StatusOK, resp.StatusCode) @@ -86,8 +90,10 @@ func (c *RelayerServerSuite) TestGetQuoteRequestByTxID() { resp, err := client.Do(req) c.Require().NoError(err) defer func() { - err = resp.Body.Close() - c.Require().NoError(err) + if resp != nil && resp.Body != nil { + err = resp.Body.Close() + c.Require().NoError(err) + } }() c.Equal(http.StatusOK, resp.StatusCode) @@ -122,8 +128,10 @@ func (c *RelayerServerSuite) TestGetTxRetry() { resp, err := client.Do(req) c.Require().NoError(err) defer func() { - err = resp.Body.Close() - c.Require().NoError(err) + if resp != nil && resp.Body != nil { + err = resp.Body.Close() + c.Require().NoError(err) + } }() c.Equal(http.StatusOK, resp.StatusCode) @@ -160,7 +168,7 @@ func (c *RelayerServerSuite) startQuoterAPIServer() { c.Require().NoError(err) resp, err := client.Do(req) defer func() { - if resp.Body != nil { + if resp != nil && resp.Body != nil { closeErr := resp.Body.Close() c.NoError(closeErr) } From 1183ca86d87ec08a8a4dc7b19cb7c1982c86e580 Mon Sep 17 00:00:00 2001 From: dwasse Date: Tue, 25 Jun 2024 11:57:58 -0500 Subject: [PATCH 35/85] Submitter: add reaper process (#2768) * Feat: add DeleteTXS helper to submitter db * Feat: add matchStatuses for DeleteTXS() * WIP: set creation time in TestDeleteTXS * Feat: working TestDeleteTXS * Fix: regenerate * [goreleaser] * Feat: make reaper params configurable * Feat: add new params in config test * [goreleaser] * Docs: add reaper comment in docs --------- Co-authored-by: Trajan0x --- docs/bridge/docs/Services/Submitter.md | 2 + ethergo/submitter/config/config.go | 26 +++++++++++ ethergo/submitter/config/config_test.go | 15 +++++++ ethergo/submitter/config/iconfig_generated.go | 4 ++ ethergo/submitter/db/mocks/service.go | 23 ++++++++++ ethergo/submitter/db/service.go | 3 ++ ethergo/submitter/db/txdb/store.go | 15 +++++++ ethergo/submitter/db_test.go | 43 +++++++++++++++++++ ethergo/submitter/submitter.go | 22 +++++++++- 9 files changed, 151 insertions(+), 2 deletions(-) diff --git a/docs/bridge/docs/Services/Submitter.md b/docs/bridge/docs/Services/Submitter.md index b046bc59f8..24d536144e 100644 --- a/docs/bridge/docs/Services/Submitter.md +++ b/docs/bridge/docs/Services/Submitter.md @@ -2,6 +2,8 @@ This section is still in progress, please see [here](https://pkg.go.dev/github.com/synapsecns/sanguine/ethergo/submitter#section-readme) for details. +The submitter also has "reaper" functionality, which flushes old entries in the database that have reached a terminal state (`Replaced`, `ReplacedOrConfirmed`, `Confirmed`). By default, entries are flushed after a week, but this functionality is configurable by the `MaxRecordAge` config value. + ### Submitter Config This section is still in progress, please see [here](https://pkg.go.dev/github.com/synapsecns/sanguine/ethergo@v0.9.0/submitter/config) for details. diff --git a/ethergo/submitter/config/config.go b/ethergo/submitter/config/config.go index 43ae851fc5..af6cf120d7 100644 --- a/ethergo/submitter/config/config.go +++ b/ethergo/submitter/config/config.go @@ -20,6 +20,10 @@ type Config struct { ChainConfig `yaml:",inline"` // Chains overrides the global config for each chain Chains map[int]ChainConfig `yaml:"chains"` + // ReaperInterval is the interval at which scan for transactions to flush + ReaperInterval time.Duration `yaml:"reaper_interval"` + // MaxRecordAge is the maximum age of a record before it is flushed + MaxRecordAge time.Duration `yaml:"max_record_age"` } // ChainConfig contains configuration for a specific chain. @@ -68,9 +72,31 @@ var DefaultMaxPrice = big.NewInt(500 * params.GWei) // DefaultMinGasPrice is the default min price of a tx. var DefaultMinGasPrice = big.NewInt(0.01 * params.GWei) +// DefaultReaperInterval is the default interval at which to scan for transactions to flush. +var DefaultReaperInterval = time.Minute * 5 + +// DefaultMaxRecordAge is the default maximum age of a record before it is flushed. +var DefaultMaxRecordAge = time.Hour * 24 * 7 + // note: there's probably a way to clean these getters up with generics, the real problem comes with the fact that // that this would require the caller to override the entire struct, which is not ideal.. +// GetReaperInterval returns the reaper interval. +func (c *Config) GetReaperInterval() time.Duration { + if c.ReaperInterval == 0 { + return DefaultReaperInterval + } + return c.ReaperInterval +} + +// GetMaxRecordAge returns the maximum record age. +func (c *Config) GetMaxRecordAge() time.Duration { + if c.MaxRecordAge == 0 { + return DefaultMaxRecordAge + } + return c.MaxRecordAge +} + // GetMaxBatchSize returns the maximum number of transactions to send in a batch. func (c *Config) GetMaxBatchSize(chainID int) int { chainConfig, ok := c.Chains[chainID] diff --git a/ethergo/submitter/config/config_test.go b/ethergo/submitter/config/config_test.go index d6d30e345d..2d72049d65 100644 --- a/ethergo/submitter/config/config_test.go +++ b/ethergo/submitter/config/config_test.go @@ -3,6 +3,7 @@ package config_test import ( "math/big" "testing" + "time" "github.com/synapsecns/sanguine/ethergo/submitter/config" "gopkg.in/yaml.v2" @@ -33,6 +34,20 @@ func TestGetters(t *testing.T) { }, } + t.Run("GetReaperInterval", func(t *testing.T) { + assert.Equal(t, config.DefaultReaperInterval, cfg.GetReaperInterval()) + reaperInterval := time.Minute + cfg.ReaperInterval = reaperInterval + assert.Equal(t, reaperInterval, cfg.GetReaperInterval()) + }) + + t.Run("GetMaxRecordAge", func(t *testing.T) { + assert.Equal(t, config.DefaultMaxRecordAge, cfg.GetMaxRecordAge()) + maxRecordAge := time.Minute + cfg.MaxRecordAge = maxRecordAge + assert.Equal(t, maxRecordAge, cfg.GetMaxRecordAge()) + }) + t.Run("GetMaxBatchSize", func(t *testing.T) { assert.Equal(t, 8, cfg.GetMaxBatchSize(1)) assert.Equal(t, 5, cfg.GetMaxBatchSize(2)) diff --git a/ethergo/submitter/config/iconfig_generated.go b/ethergo/submitter/config/iconfig_generated.go index 53e51ce86a..12716431c3 100644 --- a/ethergo/submitter/config/iconfig_generated.go +++ b/ethergo/submitter/config/iconfig_generated.go @@ -9,6 +9,10 @@ import ( // IConfig ... type IConfig interface { + // GetReaperInterval returns the reaper interval. + GetReaperInterval() time.Duration + // GetMaxRecordAge returns the maximum record age. + GetMaxRecordAge() time.Duration // GetMaxBatchSize returns the maximum number of transactions to send in a batch. GetMaxBatchSize(chainID int) int // GetBatch returns whether or not to batch transactions at the rpc level. diff --git a/ethergo/submitter/db/mocks/service.go b/ethergo/submitter/db/mocks/service.go index c990ffaa5f..c489c8c754 100644 --- a/ethergo/submitter/db/mocks/service.go +++ b/ethergo/submitter/db/mocks/service.go @@ -11,6 +11,8 @@ import ( db "github.com/synapsecns/sanguine/ethergo/submitter/db" mock "github.com/stretchr/testify/mock" + + time "time" ) // Service is an autogenerated mock type for the Service type @@ -32,6 +34,27 @@ func (_m *Service) DBTransaction(ctx context.Context, f db.TransactionFunc) erro return r0 } +// DeleteTXS provides a mock function with given fields: ctx, maxAge, matchStatuses +func (_m *Service) DeleteTXS(ctx context.Context, maxAge time.Duration, matchStatuses ...db.Status) error { + _va := make([]interface{}, len(matchStatuses)) + for _i := range matchStatuses { + _va[_i] = matchStatuses[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, maxAge) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + var r0 error + if rf, ok := ret.Get(0).(func(context.Context, time.Duration, ...db.Status) error); ok { + r0 = rf(ctx, maxAge, matchStatuses...) + } else { + r0 = ret.Error(0) + } + + return r0 +} + // GetAllTXAttemptByStatus provides a mock function with given fields: ctx, fromAddress, chainID, matchStatuses func (_m *Service) GetAllTXAttemptByStatus(ctx context.Context, fromAddress common.Address, chainID *big.Int, matchStatuses ...db.Status) ([]db.TX, error) { _va := make([]interface{}, len(matchStatuses)) diff --git a/ethergo/submitter/db/service.go b/ethergo/submitter/db/service.go index e8fb21ed13..103b885f1f 100644 --- a/ethergo/submitter/db/service.go +++ b/ethergo/submitter/db/service.go @@ -6,6 +6,7 @@ import ( "errors" "fmt" "math/big" + "time" "github.com/ethereum/go-ethereum/common" "github.com/synapsecns/sanguine/core/dbcommon" @@ -37,6 +38,8 @@ type Service interface { GetNonceAttemptsByStatus(ctx context.Context, fromAddress common.Address, chainID *big.Int, nonce uint64, matchStatuses ...Status) (txs []TX, err error) // GetChainIDsByStatus gets the distinct chain ids for a given address and status. GetChainIDsByStatus(ctx context.Context, fromAddress common.Address, matchStatuses ...Status) (chainIDs []*big.Int, err error) + // DeleteTXS deletes txs that are older than a given duration. + DeleteTXS(ctx context.Context, maxAge time.Duration, matchStatuses ...Status) error } // TransactionFunc is a function that can be passed to DBTransaction. diff --git a/ethergo/submitter/db/txdb/store.go b/ethergo/submitter/db/txdb/store.go index 77b04ab315..295a00b70f 100644 --- a/ethergo/submitter/db/txdb/store.go +++ b/ethergo/submitter/db/txdb/store.go @@ -6,6 +6,7 @@ import ( "errors" "fmt" "math/big" + "time" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core/types" @@ -382,6 +383,20 @@ func (s *Store) GetChainIDsByStatus(ctx context.Context, fromAddress common.Addr return chainIDs, nil } +// DeleteTXS deletes txs that are older than a given duration. +func (s *Store) DeleteTXS(ctx context.Context, maxAge time.Duration, matchStatuses ...db.Status) (err error) { + threshold := time.Now().UTC().Add(-maxAge) + inArgs := statusToArgs(matchStatuses...) + tx := s.DB().WithContext(ctx). + Where("created_at < ?", threshold). + Where(fmt.Sprintf("%s IN ?", statusFieldName), inArgs). + Delete(ÐTX{}) + if tx.Error != nil { + return fmt.Errorf("could not delete txs: %w", tx.Error) + } + return nil +} + // DB gets the database. func (s Store) DB() *gorm.DB { return s.db diff --git a/ethergo/submitter/db_test.go b/ethergo/submitter/db_test.go index ba047c10e5..61b4b7ec51 100644 --- a/ethergo/submitter/db_test.go +++ b/ethergo/submitter/db_test.go @@ -205,3 +205,46 @@ func (t *TXSubmitterDBSuite) TestGetChainIDsByStatus() { } }) } + +func (t *TXSubmitterDBSuite) TestDeleteTXS() { + t.RunOnAllDBs(func(testDB db.Service) { + nonce := uint64(0) + mockAccount := t.mockAccounts[0] + backend := t.testBackends[0] + storeTx := func(status db.Status) { + manager := t.managers[backend.GetChainID()] + legacyTx := &types.LegacyTx{ + To: &mockAccount.Address, + Value: big.NewInt(0), + Nonce: nonce, + } + tx, err := manager.SignTx(types.NewTx(legacyTx), backend.Signer(), mockAccount.PrivateKey) + t.Require().NoError(err) + dbTx := db.NewTX(tx, status, uuid.New().String()) + err = testDB.PutTXS(t.GetTestContext(), dbTx) + t.Require().NoError(err) + nonce++ + } + + storeTx(db.Pending) + storeTx(db.Stored) + storeTx(db.Replaced) + storeTx(db.ReplacedOrConfirmed) + storeTx(db.Confirmed) + + // ensure txs were stored + allStatuses := []db.Status{db.Pending, db.Stored, db.Replaced, db.ReplacedOrConfirmed, db.Confirmed} + txs, err := testDB.GetTXS(t.GetTestContext(), mockAccount.Address, backend.GetBigChainID(), allStatuses...) + t.Require().NoError(err) + t.Equal(5, len(txs)) + + // delete non-terminal txs + err = testDB.DeleteTXS(t.GetTestContext(), 0, db.Replaced, db.ReplacedOrConfirmed, db.Confirmed) + t.Require().NoError(err) + + // ensure txs were deleted + txs, err = testDB.GetTXS(t.GetTestContext(), mockAccount.Address, backend.GetBigChainID(), allStatuses...) + t.Require().NoError(err) + t.Equal(2, len(txs)) + }) +} diff --git a/ethergo/submitter/submitter.go b/ethergo/submitter/submitter.go index 811e537a2d..8d2cd95028 100644 --- a/ethergo/submitter/submitter.go +++ b/ethergo/submitter/submitter.go @@ -4,7 +4,6 @@ import ( "context" "errors" "fmt" - "github.com/cornelk/hashmap" "math" "math/big" "reflect" @@ -12,6 +11,8 @@ import ( "sync" "time" + "github.com/cornelk/hashmap" + "github.com/google/uuid" "github.com/puzpuzpuz/xsync/v2" @@ -122,12 +123,28 @@ func (t *txSubmitterImpl) GetRetryInterval() time.Duration { return retryInterval } -func (t *txSubmitterImpl) Start(ctx context.Context) (err error) { +func (t *txSubmitterImpl) Start(parentCtx context.Context) (err error) { err = t.setupMetrics() if err != nil { return fmt.Errorf("could not setup metrics: %w", err) } + // start reaper process + ctx, cancel := context.WithCancel(parentCtx) + go func() { + for { + select { + case <-ctx.Done(): + return + case <-time.After(t.config.GetReaperInterval()): + err := t.db.DeleteTXS(ctx, t.config.GetMaxRecordAge(), db.ReplacedOrConfirmed, db.Replaced, db.Confirmed) + if err != nil { + logger.Errorf("could not flush old records: %v", err) + } + } + } + }() + i := 0 for { i++ @@ -137,6 +154,7 @@ func (t *txSubmitterImpl) Start(ctx context.Context) (err error) { } if shouldExit { logger.Warn("exiting transaction submitter") + cancel() return nil } } From 0ee5b6966c36bbd347067ae8f271606adba7949b Mon Sep 17 00:00:00 2001 From: bigboydiamonds <57741810+bigboydiamonds@users.noreply.github.com> Date: Tue, 25 Jun 2024 14:38:50 -0700 Subject: [PATCH 36/85] Fire single refresh quote callback regardless of time passed (#2764) --- .../pages/state-managed-bridge/index.tsx | 4 ++-- ...teRefresher.ts => useStaleQuoteUpdater.ts} | 19 ++++++++++++++++--- 2 files changed, 18 insertions(+), 5 deletions(-) rename packages/synapse-interface/utils/hooks/{useStaleQuoteRefresher.ts => useStaleQuoteUpdater.ts} (66%) diff --git a/packages/synapse-interface/pages/state-managed-bridge/index.tsx b/packages/synapse-interface/pages/state-managed-bridge/index.tsx index d70edba5dd..f9771cb7bf 100644 --- a/packages/synapse-interface/pages/state-managed-bridge/index.tsx +++ b/packages/synapse-interface/pages/state-managed-bridge/index.tsx @@ -72,7 +72,7 @@ import { getBridgeModuleNames, } from '@/components/Maintenance/Maintenance' import { wagmiConfig } from '@/wagmiConfig' -import { useStaleQuoteRefresher } from '@/utils/hooks/useStaleQuoteRefresher' +import { useStaleQuoteUpdater } from '@/utils/hooks/useStaleQuoteUpdater' const StateManagedBridge = () => { const { address } = useAccount() @@ -317,7 +317,7 @@ const StateManagedBridge = () => { } } - useStaleQuoteRefresher( + useStaleQuoteUpdater( bridgeQuote, getAndSetBridgeQuote, isQuoteLoading, diff --git a/packages/synapse-interface/utils/hooks/useStaleQuoteRefresher.ts b/packages/synapse-interface/utils/hooks/useStaleQuoteUpdater.ts similarity index 66% rename from packages/synapse-interface/utils/hooks/useStaleQuoteRefresher.ts rename to packages/synapse-interface/utils/hooks/useStaleQuoteUpdater.ts index a2073c2ecf..bd0f3b6076 100644 --- a/packages/synapse-interface/utils/hooks/useStaleQuoteRefresher.ts +++ b/packages/synapse-interface/utils/hooks/useStaleQuoteUpdater.ts @@ -1,5 +1,5 @@ import { isNull, isNumber } from 'lodash' -import { useEffect } from 'react' +import { useEffect, useRef } from 'react' import { BridgeQuote } from '@/utils/types' import { calculateTimeBetween } from '@/utils/time' @@ -9,7 +9,7 @@ import { useIntervalTimer } from '@/utils/hooks/useIntervalTimer' * Refreshes quotes based on selected stale timeout duration. * Will refresh quote when browser is active and wallet prompt is not pending. */ -export const useStaleQuoteRefresher = ( +export const useStaleQuoteUpdater = ( quote: BridgeQuote, refreshQuoteCallback: () => Promise, isQuoteLoading: boolean, @@ -19,15 +19,28 @@ export const useStaleQuoteRefresher = ( const quoteTime = quote?.timestamp const isValidQuote = isNumber(quoteTime) && !isNull(quoteTime) const currentTime = useIntervalTimer(staleTimeout, !isValidQuote) + const eventListenerRef = useRef void)>(null) useEffect(() => { if (isValidQuote && !isQuoteLoading && !isWalletPending) { const timeDifference = calculateTimeBetween(currentTime, quoteTime) const isStaleQuote = timeDifference >= staleTimeout + if (isStaleQuote) { - document.addEventListener('mousemove', refreshQuoteCallback, { + if (eventListenerRef.current) { + document.removeEventListener('mousemove', eventListenerRef.current) + } + + const newEventListener = () => { + refreshQuoteCallback() + eventListenerRef.current = null + } + + document.addEventListener('mousemove', newEventListener, { once: true, }) + + eventListenerRef.current = newEventListener } } }, [currentTime, staleTimeout]) From ac748d3b17ce965b88775559fd69472b427d2bb7 Mon Sep 17 00:00:00 2001 From: bigboydiamonds Date: Tue, 25 Jun 2024 21:42:52 +0000 Subject: [PATCH 37/85] Publish - @synapsecns/synapse-interface@0.26.3 --- packages/synapse-interface/CHANGELOG.md | 8 ++++++++ packages/synapse-interface/package.json | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/synapse-interface/CHANGELOG.md b/packages/synapse-interface/CHANGELOG.md index 24fbbcf4f1..56be6bc37a 100644 --- a/packages/synapse-interface/CHANGELOG.md +++ b/packages/synapse-interface/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.26.3](https://github.com/synapsecns/sanguine/compare/@synapsecns/synapse-interface@0.26.2...@synapsecns/synapse-interface@0.26.3) (2024-06-25) + +**Note:** Version bump only for package @synapsecns/synapse-interface + + + + + ## [0.26.2](https://github.com/synapsecns/sanguine/compare/@synapsecns/synapse-interface@0.26.1...@synapsecns/synapse-interface@0.26.2) (2024-06-18) diff --git a/packages/synapse-interface/package.json b/packages/synapse-interface/package.json index 2229aeb3a4..c82f757d46 100644 --- a/packages/synapse-interface/package.json +++ b/packages/synapse-interface/package.json @@ -1,6 +1,6 @@ { "name": "@synapsecns/synapse-interface", - "version": "0.26.2", + "version": "0.26.3", "private": true, "engines": { "node": ">=18.18.0" From 08e2b1988b2a9d2c2bcbd5589c2ffb2f2781a833 Mon Sep 17 00:00:00 2001 From: vro <168573323+golangisfun123@users.noreply.github.com> Date: Tue, 25 Jun 2024 21:16:36 -0500 Subject: [PATCH 38/85] feat(screener): use chainalysis (#2744) Co-authored-by: Trajan0x --- contrib/screener-api/README.md | 8 +- .../chainalysis/chainalysisapi.go | 140 ++++++++ contrib/screener-api/chainalysis/doc.go | 3 + contrib/screener-api/client/client.go | 58 +-- contrib/screener-api/cmd/cmd.go | 3 +- contrib/screener-api/cmd/commands.go | 21 +- contrib/screener-api/config/config.go | 50 +-- contrib/screener-api/db/db.go | 24 +- contrib/screener-api/db/db_test.go | 61 ---- contrib/screener-api/db/models.go | 90 ----- contrib/screener-api/db/sql/base/base.go | 42 +-- contrib/screener-api/db/sql/base/namer.go | 6 +- contrib/screener-api/db/sql/mysql/store.go | 1 - contrib/screener-api/db/sql/sqlite/sqlite.go | 6 +- contrib/screener-api/docs/docs.go | 49 +-- contrib/screener-api/docs/swagger.json | 49 +-- contrib/screener-api/docs/swagger.yaml | 39 +- contrib/screener-api/go.mod | 8 +- contrib/screener-api/go.sum | 10 +- contrib/screener-api/screener/export_test.go | 10 +- .../screener/internal/export_test.go | 17 - .../screener-api/screener/internal/risk.go | 117 ------ .../screener/internal/risk_test.go | 96 ----- contrib/screener-api/screener/screener.go | 332 +++++++++--------- contrib/screener-api/screener/setup.go | 137 -------- contrib/screener-api/screener/suite_test.go | 174 +++++---- contrib/screener-api/trmlabs/doc.go | 3 - contrib/screener-api/trmlabs/trmapi.go | 92 ----- go.work.sum | 4 +- services/cctp-relayer/relayer/synapse.go | 5 +- services/rfq/relayer/quoter/quoter.go | 6 +- 31 files changed, 518 insertions(+), 1143 deletions(-) create mode 100644 contrib/screener-api/chainalysis/chainalysisapi.go create mode 100644 contrib/screener-api/chainalysis/doc.go delete mode 100644 contrib/screener-api/screener/internal/export_test.go delete mode 100644 contrib/screener-api/screener/internal/risk.go delete mode 100644 contrib/screener-api/screener/internal/risk_test.go delete mode 100644 contrib/screener-api/screener/setup.go delete mode 100644 contrib/screener-api/trmlabs/doc.go delete mode 100644 contrib/screener-api/trmlabs/trmapi.go diff --git a/contrib/screener-api/README.md b/contrib/screener-api/README.md index 2c1ff0fdab..302e304a29 100644 --- a/contrib/screener-api/README.md +++ b/contrib/screener-api/README.md @@ -3,21 +3,21 @@ [![Go Reference](https://pkg.go.dev/badge/github.com/synapsecns/sanguine/contrib/screener-api.svg)](https://pkg.go.dev/github.com/synapsecns/sanguine/contrib/screener-api) [![Go Report Card](https://goreportcard.com/badge/github.com/synapsecns/sanguine/contrib/screener-api)](https://goreportcard.com/report/github.com/synapsecns/sanguine/contrib/screener-api) -The screening api provides a simple restful interface for checking wether an address is blocked or not against a variety of data sources. Right now, two data sources are supported: +The screening api provides a simple restful interface for checking whether an address is blocked or not against a multiple data sources. Right now, two data sources are supported: - Blacklist URL: a json list of addresses that are blocked -- TRM Labs: a list of rules that are used to determine if an address is blocked, can be different per "rule set" +- Chainalysis: the Entity API runs a screen against an address to quantify the risk associated with it, `Severe`, `High`, `Medium`, or `Low`. Addresses themselves are checked against specific rulesets: -`https://screener-url/[ruleset]/address/[address]` +`https://screener-url/[address]`
 root
+├── chainalysis: chainalysis client stub.
 ├── client: client library for using the screening api.
 ├── cmd: contains the command line interface to be used for the screener.
 ├── config: Yaml config struct/parsing.
 ├── db: db interface for the screener.
 ├── screener: screening code.
-├── trmlabs: trm client stub.
 
diff --git a/contrib/screener-api/chainalysis/chainalysisapi.go b/contrib/screener-api/chainalysis/chainalysisapi.go new file mode 100644 index 0000000000..eab0db338f --- /dev/null +++ b/contrib/screener-api/chainalysis/chainalysisapi.go @@ -0,0 +1,140 @@ +package chainalysis + +import ( + "context" + "errors" + "fmt" + "github.com/TwiN/gocache/v2" + "github.com/valyala/fastjson" + "net/http" + "slices" + "strings" + "time" + + "github.com/go-resty/resty/v2" + "github.com/synapsecns/sanguine/core/retry" +) + +const ( + // EntityEndpoint is the endpoint for the entity API. + EntityEndpoint = "/api/risk/v2/entities" +) + +// Client is the interface for the Chainalysis API client. It makes requests to the Chainalysis API. +type Client interface { + ScreenAddress(ctx context.Context, address string) (bool, error) +} + +// clientImpl is the implementation of the Chainalysis API client. +type clientImpl struct { + client *resty.Client + apiKey string + url string + riskLevels []string + registrationCache *gocache.Cache +} + +const ( + maxCacheSizeGB = 3 + bytesInGB = 1024 * 1024 * 1024 + chainalysisRequestTimeout = 30 * time.Second +) + +// NewClient creates a new Chainalysis API client. +func NewClient(riskLevels []string, apiKey, url string) Client { + client := resty.New(). + SetBaseURL(url). + SetHeader("Content-Type", "application/json"). + SetHeader("Token", apiKey). + SetTimeout(chainalysisRequestTimeout) + + // max cache size 3gb + // TODO: make this configurable. + registrationCache := gocache.NewCache().WithEvictionPolicy(gocache.LeastRecentlyUsed).WithMaxMemoryUsage(maxCacheSizeGB * bytesInGB) + + return &clientImpl{ + client: client, + apiKey: apiKey, + url: url, + riskLevels: riskLevels, + registrationCache: registrationCache, + } +} + +// ScreenAddress screens an address from the Chainalysis API. +func (c *clientImpl) ScreenAddress(parentCtx context.Context, address string) (bool, error) { + // make sure to cancel the context when we're done. + // this ensures if we didn't need pessimistic register, we don't wait on it. + ctx, cancel := context.WithCancel(parentCtx) + defer cancel() + + address = strings.ToLower(address) + + // we don't even wait on pessimistic register since if the address is already registered, but not in the in-memory cache + // this will just get canceled. + go func() { + // Register the address in the cache. + if err := c.pessimisticRegister(ctx, address); err != nil && !errors.Is(err, context.Canceled) { + fmt.Printf("could not register address: %v\n", err) + } + }() + + return c.checkBlacklist(ctx, address) +} + +// pessimisticRegister registers an address if its not in memory cache. This happens regardless it was registered before. +func (c *clientImpl) pessimisticRegister(ctx context.Context, address string) error { + if _, isPresent := c.registrationCache.Get(address); !isPresent { + if err := c.registerAddress(ctx, address); err != nil { + return fmt.Errorf("could not register address: %w", err) + } + } + return nil +} + +func (c *clientImpl) checkBlacklist(ctx context.Context, address string) (bool, error) { + var resp *resty.Response + // Retry until the user is registered. + err := retry.WithBackoff(ctx, + func(ctx context.Context) (err error) { + resp, err = c.client.R(). + SetContext(ctx). + SetPathParam("address", address). + Get(EntityEndpoint + "/" + address) + if err != nil { + return fmt.Errorf("could not get response: %w", err) + } + + if resp.StatusCode() != http.StatusOK { + return fmt.Errorf("could not get response: %s", resp.Status()) + } + return nil + }, retry.WithMax(time.Second)) + if err != nil { + return false, fmt.Errorf("could not get response: %w", err) + } + + // address has been found, let's screen it. + c.registrationCache.Set(address, struct{}{}) + + risk := fastjson.GetString(resp.Body(), "risk") + return slices.Contains(c.riskLevels, risk), nil +} + +// registerAddress registers an address in the case that we try and screen for a nonexistent address. +func (c *clientImpl) registerAddress(ctx context.Context, address string) error { + payload := map[string]interface{}{ + "address": address, + } + res, err := c.client.R().SetContext(ctx).SetBody(payload).Post(EntityEndpoint) + if err != nil { + return fmt.Errorf("could not register address: %w", err) + } + if res.IsError() { + return fmt.Errorf("could not register address: %s", res.Status()) + } + + return nil +} + +var _ Client = &clientImpl{} diff --git a/contrib/screener-api/chainalysis/doc.go b/contrib/screener-api/chainalysis/doc.go new file mode 100644 index 0000000000..85198fc3d1 --- /dev/null +++ b/contrib/screener-api/chainalysis/doc.go @@ -0,0 +1,3 @@ +// Package chainalysis contains the implementation of the Chainalysis API client. +// this implementation is incomplete, but it is a good starting point. +package chainalysis diff --git a/contrib/screener-api/client/client.go b/contrib/screener-api/client/client.go index eec18e3307..aabc852f6d 100644 --- a/contrib/screener-api/client/client.go +++ b/contrib/screener-api/client/client.go @@ -20,7 +20,7 @@ import ( // ScreenerClient is an interface for the Screener API. type ScreenerClient interface { - ScreenAddress(ctx context.Context, ruleset, address string) (blocked bool, err error) + ScreenAddress(ctx context.Context, address string) (blocked bool, err error) BlacklistAddress(ctx context.Context, appsecret string, appid string, body BlackListBody) (string, error) } @@ -45,40 +45,34 @@ type blockedResponse struct { Blocked bool `json:"risk"` } -// ScreenAddress checks if an address is blocked by the screener. -func (c clientImpl) ScreenAddress(ctx context.Context, ruleset, address string) (bool, error) { +type notFoundResponse struct { + Message string `json:"message"` +} + +// ScreenAddress checks if an address is blocked by the screener API. +func (c clientImpl) ScreenAddress(ctx context.Context, address string) (bool, error) { var blockedRes blockedResponse resp, err := c.rClient.R(). SetContext(ctx). SetResult(&blockedRes). - Get(fmt.Sprintf("/%s/address/%s", ruleset, address)) + Get("/address/" + address) if err != nil { return false, fmt.Errorf("error from server: %s: %w", resp.Status(), err) } if resp.IsError() { - return false, fmt.Errorf("error from server: %s", resp.Status()) + // The address was not found + if err := json.Unmarshal(resp.Body(), ¬FoundResponse{}); err == nil { + return false, nil + } + + return false, fmt.Errorf("error from server: %s %w", resp, err) } return blockedRes.Blocked, nil } -// BlackListBody is the json payload that represents a blacklisted address. -type BlackListBody struct { - Type string `json:"type"` - ID string `json:"id"` - Data string `json:"data"` - Address string `json:"address"` - Network string `json:"network"` - Tag string `json:"tag"` - Remark string `json:"remark"` -} - -type blacklistResponse struct { - Status string `json:"status"` - Error string `json:"error"` -} - +// BlacklistAddress blacklists an address with the screener API. func (c clientImpl) BlacklistAddress(ctx context.Context, appsecret string, appid string, body BlackListBody) (string, error) { var blacklistRes blacklistResponse @@ -118,6 +112,22 @@ func (c clientImpl) BlacklistAddress(ctx context.Context, appsecret string, appi return blacklistRes.Status, nil } +// BlackListBody is the json payload that represents a blacklisted address. +type BlackListBody struct { + Type string `json:"type"` + ID string `json:"id"` + Data string `json:"data"` + Address string `json:"address"` + Network string `json:"network"` + Tag string `json:"tag"` + Remark string `json:"remark"` +} + +type blacklistResponse struct { + Status string `json:"status"` + Error string `json:"error"` +} + // GenerateSignature generates a signature for the request. func GenerateSignature( secret, @@ -137,10 +147,14 @@ func NewNoOpClient() (ScreenerClient, error) { type noOpClient struct{} -func (n noOpClient) ScreenAddress(_ context.Context, _, _ string) (bool, error) { +func (n noOpClient) ScreenAddress(_ context.Context, _ string) (bool, error) { return false, nil } +func (n noOpClient) RegisterAddress(_ context.Context, _ string) error { + return nil +} + func (n noOpClient) BlacklistAddress(_ context.Context, _ string, _ string, _ BlackListBody) (string, error) { return "", nil } diff --git a/contrib/screener-api/cmd/cmd.go b/contrib/screener-api/cmd/cmd.go index 84f7e4bba6..ef795cb126 100644 --- a/contrib/screener-api/cmd/cmd.go +++ b/contrib/screener-api/cmd/cmd.go @@ -3,6 +3,7 @@ package cmd import ( "fmt" + "github.com/synapsecns/sanguine/core/commandline" "github.com/synapsecns/sanguine/core/config" "github.com/synapsecns/sanguine/core/metrics" @@ -21,7 +22,7 @@ func Start(args []string, buildInfo config.BuildInfo) { // nolint:wrapcheck return metrics.Setup(c.Context, buildInfo) } - app.Commands = cli.Commands{screenerCommand, splitterCommand} + app.Commands = cli.Commands{screenerCommand} shellCommand := commandline.GenerateShellCommand(app.Commands) app.Commands = append(app.Commands, shellCommand) app.Action = shellCommand.Action diff --git a/contrib/screener-api/cmd/commands.go b/contrib/screener-api/cmd/commands.go index 62ff294402..869a96c41c 100644 --- a/contrib/screener-api/cmd/commands.go +++ b/contrib/screener-api/cmd/commands.go @@ -2,12 +2,13 @@ package cmd import ( "fmt" + "os" + "github.com/synapsecns/sanguine/contrib/screener-api/config" "github.com/synapsecns/sanguine/contrib/screener-api/screener" "github.com/synapsecns/sanguine/core/metrics" "github.com/urfave/cli/v2" "gopkg.in/yaml.v2" - "os" ) var fileFlag = &cli.StringFlag{ @@ -54,21 +55,3 @@ var outDirFlag = &cli.StringFlag{ Name: "out-dir", Usage: "Specify the path to the output directory where split CSV files will be saved. Example: --out-dir /path/to/output", } - -var splitterCommand = &cli.Command{ - Name: "splitter", - Usage: "splitter", - Flags: []cli.Flag{inFileFlag, outDirFlag}, - Description: "takes a csv and splits it into many out csvs", - Action: func(context *cli.Context) error { - inFile := context.String(inFileFlag.Name) - outFile := context.String(outDirFlag.Name) - - _, err := screener.SplitAndWriteCSV(inFile, outFile) - if err != nil { - return fmt.Errorf("failed to split csv: %w", err) - } - - return nil - }, -} diff --git a/contrib/screener-api/config/config.go b/contrib/screener-api/config/config.go index 4b5bb10283..f7d38e3d8c 100644 --- a/contrib/screener-api/config/config.go +++ b/contrib/screener-api/config/config.go @@ -1,64 +1,28 @@ package config -import "time" - // Config is the configuration for the screener. type Config struct { // AppSecret is the app secret AppSecret string `yaml:"app-secret"` // AppID is the app id AppID string `yaml:"app-id"` - // TRMKey is the api key for trmlabs - TRMKey string `yaml:"trm-key"` - // Rules of [caller_type]->risk_type - Rulesets map[string]RulesetConfig `yaml:"rulesets"` + // ChainalysisKey is the api key for chainalysis + ChainalysisKey string `yaml:"chainalysis-key"` + // ChainalysisURL is the url for chainalysis + ChainalysisURL string `yaml:"chainalysis-url"` // BlacklistURL is the url to the blacklist file - // this is appplied to all rules and cannot be overridden + // this is applied to all rules and cannot be overridden BlacklistURL string `yaml:"blacklist-url"` - // CacheTime is the time to cache results for (in seconds) - // can be overridden per rulesets - CacheTime int `yaml:"cache-time"` // Port is the port to listen on Port int `yaml:"port"` // Database is the database configuration Database DatabaseConfig `yaml:"database"` - // VolumeThresholds is the volume thresholds for each risk type - VolumeThresholds []VolumeThreshold `yaml:"volumeThresholds"` - // TODO: This HAS to be re-structured somehow + // Severities are the severity levels for each address we want to screen + RiskLevels []string `yaml:"risk-levels"` // Whitelist is a list of addresses to whitelist Whitelist []string `yaml:"whitelist"` } -// VolumeThreshold defines thresholds for different risk categories and types. -type VolumeThreshold struct { - Category string `yaml:"category"` - TypeOfRisk string `yaml:"typeOfRisk"` - Incoming float64 `yaml:"incoming"` - Outgoing float64 `yaml:"outgoing"` -} - -// GetCacheTime gets how long to use the cache for a given ruleset. -func (c Config) GetCacheTime(rulset string) time.Duration { - ruleset, hasRuleset := c.Rulesets[rulset] - if !hasRuleset { - return time.Duration(c.CacheTime) * time.Second - } - - if ruleset.CacheTime != nil { - return time.Duration(*ruleset.CacheTime) * time.Second - } - - return time.Duration(c.CacheTime) * time.Second -} - -// RulesetConfig is the config for each given ruleset. -type RulesetConfig struct { - // Filename is the filename of the ruleset - Filename string `json:"filename"` - // CacheTime (in seconds) - CacheTime *int `json:"cache-time"` -} - // DatabaseConfig represents the configuration for the database. type DatabaseConfig struct { Type string `yaml:"type"` diff --git a/contrib/screener-api/db/db.go b/contrib/screener-api/db/db.go index f7bc78d33a..b7d55b7fc9 100644 --- a/contrib/screener-api/db/db.go +++ b/contrib/screener-api/db/db.go @@ -4,9 +4,6 @@ package db import ( "context" "errors" - "time" - - "github.com/synapsecns/sanguine/contrib/screener-api/trmlabs" ) // BlacklistedAddressWriterDB provides methods to write blacklisted addresses to the database. @@ -27,27 +24,10 @@ type BlacklistedAddressDB interface { BlacklistedAddressReaderDB } -// RuleWriterDB is the interface for writing rules to the database. -type RuleWriterDB interface { - PutAddressIndicators(ctx context.Context, address string, riskIndicator []trmlabs.AddressRiskIndicator) error -} - -// RuleReaderDB is the interface for reading rules from the database. -type RuleReaderDB interface { - GetAddressIndicators(ctx context.Context, address string, since time.Time) ([]trmlabs.AddressRiskIndicator, error) -} - -// RuleDB is the interface for reading and writing rules to the database. -type RuleDB interface { - RuleWriterDB - RuleReaderDB -} - // DB is the general database interface for the screener-api. type DB interface { BlacklistedAddressDB - RuleDB } -// ErrNoAddressNotCached is returned when an address is not cached. -var ErrNoAddressNotCached = errors.New("address not cached") +// ErrNoAddressNotFound is returned when an address is not found. +var ErrNoAddressNotFound = errors.New("record not found") diff --git a/contrib/screener-api/db/db_test.go b/contrib/screener-api/db/db_test.go index bf93dfef85..d441ead9fa 100644 --- a/contrib/screener-api/db/db_test.go +++ b/contrib/screener-api/db/db_test.go @@ -1,72 +1,11 @@ package db_test import ( - "time" - "github.com/brianvoe/gofakeit/v6" "github.com/synapsecns/sanguine/contrib/screener-api/db" - "github.com/synapsecns/sanguine/contrib/screener-api/trmlabs" "gorm.io/gorm" ) -func (d *DBSuite) TestEmpty() { - d.RunOnAllDBs(func(testDB db.DB) { - testAddress := gofakeit.BitcoinAddress() - - // 5 mins ago - _, err := testDB.GetAddressIndicators(d.GetTestContext(), testAddress, time.Now().Add(time.Minute*-5)) - d.Require().Error(err, db.ErrNoAddressNotCached) - - err = testDB.PutAddressIndicators(d.GetTestContext(), testAddress, []trmlabs.AddressRiskIndicator{}) - d.Require().NoError(err) - - // 5 mins ago - _, err = testDB.GetAddressIndicators(d.GetTestContext(), testAddress, time.Now().Add(time.Minute*-5)) - d.Require().NoError(err) - - // also make sure expiry works correctly, this should error - _, err = testDB.GetAddressIndicators(d.GetTestContext(), testAddress, time.Now()) - d.Require().Error(err, db.ErrNoAddressNotCached) - }) -} - -func (d *DBSuite) TestAddressUpdate() { - d.RunOnAllDBs(func(testDB db.DB) { - testAddress := gofakeit.BitcoinAddress() - - // 5 mins ago - _, err := testDB.GetAddressIndicators(d.GetTestContext(), testAddress, time.Now().Add(time.Minute*-5)) - d.Require().Error(err, db.ErrNoAddressNotCached) - - err = testDB.PutAddressIndicators(d.GetTestContext(), testAddress, []trmlabs.AddressRiskIndicator{}) - d.Require().NoError(err) - - // 5 mins ago - _, err = testDB.GetAddressIndicators(d.GetTestContext(), testAddress, time.Now().Add(time.Minute*-5)) - d.Require().NoError(err) - - // also make sure expiry works correctly, this should error - _, err = testDB.GetAddressIndicators(d.GetTestContext(), testAddress, time.Now()) - d.Require().Error(err, db.ErrNoAddressNotCached) - - // update the address - err = testDB.PutAddressIndicators(d.GetTestContext(), testAddress, []trmlabs.AddressRiskIndicator{ - { - Category: "test", - }, - }) - d.Require().NoError(err) - - // 5 mins ago - _, err = testDB.GetAddressIndicators(d.GetTestContext(), testAddress, time.Now().Add(time.Minute*-5)) - d.Require().NoError(err) - - // also make sure expiry works correctly, this should error - _, err = testDB.GetAddressIndicators(d.GetTestContext(), testAddress, time.Now()) - d.Require().Error(err, db.ErrNoAddressNotCached) - }) -} - func (d *DBSuite) TestBlacklist() { d.RunOnAllDBs(func(testDB db.DB) { testAddress := gofakeit.BitcoinAddress() diff --git a/contrib/screener-api/db/models.go b/contrib/screener-api/db/models.go index 383bce26fd..7584d5c235 100644 --- a/contrib/screener-api/db/models.go +++ b/contrib/screener-api/db/models.go @@ -2,17 +2,7 @@ package db import ( - "bytes" - "database/sql" - "database/sql/driver" - "encoding/json" - "errors" - "fmt" - "strings" "time" - - "github.com/synapsecns/sanguine/contrib/screener-api/trmlabs" - "gorm.io/gorm/schema" ) // BlacklistedAddress is a blacklisted address. @@ -28,83 +18,3 @@ type BlacklistedAddress struct { Tag string `gorm:"column:tag" json:"tag"` Remark string `gorm:"column:remark" json:"remark"` } - -// AddressIndicators is the address indicators for a given address. -type AddressIndicators struct { - CreatedAt time.Time - UpdatedAt time.Time - // Address is the address to be screened - Address string `gorm:"column:address;primary_key"` - // RiskIndicators is the list of categories for the address - Indicators addressRiskIndicators `gorm:"column:indicators"` -} - -// addressRiskIndicator is a risk indicator for an address -// it wraps the trmlabs.AddressRiskIndicator struct. -type addressRiskIndicators []trmlabs.AddressRiskIndicator - -// GormDataType returns the data type for the column. -func (a addressRiskIndicators) GormDataType() string { - return "json" -} - -// Value return json value, implement driver.Valuer interface. -func (a addressRiskIndicators) Value() (driver.Value, error) { - if a == nil { - return nil, nil - } - ba, err := json.Marshal(a) - return string(ba), err -} - -// Scan scan value into Jsonb, implements sql.Scanner interface. -func (a *addressRiskIndicators) Scan(val interface{}) error { - if val == nil { - *a = make(addressRiskIndicators, 0) - return nil - } - var ba []byte - switch v := val.(type) { - case []byte: - ba = v - case string: - ba = []byte(v) - default: - return errors.New(fmt.Sprint("Failed to unmarshal JSONB value:", val)) - } - t := addressRiskIndicators{} - rd := bytes.NewReader(ba) - decoder := json.NewDecoder(rd) - decoder.UseNumber() - err := decoder.Decode(&t) - *a = t - //nolint: wrapcheck - return err -} - -// ToTRMLabs converts the address risk indicators to trmlabs.AddressRiskIndicator. -func (a addressRiskIndicators) ToTRMLabs() (res []trmlabs.AddressRiskIndicator) { - if a == nil { - return nil - } - - res = make([]trmlabs.AddressRiskIndicator, len(a)) - copy(res, a) - - return res -} - -// MakeRecord creates a new address indicators record. -func MakeRecord(address string, records []trmlabs.AddressRiskIndicator) *AddressIndicators { - indicators := make(addressRiskIndicators, len(records)) - copy(indicators, records) - - return &AddressIndicators{ - Address: strings.ToLower(address), - Indicators: indicators, - } -} - -var _ schema.GormDataTypeInterface = addressRiskIndicators{} -var _ driver.Value = addressRiskIndicators{} -var _ sql.Scanner = &addressRiskIndicators{} diff --git a/contrib/screener-api/db/sql/base/base.go b/contrib/screener-api/db/sql/base/base.go index 747e9b92bc..ca9f97db93 100644 --- a/contrib/screener-api/db/sql/base/base.go +++ b/contrib/screener-api/db/sql/base/base.go @@ -5,11 +5,8 @@ import ( "context" "errors" "fmt" - "strings" - "time" "github.com/synapsecns/sanguine/contrib/screener-api/db" - "github.com/synapsecns/sanguine/contrib/screener-api/trmlabs" "github.com/synapsecns/sanguine/core/metrics" "gorm.io/gorm" "gorm.io/gorm/clause" @@ -29,7 +26,6 @@ func NewStore(db *gorm.DB, metrics metrics.Handler) *Store { // GetAllModels gets all models to migrate. // see: https://medium.com/@SaifAbid/slice-interfaces-8c78f8b6345d for an explanation of why we can't do this at initialization time func GetAllModels() (allModels []interface{}) { - allModels = append(allModels, &db.AddressIndicators{}) allModels = append(allModels, &db.BlacklistedAddress{}) return allModels @@ -44,7 +40,7 @@ func (s *Store) GetBlacklistedAddress(ctx context.Context, address string) (*db. if err := s.db.WithContext(ctx).Where("address = ?", address). First(&blacklistedAddress).Error; err != nil { if errors.Is(err, gorm.ErrRecordNotFound) { - return nil, err + return nil, db.ErrNoAddressNotFound } return nil, fmt.Errorf("failed to get blacklisted address: %w", err) } @@ -89,39 +85,3 @@ func (s *Store) DeleteBlacklistedAddress(ctx context.Context, id string) error { } return nil } - -// GetAddressIndicators gets the address indicators for the given address. -func (s *Store) GetAddressIndicators(ctx context.Context, address string, since time.Time) ([]trmlabs.AddressRiskIndicator, error) { - var addressIndicators db.AddressIndicators - result := s.db.WithContext(ctx).Where(&db.AddressIndicators{ - Address: strings.ToLower(address), - }).First(&addressIndicators) - if result.Error != nil { - if errors.Is(result.Error, gorm.ErrRecordNotFound) { - return nil, db.ErrNoAddressNotCached - } - return nil, result.Error - } - - // if the address indicators are not found, return nil - if addressIndicators.UpdatedAt.Before(since) { - return nil, db.ErrNoAddressNotCached - } - - return addressIndicators.Indicators.ToTRMLabs(), nil -} - -// PutAddressIndicators puts the address indicators for the given address. -func (s *Store) PutAddressIndicators(ctx context.Context, address string, riskIndicator []trmlabs.AddressRiskIndicator) error { - dbTx := s.db.WithContext(ctx).Model(&db.AddressIndicators{}). - Clauses(clause.OnConflict{ - Columns: []clause.Column{ - {Name: addressName}, - }, - DoUpdates: clause.AssignmentColumns([]string{addressName, indicatorName}), - }).Create(db.MakeRecord(address, riskIndicator)) - if dbTx.Error != nil { - return fmt.Errorf("failed to store address indicators: %w", dbTx.Error) - } - return nil -} diff --git a/contrib/screener-api/db/sql/base/namer.go b/contrib/screener-api/db/sql/base/namer.go index 302873c27d..3c9a2e7991 100644 --- a/contrib/screener-api/db/sql/base/namer.go +++ b/contrib/screener-api/db/sql/base/namer.go @@ -8,8 +8,6 @@ func init() { namer := dbcommon.NewNamer(GetAllModels()) addressName = namer.GetConsistentName("Address") - indicatorName = namer.GetConsistentName("Indicators") - typeName = namer.GetConsistentName("Type") idName = namer.GetConsistentName("ID") dataName = namer.GetConsistentName("Data") @@ -19,9 +17,7 @@ func init() { } var ( - addressName string - indicatorName string - + addressName string typeName string idName string dataName string diff --git a/contrib/screener-api/db/sql/mysql/store.go b/contrib/screener-api/db/sql/mysql/store.go index fbfd5b58e9..2be94d0ab1 100644 --- a/contrib/screener-api/db/sql/mysql/store.go +++ b/contrib/screener-api/db/sql/mysql/store.go @@ -64,5 +64,4 @@ var MaxIdleConns = 10 // NamingStrategy is for table prefixes. var NamingStrategy = schema.NamingStrategy{} -var _ db.RuleDB = &Store{} var _ db.BlacklistedAddressDB = &Store{} diff --git a/contrib/screener-api/db/sql/sqlite/sqlite.go b/contrib/screener-api/db/sql/sqlite/sqlite.go index 7b52ef66cc..eaa303aff8 100644 --- a/contrib/screener-api/db/sql/sqlite/sqlite.go +++ b/contrib/screener-api/db/sql/sqlite/sqlite.go @@ -4,10 +4,10 @@ import ( "context" "errors" "fmt" - "github.com/synapsecns/sanguine/contrib/screener-api/db" - "github.com/synapsecns/sanguine/contrib/screener-api/db/sql/base" "os" + "github.com/synapsecns/sanguine/contrib/screener-api/db/sql/base" + "github.com/ipfs/go-log" common_base "github.com/synapsecns/sanguine/core/dbcommon" "github.com/synapsecns/sanguine/core/metrics" @@ -59,5 +59,3 @@ func NewSqliteStore(parentCtx context.Context, dbPath string, handler metrics.Ha } return &Store{base.NewStore(gdb, handler)}, nil } - -var _ db.RuleDB = &Store{} diff --git a/contrib/screener-api/docs/docs.go b/contrib/screener-api/docs/docs.go index 752cecc4c9..d2a2278d92 100644 --- a/contrib/screener-api/docs/docs.go +++ b/contrib/screener-api/docs/docs.go @@ -74,64 +74,31 @@ const docTemplate = `{ "responses": {} } }, - "/screen/{ruleset}/{address}": { + "/screen/{address}": { "get": { - "description": "Assess the risk associated with a given address using specified rulesets.", + "description": "Screen an address using Chainalysis API to determine if it's high risk", "consumes": [ + "application/json", "application/json" ], "produces": [ + "application/json", "application/json" ], "tags": [ - "address" + "Address Screening" ], - "summary": "Screen address for risk", + "summary": "Screen an address for risk", "parameters": [ - { - "type": "string", - "description": "Ruleset to use for screening the address", - "name": "ruleset", - "in": "query", - "required": true - }, { "type": "string", "description": "Address to be screened", "name": "address", - "in": "query", + "in": "path", "required": true } ], - "responses": { - "200": { - "description": "Returns the risk assessment result", - "schema": { - "type": "object", - "additionalProperties": { - "type": "boolean" - } - } - }, - "400": { - "description": "Returns error if the required parameters are missing or invalid", - "schema": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - }, - "500": { - "description": "Returns error if there are problems processing the indicators", - "schema": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - } + "responses": {} } } }, diff --git a/contrib/screener-api/docs/swagger.json b/contrib/screener-api/docs/swagger.json index 5132742779..3747345ed8 100644 --- a/contrib/screener-api/docs/swagger.json +++ b/contrib/screener-api/docs/swagger.json @@ -63,64 +63,31 @@ "responses": {} } }, - "/screen/{ruleset}/{address}": { + "/screen/{address}": { "get": { - "description": "Assess the risk associated with a given address using specified rulesets.", + "description": "Screen an address using Chainalysis API to determine if it's high risk", "consumes": [ + "application/json", "application/json" ], "produces": [ + "application/json", "application/json" ], "tags": [ - "address" + "Address Screening" ], - "summary": "Screen address for risk", + "summary": "Screen an address for risk", "parameters": [ - { - "type": "string", - "description": "Ruleset to use for screening the address", - "name": "ruleset", - "in": "query", - "required": true - }, { "type": "string", "description": "Address to be screened", "name": "address", - "in": "query", + "in": "path", "required": true } ], - "responses": { - "200": { - "description": "Returns the risk assessment result", - "schema": { - "type": "object", - "additionalProperties": { - "type": "boolean" - } - } - }, - "400": { - "description": "Returns error if the required parameters are missing or invalid", - "schema": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - }, - "500": { - "description": "Returns error if there are problems processing the indicators", - "schema": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - } + "responses": {} } } }, diff --git a/contrib/screener-api/docs/swagger.yaml b/contrib/screener-api/docs/swagger.yaml index 9d108f9ce2..808f7aabbf 100644 --- a/contrib/screener-api/docs/swagger.yaml +++ b/contrib/screener-api/docs/swagger.yaml @@ -64,45 +64,24 @@ paths: - application/json responses: {} summary: blacklist an address - /screen/{ruleset}/{address}: + /screen/{address}: get: consumes: - application/json - description: Assess the risk associated with a given address using specified - rulesets. + - application/json + description: Screen an address using Chainalysis API to determine if it's high + risk parameters: - - description: Ruleset to use for screening the address - in: query - name: ruleset - required: true - type: string - description: Address to be screened - in: query + in: path name: address required: true type: string produces: - application/json - responses: - "200": - description: Returns the risk assessment result - schema: - additionalProperties: - type: boolean - type: object - "400": - description: Returns error if the required parameters are missing or invalid - schema: - additionalProperties: - type: string - type: object - "500": - description: Returns error if there are problems processing the indicators - schema: - additionalProperties: - type: string - type: object - summary: Screen address for risk + - application/json + responses: {} + summary: Screen an address for risk tags: - - address + - Address Screening swagger: "2.0" diff --git a/contrib/screener-api/go.mod b/contrib/screener-api/go.mod index 4667f36476..66256e68a6 100644 --- a/contrib/screener-api/go.mod +++ b/contrib/screener-api/go.mod @@ -11,11 +11,11 @@ replace ( require ( github.com/Flaque/filet v0.0.0-20201012163910-45f684403088 + github.com/TwiN/gocache/v2 v2.2.2 github.com/brianvoe/gofakeit/v6 v6.27.0 github.com/dubonzi/otelresty v1.2.0 github.com/gin-gonic/gin v1.10.0 github.com/go-resty/resty/v2 v2.13.1 - github.com/gocarina/gocsv v0.0.0-20240520201108-78e41c74b4b1 github.com/google/uuid v1.6.0 github.com/ipfs/go-log v1.0.5 github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5 @@ -25,9 +25,10 @@ require ( github.com/swaggo/swag v1.16.3 github.com/synapsecns/sanguine/core v0.0.0-00010101000000-000000000000 github.com/urfave/cli/v2 v2.27.2 + github.com/valyala/fastjson v1.6.4 go.opentelemetry.io/otel v1.27.0 go.opentelemetry.io/otel/trace v1.27.0 - golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 + golang.org/x/sync v0.7.0 gopkg.in/yaml.v2 v2.4.0 gorm.io/driver/mysql v1.5.6 gorm.io/driver/sqlite v1.5.6 @@ -39,6 +40,7 @@ require ( github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect github.com/ImVexed/fasturl v0.0.0-20230304231329-4e41488060f3 // indirect github.com/KyleBanks/depth v1.2.1 // indirect + github.com/LK4d4/trylock v0.0.0-20191027065348-ff7e133a5c54 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 // indirect github.com/ProtonMail/go-crypto v1.0.0 // indirect @@ -174,9 +176,9 @@ require ( go.uber.org/zap v1.27.0 // indirect golang.org/x/arch v0.8.0 // indirect golang.org/x/crypto v0.24.0 // indirect + golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 // indirect golang.org/x/mod v0.18.0 // indirect golang.org/x/net v0.26.0 // indirect - golang.org/x/sync v0.7.0 // indirect golang.org/x/sys v0.21.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/tools v0.22.0 // indirect diff --git a/contrib/screener-api/go.sum b/contrib/screener-api/go.sum index 63267dc945..4b6741c579 100644 --- a/contrib/screener-api/go.sum +++ b/contrib/screener-api/go.sum @@ -48,6 +48,10 @@ github.com/ImVexed/fasturl v0.0.0-20230304231329-4e41488060f3 h1:ClzzXMDDuUbWfNN github.com/ImVexed/fasturl v0.0.0-20230304231329-4e41488060f3/go.mod h1:we0YA5CsBbH5+/NUzC/AlMmxaDtWlXeNsqrwXjTzmzA= github.com/KyleBanks/depth v1.2.1 h1:5h8fQADFrWtarTdtDudMmGsC7GPbOAu6RVB3ffsVFHc= github.com/KyleBanks/depth v1.2.1/go.mod h1:jzSb9d0L43HxTQfT+oSA1EEp2q+ne2uh6XgeJcm8brE= +github.com/LK4D4/trylock v0.0.0-20191027065348-ff7e133a5c54 h1:sg9CWNOhr58hMGmJ0q7x7jQ/B1RK/GyHNmeaYCJos9M= +github.com/LK4D4/trylock v0.0.0-20191027065348-ff7e133a5c54/go.mod h1:uHbOgfPowb74TKlV4AR5Az2haG6evxzM8Lmj1Xil25E= +github.com/LK4d4/trylock v0.0.0-20191027065348-ff7e133a5c54 h1:mD+/7fgGmTO9w3g8xYfovo7GBSkyjkmQiacVj9VPx+0= +github.com/LK4d4/trylock v0.0.0-20191027065348-ff7e133a5c54/go.mod h1:sAFuaugbNEiH1k50YhFNuD2+Gwga8oetKMT2RSFpglU= github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= @@ -55,6 +59,8 @@ github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEV github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk= github.com/ProtonMail/go-crypto v1.0.0 h1:LRuvITjQWX+WIfr930YHG2HNfjR1uOfyf5vE0kC2U78= github.com/ProtonMail/go-crypto v1.0.0/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= +github.com/TwiN/gocache/v2 v2.2.2 h1:4HToPfDV8FSbaYO5kkbhLpEllUYse5rAf+hVU/mSsuI= +github.com/TwiN/gocache/v2 v2.2.2/go.mod h1:WfIuwd7GR82/7EfQqEtmLFC3a2vqaKbs4Pe6neB7Gyc= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= @@ -219,8 +225,6 @@ github.com/go-resty/resty/v2 v2.13.1 h1:x+LHXBI2nMB1vqndymf26quycC4aggYJ7DECYbiz github.com/go-resty/resty/v2 v2.13.1/go.mod h1:GznXlLxkq6Nh4sU59rPmUw3VtgpO3aS96ORAI6Q7d+0= github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc= github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= -github.com/gocarina/gocsv v0.0.0-20240520201108-78e41c74b4b1 h1:FWNFq4fM1wPfcK40yHE5UO3RUdSNPaBC+j3PokzA6OQ= -github.com/gocarina/gocsv v0.0.0-20240520201108-78e41c74b4b1/go.mod h1:5YoVOkjYAQumqlV356Hj3xeYh4BdZuLE0/nRkf2NKkI= 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= @@ -514,6 +518,8 @@ github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.1/go.mod h1:FXrjpUJDqwqof github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli/v2 v2.27.2 h1:6e0H+AkS+zDckwPCUrZkKX38mRaau4nL2uipkJpbkcI= github.com/urfave/cli/v2 v2.27.2/go.mod h1:g0+79LmHHATl7DAcHO99smiR/T7uGLw84w8Y42x+4eM= +github.com/valyala/fastjson v1.6.4 h1:uAUNq9Z6ymTgGhcm0UynUAB6tlbakBrz6CQFax3BXVQ= +github.com/valyala/fastjson v1.6.4/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLrsQns1aXY= github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= diff --git a/contrib/screener-api/screener/export_test.go b/contrib/screener-api/screener/export_test.go index b03d72db6e..5c76116bc2 100644 --- a/contrib/screener-api/screener/export_test.go +++ b/contrib/screener-api/screener/export_test.go @@ -4,14 +4,14 @@ import ( "context" "fmt" + "github.com/synapsecns/sanguine/contrib/screener-api/chainalysis" "github.com/synapsecns/sanguine/contrib/screener-api/config" - "github.com/synapsecns/sanguine/contrib/screener-api/trmlabs" "github.com/synapsecns/sanguine/core/metrics" ) type TestScreener interface { Screener - SetClient(client trmlabs.Client) + SetClient(client chainalysis.Client) } func NewTestScreener(ctx context.Context, cfg config.Config, metricHandler metrics.Handler) (_ TestScreener, err error) { @@ -28,10 +28,6 @@ func NewTestScreener(ctx context.Context, cfg config.Config, metricHandler metri return ts, nil } -func (s *screenerImpl) SetClient(client trmlabs.Client) { +func (s *screenerImpl) SetClient(client chainalysis.Client) { s.client = client } - -func SplitCSV(file string) (map[string][]Set, error) { - return splitCSV(file) -} diff --git a/contrib/screener-api/screener/internal/export_test.go b/contrib/screener-api/screener/internal/export_test.go deleted file mode 100644 index c9c24b083f..0000000000 --- a/contrib/screener-api/screener/internal/export_test.go +++ /dev/null @@ -1,17 +0,0 @@ -package internal - -type TestRulesetManager interface { - RulesetManager - Rulesets() map[string]map[string]bool -} - -func NewTestRulesetManager(rulesets map[string]map[string]bool) TestRulesetManager { - //nolint: forcetypeassert - return NewRulesetManager(rulesets).(TestRulesetManager) -} - -func (rm *rulesetManager) Rulesets() map[string]map[string]bool { - return rm.rulesets -} - -var _ TestRulesetManager = &rulesetManager{} diff --git a/contrib/screener-api/screener/internal/risk.go b/contrib/screener-api/screener/internal/risk.go deleted file mode 100644 index 4c5b3c14ee..0000000000 --- a/contrib/screener-api/screener/internal/risk.go +++ /dev/null @@ -1,117 +0,0 @@ -// Package internal provides internal functionality for the screener-api. -package internal - -import ( - "fmt" - "strconv" - "strings" - - "github.com/synapsecns/sanguine/contrib/screener-api/config" - "github.com/synapsecns/sanguine/contrib/screener-api/trmlabs" -) - -// rulesetManager manages the rulesets. -type rulesetManager struct { - rulesets map[string]map[string]bool -} - -// RulesetManager interface defines methods to work with rulesets. -type RulesetManager interface { - // GetRuleset returns a RuleSet for the specified caller type. - GetRuleset(rulesetName string) RuleSet - // AddRuleset adds a new ruleset to the manager. - AddRuleset(rulesetName string, rules map[string]bool) error -} - -func (rm *rulesetManager) AddRuleset(rulesetName string, rules map[string]bool) error { - if _, ok := rm.rulesets[rulesetName]; ok { - return fmt.Errorf("ruleset %s already exists", rulesetName) - } - rm.rulesets[rulesetName] = rules - return nil -} - -// NewRulesetManager creates a new rulesetManager with the given rulesets. -func NewRulesetManager(rulesets map[string]map[string]bool) RulesetManager { - if rulesets == nil { - rulesets = make(map[string]map[string]bool) - } - return &rulesetManager{ - rulesets: rulesets, - } -} - -// GetRuleset returns a RuleSet for the specified caller type. -func (rm *rulesetManager) GetRuleset(callerType string) RuleSet { - riskRules, exists := rm.rulesets[callerType] - if !exists { - return nil // or handle this case as per your application logic - } - return NewRuleset(riskRules) -} - -// RuleSet interface defines methods to work with risk rules. -type RuleSet interface { - HasRisk(riskType string) bool - HasAddressIndicators(thresholds []config.VolumeThreshold, riskIndicators ...trmlabs.AddressRiskIndicator) (bool, error) -} - -// CallerRuler implements the RuleSet interface for a specific caller type. -type CallerRuler struct { - riskRules map[string]bool -} - -// NewRuleset creates a new CallerRuler with the given risk rules. -func NewRuleset(riskRules map[string]bool) *CallerRuler { - return &CallerRuler{ - riskRules: riskRules, - } -} - -// HasRisk checks if the specified risk type is present. -func (cr *CallerRuler) HasRisk(riskType string) bool { - return cr.riskRules[riskType] -} - -// HasAddressIndicators returns a list of addressRiskIndicator. -// -//nolint:cyclop -func (cr *CallerRuler) HasAddressIndicators(thresholds []config.VolumeThreshold, riskIndicators ...trmlabs.AddressRiskIndicator) (bool, error) { - // Initialize a variable to track if any indicator is blocked - anyIndicatorBlocked := false - - for _, ri := range riskIndicators { - incoming, err := strconv.ParseFloat(ri.IncomingVolumeUsd, 32) - if err != nil { - return false, fmt.Errorf("could not parse incoming volume: %w", err) - } - - outgoing, err := strconv.ParseFloat(ri.OutgoingVolumeUsd, 32) - if err != nil { - return false, fmt.Errorf("could not parse outgoing volume: %w", err) - } - - // Check against thresholds - for _, threshold := range thresholds { - if strings.EqualFold(ri.Category, threshold.Category) && strings.EqualFold(ri.RiskType, threshold.TypeOfRisk) { - // If either incoming or outgoing volume exceeds the threshold, the indicator is blocked - if (threshold.Incoming > 0 && incoming > threshold.Incoming) || (threshold.Outgoing > 0 && outgoing > threshold.Outgoing) { - anyIndicatorBlocked = true - break // No need to check other thresholds, this indicator is blocked - } - } - } - - if anyIndicatorBlocked { - break // No need to check further indicators, at least one indicator is blocked - } - } - - // Return true if any indicator is blocked, otherwise false - return anyIndicatorBlocked, nil -} - -// MakeParam creates a risk param from the given category and risk type in a standardized format. -func MakeParam(category string, riskType string) string { - return strings.ToLower(fmt.Sprintf("%s_%s", category, riskType)) -} diff --git a/contrib/screener-api/screener/internal/risk_test.go b/contrib/screener-api/screener/internal/risk_test.go deleted file mode 100644 index 986b2b9b5e..0000000000 --- a/contrib/screener-api/screener/internal/risk_test.go +++ /dev/null @@ -1,96 +0,0 @@ -package internal_test - -import ( - "testing" - - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - "github.com/synapsecns/sanguine/contrib/screener-api/config" - "github.com/synapsecns/sanguine/contrib/screener-api/screener/internal" - "github.com/synapsecns/sanguine/contrib/screener-api/trmlabs" -) - -func TestNewRulesetManager(t *testing.T) { - rulesets := make(map[string]map[string]bool) - rulesets["caller1"] = map[string]bool{"risk1": true} - - rm := internal.NewTestRulesetManager(rulesets) - assert.NotNil(t, rm) - //nolint: testifylint - assert.Equal(t, 1, len(rm.Rulesets())) -} - -func TestAddRuleset(t *testing.T) { - rm := internal.NewTestRulesetManager(nil) - - // Add a new ruleset - err := rm.AddRuleset("newRuleset", map[string]bool{"risk1": true}) - require.NoError(t, err) - - // Try to add a ruleset that already exists - err = rm.AddRuleset("newRuleset", map[string]bool{"risk2": true}) - require.Error(t, err) -} - -func TestGetRuleset(t *testing.T) { - rulesets := make(map[string]map[string]bool) - rulesets["existing"] = map[string]bool{"risk1": true} - - rm := internal.NewTestRulesetManager(rulesets) - - // Get an existing ruleset - rs := rm.GetRuleset("existing") - assert.NotNil(t, rs) - - // Get a non-existing ruleset - rs = rm.GetRuleset("nonExisting") - assert.Nil(t, rs) -} - -func TestHasAddressIndicators(t *testing.T) { - riskRules := map[string]bool{ - "category1_risktype1": true, - } - - // Define thresholds for testing - thresholds := []config.VolumeThreshold{ - { - Category: "Category1", - TypeOfRisk: "RiskType1", - Incoming: 1500, // Set thresholds to allow the test cases to pass or fail as expected - Outgoing: 800, - }, - } - - cr := internal.NewRuleset(riskRules) - - // Test case where the indicator meets risk rules - indicators := []trmlabs.AddressRiskIndicator{ - {IncomingVolumeUsd: "1501", OutgoingVolumeUsd: "500", Category: "Category1", RiskType: "RiskType1"}, - } - result, err := cr.HasAddressIndicators(thresholds, indicators...) - require.NoError(t, err) - assert.True(t, result) - - // Test case where the indicator does not meet risk rules - indicators = []trmlabs.AddressRiskIndicator{ - {IncomingVolumeUsd: "100", OutgoingVolumeUsd: "50", Category: "Category2", RiskType: "RiskType2"}, - } - result, err = cr.HasAddressIndicators(thresholds, indicators...) - require.NoError(t, err) - assert.False(t, result) - - // Test case with invalid incoming volume - indicators = []trmlabs.AddressRiskIndicator{ - {IncomingVolumeUsd: "invalid", OutgoingVolumeUsd: "500", Category: "Category1", RiskType: "RiskType1"}, - } - _, err = cr.HasAddressIndicators(thresholds, indicators...) - require.Error(t, err) - - // Test case with invalid outgoing volume - indicators = []trmlabs.AddressRiskIndicator{ - {IncomingVolumeUsd: "1000", OutgoingVolumeUsd: "invalid", Category: "Category1", RiskType: "RiskType1"}, - } - _, err = cr.HasAddressIndicators(thresholds, indicators...) - require.Error(t, err) -} diff --git a/contrib/screener-api/screener/screener.go b/contrib/screener-api/screener/screener.go index 82527fdc88..2b81bc8385 100644 --- a/contrib/screener-api/screener/screener.go +++ b/contrib/screener-api/screener/screener.go @@ -13,16 +13,18 @@ import ( "sync" "time" + "github.com/synapsecns/sanguine/core/mapmutex" + "golang.org/x/sync/errgroup" + "github.com/gin-gonic/gin" "github.com/gin-gonic/gin/binding" "github.com/ipfs/go-log" + "github.com/synapsecns/sanguine/contrib/screener-api/chainalysis" "github.com/synapsecns/sanguine/contrib/screener-api/client" "github.com/synapsecns/sanguine/contrib/screener-api/config" "github.com/synapsecns/sanguine/contrib/screener-api/db" "github.com/synapsecns/sanguine/contrib/screener-api/db/sql" "github.com/synapsecns/sanguine/contrib/screener-api/docs" - "github.com/synapsecns/sanguine/contrib/screener-api/screener/internal" - "github.com/synapsecns/sanguine/contrib/screener-api/trmlabs" "github.com/synapsecns/sanguine/core" "github.com/synapsecns/sanguine/core/dbcommon" "github.com/synapsecns/sanguine/core/ginhelper" @@ -30,7 +32,6 @@ import ( baseServer "github.com/synapsecns/sanguine/core/server" "go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/trace" - "golang.org/x/exp/slices" swaggerfiles "github.com/swaggo/files" ginSwagger "github.com/swaggo/gin-swagger" @@ -42,16 +43,15 @@ type Screener interface { } type screenerImpl struct { - rulesManager internal.RulesetManager - thresholds []config.VolumeThreshold - db db.DB - router *gin.Engine - metrics metrics.Handler - cfg config.Config - client trmlabs.Client - blacklist []string - blacklistMux sync.RWMutex - whitelist []string + db db.DB + router *gin.Engine + metrics metrics.Handler + cfg config.Config + client chainalysis.Client + whitelist map[string]bool + blacklistCache map[string]bool + blacklistCacheMux sync.RWMutex + requestMux mapmutex.StringMapMutex } var logger = log.Logger("screener") @@ -59,33 +59,27 @@ var logger = log.Logger("screener") // NewScreener creates a new screener. func NewScreener(ctx context.Context, cfg config.Config, metricHandler metrics.Handler) (_ Screener, err error) { screener := screenerImpl{ - metrics: metricHandler, - cfg: cfg, + metrics: metricHandler, + cfg: cfg, + requestMux: mapmutex.NewStringMapMutex(), } docs.SwaggerInfo.Title = "Screener API" docs.SwaggerInfo.Host = fmt.Sprintf("localhost:%d", cfg.Port) - screener.client, err = trmlabs.NewClient(cfg.TRMKey, core.GetEnv("TRM_URL", "https://api.trmlabs.com")) - if err != nil { - return nil, fmt.Errorf("could not create trm client: %w", err) - } - screener.thresholds = cfg.VolumeThresholds + screener.client = chainalysis.NewClient( + cfg.RiskLevels, cfg.ChainalysisKey, core.GetEnv("CHAINALYSIS_URL", cfg.ChainalysisURL)) + screener.blacklistCache = make(map[string]bool) + screener.whitelist = make(map[string]bool) for _, item := range cfg.Whitelist { - screener.whitelist = append(screener.whitelist, strings.ToLower(item)) - } - - screener.rulesManager, err = setupScreener(cfg.Rulesets) - if err != nil { - return nil, fmt.Errorf("could not setup screener: %w", err) + screener.whitelist[strings.ToLower(item)] = true } dbType, err := dbcommon.DBTypeFromString(cfg.Database.Type) if err != nil { return nil, fmt.Errorf("could not get db type: %w", err) } - screener.db, err = sql.Connect(ctx, dbType, cfg.Database.DSN, metricHandler) if err != nil { return nil, fmt.Errorf("could not connect to rules db: %w", err) @@ -93,16 +87,57 @@ func NewScreener(ctx context.Context, cfg config.Config, metricHandler metrics.H screener.router = ginhelper.New(logger) screener.router.Use(screener.metrics.Gin()) - screener.router.Handle(http.MethodGet, "/:ruleset/address/:address", screener.screenAddress) - screener.router.Handle(http.MethodPost, "/api/data/sync", ginhelper.TraceMiddleware(metricHandler.Tracer(), true), screener.authMiddleware(cfg), screener.blacklistAddress) + // Blacklist route + screener.router.POST("/api/data/sync", ginhelper.TraceMiddleware(metricHandler.Tracer(), true), screener.authMiddleware(cfg), screener.blacklistAddress) + + // Screening routes + screener.router.GET("/address/:address", screener.screenAddress) + // deprecated and ruleset is not used, this is for backwards compatibility + screener.router.GET("/:ruleset/address/:address", screener.screenAddress) + + // Swagger routes screener.router.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerfiles.Handler)) + gin.SetMode(gin.ReleaseMode) + return &screener, nil } +const blacklistScreenInterval = 15 * time.Second + +func (s *screenerImpl) Start(ctx context.Context) error { + // TODO: potential race condition here, if the blacklist is not fetched before the first request + // in practice chainalysis will catch + go func() { + // Fetch the blacklist at start. + s.fetchBlacklist(ctx) + + for { + select { + case <-ctx.Done(): + return + case <-time.After(blacklistScreenInterval): + s.fetchBlacklist(ctx) + } + } + }() + + connection := baseServer.Server{} + err := connection.ListenAndServe(ctx, fmt.Sprintf(":%d", s.cfg.Port), s.router) + if err != nil { + return fmt.Errorf("could not start server: %w", err) + } + return nil +} + func (s *screenerImpl) fetchBlacklist(ctx context.Context) { - req, err := http.NewRequestWithContext(ctx, http.MethodGet, s.cfg.BlacklistURL, nil) + req, err := http.NewRequestWithContext( + ctx, + http.MethodGet, + s.cfg.BlacklistURL, + nil, + ) if err != nil { logger.Errorf("could not create blacklist request: %s", err) return @@ -113,7 +148,6 @@ func (s *screenerImpl) fetchBlacklist(ctx context.Context) { logger.Errorf("could not fetch blacklist: %s", err) return } - defer func() { _ = resp.Body.Close() }() @@ -125,12 +159,94 @@ func (s *screenerImpl) fetchBlacklist(ctx context.Context) { return } - s.blacklistMux.Lock() - defer s.blacklistMux.Unlock() - + s.blacklistCacheMux.Lock() + defer s.blacklistCacheMux.Unlock() for _, item := range blacklist { - s.blacklist = append(s.blacklist, strings.ToLower(item)) + s.blacklistCache[strings.ToLower(item)] = true + } +} + +// screenAddress godoc +// @Summary Screen an address for risk +// @Description Screen an address using Chainalysis API to determine if it's high risk +// @Tags Address Screening +// @Accept json +// @Produce json +// @Param address path string true "Address to be screened" +// @Accept json +// @Produce json +// @Router /screen/{address} [get]. +func (s *screenerImpl) screenAddress(c *gin.Context) { + address := strings.ToLower(c.Param("address")) + if address == "" { + logger.Errorf("address is required") + c.JSON(http.StatusBadRequest, gin.H{"error": "address is required"}) + return + } + + // Check if the address is in the blacklist. + if s.isBlacklistedCache(address) { + c.JSON(http.StatusOK, gin.H{"risk": true}) + return + } + + // Check if the address is in the whitelist. + if _, whitelisted := s.whitelist[address]; whitelisted { + c.JSON(http.StatusOK, gin.H{"risk": false}) + return + } + + // prevent a single address from saturating the server. + // the only case this is useful is with a bad client that continuously sends requests for the same address. + // due to a goroutine leak, etc. + unlocker := s.requestMux.Lock(address) + defer unlocker.Unlock() + + g, ctx := errgroup.WithContext(c.Request.Context()) + var isAPIBlocked, isDBBlocked bool + g.Go(func() (err error) { + // If not, check db & Chainalysis for the risk assessment. + isAPIBlocked, err = s.client.ScreenAddress(ctx, address) + if err != nil { + return fmt.Errorf("error screening address: %w", err) + } + return nil + }) + + g.Go(func() (err error) { + isDBBlocked, err = s.isDBBlacklisted(ctx, address) + if err != nil { + return fmt.Errorf("error checking db: %w", err) + } + return nil + }) + + if err := g.Wait(); err != nil { + logger.Errorf("error screening address: %v", err) + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + + c.JSON(http.StatusOK, gin.H{"risk": isAPIBlocked || isDBBlocked}) +} + +func (s *screenerImpl) isDBBlacklisted(ctx context.Context, address string) (bool, error) { + _, err := s.db.GetBlacklistedAddress(ctx, address) + if err != nil && !errors.Is(err, db.ErrNoAddressNotFound) { + return false, fmt.Errorf("could not get blacklisted address: %w", err) } + + if errors.Is(err, db.ErrNoAddressNotFound) { + return false, nil + } + + return true, nil +} + +func (s *screenerImpl) isBlacklistedCache(address string) bool { + s.blacklistCacheMux.RLock() + defer s.blacklistCacheMux.RUnlock() + return s.blacklistCache[address] } // @dev Protected Method @@ -148,9 +264,7 @@ func (s *screenerImpl) fetchBlacklist(ctx context.Context) { func (s *screenerImpl) blacklistAddress(c *gin.Context) { var err error ctx, span := s.metrics.Tracer().Start(c.Request.Context(), "blacklistAddress") - defer func() { - metrics.EndSpanWithErr(span, err) - }() + defer metrics.EndSpanWithErr(span, err) var blacklistBody client.BlackListBody @@ -160,13 +274,15 @@ func (s *screenerImpl) blacklistAddress(c *gin.Context) { return } - span.SetAttributes(attribute.String("type", blacklistBody.Type)) - span.SetAttributes(attribute.String("id", blacklistBody.ID)) - span.SetAttributes(attribute.String("data", blacklistBody.Data)) - span.SetAttributes(attribute.String("network", blacklistBody.Network)) - span.SetAttributes(attribute.String("tag", blacklistBody.Tag)) - span.SetAttributes(attribute.String("remark", blacklistBody.Remark)) - span.SetAttributes(attribute.String("address", blacklistBody.Address)) + span.SetAttributes( + attribute.String("type", blacklistBody.Type), + (attribute.String("id", blacklistBody.ID)), + (attribute.String("data", blacklistBody.Data)), + (attribute.String("network", blacklistBody.Network)), + (attribute.String("tag", blacklistBody.Tag)), + (attribute.String("remark", blacklistBody.Remark)), + (attribute.String("address", blacklistBody.Address)), + ) blacklistedAddress := db.BlacklistedAddress{ Type: blacklistBody.Type, @@ -178,6 +294,10 @@ func (s *screenerImpl) blacklistAddress(c *gin.Context) { Address: strings.ToLower(blacklistBody.Address), } + s.blacklistCacheMux.Lock() + defer s.blacklistCacheMux.Unlock() + s.blacklistCache[blacklistBody.Address] = true + switch blacklistBody.Type { case "create": if err := s.db.PutBlacklistedAddress(ctx, blacklistedAddress); err != nil { @@ -213,7 +333,6 @@ func (s *screenerImpl) blacklistAddress(c *gin.Context) { return default: - span.AddEvent("error", trace.WithAttributes(attribute.String("error", err.Error()))) c.JSON(http.StatusBadRequest, gin.H{"error": "invalid type"}) return } @@ -271,124 +390,3 @@ func (s *screenerImpl) authMiddleware(cfg config.Config) gin.HandlerFunc { c.Next() } } - -func (s *screenerImpl) Start(ctx context.Context) error { - // TODO: potential race condition here, if the blacklist is not fetched before the first request - // in practice trm will catch - go func() { - for { - if s.cfg.BlacklistURL != "" { - s.fetchBlacklist(ctx) - time.Sleep(1 * time.Second * 15) - } - } - }() - connection := baseServer.Server{} - err := connection.ListenAndServe(ctx, fmt.Sprintf(":%d", s.cfg.Port), s.router) - if err != nil { - return fmt.Errorf("could not start server: %w", err) - } - return nil -} - -// screenAddress returns whether an address is risky or not given a ruleset. -// @Summary Screen address for risk -// @Description Assess the risk associated with a given address using specified rulesets. -// @Tags address -// @Accept json -// @Produce json -// @Param ruleset query string true "Ruleset to use for screening the address" -// @Param address query string true "Address to be screened" -// @Success 200 {object} map[string]bool "Returns the risk assessment result" -// @Failure 400 {object} map[string]string "Returns error if the required parameters are missing or invalid" -// @Failure 500 {object} map[string]string "Returns error if there are problems processing the indicators" -// @Router /screen/{ruleset}/{address} [get]. -func (s *screenerImpl) screenAddress(c *gin.Context) { - var err error - - ruleset := strings.ToLower(c.Param("ruleset")) - if ruleset == "" { - c.JSON(http.StatusBadRequest, gin.H{"error": "ruleset is required"}) - return - } - - address := strings.ToLower(c.Param("address")) - if address == "" { - c.JSON(http.StatusBadRequest, gin.H{"error": "address is required"}) - return - } - - s.blacklistMux.RLock() - if slices.Contains(s.blacklist, address) { - c.JSON(http.StatusOK, gin.H{"risk": true}) - s.blacklistMux.RUnlock() - return - } - s.blacklistMux.RUnlock() - - if slices.Contains(s.whitelist, address) { - c.JSON(http.StatusOK, gin.H{"risk": false}) - return - } - - ctx, span := s.metrics.Tracer().Start(c.Request.Context(), "screenAddress", trace.WithAttributes(attribute.String("address", address))) - defer func() { - metrics.EndSpanWithErr(span, err) - }() - - currentRules := s.rulesManager.GetRuleset(ruleset) - if currentRules == nil { - c.JSON(http.StatusBadRequest, gin.H{"error": "ruleset not found"}) - return - } - - goodUntil := time.Now().Add(-1 * s.cfg.GetCacheTime(ruleset)) - var indicators []trmlabs.AddressRiskIndicator - if indicators, err = s.getIndicators(ctx, address, goodUntil); err != nil { - c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) - return - } - - var hasIndicator bool - if hasIndicator, err = currentRules.HasAddressIndicators(s.thresholds, indicators...); err != nil { - c.JSON(http.StatusOK, gin.H{"risk": true}) - return - } - - c.JSON(http.StatusOK, gin.H{"risk": hasIndicator}) -} - -func (s *screenerImpl) getIndicators(parentCtx context.Context, address string, goodUntil time.Time) (indicators []trmlabs.AddressRiskIndicator, err error) { - ctx, span := s.metrics.Tracer().Start(parentCtx, "get-indicators") - defer func() { - // nolint: errchkjson - marshalledIndicators, _ := json.Marshal(indicators) - span.AddEvent("indicators", trace.WithAttributes(attribute.String("indicators", string(marshalledIndicators)))) - metrics.EndSpanWithErr(span, err) - }() - - riskIndicators, err := s.db.GetAddressIndicators(ctx, address, goodUntil) - if err == nil { - return riskIndicators, nil - } - - if !errors.Is(err, db.ErrNoAddressNotCached) { - return nil, fmt.Errorf("could not get address indicators: %w", err) - } - - response, err := s.client.ScreenAddress(ctx, address) - if err != nil { - return nil, fmt.Errorf("could not screen address: %w", err) - } - - for _, ri := range response { - riskIndicators = append(riskIndicators, ri.AddressRiskIndicators...) - } - - err = s.db.PutAddressIndicators(ctx, address, riskIndicators) - if err != nil { - return nil, fmt.Errorf("could not put address indicators: %w", err) - } - - return riskIndicators, nil -} diff --git a/contrib/screener-api/screener/setup.go b/contrib/screener-api/screener/setup.go deleted file mode 100644 index fb398c9d4c..0000000000 --- a/contrib/screener-api/screener/setup.go +++ /dev/null @@ -1,137 +0,0 @@ -package screener - -import ( - "encoding/csv" - "fmt" - "os" - "strings" - - "github.com/gocarina/gocsv" - "github.com/synapsecns/sanguine/contrib/screener-api/config" - "github.com/synapsecns/sanguine/contrib/screener-api/screener/internal" -) - -func setupScreener(rulesets map[string]config.RulesetConfig) (mgr internal.RulesetManager, err error) { - mgr = internal.NewRulesetManager(map[string]map[string]bool{}) - for csvName, cfg := range rulesets { - csvPath := cfg.Filename - parsedCsv, err := parseCsv(csvPath) - if err != nil { - return nil, fmt.Errorf("could not parse csv %s: %w", csvName, err) - } - err = mgr.AddRuleset(csvName, parsedCsv) - if err != nil { - return nil, fmt.Errorf("could not add ruleset %s: %w", csvName, err) - } - } - - return mgr, nil -} - -// Set is a struct for the screener set. -type Set struct { - Enabled string `csv:"Enabled"` - ID string `csv:"ID"` - Category string `csv:"Category"` - Name string `csv:"Name"` - TypeOfRisk string `csv:"Type of risk"` - Severity string `csv:"Severity"` -} - -func parseCsv(file string) (risks map[string]bool, err error) { - //nolint: gosec - fileHandle, err := os.Open(file) - if err != nil { - return nil, fmt.Errorf("could not open blacklist file: %w", err) - } - - defer func() { - _ = fileHandle.Close() - }() - - var screeners []Set - if err := gocsv.UnmarshalFile(fileHandle, &screeners); err != nil { // Load clients from file - return nil, fmt.Errorf("could not unmarshal blacklist file: %w", err) - } - - risks = make(map[string]bool) - for _, screener := range screeners { - risks[internal.MakeParam(screener.Category, screener.TypeOfRisk)] = strings.EqualFold(screener.Enabled, "true") || strings.EqualFold(screener.Enabled, "yes") - } - - return risks, nil -} - -func splitCSV(file string) (map[string][]Set, error) { - //nolint: gosec - fileHandle, err := os.Open(file) - if err != nil { - return nil, fmt.Errorf("could not open blacklist file: %w", err) - } - - defer func() { - _ = fileHandle.Close() - }() - - reader := csv.NewReader(fileHandle) - records, err := reader.ReadAll() - if err != nil { - return nil, fmt.Errorf("could not read csv file: %w", err) - } - - header := records[0] - - // "ExtraColumn->Row w/ rewritten enabled based on column name" - outFiles := make(map[string][]Set) - - for _, record := range records[1:] { - screener := Set{ - Enabled: record[0], - ID: record[1], - Category: record[2], - Name: record[3], - TypeOfRisk: record[4], - Severity: record[5], - } - - for i := 6; i < len(header); i++ { - // skip empty records - if record[i] == "" { - continue - } - // reset the enabled field to the current record - newRecord := screener - newRecord.Enabled = record[i] - - // add the record to the set of rules - outFiles[header[i]] = append(outFiles[header[i]], newRecord) - } - } - - return outFiles, nil -} - -// SplitAndWriteCSV splits a csv file and writes the output to a directory. -func SplitAndWriteCSV(file string, outDir string) (files []string, err error) { - outFiles, err := splitCSV(file) - if err != nil { - return nil, fmt.Errorf("could not split csv: %w", err) - } - - for k, v := range outFiles { - outFile, err := os.Create(fmt.Sprintf("%s/%s.csv", outDir, k)) - if err != nil { - return nil, fmt.Errorf("could not create csv: %w", err) - } - defer func() { - _ = outFile.Close() - }() - v := v - err = gocsv.MarshalFile(&v, outFile) - if err != nil { - return nil, fmt.Errorf("could not marshal csv: %w", err) - } - } - - return files, nil -} diff --git a/contrib/screener-api/screener/suite_test.go b/contrib/screener-api/screener/suite_test.go index ed45863e19..ad491c9f2f 100644 --- a/contrib/screener-api/screener/suite_test.go +++ b/contrib/screener-api/screener/suite_test.go @@ -7,20 +7,19 @@ import ( "errors" "fmt" "math/big" - "strconv" + "slices" "testing" "time" "github.com/Flaque/filet" - "github.com/gocarina/gocsv" "github.com/phayes/freeport" . "github.com/stretchr/testify/assert" "github.com/stretchr/testify/suite" + "github.com/synapsecns/sanguine/contrib/screener-api/chainalysis" "github.com/synapsecns/sanguine/contrib/screener-api/client" "github.com/synapsecns/sanguine/contrib/screener-api/config" "github.com/synapsecns/sanguine/contrib/screener-api/metadata" "github.com/synapsecns/sanguine/contrib/screener-api/screener" - "github.com/synapsecns/sanguine/contrib/screener-api/trmlabs" "github.com/synapsecns/sanguine/core" "github.com/synapsecns/sanguine/core/dbcommon" "github.com/synapsecns/sanguine/core/metrics" @@ -62,18 +61,6 @@ func (s *ScreenerSuite) SetupSuite() { Nil(s.T(), err) } -func (s *ScreenerSuite) makeTestCSV(rules []screener.Set) string { - content, err := gocsv.MarshalString(rules) - Nil(s.T(), err) - - file := filet.TmpFile(s.T(), "", content) - defer func() { - // _ = Nil(s.T(), file.Close()) - }() - - return file.Name() -} - func (s *ScreenerSuite) TestScreener() { var err error @@ -83,33 +70,15 @@ func (s *ScreenerSuite) TestScreener() { s.T().Setenv("TRM_URL", "") cfg := config.Config{ - AppSecret: "secret", - AppID: "appid", - TRMKey: "", - Rulesets: map[string]config.RulesetConfig{ - "testrule": { - Filename: s.makeTestCSV([]screener.Set{ - { - Enabled: "true", - ID: strconv.Itoa(1), - Category: "test_category", - Name: "name", - Severity: "severity", - TypeOfRisk: "Risk Type", - }, - }), - }, - "testrule2": { - Filename: s.makeTestCSV([]screener.Set{}), - }, - }, + AppSecret: "secret", + AppID: "appid", BlacklistURL: "https://synapseprotocol.com/blacklist.json", // TODO: mock this out - CacheTime: 1, Port: s.port, Database: config.DatabaseConfig{ Type: dbcommon.Sqlite.String(), DSN: filet.TmpDir(s.T(), ""), }, + RiskLevels: []string{"Severe", "High"}, } realScreener, err := screener.NewTestScreener(s.GetTestContext(), cfg, s.metrics) @@ -123,19 +92,33 @@ func (s *ScreenerSuite) TestScreener() { }() m := mockClient{ - responseMap: map[string][]trmlabs.ScreenResponse{ + risks: []string{"Severe", "High"}, + entityMap: map[string]*Entity{ "0x123": { - { - AddressRiskIndicators: []trmlabs.AddressRiskIndicator{ - { - Category: "test_category", - CategoryID: "1", - CategoryRiskScoreLevel: 1, - CategoryRiskScoreLevelLabel: "test_category", - IncomingVolumeUsd: "1", - }, - }, + Address: "0x123", + Risk: "Severe", + Cluster: Cluster{Name: "Example Cluster 2", Category: "benign activity"}, + RiskReason: "Low risk example", + AddressType: "EXCHANGE", + AddressIdentifications: []interface{}{}, + Exposures: []Exposure{ + {Category: "decentralized exchange", Value: 1234.56, ExposureType: "indirect", Direction: "both_directions"}, + {Category: "mining", Value: 789.01, ExposureType: "direct", Direction: "both_directions"}, + }, + Triggers: []interface{}{}, + }, + "0x456": { + Address: "0x456", + Risk: "High", + Cluster: Cluster{Name: "High Risk Cluster", Category: "fraud"}, + RiskReason: "High risk due to fraud", + AddressType: "WALLET", + AddressIdentifications: []interface{}{}, + Exposures: []Exposure{ + {Category: "fee", Value: 5678.90, ExposureType: "indirect", Direction: "outgoing"}, + {Category: "token smart contract", Value: 3456.78, ExposureType: "direct", Direction: "incoming"}, }, + Triggers: []interface{}{}, }, }, } @@ -146,13 +129,22 @@ func (s *ScreenerSuite) TestScreener() { apiClient, err := client.NewClient(s.metrics, fmt.Sprintf("http://localhost:%d", s.port)) Nil(s.T(), err) - // http://localhost:63575/testrule/address/0x123: true - out, err := apiClient.ScreenAddress(s.GetTestContext(), "testrule", "0x123") + // http://localhost:63575/v2/entities/0x123: true + out, err := apiClient.ScreenAddress(s.GetTestContext(), "0x123") + Nil(s.T(), err) + True(s.T(), out) + + out, err = apiClient.ScreenAddress(s.GetTestContext(), "0x456") Nil(s.T(), err) True(s.T(), out) // http://localhost:63575/testrule/address/0x00: false - out, err = apiClient.ScreenAddress(s.GetTestContext(), "testrule", "0x00") + out, err = apiClient.ScreenAddress(s.GetTestContext(), "0x00") + Nil(s.T(), err) + False(s.T(), out) + + // http://localhost:63575/testrule/address/0x00: false + out, err = apiClient.ScreenAddress(s.GetTestContext(), "0x00") Nil(s.T(), err) False(s.T(), out) @@ -189,6 +181,13 @@ func (s *ScreenerSuite) TestScreener() { }) Equal(s.T(), len(statuses), 1) NotNil(s.T(), err) + + c := chainalysis.NewClient([]string{"Severe", "High"}, "key", "url") + NotNil(s.T(), c) + + ot, err := c.ScreenAddress(s.GetTestContext(), "0x123") + NotNil(s.T(), err) + False(s.T(), ot) } func blacklistTestWithOperation(t *testing.T, operation string, apiClient client.ScreenerClient, cfg config.Config) (statuses []string, err error) { @@ -233,35 +232,72 @@ func blacklistTestWithOperation(t *testing.T, operation string, apiClient client } type mockClient struct { - responseMap map[string][]trmlabs.ScreenResponse + risks []string + entityMap map[string]*Entity } // ScreenAddress mocks the screen address method. -func (m mockClient) ScreenAddress(ctx context.Context, address string) ([]trmlabs.ScreenResponse, error) { - if m.responseMap == nil { - return nil, fmt.Errorf("no response map") +func (m mockClient) ScreenAddress(ctx context.Context, address string) (bool, error) { + if m.entityMap == nil { + return false, fmt.Errorf("no response map") + } + entity, ok := m.entityMap[address] + if !ok { + err := m.RegisterAddress(ctx, address) + if err != nil { + return false, fmt.Errorf("could not register address: %w", err) + } + entity = m.entityMap[address] } - return m.responseMap[address], nil + if slices.Contains(m.risks, entity.Risk) { + return true, nil + } + + return false, nil +} + +// RegisterAddress mocks the register address method. +func (m mockClient) RegisterAddress(ctx context.Context, address string) error { + m.entityMap[address] = &Entity{ + Address: "0x1234abcdef1234abcdef1234abcdef1234abcd", + Risk: "Critical", + Cluster: Cluster{Name: "Critical Risk Cluster", Category: "money laundering"}, + RiskReason: "Involved in money laundering", + AddressType: "PRIVATE_WALLET", + AddressIdentifications: []interface{}{}, + Exposures: []Exposure{ + {Category: "smart contract", Value: 9876.54, ExposureType: "indirect", Direction: "both_directions"}, + {Category: "stolen funds", Value: 1234.56, ExposureType: "direct", Direction: "both_directions"}, + }, + Triggers: []interface{}{}, + } + return nil } -var _ trmlabs.Client = mockClient{} +var _ chainalysis.Client = mockClient{} -const testFile = `Enabled,ID,Category,Name,Type of risk,Severity,FE,RFQ -true,1,test_category,name,Risk Type,severity,true,false -false,2,test_category,name,Risk Type,severity,true,false -true,3,test_category,name,Risk Type,severity,false,true` +type Exposure struct { + Category string `json:"category"` + Value float64 `json:"value"` + ExposureType string `json:"exposureType"` + Direction string `json:"direction"` +} -func TestSplitCSV(t *testing.T) { - testfile := filet.TmpFile(t, "", testFile) - out, err := screener.SplitCSV(testfile.Name()) - Nil(t, err) +type Cluster struct { + Name string `json:"name"` + Category string `json:"category"` +} - // 2 different files - Equal(t, 2, len(out)) - Equal(t, "true", out["FE"][1].Enabled) - Equal(t, "false", out["RFQ"][1].Enabled) - Equal(t, "true", out["RFQ"][2].Enabled) +type Entity struct { + Address string `json:"address"` + Risk string `json:"risk"` + Cluster Cluster `json:"cluster"` + RiskReason string `json:"riskReason"` + AddressType string `json:"addressType"` + AddressIdentifications []interface{} `json:"addressIdentifications"` + Exposures []Exposure `json:"exposures"` + Triggers []interface{} `json:"triggers"` } func all(t *testing.T, statuses []string, f func(string) bool) { diff --git a/contrib/screener-api/trmlabs/doc.go b/contrib/screener-api/trmlabs/doc.go deleted file mode 100644 index c828dcb85a..0000000000 --- a/contrib/screener-api/trmlabs/doc.go +++ /dev/null @@ -1,3 +0,0 @@ -// Package trmlabs contains the implementation of the TRM Labs API client. -// this implementation is incomplete, but it is a good starting point. -package trmlabs diff --git a/contrib/screener-api/trmlabs/trmapi.go b/contrib/screener-api/trmlabs/trmapi.go deleted file mode 100644 index 4b4fd65f99..0000000000 --- a/contrib/screener-api/trmlabs/trmapi.go +++ /dev/null @@ -1,92 +0,0 @@ -package trmlabs - -import ( - "context" - "fmt" - "github.com/go-resty/resty/v2" -) - -// Client is the interface for the TRM Labs API client. -type Client interface { - ScreenAddress(ctx context.Context, address string) ([]ScreenResponse, error) -} - -// clientImpl is the implementation of the TRM Labs API client. -type clientImpl struct { - client *resty.Client - apiKey string - url string -} - -// NewClient creates a new TRM Labs API client. -func NewClient(apiKey, url string) (Client, error) { - client := resty.New(). - SetBaseURL(url). - SetHeader("Content-Type", "application/json"). - SetHeader("Accept", "application/json"). - SetBasicAuth(apiKey, apiKey) - - return &clientImpl{ - client: client, - apiKey: apiKey, - url: url, - }, nil -} - -// ScreenResponse is the response from the screening endpoint. -type ScreenResponse struct { - AccountExternalID string `json:"accountExternalId"` - Address string `json:"address"` - AddressIncomingVolumeUsd string `json:"addressIncomingVolumeUsd"` - AddressOutgoingVolumeUsd string `json:"addressOutgoingVolumeUsd"` - AddressRiskIndicators []AddressRiskIndicator `json:"addressRiskIndicators"` - AddressSubmitted string `json:"addressSubmitted"` - AddressTotalVolumeUsd string `json:"addressTotalVolumeUsd"` - Chain string `json:"chain"` - Entities []interface{} `json:"entities"` - ExternalID string `json:"externalId"` - TrmAppURL string `json:"trmAppUrl"` -} - -// AddressRiskIndicator is a risk indicator for an address. -type AddressRiskIndicator struct { - Category string `json:"category"` - CategoryID string `json:"categoryId"` - CategoryRiskScoreLevel int `json:"categoryRiskScoreLevel"` - CategoryRiskScoreLevelLabel string `json:"categoryRiskScoreLevelLabel"` - IncomingVolumeUsd string `json:"incomingVolumeUsd"` - OutgoingVolumeUsd string `json:"outgoingVolumeUsd"` - RiskType string `json:"riskType"` - TotalVolumeUsd string `json:"totalVolumeUsd"` -} - -type screenRequest struct { - Address string `json:"address"` - Chain string `json:"chain"` - AccountExternalID string `json:"accountExternalId"` - ExternalID string `json:"externalId"` -} - -func (c *clientImpl) ScreenAddress(ctx context.Context, address string) ([]ScreenResponse, error) { - body := []screenRequest{ - { - Address: address, - Chain: "ethereum", - AccountExternalID: address, - ExternalID: address, - }, - } - - var result []ScreenResponse - - _, err := c.client.R(). - SetContext(ctx). - SetBody(body). - SetResult(&result). - Post("/public/v2/screening/addresses") - if err != nil { - return []ScreenResponse{}, fmt.Errorf("could not screen address: %w", err) - } - - return result, nil -} diff --git a/go.work.sum b/go.work.sum index f36c24783b..a9ab7743f0 100644 --- a/go.work.sum +++ b/go.work.sum @@ -2287,6 +2287,7 @@ github.com/gobwas/pool v0.2.1/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6Wezm github.com/gobwas/ws v1.0.2 h1:CoAavW/wd/kulfZmSIBt6p24n4j7tHgNVCjsfHVNUbo= github.com/gobwas/ws v1.2.1 h1:F2aeBZrm2NDsc7vbovKrWSogd4wvfAxg0FQ89/iqOTk= github.com/gobwas/ws v1.2.1/go.mod h1:hRKAFb8wOxFROYNsT1bqfWnhX+b5MFeJM9r2ZSwg/KY= +github.com/gocarina/gocsv v0.0.0-20240520201108-78e41c74b4b1/go.mod h1:5YoVOkjYAQumqlV356Hj3xeYh4BdZuLE0/nRkf2NKkI= github.com/goccmack/gocc v0.0.0-20230228185258-2292f9e40198 h1:FSii2UQeSLngl3jFoR4tUKZLprO7qUlh/TKKticc0BM= github.com/goccmack/gocc v0.0.0-20230228185258-2292f9e40198/go.mod h1:DTh/Y2+NbnOVVoypCCQrovMPDKUGp4yZpSbWg5D0XIM= github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= @@ -3331,8 +3332,6 @@ github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546 h1:pXY9qYc/MP5zdvq github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546/go.mod h1:TrYk7fJVaAttu97ZZKrO9UbRa8izdowaMIZcxYMbVaw= github.com/shurcooL/webdavfs v0.0.0-20170829043945-18c3829fa133 h1:JtcyT0rk/9PKOdnKQzuDR+FSjh7SGtJwpgVpfZBRKlQ= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/slack-go/slack v0.12.2 h1:x3OppyMyGIbbiyFhsBmpf9pwkUzMhthJMRNmNlA4LaQ= -github.com/slack-go/slack v0.12.2/go.mod h1:hlGi5oXA+Gt+yWTPP0plCdRKmjsDxecdHxYQdlMQKOw= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= github.com/sonatard/noctx v0.0.1 h1:VC1Qhl6Oxx9vvWo3UDgrGXYCeKCe3Wbw7qAWL6FrmTY= @@ -3669,6 +3668,7 @@ golang.org/x/exp v0.0.0-20230206171751-46f607a40771/go.mod h1:CxIveKay+FTh1D0yPZ golang.org/x/exp v0.0.0-20230321023759-10a507213a29/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/exp v0.0.0-20230626212559-97b1e661b5df/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc= +golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= golang.org/x/image v0.0.0-20190910094157-69e4b8554b2a/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20200119044424-58c23975cae1/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20200430140353-33d19683fad8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= diff --git a/services/cctp-relayer/relayer/synapse.go b/services/cctp-relayer/relayer/synapse.go index a5f27d8f40..30c1b9b677 100644 --- a/services/cctp-relayer/relayer/synapse.go +++ b/services/cctp-relayer/relayer/synapse.go @@ -4,9 +4,10 @@ import ( "context" "errors" "fmt" - "github.com/synapsecns/sanguine/contrib/screener-api/client" "math/big" + "github.com/synapsecns/sanguine/contrib/screener-api/client" + relayTypes "github.com/synapsecns/sanguine/services/cctp-relayer/types" "github.com/ethereum/go-ethereum/accounts/abi/bind" @@ -204,7 +205,7 @@ func (s *synapseCCTPHandler) FetchAndProcessSentEvent(parentCtx context.Context, rawMsg.State = relayTypes.Pending if s.screener != nil { - blocked, err := s.screener.ScreenAddress(ctx, screenerRuleset, circleRequestSentEvent.Sender.String()) + blocked, err := s.screener.ScreenAddress(ctx, circleRequestSentEvent.Sender.String()) if err != nil { return nil, fmt.Errorf("error screening address: %w", err) } diff --git a/services/rfq/relayer/quoter/quoter.go b/services/rfq/relayer/quoter/quoter.go index c19b4ba02e..6e182426dd 100644 --- a/services/rfq/relayer/quoter/quoter.go +++ b/services/rfq/relayer/quoter/quoter.go @@ -134,8 +134,6 @@ func NewQuoterManager(config relconfig.Config, metricsHandler metrics.Handler, i return m, nil } -const screenerRuleset = "rfq" - // ShouldProcess determines if a quote should be processed. func (m *Manager) ShouldProcess(parentCtx context.Context, quote reldb.QuoteRequest) (res bool, err error) { ctx, span := m.metricsHandler.Tracer().Start(parentCtx, "shouldProcess", trace.WithAttributes( @@ -157,7 +155,7 @@ func (m *Manager) ShouldProcess(parentCtx context.Context, quote reldb.QuoteRequ g, gctx := errgroup.WithContext(ctx) var senderBlocked, recipientBlocked bool g.Go(func() error { - senderBlocked, err = m.screener.ScreenAddress(gctx, screenerRuleset, quote.Transaction.OriginSender.String()) + senderBlocked, err = m.screener.ScreenAddress(gctx, quote.Transaction.OriginSender.String()) if err != nil { span.RecordError(fmt.Errorf("error screening address: %w", err)) return fmt.Errorf("error screening address: %w", err) @@ -165,7 +163,7 @@ func (m *Manager) ShouldProcess(parentCtx context.Context, quote reldb.QuoteRequ return nil }) g.Go(func() error { - recipientBlocked, err = m.screener.ScreenAddress(gctx, screenerRuleset, quote.Transaction.DestRecipient.String()) + recipientBlocked, err = m.screener.ScreenAddress(gctx, quote.Transaction.DestRecipient.String()) if err != nil { span.RecordError(fmt.Errorf("error screening address: %w", err)) return fmt.Errorf("error screening address: %w", err) From e8afb69ec7c95ff2f4e45f260791c1d513ff85ed Mon Sep 17 00:00:00 2001 From: Trajan0x Date: Tue, 25 Jun 2024 22:48:55 -0400 Subject: [PATCH 39/85] fix initial_balance_pct to clarify steup params --- docs/bridge/docs/rfq/Relayer/Relayer.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/bridge/docs/rfq/Relayer/Relayer.md b/docs/bridge/docs/rfq/Relayer/Relayer.md index cd18194eaa..f8ca8f07a4 100644 --- a/docs/bridge/docs/rfq/Relayer/Relayer.md +++ b/docs/bridge/docs/rfq/Relayer/Relayer.md @@ -117,7 +117,7 @@ The relayer is configured with a yaml file. The following is an example configur min_quote_amount: 10000 rebalance_method: "circlecctp" maintenance_balance_pct: 20 - initial_balance_pct: 34 + initial_balance_pct: 50 max_rebalance_amount: 500000 ETH: address: "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE" @@ -141,7 +141,7 @@ The relayer is configured with a yaml file. The following is an example configur min_quote_amount: 10000 rebalance_method: "circlecctp" maintenance_balance_pct: 20 - initial_balance_pct: 34 + initial_balance_pct: 50 max_rebalance_amount: 500000 ETH: address: "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE" @@ -208,7 +208,7 @@ The relayer is configured with a yaml file. The following is an example configur - `min_quote_amount` - smallest amount to quote for a given chain. This should be balanced against expected gas spend for a relayer to be profitable. `min_quote_amount` is to be given in decimal units (so 1000.00 is 1000) - `rebalance_method` - rebalance method for this particular kind of token. Some tokens may not have a rebalance method. This is either cctp or token messenger. - `maintenance_balance_pct` - percent of liquidity that should be maintained on the given chain for this token. If the balance is under this amount a rebalance is triggered. - - `initial_balance_pct` - percent of liquidity to maintain after a rebalance. + - `initial_balance_pct` - percent of liquidity to maintain after a rebalance. The total of these on all-chains should be 100. - `min_rebalance_amount` - amount of this token to try to rebalance - `max_rebalance_amount` - maximum amount of this token to try to rebalance at once - `quotable_tokens`: From b6c1d58726858eb9a546e2eea096ac69f2ef45bb Mon Sep 17 00:00:00 2001 From: abtestingalpha Date: Wed, 26 Jun 2024 14:41:47 +0000 Subject: [PATCH 40/85] Publish - @synapsecns/bridge-docs@0.1.2 - @synapsecns/synapse-interface@0.26.4 --- docs/bridge/CHANGELOG.md | 8 ++++++++ docs/bridge/package.json | 2 +- packages/synapse-interface/CHANGELOG.md | 8 ++++++++ packages/synapse-interface/package.json | 2 +- 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/docs/bridge/CHANGELOG.md b/docs/bridge/CHANGELOG.md index e8042d56b5..e68d44c7c2 100644 --- a/docs/bridge/CHANGELOG.md +++ b/docs/bridge/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.2](https://github.com/synapsecns/sanguine/compare/@synapsecns/bridge-docs@0.1.1...@synapsecns/bridge-docs@0.1.2) (2024-06-26) + +**Note:** Version bump only for package @synapsecns/bridge-docs + + + + + ## [0.1.1](https://github.com/synapsecns/sanguine/compare/@synapsecns/bridge-docs@0.1.0...@synapsecns/bridge-docs@0.1.1) (2024-06-08) **Note:** Version bump only for package @synapsecns/bridge-docs diff --git a/docs/bridge/package.json b/docs/bridge/package.json index caedc7a20b..f688bf4a1f 100644 --- a/docs/bridge/package.json +++ b/docs/bridge/package.json @@ -1,6 +1,6 @@ { "name": "@synapsecns/bridge-docs", - "version": "0.1.1", + "version": "0.1.2", "private": true, "scripts": { "docusaurus": "docusaurus", diff --git a/packages/synapse-interface/CHANGELOG.md b/packages/synapse-interface/CHANGELOG.md index 56be6bc37a..b88d34bfcb 100644 --- a/packages/synapse-interface/CHANGELOG.md +++ b/packages/synapse-interface/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.26.4](https://github.com/synapsecns/sanguine/compare/@synapsecns/synapse-interface@0.26.3...@synapsecns/synapse-interface@0.26.4) (2024-06-26) + +**Note:** Version bump only for package @synapsecns/synapse-interface + + + + + ## [0.26.3](https://github.com/synapsecns/sanguine/compare/@synapsecns/synapse-interface@0.26.2...@synapsecns/synapse-interface@0.26.3) (2024-06-25) **Note:** Version bump only for package @synapsecns/synapse-interface diff --git a/packages/synapse-interface/package.json b/packages/synapse-interface/package.json index c82f757d46..1ce25547f4 100644 --- a/packages/synapse-interface/package.json +++ b/packages/synapse-interface/package.json @@ -1,6 +1,6 @@ { "name": "@synapsecns/synapse-interface", - "version": "0.26.3", + "version": "0.26.4", "private": true, "engines": { "node": ">=18.18.0" From 3bc686f5aa2047a79abd36325e84cc2a5eec9efa Mon Sep 17 00:00:00 2001 From: abtestingalpha <104046418+abtestingalpha@users.noreply.github.com> Date: Wed, 26 Jun 2024 12:03:24 -0400 Subject: [PATCH 41/85] Pauses blast (#2790) --- .../public/pauses/v1/paused-chains.json | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/packages/synapse-interface/public/pauses/v1/paused-chains.json b/packages/synapse-interface/public/pauses/v1/paused-chains.json index 2cebd02a51..6c4a5bee34 100644 --- a/packages/synapse-interface/public/pauses/v1/paused-chains.json +++ b/packages/synapse-interface/public/pauses/v1/paused-chains.json @@ -15,5 +15,22 @@ "disableBanner": true, "disableWarning": true, "disableCountdown": true + }, + { + "id": "blast-chain-pause-2024-06-26", + "pausedFromChains": [], + "pausedToChains": [81457], + "pauseBridge": true, + "pauseSwap": true, + "startTimePauseChain": "2024-06-26T00:00:00Z", + "endTimePauseChain": null, + "startTimeBanner": "2024-06-26T00:00:00Z", + "endTimeBanner": null, + "inputWarningMessage": "", + "bannerMessage": "Bridging to Blast is temporarily paused", + "progressBarMessage": "Bridging to Blast temporarily paused", + "disableBanner": false, + "disableWarning": true, + "disableCountdown": true } ] From af34a7c1c362076ea13c6c7f5fe879eaa5f51eb1 Mon Sep 17 00:00:00 2001 From: aureliusbtc Date: Wed, 26 Jun 2024 16:07:35 +0000 Subject: [PATCH 42/85] Publish - @synapsecns/synapse-interface@0.26.5 --- packages/synapse-interface/CHANGELOG.md | 8 ++++++++ packages/synapse-interface/package.json | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/synapse-interface/CHANGELOG.md b/packages/synapse-interface/CHANGELOG.md index b88d34bfcb..83b7c480ed 100644 --- a/packages/synapse-interface/CHANGELOG.md +++ b/packages/synapse-interface/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.26.5](https://github.com/synapsecns/sanguine/compare/@synapsecns/synapse-interface@0.26.4...@synapsecns/synapse-interface@0.26.5) (2024-06-26) + +**Note:** Version bump only for package @synapsecns/synapse-interface + + + + + ## [0.26.4](https://github.com/synapsecns/sanguine/compare/@synapsecns/synapse-interface@0.26.3...@synapsecns/synapse-interface@0.26.4) (2024-06-26) **Note:** Version bump only for package @synapsecns/synapse-interface diff --git a/packages/synapse-interface/package.json b/packages/synapse-interface/package.json index 1ce25547f4..8137c033f6 100644 --- a/packages/synapse-interface/package.json +++ b/packages/synapse-interface/package.json @@ -1,6 +1,6 @@ { "name": "@synapsecns/synapse-interface", - "version": "0.26.4", + "version": "0.26.5", "private": true, "engines": { "node": ">=18.18.0" From 56542777f8eb36c89c964b7cfe30c296d8f5a762 Mon Sep 17 00:00:00 2001 From: abtestingalpha <104046418+abtestingalpha@users.noreply.github.com> Date: Wed, 26 Jun 2024 12:52:14 -0400 Subject: [PATCH 43/85] Unpauses blast (#2793) --- .../public/pauses/v1/paused-chains.json | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/packages/synapse-interface/public/pauses/v1/paused-chains.json b/packages/synapse-interface/public/pauses/v1/paused-chains.json index 6c4a5bee34..2cebd02a51 100644 --- a/packages/synapse-interface/public/pauses/v1/paused-chains.json +++ b/packages/synapse-interface/public/pauses/v1/paused-chains.json @@ -15,22 +15,5 @@ "disableBanner": true, "disableWarning": true, "disableCountdown": true - }, - { - "id": "blast-chain-pause-2024-06-26", - "pausedFromChains": [], - "pausedToChains": [81457], - "pauseBridge": true, - "pauseSwap": true, - "startTimePauseChain": "2024-06-26T00:00:00Z", - "endTimePauseChain": null, - "startTimeBanner": "2024-06-26T00:00:00Z", - "endTimeBanner": null, - "inputWarningMessage": "", - "bannerMessage": "Bridging to Blast is temporarily paused", - "progressBarMessage": "Bridging to Blast temporarily paused", - "disableBanner": false, - "disableWarning": true, - "disableCountdown": true } ] From 8d92615b8de00722a69e3baa42c9c421e5d68414 Mon Sep 17 00:00:00 2001 From: abtestingalpha Date: Wed, 26 Jun 2024 16:56:23 +0000 Subject: [PATCH 44/85] Publish - @synapsecns/synapse-interface@0.26.6 --- packages/synapse-interface/CHANGELOG.md | 8 ++++++++ packages/synapse-interface/package.json | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/synapse-interface/CHANGELOG.md b/packages/synapse-interface/CHANGELOG.md index 83b7c480ed..a7761bb85b 100644 --- a/packages/synapse-interface/CHANGELOG.md +++ b/packages/synapse-interface/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.26.6](https://github.com/synapsecns/sanguine/compare/@synapsecns/synapse-interface@0.26.5...@synapsecns/synapse-interface@0.26.6) (2024-06-26) + +**Note:** Version bump only for package @synapsecns/synapse-interface + + + + + ## [0.26.5](https://github.com/synapsecns/sanguine/compare/@synapsecns/synapse-interface@0.26.4...@synapsecns/synapse-interface@0.26.5) (2024-06-26) **Note:** Version bump only for package @synapsecns/synapse-interface diff --git a/packages/synapse-interface/package.json b/packages/synapse-interface/package.json index 8137c033f6..6f44801155 100644 --- a/packages/synapse-interface/package.json +++ b/packages/synapse-interface/package.json @@ -1,6 +1,6 @@ { "name": "@synapsecns/synapse-interface", - "version": "0.26.5", + "version": "0.26.6", "private": true, "engines": { "node": ">=18.18.0" From f60de8c4818681e5e2d1f80ba5c132c0d6f36c1a Mon Sep 17 00:00:00 2001 From: vro <168573323+golangisfun123@users.noreply.github.com> Date: Wed, 26 Jun 2024 12:58:23 -0500 Subject: [PATCH 45/85] fix 401 screner (#2792) * fix models --- .vscode/settings.json | 1 + contrib/screener-api/client/client.go | 10 +++++--- contrib/screener-api/db/models.go | 13 +++++------ contrib/screener-api/db/sql/base/base.go | 2 +- contrib/screener-api/db/sql/base/namer.go | 22 ++++++++--------- contrib/screener-api/screener/screener.go | 26 ++++++++++----------- contrib/screener-api/screener/suite_test.go | 22 +++++++---------- 7 files changed, 45 insertions(+), 51 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index b494f296d2..27a875e01a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,4 +1,5 @@ { + "editor.fontLigatures": "'calt', 'liga', 'ss01', 'ss02', 'ss03', 'ss04', 'ss05', 'ss06', 'ss07', 'ss08', 'ss09'", "editor.formatOnSave": true, "[typescript]": { "editor.defaultFormatter": "dbaeumer.vscode-eslint" diff --git a/contrib/screener-api/client/client.go b/contrib/screener-api/client/client.go index aabc852f6d..3381e2dff1 100644 --- a/contrib/screener-api/client/client.go +++ b/contrib/screener-api/client/client.go @@ -114,9 +114,13 @@ func (c clientImpl) BlacklistAddress(ctx context.Context, appsecret string, appi // BlackListBody is the json payload that represents a blacklisted address. type BlackListBody struct { - Type string `json:"type"` - ID string `json:"id"` - Data string `json:"data"` + Type string `json:"type"` + ID string `json:"id"` + Data Data `json:"data"` +} + +// Data is the data field in the BlackListBody. +type Data struct { Address string `json:"address"` Network string `json:"network"` Tag string `json:"tag"` diff --git a/contrib/screener-api/db/models.go b/contrib/screener-api/db/models.go index 7584d5c235..269e374c8a 100644 --- a/contrib/screener-api/db/models.go +++ b/contrib/screener-api/db/models.go @@ -10,11 +10,10 @@ type BlacklistedAddress struct { CreatedAt time.Time `json:"createdAt"` UpdatedAt time.Time `json:"updatedAt"` - Type string `gorm:"column:type" json:"type"` - ID string `gorm:"column:id;primary_key" json:"id"` - Data string `gorm:"column:data" json:"data"` - Address string `gorm:"column:address" json:"address"` - Network string `gorm:"column:network" json:"network"` - Tag string `gorm:"column:tag" json:"tag"` - Remark string `gorm:"column:remark" json:"remark"` + ID string `gorm:"column:id;primaryKey" json:"id"` + Type string `gorm:"column:type" json:"type"` + Address string `gorm:"column:address" json:"address"` + Network string `gorm:"column:network" json:"network"` + Tag string `gorm:"column:tag" json:"tag"` + Remark string `gorm:"column:remark" json:"remark"` } diff --git a/contrib/screener-api/db/sql/base/base.go b/contrib/screener-api/db/sql/base/base.go index ca9f97db93..aac9558acf 100644 --- a/contrib/screener-api/db/sql/base/base.go +++ b/contrib/screener-api/db/sql/base/base.go @@ -56,7 +56,7 @@ func (s *Store) PutBlacklistedAddress(ctx context.Context, body db.BlacklistedAd {Name: idName}, }, DoUpdates: clause.AssignmentColumns([]string{ - idName, typeName, dataName, addressName, networkName, tagName, remarkName}, + idName, typeName, dataAddressName, dataRemarkName, dataNetworkName, dataTagName}, ), }).Create(&body) if dbTx.Error != nil { diff --git a/contrib/screener-api/db/sql/base/namer.go b/contrib/screener-api/db/sql/base/namer.go index 3c9a2e7991..230b59e5ed 100644 --- a/contrib/screener-api/db/sql/base/namer.go +++ b/contrib/screener-api/db/sql/base/namer.go @@ -7,21 +7,19 @@ import ( func init() { namer := dbcommon.NewNamer(GetAllModels()) - addressName = namer.GetConsistentName("Address") typeName = namer.GetConsistentName("Type") idName = namer.GetConsistentName("ID") - dataName = namer.GetConsistentName("Data") - networkName = namer.GetConsistentName("Network") - tagName = namer.GetConsistentName("Tag") - remarkName = namer.GetConsistentName("Remark") + dataAddressName = namer.GetConsistentName("Address") + dataNetworkName = namer.GetConsistentName("Network") + dataTagName = namer.GetConsistentName("Tag") + dataRemarkName = namer.GetConsistentName("Remark") } var ( - addressName string - typeName string - idName string - dataName string - networkName string - tagName string - remarkName string + typeName string + idName string + dataAddressName string + dataNetworkName string + dataTagName string + dataRemarkName string ) diff --git a/contrib/screener-api/screener/screener.go b/contrib/screener-api/screener/screener.go index 2b81bc8385..69607380de 100644 --- a/contrib/screener-api/screener/screener.go +++ b/contrib/screener-api/screener/screener.go @@ -277,26 +277,24 @@ func (s *screenerImpl) blacklistAddress(c *gin.Context) { span.SetAttributes( attribute.String("type", blacklistBody.Type), (attribute.String("id", blacklistBody.ID)), - (attribute.String("data", blacklistBody.Data)), - (attribute.String("network", blacklistBody.Network)), - (attribute.String("tag", blacklistBody.Tag)), - (attribute.String("remark", blacklistBody.Remark)), - (attribute.String("address", blacklistBody.Address)), + (attribute.String("network", blacklistBody.Data.Network)), + (attribute.String("tag", blacklistBody.Data.Tag)), + (attribute.String("remark", blacklistBody.Data.Remark)), + (attribute.String("address", blacklistBody.Data.Address)), ) blacklistedAddress := db.BlacklistedAddress{ Type: blacklistBody.Type, ID: blacklistBody.ID, - Data: blacklistBody.Data, - Network: blacklistBody.Network, - Tag: blacklistBody.Tag, - Remark: blacklistBody.Remark, - Address: strings.ToLower(blacklistBody.Address), + Network: blacklistBody.Data.Network, + Tag: blacklistBody.Data.Tag, + Remark: blacklistBody.Data.Remark, + Address: strings.ToLower(blacklistBody.Data.Address), } s.blacklistCacheMux.Lock() defer s.blacklistCacheMux.Unlock() - s.blacklistCache[blacklistBody.Address] = true + s.blacklistCache[blacklistBody.Data.Address] = true switch blacklistBody.Type { case "create": @@ -306,7 +304,7 @@ func (s *screenerImpl) blacklistAddress(c *gin.Context) { return } - span.AddEvent("blacklistedAddress", trace.WithAttributes(attribute.String("address", blacklistBody.Address))) + span.AddEvent("blacklistedAddress", trace.WithAttributes(attribute.String("address", blacklistBody.Data.Address))) c.JSON(http.StatusOK, gin.H{"status": "success"}) return @@ -317,7 +315,7 @@ func (s *screenerImpl) blacklistAddress(c *gin.Context) { return } - span.AddEvent("blacklistedAddress", trace.WithAttributes(attribute.String("address", blacklistBody.Address))) + span.AddEvent("blacklistedAddress", trace.WithAttributes(attribute.String("address", blacklistBody.Data.Address))) c.JSON(http.StatusOK, gin.H{"status": "success"}) return @@ -328,7 +326,7 @@ func (s *screenerImpl) blacklistAddress(c *gin.Context) { return } - span.AddEvent("blacklistedAddress", trace.WithAttributes(attribute.String("address", blacklistBody.Address))) + span.AddEvent("blacklistedAddress", trace.WithAttributes(attribute.String("address", blacklistBody.Data.Address))) c.JSON(http.StatusOK, gin.H{"status": "success"}) return diff --git a/contrib/screener-api/screener/suite_test.go b/contrib/screener-api/screener/suite_test.go index ad491c9f2f..a1c793abc3 100644 --- a/contrib/screener-api/screener/suite_test.go +++ b/contrib/screener-api/screener/suite_test.go @@ -3,7 +3,6 @@ package screener_test import ( "context" "crypto/rand" - "encoding/json" "errors" "fmt" "math/big" @@ -198,23 +197,18 @@ func blacklistTestWithOperation(t *testing.T, operation string, apiClient client return statuses, fmt.Errorf("error generating random number: %w", err) } - dataMap := map[string]string{"key": fmt.Sprintf("value-%d", randomNumber)} - dataStr, err := json.Marshal(dataMap) - if err != nil { - return statuses, fmt.Errorf("error marshaling data: %w", err) - } - var body client.BlackListBody if operation == "create" || operation == "update" { body = client.BlackListBody{ - Type: operation, - ID: fmt.Sprintf("unique-id-%d", randomNumber), - Data: string(dataStr), - Address: fmt.Sprintf("address-%d", randomNumber), - Network: fmt.Sprintf("network-%d", randomNumber), - Tag: fmt.Sprintf("tag-%d", randomNumber), - Remark: "remark", + Type: operation, + ID: fmt.Sprintf("unique-id-%d", randomNumber), + Data: client.Data{ + Address: fmt.Sprintf("address-%d", randomNumber), + Network: fmt.Sprintf("network-%d", randomNumber), + Tag: fmt.Sprintf("tag-%d", randomNumber), + Remark: "remark", + }, } } else { body = client.BlackListBody{ From 7cde829ef7d21ede999e2964eb5b3b3fb38a9c50 Mon Sep 17 00:00:00 2001 From: trajan0x <83933037+trajan0x@users.noreply.github.com> Date: Wed, 26 Jun 2024 14:55:08 -0400 Subject: [PATCH 46/85] add aws signer docs (#2795) --------- Co-authored-by: Trajan0x --- docker/signer-example.Dockerfile | 15 ++ docs/bridge/docs/Services/Signer.md | 133 ++++++++++++++++++ .../docs/Services/img/create-acces-key.png | Bin 0 -> 173197 bytes .../docs/Services/img/create-access-key.png | Bin 0 -> 192370 bytes docs/bridge/docs/Services/img/iam-dash.png | Bin 0 -> 199253 bytes .../docs/Services/img/iam-preview-user.png | Bin 0 -> 147575 bytes docs/bridge/docs/Services/img/key-details.png | Bin 0 -> 137796 bytes docs/bridge/docs/Services/img/kms-1.png | Bin 0 -> 289707 bytes docs/bridge/docs/Services/img/kms-2.png | Bin 0 -> 182617 bytes .../bridge/docs/Services/img/kms-advanced.png | Bin 0 -> 73369 bytes docs/bridge/docs/Services/img/kms-labels.png | Bin 0 -> 107763 bytes .../docs/Services/img/kms-permissons.png | Bin 0 -> 140278 bytes .../Services/img/kms-user-permissions.png | Bin 0 -> 172679 bytes docs/bridge/docs/Services/img/kms-user.png | Bin 0 -> 135050 bytes docs/bridge/docs/Services/img/perms.png | Bin 0 -> 187833 bytes docs/bridge/docs/Services/img/review.png | Bin 0 -> 150708 bytes docs/bridge/docs/Services/img/user-list.png | Bin 0 -> 144262 bytes docs/bridge/docs/Services/img/user-perms.png | Bin 0 -> 125915 bytes ethergo/.goreleaser.yml | 41 +++++- ethergo/README.md | 4 +- ethergo/backends/anvil/suite_test.go | 8 +- ethergo/deployer/deployed_contract_test.go | 6 +- .../contracttests}/README.md | 8 +- .../contracttests}/contracttype.go | 4 +- .../contracttests}/contracttypeimpl_string.go | 2 +- .../contracttests}/counter/counter.abigen.go | 0 .../counter/counter.contractinfo.json | 0 .../counter/counter.metadata.go | 0 .../contracttests}/counter/counter.sol | 0 .../contracttests}/counter/generate.go | 0 .../contracttests}/counter/helpers.go | 0 .../contracttests}/counter_test.go | 12 +- .../contracttests}/deployer.go | 8 +- .../contracttests}/deploymanager.go | 4 +- .../contracttests}/doc.go | 2 +- ethergo/examples/signer-example/README.md | 3 + ethergo/examples/signer-example/cmd/cmd.go | 67 +++++++++ .../examples/signer-example/config/config.go | 9 ++ ethergo/examples/signer-example/main.go | 12 ++ .../signer-example/metadata/metadata.go | 15 ++ ethergo/forker/fork_test.go | 8 +- ethergo/go.mod | 4 +- ethergo/listener/suite_test.go | 8 +- ethergo/signer/config/signer.go | 30 ++-- ethergo/submitter/submitter_test.go | 6 +- ethergo/submitter/suite_test.go | 6 +- 46 files changed, 359 insertions(+), 56 deletions(-) create mode 100644 docker/signer-example.Dockerfile create mode 100644 docs/bridge/docs/Services/img/create-acces-key.png create mode 100644 docs/bridge/docs/Services/img/create-access-key.png create mode 100644 docs/bridge/docs/Services/img/iam-dash.png create mode 100644 docs/bridge/docs/Services/img/iam-preview-user.png create mode 100644 docs/bridge/docs/Services/img/key-details.png create mode 100644 docs/bridge/docs/Services/img/kms-1.png create mode 100644 docs/bridge/docs/Services/img/kms-2.png create mode 100644 docs/bridge/docs/Services/img/kms-advanced.png create mode 100644 docs/bridge/docs/Services/img/kms-labels.png create mode 100644 docs/bridge/docs/Services/img/kms-permissons.png create mode 100644 docs/bridge/docs/Services/img/kms-user-permissions.png create mode 100644 docs/bridge/docs/Services/img/kms-user.png create mode 100644 docs/bridge/docs/Services/img/perms.png create mode 100644 docs/bridge/docs/Services/img/review.png create mode 100644 docs/bridge/docs/Services/img/user-list.png create mode 100644 docs/bridge/docs/Services/img/user-perms.png rename ethergo/{example => examples/contracttests}/README.md (98%) rename ethergo/{example => examples/contracttests}/contracttype.go (95%) rename ethergo/{example => examples/contracttests}/contracttypeimpl_string.go (96%) rename ethergo/{example => examples/contracttests}/counter/counter.abigen.go (100%) rename ethergo/{example => examples/contracttests}/counter/counter.contractinfo.json (100%) rename ethergo/{example => examples/contracttests}/counter/counter.metadata.go (100%) rename ethergo/{example => examples/contracttests}/counter/counter.sol (100%) rename ethergo/{example => examples/contracttests}/counter/generate.go (100%) rename ethergo/{example => examples/contracttests}/counter/helpers.go (100%) rename ethergo/{example => examples/contracttests}/counter_test.go (80%) rename ethergo/{example => examples/contracttests}/deployer.go (86%) rename ethergo/{example => examples/contracttests}/deploymanager.go (90%) rename ethergo/{example => examples/contracttests}/doc.go (74%) create mode 100644 ethergo/examples/signer-example/README.md create mode 100644 ethergo/examples/signer-example/cmd/cmd.go create mode 100644 ethergo/examples/signer-example/config/config.go create mode 100644 ethergo/examples/signer-example/main.go create mode 100644 ethergo/examples/signer-example/metadata/metadata.go diff --git a/docker/signer-example.Dockerfile b/docker/signer-example.Dockerfile new file mode 100644 index 0000000000..aa3565930a --- /dev/null +++ b/docker/signer-example.Dockerfile @@ -0,0 +1,15 @@ +FROM gcr.io/distroless/static:latest + +LABEL org.label-schema.description="signer-example Docker Image" +LABEL org.label-schema.name="ghcr.io/synapsecns/sanguine/contrib/signer-example" +LABEL org.label-schema.schema-version="1.0.0" +LABEL org.label-schema.vcs-url="https://github.com/synapsecns/sanguine" +LABEL org.opencontainers.image.source="https://github.com/synapsecns/sanguine" +LABEL org.opencontainers.image.description="signer-example Docker image" + +USER nonroot:nonroot + +WORKDIR /app +COPY --chown=nonroot:nonroot signer-example /app/signer-example + +ENTRYPOINT ["/app/signer-example"] diff --git a/docs/bridge/docs/Services/Signer.md b/docs/bridge/docs/Services/Signer.md index 7bf49d57fe..7dc96a934b 100644 --- a/docs/bridge/docs/Services/Signer.md +++ b/docs/bridge/docs/Services/Signer.md @@ -1,3 +1,136 @@ # Signer +## Setup with AWS KMS + +In order to setup the signer with AWS KMS, you will need to create a KMS key and give the appropriate permissions to a user that will be using the signer. While we do not have IAC (Infrastructure as Code) for this, you can follow the steps below to setup the KMS key and the user. + +**Note**: If you already have an IAM user you can skip to the [Create a KMS Key](#create-a-kms-key) section. If you have a custom IAM setup/role skip this and assign the permissions to the user or role you want to use. + +### Create an IAM User + +1. Sign in to the AWS Management Console and open the IAM console at https://console.aws.amazon.com/iam. +![IAM Dashboard](img/iam-dash.png) + +2. Click on `Users` in the left-hand menu and then click on `Add user`. + +![Create User](img/kms-user.png) + +3. Leave Permissions empty and click `Next` + +![img.png](img/perms.png) + +4. Add tags if you want and click `Create User` + +![IAM Preview User](img/iam-preview-user.png) + +5. The user will be create and appear in the list of users. Click on the user to view the user details. + +![User List](img/user-list.png) + +6. Click on 'Create access key'. + +
+ Important Note +

+In the example above, we use access keys & secrets to authenticate the user. This is not recommended for production use. There are a lot of ways to authenticate users in AWS and the "Best Practices & alternatives" page below will tell you the best way to authenticate. Since we're only covering access key & secret, we'll ignore these other methods. The AWS documentation is very good and you can find more information on the best practices & alternatives [here](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html). +

+
+ + +7. Skip the description page + +![user-perms.png](img/user-perms.png) + +8. Click on `Create access key` + +![Create Access Key](img/create-acces-key.png) + +Note down the `Access key ID` and `Secret access key` as you will need these to configure the signer. + +### Create a KMS Key +1. Sign in to the AWS Management Console and open the KMS console at https://console.aws.amazon.com/kms. + +![KMS Key](img/kms-1.png) + +2. Choose `Create key` and fill in the following options: + +![Create Key](img/kms-2.png) + +- Key Type: `Asymmetric`: Since ethereum uses [ECDSA](https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm) keys, we need to use an asymmetric key. +- Key Usage: `Sign and verify`: We will be using the key to sign transactions so we select this option. +- Key Spec: `ECC_SECG_P256K1`: Ethereum uses the [`secp256k1`](https://en.bitcoin.it/wiki/Secp256k1) curve for transacting keys. + +Note: The advanced options are not required for this setup. You can leave them as default: + +![Advanced Options](img/kms-advanced.png) + +3. Choose `Next` and fill in the following options: + +![KMS Creation Step 2](img/kms-labels.png) + +- Alias: This is an alias that will be used to reference the key in the signer. The field is required but the value doesn't matter. +- Description: This is a description that will be used to describe the key in the signer. This is only optional and only for your reference. +- Tags: These are tags that will be used to describe the key in the signer. These are optional and only for your reference. + +4. Choose `Next` and define your key admin permissions. These are *not* required by the signer itself but are required to manage the key. You can use whatever you like here. + +![KMS Permissions](img/kms-permissons.png) + +5. Choose `Next` and define your user permissions. Here you should set your user as a user. + +![KMS User Permissions](img/kms-user-permissions.png) + +6. Choose `Next` and review your key settings. If everything looks good, choose `Finish`. + +![Review](img/review.png) + +7. Your key will be created and you will be redirected to the key details page. Note down the `Key ID` as you will need this to configure the signer. + +8. You will be redirected to the key details page. Click on the key alias to view the key details. + +![Key Details](img/key-details.png) + +9. Using Your Key (AWS) + +Now that you have your key and user setup, you can use the key to sign transactions. Since the `signerconfig` is used across multiple services, I'll be doing a generic example that just prints out the key. + +Note: this is a very basic example and you should not use this in production. You should store your key in a secure location and use it securely. + + +`signer.yml`: +```yaml +signer_config: + type: "aws" + file: "/path/to/aws.yaml" +``` + +`aws.yaml`: +```yaml +region: us-east-1 +access_key: YOUR_ACCESS_KEY +access_secret: YOUR_ACCESS_SECRET +key_id: f15fa759-7c13-44eb-a868-e7388aa1387b # this will be the id from above. +``` + +This is obviously used in multiple services, so we've put together an example service that will print out the address of your key. + +You can run this locally by running: + +```bash +brew install go # if on mac +git clone https://github.com/synapsecns/sanguine --recurse-submodules +cd sanguine/ethergo/examples/signer +go run main.go --config=/path/to/signer.yml +``` + +We also have this available as a docker container for your convenience here: + +`ghcr.io/synapsecns/sanguine/signer-example:latest` + +## Setup with GCP CloudKMS + +This section is still in progress, please see [here](https://pkg.go.dev/github.com/synapsecns/sanguine/ethergo@v0.9.0/signer/signer#section-readme) for details. + +## Setup with a Local Signer + This section is still in progress, please see [here](https://pkg.go.dev/github.com/synapsecns/sanguine/ethergo@v0.9.0/signer/signer#section-readme) for details. diff --git a/docs/bridge/docs/Services/img/create-acces-key.png b/docs/bridge/docs/Services/img/create-acces-key.png new file mode 100644 index 0000000000000000000000000000000000000000..ba7754950d98c2a68bb88b931ed8b1ed97088f33 GIT binary patch literal 173197 zcmd42WmlYAmo^F^xVw7@?hxGF-L;Sq+}+(FIKhKEg}ZBj;2J2L;O>5kz5D6zw|~L; zQlrLN>s~tbnsY`fD@q|F5FkK6Kp@LVi>pFFK)XReKvl!RfLjV&m0}MbteE zkF%jYaEAZ9^1Pj8osGC33Ol;PUypm@)!&noABM(9Q&(F>ax#mz7bm)IK zfV)PX#42~}a{e>qpTY0rq8R>fTVNm4|C%eL!$Nt9iZ!S3$0gwo<@;xmILBus|1Q>n z`renZV+UR6G5F`wwnlJft){!-Na1}qTOY1F^K+AHX2n&_ZxC)!{#{yHKD>`9vi8&O zEF=D?)T9aDr)Z05j70XDlAX~#iGRQ2r)stUSguzzV^t{2B~Ce|{d16iHeG zsBI=+jQZjDss)2j@xwner(G;t)E4P>hN*VS5Xxkc+n2hdgFAM7$y)XHZ9~4tLm{;5 zEWr(_lO5wA;<$Ck5F2&H<^FSy0dt=R4gNCC?w{(`m&l<8qHqr*_h>EhNYZ>82Xex!R=+N z%PzC3F53=+D1a+W1n|%OPQ(9m@cV%MR3@pPce+T8z!1>0#M*jCspfS~^lZ2!(l3YSp}9e1yALQ~mK|0SA;-$y@6tFi>AD{^Kpq3t){NTixYVdlEA?=KW0P8lZs z4hp!*m=PaI z)$@f_bN0(Bk};Wdw(U0>o0B=I5nFTsuG;C=>tmt0kt;*ug<>47Yoqo zD9okrFm|8aaSQw|qUjV2n$)UCq!_W-`=R48->K=+u4jqQviMoG(U1N|^S4%0{bycd znlJ9tcdBhxl*Ilk+epmzVoMUaiL}kll{(Ejk_uT&7c)BuyLL0!;^Dw(Z%iRurg>^F zR6HiK zj*ZuZ{JNa@JG~k&LZP7jz`oN=$4DTe@{&V#01TNOoqJ?9MW)#`&1bD@L#-n{pOXW7 ze*RQrLTYmq%cb(9)wY*#{ccCOCcIdVt_AWqQ)ldZVMI-+*>u@DZ zi`09`;0Rcja-#zV{m;h)mh0~45q~EUQjVIY>X!V^zeSv+95#HfseMu2KdH7N68e}= zaV$FZLZ|rQS0ZCtGM%0ZokkV8VQ43nOx+ya<)3(JFdweDpI@*ku8My)qJE?i`bx3> z75@{G)+_BhZ?;2jTZ~V=Tulmz#YFaFRvUEF4$?2gy0jC6`k02U(`)%{#?2I%zp^zS z?$hHtVJCf3WTG($tOzxTn4GeEL?)raWj1O|c^-rKUF_9wug=jpjINRoeg{F-uQ$o3 zzTpu{DKJ|{LJZ=M_G^y@vYO@0Rk2SWd`D9r@_mEN4;+}Z4xVza$< z_d=>PMn@qL{Op?9m}c|fd(Ar`=vfdX7Yc$3&t5?&GuhDs|8?taE}}gS!wAv~(_7+v z!I2W|tm%7pI?SkxrAxqeBi}EU$<=v=g&m#feA;=Qr+3=?!^z|JH-aku10Goc#}{+mps{ z)qAICQnIu-5($|%saLJ*hW0J0REb#Y)H-FyWn26o~AvfPyh?bw1Q#9P`o3` zO2cLuHV=>XIj6;xKBk$_n|MFn`n80=M$Iq93ssy1jR}v8yrV6@>ec5YTHeloa#+qX zjy}G>CUyyO@wjf@fzSDQ0;LdU@puC02_`ip=8znT)DeY!0%E#jzp*kS-g04u<>H; zcE!;5ThqxZC1UDx9x{jMbX{X%?KBHn-gJOo*xWLr)%HbC1S;f*^N=!Ub?%`#WN%%H zsEQB+Z9-G4AnY7|UpgxK`J@`Py*ZdwPd=Q0XxxR{sGBwJ(w=0@D@0>>0}qrpDJsy! zK2%agx(621SsizQs9A^s()G;O5sK)vn(xtzHDiB?`ONRr9cQ?V^Tzc$#1*snsHG;e zQip!)h4M`Rdt5O-E0Xg#?WOeznimRBZw-;L>6LEhV`Nc-^G#l+7IFf&7r( zMHAGu<>091_n&GdvKz@|Y;$?S(-_6+*5COxcrR#_r8_!&uk8=7?b<*jlSe?oZ@Lsr zkK}NrMf6%}$(C$g*p9f15rjguExYGa&)77o`gOab^zbo)_?B>ZT!vxz<}5aUILhW5 z9tf|b-<8*zV7jkfsS9%Bf`I=;on7z+&exkEnFND3)ZN8-GP`o3wmjYsU!hmFk(sBd zj&&tfkGSk-IbNGAx;Y+;qg_q}q$jew3s*M&^k6Ui#Hq$`Q~8Wm^s|vnzs*VGkn@bp zvy=W;0ASnf_v3Fi(^HdqJL7R!*4M#k+{^uGQvoKG$C2p#YAiQKV#;rSeSX7!jSx%Y z_5Is{L?mc41(PHc;Au_%3>%g|9?jlv3v9B&^4V9ow=b ziWHNYR9oa@7yTG|x%P1G zO!$YOMZzm;E+fsi3ZTl5=MR#lM#LdEnN6(&#KB*dzQ!qfLIM)?Vlb z&^RzAomFh;cP4dzi9*`7-Ll4YV=gAKvBQe{fb;?9C*>_F`CCnxIj{&f`Ru^1-lU8C zqr;;XA;WNuDz=NR-pBkpH&iwm4X`N+uiGFU_E7;RH%g-)b7ztw9ID{)0pJbU_Gn;4paD7?e*e>;J zHHigaADDE0*2NgH7!fqvz76^1{9}6fvcxf~Hl@ZLO=h*1np)y9{x)dPA8h7WMhvwa z2)#l`D=XUrOuONwEyu&7f{8Gnlvb<0?D=MkS;6R0e{fEN>ZA2ODViv2Shz6`_DL_k z7JNI4dd0#yq37$fQmgY`&V*o?qUmq8u%jT0$()0?q~b|6N3W>}_{XQIgzdy3n#qyB zzvlbwGKfOW`)gJ>ZKt?4=<%vq9hi;z;S3PM+<5rMq<_wE?)DYYd)f0|pSwp2pU?po z>68kspX|NoBQB?=x7%K^7OF;dO0%r2McDs#egTbKX%`TY2zoI<%c{etK{GYvbqvy# z1?~=5Ive44BTPzydS8KXlZ|U3U|G3uhi%1~lqK025z|s3>Ulr_wm`(T-?SDz<&vAz zB17qKzJTT7y%&q?f~c><;TQWFCajGh2>8&c=o-s!r5ER77sF!gKF3(C&UZOjHR?*u zXMenvzu1Flsg<%dN)|l!(YVwd%m@|(`W^X0x=(oWaC)I-HDfP7Sb=#Kk|dp*ww`{Z z`(SbKXny6U!ffQ^mYZ>^c9)Gr-$#Sj!UZE(N-?=sq<$w{5q||hZsSWn$jXhg=+qVGih92I5N)MC#-88D z1Y>{NdRg|Z9WbW(>pQI;oPQhMx$mPV(ZN(vd)wE2E(ah&*R99e$F0DWc~ ztzZk6lyv`WRK1D`vm4y(ft@hf6;a_^;%%se&u&qTl))_ny~c3b>gqq)D`qy6FCi(U zsrf`W065Fcda7ZLd1cdj4Px_q^`TWR4Dq@3)CZ-pDZrSL{biISZ5@KtST?+kLd%1_4aSJIn{A*8UwNNjY{L%X)%!o=a zP*t@=$J_JyJ~GPJP;h?!5z~&V_Ot3rwJ&8hwH9Lgl%}LY`e_U5J@R6nFHCGQ}T3PDsSLYLIq0P-uTXB-W#QByL0GD85Ka!n;l+W#K_Kh{u_o``KU4490 zN7oMYYH$T-3$rKuB3th16TM&7tl{tLq+Je*h5^(0lDS;AC=I z1I&JDsfNX8=C5op5TPQ`VRc1qM8nZx6F6eg5%jPoef>rWX*`H{L?cXN!&tuu}vGg$AY1^hInvW@GrQi!ej z(v6?uxH&`Gs1_!T412r&)*@+OV{9dPOS6_6fzXa-Nv~Bwg_gdPB|)>j<6$7 zPE;m~p;5h5N2=`}_4~xjbCFvTP9ke`JBoDYSZbPTO8Fty>?31$0tMCBx2{#Eoy5#$?qjUDZM)p{#l`*=g`jJr@~K{ z3X3FG^9U+9FYu29M47w>UtL$GEbieNgCy3~+jS6WHQTc0tY%jC+hJrYm_VP}r37OU z_xx81(qeMCl%AL(igld-ssI`l>r)>SX0JJO=k~|wWS`djX6A)@JS=T#%h+2ig(ADq zak{AJ)m0K&74CApvNK{cWwr{-i27LK6mogmV>0=ap2Q1rSGw=na@4C=ghN3-(9ysA z-=2!1Iw!VRK6Rh^|l zp83OO%}uYT>P|MNK92e64HB1umNKWiQ{Q>Z4KB|E)QX})N28zYBF!26rd>8Gt$G$C zV)lLY;rB+=$9-sM1fc3pSkdGv=WokDEefIi5y6|ADz5WRNdP{!nwaz#Uv+=TM z09X{l65WMESHk%xh|$jl;bkekRS2h0489jO{TmqOSJ^6O7b~X<5R0Q5DhzXNx)VQT zGOHz*#ZQ0KZesv&vDYiqU0vHDgm~_wV<@h!a2OXwgD3ShT4GHB=1~DbDsMcJfg)9s zJ!u%sxmLO?XgFN2ZDNz*crinS6Z03LrRL#=DsFbj@2)TELYH#%&qfwpB|Z<1fm>Nu z-Sp@ZVua2Yjp&k}wZHcamcQB9m(r~98HZ>JA5}n#pHdDhjc%G!oB!>g8WQtXTBv^0 zpdStFALe*vw_q;ivrenjZq!Zutc1A+i&cp}dy$(&@u9)UG#Ui8)5&JQU6DlVv&B2DMa1HAk>y?G%7TPDP)!*vHaQE;Q3= ztR&!ZE=J11`ef_w^*2rs3rzW~3nm!dbAYEh zCU{ZZGAsM!aA|g6eywwh`UA~_+$S!ZPwR;~;wPoW@40mlEXquL+J1bPVh#m9(1L>rV-ZmLd>g79ND_ zL1cwr_YZ#jz!5$|;Myv?#5t(UPU`>qAPOy02){xi;FteL@<_4kQ1-)Sn!?H_KV4Mp zFaDq=x#p^s7ODZ?XgILj^AoZ64>sfnJ{R^mcew9lI-h47OTY&1tB8{58Y(dl`I!Hs zj>M)bVbeE#F{#WC{2VmjL`#D`!i>M^R7+wmcbSTH%YAvbIJ~~qx?oTggsvkzd?y~V%91sD-du-L0eGaD$xCc!-VbzIbKnl zhp+!}9E{ZwGSbYQH>$SF@X1)KJA5KQc220{EK;k1aJ`JFq4O$;G1YTFtiman^%vv^{GZ7_`{M3dOd@<%V{P;fYEBO8T*_Z{hicVLZ1I?M;i+mc+a5v^Z! zzlgT|L`p+BnLzKv}5#YlZ-|TBpoSfcXCJEdxWY&tnP)`;3syAqVldFP4iUpM5P9 zeP4ExYUXgs29~lsV=ZW8WKE~|6(x*owgjyNLgzbSm9h$<*1@RHex8m2Cmz(ikwnVoob~fedrnj!4hf4}$9+6;1qJ)p zk!w-`N#4hsc?r3MTdNyFOWjQ+JW?fAM3@gX<`;7Ru;LdmD=wj+qj!l-8nECJtaRKo zqp|CnmIE`%Y?&IJ2Du6RzUeicVUNmAW5`;J>s21C*IL&UPHJ$>Ec|5Nj%@=*zoORL z1C-q_uX$urPRv{LE6IdKmP7+ek96wF<8H`r=j~=RoBKx?Kf|@NaCf|I1U|n$5nq() z8*#?WX#9r0o5d>< z%@fU@Va#tf2~`$=O>lH$V^h+!vXJY=bK|q{wJVN7)pk~>&=Ddr8_D6)_1CP6*}tjW zWmnRx4MR;ahKV#uX`iCEVqH^!(frlA&C`zc=dOj~MP82(`Hn#Q@cPs5E4k8HpM zqLCrCd)JyX#kJQ+?T`BzGw3Pf)gD+*!^@-1-QU{e-OJ|G^9^`j1XE3j7XC%wwB*}x zFf8t{V%8U_F8Ndq-wy!q2~qRL`oQ@{4V8-&IL*%6BmGXd{%@-lGMP-i4S>M6ZA<5_ zS?DXnJ^4okarLEniQhA3$@52xW1C6TMe?Dem%l7(HQ+)6q9G|^GDK!AMt+Q?6*^vN zCS2Acl2w{OAj;`!vnyz~2uD38YseKqZV$<%y+X~^ki*R4rKeWwE3lcna=qqK#;!Ct z%M(}4b`+rqvi1y?uc3uhaDFQc23V65MGWH=nxfemkU}jQihUU5a!CIRe__tCH7sg( zqc?2=RwRO7j{BG%p<7T0EUyuPU4yI>q-@>KbX~fOiux_et5;ax&B|sh{ngtoow03P zVPt32*}yztDUFwI0ex-gaV@-xo}2QI!xh6e-;^P!CTaD!|QVY0_;2ZZ#sQ|l(bFn zJ?1lRnc$ZSAPgQsuzOc`fxQ}^KYWzL+wT<+z7rG!L+!(CUNcCYxD$P+sl@FX#>2k7 z0)1D(5NVibhW_2oT9>#rm2D_7jN}CFSA>OkxTGp%#yNuCB8=*rZR8z&Oao4MPJM$k zAGS_ryuTxYVp|lKLTk;+=#V+G?;(P3sz(=X%Db5j+sf-#f4Xk=Lonn;r&d+5&!T^M zZF`R#)DVygIv8gI7gG=eMCevEv`+{Ga~imE@U>E6L*+t1g_4`1X0cYgzQi)@-cjDC zA5@FP?GDrh!mmqH#H{W;q(8gY1DZ%l4fUyxxAe7#w|+tum2;^3Gkz-+h*F2UbMx-F zwa(kx5E<0M@rmuj?fu1$Q>q6Y5>~}4bDEERvpKK`b8o`qa~)E-XbH0rja==$B0ckItLYF18dpe=^ERI9CLt*)J{@RDc&wq>n-`=O|4 zvL`_o02LM+o!A}&_5dNECSepZD&|j{Kh2g(YYq?@B6Ck4VBZSv7C8Lsm5afEMl0m zCVlktFhXcgQD0&-zAkYC;QAVX4ab-x=HyFGtD}nus8g~jW>Jq&zKAuk@M!xDWo*j? zlJPIKAqHa>0@d+;-q)4OUcZ%u*m2=pCz#{C9a35ZH9r38W5@4(}L4Va~yihikR zgIFkpg+rL-Y=-}^@VT2BWOVW#;c5o_^*l3N8cbhfw3l%WkAM)dzUvCEa~wm-&X1L- zCbHpNK0k8fF^ie33ZUIcz{Uuq4>7ox4edb!L2P^A*@!%|Z!?qqxJv%MKTGDm0;|KdI%02Rg(6umER88MT3j)1&ZKVWw#2|0;51NpPr z@rWs7UDh?@Xxz*CqJcT_Yl>5^$=6OC;yIy9koTR-E&u7o4I$TjGuu~3F~YvLso-Nv z7np<+zXO}NZ)(uFMdU0<0jK_U#BtIqEb0k~MQ%!cqp|3ZXdDBz`r&^RzS!RhT zn4XarZ5IsfRy&G%a3eeP!X2d^zpQIb$SS;WW!yqOU;&BK;~qpBUE2Cgk@wR;c-t{6=CQ=UCBBu0kDw9yl2v*hQy zHv8#hwxx<$`~@g=+1bse=O&ze_a+gvWGr&wyQlr(@#;&VI)Z)WjfAmbt6JTcJ%8{t z+khYJrs|UHNI3x+$<+(WlK7}TnA=2!$VMG7@#&?W4SQ4_;*v{^#Q?YCKL%B9lLnm> zD|g2U$a>AA32G%f$Gc;7Pa7gUp06G9*_=|U1i{^0$d6fpq3AFLcs^VFaP4^GCg}BE zjCyi${Ln5_(Pf1)s)f@pwXtC8`QtQiec&=TzU+)2JjbotVrD6T8a=zg1v3jg9SmZ% zGPlWEEVK8AN6M&#($dD=ew2nS{=Ky-+jwNPOeSzH#%($6PSD*L#Qh#d3Rdo`o<7Sv zD_a9b%Ima=(=Arp-x^5fLXK%`gYvtr*4yK6xzHrY!@k&nBn>`o1b-4N?a#-JF6eFi zt`s^-AS5WBG0fd+a!yBK$!0d~SLs>8LA+~^x#SGG|0^jj(#65Vk{(MTXSj28H@{tjtSEn zmwU=%xVav7D{+R0elzRKc?mbFfa-wPf@_D+6*+_K=Tr!fBT7@3TsFCFXkAdE!hVyC z$vvEsckpM)#7*ruKSH1%aqslVz}JGzE<+M3h114jP^43H{*~1n(l!PFNK++HD zd-;f?7c8W1@%vMLiz?V8Gphfa$;9%-7DW4wc=o6y?M&h_tB(&3qqQ&w`fmpnSxFzE zba@>&@I)8ZI@%k1dOgqK-~2*E)c<(DXuI51qI048eh8s*R6lGW2BR`o^9G~W{T=4ROa?S4r?h#Ipsttj zwr~j^`E*{bTw9|zfYp4A#DOtnm+Kx0w%cY9)}!9KNWom=aOUcF3e z_;!eeHVMSPNfN|tW1rVuX7X&9WO6~X=G7PwTO-G(wD`^*ky0c|zjD{rtWriPCxa5D z!>vveSzy3ng#4K?|I&A~wfBRgLtku-W+~Fd3VFt#=6-kBrtU*P;0U}B5zAYb&rQZ^ ztG5=eTreWcSYorv(ZpjYni0l%z+^_ZIA8lRV(LNg!SNofk-BkWxA_xORm*);fGmm; zqxL6cBY)-1@6`MwU>r+p5#2+2dU}iBrEULP+6z#!B)1X-l;|c2930aso4qMj|1$#D z-jh}QLpjPLEg9W(cuYyCCWVvm%V@`-T;U*>Emf`s0G!o;(CYEhCZEf$q*{oO+Y%l4 z^>KXJMdim|$qe9kc`)#9zMo8c_yID=s@&y=%OASpAAMZp#qoW)#>JI9^SP&U=5nzj zE=HC!O~H?#&?!WtK%ipKAUZ>Zv4*(<=io!S$)64}iyQJK=Ml6r^@?h&TUyH5H0Ct@ zhYtCpwU$Viaz=&<7Vh}{AcuGK(!LMFZJsf3dia6h1?{VgF^5 z$pT*nag}Q$V6`o%v3<^JRUbwn%k0{I)|H(7TFny?TTSS~uU|^Kz<%W*2HW|ffeM8l za2=24l-YDdlX5r*?mj2Z?PUy)symNdu^1RZ>pN|ExGHpPM?nGL8vEnitsXutX3#>_ z;)&YFiv$}LP<*n=wB0IwjB z;v<>_SreJ@?{s&@;}7=*g9O58NB~;hHeE`C76ia~sf^X&zFKRb&7a#$yDLOIT61fT z1=HGd?LZ8T{6evJEF2|a8LwN+RJeziAE+H7K~bDbnbqzg!wId;y7fvd!Zm9}R}{=cw+PhCZCZX)BY!SP49#YCxiXU=}|BCooBG?2~aS22ZMmfFs4O7oOf( zn}hRxObu9-!6B}(c~`>QJdTHzQBkFQBT|!ofpy+zA_r6bM(d`)&)5t}fScE`;;JpR zqCgVZyKFRvv}*0DKNI%esM4UXCoZJV!+p@yqmYO>zV>rQEvh}fr}O^lhJ<0ko9L$( zHc}E$2#8?5)buIEd_pCe@A%2oFN*6q9CK5#XkUtME_gP|=Jc%o5)m@^m&G}c!RMs- zX6hDhp&f1h37O<&VswaNw2w(T5#Qt2`RC=G)1@6JD{0vuQxwta%m?K7PU#fP16pvM zXhBBq>_F6uP3jfQ)Tn%5kH)zFlO@36l*7$Iho`aJdMD`B0l;mlbVlEEsoyA&p6Z zWrJFg-z$rY(>PJQy)c>Q$ZRyIm-Qfu%*bz_OxLZvNy&aWS2(#XdM2bJaZ6jCX&Ilj$H zKE@GIi3NSGXos$R%ocF>b5>yw-ZG~@?7>FtG9I;zl~i!uh;nH-Tvhlmq@;{U8&PlD zc9%>v)QZ>e zk%@#1d2ddrc`ndrA}Iax&Dzc_3clEC>}a^7%Back6_5^AVipeaC}n&pc}1dN9N4jg zf{_iFW`&MbT`|RBeiuT8%=O$}XV!pFK?kqFg?qDK>cnRN?x~srip5r9%i?8rgK~#>3j?dwy zn#>VMGub^V#WCJx{>+f`HSoG;z0^Dq34mrtx%mMjxu zPka0U4_Nyy%1; z_yQDEMb|D#$iUH9@Lc-ZO%gZA6QLF#pD8_AyVV#sf4{~OKm|_e0+=wh=%^Jl>3z1_Nxg0-DEG z-6iOAbR@^Sjf8DB=QWIM#~28qdTk=4F6+&8JSKW@Vqe)QLOz|LWH@-C23)wv+Y>i= zh5h*qq^;V;UM)*O*1&xzPX4u*F%w(?($Ze?CnEI;uxjs$W`7a z3U-Xc^MtJtj${)LP?0c|JCVutsJ&dCIyAuggMSvlDt% zFrFf&V*)2of5N*q%~_+G&uBaffH=TmQRYX$LLpD@Dz~o-0bL+&Fn6VxUT{2dW^LEn z*P9xQb%8X~^pttm* z9mxc^6YJaUW17OoVDC*_kn2F)P049=8X2`a*nI{jQzT(V%FEp+8c#1?yd{e}`Klu< zgM=F8El)o0c3jCyx+}?`bY5lo;!fI}PN(`fCu4xvaONCzJ`t3(26k-W{>gM_ z4a~D{wYb;L`{!6Vvr^_H!!7p;;;wD{9)w_jxHN*JpN*sZXtE<}AH$7NUZ~)lJWI-g z)-;Ah12mxMg3yj5&CcMFfNTAm?1@z+w9oEZ7;yJnyaH$qYf^cY{|y006VXur_hmcc z9fJK)*e35obc^H?RdwjUMGX1>=15&2+T%71 zIdEe5U6V`SU2HSm@sRpVD{i8?PN%3X^%>6po39TJaXh1n%yqr^_G7rMyQ^S%jfXo3 z2`2jtaEv=KVp+ZCqi61(=)fjLY@)fXxX;aZodmOjc_`$2DFmR|suM=F(~|HXR!F$` zxeq~_C~dobD|q>HhqAcW$(Iw$O(q7q&u-I+v&i-?hxfiOYJI`P0&J$kk*oB1)C3r9 z!hn+$WN$Lnmfpqin&@=&_jp`{_D@3}jOetf8YN2XW@?*reO5Y4d{%OQOuqX+HlduxxaC z-#VJ;`z3xFf^y^nrTvnt@;7W7(4J@Wmorp9g3oBZ>I@Wa&_unJn7} zlH@@c|19)hKO=gO8J`+tz9qYX*ox8QOun`FpC#POkI)+3#Zg5*f`PjKY(#Wq<-dlq zat=rX?k0ualB02JWNKBGsk&4mWFDV|{?}kQPkP~`5b!=Qbj{_Fu-w4b+kY=R0FTg~ z@PFFQ5dQz(1`eX8F&U-o3RS1}pl=sRP$s`V37FdV}uQ1<5^@^%FEI}%+>hxKH z&WgM)H%WPx_1SSaKLq@1+bs7FkC>Hm_>pVR6y7(m0tdb!%)5t7geJ~n@3BBc?_(9d zzU**!v+=ON#ECaV8MI#O4*NX$ts6GR6k4kArOmy5jQG&`((xHYIjM#pgr zF8-Y`A@C&Q-W}i&ygix4XCHr|UPX?t-(>XRJhiJHY2~ z3rTeQkG)2>6CY&Pvr7+dqYd}IhycIaxCa_5yflk{wQg@*%5+8XXz8xiQ8AnfRAYz z#-F%+;(s3ddwewbwY4FT?eM&Ah_Ot-*Rf?@5v>%eJJabd9N`NWjzX#iXm)=i|F36e z)^B4N273JYHM<(6K`r5Jv( z^S7%1(41;91jvw{mmyRP4qGI7Igd(rE*DX)M?-<06wERtFM(z3qyj~F?Y@zkg95M^kO6*Q=jm{JzUWaz1kF@ge=8ueG9l191^+c}J)Z^zlTn8#atoSq0g+AHyEZ&xL)b5w#-!^^EJ1?~it*uWe89vHC{s0^?PcJb(g4&EYv* zeu-Z_p2uw$XhwvmC$W&}Za;F;&PDYWq5hM>@T6zddFwBLU^u6qZ-?mPY_~YUM47QJ z+|!E!8)_7#5Q#p6Qf`<2FT3SePb=a-UI5}&m!}}pr`$1jv1L~~`IhnpSV*fE5o z_^JdKD8VEjO4YGmId7v=mcAKZ=h*A#T!!_x?2+iS6(u7+^5yUj7iwc%H$CP`Mjcq{ zKy<&N_79s;^G}Z`QA`FHt)rsq$m4&!6j&Pz_c~ zKD3!5BTjRj1SpxUP0&i}qY^t-@wKV0hJQ+R=9(PoA4WA_UV9i?hdq2GTiLj0bFn4$ zJa##u_t#G>pN*0^&Z#wft+tFi(Y(Ld!1!gi16Y4BxJ3r^ZJ+3B>y&)K!QgOhG9`^sheai<5Oh01tnQ@s;qI%pXIOUdNy#y?_-ZM0 zd}sfo$u%ac#Y;RY&Nb=2%b#5W)IEL=TXjG#^YmP!dvMCrt+sKSZ}VLW=p8V10W}5+ zriyAxH&TGs525nj$SB zAOsX1vLX1?`XOobA=5&>c77xNso8wHHn#|r4`cO!lx;Q`80z)PJgh0>v#mR_ zcqd5|ym-xax~GjDM&75HaZH8D6+hLm=||G-wM4TwsOoBkj^DbbZ*V?U;!Df|6rGR$P@=~J6&Ijy!hVF`01RlaA0Gh-vwwGxV8xnOn&V0Pa?MPo8P9B z|5c*deA~iE_GckOMHIxm+U2eWqHi!zSDNg+e4=tB%}`dod#lN6`TB^N)8g5p+amfL zqO@+;8|@;Zd_(j@vx}n%;2##iymNhnN!Nj5uqZY9(esxQY}#S%Y;$aiTQuSR8<35- zZb9i1Nr^VsC9Ak{ODOUhYB*k)N@U3%aHgNu3ir|_)UfuAHP)>TAI$3Y-62*q9bRwzOck4q*Ar{FT}wgW^Aq%c+;)+fr9GMP^@=EyJ#GPLM>VUXx41_N5QdQ5UeO7TPZTLD>u1=ckI*YHyZ<2Jo9KF-+Xk-<} zX;VtD)Exm{pxK~*wIO9LqW0urXvICrww#N7Mxi%q z3BA`U(H;`8DSdjcHT{pFh=!&ExcghRGLvtsMQhL+C!gCXoI|)L=>4j%sBLGhl$A)Y zRdY~VGMP1Nx|zS(PE}0)Ra`VA)L?kaGQ}!9v$@uT;N#HQ-S5RKK1SPOQMyWncth4f zgV?(VITc(#V?bc0r?Cx>>q`i~-=%g`>==eg0t=r*e?aIA+Nod%y`GZ&_ZM7u%MRd2 zyH;S>V|C~at!V!;_6-reuUb=jYR8I_eQKeff7*brJbB%DdW_T2sRCsVE;9)BW4l>; zoohoO;dxP|P}85m%hU(3YQh3JK0 zYW;qSacZjcOn|Wf+^t9;t51a~zmC=B%J+iYYzLAi-qb9c3x7ua<^DT()jihH@wdk64Jp5>tBOTh6_?#wViCQjZ2w=|d1$eoDV59XW%d%hK3p(! z84he&QY(h)lAXA2+=JgmHh*jvD_E(4igVzmEb(O)Q|s2yPtsA?*9I zzd0_*Z*zeMTaR3Pi1oG=ImUX(dSLpgq)GK#Or}TtBn1_n1t)2w*PBooe-W@! zutR^l#c{7~2T8uL&n$uU$GkbDz7Uyurse=Z#=3baRLKBtIzCr0F-|U{bbTGV*UyG4 zTbo{D_$%g_qn)aW=$FQcP~j}g4J|8`=haeUT>H$_MNnF^DqyKK2IJ|);MRZxmpvGp zWhRU*?ubxz>BLwccg2yJOq|k&yGt^P+knt7^a@D{urvD{#A@Q}U&gX5H_>adNJHHY z9SY5{Pl1lD_BALK8PPoE*y1=u4amR5lcJ&KhoYRDvme!7X1YR z1W14ccL)K32X}XOXK+GrcMHLTyF+jv7~I|69R_z8Tn3pt|8v(l>)hwtZ{08bt?sU` zcI~~Zy53xI^)R>gE$ukf173YyHz=06B43s6pPkdB%+X>oodo5AG^L zk78Qkmkxm0zhFS!lKui;wcWIqkmwP*uvVO{J3cKO%U?$;(8)hcF1W-P2pJbP zg#3+m@lZt+k{xTZdkEGT4c3-SOZ*XE2FbYZaa zuJYx>Q+}2&+)XGR7%O|EUqM z-!&FQUJ6~#@bRowL7xy+2z^Fm2ez@fJWCLES%pV&jdDS1G>X47u!I0UY=RjptJW?A zUc{xU$q9VVDQ6ul@afp;VgB=@##=QC4(aK_qoRO z2SoqBKFkgbV1I38KY}J*4e0>@<7#Nl^SV3XmHh7%-v8I^_kV&+10G~+T`)=)e8%|3 zY`-GCjh||*YNWU>#9R)vZ{kv;lK`Ld5{d7=KYE$N51+XS-{gg(cgLd>)ttqY8vcg- zK;7c{Z-@C!dGXNbbIZJ!&8Jw3<`(LSb-X^Z^{F*Iz?I;JNu4# z|H&`5_stClMiwuW;x3ZHRN+Sc0rc$^-lVKF@#|Ox+AtOfCWy4hW1tECLTa$qjQ!vb z5UY&0kH6nN*hm?ujjsRLCfUjaw|cR6!4u!?QvlsF^Gk7;!+Hn3kQDF4vd~4*>7T8d z{XOIc9H~wDsHwbOmfl*wo2d3M=89mcr#zCT?A0U3fZsKcUi%S;q>%yr!&`0x@_%RW zP!g8igygmoWWBBu$5tof_zA1Z8!~hQ`huh}Z(-%?k=9=KuVn>#U-c=C-8@G4cmmG^ z+6F)qXrlU|70TNw=+;CJTl=Y4%@!iwQ(zwP|2tOT6D}HhcZZbsdW*(REb;x_w!@Zi zw}Za8Q<@eZ!y;asU5f@?UMDrLj8-(!q7-OHp5N4w_?twX+}?5A>DmN8$6m;Gq+5`5 zIvOEK44dw*7p^A>>~Qi`iNEyS&%eQD20Ch{Tr`LpBqn$+<;%D_N}1D;DOn-mN%W07 z?O)B<vSC{n%3KEH{p-NBkPGIq*_VhqWR4N5|p`wtiuXt-o%Ah{=-{~eFwU zOv=oXrdOI^ffr+%m(0XT+AsdL4hDV7dgIk5#Vt)OkGjA-Sw*9!fC!E>fL5n}2#cxC zRWFN!1(gvXwIR*{ZxOdz^;o>{U1UD>HG6E6fsrvKPxI{W%MDY1w+^lyXJVY8?|mtH zH2Z(92`y4(=c1iONk*V=fTkw>d6{wrhQbTBxUO4xxv|RbH{Z)^tjS%*UYBG}NTNL@ zn&V5;EFZfMmMP%Hje^EY;j4*5PEs(R zW=uZ(x76Em62R-p%JY9VW~}Qg_@J2tN_sfs{|j{+blhHU-4Piw$QX|wnN8Z^t0GlJ zP65B4e?ig3(8qoyov*N`@k+Qc3LRZLh4B9(QsVMzh)1wA;S$L8m&G*4OWJG`1kB^S`@1C|L6fAPLBMfrWE>Wpu!j^_AEdhh2zT=>pPG~?{~tNhmj z+d#kPHG~H`Uj%zL1!%6XX?O=x@ zR`e_LP5^-XiEp|y&mf=OZ|@c9Zpl|0t%JqZ00y7Z^wca03kCi2dk%X)2x2uMk^MmF zfG)q>;d(hgs3@a>Hbf$nmG=+xSU2UK7l!muzoXn z&)45Yc=Z;$N0cD}lag2u`TpBgw^!!tZU!!`kL;Y+!nfDo%2aX4OF=f4A07=d2(9SI zlZ3~wy|J6gClP)3xNo|b6Ii$8Cn{b&wSxqHJt0T342uWGTNT~)@+DYJYsbq42~O73 zkO!T5$0#@$dKm8kiRVPJCCR{zHMjscpiv;2DEn6S3_Hvg@&NuDbak-eDamiNm`TU) z&u0GtDm;2nj*w|Pl)JRuCytlXW2$7b589Ek@n^ctpaNfTzRPKW?_|k8Zz|-=BFJXG z=FprzdzA54M9pVxo4vqd;li(0?u@VhCpuQ4u=q~xT$={+djTCk)BgUh2l9yIR~AqFwI=lclRD9*Y+Zr z3GEP=Ty}a$TOEZIPNl```2?j0{ch`sn1^jN}V&b zH-rEsWW(`KjNN*%XzfEU#){Xy_KNcf{)+3h<%-kK#20t>$SaS!BoYX-B``PX+>*OO zGhPs*J#A{0Rn&gHgIRL$Cz|%={2<=p zX^iZlE1-*f_0&zC;DJAXDcUOy@#4#FUF6z79+Q;5=l3}se)#^0KA0DOeT;h_bTrt6 z*+^UKwJ+9TeV(9Layu{4Hf=L0)`E>TO7X=fsb)V%Tu}6>J1nnANFVo)0C==6#OD45 z)L>ZmQuyMqpYdO>5wN@P`tSyy&0`7YsXWZ4I`WW!91#d^`8ot7S#)RoYR56!W9iGx zlzO~2)XwI|12j+(I!}Go_Tcm{c>Te|TZi$cw@9MP3`cTKw~_ZZ!W;?ruWdNQnUc;J zAzM$|2i$>9xzd%VEZor#71yFjdp1VvkY+VsU#{11V_`Bkmbq@0{o}fl>zh3CZxOjG zT5GW`$mBHbLl()l;yW$vj8{r~>_R2Bf*qn6Or<-XOX7TU7?0I2j*jsP>l_+$m&L9L zv0?qlh6S_7D8mo0fMY+DDf+0NN=Cwz_zt;=d!JuC3DxO1_=5Jxatu!K2crpm08g*A zjH~Qp`{xvJJGq8N8&SL_+;2<^H-x5!#gYy1zz2O{>!3uh5Kv?)S0}p-X^&3$EJ?n7 zc{*R$dfI=a4@y?^HE`$ke)?z2*P?}T=*b$^ZS!e7KDEcjXXKtelNvUxK}2i#zH;}6 z-;jM-gv;qTBXw6cnEumY(h}HHwHw5Pau{k65p>#=X4Ka_f;j-k4W#eI8GHWSzZE?1 z@UlgdnE{qozD|cd!_H0U>yyuC$4&-d z8HbgB0(zZpmMQUYhJ9AR6}E|EPEj*>v275_vfFc4`ItTS(J3W2OL@0aupr5IhN^xa z185?Qyyng9P_T5zg$$~01-jXtAy#AWi!F_%?n6kzI?gIvgIuaw|GHE?Z#C!k+%Z+& z8h0&~-a0>DFdet#NBeFHp7Gfa*kqG0cGQj%4e_Q@@ASDd1(XQ1Uu^2T4d*x<3M@~( z8$OL;?;4HfU-~9(jL<;_jOEZ>a-WRU6k6o+A>3{9%C5<2eRbFS@cf=mDwROP(B?KW2Z~xx@@z zouM4|$W4u1b3O2YWmchJM`)|%rguu^>;1FU zf?&NmRuS_$AJsF<83yH<-c(95-r-G^O@LKBB6XC|{lE?WmwJn3xasmE2dm5W?Omdj zk;l}L%^c6p2b~Q7WWSqJa2$FWdbq(`t(6U@MF9ACWFcDMtTC#Rf_4!`-Hf1j*d{o(^? zh;d`qKJ>oGQm&Y&FPTB;wTI)h;mJDvejfv_2?n7!IC-efG*(aQEGG<1b=tyre%K~` za)OzL)!0-|X%WRS&#%A<>~Kh|-JZI>Zf7|LKUlb8lDA|HLCiI=CAr=oT76t;_b*v# z{J&n87I;Y{I|B(Iec-NiAKF|DysQtSJc$K?`34P_D&Kmcqzk@b3;tcle3L_=cLt^b zI(G|X!aHcH54I1RhN0gfHBbtlbv&(Atdey6n+^3jyme&$5_SpVEmyl!5}RC2=H;CF zDPi-lE3)?MEw&rJMvk>pC!Ka?u={N%w4+lH?e!(hFZcY(V}9(%$zPW&6TqBYrkiq~ z_hI8w;!<*~Civ{xuwg@vDtLn`6?3@kbcm!Es7YRB!+$vNWVkwK37GOH-CF0;-#_~< zUDBL&6ApIp2O2F}uA}%yNd|OyPT8LK#oIsRMVOD3-LZL#|Nhq{`Q`|`sWaI}f39p_ zg;d-K`FO*vM#ZAqALBo=s>0E()C|b)=g0Qci_D4?#TtUw_Dnj7!m|f*Ua#}CN@0+k z+TF84xiZVwyTc@{Qv+AMqyJnmt(Fax@AP;p{4q^qD&LnRD=Kyay!p>-v-L7Pm_rv)PpPFfV+f~99i>}|J zPs_t45Qj8THw3$1mHE5FWy?>L>~T-key+0$wuXOt%B%e5zf*%H2Cr(+fZT0K#YlLn zi}DP}iWbo}#@^;VGlYecX9;RPT25}szhhpCYWTsPsE+|V?35)qgo&~!IzM01{$|UB zDCktC?O$^@bdGRxq?2@*whI9G?F&J1IVfWQojDw~9m$m)=&%{RnM&CC-9ZxDXw`4B z)D?n9?Oen8Wi7oDL46inPr?y`%MguRRgD|W3e~+Cuiw96P62H!+)Pi%RmT>Ef=z`t zFtt`D_9idlLtMf{$uXom3b%l8f&+QKob8dKgO4{kOF6n?wI5?DmXsGDF2|r=oKO_t z1tm4@0fq_48nDDiW31^RNK*yFpQX}KVg9*S_v_NFf^bQ4v#K@l`43djqcL_qT~kd` z>M$@7X%-8MA%V7$QXl)25Nh=cPL3Y63`F<1p%qLP zu^YO=cS)1^fc2pHw*wL4l>gkKJ*`nnP@Ia+o{g;9N;?-f(${DS?iiXtEGDIVF&ue0 zUxj68Px9_|tUKEA2+{|?+cyr5l%SMvDf=+?POs2B ztL@O8F{N2{Vt~1ImHx0a$VqpeI`UOKqOK;gHFv;MiC+0`7E>U@a+gq)=yZy%AmHjF zoZO5!V3`Wvlj0kHj1z_nbVc+127|n?kE$#n%ws0LMa404ax#UnyRPHAIHN-B2PU|Z zcM$1GKDQte4@!@2y>sXwi|G+mo;?f@>xaNu!l%~+I5t@L&fu`SnXDpjzK1xJS0zHY z1^r%KK8HqV_39D+4t;iy>wBX{S{9h#+c%ssTy*4b1A{GuPHk2lfyswET-d_2{dXl=)A_Nt>)F=r+--1dd_P^zGRd;U_9F;x5i>=0dbWS%wj zZ4Yxbnvu(`stEzq+2fEUs-8+R6)*~fQoGd${;InY=tdw{?{`w%V~`+@g_bXIteHWs zS_%&_tHeLFg=5;&SreYq0@df6jZpv0?Xb@PEQPl=b@u;0r+Q6m#|U^4-__Qr2Cx%9 z$K_zz)v9V6w}f|c!MoyoW7JOBV|T9<(%pu9G3tn?zN`}65MIs*VLZ>!Y~@(6t@_MM zpNaELZ3y6sEf0V^?Hz?;`dm(a#rkBPf4c7(P(42ux_()?S%SNbr*uw38g4rkH`&x; zLz1b5WJtQa``oTHZ;H?Cv*Y$10)g;?c>6F*}^(gNv)X>yc-2ZAF zO0d+&{;T28bJ9_99&p<+`6|2Eb5(e9+nWJi&j6?Tm1@#nGU^`w6AnSDx@mC2ynM-5 zmdgFzo}W|TAQceeyTenTEkk^Pbb|gC##!rPz=Lm(dx??gBqERw^2^fO%kLTx>~4!% zD9*cB2?5jtJi|b%a`neGO5!=wq1|@#H-}Re(0h=S;kC?UUPQx$sP3uHG|5f&$A^X1 zfMJ##zj~x*?q87Ja$ziY;)$|gv8@4E(l>eH8YPBO-= z%{~jCU|wVNc`(M@!IPUd#$ zKqxc+8Y8*D;V+vwj6I|$3Fs-o9nlo#j`L;=H0FHLk9QU>R$m!VO(jQzaNhF4tZUA7 zXVXFyOuxV?)zc1{UeaEfQ=d;_UJd^l^|*xJQjxikSl%-%@^g=N&v+11Kz<23lBR-ZqzYQnvxv>zGNKeQbsxy7A^;lp5~ zCI#YMPLK?e4riGVx?nH_X79R;tK* zpu=`0@8L$1Sz~u3+4<*OHjhK|r_-q}l0y-5e_qWMUlZv5GCk>UW2~36^e6nF23!<8 zqORN#R5Qot+Yxm^@}WC}E7%G@`ekLz8LVmJyz6vr!``E5&3(;&V*}7AmfiZ!E?x{B z$K!t;e`ta!0=KXXg5IZYWx;$WC)!)QPyrN-=v_HpIS_GANC%bW*|^7K7G0&2V|&1G zyAaTJXrApahtxRv7ES}$QmtO)gT3ot$;{SX=}Y?u8PV0y!1dmJvvYM~qg8nH7O$oL-D{x+| zKWIRZ%|YChLjU2VMjva5NM9=%UwJV;))0t+K`KNL&k9K))l>P43Dw%oYO_z#lX{*u z`^n#Q1Py7#PjV#h3V3+)4)B1~FClsIOpa0oMAf6<EagjmCW`|@d!-4*Cf;+?_L zza-HPw>|rfUEn-bo}R9{tK1JUkueX&y#JKg%EDg%JHg|54rBNzMBJPK+f2ky|@<=m$@@yMeSj&vN>h z-oG*Krbel>P@s>_%|&A?bG)T~QJvFPa(ktwkfQuHvbz(F?kajVq6Vdsa|>&xNpL?B zi6hmHX>|IukPzL8YwvD%>brTr)Daa-lv4qjOTeh)Aa>*Fo znN645ja+N3(SGe0>*@#c2_b9}?wXTFQHuKB?sBgQ(OaR+nQvv0F~@dI-@lgXPusb@ zn$7W&~LG=w2 zTpI}YikMja$g3sZeXHEvMa{r-YVmBH`c;ymyqEiSL3<`1h9Nf!G_D-^yIhoG6GN9+ zR_(CbpgLqd`0TN<69#gyc8;=L2N}-!ww))YA8_vUCvarZ)D|&Qxby1vlzobEhdOR; z`Im8b=6`W=S(PodkesyWKWo$puYbW->w)+-kY(V zuY{n=OOGi&(%Lx!XiQVvlL=m`&X(H*6YgU=_;0xfEe|3kflQ%mi>>nua?rYeAxHg+ z@yMx*N)JqC*0Za+C!?W_E5>5DOBfjMZ=!uHw?kW6jeoBDRBR;DbAMv?U!`l?J1^#h z%9^IWiRAX|_&fvxpNB}6JTcGS$DomPjxU>HfHwq_j+yCbsADI`x z`1ff=+z(&nOoKW*i*JCp;`XTRn{@HHv0j31UoZJ+aI2GXX~KIfrXFAaGS{@l@rEaH zIcOJn+e^32&y9j1m2CIn;Z<1sbh*4BvZZyMDd^xnL0lSRWYw<1wQnhwu0AYdSI+8r zzyjsM;YhrkmdEes!`nu@tCw)bvISx)$Yy5HE2A-2J5JbJG~_dQ>`nZceWdno9$Cqw zWj?wty8iW%OCd9$J6d}lJUTHpFF22&9TrSvCNCwk_M^AoK6ys6VSG59uQ+wtzcN;A)kUx51pScS#S9&AV z=2v#0j^%3aX^1#a*g7EJF`l%*j-I#;Ax@|#ohLQgjHZ32a^VSHWS_8Ka^6j0^dG=+ z+t?k$0oV`v4pR>1H}7M+2~d%S(?P$m1+ABJHbyO0U}n0*d+*f_$=$tGPYYhc#fXHv z8X|1|Nq;G88h=j>y<#a`+0*-+9oI_6Ro#`DS)H<%M4f)(uXrNoRkZM0j(Dqlc5#qy z$G5p77A4ZfELbVx9WeSG-%2cNfGHO%f??tq+lYT-H!}yqo9$k$pu?s&*5L!T_bPpB zP;-_MvV%b1P;cv!ucb1jHKqCzpcbR}H;S7=kg=g`!^K2JL+u@2GZee0HACKo^XR38 z#*58LGYwCST|uQyl@b$xb@JS&l@A}sV!ZS0s+0i*cll-j=yN83533&D#@7Oka=Br# znq@wM-6ob~tXJAu^uGk^(QrWtjWC-*21;1EV;{o1`Bjki?bn_s?{^!n)ANJfCI*Pd+YccA6 z&zhY{GhtQ?v~+=^FFotSgCf(_uz!AhUN>r0_@m-v*Y{A7A;qpx2_^NE=sCq(!Hb8^ zIzF2Y&P)UKyOlz>o;3NbwjTRRsioVSMaB~T&5)d(ld~IphhguMInO7^YM1);!|UZY z(lO&71k5-DAfJ?NQyTa5X%Et6x`pi7SG9_;qN_q{JsL*onln1( z6a^&5+Plqn_70a?x)(o!^_^JUm(Js-&i0vm%Itn=7NT#;TrGgj^T&GiMWYdp;~;$f z4O&)tX?jt8&uRQ?nniR@U7b&=PhuRMiwB>ZM5ZeK;z)czW0ls3=(--xzjo}?FEmt; zROAnUV6w*xFp9NH&JQC6?SZSv6ChB(ousALKsLkkrFdWQFL2uzQ-hjLy;J8P%(PufQciHS=dT$J(0XJOXu-c{%i+tja%mY%A!6hyQC?J zJIfZNcjv64+bnbq04uxYU014WfV7r(@R)TF-sb4Gay@($BNT^6V-56lsQgys(hMr^MK5zA$d9O#I2^f+f|>~l~pS3@E0zN(x82PJO&fV^!WWIAj{_Qs>z>c zZaezMMBNDRu|Cp*3vhV?$lN+JK{B!=vPZ`1Ku<;``?q%GRV^5IiBq6!}*FH?3#s z>`DihyA18!Ze_Yi-y{dIYF$#-xk8n$srssM06)XV&RR*L(it!!wNHBa^7}4yT3pRt zhmusi_*<-p**47Oyd-VV$WH-v>E1qmb$8V2C27h*jRIRx>}0PO;oa%C!Ccdz>!UVF zl!I9=gWV1W?!C1$t;++m@y$nv!NrL-!;mq9owuqY zNarThWJ!qFMj!;mzwF9*W`sSw)`L$V&#mt#mLK#rW~vS3l+TP)5CJ%N2PG=}9O(z$ z(cWL{3ocG>Qwgs z;8!}~*{7Ab5T>kQF2baPmn9G4>=+qWYJ9-ab&Nu(#f%#GC_3#M8oNtsqtTW+tgJbj z1gbi_4!HW-Yg*b$(I0@AqhpcwAL%$ba_@cce%DhoQpF4QgLk7H;vJsbtNZOvo1s8O zqjHy#97G=jqu1pLLd@g*)Q7bp7zYSFt$NwhgoKc%spQKp<4=cD_mIqrfNHjX5HXU@ zor7vnWSF%f`W;N8>+p5Jemlm3)$fy9=(MZcC+amnzFW+2v*BV=AN7s)w-DkwvSeTT z$>89z<2_{58-qyxdHNKjTYK*64a4Uqdj)UZ5e}KX_736MM9y*1q^n3^_36Xfz3rkT z+b-K{mAWtbg!By^r{-YC#!iNcr7y2GEvDR@Y{M;V_~fEBAkj3aYY|GCG!HOzvm=RQ zIGB;)cXzgCZ^-jcY<6$u2roOC_3s-{S3mv3XJ%l{S_C{`P@eL*RqL7nMza^=pG@&U zOTWnKoUq!@cKvc-Y4TQqPG00YrIJCjiS>mRx(NA8g}JDfFY~)tk*n8h71maX?a0){ z-m5v@HR86ahT$@ptQ-v3Z&sE8i|xw;A?yEG%HF=HD@7o1F&eq0)w@q|bZ++cGrOP#n_DgA5FX~*yJsc>>=o;_gXx{MHv(i_UZ$xnztul)Sk^Bo`VQ{D zb7?*0VcVE!7!ShIi%V}t@TuEK1VXy<%-$1M#d5xs%%w}U`L}CVq1Ab6B=f(o~jx_Xy7knY`mk=WWf) zF&hJeHs7o3^!ny1c^b=fc6t|`(atJi&q&;@JHd-jOH5aN5Hf4BCOLF9x+9jmQ+9}W zFH%&Ln6@Gx@%m^Tv4_`wD+c?HM&RtgAm&lCvfOo8a4EIq2 z<^_G>!4+@Y!$>Fq0$f(drW*D>kIj7vx+xp@?xr5c=URK7GOZLb0A)?)$mx;oaP5Oe zUR1ZW2Iz3J)eBc;9`8LkG+}s30n(hDqoOMbfr=f=JBAG!8%MXUw=H2=81GQqzF7oj z)?GNeJ^b5qcG)k825S0wj}$*0cL^6}qW2Iau@-xprecRgnGmSdgi3MbaNDIOo||fY!tSHEb}FgBhQ2f7qcqCRO8@8&bb5u)&Vna(>~RJqVe?7}@-7e* zrVf6&b-3LY=-8Y)j3OP5n&{7AUqj)Gp396U7aBpe<$)@q4W|15V53XiB?&7|N|@el zeY@A~nGd>{qW2h?OUhjiy9YMC|Gp`O2;_T{yv9cVB}ef)hu(>MccH)Ac){a_0p$Tj z&fXKp{VZ+%UA8x0k-SYjqka&43`IwhI?J(WPKy8-uqx;Z8R8EpjDMH^&IzwpR7^d( zv+P^fFhS@hQUnc-am+O^RXWEzEF}hovs%X;9dz{1c*5(gf1krD@tR*2ecYu19G%P8 zO0NOSL(D^`!{9q5D|5E&HupvY2+rAx4I%=)b}Whgmw-jOrYBd*AeJJ9zab1a1SL^* z&Bm6wkLg<=87VJ{iK$kY{tdv}@f{QY)JhAju^mVL1%oNV z;6Fat!^!980QWGzZIqwk5MCyaR%||^U7yaT4s-i$&OktqeF66M=pSdF8kI#ReK&Rm z{iIp+G1G$?o-It}e>SGv@Ni-kZH-3^V`zaPB9qI62JFUtlj znCpov!_aQgKja@I+SsghqY2J1kx+2(%r-94S;swMoz>%Zn&sVDJaE@XRhgdJ2n4u( zPrXn=fRzae>sXug#JEK{+$?N}>G+-fWW`WX!UH-q1SnKtQ8?*Js5i;^H*>5g{L7xR zva~Pt(@8G~}8ps~; z(7D13kXbbia$9xRBwe#X;l0&ddvDhh@|q*C9;W%Y&*(5*{nV4@KpU*RzZOJZLtU58 zN?iS5XKO$*Y2mj>1Hr%K38<0ej0?KoLB?Vin?^8coJ>h^w*cgprg2udqy_oo4NU|j`n2Hx?8YQ0fGHP{3?DjOwZ0P_Lsbm>Oe?LOy zb_21tbjVYlbXFCW$SNerQaG`!8NWLr{bspUUKdOEq@W8&>2156{+BCqF=v12q3=7q z1l8vN$-kXORs5TBOzwLguCs;?e)#rDYeeVRJ!ex4_2*z&4McdaEkyBcyA6sLTWt+QLTjI-$d_9j+Mvn-Wlw_E)Dng=YY%g< zJu~igNKGwKmuGWIY%@V*9C_xud0srQ4rJCS$HqNO&)4Kha&xie>Vv$l^4V-oM9IkB zN%|UyAvJ-sw~mOO3L0!gadUp&@b=G~k{Gaoy=vtr@@)orMB0pdYFen&hfy50AJwYH z%&1(!kWcB5<2r|35E7+4oTx~jOlzfyw%%%N_2KcY2=C$OYnz2FsUlS!l9|X^WA>^{ z1ZQO%VIR*=%)l;_XFa#N%b1GH+CDVvR-LSa^F;NVWk=I}88158MeitT#>XdN=ll&2 zZ};HT>)l(q#KpL#(<*-FIjK&mb1mZ1fBl%Mk0~)dQ!?QGN&1RRn-}3Sp~hyRFxPvl z&@oXTzB-)v8;!$2d%p_(#<(j-@zZ45+Ne!7SLePf?)IO z1O2efNySQ120b@d!Z7}|@lCLZkR0YGC=>AK_5EboH%ga}#E;GA|2jmQe0N=#U+|xEC?rfDXg4g)% zL?Wb@7AZ3{S%4%*=JS5$j5ZJ9F&jrsRc6Fi`a}XvO=rtpfC$yi0!7v#$Ipd^{b`-L z(gJZo^~5KUw`KaHvH>dD%F}*mp#X@Bd!iqTdwKYBW3KAm|4(Xie6XDp5~1{^>=P&5`sS7-l>eDfh6zM z#jlVe?6xRwofsAK#E5?TDwmjzdu!Iu4y&1 zdI#I1F@b9}lv#|e$lNU@ji{NF4!3Hf1=J2$(ZfpD2)Xijd68t#-IP~RGnWdb`HRmf z$Oor;kKLwy1#kgSSH9a)|jx zr$+^FZh8LhW-?LHVg4;z*j(nI$zZkKO^GtEqBdUivGtJuj}ITCL3&s|;P%}rv-hmN zeU^9aNVc~#Ht9{LcfeetP;f6|*WaV{&EXFZY?a)o6Eq96huJ%sR{BGvs<#JsRG(mZ ztt`YG!zsL>4Me*y(}hCsK&P%gtN$Tm^bc8aaV0MMiYSZu=lD)-U~^kyo`8?)I{gM2 zN%NkDNaxE2(Smx6AB}p$H|jp(^Ml6rt;!8FFv0;c$c$8d{mhY9rxkBlV2|a ziRJXi>J<3oMTKu)N3&UyxlzfCUn7Ds%eytZT!f~Y4cgZjnF6yk3s4(DVqICWHtypR zX?1Sypg(GjKN#f{N8+Sj97zVi3 zxonIWPe&)-H`hKdS~DXS(Pk_-8RXqgqUJmNvYGw?|N09E ze*#M6VX8=}(MUJ#=8Fhe1Pv@nTTkep7P-)rt*e32Iht4dOjlA3g-Ezt?uwFZ)~`qa zl#7kRI9nq9&u(~^W+cZdqSn{WDbTN;zt4Kw+>C4~wtA&_+i{#EkoHdN$3_d^KW}RI z-dL=wMzbS*-K+Z#)_FZUIaE{gWuzJ(X9JX zXzoQzx1LTm!XO4QY$%Rzcl0>FdyHD=Kcj;E&|#nUtFC&8+0%sBw}OrNnNQzG2N9?k zX`#x2ow>h=hmer8I+$peROOY2-5K9NtJ^xJ=uP2sp6hA7ZRxu!Wzy`tco>0ygk?qt z#M;L%yPX*_miN7KbpiG3n4GONwIXl+A~mdPZmv#%@1kdou@1hotmfTmvo=!Fyaxxt zD8$Iu-zJ=?I_GNVE-vGh;A+>u82G2Y5|A1k=AvaY@x>a-)mqsNLT^ z?Rzr4*BDRu+&h9d3aEk65_$BYCUcNMN0>MRifF$$l1h*pw)rL7NC&cP<$iT{6L&Bd z8LS-zQTqO8K*Y$M8SV%qeSq^E~Zv=sh_2tVZ}XF0o-Q7S@ou(F8~ zKUVZ?aV8pIF6_JcpB?@%!57j~#$05r$hd4<1aoS3``y8s$(^Vp+mT|>jQE~SVP6CpAP7J6$ z7Tyx=7gck|sgAhDrhpl?tIaL1rR~!%Kp9Zei;_}srQ zZSds$xy!fqq{(|vphM9>o9Xf{(t_h$^3Y8Cp?}TVI_Lvv%!+wkb$W^7vy*NOqlGG5 zmAlQcb*`I4-}tinbC#GeRsf`Ltz&o&*~3S-o)x?3JfCAW+tBIf`TLB&H?AkjVSfZ#;z?S@nbvn(Cs-TBk5@rOWMA7qgJ`W^Nt zFAXmE+86_1wTSE3=taKP2zll}Ov#N5bkTaWRNmui##3*FFMM9`Q8*LPQi zKaa%lFGzP5ql9XE5`uVF9SS$14wB=D!c=gCw6vG`>x`IORX z2I~*Vcz=dk7^{3~OtqQZ$8v4=ztFfZm~snlRE7iA?cd|IEy;##i+1vmJ^U&lZkWi+ z3W*Kzp1|%wTXnuY`rMEYE%q>m)8*!@UWGHC;(0FHLfNGF`?;y48Im1=B#e3j zqG9_*w3oaIa^0p3F8;vT##=jYy#?u1wMam965`w71Hm}~`roDvvE)ci3X?@!Kv_zm z&IV|CaDPA(H>fjwp&Jts(Yf`c)D#+E9%4GGI?xBq#mHXLCYx{Vl4LT7Cq*Y%uyRy&Rb?Yys5`JPcs)^{I5O)!!7cs38V4NiJLD|4Z zwhz$tPpy{{h9o^d15&4b7vDX zw_8y=m8E2A&2IAJfZuzw53k{k)mpTwUNo^JuOS-0 z*L$6*`&jIy+O`E_2B%zJvkUf=Innpt=b`J$kYQ^nIiV-*+dC!h;N2@O)Y8_R5SE+$ z$o!dPvODR7Wvoe}cs3hzWjXfj(CDYI#&q2; zOc6-cwfD}nN!&M)F=C_pq^W%{a3DrGQBt^T8(~0SdNEf;c8w9@7=aBWX#G|{PgNOB ztFd1-Z~AZMo`4ZCo)D=-If##`WXb*-l6Mw{K=D zca&iC?kA6OX=JP*;8JhFJwmnCC1Lq5D_ zD573VWW^2Wgo~&AXcAm|A)~Ee&X_EV0D%2#Y23kq!)m5Yz+y~YZksz-6ZIHY{A(O} z));SbnjQaOuI1S~s)Mvk9W*$>EEMmBkv?HcE}X&A?A0AB--D#BEfLOXK>z5J^s+0B zeX3dcwTvA4VVCtavr%SUXH7K>D@e!lUjD4utOf!h-N}?3G@jiTu^xQ@H^H6v!z z!qkT}SKW7IqnNB_t>ye0xEQAosh+BcT~?L)LZ(q0n0*=NJtzerw9*NijiqLZ2#r{M_C?pS_4mx~QHJ)u9(YEiWDxzh#m1Mh1jeL=vyzg$OL zQ)2jrwLzg<+2mDokXP#nQ@mFKWE2yV%Q7vNV5~+cI2c|3ObWZrb{UQo1bhl-gk1|F zvA-v!bCfo9|Db|vBCma&=wRK#RGr7ZSAm%{|b7JMvJX#5g z+v(3QY43i_8(^G!J>9uAJq4LcT8^{{Mtsq!C|}IEFDV=*Se8 z^7_1K&an~P`eN?9YlB*n)Dca*-gm~p@?X(Ch;@X87tY8C>pW|qUBbAaF)0kn>baJM zyX?81W2(;`vlAvJVx;hzZNoIUX}QYNy`T9l0#)Z@*TMzrD{=Ngo{W!WWtWs&zj|~$ za!}7@SMcXHOG1B)erD;iTpRxqD9;}OuiC2#ZyZu`d7W)fYF33a(*ZB-jV|~I52FN> zQzI&mg-*Q)V|O9SzwC74$yW}`dR+{>9M$c|G_(2!Zxl?*l4pjeNoejrUW-#@?@UHY22*?nQv-5ir?A`#+RXK0 zG;}Qk9o!oAXtuyF#LTHEqwGKe6*iYUPj!dBfu{NVBri+JGv~5dVS1Qa>`h%yj<0=C|;q9be8!939y07lKXI=q8Ufvz2J6+6Tx26-}wfnOA zcpd$Oe(J7i%OSV-$KGPR@O2CjgUzJ@T|3tqC7GK*E!KK~FLsz8pZcKohQqq~By06y z=Ei=~(1i87L6Bo5sw2at^VlrH(hMEa-6bG7bV{p~v_r$t-Q6|B z&?OB+ea3U|dGERJd;Wv(mtT0Ed1mifd+pV+m$gg1$R`w9%?9l{{{#H)bK*S$s+Txn zm!JxpJ+l1-EJ4vinX~Iu>h#Cr2h^fH{J3X*Yb1x+AL`!lYCSgVDQ;r!nR}lpcBzOR zD6316m*mdj;a&*iulFI-l2;N0%wkPFhLJUNaif6P2O=}j7x)Px>|D{QO2OaJ0#7_AYp zm;@BSnRyRzbG7?o8izFn zk@nlAqDMIW;o?6UuZXbF&+oPCWidcZW*~?5jOFjKrx+QdbAF0`Ubmhijweg1w@fwC z!v1%kb?et}qn#4nhdq-J9C53CzGlCvGpj}6oSMfn6~c5fnyY4HMm_J1ZmVihhe&{p6kSRC>kL$FJ3e6-d zWE0^8=XD?cihHJ>*jqB{a2h*mT;%amPwGWN9M|h zv$lBO^-v+tZ{2>UeyyWZ6|7wX@AAmHMPFfe#_~2w9hKZ_9hTTiJGawyne45U?X{kD z<6p`2D6j-YkhjKYn;W~OBx_Jy+?$+1+%V}>uqEYp8k{Qw5X+Oh`5Um^Ej9!|E@@>|^v@kX zkP?}t&e@UbX$>Mbh-c&*u5RE3B!7NTo?Shq;A!8fNKB2MygZWt33B!`AxhN9dI*XK zI;Sy2csn;HB+G%VbL;k`G7Yc8hs(bBMsO`8uuuZA6k`=U^dHQ(-&DK4h?jgk{lM;-+8`(|ccOUj(xcAmwA8e-0EOB5^ z^qG;^UPXYkz(7$!fVn=S}>e5xmPw+!{;+J%m z!msIJ&qx(0I~Y_7*4%iFB{SE#;rV5*JLe}kTi>?u#RCbYJJ^3T8fyXfdWyVs15+fT zAueK=dkN<)-H#eSxaW(fk=)euBG=K;cz3*2XoH^Nc(ee`qpOW?8OIblahxY${&x-h zJXqg~yk#35jAeh(6GQjlN7MFqKHB%Or^;XEFnA6PXRE)nZJzpt-?$O%);FyNiN#K9 z!OoQ_Z~>=2wewkk=w3HTg26F_49sguq8u!s>D{5jByPTrl-`DW3=WkO_IY&2x6|>Z zy0`50=(%QT=?arLIRpxZ3uY+?-V*g}&ZrY-zXA`E^!njz=Stjx(K_bPRPR37Y^>OU z=-t!Q=WNZFy4cwEkrqT6(LA(_gymOVJB8gI%0=AA`|%4|#v0%caIO77*WO_ zjP6@=-sP#a+MYT_1}XSJrQFL&&BNxp+1Lq!O#)*mF)xDdh%8t3uagQQMBUGuW%TF2 zy8-`b~5^(c< zHZCu`qp~7MpkZsKyj_VUTA0b`sfC*d=TZKnZz%#m?vCmg6&yOO@$})ZSgiZ$W&9{l zv|p?qU!d?tc$;`Q4G0zP&=+m)ciK~he5PVQv0tu{n!GI^ElfKNscd)Bh&jb=S|42x zUUn;G65`jg@{E50UUW72D%3iDgm@mxT-k}JW(pH>Y}Nte^Vq zY#d)_)hk_-{^rXRHSSth9dKQ5f1S`AON)qM7n_G6c!?!;B0^1u1kyf3X=277?;Di8hi0@Zsb3>(3RI^o+r6|v)Let?k; z41Bll!IHI;h>gL5Ng37f^>a(4ZG9UmGp)Trn2?NSoXj~yG`nGzTnBYrK=mGEJR0?vJ z_mOvVGF3u(ZZ4D`b2FaZJxdrRNQahz(2*_@8U^{%2R8Yu zG5Y9u$|#b5exk$#JW@K^a2{qV$QXR|j|DWni25dyjU~{u3R8l-#J8=s!&m78N$vO? z=0q=;HGb$-KJ^c_usazWj)@8P}ZVANo~DO?U!iIbIj*keIB7iw($ z8LFIp>~@%N{%bA5objSFl+Z3AuCQ0o`eGlA9x&ciZoLXU3v*Tbc3IEy%A{`MhmrbD zS*?ooz3GKQxSoh=+4z3L+i)b{b6?uWJfu~8`df!(OM?YjRdLXym4eSN@ z765YBdeo++$|cZSDM9!3r^a~LWMDsX`BKGa^(3vdU3fziz7G`rb;fk&44La;LJbEl z;5z3X5kg-SLF%M>@`DgBAn`lzGP~%!UkMh75uI4g*(1nw!fphQ7PWF+Vkloojbm3{I?0>~dG-?)$WYcEpni zngh>^qX5Ob6zHYQ;7|F(>yT_Qoz4wP82y7I8aGe}Q5^_J7!VH58?^pog39OszbXEO z=&O2zAMER4;VXdSi0&fX}c$CKl}oD$g3b=(5?lm{yZZ?z%*k^_5oYDLD2Q?a=~6 z7GBUBd=zat<`h|72_0-gf{qYv_DBdao1`j9pC*bQJgDy%+~j%dj_PBBYD8P#UU6=H zvjhh!copFe^w8Sceyy?!K0yw=5!ICun^EC;NS!>HeJ(JRU6!umT7Oc0oPhd5tkquJ zKX2I*zh#0AQJE^R`^ZSXLEzlE`GlB!ypg4gqr8sr80>HE668N(g$yw3lIOb4wMPx;%YLURvUqCDtmf9LwD#eoOsa!hpO>#=ctUuD-kI z1=1<4N;R6S$GMoB3Kii641^7_#sd%$fWff1Cf=Jv{*I!aFB8_yNsFxO!5RB1bfWwdL5bb~wYI$! zu6|z4pLfG9znu4d&KU%6WaK)EL-dSvnr7dqYnGu+;YoV)3%{?oFLny?J-{!-PE?#y z;ck{nUT|yy3&He0ZL+me65Nrle|fC3uV^?wo^G`0xRQx&cu&iWGdTMc{W*Yt0J?2j zbNt~SaKZafhbOIOw;R1BG#0R4MpKa%hC6Lo$2c* zlAr>4(2I3i)_UBNz41+t>u{(I_(0(9d!`BLO?ozRoFoLuSepUn_+xJmAI;00Mt~BV zQ2i^uPY!#cqAQCv)`d*?0g?cR!L=dNIQTUr%OlWRN#U(GF*yzqph3l-Pr9$zWq4Gz z?_V*(0&93$TH|m9AAQ5rB5hFZn?r0 zC><&?Po=JSVdFj8QI@d8yVcsY-atczO+*)~6L+aMm))~SOgrliIJMi*enKgm(0|f?{%82vZ+*gOGgse;X)*iJO z=wM?ll3WH}JIq0~W&VNy_Uz_PxtD%wBKiva$HPKD2;+H7pK-izRSECP=0vRb26Kry zL#w5f^~Z+dXCjJ3GUHRc7NKY{zD;r8@Y!wUge`jVsTQ{IR~y|8-fW zuv1%n(S&6U2WNruFx=H%b`(`6uJzzDl&mHX!*A*){~TRRc?9vuv9I;561nA*Ua!u> zQ18x4#JdU$=&5%`s>L#XlN;Y0CZAJuU59#8VZsg5}aLG`le9O0Fws@>Xy4t;@8GUel|C(xEV_b?p% z)MDn?QQ)#u@#p&aYGZIrW*mROWUIE(DO;+`I2819DBtucarkxZj6ewv%jwS;z!7}- zjMZL?c}PnaTGI98rZC4jUUB%Xx$8)~0KpZ&SB2cP^T&A{(q2hQQ}Y(Wk&WwT1|8}z zLx;>lQi|;O#VAnSuwnh8k_A!FAwAo#;G(OFa}Z5DzY9&>_+%($?vc|Ow<-6jPy>K} zE81=2Q0)hFTdh5sISCCq+to=DqDQnqgl{{=>WA(;JFA)}^5)rvIMBHHGL)EiZfNrK zV+P!Bj4l1yJr$u!xu(MV9@~YBWqYBM4D7xy+dFR>d|Jv}WIO@X%6&wqU30qug+~+> za|{$KZvc37p(w+{m6$rj)FlGBHT9(~li@Hljl( zM1J7Da9wzLMt>}{#J)2KV{9aUzS*R>t-ANdB%WiBWb9J)rhJs%8bwj0!<^oLMO}0s z-k5C^*ksa)Kat)La@qbR=z`ViRK(@=OrPO}CucLMM7H5K0)}<9h}v`Wt64YoC@#X- zkH^|W94*-NrWWU(9nc|U@yC~2;*U`$QNxa|3g^|Iel>kq#NEKekJcVTg*#KIOypLK zk>7-ZAI5uTQS3?{G~%!QZqa%=-xQO7?$wx{%+$Y$;pYwRGBIU#l`L^x0T3z4rD|D^))3C$xGv_m*^4Lf|(oeN=M1+ugp|sBFr=}QA z69HDlLy3sijnGtP&7JB*CTh@rcXmC~FSjUk6hl<`Bh7Yfm@274TI$Yd)Fce#RXVkL zr+f?--wqU;Z7|$V_WsKH&BOS^iQ1spsCdE7^kyhZqwd;+p_Nbc2>oGdZSY-?2g6mc zz_EpO4rUZqRGcA^Mh5>?3k_e^sVvhGHACt@jJ|?4cqo`AZ~f&Wu`ckWU4Oyj9{erU$m0&H`~oXxYavdh?#O*R2Kw=Ouc z*9vsCf=NY`2QH#W=BP1lZ7t0GUZA{g{p3xh9%kWWE88f4n)>z-!8!4|#lwre zWBGegHzfl;FWj#9coFZ2oJB;=n*jESEP4^Jhq7i0fR8}Pe&X%5PQa$`r$D70;hYizv@ zI(Ng)4hRC*&Vzu!N4ps-PX*#f`}%`5-&^SWpbqEB$HKxus;o&yLjC%{&1dpX)e}kl zhc9)m@4^NXG~h&|obGd8^qH9EzfLiFv+(X9BBbPo^}u(7nb#es>yJA56*mGQOQUqa zhl|7Z!klDZxyjazMe}PfSCTb>Z9PMJ3JN*pl#^XpSSz*jb%ZZm;I#7Gjo6-i{N{WY ze%&0UTsypq!AoK6xUE|B$-&X92Q}lY#oTvePSvUMMv%?F$?y2a? zyV!V9JeB(8Yk|lSJwkuQ5$h&Cjm6l|faAi6mv!ws&cQq0L-PLd(8@TM^Dmj>DV%UC z=^Kt%&T%{D690poTaUZ5pG`Hk$;xC^_g7tbG0;^0%$$$c@cv><-xX?(=mdppA`TEh zkIR?z#`|UOhIwlIcIjeR1r}Sdqaj8Me}mBYA;0&^i`e9~da6+s%3hY<{IP2nXD`l$ z_uB5`_oJzAOPW6K(_|WoT1fZeg|dZ>ntH}WjQA8dFqv2PPuh+8ZUkWMi;tU+5GHa2 zWr=&W}id3v|302AqG80MHk+-15vK7JsnW&F;t_?S$pRtaR7P@#QJUX1j zJ~}ns?ynpdbAMcljQCEV7P7Y|n#`?l+0vq{0exfGnAv$jLaO4r9ClkKQ|+6(wupb? zbt83kESoK1$2}1{IeBT*}j>!TU>nb0mr)c8#m@jbZ0KbXLyH zUn$_xb-|oaXY;Lo_Rp6cl^}b;HHYt;8?6x!!b=65%>j{j(sk&DEj#Y`DOhF<_ELPq zZFK%&R!UXX-!CXsS`-cN#namhRH}vi$gT+_@KRssc@*wg6&WFm?zgN@o^sHTvZ)(p z@4(OO_?MKwL!XX&yJ?Fw5tnTczI@*Ki1TL&Jz+SovjHX1b8)V%l})gZM8^DktpBLd zb;FZHAe13f?J^gn=c0|qCKy3@63qTmtBqlxC;YU5B7~%| z?Y{!>;<7VI+NKF8y#^=FCk?k#=JMDQW`3Xq+Tbm%II4WQ;QbwL8s(eqI;z}c&IfLj zO$3aw&o`OdoNrY9A${-$@Zwpoc!kz1(shK?Q!q7OXpW%4M<)pUp}T|12K^0UHKNl} z|LbT7D-|a)Xc;n-t}ODv)Y^2ivVFQIm?Pg#J~+_D=(HEZB-oBX2nuq*2YO%IL8EK_ zPI9?h2gVyjiV0C*!Df7x*^XWB`0EJgdrp>ub^s>=E1WX!5zEcDmvR*?!LTzSl+6nd z(M0{5KNOB1B=ej=?xzoh(7r|Tt%OsJec6su{=I~4+n`sFKX*i2#Gfbn{SUhXQ4$eX zt-bN^{(BRw?ft?~Gbo zw%*vBG@Iwt?il}pHkr5ssjY(1IZ@ z+khg~iU|0`a8^aQ@42~%*M4wCo^v#u!&x!P_fEqfF$OmBAMP)XG?Nt!id~+C-YV+W z4E_Qu@VOt<59$4s<*`+aKf$F_X#Z{wJH%>Dz-sL)0lfJqeA%ue4lJdR(w{-@%Lv5- z(4ukTs@&M=E{I#r7C{mkv70okxswphvF}^~-@GD!T6;X9K2yF(u|cmKPac_?O2Xe7mzm>7O)7Aelr*gOT~xH}AL%g;Xp;KL z{AlczDGl_B7WSJ(Mq2?i$NrfzD>n>vNhNA}TWq>G_x(gD|44`~;s@|gQug-+Wt)o< z-TAhgx*V*=DI_A!H1HZuOadT89oXmYi>>@TRgEBT3OR9Va)J``|0bp9onF5e(~!{WZ-x*8WKFKRB5)Jj ze|=SqREVqJt)hKv6;Cq){P=%p@KIyPDO^GJgFQ|RPWh?CO9C43ekbBlZZlK)$b-dJ zsBzB!;o7^|r}SvNUX)?z>2tt1<%6T;y3xNb_J8&tL0_d=qho{pBbtr6?0JI!FKw>* zc7`w8{sW75-h{q_%)dm)-T#HN&@&8b_bQ@)po(o`=>rQ+!vD*4BfL>_!xrrSm#;D% z2*DY{{{Sx^l--0k;~&V_vBmiRD+d{Ud3$-BT3yX`&kLU)#UQHWyGdJHY9Hi>d;Ax3 zhk}Uyg?AtLC!@s%o7AB%!ZPm1^Ji6b9*nn_S%Mn)K9@)LI)m%2Xt4A~)3C&|rM|~p z=-dAy=z79`Bi1ssy!m+_FElmIKR9gg;r=$D<=x^+^Y3{I^q>R|#~p_GfYmns`0n=V zduP~cV50wH1JXnjaMs}T5R2CQS0C7Um85^((O(QmD&+d!_`>3U2=wK1NsHeX?)VlP zf{J;NT8&JfNOgz#>dQ2zzaT98aI{0|$!C_)O88OXr@=t+P8o%jj{KyL`vEb1%YK-s zSY}yT{)L(2t&bJr*{Cl`8KG3@VS$~MDo1J$^{`=%k4N6~4L%hGukJ@iU->=9NOaKm z$z8_a?}Z%&R&#~K9*ZqJE$iL68o`sL&s=#lf8SG9RD>gHn$kr(^kHy6N3!AXdX5kH zC#c_WAy!tm`OC0mwY+1b`6jfw!1iWx)HjM7|)FJjTLBAQX495 zH!c;Q0Rq_Oe*&F7vYEN10m9T1Ton13ePi((G!F3-@<$f4&Z+0A4R^lFZsjktstgA4 z@@iCSj~A$=fDObkN-2^AU+_u>*4qMKekXS3%}9Yv8D}54Y{Hq;&D8hGWr2^Gfh_S> zkCfDiKKs7q>Z;T#)Mxua-3oc?S0ZXv#x6y=h2Y;~2Tck`uPd(4X%i9GGoN3{jf;AfbI zAA63)ACSH;4Mw!e#a>la;y@DA2x4M=J#S?6e8cwXSVqI|uFR8Y1rBpM82gv2k~n1r zJ>UPfIV5NY6poJllPb`Y>RoAX%C-4*s{Dg{q#CVIInDN= z(SXe9v+YUahla*=8n4!S+Z(t3 z6AtSKX}?qlifJ-CAs~Q}L$kb?U3IH$9`WGN7l?O;zK;8MeKpUhrYY+!B3uXsMN9|G zz6c>P`qkGX%T6H^Zzmj=P7&p8#3d@z91;hoM*~Tu9KJ`-iMSntOXsSo`$k(nO)0MY z1WMD{#i60An=OtAzmjk+x+S%-Tp}I<)+m)3Q}%50>%5fHXTv41ONd@{H>cuKAz%U_ zZ-*{L)45{_5EULRAo_kaG#yqLi^>&2`pw7l5S5ftC?Ho~$5L=!6+gQhpfnDhv7aw8 zFBIyt*g9q9=u76b-?gBhT-HfRgnHJt)!^}<-PM(3HYM`f&vL~-HkJu;N58`C8Mj#IcYIQm_mrZWS7rTM4)6uiQ*v_bI1g)hBTZd_vi1tR4vpXc>~tEIIM? za(qSMMLXhkl(D=^fOKlxS)i026HwdPJa}BR=+Sr3a7JSfXSq7|{p~gtH1fUgn}@BD;52y zuA_KK)V%TQO=pdp2o8@;&4y;pQr}4z13I@%pjCMT;9R zGa11QgUcsw^3WIBES*_q(Dm)H3Yxcq_UA3o5~_gTg|;8=C5s4md0on;$WmDX7zI_! zEBNFdbS;8>$E;#nd_clmZ(%1Gz{;y??kAbtU+D-eCK1e}6E3WX zCkBc*xLt>pWXJ$-gMAAW`GG_Rwjz=%t~V_c{jFX@f0R}22;I?VGCLFOPZ;O+%9SHz z5DuO-gOexXoj_V#a4m{nt$pI@^xodt<+8UzyUAw0X6Kgt#3i|a8mr%ph)TQ3QM0$a zqKVT&gQe)O-qCSnzZOd59+VVvp^8)OeP56;dXbDInxe74>MJ$SH^eVj>DQ}lwNhRs za$DRMyI1>Fbb+Y04Sl$wQb6;{N^+7qVSEO~k>!>GbSe`GnR9mt)Y6Use`UZ*Ff^BqN z4J?hUQ)5xKb(KMgeJ$ z>oQnXcm;h-2t1uVuD_hfFNwVnpD+sXXneQ0ivw{!|JpR}T(G2OS`3GE>k=U0FfZ*g z*M1~o#?<@%nIWYpfPquoI$F2D>@v%316G%Bl6N=O&B5-}Jh0}FOxNE_ifcZ2xtvgK zk9PXtiXP$M~x|H@(cRYEKqb z>KTIm(42#w%O>PaFVYy_;NR$N_MaA>A}Vd}-qcu>b2u02pWc5Y;<9XJ(ak7!X5{pY zw{_dh+#C>g*-SYHT_6#>CX>M;k9(+^*{$2aw~NGvQ9Op>8rrm>YH!SH5B{54FPYzooya}-QZ;D^qu zEH7MF`8y&Um{3pXs_->>$1u z-V-$*0TDU;dJ(hE(|g5kR)u7K$#b@g4Pl5F$F1-!M#>x_4rtb;&G_Makbi6l`zS&{ zm*!bC7nJ48K*igTs#f9-hQkbnO^95!0l{#Bwp)z1J*bnEW+{j6<50$;oZ5dKjbiSC-GZ$|G8x{D2 z_|lB6n#>n@7peS&IeMV+;(>(yc6OB>~seEGNM#82?zKNOky0@Dk z`{3Hv8}-dx%!s2ZWM{oY?HgX2YcN+dInveI^AqQ=M09&n_rrN+dQ8h48UfeqxZe?t z2o^Kd3LTr89wDI4djjZ1HruRL8VkSfNRnu321928&&RAu%$^Y_L+S&cawr7KAZYHh z+>GeS*>!HqZ+AE;x6@ZOX>yG=q-HFFY{CcBVci929A0vf1LyV3^Z)|KMRs$iCoF+i z_2;N`<>~~a8Ni_Toy*+764j%wvW7rV0>DETRB;%K! zad=sp-RXsa3(MPkagWl+f`EJB~*KJ13_92w; zQ=UMg%`BO=`EJg)4Cncq=eQ;j@^4y2kJohXGik^h`{!E#fpm*Bf3qUx{X+tjpd zUklgkeuIPPvsRBGPry{y>Zc9qEv~Vw_*`Rsf8z~0Kmdcgj*QFEpV&xJCz1$?roh@R zU7~Ac;}qYE9Yz%B-=l#Q_!)T1@mh9-Wc>9wq*-N3V)dDP%}E1I1vR5 z@!KY&{Y;tt_})9{E`RAABfn$(!6HOuFV?WU>&WzCV{^U-jp-59y0`zT-cOd^J;$lC zN8-#@ANctx5ufFQ1fyn4`apy6S*?6WD67;XE(HlVrJD)=>W{r`Zgdb3(fC?RCgA&? z)z1m#$%*#Yk3_VtV1{mILg%#OpLyNOPc;{zsV__2ZisPGYTtt`kZF18m9q*msIc?R zOJ>mYxn8ppM+gSQb4*ySveR1lwJ=bBwjT~1rb=nML!Xb(LoU^Isu1)4g>k?}zX8p@ zM`Z?s+yERe{YAe5urE(3oTbVA$TKY=3K|Kj z8*~;{V7)w7^XMGDQ+xpHTXmCU+X7ZDyJgi$n3utWR5pP8PC4fdzkSdaF%sl4E*^gM z^;Irs|9_jOcz>Fwid_H#-!+em7+oi4k3((7DVrA9VKxnl&v4>)I!#~BpmN-ejrub0 zEj6M^M1>!aQ@Aa}IOY*}FxRZrKY4%y$(~}>0T;zr39jA~kAmU@|Yft64Xr z<#1wccaXu#-<2}1|G>ccF<#dj>2%QC5k-HVjafk11V3Lk_{%2TU}B(5R}&z!*l1dJ zuu`Q}=7OjKdqE59IJrkVy4_Bv>oa6lR10XfG*#M@1IDycqldHm#%1rSIt^&HP1E|v zp9$)S_3#k3>i1g>WaEKBSSyGU@9uJX_xLp@dKG{qv4Capk^!gY{jvQ*t=?AYN`b$R zuxvovL7R!kQioD|T^N?^QMsJ_!TNd-^rK$A8pB)1Z;6lEMC>+Mt}%wW8PByJ67WwE zv%PTMtlxLjZHLZ9$2D#i7vDZr*~>1d3?%-Z;!J(_G5Gp-35%a_trXfx&mN#bg==gQtATA57gdW)fp&B|o; zoNb%PEjE6c^&i78!Gl-zzSkT9uWGoqvSN1eA@#sHM2ITM`98k>=ZhY0WPcCv2&sT| zCeF|6?&TVv*ntGgBwWz)oib* z+*uc3lyZ{7yB1e2OfJdjy zDBw@IGONM{j`EczN!En0VVw%i@5}46vc9MI&0M8(pF*DAG~2|oXlF2?lTzR!dbl=K z=3De|mUuIkT2YtI2B=e*LqXY@REgK+j zM!f`3HA)cKgh1=1w$MhH$Nq@$p8Q$~z-9XC5Y8%?%urBDR-G6xr+pBUTp5hNTUYPk z+17s)==~HdXw$8!)8Z6nz`^V06sfQ3+{8tgTKeqHLB3ly`$%qYo8N8LfHvU7JZke8 z5i8G?TYf&gxaagx70+qLm}h?Btu(dygdlg?VMdyb-)5{S%k^MfYad%-0Z~x+YR~WB zLA$mXt{$WCB|jw(yXJblTb`iO(|O4?jh$B6pFu;lOf`AV&1(~hTOa*H$>KY1jlNC&fGTbVGKW&j#K?l&vua2s zW^e*>#5&JQpgz|n>w z1xQsfi^VebmEFK4R9HTaOx2peGr9iIb#$6sa-lcTao@F7rbp}FW83@!Q^NOp=LCn> zub?rn?KG`X*pWhM!S!IvOjDoD-e#gWcqXUecRutl7p3zN<*#@r)IEouS2OE7fsx;g zTlrm?i4kxQh$@zHxYR6jRKcs{*DJBUj0|2BL7;czvzTwqjiOiOZW=CRJADep3V;Qg z%`culG4Jl_hcYXrh^C}{^>;xGOw%k;S@9`Bs9TwQIcJw)?V2&a_U2JqgQRbJefi$w zbKJ@FgG$^51KfCYa%U%l7bZXTth)yW%MfIe#;Vf_BrE1rD)-=ME`oo!304RLwFZGk zlt-XNjsQ6zq9q#;zM;k&E(B=n}$>UJ`s^qkS-4ooH@M+Gkcy}HbA+5X3 z#oXn9Sh6yuN|b+43Q=M@9X@G~B!1!m289&iKz6OhrM)l64_X)t-7s5*wBE7ZON8qG z5h?|6TFd_Gd1L(w1Z2^t{N!ZVCYXn&+GKa@ZZ%igth)f`^Ww3emifXEr;qQMemzDR>fNoF&_XQkpBIgPO~V-x z@zbY!f5emJ{X?-{3_~JK;0w1$c9&wLhJta3&m+XdJXv<7?$J!^rM$f$QQ{0-DdU_< zpe0bT@BrcVOl*rBvYiqj=DorR9%3zN>GB~(42+2dJ(dX(f6oUIaQ;rF)Q?2~!+)9+ zd&sWu+3o2XU8dV5R0A&Zu6}w0D~%yTx-}Z^jaLaX2F!H%$L zmH`#7*RF+|UV9b4vIY7~p+%p`v53yf+TgBxv8nbmKvr5fI zqxpmNZ&8KCE)#n3m6Fh2CPFU<+2wpImxhH^^ZOB@>}Xxh&bcybpO^cDZ_SR77UGOu)Ga1jrMkH@VD$~lAEL`jjCvp3ud717 zbYYd(VQ(6qe!j5M?@+86%2)9eZPiZ+Q$Y3)GwTjY=5tK^no)Bu!-{ zvnj~3o@egs=fj~c8dj*ima>0uP@1#RG6>J^G*W|!cuAZh5ly|YC>a1f6YkGNNH_&5`Bt8o;rBKy1~lvEvk<;Zo614yZr79pLJa5>~@V>=G?g_sC%I3 zaZia-3+pez^E*MLfAD8)aj<9KPo0(i^f@N8nyPH} zjj#B{PwOU3@s!dTEQB(CBZ;ZKdKwkbNnr4F;HXtYf-kELcC}M~9iVxf4RAkR$)%yL zpO!Z0*VUEmqOc3 zOQK@MN@(%-sH3*yKV49I>VyFrD?~UnY*>BJ*7avDZ@JkYq6iWNwTuAIOXoDqW)}?G zuBFSP;}1$(EfK%ip5629YxV2Dh9b+#g__Lv4(D_O_|o0pDZ|Y0iDarCR~YzUbi&!{ z)uuwg5gI8m)h9&<2kKUNUrEOQTKIy}9PLjK2_XOZ=yTizYIk`oaW~*UQ-&$?>c7oh zIOWdK{_T6Od0#_B>|g)a()HhvM4S9=0zJ0c(r@Ie9{hC~zjuu!{{6F&z`rns_(;}C z61=}54OaMTbUk9`Frz(#yWbLnJKEnM>Bji~fvZcPaeo}>d!Kpxcg)bDBam8`K;a&1 zMiw7MEkomGn4Xt^occ0jsT)k4mUc68k~~zZ$Zt|37q9pqEcZ2p{iYshHz4ouax7~C zEF*ezAA2ePXq-#y1{FzeR2>K7ydg`IxrC1x&o{BY^Tr|pWO-kvb_x4@VA*Dq`Oj7_ z_=$gC*qzRS#7sfnQKE$%M7Edg-W(_vSE^m5TrjFb(O*>Ld@%QxNWeSj4{afy@tW}3 zkZ_c=qmKq8!89X71E(Zs_`9IfM9ZQ0MkQUjGk0LVMJGNEan4tqd7YHsG!gw}O6G3n zkAIOw9>Z_CJhKF&_rJk^#V9&!Pg62uH}V4!O1Wzy`QzVe%AdR$lAM*Gdb4=f1v zXRY61uhj7V>nKuC$aTxy>&uDyeJPhsIee zitFQw@)oNu)1pKt*D1lRawZ>TKO>`Bg_TVjze9ZXwk?5bJ3=@l`BRiy3}@31r`IK= zlr3!Kx@BB)IF4bbae8DQM8>GL>%BHq8Rhr>5JM_z-+XDdE$B`swl4indLSUjOT4^s zOWNz#S}(1Udfb4GrH(}A>J=p&kFtGpb7fL1Oupd~u2;H^XiaFXd8&h$6J?_my9+*X z)q8W2Gxkd~dLEw#*xcSIc)|c$T@KQr)dzDx>6o1FIJ5I~2+3%U{G!C67126Z|0C!_ z{kc4&*0=Ba`VY=no|u3V&l;igU$}@vzW=ilB-Tj3+A~5ilS^Z!47#em91h6lF)h${ z)}bx(+;mfWNMO!$XnooUMUXeW^udbP)xGl#-t0g$FI4<5X~@X&o3G@9=A_DH-+@U* zo%9nD)bo@#QaIc$g`zX}=bCdOfh55{L;6UCoHI!Te6=x2gnq;~UyDWhHey4{!w;$kLZ(nF`>ZLDvvlw z^Z-=g;!So{Nd9{n_`|)XUhKf*?QB5aUT;o`zTjfx$pYT%CLR0MGlN5BDgXhS&bkW? zJ0tP?zl41x?!PtQ^(P|YoFC}9!;dZvEC#jmjpt+((|f#$*d;PVJ`D9L&#prZ5N!CRcBV2%hfc|RbDo*-&z^ zFoDb)Q(IOszff?7W$=UC4!L@_bnsKHqK=O!hJ`*G|B97^iqvLqh~VYO$J>(-8Q7$)`(%gA~*Ui z*L!+aCo(o^9B%2`-2F*1^Q?MxaykCUu=IWV8Sk8c6YexVuSgF64jP^Mk6;oZS6RbY zp6Aa7=1y?S8Vd$ns$CE1sUqo>(u%!YEr+xB{mYivI4y=}&MZgLbMIYSV#FT~=QC(b zdzIoEFWwB$=lC(^_&+3b*_?6 zmJVToM^y6`*bQOPtc|Tv=S#EB-ud2Kc$~@%@^H8RDV>u1=o}9QEOt0C`d;HYi z_=K!{6IDZW{DjMDMxr-hEd447Mh36uW$b6-)mx}Jrm5NIdB5PXQ);Tb)GRoh~4ogm-U2x@ocGS%|+NbIiD;NFUl_8f!{mgZ^nZ8hL3@#gAUwzdonrw9?(Y? zy9Kv6uQLMctdR%fBlWBNf%+5NJmXwCZ#$9ubsHt*35PZcw3Q}W6~P_chii7f9!0B( z>X4EB-WigqVxY?ZW9}{EqI$cwVMP!W6_6ODh9L!|OS)k|>29P`q`RaW6r@8ykQ};) zl9H5ekQ^Fm8DMxf>i@c~=f1D^)AQx|HvVMK?0xQauCwyqa6FQT{o>q&$h;++?FPq22q zEiKuB`d6~yJPSUZ+{Z6^jrW^s%QhJH@aJ??@`uJ8Pp&PC;JXn1TOgk`DTGAn}HoRz-tmU7j>s~W zLU5wyyf5Yp4`JB7-&zJ+G_58|^M?xtdBwnpL7l7>>DjZnvsjv)h25};G(PWOu8i*7 zG;<&3gQ_sztDPg5+D>}(T<7)$>I##So-OyqR^7((%Y^Ir##a}&SoasNepdFru{(5{ zNUJ|w%+EZNFuF4q#7BAHdwI^I;Q1?n64lc2%dVnS=luTDeeJh6D{Z_z-p*MA#E`;Mjl2`#Mz_A6!b0A>7#b$p^p06DXv5OI{=-0l^X*!mD zv#58~ECDw5F>u@D(gI4_rx=rK=OBaei?hXvtMSX236iMo9nh)hE#n=8fu<-$#Z1Ts zz|PpGJh5vzqL{s0A0(W)IId(-^T_<>iS@@DK@UU#Z=|l=QOfe;E18f0l{N^xm)3m` zVw%W-*O<=ds-hHF0iGt}4aiDqF^tpoU9ol8G}ScOwQ|4wX3klHmaV*Bx2><|_Hg80 zy@&lHben__@MJ^e7#Hzyga?J^@)H@L!g(?FMTUd0d{Wo-gTT?;OGYM01Lb$hYD!}z zmR{ono=D6Qj((4Ho(h6x+pFLx^~}A|8hd8s!KQg=;iatU^BJxa2s^Q{v;^&`FYk)POemT+hAs9 zb7bIQ?VL+37eZmX-TlS>{8^C|0p}imRfxrR2f|Xt&9I}==5;Bi2;Tb53I6Jgb8I53 zE5q+UK54U*68dDvgf9C4Z+R7&`o=Nl!Xau)$~}@i?#r*Qx4VK?&K9oA2Jum>Kf84H z3;RP_^?)Qwdd$acfVT8W@5+pi;)zPsd++VtvsHh_m|j|S1L?v-67i>G`VG{V5{Hn`41_O`8-x@Sh*&pfqj$K(-rzkHJf}E*)FIK;Os4yHhDsUQj=)qjdMZ-oFDE#Xu zzWYMTc2V(SKB(AxbMr#MT>;4;8+Evi+@-evagQ~@E@HFF49p?@?lZ2akt{$ z#VUMy{hARQGDi6kaKyRYl>siw5i6*b0 z=6p5!^oKwi4qMpqgIjTNkWZhG37+vhMxaBG!_Hvi{)bH85@tcqvjm{>)t6R(R4uG| zIgmQlxlOs{aRx8c#z6*zj%_4qmVkde+hu_tHs~ztGv#zgS9ba80-R`S9ARYcL>R`Z z*-&!+k?}g-u2Fwzk7V+8X^SK^59D#&){k%3LivY}x?>q{oorre9<{u=y6e8NL|+9j zg281#UL0}l7@zO}`ZAQodM9*MLX|yRKaLyCI8p%`Pr|irkxu-qW5eJ{{WVBLYT>Mv z+JkKJ_*;I)(HMSatl@x6WU)3}9RM+(5r)NpN=MB-{J>a0uAS=X3rz$L;)k}FVYgOH z9L236`>5}Cd(U>pHFBDwS|y!0sJx;SA5G&GG6;RP2FP29iD;&m2v?`qH*{x5>HWw;u?{koaqQ z5>KvdYp`x*9hfrCda?j^(LWVg#?+hmeyx6l;+hae8jff1l+o;2SCVh&&S3WOZkgVC`IY? zhKB-i3%KjNHLBnwp4GIjIZ~MzpJn3g=3($yy~~vcVP~FTJlo`V-a$v1yEDC6oOHk6 z?W)ZUEWIh8#hU_emK`5205|h47WYwt8}xJUnffrsfPmODejO4X+fq|SmyMrz$eFG1 zUqMa+g+psH52dR7&4@Pv}596Bj@ zrZ#-ezDXUadA0m95f?p*gomXHPPVO09Zqm|M}k$E{KXLw|3yG1^s7J8UZF&{dWLO} z%=^)16#E7>%FoaCJUk(zhH>#IOIA(-Vyt`GDSo@_4ukhmiL2!~U?Aeb56DZg*Xw&d z_l-qgbncbZE;3n9+A79bCpN@!7hu0F33&+q+zqLOn5R!ZaZHPkFFp^p&%E59$KlK- z&Yq8aa`vc{FuQ309>hjfF?XqC+&^`|$E|yGcLKg98)YA*di9GVO18^~IzD}cpKv-^ zdewrP#sg(6uecsMF6GsGTL$_%h5nBxAH4gwS_#$aVsL?UQzkMuE(61Kpt2v%P7@cc zEUeI>)Q&={_zoUa;rOPMwvA_7CBrFqu^R8T@EnBB@B3bMs&r3>&oj?^ctlw-z1l%r zZIvV^o=i0G&9@}m@!p+)CstWZOHu17?FAHOTCA4D+4MZLR%WDBezGEx;#c+4U-4^-kiGWE` zBr&hH*3>kc z^RR&Q5X|#K6WR9lu&=|`K`vs=!M2aEg2p7q#MGmO{%`$q;hze3ylGkivDKt)RsmM5 zo%8Y3K?5+-76ge#;*b?v-br&d6nzGz4eg8Q)uX%SyEck&aDQ>#exLE~wX-O1fm(jE zRQ&SXGC?EpHjePsR@_u*^vT4euYsa|ua@^!?YPGCAcwT2}!iInEUEuH!!$Ai!MvsFVlR9<+zJ7lT&RpbOslAwadrM%e^ zA+-^Y!IrY7`%<}hZ)IAn1&u&Qe#iK+LrGwXQL6kB71bHhTn3u8PWAL8{^y(_Ub}fLs)p{_v}p77<0S6d7dW6J$m|mbI`-{RHGf}r z{Xad4UUrxAZCS$DMmG|gy{tBIE^R!ApQVla8cXYuK3+g}DY*Q&-VP#wm#`fLUp;xQqjyQ{nJ3P-5WTZEJ@hH;Bc*$&XI)Ek}s zgxGfX<52M`a0!o^4+?z_>~M>H_X9{<3nV0baZMjQL9Wm4f5X4_mIu*@r^*B5roFw& zuz3t@M-^+gJ4UsxnJDGb%QZe%Xu020GXxjA2)Y=>qT`}CqYET4?t(~po>w17_>!t< zvh+w|dD$aBcW)HBdqq+z1`?#Qw%fb|N?Wi`urjmYJ*Tk9od zb(a^p`BGdX@UzW1%#nAFPQIBNY)z#xP<)RGj!J3xyybk@{u1_Ws6};1Se^$+gy8FH zQl3fDb2^%#53zHX^xNP;s^Bl6;hwb;4_Niy+PL+^`uWw@dSZMcDw~lV9QYt(?Ywcw zjx_py0g(cS(b)jX|1bvWD=VTJzBfyj&Uo4rZ1G`4mgB-!IW4(d@@ zsg>0o@sZ(ogI2I}&~W->_AkDFYVER@P<1Cn?UZkp`cLXq_wVqUX5=~*s+18b5=yyx z%ljf7M*uI@!1p3YTI$mS3g7c_R}!Ur=Uk2xWZt%ts>Y&IovQZXdS0|GZTnH5-{}ON zlCu7a_jbMyoN!-_=uhV~O+kSjhTv*dcDO~G7dUl@9=>ig_U~SuJ`0x^`8J~rgYetQ zlU3*76rWpHZs+4XrYeeMxx0%jn-g5(KJ$L9lvnp#YE>WH6yP&3V;kC51y1jF?1jb| zJ9*W~54HR%+cZ1|QL1+#&$y&S;T>WlxpfBtU$Ys_2w$3*eb(2bWDFGKjoX~113A0w z5*s(@m1VLFo{r|(hNwhOQn+KkmBSl|J{sme#G$9zt3f(so?e$+!}IZeEFfc=vvBIV zM$P(F>!U6Ps*@Jg8YuN%Z*uP#on3ETGl&isJWj7N0M40Hrr4=ce`8rGi-PSL)t4<~ zj+nd0_s^$2T_a&i@YNg|va6FQwQ1I!kf!O2RU3AYtTa80;fq*9E6SL>i*ALQkEA}I zrTO#rfW6ps(;w_*4+_)s>zPj|n&_$KnPVh;rk9^>F|t~aK~{#F>04!0q!j<L^m(_u~9xR0t;P{KSo#)oVeSbv2AeVY)<5_KA2R-J#V6X7{EY}rlSE^H6 zu)WE>C)%u)kL!{!r0m`Ru-Ntd23Gs#pHO7Ln#dccBy%~s!h`zF`qMrm8foll&(|Bl zYWk@StTk*aU7mXZIE6l2Cqm2*`Vk|h&*loqO2`(ygtznw(@lGqV6 zA}G9KnV!Di);&yQvMPJ7{IOepkUal!UN`h zD}2664d7uv31Pn#BZpG;oDZc+tF)Xq?c*f zuj?%iGH2*H-e7r;g3~H_7_=z7=Lr2HJlBd~Et5hbHOnZGDu&*ba?2dMYyZ-o_3+6J z!2rotMT!wZw8twh=^>Ks4yMn#%(pmp8&B6PI5{28jOJX`nho~9_7~5cJC3Iptl2Zq zxFe@Q)dHnF%3%cD-3uMe87n@)bwN%gn%@X-Usj%YI{x?p5ybSKB6>_!JLi$;oDLgx z2z}q_zEO+d)3G&vbHAY$7jivAdi~*Lu_sx9g1*PvL--<|J9+gpz9E6zNBkBuisg3x zwm@p@Q9|irJyELhg@75lqYrdbn!fXkM4OVw?b=_gW{pIiK=Det)_N}yt7l<$_w(e>H%*@b50T7+LL1 z)E{L}%DgBNV7!BgGmZhzHa4QAVwWAI6X{se?oY369+dXwn;;J^;wg{)~mEn|U1*(bd_#Ed(`)7ZqBVu$}F@42m$B500vEI=>Ip)I*)N zhhG|4vtq(8j*of_BkwTqbt$CLJku!oSiL>b7nxl7SuNG2!s>*C32Zt*?{G`JP;5`= zsy~9=(tsNPSv@=F7lHm7z^kJL>0#-cFYXI%DZY zLc*)?09oZqbwO`I?&X>k=b;U_DY>)>+q!Xpv+qiC`xRl6X_3_RL=|$j$khOLMnuF= zwWve`>|;HwZ0dFG9-K4V1L(0iN1c5Mlr}kvU}-6hD1E(i11D7e`iV>(3 zRw0nx%hP_aymK}Q^ns%MBuyZ>NVV}(VOu`R;h{ss#f%Lozq@s)tSjcK4 z^c+#|f+C!XHIuMcSnKs59QG8*cTk-sl;HxUTg%lR{SYy$-3ABMYsmUAW*P_j1*|stron6t1(HfV?;=E0LGeQEioi^Ec=(a$=~m83 z;av5WWXhd1?1S*@Ogu=W=MzMZ0?&e1%30m@q*Y@ zU2WMdioizre(4$dMe$-$?}YGVDgTRA28 zk#^ST%yMB~XSO&VL+A15_1s;Owu_5MMc!W32Y=EKw;-SaR6-Lr9~z34klfbRhQWL* zz&qIMV&1^qd5_1y(RokW9Z~-7bT($?j)|e6Aw~K2&WBo;bkm)S^dX1~kL?W2@I;8k z(YT5^uV?x~bn4Zqv0IaI_oI8Rh}TXTD?2K$oo8oRiscaQr;b1IpOqOG*R8J$^dAhC zm3f`{A9FdX{XO@ zAVL#AcU^=P8jyFhLFpyvny;7W83~l`W-Ed|G#tw^`CdJ&wTef~oNOO?ky99CN=xip z!&*w%u^sTd+Z3Se5{Y6vM&)Irz=pc=n>(U&xs4=wTp`|kiR9n@#l(nGglYY{?;SKH z5srbyWj9(kN+%X}evSW)0`i#x` zW9DRMUSrfCiA|(onT^O^2WXml{Tj}niB{Q35h~HIoMQEOwSr9JBu_S1WT< zTbm@_UE<334v}Zn8E}3#C*dyOyIf#y3P`@)sVX2%amuZ^vt==)Ly&CY>t#|oWB+Xd zpeEpcdY&lw9=rzem2*1$0HCNYg``|(;|HO{Qb;siYfpC$pkd^pOWgy9bMv)bQo`@h zG^qfaaj^Sp=93C2=6g3W?rvli&V~w5D7*YMYDY1hezwpc3%hn?X`=d&FMr0EqJ&9h zFL*YAeGV!T7k)(c;^{*lyX=vv@#tr}Xd?VcICCq%#P1?^Y`UZI8tv+VHlc0QlsAgA zV=pZ2)i;6nkoiOjS&Z$p>!M1{!6Gz#-mESWT8&SzeMT%CjsLO=pes#R?f#Rl_pWg9`m3Ai+f8y9b z>tk-PYXkyI$nl3F+1Gx$#rT+Veyi-|>7Auk@sDQU~oT^#T-Q|0dDHD|i=gr_0 zPc}nVaFy$Xm~;k$veX4}rV-chwa;QL$j$Xm(P(@4FpWvx@8^%{iiKpDeR&EOa^CZKyAPd9-2 zK6VEh=2v5%!Bc>}o1rbli zf|AK1dwe=s1oM2ZLd)$6lTG&YmslRT?IK{;z+iXfg4JD>=<#(36NhE5>P=f+zwt?> znKcReg*9Vqoe~QQNBbD@IGulWL^3?cv`<45Mq7$8vtvu?0J_p@cKCd}%cBUm*=I~B zi;|e(b@go_F?i|GBhNhytXZX;ZmYrvQ19ojLN3r?rl(bCNi5L8hoopGJ9P&h50#od zVGBS7@PXWbp#v9x_x{8F(bHIRk88t6X_i5+1bZeU76S~oGdj3fVcn&3&B-1QuIwg1 zRW9i0H2}xq8h35hu?pEKgGAm?lgsd)fuHcXY%QO}5O0J$lYJqDF#SO}DHwE&1ASd# zw#&!l*l>oAwU|yPT3!GQcPiTvcG7%T()~KD^cu4qr`tu_lpQ$fHtXV1Pu>PWnA`$v zNQrJ68oUFYqOYu_=?zc!q}^?W5H=6G{4LEe|E4;HPf2>*3GH89HMw{1p3;so&LOTr zob;12(<8G47hHV0_QxXk#mAO(B|a~^E50qGz@DuirR6C(QUsY$MXwMCeyY8S^*Y7r zbF=B#6RO>b6!VeWcDJ!9{@CW22Hq*X^Oz8vh8GukCFO<|suOQ7s|A&dpSOv^$Llxq z`tmgtD^wb)O`b#QC8-k>$(6a@MA@Hs(nhvSaFSf{BKXVHyHbpGv^BK(Ba+P6Eax0M z;#qlXA$xK~BIEYU6l=e85uLh>FZfh#k&DOo#JYAW&+a)8DPx$vA^>$Tby=;yF5;qq zn(A^~vb9!W8?7u0AhK}QlWL)F1-gXd#jowjS>KF>34sXGp|V7=intO#R3{0#<+SYD zdwS@+2*Kydwv8CLLNZYZ0lTg=mlqcrUJPqv|Y9~ME55B;NDD5d1clXQBFdTe^^B0F_S@i(!P@7qV< zti_g`^0Cp4@<^biSO*vrlWxtM?1~4nZHemupCzB*ACQs|<#j6p^E>l0ajV@Tp?c4y z%=aE5;33xj+aW?(0$ZGpDTaDH2tg4n$m((1^)sp7%&LV%${8XC`q=QL8<=`cJ*fKq zFQ;1e?r$b1v&+HjN6Wa6aUC9lfBq!9`80%ga*rVtqndK*?IRztI?G&B&7{3b;|{uP zSI8ZRx)MD)wFC`1Gfh@lyregyDfvY@m>cL2=vjb-A%SvQ&)=c*V)2H%C=q!F#&@2_ zPU6U&Hg5d1#{wSB}H0*ltoqi`GGW@U~FZ(^4u*I_xt2;+n2SBUQgNs`|Gu1ud zK@gT?RY@(*s9SWixPw?>N=;N*uossRXr*S-f38ESAsd$DdyIoH?zaF{jID}sA3eGU z+nq*Qb}%b5i&U*3sZ9f}kU33w(i3bphlqWQO_wHeeN_(nMGglL1*cpMHO_`6W&aHX*TW0FnFJ0p)xDX(4?qTzok z7;cZg!hJW0A}Nm$64x&*c8ZXdXiu?F=O@ky)0ISL>3B}1#?>%pH9PI=8Lg+ngZ%P- ziUh{{CXhzN09Olp=^LwrK zm_7PA^`tz)y`49O`K!kRyeJpQHJf_c_N&F;#w5~!zUtV8W}|u8U;Sg2tKpV*HA!_7 zsx9iz!YF(ECD2+c-xn!`EE60)9L|d^jP(wc3Th3Q>I0Q;6QvJ^0%X%K0Z+LN3V4z( ztDXiJGveZ5SXU>KU?coowbfkvKOr0u3WRf)vA5@)=J2+^iy z0&EQ4DzPIrlF}V&Ra0wBgu{M>t`*MPshbji516hh(@{EYP83!dp_jEh*&s!XW5Uq2 z8961XuiJ>ulg4f|$&`R6V~vb-$f&QH;f$ztPrVb*;U2piak!KpmJ;kH9nZYg2G4&t z<88;guLZpFd`x|fTJ7se!Sh8#F2H%c;eURZ-TU&~d5i1&q=EUK{vW%5Zoa#rfn|1< zhI7?caTsieM2H8v#$eD)ne7?11NV;ON3>j!kn1HORpDsWq; z^1J8U-5~Nxu=TWukJKR%N6sy3u<00ql8q1Wp^VPaVxg2dIIdr8t(2cwotSL4o|l`X zmSeM2P(u!MnBLA|JX8-$sUHs+e5A-TD5`_|m2Us}j3}wwgYq!PpL44qDaJefcw0Pi za5~d>m9`&@LF@$GN{KaVM3oC2rFl$m5#J@B^y9653D?{95bNDO*s#z@->YG(HG2ek zBe!Ql?E*2C>wO4Jo~q87oJJP#x`>OP5a)8uNV+@r_mfhjTHj@OQ%aAFvPSoh5JsmI zd*W;u#~V2`mxw!u+dOyy$U1ro+N{g+#P8q#2vqsEz}y4ZXM+`g@Kfvv1_01gTO#yU zBZ4HpPF|$H8-?Id15~}fj1|OrjU#xp! zbTwgmwxj7{U!j`#auM8+SCAnk*c0saZ>y@@E8ne6^sMzR2bqTKo4={qw4g$ZyX>n> zGw)nV__A^jomBZyS@q|7mc@YD+r}(=jh@HC^90wYX#-;`F<~drzFWAReUmDGOsV&e zR|fd?t7NOi9A}K*VaJU*@=*eTenG1NSsa@W-;%v2yny_8z8~HZE<9l$8={QEY zZMM(D8S~m>smud>$3SDouO-`WPQ?K=nUg+ly3NTQy#7JHsHvbCrhT*KcI5WO9-DngpswC;XKgwG9V&Xm`~ z*mYeNSbx4>j7iKERrN3wEBJxS#7gm~R$?u?eA6z=jsU{vV%d^Tp`_L!Xk1J4D!;L% zj6L78IO|IOJ|n_Q{%?i|{Fpq>U$6whdCC8agptbPfXmmb8XWh@teo4o{TSan(2d(2 zw~sIWKjcZ~cmLX_m#u*cZM@4*uIpcJ19lMt^=1am4!%5lPUtJU#UsN)1IUxVm+tl0s>91{5m`Q99tHZ9wRkh{Xj)VMfAB||Cej9du18# zDp$N_y!*#CfG3IN2>7eJ`Gfy{FJbQS4fpx~LIw3~(+Cuye&xIhZN5U?2TlLgdi-|o zMw5t=+=zLAQcMG3QvwtM8`Jp}lQ`&wl{g`fza z7Wc5Q6x*yN7%8sj(N2DR5`X_brBE0^aS>rr30YZ`GBPsX=)M0#kHqlurpKB<04Us3 z>{mmLa-aH0b$9gS$)z5K&hJ7XkMW))=i7)nCtaQL?M@9j_D%_$Opl2Euy>FRKeaZ{ zPC?8GP6+JJ)vJt*jA9oLO|#ft368VYiAKoxb{=Po8@k%?qgAzmYHW$fn{!47#gKp~gxTYvno zK=h$JR6tN}lNzAbUQ_P@gzZa+8Xe>IiQKD!m*E!19&nhoOk z5A#Aj`dvcBZKMk)!h_-F#-{Oq{Yp#C!C?T*pMvo|vJ7{8%X}(Ymx91;ghm*4FmH(< zgXbGvw-1Pm^b?wtl#l{kTxvtpHMXg}Iz1W^cq{ZhbKJ z(PS^>|Xu-@-V1w<5UnO*W=06DGaIXuFlSa$e^bS&EAbtE7>UWPoK0A5ZC+Y z<}_smnAy&KKK|j>$BL!O2$)6&2SZ1WFShGWhxqGwps@BqY{?o{x+>nm|5ozovC>)m< zH|yLSj{*DM7L(DWMAuB`n~YGsqGQ|Dx_w))>msSt78XrOk%i^9H_5*wSftl~J{01^!N6{so67xW{GlCToD8n+`w ztc}m7#t5{ViltW-hB3JVyiYTcJ-y>Qh^fxfxH1dU6T??@y8+*7Bb@Ly=#deQiZ~S3 zse5T(Ly^uCGFZG^n-lwwQIzk^uA2W+X)g)31^E{m`4@-q#bh!6c`Ynamw`KT4bDX< zP9u;QzA`~KM9BV8w&ejC<;bMO_iVCk9XY-bpqMLo_qAu95vYB7EClt#OMu%5bbX!$ z`|@=s#LFem9149k=B>Fi5UO=4fzG;BeFoYj>38G03aAF37?bG=M8%FuU%$Ywe)))k z?>Qh=dY_&y_h+RJIDYD1wYG^rZnjSJQJFYz&Hw~E|L74T=OjrmdXyw~sjLW-*hAk2 z`AN>8352W$-jZb2R(W)iHJ1VCC(FdpQV;1m1K@g9_jmzj|DZ!?nIt;f%t%w?1e*%t zb&(+clgKZxcQ6O}4u~(_Hp9J-HF6wF?5%x2d=NDK{-^`?r2Dn3p4cGPw$8q3*9IZm{T~Hl5_2<4iu7OXv$2ZNz8=a5R7q;^9hB9Iz zQR)StK0C>h<8qHz@V|Xy$lnX^dZU;_ko@a*0S@-x z+XbYEu@!d#aoF!Ij>5T-iQO=?Z&b)ot$=^DUDqK-iLoO%fSbG#K<5G>@Q)xl^jf_9 zC3N#fDtjYuR-VZE-;Z(=wi&Gd%WeH8escYn=lRWgAo)i^{R>!EKreZdKi&MTDIg#J z;|MPQ-+GK8@+9Fw$nS+@xc{%W{pVRaX*dFi8Lw{l{}S)co5t z0FCfZs*E>qKYX!6$Bmy$UM(D}V+0{ng7(XSV_(!X-qi0h*8{|bLx9!X(-siI89u31 zLxUEkQ>!mt4@hCw!eu9A3=LyZnaj`rXr6nf#s0C08~OCF2;5~t#QuF=!Eo&zu`Qq> z+y`i05^toGjQZ{+y+h+glN;Nml})$3{eLkPD+G}XyYxFZ{bcX1^2JEt9k;*J@g^WR z>hmS7M$h=<0!=D628fUQtG(-0(D+}E0~p<(U2{__11cRafnPEr<#1`bQIpmm7H+F; zsRL@%bGVX<;QDhM8AbWIX%@=ZfBA{)!plN=GRN`e_C)9Fk-Gd2K+%m=t35yf^u*__&m8*k1$aBcJT{e zp{OqClG79dH8wI*LkeBD7dc!9#8?f^NJXW76Wx}39xWaW%+h$d;C4jr4(OzEd%wo? z@hqY!m6VjUK^+@Y8(c30!1$-B+_4;fvtA2$LD4CRxYq1AzFIK7=#u~wt}878LPN0t_( z`h~CS8fI1cBl5;C(1l8KnAhQE;$Z_CIU?KOrgEU<_=cO=}nfDG^a=1%CH!WgZbU zjiy7su&AgHk&)Dg!`+#l(HeDC?{(D=tm=OXC-wkLf$Gvzaz1N`xApfmdLHu3Gf(RK zM%fK`!6Eo+#;ZdW^ zF10q(jF^we;wKl}beNfa>nAX@qR!`uai7-C+s6P}HdBXjE}q_j+J(<667@iP#wyu$ z;X-jpv@!MFEA0^D!@UdeCTjalourHAWaJ$bo7gq)G7~le#T8o5gUsbqT=!qY^lB)vDJt@IZybSa z(+p3P=`_&SFSobX9x7BT;<7qz#-unU!?`#8N%={)MyYNBefyLls1ZfFC-v-e0@}i}7QN!}QLuJUKS(n#+PJ zGwm!qIMmYhZZ+5yWR6dPU(s7VP z=HBfH+e$Se%X^d@EvQq>HZ-d|;a~TbkQ>I=Y6lT>b%U2pQ+!Ta*>SB2rOl#i%*s!0 zr3I+ohuZr&mL-w)W-&>$E;!8Ukt{{@=-T8+$2gO<%sMueh3Y}gt1uZJlzSrd&er0( zLRaAj>-@(_o8X!H;$^Os@Y_dtBqVvJzIJn}vn}IRq}X+kA=XvS!$;!pJhw6bL@@Zj zLd2gi9WJ|Lv^@jQm&zA26jMfRUq-BD5`hw78;`RR^%)kuE^=gLB__nmvgZH=C_ND9 zdgxuizK2f|sx(=dxVX47r*=oGLo#qIk)0ZgR;tfOC@&AKAD*MS4NL&xn?rjch{|Ok zr8)(KEV8MsJqhpKzec7iw2z`o=(M`00_ zac#_Px4_6V?~s3g&OFmot55^ByJz71*(DuGQW9Z1-*BQ08j+{Oz##e{4&EBG&FUUn ztNv2}_@DVs&Qk!}iOvLp41DxHKh0K+Q~vQmp(P$*sfqzRpkC_G=yo;#ezU>j$B#__ zC_d+CK*$tB@NjsTEo0IQOSeZgEy6-mqMliEL)+~kX$NBsa7d43Ak!9CL;)|)G0sUc z69l3pRE!L(@dUgG6hOQsRolNXGgf%43egeSrl(|$lZ$St56HR2_Tc+BEV%TYXjyq# z*^iC;?jmbPwTo9t`Q(+a_ii~HHlx=086&_x#|%+sQn~x#gwLwe90z~L8|Y^6KUu_| zbWMrC2sAt6yv=3)ykiv;?3JB8Lg9b0Ho0hd%(RO58JBZHCNV`tdplb-(|3t*bGkCd zX>&r{YOMHKLBWN|*cY~xZld9`g#8k#lG&<6A#dc%6224DdE~>Cidz>-EQcp9TXS-G z@~M!OE``|j0iE91PhXwws{l#2EKJ|qba2kS!my3XecN|`lNVa=cZ~Otg!_Oj(~ewv z3yZAfe1e~rn;RG`8u4_N9P$a!bm+6t-CE8MoE8mA&@Qp&9?vKUy=|P2wxojY34O5Ce8OX z#^yvxesfofg{qC_#tuLl>T6+snvY%l`ct)DWA@rK!eAnFB7(VD^=LUe+96RFqNFrT zf^j)Mx!4Ctm`g109bX>xS%!xk00dNcj#N|v;J-T^FW+73W}6Q3?`JBPc-Zn9MuDh2^}6)c@Z{zD;FY zH2$Te-4QVuDscYx-~}C>`WBA`&3FkrZsF$UCXz2LE$un5K}IfX!0K13Amwf0w`J=! zo$krW$?PsWZc#2J$l?4ONi4Ka-Ij)#d4bPImv(!mdb`+TyXOMzlRaDq_CBna8oP^u zu}vJ8x73~KGoID}gCEr7xe*H)#ZRPv_+U()Nh>@RY9=lCI^YwaBWMbB&MsMT~%cdLvZGn+-9>km?b z)ajkkcG*z z79}dAkSV0HaQ%aN0OVD_J_*-0YXAi}PKf>n&Nqee{{!dv5;mF=+NAS2CtP13f>N$Q z5qaZ4MxGPn?)~Qi=Kpa)xZX7yUQ=A061&^R+s*F<5&an)8Y*ILeY=0qTJNL(eZkiZ zb7E2$_HU>EFZ8MYzGKhe$&+wLUnQlvT|%i~PthF5hg~5s{)@gB_ZS}C;IJFO_#db? z0lnOlW|WrejE?@L?3Pe>`KxdJz5TAyEGF8{z-(d7+1bR5Qrj1O1hm93?^m%3c4#dIZ&!nod@PD-HZ!4Nv&4$cu1D_4%FRF z?fR{T{59fvHrEO?xL6-d37in~y@sU9f*u>Ct8X)czY-cAmH>th3nm zxXQG#7<-Dw5yYfa?zuCi^hCg_>6nD|l|wPe`vYGa#jceEpys7}%-we-@U^H%BKJ*Z z8?^~?2ZK@L0vH@5JZ?o3*ElHe<*|+JSJk;Jk|!@9mFW<@4mBw9j>I+=tN+z8U*UDa zC-ZV~pBM8gFtE!pEyl50emf~{j&5XnEC%sH0Rg2>uQZvs>>Me!HII75%3?0SO& z)qwFqR5A<<6;7QbS~gJ({Pa5SRg_KV;-8E(s3>gmyX8tqNN#&cba#DI-JbhVGHd!H zw0xvl$6y*4x7Zky&HjMh>DbNEx_TU#UZe%W%{@7xc%j>H242Qn2#m-0Z$D&doz6bdj|n|Y{QYiYg7;}maVW_B|$tQa*gQO<|Rj2)2$q&=6SvVPTs z&N_Fi0(O5Ltei)mW7Es0m3eHWfPDAp&plg%Jv-_%e}UcLy!P1^z9GX>mhS04;Ce{b zYedG+QO~NU`@A-8nJaU?HFXQ1v_|C4YBSFvO8?a&Olx*??~Jf1k8tv$J=-UW+3H`h z7#KB(5u4n2MpHmsGMZa`sa+c;s~|B>QHe6%8*%i@d->w^RX#u#84iO^Bu%;9!;Xmu z1_t*61Hw#nERv*9Vh_Nz3v;Dx9u&-h>FXxk5F_Gzp|SO~t|hz*pM z{1#pI_TIf&2E4{>t{G4_WyXr@ehqR~)@(q>q}o+id2~d;`(8}=$HiiM%Eur(eQulk z>bIk|%OI?pLjlmPU#B#**1~aTuAN)XHv`V1gt}_X#Ir87^TYD2k~qC<#%i}>!W7CD z{L*6Yjhb0IF(U)M%(>`YeCZGar&jIJM0_lcl_-MGMCoYR-d!UFLp~>G6EsdwPrv{0 zAt&Y_&--X%_vWaIWOn1|OVeua(pkrBJ0Bdfc-lU7%fJ@lUfkn*u;H98`H#TZ^OwpF z4&}%AI`&m7G4Z+OE3OvP;p30-s*5^~rx*PU+t=rOxecFfIBzFm=uZO8p49!RdNkV= zF472iig&)J@JjWI*((n(?jJD@^h2L;zrv%=9H9Hod{->@S@W{rdzs?RWnyLjax6G$ z=CdDKbkT$RH$y^=r+c|3uIud)O?JPov}++EVkJXj<~lswj>6f|Spzx=@AMr9iN+G& zc)MIWZpzBMd^t2}Ah1aEn9;gqNN3>`rd7*kkltKD&mi-NuesNlD|$?IA{G@qV7imLnITYfS0Lskbj%5> z<$743gwy)jRY>G}ao_rEZzV91z(oO2O(!HTy8g5*yze2W)Aydx+GMv&4%jr$rc=|3 zjg#Pp<+9VN+fjFCtbu7z6G1*Uv*rIEZSNV@RM)kOCiEhNqS6x(5D}z9Ktd4&K|mB# zKzbFVgFr$@k%&|QDS{M5u+ck&4vBQB34|Vc5505Z`+eVY_TJ~&KhJgLUy`-vT64@X z?>WXj#%&n<6F+p!#8gldQnw5KcEW5Og{qU~s{8|b{K=mop5#LvgWmFPj6E;jh1`Dj z)t%&B>?-ymC_b~3)%u?~kopA*o2vPKdx*Ai?fqu2c3=80E|uR382#lVl%^E&UK37g z&Bi}}=gLotdX4zTWqsMFBZI_m0XGOm!3i;8cNS$57RN)opB@1h%8{M zz?eV7%@_TlpzPHG?Br08lflFC2TqhbF(m{pUX7rOBf4M+@nVN<$|zBiHE-qQ@^cOY z`NM~C2bAe@?!zaODOh>blyMc`!+q1uBGm9}*Ns;ydp=@HK_SW}USdtoIFbfkuI5?Z zNWJG>%;jRI9pMX)H@51U(TTw$0Yb2Yk&Bk5)wX>eYZjkafnPOMjTZ%lx*1YC?lo1! z6OeXAm%qEe82YZ+0msN0{Gx30G3PlCwt{zyI+H|X=txm{oMPh5mND2c6O3L}pO`ZJ z-IVjCccq?c1y_3Ot_^`@TxvVFe050uS>>u1y0IvqY*Vs@|MRca-THG2#gnLl=Tm$J zJ;%RN6BGSHiq6&NtHxqrA>{{GqOWXH_g}T3&j=z?4%PShXO$^iCGNBNY(~FL>T5XB zlcRK3$Uji^{3l>Z%2Ar9i1v&?M*|WQzWS0n$+_+aD)_H`d$~5L&u_qdCF+~u?~yzF zX#auhylPhlSZbd0k?Mr5UetU6=L$5bx$M6+&tP*n!%P(;6ggyr-;G38e)3|ws9Bp# z7l<4|3Wb8$YlOK=Nv5V6vmfJg?~j;i#Z$qRLY(~H_JXAT=lUmcps^mj@B3zc%+CzB zsfxJa3(sSSbSD2j57O>beqLBl{ry)&wuUJ@dY6vrO3X9gctlk43(G;0{~(EubdkK} zUQZWDmh-;d%jild0&Vtv?*zh0i*j71a~l7Vcut8=b9fa$p!@!<`2jLxGo*n33r2qg zi=DoO|GL7a^24s#!JR&C9rBA9h7WwgSo8?s-uZ~Ch;M=W1iPHk*HcsCN!%WelNFF~ zENl3FPvL}`x{Rdg8`l#Y`mGQ)@9K)fZ;$9t`)|DSEsNut2N~~N?8V8>_t_VMnh&=S zw|&wYR^a3IlEEkNHQRQw^aWJod1t(PNMXTyRU9ftuqt+Z@l6lUv3*M0{-VRB{q0OI z{|PV5JIomMf$d^&J$Uv9reR7!e4*w&!V!Ymx|qhQ3@6K6LhT|3;GK-h;gL=)*lr|ck3cZZZEFH^q7Sj!ocbLP5cSxHZAnRhrJrV90v4VB% zAnm>)UdA$~R|Q$)ZGG&PneM5$iV4QMb_=xQ5ka*33(iPPCl?-99lrd%!n) zSGXE(J^o4BC!YEQD{qkxyJ!@Iu^#vt;LPH7yjfR1)_yu7a`S! z0UN8SRlaLGB%?P=Yd5`${5I;-4jQC(o;7NVq*({$ zNt-Ti1nnJ+?89xG;|(!r{(QDd^oi|S%v62o3IM}dzfr)0`fv`D6n#eO+2x;p85waCQ5%-t0$VDqZF#3@x>#gaKgCnO*oJJS$L|CX2mS* z_4``DJQE3EHjN$B&_BuR&8XA5;J=qdgz(flH<<2H+pvAU!cy~T&mk{ukNYT$`HAAo zT?)PL0P84)!wNUUG}(}n-KxpJ>B;r$a}8^a`WJlD0gAqDrI@uqc5*DFN+(ahW7Z{Zq^O^e{vix{3+u)dPg(% zQ|``d{{>U~kEZrqRgU@JO}CJICval3url8xez*QUF{KmJA`|8@@aL3>xU?HwWUq4T z_MX+@ZchasHc?MEw_<(^SzcU=DZq}AMC9(5?$xGO2NdneSBd2gcn*K~;ZsnxvNGbF zori9AUZZh_bbdZ78F7{okW?O;j`K(?z+PM*f&U5F1)gzO)jNFFTU%9u=LV}vK-eYq zZ(#dxdb_W4Vo`dd^s3E zJ5PKvFk^dt>9F?MMVzQ<&C_|=m3Hd&zfxpBvPp4zXB7Xhl8avnFG779rQvSn?cegCG~CPw6Gp>~Q=UL2C!8{j%3ynDfrE*GG((I1d4OGAh(zZdt3 zBol{cqzQ5z>#iCX`Q`Q{8C?6unXZr)t|cRERyIwvEP5p3?v5(?o#?3|u?rM;KIxrg zQ~QD^$?MkF154KxeX73C)ZR#bACi`ii(6NWII`bBQJ&Yzou&A;o4So|KdE$|3hvt^ zWj_uSKI?zG=(okV{w{tmCu9cwV?-K&BdLo;)t#c)ExDYtDLSm&Ep_}b=nOuTN}TkK z?jVUL6iu`r6lZTL4%C4pSZk11Ud;2B#EXPWH((A#o%$dI{R-ro$^k#X%-T0ms zvp+Y=uXyu2ZQ?3K%AZWdFO+3&9MT$|9g@}DkakkxiM8x&AV1?H6{|~iMbFmQ*;Frl z<>BCm#oJ^s&=CSG9HSU#s>Mty2QaW5IopOO)rDpph2-D+K2~tGl&o`%l~?o~b?Zcb zVxAe>&bc}Cy#^b(dT-3BWzI>t@sUu&qxUZQ=L?*kR@Je&J!wJ~;M?0$AlI?52F<#e zH@IqhMaY+oMq`XwXR7Y}VDBAP+xosHz71`y8oxKTQ%V`sM-Eht*up8tdN^KiMzZ%* zQn?%1qpmXF6USD2K>VZ3nA_stQe94qttr6!5&chUq|Dg73mrK-)dTw7U{=utq;jdh z9^JlVoCo9Q3n@P@<-DxC-j0GZV=@{->bpf*>N;-&tCSrwJnMc8L0`qbAzrAKqeZ)`JvCN&bg+Ezm+&pc20NYP{wykFi0}|pMXNJl{iK`gT znMr1$YlU}~^_4>mD?fV&USiWkI6fa(G;5V*Ui{eYy%fXZDo`w@q`0P=*f;n@K@yyX%367v%sN^v#ul%{$OI+T)T=3jz;JM`FJcAWGzGvu_mb+Ey7K6EoJYJn#*4bQvg5O9`6*4StW`sEbO5E6^lL z2%7~yg4nFf(Xl0mn*vr6K+vCH@U^6%(azya%dF3=5|W6T8N%%A>K1^@%CM4I@zx`G zF&kh_8xNX3jq8q;7*k5EM?cJM_VED|SjjD+)lL}|0o|(Psr%*r8@XrZA}~`fFke;( z#m(m>Bl0J9CdO@3xT>KohXl=t^=c0G(-oSZyYO3a$f!Mf?;chk&f^TD{5#%k(4uh< zGB!Fo#zO|Ixjn>lD-5W3_^I|#-#pMeCzy6E&!Ub%_1)#`3yVU&nFy3_`^|j^_JeLv zoQg?bGY{Br{MVpzVqUk$A;5Urf%V4k9_sn)AYLgp9Gt>ST~i^94rEj?zrzGYs}8-W z;5>|JH`RdtWd7{=`jJ=?wUwmIIL>9Fq1F9kb(l9xOAvZAtL*?adn}I(+z32vXipB9D;F z$YZ3wy~IFmS;#KBZXL0Cv7+{ zLpJ-myvUk!cn$(T#`MpOfSC2VK=PK0TktSR_$4?0J^*~Z{Fod0{#mD(_xftTr`;dDhymVKs(se}Ef#JBxk5x@!SI$bGo;l>iOqEa0e4LM!0v(lP>jP(gL=d#_ z-fQlS2X{83%8lw4>z>VfaBuZe%EU9Sx5Juaj`*!%1J6TKN`iQj-vkG_FKy}%yRH$! zsJVjF>ZH)WtGuf$_8lv3pLZ%3ziA*hUNoL*)-hEvtEjA?C!{D}x}56@s8*fdjvLxK zS2OJo4z&Q=^)JRj^n3i^=zhO2^`>{epK28@**<7)m6Np)u)DF@;1PWdM;RDR z;|kOgb^`0aGLQD$O+Nv9c~GqJ7IhA<`iHct$JazRba>i6$Zpsrpl^+xG_>j4uSvU; zcgTYekdoCedY)}!!vnL$fs6_b0JhGiRENUsPk>!Nq{7LbB&*me^bxnn*y{P8jUeiJ z8}*2|Z6pL$+S?HAiI&132?mO%R8ke7MJ}}9qAYAb^pPiQ02(UC&8GS+F`37}XRHo8 z!|o0B2~dcBK9;P^wHPp#Oszf98b~Mqd3}R{fGkh&X{wEo>`(wL#Tk;j7t1(}PR^XB z5)%iHF8R;PZW@*I>;%CyZCeoAi&c~9`!}xh9MfW_nBNkii#N0Rys3A952N}_`_Ts< zLb@T7z@EI`RKg;r(^{8&oWr*1KKR|%R&)cVW^+^m^Q7P?y7fh`y$gNnmlzKTJ|#5f z*PmW)P$v)OG0WO)7_AK9w3(b@;|ZsXt8GtfMn?lc(MoU!x-Mfs=29fI=(0akZStrt zQCT$$^_|*UL;f75m2+y};yH`+=1ye`3DT!5qCX)sT^54rT7&DPcQFFEuRLj%aE~s@ z**lld_Ipo65a|+_-AgAE%)x_k9Q+x0IBz>Q6*rFrJXPgeUV)?Gg7xuL-j4zAQ;r$; zgZnbnRP4tkFb3k=i_c!K(l5|Y-@+t%2V;wGon2w-{V^XhMc6N7(w%CpiahU`iO8S?z?piB+f-9yGSd(P=K;tr8cG z_~0zl+3KTr@ds^&_bmL{=RL`9-aE*Sm5VkSSR8+#aPoNVwsrW2pQ;?d;%Ue&K5Oep zjiNpJRBKYpy*5kPF6FilwC&%zw15sx_p#`2YmM*_XNPhF7fXeoqL#8*~^cDT9RiC+rjg?_vtHXeYR-r=r&L$D6}V;;_+d zZA#F$kLn(s4=isO5fK+(EIWB}GS;%-- zXIsuD2$d5XM00}zK8?QGM9+@FUDX$ZNiO^CLSpIBdz6id#o;J<3)M(=XVx!$hQa6a z^6x=sN$DPOAsok0*Dz*>P+Lm7Y*&Ew_)q{i2d3(E+(K$%t_0yV=!S^vy0w*9TcZs2 zqcn;Z(8r2625eAM(!7Xaj)J4nHib=pAzVwkNR)mRQQUI-m`k%>rh0ytzw~7U9`oQfKd4 z>wA=D#b(@TJZo&TyGNJ9BM;j0rQ88$e(LYd3YnS_kM9aW2Bxxw{wQZ9-bMhf0)>t| z&Gwm0mCBhdd?{y)y)(8%4`kGieq!A`+8BM;) zLWH-KGouxd?#>eWz!2iiJTdsz^%#QsnNyJ?;O;RGA+0j~WIs^lLAPP3!?A?B?%gjI zup74LQORr1%jwszLfQtZBnJ2)XyKzRiPFFu^x!7=(CnRPNi+~Mq%fK#32u^f2Q1=J z%Gn{xMpt^cnsmVe+Ygf^byS+jIS66&pwNUI_TT)k%(FdS)TxDJ-_E;nRoot>lJOew zp&#z3S+^5k(c^7ie?i)6daY$`KO(>9_9Sd7#kKlv&E>oRpe zO*<1t6un1Bhz|lZ^;K@p`pn&-JdrAt9FcA$dPI3!1`b9Nd-kZ}ad?Snjs?|9>H)8Y zII6qi!k5WGpHs`i%64OLDb>DY+frE1Li^xs)UNw6D=5%W{FowVuNe1yX_MO<47gjI zj(YH=u-menRZ~g+daJsnb@Uec3YK3s%Pj%S+7IVXq<%H``jI<0_YXvv3pAVBNGdOi zaMq69QJ=|(!1@GoMFrX@jypcO7iO;A=}x=m;8ert`=uIpR1N;>RLmhZi(pvj@URZ` zbJkWp@V}Y-I-OQI<0&-b5OHNYF_}Q9Y!#Zgm$3aL>ne`&DWG_(xM$aY`c*nMpIB;E z^CD)7!gH`qPYg;Sd6jc{t*pR4_mZ z#S*Y>x8m?R-Po;gE0eGg$Mt)u`Hfzt+@QN?jpSQ|(a)pk6jl$7^IV<-?UD2?K$37n zB^~?C6A#$~wQB`5!POl(ZmRs*a%hn^fJ1-j;ERK z->)fTv;tO)$CGn@#>%?Zdk_a?LIoiJzO&8B0Fh($NH{Cc$rb28rau0$^7u4i@6&eM z*tEsBaSx2~$Btt(A?EqDz4oZ6QbNvePrxp)*HNgG;#;m#8nhaSHf0u}T`TST;Q{03 z4)v;!Z7!fS=z2 zL`6W?uQ35%dc&&EwJYyX)RimkwePQuF77Q{IT^_*W@{g2% zh7F^yx+yokkM#rcYwZLQzNBTWQQn$@gQSuPfl$Pl=;pzkcBA`9?dyPejiPNh>Ke{I z11JKl3xD2h)7Sy)CC$PyD^{J|n`S<*$L~$B>e8hJ8H*Vq(RXpn`RTdpuKz1k$SJo2$9u7*sQ=Bg6Nkp-3NiGy{ngFnU{$Y zqWhMeZ6&jZ0RL~&?q(9$4-~${B@7=KmyBI_6)i~=DYNr8(t{Ufm8;*AA&ouZwWwYr zzho!+r&2Ntp4py=trt<}Z1P_S9B9TXFMp4l5!9>su6RP;1~_cG1!|q%vA>t)tzfjH zns}~n>4+t2WVNOemUM>jizPgD1NQH%QV?^M0XK8e=KZY_lZ9{jLT6FE>J-Pkpj?!D z_>L?e3|`FA6{D4x5}N5l^Tp8~T12>^MM#&^MXuOZjVD*RL#Zmq_H{)yURD&n#A_^73t4jHM&+u&g9XW7PI#ycRKY+E{M7f zz-3{<(YGdH^<~9&#aws5fHzz;ok_d*n}5cozg?<9E5irg%Ynay1DjX{$dp37XU4zE z`?6<3;nR1Eu4lXK;(XWxDBnI~!L@UxU>R$cx68M#(atYk@kS*AE&K7&Q2A<(S=qo& zJ)Y`O;F`fxx8N<7Yg30|EH)kOa*+^yo#0Eo*7uiK;mJS@pej6i+JQRGT=kiZDg@g4 z>nD%fH1RSTE_g*gfuas&5NW@EWyCfE1Z(iD4x5dj-?VA6I&Qr&Llu4A+4Ec*TsK7R z5#IkGv|&!qEpRx&s6kV=poEx4_*Q?Lb+PtRxVuiR?E+u`j$R* z_-I_m37V@)@=`Y?$b+-@(_@uO0;6D4wHnC-JfDtDKVY`icL>wOhw`~i=*y&mg~k%;#eb;>xc2pFHK?(6)1BJXZR#G z*{m7)dIfWMx7_BNsWm_L$vDkpr1qbzP$kVgapb+Z72$r}W1PkiXjXgC{6o3XW|w~< zjmFn0-wtwJuMkAcm>WLK)hOm#)Lyu8EK;b{tO-Bs6 z?fk^ng@DeknoHlh#w_DZ+eBNm)}ubn8%W?GdJ;E3H@DCjuxmAR@EV$vwAn140!fnc=8E{+nnEfKRy zwV*SWhJ<}z4bxuse;&I^<12hnP5T|nSFBsCLqh`&Ed?!hE!Mu&$MTgGC9o|Tv^;LB zu8nr@b%K{1ryJx<$XBje=HHRtOzbbD@TC=L_QY_d)Wjm&Q!(>y<6{ISp|01=Vy_xN zLvf(csNs5w;&jd(;bI-GEnfhLljeOGR1UPF84X@tv_HPT$QEGQkW!Xtk&?iA zMVHX{((1gemvnp8XB1s_=)k;KifpZ+-rT}fX{Y$l^nBt*Le=JO{ZHt$Kql0Dck=t= zrLgY#tjg+~-*3FM44g*xDC)*(&|F@q_is~ZhdL?hT>2Q;*sy++7aqs0_r`|^)^Dg; zEGpr4Od_nQz%|MS-=(3RJL0N|I7A0~U4I?j;Xqz1J)<_z4Q}Hh9Y;;;#55&?uKOf! zUmM^)?ex2cNtFzT`Pl?7^B|@a+Q3_vaj=aC6Eqn@en)T1jZ@iIjCjo#ytvI0CDSa8Vn_Z-wb z8DvzwW22L&?2&K`e@^;YxMvb4vVwSHOO=Z$qu+{55punE19&O5RSyidY12H@ zlOKU6l!)_@hpHPdcrH>g9CrVV<5tgBUZk>k9`xCbKjhX2qZ}Z7{9${bHt6@=ZWs&! zytUC`HiT9cMd7xB)so(%`>0;aw1&%(JI-PT<*x!5Ln(Z6EOwPF4k!}mb)s)@Z{3u-zjJ_F^PY?aT$pR;5l;Kjr4+b&~emw~Z> zM{VI$36F$O$WXwp#>m(0w1uO#)WL8oD-^US*DB zEn+9^>8*{s)l=o-Q+;GtWM1kEj{qei{nDdLxZKxhZPhr4yLKq%kFP?OQ{b<>`SmRM z8l-$ahhVTTfmZOMve@!YC4&iDZ5vh5X?WK8cV#rPf9ol?is#3W!06K18DtFo4!Jiu zg1L&s_C7gU@%iq-35P23g617g0XFc0EGd>jUs5H$#*FZf+g6`J09QDGxtW(r;xps! zFeNFXJ{HPEItO8}MQH($kRO==4Yw|NlLKCtfKr?4VyXZ(S!55c+pg_1V$$Nl-6a6# zPP(LQRA}#GM{3yXs8&`KKSCmu7#eYQ4fi#R?0_8t|H-_XP(q#5&Yz}`j$lw#o1%VE zntA;GYS72?w|;WqLvRYLTOsrtUY%z&SxUxz2i1tyGXZY4sZp+!#e$;sQf2CmFYG2G zcVu>?iE?4iIw=KPzP>aTgzh9 zgcdg^O^h%H9IJpU&TTT4?Q^4XJY-GlN^^svMnG!gfSj zEe?>kyZ4gP6y8B^urHeV0dO_GGu(Zt^S7u62!~Qn6R>JYVG1$()+!4+3tkKQ$KtD! z;7l^r)xK|8LLH8KY)vQ>xPXd#nfc(+y-gYP}yY|%Jpi)HFxfe?y4_x@vaE|<5$Z=&9xJ9 zzpYaG);uCJW4^}cPf12;^fJqga7fP7Nu!>*MqWeLRH(ig?QSGmWj2ugl}2o z2wVtc%>LX|eSiw8VU8k!jkX?|y&Q}2Q-Yobxa|{Vu)%_Eag^ul-!Tt573KFn%7jL8 zU7u!h#jN%N@@d!)mkb7<_93``V=)cOnR-dATdk|zX{uR1a1HXcnj&ak}b82ExjDKhJ8bQ;fCj%MBmpE7DN77`eHt3mF9LT2xjz{cU@j(4}NCN5m zZy~W!^FYmqP+l^~a1^Bf%Nm^2wJx-7{BZj{bS#m}c_kDHwu<4hXhK#6+)x3BhCXpy zB5v>tXg1zaADmJ7Mn7o-_b&-q=uti!gZNVLhqHJ}6GQWF!5_{%RGDi{sawXBLzo1E zml(-^dyzLNM7MSmLi?v`I`TJ5CfzI58v(iG477ZAIA&`#bW#+T)Ct#heI%%~^zzm* ze7Vie!{s1XYSq0s{Wrn)YQm0HFRiq`wmA0VrbpfG!cEJ%q61FvE3Gck!$Kn={Bv;W zDY%KE?_L~Dd+GLyA|`7-@S$8R&$<0LnaLscNo<>GL2y=N$E&-fX=a)w;1HrYz`Nm zsqj?;#%M7O*`c_{`!g|x&0Pmo9{IJ)IQz7lvZ?vXPXh?<9q11Zd7IZ}W1vBGhus-w z;&!Ys{~+#2LucGJaa&417ZbSTjN)i|4GMoQZ58zg0#{BDTGv(qZaf5|ih-sX>NFMa zU*vOqzb)&&xGL}7R%xe{*%(ca0s&!7N|TIl&u)T+T1Eh@z`9c^uSX4K&kZx9n|7~u z1gd?q;qtt+taD0rD3x!xI42o%jR#D}-02v|9tESg1{wk4mJW9B^uEtfRLI(5R#=he zO(Mx}U~aFYGdfzYA45S;z6mWVPhYjYT+Fj5Ijw+YD%l8rK#yhFT_ve`9hXpKdrq1) zT9;vC;{4D%E`g4%8E>H1RoR(R*2v%PDlo$B6RK3qF1dD?HA_0cwjajq&pm4-nt(}?^59OpFzG$y;U0J%ya08*3*Kb|hxen)>3wFnb+WYc!q&&?v3QbG z^yLB{-}a{SmYuh@=vY z1XgFfcJw|*1isZkq_ML944|ijDQ#a<>Wyh~2iFQTi!FPe=Uz(sRQ++_GO z#VM=P<2Qs1l3382MhyIvA9=k$1NVxxXIwy`;WM}C<4k%#l@m{9{24>_A=xoYCxJsB zYT^UsRU}kAV;9CT>B`YYz0yfhh;V8z*isB3()n)kPCS2d%zQWXuIX6vj@c<3y0^EZ zMQckOWO2RzKfX`T$|xasAa51u`=xj(tyvH7)Bt>b-?RD-hLtitwB3iOE}Jr-1J@8l zef#_&DOjen>G;r3loj7LpK?YrS+-;1mBzUq+*dD)V+q!)^$H0j%1okJ7DC!r)`^&& z&T8{?8|pz-r07OPd|6W-^h2*0r>w10$>BqBo$Lwm7g=HZS>lmUoQ|mX4?RPC?%DuR z+kZ)*T{1cwtmAKL+Yy);l4x-XEi*Sb$xkj3E4=tti}Cr6GF%p_%K2p+*e-3-3-7L` z)k_h2Z&?~$QYiXG#gJO{(#7?YJEgiMX9GuOy6xRD%K|%mLD`C6qkw}vn}<6&*OXtf z;wAEWD&hIeiAfSS+VNWhsd^QDEs3SyCTtPK37z0Lb(b=nzLv4rL zVyKRN%#0EX*ji)#ak;wYk->@JYS33-y+so{&pNxb1Y4-dg3ehTe4==c`1YhM$m^28 zl@n`++s36T7L}IoiGJKFX-8LA>mq|!PLe!+5vDq7nBNDB>Uf=0M+axgsLB*QCKpMV z{CH!umpElN6^*~bwWDDl6_j+E5F`sG1$*z`(m4y7KT;mmOj+ALy7lbX?{kkWr{H{| z3x6=i>v=MNn!c|1$Hn(z>Mvkz^BpB`OE$k&icDS*8q8Bs^6;9^xbA!)5u@GImBhIU>*?nAWKJkJ#$eHUG2guHnWnh0J%+s;#h+8s<*H?YMmYO>q-HSZCKX&l0D{91EtZ!)8 z#k=D8TRCd|y55eF9r5MD@CyrfD)jY(dV^0=8g&HXj@^VN_$ko6bxzNUxGOew@nT0< z+h|NYT}Ea39O8E(@;w)&^XzKMbFsQ-?J~@hS$pY~`|=;*End3J5H2&cb8TcvdrAAr zdu;kq=ydH~`hApjy}>A~k0sf%pfJfzt~S}pV%a!|C20I*q5WjmU5L*+cGmhD>vUlfvn~ zJv^d40EjPVB-Xeulyc?h8^pTc*YDSUlqqsZcmA5nhGEe+Q{$PQiC*+xcpa+$nd?!C z8H@dYa+k@Z+~wbuZs0T+Lsd7|u}VNKL@iENR4<9k`d^>|up47#Si%UA6B_?jz&-yb zGv<|1S)?V(-7+k;UGHW~a9c6|GS^y^uzS^VBr+L<(Fo$YnDxe zLX-(#P0Gzzt_&wVcc{cjpu4Zk)gi9bzbwiVH{%SrJ((ad!TxnYwCB#zjow=swuK9U z0_LCokBcSIlU$d8_TNt~DCKX&t&tRQlOfqn!u@p8Z~ya+fbhY8V4gUMd8B7mWyj1$ zYcJNAd0f7em^*Ou?{EKeh0Y+-01eJ{te`q|98GQ%nSop3+MhzCtBxdsShVVjvYSXX zJA`Q=?}@zuk~pdI)8MqdS@#FN*q!i{w0wbyXwvKc@1czUGnDdl;F{EX_p$Phr@xG? zyOM8}&3C2X(OV}k_?DVqQ}cXu5Nk{Tq&T-k+B*G?O2q6@rR9cf{oyk$wTr~=)VH*B zRSIh(L6H60_9-E?fM3rlI-imXwTE4IJm(P+r4C{#x#`+}SI2)IBI)G+O;@j4u`SgE zpZS}X!%JLo)%}%jc!zYT`@X&QQfFg69ld!P?^PTvjhK^p3F_VcJ!foT#k|Nx`z~t^XDM4IG8*xHS0J#(&GYT6Dr|S?i01cm2c$k`^$zr9#wvk-VJj~w>v6y zxR|T$4ia1*OeRgjf4$K8hJPk&UJ6HfKI2sPa@oMN%FUdU@pJb&;7h>%TFFG6A3ltn zdLX;Z>LU1Hn^N=Y<;%F7R-{fhbyJxiDV2Lp4N9i*)n?mz_gh>{2m+d5+Mi$@uril2 z-~Q^d25HrPD0YrM`LHL7hm2reeuv@{LqypoYf3DBQ5zST)eP*vA>2#rNZe(#hYyv; zN*PkY+-z&=U2?eR^y-oxSA9!e>}1*Am5P{ZP?^7UggHA(*>z$YDeL{PC6k=1Z~A|G zwZE$aN2N?l0uh`7*K_zo$nVnjsoo&x-I{HWa>W*!Hz+llY~0*F?g>wB`b1Jl8U3sg zHQ=s2zX&T}p~mo59X*2dFVi|TNVx2sHm)NPXI)bsCp1;{#$ zfo^{vBoWGz*KO-XZTG^+*jOZiJh%_cpC*A^nFjAy zN=oeCCu!o8ySi|lQ$9_kUcZ+nh4-B}-t(0r$ZHMclad|(UyJXuFOCX*hxc34YVNqk z{*GD%oZBDZGrTg)$N~Hw%Gp8*xO>EKm-2eyRB^LDg|=0iE@bO>MgUS9F|Zi;ul-h$1UVcEP&s1#T3e9cYu+SXg7zkCY^zIOes??Z0eH5m$G&I z6@52$cbW0zX=egufi)M`hX9Shk8`BJA&$wmL`(l!s0jBiVzmkvUEa zBjno{gsP1}NfdR=jO1CioO8=g-15^BDX?#rX8IGx`W&QaaS8Y>ct^LA?+?4XU8kn$ z-6H!+>g(RWY&d`e@FTjl`_TLUW_`Yfp%VvUVO_2F;%>{BReR*DkJm`A`_SEuv8beJ z>S%-5?vnXR-?7(CaWz7+YMf3Rhu1T&m5L+ohH_QdcU?uMs6MospVf$hiSRE-n)et&T%!nm5yr{M`1;s2B;)sQlU=og%I&ZW}u9E7Tmla zMV+L66FaX`gh_UcR$@F`5;Mq>x;ZkghU7z`&;E7X(xDSHJj|Itn#`v8iH`iL^X^vs z*;MTh8Gh;euO(B6ghc~P9$fDCu1Ljf?5{J5&?-C>1r5-gklUE_9<#56N^OfT3n=;W z(=%PXd!eN90E+thD8f1fx7MrXwn~0&wy!>7frCc@h+73 z;N_6%r#+=}Ui-j}*@^oNqKlT8x|Q}R7ICy|OWnoKuwH4F*h%oZw60u_|#n}Mn+RkxW- z=C*TjR9ZU9F08F|xmC1?Y1b&^&CL8`%Ji0L%Ts_FSaLZBDL zu2NNv1{{UusN6lH`-(NuA&C%u5n(wGhcU>)*)xOlG(_-FY4=_lA~{L9kwn#5BdY{< zNx~>YmAwPBkIVlurT@*3g@q7XEx&5Ch>Q{QwOqI&TZ`RkMi$YX--ObF`a!Dq<<&uFO)0!n>;n6{tIrf&-!gs=-Wx{ zQAS70p8q$j)9#e?EMT0z@|U6a;UAQns3xiP&kW_T3;eIx^Iu=OT);;PgK(5E}J={D0Re%zPlYF?_z}dMC$vi;oLP7`p2eYJNQQhMui( z_3&na)JYR&g&Japa{2UkCCvW?+W+fYCS75o?0MhqyLFieJCV-)$?t}8_GlL_70(|$ zw*zrvX1^!4?~ktfzcRPlXpdqmAT?9zM*Ncs1&+S?6*C(vY)`q zBPM+HHB8IgUXw%z&9L-q11XFU1)DRf`WH{K{L$ba+eu0W6_v71!;^9@Z5om-)Q(k|+L<4u12~<73adgwCU8YRKg-olXXG@#27u zafCCe-s9|egKod+b)0Fz^N%JmV+{3{dg({W2eg&8(E_);FJ0YS{H}aCWhRX4A~pz> z>v@Of^07lcTL9vmq^Nzrs7usu0oU9L_2xSEDxYJ&DeRv7Jhm?Px$8o$oxgS$w~FNY z{--*8(T3=A^@!Nr^#uF3N0+nI-&OHFH88pVg6pph*8XoC*%a*Ss?AAPu1dFx7<{F6 zLQ>9`nQKVT1O?w*5SEms#GSs;S=%U$GakJ^yq4(|_pCL~b!~Tfa2XXUmSjsTy&`9S z?2>-4p{D4yn_BdIf~3~%x^KGULMoBnSf+VP-pj4*H8kmeVxBI6_}G))`1`@9n=g%9 zl>_##;>y#!*Lt)KTjh4nWDh|t+k~9B;=c66JOwj+jk90L?Gy^%k^;Oh?o>m^r9Z*m zVt;3`Z;xe1WVNs|Qu#ZTqbiuoAiW$3*s_pk)YP(xD2M74g*qGM))+4|CcHv(} zulR?W$DVA|pZsd!mql&rf09%b4Vfaf3U#XU+pJJWGUlHgl-Od{*Zr>gt7M+^k|`p# z?KnxWn@;V*TEW(~{fDfD#in6S)|JcLG`91OOO`qyYT3q@Dl#D=MW>E3QL2XKE*)C23hMXvEY)Xr=cyxbu+;TEN!nB=(c$A?r%b z%cJ|2%1$e~ru7c>;!*R_^CTo#zTVQ_h1#H`W`x(UHyWy^ePgvaoD1SDXSL=I9go%- z_#&E==-FG+>GIzeFgyOg)%M)>oegg#?OnLD}~!n z3k_ry;Y-D?Qzc!Qzwq+&l-vUiN~icrLKI_g=!3YYKV7S)(zlte*N3S`AZs&AHGA+8 zLE!EA#!Fr46~ST*J~!O2<0eo(>FRtIIYLE~XO_Oj_yVI4YCFlePT7^)Lp)IHcPSOV zuNU?$98F=O0s9P8l}yttQ{X7d-1ZUiKuWOMyn|Cr)tZuaPjG{l=meTi?aA52S_i;mlfnS1eyQ zJa(&ubw3|g717YWpP1jb?L{8B+-HANdEx40s21A9XlTIjmONdicbY#L~rXl1hc@U4Ouc z39bc8{1{Q zmf>k#uy-Bd{Qkz9Locn9WJPdsUcv3dO;77aK^>!NB>&d8&cwa7bw9ST?on^o?Q#<% zin{-Yy*Cep^6mb|m7*fjg0f5~Dj^BkE2TsfS;{h&?1t>?7$sY_Q1&Gf+4mWY8DuMK zS%)#kl6}V52V>0lo_fFE&+~ac&*#tIf4_hHF}M4^wsW29T(9#w=UClI9+_JRDJBdd zuNW=?dc7;TlC6-zbn_g-Gfb0JFYqaOoRJqeD+0gr$Ut09=nD-*0F?8z9r;@KX%D5w z<(=&Pf$IBU=A6JGS9Sxh`7n{o)F|{&t&uZ{g4#X4g>DIA-o3<+xF5~C8F1thWU!=? zOf$GcW9FWY>h$z(JT;zWh1G(atzLH+s{7R3&+)14rfpOfXyp!{l4te@SWXB{_yS`C z8FbT-_5GAmm+Fc0tBcZ0yi*7DjH;mH2Ue=iy45QWST%MwJ9cfW%glCvXS?k%=rFrd zb-Q0i#_5iIk<)0!AP})QIq_ljThj8lLm>6~9{=e!@$rhlfzZOCids^aSFeBl1klEW zOUYTO(u%IEVTn@e97fTxl@)~+ws~+glqp$ zuMb6P&J4=Lx>_6L>rh0uifb?ZbLakJQ~~Ey#DOmix4kD1$cbpB$FA8H4k6jb6Ig;DB26Of^tT)%zo+yp24Q~r0F znbO1Os%_`^7vHEbJdM-8-X^{ZjkglEmXP#3ifxqn)c$D2b@~ZxcjK%d+CjS)aX<4_ zYe&$WL`E3{_|Bud&7#RSo4XDG%)Gdm?vQdUu~ zG~9VOM~^ua&71dP4+li@M7IDFr0-jwD`r&N)}Jg%fsmO3vbBU#uR{|;6TIik^TyUe z4>WHkV80qVg(SM))YlFnE{hqAB$OJ{DMf(wmh;a({bN76qZ-A_jEJS~?5!Vp z^0I=>vI76`snT0RlTr5_!HRANq@5#EU&K5uB)&Y`xTS+{VvD@4P_D93FJH+UMWifx) zsc}A4I@50PM1}r#BAT``UCmo{(mD`*DCu5H%Hg&??W2PXPotoxBg_)Zj?eXEtXl#5 zdCNU8C*NhYCMF`ZK+%dtacFsDgOS7HM;m+j=gxC|B5-MeM|%ezoLKldeBfKxnJ6PT zSyI}6;4}Mqi}hKFjn%umB$QW2SgeN6_ez%tPjvL!w)auHgZjW}F+ZKmUFW^2Yp}LB zhC-yXEKEUq8P6*w94-FwaikJXGjn0L+&@eh2eRL0wDVbA@d*Grwdu-n?(ogDW3}%( zGJRen7;g%<9Lnvg;wVQPm26V{5P3kHZe`V8_|Lt?4uCWGap>V?CFb+3mL=9GVf{i= z-O&2RVr53ta@{>4UV#%(2weNK!42^v zvUk82e;t@!C1#`3cuAOFc2ZRHV=v>&1mB3)tiK8^Hm`&)yWn?PO*15DaU$#*KvgDW z>76qm-8bi(47GRD>(IaWmxI92?#}n;B<}CwlO)(JSKv0VHkNntdgyiY$kLa+K8+IQ zXRmE(0OtDZ)lrc{jO=l~Ku)@u6a{B=3~a)?X+LOThmGAhjIVd+~kHaAIim26y$X-ctg-B}$YUE`YMl zknAL}S$Q-*m$Ed$pl7DhKg36vF#xX{G#$|MUOi~AG~jFvY#UnuiuVd^xj(YfL6mwK z)}16hyt@G#Y3h-RG8!S&t`}*L$M+}mW!tpZYEqXk8z02977kDU3fW+&8DP|IIL?E> zWCP}$rnf#D_w_E+!K1`m=*FBCl^BVKMY{FJefahX$r>*HpU3((8IV9Iu>fer7v9V= z1pDzgCXe#?L&~^w_}NFWd8G*}+VL7*>Dfnq)F_}-WdsVc^LB7qiLxEPIYvo!4^!_9 zVp86fc3E?$%QR4QtoP2)#y# zkWASAVpd$1aqSAf+9dkvm~jWo{Nc3gPTS{sGv*^lgziTh;?%@&l?gTIHzMXmVx|>i zO6CVjy<4wuwWH-mEZNu3hrVNWly&KF=K-~GWRN0vd`RLeG3Y3^nPhn=JTcKT+n;+T zYC7K}Z+V=vS=D4!lgXIzQ@d6Y!R_#PH(nE!{*1)dz>Sr>3#f z7x?n&p2SKTbo&cY;phWlYZP2}F50|HFz0oP8j?y-mQmzYD)5+<4`kXH)h?xc7o9GKSdf zYIc^tnr`-2wE5;KZ+l{tF0b;B)%X;i$xw!fjk>#+Dl_n8#4<>oKd}%`BMQ)7NwBY9 zXY@iiVPn@c*_K{?GqmPWugwCeOg^@^VOiS!Dhu%&J8bE7eze263P39J z0*u=~xYRNa@17)opdKy1Rb)HW8fRSyPv<4{!PK3HmzDVAQ&#VQL{Q8izdjj=me0?% z$Bf<`zPmIaHD`bMiv#sYGNC#}Th`@U_=@}7fd@c@EiY@ozJJ<@-U%Rvxuug~!%7a| zowi*UJ_^3WA86Kg`eWh>i%b0qX~`1L>eh4)to4jz)zc@?ZDQg!bIVmr-gr)s#EX)* zmeTu_y$A^(rL&ztwJkes{`v`GXXvTI;R4dj#EoxAr{;v^M~_CdLVcxecZ=p!`G@V< z-qY{oO9KBzQwACwrm)|fc$nMiFzMZzJCyEz{xJ8H$2!0#sc9d}{|c}U=UeVaujl~0 zl6XFO_nTCXi+xSgC)h^;>tF=%P(k?^?Av>A{P$0nsmg_obk@Co&B%{*17daHKrAb> zLb8W7GDrZ#AkN?B$arWJ)X}-L;ExG+Ee~h~(hM+9@_MJIRb8u(3U@xnfJGv1@dwHk z(Fqqvg3Da`Ihm_jxFj|MzOKz*>}>D&2AeCv?U&!UB{DrlsI5e21kk||I0VZ^!+>wk z!yL5@Ip7+>r)%DWsH~5_2OVA$ik61TwZ*FCl-sTAgSc)@PEo)sWr7h2;*}l(D!Vr* zr{o24n`8(PvI^|VHMNmeR%1H%+a#xx%elz{;5L4CH*P=0YvwAz?m@0|iLb`wx4Ht% zCY{$wgG;hbYrY>gR&T>K0B*^tYh8v>pma+oA>Lz5^DP zZeDn4QTRmB0kj>rpsz{260?MFJWysF_H4(LwP^5Z#UKL9Mjd)XIU zr2!SMl<+r%ZQgi0BtmH*=?;LT*7v?`ylvB+UHi2=fX=UI3&^ZJF8N7!!MH%XOF=q1 zf=uaJJvrPulWcjtHm&|Tme}W+4}Z{evAipBZ9?El!6OUYs~%M_4+J3D6Eik}90TmK z9U|g|g}?QE+)V^vD(M8!J;kSht4)5@g6}IFkY;WGFvEyV?HOwZb38K6(;p2!UP5>% zHI=+iwa92*M+fxVDE(@&l+N%hwQqYl3#ZT1dyRiQwtqv4%hkG9x?0R($J2-VrbWp* z%MZ;E8;d}(2xa|bMwPB0@PD1(lNc2IA!@N?g@umjX_V?@T^DDU7Wi#C(0$y0Tw(uU zou5q_aa~sQF9D{7@c(}P=gGfe-2Xs_f1bqso2&Wnj{g_O?>~?vy&ZZ}|MJTH)0O|# z)M)oXPdtmfo}n!XNU1zh=TJ=6%F=CpUmJBnUAB}iPQPFIH?Ka?ngJP{$HLc07)SPQ zogt7LB#IRvdA(_9$4p1}4UCJzNv(5fH;pInx@Ny20(Vil|I1N$01=T`TxAW(M92d< zLDSX5irr$A;k1d{V1#G0ni1T!+Hc)@nd0J6u=1XWg*A?PESPVmBC6Gj8}(E^(XOHjMm z4(TPwpA|E7v{d2c{Ntowy+)+lrK2oLl#vm)Ie*Ys;WTCFs8*Wd!jF)K{)ID~qYF|t z{(J{nMb<6B%*uuO*tj#I#A2^m?5WL^=ZP6m;tyI;!4p{S1}cJKBF6 zM`5kF*QtNgKmD3jNHuYw`?=Eapujb((|BDs({VmKAR}s-XFAdd+kRy-e-MfGV&c{b7GX3__j^>rKXv@-= zRNKL?0p7bMhNz({dWDuaUv>Z=oRh1%*zLh1duDxXrrAzJ3vB~sZm|CVpup=Bckg5* z&%|F?n0EKOqS>T zHx57ASIW?8aAMJYeA9BbMpCdopJ|yBlxZ}#+X%8by1Cp<5rY6k{lxQRx9yLM@k{+=b*Sx6pBODBtbsC)#;9qHk{6tqC=a;YG#zcM9NIZ39lCNN(z?mfed}`vR z8-0b8j}kh7Y4|-GvZ4QIzD|!a7PA>}qd0$^ANh=7F_W0$#z8X#bdG<^qV$00@qH&Vn`3aIpr zRavF#750C#ZlIRXq4n@Xo>qUgU6I;Mmy3qK<)RKq^V(lW=6fO3UcYb+VHGN_UwPXN zTjmpyuHe&V-iyp^cH~p^x|cuqdxg<&VO^c6w#< zw|Ed{uhG@#pWtRz&*VmSetAbg{;RZbl$()6rFlIglvB_dPEPsvBWMQ%O40Fsdy5HO zku3D2DD>8$2k`P}Oy@32u?yfAIdmEnyYylwOJmlP>Y>cXt2a|+@=(4KGhW}CmE4zq z4wIQrkdFAg16%L>rN(~CD6lv28E`8sn}XMVy@YnIn@>P+>weFeR$NXhKn3`F2aI%^(+_j} zZ|^K0LAdozMlGTFG=iCFy4yyr;UAgHx_3T2t70yELa%qc$W=>y!4o@u1nA zZ@a&?)G1{%T;d;D?5vzpcNCsm?_|d^nRXanp=#K**IOt(EI8HhDN%}MQgi35L_N&s z*{5>j^Q*h(GHPO;7DK$0R?5hmCn+>lJtE*~d4nG$ZimMwtNZ7ebXr%TKTzZo>3Hl@sE1&5E@^p+8uC- z;a9T0|GHqXh=lbwF2h#n@f4cmWu&Xn(5fBn1y2zbGa%Lla7NGT;0Qtj80TbSI-fG{j|u@LA^+b%Xg(28$cYjRJg-OExMru)}z^M>%A<9vL}UJUnsz zvHXi~g`VJK*Q|{D{hdq=dvB>E3Fpf2cwxWs7$sAj6LphsVdL3-IfGJDODr6MK$4)1 z!rI9R10zV zWC>1eO^D%>9k(AYF>pNlW4$Sqe|0ssO472Og6X)C5XDEfF1K2rlc?&5(L=JnuOQY$ zLICL9V&;nCi@dMh_I*H=FdOLZ7X6EQeQ?L&5@@?cCmTrF;>;CgM*!o$3a|IdEQ5qj zVXtf1WwvT0a2oBq5Ly<<#l&CTTg5WYSR0=1DitUBPNxMlCV{B9ykw*`_9D~AJ?+EU z8bM3#-#fUZ=O3;6$C}%)du_tr@EGOvm`_x<{H>}{fXe<0RF(H(ltT>KbBplIufl0s z`;aH84ycA)nn^45E6s-O_plSZ_DMFx+UWEM2s4A&`mMv1V*I{Iq3LwK#gYtU)DgD2 z={!o>8wWir)Q7w+1{jd})P=-`*$K|aZ&PHPt(xygYC5lfWx)|>d&@S>o-lJ!gJLZL zWT^h0D5WD4+RO$ptQzh|pMzx5z8Vx+7w4hI^RzR|8>mQF1&sO=mebFyzfLMKLGpbI znACtd1(^o4l5IvBsPihsO!PXGx!#bZOeJ`!jyMbj)ES-y^K8}ym8;N3!Ow!3LF#^D z87i>x+nZkdGohZpzFnNSij-j*i=5;-kue{(Z(2`NfzYvk<;I&kHD-v99~(^<2ir5e zD-v)m|XaJh%YE!K-3uep6j3TUf>t1pz{Sn%k;P<28 zX)ybXZkEu%thY@r+VTu@OSfc3I`+J8HAae#9nGp)uq* zkGUUtx!Tmxh*M(3iQo)%%D{DvC$pVD-+}*o=FTWK;qJEzMNcsPzNe+7+2&4OhR#?~-pAL4Y z=qPls4Vt>C%R5sHgVQ##5M(cv@2oaUHx}pjvE#^vXk| zDnoOjliIYdeE<_O(^l3~h<*Jmu>?l|(RL_XE1&cT%(Pw7xc<*TFqpdDP-WhH|H4+y zi^dV!-iX8)g`|L|W>q`l;Fw+gVk~ADy($*^{QZG#iua&MpE);>p;Q6WeO0%rH6oF7 zhL++dt2^vWYxaup;ba_AChtfD@8$;TxHK)dMWq%w?u6FEpgV< zChrfTe7r)@tF|)*Tip#iew01~v^8RHQO3`0>H^Q^F3%Q7h3X9Ai9Ep1=7@!(w&4x+ zI6%WKnvT=lI*ZW+=lx|6@n?I%=oV3dkpJAH8I51R@nETXSZ$7_QA zM4h;wr4rB@ufF z8_bdeXPrG2qx{eV?YG6ICy;oGtOGvlQ}MG(8A~h$qR!o`_+pDFjUm~eM=a}`S z-e=0PC`a?DP|?u*1xJcz@#U>6=gEwf>m+a$s=Wsjt9$uD+99M7+v(9C_xy@`>rLRB zW~)11?UVgmqjAuoC8CLpO|!Wl?M}y%PyfEIj2lkCs6j#+RPH}M`>AC8p1^f|lH3CJ zT?qZeUhDlwv*B3H62ldBld;C42YkmHUN-e)D0q#?=hyV4tB}ffv_g5Bx;*0EckbS3 zS_bkr%6-9ASrr0uzjxhdJNWq~E`Ig-YaDEMnZ3xr_2E|UBwqND(YDNT*6tGirs6@s zxz80fJoD;_$D;Cd;6em=mnBu6sN??|JK6b}SgWgoVGbTODo} z!r*vE>n1fUnLm)RW4&% z)nfQ9VW4O+D(Zf(DVlKi!E}jV$Ia8!9T=_e*cORAv!SPm0_qbM`G|tslJa$`>li0M z)L(ga5-UFI<1Rls;oTAN)>F0Wm7Ez|3-#+g{$RE@hwJ0OAKD$flNf(on3izr+-}?= zik8v#Gr=Qd*!C$TC4)lz_5E}eVSM@`89w)_E2(_ie`FkWcx%0eh+^O74MEAQc~G`g z0)~}*RySIsK`KsOZ&n|j4dB=c=U)>t0YsLkZR25!rahox ztqdRhe$fmsMYH>|C#~@e+`f0Fy}M~SKAyN91u*cW)9f;R>?{1X1CThZ{!2yat+ooF}eb@RkHhi<@jzaDh%J%iN3kYtl4`M(x=X0ommn75ke z@YVPd>A|+r2YiJDc_rldU_$%UiQ=!uJ*2crIVmDp3t>u^-ynfb<>)X9c2Th0Dbe+k|xaF+3d4w^<+(<9XB|@)w>#i@&3!hFh4ff_fn1dz< zfdKacAToh^Yj)UWIrjJ;D2j$1dxP&L4}C2x@m_6R&$dLsds3;AmioRlz({eMe|VEA zaPd3qOJ*RMBL`=e>j(Sg%j)&I7FiZ84Afm&v=x}rCX3>A?oKywgcUhAyjl*Y9~ebz zmU_i~LV86#{hQRJ`_t0yTh2chpOreFH0>-YzE{Tb~S&T84@Py6c1gUB~r`TKVt zEsa+uh6>iqp~U6Td~q?XVDru*+5PlPMP1E#m$U zOX8@9e)aCDw#g95Zchq?mNS9KsE%>dk#* zqMr{VM5UxUwPLVI{4wW*FIGdtv8zKPa1c-<@dOE@-s*j4QiW5c7lx!L zg;UnGDd--5i5XY$YeElNmoVb<)Jm#3BFLj)gb!9(*D~7~Nqw0`b)qh8F(0?VWRZKG zk>wP08E!hNOyF>E()LJMKnS#U#F6Hm`X3q&AYrufR0T8(dv+Eh@{|kK3$av2#j*F! zV^s?U_4i&ijZFyb_ZWkMneFlWj6|u-9Y`pP-`4V(G1O~@TK}8jH`4=8j*7eSsCVe$ zj+FUbeB3F+LEt2)ynNIozG}64s6`_tCVx_3`$zK!C2i9tt=BlFeKbOp1M-ks`0Mu$nmenQ3o2ls}&YFx|p-P@9~x501aaU zx11~4kiQCO)}8%^XPf7wQI0WhHX>f(8uoZ7$Oc+;^TK4Q$y*{%6n9o2Ztct!pYcGu z`p^SjKes71w9SSsKiG;7o~`jBQaRxeQt_kM_m#A0v&2wP<{^T`t)JWq$u~aTb9U@F zsbbsK9LlW$IGBD;;fo@uQ=j0EN^COSY$Sp?zmIMCTNrhm>r7^aok;X~e$V`29M-k_ zl-N+RZ|mk$$^G;qH+8Hj_bP6+h!L=F?22h&qtmsICrA}ZmOUGBG8eWLl? z$oG>VY%dE|vpRW+9XmyAC(sHNx>ebudrM_Y0Es^Y(-EN^n}6<{u6zVn#)G#eg!f4M`1qU+I5jon9O-L6gx+hVu)_6sIq`x{)I^D6?O@6vdWAR0aM8+v!qKzeo8 zq(G4?ve}XZMr=9%y(CR^&YAT)f!SSF7l}r3hV4ZY2^-n`{bnH;1hq?Ej^)$eg z`P2jxQel?g4)tlhw%?E5DF-{Y|5Cmxki&^o+b-B{anb9Qnh2DYY4pxt5l)|FxWF8op2jaJL3lQD>o6LAJ$*4D?<-%}Q>)FZOEO&4*) zD3@@MqSIb#D?B`l8&1MJbM(nwy>^U2(XYoSx$wpC4`p!-4&{Xx+4WAjDog0vVUdC0 z1SsZ-J8aKs6`Mw$0$pc_c}`+mt5t4*@j~+QA8ryach4(Po`=zNkv?cPo^spLyj7Bk zj=A`#Hg?u-0BVV%K1xLp%gqak@No@-Gd83lwAAH@qU(3G`!hP8k^ue(;-Mqn-k}Fv zk)BJFow-1!28KYM^`Fj>9_NqzGOqCshfO9Mobus|wbI-#W#gGF9XlBsEm7VJ)R~3N z#19AKGsw|=a=ru3D|7YI^jcJw@xt1x-0@>!2Lo=#t}MEe(9}IWJP;5jA81_ZSsVp( z%WjBPuf-$`gN{x&a=};GtVfJo@ca4D(nDUaI-1q$XC*KA9FMPoa@guH?dKY+nx5sn zG0-62>l%0&+@C8JSTqnJAKMFrc0s~ud zTOjV`KQNlIUIXGuBHLAVrVNxEZ&TQMjgV}7^b6~r>f>9_;b6F9Z4j=ds5Yb91QC` zMi{>lqPnu+)~W>LIj+Q_92zk039$Jh)uU!)zk6m}F(%6XTeRU+C)j{(E>S*i&E4sG zKs?C}A2_q03JJ*Dcc)x&@ooD^$5|35G&IXa9cZ#RF*A78h&=>@Tbj1g;)eEL|3?@7O0N zfUzmnOJfm`(xWUAJ_blaup#y!CfzgBgAo3tK6*7eSdFC==B$u4tfAU|YmXLYu7$ zQ5fGq2dB3@H|(d(rpdGw?XSBkTkM~BRRX?FUS|lQ?oU*LS4z>01?;?v^X0-j-HG_` znK43;5qNiJr^5(rqdi}qipSH^oLT0lrtejq?Oer73tjbA5}BSC1`g+>`moE~(?A7KlkV6sG1DVvDxM~?PbUk)e6m3;|3EjDqdGLw>xxJQ)V z91D`IggxjJ`5DE4RMfokeV)caNXQ!ec8`G}kU{T4Ll-a^^Zosb~vwV)4X8a&5*n7B8Gh8wjX>BPH8q=|%|= zy2l*4!z6UKr5CoULFsJRH!>=F87r}b^$P4YDrMv2pG|&xuF|@@mUV&+w3-4H?}`xB zFS-gh_JoKX_4K)E828iQ0FwOPZ$PC&jphs_3sfO}cf}v;H7PSPHMS*h7+G(&Ih9>$ z9>xqmub)|UDP(;VrNG|$7?Q2$zjG2pO`IFA?j1<6*B$2Fz^g1*G@_hfKi$fu1Kd7A z(W_V47p~bh@#E*HEas_PoZiMJQ$#2EmmSu{Dg*&uObOxRnOUwNI@Z`p_qP6pC07QT z1X@LjILK)hKPxPOt^#llj9T2_g$c}C%7hY2iCEeSU#g@79CgxZ@l`&J8UY@um=P_~ zPtW5MuRyD|Yh|>BMDY-jw6#(;nO8`!ag(-;rEMBUf&JR$0tf&hjr;XT+HhR3xe)X~ z>)`97PaaEhT*yy4af0=d;Ok$P1RrQUe0ToK`LnT?ZpXz1o&WfP>LOwsIoQ=u+sIDCU zmC5_Xctf)z>l~F^-<zfZY>pbNa+1M640o~*9gvPR}d^4es8T$ zE!zSQ!T+RE`U)L61b4$*b@!nQgUcvW5az2Gt?t(qDKB)I3@(aaYAA|VscozC-DPBQ z89;}88K38G$AM5;9!oxNF(m6L`6Mh(NJN;bU#IDVAclg9N_EE5de$5*ez9@iXlW~& zN+;KtAU%y#%rR`diUa$cLL?EQ)npyN65flpNB&^F)|0F-+!k+8(#yGUwFTDEdd(9c z2yw`m2sLR!bDy|jZGa#MCjbuHQfq`2wAU}u#yi*z#UFLdj1R1BWNY1iBC+febq>hn zzD1B!t==gVdyTBUsF65=nn0PNa9;S*YCrK@yBsD~UJEi7h+Yxd=12ACrhBP;w`M`O zz%HiuXmc=;?~g-|SHji%XA=q&DOV#t#fEZSx9%~YYZ)-9b^Y+!b;5K$LJ_4{bVaA= zJ+|C3lxGn~tLc5Q7QNnCBlk$yC{j%4Q@tOq+fM3Pa^H?_PPxYZ*u)sKCR9h#Y|)8g z9*Sxe(3Raeq6>eH{|rBI?n&JW$-3Wo^ESSYkNFP!TX`+qy!bl0R6)=k#Yc|5{L|wV zk}zZEG@9~*YBmB7Dybo-&&+Rbp>{vmEk~&@U7Z>>DC`|ZcGeSv<$EgED;__u)33x? zJwm%Tb1okti2&Z+){GZ~V;tCTm?)j^t(aEh8FtTrlNVE{3H4i}%CTmQ%*V^abU7Kn zz95WMBku*xcIh<|S4L%^vsbaE6&plO^|wRLn3toNN9MC)996$u`IKf)IpZC~Qa&6J z>e3f{NkWwteC9QihG?>`sjd~wi8B2vmBf_Hs-TVyvaId#KMJ`4$Dcs<`Oq3 zYFn_|CLW7QYOZhV&c2_Mato!h{UdU`0)aPgyCxSQ85w?Ttkxm%o?+^OG3hczGm~TU zzI+%^`~7*&H5OUazM2MtfIahe=nPDhs}BR6ZJk}-U#u4EJ{TJwKA8u;Y4ns-dqg$q zhHw}~(3$sL#f0PN5{^Z3@Y?I|L4FrvkC=AoaH4+^qs!EjK4c% zF=0NYlhDxkK_b%1l^7T5*PDUTA1c8in@>z?@P#vI5%%iO0)Znj`Y?F8%A3xWo|tFc z`9A_w=t6a>O?=@DzjswMm9@vOaeF3 zM>voI7$8q!;v-E2EO^c$pIoWsM&2a=L4ISSBc7{bh%e4SW-|&!#8=l`QHQqe_fw^cwp0O@{J|JeLD?Ve> zo7}6k>)ri$e@qTMQrJO$8ql~lWnnGj)Yr8Ocj>q0XrFa|Rxt;+RPQgNHSU*{N2u4C zPpcW!KGc(X9&Xrt=weDz6;o2R9;nEPql6pHeV+F|G(4lZ2=%ECmyrFn_h@A7lLB`+ zDbswn+#)#>xY3#~HLkbX4m%DM?ggj_!B;;YZX*Ci;O#=LrQ?Sl*T62tAdH|&s;rt4-3((-*QtF7P~BH*!ZQ3c*c?UfzWO6kJ5ptI=It% z339*fsf;JqYwye9ffoGN;2WMkCsf4=R9MG>2>TB?hNo!vGv)BTcNe&R(@Er0|D^_- zFvZ57Q<95GDB7!g^8uAF!e>nDmG9Y;N4Vl~0CCGP>wLDdBow*n-7D>|pE47vxX~#f z>ou+@W&BK$7~5_S6o*Hqyb3SZ$g%r@*>odVz`KmfetcF>{GP1__Rr5>8b#$%FBBh~ z75CATEuH{v6-4I!RWk1-Q z&;0|ldg|(RPWyo(OQK(^1E}_O_}#V|;f{pEk&6R08OFJ{3t%|33s14k~0q(Xj52|9>qCe1sE>U`}oiM->z9VCP}-{?;}XTgj)%QE zEU4AJR{71dYB$=S1f*;vae$D$4M`T%+jWP~B4S@Dpp9}~#D-9aEY?XY{-^88e!Wd8HFRBR-fOmatU_olE&#Dt5 zAlPwpZ^>Nhl%$wJk+IdniS2qI1%PN!#h$DBqeibB$42fMji3K=$pnzsZUh*}r4X2*P8_ zc|OP0m9wC4pS25Fb4Ewp;N6jB`Uq0*yh3QA5-I)dX%4mf==V#Bd^fC5i7pw(9ABOz zHP5vyHf??Le1leTEd06-eNlI?L1}+SXo-7I*<9(4k3X#d9Xqo#_jYeNQgT%}ei|`j zRBSThdPeLyxd%zA*s(A6BDJSOdEiV7wuJ8*fdRGv$nG=OVtu+P`*Z z`Nh27p<{lj`*qFBZ~r74`X%u9`SCu|#6|M_aYmLRAoZ6WXG^f!e;eit!rO>fnQa0| z_IJWqUPb<$4CWz!T)F67M7Y2o>|EOKiU?!TQ6YwcRHrH z(0?}nb8U|hU5Fp>gqPTV;naQEbNQu{t5GyNmY^qKhmkv23V z1y@k*fO~UU*Q8-m2*<3dcI3|saokk3NcU3>X|wvJCN@mYD`a1RyKDE`oZbV&dJ`tg z#xMUXV6?IwGFIPOycNg2qyi*9+t5NVIB>m}{V0aU0 z5uiV91bBf-TOdX6Hqz#uuwOBM4V}Z8fNj8wnN)Z1tpv#JQOS5Bm)f6^-tBvhA3WM& zI7?mbA+0pwmx51x2mRCHMB<$Qx%a@D)0?^5caJW*|N7`RK(y)8D!3qIX%L3_mwfy^ zwXqwqz&0TKy-@UR@JCD@>;mr!ZvDLsQ^)^avkOqVkW&7Z0J^0A>1UiW@NO9J^!NIP zd8_^{4C+8{@3a6q*r~h*)+5l5rJ42BJJ!}zo7$M@t#wY*FleGVxy3yaejKBvd zSW<$g0?D0daLlLsF&X71dp0j0{fNQBsS^Rz&Ea*x5T<{2@9h6v$mu(PCx`OM%h{yP zJ-OVaKX=`;B%%qRff*Mf@GcA2UwFv5&aRKvjO}Y5UG`Gmp^|^}?jFx@S&*{!s$J&< zjP~ux*GcntnJEuTV!v+0OTe6VbDgGzyCIH+%G+U-ojIlN@F=>RJ{bR>LKnqiPOx}0 zm`{1H;p67(<(3jzVjTR?36F+KTD~&}ZfkvACN6`U%ehY%#->^|2(xTBhcXpZ1!3`|KSNP!PV04fsYRmMu6nXvV!|0%II@onO5Q@h7`OyGoC+@|a} z!Kwaolq6)76-i?z975Tw98dmj8qWkUt&q^MBERhZw4+Hk&8j)mai37cs4VX;^@wPl_(S=%2IS<8K* zCDqLAJhD#N!;Tc-?rjW^f_~#}h;e(UntaIPWSBCS(A*OXtPo|wk@8y>Ruo>-M@+vV z)0Mm6IDN#6!?2IY-OtfF?Sv5$fn0q?2uP*vj|XnOvW?&DD9!9x zTu(akYF@GP*6JxfMelE{Gn-4YhKF*&C19o#CUw4>=ddy0IO_F%3|h24eXQC>%B$C! zpu?m#Az`Yb3kuL-zMBr5m6Jn7J3X#byK}z=VOy4tfVUxTLeWvdeV)sKVqQA-4HAI$ zx0E#rxvH;B-A*UNu*@CuV1Q(iL!vK*?tjHLG8k^NUq3(`rjGeB-ou-f6N& zLjdF02Lrs>G-W2SzaGw4?a53zdNaBr(2ZBYw+rxgm>_yag9XVd{@Z0lKf<;o7U04; z4+(c1g(^>Z(l+9ake=!H`gLIV7mte40SB@NknzurvPD#ZbcBqq=ofljosx&_UX>Ak z&w{Sicq3=YX?KpIcHJ!~44+x=y8?Y#;#xvN?Lx-uM|Lk(L~(!H8(WSVEYK@NLE(me zL7QCkeE}%Of7j7-SWGZ;fu2_)*aL-JFQFK>J|w5C8m`=^K7aP`g48jVs zL|-~^BucumB?3^`a(-T>l;v^rUvTef!1}%WEKyEFD^bot%M1L$-uh-rtnaqLaHWle zm(k?O1g=cT8I3eqjk7XYs5mob;MM>q*>tB&FBk6xcD}zDdNzEdV$P*IrNKH^XbugK zVoZKcS&a$B48Ek0Ls_i`@|+d=S)L4-sP`<`&5u%1kTg4$Fc!y~Lc(Ja}>WVk@U3W*v`x#F1-KbF~ z07by@IKy2Jvz)06Gl|3*p^+%=sW;PFn)WgsK(-!&GYkcY9hsz{+&&4TzXi;vI zloi+dsG{fCn=;<-&PkQ_i>{VJ41>-}*?85ioqkEGg3JM>v?opN_bNJ*6&miv#f!gLm$U(z zv-ij!o;bU-euZ7p*77cHn_p^oWRAy&C}9uz$X}gNWV4<^{51{vnf$-4TISC@C6@(obkuj@957r24{&d-@gZYGd7Y z*A0E>jFAdcDDgNpfVg?NyQnio32`?4?lJ9j&WE(erTbFL6@Z?Zmc(A0DX9|<_S;RK zbM(XQYSR|BT1L;>5yZj!#mRo$?gqa2pIbnXA2vYBy2sP5&k8PYv)0iaU-~Y6ZcVh* zO+wahP_sD{N+83Pm+MuuO#an?{U1%52?zw^zp7dB;q^ zaxI7A+4`^)<{B)hhmxP^hNTiU9=<*&y@&}&`WeY+6_?v6`)PsvxibN2}!R+ z>GRlTl!7@`-E+;8qy0xf2jf=zJ1gatWVh~(-6I^aQO`Pzzr{)C5!Xo?rLMzy4~Rg{ zr1=6rYRk>f-S1l4!gkHC#j_*)Vodd!QdSo37M7}%atrn7)ejJz0B^_FxfsW0D+6O2 z%eU7o7lin)pWus}hjj(C#nw)OG;m?t7whVFKS?|C=Ibh#IwxxoIuH7BkKGkY6a`&L zwLEKJHU_|tc5_F2r0HwgBJm$5v;R5d7vOla4lutVZdmh8%m_Y~tu9HsW+>$L_GH%E z)ew#?I^diJT0{5>?cIURd8)=aS z0aBi3i%FpN&e72o!lrMwj9f2q=8C*2bZ&4T5c|5;h=%e9y<kA|YTaZNGCWV5!LFmo-HKLwyPG_=(`7#E*0MewiB7#4N=`u5s1mi}I#UHX z8~NdCBX(JjQFl=ZjJEB_nsf84)w5EVWC;)%^x_GIyI{jSDnZu&?mECtHH+8cv%?71hAU-tOClAoyE6`K|K+S2U*%Wq5R<@xtq!(2Z<=@sfB zh)K>#HMciODnA4-NUkuk^DoZ&OAmKvtPk2rZOW4;RAZhOF!c$VrC3}$c`+huX=xZ7 zQ={{_lNlbWBl^)yVUpcaHh3`V1`BrpcYe(97l@oL$CLJeyRN8RZDeUfh7CtKWE3u? zE2*~_Xq!SW|N0^cXV2Xdd3A#|0Jbi5{Y-O=f>+2Ab#ci#ZJjMU98D9l@Sn=*?JjCv5$+&Yh^qco6RiE+Q*w10|zDf9o2 zyH`(QxkK(~cI)Kua`A*g#nyEvcW27dlQpet0L#aC%NBcM!@!*kZgh<7y{y2kmkWW$WJzK%Z z{)w&opi-ZqOAqmwR_+bm^JX98NFV0)!7N$e(J}NS9;w{bVIt z=ml85KuBiWqm<+)4?rgd&lcUcXanLqj36p^kFjbzaZ$ZOk|zZM$Nacx5@XhY%abM=z5sN1n$O z+vdrHWZDo-dv|D)DD1F{t`UK)nPaUtZeH65YHqPCWHsfVCEZo8`13}uV(%`$W~HEZ zBT41&NzI};&Sj3rW>2`$%c=u_}Evu$Cke8-G zeaY0an1&=go}Nida9yIt|a;(?s8jmBHZq8_^d*PmoNThO$|GJ~}g))zK2b-SLO|kn^3*)YM3d$FbRp*5y(t zGao6r#oLH)B=m)9jLT9H%QeXKR~)eGYx3wnw>WV4^dk?_4^ow5Fxq9>o-RZ^OgA@$ zJ8{0`RB|IuyVqHNaiVU115SDBx99m5tgU1t=! ztEfH-@mg}E7}5xNaKa9x^wAtpD9#SfUu_WS?nvnl+B6`-F(Zfj23%qoN$5p{{HHMO zFiRhTT0Lpb@A6Pm`myn$oSq$zsnDp9A2rYpNC6pLxc2d8o5EfVg>|KsO{J%hXMc1~ zPl|7NNsmddBjPJ%t&vT!X#l4|uW5?S9^un|xY;znVthak&Xd|~j|Ez(X36$mM<$cK zOc|f-!|%na(=I}vAo~3=nu5=|jdgu|q<=;bKDDWGAZB?#a(EjXLU(;R=)C`0s6@`F(IeD#g>)~@xaAwqqwdm7u+VzxnU1R?=(XX&#T((xM+5MSX#AC9>Y_fAr~D-X_$1!zZTy?d=zEzcN9no{A{hwC}qas4Al?eK(fPhE1wL z6{4ZZLBgbxWNziT*p4t3CX@-8d}SVjFM9f?;<&%#ixyd6LrL$MmqTKw#vySTjh2D2 zZgxozXRPjSvz%65zc#D(&DK5vVOKEJWi^S(Eqgv4k@eI@}c*>sIdmty1&g%fD&4Zgm@O_ z#iRz@27Exs1zCy`uPPgS*7W$qlAa|i{%m>ZvgF>1*|2e9QV8evfIxp2C(5HE+Te?G z{0rT#3isM@kAkkA_(Pi59swTj)D-WZZw{<2T7NIn{|W<-uxCveYPx7Tfc|?|%0)82 zN>^cz7K0Pkn(eb10dS8Lf7_i$wcdm&j#I;Q{7iap=vG{6~A~jKi6;K?i7m7xO+kd%#EY0p<~j+M!n5Q=Lz2?KGGc z!+81UJZ<{CJnBQz)sk4d6Jjyj$Oa$kZla{$XO>+o8)!5YFy|x`xWZgH`J*p4mQ_FQ zfdgC8X3vR_w*3d!44=#84C9}KzA4uSRt$PSXK$#dxa8;t77Nxi=-Jfmy0uKZvChpa zYur^D)e{@k>AnK*#h8%+?x+f?u~}Xn&3q|@(q#QU>7;?(kGreZ#|@2BQ};0YKJ1*! z-|kj$MBIcDz2h+4nOgy8ApKRW3yMp@S+$&>6$$c#?+b=&F=vfEGfxw=tr!`Y@i@c@ zcJ*jE?AzY*U7R{Cl7;Dq9iC7L!hJ3Wp7JRl7sNRsAHqya-ddy2kz*&s^RVBg0@xRq z%Mi>V;=tEd`j@WU3Po*fs4>xZ;ajPmWDH?=CY zWQ3@t;-Td9z3<<8zlUR*ZFzR0pDJ3Z@}5AIFm5%CU@#T@&q%>=J(N3X&}(yb+}-L_ zER-!T<5dE)&F;E>Gi;by{H0g`mjgGCT5+lSP(mtxlvo1axq|=?DLd+erC@jf}LC&*MUYX89-O#*Ej(!*EGXFm9_?@~_V?v}jF(m^aM8`U?xy);>X~={%#{}&N+?Ff18a6Iws1Yd<&FobXOEV-$ zDVph*Hby6@iKd&+oRY-K38A-D<2ZY3w~=o z`}0F;5xpst=`Ik!m4WKs6Vv-9BVC5?WO%d2xKFoCUgvEv$C^mp)yy99g)A@5nQERK zb&)>7%s~C$=oDUyN|{RRj!)OC`N4lSFm(~u*RdkpcLaiMV<+9=CYc;;ZKYT`_qR zl?w;!E$}h1PYG?6X;v5T&m7L`_ae$4O2ZBMWi|JF+%J7f_u+?XMpqxGFy^(_vdW#t z7yt2M*_Jy9`uul!u=vP0&m#VuS0*^|C9LpBe2uH!2MJFtlzU!JFKn8$BCKt7uix&y zs7L>)f$*C(zc>d`Y={Num6q^@7c>R)f>e_!Yy zHh};A>S`r}T{JTW7K4 z8SHkBMp?{8(aU{FxdI9oZ$~|FJ-SR>`0W?BRg^l<3cCDVXkN%Q`~m3a>bi`17FTV- zM6h*_{aVh9u!q*KKAw+WG#Y@s=A5S}!Az{>sxCe@9_2mjnuTQHGsW@qw92soa6bnt zT(9Q;Wqly9VPJxy{7ETlxr|;^+cauNEnGy3KH1!>$qSjTvhn${9}~@IIkC~8UdnS? z5i30cdY>+n#N%*aIls$~wo2x7sJxcsU?#@C{|JLZEaiI>v|z8ysm(1YaPK)8bKv=^h48r5VS~l++C3s{9jVo zs-N(itpOplV!F)4#`b!0!2jX1?s@#I{)Ywg4YGs9eOxV)x?Za$Onp{G3|;ZVspQx_ zG#&C`d$TH%;3<3D>6B@K5$?cEgCs-9@kQr<`V zRJ!apEHHw#?q4?Ie~P5li3ql0Ukp=m3TQaq{D%Msgi?OT)1beoeK2IxsM}rf7BpeJ z+{5S3xYORyEUU(4xK|Z$c%jZnV~Fa!Bcgb$&T&y`RbnlFpNJU$vKVj3q7br{oG@(> zPZovdj;jRD9Jirl!0m~W&=f(d8W}#A`cYcpVUr(BzGP@`I5=ho zC@8aCF-%q%t7&grKP-H^v>HbT@B~ziBfVJFOMAPslv5*p=yBtIw8~b4BTjACyIjU6 ztMXs}lIkjzaGuC$=MRILdY2phw`<}62F+s|TSF5R(-!MC4o-Pox^{}Me^{M#SgRp^ zAw>`k8bQvw11bC7$nNWk_Tqf|Y!T|Ex<4S6u~XyZGf?4HRX>h;*Ps7_Ai*yH*9jnB z?SR_!(5KO9n~&dqgsj*m0Q{wo0T(z9j-7uN$4=PulyQ6_IZ|t!_BREc_qK9XGB&-% zsJD8+Pr(5`@^sGTT{ch)b02v1f1+R8JiVVW<_F}jEEo&;w9X@Mm_!`Guuvpp1Ou{lI!AQ9N6kTG4?G9#+_{PXJ+zUk9p9}t(StfWVnOqG-K>D8X+#icKn zY~riyb<(8J!=trVOpMiH*cCpQo2Vq0zT<7NKYb#zVnG(+9{154o^2iXVd`z(^m5^q zK^`z4I%jUf?)avO9JXHCw{D(|&f0B*z}A~}-39qawgi+Ij}8zZx5G&<=;rfmy)$WG z_G9+f3xmVh1-9U=h*zlUOg~@x(`_eA&h1#NW0=LUemwm4f+R2Vd+G#Z^laQl%SD#PN=ks3s zXf}sGAZZzlabk`e*uiGpz);EO%rq}lW%wh^z{d%tee-S8uCvK9AWuB z5vgw4{aSbH8t~$pKiO&l@j-j;vTCv<@ei5UG3zdqdkR#u9vwmDm(=M>{9J1$4ql&$ z6v>@R&`H6ZUg2G&i{f^JWL5@8<6g~$C`F1*gSxpf)8N>oO&9ct4!X9p*Bl7p&WaCw z7`vUK+Dm*MhyH@arJ6fpG_s+xa|BfxvA>q)+ZE#~4)Pk^OgR^agYQR3$wg9?*%@G3 zWEB0^+WIzk@@!sVh0k8y#)9|GIZ1d;>b1~D{9sF~bu1fr4Zup_QRyo`|}-sn|`oS%G9!R;wMo&t#h}9Kv`b8T;1~52L6a&-u!d1V{0w2 zVSM&#AA75}Y|{lMzzWhUE!!LS-i*r?`l+kipdk}@#3xT3L=4^z`-EwaS;Dovi*?6s zCKg8Z6ACwwR)&*WOkj9t30DnjXLTsm8XtW!!aV@@^$V!pwo$TT{KdY;G2Yf9^CQq9 zcypxd-Cohheb*z}`U+l`In7;9vV(i?65ZVMT-eT&x08d83KB(iKkRtv^M zm53QGZdurrihboAxO$aHNES-wY&LA*dN`#&F##&!V$%x`=ow^$CDC^84EAU z(5QQEaj*E?_N9F+m;E}c>9mdq`Zc!`dgC|9a3vRrACHw9%_kq6cV_XjERjH2$h^8= zl#_EC;ma8k*!efNKv1X;1;)k5|5O z#SR<*xVYy*snMzUP%I*>m?U|1T*vcsUvvEFm*)s|)SgJ69^FrvS(%ztv0p~NVwcuJ zDm$-P`~t6?H)A}`V`#!v({YhK#?RQ2O^fUmw|F)cVh$+(JKRw{$HWAI()$LVhN-_! z`b&(6EiL-8hl%4-(?ti)8 zUFqsJZ)aL3g&rfn{b=2}EXO7Y?-gy8^)$?wcRgZFc_;16#mI6TAUQrqVVp=L5vCuZ zjxwRMC&)_NPz}>wyLn`>U1>!^8+@QBx;!A7K`G2La}|>Z33z1G|nDl9q_uCxal-sZJsY@?;-j*>aaQZDzi2rOBiDXu#YhumYx#|21Ud^@-7c(Nh)1P26lj8?IaZBIyDx^}l8N1dX2$C$MZFc#qOiK9qt> z6~$m8PIX?oH(Tigu%RdY&kemJjC`A|@lcTa=_xc>Op8J?e-wet#t2x=YCC^s#+ z_&tAv+u6-3p;JRCV6C{px|kXt<(i3z0b8%;F202lDX#Dkm)^4jxk{Tbf;9i&CIidX zfXLtDpe$7~StBmChB_VyUQP0NU*0Js8gvAvr&oG6-WPqG{m@Wsek#=aooAB^jz=Yh zc+wI}^Sr!ycwow;8{TSB#*SP5OTfMs8{$2pGn?mCTw!V!m00%*@;)+sKjnunL4S#W z{i*}2W<{kHS$CxHNBZWg3iI)@e6FwuxME7_KpcA30ZNj}0kYb1WHHGp?bAB}gg92C z7JtKJ6o#-z!Z&2Zz6_8SCvr1!DAD`7$(3s&*&hg?x(qGEQ_g2b((FQyxQI*kUO>(4cC zrZb)yi82{GLU*_VJ)x+@t;m$ceH^K{jUHKcUL2owoZ-NHC>;g8|KRqzHQtljprFwK zQA~?Y57Vuf8qR(ATz)8Mv**r!td^emYk>Et{;b+%mw_>}AxSeT%5R|YZ?udQ;h=(8 z)RTpP$7U=K?|`EIyNqdR6UE@#)r*UuPK#ca`Etw){SbT1-*9c18#UKyGQZD{(a7-) zBBJ$l5Xm8LOdOfuZm%!bzQH*~P%6ni;5IcWOK>0YYrb-^Fi(V!5# z@or5_wK8ZsJl|lA06khfFYZ#rujclN==}i7UDJc^o$R9zuj)5VB06l1uF5^Pt%THI zGk004s@Qv7G9|&R4-3qi&N@X{gR5=pEt~951*^Mq$EMTHR5Mun-m9TUk9fmMLgh^) zFc)StiBiJl?x#^5tsOMf?^XF)CXBAm3dBA2^9iXGd5(a2?w1$PUzC5Vyy;zhKPQqV zZ>dXG(2GyqVvFCJy?e3v`R~bh4ui>gerLBo&7Q~a*li(Aoy8{$^d>V>uC6j8&Ib5~ zKRvwOl)i`GVSYUk>G2}K4rs8`Zgjfx}7TgR9?&ItC1b z&-Wv_m$H&pHa>LUgK%4Sn#h`eEqt&ION%Yw{&a`Zhk+=nyRa>hA{CqCPOy#^06&rw zNOz^ZzC2LALlRY*7$fa{jsU{yxoSg$YHuMTssoB8qRMTUtKam#dYO$I`KVZ#h!;_K zIucc>+HwBy38Og!FflX-9)u63K7TD6Dw>Oz$RrW-ZTvvt!{?h3>MbQ?)Ekxvwn1By zckDJ0TwEQI24JlHRd-0dSMF@kq91`pT1W35-Ed*Qb$n+Y`o>^~!WaT()J>C6W zJ(NKhuuv~tM@&74Q#1O=o^sj> zyr4X?UTl%6#Fu>-l_Cv|xyo8}pj~FmZws6C*sB*4W(vwiBzhDaOonUs9>^0Qdz^fO z+S)9S>0bcb!yy@9Bo-Jr1U~C8Bd@J;cNnm#vgto~!@#Le0_Blqml5H{8Zld0 zLuqk+e{z4dQBOVc@2OnK)R4A`nYuwgPs&ImD`d>iqzvRwQ`xz~@avNsk|)uCyNa9OW`ZSnL(<8<^k{~ zwoa?YIoqRof7m5 z=s2m*A0p0xsEHiKXD0M!cQ~*-^}pzGTnMNTtlgTA61_oCLSeQ;*xbI|K9J@eccCSH z=LIuOC$Z-|dbIa@Qz8xKDdYQW1>gG;kRvJr12UE<9P~FRN-JDDb3)!keCyskC2h;M zAib|85m7aUT|=F%EKAAHROsC4WyoX4pV8go;?y@Ka8o#DD=ua_y>fhCjL~q&c0b0= zF`#jeKJ$}6+%gNYTafsQ+46ovR!8=cOm`$|yq;)yUVmrI=coRu5M5pHDWK3rc%3-x z*lTlR2S*qxUziCAI__8^FNDIhd!^2Mz_446o55jX(_ezh>bK+0(Bh+kJD*5Qj$~q) z5qmayM~Yc(B-Tg7z|`{c!2PmCCUlolc%r%5&<_5cOp&gE9@0b;riqwQVf_pMxTg4t z)uJk{tMP1_S7G_CVcPS5SDelztBA$&0yTgksm|;hpgeGsNK1ur0;qt#XH<8)ic=GB zKYHQBo|tInw!DA@Y@+l1U13jJ8JzX`#n~!&mF$yRvbf_4%%dRDr@J@Dl~$hmHLL$r zx_iNo8E}B(CxFRQk=4tO4kF!G3 zH>Ulf6B@Q>)Hha7u51pEa_JQZ7yF2&hHISi_b+9pAIb6}*znom{nfdo(pn}GX+^pW z3L)D6ifH~**$f5BCcl9`cjhqNXtja^3K)?qV;|IgiBRxdpGBz~(y97iQ%J`z+&;|v z6vg|uzs-GRvxZk(c~1BGwg8uUTI%R9h!sO+A#04elnAWC+KksM3o?&6;A~9F56Ej1 z&F*mvXd^61M7l-En4~TApB>cff)-ZaMoC?4o?2bU`&P<>aBXQG(kK|@gu+ySHGv&7 zrsE~1nN1&6%s-nt*IUq8d9p3m6gKLtqp7eg&L(f~YG6xuz7*X9bKaeDDK#}B5uso8 zYjk~592)a#(Gmem(weka&))bsTF9!)IrvBV)sS=M_u-rY1Dxjvg2IK(F{L+&2)U!7 zZuOVj#p{||cX3I=^l>G0M0BgX>yb%0Qh%qe;A)5+0f%4v9qG!!5_h&^ncuPA_45+5 z{sKPJD+#Clt8}W?mJdXX%BBA6u0eWdhH{Y=4T}{Xbm`-ssI+kUP-)sVV*Gos21ftY z8=@(yay)bnohsZCA=q@!0AnC*K$bntOotnrqrGgs*F=`YEnV08>Sv!mu7$KAACi*G zusSJiWu-lvUNF_0X7nCTGH{+cH8;tD)}47&eH4NX>erl>$RSMbb6E10Z&NgJ{Fr^7 z6?3B5!*t#?VaM0VA<3Bw`FWKXPRa-we^dRrr!M1_z+)#J||^Ik#YQ};xKgefyrKva4tTl0(lkOVO^bp$IX*dUW!>j z_LBfRul1HTJu@)mRzMY0n_U0!kysm+i1#mxCDJCad3A1|0sx-lycedPg4Z2vI$xF~ zu(5y_Ds(cCysMRj`r9w$9`?+7qDij=jNjfIpr%IN8vp)7j=Bls9RY<;G30IH;Oq4H ze(joRGQDKzb9*$Wb7FCM+|^1rb^{aA*Jh_-eHO=*3BM!}M+?+4S&^F--G4h0N(s!Q z5`83~q?2^!a}&9Lr+QK)kA(>OwNMfV#<%cUTos|sUu2wp*7YF;j6v?JMfay>x6z`_ zQmvo_5_J+rf6uauF*b&QCsp|C;!SOXqbSdIH8-y&4Ao4TY~)oNA|#MhE2~e}On+P- zbLF=q>>Ywj9cJretS`9tuFk3HHqTV+OzZm&o?O=KcZ(SAx3|w6!mzo8X_lV+AF7+^ zn35hz!GZd392#-sj-d%G%OP=vRZK>_mYuZmc)nQ=s`7PQu_FD!Oako7il!a zH@yBV^?f7}NM!Y}4z+F#0&exZBqB1^4CU0vb7J`*f1$xZvd(Zw2p#hgNfetpB4*j) zGVC^nGjV=*BTi5oEij3<6kx4-ksH8{oA+~+T3PS0fsWYlUpJ5N)N@r8y6Jx79sBfX zqi#4TC_KEUfO;}=FQ8ks2lr)$tb0P z;|xx|o$|Afb>-w^4IH&>^_R)guc5lq0bGHX&)(9Z0YWT@Vrzll-`VXAT6;ag-W3lQxf5c$pJK^N`U}_)7;W2mI2-a~|R^+H7@$)$& z6kQuS=*$4B;Nu2uM~aWQzgbCY*TP%NHl8b?p6F_5Q59YeeYqp=qyk{mm z?}dNH#GWRXuxVBjmY=MP9x_ycl7lzJg@Po|@iFIV5I<;&l% zl@%aGQOwhrz=pA?@1?zFaqJQq8nEe=q8utbU0;8)Oe+U?Z-l(g1>817w%#!Q?xpld z*LxDyj)$So{p+C~qRT2j$=67t8nw2CaV3PMf9P&1+W#(NHx|rfv1iWMy_v$G zP;wpm{%?g-RBD*ElHB~`u*U&p0TL^a87AdRYb?AMFrt#x6y1hrfy4+RqP4m1xI)&* zTuh({BX059g=%APu-EDBlno&giU$pJJ?u+$B$Sg_TS`}--pW79A!9x{3LpEt&yE005bj3&=Orf`d2}6L z)#f(wm4+ASbfuFGEUjL*kL+29rP!CGLPPho$8K?m z#Kw_!zBuY^RQ_CZitZ2~Pw6~)_t9WHg}qfJ%SmLnz?l2`U&zjzgtFaG$)gRqDl?)` zHbzTq1mhsOfq;}5bH4WJ>NVS_UdG{{FWZ=litQFN?k|Va6m@wt5zTE{WosUazF#ii z;}$m#ayf=uO_R)#Jcc{&Qa^H)mlA}5EBg4l4_HKPn zCAvMY(O=pF)JqJNjqD_z(0;o#xdZY?ABN|eA&&~U;wfwPA-{?)SQeQ@G@n`yW#QD?5~$eCMmoPh)V_G~&K z#Xr+8#xKbIsd;kwolR~dmz1innK7K|3hIX@Zo>cuwWRRxjaw;%wPnaNqapdf8ox0Q zDvnWw?-KUdUZ3~IM7Pc|L4t0R2cVW0wy^tH43kEO2t28Q{LrHvy zW*h?=v`dDr-Qd>Km5?tfOFCsHK1N;+8-LiFUz5rJ2^E+xOgHg7eA=G!qpvRZVNxAz z)*wyV{Cda?DDWfolcjOfCCeSawlD7Wih@7zJg3VDj|SvteXRf0hQ+03Od4CT~XW_V9brTZH%LaR`Ix&ON?g2n^U#Yh3bAHTvk4sj`Moxvy8+BWhN?b* zsx||(+^4=J7r;tj4F~}+t6IFhQ1;wv0GyaWT_2zMR6N{@YIQNbi$S9xG9O&090@-K z!G=ADV#;$ef@Vc^tNC3$tWhvAv~^V`ZkqqJN|#G#E^H8@MC&nqGOw;^TLX!miD z>?{&vRK8>xytneb1lTTg_!oy2tO4BgB&k&N!m||l4s+AblKKaLP1MMQ5{llND0eHn z*ePST#5<>}xpde+1=;SvM$OH>IA9^E;uJp~UtxYXJ61GZ=Qi6j8~Z#>B>#K=u8^ZM zut{)9Bpr{2k(X)7*`$hY9Q~kLxA-w`(kp|o+xShOQ!i9gFl_R*N^WbVE5g z4@xc)ynL<)w08R3CzapkOMn1=P_Fy9UrtjKy z#`6wW|2siRija+jTB)Oe+V3~2iVlB(TdtBSixH&#$Z}sNOwPKw7^&5*?6OJa?iklG zFdiBhcgFU0vwy4$Q=2abrl;{)FrkdYVf*ATu1=8HrHYt&aVU3SM>ay3TkaodfLQ)K z7torsH?nSQHR?;B?$yBk_!X|cFh=(gkDyQbZl&qqP-Qp;#_Sf9H0JkM3{oqXrK-AH z2ea1wu8A19#BhJ}&siD;fOgV)XI$QQ@)$7XX>3rrIvPjvt_V&-I5=vK~C>mB9v!yF_8t=m#a z3&;U~i%yIGoUtoy)I1>tMYAer^b{6NT z-Vz?dmtflZ87wB#fEcpdcME20>XAfCOY+RYXCEBnvd>ThDSqGl8wc9kqcN>UhC}~QmqlHW^SAw%=g6>06xS8 zCG%7gXhs@W8chp z7l%X+4~Ijpj7o&hap+^cJ3NoGjKF=f{g#W*VmwJA!mUGqV7L9v_DoJKxubU*-(Y)` zYH9?MRa&||Hs7;JeiY`GD=srx@S{r2kED)Oa*+o*V5^0BdAA2V>U0Tkb&)QBl zJn`5ah~h53Xs^BEkmeK=h`*8rNy_O;%o3G)m+8r z+}9cUQ2xy__8o37$qTfAF2IiT_A>sAJ5!m3?|^IwQ+2 z0Y$GQHR1RAoKkI)_FD7hx4B)fhw~MU6rp0RATMo$!ZRTHeUc%GSr8xL?tYcop18*0 zT9sbloV2bGln&W2JMjUDN9Up;rqme0-{BXA4Y&MfhaX}(i_tp{;aUL8vQuNaio9SI zIPxczqBlr6takng(=u{0v3!VPe)Vq2;>tWA0kO7{co>Wex) zSvg59(xOm#sQD0k6rGi1_sAyeL+Nae@=xN$Aog4D9{&5v8o*yu6tjPmiRovCYZpy9 z&4wkFwW>Cgp-1rPafx_LH_o;ukGzB$Ea9(61Zo%z@ajfRjS^-lT!wD^G4{5fi?^wV zE-S@ageU*7yTI(E-F4Jnt*nG&;HVh~JnUyVva_?Z-{0rs@S6J8)OwgH&gR#?aY5z2 z{%N)qUBg&0G8=d1vp=IQ^rDd2cEXm{qj7-D;SUSiGVgfOq0c`7wdnoq#bTRHtE>pV z(VdUUoDwIDT)q~guwvZ@daV3rV{ap6)bX`CboOqr)B9awlVwyxn4<2-KV5?B)Av770g}dd%m| zoy$KQwzM!i)3Oil2NP-EqWE5ZW6bIzLi>3Am9h6DlGBbCCoWqvuYF`?g+&WV$Xvo? zX5Akm*Nyu$&G`mj>-4ArSl@xB_!U5ISt_?{N zGaM50I#()-F8R2#97g)86v0OO^_1jsEpC7db~`Na%?=kCu5PH9)J~>1bLq(yaz9Z6 zQuVqv!bbi_e$cBO$+gUx8(*o!!`}pPjC{PCz@{5NW;Inv`Nh-shTnI|G0Ly@SGO_> z7{W4W3PRrK1#6EuR(xLZ|19CmXc(=%BgvKtdDQz&$Mp`R)C90H_KsLD`A!RI0yav- zNjRx@Wrc3Gu}RNQH^EDm8Q;2D5m0(cU-+HSY7!feW|n}VM^n_&V1q{59RhQ-f2ejs z`PWXxXqGtRKFM!p7Z&4coA+n}X`NXW&d!l4Z*zA@&tH1Xx`)rKFANA#AwS*R3R^m` zuRDd63*bj~ENdAqN=6`p$mRT#sKQVk_oF*U3Se?Gtlx}6hwddFVO2KpT8_N$PZcS2 zs5LzxWM%$rhsfG?6{Z&7$n3pa2}MtC&uED67_iYcm(1-<4pl?O9+f^T5|yIKGG=S? zgo^E<`l>3BbMc=lZzly`W$|&AN~G{u{LlrYtvD5n-lc=fifyg&a-H-5C2gD;QuGZG z52UJH5Yo8fe$rCD817F`b!|nSPr4j5irVeg7geFN0pZE;Dv2Gs7jA7qgYFMKZw}^K zNy{=foi}^FT+Mv9V_+q2In_AQ#Q6#Tb*l_tHruObpOypWRh>&Tt3Ta85-400g*5WN ziN0xpuO~_)xjoYEj+;SW21DQGE2Ip3xjQ=j0YUeir38o5(pRJUCH^Ymnxhjr*ZUD0=4(QkV8O?Gnw4b=FTC z!fg-Nau@PsDn{;b2^_eIi|7Xl-}?(@GH%-05ZB6Rk=JfenDgl3d6Xeo5nCw2+SXPv z-9(2VHJp2&%I_xqR1SV<7K*Do^5-rs?T?!NizzN+FqJqTEw!uum#<`+Q)|ayW+=OF zhZ^5dXZ^+BB+VVVBhnnE9rod}YW@BL=^eT(zP4V@vA_>}tr3N?f5$bdgr2XZAaC4< zRMU6XKh$konCghk;K(R06BO;Ni3|ZtfY~Hoo#RlZTPR;t8w`0%6lCeKgTtgYfo>?pYwR5obQy7zgc$sMXywQh>%j|IC6=O#EBQ6g0OZaM+#aA7YM` zXMBIXn_WhXy&#&5-KYg;?2!0U$s(PO=o%8jbBoN>xQ5e{e3}aLoy;|})aqcvp={U&gdNx=K@m?X%y#vDy}^*(BFdZ@u*ow1RC8xkyC^TT#P3EM{r;n)jp3L)m2Bl% ztmlI?&9`s+^&;0TDp83gL@Q`AJ44X@5%hU9GMqOsq@*6U31-s2FU`d7tZP5}2G7S( z5EA}$__{6o!Gy$~3hMWy?)hn-hNL>KFap0IvcmuTXQE3OQMbOHCF?ih@Z=KL65_3k zhKKj8V!z9O<48)y@fjrlx-gG9NEg+y;j}!JA5Om$)yCHF{n@cPXIw_7V}PrSz@3pS z5i=XQMjc^GG`Fx_swl+9f6>nqW(7xJs;50k6GB9+O4ZT|Rn>`aqJ)4-!N zKw{u>AkYK{ur<++TSiYqymT}g^Tipt#%?wI7AME66MvNR?AxTJ!n@A{G!1$sq1wj- z&qqJIg%Pp;i1*$YDhiBG7AJqay=s=Ic{!8$LDNg0`YUrotVAWNPEcMBcf5j%V;M zq?7vSWz=nR?W}apEvc+4wg!&pA9Cv&Xlz!0j-JbOS6cZdAK;nQS=VR4)@8#}ES&cv z#rps3I9*z|zytB9#t1n+=8Aym=>FILSlI~D+V-k=x8=J>$e#j&qXy(0VOHzT=tnM?-!O+V66PX{iv(Vsqw zz9ETo@#{%}4Lt+HdjMZAlq5s998}{mJgRouuB?QRXPe^Os`yCjd=Q=cfVfcJz6>9! zbJKiPQjnI2+{utuleX)|SF$^lrIxf&G@CTZe{b=QPb{4$G1y#5KL3;YOQ(LUSN-Ge zi&ys+I2}55w(pue>g+@yCiIoxwA@giQG;oXDk&Y`+?8D0FBr~SJ&0i%0<5y}OS5?{ zg_5Nlq>&rQ+>D)wFD$zwxA;H$hDGD;?XJ0Z;>yhGGR5R64gZ=+snTLU()_I#RavXX zo`Cz6vg5qfy~T^xR`sg2W!@(yq+dC0-ZLqYDvY^X<~!BLdfhOlv9G*)H@J1y#7W8aoxtFj2K#}K(mWqEKsf6&;U2*K2_PSw7l=$ZoWzub=8m7 z>%wF5l+D(T>&^%!#|p=PjV2Il9Fnsyv_5Iq(toI@{Ua53@1X$RWO##mhL9mo;MagH zc%o)(UQ;q+{cgr|Dja8n^zjYdmRM%BK`*P+`2t0kdOk94}7B)snz@zY)RK?Tgx@m0#eDmEV_g8!-r&4jV~nT6fhtAaq{EB6nC^JA zeUm)HbQpaBE4@$h5^u8pTg!>u-od9+yCawNByJNY>p27%T)h&Ogx!n%S+6`2ABG?0 z0i1<>=9LcMh(rwSC%iWiQG$2>zEdRWlrwUQch_O#>}bzpp>gcs6Mny4X%pFEnVt>B zlzCj#jZ^MBl!&eds$ZYrugZLjNQcpspP>0^=DwV^-gtx5zf3$l{-~K0+@$owRWT%( zRy42Mou~@_q?SU5fS}qB`jL^yaLZ4MpD~o3xm9aa3(5Zvdv6&QRTuV;A|Wa%2t$W} zGzbVtmq;Vsp)i27fD8?aL8o*|gOqd(Fb3V-p`^etNXGzk7SH?TT+j2Kb6w}#`SAZL z%xqkH@3rpxS2su9TY+{N%^gY4+NoyD+-$^>Jx|5#A*KuG#;v!fv0HV!wUtwTR7Y^Tz2< zLzwk4HK-as0WXI`Y7{8i9G#cmhv_=Z;9Z9pz`4DVZ^D<*GAJ6+#R*;&h-q_7Qc4V?@@5Ts0nw8!_7%@z!y-pf#%`8H!(v{ z*9vAZ9&a_~h7F+>U%PSPo9kbO{V%@^{+;>#6O#Y)lm9PkFrtE#_B&Q*NX4Xjc19%g zXNFvLA#crcf(bBj5?-jsUYr~JX0d=p>iw<|k^v8l18Kc#FLZ(R7K1l@@)vLUy3(NCNe`ILX27!1GOZF`umjGdOIaY1?pbxr0E= z_b{cx_@2sX2u5aDPO2yY?@B!2MII|`K<-z&0g*ah92IFR@4+q1T6o8QS zU@mt3xL)O1O`)Xre=F@lLF&t(IYL=kxwt(nS@|Xj_4@n~+@0gGQSdtw2~iB6(;NfG zZdWL;LJ-yO`JGi0j8o`qsZn&->zG3qxuNaZY0U-Qe(!1*D4o#bf7>8R7w*J|MPq zl~YDFGR1Ap-6+K)x!P`5S|ygFiN~UPylES9n@EaZ&3APCFHypgMxdKKcw*zVGA#MpWl1#yfp_!UO;Jyj$F0D{LnX5H3${64KmX0`uR`DL%&> zntpbA0{XjwfS_2g_V!C7ZQ$5Z?$KF;o`vhD@uEe*$Wd-E={_N^E4n8%F7N27NHY_* zs|0|%xe6Uv>(bMK$$-DVa_o0SC|c}>GCw798}?nIPZl;l6FE+u^?*%&ZL4mZjP$E< zmQ+y10d3+mk+lDlr;#*y)(w6qi^^z#uQ082YK$YF_k+M|_*yJ4IrWZ7t#`@cri3gY z8(B_JinTun3)GT5kw1R?fKDQt1fTzUK31U-*GY!EGtZ{*k$6ho8s11uEPdbaWG5MZ zg6auREUo3;ke9dFp4^%30<1}zBXJz?1lQ?xFbGw!JdKX~ZL1D?ru-@I%k#SEwavf$ zjIUfH?PO|h#(i&fHvQ~UKni&)<7N)Du9Z; z3@;&27X7N#rq7_e)Ufh3V$sgDJ)l0_FE{Esz$A>}--q!PVHH6SE^`tn345}HD$7h- zCw-I?WRV~$4N%ZQIf8els#xjsoo5e?SuNkn$FuLU>-_q3pNv}*yCXE zGz&Tqr_`%ooS%wtlh)+vORgLZ&@H?uF1V?+m@{nGaVVJ~1Dk)cuzL^Q7?fPGqyqN* z{v$3mR0|$kKxdhW>13ELa(RBx9G>o>3m+VK=TT$Nt3O=jA=(qm2|uPl$Erxa7`?ZE zFGnpSr^9(_f0xs&_WkOBrLqVZ!Fn0(c>d|Jy(;|_h}(qk?&iZXZ*rM>taCDb2=}jW zR!f(zxuf@{e;%Ag%6C03W5`*BrW|s9Jk*X)s0KL8?fJX;Hk<&PUTa&Q_1tE&Ej#5( z0~5#C1^TZ%n3=i!Gp!&2%2u63)YI3!-b(YU5wZoZ_DDIvOR*__dF_hc6r(<-_^0lCEKpt&xkI8qi7En7zPCzJ1w`jh# zJa_tPkS!hXMfl?gX3|;Wk1%)rr%0z$szAO1g^l>BHzqMj4e8Facp= zo?WH=a-g}%YseEIcck)H=l{zi6hZhz`CE)tm!W+sr1f5D*DF%oieX}b4voB zsa*Iy?vm7`Uq3n`;w5dw6O+0P+SQ6a5;3yvwn21-c)o+T)Kfw>iGB5X-m4qokqbdV zq-vApCu7!3yMRZ_sPis=2M>_J-@cV21Mv+92ZEQ>*0-5wa;)txXQFkH_sOX? z_>7y)f}R?1cVgYY3%2Y9;2l#sV`eK2Jc_z9yWCFWVgd_RD3j;>lE2zc$hL>sb6Z#^ zH5@X~8U^BmOB$ah@mWZQ=umR%+Qn9WnHs(X6Rk#Rnz~J-UtC$V6Rc^$A(tVw0Z03Z z^*O!C6ALq08fo5<`(I1Qf+!KIK>- zQ~F7JkFKxtxZ%ymH?7SPZ%Z>2H~1C?B-vua0ABoH|0h0)un=wTJx8i81@Eqi>?d4? zC56Uye}akz7hXGCYb0I0H z^&wope|~MWs-p_*8WTgqfA8kKmT7m1hnCoYq2J9gd3kyL?iG(0nK46AiQgm8MnRyo zm+!V@{MQlPk1`bcT+!kC$vnR1lXMICpME%!%0KE z?=51dmNiPNJ~Bcsz@M%0FvJYSac7Ua4jVO?3d4T(FWsO70lRT0(xJQ|#5enL6u!r` zqo%7?^cTT=QG*&@W+7&nDRpG_56)w(O@whSF`YW3lkuU9}?WyLxZJdLKw`*D{IpD7t||M>^lS~zFU)bP3f zMuqnK);=cQOQm|{F6;LZ6^hV5lO=P*0ZX9pQT_6Wdco?Xud;2V-zX!bNmOQZ`1wQ|0$p>#Lus)-d0|SH;a+{S?)%%+2LK#pXqA;je~s zbRj)yybbkzKgi%yKOGmPeGiQ~T;Ru<^IhthA_`NJO&-huCAB!ok;G9ohYlq^t9;j{ zFx}j+(eGH#KDq;TVK=*Q1^K*V!TiT<<6pm}ahSH{CLLnER63^fsWZp=!ARYlG~E%< z8A-p}_N?_hs&*CUdaKUG|98se-V$wdYhTggO_?8B(%(`5Cb^Z~!1By+%C=oSB60Q<#s#V`nI0z!#> zFlx)jG4?HKQ|#ACmi?vi;_{eb%%N_(T19N!ZGkYJp@QFR^jhILFY;_r)>^hV*yx!K z{#rU_Fbgunc0S+35|j`SA%AdDJ&nh)`NnCP2H-Kxb-jX*J6uLrOA2(olQ=sCEP`20 zN~dn4%*)Rk;<=y6C1zrc-d!FigLkj<9;TLNBA#3$^Bat5ZSs;H) zP&lAR?0&R!`ZBg05?`e8|1(i*f8!d#@b=O|`d*j&-~ZN~*0iHsZ-B26O$Wn|`_mCx z>w~7BgNVf-T*>^FNvu6OO^&EwQ0M7?b)Ko#h-Q!|404%mNo>m}j2AYT$8}Npn5=qv z$+)X_`BCH0Ex?SnPJ8c<4DL24=k&e`J5TC-V5@$`eAt^*nZJD6c!tJ_pB);~M|~TN zN*Aqj;c)=yKXXn_JdY0zr(s*QnCQccc?vGT1pcUf;BZvw_$OjI_HG31^G9x0`tvBX z+?^Fg3(~I!lmZqaA7`6l3yZlg#@u5)9vvK@7cZf6$Fc)SitAtWizrg_PG|UF z+Tqw6{TU#-i^$VCE`WeJy81392s=tXv1*^x!F?$-iyIdS3Cel>eWOFoaWgEjbn;K* z{XAc7Zz5ypDA+DbB9ps+D|)3((DP|BSIL|{teC8l0xHNmvjC0n1t8tRNy8h$j;e`% zBl+d!`N-62cuiuQSTyW&MFj%$pqxDta+YI`b>slDY)Z1pBkr;&ZKuq2@NG$(E>o*l zh52>sl=T^u&uzAed92$<*&u(?=m{X4KJ<$ogpX2B!sdUvzC#?7P#0bg98RmXvJ5Ld_=mDmyN(bF1#*6|fl_-iY-1 zpW_blujB5zBNcX-7&EB={hg=MRxP!D_+qoC+Wsmx$4VERArGI_h(iI(C(KD_{J{rS z4G=Rk$=X2xXWGSjZ#?W>k6mcIesvWN*``x5Ux%d&=C+g&VOT7`NXVAA+PG#Hu zDFSK@D~fiM-l^1EOY%u3&j%8C^esA=w~!`0MqiEQ7-*znc~7JC&%pl%E7cUF>{6^e zCbqc`44o^|K_KivrzbL?fNMg}eOAbdnO%DndmC%xHv&(Zv+T!w7`L@(T=+u2vB##` z)WZ$ZMoJ(=7+1G(Bp%rnux9@w-LF4l#dgG~MR`5oe48)*T2&$}7^%HGV}-i-5WiSf z6>+{_n;g#{#Jo9j;I}YUYs}qBg6%<~9f4d0H1=G*wRD^A8DUelu%C-@m3v)Q5PHzr zez7_#|KT=yfza0^ZSkMI&!0*#4UX_(Rhc$9czRqKoa5p3#!c^zU4z5~yM+UfJQ8&3 z(}(^UmUq?s?@IR{7?GOjls3_i}$uC;%`}>pm&_#mA_xZ!g_8%3uFNH<4&KeOMDV_#`~%+zkE{&Zmodhuti{!a%0GHSp7wU>{kz<8=`2Z z@|)-8VuHnKN4nokY2Y>lHA&zbpO9}#QP0sv&m}s$HTA3kd}u?M(KUUNx0GU1)J)++e+`JNR^tB`5i#FK zzag9iVL%sbj$d;5+`BXvpnJ;&X^K(%Slzu+UZ?@zc0~IHUPP^W``dQ_Rk|)jO0le{QV1hVXQ5aI}Kn3)>YKW_Mt8r(H^Ok+rsLg56U&tDu z+M#(tZ{{1_#+v%JL9NdzVAYw}p_VM><--OLqp_oAD@6DB|N&^Il)lb?Nm!jZG z^s$Q|W9ZWww}Cjg>>Q5Q%OJx_qwR;lut zwG^W*TD+M{4Js2C*QKqyG-CUbf0_}wzgYE8Cfn`GfT33 zWfJZhv_~?X?_ui(_Se)$K3@)LA1Z?xV$9b7T_zm1-3BtvU(zy!R65TC&Y$V_Y?E3L zF(F|%D@>pwwl%N6wK=Vc#(JH?14ql@#))*mdYS!_q9Iy-sBda%T&D`XHNh?R>Q}5q zpT&LLl}M4t8yWxXf(`$@rR{vIRH_{L02->c9pVMHVHg7$8!6l}@JJ)y8R!qj96zt4 z7T_oOsuNpe{BmSxWq&u~0Y$5lEl`S-d8Gy0U1UkESx*3(v84PST{X~G>eVi1U}xWp zdv=E+(Vc=zZ9id?RiV&{Yxx0~-4Lyjx54Bn8t}1%Pe4|dH!+LWQt5Su( z`{wAHvNH}4h<*Yul4@KoTRzb5#xrTV_W-!637lc55VQ8ncvdwQ0QgR|Wk`Ce{`gUG zjmWO9;HnH9W5+XFi==|;cM(08=IL}YSc0xJhw}l1c-%2xXotrdmB^_^oQim!V{e#} zRH>XSV1))&b9&w=QaDHlUC&eK8r;`Lo(fv8J6&FTO=hp$*SI&m*;JBDf`N4R#3(;? zjI@T5bonu4v_(Jtcs2&yb$j#{_v@;&76Jo)vAJjWC?(r?t$n@i_ zKKw>U@yH|ju{{^(xeuq5sNC{Bou82;DI(TM?U6@S8Dbs=K_92fwW`7sFuCDZgguTB zIO!!2K8s9oaoY3-<~To<*AX<*8a`4b`zF|L0{c`gidFkXE?;7$t=ZX%J~Jwa`W^nBdj)(K$?KE&o;A z@--kWa_&0XuWgp6CTeK^!EJ@T2Vm-xNbS%@p!87#Qv>sz&cf61{MLH)RZ_WHU;mj_ z%#!r^5`RyA4`BQ#Kjdty65uTE1DMQ?9K^C?-YrcEKIDDsjF#zO4@|e{= zX)rY|iR~dRiw*Ba1;{*gnrV~LI>~AMbF$o_W)3#B#s($*WGXAjGUbnb&`7*?DI7{E zKu0smyf|hXLqgxUap;ugkC#sk*Pd16Yo@E1)H>v$Ef7~Kc!IcpcjmnGT0|U2OiprK zyDK__c8shbR-OyKGKuvKE(=MLXVP)Ap0tfI3e-g1u7{=15I6Rf#a($CY^q70?pW&iC_w+`22%dJVgL_|c{Mb(1%0JN#%^&xG2u3O zQK;bDgv!i*V!v1zz_FdU2$mx5nw}ri7LStqo90FP@7s?k$NXRsqMAYku6(q$05eME z#Jx6AizE!v{;ag3H;cb2&czl;9Cd9ryMo?}0v_u_85=?B&GGJyI|&CKmfUokwcUvT zj7d~`^f|bYuX(p_!Ux&xy$ukes3gun_7I@*I%|EEEYA2K9CA$EZhMiOU1Oww6i{;| zPEQ^PR;$|$rse&h$dL3=)hX;ewi5J!wZqtBJE*3x@d&n4a-ys7R7w2rakmjtJvQ2n zh%{5Sht>xJC|(U1O;*3Z!*^dtitQw`eTb7w=TPC=JPTkHdofE!K??7NR_Ipd_|1W; zmd!0bVf3rEZmPIvbC`YFPQ;abu0h#FK?2uG{1?ht%mkvM1T5f(Q%s!|1mK*p3NFvm z9!*3lxHpgvWj1^scb#qz;CVGQO$2Fhp7R>-f0+>Utue10#6?8BCcZ8MyInv0OYL&4 zy^5_hp&MU?$H$=p#cHJaOS8cr+ zC9FH$^ZTb#-36Aa7?a0iuPkg6O)TTOu7M>n(g^Yg>d~)>tF^}phwcMNIlPwsk>jE& zS$ci*?n1YxYq#=Ozafhfog+tzaE`lgk8z;)P3LN$5z{XCR-n~O5U=1kdc`rVuK_&4T(Ms2|(aU0ITG2qOf%=ZBKf6)173wzKIti`Hi6VK&ko&a8tuUS{ z(^AcV6A@@{t`u;lCqLClbF^eO0B2f>Afxej(mKlGcM-zN_kiOoYb-lR1(^%Q@8yxz zT2aGIs62fvN9JWK($078)OEK1DDp){40#XG0F}>Why>Vr%@F-l)IGZ<-v95+{WTN_ zswxE`YVDz;DP{9FG;n=q<1*(tnBJx@AXtMwzS2mRR?CkZ2YNC40b^xzCne6C(0P;3 zH@9RkmpO1gt|$D}Zb5`Y)4*7t9zIP(d$F*=L_pQ`S??SF2Fe1(p z%4R}##rRI_TvZWGvVI@09{zwqap@&IC&;KE{7n|>g$2BKg7_v7Za`=}tvFyhE>{0F zV&U62dM?@sGAMpNFd0`AFN~A#7HOYK&us|i~wtR0u+OrtcA|)LAwRpAM}NC2n#e%=G*d%5^@!$s!2g z(bYZ&1_SrntgaY-5cDkqgg>#Z`>OqD5Bo8+Dwhs#mb}&@*%lYP%d!o-3vf$E92Rma zv{rR4Ec4u#VXI^7n8|6#VOASWR22~rI}Ko!Pio2hYR6`0uUoV%Av%=ukAcPuY|roL zBw%L1OHnTTj@Nc5s}u}VTIh9G?7QWF#R8rie!X7 zp`}7d3|*WzBm0Oz+soOpOSr{sp#RL9eS+@Jjv>+(EdK7ADKsA7Vv@l)EQiU;#JY&9 zT>9?l#a6#cm!HCSD6Y&VD-LS1HLqL4eMY%|Rq&yjRuJPtB3jXiT4x|x;H#>i)DOp! z7Xj6o$sMfJ^6uq2nL8w#Nzw`i3rnDiA4n@VxHL@+;n04ggHQV50Kzl6qD`4&j@I-o z?>Bb8E_h#~f$6h&7;&4VG#G7dMcsPFSajy7HdwL)@pFJ0j-NL>$>l zbnM0*nYj-^uzuQEnEC`^YPBO~v|tG7LeA<8EX4CCA4!P_3CV&m8u6e`Q*o>>P|viu zR_=K^#5p4uvwG_;yW{eXZU4~#AkW<&8qVAfeIAKtapk!&Xil*dyWMybmCmO?NiFP~ zf%Z=@lf4}Rw$`4Szev4M^912(#}XK0h6vq1Lx%Fj)*^P7hAL{DXayy&Uu0STbH?!co`y{RKb$Q z;kDxR*OeAcEFx{+igg(!aGrdS^j$qC1dzVDP*vP_ zC!0Lde0P9&d)Ct&;>*1VO-~2@SWvNcYqoB*ZFakyu`Ci>4T?Yx0I)WcCNcS z&icM{m-jLqR6>Ci5!Eoj|AwdI?6gv7Yp-J{=)|`k~0O_j{>ZG)%6>L>6L6^OnT*na~Maa7|?xv5%!NW_Mdq0>7Ow| zf&YuXs$ExW1G2_+-RGz!@p+-He#%n59+*91b*witsm=wBMzz~Y`r5;*%E#UhjojCJ zE9*iH%Z%3MHLl;LWr6?VKFgdO{BNr79lKLul0Op$*Qj@9zZE8S<@S{O=M$X&{lq^9 z*ng=IfFb>#pZx!L4I*T8kkTSkEnd5UPv#N)CmJAUd)B9T${ln+oAXWSxOh9SQRn83 zKm|&7N4m_~7j!+F;{|YBTqk#i<8+_%!;;rK$C*H1)ZP?vL1;IakvKejFgPIH1*nyL zg^)paKe+%$OUyrzn`K_E_0_f>w5ehC>OGg1cZ%cJ- zmjgKkY%9yeVLzMZw$C=%cflxh$hCxPXLnh)e zrlW7l{r54snB!#MLKnZ2(o@Ue!G%OhwP>~J1u!A8z3bmN<3*fRgME!bJg*-^kAq_U ze7uyMGyryT540-rMvwBQ_iVPt?FY@Zt3ee1jNS6oXpS`mq)nO$6+#|ab!o5yH5*D2 zDT;F!;})DhnrlP5QLz-2-H-SMh9oAC2kl|rp4CYP9IIES)L9%J=elC^ft*xRp**$L0q*8D#2)yVJ~D$9>Jxqw1YQ=MBCX@4cy2ygnaM34Omu_Y+f3W^0Jm;zs;dHzPua#`YDa zR?|!HZP2L_DCY)si37sh@w*0@li8xFO}z&{HN!?YWv>=SEXiKa@vw+0VfbeYoe->; ziOy%i{0m;F`_ec6wc9Vp+=GLbFA<;~y~vpZC{Q8^+M)bGBzKOa_up^VkJ|i2YdnXF zYAP7J;bEAdhiNVxFJJ0zIxCmO#(*lzcJjW$BbDlLK`>-v;{}4cUq4)LGan4A1J46D z085g0{Z2ewqLXCx_yMjqSz%robZi6UO8583St$U}l?iW&2Xi)60c*r^JHS7S;2zHf z9Ez-vd~JR;@*)p;r)hhB?XKaj%%>9xeC2O@ri11|H19++KHZaQ=zjLw3c@4fZ=Qs2 zIps7cLxUl2SPhzWK3!n*eZAaKnhjk?J)H4hkD-6pfnTu&q1>%CuIMsMv0>KQysN2eA^X)t+g=5&&iH@_}go=_V%z6=A> z){;v}t93hIycsR`d$zeygaE3Pp@8x+yFpdp5gH(kR7EmK1j^qep|?d%sDVMN_X_m7 z8qv;wr_@1iA7ZRNryb|p9;a?ma#HzR4~WI^RA<*rKg@6gW+Pt7$xLxe)41%|5c`SSBzR-=K$M_*p34qu|*62oaRE(iXlVqLyVTkPEEDwqvhG;UCG2crHbv9 zL)w_71d5P~9<{Lwsr4&sk?dsR_1Vj*?1_V&dH=s=lqh)alvxn+qont~PV`5qg#Aw> z-RR6qn`2a8_3Yu^S>M!ppcl&#zN~x9jJri4s*#nw@~N30=7XPL_iovtNq|ZHOtnOI zt9SXycH?0_;mj*dV#T;i@85&un>Fi^7p)67H(Spmc?7#m*_d2p{Bx|Q1J*cG8D6VY z%vEPRvj||NRbLVqEDf%-@2vWSQ)oW-Y$<8jG{$p&M7kd``@wA+z`l(^p=N%+djCFM z=Q@AvJLY5W+WG1;wSu3FS4L}|2f6z}nEGs>_MD9+`AJsGFwa!r_TUy>zo2u_A&=Eg ztN*3R$%TU+gc(dXAc<`-U!26S*5 zyZ=g~Bk*I|j-HQAu3U6k=}T?m6N6PIWHwq#(^t(c9GBZ>EZR3|J_zZvm}eh*BYT!@ zuw5{$>|u7g(NL6{7vwq3@xqoUH(Klscrl^mi|{hFhIMqF3fQ zZ`6{n+yiGg)AwYSNwv__pVYRJN~uGm^+FAvQNg7rS-nsphABN|+N(cA zGrwaGlm=R!FOIB#g%3e%&mv)u5Rk$Y*h&P${?x~R!wX6g3;PsY5~AF(+1Elx&=GF3 zY+o}}UnbhzB9yvgUsG4BqFS<*gP-*1w@-hUF$kyNXDbUccQC7)brRDfpojc3(hQw&cU=b4!Ixzh_m zmGo%3M4gNODpE-CzgWIk{hOCM6wD|}c)UlZ68%ap0x6YX_2v@4&NucC1zNv{G#G380QRrbbZZjroDgYi3Q)>?^_g&6O>(t@ zUdtxNq7d8|deNME{1bJ%ikM^M;!YYQlKhFV(brdT^+Y@0FZb8@p_4Z1CFTt|y;9>! zE^}?4jw=Dp;7hm8xZ`oh^o{WQI@1=Y@umL@X=zS9J=Bs{0F3F0ZovR6z!5%4t{;4w z^C#xBXy*7H67$mjo*5*&^jhS6jEV!20_D30XFVxmA^v9*qRqCw>2=XN; z!#po`l(dyG-Sd`@(@2{Fq()k>q@~NG!&eTYeVnT_w1`^C#kQWWb0neX&WPCi;&2|m zM*^oSbi~S5GsKLg3Lhj&1}?{^p9bG_Y|c0%d=ap65_cr=6MLC%=9p^EyKuqinGx-& zS#As?lKl_i0u3 z=T4snxu5lXexnsO#wL4}-Q-e+N@tUc8Q}8DtTl3%Uvxysjh+xBJPX;4hql)D`mJZ+ z{Z5UI9l#)e@i+aw<-dW&De2xIZIE3U^tnE-zp<69a_)i3v_}N|>8rnM`0;HR*x9#Q z&b~LYDwBStWdv=^6zq(#UIXr`T*d>$ZsMsP*@rBWu4Ec! zCruZU1PNV69Ar|Hlao$B!0A)=4)ziwOC67P?g;9WwbxXUi5`}9Evd0$pQ8qg2UOiPahT`?33n3ZU?`0+@w$)9#C zu)d|)vgC7*=s(hCh_&UF{UzrM)}>*l9_LQ65ie8L!X~BSrmGrAC2K+Ir}YRk%Qx~| z0DB>d|4A1jT`0KYTQp-r5sbw~{zX%&*zr(TNZMGPaV1?0Gd+)aTYgoZd9W_c;Ui$T zOJNM1Tv!^QsS$j=E91i%=I4@_R%5o}-CdS!R2ZZ&K-Vd>J^n@5bUae+hKI~o%#VPx z%E|45_cOMTU#`|a>LcR&Ybz6|v*oE64}2U1cZ>akWQ2-#Q$16@(S2&$g>j0^9(546 zy$`iM|A_phZc9`ox)Rft(R{2tW%cwxtmNSfgz+40LA1ThBttdAI`wSur8IeV`ccRb z(-X{~hu11g*RlD=Vt;P~K=bi>%zfvj!)9hI>oc0lEgvLMBc4sk7lh%nhS|Hqgo;iW zT4Q@<7!poxTgps+rkupDPdmNy>TXJpVJp})9A&5w_+~;4`6IDboy+~78eaz~|3IE> zqFCS1VWNUx*kN)+-AtMCR@nuf^cbQ1MWlKQmB5NaJqd4@Sg(u!(d?SYg&nHTY@EaM>`x`XqvyW`O(XvUrx8O^B`-kjiOMECGK z0`oaM+r)Fr(b)_-Ko2zZ1%t%`EAuCO#$Pi0fntw>02aG;D@S*&Z%e$s5x<&`**8|| zHWM}TDv#XbiCVmqC!O0s2*Rd2nW58Q!E$*(FotioGJ6!-&jMY0pc?;!w>hqWF!f&I zwBmyeG-Kxo#OFr$VDXl}l~Wv^{adF|5}EL#DZl;Iuzbx=+65HR0M@g@@(jQaX}Ix2 z2zV*n`B?Q%SU!o{B2PyVnCA;iEk2Hksjw=7)R2A^x|p`Sg$2LE(Lkl6?(>&ISHN(_ zV%p$rNFCzyy-~kHM`L4eqI7EX5}rjSG}*;<^;H_V@=@T8H;}O=T+Nqwh|-Hfcb0vV z`9n%LF6y7sFT@CZKd+L7@vI^zN)79xxh8QZIXcNVfZ5LCLmS&X^HHgOWe%X)I=rna zn6U&%UW!iMxgyjiD2d=_ddL7=1n;(U%rzgf9|LEx*!Qz;i>{-;A8=P6c21nrwE#s2 zkW%IDQyR}tN0&LwS3X<1!A1MCqVWl7^@NOw^@lQRf9<`h*1Ae=bU zlTTpCs0eE%CUPnpCwmuE9V$SFIzLyo#2Nd86f;%PG)W+sQB{wP^KP~JY$3QVJn|KR ze_PdhrXcA`FwzCu$bw!e!<*(7E|R0t(TPgbSuwNn>Y9O{p9UsV6g}F$yCLhs{7wYcFfi() z*e(;$w(nKfV7EdopB;L=!IzkBS|kj z^RliCYu1YKC;bKreB}63!EgE2iv%35m00Qs4>$8jx4Bm{;gNcN$9C2p*(Y$^Ze5|l z6t&QPhEh$(9s=kD%*528&Kcn9q~{e|dOeKsYd03K0s3}xb``axtddw+^hDiAJaGA)f*}k za2a>;^DyY@Eq67ZV}CzETLu<$A@6Qlos`42&%mRn9}i}KRusL;Lbwmmo;fP~i#9sV z>);ba#`?^*C_37YmK8`R#qc~)t^=CL=9mxO!LPrVcd=P)O}duNI3Fuj?L3#Lp8cZm z_2bGe<7dHJ{L9tFW_4-6rLT=4GzQMTkIFiPu4PJv5AuOm_j_7YgO%bF5e8K@+1?}6 zoTb`5SxFY_d+x_;rQH~qh3bAc@gTviX&!*S#(HjFJR&Dw%vG+<21RaY!xX$)jEWUEDSg^Wf6``M|8FZ_E{rSvB=#PZCRv zSSMRE^J8IHHoG15;UHfJ~Hnv}Zi_itlm*Eje zM#n^Ys>RED%Nv+}ZoxSRwots-*pyO0s5c3zo}~EYJ;Fx`bD4#j{8GD9rg01S?XEpj zY?Y~u3F+Txx{_~J^>5rN;M9`F`aw%w4hFi8klp(AH;%>DkLIkuYN2PH*VL0}om)%U zQG?&Se!g{xMi*-REajnbXH<5vwN-2JZiK3(s+&+WRsr2B9w19m-#wJ=HMZb3Jkk3eI#_)gCg)DPP%;zgP1iD=B9$gQ=eR>H2FVg8V1h97 zTt+|PtFkIOiznY7(!7exf41vsCtOM~N;T6?nlq?#yPL<%u|mStHHAmod!p7gPkNu^ z1$8Cb)}AJdXe!4NoVCX{L#Zi8hecuiJP`}%2?AH)l?yT)BA=Ywg&-TPjGCR2ry`Aub6Ewg_$1w{NcX~ zC=c*pexL6bsp!7{K|SP`ljKQpcpv+ar6cF26Cd%MJUU!DcuqZVk*|8+eH=l6AEZcl}&q8)b#RB$`i8obWF})j)FE`>& z*;uiyXv_34>eZO%9~zLn53j4Fb{(JUxcdCp9hWjhJzKouG3V`mn&8K-Hs@HIv=r?9 zr_Y@X(*-I-(O=uITxte~B0u+?`^X!VXIdLFI)sH*&GA2(jpnBkB)paIBk%anW2;L~ z0q1WJ2Kdl|{`YWx+wkZaZnXis?_48Ta#1@SbaR=XkvQuF0ZR3MMNG3x(|ly>QMevM zZl*(hf1{Z9pLqQmN7Hbb4|gji!7+_TD_Jb?M}D;{Ca`=vqTaYb zh9`D2YNxf$D}ed=TXc{`OKrHKV*pE9-OHV%?CxJ35Y}!h#ha3XJ_~cD?_G!PRxJ>> z^Bw15x=rf(oV#`WEw)9StWcZHUN{GK-40)0{k9rgXEh;Gr(wTP@Kp5XTk48__KnJ+!d}5Orque7HY@}429Ln)z~dL zQFq@#}Rn3Fw#aMr>9tT>6xRN_C}3xvMu+-g=)O%do9@D7P)e!}`@T2Z7rF)qB!vUZFs`wbFBwQj^mcfv|))O%$=!sSwxF^LxS!KcQB!#K5I%yre;oc*%4y%et&Xl_Vy0Y9b zu@h%t)Ew%zcuMIxC?^-+S4MGokU1Gxy_vtQCV9v>Qy_C1qKe9qsC$HcYHRRSbrH6n z#WD4UXSVna^y$ovGGRX%Uae%R0yV)yuc&7&;PMw1rowY{p2cy_+dP|Jxev2!n>3f` z&rS{iG|6hS>m2X%{IlOq4xvH~URN#S^P{+J9q)D*Ui-J|8@j)3B$*cSW?k^(X=l!Y zgtpmQ?RV?YcgZMI=eijxMJ4@>^Ou5oe zhbec7RT<-=5=c%~PEtuY;8z;$X##AmuF$rB;z@k(&3Tj;}1Hr^Lh_|5-bf9-x6exHJ}!> z^+0^JKik)Lg(B-4Y&w@8huWGEcz}=wkrM5i3O^Y^4#%P^Jpqy`Mg$amB8p{grEo>ssNNVcg8ZigQr@-T=GqkQvfKV2bGg=D z;BS+!u`dT^C|jzBk_mKwi@B3v{cWCk1wHjfIBF>3s9OB5LDgJ88;n-exy18pUN065 zy9$liVX;FF&d?X$cbaOF;CjjYwf?rz^{byHZof3R>R_+9>Kfk@V2?N`?A(!{Fml4(Vs+mYPW2HN5{F(bQ#l}+K|h!pFV1cDX~WWABUyanQ1#SuGiz~JNG z=Liq3(^!?L zw-0rj_se^H!*Mp~nG~sbAKA~7MGL;YbxB$hk3XJK&-7@{pjPoQq-R0SBHhwTB4UE? znO_s6iM{W}^ZxxDiAwj(Tq$s%Vr;oJM662vneL{8-kjV`_h_*9*?5<4WaID)MU1%R zz4q|0x?4PVxin3z75-acY$LTeecmx*Rph{zS5l&RGK0lL36i>|{Wcks)34aIR>T^; zxfK4>watvU3(C-^9amhI0V|6)Z=+uzPtS{6Iv|N{qiK!5x<{sioX<9yyqDX&;Kv>-ZQSLt$7>PW5IJQhy{?UVyB6e&|?Esnu?0lP?X+#Nr;LH z0s$2Tq(vz~rA9+dNK{Co(gcJ6Aw&oeAOr{j0;E0LbC-X4KfK?b-}B-AmaM(mS?o1y zX4W;=%-}P=Tl@?#%Q{`6^a1{?BUR6>ec|v&AXoIAl`G!kW&aj);msH5)haSC*FE5g z%bkPg&FMe}CoAr}>))jY|B~1o(0~1px9?J}Z`_>#R6ly+6QaL6a(DUH>&w(%)r`^u zC8GzhF(>8xYR-4Mr(H{u=2xbDF@^E{J7_=wAC_LS#T~K-Zo`pD!bs{#Pf|L?v{r}D zS*)o7BKU)duXi4=<`LYUZJrD1^T#Br-Er>Kh&q%Ms=htVU})o7Q&^uIEL4dk!RQA_ zu^qU_UnO?;$$Dc4h}%~IcAUS9)7$Nc>zk%DNn0E$*Gtd(yj4n_wZ=&F>>8|m+A0gV z)B8vAbzJiH*CiYMb}9cAWwLeq>5Ol7C4KAlyAij{)s(s{NKr#O9F73=?Q1D6FYG?8 zdIr9}aTZA9T=KrtUc|0t^;5d~C0opWqO|<@MZ;$G^KrRa$(7vun&%FFd3H4I`KI61 zP$^r72+?%Ym+iX;ekVBXqyy!7%1a(uS)fk#2bQqCXu1KzKL>AA)+-!$J>M}*Tm}Fm zTB_zbAUnBB+4aU_AyC#(5BV*2y-0Wa9a+z2mEu0R?aA)#y7=VJ!&&N(YpgpLP@>b& zk_4@>7bUXZFAP7)zUi1!B~1Y#-E}iSlV!`!X%RLp#Jd3rWMM1L$yFV;9rFh;2L`dL z0#BD>%;g(94j2wYT|IrxHNV^ZQl{@7iRHrNF3$oP+gCq^ZTwz-aJw>Vo9@?Z^|B7b zK((rm5Xbw*u(Fp(ykJLe`(s%KyKx#vJB9Z=#ayms#qPIO<6&frR|go8^Ki0+({1l zntbo-T9QH8#2$NTy`jW*cfJazSPy9rl(T4y9Xt?bFV|^wYF-CY_TaB2=Wui0g@rXm z!pYt!=N?D&>zk{>5Jc(Z(C%kuFN;t@O1$VQKc|4iGie z*7%rm#9USXJ)%kF^&O?h=CYw)BDM#J$aAXQw`pc_Qs`cGWWL$DE-%&r`s;nkT)m6` zh+p8KOm)d>L-S(wihK!aRt3n?A(OqVJO^A0vxc3^rw>ycFZOf69WjH%Afm6t(F=6; zI+i)v!gLG=MNu~R>WkmvG20KHaqR*@3Ln?z{&dDJ{@nDeF0tBMsbA*1L(iT;)Vz*E zvF3*hf!_CYQ_dWeO*I=`e!TI_fKe`|C9YNGFT3`9qAu*a*U%#lCQ)>*6*Y&o{-cZb z?2%V<$?QjKOD$s^HV}{6szH);m^=~r$D19oj-fN>*6f|Y2XI;!El&#ID|3H1rk`?= zKOJr{2d0>BOWb@3Xvely(y#%0A!PfUMj{rwh4KsdhTUp=Z}Ya@$-8A%Aav8|3uT#Z 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

i5;Zl1aWxKw_3!~05dKs04 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

iwXKmxQx+kz0HaGtANg!cv+cQeFpE8o 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

Nn`WXb11HS`nL+hDa~AP; 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

KLhH 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�KDBVIi`P*)O^k%jMV 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 RMo9nw002ovPDHLkV1hiAwGjXS literal 0 HcmV?d00001 diff --git a/docs/bridge/docs/Services/img/iam-dash.png b/docs/bridge/docs/Services/img/iam-dash.png new file mode 100644 index 0000000000000000000000000000000000000000..63e524428683a6365dbf466a1d63a238e62ac462 GIT binary patch literal 199253 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

msO$wRwcd1h%Qk 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⋘9 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

@#f*ZT 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%0AN7t+ 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

yCgyhr4zF<&*X=_cgHT2a=#--G^_be% ze_$N758Xap#W;69(8#?b?)>x}GHNQ_aVOZwru2CQ<^o}Ve~w3sdGWO88;9sc6m|I; z?4D)CpsV!)HAz_^X=D$f(e z={uDyQQaMq-R+w*Yc5Uo?hwl3S9c@eW11jicmQDBWZMQ_b=~K`y_=t%ZkeZi^trfR z1+v*Vm(2aDxIuYUdNX2N9w{3_J&0|=*x+$Weqd1xzkn6d86TvMM7wUt&iJOou1P*< zUjGp*2iDuQr;rev{Q9Eus2tDNqMeK^h@8|gdS>1P3F#pgnQ|sWi6!In&n}J*t*;00qCV@EepE!5;Q53AkU4>Y->-kFEJz)b~;^qyCtF{W-;C1Z8}{ z=_wZnkI%Braz2cgW!@2(KcH4JfT3{3@h%Z~di!+X?36fe#1 zIBwjZ9kzd;TS)Tw-XL1OhfN4!UgFUi8>I^!?S zX@>*@b~0~IBM1BLh^n#h@n)ZeRA1jxImy+Bl!ZB1{I#E>9TOOPUIF z*^?-6L1rEl@QWuBrTQaUKHrkGOGxR_+&)I~kn${%R5=xRo?k@#f`n98sJFBlU9{8W zNQK&>%(h|)`lLr=(c}SAA6gXsBR{=*4_(iri9-FwyXwOaVTQi!NT_B+&(=>eEY;*W zSXtLv!K4f#59;boFx_HEshzV^EcSmaw8-_>?5T(-kWbVQDh^RhPT1OEDdDbMtq*~) z8)(L{xQB}MR=5itaDMtxf4$G9pjDKhyy$9g(VK``UDHJ)8{xZ_E)_ z2N_GKn#}Z>uA1&{kCJVZoZRvc^uYwHWW7%=^4RC`4VE3)TGP(gz-Q9StJn6l|FY7C zEMKRZP3O1!$KY+F)7+d?|3q#Tj16_RKE1ZovSRU9$!?cBq$tj2Wn@@k`JG5#dv5VL z#X=GA1~%)R+uM$t&?z(WQF{{}_wj9u3jDr#R*|};Gs*j;5bd5=tjNB-J2vk_eHeAS z?t7oF{Yyue&gohhX=nZU>0@72oqWGH8s4+&Uk`kWs0|_`LqT*AuUtc&v62 z7Jbgb|A>5*-VyEaVSM%j5=wmk>J}E4jWN|Yt~KMaI;;PW$SRmLmt3|e*?nW~6$Q;@ zg|J+*dY~@8?CC!MVP<;D)8&&-@iK7|!UL7vUlu)k-%vmKHsSh4H0poJg54}o@`7b9ndrHJ zyUQFT*l$VkbACYBKI)UA0i6d<5L-ohKd?c({9dTVW;9-Wy|sMVs9>_K2@vde=@lvMnv(*x@C}Aw$tntVGKcG);!vaxH};R) zNM^xQ=KvL2Rzc4MjXE18*ZiOro7vA}*x^Rs!`Tl12#5<+R?|B?X?l9YR@*XZb zY0ABxbYWcvpE?Hs>w`3KcfdVg87 zdq(4=YFWb?JkKI(ED1l*j#titmcwt(Kb+`;!!qLA<9}G}jm_NS_wEla)?GRYtM>*e zuf&C_rZabv!m>DZN~89g&ok(M&WGcAvyY?{e|y8K)zu7p&m(9Z!oAd_dF;&zIKVq6 z;*?(UI4!9qC<)nOP^{!6)sB4vo?#nga0&s`6pJDNpy?jp$LLHBm0m+4ls<%^o7 zEheuljYx#UURUJ!IUs&eo2eEwd9hN_e$^G1l4{chFkk!+iZO3r1t zJY@Y9&`MV~=$@uvE}kQ?;YptS+p&5;!O!2X_HY(ou(#1xNkx+k;NnnLnRJ51d1ujT z-{1~@B^?vGj91{=wa;!kSz!>P8!HF8!a8~cokn6ss6?B>KNUkl2qoXVrr?7~zQ5wF?A&a1#lS^(;tewee z9|8&NgD5m9U*N><`2ls0Y_mxD=M!cY1S{66btY(Zg-NTGpj*DOt*Je7G6Il%M9$A?l^)ZTT590y=2l@FII2;+pUIfJ4E_tK+^^!}ZgdfuEA=VOsdj`F~zKRKZ%dF(8KWg6}$&pU)17q;yvEYB?zu45~*q-+$SHm;;lr?fD#1Pq&I^)8^TWHD(fkS4S?DS-ATLeFE*K`Gl#&oNUo`?Dt|MF4 zqc*5f{h3F%^RP3*>AHpxK_KK9oNq!E$+b61^EePY6KgwRMnmf~g=c_ut=}Q*aQw<< zC|S4TVZw8I@Ru0!H;Lkz3YE5vd5g{msL&WWDn}+$<~jKtkJ;Hb4!~=|nP1G&c%q-T zXpb=%R1#!`CNsvn_Upk;iv}a5^Ppr(m)8h@>Zx?6sTTWiZi2ru=~oUUgypZ}G0cYr zH?wc3B;gzdMESPzxcjXHZ80bpVKb06I8+4^VZTcVeF;m?h{+i2e1h3CY1fwTUXJBd z{qVhVe{Wpu)uKqkl*Oa=wDH(*I%nwrAdu6cp*7gdF66Qco(?M&3B{W6A)$`Ykj=o* zcf0pyH8|j)jBI{hIG=Xv!b? zuh7ud!aO8?P-;5=o-(srsI3!Z@nS?Zl~)fpF7QN+gCOzGqr`rN*zgvUHl6GTAqqV? zS*1dd~6T!r}XR`H2R3l2!`oy!q$%Mz)i+DrZN9JfwU)f_bhDbx~7YRADUh6;M`KPi61ZAJU*s9nRfMY@R}u2sS0aw00Jj83;|b=I58hWT#JIy-yn4Q7e!@VE$y z+iHxVN5=t|oN6q>KZcOV5?vB|DxxJyXsw(#b<<((#}CR!lWF=3kuQ+cJHK$>5h-|8lYx&I~EI=8`Sh(JseI z3g)>GnGLvO?B0;$MTBUE&K`Mi7qfhKEo4NPMMRyCo>cnNsoY|z#;5ZQtEn70#XAo& zf!(V$kC&*bGK%OIt-C}URaF%Z77Fu|lPPYP=h2~|U)`^y{VCvu6=1Z!i(((Oet}dn z#&m->a*4tFx`NUDW_iPTY<76;_$BI>zVFMI9qNOpf#@E)4^}-Q>jstX6#Nlqg?%%G z!iC+5-Ar7Biaj4=(Z$=X$!V3oy9nA*=SWg|jvUmj)vB1vd_bw=axCp1!!6;!DUBKMb5;klkbGyOw>OCgyzpH?Bq0Q#2kJ${iYey;sI+>=yNShxv9u(#tJA8{HZhg(0x!)@L| z+~!@jx3rO&7{%c%yi9*vkE#UizvcNZ+qK1tJE*;PDNR&>4{&wveib(EKBHJMGBU5zy43m_4^7!rC{BV`2swTp z0nIY3NeP-)iDMV<`Z=J^gov@syrPH%DGF`iW-lY=P+;Q|<+(|_cg2yp`u(6cl@J~K zctoI;-C$HI`;`h{P(fH&K7*sPLn4N+S_LiYyr$!huAxIG<`n7h<$+-*fI(yp%0oKx z0~bFC#pIse#DM8h_6yi?TJp*j%xQ&0 zm;SIE!6w;-RuW@-q`)TiwLi6a7R&-G3?*IwdZ16ff8xBBe}YHyvwGK;ReI0@9pEK| zg^ltBg|MjbiWfEKxWLHFmKHNzR+4Oz`PGg3e5AXI}DqVwTbIanCv zBKqtGYlLjJE)ILWr~8AHgm3U1Q6HsEj*F|mMT5bEkcz2k+)cHWwC?i1x};;FW9 ztjd}Cpm7Qwv(}_vMrygiEyT;8EL9-Z{VXqc!}AiTIDzxNI(6+nx-q-$@KWI)F>mcg zc>2@E*B1gE%XH}-QDQS{XP&X1NDhwhfBu9rNi6;Dr$uBeV`C6RX5cO2k2%LBBTmb) z67o+V$2$6~Tx{eZ+}FBM*?oVwTB#>#f1i1o32x4l-cS4wjA+aG7>UUVqRqU*tuX~tId zlf22^GotvL%%JQoy)&VA;jy9Rsu{q)I1}?1ABUp+zk(5VxUuQ;-jB?GF2@CVu@KlI zjiCi4%P|a<9lVUxdHeigfYLM}JvN8`(FFU9>Q6lAMdgd_r%!_JyC8U$^{tc6(Smr$ z@X>EOntnBO5BeM5vlMn}-vpGm67~VG-}bS!E{CL};ck80R$zpP8%Zr@4>R;SYa}weQK4df=7nR7Kt_Cm?yChHUTfKTgjq(8;WD&?8 zs@?&|a}+f&YBySk&oY^PZc-LMlC)@QJUma<5?<1fy8?Yz4+}UF`I=PJaid2wfYY=OXw?wIp(?YNt8?IP#r;sskne5|Fh<#zP-f^v=D00sAux)a|9AD=D;=pFJL z|579T+D+3m(yFq2Rf3}`N`~JtOUQ0ISC40PrZ!~qj`SZ3S$0iZO&7@659P3QzQ1)%HiBIx z6T9x&zL^XY{Qe?)98xlU@QphrM$il=!$2itWU@qyM+E_5muJazHTMw|87cAkERqR| zU8J0;aB&J}hmp{%W5u#giR1+h;leWzi|`Btc?mjD$#YvYIP9BOTY*84 ztRUmB-L`B_nQ6<>QkWj9=1S+;wY)2gO|xCX;%}+KIUw_A(2q^gWL77M^m?y|OEOW( z!zR0Yr&@Rt%kV9k$V#)HTyiVsa(yb4$KKuq0LhT^MnW}!Odj)?TcQpLId=KlP8Jzg zLy+`hTd8!bZ;>&3ISQQSzXugqZ(C<@qQOKldchzqLgTOl5>zVMyY0b>qrs?%`TVgr z0r8Zv!Z}V>RQ-<=T2~+pr|XK-qy_m zj^nV}Tayy3+WVHESz4M|iM|=m_tp3u2k!lNpTKELWX=`)h^mjl@&u|wI(tke=%JafRfBPBolt~-{H<#mCt|r|K>RU_N`QO^hMC$s z;JHkI^5!kvL9G+c!e;=DAJ%Ld$+iOLj+zcL|1|lX+KF3TcN1{)alB(R`_URC7pKGo z*;TmA4kXlB29s z*17nD*`?nXuos-&ixRz;0_YJgf1~XWsk8k4g|ke@PGCx`gqtN-fB4Ptdzc(UypcfN z(H+>OJIVn_h*(9;5OJa1)%^A7w|%kX_`ngO;F$r@#X8>^i7KkEGu0>DmM8|k_&)3Q z8dk7GxPYkcEE*xmBU!>Mu$ zn{zTT2^psj^TGnFRL53U!Rmb?nyumJ?wH5?{EH}6yJzQZ_a7N=v)klL;b5jNpjCli zl_+zvhSQf*aBIb^-L!JPU-kvtU)S-{8SWOBJ|3!=7_VrZomDwrq;$dPAvJx5w0FC5 z<^0|OL6AN~r4>U1kE_Xhqk)b`TEiTKE?8mi))W04DK}mmm6T4sxjxwF7GC)10E)U^ zZwUWxCNwiejJ`JxTl1sEeavQQq-7_H(m20U7mc z&7p)Kz9Z7w{dF8ydCYL(l!_G}+x6Qs=PG&F`f(EI1q_?(^u!Zw+P0UDUY-V(>M|+; z{kktIRkK=I#r>roVK;Xz;EM{p9R9+++y24Y5(>`t(Xpmdp+)`{wmzs+Ui+F8loE&5 zB71Jo#sVEy9YV+XhSCB!4wYKVz<>45WbPDf6aK2*3)g%RI!8*YUxbh#TKo+zW|Yau z!We;<@pe4=MGtpPfVJOkX}I%6of7^={KQ`GxCp{;cX?AX0Y5Z~*to!5q#L%igqW(> zuL&(!*A1HDLf}*U@>Dv$Imu%sLqxNl`yuiyc9-z`kp!CJB(@|SgO7uZ7fS_6b%^-GbGDVX33TlFXqe)Qu|Q{yFMtNo~M zt+x}>KrxFsR9JB&i>ymmg(mxkPv-O2;&DcHnZwIk^JBrqMw_?-m0STMCMX;AR zo?DO-ZpqgIF4;{oVR%!`5x_zqML=v-wh33vs}!j>WjJ7674n3SyB=vas}$fqUPi6? zIC9-4juD>uIjHDlIvpG%Yr92MUYDV4SR*NTeNY_8rPBYN>V&wnSE&HePqNpppz2or zJO&a%RB-~9cin&oPCp$9B|%&7K7R=di?BAJI(kHf89l`Kb_`NHiwsw<&{V*fxsC&` z(z?4>7?2~S*4CQO@sOS3Q1XeYF%d|ehPkEP&QMOG{;5~PUUb!4_8AKEAjD#BfLuaWkR3%#kk(7Q>|@Ly$}P-bP!Nnj0lEEqit2%de>G z@yDMOH>$zd_G<&Q1rQz@fCCUjkJFA*H5X-*!nz8KcnyS8F*7$?O?Zfn4o=qsZ2X?PY2AT!5bVI>WmzX&KGMJ##d?^PUmL6DSp$! zL*5JYDB)47V$lHoW*dqk9laY93S{^C{#_!Y^Q{^U-xo9y3N>1(aqQV7luBCT=UI3j zz5_ieonFd%D4uBb;Mm&BRNffK3Mu^wJncuLX@Y4S#@+1)`YLo%FPj9SO7Sc9dTnBe;8rzI}-0#tfJ4 zuR$!(xr-Mr`Uek;60&a^OOOD&tFq~a(Y;B>)3x-@Y69W@?&?&FVd;Q}clmz!_OHGkNG{UK^cz7hGGDH$ zdqiRg(D_`GL8GDqb&u>4A$^VM7pZ9Dgu%tKsDQAmxIth0mRv6Qs^8Piy99IL(8~y0 z%E-3~P4t@yHLck-@A5unwt1#V7LM3jmb+&Yb;ZRtnT~E_$65aCl&~*hXOY5p-PWBq zexJ_rzaWhq*zd7jteQ=wCk*i!uwgR@z9{{_LGo*f$WQF|+r?Nv6 zTQn4cgcJRXi(1y0ylU4NP9~2tgidCBv;6Lw^KQS=8=pmk3812GBYnN4H_8!Oe$@P$ z&S_R0j=}AYg*2FLG@K!D90~u(2$Wb{!x**RJ&<`F8h5p6CMEz~rU68>{}%{-0$U5Z z`yR(#^V|Y=4hXaOG(45|1b8)ah>!&GFjqA3YKz-Jvv}=9=M?d4WQY`BA%&yrpOy(< zC`|I7y~M*&qko$a)bL0i0|qsY9@0XY02Zy3A#t~FMB~(U`143(J;q4wp7zG&)aG%t zHfFxRx9(Hm{y-^H}$6&L2z|ErBbN!R`U z7u*ewK#d38D(WVJjawD|{s+}Y5zc&U4&*J9` z8ps8WrK*X_{02NRjOWk=NEg=fx1Ii3SAROCW#E1w`+T!j4Cs=)g_=II zn#yzMR<42QU=$)r-@d*0f4`C4vmJ;fhn_y)ib4C}Xn8B+w-rT+HWNc|Qv-nmfBuU^ zjc;Cw4(s|v$JPT^mU{?Ej|+GIdjxsI-Ene7pn^{)~9pI10|Z#ks? zHsk!SA<1r9S%tOz+{D!X8iqPYX#8t||C%8_P9+)$ivF(!`7;1?i8_4(}^P+1Tv&AxgT*@UMr`>(;n&^d z^zv)$G%SEB1R^)a$Dpl~S2RZB;s4ua90HwI+n5WO5XErcC5j zVbLTyU07@b-(qT|QN!D-uKy2lBB#gsxGmXjF#Np@11}BFxQ^+H`4{Q$LI-7DIZf5h z6`cOY1SwPfB?dT z1W?-Udp&0O?Zchu%7?%^Y6K^g=hcf`jF~<*X1GE3NkLBvRa}}ip_#Le3!1*CYv?%? zIYWi=CTY8|#y(1^?;d+F!F#{$H734n)0VF11;M+HK0Z7=h?=(CUZ#(xHR+KMInuKBl*>D>`@xE3Pq)>m z)Jl1L3*!Q3J*yN}~Xu%b@JCKWZKR zWHs=pH@?h!|NJ7rVSNwzhFq-TXc1`~O)OwuOzA%oh9^qR0^lGQ@z5-twJpzUTK|!7 zC=(QD@`}CF=d|O!X@lw^k7I=`iEvmn@CTt&YM7@B6A&hdY|``1uE-AyMekXQ%xi4@ zxkY&ypdk4E8YqPQt}MF8SAM0U*h!(HM9%VLZG?*UL$71*oK4~RpY1Kb3kg(($n}Z! zX7-q9D@1TMwpMuuI_mGe{yU|Q$){~8*1}Q#SF6g}pf-+BXtVf$*aaX^#dx*K^r9O5=nx#80nB3;=ct=>3Z@XXR3~LwI@H_8R`py8Ne5ZV~A*4Q(-9W+xCU1?Z9zx%p zb#lI;c+9n*v`!CeLIr;cq?iFUCv!q^mihB4i@t|NMjempIqgg+1J37Q#6`>Z%kC$Q z!d?&DdI+Y?x8f%xRw95qWmV%AhNe?7aILCoJNuF9O8jd7oo6&)+?*c-U#MoRq;9Xk zwyjdLNneOq&^nJy#9wpV_$u?l%;pu zP4|ONB8^ItLAkA8k`XMh1_|=pb4aarcw*}gXK6Gi(_ktCW3~Gm1jMb2hW^~(s2TUN z-otu*W)&e4vSa&-?JzGE?{x@EY{9+^?Vl`}kphox-suLIc+0krE1ey3)?l)31!jx9tV*Z!8pJP|eNXn!jyUZ-Tdi z5)G_L^sDADegFQQ*?iT<+s;qj#>mneo8+fJw8q;*4xdd;z%4Yy2;?hsN8&ECY({+e zAz>C@xZbhR(x^^@=3}PSL|@O${Mr^D-+VY)8_JL+W6My zUWL;?GcGC9OTIQP8U#Tq+Ba^r%Z}_qW)&RXA}H&LzV;>DOa?)xO(SDODAA%j)l51V zimO%=uNa&LgXGj8KjNz1S%ei9Lv~jOY8Q`+G}f%g1jrz#3_~b?fX^JUZO7*9>2;@( zWX)gY{Qq>QFca;VT=+5G$2>X-xGK^3Ra~L77wv~!IxY+wThSK4W>D*qmRtt+BbaRm zRMMFw*d-&CQQc6d;91mCoDhuT+5FDPO>&=Wg=2b$zWjBZ#k%MC=&TPa@MfICk@zjM zyA>Hu`zO4`R@bIc{pQhMrVIxgQ@S8Owu6UV@>bjInrGWOLZbDEMmRuWJsaGeVrFu#7Vf0teyL9_m z`_)|s=I*fA^nwB5o`v;BV;^`|_8N1xb2+?DvELH19rEF1Wkzd)qrknok>Y>+Yu8~0c{hdU zu=f5{jlFHPPv9M24HdZhLe|r6C9AzPs|T)Y%xfB0dAb84rVHm^5R?qGs}7avR&g66Qajh=@{l%tE)8|ovawAc(XB}R_PfbF z2x468QlYq$uw9I-wAT2`W+b*Xj#bE`?1STaMO^uMt#N*^X@_qKLUXbYb_F_weVX43 zi-H9Xo=${=TlWX!aXMIIF3_1+zGBEfe{vA|U)oMqIRRv<32lwlfp%a)Q!81<2MJZ? z6%Hc83Kl_$nyyP4w_*-_is=erIvE+jrY%Shbrm9y3oPpG(N5IIBdgsUC1#Ay-5>kK?Fp4 zFQKX+MS2&ci1ZriEr1k((0eC{Bp@{q2%+mnnrMK(p~tNMip z>4ZB8+logI5vSXa<~M4Uu?kokPkK0+M2t^XtH4~?Zc1=1l9i5dCzUI_ax=i;qLYMO zLnljuhp7ec(YKqMhwd3Ny<<;OF6H;jlgZU-b`~+;HjN%moH_f&l~VC3&Xe#HA)5)z zSSqG8td{99G)&znVxFA&BHwLmIOFnCJIuw`m(944-%&ebLu`3$R4=yrSSa5gc&3sc_0}5MdKI53fvI?JG$5L4DH{{L zypIREa8M`)#6qD5sL8H&{p?ooe-f2QweGu!0aXZtYbso9S0?c+E?f2XhL% z2`_Pn|3%LbC2T*OFh6at2`5Jw;qY>jVyx*ka^>;N?tszm=YrKl{Zp~G5lYP;Bzvl^ z@}_RZyix|(!7R}MON^BJ0g|K1eLZ*a$^7QZYEj1fj)%|$AKD#k-;1`>V={!WC+r+m zWhl5DM43s>!T#wz?FPjt4S9#ZRHxImcTE8}zmkdCiYG41S}L-k-AWRw4u52Ffv{_@ znAtzD8QqbNJ|v}Vpe&334wR;ky_?IZ+v1Ly_ndxX+^3&BwynkKLWFSO_s4A(3{R*c zQ<-eeb^{+e>2lxF5BXNNhB7BbEEK1ZGDxYthrmY};lP9p^$36_&R{q`Y&ytjptWQ1 zBfno5+~AGj9g_0x1Nem})ia9}<3X%`Gs%DUA`|%-Jo!&#@(fR$>EY#8gDexq8L9`3 zxwj4?{f$wEZ{ehe69%^yMivvVU{ii{&10qz!V@5eTRK~dEOo^=6GVZ`dKuJnc$2 zb!gVZ*gLzm;!e}(=B*t{KP!+I~I2K8fqx$Wu&`Pp&*Qn*fSImBVu-dIKO z)ZV(PE(p^l*g?YjD1l_=4&9QniRa-nsFVki>QDH^|Dsusqo5*@_RORm`ngc=yKS}G zmiEx+7Du$n&`8uF>HWK8ydp;|l3%xga(g8uVU&RN!&`oeH}-xeP@_ib80wf;i-yO| zngEcMvUEma4?*74xSITJx=v)XeKq36;C0nU3%9>`&BR!t%ja{iHoji!Xj`m*>E$Fk z`W#?)l<7G(>Bfc$qOl3~uO>t7GQM8Zqa%P>J`b38 zE{YGsmc$$mt4AurAHJ4?i3?mc?A$sjSocn8c58M@NnmJ=Sv^R)5$L0etRe(jNrwRB z%d-LY(ReQ-#i`bwg|!LSqE|XUCcdRcV&3j^M}3c+uEKpXrT%TL(xqwNs|d3`oxX`p zGLybgI}g<9km*AQz}S4YtxSoux^;cIQRw@>Nng>tWCduE)cd`-r$7UHo*m~O*adbQ z#UxSlC+;*SenKx9yZOFGT#F?cYXs(dj5-YpC-BiWz0Hcd_wMsW0N=lwO`CpNd4!{uAd_L7-i6a*}+OW@}Y^=;Di@jO1R1;!U_~}j-VVn(me@ob}EN*Z%P>r0edK%L-eaCk>fR%(Ck|NZD z{m`S64|`ktLpXT#7*F3TGc*fu`%%@yTZPIv_Cz1pn74}HGMO_;zN@$+N)1R(>wW2&5niTTOAJXYsup4Rc+o9nUI=wa~nj6Z}~#xLK7HG_6x zSIX0X(7Ef9%_X6JWp6(TI5OmO&W;ppTeIBOS-L&Od5{+rcC-LDk`$E&qqoVPdN=-T zxGD+K9I#rS<>&Z%DWPX&n#p3xxhr+2+G8Z>-fS^-y_C%)^;nm8K%Ew!uf&IAg0L9b) zL@4hC(}5y|9L<_&2h}Xdmsw9hd>s5G`cZu#H4`Ivxdgm!^ZXe%dn=PyAakbr^)0D> zxAPdUZ-Y?N^;0{hWqu0eaJ9^T;-n^zvKnL!fq8^>07g z#0$xrX2RWd&XIQt=xMy`Z~pt65}m*!=n{PxIH2Y?6AEHzvXe78j?{L?&YXDG`!0To zUWKmh#k^_0F7gZUhn^MsSdVAf$yx zplM}`FDg|q33R1|*b-JP+I#qDQ?B&JmW(WS#F|p+4TsiCa`wc^cmE;5D2?7GfrCzK zW3}!w5fhOn;}}FA{p}0_WI-o8cfP}H{f<`it*!UJMgN!V6_Ur^qJRS$&%c2i@ZrR2 z0FOU?bIj>~8A`ytmOB6EZ=*i3LDT>1I{~UeA;32OS*!ma-iPyvkkbEA7v2JQ1WRs~0tZH4r8SYHs@F+s z<*RO#>J3zU7&NUl3yaBqU{f}klz7ixEiF5{`s(MMNJmydj{mX&iV0xsI~$zm+B8gR zx7dFSOvSq!ZXvo$YS3#H3msdI$a)PEuixBC{RSyiXotT14G+{xmx^{lsEfNQGWZ`l zWXGAGLL|Wm05~U}=RFOCsYw-JjI3r(WIT zV*leANO@~6Ol2!!{+l^_;g@}Hh;QG%UB&zy5Dv(98xr*E@TBcvBwo? zqMP+#Y7BEed*9$e7io*lfxR~oEg$}S&!~VpH)J>ki`w$LE)l%5Q$y;XTy*jS3;kw1 z9cS5$Q=+;EgR&l0*qq>R&Ker328>5?$I|fX8}?`id`_aB0J135F+$({qDNq81Xw8# zuW@dnK`~NpLLAuCAT@*oXe3+KsQlpXPA?P%*h$}ZSPkgk$ajk(uf}}0Olh&yy1cw5 z?6%2&4<6qteM*)Z(QE=R4G}pxImahw0~dr8=#{+Q(+00}F9xH1vHqt`BUwjE|K=wY zh^oSYj|C>m&^>m`NUqQ`(iisJ7_*3FmgR+6w39>DHzsU_UB-m%M$0R1BTWFLa2cYK zsZPB76yZP}6m;o+n%O`~CoR9|@29>FA+Y{+DB+Gr2HyJys3j>Lv;nB5m^*F2Vv>@I zM*4xdNzoVDlSjGRf721W|KzZT>@K)f)Wg2ol&Z}=#95C6p8}{1bB#7FPXI#qV@jDI zx|IH)XlSfshW+th;>>SRC7?xhlGF#YL>(6tQZVvUw>l6nGuP-9&Tm$)=X{1tNrOT9 zlZ_8-0Bm=9<{=yY8%N>#bmjU}RECXZTd-NT&J<_-3NL z{wvy4kr;7-xSwuUzNph)%&1FZFDO&5Yt}08ERfVIeI>B5nAe`UC+W1rsqm**`T&UJ zowz}$i`{H#()MDD#TLWeyPVgqU3=&xM8Q7Yy8cIc-OCb2F_|Y33+Db5eZ|E3z~lv9 zVCtP^me0wiq4Dd0pP%b@l7YG*#3#gKWI2l-^6Mf8pauUJFtT3m;24JoidmTg%Ao2Y zfy@0Hw{C`=eE&Ebl}?@AwDM1P>6QV?zSlxkmpV9l)Gi90ezf|_&b8vd+_>5Lt&(O1 zh(w}q?~=CRchz)8EXNBqKtLb%XR{VJeGd0KbuBb~yqRk!6Y`o3=pfHw9)i?4TDNkC+2(aA8C4zYghQh-5Gxx-+d_>#?;Pi-2G;_a&iY z`r<1;U{9GqR*ji*b5QG zfhloR>uEO<*$pM%$ZxcRNwx98usK0C(32CQhltPK^ zb_INw`^U+PV(SWyC79{snpC*BGuZljSAwij#hsj}w99GCKjR$d z8dV-A2mmpJRJWKmjbIiCrsWnOoeIfg`#S9L`+f@iMHtS{mpmzQV*O1%1_(-|%=YWl zP;WLU=ziANjB+@W9qYW;7Dq5pG7vvPZzi@#FOmXlzmN|)-Y`;&e~`|plQ7L1bDsU@ zq_=p3wu?*KleHF>m>gNUt&0atOD&sTXiQ>2@xjfUs6g7L|HHEZ%Ve?4qbPEhEy z)T9y?lf|hu?>%-%0(uYWn?*d%cS?g)d#^r^83#0*TXy#R7Og=wWGe)Bd3X6c~A zIrZM+utYIV-%sB>=iFD%D2>|16vN~GjkKPA{KNrVm|Il$&35WxF!IvrysKv$pLUcD!i&H6^SBG#5ExKGIEzoGd*4m1P<50d-BLJ ze>_Gb;T4xi25mJ=zKh#Z9b)#Gwd2uChWZbro}@^cy9&1@*Pq zX=CP*i*b1}?@V|+9!YG84&#WoR*ZaSpV~;2%p_qQLXfH^{ncsw9 z?7Kt81@W|Z@=_HGQX#8u$l-DdZlEu7+DAq?pRN;XdBLA4>rxYQ#p1ty4XNUG9*A9I zQBWW*;e2;Pf#e2JD>vsg1)^3f(ogn}hFb9-{V}aC9bJ1{)hiPP@JJ_wd7^)>=p#(f zTCHrBw(Q(>2KG4)*<}^%5^{HYdmFjqV{2Qp!zF&>k%>3bJ59_Ye%Nx}!n2g%Kp5?o(;M z+am$mehsQc!0$ryan_{44t`=COIy1;i>;-1EBm(0hY7(rjCfmLpP;COkvI;L&ky?9Gum&^BzB!46i)vR)BCO6~g z-{gF8F@Wis`iWn>I@_nw{Fl$%>e`4?P{L;LU`nnf4Y~;Dk{8*&-%x`{`wGOSC3L(L zf1F^En6~r#;xxGMDGL%#0Y3g_ZT-532$=b#Yt_@A<+D_Vnt{@u>jk;*j-ZRyFBUH@ z_|ot{^tPwOaPbc#9s?~hn9Fbtk6h-{=|;7KMpGo)@oB($WZ~JqP7wFi@j3y$3uEW; znkgpHW6?`>-EJbuo$}K;866%qF=E#mf6X|ac&@njf&z@n{(OhSk0tP&*Qn>_M>S!hL!P>M}zp)Rf#AG};VbUfz@dX+x%iy%)(wy4a89Y_D@5iO_n{wlqu2^Cs z2ie^JFh1F#Xlp@@^W}Rj97$jm#A4{hl2|T(n>n>tF8QmYOGQwnvKFBAW=VFQd@#Om zHH^V!;#3)(dl|ppuoM(mZ$28-{t@9mvV6q_YC9~gUuj^2B7&9ms=-IykLi1-lYYq4 zwNGNRLD)pcfG^FX*l(=0=hO0b^T+71=ON0>A6jH(Dva?`%bJsO2^17 z&j~Fbycd4=a(QlDEz(Ce0>_qZTIW}Hm)AtIE7N*m<-p|boLFFz*+@itN%@;%i1dy7~*wMR&Y>nTS&C&>Es#A^YsC`r2<|F$=d zLd5TB6F(}>HxgEP4>!8nnb zGX4?CCYQ$j=dC@hQkau)KbGK=DWmZ!52KXuYE=z72(#z=-aQ!TG=wUI@+0UjRHFAi zy>!SIUd?yYp4E2PmmC}GULt+Stw)5^{ z%t_FCtr#Kdar*W_zUFS8RsZDxPHZ5M0?gU4v@aG@KuV_;m=jd58tXUa9bX(j16Gk} zZ#fojTG&A6;H4h~w;jRe*M5HxKEBXWg^bJdTLcb~35^)_%TIrHZc?ng+7dVojzC2Z z?wAw_S@qf(&ki#AEc4Brqm{XwTPwa?&3UYqYH@RoOxEM@mwppF*yyrV{Sh#1ri!A^ zz|n0a`wKF@o|>9UB=AewXERgjFOuP!ZHse!?(a3OJnIHCL`-)$#2sVA;q8W<(@F62 znAmHl;iv-AZP%_sE%&STtFq?xrU6*eE&i6G9e6{<97<>Ixf~oDio+4 zW)!BS1mGnG&G)=VRjhtub%|t!7!ffzv*a4(hksop@sLc${w{}7+4Hi3P)~z(%P%>G z4%4cEct%cazhT)V!>5}P;MDcu&oD^a@2u0wk{P*$5Zf+JknqLsFAa2wEhOHuOQmm9 z#DPniLtoSh$qw`cJeQVJ{)(yFx-NVt@QVuAJRwa|{NY+ zNH8_90$<1FtDjxFO+R1C!ZW3OHVPrreO2>Qf&G(qo2^m&zekhcv=_S+55-2LPmd?) zkzbPhQ{$<+Kk{5y?Mg!Pa(=nA^EjBbmN0x@z-PBF(+-4uqmd_FRP-xmU120b%c~M8 zy!Xv28q6-shc)2BVlw)TEP@M8GgE|3iPvV34=Rrok-j=s7QUwnl6jBo>NqS^aT#8d z%&LU%z@WU;bsWVE`nPu0gL=P~DowBAOCii5tD{i1t+W!?N>+$@>)@X^w z&zP<8Ck{wGMK-yfw*6@-A&havuxrE(RZVbIlM4N>^3zXk&;ml$H) zX5fhhh~mcM?gJLVRy|_zU()1xy3n?1B{Lrx2Lt|zX6FMs`a)oSvm0quiN zGI5&mX(w~6eS3U__4f@FKM88R0}yB97kc-5VWXZWgiDeCoPduTIhM(kn|EtOl0Z%Z55{ntJfJ z0GnI&+Q>oj3Yzs&Y9v$*f-1O>VR|&W)OB{I(MnM)6?M~h{Hsf+NWSgsp84ypk1X1C z2paqM|?EN7!{o&hf+t@M@5Yef$KR)Xj?4R)NR>;bsyd@iSL@aRzh~c+IJ2^q2 zbSN&<4QV)G3EsZDELCw7-pkfrHdTD@AY*5|B0RPtJDT8}b11XmM83ZDN}dyTotESAV6iCcr6eFJu{tt+!9&zg9ZyLLV^14KcX1 znX3(4fe(wBw{KpXX;b8>;PJ&@BxW$jp$Z1l22zZ!lyJ}L1Gu=F*&-yq4Ny;S5(iAx zJ;VSv+ZVqoW{`p6-AR&aY6YS1LMd4Ub8l!p&o>=henjj(LXfaBpG2;ynY*;1wNscB zd|s=oYZ_IUG{k(M@?C3U7rHK-*_&1wB<*)}(!&X|d-%MxbR<{jm9RgRXvQ>$CiZJD zPfifT>;4o+wV3_5*;WjXOCI--d)?zG5=I3TQuFbfQ8y%fYKwx*aYo| z4=52G2mrVr{ESG1Q@*1NiZ?Pls8S&&d^;nsFwRzden6?GWD#VT!=_a-j-GUAaB3kJ zs>RG2H+&_`u4zvcTYi`e-QyQ>z?_`Prj&o^>#mvfM=6ZnfxLy!dAAElbF8^R!HF}} zIg=k|n;rKl1}5qQRqUn;v#6#glV+RZ9r~VLTzcND`VhQ@y()5CO07g?QuVf!Kr%6xvhmF3dgQODAY|fpFt$F{CTOFR;y!PwLI1vGj_%R z9O6}1xNVNV&}$7c20}}UuXbI4J%0NbWxl}93NY9A#m3MCuS;)y8rYRoYdvKtArx}= z@MUD~kO3*Uy3R7N(S&t-%DiZWx8Q%@qfx>?Zw~D_M8-#bM36@dk_FjrrCh=I9?@ zL<*P!h9QFMB#F26wigeAd2Mq%+A=SaNUGh2Z@LfbfDH7a+ci=ISr$YoN>m2*RmI64 zml?KXGwQ?ot<*nmc;U^K{8)bcS^!-913wq)28w=W9~;dx61U_sevVosLCanRnngbC z6NykG@4>RsiYJpA4;Yp6%SvO`>1kf#v!(SKE>+aAR6L)2e@w0dImk2PcD3SLuE$Yb z!rqHFpojZK$wVrGhhD=v!G$-t3FkK~T?8@uYFIrB1@P$6WP{ScbW@-Do)a)as5{q6 zhFfqyd*3>ykc>l?6BJDFYfhoZ%4bp*B9*6Ty~gZisPpTB&>%cdIc}_L`Z~oy{BTy~ zSQEbULX;D9Q&VcxLRSHzrWMJMcwy^rmfh@t8XNYYm%X zxSi?^a-P+uV5CZM*cWo$K$Ulc-MEV`7MQ^}CDZxIJOirZ3j7c+y%&FuD_ltVbTO=o zY`6{#?3>Rw7ObYqyo)&d*(H?NV2g><;YDb)_$A^y!kJTE!O%`VBdyO2n!UGjPdKF5 zRQCGGH-i$)4$|7~nSY-HIY82~MS!v9`f@7D30YlNA0<1wJ2i7q-^H$Eks#^CP;Abk z^Y>`2u)+$ZMwQq6<-1|mV;&#|6%T-nX>#_=XD_kxXb_MhIhV=ZA_U^SFw zkx}S875Vl(K2@ zT(C+tk*ypvqo(%;+Gy(l)MlXhdL)Z4xcQu(Y-SX8Riy4$Sm+eLRoQOb3N16JC^0=x z2(cy7y2Ewxt7C@1MGqFN@QUA}O0SD3-_}}vz9(kcxbYUYFmQ3_i)M{#SYiL(SQHZn{TNUZqJLH12@JiTFl~=e&VhU zYhFNq9&=)Z=)~VdKvb9&K-&uqAPY#{3Y@Jz0p0T%6Yqy(c-S#Ob7?bR^Z=m})b0DD z1z**hlL{2({7?|l%o3HRO<#IrLU2N$YJ^q1D#}2ip|8468>>Q} zvpN|VSxC_N;dakrR3UQo!F%*h``aW+9{iNuia}~f*QGK4NWA*mH()`#G=e7OPLV#6 z;TsjE?T`VSWO&5dHz}QYU?VlcRguq~=GUvCzb;}KWaST7hk#@^Km1I|>(BW1&zR?U z_jaO~P!y`}6TFD#Y}M?n^4pc%+r2svIa54GI7Pp1I6-fEF|8+~q_5o8p83Y(@|KXw zax053u*D71uqzSmr`YR6mDOkhJrdz~N}|uAF4MMZQFy_TYJrPQhsrbwkM)PT$}b32 z1;+OqmLIZkZL8MUY>76l4!1kd`7B*f!~|*-hb`?q)Polr zauRba7>RfFnV&LY<@8h{#VQ-#%qbJgV7WnuiZ4Dcwcy{JzGdYq?}CZM3YwnpzrLIa zyh4bjuM?~2U?I5mEiR|7uuq!jVW^#%tC~+n8zmf2in6xXL)km1c7@h&V@3_k(o-ac zUP($f4qBWq!sbPnLs37<{6>G~&MVgvAp0oyC;^3oV)OUTds_g(VHu+++FOtHQa;Bs zClzTL1}3C6w7iizxN16BvrT}vr#Zk{bVXg}sQkG{PtwNAbSzRNm=OcZjC$)h-5PK6 zi|n_vN)|G(S~3PSOl+wT{RcT~zQr@;pzYDWr_W$c*aru3uDASP_upRc6L| z#($5KQvuBJJr&T|;4P7s&b1fEtZs2#E&Y707jvWO93l1b297jKVAiqu_ST^$|H_TFw#@YmUp&*(`3{q-P!6sl*H`aW7 zo^r04E)Wdgei+F7Y`t{K{s&l;4NWxmJ=a`@3>Ut4K-ir{G#Rq@NB0tr6Y5oDq}mHa zb40l@ugTQ_3@*yuRl*5vB8<4V<)sujdJoz4*!(0Uj5O&hsD0BjlPOOWAR6$G8(e@i zkjOFQoXtwY%;h{ZviW{|GFV@2n|sLQjqmNvWR}F4h41=0vaqLo%`LlOpHozSOtZew zpBT3u`^6=^eQ>Arb5IWX=((87Tj z{{)|vJD{m}VnB#S`kgId0q!kP99kM6`SMG&o41mQW4?3itxdG{QdN=tl!IFTwnVja zU}ZkaPBgXG=R?!SA20VfQK&1PgJ_1Qu44fViMgX=SRjYK|i`!uMga$6Z8 zhNaK2THqjkMsMn&85szxPn~9}R(i`6wO41NfIH+vB(_&lA9b{b5VkUGP8=GuC6U~F zDk$|P^1Ryqefe^;2JzyXj7LYi3!pMlO#ES%zjm<;5h{kR1)cg@O%J}TkYE*_zYvXc zpO(tAHes7eTRBt?Qic2>FzGPGl zOM94I3E-o514Xu#!r-dYaQ;{K6z+8185d9|@_&!1^uMG_LltOK2KW*v2CpQm}U^3eA z23evUylL=W0y{S8gvWb@txs*>xFdgqUReqJdKFwp1n@}g`)C!O?B4~9{UPya7X`gN zM!!pLPLP~M_lwH`GO^yi7ucWpdq$8lFYwiS3q(QMm2spo(d2nN9O6^6K4=KCw=N2* zok=mWSl{$W+uR=+<|aPb?_$Z~14ur79g9uUCJMDJ;!{)SRt=|nFh@`A&;D5|YLLqw zLA5Q4lml90K}dt?BK`+QoOB5`Ay(4d`(&z8XE7HoFRDLH5p+x)a~1H_mF91m z+4}@|(O%J)BzXLL7V;PTvJa&okl&(4o3SqhVMp1Z5w9FR(+14*_f&F%*NFx}M2eJb z9Q%XPnfL79EsweTrdBuh*7$yzrmIu<7zmd`48dX<^(c@BeA>w;TaRlxMH)SgH@cwv zj^JOD1N5npwU(IY{X8x>19I~bjUW&ozJwrHWq@pb=wPzoSA2oHS_LApS>Q7YErx%G zf3`M1z2lEcEqshhO1C>LPfPRvefpdBo#s2zGn<82X}#{cF%_%l{YEMjY9lBEiLI_G zVJk0D1cM-7b|q;Th9q7+-a9@t{+qOaaAwroo9gAeb9^IU)29f@@l~Y_VsXse>F-sY zA8-@4de-rPMT3aWt8=_i`sTR&+aG)(AXP?ZY8DNZ{Ya%K1dwCT+-Gbd)@P`5AO!_2sE=?-t8vtc*E=Xi*@>o zAbem{V_E)EYPKL3^5Pj{k;L3MyS4xVgP(>)GfF@2x-BO|e6Dma6>@|O4ALkzqD(Ck^r;2Dy7*TM#@GDJS&R2+T*EM?bEeFeJrb-au;V5 zZ0CfHuwbTWApypb{#bl?725=TO?|TJJG!RBw^_kN-Z054rTXEMD+iamGpB!EcLwXT&uZIhues&HT6ej*e6QIk zqTKs3bTlNvy|SK?p-=EQ@`2u(S_(*?<(crmFaT+hY&1&xgY3<8)Q2~VnN6la7XH=X z1)IvgF~vSzvANb`I)7mAguw>c zOv=R}9eG=~2_Y?I^+Qz6IIA-ER-;bPR>SV3XDG8T?27%wDF%@dE6k=!TkyL7=viM# zD>>g{Yn}1PNweJBUt}$>2eg3)v;ciFrGTM+V46w(KEWeftuWH87Tv-o;c=hcsoKeq z=HcPQ;LB!Bqas%670$j8Plj=yGH?rici>L{dw|GYQXX99EEB^dt1EgW!sB7*F_+x@ z$gkakp+abG3FDyWT=JVSW^82!GkyMYTf%k-8al8~2q$d5(2kdcsoV?yCJ7YBIH-hG zAj->0&`zx)5!+fGs~5Z929i^*0BFXBwN*8Z;*Sp=S32oH zMHk8fh|l%IM6Q<8K<&$ok*v?ibu-$0YT!?&s;dMKKPm8?wrSD zndn0?bo_cI^kB;We%ze!s5rc`d6ayw>H`cjq=9C*qppmKY|*f?8f-{^aG|R(b5DiAdftz0_avlo5So z$vNt@BZ)I?lf==h77d%*pneO{`$%Rp{f#DJ`0x=GgM9Et_GSi3+E)%SqhYU;z(79| z?`7)quw$#$EQR08_ea-kG`pGbNypLPa(MNqCzd2)0VPA~y7C3{`EM#!9eaTURJY$p64d`n z2yL2R9;@B&r21X?mV00{x;t}hxsy{rSX*jSyuHWNp zSLOSV#&~oTICA5YOl%UjteiG>&s`b!V>y{xpo@jZn?3O6$hw6Q^S(`AOXez@t?7-3 z)H~XEEldl*oRTg-D#L(C)96=!#wBC8_NiW37)>($}YOa`X=A~v<8P>br+1%uzY5_kJQ*9a=UZU*<&%&!liIv*xY zcBO`l6EV1He;}@QTqOry`zp&sdwN){(v7pZRYbelJ$df-yvdh04$^3h(|tWkHKl_s z^^9>L<%RQFr9sZLa8G$J5em3*^H0s@m(Tn^0&bOS-H7!YegRrH$Sm&mtxl2<32Z2z zg)1t*-e8DZ7dsX76y`4W!5o?Uqkl;zp>aqOcc9U!`SiSHhyUb2Wn!|1jvb1{R&-qR zahqTMH){RsT5%@XR#uOg0Up{txxI%Hn09D8FBtPgEH&rX(uWr=B2%+vT7o{s~*I1z=uqSGg+K@6NEVxukY1b*8KXRbHc+q!Xf!Si+ zy0LwTKfPTr{wj&?-8p6RgpuP!JK-SmOK82HM0o#?&-a@^rP;;EYL(2v$(qs@<;Gj^ zWLY&eeX8T6e1jpDrd=O*zqYS&`HYg2GyYF&_vIyX6@C796I8HRezOZ{0$tc`*ZYs}Rt%Zw(N<87M<6Sf#eMn`W3+kwr4^abQ2 zk?o4LqB^Nt4BBbw4#N3s5ol~wDKWi+XuuoeWE2{_6a-e{2}JAlceIM`l>+ z^qxB|3a%Sw-hVr>%O_&Ob3 zo##ZVlVW)Y|i;FN}(Tn>wh=WQRgu72!y882^<;2Os`v{Hu1iz*f z;;G1gHHS?+As5PJsB{M25#Ig8-lB+Aoc*OW&|w=7&q2#$^?KbyQr{Fu#cZ@Z(V9$Z zzz;r=C_}v%io)(2aK{RT59Jc-U=>Oa_@D0Ro3HnQO0^S(qC_1QQOeqJwrLD3X{en9 zCG4=t=iD1$FBQUr8QVV7KwA3;u~ktGZ;W+M{vYN65a7=b(M({Uyg~ENY<3$h)&0l$2J&?snSpgi{2U$hs6TU4*)9F-w>wlD(Ivl&>oXuOj(iWG!pKD&q zN}j;n-o|Hd_Dhu=`kp+YNTfYs9oS#Ph0mDpV1NFs8Q8oLDuNt!qMGR&$%+kL-L-%O zXPj61eKqiuRo1az1#vHx5MJ+4C4-N2IcG6|^X^mk*#npe5;oOEMQ%_B_1+kyh=1 zX`5Ynjfx@M2$N+pSBYI@-D8?JS_oyz22z2(jtu@prfu@hyqbIfHr zY4yn;tTRhwt>f9el-y+Ml>?VFM{DU(Sf?$|lcrF&4!e2D2UFruRgSCPYGzeh2ce!U zYxBS>+&JOIi?xh9@c)i>wlx2)*dsuYT#HC6CCo49k?RnNDH>>X(tjGuJbp%*s@qBZ zHE~NOZja63?bVsTrTbi^^o>9Mc>9OiQ+b0=)t&C4SHPqe88VAe|5Lw{U^KUCZ+D&h z6Yb(#6xKN5J%;o?3ijl)bEb;CU{TPCwEV!u8>mD-x%5a)GF>GJ(H3h4&qfoC*$6KT zrugFZCHdB;_P~~>3lr=AL2ZAr(BdA??yDk0yKhKr5nkB>6+_pl;-3-kf48*xxe{B0 zE`S_}Tsl7)^0`T_)sP|dH1QUdmQceq++G}=iA0N3k?5~oc>`401W;q08|6i z*^@m^ruvsjo}b$w%{=Isu+`^ktNUg7Dth*n{>xm=0Q@lw10_-15==PKpH?49FBuom zmh9S>KZ}LH(V@t`|2Ayc1mTDGe{$tK6!pi!;=YmK(V$fDtetoEvCF!|$KN;%0fkRG zN1S&S2Zh&g;7GjeXj@7+Xyl$k*Z<(7)31B+aGJ`M{Epn$p>mHhkzca%oLv45Xa8ZC zK;2?h$iaUU%73jgEb~z!{_f>pTH3#U_m3~y=5in5e>?ae$`Iz(83p6Br?4F2FGvf< z69sZ+$>c3aknSih+%dfUSb>~Lro0`$u##})!6@$gY^RcSA!g-!boxtToo6&L^-|D$FcpJ@l6^Yg|@~kB0Kv(N)RiH$tL>V$$>A-eGg$ z*9z}Fw{Vfs^isOs640g~Ve0(H#P2HGnw&!4RR%7+v;~Se(};=ntxf%uD@7mQC3n=& zNozejLN`O6b+lN`eKZtC#P~=Z2q6hKjMk(sO0J`UqB=!xZtVo1#wW1M?d0i~B|s}E zn{5H%11WcE9A*k6(+m4kfhXX_%o!;xPqdA`;FIjGfN~0T_kPB7X`i4<|01c;h0|Ix z`qw&evL%x;l;%~^zM{5M zw<{x0d}Pxc6cM~Y;gUVD*rup%RL&b?T00SmX&5Sd^j;0yKjnbh`0AqG0J%W*jd3)M zqX>sge3B^!4D~w&CD~3OKOMg~z;yD5Rfeo_^Emb4WB+h+rqs3^vQ(8Es1g#SuVg>% zQ0l%r->O1=7+wAI_(k?jvD2FZY0F!qqI+I3%#V}XQj z?@~QeQt@LeE>}}Evy|Cp?8(hLDsjvyu}f!tNgz0L8aPs6!e>W7=bqb!n2Utvss7D= zGt(X8%u#h*oxn6aKN<>-Xo z9AHlJP&Qr`PimuSnfp7qwei@T!>dbq4&{hhm>i={gX2pl&mYWOOfdN_le0)`GY?eH z!Qsfd!F=T(B?mm`#Z1$%}#;Zz>!{|o)+}ihZ#?*fZwi1;bOrD@0gFU=sa;r`SmMJgOe{VV}&(A{Nb4O z6rE#^oUL$nAP4s(z`sVK!g^b)- zP}@=E;pSO7;~Dl7(n{~n6fO4ANrdwq)G1F6+4HZoor?o8Vjq{u2bX#Jdj|?7n z9nR{~J@E`Z5{t;)lO6&Myv{p;J`0Z?)PxpU-=upiBk#05o2FuOTx-+7yeAMc?OtzJ?44o2!ogujcvVIqpUX>qxlnG|{ zk5KUP5TDg%bhfHnei7)t$!f;p629Lb(Z9Qr^SR+=!leDEf!^A1+}zV=-qZI}4P!@m zww-9|w&49A*XWqizV58{ZoOf?Jb|^Js?&zt=VKklRu?gD_#dUP=l4=S;tPa`(m5$! z#!e3uMK06GOSuOJnq+|W54Gr?I9ih@iovR{jhtTIpEBHTYYFPcHAtTwseQ2bN;!{8 zg!k20u5v>UmV`HN`fbk&nSY`a@`Ho%?ryk0o)#wU)W|o>A&Z&DDY{0&oIb11Huc3_u~ zC1rsEs~Je;koy3Yj`CHxi>-IXw}_!%uMLLf3gt#tM5F3?girQ`&b3L?(3l_X*%j-1 z*UP7+<1X)92ESx!T5c#ExtO~cTwZm_mN-JE3A=CKfF2cmf4v$*CIg}&^E=!CRY-a2 zchY{gpR2678@MVB99$ZQG~Ygr9#?;VsS%qAw;ucUh+7?CX}i>bjZL82&c)jAsGtFr zq(it~Y}CkfP)jnCW=ELGrJe%IE|UQ+F<16~5IF$)%l&yBmPhZ!U>gW$Ndm}Fjdb<8 z{HG-!ojcR$&c5_4yu#LUrb`7U_;Kv-w*{c>aS{70KhKeHug}g)=n!TY5%>OO2)NHy zDK?<-7F+Xh0S+ohpBT>b|IziG;TI(A^7?99rx(0JHJodKO_%$vpa8WH})XUg<#&}vZ(WIq1Sw#d(b?CPnKS;pV25Px^(7mh6nle zk>it;{29OP&8wtyR@brFR|d?h!t3^aKZ<(e4-UHa!3FTz4~vzuR)w&>=#3e+9#qpx z07|;>q}H5L^T-)PPB72l?YY7&1t^o>@J| zNRaJrV}h1;jI^TQVFOaeWV#H|qmrmngXA9`KjmnsFB}yq(Od|twDhgvlvjrPY>SrO zb;UxBvRTHSd2ci7;Tx3jx|~mz`TJWJEzypYlp5The%beHZuJHGMP+{PK`(N@jB~BL zZ?(#gd@~EVwyhKQ&*JtqKe_*$@_ltGd;RpbcOWjD5tVCE9>>!g=XmmIgZqsri}Sb^ zcXykuGCzyUT(qgEv#v=#*YWSA-AqN@)6e0C;PyC>GD~B|R?xh-*=^}jp ziOn(Ivk!>u17vWl?*f?4yAw0ZdRs9hD%(VUUCGlc;5A4S8T$3i%Ys1hFmD|K*VSoR zieEV~7hAt_-<^m>8)T`|10ma;(X-0Kbd}2Rw-aPDul8%rbaJ zC`TrYYaXp@;p`;wS+~IH&!QAj*H!G~JPKiW9w+4Co?9X|F7Bw&E(|eHzFRhtoFHqjm1@ zJ$!?2INi*e#7GgO06W^NDK@Pi36r)n?{(|NCIp=Z$B)fwO&kKe_?$xKQzer37T31W zSX_<%D5SjJ44z}VH+e=j>|=U7&b8@gqCe|(BWk}>=0TMXt8?qCvZf36wMV|0f@i)k zXRNu&IG06H?`G=Y&c;d4;0cz)m)v@zPWJAcx#|=rV7i5P)^$GYmA+ka5Q-7vJ3p3u z>&b|ka{jHd;O6b76$&Wax59i{6>yTTXW**fDM17rkb@q)=d`vy--D(RzgkEi` zQslC%9|Tz%wI0Q|`jmx`7E2&+!tD-E{C4j=G<#2(MR{0BITv_n%LF0B?yL*^d#U@+ z)BrPqd;}A5aG7Go!9~~1-Fg<7p6ECR@DVdM_PI5Job4y5Jbw}t7*GQGG?;5QC}3v1=3fbD<1lPU5=%d$5dmq?LUIStGQLXNDgy4S z@?N0i!^XbtPuw_XMf#;>a7;NG*keoZ>=)&Ru8iO=2Hk@J=axexclOAru^Kc-PK{y` zZFGZURjd*vnBkUlIvM4>B^M?Zf78tOrM6`&N$_WJ@;Up?P8)O4cY92vDM(=@UIKM1>n3YR5#Hvs>4lQP)krBu1l5 z&ayY~dvVNhoDGzM&C3R#c(W5^AhX|+l~QDW|A!A(Z=PEt$~!EBp*DRPVU8NK6QsFg0iiQ zM7IR=u&v^SJcgO8&CeR`I+3A0q#hI?oC^23XTFR~@GF_hy4u#|z>6At4u`cE&jFiM z@P_C1tlsY9D;1jc=>_JdlnD$-qT89lI_P|bPiY|J%Q+(_&Z2$I?PhLwk@(dk8hF9# z*xS>y3nLTGY~T2wIiadaKNea`ydX>KC)sMLNqJt$Z->)ng7 z16T=azJgnKXwV-{I0u{q_oBVG97`qy+(T=;n&oU+VvfxHhqu=vH%(yhjK(IPYFQVk zq*r#FkBE)_AP2$tiGUvc=|fxTdTb@!(;?xG%jlTPb1GrCkUYm3q{F2w%i5pIcllF_ z?@Thyd~#oiDH`V;3l67f6@Bpif@vgXbV^98w>1r}15z^+n7xDIYd>8*gpGuC^%A3p zvxdKS=dar{PnBY))p!KXdqbp}iNeYB>2Me{h8Nr0cQM9si`=)WlzKt0L`(C>RM^Xf zVp~!7!`!Ro7)5a%A&1eHhb}4^eXSauWY>oKOSO*Kt1o_&ajl2Zo?k{>nmv84z%!r730$)S(>NuHGUL^;wE(jlLO^7yv69wjjF+uj%#`=+`rP7`0=( zVt(noC+{J8WEKiOB&M^RtY0=-*-vkImEu`JtytYN<2l*F9vn)1P3-GQ6om=-y zL-M09idLvBmvs)8ulf>a{Z05*)#c5)+n>Dqn%&>BJ(6=NH<}`;V?!Y!MRSWGu{*2R zJQl0P&dKAIWr5V;z-fj*OI}OOxrXoos^q0#m94?{&TcV-HA3goS=R9lm)`5(k^)N}1|M( z@w%0}@>2)L(XEma`(EUAGxXQ_DMzjIw0~@)vk2MNsKA*yfsCen#tX1#P7_;Sl#yB{ zRkS)XeDPyIz_$%L3-%@8%%lAXBWS_<^|^*qv%h=$e}H`cxgG@Xuc9}iZ_6bmJ|0gl zGu3{$Ef8ryuF;L)L;w+ticR-x>=AmHhMkcEVb0$^^R>;HJ0*Bd_pNJUas;Bie4xD2InS|kGuIf;ClI|7 z<0W;lu1&@<+#*O>l)pXX!NPt&;|B9_WFI~R$aUraIo*wkKZG5Qnq6MmA*?nMhdwl5 zV0eg%YNpuwEm-VeIZdD+Iq31j<3?ICsb z-TMlM4_pa49##c~KJCvbeI%2lJfRC-)#^sC8Fp7Q*ijE_sb9VoePNOx8;h}(TJ>EB9#}`6St4(oU$$V*d2+@batNRJ;)nr` zJ^A7&T&L*32LbwuemhvNA_r@ptpQQ&(rX6-&J)VY&w9&4|QZf6H&wpZPR;lIDV?{+5Bw-LIgVP;|Gm!!X--|8;X%affpRm)vG z9r0Av(=}4lB(ijvE()K+aQ{FM1pb_Wn0a~yYiWjw3vh@t^H;5~w78snsBK3bh}Zm{ z6~86oi}=HUzH93lu2j5!+lTtKp3Q2UXzWySwX<73Nt(oK-JX-r=QM6fyJjGq2f%>; zk}X)Nj6kD&E@t$4-o%}9lgZmSU$aB&+&>IFj*3tOc>^1ZNNEpKp1{Yg*u(uQ?0eumNlm6Jd4 zCK=kWN3-G`xzxKz^V1*$2MLbIN6Yy`e@Yq8KT>LuW*E{Da!R!AV^?`s9WX=@ zd1r%vO>q6;eZH^lz#L)F%%9Ux1*ekSK{Uei>(x=2H%=uJ_DwqxgMNHgB_Cof@c3!D z^Kmb6G{s71j35VM?f_S|5C#4I*0JcUe{? zZL$507bb7$|LgdJD&Yc0^5uV#@%U2oPqYS@@kR(G3V=T*b^3gt`cKxxJiY&h@M`C2 zNKbpI6G<$_b(CWkG}@v%GGm$ECkEpHB|_h-8K?9Le5C&gcI-mA!0>R*BJ`CQ?haN! zgK95RrB+#@Hvw4Ik{6YlsZgs|ME9;J=?93T{&|(7y}4?`0aHH3E2s+1rSx1I#~PH5 zC!GBGB736x0y@KS|H&WL_i#~F?MJ=;-pm+{u}(lFo-Obo#epxa>p;vX0I|3lBQQ71`w{o_7;gf3xtdZW z8(RBf(n1zGmPaV|i)h<2O&J{S)Vz?~IsJnaVN#^nG%Q~2)+$3z%%E^p_Knb1REct~ z$$ClCy=o9E>T^k4Uz~3z@o^-4r4o_iKKkRInjY%EneVEV^Z4 z!nZ)avLE(w#I!u_V)o^6u;}Fh&nSJNMuqX>C17a7s*WCmxN!-3U3-bUO>x~u{g-)? z4-J1z2fm;mFEdL1fv*o;Al8}8fOmX)f5Pl4aKScuH6Z-3qIqw24AUwwtHR3Jw=E#f>RV7#0nLQ~1P{&w3~x zRjw%uTw`1Z1$2Q7Doo$^oP23~Y5z;QM_DF&SzPlzeRnTSFpsN3cHgtipEt=nA-R$7 z1z-1x1j?#<3wtb7qtbdV^ARU5yC%4(uD+Pn_ySrW@#1BkF5)BM5Bx&axnz_9bBBGJ zy#(m+PpE2*kL8CyKRqbd7;tT^m4qA~GzIo{dh;WyvA*5NY7m`v3Ho(QEk0uEj@G-8 z5p>{ELuvbajPTr5@$}qBHuQ_qW}Ld+W}&vHMY=^Af-A&kjuHYaJ^iaMyS-7x<(SUC zr&ul2l)~|g73OUY0_M++S3=f>Ic|0_iR*i=4XV2P$*l(jyxP<|wPpau| z+B*|5HO`vB!Vz!d7NlRxrj>uX{UV}Qx}fC#U_06x6jHpD9ncJ9x*Zt6rR-b9HiPKb zm}@2dv9&&><9;8^3Mp|(vmR$Ir^Uvsomo>j7 z=hQuFmSST@Dr%7NT`Abl!lMfEon@wEYN}EOFZ9= z(amt+`*H4RsC_N4NMwbKy^0d#Y~wK|zQb&4D^9r(1SVe2x8n5DAC*;oL?1J+%zr~e zIIJoEN&8eYo;gqY%BR;yg769>qA#Vt|84EsWf}7l?T<7HnDbP9OGM=DO5YbE+gAPX zA=Zc-EpJTtek(`!jz{v7lijfB9Av0j5{U{7OmYas(Dy5JtmR2Z&i;?*(>HL@sA!rrff+MozoO(~RiEI>;uUpJTriPtLLhi`@j*=f#TzZtsd zUmq2B`Ft$Zp|g9-_tsr|C=a@yIaAX;;kKTmS2p2^9`w3LGv50d>G_f&23bjRO{Y zwAhfL=Ns-`9~h#{399gWV!sn;l#8!KNS1*cFO@FMDIKd*zzP9oC2n~@o@6roWq7@} z;0-^X+NA(EC_U?ahQ?+cNjr_zRbrefWvx}nBDS|g6EXS}`~x_Hp%yOqalY_cR<#Ve z`P&CIlKZo3b4|%!-{Xa%>^MJHd?N-yd~pE};#HKeai8CHCmG-ZC3n*G)QmH&XgUvo zmloUA<|vtZmtI!)4`UeKR(rXG75s>=5NzsDq*->j#Ak9=h|I_4^=o?Irz7LAlu(}_ z;t-#pM8@}uJ_&kxO99KY%QyH|{2u&%Ji6DO*jAzLKOX`!SBZCr=G`Vmb}3ff(x=<) zXRzTiSAWiNWYJx(6BM87f<6B;>_(Ils0I9CUgt&(AymxZA1w+4X}%zHSv< z9>kq^-+-tHT_1kK;7#Ivb#CBs2t4O5nx1p#I#{xB5Vx0m@5^~-m@R()@~dlMk)D>> z=b9OiWXM$!{@SDKZYKjNxvZ@xqU?GNNq(B&Bo}+c=>7a(bCW#)$4!u<5&rbMBVznE zGq^$;iMl9?dC0++RTaSmNfC1bY5&tta{)gw`rCH-K^EK3wOf_#SsvT^_iFEi6H!>N z(jpXQ(TP~|CiyV|wtOt4AeC8&8@7KKpoQcb16Zt_QO^#>*hHT^S^dr?3?HYV!QZB+r=yN4$Phc}eh-bu^crt4&R+oS^ zt9%7)Fe|@eiO86rf?$d2U(k336ct)yg;D}kPLh2S40r>=Q5(KY=~=_(Rui8D@$0bm zs}1`4$PqD`1*xd<_i}29QhRXZk%5lwI~Lyfx^@}QljP8 zS<5))lh8V%dCUPzGX3Jc0Re7Az1TawaJfVAKDp0*SXfkid@B|lU_WK!HZld!QwgWC z%$>cRPiRhOuXJSdB5jM-trZ8oC7z0Rj5k_vr1L=g3yFLKGO!<7@3;^ljld?Qg zU!@OZ+8F3zZXkN_-O8AZZ*qNWe7IN+jI(TwYY?lYEImXvNg8R7Fw&#n3&bPb_Yg}E z+Utu_BqL>p=ku{&IF5)T-p47Tu=!}mO4DX=D(QiMqpdCu+=ozQ>Up;29#YcRh? zTtt4hFg(d+c9zOS9$37;0E#p4q`tZN$U&?<`G{K>goF|j^L4qi5aK_XAvpdP|Lm3+ zpI@TSTdodnA+#qL!1>Jq$ui8I$7#{`q(NzB15nerI|~iS^-wR-Y9>b^^B19rXb2|_@9^rv=S5q5 zG9?@Qy=MR&RDh*bcKEp^joA}G4pF%uLcS6sA`QLb)d)z25NeOJzGBf8tn6X;{@vB5 zlJo>ssFgjv{sTLTG%s8Y-7{jT(2c`mJg(c@(?PVaEJ-D3 zUa~R3$mDJ|xY^uJA?;mhx+)IA8wie7jME(bNy#m_X1QEM9m0$b6%=hSQIX6bu@~N6 zCp&c$e8J`3y@(#Mhqf{b-?$go5&^i%@?R}AQRbpx)OhQ5c~_I7!m2~KRURPcB;nbQ z?UPfZITvRMaY!)lWkq*>SWVcd)%zc}TKv9Q6-}YXkGQ?&L}%h%Uka9?T4XOmzK$KA z>rb7T-FbOB3bpX-@3loG8tH7|Fn(?6n32ELmt(|w+Body5&C|H;W+9_SGx5y7_EL% zq3J+oV4$CWo12O7`x>#cIuAwcMX!iPc#5nA!|QH_W@MY>l#LewP()|OS2V`p!04jo z#pHD-g)eSCPv3wi$06})CClodVpA{Dr@mvh|M2a{dkp0q9C>0mC!7u9Lh> zc#8twcYeYnAd0&` zTm;ESKdA;zf%3fCqy%Asal@K-#h|Hu!ZWdDtA~MSYkPqhZpiw zXE)y3cna@@B`!S*`UL8H1%$+>_q~L?CNrD?sy*axVu+SOPf^N`=x@LL4xwiJu-G9l z0@<3~)X8vI&hFyRL|Wy-XRn{HYwfrvMlAd0wEEIc7Uvyo!SisKddk zfRN$yY%D>1yWk8PJEp;tuYN}FvI_Sf2JH>ZBzc2|@?sQGG9cm+m@->t5qOb^0@aZ4 zK#eR|r?PHWP;IeU%}!Ge#YpeoL4>}!$>H z0F*X=6yqkBk9?dj3>DH>xk z{X7uCpxLXhdn&^cI-RwQwPgCJEYcysdP=i-zgLpMkce?&S_ zrau?|l)y|nE1WY_tv%M3X^yx_elr?_xXLVnyedGjOE)Dim({JGLS7h)C} zm3i>&TmL$$4`k2s{$s`47 zHE1ztHjTGNXF+PgUd0QqT5g|Fd;eCUS5HqCz)5VgS&{8wnNi5^TT3 z;v&~{6|+0}+!wV+{3V(&8iTWK^aZ#A7JDJQ#&XEnzmXn%t{_>%wFWrEbReDus%+y| z?rMA}vnZZSmw!*Dp6TW_E-!h}vOyiocO|$i8YmI0D73HMbkdT-pLN;A5`4L;;TbK7 z7UXIHG>kY=h?P?++WI4{zOH^VY@waqmtMlXxJ7pn^sbd4eVurYt84^CXYEjs!LWG3 z2-yzaBDs1cmV8ki`^&0$TU1Kfcv`ZO#T>2ha6a6DgD-!IGxxdjp|g1lB_5_i)6qfq zhf4g+&b!NDf)?K3LyJsn94hyhFEQs+Q#0#VB!YM6h~hdb8H+`wDowl~rl6Tr5Km29e%6H~ zJZ!F8~XpA$Yd^$o&u>;YGjEd(08@9cp%%~7ASQuHdxAJo& z0DZEw485ZqNPsVWPU!hDKI0f1;J_{K7$=7C>BYx*lpRO2^;rTdezni615#1ZK4m?= z0#SY^Hq~)<2ABJ4b1F@xL~{+WAP<+ls*E}Z-*lq13(N)kb|cXz|K|KPX6RMSnn4d( zMFIGZIg*XPmxQPw?EV(;x;Pt>?ca^(2jkw>6ZUTRtFXo8x@I^Zka^@9Dl2d)g5ne; z;~e~w4CsIRHYlR9ABIRI2cZuGZ7h^5yMMn}2oC;EaT1Xn=~xY8Qb9fcUBA$m9}WhI zyPNhr63kv~c5+}IeCQEM=t6tDCO{Xxj#KlVjL3KpMPzjx=@M~4gu{OQkp|fbMiW)o zsYNZH1YFQqkX>iTJTwOfkz~Dt7t6*^tFUQ>9WcCoRS(^ytYe6B)9T-jKvbIH^36TD zx^-MvYEq;l9_C8oHXwYZ2Psu-sq0rdOXkvQ% z0(vZ_I&V%sQ|cw>e_NZ-QbT?AGsz%i)vw~$ZORMKN`?v*^2TkHhqjm^%RSncmBIqj zb9A6<{`O|&Ay<_5x)FV+A;l_PM}mZUFZQBQ;s6-Ezijf+cbNQ02TUNRU8#+^(;tmG zliXXX#q^M(H$y0Bn4=hRwu>+`&$m(}Mu-??Vm=<_A7X+lE#kxm9x{wn8Dg8KiD2=y z9A0aS`d(NR(hP6Tr}929n*6cEskgLoI~4TDF#vtnQ)R)543^NRDHwvVn(3V?c3ZRv zTmxuGCP-Ik>xX3+&gq&ZG7ed-Z?c@jm@Ja|4gbH;H+Rbc~E#B9h@zR zMPr%FlP{}b*+|dP{G5{oD`j9U| z5w+vplfRY`8cicOAc}T+CYjTu#HrXVC=DWJze^A1rK2v$ycXAGzML}sy3+K;xhVjt zuH9e|fHaDc*gk|_M3X1Rh*x~n^!?NE#4%F*B(~>8g+YJ!-FNy!Zif_j_I+}ZzUmF( zQa3>C+^2$+i;oOV-jIFzU$hGJ1<328!0E?yBzO0jVjZfuISBv*2_GPHkA~W)tZPyO z9tJ6QmN9_&U8S~i-jSkch`rrhH^oZMRlPFXqJ-Kt7@K5v6H_{%@bNT)1}wEKo){(E z>!rZ@?1c$P863SQnLQZNz6tL)AL&URjTnfnACUw-7`ya*0RSEC zyjt6#iZeZj9HnEXrckT^qk1T=+l!yh-dcv^VO&WMVprkdcuAW|53iK2?*2TiAxwW0 zu10kwxefe&{LqrG+e5+aGtp5&hbloi5B$UGSO@=BRt?zoN#|3|r#t0zIVWV;*CRjD z;rU+PWs`q$j!1A&&N*Vh{#P(;*fkreaAHBayVgr@%&0EXjJ0QP|~lh zkP*y|bY+h48MJZF;STa_nE!VnZ6!OAbB>SX?4*Yp08zvGihdl0bE{B^srWuVPVL*WjWDsTS)wvJtAANzOj4tH(wGjyz z5(?dn9;==HH-A_|kWGXp}saxHz-llnqf%B3xsuphHph>(L}Z7SAOo@bPxqO`u?{Wp-B0uH+ezS?AF`xVuh+V zt}^68>S#ayY|-`GEo+0zvmgPR!qNIh(@MW;p0XSqvb_r1d#<%|Z_)hsEz@YwCt}D{ zQ?=IL(m(lXDZ0=n9B5c^Ne*q>Qg79gfv-Czw4m2-MDNxOH$0)a_e*-OrP%t%nu@P8 zU!4!x%-0(vq{Z>F+x0v3hxs{apy8TP!%#x+Rl^736XdL#>Dhuk;NBG3cRN3ulKd1i z5!4iG7PkxeW@e!+E3KbK#T!5Dg_c-xe)tL$UymnWu>$vuaaYuSglzS+Qs=n;m5<|j z4Cu38`71<`EfpL$5AJ$Qn#mL2%`DYC)PlQO9xADSd&~Bu7!qEV!A74608#ghOfPj> z;H*ZHR{E;7Z83LFhwd&;us+XiReaUE%WAInB3DjU>@xB}CWBeCyhY{JHL~o}w>a=c zj$^Px+TF)*t-r4V==m41gvKlvIri16fXJGc8OD5ahK8&^Nya@Gv~;WWXgBgry_f=CADx^lgFdWJ{fV+ zKTp@o^9g(by2m)U%uIS_Q+U6l1TngF+S^bRxouwDd^_d3b%)5SjRtm z6Cu&*;fAP+D=c32Go`-sLo~{t;E&_DZYXYi<)dpIxpoT_3vBkLwVLOJSYCu51sM-t zTbjgup&zGRdyq#ZM-%myW4h#*JhfOQo&ZTw{5gJWRL42lFYJHQ0Mq=&<%9b?82C`7ZA) zli=Deg;5FNF5kNzFq~o_>%8!VLF1-SlpEN4ZFcaX>z_^69f>)z;{du|$*DzPDx$^Q zwwf%`b+#T;1TVQq-1)HOHn-~1W7w8ldZBusaneM_k)~FFTUD$XEu4T}2S1~AU>BVM z#*b~$QfEKTcCFm)ezcoLFdS9X#1-;C@sX3gyP6oD)j;&@t<=a_Ov5!1M~!fSMGY-f z=WBG5^0S!Wu;M6>YPoVi@SPa=_|yttoOHv64t>w%k9p0Fq&t3x$J*}Ucm2H5TnF#d z)9nc~V+|+j?N+X9DK^BbIP-<+VD|}mx%16AS|KP5Ci_uK=c&F3kgE$1E-ChR_VqAxW*ldjjKI;iQ?4J zD?5*rq!ov_;SpY6yK{#}*Y1S%;~BW7aMIS<#FO@eLjJnazqfI3vMZp7&9B~QkTffP zt9y?r4^p9~m10-H7P z|G@@@lK-0nEAo&17&^E3Zw{u0F9^|rTZxPRU+=8kg#8-@{@?Zb`=uk_PNhYi%YRTM|6fAr zWeb`R`rkat|MgH`X_5Z^)aQR!BN+I(Lkgvl_EMS72kG+v`}`}9^k+0^_vin?IAweM zs87@-2Z8c(`M(IMY>&}~JZ2qO5X!$IEdLpWzfr~PQ?1ATzrIZL7{AXDxjy}W#5?S7 zvFT7KL$a}7?N6lmml^-%07kFdrj84v%>TFD+CLV2L!UcFMn<}xYYy{kF6smZhZFS& z2IDY)y78E;{FF?C`=tE0D0u62nY9LX_;Eb#_n$ow%^&7u&?o0M z1jf9BCx5P$NKhf7Z9LO`NEYNd)cD2#?)sK!^}_N&s@SJtG22l@Y0}$TCyP{J$Q=8? zf9M35@;v4H8=6*e23>x>I@Pml^*pTsqJ%^~J&>km5|F7|$?HP_ji`rOCeHXP6w7!1CrdsF_t%mvVKIl9tW>3uBbc5yJzS}N+Ed>1T{oY;V$_cq)~J4fxA zLA8W{lh^;-1<@U9$c*`r{SSLDGdI>g>TU6Q#`qU2yK%KI7icD^>m`1~9A<(rm-6#z zC$=wk0*Q3Kk~jBz8IQnEH_yB0=kJ`GL$!DEYxE6Oif&5hOQqRI$vpq-=YqIXfLV$G zjnfMh&NSV=@;@~AFw2?kDx^w&?hEnLOo(@GNwpdoL~~AjNS;<{R(tdME=RbG`_E8R zFA54+Gv(%39jvZb*=1xAP`xt7j-%rKtG2ODTZab|Vt*w+w5*!U-Iv*XlW({1Ax)j& zWTqkRU$%f~vnpsSKz)%Wku@Fhj$DXE9&JYTJm#HeQhxE2@*B01G(ZV}=_*SfukZ=&$=3r(v^3!EhS4dwLygv_h5y;oSPBZ2rwPA$94A=>s8~SuG-Y zx`ytpTD~Cu;jCoJ6EfwK^M&=9W2}XOPxN>|A=V;R4J8%3A9;EC|Mn%Vduh8tH*?i8 zL;9^RJs4#PBX0|ci4}j2wgT2Yf%`?B^L<)myd8-oA-u(oOL($YptNzAnh+nK9d>l& z0%JL_LC}c!$h~vh0&+~1Btu6r)1DCM2=VjlkdTn(8#I+wfqzmNjX;`u$rf9@<0kFK z6?Dr^CI*c+t#Hv5V%5k@tmq71M;1-E-aT9-64v~eliqLF_dFK}^ko}UT#EOy&h&5k z`-xHHkTj&R55ETPq!8BilYSz4!R{n3^>|f&o8KmnfSO-<*hHAS$d)xvX9VM2 zhgn+%Z(8Ym{sqG*b3#^dkfO|wJl&qS&Jx=1 zQsz3W5CxZ~A>eAp6B_0TFYTAqlS}f! zvvnL(Wyy`|^ZhyN#qOiEv-rt&=T1j0uZtGH*wIb*+X&Lfo4 z`u!MR7CiNbh0nk5acZ+^qyvv*C5RhXhyC*3{+VFRmk=XzwZ$8{L3P;lGt)*8GfUs3 z0e+r$EAZWCv*liwDtsZaqDD$}u%28S-$#-*C zd1c%v;Wk`->r?$_=jo#U*0k#eXrmJ(1wG8j_^0G*WK|@7Vh3 zWBTPy+o3+-9-?JJj>%!LPDP|BZ@-OG6Nn<3bp)(aLRt23ag3ReQ-SDz_n$-9IRI3? z8`S4L@94<`6Dkb2LSqpmKfR~Jc6{9{!L>$A=aNF%5CVSnAF)XuLN>!v5t$DL7bk08 zMn-?u{nP`I0CqL~XQgdWUKBiD@$KHAbVvyCVbFhkxhmQIA8%wnQvbJS>f!@+<7ulA zqX{)Y44 zDNFA^1LJe+vksp>%tLpx-sMsO4!OGphm1FwB+R$E;i~(oK<(i_ewBulZK41nZj@e76?IBE>n^OtICNO~L1IqKWv9jgPZKIHYGLX8CV{Fz-{WVdu)&k3g|}gWpMCL! z_D#hHzAoBd$KDz^C5bw~OT$W1V_VFw%_l~JE7?V8t>`MsZF`+0EDR-os^Q~`gYXBd zMAch)7Jl4B`Qk~YnO{5X(kIP&phcc7{44z;whs~edT{?ixbNmj1T_80e}pDV0P^X9 zoq(r20}^wKnnQhOII(?e`+tzb zWV^_NB#DHkGcQ|V@A40Y@8$!xMFxdrP@d<>7dTGwn?ob-OQ#0-X>YBLhxMyVtL=`4 z=cu@@L~xYi%P>%CIFgW}O@&!2IR3;{9bOZ1A0vHzUP}}yU0vF~OVqd3rUV)0yq~Rb z)c$V&?e{OAj4~5vj|cO==7KNxJJwk7YGkI=OMh3lWM-(E3dTb1iwE7l06n$jkitzllY<~Ed!DD>e zT>+`S<@_9S^KHBim8Mxw1#U0xx;)rzVrQER`~fKzFReZ$S{kb*^WKF!&L3`B$7YxN z*v+Y^h;JX)#^7CXj3RF>KB{qk-CV$}nm?CZVEyO()Igbyo~a!`+yesj1XZ>;H*&rA z0!FNWIs>Y{-te1hW+jb;JHqO&ou~HRSgs{y)EgQf)N19BjK6HU7$fr2 z_Vud3Qe+(fR!4s+eQXLoH}O<*a;{hKDknhgF$`;N0ibU#Lxkx9&z zw*~hw_p5POPqh{{#O=jsj1&C+v+yvlBadNUC*GJEnGtBn3|!AUhuF&neHix>_i1{1 zP$|tAm#vv=@|=l+%NsgoORbU%ZFvY*e?)YTJukCuH7@oJRiB zsoY8T?;6q6H=t%bU7-RfS)%8*0v$|6Pl~3M#Q&H$-)ggG(>wYoYGTXhS?++R3LOg5 zjgnzWHXvdldR=$Xr*Stvr3Q1bLz^b<*BwB`CheL-dh+d(xRa<4JoTOI>lLcqH`}Eg zYZO3O3jGDaJwt-A1LU%GeY==~11!~d7r7q2_8S+c)o?0!D*1T+$lS;M&g@)v*V#WA zDPAg>`&4YT)>y^7f0|MSMMfQRkEyuwKX&X5oGf7Gk0Tkb76!QmoRY=t&h0z8nMj<^ zF&uNsV>b8So_HKx%i5V+h`ff?-Psvf#F9qaCf0xFbB{yo!)FNlzI%L%n>eEAFg@4h zZXK#*b|R$aV##lvmjxsDa!!m3bDs8n{>r0JY-&*xl(xS{VNRVX@{tzkPwtt9P*zrU zMJgrA$;ucpID8$J^m=JLq_%l>uk3d(uEWSkgce@$#;T;6^!M#LBREJwYUAe#I@-wjL)Cu!@>Zr=yJ?;33)Fh+;=cyU z@jn^~o#_#%ynL@DS**axXX9Mls#4$>n;?#!ilmCqQ08%jsJ`V=RQyUah9UB1OqBV> zcF2dO4y0rA$JVsG;r(}@!{7qK$r||#BenEueg%FDUjPlvg*x^-<&8({5bF4gBVxf5 zHksM1r^@6b=^9Se^1T(G>FF+-*9&Zx1R31K&NW>%JyJQd^{(l{Op;c{v4+*<%nBu{ zO4)wS>fTRiN-Lc}5d`}X^)*ymvrO&j2uxtBa3CEwIrfu7e&9(s*9{?!$i38t_Qm%9 z-w&ljK*7^ zjY~oUdZ6{NB`qQbn*Pi)6%lb^)aa2M6pFTHH1>P@=MUz~VRJfyK`^Pk&|ML#U>?xxj^_f##BPYkL(GWKQ~RMj0f zt?qDb4*ooHofZf5w-TE8p9E8_^u)0$#gj+%iC?TI-22_+MjCAXJJael`I{J;qqlZl zNw!|PLrRwI*z%zM*7UM3Wdi^eOP?P|yEP7R-LP#_hsYvU0numfPL*Q)R1C$n3t5(^ z4&=`^YhBRcx3ed%im+M|k}sUqp56V9gnIVMn2F(Sf;``6izeV0v#xW5V?cbCXF1)cLX8QtH-&&RD5M=gJbRqco0YohIG6yS<*bmxe10 z^t)y4Cu24sE+I?hdDA0y$fCra2Phogd!1dRU8%fEx84d54GoUQ)qY=c%zu3Y`2amq z!imOhHmK|O7Lyj`jfBnoU+7;O4wu^Jw z>!(lmxYVJqi%1Q$uwZ1tw$QX79E%Xw{C>iCv_41L(;=>Sl0d@kpc#bYB26+7tI~A8 zoClH8wvY|inmqf*$Dez!9IDYA$O4ll`m;2Nb@b{rKEzYA#+_2uEuN78M-t#idm?l3<9F#8Dn>+O%46q)J)1 zY_=%&Xc3Ocmhy_{o{4AHbEijR)2T0U;@>|n$OBv1RhXmmmuzoj_XdAK+a$dTziI&) zi)Gq3yi*iV{_pV z#dVU|f`a5r$ho7>qnGFG`Pmb8v*JJ@JIhAI<{rhSgnkXj8y|ZH{kWwUap>oIgzHFS z#YjCwS=7k~Dy0@PJGG}SbzCoX8UUKQyP0}YN1~xj5_V})BRUdIh50C7(>3+!qb%$% z?1A)TF*??JSrpTb&+IK%S65Gsr(3OQRDYP%P?c6U#>Bk(;C}PNXhvxAPSDV!m<;F` zROWg$qoT6?Tf4rV{-(n&#?TY$vi!AJtJ@&JJv%8F6XG((0xf2bWO5xiLGI6p@iw5> z`6ui!`YY_{K^RKorR|QEHB0om*0}01Aikw^)X=HR>*O-6q#lnGPqvY%@qO3R-^kw6 zXp{)J=~Zz%wG@tXW27djm56n zpK1lz)aBP7%@nS3kVJORUP_Pv4K)x4_uYT$FKQEa>~zadCBfV(nV{+0B-Ctq$i__2 z`w4L9PQCt7rjcbVjo{VwJK>tXRpJ{vj|jt??d*kme#-8hnC^iSW9fU49Kir&{923X z)w^0Y)ndfb3?%F6(N~u}RW{)tsATQVIJyVK-pej!;rC2CG;YU0F3jN$Y<==^D~Dk! zwfA#yGI928E&{mEe34UBFUr%WPbE7gCg2lO4-I``uyGe=FEf7YOdvR3KAB>CJMFA3wIgl;yjXkfhed?`~4R=G9vP zUv91r+c)fc90ZP+j0vRC9(*PE9!AB;Y^YMAPEYCnKC9ZMoTtKmV^HJUEjJzx!=Ogh zsQoeDSry!)Dd0wK#aPR|u{52aQrHhY-m3X}bZ6;Wq3D9JPi4uq6n~i0f$XG3@ba`a z=x8CFzxP|Kuss3l8bn%q?vaIJu1vHn|Gm04&0X%%vIk%EGKFZtVRCdj{oeuee8>pg zUTXjVZuGHbO>nlV=;fKM#6q5kP@2*pK*&G|Wq3pb#vU-E+mb~WrOZLDo+n+*Ae~wg znV8V!Zb~X9`u<1y%5_MnQAm~ck{`d;c+b{`*LrCoCKkMk-*&Tg}=b#z&Q|9{? zzGd!yxMVqF@LBm?+U8qgB6N>*9yigmE-Fd5&D>e5{Mg2Vyy|*PiT@>5w?efv_^$S6Xz)^O5jdfIvb@Fa#^*4YtF4D&(e14`OS*j-7YkZ$k<}(sVkNI=jmX>Ic6b{X zf$q94?_|?!PG`y(*+tNaq(_%9NE_xa_O$T=v|^pDb*mT16xO=n%)>TQ2| zMvIZSNl5bkvPwT~s=wP?5L91Bz^^blpSkgUJJlYZXh;$%qg4-?1JK|z1x&_d3!Yxvq$`s|*howPP$9-(*yK8#KUOEL zPeq{8O>gt+;-YUQrysuL$p7uuV<*s+i#T_u@q8mLv2y*Blz9=4W$uz=PR!G|{?rYd zU7cmzpaLv3i@7FY5|1M_i$bH~dM=uy*R7O))BdXHMc=dsS;!!CnnTbUpu2zkGSL&Spxaf-JxcJS@1iD1n1@YR; zpu{!3s!XJPIE^ADwMqEN-hynJ>(vJrK%}LB4mfiC=8UB=49CetT(8LW^p=kf^K{Ib z-z%3G)nFB~+38KU(fQf%njR@tl2%f#9O#M5NW|^&I`@9{4F(UV>1s6_7S`0$Ni97^ z!P%;**`KDlJi=9Ask3bK`!m|tas^-PQ~kVFtc$WTGY5J(1aKJDz8eyLIjRJJmWR#t zPmo#?Ol5_RfQ^F~S%*@WLaxXm2DCco5I;F&Emqlvp?=6iEYH~SIo=TN84SovfKk)@ zBE`(lrDK+7vgnO6O!75*jx&eT5UYXZZh4`)Oc_ptY&s31eq)vGi=QtHK=B7Z}rww$kP@c zWVnM@mfHQ2Oqc{Yj`|NbUx-4sg{B<~-5H)B;`Ce2SE;2rU42*x2l^=dhBccVt*B-# zsiNnyhH(!VNDf^~{XM4^p8=4T$b)UC`kj)>#5~R@SUP72H<_?N17!T4&C}h7($Bq_2HYe#y(4iOHH>) zGutLdZ-jAk$mRSH{Ju{hgO?X=bu6Lx-r?0$pfhB9-*S(1x4UYYN(m}~yE`w1CjHlg zpG0+Z+;%N2uy=15srJ|DHFA1_OHFjjZ^kZPe45ee>klJtD4~%R{NE3qL$$x_2yB^8 z@qz|%{QDdMC;2k4~Yf{G>vbqJXO^lg=lJCV>ZpG08S}Fy2LULUsi- zX}o+Oj2bfyGeosM(rTC#lU4@L+#Nxl7S~=M(UwAzW4|laGHz2tepNRc95LuLDL|In zBIs2zDryjjIjs)}qNk>&bXcOxWwS&>8!IM?+T2^lMRv8v@kH5=p4+C-vzg5gu$#<9 z4@(FLe3O~0fEF4d-JgCz3-9B&zm-Q@Tk;sLB5ahCkO-Q*s78uNW^rtiaa?r#$3>!g zaFG&Vj(69Vb%Rj9yxy?~WVF|G-tef+iH8XKG3d32aHu3+7JvL5fR_`|o&M&CavjD| zGI%{xFBwlig%^?plTNA`@tOpJ9&p!ynpwpnvSRHQdt0HVx4@&<5@y?PvqfE^;Php7 zN>=k(UWcVtE4456!hJIcNj;>3ny=yrGN~Iq`J|Hh6oFo{xwn3oki>`B_Gs^#w4gVr zXa(52w$GRX)c5&r4L8door&bV&)e@^bAb>$e`c=qo@}NXQVVoBR=@Te(25C~Zsh(1 z`MsigqejIzppUn}=|HVDnxTkG9Ao+G8+rY0PQUUefnP|b)A@;T=L;Jx%gdnH`jX=& z?7s#jfI|=fm1oS37DXR`W*#&kynB?yZRG{{DP>0Oi!S%=UxwZ4;Az*kkbwl$~SL6>|KA`um|lqxxLS}OI+Hy9xHU@*Fy4RxN^QGc7)KpKs`ZX!ChyX z9loAsx#Bp(w`eW%tFfFb>0&%XTcakc3jK+>NfCxNdwQtGNa^vOqV{&1!8XKJ=Ys>r zwk!BLHz)O?{r27ePB|Q%pXWV5@@WCw(%O%nBKv<@?HZg2xY-1R_YM1!64eCNhNr*T z>ZQS(D_}xWQbt~v(^!QZk4VPmyUBx8rDA2t$B)^kkukhMCK~Z2yxCGSUye>WmLSqP z)=4@R zs5i!ikg&)w7;D$W#(>;rs%bwFu$#T7l#Gonl_Hf$a1#b{R}tlms_3V_{%E9>Ykew{ z%$OE)4l%zX8ly~S6L}1iZsam!Tn{H|6{^joA0qE6iz#`t$?t{ugFT?IkdPQr=_J#^ z<=*JL->jIpj!Npa7L3hth17#dwNaa!cr!3)@VM3V$0nBUl}g5@QG=hIC%lU(W2)i* zq$q$4gwIYQtmx0M`8G&v>pn*^2V$fYUdJK6L7QY{BszC~``=Yb*^|)ra^6Ct62ol$ z118CYebu?Cq%&j9dhqtU8h-_pnO+;HdZRFXitB~|bJ9Ff1u72h! z;_V$F4>Xg4YP1{g?bv z!oyo2dGT+_pH3-Yln&+og`zzBD_`|+%9V_fhvd>fw;c~l5+D8St^8H(a%)`S2 zfYv(kg+A4AdZ_g1c>jB#wMk$y+E_pb*Z zhcDFXtYE(cx~Ibx2ABSREkZrTNPAF&urA3@n?NS%K5HD_c#Hn$<(aA`!tw_8oxY3z zZNq)$zh~#BM(7$H-3?b59{qX5@OEbCa2odp(My`3OzOWrzvF%eM&|*hk*uM2o2Py3 zBQVKUEJolte}5m82@?Tw&C#XlrSlHgsSl&kF$SbWX^??Qh2UGET{CRdUAYu8> znS+jSM&b6-Kt330D22C>Q}!Le#XywS{@11ZG(JX8vCT+n$3c3qhH}!!(z~%=QZjv* zG1acmCQO;K@m0)|?H5OMSLb9DepUwsGJ*eg)xR)w&%g%befOm|0@hVV8o~`6T|#59sGAAvHfrG=oGA zPxq%{{QIfoU#-z+_HHKud)g!8;j~zvj<;-@*BFEp+}=Xqu^QqE^HVPIPZDvG@eF-G zXjlw;@}ECYB3x+vPeM)#n{|4RI+v18lOy#QuRWWIYyC|Df&{pGkGI0Go8b^`{_Uwo zRlK{fn52Z+dr1+@FTn!;W!#bxTfXsPx_>fbv!uTxtnJxfU-AvceY<)CWiy_-%T3LF|yB2_cV!Xh`xK&LQf~k>Y(!d_K#Hk0RZD ztq0FcM>87ebXFQWL55P!6iX;+z7gA-0mEcc5NP@_#H5CLk~qEO;`$+~|5)K_vMpg35vmvgH>X&mghy zMFHMS2>kNlxFV@c>l$_P3Z@M8jn0!Xm0nzEb(w&p@e|P`CMM3xj5%l-UYex?VRwC_ z?Z!B3*BLr#;N*_pJzBEq(aZlf16hG&EFMUnshrv9r=42Gmts1dN^NI!JSsGGhmorW zAi*^P&2Qzl>U}Ze2$F&vPMXdtuhXeh0cobbsu>jcH#M9@*aTtCxZsrX<;7MDM0(C) z;;dM3;^6p`U5J~DYKi2&;Ll89j6hz3;nt~Vbt3<{uRKs~B;J2>*ekk}%s&5y^|N|k z7oXiBYG#~!X5hL)|m%p)PKyr?7t(!*LbDW6P`6D!gSx;=ew_ml z!PKKUxNWBr?+sl56ap~`_DTd=X>E~Yw(>1cCkt4xYgM{Oxv4x`Jc*gqzvBSQF$MmM zj$w)OzzLdc8xIWR{vCOr0Wi^U{yO|&p|2GKq!r-WLBO?-j*oMCx5ZmF*IG<{F#l{q zRyYsy5BB-beJelg;63o$bFK4#8A%cOMY=y{EBxnd+er`9pYGJZJU_rz0>`Uy{Dcn< z4A`Zegi}+j!iuy=$;2`ZQjO(BUCv1{@6j}P){ir(9k-O(p?be`J#Bsu+xOn^PgfcG zhs_E9wF&huE$LV`?6Uu{EP2Ze06(kOGb79JXVuJ5C3rdN_0Ph4&<7WG<63d~SEr6^ zmOzuU0!3!yyO*YOb@Ai*OPWd5TW_#)2cm$L@`2I0JtijQ&C;!=;5wuFI!`e3Z(iN} zm{Mg~2F)LvJd&>+S+y0$WH@DW^OI%vn4z+%d|6Xapmcpa&TfN5|Jed~TVFLJtXZ;W0{=b*}bmF!R`Bx;~SZ5qX71%Q16l?F9Y7IfqCnifM!*NAp8K3#Qj7 zkLzkK$Ik8TDUZ$;9IH99ts|(QrJjZ!5=|wt7!R_)>vz6K8>-AVkBLkpKTWENZSof7 z8m`aaBEq-W!yxzstgU0Zpgx<2De%Ya3)|%NYBb18ZvC|NJf_2E{sL1fSeUjvO5?Iu zuQ8vaaYsmgd!p+Uhg!S(Jg~y%*kPs&n!L!WDj_8i_am!&08Jv7C@3Ii`bX9oG%l=* zlwZ938!j7#~3St4BWru@mm-Oxg- z(G{iJEk^%U@>ztBZS!=f zbYDPuqtB;pG>Q;askk$4+o|?aS#1dMi-Due(us6}MLz`GBDYmF2W$`7ye$9Fa>6lE zL`Y0%oKAx4F~G;$)nP{zTqf*KNy#?YgsOj^5kTQAMaIi+gkRVkKXBQuY^hfn*oh2p z>ns$dpA8HOn;1r-YKz>&OARx`Tq>8blbW}e)~*V5qtPjDO6wk}ePSEdYW#{2H{Eci zsw&#Kskf(RgnewlIPiGJZ%_khjKe#XVr!#mGhhvi*bT6dk7-x~mduh^0?Zbdu3A=7 zO6n)-B_E>yT;4L*t0m-6Y?&^Sro0P=>!+4c-pg17wg$Hk=a8 z+!uVyF2-8ME9$swrXy7PEqb)G5BM{zBX+=WC6nRUj%{pqy8r zRJ17YJu!I?QP1CQaU9<^$8vS@XPuabt)S{>zYv0rAJ1PiC~vcwW~r&fnz6@3H7kuK zqvMf`AlWi$)+o>yC=`}2R>gykyJgcdaI1i{wnV7&V2;}MkV2uLqo~VB*^pANBaPU4qXi>{Tvs%FUiYAdkZ;s|$8g}ya+JJ=utr$A zA$=IG*sconYP`aTP4EBAQJ!6Lw=>XZ$z^y6P|6ip|k_M${1-WIFp1$GH{Xe3|^aTyQ2t|q97 z=%VMA7(}A4@(4)fl`^lAI0#AQ)N*H<`=}96_vjF3w!%J73AB4}bcX9EOFxFBzcIPn zP$5-11~mRdtR}39LTDG=uD=LzM#H0OR{l=!UxG*H1PVCQW7fT17(8^~N#jITGeSXq z*Rhv&>u2J+H|Y|=_vE9|X}F>JA(7i%u>^7D?c@|5ALy+$kz}&H2b0@Hj=n`Ar(y01 z$2P@!I+xpQ6CJ8Mkucb{mT4p8YH&7bbwcwTZ6l05)p?fR81LOJQuxR)*6z34J7G~n zrhJ+{;xDzm+%Ajy*Q~DTzu7G*cI!_jn-8tC^^VWZejEp@kx-HPKt5@1#NOn5zcJFs zYjO;D9)R21OOt#1>Nc%NeFI|U(Yo@Q0C6>(bZTEec2*iZTXe}~l^EzB5PPwgrDMT$ z#=3Ni!VK=<42`7DQS8$6e?y{?o0Wyhjb%VsyF(TWVT)qUMWYMHLu&;WFI5#c z<4)yF*JfwGT8NilSI4{+xoJIiZ8F1}lBV zIhjT&jhf?eCv3+u4^X-H`Cfcd?!6)H>eY~ytmxqmAcL*Q z_qdZ_0kr{cpf{LSSWB2zdaPWexGA){O5b=p*gMuK`&A%3evyy$uF4I%*|zDKnAD{8 z@V=X%VDycI$5gQv&poHWwffY8>OUHtWOyZl&*NH@Gz5yrO4d8OInVpzz+&R}!4HH~ zmOeIMbCqF7>DK?a8ymmZiIYR`NJ`6La$aQJNo7Q;jegE?3ySD=*JLLGG!aWpYIV~3 zVN)1pM)e^X1~SlNh%b;6CVjTTV>5g5+OPZEr~$-Ic0$_qTpL$x(mtAYml%~lySsnN zb@5_8Zzv_NpOL*ABi%smfRESliRFCedjAmNfjalv0^ri1jC~pZ(R(G@x=bN&X5y~$ z{VSb%y#zxtqyuQ|C6R?gd~)?dtq`QC*P(8uv)mB8kKe>{*o|EUM?)3vpoJxRGIRDT z&*-B+@y43#AVhGo2LAAS1nfjMa~ohe?R3a^Tj5NIuYh1+v6?_dPKIc@=-E zd0Mt`u~z#&EG>Udlt&oW!b*gUSL@W{mk`MDG-BY9H$FbB=P`+1NwST__vg>3)>p`} z_2K5Wu0Xxbv286)?s)dG1CAl&9)>P9t9$YqWV0|KB2f#&DldZ&d)>^{n@6@p8(cA@ zNt}jpUBBVuO1wiCbmjX5!-I9tZ@b!IQR_sti&owwwqTA`mKK3;oDLWKU!zDaLNIj> zJ-jmKDIenUL>LDar}*+~ym>m#;bXfIN6n&NZ|0#SOrvqDXRI^$rZwlejY5}C znKZK*w8}+wGTH|jEBKRYw=zW$LOyG@tmfW3{~mP=Sk#=;*=BPSszDggl>8wex=zRt zrkCG>*D6B8@GDZ>Ggx18Yyj=DG}dfOn%4*Q1s;U~mCRT(AuA+Lt!b0?3g#LcUgJNt zOdWJ21-MpHexx=pZd+SSa->lO#UDv}`-RF!zh-ji z{B3V0p-aZmtzx&4cv@z`(^280VxY%L#=b0=l-0Z4tQQ<}HF#G0+6oXY6stjo3=yqM z1Zt8D(*&psJ(F)25&dTJmggUjA$Hm3k=$m-&d3t2(6DU$mgciu*Hcv$k{Y(;8hYx) zS!;DKNN?cD!L6%)vd1rFz|E|Gi1ajMg{qj_R5>B5{){9azk8$zfVT4mTx*|D5V<+d z4-2+;gEdMJ+D@5(?%#^&Uj@C{M{s;z3WFGQD}LF2jht|4nNS%&oOy$YF8bjNVWu0@ zb~wut#y?=1f=f@447@6UvFJ2{Fg9@(r)&{wsAx1W;pBxZ-eV%t#l0decc6{W56xvj z#&%p!@x2=1A>aD#Xum!$q9(QY(vY_Q3pOG>xgzOIdR#9``zXPU<6*@_ePez?;hNq- zS>E?LoCU)s+l$4FqDLe(zv{=-Ku|1xJwA=EGl6fP#^jVgX~&(axY(meD?U9`L3|}@ z-bhs}Z9Z)@{7Q5{$j{smd)Untk(EJ1h_2O}yd#I4qT94c0O>Hdcy5ABROi6q$-r+b z$yk->@s|VgJN~hsg9Z1?h$Wpaaxo4|fckiT+oyeOEpQ9H6`*Lp+s>Hoy#9PBi5v1< zDb%K<9g3VYbnpnJd6;QxBJ9w0dNc6q{;??6q!)hJ4g{|Q^9+%y)WDQ2=u7+qYUlx= zhU<7gepIzA{h0Qv3-sKD?cBFjtkHs3vT4?zBxPH051%WIOueR6={<-v0MDHfe{kT@ zL@;7OGhW&HF$V8^Y5~0d&Ka)OZCwyk#B)zVRLyJ(ZWLS}>SoVmL>O1dz*CrvUvU4r zMT6P;*Vttw;YYX!VQj-GPorxAW!+i5QGTsPqa_QzQzyKW*0LwSTh9ySAZT3(yYzx9 z2^Oa2)Kf1!>Bsh+i{ZrqR}v6eeQFs*l_ETudVIS0&%_@@T2y?2Qe0lW(`!N!2oR~{Mo>Kxc z3qr0*1B06#NloYu4;}-^Ga@v^--46WFwt^WY^Up#p$56#<@Z3{&*CWowdzR~X;s)B znxaXn)weXsh}ZrDI%4F7yS496PmWXBtjgn%g7_WgC#@=Fw$XV3vEZKC*|9SllsrLf zniQ`qOlV10V)@3)Rx@iI)WZlNYNDm?=Xw=8 z2JHXA74L<`q(`m_@vL8B@S$td)EPEzd0sriemMmNdVs~rEL?BTeePiu>Edr9jgxb3 zoq=nWumARr;AeqisT3jW1R#GB5_nETyYA&jKifaKTT{UvRw1R$6Hxw&7`xC4iH!F3 zZHHrhN+8>XcKf$Z!p9KT8#^_;<^UFIey^V|@(s~jvv+?&Jd-LwHpR8%5eOkotv6lO zjQT{g-KXn8Y};&9X`phXHPizf-_JqFLa5)tLs%5uGb^=~y}_>54b&UWQ$sB5C&z z!8_TQ!>mr7rFXka)sh*0cBLR5%&ZIskFIMf=RWQ`9cSMN#y8trb@jJ>eFY}A?GWqF z7NyrtfaSMJ{S60jKy9xcbLFjVQ8A*nqo>yQ0sNu3baw_?N{P6*7qQek zJ@NP1+#foAe)tM-V}yE2z6RQ?OQecE+wh`V|61)^SJv*EMX9NKb@4PQ+4H-zeAv$y zJ>a%zcjBEL*e*TdHtSbIO*W{W1b~}Jv2g2hQlKEnRTkbuQ z(bvzlI6|(zG!OdDQb~zK2YO+IL=zCcoprCI%BqD!h1BA6MRQ6_vY3E;&BAg57AGw{ zQF>+-y%VyUm1Sa7^zJJ-$n>BLy;Q(z(fQN@St^~?t;XUi7BKEJPQ>_K8*eJpdmj5B z_(-u5p%m^>O1%N2a=*YJfN+@QG`A<%vjWo?of>ejg}S#chifmb&fk9_Uyzpv;;A&;wwRn4G3R0GrLGEIdQU#xusBhf}{t(`d^0OlWY!ZnGl`~ z&A>%aOXsrf^-{S6T@RWh*GXR@Uh|Hs^uFw%=EDi(@NGkJp5*-eE)3p4r{vb zQzGP-o$f6+jy#S4aPW|qDc2N6N1!-5&AW2b$uHJB#nytTPR>6Pb$xDdCZ&My#Q%0A&+yT}K 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 z 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

ZC@|f4>XDcZjTVStB;f}2W@MX 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

|RIYy|Dn#V$V#UnWd7ToKe$ZbcQ5!89`1z;< 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�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

g2+!#HXaAsnyKOMUud|t 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 literal 0 HcmV?d00001 diff --git a/docs/bridge/docs/Services/img/kms-2.png b/docs/bridge/docs/Services/img/kms-2.png new file mode 100644 index 0000000000000000000000000000000000000000..7944a8bf0518d0629734eec2020f9742af73ae98 GIT binary patch literal 182617 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

B5!!&)%r5HG_v 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[EW7neK9 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

  • acUaS%oCXEBA3X{K2ZBBBU7>GNcekD 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

    +S`AS_gx-ssijr1LmGp_joWa{ac+ElB+XB7qZ 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

    OMxR!EK3pkEO(!`<-*7zLz1z#h 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

    hb2IrcCwT94?7-l_v{hq;9!Ut)7fK)tL*Iy z8Kzw?p!4GelGlNyvdT<(lK80J>`?j`6unpGgo}HAyY{xT*Aq|8D2?RXW8gVGfZH~% zBt0)Hp2T4I^;`*Qcl_nJM(-dj;Vn$y>U?gM#=Kn#^syRoWdIGTB2A$!R@}yrc$evk zWSlLJEOZ88&Ysk;X?#2RmUXU)El?c+*vzcsc9A#Aa!4P_!*7hyl%FbBi!b@Rl`G^K z_v370fso2{;zOWr67h*WAJ~F7D7gj1I1LZfdRAA9RMYN>K75ieir%;j@>;O_{*oyX zsAg>3Q!)aL%$|twEv}T`rEnH~Bd1nX2X4XrJ83jTu0=UUx#?*WeR0iMaHu43wFpgJ z%OlP!?naqZZ}IfiWjywN8*LP9kXqKX=V>H+-u`|ph;D28eU-s?%Ob7fTBFXW%@{4W zu;Kdf1(knd{Ik)F_eY(_e+mf#oL~}@0{c6=g?A8?Z=Ml3;e@WKhsu_ahX~3VBzsE%<=C)zyZl9`oPihebx7Z#3 zc*~c1z**9_T7{64i{roQE#ds^Ra8<8lhs*KkCLjCGPb;04=Ht`894yrrE95srX?W; zh@EWf{09Pd=r^g|71qU$i8rZL(0C6^b<%gSaiEhM{AUVoQnv%|K=|p~=L)|YEz0IN z1q4HFK0ur9SR4B%XEMAa#Ckg> zX-R(k7~dC;TlptSlD7G7xsQMFB)ckyEy>!?hH{A*qXy+qR+A?&=6*!97Ds#jpc2bo z)w3T{N9wqT&1<{{o-_~jY zo}xb!o9qe*=dvuFm11Q?FrJ>u6IZp8dG9o~WCGhgI^-0lh4hbtcjDx?h@8udw%=-= zwlV8+QxalneYV86(1!1Em^V!nzi#A)|J2QG0y)RgV`|J)k;{otJO6E5(JK%!U9#OG z*!`7nYo70F^Mn3d?e{<1_sV#(s-@aK){z?}*TpZIWygu|o>@)@&%YnJ$f)(=t@QA(Un zO)B(UWHaQ)S6An+@a@k0y|;%snRN%>@$_8HcA5VEKI>IzQ=llc$||WoF=gjm(nU)k zYIjJYeM=_Sr{AXuy_wFsT9bb7~b{o{r$;C+z(~YYw)m(Uc60#M< z#n8K{%#Y7=`0f2@Q$xNgp`xv9)6dwnA*!5f#*=4-jMN>KT*8U(XRg-HGIrqTrAhT+ zVDwC}k>Y4^39Dwt6azH54q6w_s3z5|K8>kkP7bDt2!~6;x8nKZs^-&to1;9vS{SY^ z(t%ZD&py2=B2+*Ga(>}lMd@@5(!OM;M=`L&d}pG9+8XH9e06veWwuDGq3?89n;J?M zQ)NY_iFw4b68|xCdi6Y(%08+`H%ss6cI%6+O54do(SBkJ%9xb@32vxpmH&--D;R6rfmZt?K6r zE~rkcV*tjC0vGaW>C4C${wA){{9*g&`jYGyj8=231W^B6IUYxJn#x|>!u9o_iHFZ= zNF!OZ^@DAk9}W&!bvAoQReT7FI9m+DWVFI))uv4Wt#upcmZ| zDcJLnRbR9S)N9|Rr+phw+oc<+J>Ea zGD^?kA&bJ*+(Brn>%HFOCa-o3$p8T44*V*=wB$`m(^xn{N6PAh5*IVui>{kDm%oh^ z#sS+ALQmMsFNR%YbX%V+F?1!=1V|<}TRzyGUq9FL;b&kkeG#4KAx(&;X83Q>PMtUT zPBz}t;m*}F6f_-hJ$rUCRS6Z;&w4pfQ14zo|GQ9S`+Qv;9brp&31Q=jP@ppQ3y2)j zR5JE9dZMZ^+Qg@+;|QS>B%tYnSn40!ov%u*E}6P#aeO)EXyflRKN`shVo!J-#-Q)jf->8VgxAxATyyrZ7LGjx@nD^*`=6$5n)1dzWq^xxU literal 0 HcmV?d00001 diff --git a/docs/bridge/docs/Services/img/kms-permissons.png b/docs/bridge/docs/Services/img/kms-permissons.png new file mode 100644 index 0000000000000000000000000000000000000000..350aec1a4281f8d644c4831bde021c91fc12015f GIT binary patch literal 140278 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 z z?6t!J15yAgG+hQAM3}z0GBs1UO$7>N#GaRLQ1CtOrCkU~t`A2xk~xdM`1Yws@sR74 zwpuRK##C(0O4-?;B1Qcz(O{R6YcBc<5dFs%{2#sTCPW7;!U8?Bq31Py9VO-guB^1J zVx~DM=009uWB7{9#$Dx&v!PxPk|}gDDXn)Z@5v~raq|Sp=l9yO9HkM)KW2s0mVgHQ z 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%0AIpDfnSbxN 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%0AN6A|C$g$&_xwg2Y|5qcw(pY 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 $A?p@bHCNm^feT-V z&!ymwBN8aIX9g?dl)_xE$H^mi^9aAJAIqGdBuS3(eJxbru^n|8h1)ACsM zp7RBp*N{=-6Cud&5A2zujoSxr{V$aFAZZ<$omNM%^iNsyf!~~$v2i6 zO%cEXd+Jj0NCm>6dR&V4hH`rR<ZM#SqsXEnZ)v(%BK zra{s7JYp5UjI6jw98&v7_;X%2gd zVFB79f2~Dnge`IG?>EA)5t4#$OasH1?RDLEJ2KopK z&d$xvNyg1}TCn{~3attMJ@?fgVgJvH{Le?n(|^C$8?@@g{7ZuQ{tL50=MDcE%l`<< z?7!5FcvuX5aQ#Pa>J$Erh|~S|fX`k2Yx@5`Ip7c-LFD*)VU5cJ%Y55I6*}bjUpaYk z!oQ^qy6T^(%DOHb`1iI9;TQDVE^`H!@AAS5W+-7bmxky={(ogNdE+^~^-Bd zTH=79B}@LxzgPGQ0q~la398w0bruH4+8@mcI4}OQ0ZT?p{$0DE}QsR8-NAHA14nX%@|5lNWT*BeD ziWSj}THE*opX9%zVgLKXf4*^!VdKV{>akOgw?=aDR%?CRyug!@6 z*@9>tKr8TnL~>=WbLk4LCI1X-GZL*`=#BaxiIWf)lnCzszy8rbdi!tLj3pk9W%}2S z`2QdKf9>4=i%H(F#!PS7fAz@^fs(&#`CnD9u0GlQjl11T`k!h*=`a{fU4^9SkzC)% zsc8Vo5J%r4l7SqVd*C(e_xnTdf7TfNMe=_B-^;A4E|`XI0a%pU_tpHYw|lA*Jr8pJ z^X%FjZQ~U-?XTU}gfkLS`2v=LC~@V?ia~2i;=h;v${WiI15}G- zNNnB|h7W_HK)sEH@R&DtTYe6l{l`Pv39DbJOJ?tXplkAqj~|;hZbA-#pg<{{YTbFV zyMPXtDXYeWImCSjf^tw;PE4&~TdSAzSnh6r8f77|z5KB8QsDcLqH7ZU!{Y8}-Qla8 zHsXi3(A>m70uEZ?hngQ&mV=(1${;`IqI89QWUfROBa+=DkasP15q`|aKy|hU(uaFH zsn!af9WzDxeXIN8k?P>*k*GG#fDpx)7?L|W5JCGx-^_Z6{hre51Lr=ahpF~Py~!vSl)2+M&`Rzwg@=vGBc<-}mYod&(Rw+SD%?E@|MfB%9;5W= z)a1;xMj8RfSUw1fa0obJK}iq}G2oGCB7?)WhCHG*qH0p?2g>Se5S*@4l_?VqcM3gv zrkT|`;@bz+IH-_x&jbu1)arTP&0&kZ^Y)FkcM<(z(X!P;l_fHdB794|vS;9j82OlNXb%+UoPoh)!L7 z0mz)7LPy{QZpv8HVBg!y(FJ}VI^Jk>!6ZNfdFfJ;&TJR z-3niNNuEXIwm`B^s}9oe%M4WmortT{NWmEN3%6>^P@C#{Pg)B9wq_wU49|PY9)j1 zB>kL>_HXDzTy5O%&`07wMiO1tNRd8dzhd+29S-Qh44g!yyIeLwZn2sapi;9m1aMn6 zd$s*@mCsKc%I!!=%g%J6k+O^ze?LUu%*(22T+U%l#h)K-HpnRbHuUZqN{FT}%T12& zxayU9si{LtEzY0rDVgR_Vc>|t>2hD=4ZE6r{>^^=<%3aA^oedaBV~GOje>+YHHGBp zDwO~mn#$}aCXa2^dRk|lSNEl5lBkOnWx8kDH_(MN=rVUKt==4TKSsYuAylJlUaNQS zy)C8RVk=VbvmT&hTT^a% z2fu~Z;gG%r=lF3OF3A)aIpApZwUXdT%89|-L1Kwz{@f4)N%wxUO~p# zJ@N4toYxVt@&SRxZC10Si>uQO3H6~BOG6W%y$p}b$+O`buBWmFv(+f(;EnTJB(iM% zm`Pf>-mhjnhEgZDehj+#Epejh?82s^W#BDuzWI2u8D)EA zyFUGC!v0&+I6<8;M6IIvk^>d8MeAd?62f|^fH)Iq;~v;jxl|lbaB3kQ?SddVSBCq+gDryNY+kY)UISOdfQyfz~tb%lUa;R~flU z6U$)DsjXdvb)rXyKt7#R2VC23GbH}M%^Zdox8p=_+i4mB#g^Z<-hpvd^FO!2_#Q-QY2RN0%J+P&c>u_iAx z=_Z;0kJZ^l!g(>2(Bo)!nlK+^3dLokL+QEgQOaWO=8~ok{K|C^%EqRzYy~;Vkm&t2 zjV2K4&fV8W+Idlv7WX$wgzD3YFG!}emFERJ5V0?qW>X$)NdE4 zP|u5EMG>6N~_wRbs;X0$Srf?^91ZtXd78 z`Vgl5ZVByp;tlNonkLBdqN45o=?g!*><(CmT6Q?W3>gi=f$ppEd)GW`D~~{w-JdC> zTa~tL7P)Ilnm~vb(*;%!n>5vzZxptdK~D}N#@pI;fPF#mn;cC!`spR9JHS zx_(bKIV^Ie4+Vt!DB-qJUD~BPhHZ|{F2@hp1cibsPbhUnjhOJtvu=7(F`@?N|R6yTHHvQ$;-z#W*YahhAOeEs7-5%(+ zjuN^#RY8q)w9)4)scH`VnO!O3qzV;29mBh2E|uwOUz4afSuwT_QGc28qg+AAZD;{z zTsBiC5QG;$9uQjd4LvVhen%TmKr{1*7kx)T=YFeC?-_pZ-K?-BPHE`MqC#6QXKwXw z$$omRtl9>hUgYUm#J@)0vzo~_54yEP4n5po>Ym=K=k5=13>M~epirg+O95ap*A=ti zv(=82G^-#HRtjU^g=XGApV8K2>bCv5{nJ9^>Fakd(0F~3PWLu}LM;u|491?A-I3BV zejbsI$?M8ljh88vtWUDrRkz6YlHZ$$Zhl;~4%)N?Z)8vvBEgn$@KJP}I`X03+zbBQ z5lu)1MM{8?xw%du!f8*r^^A<%<_dzy7)82#|9T8w`qP%%y)q6%Z62!s^}A;Xju*fZ ztT)*uNJ?t9Sd3(7N8f4fa5Wc&`FYD<7*r^?QhZ{rD4urnr*zgN_#vX!ry^UDb5o z+3nfW;=jHUL#rks;dj-61x4-yvF*v9El`g#XtQtq5uYDU=lC7kZngtxiLujL-Yu(L zU*0BxPQDorK-M26Ndl!ZaRInCjJjvhaus8iNgM`m$EG45SB#~n@t{jEQY(UR z2Mg+kcQE}7My*~z#WjuG=gJ9{KFsf3906+!`j$g4HmMi95$WECK!wc4U1n4Sha|!; zUYbbKUd71)owY()Ql zq|E`Vk>ZdFI%3U`3~FHXgJ+zeJ0AAqEHCEPn}5m_kYMQyu6;VW85PfN9xBJt^!ccL zPUO>cFt`uz*6m1oG4-}oE3!Aw)m|~+DX;anL^Vk#Ny>k!boD5b&fC6@1&ALnaVjs# zaOK*~M;lk@sWS%}#)sUV8kNs;E#DF+#Q|^LQ6?M{?#Vf;eR1_d#VL!tJrzyiKF-)4 zbX~1a^FEd_S?v;Ow*Xu|svtG@JK$jJ(>5~Ig$kKB9IaH28E{NUw5GAaS|gmO?1x48 z7JcF_A01ll!qwz4-^JvJYA<*nGTOZNzI)Bh-$ zZT42ZBBF0*VZ{8~TNKCXY&5^$7zrpyQqvdCn2_m1H-M(+`;LX@GU6zxfZV;5C+pz5QnTaagK9bd^dwwT zV1Qeptl|kfXL6%C6Ml1!_G@n22dbJE*>p92FO)VYQGVk&rylyMrK2srB-G+&KA)uZ z#4lm135jO$CkDxEeZ8dW2kg!w4K31BRtJ1R;XxN}q1C#Z7Fpw*@WD2V&Bn-|W0RhX zj(_np(07v`yuT?rUar%=X-3|!twgsKRICe;9pD}CUrdV=F%>osqJ|&MjTjm?>Hu%c zj;`C0W5RxM-j}iB`c$s%Y2-d9zIL5|CnoAtV+JzL4A{;_nu-50t^-@{anwTY1%r@a zds#lO8$}>j{KJ@c1G5v`FSiYky&h0^8<#C5v`0Lq2`;Op6ei~6wc^xPylz)6o z@iy{aq{QZUC*Ig9gp*)oF<6|at~@qn&fj9U+43l?>D@g;YcB-Hv%6xeQb|Za<8*RZHH5K$Xt?6UWi-( zU7@#NqJZ$_5^IUWxo=q<{m>~Uie*~9?%1fj>@$$9oQ-VW(46uN&}!AxD_`ECaHV$n z=6N|&*_8XJqgQTw$30os|J zo0&VSIME&WFD#%L0^^;ua+fh4jG?g?TugM?j=JYbCmy z7kOvfhKmn+P>vs3JPs*8u3T*T9I7a>>Kkw2*X;)S_Pk`aGru|Au?u{iGQ0mP^RkmT zt5F{hPeHs%!QN8_bY~B{3^(6e!DD=ld;a0Ld(6JC9jm#s^>FkS{yEKh_QBf!y1tn! zdjkqFUurpSx>W=|)tHy`y;T||9c5k{4kDE+zG%BIUfe=chU)jVtd3)+V5tiVw4c8N z-yc^#x6v!r;D+6m?QflM=Kk4v2Bm`#(mO1So%BU81(;R9j-JMT!RVxwac*wF$UyVP z`~iL6tV#K?@73SrzpPfKOkemcGdwaMP3_nzWj8x0g}8rh*05hdGQVvZ0M8ByW<`@< zCf=eHVW)T?-R z5Gi2@t6D-IU*qZzZh~)U!O(ye)zf+7)q%@4Jorzf z+{|U!Xba+f#e1X3XG)v^J|~$qaZvNd9-Ua`6NJ&(;P$|>Oymx?FnDL8#KPLTaBCfY zD1+(LFaSh0V3vLjihYjf=r;DTn}-b!z<>WOKz;tDSlwz?o$C+ub-SCoKY~{R7nhS- zZK@YCe*GSDGOdfQ>2HLcb+T|Xz9d4VPX;-+?Yk*#{>Yo24DX}xQ z^h%b7#kkC3)5y6O>=)7*dPs7NQe#o`8B}M^SYLDvob+ZL8{%2`j7Y^($+Y3^ys_w3 zQO!4>qwIYfR{RtGtHW}8&$Dsw(#=op#`9=H^pJGrv+FVJLGREmu4wAPwj?V=q~WMF zLI~6$JwgSm4n($*?kD<+|4uD8E8Gmf5#Am@Ti@gus0hN_+CToX?{jlSz)4lGwiA(g zLFXd>-Xg=XN&qlvj)Y4Gg(&x3Vv)*MT;}H_|M5k0*sb08@R%Rhbt?)s4v-#t%K{#c zbE+I3OL-eEGRjE%z>qRk~wpzAvQIwJv*f zG$HJ3aBj;7*dDX=(ABpCTAjFI8~~}YWk4aOZvPG}%__M)OudYEF7VXt&DmZkp@1Ib zM^NJmPc&F_vQ9TVj`8?l#PaCc#as5ILd+awf0Xn@$Cz;dX{9gPgURgFeRC)SpQo}; z9O75cWimE@)HHg#idqwaP0WkBPFd=th72Wh(>d%s9&5j!k@s0j%EXtlDQP^MFY(1< z4nNsCJf0duSytA5^j?l_8+?Oo&JnHiQPYVQ;$~)$x1r$EH;?rY#OFn8PlO zTm7{Htp#?8Hy9jKx-niW(fq0JZ!|;XQX8N8Pw(EB5obMdLM(Laj79R3&Kh)SHKty} zhm^{OT63$rT8H0a`J(x^s>?`sMwXGl@`fns$6LeHjzK+l!IfErA2^S@W(t`4Q^hbk z3dbs2?wgk_9c8n9F0UuFMZ|f=fDdn$x!#1OAw5}%VIsbOn6L&~SoQa_QWq*0rM*}! z>ivCaD_646$dUq2>{&Jgzg6=a%FfFe{x}_IK~1)(T^uF9k=fxRFRq$(znP{OVplmA z;NEXwxlqQ`xJ&1$u#PV4{+`1-k)!qp+u8d*Z;}sP=-%>!B{qZXQJd#gH06klsnMG= z@Z?V@w`6&KHW_wF>s-~SN2T2foA@c?%09Ibur*hE&N1x=)VqBX$TBb zE2XkJlg-h=Eu^!(oicRc>W6CR71>%s!@HG#lI&ktW#T;0!@LE)OR37IHi-T;=e@M4 zh#y|w;6MsLVT5Li!>~<<5Q$?agUti0O(u zsLN^8F7my{$ThtRxtcc?=6B94`e|AM`%{V-|MY0#2#%wfEdu%$D$xI#zDdsP5hp1k z?|rp!&GDKdPLJoQ>4Br$V)3Zf!a}V7Ptb^enKJv3kr4udpNJlVvkC>_uAlss;VQa0 zEO%7en2oCjdEj$w@;qM3G2*fp(<`WsTTf!q_c##^v`s(4>nVs;ab9}{c*&ua&ZRje z0u_<6%yx*gclY$svToET;d!m2bJ}zn5nc(vztZd55^Dx zv~^{jsTS%d4_fm28_Db0KnkodD*2d<(leg5Bq+xm^;oW5jjfG%BDoN>Q+g=|7WMFs zyC1wT7xf{b!<*AN`rYvP!e?;>>l9uq!2PN-yxVuyFYxYYxOQ}ki_b3$lZ*Dra(TVl z?}9M7W@;JbIzFjXjOiWYg{bA;-d5B~-)SeCZj;MmT{+L_%miYGU;L@Lj`zY9_tf+# zMRv&TGP1?<_Paa%1P7?@O(6#9+?*0Abv#}6PuQP%azHN5&?KcHJExSC+5`oJzLR@p zsF%o#cEV|TVhkvF)A<&Q?y03eab%nb6V1a+3)6s)#8TM=bkR?}Kt#aPmkvVNVo_o% zl06k^1@|a;*wGzS*#;<|>n-g0(EjNYJ2F6Z>`7-+H6jiY1UmT2@&poV_Z!@dv%s6$ zeq2uBhs+Cc(lr_3!PQZUaI5!PB61id<1DT{nds7c67j^VY@uidmxZ#hAIC~4VrCk$ zOyNX4U(&Vc5qp<5#&T-DX`>g#Vgg@(36kZ*j0uZToxF?lr`PTke{J|x2uRND^vuGij=QCGx|yiac{Pn&0OUMK0xzF!n5LFWWm_EJ z5@S2mJa-&Jcl(|oR-HnstyJ6r?d6)KoQ8FVILnYq zlb;P**+Andtj`#_aHRJ7W3yQX9jd4v^~&_PZ8#9y68Jnju4#$XJ_@LHp4PU_*OlLbgy9xyB;$79YZ2lfyzU93r-wA`9f?Mmv1AowQ5Uy198O%UIy5qwz*Q!7=*{u@<0 zLhjG{OVVGxM<9=Gly_|N1J+Ya1y6xvJcSLjCkR&s_Cdo*Qs|n>2N>3L`^lyJMKFX` zf%xgs-3Sn3tq(Q7CTiPG| z&*LS}>7x!80`l(B&0Mk{!rNt$cO9x-7Ef=!JvaO#ejVw)SKGg<@~em2|2$bEUSj3? z)joE*<^v#9p93<56)(FB4Hu{*SrT~G*>jgp# zJzABq!95=_HP$27>rA;9bUI}LRySCPC*wqdInrlV3d9fsh$2LLK^rb{v+l!Q`lG5t z+|IoW4Z8l>J>>NP?KdG$h$dtqQPfz&IM{`Zb+J&`ju^A- zZ0V5saY&IA*>?dQPXA;<&$3hu3ZY0@k?iCFk?HJ6>0Yuto_ z?*wz_3UM*u8^EhS*72`(J9)g}Fe+;UFj;=bS?9XbInObBrfb6fL)T~yM(RXI|GfG{ zEm*~#>X20_lM)EPy)!D&6M3N>Kex$TrEm+79Cv|&ZxUSqWe_3Nm#KdoBW0BlrO!j~ z4vA(bXC0j>+46YQLtZ2*++u81r2&|g)ng}aYCS(64Vxz&9UugMuAWPg(`lNXyQG+1 zQ1aq*Zl()#vTRbY`k+yQCy1?p z3VD3=-j{jh6NkU{o!jfeQe^}*S@2M$m)V%o%q#!^_GU1hSvV$>ntIH)=~{){2EmTI z`koNIv0_Hy(S3BK2l!(6+xjI$34~pi-CGB>EwD#|zg)-o?YAOsK28y%8#CzbthSpQ z$-CMiV7#+OARJyp)ONNyTSv!bZ$O#jS6vz5r6wf=0GaT|hVus~#idLR^QAr~>-`+G zfXG^xRfvY|5k;{RC70eC zB@g%3E&h_e*Y!ku1o*mx$#B@2&l%ZT{IxvMb`AL#IWHyK8gqg1?Z33)&4PWH?=bq$ zWb9(WG1c1$GW!>_EHnJBYy3LaKk0ywpjW)i(T$g@>RzLuuv5y>`i+kB-Dof(kB1 z4;oX$xUi3Dzg|)25s{aNdaYRhxir8%{BRNLCn}sBfaaOFANowNtrVj-NS7&Sbxi8f zY-79| z+kv#zcMML(l^?seFp(_}gFqeDIBp%iXJ&5UOR0V;*`>*7kVJVO=KaU)Csv{;1a`x| z-+kR>G5GF)-sSw`NTi95YNYJ?%|7Fqcyw7ub^?{UO}C$j06?$sN{%zZpIyim5un5~?K#vaJ8YxnWu zb}1eWd(r>79Aok7rK|Z}F@fj`w&^B#6(Jmk8ZU5D_i3tPhnVaLL4XrRUq`BUb}m|& z#-;J(y~AWNye8Vt_?uJ;Lk5mt$}?lRQuyOlVW$5I;EpGj$Z?n=S}RdTt~5t|YAqhl ztn^`}ZE)fSbkm(Pddv3Bb2Gir=&0rn12W^W9jf@wJuYy@;05=!Jlu&sHr+Xwpm)Fx zkU>p8_i&=CnziH9Hb}q>0HZN{DZ0y#GuiQ6p-9g<{u)1>ve>_$cp87w==xwA_s@Swb? z0GH1KSl|t-at69P-fYVtV^;rS+q{VZx1sF`(z~^Q!qw?7KkGr5-j}&v=JfrtpJ&u( zG@Kd# z@x+QAK{~E`hw>0yLBhxgcRQDd6C?X})UAuh4^+u08n#iD)8!`L(3L$4bs0iTh-2E5 z&qtGthbW?RWmOsdce>aDE`all$OAM#N}I}Y!@E`0eJy$6x05sO4j2z z$A?xU{@UkF^30MxXPa1nG(!dW#@4FqfoF)xWq(9q>kgUMv+o&J{#)8$coagkIq{^= zi_YRfSS|e+BYT1h{^ciU5WxBQc*gfywubRE-R!DI=z$~ga>Heas)89ft^vb*ax*`NC^PU~HnYs=XvFq1-IMG;r?nn#+N z+heU~LP7ODNDPL6JBA!DR{sx%_eZV>Wu5zbKe*Cu^{mQHtzv|gXF-^FUdUV;!pdJv zTK3kn(6?r^QU> z*N+voFM2JM%?Kw^RTZpXpj-i=m~+$AyECrn#$QvByfoJ)&sgO9N&M_H@Hbfe)T90! z1L_@lo1@P4!osbDnwSgi!GbN^?fc>XuH_?4C;VXUbIyYTEN}v;_E+VEk#QUYr&*8f zwut%=hB-xR{KpQ7v#zJKQiZQVTPHo+4}jjhx$e9(syE!Bu%&Jx&p3j|)xDTheOQ=9 z>?Nu4ph4D*-z<=)Xs1uWa+f~k2c^n}1b!Yb(YC(8(;BA0yKmAS^ek+a7>S1K{TAqn ztKzr-5ROR4W~z6obX<{2cdjI|J6d=mc$ImzOw09;(JFPO(u#qLc?DJ&3t3OwJcj_E z{Fq5)fWh{7lR9FY2nVr-zgbColO0RZ2qK*kd4O$JFOVOm71{32&|3c@x*yrIq7^F- zqG+`Tn6$(0vRF{;7$;fjT0Pgx(n(|sPF55a>E zn8VOe$`1ZNT)k;rQtkIOu63KGDV3V#0CiW|WO5bPH$sPVmL-WX2!4!s7%G+pW^{KfgF9b(UkYY9oDE1D-pBc;ya$VWhBx6S5xg$sr>QTaZtGh zwv2S8`)6#W;CFe6I1qD1-bvB)RmkDE&1lZXc&}yxS2W`h;+2hPbolyq9XzoK>X z0BCQk@!cFBbOf@UpcB)^^SyfqzVPtl+&d{6-@&2R^01+WB2x0fjo&i|-IE_i`pfkk zv925>6s9CCJNm_**OXpsf8KlcUkTKQ{WmRJqEBw+$KB~YD+c<^8ypa)%VHSksW_@D z4@;;;@@+j#s}SeM&eV+y?`{JBwd!=LCLq)u9N}az&TUOP|Cme0b)5|1`FoLid|-pt zv%T}c#9%SkN1RTo#hIammxWwDJ3i6fi}IWmwx><6oq$_z@V*3RemIL7QtG7WA{y+c zlt0V?=vIGw;UdO&SFiE)&MA%Py{X~v4j-86?&`_-UvE(tdM(G@YV+!I#)azR7?JJb z#0TYKtnp=#2%-E;#v`n=SO(y-WraivuHA)pVd(n32LiP(pg$CEjf*KKzl?LZ?!!M3 z9Au)0$`k1c6Ii-_^3lhHe#!B%2-M%1*JnyJzn@u*)%v3~ZHNg5eeSz-R=}24SXZXb zm5(~{U6K(4uo0l>UsX}-L4B)|1ru_Fm?wr z`~`(+bsjsZm6swal>gCfwU1{-Xpek(CvX1(LePafBA;t!+n&ANoz-N#a)$mefN_+) z6#mm`da?~o4evIOnQGf$j3W8(=kc4|_rL18B~81~&8R*1C73T;VBT%!C1B_kPqFu5 zC`06Ep&!rQmum%I$t{_i%6R5&=I9tk7^Hy^tcH7y?8BDpvDrqbyR<<7@N{fHM^6AM zZ#cFun=4sHUe-m9tz15%bEYXzdNSlIvc{@@f!9!vcu;<5^ts=&B8SwI1^)%b-|^jjdS*Oq-ui!q<^uf}=EyU2_@ByGv0L4vi>_;1JsmR2%&tQ!f0EW&d6yr5th-_~ zZZ3Rv(9(NK-U^@nubcSkbBHC^)n{kye3Gr5PIx@5FBF7Uj8`gIX}Do{5cTId0}kl* z&VztZKfa#nua{1xeI*~aKDmEM*bH~e+4Q~sz1*jX2gRzQB6QUQV&gNFO_PptDTP-O z1)=|$ds~fRybyS6cJk_IsiKT3=(BKg|4UuMpvs>!=d=#HB`v<ygvYPjw*-u^OL-4TL9rV$;A4j8fi*CoBakA zmetlJfB6+dIrgR$l|*6M$i>9P1mn!h(347I*(i-=T{lHgU-RxnPmF8w!Fj&?!zn!S zDRATE>Fmlb1)EEJhbIN*c~cuM2r6;RT5p*#*ZvI<_e<80Tk#p$YaUNYLYEcwXsa5K z{|X%&Fto26)Edz`{{3|xR6M9$MRd{_gX_hS-JeTb-*!^u9?~f^z9^=g$b9u!13|X| zUw(IPhXDswcxy39dFi9SPw~+3U@Iu()zN-gU9}-p+!yQS0nKZmuuVhpeu}1329PQ8 z7WGAd7on5SmLC>;Zy5atB|N?=Tx@;wo`#uBicz-On5G9RB^xz3!ar}1fuW)Gz7s3y zBVwuMpjhC66}r}4Fkh_ZfxZ#K-_sQVbrA_i3!nLYd}p!*=A)@BDVWEo1O&Gn_%LJe zg+6Y5NhlM_qfjpJ<)w2s6VJD@%VI)PV5G+aU+&u`XExegpMVU%L&YiadSNxrJFnG} z?>;Qc{ZciR;j80?Xl0DHMexKLfr(Dvp8s9@$WxS+xt#h3I=8>v4a@$BExQ5}OXv>} zS&YNSKYHTW@A&O;QL`q@c$=iCKKO2OQ2TIkjHgj#wL?(L z&41*bZXWxx$x9^WcbbvJ_SJJ?%+x*CW-1(C=~b#aQjMdieatwM^~L zn+vq(&&Y?G$5VpSLQ>22V`>tZC=-i7XyPDMGPz55|Kw4o_i%^4_BMPW}URCa$WF zt;{K+S*te)xJp9m7~Wasv@-5;?Qwd3 zM4FXVZXvUD4iJ6{Ww!GE)DtQ`$>BzuzGuyY%}Hs z&C=e$iM-k!)t5$oa9AzqDd_m&>%sTl?=hHezi#3kf&GvvOdUb^AT%uW|DV>P_>Wgy zsQjQJB;WHFm-_sfO`;-S-OQtjb)EBGGQN|D`|=#uEa=~brMkcIw~PK%4GODXzq%F@ z^LcLWWuipf{Wq6RdN)X`rrP?n+7>B33r8u(Y013dQk%lwhwj9Xude(3&=h@mN8z}` zo1{C$k&~}(9nf0%a`5o)KL>`l=qvR%jcgVAW{scoC!Wh!Fp_YT>k3}Z&=YogbEoj8 z^~}~$gV0?q_3y{#g%efZ$QXF@YrGZq=9EKW#Tz3cCrid-in6aZ|C&1F_i)gV5ShL6 zP~+0scXB^gJ5A404l>vMMNf#H6g_fW{mvx+v(%tb?GrNa^XbH|=?1Tsw~h-FZewm` z$MOX89_x3v4)b)I7majBf4hphcUXPnALW1O=foGn+kr!9PKr*~^5u@}jf==T|K-i7 zl? zQE^^~UD@Sh@{y|2z<$JTL(|_*W6Tru;z1Rbz-wl1D;0hxN7r8_CZTch{2X^<(Z--K zlTX)c9P%Z_?2eY{(y`_E-%iIH4(te+Jm`(%%>wgWe1T_jhhHThG&=55;2ftW)U%Ot zRz}{RPcV+%rMv2zkjs)UUKtsm|24C>K5j&$Yud(GpD9>q( zb=hhsC)m_al+NUX^D%wb)k{P3rTLE3nWcM7^$6v6B^kVd-W1)Jqh7-%J{zrAN2N9lhVZ*%py%;mA)WrND=65>73w%s>B`xPD@cqf&-YIp&SbFjR+^vd$0gkD z5|UTcSWnzb_V~5+$s%-{KZJ<@lnwkibl~zVl-tSDM)WlE{UiTXMC(@0@Pnmmqk_rM z4Bh8uNronc#1sGs2RE=6how{@O-<%}L;2!etiQh+WWgWtatd_$rX=J_JtM|S*tc;&vt zKhR$Yp*NK`aU(seZ~i}3aV9k`9fw(VvGo>z(#11NX!(XTV^>py0`%3B%?2?MLOmqG zf2IQ`P~us=M>6~DgT1eQDR%SJj$r-VITLlfak4L|Wn)2MTXOeXptB4sq15BXC~`&1TZXzk_Di+c;NHL3ToOYx3E@*~Ngv^*$r7$y!$1EKzOhI#$fzu!88>w?0RwvEL8MRyktD8is`U19X6h zZv}Z~BYyJBcE|SBK7ZVuzQac1#rxTFX$v71(%HepyBLUl9Sl<8rw}T;FZYD)aae{^ zB_4%>v~F*6ES~~7BE^6g+Xb1VQst*%=Scc62$VHb$a5U8A8IAQ6>Kebj@_gb7I>-t z6Prd0oYqqDPlLTB+u=GRnA$5Q+&6N;dB6TC@D0vs`Gi=JK^L<;z*@d^wr!Z1$I(~V zdsk`9*w7%)qdo%_tO-)lM3v3C;dJSy~xZJg<593tT2&Z`GTM_w{YUdg=GoOLS>;mh%92f*Z!qB(~ilB z^1QC&W)~}vL1e>>w{w45ih_kZ199;6R#433q(|Lj-(+!bGC6m@p7bpk9dvIJfZlzQ zWKSP7r@9Ux7r$tgspr7LJv0Rn`{ya&TpC8lq-FLg? z37AZW026o|<}%5+&hg2$(lMQpgTr$D7i-SC$h}UwhEUMZvMeuRjKI^o2zUC*fkF?r z37&)t*zq z4qu8R{GcAM6GnuoI=u2vx<4A?sRvFr!*c7XnLw^RXk-(wSsD{VVt!qRl>62jQu1I| zue6P5-Jrf={;b)j>a)qAw6T@V&-0FK@g;m4*4x)Q3f}sBJw}D&HB0ab!8V9CRCTH0 zIgk5D&G(q@IOFBWY8Pxtq}NlXA5K5aWrZ2Kz0sthAkCFM5xd^d(uM0&g&qFlFs50; z&Pr0se41BkzYW_vh|#FBq9=w<@E!)<`MQ>%e`tll>kw;*S=i9UH*3IZQ+wY{FVzQQ z4N5{oF){3qgxgrNLfV-YuE(0kY}U4VZ1K+_57{f|YKkYjP%Ul(G)sj?va{BuT{@`v z9qLhZwc5xWL`!{J`z&<*6C%0hDoq;&Z+2TbcvTj^;wy%28tR#mE^M@9-whLv<#J9m zf;hlY4!VQ<^D{n`ya9iBq0cKXAfB#lG7G=bs^m&)>Ze{I`nb-?(XiNuebuW!=KPMM zs{x8v;9#2i<1%jIFjh-xarxfX3@za2lBulRU_WyX*#hv$9K1o%FIJ!-f~y?2)swlH zOWKJrzp})FXoZov!4WEDPaqC~S_$&@2TUL??>C*a6zQ1R7Vog*yPtx))Gt9loN?L` zMzuOe$qNeDy5^5>Ll^O~Plbi>ezk{sV{IFZLg{D{oLZT>0{ruS|5yU^-*;Hks(4~D z=@OYG&P~%^@7r!RY%3ey8ad@Dg;d_R*^X&r-Wvh6V{5?zP9vuZegzkK{BkXXtN?Hq z=N}G=U626?50O(e1%3*;qIcZdqt*v=z5o9 zTqzL-_N4Zbq;hFZ2nWsZbN`oPtXHWyZ#TUqhi|E2`XOwG&mZ&S9=g`Hlsh|4= zzily=`XL~Wpq+UVCr_vjwRHc2%$eg+h(r}re#^F|^t7tA?6Sup#OL6E(DNl1IE2u9 z6uZ#1K8K{l2U|e~AvvF_D!zG)yo|?M;sPr^%m^wdNnO8>{v-bV$52Tx=@{gSwE<_% z#lG9&(fXsUWp~t{M%96#frr(#y-RV9ai1E>&Xe=(eA^Hee%5U3u)!6OsdB z4Ypeie{`!?$eZ}ft;?2{_#GYI(udC7<>r0#PA{+i{HN^~PEI1dhKn{q3Puaw->O$s<#w_ZG-GCeOyKe z>vCJyWL#L(@rvmEn^sA}2#6ldVm=3gM2Kz)g71Ruf78fGufTTt`XVd*dcV|%riRtV z&Ge05;fMKIHo0Aj=79MJb;6f*uE{(#)k2OJ87<0_DtcIis%XoR$w4X6v%Ar!mz*PV zL#mNAWc>z%JWqEL+Rj4x{U=F*vr=JC^gBw^owsy_`M#Im{9hy!jXF+m#wqPgErhA| zcSJhf8#!^s`om|3DLi){zin|H0XA}UIp_XMR$!GRTa0ur=LE=%XBC#exrLVHcvVPQ zAwS^jj?;UGt)wgjIb?K@24F+`W1iJ64KagXIr}Et%7O-Oj}PI#_x{Ed-w%2*;ApO^ zBgn^x`ma9`gE|h-d-m%1?|b!>UQAkyg_01uu+}OSDZgwl(S6Z6#-dhaZ}-mfr?7!f zG|#A=fKoOeq@lO6oPCjx&*J|s&F;BK6d&(+qj&Oug3EDUgy9`G3CEU-OO7oaxcQ!U z`p+k$(aP%JC}l~$Cy~4pU!~%2mp}5|y~c?Jc_FfVHL(BtrMyM2(VB06#ODvnu&noKC))i!VSFx`#`Y%9+dEx!V?eN)|vvOYLbIV3JT&^DvR&$oK- ze^&Q)hV4l9ho6cpYv)L!`%p&H_ZO0%6xH>T9|`rmPgl@G++DS^d@UVi(4yPAP4Y6v z4o?;jDLk+*{X+J&X%B%Hyo9!H5u_>M26^>m3vLbiA$le^8VU%PH4(1vyB9MQgt($R z!C%1aXJXR2q3^lb*Ey&E)mb^aLNJQ9s&pJ`GwQN#}so;L} zLft~+U`~!VhuvyJq{v?H*i&L;Jbx6r9Kgrd1OD$@@6-I(sP%6myvlFk2_XK3q*8s$ z!m^l=W*=hqJA+}Qbi!MbhU4_ zV=t_v-f_a77|$#_czTi}SvjE-yMeQYbnnr%+gUcsLrfRTk-|?x!d!2E9RtH$XEclB zF0hcR7UVkZ`BLtxg{^V6^@>XpDWh$AOJ&-r)38dP=?e+Bu)D_`$TKjm8E7mu1*^OA z9$3BycW#-x1`*lGpDO3UX5pKuLpQ#e4Qk-^bm9^#Cguv@zS?`GVr%;bQXh@+SfQ{0 ztnSi}G4J_dQ;GEJo{OEri^7i}FCOsT{S#Ry_LnDyqHP_}qG>_4eo$?%@l@Ws zVQCPFTD`=3vy%UfM4g7EA{`uKfWd7!e!ZuQb6shV(g{^TL^rb4^bZF(o3mx|FN+Yg zGq;6A#NCd0K3S1h?_mV zbPX_X$o@etc2z}Al>Dvd>}aJHYMt-I?C8o*U(iKP6c1u6vSu30E$8GFK}0HeJqbE}nF>^6&rMEw6d>roZ>L&9|JQmab_vtt3?}$-yE0 z=jXp4 z^G{sO_(3+Qul#-e7yakJqwKj6U4uTyS3es9huaNUZRK@K9@AfAAWe(aYR@{%9Tjbw zCO);P6|oE;c2n099gK66Hpy0noRmNGFMk&)Po@HY7jn$9?gqp)9?$9AT(yv0+<}d& zZE{2{>X)U}n`W6a_$BdlmKQI>lN-umq{+nG>z$3$&Q|Oe7j?(HC2kGQs`00#Egb2S zqn~-wKF(%nd~es1yCA>D^Mk8=y{Z&29`eE4%~ZA;RZtDFc9G7qG%(?CgKIOTi)hnQ>H0eexGt#oTnla)p3+IIG z-Ey+Q?&G%hZKn2YjK+GA_{${8JV)|qo6Ws3@T8+fN(h2h^i@gVBtLnJMos=x3UxY*#w#begFz$_LHf z^_pXVybW#Jc=mck0^I0c_~ehz0t}0oYDO>F*S4q_$==HZn%cAXlz$M}J5c0M#-+Nw zfhy7_C%=F}vZYQ}_=Y(}+>58N$PLysNy0KjYbp-ew$yh?yyCJSPZnUBT5Q`|4Tf~| z@AZc`%a*rxWb+JrUprlE$nVkhot~1yGSZroLMIsJ28h2ceNA)lo!=1I{p)7Fdi3H7 z?^YY1hwjU2_OMB9F2og#<+j6}%e%LO^!8cWL3pf7S+1Q z%7F=e$hN5Qi*3SfmSj7}$Og9!jk(P`g&79OX!*Q)%9a1jQK)bU(X&YU1>Ncl-oV88 ziAbYQB-;CC>v6v^3uUAjCHDCK(0b3=_9604=t>*>FFk1Qb$o92R8q&?&roXj zf{XX_Ny(f?$S9~`w{5`s3{BgM(bY<9BuP}#uUa98Ct84+=*`@`Ia%x~Z^Rp6dC^E~ zKvZX^$4@atjI@DH$hkfM3|kVI4(THlDCR{%wlC@7U-T=~DiH!i@k`PeK#O8PWxbM? zRe*wr9(H|l7QSBkvq#x zjsGbl>*bE@7Es)6T+uN%k{Cz>4dmQz=_e`{hVjfK1h0)xg$}H?ozf0Sn+v=5IQs>) zVQ)qX%SsDSYAv}FfY)TRTDc99S#6$q4eL*d6Gd{5zg;2ExZm*d1rffQO{QZ)MM&8r z0Y&hHbr(u2g3LaJbX%Gfk91*uZlb&J_&Wm2HcRzNUG`v6pglZ_J#ka7i&UkpInz|{ zOS;C}cLx_XZqQ1M_4E{xXj;Ks`gXW=o1s4dwY~(i^vaU$>$DRnbm`=HFWYk=>iE{a z#@W#HnyR4QgLf%?u_d{#S>86Cjpe8+I#791&ws3?C5mhmP>K1K7TA8lN>OsD+<~-O z4OMMXDiblMf}#@@_0-23J&W)b)OL~tw%>8Ajdydg?DNNao(qjPCT^9x=sD$BnqML@0Mbs0kMWo`q2W_U!&U)IzqwX>IPnC**X=6WNe z0z~sZql_+l+b#!8nxrdpBRih317~!+q)5ZBzQ@-LUQok0r6Be?kHUAeVke;9#rVcF zv)SS(kS<7d%z>mkf|1d=ve)*dZBQ?U#gx*LT5` zzBH}#W0ITSxz-O=5+d9F_MMTK0B+=UQVRQ!o8O^HXl4^7Xl6iE>(BjZ#l7j4F?FKt z`WzhO1gD18Ov{&ItVOgpKdL}RD-QtVd|F#ENu}+5M4_t@1D$0aiR3M7;kH>w@o_$moA!d_mxF zfx(nqfkGm9Q#H%s=^y^lvj#F=>?pkGQTEry8UMOWOL&%S70=154>4;?cc1tzI~Pp| zpmIb-DgJMUkjnRb_avOCG7e)c_27Z&y@VjN!DL;6!)9=j=Dzr}S6)OL0zaMK0-l+l z`UZUUh_WA(S7T#Kb&3H6giI!(IWnd_R>w%N;j;!)&dx2x5DTa_d%J?68%R-`rv7Hv zPUo_xy0W}I5;7Y%OdiuNnNL5ffOwOK)7b`AlLqA;1k}|HwoVSU<^;|5P1uIHz*l13(#Y*4F5KZo zV|H-X)G`9G+l9n3%Yev(AzLG+NMgssZ-28RHMR5;;*n z^)qhmonL}i4$Jyh86l7vMs?GUqM1@QyWpT*dj1BiPimT=qNKJ-vmalyrjcKF>pdR6 zq1NgiZVy_QCLm>Rqy77(b*6hFzM~o79%K%>GvLdy#!huKx>`#;AXheI=NeJY^IVjz zZ|FuXl@`{qTSk7iNU~+obt>Eoa$sG-y2vJrNw+GqvyA+OBF?Gx#%0~Wos{mW7Yl8$ z`PvfiecoW#iH$t41jD(a2EZ%0(yIS1S5atzIeVeWs6o+9HG6fL#Vgh5Yn3i#F-rvI zp&`slK*-tp98#^ZhCzVQiiTXbd-c_Ri)qaMU>K*(qNW;3YECsCk}3N7d44-X%&38; zh?!w%&ztBGg$~7agl0qAT?3y^Hl-SYr;(qYXH>YDb5rCwQb3ge%cagYen1(Sb)Hjl zrFzm3dS;wl<@Jbygx7TJz7>dDi?&@q4Ea_hD=~PZ0UHe+j`G0e6YBz$=YP280*PAUeJgQ6Iwr zS1wNtE^>%Ck2@I1DF^Lp>o8j`MzN8Timt>r-_8qkFQR&P%fkqXNzCneC^Z@lc{1sw zql2Ta-x_<5nBsJhwbfT#ZS}Sis!lf+1gwwMBvFX@B~?%>d0Q@Va6)0tz@v1$XG(Z2 z`5pqnQgoIkM~4A?_s|Ksb;CnZ2Gfa+3AbeveMW~SP<2K2`|D1ilM9nIg9^Zv7u;Y> z62#xwO?#CduBJUBzt~+_u53lOwEY<|Q;e4T{2utOk*Gjf`$W{?dCUC2yB^aF_}(wK z*Y|4|x@;$9nYvFG$lXE*sny(fF-|n|~1Z=EVSGxxodsSQLIIRqVyd z*ZE(DpSE{sO4^Z-4Xl=kAzNaGf>EYZ0)u)n!=F zEY-IegxJ!YE}saL=&(c3ZQJdx_gkF$Qe*A>xnulv6wUk34-epesZ~8}?61<(wXm5o zdx<;c>N#l^fI$vGXBuGpEOo2CNYwAp))AP?PJt!Z&< zDJI5IvG(vVYWP5ysCI8e{@(8>VB0uqRn3=+`ueD^`;~?9_$qWchHh8~W)S8QH5bJ7 zEJ+p>0cg%bH-_T8Sh9ov0Xj;lR?|2m1BiO7K;$5K&gbLI0XQiddQMC^ZSshGo=11? z>vHB*TH{#0rb*5VCC;B7mZx zLLK6R#@QB5ZrRWRS;Wk*(Dlc;D)_DCfu<5E%pbfBH9P{+n|{%qg=3x@O*5*Ybv!sA)xZ^0xE4cxc`Tcb2V(LJf`lz`m&>s zkD2fi3v=mkw!_nB@W@7UczFr=&Dl;)rXFj@Y^`2pNO<{93f^Mz$9i*LZYcMZifeRU zU(`bORZ)E6?Rz|`75aQ)2DKj^t6MYjGDjw{yKVGB;HE1+68dM@51B!Md_7~0FG;++ zt1i5keW^Ch@j1a1>>n`LZ(HB9&z`~))d0GTkA}IQsAMo_jfPIZjlrI|`%>6q3mGff z=7-B`{b-UTez&+bjBd2Ab=Ljs{q)>g=e&AisoQY>t^A_pgJM`_a?_`8}W-thawlnfYBmv8Dov^n!MP?-kHi z-5i|+;?mOaw!97u=_)Q+)V_@~?qUV`;(PPr8ctB1#dn_xLL{djtv-i6xpevCzVpM{ zsvu)G_!rJ8z{8RuNAFf$PL(}l-&i;M`|#-tYI0$w8eA20fkfuzNd-~8AgRyP#h<{j zdMtC2;{mJXXf#YtG@~PO=u1gzo|dr#BHfE}bUSnvI;M6LU|XncMQ&b;IIDI+b-unv z%s_S3Ex0LY+o4_vrw7vM+w$@8GWG{9^V8@c056(D>V>DrSyHX77_*0EAPKsI) zB*B(oJ8K+cJ#;Nft-vn@JQ)~Ib;BN^A##Tf4IL$~xI@Bn&75VNIfI7LC<_6UuDSlx z7cdQe`RFJ&g`W7bES*DqZ~V{wPaXVh|G-56)L5(Y;8}XtlcDO>C|Yl~oB57k&qDX> z$?a7{2EC0`@uG$q7jUlt0*Eke6=qO!o?ZS=-yMJ1vMxZgD$BiEBh zT{OKMZ!*#-Zc@sei%Pd!<^R?(cNoay6x|561|-423J2YN5wd;<8M(5VIA z=Cm& zaXohqMg0b|MQZx0TZni`goPtISwhjvfufJii)L#E_2n?FE52!6_8V7?3eHptJ$hsN z4Z|3uy5dHugC%=r-sY_A*!xde?0>(+2~+*jZVL+i&E9M;aSZl#r8}5QUs-!%QUWQH z)uyj4LU_w7yXRK5_^kp-^OD#6bJPEEO#J6l3>18FIXrMv0uKW?*$diOF6ID(ey@fi zNNxgJN;e=25N-dpJIILY0bXshTNJ#d0UEtUHy=hW7V+8QKQnGE6g^bcxor**@z|ne zJP57U+1^nBUIa77p~QoZph(`7TS20*U3h@%U}d#|;aF&5wg$M~8G>ctiVGdeJn=jX z#Kp%*w60^4n1?Ox#{*eGHn(c$RMwlB{By>#=R}bC>=BUwYRwSFM=TNQr6-TevRtSj z6$1GDlU8v}dCYNq=!)$>T1~2Hl??q`UkNsl+CCrn)ZKIkNLBB;OOmQPkDYIz;9b_V zMvfizY#o{o+=i4Hjbxxmo7H(1csMAeAA45Whb4oRtH;Ra1{2BoXHTed7Z;Xqox5kX zlYI5VQD^{_?YvT2V+Vnk1q<6YKaXX;v0SN)VU#JFW>oy$lDxW=yUwav{9!hoLfO9)Vu0te*p}1Ci(7TJ1ZMX37gepp`-&MgRnZO}_~4H^_}`%l{URl;Xq;O)XK~PoaXWpJvH5+Ku?kS} z#!6!9Ivq$}w3DvHdC?rycN?zGG%H@IUWLdSflptqHy@h8&W?;=PU(!9*JIj++{g{g zvx4UJ=p@0xnuZQFt)p3Hwd&jt-;}Lr%$|NE2UY&p#Fo3SsC)Enqn=h+iXajYB;&=a z8c(eohk2DWom%0|Ao1Y9?P&as-DY#FJwU^02zhq;XV;ROuK0Lhq7Pxt5r0fnp)*vC zd}C_M$HRA^6T8W79IShtQIWSCDWY?1;1}{lYcJ{w&L~p03Xi*;R0}Tn0c{Tm>ZnjKs+QpeW@gGkyc(U^ahvp1pGHt zMwg)2vgQfMAMZ3q8x#!}e4D>T2C736huGg;jA8Fe{q8M7FIVDp?Vz0se*uo8EhJ)K zQWzxkg}ZtbN+?HSd(S4LBL5LuM&ceZfZHk2rD2Z7k)JrKSk3cxe)5y+T;d$_mT_xR zhn+wSn-9<2KI#eA1SXAyBm*>YK8jxoCh-GuB~;WTp30H6}Zmv34~=Y}$( zFnI#PlI-R>tu&Y7{%u%Af+CisMU5)0eJ-)IBBMpA6z(08pev8pj%*wzp@MdC`1GdM zi2~#x`Duk)F~fM8haXZ^76oExx1FmKOBlBxRhxD=OQCCv0d0&f+jO!>>248+Jd94K z)(w7I;dj?kGj$LBC4rBmL3&?Qkn0 z%~#h-U;*--c2VGjOpImYkRV~fIj=!aN?x7xv%;ZU2ukOF7dr8B{B=h;EqP=Sarj7; z6+U{<*gnY=JR}Oip@;YYk`nhx89#<1G-fNRTh`@3inm=Xy(SL`lwKyGD=BxuRsn+~ z8B<%&9x;)K0-8zZb9c@Y>x>GPWaQ#&!slhS$+6AcUahb~WoBb5l?izVLy&Y#(1V(K z&^gV;>^Plcxw^<7`j#U4g$1ICI!oudOK++HxChCz6}vH>pJfFz&>u9$ zQmyvB{(3@lwDFO#Z|e}je`E0yFEnhvxRF#n*4r`Doi}I~Bcy}%i`m7A5g6C}`5R&FPXJKz%hhJDBr=ILB=%yk7Pj!zT>~KETj+apr9Fcc-T5L5zZG}|D`%wLZ4)}u zg)dOHVwWP`H(E_0==csh4mZwTZql*S%K)>7&Y1~$lQZu9Mwa_93|={VikeWq=~*#{ z|JjJBjFH{31KBc(gA8g3w(8hY=vL=ZU%{L?(+svZPrui{eaISlrJu5M#o4Fx+wNWG zb(nLO6w->0-#B8kpOWa(x!X4G$=e;`j?gatumFqy>$tJ*G+h&FrPmEo6o$qO*~~My zHJyv3(wu36EuW~1v4o*w4gyr4TWYirb|n(!j8k*>tc6H4mIb~SL}fbCtJu4Tr_ZeE z*XbUu|l}*5#I@KGapQ-j#&XFogy~1Avye&!6}a)_vJ%wI|@Emwp^OmFq60nd{PjGdVw zT=V5po&fBRC$at9z2Ke-hqprcJT|SWQZRK1%gJTw8ZF5dtV_8B!klYY!*2>LsG8py z2MR@QI~DT6->(wz{x;3QnBH%J*v3tQnS?MDFHD!mlwvT|H4kZ?2v13Y6NKt$Uz1^* zCoPkN!1aZNytmRg_}xxBbTLwotWhfX!hDXP2gUmYcP@$+m@i+S{i-p1*$}`NU zfF$Io^})R>B$@pke#S!V5K2PR&Z$lw7ROBfxq+l@Y<|v#XI3u&6ZLktw*m~73rS_U z6WVp%q@CiVZ zlb~)Ja%_j)td;*B{cO}A*G>9HZAq@LO!ZH>zyXma))wp7J<72tl$KRPe3!z6#_;}` znhU&((p|tecQGtE_3_b`yeJXimHQa&#;(zB$)(>)+jm^<{xe0})A)&mAnKf2?_^Zq z8`ht*yEf?CX>@=+kP<%B+@MRX20%Q%(Z!8w}?M8^)R}8H(AI3 zSEljej&Ea<#?pE1-R-)zrZVEYD>sLqHtl!mw5fPcmX;;8mn(bpti0Se0Sde!36v;1 zd)`W6=9_I4#Q;{lFhT;`ku1h6w!u`aWY;QH!fBQNK8!CDIR7Ok+5;I+Uu!TTh{YnHX-jKiGndG zRA=OEHH3t%;}JZb5+=0gs;7NC<9nW>8 zADdRC_FC~OUb{XvTJMya&xbHhNa}#6O{)*ud)`=|Q?XwjhY_k~d9EA~Na00(x}j)Y zelYFP$z7`*iQyUMunX`p zt*@!}QRSbH`G00=;WoKELY2MLy05!V=H=%_mzhu;rcQ8pPV|&_)os}ugFbEc6313| zyyBg~=18w0qMA>yDnJ$&y{XLn-G^k{w9t3oCNU!fKUvwqBj_L=hllJ$O@X}~!Gp%y zWF5dd4{0rbVc0H1#h1!OL^an|{&v_U;3}03!>5NwTsRtBc-}!o{0tA-P)A&hHL7&_ zahfH>8nUm+Y_4c`{v)KW?ow@+8LpwMwwSkO6ESk8uffkc#HB$DL$=?Xev%dMW#1{Y z`Wl^H+BmWV%wA6a2&3Mz*OLmeEO?a{u4lvaJ1TL#ys1q$WF!L%Gs$?1qlU_OL$rfv zfa{Gjp5(u<)^bDLoj<~$lBfF5wpXTkd7CEyXAEbcqzq6*d*-K@NNAt#_o={cd&*di zo_=R=X>AjiJ!M6lwgeDIBgiaKDNitlO-$5Y^~YlGbY7hSR-d+iB;`{GZB{R}+T#f= zsLSYRqut=OJ6xy52xH9lwb(^Gnw0P5u-re;Gz-bWuAW|3NJX3ymR;oGW8e(yyPOcT zAv6lrk~r?dV4GmCErg7LdGTiO=fyQ~PFPNs550wqnJnuLa-dqx!RE~UXCww!pL*Uu zNY|LyEepgjq95;+`(AO!^f#ToPASP zAx8AezH?tcD_bp&5+`4k@+2$K0633b^Jl|)u1agUghTe7)V1q3nG;@*3q*3PpXGE& z69&(1al&1tiE}@V+||BEKUQj-&>Q+jk>0Mimww(cljxj_ogudC8bza;8tdGiIafPa zIoY}Lf>Tn5BWkOtpm7kL!-E82*rHVMq;ou|M6j=`8gcEa%5$5P8!M_4Tcqd!|I>NF z9P&uxAUFryZ}GGuw>1I#d8MzkyOvZ+@w|T|;fM^tKVYv&nfcY>b1usCd)3?!i>vYJ z`HpmzFi%Ey=D*4%!&xCwDEYjX)q)`c!Yb$%@nbXG|HIyUM>Vx|{la!^$gv{*cr2)t zC{4$Wakgqy~tJfYbm1LVzR+M=2p7H9{a!flxvbLK4z% z^gQ=_pXa^f8{_`-eRqsI&i*H`_u6akz1Cc_tU2dzURbZNfm65a!hSse$!&4vvn{yr z#`}V#<6?ur+@$bWcBPz#*t-H&!FO8}qWm}hvDJ8x=6ELe{$}_`SIbRDli4R^$(Qr5 zEK`@&OLFWjwfx;(H{RL$V(;x~R{v~b(U0#fHW*zE%j;kom0CVn=D=y>qzIeU!F7w@ zz0&G&t=(~}jhw;Ijh{=gvz4A7O8d(~2~%sio zvA$}HUhgoc7WZUaU3A;16}u*zc%7x)+9dP`e%Va>j!XrZkx=dK6ur_%W&dB zrA;D97Q4~A_0qm!Xf)_b6m)^P^3^b}cotS!|LBvet*3OS2S#S{gh)kHf#gF1VklD0 zMqd9Fw4{v?n|ge8@$CtRHcVtmQnYDwq}|caPEGy|+c$n#I$?~J+RS%61jMM}=ur?1 zcEl^{Y6)onB0Wi+?5^mANbFF?-0)r(1e{Mwp~`ezpTupMU*a^73!u;@ard`IU<(H9 z(H46mhrVX!-c6zUoj=hU%5TnT0F%*1{YfrM^?ib~7JFW49etYgw3JoOKMah*W>788 z5yB0L)!pmWg7PxGj5GjINw@Q6&9A+$psE-Je)n3Ld2Lr(P&7E=C#O&bQFMwwjUI|% zLNuM=>#o^WdTb=k92LB%Fckw>bd#O6U#JqdrX0AS-CSX z65|71eMECiYejworA*<$_o@45+tt0dLJQ=YhGTiKI{Ag3D?K+hVwLZo_NIrhofT+b ziMoy!UAVAS+?k|m_4`KCr@DV;L58m8>!jP5Lid=e+%>5JEJ9; zb=fOcCGgQFuOqX~fuD(~~hpq0H#$wiON_2PCEkzF%#A>Ok%gTNvZHcu# zbN`d=jnq?|BPzg<@R(FLIKho`1#nfy>&6DQIp0gnZ&y!r4s%6wrGGheFUz(7Zl0gt zUH4?DSKPFgSTW6_#d^%Yk_!)5y?>zK6Y8Pg6^lXa34ESEqQZ@^jbIJ-x7pZ{Q#t-Q z?!CRFF1!Lfjw-dS%^f*Fw5x04-kA3o{=9RfuIW+^+ zZ`<~1b8cQfbA3Q}_DqF(L-qk(L`lJ?GhEY@D{3~GG^bv{-j@N>a-3HK{8!>D_MM&F zgQb~V%lTEPbdqN|j{1aAssOVb7CSqK6czIrf)nT3O!Rlm?gAA}k^{w$eCsqyc~!S_ z2h>fwdy@dBfIXj(yw=}B<0`;;njv-R^a- z_LXz3Mri^t__JkSEvYoM9y8Mc755b-B0RLJl2fu%a4GPb5L3s5*6P8NL-0RlC+CFb zVL9NQ5o@q@a8oQi@IySPc(AfJ>2$2E!ZX%L6Plv{yAY!9>7=&XgC_WTR*GR$Qp1K} z#YQ*c&P_eXMMsYD>uTO_l9=~3t_XmttR=cpFX5maPfMqG5@t6e9bXH*uAvq;mUcri zPsLRiUwL6!lw5WPob$DR<-?;Cbg1S4^6sqKh&!+19ldwS;dVtnS=r8-H{T`aNseFL zSZ945Ja~1=*H@UUK`*r1EIl}WFtO0+WVyCzT;rjwmg_CJW*0W3U>o#H*GAw%&4@d} zKIt-`nz-9igb)=g-V9WN8 zzpaCbS&10Xa#ZkRRSGgV?*|QZF#Ot3*XUX`LJ?`N6~$$myrKl6wtktYD~;m}DjR(( zs^?84qzk`$( zX(h)_6*x+2IkC}n@as&6a3zHe89ww0t(9+CSue}4aWv$9G8n!h5t50t$w2>?6j#Fc4QD^fqx5tkQv&yY&DXT%xSIs*( zB_Z@9)dE>8nE_feD){)eN5@e`=)F;fG4nc$UL#AW(4Rp&VrT#M$1RC_2j-COqDuPwgZOZ~d&H3qFsB&;Pe6n-aVGyW^ zOtDX0w2t@a2y%D)i8#{sdi7#&k1G&Azf7$IrTe19}*1O9$9tvO9ipt%;TwR>1M8AEK$&if=>K(jHKNB zHPyOJ_@OO-ndQ`Kyj@BEn=uCbmDjh}c36=22wYd2O#iI4KYtg(>pUUb>93VHlWlk9 z)|9LNTfmq!dZljUq(C|RBJ(w*gIcB+L2o%u+K0A@#R`KsDe5aLK^A3>#v@>Pr&r@e zVqt}PJ z>M1y$PS!d;ELn4RaQ%OU<}OH6l5%a1BgP`np981b+S#kjyBP^Hqk0kIojiFhT^dWV z{b9>!zW3IOZcWRI?&8)fk5t^`aWvw7FDgQ>s}gE5;2Lk7cyr$xiO;`%(OOv!fEbbd z@VEEN$5s3e3_p}5ff)VQUf%y+63Ci0&y4;}2>whHxm){hZiJ0L&%BlYudmVldE$5I zf4qn6On~KoWngUk+2n%C|M^#`DQy{@N6-3#?6m4P+EAE)O+Vl4=EwAhyo`D4eP4ip zm5anlkw@Z*=*ewAHmhm*S1ygujR*MS7S@#N1hlj}5JYdSN4(Me`J6RcZ=%C_L?_N!dqr0${b2^mA8 zF@<04R$F7nTT?4+r(~%XUCvs$X3=%-PyU`HrR9E$uv?IfR_Id}e zPWS%0PxLKWRe$J+U4Afj+ty%ua}1dPl1OFQQs-qkUOym)q<5Qtwz~^zo)CVk{k@Cw z=3lvDvIHZ;mQn4W*#*CjyY2`7Z@K8`cK-aCuq*c`_vkP@kDdK{EPj3D`@oWSe=&P> zs`%Kp0=>it*`~cSaqQat6UI+|f*|}n?he{5t<%aec%Oj?|5GQpX=0SW$I?7~h zcdzV@8yz-w7aacUwudL8H~z--yRj@QxpG}bX}=m*H6G~lSo;9)lHNS=z(5uZ_je!V zAu@7Z;}zogzti;v9RK`z$LsEME7A_C6r}Ck@OfXlZq4@>FD5<7i8qv)#C;CKD-)ss z8I;6-zSITHMBG*z2qoV;t@v`?F^A&eT#;y!Nj{v|5iv!<_7H=;0fz7~fr9Fabk}rc z>4|8Us;}uJ=df|omp*2Y7 zwGRucw#_yg%c;9V4JnUCdqjSekLtK#JWPomz^w)CsNX2FUT~LnWlM96qk%nWZ%T88 z_m0HP9GP+(bi9})bj{yuC_#B3eB@=Aq^?n{izr&36M5a(zL=<~V}tVyv!Qw*N1DCG zD~*hi#l~0Li^(Gcw9iFG?m>ea8vpz7-i^GPI$F|SOoQ^wgNt+FC3#_z^r%S=XRfg^ zdKjPS9yAumt(S$8$EJQc|74#_KtPGk);*dilboKh?uHaE@i}nK7hJ;$g@#;>Fx4DrW!LICmi_Wa5yz-k1qsw7;I8qDZ zy!T@Kk7|~*^>?K0>xI=vX>;Q}#2P;@d@4}fa^!N(+_xVZ7F`zcJvolhw48bbCnsvf z(=ga`oD_Q^?!#-;7l!dWXx@VMwg_+!_P!Mot58Y%tZrJCV~7v7M6Jw$%&WxwYS^6E zRK+EUX1tl@*?$RD8BoExv5g(#Gme%N%Li4ZsMS&T)pM=t=DHo~t5QQoJ{Oq_ap0D( z(v2;n<(E9e&&mYz-^}uK?9mH4N40C4WBVX8WD@fr4*B9HHA1vJ?Ui7teui21lR9W?n}%vThU>oDv)!6 zCxfMwtw=@LPX2G)W*gQQ+9Ix&4j0DkFM}Bc4-D)BxCEo&gP-E0p0N}PcSf_v7E1loX-~Q`(<<4ir{J-L)yL&^K}cDOOPVI zTb>a0wvIxB25WllE1^yr1iaWgVI+#7gc>=V6guk#&1@Q~@zs&s(wu85tiXloG<|QM z<$lJid`V1_g;&a`KcASb&{|bB44(VmTK^+vi1seS0ujOif9isZ0a3GS-G)J>gEc)Y zNAIrDJ^vv@?yg+HxXB}5sn>6fKoPkaI>$W_SsN!!lpmiVgc`oQA4{D*6Of*WKWLp= z{m~}Fd7K&gG7*niO`xbF-n>r2FCqsz_hoFXaW&eSR=1$lvaHJ;>5@z zPRK*^(q~=^Ms4DP;Dtsi!08l zm+BhM-Sr4^eo|J7s%vK_y)kTj+gL#g^Sh9k8uBhfDabe&auG`!=@5qc2Hhz0Mbm4) z0Tiwa!GHWOLgmTBlm4S~@*2h57iFO}A&ixpVLo57rnaQN$nDHGcjU9|`@?RFv7f;# z8uC?M)WW3Jex_0N;cpOm+$*$3{G1XQpskJkJx9H&h?9$;PY%6~kfpe)#~OJvwHZ;O zwf^XM?u|l=B&Ry}2lxVIpHH9QE4jAuryk6r23I`m^9;LM+=9Ni$U#G-BUSYTx8fX~ zplUy7guL7535=vlUpBJ&tHtxpP+JX8uW{R;n6GAq-#{WmnKwo@>Y<*5>S0unE*Q;t za>BUmMP}}^qW`JkJk#B3Z@6Q@(0J^d_eegxcQDGE5J$jO#(oR*PpDTj6|Ul(Ji$F} zWCHK?CLre1$EPxvKy{|41J1k)j(6E+_HAXG3<^ZWO(wWFv*J8CVlf(-$XkYg&sMDX zfPHFS1?RPsz zf(L3ET%k9pGl|&{eei12JkG|J_A1uaEw0sds5-dIJ+UDu)R|V#Xv`RkZz+nJDjA$l zULW*j3T9mU5hMPnYaVH%@#Y);iBYvm3S+d5N?2&1Kxcx2atPHAJtDvOaeD&m=45ib zmaS0XMObt*?k_NQ!36)Wyv+LB^q*G?=1ZnLxn4VT8$_{Y(i&F$sl@KF*gJq>K`L-k z;glKgMbNy&I=_ZBOIMS?`!dyxZoTwCKs}mfxI**&Ls<Mu2DP<#WNuA!eSyT*{p;9^=Dx}(wj2u-3I0WT+zot zXy$z2mm(B3iZ)mokhfUw2W3@+x=~BLG#7A*dky(zyuPu}%!=S*XrMDMZiszgzhDSV z-9aZjRQOiaI%HTblL)eyg;)QnWjX9=INqRU5?Cv*VKP$GlQq+->VM&Z=>9qty~u{A z%KF{K0sA*4R=GNYdU7n<+8Bee9i!>QHu6)rNY8#fFU=j=u13RCgZwqlZac zaZ-`|HDXlyVZ?|xNqRsv7;VXM+{5%3hgq)Z z8makJZN=yN3w{{!U9W~s(j>n4$Nk~H zHy+}zt~Orl2LpB^EliNhQ>!%{GtzDUUGrO09^x2~CA2>C-!YGV!;l5yazGUe~;|6@Xo z96Mh9rouVkiAI+o&tyL7f4fe69PGLCcwxOuC800j-;A#{zf=EZ@&4UW_|tzbuK8yW zWW?~#ApA23|F`jk_tLs(4SL3&M0yo}J$;ctz5Vp4iN2+JxN3N}iFL zg$j;z&0qN&IO;Ux0bcF#-`hvis1rELoqvNx!FMyGj{eQDUxl`e?l}MV2H1*i7VY)l z%>OQNON7~;zir;n#$F*wfBd~k^-t&j49h>%^2=-V&m#JVxBSBue>xlf5f=Z*(0^2m zUr?R@Xk7p3ivPc<&@Uh0Q@8zc_uf@MoF=;R5Fbk9`?0-VhEEZAhN&RF54+_F;Fq$p z@<+B$O~=dU_({1LOLZn)>u+^F_HY+G>Dt1-+^H5eM`Dsr@EDqZUj%M$8I8X1w`man z+XMXKv%f8g)!#QqFb@1}8~ix4`dRka<|QlHW3z3tgkN^s8}yKV{CenVz>AAVP?xPt z^l+lz;SH^$aSQ)4KnSH?3o?vTq}%b?sDBw5Sf3X-h0Zs+e#w2e~r$+{c*>>WweK4j${ujO$7n<$D5`0X*~u=xbtFrz~5bQkDvl0?+=C) zsn*?O^Ii7&@AL4=^LzS~__>@g!~GZ)8kD!p^L1o25CLm{w9ou<*`El=YaQKCXPO!5cj52oGrrtlNg+9LkD?9dO~($) z^}})f>(<-_4g$L_vk8;UGB`a6Xc<=V4be8C-zCh5V3b^vGl0KZ>Q@rb+9O2YNb)^4 zbSYmCbWmz^Y@WraL~^|bhAd~R=fQ&#$AvX&yqqX}ji(h6*%G-4UVCwH{DO3UBQOfLe%)RkEecz6=2=a!f&^xQ{E%gEMGKbiap% z3xR6gBS*9{1A~tH>O{N>iu+JF^iFOL0Oz+eo3|l{lk<@? zddM_SqL;~L0Acna1x95Ilvgo}D3Bsl6TjCUF%&OcO=GQC5hVmi5Hek!<*idGo_`7h zBH~(gD21fP#%$!H8;l!A^WP(+0FB<}`cMEMul6k{Vx-DV*3@UPSy8MJD3c3AhvHeQ-veq6A43^A#1H0+1- zE5c`F`Ak>M#=4~gyJLM_clRt_mbr8ng-hdSU(r; z#@W~yfZ%>f+r~^+0)9D%VPJ0|o?=3##BW^uXAE=75MtUgyB~IUM3#|t4fo-JtDIWw z^@xxew!J>Bh4QYCm~u+c;8&7voaN&@sJub6h4{X$PY3LO$gRR}zcZgRZ zEvW%Un7iIegrT0+j}{Kcwh?j+J7aTU^ui;qRB1}EzO^bmK0;vM6Gs;I>+U;7TYm0~ zQpZkr5{A5hW~`MOtx6@F3}qe3@Z|%$=rY(4*znq-a>7y+MS9uLI)XV23iXVeuVelQ zg=6yDFPGNrx|O03VVrZS3u!^nt!xxqoDI+8(o9>upC+W)v_(cF}Zbb+^cmp?=zcDPXp_k$o zdH^9n;N%?T5y-S4=6eUoNQN^QFOSh|j0J|YwlA_{_|cT`bwka3KkSDLGb40vY&Vl@ zwir^`ENEovPl{W~Vnq8C1hT?Jg&HV&ESE8-7xTWv^Ms&M7KFPoQ!P0@#QLf|=-XrO zxD$a$kZLY&k-xeJOI^d`Pl4ZgEi4ET_!we&S@IAioN4F+=ucLTKJVvW%l&aLWC8*Y z&%w`bVX=EaV1=Xe({sGz&2nq*@>~V#{XIngh`!XGV0HN167vNaQ=V{o;i&jAZK0uQ z6QcEANK5Ghr)UQ6G&_?7q?z;EKgNZ%k$XXj4bNiD5sbqVy45w&|Ertu5HQtnVUnoI^!LTmmztgU`D~Z`nes z9w2++dm&?RQ-BE=6RlYf&rANIqPSdpFeXWO4$3G`nN#5jqiW}>xS@3ngAmhJ_VAD; z4WpdzDb8KybwLECU@4O~`zp7YIiZ2RVfLe}66afyw6f?Kzx0tQR|v=?DIh(IGJ)+t zIRqi5a7DQ5W+6y#89Nf2Rarj%U>`=zu45{s0_h@tHpxH%C=%jEuVx`^n9-*u0$BhO zS;`Kbjh6voq~iB^zOL*aw>O2xiy;VokkUn72Jm`@mpduqY~Itdve#6*OPieYkiCVJ z^$I|DOHnK@$c>ujTntm{G@uDoObE~EA$h*|Ad3O+iPwm0kd8f`u`{6*CJkQApPsVL zgbBu&?^{z!S+MxAlpwcI#ow7czVJ37K5zt|Q;=fvn#+nFoBHZE_n2j9jpY5s3`Gjv zujGzY=xhGzQSQQ1#7YFv;zQnr`=0RqV? z#?MkoN}v|*xI+&;K8%Dhz!11S;eAV~OqMkq#~7UlIg2PeX0e6e<)XHw&~f;cC&lhgoaj-pp+b5BO#N7uCT?I;|h^V2O ze5OCpV^)`AfE?a}lun=r%3idIf3#8DC(mhuFJ(3k3*Tdgw3HOx<6S&Ru>FXDmu`!- z(GmP~QV1ey;XK725sP47Ho2D_I(M8B5~p#^UPR>QX&7X>N8KQ_;JX4<207VjFT6V+ z1r+hhmgyFxNN4?d)h9!y1Bw7s9afd*HLF<_^%@@$%wgZ84Isxx3&MCr!?jH24VlH%lng&7N+U^yxXL7rufk2oaje4 z0?{EW>&OOW8NeH+6ZrY2hvy15-TS%{p))iZ&r+*PO>d;IG~%bD>oD2CkJiOm6~nj5 zc|p?1Cu&@OAaHQ5PO@vokKRwZfQI$})J8;;7$nqDOWZI?)+<^Z2Kr$t3I-0R0!hCkqDq ziEJWQ%s1}ek6rDoljc!#yZ?~Wg(h3V6vu^{ z9hFhX+yjGaU&lV^g6JC5LT`R=oUudxQdmLqv@YqsQja~8 zr%=B*09}4Du_a)tq&0rgHsc^Iek64E_`G3^&1_I`0Ld^{&2Yh_sF2=Q)Nj?d;2^`Y z)&nI7oZoe~xhuh>_4D&%^pnJi<1Ax#I;>$d2W5aw=XXm2M}`%3SU%VhpiFW-rMAgU_8yA3 zEW+8_gQ8{D%$X;3W0_Q6LSaasU3l0LVU>0SYOKN~<@xYFx&HhU$YEfOcmmD_n7qT5 zCkfz}CPRlIem8w*brrq(h!1&q{OKI39|JCMnHtZhmevXt4u$g!2sUwGiJCR_?hS1$$=ehw6zNi9(6J zin94+N!b|MFD4@QBC1njjDZ&m?{zFc)b0DNvYFW!o)wR+Otw!?&)RruIcpr{6k#|% z=!C+kA})Jmhr$_IVF!Mo4DV7RM@YV}Yr@Qbd~W6V9CY)6L-sCG2Dqr0woF&T^W#1Mhv zDUh*(bb)91-Zm?407nAv7U@KfVs#x_db%u`W(BTn6WmyslS!{20`6h;8?v%1T6y$i zrpL(;Pf!04;(SVDUrksMaA+)8$V3)p7vR4!-B32Vq*A-Mp8`OyCn&hqR?Rp5y;DkX z#_^}|Rap0$1$X^amyBG02|pV$yEnbdX?6vGpN+hKQH(-|U~6J4`*8lq0l zIt`IKit`4W-R*z?`_FNlI!bq(#&t{h*`OPtz&iIGhXB<3kFHP1(QwP$2}uL&6Lz zPgdcT0*$8Mur>w>M(62BmDHFg>D;F>mw=BxeY zZE-;%$Jo(7ycp&Ec3?em-G;dt4c}UqmiComwuzFVfW;VfPWbZC$rYE9LN<+=Edf!V zY~wFvJZG6LXG74@S0iNLpMyr(oHQOioR-HCBLOS}PKHrN)gP?y!w@tyUyJ?x-i?FB z)JszR;nRXK7qpT%(^^C!eh!D3QpMaNW=o$@zmz!1H4FOvInP(+LVKF&mnbS6MXqdU ztW4PcqvL4rhSHgy;vIcR`?zwKmIeUDuF1ZsL&z31FIL7aU`S-|U3vf)22z!3w9Mnm zG{qVFI=Fin2S(Afks1_S)knG*Z__5ksvRSA)HfOGKUH!Q*7ksS@#5sm5LO+wq-Q|vSkAJVh7Jww~}r@iYTzLiIZ z3wi=o+JQ49pm7l4_Vb$Is3s~m`>RyZH?AYL<2`0HtZH0cZU888VYHR2gu~g_}U_2V>=8+K}G7>WKqkouw$*fZnxbV@j{7mFosYr(wr}r{B#7>Rw zQqQZ0Pu}ueu9!2Ht`rx~CYEhqXD)5A>0DOOE1z(~A58j5R0^g z1X1o9Jr}nOWcT?DfUu;D6@`L_XZTW{;woUzy?X&j!zBjLF~tL9!E0$mU)q5i3lR=- z(Au~8hQ=ia32A30vEfN~QVtBaiDpWQJF9)sOSIc&NRZiLi|PFKH<#fcep~VE^mKf; z0y5GH8m;s-8+u$w-EC(It?JQ%9#cHwU(%~=z0~1s=xZj; z7mW&dYs)}PS#Z9;&oG-ixuBZ@nI#?+77TE3_NQV-{eKjrgbT=bN=?hLFr-;{o>*(q zB@4A4t_*gJtn?#DMnJ5t$*q?Ow+tolPz|OZGt)gLq45vBmI$A(**w3G9*9XpnD3F_ zZ8sL3-6euA%7IGd_}BkJ$SFi|pXibtO{%l7CM$n>2YoC$i=)A%v4wFx>v!mAh0Zfk zzH%?!vck{*;glJEh3r3MzT?&uVMnn%k{3x1L{I#VeaN~H^xEQ@cgChehj&(g6vo6~2VSgdwcbhEK z8Y5Vm{C8h;BdTyJJo7tNgbbMsza3E+JS(IPEOpP8PT(6UzT z*KQuoq2LugudN@ACCARNCSBg9zO;+9vhe-UKC2Qk)`goWrQAzG6cBaS`dYb6@>nke ziZNk~^$J5f?WWQL4u7S*D;)4z_j&tlN6qBPH8ayk+HKIs6RdWfJ+wLdx2lwq{vJ^w z65A$8GUCyBrz_fo8u9N|#`jgc4%pOx=*wl0cE8K*Y{Q(V_4LA(E#L~q^A|uHfw|KD zmu8lvsDWq{Rl@HXQS20SKqmFEz+LVWx_xn-Q-^Z1AWP|i;395Pr%dO?_z1QX?OyR2 zxUnwzLEjeBeQq-M$YKIZ8**Bxy+!;R$Mm#NVGGYN!U?tm* zPgS~|_S>;Dldh;>YV*o>8;Wk6#%MflC2{xdLzmqG2jyoQvu}<1W1iD@F*ADX?>>*Q zzm1;p3>&P29SXXifq99DoIM7w?F!vA>qED)(}!x`gA`?7ty6lQjev}N4+ELkJ;X;d zgs0_=qG-HlrZpAt(3YnUy!pA?OD}y*f6sjbmXu0B2jWNgGaw6GcJ$nFnEI}pxOr37 zkpgBP@x`{c6~1wuSabax!1~8BE9RVM#sS*-kzhpkg*kF%b5VV!Q5WUaTWxPaz0&)- z`AXp+TK|$^G}`YRSKb%ytJYKfBfO4KD9zc~_#~5qdVYU6f0s<(-|~EcAiZa*2S}jr z00@&-USn02(nsp26fU)lZm+qN=Q9vHI{_)og9vToMi!qP4751(!=tJ8-Sp)WXZ1PUcF5L>%(Pn+tmbiWrHb1T;1t7{sl0pg~X2oXHJ!Xq#J$w7@%iZ-?vJne6d&cy^ z0G4rE*^MDajU8*L4ed`vcFq`X?}<56kLn7o>2&{-BGEp0H==qeZ$VDBtBfjh3V2X5 zEmF9@BtgTS@VM)hskAMw72?Yzt27pDw}ig!7HZ=|W8(u`+j#hyRq zv^zXJa)pO*Uf=G%u~WwYzYDb{2D6?xGUqW->JjxGo#offBqwQjC?vDB>%${H4NpLQ`*cn-l_ue_xa^d!f{;xX(vsYn|oY!B6 z?=8grpa!+)=Gj!LTKxFBIJ@@PQvMRqM|4t?Wq>6M#@+&+JVC3+&0 zG5O|)e}Ib0$5U-hgsWat|Ki%F6-Yuh%50J6liLgBb?Ytww zopF89ofTzDwmIEktHL_3kWCH~z5dWF6yiopwMbWOXu~=aIeW%I@w51B2Z8m>7rzbe zA&F`xjEW8WV;=fj?KnK@N?6g5xC&0q^iPUF* zEIC5Qb5Xeqd(XjI>LH2hD}fl1w8RzhRk_604;KXebv`Tjq z`OeIw)8N{(GM;~PKGko)Szy_gcgIy$p)=qZa?L8!6JG&Z3NeO`dzZW?P~hY z_pH!r2l&J%TH<=8GnrMo&`S9TcGs5y81rPp+gwDZ1Pp_7j|uN;yoB4`XKpX*SU|2#Q{FsJ&}?rM4tENw!KWm8�+mBK-&|y*X_2F^w`^_>(!^4psL8#+; zdC7M#+ojEG7u?W4+thQFT#_^j&4Ud9_Z?L1U0!_@9Lf-WD}fz~RyWRuWs9xVA;a|? z_xKBbFGe-VFBfAw7i;W04uor|?dF{T$1)f_HNcF=q%bOeuIM9Zj2__z*^3ZJ$vR`t**d^YZ3)dV3uE0+<_`NYxc=aBo5zaob0_5M;V4tFO9 zMQGY`zsY)Od+2j6Rz2pWwl?de;*njKr_O@843kRVrgn2ph0)htZnK)H{q4;@(hOL( zuf5vjI^RuKm?r^B(=iJh6{#QI#jMzm@OJxx(LZFaW$`yN4{4fjA#7=QW~#(#E*y1n zM+Q3AuiLMrW_|Y#owfeEMBDAVv7tjpw><}Z?`-|VzRS?+{Dhi{oOr9*A5fevw|+{+ zqrV-n`mvBwJli@orDA@fA$THbwOL_8RmnUJ_K0#eXeXDP+}B4c5>pu*H^7X zm)6npFNx$u;8o=_QPcRnfAsXW*J8B#J1n1oJfiG^LYtxTd!0Pv*n+z&8+!O~=8T*s z+Ed|zOMUY1w(C2L-}=#)bHAuov6c9G4YGX|+g%cK85mwgRDh#vP=Dhxd#+p-AQ5MA zfPa4Y&a%lt)(RmbX}UNi;>zgFCu*!r!en$d&)tMP__fQMIQKg&Gc9B8l?L+rqwtoP zSbe|V^v*@6(0$r+Wb>OQxMUv_2T;sWxZSC6@?Y^!Fnx24)UUmpw`t=8+0Q$y2LUnd z>2>ZMxn`&DhSQbZb9m`%!|Oef*ogKXlRstFPAE&b>(JBz z@xe?P775UQ=Fe_y`{TNT27$oM5G)b&a_m}@H;F%;Y%}ifuD?BhQ$6yFF+JQ4MZ7@l z(w?F!4WfYOCHa8ecKbyu{q|HgJN_8ua$&;iS4#!zZ^y;O0Wx=v^`Aw^G{_x9>B`4l z>W3OAnfa5=gs6S!J2ekCnP~Lz;{})J6&ub;&|g<%KGNfA><@~ilbo5iRJSk)`0a2^ z>UvfTA|#t)BHYO^txPGh{WAyfq5Hz8$lL76n=|hqH|^GajO^_19Sf$71u^Drz`*8Q zp|m1}Ejfo7(Y;T^{e)u0Yr3~9Iuw!y5eFQa zw$Cso@b4AOSFgxVb3qe71j&QiHVfKau@^y+-Pba=T+#pi*unG2JDp0LILl9!4Iw|> zaDz0z{wcC)d**q_&Cg!es&1@uad~{mtcllI1iDF;aYtMy2%bp(N?ty+{W9{0P!l~g z*VuEQ&OSW=a>BMr!ls+sEfl$hl-+Zljjv41#K6C;eB5ES{Kb#n7itSKNJZIb%&-f= zxv>{d0uN-!ea;t zMlokbf?JAer<#rMA4@Q4c7NBTGB3g%x~oi-CTuMUSln;bNTaSU*$fH2ew? z(xk2Npf>5jZKd4$@2;o}pwP-!=>9syEr2D5g#E@mQXWEDqjT^&`)J$5Iu}VW#6@n{ zX#!8?hrBj-9ItN6_tzE4_(MhXsEf6A@zX=)Wbb|Y74^1*db*I5 zL7nwkSHJS(xRWqbUvwIL>{=lKqSBR^@8izTe|_u|d?!^{=y%5n?55weA!%NbKgm#a z=*y45oohmp$K}JdoxNKtf>P4q;X>R8S#{s*tZx%Fd443RXj>2U$+~R6`X`3QqeVM{ z-MyaL2L6`w#L>j6mUd2e-`kYp9N!bj?5MNUxz-vG*}#Yq!c(r-ZJM=$#dZ3x)@C;w zMJrA?zZ9?DM90Na-i2>h3vN@OLe@gi8RJ(+z+CY##>XP0TC9jFBm+U@=i}E?^gBp> z8JH%?r^ar5Og5r^{$MJwGKAN$N1x&o=&}&MbIN2&dP`K`T_YMU!iwpy0=R|H8S>bzkScpWl6+uL)aHt*I#R*zjF<%ZG7k$dsWjN7=Up zs!_V5KetTY)S5IEd?S5033(0^26m7$#gsba`miSsGt5|-Xv$G*rx`PL%#UUq&db!B z-0`Tpt|1^Hen9(rtj1D<^g?=_VYs-+5drDGjq8g)Tj{`D znEzr-tmuqddr)aunD7oro6+J46geTa_wMs~eLqC;z-jIcUc@lX1b8s9rvPrE`)8L znsRKoG;7C^_fA4R$9-Ml9Cv|Ve#kzpYU;7E%HK!wX@RoSyvPoi`t1Xc1*H)DMT6zH zYe|Dsg%!R~ay*UfN23D2-6=CmFu^{--v6o`Q|s6o6yAx`BNXB$B2`Ucmlzlym(qW^ zh2&|+SP2jUu**{+IL-eq=5h89t7wis9~>MT zhsgG#(-5*+6(G>kR$NHi&1qKSID=ub*iL?Ij9zutImBF33h@jjcdym*!d%RlnHU8e z`TJgXvX#-=ksr$&3wi=7@i>@kUew=nS`o(CGFq8Vlm3BZj8I)HvTaV$4wyo4P%B?l zZ36PZL9YH4>>PWAM@?1Su(PGK&iWt(R^^<7^L34A8ymK#!d^fnDu-}!G6;`7O2=$& z4Dbe-7#~HRgVC4;Rcj%&08wNA#++VN^q}G6itGv;)JT0KB1mDA7yDLQQc*T@ZG?o4 z+=${fR9=YZ9^622!W1sb)$4SO7p#g{oJk6IST3y63sK-<*s{d-l_FIO-{g+ec2))S z?PlTZawUvI`AbMz)`0}cqL(Rv<4zK;7GAM2{a`O&TT{#vil%cX>t79@4(WgbR0^6` zp$MqL^K5dN<$urYd)E`&H?*+bz8pqG(dZE|c3x16GA{fLsnHbDS3Ev2dB_*|7*V^truJ7zGshyq5CfvfBWag*y;VU2i^a1(As|t8k#zTS4K*6g~eNTrL5@g znZy8VgEMk@WG7SuijcajJ+;@qk}LCTjHILC!WWUM%aTgHaw-7vT?x!ge0j0EqhyeZ zC61-g*PGPlRJC>+ond@1|e+f~ydN*V%NqOzt=2h?0# zPf51$;~ot+g#iY#u-x^5Y2f6JGzpLkdDu!nV)pim-8t(;44dXHSF z50JV)b^c@DD$q>hob={cQ!)bYy){dzHX>V?mk&^9)K6V&A$%NX^J-SP0rjRK7wcRa~`)1kft z0eO%7{kaL1M6{<^a{ch(r!P^?hix>;^)b`e7A#yV_~k)kuE^UG3VhcG#7b!p6-g=2 zYIe5&KI3Xlsc*X``bX8m=0MJZTUvn86oV`@?_;71;4qXI*857|*s33J#E$(WKeLE` zv_?-TLtF9Z6L{>0k; zgfwT8U=gV1SZ15e0xZ)%<>eM?mOlN%eIe;lzn9pMgBJYOP#yA&6(@?azO@q-9!HWp zr<&##YgVcilegM!$5YKjF-lRKcmY9{U=Q@unzP}^CGpB3Q+57uZDTzV zfA$UZ8sm)e-=QDIpY}I)36Ubcr%11%F2Ur$N3~u0!Ij)e)~eY7YSD%AS4&rKaHNWD zgEs(NxCWz_Ljr{Fkc5QUeaHOoi~So({v~>m@iC;nT@mtk>R*@Q!KCZi*-x1Mnaj~{ zm(ozlgA<=>8>C+KbTu=2?noekmgbDgsy&{ND`Cco_|_S4L^EGGuI+wpvyO=kwV8?h zKq{Ev(scLiQRso(yu$1rU;i;F`1ebFbNh89%%&wf{b zl}<0DPhBff8MkaQE(-zro9KOF!tBI#sx~^2J$Loq3#Z76kZ)Ls)pn9}{inpr^i1yu zGAJG{<|V!iv(NgMv{k;mS#JQ1R?0di1dObOzX^hZ(|k(x{{V$Md;k zub-<9z%!zsneyi_7x2|#yGyk&%!6nufBrOVnOW(a4-VjflQ4zbbjg^P`fZ~YXL^RaSuZ7MECUsG(8`OPE3EJOt!pql+KN}iK zg5dU%J7I2p%-AE>=N=`=nLu28kox_ZbGDB|S3=)hQynionSNsM-gL@22-^}nl5%y# zxPSBPzfyk6bhz0X(IuVa^p0xLtD83$fE|ulQA$?vZ~29axF7F_K${e}xEToV!t0R* z)&X6gOS>uK-gd-muXs^y{okWZ`0+}v$A6n6ebh!64=^t;r-nL>bHCCG*5heS*b?Bw z92Yq{tz(CgHtO9rbDPdt8jTiRj?%td@E)ZU?l-&id(shzs|nY8Gyu`r9DONVOGRkl z@f|mB5pg0X3ZQjx6pWlgx(A?=|7@=HJ}WbLb{J=*J-uCw z3NAq!nrVF!c3)NbmVGnCYSYGn55u2%jM*|{3^+-c&0?3!TV(C;`Pa(%>?79&s0)I( z`Y;2J0(pY6V}K0wVC7!hBsn-KgZbu4Groy7+%=l}8nzWCJxQI%UQ7$n3c`fXX#qy) zcOjysbP^9t%w~RTa}d<=fjj_dBGq=zN7NZlEL3$T{VM6d;cXGMDiJ^NZ{zKsWNZmd z*H?|QW0$nsNI>OgfT4q5TNYOPg&+SQea~0D3i4ij?LTv|I|G`AB0bEMhYDOEPMjZt z`naoFC1$gi^?fs6W-(YIc_71LLKVLx0Yxw7=O0!K={6e-ZUDD4S_(6Ht8jv;LqR5a zCn4C-qHD1!aUGhF9mTuoJRjwA>(Nm_6LLn~G0Ed&7&rH5(fd}X%;R|yh{JZDczzb0 zfzeOto{?w0P6Q2A z`>If0(7n;mEd+2kc|%XHkNE!WCqwnaYw5Br73$RRqp>}}`jHzhvw^q0iF5l zi@pZ~z`N7E2PcZo{agWAA=3R{TNMRTDP4e9^qV7zAtEfx&&U^YLy|448;PBC;{bj0 zEgNsp?5lU{@Lwt}hH8sg)xH;oTP$7d56J51%AN`Y+rk5hGua_BX;I`oka2LL6vncB z*BZLsuCk`xf{*tnxPonWld9B}tr=NP>~xU_x1pVRy?FM_7~sn8YbT57C0*NOPvN_E zrV8Fd@8$k_l94(01BmTCO|aNMT>YxZf?H%~=q@-na;0ZpvJ~CBRpcznOak6HW2CRy z@bkeDVA$-JXtWpD$S_LglkBFYrcAgWd&nY|&jzo1yPjWSI_*mswJnTqdv>2}xR?Hh z7j=!DJ)l|c{9Aw8&B?|_iZCoEC=ZxyGs(t0w7W-)mrMEq`=gx#)w>yZ5E8a0e_RE{EQ7cU7qh zY7W#kBdkH(^E1~jGccVNlWYx1L^DQZR`~rrh7_;=EYmwlmSFw;Ow*3`P?6%+kBY_4 zo0VtfGmZ}D_r8xInl?h_LY_wJ{8~jM*i!}vx@<(n1LGl!F+G0*urnWlJP#ZbxBCLvDjLHpB zqBbh1>l%f)+fyBwsJS*&4pCHqAp~;HQ?lX^idn>OeTK{%dymeEMEUP0hQrfyABaE{xf3ioryME?!gH0HK@x$x|*=jhO z@hKaQG7NpT07^gpU4;V4BYMKk(hCQHq z4Xo{paPs^IL0}yTfoDbazywS^A~vY4Fwz6c(j7ypdDtX;_yQF)9$E>lrUFL1PLzBF z&cdH8whXo5n(6o3NnK!6p8SJWJmD>!+EY8%9$MJ2Jvovj-O<$)o_gk{9~-FmOa4n3 zX)p(^duVJdKKro1R$!NjrgeqE^X|gh_$|52iVUe|TK+PZ@PQGw^c~MPYNTum3ofPG zRf2J+wkvf5kWAWF`i}X)fH^Oz$*QkoU*hwo*Rh>_Y&f<8Bw7_koN5D{LjdSn!z%6# zKAd4+?^`ST>H!-w7Y~9USihvjT`3G~Na@ZkAA2}FE+i|@Yaqvna5n#P*(9%(6CUUAl;n}H4 zF^WGWYEz;s=;-M|aytbqY~5XPQV!9G-1()uzQv>~f|& zS7oj69o+i+omb~kR(DEn<{y4xv~7s?(px+)>;@jf5y8|LV%WLkcl&s}gu;|<^h4GR z*awH-O)p}{qi1@qZeQ|h;5HM&PdVaG!V7s$7?sQ#QOMNE4YVMdD zjeg)&G#mlc;M+LADsJN?RrAv$jQVH$W5AY8_2gDBb!Cv}D)ghK#6-fU+T+Q#JDuZR z4vl=vv`C%oL`0O)!sLTFjdD4DiH6TqZ%=KXO=DRw=xPW^{{VhIMD8nIpTvruE=A*k zGf{SwLh^)s^)oWv@z~PgYL(bn-y~P=ZY@3BtA(ydrb3t{vo^NiMvqDBzr@G0?Y&c& zhh~SCXhVVohoFs<;O?#o!8H)9X*@Utf?MM>PUCL3 zdG|egpL4$Z@q>qFtu?D>&pE4B)fl6Q&`?u&^^)u*5)#rYB}G{+BqUT25)w)&1{&gu zW-TG&#up?dSt%V)ll>f2&)0g82A_x1fJY&*t@1`47Oj?^Njw$b43ora8Oc@)98MU_wsJQOfLiYkZkvVeu!k-fHwG+-nP%$M7!82!l2lSNgwx zb=&(ZB`J@?H~>PJ$;s;C*ErYR&CmY(6Y=SNliR>GJa*V*xFdP2cvcH!GD^=?3ai3{OaV= zIgP}EA%fjUnt$2s)(M0;`XfdKDa8vHTMU>Q3ZEaxLs26YH}}D?OA4=lrf*NvXz?dU zect_$6?N!++Ew(*zou0495IqTJdY=gkj+#%v*D1%)R$DD?HS%oTIFtM76l)+LrTF*vKINYsPQ-Mq6^-y^iZSzPXF z_oL1&%e6{($#d>jn><^~Ia?uo)G+2)0tVNr{6sqKHm*IX2O$>F z3&gbWQ#9cC(*1pXoM;1Y?~Xe$G@GK0QQw6c5*b}-Jg@hn$cS0*5c&jEGe*h9-V$t~ zM0HZkmxbs5ZDOr`H^>oEpm;s6m9Hgs{loLMQuZ|Mr(@c?Ot2(IMpRyU8lCn7F8ym} zwKN4SD|UPPEQOhCRym>{T|EUBDK~~5p-@KqTO7gNl(zvduHU%&4=$3R!2nNdm5)CN zl*YKe`r@ga!0l8)l+RQIl^aprtDOyO&esQ&eD$Khbx4L>AgiOBqB|*o$?+FpfR`$t zj42eNvzXEVrb)z{ri079?abS3Z@~c5&bMBtM{@oahAR58xFRqBl(QZ+MWmeEZH{ubGWC-nxREWo`lF)wWp;wMUrtJ%`=B4yK*fazvgLdb@r=sMau ze3j7$o8o0%EG=68+_}K-E@*N=8VEZKZ0{CT`7a`l=wJ; ze|F1Ca#=*GEL*Eo%{8OZ+Us-s6>xvvM{*Nzqx?>%toq)`E@PEZcmn`uEv+R=JYQO{ z+z8%5On+IXFt;wKBpz~Q@2~OzxrxZV4;#o18M0UyX|0|1DIYfcsk2+ZUErim&o$ay z$u64$5ce%RxML=}ru^%D0dH!L%bu$*Utl6@|zBM)%So-3ZTN$K71)J~jyrMAOz(BTNiM1BRD0R2@2 zd#tAx!j@HvM@`}f&kf52>r?SG^QGZyf-9-b7o;3LY||-J_o1OBkBdGy1=iQX<6T$A zWqj7=d(Im0c}y65!HXWGJj)I`4pGdgk0-3uP&hsKG_0-VtCpL3N?dLIGBmP2Ylqlo zutEZsWjbz07M5f+vNuXD;H123FUQ~%QMR_V#X0ebbJ86u7P`%^xTx{VS>#V^)V<)= zb_`a-;G#Kmb~Ukg3mYiTpwQ`U81xlmP*#W$T=;|pVzS)0>KSOOz93Je2Llv1))JN$ zF4J(%`CNq?x4COqEw#NV<}^uWWPkq-{7%$JZM!ZKiG4B9cAn=I0kQ}HpviMurH+`T zTGcR-Qsc(L3jOs;KP%bz<{Mi-ok1W}IWoDLzE~{}XKbdgZp0_+F10Ye60gN$5IBj6 z>`^}Bgk5zSyLihtSZ{m(UaQy!om9jtH4>a3~T(^9`u-0X^U`nwN3aI-nwm<&z!hVOO*- zw)(Z^3&egR;>)!|B$V%mhsgQSB&Tq0+iH~m!e!NS(Evd4NcN1>gqGzS4gsf|LHK>x zdDJhTWmHGKy+|sE=K!C)%a!gqvl=&@*!Hy( zI_&Z-v57Q>hS6v$>y*$%Bo#&zbw>GhUvuXc45Z7&aq2yEB|cp4pCmb}%TtQ>#io3h zC&$VWRxJ~-Jy|j@K;$&>+vrZKbS3O8EQ(bokng9s9U+ZA?aIkg0XQjJQ#5Lc(Kqs( zOf8i5ZvrztcjcyXfcb5?<>$18r54HgDk8`5DD0<>ZnGpbN3XGXrtQU5d)B z^Q^`Kk0k8GRt>Km35)280~^s<_`+(w5hr-b?wt-xdlA$B<+*64%5_bzOl(wr@?Kor}zY)57N+ILFv!8<2gLh#<#vTVE1-G536S0$69s`S}T3d+~*F$I$ zx*VFNxeQ8=Vbc<#r%~;>PH$#NjjjJWE_fUyvG=MT1&&RZ&p3=@*oe5Cuenl)ITt~j z57>n;^`g%Rn)=rgq4$6)ED~Yk9{3sfltFhs`UEz!%)U%Y*+u5QJG4r`yzwnA&SD_< zwl$~ir=%6XQl!rKcXde#`N^}a#c)X6yQZnP4l(Y&`ouY58mgss4m$$ijyaw<|AGh*&Y{uwF zMQsuZ+4WeVm)I3)f?n@RmwwhbR}Yn3N{5fROxX?W^OeWcvhB82EPx|f6J=yc$WQ%m zu8B*h3cyPsXB@PoXmfyGYmsA8v4$qAVMAcF5tk`hgU#jAt>{z2A}g`ox5cRoyget0 zr@a6C9PkHtm4-#aua;=pPyUI9xM4`IHq#u!KEvBF+^psq&IXRURotmaMv6av&b6;nR(ho#mxSgjX0$RyXDy2`I;}7OPlh97Zq_3mTkb{r3FdBx^AqDS7 z%V!*StxyCk!wMRd;h6_>ZCPRaa{>A&ta0QHF~=obvAUZrg;SNPncR;#=e^u<8G_n( zcPI>c36ZOj-65ERCO=!y4Aj!aFDqf?zW#mR!dK^JZhsoVyC5l*OZq(ITOsU$GqgkH zWedvbHwRlSztV9qMSP8ZLhISL0Brp3(|I>A#G1AiX-f(})490o8M@JVMQmq`^x@&S zhm`+QqzNx>W#lzF_HF+K@D>KWR?gfeGZjsKMIKA=;#Ly>ggSYkuXR>C7wI!)4*W;(hcvcp+6cv zdjo6MGJQ%RoVk1q%g*DLQ&R9^1gtA&e)z>X~eIidVnju#Y~Jq^?ZeQ*^uh_X*{cTVa=F$p5KGR z5s&=QQw@O*2QjkiCcMBTe%ByzGDK|JGv;Gev=6pC%Lem&?vhPuv3YBmV()blb-U8Z z<2**UF8==Ap#aNoZzq?w06$A8XTa!nSagfx%5jrJKeIAh*=Jn{> z)`u(_EJudACp?l!+P)r>Jg=IyN6zz!Qb&gvP{q@z3BgXBZn|9aeBg>@kJ1!KjxvwU z*T)&NBMsq>3Y2Z8%h(#Nfc1J5&iz0vw>Y>zGks!NY6YQ z8p2EQ)~0CMsjE(iZHkM!FH9gK!4@Cze24L`X@le8OOFBIr2C)HH-@0m@8+CPq{HoTp%AG}yaXhQKIMr*|$WS9!#G?}?dn@CH`YaluAx5M^{>{^VEyqGD zP6aOx#6AS?LtQ0d)>Gbx-2xgd29H4O}^btK2zPli}i7kK*}9VPHOYyp-Z z5~YUFNBW!|^8U{Af7Wrvw@QYU3-o`d?>kow`kBozC_@ye^ma4EmRMndLKj3fx4kUj zGE+|#n(!#SvU1}1sI=;B)J>o?ujnizh*k>XgZ1L!=lhDe z67^@FDV%ba5C7c3dVNJTy^Wp&ru!t_(myBMgP_SLe&Z_h7bOC1zTn9Bi5aJ9{SPt< zmc3B9M8*KpR+_U@vLEW-MbY9?2i_7Z8a1}vxH0F9`Qx^FR+{Z^%#Amx>c!B7diH4x z+Z&Br-wFi)lKw1!lpkr$8NGUa$#lg&&Ku7;Wyc2qfQ15|!fhGqO&e@mixxWU$Vlm~ zuVr=M(v$B?jDb}*OR2~vGWF{=K=hoJVR;3-F-X*-A+3ZQ*V^lAhq146-P#LOVw761 zuOCc?^pZo=_T%Kig>1S6jSsmm8Gf3_r#0boe$-+$sw{GY&zK6IA29Qg@uwu)ytOH= z(-`28a1EPrj2=-gPb@-pv7LZkqY9Siq`f_cCnhcc>jN z2V9kpOdutY@tvJpmC+;ec#A9XKs;kuYRG{RXb-Ty`Den1xZCDtcuuEk+8(NM3Ke!4 zWsa9F98`kjwsu$M6(3X2d`diPC_E1mV+c8!&ZQdZD_xutkr%z1mk7U znaoXKM+Y$*wq|=7q88HNc>lesTPa)VzB31M$rniML`7dRO2Lb5(xIzqnFj6ojU4?2LVc`UV z)gsCA*hLBMCO1e=Eoa(-YV8iC&Q-7A-|s*Ji@`P&c$etd)RJ*K29&CEJTY%bRIo+5Ioy&E1!pV~h$D$6~Fsk_}!CG!6Wks#$fF?B;A+ zz-X3T;NTtcxpVl#_Qj9ZWm$M6^>p%QO4b;Em7kT$Qa><@4&;2Y#cCoq!AawU?Z5V6 z4C$1p@^7dNHjrg}@C%AXaS6KeXlrD7gK2S3=(7aSW*MpId8F3FdtO}m*^JvYhyZT|T0=`#N}GC-5iOFb??6G$ie za$iD4UHWtfS@v>ZVko!mP2zTy)g%Q8r zm`3@MBvHC1I*{G81I-Nl>fM&37_aR>Gq!NF;?&Q*4rGHG#~cR5WR9+&!Edhf=0~`s zVxZXM3VpfLyNv4meC=!3JBIlTDj~bnIxgW}KZV%wyMTUFlE*ZQ@gCPN9{NU*%fD&| z$(BPpfBkJHXZ%)ZNX7j^v2uA022AUc<@ICIg|yLBvl$$s9cZGo$@()nJ>FNIGa+DrRs45wvP(t`?dpM~LdXnmD@aJS6eBeltM5vmq{I35=E2(1jIz9H_V?xE zzTWFPzZr2=PV(tT+A+Ab(W&>Qs8rQDwC;z4eF_BW`!vah{on8xJh!8k-m8J7@@*6h zj%tqC8?)Sik*0XiKHP@aUe~WVpE|V$&}J>@oMidA0+WW6`x(7U=L6WS&=ZS_QI37` z#d&0C`78o{$-y}Os#~!*O#9!Fm{whQ=52?tXXcj|#Kp(jR(4ry5rjpX2N1g~)r|Av z*oSZe{PVysa&S^vrS%kCMg10!W7V!RvJ9Vt-ZwFWJxOfACG>HJ71zqT4D@t@YU3&= z4*6KZ@0gfG|40=$OH_~D2;i5S*J&GLaZ|4zB>bVp*91qYeH=@)+~}&e>Elnu zcweDiVyz_Px|2AZE@Ijib?O@Y!-fT_ckV(QHRo zO)tq=*9z!+&WIP-A(PWN&e=&CDy%JJXAmAm2XY_+-S5XTU~N)4D~jMdr@>+UZD)w z$vDzlUS05!g zRX&q*OTp>3k9K}p-57L``(+6R`SW{^7=z2)E5^3nbK>$6pR>AdlW+d+RhjbIYiaDk z07nV0{;?C~U;$QsmtUqEB=iFLsbwdOh@qAE^1%T4CA4l%%V2gJ7s8Zk{DKrmKeRpW zRVfrv%6U}eK+|4z0w`LHp}VFPDh}!x=Jkv3QM}lz2@s^Mn~v4kyP-|D`%MSG4*Y$JOS>>*XAb`C%|!gd}c5=rzO?3kS>)H$pFp_qEt3F-fQK%Liw$Y zzd_KOhD(gG=gV+}ZTE1i=I@}qZk4ec({p>ihjP&DtvEAdYMjl|G)6mqeFnx%+=)wc z8E&$cYNm@p8T@SAQnZbVV`@?n#fxdmtWqo#$R**rq~-lv>a5MPFZ2pr4>jt}O<*T4x??*Z5 zhDxvHPlS(b7VNy;Sc};k|EA=c<^q4#uj^)p=e)<~6*)Esq(O~L84ssdTpppi=NqLJ zp4`q(EzvO0Djc%76Ym?F^SviyHL;}R^NDSviW+O94Pl?Dtfn-fq$qaL&8W36m1q7= z?+B;PnSlqj7KF`ch%qInjk8b(L8fd*`k%<4*`EmblsI1AI@sA%k`OTM?4N#pE+Ao> zd=M=0n5;7AqSVE}suMnKJ*iVz*%pyV6M>b(uewYobuBlTtOw45e86iBTQxBsT&w_} z?gpvvQ_~US&}+&EnkEkPXS_X^Vy64-^NRGso96Fx@8#Yg71`}+yD9m-g%ZFg(^Cb!ecI zzRz9!COzI|TR?^bIXoqu2{b0bsa2I~4EC1U3$fNbEB_-b5_I!h$bJE=Hv??9S=bZ* zWv4|rOA8u1>|HUy^$M3C)`lK4)q}B|4$;uicC7*hLjQc>^$fWHik<26J1&;)84h9N zAOK`p_zn7%T@Kd+!P3jV^7AJI*Xt_cj38ZJExpQ#=W<&@#RLs?M|5M|UAK9T6|~xM zRK&-$VJ#nTQYidq>h|gy)!I?8-`%tw$8aURP*jIX0CQet&^-Zk!$7TVTuB(f!~ zuh|17S`dX|&6|9S;~tbNI@$nCz$8W*j-7uh*QU`>JsgD@r>(+sKCxK;^&e1>XmgCA zNZZvD1yq4LxWf|ex%&mm!K{`ul?`@6D|LmcBw&)#UVFa#&TNyY(&<7x)@V2FGYpS8E6_BaIANT3_EM}7sPN}uzO|iv?0X;vt3sf7Lf$n1rdv+C_uc<$9KftG^RzUHQ}KjQ@;q3&(FGiJ+xt zF#i#59&kcbdkSQDawvW3@fTt-9)l?}`iDNO8ZCA5JNX1LqOF2OfLxTqnZMspf;6d4 zaLk10{Qum2?ROG1>s5(akpsx=lS>?X@2x~66&NrJh@rWyxo)zT;Ju$6y%qlT^a|tX zN`yGCGmn?(wY+{7v6~%=5#&V234rTGB#Dgkq`S-z{__0s+{-IrZ_xn0$pbG&;3qzm zXf9blkJMSU>qD#Jc-9zI@-OB3^$J3_g)Gv~j>zaFdT!HI`yP_+Gv(#~ zWLDnZ-C_29`##bab^h~Fw)g($Ee&U-$hh(c@h51e+aB>YJx#P6E@ma=mZGC;WZX2b zAi)|A?)VWaCdx;KtF00b*`6pKFqzzT%9{|DvZWMVqc;MX@ru`k9VsxIyi z5+Nn*vSbAm^UD>)&rNy^Rrz*b6T}`@>+Vgtc63TEp`x~qyL0QemYejefumgWKV*=d ztihE1-co7doIoPZDx1noNI++U&MVmHE{ZuZr%v*9j8{$$)df=!xjBD zulHhHX=g_Im&e3K?S~yU)$%XLX-A~DOW<-8@T!Aj(|1jR;&PnY=`m8#4as0Gi&N8b z0c-N+`PlaewDc1LXrciw4=GFyETjzDT|IqVw5ApWWTShoQ_>M%hjFK`AgWlMUAl2n zI`SP#3Y4{zYDo(8w)Etx zc8pTHP%RcGY=ddmdW!8VV_(sv{>6m${_=t20zcTYE{9R$3r+<5g|riiiQa)8i}Ok# zJAAk?)h3Xj=<}RmW^ikePk_zAw8F&O6*R41nnr%lg2D};xW~57bJ4I!`II={Ta5yf zDSa-&6t`osu}-2sbS23s@VXOGPECxCn!+4^zX!TqXT}&sM|t7+%?E9p$?nmSHL3lI z6%N?AveC+S5%W6h&$Gd<#6GU~HC#AgEjz5lYraq`K%i7n?rf>Xcsf zWR9)?w7QYIufzTn9It&6=2?4Vy6t6KN@4Tuj_n8qw9(+ zCH=1uWaQMXeo}0XJ9Vtj26b<%&37HX-LLmFdT<075Q}=MUGT12D1a7}^N52aWshwZ zY2JD0iTe^SThNQ`iLQ@8)rSFYI_F*{Pl%?4mvNZ>h>+i3d!ti;!^?~%O_j7!RfNp) z-rx>}A_xTLp%nIB%b{BFLpT$%F>>#Dr`z2IsghaUo2C5ent+!nGsqL6aam;hDo58J zhN)!F=tkKCryh2Yrzk98;{vI8bCEVD!`CN3{4m$A1@f^g_$j-4V$|4ZTI8iHTu4Sc zWiir%N#SP2P*lP8VKq3fS0bdR%DK#6z4iD`GL44Z3lPyM< z*vJMR&Vv+3$-~{Q8pTl*Y{}*?3mJO2S1P><+I~VD?3IVUgwH<m`_Vl8ki zU53qIfgO~ykTm3XRltmvy`qVXMvem+ZyR+ub5%`LA~_G(trDBKCE;rW?=JmiES5We zyhMwUF>@4c-Tj!2dzckxOodzKblWBAMtAu}y3+~T{3eb{A{D`@+v$t%#)Ln`l$|8$ z=noN`LN1$Yp<&Eoo?_iXhd8+vG@=1pxhUQzYc|i++%_Dg04AcST}ol*U1`?{s;_p* zC(B=Rh*ZGHK8&2xv0>@4b_ju7pR?lYxA;~%A9GNY63o0tuoTtyy(xDgk%LFv z>lWvsF}40f?=#vxBX}L=}9GroS7H`!if=cjEW)RI=GGm|^+-!howbGVvR z4vOAb^e3}sVk2wuA;_|um+U4&a$988iFEBB%G@#-<23V1hf?3&=K2+U%(}=7Bd#R| zqu><=_tVSj_o%1yUe#;c$IYl_)g2ZHp)R7oNZRV+_8M`WN#BMfX61R6xiczE?#Nr> ze0!rN_mtgNnf)Cv2%>Kn+$f<~m!%Y5n1ixE?o57%D&J2#od0><_r+G3*ALf%9j+G- zj+ys}KjE{pTk_mUe0-xS|N2*d!U95sfa^jW6wPnFAg&L8CaNg67>_yYYmU}MQro!D zA*J<8$yGHbIGG?Rl_QlX2eK=yG9-x*u2Cz%jTM%ZThJVePJ-?}Z|wNezu>OI$$x>| zjS-B=6is`oJ_P)7SJ!_KdF(MbW6Q?KHj@S`=eMRrkIOC@i|%2YOmTo*?6sJn$SanX zy>bVJ%eOd_lj3|#gNB4jKHhJTDiHGY!lc0AD&0nH=>Stml^XI`^wr%+Hl*Z~Sv9Zv ztJyTq@2Dr(5o@KM^c7 zY&BbO*Y#c8t1X`K#0q1G(z0${`dLT64rR-JeU%Qx6)jK&_rM8=%M zB)zM`c|N2;HQmEcli}RSVL$^Jw$G7|y-)}I8L~>?390RG)r?>ORZ%pz)n^}>WkGws z*nUS-wA&@o_#s?|tdlQ@ zUk~H#S;*7@=w9{lYZJ6r6Js#__VlL(UrCwg4E^XrUr76-igdWejRDmYihU5Kvhh*viwQa@wc$$bhKKKvM+vo1i;!KrU6Zcs8MABg8N8~jd zC~+&3dTJZJyp4r(SNFiVf4EOTVDP|`{E-1IsLg!(ndNzklWe<`zch~&laR~)Cm+@K z_eRSes>xEPIt?Csl?a7{g0C^WeSsB(45yB5X`b82lHDn6+`_1&x4@Idz3J&ckL;X& znOa&3=n!p7=lYiUVmD~!{Ey;>>VijUcNdK%$tQ$ELBxC9@_28_pF0Jm*#ktP(>J$Pt#dQM}{d-!ZZ3u|!!6q#~qpp7cIB zouV8=8E?~)0m-U{y8R5U3q^_ACv_3^-o#2qpvE<0Vd`x6=0sA|o zK&tbwGYE2*N}*z(QriAdxCkU;IbNuN?E;H!1?RfTI5&5ch$5oOUni5k_xgB%?k+QK zz1LiYYk+tHuS*q~44UzFP&tDsh{LE=p8pWay2E4fLXQn4`D;I2^lVH*8y;Q=MbpSa zK79l<^hs|)?fQVHf?392(zDpoHRpWR5q=889T2l`Ur_O#kr9vPEH=O zX`GKPJZU1o&eBvJe^Q~BMQPt^Q+yJbJ!0W1N2OLy`*SU!$zdy>R!;w%^*IWs5cU?; z7sV#w2k5KG5kg>9Z?|z|a2K0l<>%eb87Qi>lx95U?H|wAfjw$q%+H*%f9H07#Ul4} z0o%Ql=}GajL!lL$!Hw>^bn;qvb8kS%E@(1GHwab6+pRZa0&(25ha6~FG616uk);}+ zb}Do&V%hf}*TeRED>`O3vVy zAsV>yxw!OrsQ5-;=fPDul${n9`OQykx%uH%vQI?E01?Rg?LJcv0ZU5c>zmInCy_;d zZ444iXSN+ISqv^ZW5!Fg$sK*Mo%RzCCT z#?zl5p$Af4Z-D><$}15T7M3Q{yS5jl$O$f7252*kHV9SVm+gKg2gty6lwROojMOUb zIoULMeL^R~>oo#ezKfXM@d|m}WIu1iz!JxnHIg|q`w6JHZR;%PlF{i0A~gmIWIBs} ze##CtYcMYZ(NV*-C9f=thtri^Hu_nQ z=~zALtM~_i_F0Sp87sb$p6`PHdgwnqRe-nL1XC`=>7|4frwFA}{484jCp;TFe5x1a z3#5CryY(SP#H>2a+45b6GZC-vRy-GaL?4d&E&q`ZZ%GE=RCoR0w7-a2Mn&U8sCKe9 zK`}bZVh)pt6@u1uH4=$Zo{fi1b+lxO1*Nzn;Y%O zC`p8LL~Dg~^w9VV5^X5T1FT}+tF9|5*es5`W&!;`8(eH8kcQ8vq|$PHmhMx|QE-LR zF*{A~gA44xbBxy+f7;Pw{()7Nr&(05QoaIeEXyePn8A@KqNk>m35a_MRABhL?Lsh1 zfLcFp=4_NECjxd(pB0wLb{YO*3hNLy4GIdlV`H%N<#Ac_=1>W`?($`jx1Z~Gd zkj(Jh<%6v)`hIwkYchgVDZCUCv<0);Dx<}{Em|W|5DIaolDBkT&K#R0($nsAnEzMK zywtyluSo#D<)^X8L4T*sH9NnDJTolXqF9d$q$axv3jHYq$M^aEPveB54&v>H2wT)e z&_B8~yB20{cvCI{!d!*c_K%{0jPA&TKoM>jpatmW)ioQ)3Obft-5Y%rx!G`3VU#Os zNn`-#YMc&8U_K!-|CZwmD%qbs(#lnynv)knV-Cy+#W!WHM8%WW!)*lT`J76wsYPhV zc{Jeirpa6pB%LmeKy*q}=sYbw!URSHRy-udb|!@_#!&OA<3OP|YzY=~v&_nb z_b+mar>JuU{rf@05ClE*aW^}WUx9ldp*on}rBO0s5TBmapa)6fsaNCQCWTA!=kKsJ@!cnB{=bKeJDzT7Am<7j*D!M4`+|P#$ccQNgJ^LX_2Vc zP4d5OBSz$-3Mw@Xq>DPt*F`+-%74scJNGYYzXy{3V0v=$|5!&jhuv@4r!)HR4~%d$ z3xb{({d0c*>vDX2HyU{83IG4kbN|0XFaFn9T*TO@{>4%8d*Xkc}j<^A_93r~D z3wWgdf84T}_;kG=ke>SWzkicJgqGO^(GieZZOCjw->cNPgi-){q~-Ctp_l_5g(F1M zjzBSK0$0T0{;$u$l@1T-9|TGS1Z2DosF^I8F^){GV(S^yOq6ereglu80N|5n9YNjx-NPG2OHGrHlG4jrNU1cvS<8;JxYAJVG{u z>v|h(YW?Lc*>3Wn|FL2Ci%o2xpuj+j?sO%sCO2K1sZO9;uCN_YuGq@opU0}xj8z*P zt5dqTQMuP@=b{8RY4wnKbDHsM>-Vea%gf6~qVuKyc?ABk2!hXX7P3tzhQ1LlQQ#|% zBCb~SX*A)nnYS;lm-{qoTER*V^*&458by)e@LAqSgvN~gf2`1fOi^1CP3~KCrmGAZ zS-We^#hGDobTHo0s?!ZbXMuz8d3@q)yMfN%ebNXc|MPIs5+M-6M!!SFgV4$X|A_{d z$A=)?p=T&4uwgK!%YAPp?kV>@*b_|1s;yfzlI;XM8$qm=h}S&D&IV#DF8=RUu>U`{ zf?RI{Fg`)|tWi16|KxHx0DUx!*nJO93vU&(G$eUOjEB&zzbA9Ki&l`f6NeINGnL27`3 zMY|cN{v8bLlF;+}dz1>fR#5)`@EKWws{X|xy{dPGnK1?K3ZNGlp6k-bx88@9WY5V{ zJIF%kDk;rc7502P&_#OBd&Hg>n#F`_K{VNqTU`Y_{XLn|HsB0cCDWC0ZU=J`&<}pt zB}C`LJZiZ&Z$t(W&eJ_QdbpmFsh&HCpiK+Eju9#ARlSx7c#La&^B;dw40hIqFCmmC znf1;|_^)jT&*m^UEH&a=Jg>Dzav?NU9doBHr_&C=%dVcG@kxE+9Wo+-!AI7e`=rK3 zOcw!9$@&w%u0LU--!j{m-+IBR4JmF&Pf-w3T(G;rmv-~HUsm6Td@hD-IB22|mLfE# z^OW@z?};dNYyl>1^F*DulPtu2Ve2)3-*-P_IhnYej!m_29LCC$IDQ!%<#RkD1vo5Q zp<>u&&n7YWBAk|+QrK6eY|Xx*jxG&*(Ov?Q>E>&c_I`NF*y&V8T3(<5*r7!=ue! zO^5^I=%&UEgwu63T%7$r(Y{o5nY#S=Gdg6yf(Q1^cig(rf}&0vF5!z$Q5cnHgMOH- zjzBEcl-2s9z6eO;wl@Mdehj(9LJ2;}9zi~1m`E%<=d^%7xVD{Cd+b@PWWMcm@8O2F zJ?i`K*BHEuUSQ_T6WPof8ytOAVMZ2UE*|^BW!6i4@V98c!>^npNGj~{lZmV+y=U42 zlV{C=Y59z@_WF>1xe|HlL|smU^Lc2c1p++BCm|`>`_}sBJST+n0o#*`<^dU*cK6FN zZ49?dJ^)09fxV}e$*o}Mwh!o2%TDef{@S^)>w)|!!$|_57?8X}0o*TH$a0{tY+VY_ zKlf?HS`ZxVTmA$dY5&h^c7LK{2XQY39BFI<^y!`g>R>&Ya>NOrE`kdme^2jyNhxT* z$RIsYq?!d=&U;{nRh3JM^QXJZ`tP(d>cgeq%|*0~)@T z42!y@`HtIG`dU@2yTYp8=@fhv^uCVuo$4_Xx2cgoiJ2q+2*%teY$=)fdfIk!s7Bsx zw>YQaBJeSa=X|{BH@D&{(~#H9cu6fb z*5GZ=Ap%-&gK`gg-))pqwEOBgF8UN$<}|sePgAr4MAViO7kWjlXemqrQ4bUQF-`1U zy9BAT>JORRvl`QAe=tAEn>P^cA1+t3&iB{b#{@At?QXEL)PRRIOCiv4;-K#2`u;U$ z?ab9U6>kH?_0Z%eM(g9z_iRzW_dfy<%0-L)EtSvrPD>XEp$fXv;->=(g#O6|-X(`% zV*R+jQRhvw-Q;Ydmz_NvX)Hr!qFt0ygQ=TV?$r~ud zC3@Q@g}TNDIc(G~&9cAu z*NNYZDt_Yv({!{3fru^S~&Tqlp^w5ZK^LlhRdh|;A50*-$DyPm93Q**)TND=IE(3~pbz2K|+?zPVEh|uD)ft~kK&(0|5VhlmkUMx5gw225&5xtCpdU9y*@uWS}FhDJx-zcQ| z)cL!kvR>ue*w!D>8N4#N5&>1urYqBmr?=J$hrFG4-dZSooL#-JS?UDd;7~Fm+VgmJ|IP`*ujc{(Yo}O2KWq{2UIqkV zF+3`2QA|h$(R;u?OWQn+Rf1Aw1*OSo6;UU9w3gfZ=>QP3NwK{^Oql;2lq($0RfWHxBBw@e?)aiVW=(KA6)tl{=yOgO%*Q3k=f zry#W#v#-F9M>YFz8~V6CjD3wApi(2JWyJYnAqUdb8LhXq z`(hv?f3ErR7EQSBGJ5S+cD22zmo~jmPghd~`wfcw8 zg53sZaFqe)UE5zlIN2+sfuouv-4>G;U)}lq+&3a+@g@z3EG2cD??Z`ZSPoBL$!TUx zmaZ`lshDP*S947}Le{SYsq)j|U)RT5jdI28!_-8`Tae66+4=l}>hJ%PBA5{*L-YY*h+js$@h&z zKNQq;lI7pSpUK)#Nw~`!g5agsAMw8KWMi-R1uMW)z21PbhQ-+OKuatW9>#>r=y9?p zSIU1~14!#0D()cbXa;`UnG|481*LgVxlX2U$Lz3r;`uTYYA^il;L!{sba=7tL|-U5 z)b)7hk!Q{$CqfMy!|_S3jAJP!SP`@y*L;4ZCpKlJ4Qkf{kz(av&|i$w#ex`>Ol|=k zw=z}`qCc)uvk7uR`L{uy;mvb<2lKpHc=ygPHt4ZHzIOsUaUMa}aY8Th4i1e5t#ZQB z>gtca@%l@o*Ch(RvC0}6@d!?OM_ z-A$|rNPu#8t}F@u+h-3uX7FHTNpITQX{=-=jnlO3%Hd#Id+*r}X2zb7ee|Tww223K zUswVat+x^B7O|H03Q4?K*SyDnvYwh(gFy14StdkTaHHI4$qY;SWLIz&d_V3B*DMt} zkH1^?*ee|FMqyJ{1sge!BPZw~la)r@LGtQM*e5{7Is*n4IvWV8;yKNz?N)9so5w9S z6|G*iDGt>>yXdzzbk3_ms~my;m3ktu&tbyg;>%v=m8Q|fmg=#F$3_2EhHbDMTBX!_+ zbzwSoJ$(~GESrc(ixK~QVtXqdDkDE|PA)({Nu&>&47L%Dpa099ROeSYlmmm$VG`@s znze<^DCVH!8CHAw#N>xoP>R_!4^Hdu2`Kf!?+cW&0GXReV?RkGU#-3F`af*FbzD^K z_C9Qah_s4Gmoz9T-JODTDW&AV5JMw^gmgDZiL^AskWxb{HN;RdB?X~WEUDt}KSLf3^lnvuFVPA?=2b@`pCAe)7Cpd=TaO+ z!XmN*^5Bv|2Z?a7pLQ7akdAWErw?X}HSapICEN{qt5Ti0y91w6cdP;s_)^CvsK(uK zQZ*ecnD|HmhAD6r#D2PNsx%^}(3h??~kAXbkl#V**l82h;p+tq1 zbP~P=rH^ryL_VG&w_X^{P#F6lT5M=*)dK~OgSMtGm+L9Xx*kGkA%5>oU-qCX?={`+ zSsPDrEY_;?8ZQWe#M<5Si2}yA-*`D>j_B=`P{5NfV={Td@sz=d@ik)*V6nZjLj$}|+7V?J-e0k^ggCBX=0E5@|Z3eB= zc`1g$fw9jI##DIqKoA4D&j#zP*LJGXatn_rZ~F<|KzF}3;;6yT z1W%V2r!Sgo9&6g7kIje6HK|j6Qye^mWIYiqjnjMPq2v&Ysz~!2Zjok9r0b*&JmQ{) z_TttkCMtg4kHeO&X2qrYC@V`x5tr#?f>VuYz+9P+TN<}zB^Hzrb~7Z0(X%i265kUS zQni%Hgw=mi*qwg&Md^Z=?uEsbNt*@oh07p!OfBtmr|6xTI_<{2MaRh%T!pV^tV-Y2 zwMm`DNt}Nt*R;z|*|DchUV1MGjUk>JbcJwFle7+l$_c2If~Y0LO>ao~eq_RG$sj5K zU;i1dQ{};N7>46t#O}XP2bxh1M_oOnMz}0cg|k|Wjd1doYfE!4d0*o_u-Z?s~6+Wg-Tp`9ax!9PHDDmh>p2R zfjRrAL3lGN%cke74h?_bp+INKx|iO@3HoKnRs~Nv$`xmMwN#l{u_TPGSjCHZ8hG?1 zB=1wz()_*05J?)VCg~oOCakB5z=j7s&vZt4i*lS|yxun?l|OLXDJ4I?-ZQHqN$(vk zkn&YMG$Cs3N#}!*q?-?1!@9=lBm=oG!=tA?$ZlXA6EgGd=c|A#>PhXVR$aAn35m-v2W9 zne&1Tb{o?IaEijXWv>V7q#Zud*=E8^vTpY@zc(C0xd#mliGXTE2t_ChJPM(;g5CLee0-@~ z`x`1m)v(n{oY_d9P#-u}AG^F0b6)#q=@FGPH?D!X^g~52|Mj~un>4o_y_nrTKpTUj zzsvg~fz)08In;8oc$ahVYa;w;>%1CdV)U%P#WW41>R0>QhN*cO(>MEk;=NS_;{r0% zOtv?f?An@kf0{MpikeGuB;2*6!~Oci?0oM$=nGr@;s3y*(QU{})MHZF<$RG$I!Ib` z?7Po7uk{si%(NtEB{BP@rxHG!JXOSEZzJS{e*EU__aGJ1BBz(Gh;*gffESJ75dmN3 zLn{OZU)oL*A{pC0?&Ux@V*|8u#{<4(clY~yV9!S8k7kBjtffT&=i6Sm%KP`pd_6+j zp}WuD&=-7i+nH{}bp-wgSw~jlhJHNn^}wZBo{!u!Rr%ReOx)?efmsxinSl)YP{-v; zq~gGm8YYaV*E&AH3WmT@98XK5vpY}iE9ucIVth^O{k>;)XOSCMu@4`l#|hV@+Ezu? zX2Xd1;^-t(Wtsc!P2b0wXW@*mhYdJcpg|$vF!e(EsMG4L3k7%3<;M-i;*ZQZw+HW8 z&%=Iob{*ynx?9-YwPmsmFRU8-sHgNMKv^_)?Z!}clV?@l^Z^FwF1`b6k^Y+*n9*>G zhb$&T5^mojFMU*SKN+yFG5_I%c))RMbe5PpuVvd;^3fJ81=)J;JLL@)*LU_3R}6kW zj(A23sJ}Z-IrHluG#Fx)Q5b5D!%?>)#`L8`Y^HOE_#FWc-y}oOo1Q*Lh)7}yyM-Vl z83(4!@mP4tOQ|A*^rk(v%@#!wB~u!Rzv0CqdCJqrUX6GEX1uV?5wt*%01iSkB-Rgn zv`%z9br}$Fh}%Uxtx?4n+{N7i&#`tyW`k) zMZlE!PkuWddV|de(L+G%$Nr3*^a;BotTJir$^Y>4jDQFtdn#dooeAE5m5ehN0$H4z zW3wUGs{i}f&uZjRE>?(tC6NAl)R*%AKdk>BXa4svs=sdgi)gKih~gg}k4vMpo=KrpX@lPJ0)k85XCX*q>K{)XbiJy<-Ywfc}f4A8}?%Zvwt)k11O!((x zkyn#MxwfUZq=MM)Ze}{c7Fpc4)9KwwTqVj*La=7HQ~nylM~A$QCxm zQDvL2)lQ!Q0RMXs7i?h7VP4vJwEu(~Hz%v1s$gQ3O&d{-i-L@)MPhbn zrF;uoeIL~b68&%Xij=TwaA6m6tcDv$W%B{XPVnHtgPI-e;RfSXpT|1ht#S|9}MxC*Ghp{_h}R5p5P`z7&p1q)uU$2`!uqj8CEacvj|%v+nR55 zC!s{3?64;#|BqSWKAdMBR0^jRa#7otP}pG7l+PIS^vLM%T&R!)}<%va&t7)XZ>O$e9arLK|;beU+Nk#R}NW@xna@W3XMw>$2I1|4Ez3?R4scqp~52gRfIwP%I+gy$>HgWKoW#O~aA( zgJ&^W#rDWi+&k99DJS@=;}`g4xX;;6hE>j=$xnZoZ=^Yn#*NF9;OQNL#XrNb*Qhr9 z*V|!2*mHbnD2IUljvV@UN5tsr>KuS{*vrQGP3PE{_Ql2J+9Gbc#_|gD<$TLA$i z$e;pvEc;mTANQ`o$MsRmbh=YXzAa0x)HT%O!?ER-#B`$1aHC=FTWky@mGGa8v5tQ+ z7Jme3cv_zXYFOKner3@}q(m*Y&UN`NcTdyI+VOpH~$4+@I z!OxIwO)61d=EX+fZQUvd$qYfyM&hz{+%l*M;yA%^I|gJj(Jf|Ldviq^jw6|tCcNI68d+WqnSg3B|qe%uv;n*Uy9^#h4DX1jgS9B^${e1L&D=y&PL`UP2&P< ztzl9G{s%u=OhVZP7gRpHCTs`osqu~Fk2k6VjO*UknY9JVi=!gO%^QI^^;_fWVkbL% zdUm5p*8SRp)3lIc+Y(gmX0<-QeV>{Abbc0&kF+2@r%4mjod3M>{a5XKEaw4@n2Cue zigAO_;y$a(FOHxC^rz2naq5(!W4MFMIcy89UxnZU=TBnQ7C&szZuG$i*-w>*a~rjo(MkET@L9Ge2Y2@mZbnWBzU99Y-M>tBCgLPn01)>$iBCZa zI}n>I+{hCJ$->&~Jvteq(<)6$5;~_Z3%LJ0E-{0v+sabY^@k(Oe)4bDL6ulDA6C;? z3AA#%oNf(J=wMSsW*TrLT*cGm5#UIbaP#-+CpXCuvqoO#75v>MyIo(^49=XMm^2k> zk$V;p>FVzv6#ClgUuWEJ*_*T%82HL#ip}^>(iSR?tB-O#>4BP4e=t(~jK`vo%kS7e z>AYxhxYzD|AcsqO6ynI`r#m6xB*n_od@%@G39IY}{F|s3MiYWGl7Vtho7|En-i@!RjeidFJ8vSAQCri(pxcZkD&d5$IXUrNK1Ipla#sORNaq($kJ0w!9#0 zjz4CEWV}2sy!FBT`}$foGxa{@+{TS&$0%vi%7m}+=+U>Wz2Ubx0nf zvr9hHaiOJZ;muM!7&o4BX$D}1T^egotwKq%Y)+NyApc58yZy=KKNLq)F$Y=wEN2MN zd>WGT_NPFRmW=ORs5y7Hugc2vx7$uJJ8hur_O9D0tk6P2upf>P_j&ZNXp3$Ra$<`M z6X-?bfrb6ChWY=RF^FlBR%^YZiim5yTWl1`pI9wJrkeMnya&sedjTu4REaWhcB1f# zA5^)H=aqkqg#`sXd&Ff3L+X1dWClhsq>bZxcM(z5zrV$6XGztWwF6mA#+eyX@W*9~ z)RJD&-|;_Oh~sxWHmgkX{BLmq@t^twToHjMl}hZ8Vf8??51}VRJ+6dv@aGGPVtYtc zrrnC-G9i_KeM>!Z&eWiKiKS#L2ZtT2lkED?I8tT%!+YGglGM5lzRhKOjHyR5+3Hv5 zbdI0RWRHDj)(Kn@0Vi5G2!}7=3hD%1cAru5$rIzoZ=&;q9fy0>(^xcHhM%qxsHJf5 ziGy~hVc3KCd(t(dsm}Agj!;+QR*wwl>N)G{v?{ZN*Y^DHi=HE@s8pTI(^~24=W%vp zbC6ifZ@1&ESx1%wbAhYJBSA;$ZnZnrkIHK2fdQ<}_ zI-|c#ImWn2-qW@)tBB&S;iV&Oql(y7WFH9kOjx{muAV7TJh;F)<*+63A>gekQtHPo z+f_|G1f$5r@JqaKzkKP0)XocW348kZ^*$fd!@Z_rkxt+wOjPX=(u!`|wlTx{yV|f{ zDGcD=b}~iL|Ijz*JAPBQ)bN%w*>vn`*Sm+nymY{2HqALnInQm(VNKO_)4^Ewk23n7 zG-K6GP19XY<=;E`>oi9$!_1o~-%8bc@Urc!k_1SE#$S&uW^}&OH@jRq+3kRslsh|5 zO$U@twO36wPEXHGS9)6N*yzdJR6GvAPtc4H(3eS|olU!wc!TjRL8#1(oXQ85_#D#E z?;IP_OYQ>NE-tw@IE@N!=Phmcpy6PFcca;}f$k_U@n7H_sZ|z*cAq6zCREj2l?2mub$!!9frhU6PQ;-&T)6r zr;q<;-5>DH%`>v(ygK~4vIfG%yrzYBkH6KwWaLy~wSBtcvTU+U&#=YA&-9sg&NJ-Y zPiqm7;RS+wX#v{szv zs2Y{(Y%>$_s&;mmGVm6R$xE@7>aLJ6HpBRWPPG1NE*yl?xs#Y&n9YU1^Hw<6mr^mbA;>dt{9bsM{`NXcEjsF*^qGi zm-nyDj1BU-O~x$R&K)wQO0_4}$D5XJL>jliXY7pwX#OFi!ew}1YUYjWeeqcMW!alL ztfFxC)sd4c54fD~HKCI?Ee%b3&WAgn-m}nz_@Wjs{ARzuFqQ;$K)t(fj(=`WQ5%&T zM>7dqY~N*wjodiTW6Mn~BBD;_4uzketZEN5z?Qf>T6ff9Hin{_%=&g;Sfbdb^+7t|_-WKTJ#hOX)_P%TB8vDIM zQ=>v=UoO#Z1HtZgRz6fcEq1Ya5v5Oz?yO7SC!-ILcoo6txF@eYCUH`b8jw>u_E@0A z12re_(z<29v*#z>EJL7h6+?TS-}hLlO4wOkrCfM-EfX179;EjeIF~l7j~nd}sjf1l zlSw!@zK@+0;QKagARXW9zQH$%Og@KN$CXzlBnZY=5- zey!%w!u*<>oFQ81tnww? zWj>Y|`?C4Hvxk<3eI>~*vU-e<9h@x)H;xV3_;L|6vzWODmwSRg(KnK8&2RXu6IZN>~aCk?(A=mfJ zhm{`Cg1tUsb*3~s74SjSuuTd)BpF*;@=7CjN+zr!WY~3zxTn%0zIT=6dz$+h{we+| zv2@4L{ksbEo{XvcmqF*s>|dY5cw09q(J=h0e7aU)%ed2dJ|Rb#e#W=kcb4VjE|hbF z@>?#p+B-@$E&^vC84jUm9x(#b{SKbAZCdTkNnc^UZQuNnctn~b^BAAXz0mxTMA(Cfphg}j-I zwDJFz@H!%8RBmw45*}`+2HO_yM401#Db2vac*Jm@(U5V5VRT>V()+hfKzb$03|XIisaIfZaa&3Gpu!gzrorM7tX;1>WkP#O!6G-chHzwRp)*kqTZ`q#Hs}K)3YB56S0a)`r;d!DEimknd z6*N#dr!FMeSP_7w1fn@>SD2N{bD?`nanhBwTZA)m_FC*)TC~ZeK|89f`jPz>RA6;% z&y99eSQh34|LRJoRHU3zFUN0yKF3ts@E$A+05%_5nTWb+HeGdfw7H4P5&1^20TLan zubrU+=Y<3mG0xfdrlMNoSJ$3;zE(Qw0aYb5<-rxdRxKeP4Y-%Lhp~_tVw})6p#R%p@WZQb|0}kk0V9`}_nq3n4_O8)=o0pk z-vCbVDX-g95 z+XzzxOHtR?kt}(IZ~E4 zv5Yjmh_UDvUwPprCo||*FP*^HY&>!O9^?|A^R0S@EO`#PVxtPfNtz>*o5n^iqdnjE?r`A2g85G-`o{}qB`C9m)+u8LhIr>DaiAk&trin zk|&?;SwyHqjaxa|`e#WvIi?HrO%m$WcNu+=pt zo{Vn5I2WEHVQZoi7kFo2;c0^ffzQ>PAY8=pme+}%8JmZWGD7y{Jqa&9EOzZ#Tse!~7Ju7yc_PH(G$CNT zUa?#UZfhFU+I(Qd7UudhYwm9qbgeiQ;B=67)$<=65XW1^yAEUt4=kKq7!!ynIx&*@w`pOhgCO(xgPh6Bd4jF?0Ve}Gmsb0;PMu?4}k`g-|@7C_n zZllxuR~z0tqFapJ)h+AKRQb;~d~xUH+4dA9FWd5IYW^`7=7%qoX~IAc?}fXw5gwmS zk0HsBPWzQbfG}Y8SqL6UiuBSoNRx!2HA#d_8{B&N-~9l0kxlfP7I=a~2%fI4t}iKX z&OY+5(I<^}Pwlzeusx}7MfrnVTREoK_n=s}aJpPA`>rZvP^Mk4BqagD*LpfNU=Hn- z^sB>d0LgbV2)FLJ-8)cze>Y-O)3g!lDRQB;cDlRgBG3V#w7Bz_n~SFGDHxeXy|5CT z)55HYx}KMo%NHrIP7P}XT{1{wIvufF?<{rVEbsjypkONv>`sC#5>EXj#Jca2oWM)? zya{1S@t4BS_IE*xh5527ps&ycSBz{bTb{4hF8+MFpsmAbYmag(lDj)%b0B4GA}rfDOxqBMdsT44w}BHQ z9k9l*>@{2GWaO-gDu<}qx7-O~4TUz?(=ZAD4opKw+ zBmP%L1BH*oP)YSaCF=fM+WwswhQU1 zb#u?u!pL(k?~2nCDe^O|gsk8V4p-F%b}JdvQL|m*KS(yc-s5G}VjSLg!i`^(RB+{& zYCQsukiNhJi{Y?&VzZR0*X|;ZIFax(wxJ!-!y=!kX?`#Gsm^;mmB!{2t~HpUMM)2P zsBK>0rR`Sj+OtcujQsHId0xKbH;f+kcyIBD(-0tfEd)gKMu9zDL0-G=yLVi_n{~>2z5?_5VNnY+oW60mqZ5Yf98td$E&w+nphZ}mxoGCh` zbr2hIz)p;KgZxD-e0ekyeq7>fWw~Ayy!7AvGI{3O26r4B9Olv;n}8xDfq_xI=qz6K zHB{h1EfcG<>iTlqhSL3|S`1w}4lP*ygN_e})`G5=;)>+^NAuI{Wlh%C zD528VnDkVVt--dAmYqS}+9P1hp^2^E`KIw#%C8j zoO$uzszv+-UgMiCEnP2}KTS$a^EVId6+$oUSuzA&99pJ4sla_hfkln`2G4UbumV!~ z-u=0C?VziyX`&q2^xUA8v7&}wL|cZ{syYE~B%yn|Ab26>s=E!R5XT9aPjNdHGs$~w zJfug0SQ({jD90_~gjg$fK67!jYyNdRN~4qoo^1Ii~)UE2~f^XPeA z#Vs6~@}^?!eTv^wX|#+VU9~og(7bi9#SAH!bck@RB{lgzI}fbZ2;?f4vT)w+Jb44Y zY6a)D)MwYIR&73H7O%tg<4J*uE0p;=c1M=@Ku5-m6b7hqzsgoKd02m}H@^?RKj-Y- z^WseV!X`?mq_MaZDE@)?TC2$8!Oy$4h^meX*A}4bso0ITeM5!!UfmeL1LJVkfJKC0 zV2DS+I+&7`Q%p(iM^8a7S5lfgnE++AA&N2Xkgv6eIYv_oA!}v`RhJgs`Q&B9N+NL@ zPYxsnkvjV?o|kl}h{a9iu{?8q&fV<{x{z(bY?iVVo_Jpu=erV;PD?Ir@hJB8KKlK@ z4`GwPJ9I665l;Z6Swn zR?x<9PKm-xTRD_mHr~KO@2g*B?*>ERpI$d0PzBIlwQ1mP&9y`+f>*3h{`i0`FJ&kw zpmI72N!sK;zV3}`ME*4PlsTid-_qUfeF~fs5=s7g4gRX^b=8jEMi&3d(v*AQmQdrm zBn3XtJr|U=`C@)q6Lk>QYu)^|yKft8`fEC{cvr+~GW~u_eomI4BN=DjcVgUO0LyHN zKhcN5zae-rUAL*lJJ8#20$OXamm^J?pJMLrEdMR8jXIuCb4vFU^_w4Ga8;}DB59b% zqBTfG4GQS$mpgBc6()Pk^Ap-=2PXJN^UlSy4mIwi{3y6>Tf|CjljNo85Id|j9Peol zR+BS9Km16(2Y+N*XNx(e8CWo^fDP~k0P?>w_sE1qQX|r6tysL&8&e5hw7h+ni#V5~ zen{;k1oKK>e22Vskddg*Q0jLdBM!TNOgZ#*0bASDNoaV3T-SXqse!5%4o%cEs<2PU zYcau6OrVDW7QR1};_&k9+%rDL}FnV)>N)Z*_zheF=S=ch^14a@+5G`uKM#J(wgKs-IRqs|@oeITiVSxrtvStKn? zM7DCHX&tF-8aLi8@{0r6%pFlN zYR@kRT*RPoQ&;85@#k@b>ujjGk^RvyThKXD9_+1ivb#|}hQBI!6l$2a-?;L(B`&)P z>##x>o@{{6i{18r$_@pq7(A6 z#$cM*JX)St1(;qE^0oUZL8S@OYAwSHWps6Ew?QgFC$9>7Kp#B4Qg z^XqFHnkxw;;FDEG@w(}RpND~uC!fn z9zT>>$2l0vx+M>}*0U1~(mKau_GGOI-YCDlV+TiL* z_?1VU-hy&P#aBkkfHGxPV+|MztG)|^QosJXp>rAM%^wOesDTe6SO3QrUJ2oBK^YbJ zNao|QMKaU%Jd0f5tdvQn)&hIYd~MrLeEc?@8%@W?jA@?H2|lVB+b_ff?ZUH9rkU(T z-RqzS-Q)J7kHOzDW?$w7Dj&^IIg&bbt`8bw{fUNq@&4k@p17$h{XKJ z95-cyaRFUJ>x~#!GU@kZ99aVQZMN3ifVsa$_WUa2^M8rk1gnO?YBBI$E}uZ%)NGh{ zf?!5!#aZN1Zs9=`V~BwJ$rhmFc}t}@qv|nYH?1fKi$;#B7ccg!COQtDzfo+t__AhY z4>)=PuvtveV=;|sbyvs4guBza?S(k@`5 zc9@`Cn+c=X!NW`Qy+`QIcp;`d+UY0Ftq*ob+ueZ59WO=SqpmxoxDZ!2xmewlt5}|B zM9;HcPq4_XXG(-_D=|~4&y|D3&@NUE~Xj|MlDLFAnWd`xRZ%`O`-)dfsYI%J% zE^SdDy!Q%xFvptRvlsm!h`w2kd_n@tRxwkGmPhotj7;z8P45^mnYLvHto@dR&p`w1 z&);KWd*{=98-+T^Qg2ox2+Bbm*z;F#tr2=Kognb)txRk7bAHmk-^xmR@vXoeS9|~8 z@+NUSRCg0|&DrH+=pv)C>jkvu*VOdV4EqdOKm&UXaU$%qQVzzMeVR&iLGZUYa(N=0 z8T3yOMpMT52ZiCZ%PM2A9o0ij`&xT`L#aCD@F`Dx4cE93%`F7V62JP`>cC+x1bqa( z11^T$Cwk@TUTuU`gs`)E?}fbCrQ~ZmicU!>1&_Po+@RSxxi1mZ5zVcFN^EKmtvDRl zxp#AX)y*$*0CL{yTr0$EIbfoqgFwSpY!ImBZ?tNza&MMgY_2RORKVqcY~OA2v6Hi= zw4vhNf}w$+@`RuUa1b_?A4h25{jiMNP_7neiO`QTIUg52mlJA@!&mgn9R;04>H#zO zT?8;y%0~C}_Vnl7li{=t5}JF(i^y>_BKYP3(5L?icxaQp&FrT`P2Ytiu5s7G>&a!? z{*@T^)nTu1(AeF1n~rwDQmc7!9Fsv44{06V#U+X+(`+uU8X>fQ*y6uMhZT2#n8$#T zxb}}2(i&5s4uQVJ`vaCa;Jm3w~0b};bn`L)5U=@M7I@l&Vo42Szk9C#X zEL~Xz3{djj3E7k|0jiuSe1(Ft6rkIaW;in4HuMmVOX)DtFSZEvRm0*57dD*r#}*gB zk5>B=H`@04hUoDtUMFT=B!bpILCsZO|NbQxO@6!rl1y{Vek&&kpAj&iqiQtyd<(rQ zIYcXG<{r%2DdBD+U}S$e{QJ^`8BHA zFT*nksJ01)2&aGR)w046ZC0j@{?*1s5+ZgvPK!BwxHwW!@FvTFeFEg`#V6`o#1Dh0 zwSJz*S+$AsbUlGGC@Be>2D3Rvli!*d&{^v%;g~UT?q{0a{1x!r!n{zc4@WG-yb8!H zy`;5U%-1`fRBG8wLD{&FP{CR3F4!?J%WnHpI)+lUTwAz&Cp5m3@JWs>m1rW!hpvB0 zGvJq-?5~@%nJZht=LgTP@;R&QzV#^$$cKBdRW>w-S%yl9Grj7 z53bOQPHfPQ*7)his6SD6vPC$-KwrJxs8O}kqT#Yx`&v?&(dt~mDJ=>YW8^i)B<3|m zrS^wa{z`8W!bLusl4;@4g~t;j_E&+xG@V=LQ6$hjyq+OYro!e>mv^M`cV6#V^63wP zlns%Ij?pwd8JD$U;x7y7Dr=(0w zp3>4wn-uWn`#E`kY;WEj_j<+eec;9F#8?+J^+L&Ir^XDmT_?xO@2oIvK7Kui7$Ka} zqTzd0aGF`Aj#+afoz#w2`RV!qmT?}@cHZg7g<*A;1-$#SYvSj&cpr$x{mIY$SHjC~ z{VVUf!4Gy!Xm8T7s~(%Abd8Cd=it(FpR7wwE0r~KFbc~rw|zG%m64KOdWVbgF1NAD z+>guNTAM=)BA(|y7?;`aT$Z0nyb)}7_Sd6tW!R%~z`XK}wvRaNTZPJHrgw++_+DOV z2>~lqhf)H1@#Xk-^ufnI`E*Bko?f%1ZJe-=&HAHK)N0cPRDl_{H`8QYcp=I}UifN0_mmAHJwnuo zGB3fiDt+V{3z5HuCTttA2odF-Km7JT#UHW^T@cu>=8T7s26-2o$n=@~rhrd!8C>zd zZ-Ca2w-LXhVi99x$1bd|1o=E&2KbF=-`7jEB)(o!?8O(<=sKP8z%JP(@N@fy(-2Z5 zcHJ_reBjSSftCH>;3I`~qTOvv8305YSK$wF88+?(qKY+w%8 z3Nh8x8t#pqLu31`0q>y>MENqq7834Q$@J-!$>m}mbR;iA7co^{R6Y?Elvbcj{OMOP0@l#FBR7Q0W6rZc39o_Nj`L1}7 z^)yFY-2a@|e+ble(SI}1m%7WZu0+1F4TZ=X3`mDpmp&wkQ_;B-bS<_Ih2HUTdi_yC zu;8~)_{8nqdEevp`}zF;rC|Nm9POM#ajn_qq}ccD+~kHq$9?pqw<=11n^G{d`Ih5MLp5j=bn z+C*mMxXpL_PfsT`CY57p5)u;=@55+DA4u7*xbF}3Ze4Mn;B4x(f~|G_?G{l#Ya;5- zq!GoX$IUMmx>m|hLazH>>H<%{(+DHimiH|2EQ_v+tal`i?oMx2?2^!n(j;O%hQyLi znLIsC_f}m8WHZ|Bn&5{nt?;>bpDx-T{)u0pBYta#tE{>~gLvSzoSC0O*O)?9%b>gq zK!I93Gd7 zS=#cmAEa3KLv*q0QoG*t-OKa&X9~<7uu&x-1$#sBPHapdco5g-uuzx3QBBd+B6GIJZH($w^dY-2h4373+2TWIivDkMFaJ^vp-tO@B zoZMo|hk3N3EOD_K@qfa@!$p(VVPS+eb1e@N#z=;4%NzQ^vXr1cnrgq^=Yw;xm40lm zrWioh|4OqjyYhzUolX%Ti<~!dTi&ehz4=U#o_XWOha0L2vag>KN&wS(tCE#-%XrnT zQjr|(*J9Ll(Zk$6?MeYu&uxlmB)ux+=&m)3z80(F8u`uRb2T^do{4BLzMs}QBckyd z^xYYSCNE@UWX9h0k1h3McHe`9gyo?v!rgB>8R+Rw6m>em&9ZWgpHH(^nDUt~qPUPE zEaADrZ)oOo5?IZB+qnoSm66Sqt(41HL20YV$#3UjJ(VWz<28r#cpd@)>t?0Kdz!4z zN9$dnfVIp9^vnd`5d2e=rjIgL5tdVB9;|-6Ga^-TMpHCZwUCjRkfJa4m0tH_@!KTf z@u2;P`&;GY3~FAe(dVA??pj+H^LLIcz60`F7eHS$(j^K9Nq1>}tT^fH#XQDM(rV`8 z7O@`qd^)AurX_DoGtwe_;T`l<7M#;^k|0*yroS>rd2_dKMeChFTm$N-IqX4~V4zHT z?bkOu+0X5LKY9AUj1L2&A~zgW+muE;J8rzVP?QMjxc801dY-t>uBqc!RRG?DlqM4| z9j2?O#>0#ox!>wwwko@Bk+nSKGTlUXCSE4r1fJxR5vZ-VQ>Snuz1CDOV$CA8M-n9O zo_ku>a@5J-Fy>k@t{sj$D*>|cTblCUoGFM9R+S=rDU8euI?m|HRNPOR+TJ8+H-A_Q{dgmIxVP?P&5(LvnQRZob%xOW;Qq~^ zzY`Wa)@}Do-N*k-#MgH>0yNU`4Z*T-HS*52YrykyM@(j83RT_4keeP!#{+MBM(LMgElV-od_?2^GaBw~XvYb>#QtxaekYiWPsJ#7A58 z*t$QiH1=S7b0X-Q3!GbY8Ak0B%KVlcww-_r zQs$?J^(VettzJd`L1(V_N>1JcF5CFn(}lP7KdgCiPQBX&@<5HvZ?k^0)=t&UI*~+0 z1nTO7RLtu#OzK?Pj!V91dY`=JE!2GHJYBBcEBHkNwsx-Y98fM^l~yGn_Z%B#*;AR8S0;_f~^N1?CW5! zZeQ@vAoC@DY)%Y5q>18bjuR~yn!mIeYTWhhuw*OQF)a28cYK$1z18pXa~jy zd)chdzN}cwdG_9p!@e1x%veKz;YOd#f4*$14WzBm1B-m2}>h#g9I-Vy33VDF^na;Qnep)3}d60_<`om7IqgYnRrqu`|FQ z#XL=;_o2?t@X_MHEW&lFNsgJU9A?Q8u~baX5^whw^Qm|cn=_mRH`!_WMQ>xsoCYgq zMXF=CZ2tK!MU_7x3hCl>)gWT(yZFUGq!1=@e_82m)$MY^%NVbXM5_xe8AD^1(41ViI zLHns!$5{tYW}k>lWxv$K?Rr(Kxjfwf5?M)8V~NYKy=#N2q!HD}@iA?Wos#y1;*vur z%~<_H?CZ@Y!jv`Vn8QmU9aVI)!$N3uQukb(+BNT6^ADis$SqyIw^?l8oQRY!OtNyd z$5WFBp+blik)Ufri&d#>A!*8}iXpN$(5uSBwH z()%loJQD17&xkUw=XzKMR$tWVilWhnw)%1f+%Yi|y`|>Oy91-bK_y!tDaM|QHT28b zvzP(2)h^8T`>aGFUdC<#IUkP-@>HKdsj-dC9Fh1~4j;R(5_0d&i_ukoZ+@9ry%K!_ zq|NN-lEvBpT_TjtQM+;b>6qY=3a$-W_w}Nu(#eIh$R<7sT_R${ zG-h%U*pr2RI~rc2baguAsLu=e zsf2H;+X}24(E;s5_yw1oNHo}16H{YOmgPFK7X<`tdk2N?x6c#hH2jia=8C&^hSwLv zm44*mdv+_;7@kKk?Z)7n)Tq|^IDRgoZks=5<2!q0HQuL7n>H1$$twKlof9dw6>|tT znYtBXcDp)L6DiT)xVPUsZ{+dxsKxIha|t74!cj!V)r^B*7WNT_;$jHr&MoBm5AVlYFRgca zW0}3zy@mHnV~Oeqr1X>rqqv+!=HQJlvfi|!Yv`R)0!@rN>fXqQ2j-O-^w+D;zI}93 z?6mY&xTAUypI&Qxgm3K)q@KP7L8|U)*T*(j{65HS>&bWd-7w|QwigWTf}xtF*-Ak( z_jfg%)PNgjVdd=GoT4Xw49EU|FguD7PIQo-3mA~;N z(tAc&JT9?OYu34Sp&8VJ_Z_D1I9&?!{m!SSEDg@GLMT4=cr$RPTzV%I`2Ugh)=^PK zZQrnnl(Z-zFqDEwgA6rvi;@ zDay%N_cW)lGgL2~)k4aRK!wk#(|e`SIxts^e(8P4gMFkW;SJAy>dkSzC8^J6cOHhn z%iH*R)f+bY$rWSJxVV#tnrapKFOJ~YrjKHwH*V>OuyUrg(>Xgs6>m+8DBGoRo;*S zovC|~GwKP{7j@tAK~@{Ox5&^adO3%=L+#{6&Gb`hr27~)bvG9r>l7APAlll0Gsh^9 z;dSM)>ZQ3S{fM#(RSEGNHx%NA7$S2s;WT}A%dEv<8{O7Tx71=sb)+#E?Nh^mUbvS0 zCRy*|n+qjHFo+vd_*YRZn9|uE*&&HwjxF4(7U#p zo^|^=EM(nU@1Zx69JKbao$CX2i<#<$*j{blt(Id~*TmRSbIo+Rm(?xbKHO~!L?2vu zoH2Y|c&YETr*iaYBB434c$nX9z7RdBJ!Tqrg*_)F|6}N$fUIN~IsP}|_8PcuY*fvEJ=X@8>%ydPb-C26?b(OoKymJb0 zz1}VjhhKi2!t><(_EthEMn>SSBD zQH4gBp@!KxlT(L%1n(`hvcfWrNR29r&0Z)K#Sd>ba#&_3G~ULP_Y|YxL$x#ssTMcY z2q`bW>;9#kqPD)+B(@oFs&mum3hTc~v-pH&QozZH`M6rbDTaQs241bD+)wj|EuMhuK2(qVxvrx2cuXe(XY*VP6c=SZyD4+IsDZOLC4ud`9s;1 zS8JrVY#e|;xp&*U8tz}JhD`(X&hY-Q`a&rk%Ah*oLz}94++m#Wc8bH^Y3ess`n7zv z-~qzr#y1+4Th?|yjf@)h3Wk-Nk5%%auOmmN2Mg;OQxvhsu@2s69_z?T0K-fr)5|Wf z-fRt19;niA)o|Ur$;@&l;ib3qhXV^$JxD_IwV-|AXmIES0xZv;mZpHVfBW=0_i5{IkMuY%E z&rC9ufTojwh#|kjIqL%3PU?E?=bz+}-hAk0Eq5b&yqyN+m;>Jn>pQ3LSv1kG?c`69 zx7Hk-)y*(5zg762>dk6*3?IN%2)oc<8TXfAz{EX_z3eu%3E^#r!Z^cuPcoa@wcNo1 z4+F#nA93SQGbSP5N{wv@^iFT){n%%?-}3p^ej-=zNMl95eH(@-LM*Jtdus#{1&6ge zplwTO?SYMCFmfscSehaHJUlCC~m`oE?f7LstrH)E){rtJF@Z~TR= z)9Z+>E4yJ_qE;(;+|dFd&+`CDhD$>%XIzIi%SBPK*wMt>vE6F>e2e+Z@Q+q!^8?X# z4z;@l%O0rUmbkxU>@}m6}a_YxDAVkE851h{wR))GTyva?M$>27eAw@|k=){+1fOVutNX#m`! zj}DOqrDcxvuj?$cwxYcutsC;VIkc_bG>Yy~pq`}GenUkM&K9nvTZ_%iZ8ta~0XFTG z97HXKY#9;DK_*y-HkPl>(sv`<2JeRmqRAf`!%wn7B1yRhp8f)DAGP7N(kw7|P{bQ? zxi0r{@ykgVnd`>wHF=tdN8m{A@Pgat=A1Uc7*))ft(zAt9k&}Q-DEY;l8Chxn(ue-g<`ogw< z7E018w8yxRqD^&vv`f;$3UXY;w_;Bi+WG!6{M&DsX$>s})63EjDu6R{P8sdM`a-q{ z1#<-+xc2Z+U)*fjybc86oF#B+5$v>pSti?R0O89#k zf}#m!lzMhLbmfrA3#UkEiPClXk2c6Zn8GG!1b+FS54H zw%)*kYxc|5LV%=}>`PjG*$@|<=!e#O1zGxRwhvkU6N26SaQ!_lG2XYIx%a49gk1Gm z+ihuI|EKuuZhoZ2f04$wheErLJNu;+I!j0OI{Vd|KdTp4l#u+we9!U`<#E*We)wc> z<5}WA71jf^-8_0vjSn4k?XLyiNMFGeb(FXg!%pTIE~!QrBLBGePqQ8=hF8qA1XvAR zeGa$svUy*%IL@Y4u}{tQ?{@@9wE!v^Q?3I-S8*mIb( zO^>PZCkMpnm`;oe?a(*+a6h>4{ZBo6#JKY6`*)x-XPIuQG&S_3u6V^WpmN*NIBe@N zVF1vZOe3zDbA<7u?pR;B+87Q6p&wwBOU)w`!MALAq=R3n6oTKGXz_O*biRF`mGFq{XB<9Q;yl6iUDc3bjm{}_!`Y#t z-zHx782Tf`*Ho(;_LN74GL-Yx36T^oerppkBn5W%RZENJhuAPK_ zb8=8k6KD&F1iVD_IxNBlH&SDS7J&-g!lM-heo5-Jc>FQ2oe7|j7SoeB4H92yl0{S= zW8~+d%0hCdAw7Xc-4vupWFUd~n3&hJ>_9co07fxF6QE}jR%ExS16bm-e!n{?ka_KP?QI;+KC6Xw@8^#d~gsrt_Gdre}%|hU3 z3T;*(=kF6EWx)#^<#4=Nn;5;FA`W)1#6|<{qTvi$W{*C|@Do}kL>w^%?PH*|r)Lg! zgwGj?6KN;SMDzTyQ8$@57s6v&)O2<#5>)9E!HvLq9HRJ$3IAlZ3PKP3y`2z43*n8R zMk{@I|0Pp;qB77}c32@n^|?Vk8L?-$5u0t#4$Bln7nl3S_g{n`e+-L0d2G$($yBAR z(!Tx!J0Z%ZX0XhQP*4)IImW?va(7hw3`@(zn_NH!;(j{a`1PAv31GO>7)~jp;L-X_=nc?`n|lKx6r^+T3YKH>XY&QzlzzHC?^-maGahfIiVwB zn!*F>Mzc~0nJ8i=Y`+MfWkFzv!h*N`gv98qr>a7_(`pC}73Q`G^UkUPIUlR+clS{H zd`fSlt_HmETBlRW^WzZ5V}rL_VmiET#=f2ICr?73ghvM^!A24jglv{Ov6*e3JI6F7 z#PTIIIr5@bT=kr(Al*gVv^7y4CFq~l3y>?kFlT>#3eSgi~?Ir)XFdd?VnHV10zsE(H9i!kwfYqVvb$+ly9L;}dQ z8%+J-Cv}VnmT@JR@1l4Fmv2s-JuUh`f?c*`)120HGDU1gc`lu$po$of1#2gQhdd+v zjC|DFbriRBU4z?Nn#@!fwA7VYT97xSfYKhKy~msHcB6^MEVq5?hH0>^2ftbjnFA`- zK^m5DmI(U&-Z~yrth%ks)j~fjY?#`n5X>EBfe34oOKtl>cLe^Y1Mq8V8u>i;X1OJr zhwh6EzigOvL7ocC`i2tErA(HZ!kQMppvzBQRN}M%>!5#5*c?W8Fh~{xpJ}t<$+S6E zl2g|z@;T+g+l}jsD>;)zq&Q`IQTstDD@_Ytdo*A8&X%cs4S_FZHuJlZWKK%ZzmL!(*y~;!?rD3@(!r0ua`Tftkcsx)}tSkg7vjvaq*_p+|U(cOg+=X|KXe+5413R9BYflH%hDKE-G~G(M%RKaeIR2;Q<2_d3eoY)&97p& zg#+nbN@OIduR9eHf0@2A1&DB3`sZ-<<0X(UbYm8Spn$uI2>iXs5a}0(8H;|r+vs=K zCM+t++}gJmAMzclSuseI9}@3ur-WZ0_fI;oV2a3Vbl>8RSSQ1Um5@dz?f0*QJ)}eG^knk3I!C3+ zZC=A9Y?EupSk&7J@FLFmHn}FM!}<=Pg10r;>J%RXX1 zbXDV;mRZC|Wh4DJpWR3z#qXcr#{zDlpu3(Z@9mgO30t#V!#oNY)& zF`Xc@xrijULFHd%R>4s1o~H&PM=_!3vu(F3XP;Q_iwC>0x7W&$*SooUY+3}Ryg>Wn z&GGLr*7=Nh9zvj5zxsm0{~$}<^Ps)0p%ac13a>w<*v;D<{`+*u(D0G_h?<2@0nidm ztGZm`#i=xqM4_mHa*+Kp=mAksO0@3hcN?}>9^_84VEq@R+J@59`NVl(>7beU>S%z2 zDvyb-k(Sw=Dv7)~INzh>&Xa--A_{{v9dccvc@)cjV=yW9HBtYAn{reO>ZN|tD`3%$ z*V!RS`GvE}azwub#QR4;ZP$TT$RHr z>h4>NMYyMRC6h^K1QiQ_n-ejAT#27ERCAWu6w#;Rjw~u~(g=Omsh0|xAFHagkoH*Q zqz*O^SNx!Vg5QlaMxW_gOx`!@>Hua#S>@=WL@7t6u&QW|0J}7xPRr^ZHo^{9mc6pZ zs85odobyj)9}xp-f$|?O#VFb(o!uuG0nm4CMfP znsIsJSCz{|+CuF4sr<-C_H(#x&>Pd6A+O(r1BDM6yRuKD_|de4ra&q(`MBDeqbYTZ zy-kv!H7n~Oz6j9>I)H$pHXP0jNE@GTAV_q@e)-CSox&vXq8pc!pouBUfVW7 zRe(DWK-2?HAw(|X(QdGxG|W_Gj@jF?n}5nS&#KP|^Z{*@Z!L6kMhN1x^Hm0QGQ#J} zY@)xN(n5SeN{oX{dUN;_6>)Yw0SXGh2wVF(vnp~}-4$MZ)X0|#Wer_rF~@DI^B|e* zZG5mGn)doZG54yH2_krd2IMd2LRimY4)4GU2v@S$Z`J2{T$NY@TRC`O*$UY=V}>-6 za~bR8a(+AYwpr|?e`SE~WWYGlf-QsnWp$~^%^EgyMhbVO#<}W*`l5R#pArV(k0r-U zYzo-#T4mZ_J?o+&l(azGu+;eN@vzh5y@E0>b=5=v<8ib5OjVY9g1^jw(*kuqf9X$} zJT1}Z$317CTe8oZN*6H7Shes>hF?4XPhb6i3cm_3NJzXv(I|kc?5> zY&;5*2uWcwud=ItiyoSZhXm!3VNZf_6)~q(RgaG*K4^JRg0Scn%V?0mqx<`I7jY zW!l!{Y*c-Yd8q}=7wzgV(8V; zXIA?eeE9q?Ch{+TFm1rFCIoP$8+g?U_vdn-U{3WCQeSNe*MBxfNXTWD5~7F;h*62J zzgrRF`@y_to(#pub#yicOW@Gp&&w`Vn!|`eD?6s!kHxx^$4E`tZq5dWQ%4YHJ7{5g zwlT@@Y&t3O!ylkhu}cAeIx#g7#b0um{oJT!m8qqK3d3qq0lLc?%Ho1nb-OY2HtS{$ zZa~RbLxHyZdU*?fmM6j9eh|J$=YBA@;HFjt=cYCZUm9&(B-Axo*JE6f@p*ZDHX|QYFN=CDF6uf3TL51zi!$ggd|z#$QOk`lVEmbQTt0Ua z-WZoD<=*eh;jb!v7B^mwcILaG_xxefZxA9Gf&~e_dkL<7{lXnBr8b!bX0Ij31Y-lh?^=v1=DS~Qs=;Jo z42Ns4qwmz3Ke7VB<$R=ZR0pwr66OMi(!%+M=)zdfY?nuN<`$gh05eWT@jU?S)BX_0 zmS?C}gpbIOQLDV6LVZ$S#=uMPLufb7wGkv*sNi7Q!Lc!pDtXb|w~r><)O5ZNLy(-!RauL7erPO`4+;0E4EN16&io7f4EUqv*TbNl#d{y&9+feu}$OJ)? zK$$tupCwS&kpV*xZ;_L5w?GH>)aS&2Atcj*`Ebl0zms{cK=>=tkDzX-DO6Nr^s|N9 z>Z4Hqj=2Z`%|Dt2Xp~vC$Bzz+<@zdKg~~6*-~Ne;(_v%@zJr!S7m_?PTY<9OJY^sH zlOf))_vaY?!uDG5dv}Y?7yV(GUI_`hjP++fe`!m;pU|ms7+om}*})**Uw@VqiU?V> ztI?29K3kt2fIi!yg6ea>+n{*bsb28a`SNy{#XN@nHbi-l+R<7V}xa+1T=l^GhjP7L035eU=1!RJ#_rR?;?_+@freOogqaewPf zrA{$mrupS4X0wUU$^w|gsmA1~vs%?}yI7UqGM^Xh9V`PlY2cwH05Wm@=x%kynLjzk zh^h(5iEvWRA6Jo0Q~MS|?D08WbHGHm@F$eZWIbdRwlnk8)saOQtR|H+xG7!|0<2Jn z5b)_{jRnQcD9WjdmyjB*jcg{%^F@6I%6rmOI!&rBOB)bv#W&A%Q-NPlc1~fpA_WIw z^X?(~sN(yRWi!*xmF;oD$#KT1k-M1s z=gTbHKNYd(Q`gIXS`yh2bQ0^T;uAcCHB_R=vwXHgd_7Sap!uuOQ~^UbRK0Fj<~u%G z&K656ZBRV{yEDHtRjU@|y$51QF+~4O0Iy{;A-1tsz zVBx*%6QOC!q;5}HhT|^hr1)k!poRm;V}5R;&kOa!ISkmvL3fL(JCT30><;3qUk%aa9czaW*f4Tfg&+b&I;)Uiu7zzz}GRnS}F_N*kKHq2aNRwpzQW8%5uZxbtcR>^_OFiar z(q_Whc{%_P{-kgy^Hl?IDT_z|B*X)en(NxM?+Ax!=WtAg@uWhiet32iv0MIz^0bpc z^~CH?;R4H%C}L?DPaF_}x}Awl$uyFW*v7;*WQDWQMz)A|*_Qv5hJTFBT5OXTh6j5E zx}?@)ti5-^t@}@4TX4uBc5{3qcgTOps9p`sJhP^Q5i9`a*wrWE{vOneTBKH4+XMul z#N4I-g{Bq|H{$V!G-4+}uJL?AdGr6u-XTQdo20ICe9*z$taNxNF0U%?%J6~*eyB8D zzs1ZA!0VRHKwb#Mn~x+$i=C3VJUflc{((+xe(Bylhi!(H6%`_8qQ*!J=pY*bH2Qql z>jSARG455)jx61NzfN8ZjYb(v>~(&%URgVS#1C#lPOIHll9SNJB|;x35YML>o(z3) zo-Nb1QUO(X$@J7kR^SY!+Gjtl1j@H^uz2YDFj1l2F+GMe&@!E2RqYM6Ja5 zs9Zcv`t>&j10WjQX3WdA(dv&#T}XoNFV@*S#>-!CM@SB1k?r-KFsM(v=N{>bj0s+t z_b*Yx!fdmK#NwK_)6QRAbiFM6dN3>aD(snGksl3&fLu!a4#myCHa&vCh7{ZBUix{% zqkiq(ABLu<3A+{5#fU2zsj(8<2*7j@B>KEUfTx${qqwne(}*xr27QG|s3M9%NIst@hnBXl_sQM+FmkeY)PIhZ>f9U6 z7l3{VK_b{<$hct9NwtvD+@tHQ0!BPR|=3x5*m+N?N@dxdNw;`Q6DO( z_it0`dc@xeje&yZQZ@Qjjj(t`w$o;(=Vx^?q~3Dort9f&3enF0j?pcCRsGuIKxH|C z*w+-i;T&4pcYm)vV7RQ$ewlu=Y(25s=sQ=BN0`ve7R!+QMvJXW{;s`<{6&O*+iZ4= zwEa%o2j&l=COCKts}Q392c*3M28BL@a8b_18QtT>jP>1};4@25($Y~5fheC^515R3 zi#)4VX*C_PfP_j!i2-B%N0+oP!r$hM;>D-&8$^eulx1EKTcb$8QDi1Hg0LGj;@D=d7t5u+mIF;gA)@RSMaB4qpuEhuTw5fWRT0i@JRslWa1BOPL_)x*-u zs-Chaf0P8Cr8(aad&P560kql0W~uP6QD zGxi)-`l(QAD;!QRP=`~GmNM`g1;;7aiC&Bi)1oRAg}s+E=X`~oXO9}itkbs|Rqo@1 zZ>b&nqW|fT;#>b+rQTxmuogmvE{31=`H=V=*AsZjuu8{CvzkcyCg2sQV7_~KHOrDs zUFFpuDvA5>b8(~q(9nPR%@n8wcy8c|FCAq-<4|cma0c=K`xv{rAAT{R*9%!KkklE~ zj}UrIMdD*H5rWS&MR=+fx7dqIO|cUkawV-`V&jw5T)MkNDiXN#%j?kF;itB`kN}%^ zR`YTqx&Np>n)MyIb)~#|(X-)j_pT8}tY4|`>g4?|a3cJrtc<&R`q=!rz*|Rx2e3tH zk)fj@yCm?Xz_m=QCY8**kxG(mKo>4`RB?J^vM6hr`tPL0^WDI$L-Ne(V_rEbGQKR2 zHFA2>O410=fPmZz!;r<->Tm%>#)T2+Nsm4Za`6cxnQ&`0;p&GD5B_TV%MGip?`6;l z`A2ZDw*D;jHT$UdAwO6)$*E-IYcwAnsX7c>iBFFQBemu;chNtDwuLwi#;Px-G#Dpd zI)BTzK|C@c{`jn!Eg;k9X-l^@tO%nev^qSl_)BRsC%E>}9$SFqSz_~yOUg;$N#se; z1Ki^*qF(s?bVl?Vp*@C7WA%V~p>tx-J|j8^U&Ix-e7|1VE8%h(PG~N(+y3WSkU;9f z)YL7}*vCS{!RB!dsm0Fji3%@}qZ$%~AJ)&uZQ1YWsEQ>BnR^v%GFh(_7JG}B`h=uc z@*vI^A~5Sf$UwMQdwTgmleBV%!sXE#6f-TANHhaZIh~K+(rcWYNUT-|s^U%4YE6_A< z(VVCr#ckK)S3@7(0wNCON~q6lzZZRk$x4qFM!|rO6VDyAK;}LpD@Dd+GsPR9;wnG&+%VpTor8^!qg#zWqNqb3!}!Ha&G(1sDj^xMyN-gR zMqc^IZzjiRj2D%doC=bi79%QD#_;s#&kc`OlZ{4A8`TB6F;NSu{n=xp2P*R*#>Oa1 zULFHlqg_lgbm82?ofAt+qQ|w>3N$P#$5fd{djkNCdj=(&|KYEx1@?*nUU2SjaYsy@ z#PvQ8VPKoJjXSRU5#2TUbd(PG)YcytqRP-i3;ql3ujFYtUdGQTeT5sII>NiUv$ij;g9mCZNf6a5F{%U{k@%5yf5er zPORrMs!J7T>Tijr?v69^D&W+wc(4d;5b5vI$7q-b z9H*kXe*@>MX9XJ93CO*j-B-rhI2iPTz7o#5vTY9it-Ms4aRZe4|@y!A+sn!O zF(X87pG}D8r~t+7#YnM%Wbe%ljB$cnuqqvXR0OWtax*3OGd#;yG@JK5_GEs7>%?)w z-2l_>gR%g2M(YDiLYDNr2E%c zs=g0@eQnD~Z*7X<2-vnPHx$C^HWcBdHLUr#~3v$z>c%R7#=-Q;n zq+j9o>#u7*`}0epH_Cvq90S|Vw*y}q$~(_4_?~PZR~LQg+SRbUO?pJ@Zzd%{JDUc5 zQS~ArKYB5<=%ABM3gl$_;(mfPdN5kEr_vl5LDDem{Z#K7BTlJqK=w6U9Wl_h9R{VO zt(C*Mr0@=Re{Fa}aMR^(lB|8USg6{daA!_ZZ^Z!zt(Tl8^#)>xC~cQi$?}>~k=f2g zx3!AL>*V>olO(y>wj3O4feW@QoVZ)q&U(q;R#7oacfU&VjYx0wdfhMTxqjyc2Dig00=Y=Eto9bUd3KI1-R5S*5@zaE zy+u6|8q4j|y4Sl{$bIJK`ZzF{o;Tb@{WvZZP1AkMiE-~reC7~BWaQhI|MDnc(*ZDC zTz;~-!S`Jf>s-EHpTs;OTx}(otl)@0fbWP`DC6g1Az(Y9tzVkyCgiH%K;$myT^DvD zl-?w%Vf*Z}I6mLCObGeyS7g&mNOe|6h&p~)LasRDi<6{c{Yn}W6tmbV4wAbrsEzTO znj_0IHyK6;lYK_RRDJv*9bs^tDJ6eZHAVyI6evj{GL)FbQYAXK?LUr%*pmKHy){O3E8@xUujK zjkeR<9EbY739VU)GjRkCb9NmP03XAI6u6@8u%X0JU{1z%p(ip$GH!d^Qp$Qre?8yw z`=aa3`*!K>&m?DqqPX{7cxsaaF~N1^cPRUQ@}t+G>e{CUoKYmYVq*?o=~1;Dcpj*} z^yFe6>Znwz?UgwlUNbe!LG&DR@_4!TGO?Ry;0N4dNccsg%7P{-Ne}_CVt^d(ji5J@ z5#ls{K^haP=go_;yZ_hWKOA+jRhe`|Co|^JhzBuhtB78dFV^*`a$5-$=ijUcy2G`C zZ->&cApo1rcmD!Ke%S8UzmZ4os{LFjWg=LwGv`Q4PxxG7P`cvql0ByQwTgv(Jc{at z4-@rJ?KN$65^CS>(2`yrt=&(eKL${s9kOH6`x}8pzTR7_V|f;=GGVubn=^VE1-li8VdWW+xGB z)>BnFuiJHUW_|Jt?W>sl86Rf{G`6*Q4yzwNrt}OkGa?`EO6#N6y^EKmecTds(lsS? zm99#;QE6<#L|VGnD%f0MphyXj?8OdC5rRhkj$S;EsJOoo7K4xtAbX#BZpTYHyt)9e z*)g_UXT_whbU!{80*G){DGwq|rl#%9nAGN@w^@QJvaAx2F=QdLg<8x04FZfx#)q)^r;~&wtB4x{Mo_1B^L06Wh2W%eG zr`1V|wZKk`=i=i<+dr^z3=ZXA0+-?<|MA_didI3>e&p1mxKV*P%T(&E8j8xl9OWL1 zvMkEirvJ6^F%I9RY%C8a30UAIeefBqUt<1sew}_^d+(`BK&!hCNo{_ASoK33YLjA6c{g6fJnB;FfQ>t0HEc9fI|PC=lO#lH@v&EANOgZ8$8f zDbHnqkse~dt}Q!)k@!^JWAkA8#2((}hJtGzU?<5hL3IK5X4uMrGcDT-L$LN_jKqy; zOlT|P*0L>p8hwCe#ez?ElRS+BREv1-`Y3l)P>fQ?nQBxJUt*wh5PVVWz(N%w>E68= z))&bnLv6aRqg})Tl4_;;r>SlmT~$e_goXchceV9%OQioq_FT_Ls+QLB;%9a58|SjJ z7dJ%Bh}?`>`Uyvs!dqHzNN3QVy1xRDf8E_9gnn86nFRn9ZuxNIB;*b+Ugq%YI&k0c z6)+$l`TbN}V$XIx`^D1N;;x`R6)Ygk!kmnOp16SWMRl)ETS5<|Y(x>JQmkf8y zA!COx{SFc@A!#jmM=0e8vfN(&Pi5pA|%yiq<;D_%h!Mx>u#s7k

    Q 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 z z!Q1O!CIU&EkbryRXE3aSt{3>@MC;*QOeZg^!;+fo;w&X(z_R|L)|3i}b-9s{T3lY2x-WkMKOjenI7h}sbun(rp#)C(n8;EBvK*?mO2d;wFaH|Yku zh&_LPVvrK92}v!Gq(1yc#=EBYHW2mnb~LSUThtI2b{#}k(-v>y855p>Wf-N=BYAn>yKt6?<4b869u5xP3%nOI+ zXR##q??ud}E{*6=sa}mfhX9Q&6SyVlp}|;tQa%2!R zn;$^0+M{s^&%wP)t?HF=B8^znyTDth*vlJ?F$uQIgyljQ zlm`Hk!`VM~UnMRyHhG-9|1`qcjMhq=S4OCv0}F7(A~%+X_}ZWAD;$twkP~=czKp^Q z4uVJ+e)YJ88p)V{${aW17g>{2AWIAxCG*4C*u7&MESfNhC0S9|bMuY1-5H5j5}5T2 z9}=y~A~2qyAl(9r%>qv)l-C~=dU3$mV(-_@%^=+~TiDRL{+QF`B=qYr@TheOKhC6m zwEe8W)$>Ntf;$)Y!r>wazr(cCC!U4*F*>T}J0gt{0;Y2)GbcV<%@TUifj8uUD`YpY2V$g!D3UWZcO2>Fee{}f}IQ0kPwclVW){>h>h8L1> zTI|$o_2y5xo3|-0_zyKeW&@!0yO#BI{dw4sMIF@{%ln%IlH2hx&c-Vu1;n^B*e)SK zv9WBc3&hT~+oQhn+ZsU;ahT{#O#_0s!0 z4gc_u^DT;~vHuT7<4MVG=7kCvI1HQXPI;2bGw%O*mIDY+Vc4%buVhM)E6hZDarPvj zPt~@L8@=154xT~3)(>G;Kp=X5-l378^7+f)>lv4Rto$QJae>xO#>&PawP9RA>`&Zw zhUxPcKs6l6Al#?^y8&G@H<|mXxt=bs@RJ>@Zl@~vBH{b@K`{GVTTLf2L$y1tiIKwe zEi+UG*SH7S7I%cknJT1!EP{fNiN#Z65Qz&N(yE@20-mlupsjVbhn|iqXnZbq4Tv6& zZa8Y5Iq-qAEqG`uMrAl0@_S^#{dmB1x8ZU^j7r+>IkaRzF_*Y3tVRO9*u|ztLOt@) zN?|DJdsn@dvf=h>g^1<)%{kXsW7354NPxi}%`jz-+{vd+NAD}?CbYdI)ZlKPt1i;g zySrF_URpupbYy153t4NdpY^EgSCf~I1Zta2R{2|H(BtlelumMg8|k(>#5D~H zO8lZfaspV$febMFk3Gb4u_`y5tfty%f+eS~!%&2u&TUY^@_EDuOO&kE`R#p2vfhpe zq0NYay(ui(7IpUfhb4g8g~=;mbi@~rugF5M=h>C7JYszNV#O*8&SopZ2q4Ripxir7 zm%`lw81ii}DrmY)i7ih^*YIzYgo2O7&-OMy$6GOCsYqBfL{iPVP{N9GItnl5w?O%K zHCXoH34hH#o%p@4HW-#5&JtJ;bnRiAfnvUZE$qgqc$^OK*(LBM#D6vnr6J21FD|yl zIPv;3vfR5zmSI(_%$fv|Qx>ZAP*Jr@XsjZ$BRh?ZWVz21H1<_BX!a$hZp7xl2r$8* zb%x=-?s1`ig0nQFRNH8(Mi2P#pQIWeTu_|*3#vVsgcT^lb`qee5e9}JyeLe1Kquh? zq~|>)MW%7x%4|i!3=-iBdhot)TokKG(4(=QZaiMMkjH!NxwdCv^?5-G4N3R=qkn~B zpGeUWyON`+kS22y?x!Jc>cTf(yH?)!eT7wI?{`bNfMNLfS9aJ!xdI?AY`^hM4mP;c zCcI?F?^&x`6zpVf+rsSkb2k;}+%q?gD#Nq`oRCqz@k^1La`l72{m!<{W|<(OKiO_u zt07ShP3YJc3wd?r{V`mzkR2g0FbSr}SwA^2U&hTH-cd~}0IIquY}yU_Ddj=}NKtK>4} z@w}?w%iZvI?NEXKZ9zvZyM$w4YBsh4f|F+g?9lDr9r7%_^ebdOPm+BEZ7{~~Z9DGC zk7~G8%(s&FpjFKmOV|UX=m+xD#V@EFT%^|?2M6T#s6pw~mvp7(KH<7_&O=A(8Gz4A zc1P7t1C?K%sPwjE5w1wsja`DUVLq;HQ<9fU9`vBk^z)Hm{zr5JHE_XZ3Ipt@k}JTD z(i!^av^x@sgt|6r`#XE^7PkLySQp?F1-6fhh2INix6?X!V)&&@I!Eki}(!n0gIuPgODAM5ua7ysca zXbCbFc(=^Q!uB?z3+uSQn0B`(qqllyr5N~qH{Sy!X>elPr(vxnOG9XDsZ@);Kw(eq zTo7@X!Qw6(XvvbOF`GpbMB;!38<>`IkR&AxL0-kYL2v=m`(}*;LB)wCYeXC~VeVo0 zqn#fWhkHl&Svbj>R&+Lpk`^zZZ?s;dl=SrWdpldcvm>GeK>R-ktkNz%2SU!#u|x%5 z$r;@}BcYD-i*L2mw1p8QiU6-Eum%1t|GnSW}>5zNBUy{C;v z-cZX;lI@fxgwFZoc*%1$$VzDo6$MfQLH3{YPyrg6S4Jlg^eh(DdARC0}Qk>w_qsuNcMd6rQwyr7Jf6ZJtA#I(hzh7cVjt+#dB z&N8~>jy%%DpBc_4YjmjO+%r1$*mp7Ey0fNLH9wHuvEA8W*v2B)X zhguSwb28J&BW-TWTPWdd&@$E<)uNf}g39EGQ!0g%Kfa1_#c&?B^n6J}azWy=Yil z-jXV!_VC9I1A|?HMgu8->khJxu{_Vc=S$f{3>(m(5<)*KN?6V&t(tmma-22q=JikwNBI5)9OLNVimDb^5#(bJSzK}vvm>H-Cxibg zXL%uvmY+{)oO47rt(LTKo9&Q9aNS~x0#sFr&aR4lpf!WhFNRRDiiRjtngHm+ST|d9 z7o=WZ?Xl+kGIs8>^-URzQatA>>jhl(%oqUo_FS_afDwToqgehjG+NM63B-p4<*Y^E zAQ5%LCj52hrq%-0Djc*|csFi9<+&8p;Sb_C9vJXjegy4i0IN zuO?MfIpnj&<_~GUO{qEhT=Cp4p~49v@)jk)lWr!_{|y`$9aLd(BEf=J^DLFel-(sfdGD~2BlsPr>P-jrs8bY|EFUKQf8HF@*=m%LtH^%h zL}O3>Bjl>UK!XxONO&B-n0x4QS>F4Rla=F3ljF|>CR0K&X5*!J$evhsNYi11hw+e+ zN+A#6ggN04xCr$A6moX%p^DVcM{jq3mGkpJzWCq)YLO7Hsr|3gaR1Z*W6H@cgm2*H zK>3E_$xNL&))W!PcNl`snM#<-a+bc?wg;$tzrI`PviUu`R!W{wH6UTJ8cUbZ!LNVT znMK?)nNMXiueA1HxzyEwN)ZhZKFA(6-=+Q!9?F`7%L<*tn8ZoE*w7wi z-16E`9DgM0x(JgbNnTO3@#F;9O~S5B*+fZ5RXUw4Okcy~_r~B2zDoMnQt|GNSLmB!GLH&Y7gh9ggpV%AqtB3jUaUB`aFr}ygfLhMvl-bU_In00M*p}G&iS=5 zN5yVSGYp1VF17PKh-qFzQ1Jj)pip;3CRD3b@0K8?!dAT&F<*3&djsikUmXhaAlO0{ z@q}pCV1Pm#bvLu+dS4bUBj3@#cGhkZkmQ=fvG8q+$w>}^Yg-}x#~5G+Akyn`pOntx z7~ZvY%%5ld9%^q zzImE1-_H$_o!kB_ClTC9;&Bo48+wQCCna6vIXcj4pqJ!&RS5i3SMg(+h}R6|)U{8y zTPuW{;vUYH9x1%OEQ45&!j7^;MtAD{$I%UqFW2eN>ZR##6NpQ+uM%sHxFI~;P5Yy- zjbdajlEWbKp6#6adYvE@A&;*TTJLJbT}w4;#pb;hl^#zf8E7(pi8*}dPQt>|@t zCBPJx?D^Yui=^Xj-1|}@l8c^11#9r01W1s7CREdfKAQLxEE5stbTEF_2#B{EDYDwK zz4fubOdlXN_LOMZ3B3tTJb`aZQL(pCde2zRec$Tq?(W9A>09F5WZtz8OjtA-lt37w z&(gAM1nCWGtmSsmbhDX}nU7)B!)dZX$!@e8i7SJ-ncsBqMTjGo;>fu7uM;UMbha(o zPlkv!Yp1rAhJ@TYYA86nLM^t0`%PI`z)i|WB8_I^PJ#iB&SAR};*uxPOvam})qVb3 z%ShmWVYP+f3{52slD_j;_YZV{jRncr@Rbnm$Vfthy_CON&*vF4FZ`ks*US;~L2!o% z2H|=h@slI8d6_uY7wmp+lZD7XZZa>p{OP96-)j%(di(N?*O_-QQrS&(8Lby6R*ur( zt}gAFPd7Z_(Mesm^I@qDe*|J}vP<8|zG^AXv(|X4?hd!r#U|w8M7kKNeWiR<%*aGq z4aB`J*q=CrnJ@~EFA~f`tErK|q6QBBl402_$fBxgGhqcc$V7Rbul;$*k+8V-uX=@r z)=MQ>E8{@yFLt$$3wyy5Brd%B=;K=Mv{9IIBIKJiToV_*ygMPN)mFMCr#aE&JN}7& zmPIBF1$53UPi56?c_#r`&3)3&aFeL(Rfz~DIa#l=$n)riXIZhrMwzB9%3i#jT0|k1 zPYj@oG4$AAhSz?DBNC@hVJUKamPeg5uRe{>KL@Imn8SzA1iYCCl znaBpxJ73NBvH?LCAy>RLqP;lGD+^)EGl%U+*WIfp&*XQL#gb+@tei^L%RzKb$9J|X zywNWf^+GfiS&t7{dg1;Ki!Uhid!MdwdJkXYzBx(`4R|=#`mPv8qTtf_Z9io~_{dR^ z6;yg#9L?y0De*bWy0@filY)bVX4NWa2fsHWfDo8qLL`xcKcifA1O(Co%| zkS}%s6VvCIA|X>NRLu4!`?zTrzRGal1Ao7Y^7a$)o`$HKKG$avoc4gTw})+cC--nv zk_y|j1g2OqceT^mNY+MpCgfx{{~Q%>W1{Av?PtVq_ePct!81}PiKN9A;*n1KZE{+M zO!jl|w{sr`o^sjpf!1aNndg2V9>V`XUrV!m8MmIZSH+Ypb-wq!nc}Gs?st~gTQ~4soG`1b=8*lC#!T!bt>RKfK#*+Fmp{_aka6)*Ai%hL zIf*FAmvTOC@x#@-MhjSi0ngxCWdH;8rENISy$J`v)5;c()$qgBj(bXvwh#YXC6OrvQ@hK7jRa1&ZHfiyvih= zMaMd+G2Cu8*BN$vogx9rZgl)WRzi;!H-fgUB`4fK{JD^+!j>HNp>(&C4|ECz8Qhcv z><1V#pC5A7FGzeV%8kI%C-=GROJP>TA{{aw*(0Fk8V(}cm2A+cZS^)dzTUcNe+AN- z8X>gc_T~yrykK-os=FJ+d8IjTwlA6=s?;v28u0(slxav!`PL=Uw1G}9Ezqo0tv?zP z$!`g%-sMvP);zw({lV(zXGZBsiPU9`E*lj)YvjO+NPwIsl+ichqzqMv`!F_r2G!HO zq8q*$GS*ybn$c3H|C|_@kh4bd*7ueYMw#?t;>B5p*FKeuw&4o?r*%JTs@_X$=9Hlh zpD=DbB0}nC0J)8H08gh ze;m>5{ZNyfW#1?f)wj3OFuG0(so9>iA3Uc>*R2YyzqX059bt)lEskmzc-orj`8NqBF_47Z6G{x7Z~&>thvq*$@+-e&TMFlQ|9n(Hs! zxiV~bRaWl996yA}0pN>1q$fTiY*k3Xjn}mA`D4J2H(W~E(igIM4>1Wm@U5ezeFiK@ z1;mF(#EM1V&AW7h7!tg8*$MZmC@4_(^^iux56#0^NOtT)OE4C;rmtX|tg<#*Ma8=w znh@bkucil;mS1X?!+SsWBQZhUkYU$Ma>4si1#YtU7w=?V_V1Or zu{)BbjM>^USq#71JbwNmh-q)AU?}!^WEv6KENYDp`SkF!h505AX$qZu_gn07VQ%C| zY_a)DO?#B5d6$JtsVEB5Wx*V&m7Tv9vi0~(@6s)*qAVsMCX#wvD!W3hS7INwW>H>8 zRZI*<)mY0akjMA83e0bmE(MN(mpio4&R<-W3_ILnn3|&#r=t_noX7 zRY~x!dwcG^u^Wl2&S;>czW7%)51Jb*d%zo*vYx>Je<^W_zM#v+w+qRKMXp2<5;A_a zD0YR6MZGbQ{eJnZq*n%4-eH~86_~`QdgAjYz`P^VfDqC5$icxLN-V!KH_F#Z5kMS1 zB3ddeWY%b<0#u04=5h)g{dT0lJKw)JtmAWEQ{wmR7ptF%*{K+_2ej|L&)sO-MijWk z)&2G*Tm7p0uLIYXcNHgDbHahMp4Dd}S45|1(H(@n8!0>(;I z@v5P4tgV;n=9bH%+Tw)i9*Gj!VavVSX)=~xqi7iJV8rK=OP`j9X)KC|QQ<9-TgEco zX186&IQt3ZjGp(~hfUss@XZaka{{BDd2)|F-Zdy-JlRd=zE3d@L{@tRMOGMVh z7$E0}|BEW}goL{bmzC+4w|2B#;9aBx6akj5t4cQAK(LJ^%F&$Z532_C(v-nUzOCvT-|C?kH%)rcTYB2lNVPUq3e_I( zR!~Ii@IN;(!Bzyhgs;@B_~>43!FG-=nxfUch|J^-W!5VPqwM|+xmFaXn;q13Q5OTHJV;e>p?%K zl(8F+pe};&#i;;~K496)3Geer3fWU(Q`!1#0-V_Jyj`F1^{2!=8gA?w-W(45x4tht zdY1B0M^vS4@0F#ResYK|Aig^tYx=Uas;z&b2D(+&D(G$AbQRiq`Z^gs)Yroy~5?4i7l4Mc!+?x?2AV4L*<0l+u<0V zUX7uGl4qRNmj3hS4?V9Sa)_RovS6b4zHGc((K73y$cQ|MQ&eo)!qNP`! zYBe!(dTirLN*2iofIi%r47=kDNqD_`a&ZQt?lF`Jmo6>~zlxm-Z^61S(5LV=L6QOQ zPgZ-E7Wq>Dg`O2gazvjJ^}T(z<$L}JIashP;LhFlQeSJdUJfn3yr^KkMoyC-UZ_CW z82n-ujKUBQZPB$HJ6b(H@;ThZV?jRJ7CZ*%-&=0}xQ|wuk<5(X6&_$HD7J7-fXoT4yN= zN@B{qI3a&KkwLQaBEn$(7tx0Yv8T8qRZX-A;=_fdNc4v_WK#@0Y$O9at;0ig=x_d0 z1~T{RrBkNiBia@dbQovp*r`TWD)$$Le1p{Z+6>APw02p57mj+|8>-C57)Wj8p#5Px z5%gkWlYTa9h|t+O2n#(>!T+KVo-X|x<*^!==WPygZIs5W?GTDAxpw)!^&x6!>v(na zk@pZQ?O6LV@bCBm$@BexcHmxiT#eBfPgI6g*LsGVfR-;3xbiBV1*>L?pMBMGVNE2U z=NtQG`la>)uZ>eW*CW|KM_Kj%UsT2LMaTcrYX7D?X8%(dTZJu5NBx`c`u~3ivUKJQ z`iv~4+4PDa39Ntb@IR{qMDfpF|3mNO{YMr2!^(F4WozQw3I+&*T$cWM;piXfAmslS zALbqv$>zOJS`}Vh|GN`Or1~n5AjR`*`yhZlJQ+(TVuY7j247|S-=DQca*hADWZkV6 zjTM-Vh4!m)G_Hp6>zZW#hNY0cX|ADvXaR2BJ)f%@(g#*`wC(#pV!E1 zSNRVoc5E!rt6Got%B%SkzG8CP*sh(@HXdv-wWUxk$fpW$uFG1^Fv2hNH?bYg@xK5Z z$a6ojX}kx8$i*T{ekm)aBMqJ$kzOhqe(SZ=&nTJ2uL9-rRfOY^_&nJ?FMY0F^0a6w zGUtQ1#7Q+G2#VtqFQmqO-Z?T=7Rl#4e|AI2qRnc}^PQ=*>7!orok3yF6FR5fE6V65 zKV==)JWEbUsJvnWZIV4oBZ!+eQ=rhpx8{h$8y>hiw!EL{J(;M3fHcSP?~O z>F(~5j#W~WQ0eaOZdOU@X6dDuTyl3|mtEdLpXc}cKF|BU^WV(enYs7Qx#ymH?)iL< zVyXwRw$fK6hy628CJ!~0rZ`i>CvQ5Li(8HBb%q@$(u^_?`k|4%ZP`CA)P-p|@9o~5 z!&Dv&_4JI+JC8B8bKC)O|KvaWv9Y^kFBBcKj@ZAUaod-K;5muYf( z<^yF7Zsj=(5y&C%wS&HmwOC$ZO0aAs74riZMzNU?^ZUZa8%1Y6D{E6qaed|tL+Sx& zRNBAMe#-H0Typ9?-}^7sjsKmVI&XfJDD0-SmH+lNk?#d2{etjDMQ=I911^ZY)=jL3 zqPb4i{znbrm>(uXgNAjoG7Vo&%|M0H^kY93`^e7EwW;`)38-wpe|LVCtXJpYxEYkg zepbRlXZ=Y~;lR6U$L{wLzYBm=GzU0ZT?C5nl{=h@elH+?^x!kfal!S2H;Sr&-r;=1 zS5f5M1~8q;RQ_C#QF|jjc4Nx?^LepAXkSD<`Oorhh5N*FpwCsF=5;u$i`+<~I!SN2 zB$a27sIF&y;^_Df4-&5@qUnV>(~)#fZR>W0pxx{~8N08SxiQaZ;* zW^Jc$K*JQ3%5|;hFxcsZyE**Jt5%(9fJ5oL4t}lw7{vi8q)6QJ@>jxmg^)J_5>HE2 z46(<2>$Tabwzf;G0}I7R8`v@M#NXIJ=k@nKI-3){b+$(r|JmHz{@cft4mtln@rFPM zB>Ze{qjb3V;@5Ew49qUuLvtL$tg&~#TPm6`Fy(#?9`Vb&rRnw!<6DtQpt60+C;N)C ziK~$W8!y?S(Nx#6e!^1TJ*st#Vs9~96+F|nI~LqJv+sWj3r>@>^FCRv4;x_j5l_wy ztd`I|cQMyzDvjibT3`%}{Z_U2?bXpZ-pGr+Wes639w(Ec?B8c?s9m>k(t}~@RaqNf zcbOrm&NYKf9)av1y=RPG{5NNLU9y1;Wv-R|w-Pz6{@KiqI5wW&_jwtEA;ac^n_IIk`k?S*U)jxmwE=-PD5nX~kZt;wQa z`_;@lceZ(B5HdE=>b^s4PX;059V*fTI6Z%m8iI@Ws_*)*ty1f5Tl1ym1ilN`I3gXp z!b>z08g(?u_j_tp|NFP7`PSSex+A1Vv^kJVEl(kE9iDjXMg!VQkZ}A_GSjl4WOc9) z@c5W@2XsA%b{X=CIu6ZVF_7(<@G zwXpKJYQ`t>i`jYX7*d}EZu6wx zI_Dr2Eel}T*QWwJ`b4ssFp(UK%>5Ei0hV3WUga_Oy|YF==XEz$^tM8#tWgQc0>>ph zv+rFK01No8g9Dz&{W0p(Yt!-U7 z9SAaBU%24jyrtcfsS~VS?A84)^Bn=~Tm)TE5+1N}U)%Q|A$83D^AMi52+T=XfA?(#c7KINWQkl%(0{)_N*vQvuY47_o6H&wGX zV-I6zbvHfzXvd&Xm&2B$E!W*aN=tcS-qi>mYiv@b&_*-E8ks6|(~)KSlqu%+GIyI` z-9)J-hz|i#7j4pl727$#un9bwJMC2+JYP;8ek?47rWe5I<+=y84jVSfnxo>r`8P%` zjJHu8OMS$@hK_G=j#Yl1&zUpX{n&lp^}v3N5C0k++?&BAEfckftHrf^ngPGm>)8c% zAd@S3dt+!!PGXC;UZ8zUv48qFKQWC;XunA2k%fi6?dtDLw@l#Seq+I<<6tJnR2&{b zOwS{`X9-bF5fcUAjK@8`e%U*^VEKWEm5sO z2&p{v?H_Wm56`^S5(mWO=MJkDQkhkORiw6^UD9ERNdHNzp0NRTe)^()-B$e~2bs!{ z1E+9aoL)W*BA@(R%k)v&CxK=((ZgX)TkwnBP!Rfx21AJ*pIXf*; z^P#Isy(y`c56pw~ydO*Y3z#2}zC0S@hg+|XFuya4Dr6do7XCgTAv3Hv^?J9ANbaZT zU~T_mI`go9t+EEaVhp4%jq7GJm)l>Mc?OSFpU z*j@;$*Jx3BRkU{;0bcv}g;gZI`~X#=l7^1~ec@3|O!;ZSyvC_R<5pa|Ea&SOa0bY>^3C6O zph0T9)hR!&l8iMg%x)dO?ko{CAMLAE*^F$??ORnUZpkGoYiatV=7V4kHVu@TqsxbJ;mtA5@+bY8P2#~PlkQU##z049l;k)ZdUh%U|C6{aXT zHI<~FvfuLoEMtHea^Ty8Cng#KbNgQ+P0w1y8t@%X2hq2Ig zExVRHmhhV*9NJ9*YA^lV^G7Ey@s+BUgTs#;KG#S|hsOofQ;hnz0;s6i-JnlrzP~=; zB3KyBh}YDBKfAv0Z1BWuDOm<&o7R)&JM~9JxgLM9b7Y$%nN9Na1(WLWJ)BMWygPQG zsQ40Ac1dE{G0^xr4_qt3M1~}y6V{k=oMXOucOiF~bTf31pnXkwoS>d+#)|398JUte zi;w(;DcPTQ-eX2!wD<=VPRNnYS;L&Ah%}e!Z7Bx z%kIIeH{nmyB-oUa@nC>9q}$-DZL`q9$8J@MBl2=sXt7wK`<<eC;+e2F9r^I{}`5Mb!jFe9jk$W)C zw*~~DQZ_oq`wTYx;=FAunY<;4IWDwJgEj`CN*3xmruCDA(E*X*Zhny+RS2Nv8d<*)iknxkB*dTDeHk2yqnpN=lM zPJVaem1j((VYk`nO71#9^TBr3vh$(A``2+*=hMl`*;Wtmp4{zs2HfIC-S?N3Zj(u+ zOMMlHq|UF^rN@NYA|Bl6)nSHs`luqGsg} z+p<>Wp65>sppU4qE!>grb*09Su!;}cH;LB|$m9QI^ z+=CnQIl`PwCATov41U`1*e&Adv~z>RG6CL8B<+yj{gt4%)>B2L+jkd$pwKlgOEXdG z=!`lq#Cf)eht%V8J~YFLfJJ*0D;bx;CDs(3Ot@k2ntoe?nyma-md}*wkJ{O2kl&`DYWuM&l^4`! z@OO93HpiHB7&rDVs z?WN;2qSM$6cWJz+eyGxfCOq@mIdgf7eOqM)eqD$8vG>L%Pt58FHtCm0j@JGdKiTZ_2UqkNkgEP5fVO}TagvhRh8hJ0%U5&GgS@!QLtr~wK@)lp~$34Fj zF;MN%{U?_0kxcGy+uB7RdFt1!Ef*b%XPV8yN2g0}tb)8D^h$$|T=B2h93EFzJUN^ zixNe@@26sySQh4a_FvkkM6?nrGO5=|Stg{ub|C@2p}rLWOQbZd447aUKfU)~Iy~!9 z>`c1pU*s+NK-FWmx5c!}wrhW_%h1|oKOE15v<&F)_VOcSa=;xRYhXdK*ihx(*w4}^EtI_Kj zm0?0m`(oo3+cY9B;cr-;Qd9Ao&CDt!`OkMUs55kytqU%C*N}?qgQX;y^{tuKIC0zn z-;H#g+6)7Iu9?80V`;r}hJx-=1fdKGDUgz!n>lzJGX6%!v*ld=L86#_-Gln^jo<=H zcg=XDO6G*eq|iBWM1dQ5(rK&rB5wzYe#S zYE#v5bL7ScI=;XGq1Pm9p}w}~l5)&41s9Rc2u+eH1yMA$m+CsezEP{V`$-H)t)p(Q zu@e3*#B=J1t1gm2V%6=BrfH48S?gI`yT~J@r?~~1=6bSCZ8t_M1<%>SWaTyXdsh#` zF3E;!aX(hu#?L+TkE$}H;_0g_`W5MXn7YH!TTBvf?d^wutQLV@TXK^~l4o`NYO8zY zfZ5EB)W2j}!M4am=mUW}+Itz!<8e9?i-q6)Hi5)T_S?*~TDPFz!$>G>umhA~FHL>> z%dU$k&WL|1dqGlef+2hIVBg)$px!=zo2a=xTbPG`a)4;zqx@2=-+XvJfQ$qvgrfMx zj~T0us_yZka2utygS$CP!K0n&`N_^{c?QVM!^U_6KG!`SnU|*N@iHfaAtMVjyWhQT zmfM#dRy`5mS9qdeI00_1>}wu8;R+IL`W+aHdc%^>)_AVbfv&{^vR_b!p-C+zS$LuR z?7|WkQZNvmKctrUSa-DdF27Au;}i?oQ!%)}{;Xx+zzBsQL(Tbnw*bF*pH0$KM^EE+ zxi>97hTcdbW?&+I3MYB_8k>QBwT16a#7FZ@4vhs_+3i~E0hmuN1ae*nG|M*8^z^oPS#vDi z==Y$By4!=;jFy%5NOOG!mt|8`Tyx+yL0g%GNH~%P0;{y4!>ka@q=s%SK^)>9XV8cl2zLf*iGBVHV?p0S< z91hi){aKI*eD_?YCo7U;--EnSsXdGAC6U?vyAE~zuCEY}*wxb;Ll2k5AI_?dnc6iVdVpi(Wg_*g&;gFAiMR1bOctlV1B|zi?mu`&TZA0wF-sqf7yd0P@Q*!jYSz%yIr zS>~e(hLZ{#(}JmYUr5YWY1cU6ZHX`6iYtW$_rHs42x(cG6x@EH9EN_1$rAs*t0Z@tD8y^(S?!B7gl8#Uf2$PTjxyg2Xe)XVIfzFE&>A>+Z{^zkBQIBiP-rjdN z&s5WIo;46?ORdBWmNb<8ou29hj$KbY4zOt_@4BOxP2pSTaP4Dta0_iB5BP_-t0_TH z-I6bePompbu-B+c&AX=Pr|!uyfDHM$&DEOcHsenAt;sBra4cgP+s4}+F4)wfDs}DE zhs@|%BuqnJiZxqMOw0cHgIT%TH@`?46oe;p_nyGaycQ<{2^?!!{2o&;GQHhd zSiP~;GyW%(xas6nZ!i60O`xr3F0??q$MGVi{1WtLm#6q%^N#@#L&imQyQe+$!ioY3 z=64U6A_1Hf{U*KoWjv^n7fWwRP@&@YxoEw7{3SkgQzskwm#fq!iD~cMEZy&z+H>Qq zc?#Nle10#8d+{K}w9OmX>*9+Cm#j09;oj>qHc}M>V0<+fXgv74p5~H;HO80*z}H6) ziLag24F5VF8o%{Nf30g3)HfhHFL+69@0Q8eJ(;bfrYb(hGT(m?8Oev{>02^vK{pcL zkgc>Gzj1hz{eNou9^h~kNd7gaTn*jv0|vDcW@iu;+neS@#*2g`YlGfQl+%VSQd z^{2b-TmUoR&=BR8gb(C$`@}Bn{p7*Dn<63ao2jrtfmPY6e7T))wp{$_hr#~iKZt~A z**cV#=li+MSR$AD1{uTs<`1d)4HCvU=QAu|R(AcqVd$-T-=JaGzfqZ2At?#w5N!)0 z=J6Wd)Uz%6?jT(Tsn^d~rrOwxjD^&uaaFr_Zu(xIRhVPDcnQ5Deu&&Q<@N63K`#1X zv3oOVi2*;FQBCw{BM$0z(c+=mZQz4 z@2MLA|Iw57le&CTBkR6P{Xk%BE)e#;9)a1HwZGm1`EsX;+;Jcvc(VCtun>K8-2C1o zxFG!`Xr99t+Pckr^XhK_E!dORZ;L+cjm@C*Anzg4w57ytF18;ksNb?xPG>gyo8H4x zw>WevrLllL#XiQE@Hlc;!2HW~iCwqJNhq6g1}{uUOWc=35|EY_W#LdLgE4iDzv`nK z&(>lmQ{(4@rzN1M4wVB`^G7z3cg5~)B%99V0Yo!^A6imXZ52p~dLa zeDM7m-8>o9{XOY!fpk=K^Y7aRL!@ZRay2oq%<$dMM-PktK*}04B&hYZlFA(^S9ky=OA^y813GkwU-fsm?*G*=?wZVNjI*Y0@R-q z-*4Rq!fxkwOAXW%Rb>VR7uB+6ckc9_ZlCn#Z+nFkTr>(ma#te{+l;Xe%os-MJFe|L zJ1&b?3Ji2n>ir_x~RO>G~Q&t6}{M;_2f%dmP&5) z_kst#HZRq!4sc7gY2HppX)l*`t1!e^`z3jmX-{MB%Yk;>s2Mo2N!GG}JMUoZ9|}oh z&ps4}%93bSHhznr%PLXFXKI}v_NkxKkg~dwhBUKMWEp87U20ROft`4{BR%IqqP8eP zdpF#+-pJuN4+Pb%8)%D@Ff^Eh*1EU%T4E|E2%fpdcb3I=y2=VrAhuieGS`Wb-m_=r zL=`>~)W+r@S_cn*?g3UX|7=`|fh8#1z=}B?0na7n1e<2i9jSr1yttn{KulfuzdpCH zA+&vnh`achV+aG1>dnw2Bd!4J*KrN-kY+y?&O>AoXL2^>Der(vxd-Zd=B(+huhU#J) z_xb!&OBT52^N`tN>GsMJJ-Mdop@IK;^{A!5J zmG36EJ(Lc=D=0v?ZS!)rIg3z5+h4bBH)D$>5R%yerB2eZaq3oDBg+n_{W;f27RY58 z^DIEy&cRQ;qSDRLG2q9iH$7VQ!TqWDTBA~Ip=Gj929N)&9jt9C_ljKRuTCSJpQ|MT z$o@3x-&GH?Y6vANa!g8$Mo%KG8s_lL46TOVgHe9|sB&fSk@>p|?dl+P%&R%g=S9hd zTeYLB84^Lu4rqUfCuJrTgm8RPP`o^`swlMh!R_sI3xti{NrV5C|28GP-)`?AOyF2M^DRhUz#(s4_s5wb8-|4;SBLpN3>W$2gjOyO#sN3_^*8z*o99UwiH z0X7t$>n-3zJ z<3wW4)vM#XjRP2mf*fU{6aiGFR6dFE?{U=!WJu1w+%qROwQkw9~PIxxd>5mxTz)< z#dK?rMb*(^aX-pTBZ*ndQ7sOlZh3f2w-lHpD)yS|&52nJAy+||lOQ^!37;prd;YDw zqU(1pCB3V@Wm92F*`45MW9vg0}Bel&C6$W4)1!D=SF=J=ruFw{q|$58gxrnh4%ANjPoQnqvs~KjJc3$8^bS3 z)UK4YZQimXQ*C?J^ zR+?k-w9`4zLW4~CJUW2ZkCn`sfd@~Gz>@^9DU8-HI=b>sCrv&Ne&QraoK3p501sto zXJT9SMtRNNHmc(1AchQa?U%-@23_t5nxd<(zP>;#mt7P08*Cb6G1P&;Zp~&-+Mb2W zPd=ICDo?soz%7eZeHWf?1|gxdE)6tScYkGw29josp=O||Cd-`|t%l-6%c4O_yY9ei zH_He`09E-qu!3Exn!*s3O#9;FxTZP3u1YnEd@MERe*J6a^3*~qKm6&^k44LcU$$O~ z>`xoF>Z<6eSwEM3@m!4{nP z$jBdeY0rjYCvC=~kY&U^eYjP~e*J>?Y!sEBUtXF6yMXnE7>SLVoC;3mQwIFR&25l4 zoSp#5NRL3B&0w=fd>}XyR8m=>bof#F!yKDu1^&X&0sX-@iatkFJ2bR>!A~)=)fTf` z@#~uyppzvXJX1dEsl9WJUqIEt4ZS;V-J@Hs)^wZipecHhp|Lk+)lfXs+0>hCaj&?o zEb?=k%7q)8Q=+)Z9y?U`+$RFsIH6FBV7>U{cBk9o&nC!Ee7mE^unz6#iQLnugBxJ6 zyU^cEJ)ZCLoX1K;_=95zGl6b&sBjz2)%3X{=yYmzQB=E4*s#$fN7&Sr*dVs2i75s8hJldp=H8~0KL_?6 z+p`N&qpn;HokQXmDm&CE#o5o~kx7k&$?-O~3=wrNZ|#HU1?nB#XlMj1QlMLtl-AD* zyN_o!%5Q<+T<+ zDQ^}NCaT+NFcfU+&`LN|5z&bbSqi25ExyGc!}mmQ!iPL*_>5I5hC;>Wr~EhB&iQxp z2;j3JwJL7+)C@KJCc|}7HH!j^(~#r57nK*C)CQd)_t;;5tC5Z?*7A~ z>SEIwc)es>s)r7EcW&#{&x54LjZA2AdtvETpm3!Vx*{Jl^U#sxXzVTnPGU~t+`i6F zz$j8dzh<_~n!l6SVIJB>D>f`WFj&<_7C#&Mo0m|%{B9cC;Tr}pyJ`EA=9ALT{;E~n z^9$w5j>YH&V08Bmf-8MMGPgZ!-RdoU))^3KIqR++Ms#R^U#~WG8(kyu!wG#ZcxxKD zPlOsHH&7MSg5lC5YCez0&*Wc+Pp1+2Xg4ao^VDB0Go_eCx%p_p=bbb!lwKOmy3Dou zb2aB8KX9SB**C$>jK?L=(=M9x7sZtvpR=tKULj{q@!#;0@KIyz zW^=4N`SdDtSrGIQJ=30~Tr$&|)Rjkbr!b^Y_RSlHi?b-L!8d-TxW%s|UV~#LMt+3* zAM?EjUui(pi`{o)w(#F7`*=5nC;Ny3he$wBAegG+*Awxu=_QKe4=?8@?LZuStL1Mcbanioc3s)m z1`U1KwER<}3|I4peYWle3lI{j6TU{uI;%r>eNiQwLK{fFYi=KBX zUn#}!q>K$H_~q*JnLHG-*87;vIyp4aV9U@?>s68~Xl-$~x=MU$is-QAo}^P*&@#f5 ze`lJgzVo&3&F_R3FWGqR)z*Yt@EN*K0&#OT?q-zu7n_NdMuqV+BhwaT`uoOF5|krn z0%ij@K=I_eV$cZD(LI_N){V9nsB@Z!V7&P!1&f-qJfDYj%aZ)PksPHaBS3(tI^J4y7>usiZ4IGvmuLM|&}lLy5Dny34c%nfx zj|-RmBo*=BQWA&&2d=DgiJbBhsvs9B#0_WNPlq7dnI!krC^Vsk5@sq2cC7|YXzZkA zS-kKQcfClljT?|V#!l3y$O5#0z2<5b4(e4z((*A-f+Qv03_~PHBaTeDDB0V_opeSI zpCtEeovV4KOr2Vf6OglB&GDPW7Nd0e>@B%;R$yXZBn(P5{B#?h^mpL019&Eh_$OHw zXb*lARf3~xS|S4ju(`i|6f5TF@kJIbiv;aX=pi50Q=*3ymhfrQN!y+}*ZCLzoUG3c zf7bS0_>KBhY)jfQv^%R^5w<;}7G2GS+3mAnrrRP+Pta0n2urZMp)nX>f`Hc0+WF*J zYK5_2b;6d;2pOUdURBQ}1iO2Vr`x4Vx8k~OJ^aPyBRvt8H2fa9gLgFi%YNhtzse6WF#IvTzcl%8*@Inu#W&=Xd1$)}-Ri&Nan*?J$vj6w zUScy5aPruV9PK37k~#ZTz1X*|2;l_4q&r5Q-kVZmQ!y@UC&aDnO3I>il3P84FRsy* zX&Q!3nc^qU=6g;&1`kxYSNm^(w=E~VCV9OL%EQDVi;hRR+Ognp%AM+NlgzG=sN#L& zgv1tT+doB;KC3|e2K2*>ai&HyT*1+!nsgG8=or4_Eeo(wq zoYa)mn;@uuUvAee_MX zD!+l32CPin{utW*dV}}|{5eXyro=`IPhVmphe0GmA zwg~!sbF>81sv$^!7c19xBW^w?Ybrp_#upYqxs4G~1>o**&WjH$23 zU?Gu5wr@?pH_(mZxAQC@M08t>@tDHIJ#Wr?+b0d%uat;U`n6KXl=OZ{1~MqiZ2f_d z^!57@GM@O*9cbl<{Kw!N>iz@go3lwACAMC#offU!y;j^m(wu}W<{HeNG z#-sM9JVT~@d~jba@-g+t;Py6ac{hW?oFMwU!)$cApmLlJ>=d~y^09R2)HaNW1m$Q_ z!5I(G@EBayS3>qx#SWP>WgEM=Z0O(WCLZ7DwX zYi*jLbI0hTi&2*S>bBbNWIl$sW*55xp2YXOFLfw*kXhySUX;bU zZM)F$fpbA+P}bcP`j(k{iH+?Rw;Usrx>tUz>tk~9 zz`n@vOgs+ONa`TyJx^9os?P~=WtxpYFCzs^D@JGB@=+N4 zhYQ0+LIlt)vb%x!v}u^aoqB-mU;mvD=Q59io}pI1r)rPhj_f=hv}L>E{Kt_>xdE6# zF(U=TT-R|TGJ4>TbZ4n#XQiUBo+*bmC4m3X^gFEX$VacHtP^RQ*m=whvASCj%nt@K<6b@WAg8VI+_Nud@*O0q$J~>}@zUx`ua;|@cr0K)fz`2@Jw*gPOeiG0 z6KO0(*u{_KEV-FOsR@D$vqugDie*28e+!@;F_Y|edYAImutc}QWB98PvH&nYp~l@9nE zkf3142SbV}moR>fO0VQ(^HBTv$g_rUYp`E=M;4Z&=jl3 zt1Rl&ZtcK*mg$b)r()+wExCP>UbR(CQ?wHE5dEzyc2q&lH^&ni?_PP4*AUu#=BH2A zJD%{&KUD|>_7J{un(t|Nh9(y(GH_URh~_BWc}l|hd()d@-+JdRc}T zSP}rouewO5dLtca>5$yNO9O&s&dbY2y6*sA%V3AT1>)MP?Z@*sFE85dT)sd#?&=kl zd;hCgAMcg_UF@PgX_&jJH z{J$y&v2d*!$RCd=fQV74kZb<&|!}zcGPgL=;jeAF>nNqZ3l4HG4 zENsVm;LBQEsiVpbgt?Xb9(<Ik#O9r=0pYvp(lt=De&ca+9I{tz7(ENwA!~z~AC? zw{dA~a&a6=Ge(-g2jsMGU3qWJ#;d9I?BDIjxS`}zA1Brqz#9Oq`tNwGq5NPSY z;|}m(|G;0l04}`$K;EwJP;l!%ZxT)Z*V$u9;K{`Q@nrEoQ|ey<;LUeD#v3!K|Ev7k z3)a6i|F64Q&x4w&fM4_P^b^s;V5fLMJpLWuGYW#5|L@H&Sq~6@*RB8V9+3w-2{JKt zj9m_#e}~ss`TwZ*A61~ltZ5Xyt46E{vQ927bf@d<^Uev|D!_434)q?1%sQ3Xat@DbA+1Y zzw!I87YIEV%GJMJ_QTD8TIj#~p;Wh=9=MW2_-|;xa(>m2?3>Mg{Ynnye_q*{ERN@w zmt*?>c=7o7_~l|i{XZK^^Iy8b0eb@C-hq~LjjR^CS*PlFthg2$Ei}1ts$^P*CNR_|=+IoD|1sh)D3!-7t-xKE@$kTuc$*JtKZ9b}Kaxx2ec zk1z`h3iM|9rQZ;-NKQ?v&tez7k#&g4N>#9=UozdfsQ>Ji<=j<**qY}3LL)ZKGI^Wy z`nrRrLe=`u`yHb_DOODHA`}yO6mJ@TYlCd=S6d7N?qe$l1|S!o(|oij^n$})wP>=y z9LwODQ0oYDPWEvG+VZ^UQsgHtO@!*)cKuShY9b0wJu8h@%vZ^Ghwdz9GZd)J5DV`* z&H2Et+XGJS$_4cNFp9&ug3fO@Ou%|9$H)~7zEzHyJe%9!i`9fxgfIHl70y6xaA15F zYGyyfCU9MVv4_FUsx;V&ff3&|ow!zMLcFwZ<ar$Zxl^1Gq&*akfPly-yz zm#^a7R}`N!LkDtm*!;J%-*Q*{F2biz7d`~DceG*_OUlQl!31HxwhPR0kAwK`3ExmHMKZ*$IKWmEg2a{EhtAE+ zdp+WehKV4XWTIJoE{4RgzFftXg{DA{e=3!`fJrwb>-GQnQ}ObzeKY-Fxoj%i=+7P2#xdP6K#4@or(y$NkA%HJ(ATCwTqn+&j<8L z!)F2@_^S2(coBXkUpCV`k7vnf|=^2_YkS%qYNfmPOoO2oEAxYg1-QiRM2T_uEk%&T_lLof? zQ~uT$?e;GcptkMDW~*(HVMz0HPgwr>5YwK=%lX!7J7ETB7#YhOa+3+|#V+Ju+ZE>6Vf zq$JoZzYpV8gwCNi;k83yN&Gu@6L3tcsWY-?^LNx&273uTw-pe-Xd?&k?Y??hP zV3NYE6n4K;9(Qai`ZQt7ElHuw%?d*UPwOAG4~3`5h6l|}9nHEo5Tyo^JySd} zP4ZL-g@5bT+DRtYn-iH5DQ|~k&=*~@v`z&JZXRARgCUF8CcyZ$6Th6QNdDSFg{FYg zg{OG@*sH%_#7~;VDhRFDRG0Xm)8eW((uY^nY4}h|q5uNhWJd&P2mE4}bDU_(Ln=hz z6v%N=%%?>|JbkiQqCk3=$}-K;5b#HHVJD$`dja1#k9!`ziWgqd65R`T6_3%lA3yyr zSZq+Y#RL$quM6%y`cscfe}oQtx3-CtKYq7tPkC!=xXlk-wNnO}A?EN3LQ7VEdnmMh z%hKB*b1c<-ABhx0e&pMqi`CS(d`IURfRixFXg%NF!KWA;AF-8tSqBG_aIA7Rtr6Nn z%UZ=XYMbbsCl2umed;mI^;w|`Iu|ut<9k(XWtC)#5(~Bn){5~}IuU?wB^B&^kTmAL z^gH*w7D%#LiW7Ed0m0g&-ldPy`r*H_l^<7V3=7KJ+Oed%gbXL8aT{lW@_u=r9*{~9 zQ_DqsLtz5|9n1wepS^g;DkcGJ>Kx&URBH2Dj}boZQ^FL}nW1#c<-$NW1Y8(zuI^0m zSfSkrK=H&9Ir1%BMNDG;?LiR%^}y!l@!CK&*MVuSztutytw$BqYO2cEsKDs}DY#gr zssx(rQR=roFIFpEmb9~j4K(4WIfO!o>&OBt?IxQdKzV!oKB$|b%Q@o#rmjB-s%*nfAcXS;RDt5kCin!eD4t~usxn5ZxJ6N9&WTZJl7B8rf^ zvBsJ=;O`1~-<>tpl%N!tue3L{P+O+T%|b)z{U@5-c8u#`{vJ+|w3eldj;0amzO#yA zTOUPNOO8vGVE%Y&D((XkQBfh{+4xzv?VcW%L!EP$6Yq#0?L&kQ*}R??@4SNR^hBnf zdm%MHyLo4`w64iQ{Be8Bed@lDNHL73Pu8I-{ye5owN$p2+TGqse9K#WJAo_^0y7i5 zWh&-*aNjV`0r#?bYh%uSbHw=Y7@nVw(LEz1>8$tbQisk8ri%2S9g#_sD3jy(-N-8R zbU6g?paASumOI-^^<;SLPd66eMls~iAxL+*=7W{~y-!Ao*8@y5Tv1`&3M&lqzURG` zz>I*^)$v{(9Kr)O|F5aH|81Eil#(J?KRp;UJJxRDx1F2!I>wKpPNFI-Xw&?Lg6U_i z^$CrW#nD;AMiWgF?R#t$s(%`G=&_hOu7*t)QGBOrt73UOZ!lR`T@+M!!zJ+(ZIM+k2E zHY3`~fq}HpmePJ1XCh?VtOHkU-rcIzz~Uxg)OjG%IfDv_j&x?>RHn0P zox|@s<&%RO6VH?qSLUXKVp?|$Nb;p4Y0Y!{X!lGrK@Z1Rzo;FQd{Sb>+!{_#L7#I$ z@Ebeor+NN#w05p1)6*BeR_;~TRO}7?RPL8cSc`94&ea)WTnG~$HrVV=!ki%Fb|E;( zdR>+Oz{5wjdIE@kQi*SZVjG!&h`VhyJSU&B{TMz;QYt4nuQKjDCY)ox?Odw4F7Z-S z4;l3EsZCw+Z2aCVR$gb%<2c?R3}PTzVBv3TNN{U4A7xjeIQewSs|dNBP=P#;RLMF-hh!)8KX+RS%Ci&5LQju@}3)x+NWbgXF@bQzR;I66q&zjmuQ zmfpLQRa{FLWh{H31#83kiYBQSzw)`bZo*Kt85rCbrG|7K$0PeT_mJ8A0t7d)Ic{4i znyGttxtaznM{MdEWEoSOR;>Lwi?%E*a!Ek5@!*5Zcj98ipg&tQdWJS~ah#Pj4sC-y z7pG*3$emmuE9Bl-e;IMN73jiC(xeuf&%InnM3zz^zP^4G{5*-jNZTQ-+EnmeW-mM)Olla~Ud~O< zq1k4#+x@n2Z*IR0{p+pdP$+}{Zj?eI@1&yG**y}AG;2%>!2n?;`QsN~8k^_+=rMR6 ztM6cYF=w$F9EQj=GXgVGWzGg82<}e`E5KX%h}!m&n%(nEuXm&t&nz@7{BeQwyZ}i zh>zF-Xm|#S;GamE94v|)LGN?kTNjGjPb0)9ShU;BPef59L1Ji9xavT7$~E|#6R$~5 z{d&%QFTekXz4wl4s_Xhi^-)1l#D<^(9*wfAbXtvP>lZC$J8 znP=MhOofP8jfU2fIm#ZZh8q37r*%`*+QKy36ncwKGioBCnu8>Dnj{I@3&Jq0U6a(@ z6NyK4*5@?cxCb%ryPEdt0J*ik?@Oi$6mK5UqMB21_KQ3aqZyoF3RzFH`>r{(W%an3 zxHIOZ3h4stnxaKWhsxr53*0wN@0Pf>IDiel){6F6uniqr8juTUuU%|$<-FqM(D$#% z-#k^|o~y|{zZJY)O&s_F`og}>M60}Y*T*srhJ1Ybx~`zXw$}PkmWwdCrYB-+`A~2+ zUHP{ldTG*zGdOx8GJQ?DEKN17P?zoLiH+-yDPun<0Xdxd$4+ z{E$nnWFB|b;m{=BFusgEZ=6yjb<_93T(BU}hR`;iva?Tv)m`?y@C`um%3xD9vcNm3@w}PR#1zAt8v^v`W zzRzRf)nfPAtC5~I_i|l?q?`;y@kQ*#ZY;1vEhg!2O~q{^%`#6N)Y%46wwBaPXXD&% z_UiEC*#a70WAZ%{l?(j;2Jk7MA;(R2YL1J`3H9DLYx_BD;8V`YEFRLcB_>lSG2~2m zk=&!^6961#==!bPx?Ja`Ss+<#?c3L-xGPR4p8$8h3E#PoJ5C7mn`NKU{rQzowSUOMPKihHj6evsL|OZ2|#eT)|!=)*d(t? z@oImD`^ofPv_D}oxMHNC)d#oF74x_49HO|$l=S}4F#!hS>6I4}&GD>*j6waaO@_Ml z)%TYS^fX(M82E}9FF8^h}h@+@; z^1Vz@!HxFhaWQ?Fd;wmi)T-BMOU$lTX8^@`uuv^gx&5J z;4X14uu%`;9BpJ85ym25Pf}V#5QC<;LPBU3x-Yh~I!11{s7Z86(~Z$(IApjHd8CtB z0E^=1@G1ejag}9$)!}Jes2@+hd3HN-1w^#qz-)|1DXAgxMXJQ$<}`su+gQ~OCc`?v zk5e&CatT>^cQn~b4%iGVESRuX>m$Tj%02{sRTk&O+h`99@p&iwI4$H|`Rj3i>j$NT z#vRM~0TgJcp?EO6iVowrrrEg7`GlT%(1;={ZH`m#7=+Emf(y+D21$TFC5d*1Z%sa3 z0OZqm%r#o8f?Vp)(Cok*CT3_OmuKqVH6ch!BRDn1YK+s>4RtrtJH|n-cj1 z00-E>Ff2QhSKG6eUP#o)x51>XqWG@u27uKr2X-|Q)^C_^Ia@}Xjpo$~*0VvFT+Uue zfO(XIPsjYdu; zuMAe}+k}(>Q9*B8n?zE$Tc_PiVd^lfnE*O+8W3F;24oXVwtkuiU{?3BvYP##{H?2c z+`!6sQzXMAxL-W7eF(~o#f`OUZNPH{sajzp=fZedL2s@blY8fI+*>Z4xgNZhyo|=Nqzarf8OK61sky5!rTCIZ_OgfE%a*JMKLP02lOkudLgYm&vH9AG&Z5Gw{SZV}F69K#^1DZMd`> zA7{_)lh-RJ21VGFaWZy_3Mh&!*e_a61U*ZKugdpdjXl%Um=Z#*#Tp|YKS+Coj|a@@ zQ`+NOd&+9+_9H1$={Gy_?UlD0v5@bsp{{4>BDY*X1J<8QE#H)qx~d!BcB6Phs1d?U z6Y2dBgfuG%<_ymZ*3x1?#+q_Nq9RGC+=QpW*A96wsKrn9Y%`YhM>FnQZh{SBFoIOs z)mH40ElKyUZmOA%L<{kRj>=yJghmx}DRAI1xH)=3#OHx3rt7q%lEz5-&0)`8%k9`m z$guOi1Fc~-W!mN$O`KP_p*ES(*+5G09LU*$gxLZyiaW=~jAmIt(*!_eW!Us+nd){) zlfqpB5dRnIy{C*v3UKjKaCj&X;#XO8XA`_shnfXI%l+l~y9D^iuLlkg|Ht=1gABuEvB3F>JAbIx=ptp;vGwFT= z{_^EBRGbZ!cavn;E)~tfo0|vwK4qs)jlK0fngYLKj&uk{4`lrviXgxUZ#y7Wjfr$MK{$04In|9*P>7l))Y$< z5TCj%Z*h1?key++Fjo~op{ugoG#+R^THg(RO`meO3V68-c~A1~1Ge_Iv0|a`F@1GJ zPDJns?#+jM4y^F3_Pxx8{ER1{ddCBKOIhb9)LY^fkhk-7Q#C$30WDn=@ZR$`;l`3! z{$j@w4r=v1Cw#Q<{@G0iiKrYi__&nD4$O`CzcMR*Nh?*vAd)8S#b0?kvb8NbTPC$U z@|^QJZrpp>SFPM=h0;q=!~55J-yrms55sUer(R0?zr}7gy7Guty*hF)aYY1#94rW~ zGe!gtBc056HpRH4V4{1Gg1sVrQN~ai8#}VS-2E|>Lv(v_FC2j4dG*gFwGYQ@RYGr6 zWZyD`c1C~P6>|eHy|&pzM>vr4s}T~0PG2Johax-j=eo-Z2y;E=#$garv>iy zVh&vhXO`sA3&v#C9P@BF?t(P<$L*Rko8i~kUD3lm9OH_l>Vm5moLJMeEyq(P@W|zN z7wYBDwBYg=d=@9=RR9;2I}VM9l2MWL`d!0qtR~5*Xm+HUShj zMIBBWd;8R;G*&PW1CW7={j`!?+nWU~RRhDb`Q)p(h+({vt9r7%D1J#P-?}s|-nb(| zesBr!Y-sN2V?91U>eW{Udf3JE8Jf%Hp>5h7nv%DG@U>92H9Ql&B&s%eB|CYFgmzJn zI8;6i_S+6$oy$fatVsQXw0>d1*1Ygat#Zl!2{Tpnm?Dq6{!Iy_0l*osuV2amSG$@& z&eyr8|8HfT-n!M26w#o?IT$3QcS|gVTb)FiB@!qo-0-4(nFkbVelP8Oq9_D_l^1&j zSeFR^2`h@rdpamP3iR1GOf%i5nw(u$)X*&#a$es3>vc*Pj4JE~Z%$b%;?5N1GfZq> z^o6wKI`Xmy37GSRUb6eC#z-@Kyh&QaehgotQnwFF6jEA>t$gR2l;_M-x`HOa1Lg<@L7mx8>jXyK!Xu}h^T*4X;)R2kI+Zn6z)ww&!-lu3L1wv#k zyRy~bN;;-clPeFMyX{ovx}$jnKgUV>zQjK1)#WJF1rtO(>qG^f_7WYibvwj&cY*}A zF3}?8Fnmw&sm7UCqnGK(>!xJ>aw|y)UUk?n310Lj%T>#+P~ecC)%e%<*7+k=b|HW= z5AH8;Cx`8et_4kA&wX@3M~v$KoE;Wk#UBbsQC9f7Rs)^H_neY4-Hvo#Q+l$1(o1R} zEH3&1vCPYY779azo`O2K&g=C16{^J0X2;tu;g-EF%9Kiy^`cq6xy1fAInnzyn>HMl zLGF8&Sj_w&LQ9I(XbtL(;nk>yusRE)#k8KR4-v1fv)xVz;z5 zXvMa4ko|X;o?7kVT`#Hz8;g;;)d$N(5;sDfSHE_HM2w)Fb3Fy!lco_p5t%yiOpvQ) zV>o{~u=Shs0S=veLCzevTkK? zzh>vr(*kJ=C3`P~Z;y;AZg7&RmOgDlFFg-W=}weEyt7h0(0$E11#Dgj@d_;yZMz-= zyR}18wYR3{J&ZS~jTi%ZOt>!VeT|El)i4$}k}@qFlmY@sV9U*|(hmzo>E{%4JnP1{ ztCNNzYx;bNb>I(JDTFp07iGSw21qn(y2>gLP+g>~6Rl3wv{SBa#7%1S6_^tPW)rb^ z*gnk3^b=7y@*tWm$=R=2=xV0wy1M)Vdw)T}IPX&P$fG9xfhosiR{_Jk1D5&(P18QR zJR8wM--h>BK#i8F{yogSTcfv9p*sMwe?bzpx`H%| z8lC5}ZrICTy;$`=j#vdG2sr@zviunId)!4Fg5oL)=nIQ40U0ubB&XJ`ne$EOWxQET z%`DvCV{g=ua1!%9#Wl_c1|9ARJYEN?!aj=8X6@p6?Xsd+RhRP~s^|6y`mCnTBQW)- ztdJOHGAN!1)3PW-cJ8HU`$3r~uK};hNtFzl1FcRvLpIR#bOEJ3ePoF{lD_HlfAM9h zsups!0;S7z38B(67*3DxO8S@jAq5_*DnB|UVm-?I3w;L^+F$m0aEMZ1RX*pRLPYP5 zf0T-sJ+2boDX_j_LEqN>Huw#B8**V*_!t#%vaI8a;b5YH8HuZ3GgM?Q$qYq5egGE% z*JYk4%EcYjgk_+MuATql)34w&A5>7}*0xZ1aO!|D+d39}U1l2UOFpC;q-Gp;+M9WQ z7Z1IYAq@3O7fH@7s~^=Cb3CH`MBxD$PO9P@rx`Kb)%R_xlm*&!vs#Nmt%WilpKKYW z_GR6=W>XKEe0oz%>wzL+foKT9Y>2$f()>{ljOR-hifUmmam7#0oCkb=*Q$ z50!g@xs~ay@~fgN;;y}V9(0%pQU{UP`luD?*1AoPfENMC&2MNF0G7o~a6%X~ZN2oY z9q%Odc_Gl39=+DyeIObe`a2r?18w#l1M(xV76!mQfb05!HD~Mz;N>U7|NQ5Nd-eyW z?FaB<&C&HQz>j}IL4GFq0=-zb?!Ussd;o0Jxay6fqdiFdJ(}n$MS8s$STy9bL~c_)H0kc z)>dI1`iy(s@?e$2V(}J(tmSf(-Egq18vwhqUt7=g2a!Vf&jY3I^F7Wg&eMiJo_LY1 z%NX+Pe17aFzHSZ0cKL>sg5tN8?VmWt0VPWU=(hiWQTqn@`SzZ52MrAy))0^1OJ^?v z5I4o&C^HdBzCR&s=Kz4)ZvfoROUJ$gE5ASc^(5b@$4`{h_rK=%B>ahS%LXuEFYUkI zT6cHjC5dklhTl)iDt|{|ty}jEYIpJ*L#^HZ2GaZA;qZPU`0gG)swlPfsxnk;#*>++`mqO z5dn?ayE1m0A3`}MVH`9=xOei6Jtc-HJ}G9cq33nqZ?r2#j}4$TT_Fm|lzskKX%|(Za}7Vbc0C2s?hKFs?sQ!P;Vodm ztszdn-FORFbUm&B)D(cpO~w7dgMPbn84%~WH~?$AZq%deI|lckPpkp!)~>sIv@4Q= zqrJ-40iu!cT@bGQe_0Tqei=on))Hd}X4=Xb?*xP{+qBjJ#T)dXQ+%!I2m7h$Cm(5Z z@5c=UfrfPL_wD~S|G>k0(1Hn4(f}%L4dtll&|dP%AZxH-z;~7O-o9L7Q}vj{wKCkW zhrM{{`~x=1Yt&dEu>4L%QfUA}#saN@ofkwq=<0pBy=l1b>sQkVJ)%Xv0I2j*Wc*Q3 z$~>Z|fk3Bm(`4YTycVlX+tF3yOCo<)CU|<%Vn{U%xJWJ4#(DR$SGA0g@NQs8O1{7u zB5FTqHQnpvMan|AT;J>`ATcQhqONW(D73k*V!E zFcY+Jzs^H_l$tgs(cfr9HXom+&(uqzD5Ea^GBT%mi2f8?z^AEeS@UiXh&@xDj0oEV z5JZ<+J>lQ_dcA?r$L9qp3z3txKQ3-HC|13)!va4IE}o?~QVRO`dHcP!Ul!YlP>F|Smp+y0;^-x#^nTw-ERs*XBwvCpTNUa*u# zujmtpS}o<7Zs9>d-lZQ3z-z|Nbf$xS(Zybn_aEg0$OM6Yf}l9PxX}7IfkB@rVT8P^ z&NSE4dqSr&O8qB?J~(a@LK&NmQs>J#u0ko6Eld5#mz0pR`&j6SVFz({k}cIrNc0wW zAR~%iP^~iq#1Kn8>5LfPDbnPa?dD{W9W1*Q)^WVqiVSc6_7E}K6c?)Nk{NaE5%ekm z2&liT>&kTv4aVdzXHge4j zdRP}scL^Cw=?iES6)fQFZVOE)2Ixbz{#9G5B2Hq{Sms${MbF-ec8gm!@P*o1ktljR zMg4=gxQ5%s*~CH>ui1`ebXlq%(I3UZY~PG7ZCaso+o}SvMGqqPHpeGmM&!sHxsl=# zSj@EWfwYrzB*QluzVRM?r3`(s#r&!M$w0kSH3GbEj1WTSx8^=dliCLrd{_7cnUQX8 z8(tlsYTmMRCjBJ^1wUE+_2qN)*EUhj3K_`U`Xyp*izza=a?~S<;#Qx}MfC|#9Q{3q zu-200X}ZC-jso7=8l@4n+*@17mcBL?#Az^kg}_~wCa4I+7M+x%-fm2!?sOwv$3rn) z#tT&!W*S?LxdlgZCmu9z0?fXtHA8;wx}KwCv6O8CE4QHK-WeA!aLH(XvT*kX_GAxz zUv)j!9q(Tz;(@$nFJ-v&9Ec^{s22-d^cDeoKSx-Uw_C$9GOgetLGWv>Lx$)#yf0&V z-EJv5VwZM!^ndJJx=ara=uTlUw~e}b*5Zb_lfD)x7Zf-5sR6QLEh{J32Ps?1CfMFG~kyIZX zGDhe-2bNqpbJ$)=5V=LW1Gk*Q|K=zhV>T&$Q;)MFZ zrR%Rpyv zac}j2k>g7=bo&W+UNOs-s|QS*0`QE>WMjwjudSLFcYYI*@xK@@V`M3RJ280QUC9{L zGR$6?!O3v@L_+>8W91;_7Y6q{2#eXZ+dX2UV5x^{R*a!nUr4Q3TwC}ZHJ&d zW5u9DRels_iW-cxzT*BojtC>hGv88hVk44H(9v;KUDdcGW!ERQ^AjNf1O&sJrAK5* zllLO)>~O<3+goL%x4`PS&zcc#%oY_`!yUQW*%3RGrUq_?I4-3SHs^M$e29G)TWIV$ zH>eJ~mIkBRgC%It*<9W^Win`I)VTmJx2(V&h_M~v)!3TZ$5s%0?UG$g)JV;z`FEzH zH4YoG$(qeP0-~dKrX7e=jf6(gjU3%*1x1yn!0o$jO>L9+F z#$I}F9WeUon5G77`bn7d5qAL=870bxR@$(pU`IWIgVnx6*4Ldlzz4y&5raxc3v)CY zDz>~R=w^V`2!Xoi($8xuKd9zoF8Xu)$+&?ivrx8DGjhZI?mH zxLBDD@2V}i4?({r>qs%TNppBSopoDse0C5|3wdf*?8BcV?;FRzUm+A&Bw7XI5T-KW zKF!rrhQu07pDVTIyP!K-m>NRORQ-aqC_dbshjafr#sp5&F$1(U-R_OutdW;Suiv%8 z+Hq@g7b2Tq6!@U4j%x7ArZi{7K&@?s`t2TJa9!ef$e1W&fVP2`MKP zib|v7(%PX$D!{J86R?unuv^>ujm;u3du1OpDi2!NMpSFZ$=bcJ>F>?6_ATN?(>>Ha zN?Hb|b88{&6n8c+9*=SqbqI+&K~W4Q50}IcV4QmN0?1yP9T!&X)|hCF$A_65m}$Kn z>BDMvn2>zuURz5DrP`vqL752OHfX4W*FBzUAl1fiE#GPFI$;Q$x3#aVd{|Vf^_0s@ znswYEMa6DM{NwwWb}QIoy0M~*c%gZ7i%H&esoL&F0>m6Tc`wO@JZw@Kj&YcreWv2x zbgi1i(GJ6bCra-cB^ezm@yN?EFP7YTWAwF)G0OOY0FR(0h(4nuroxpEbkZ0CyxJV# zge(`LSZF~Uy8{tVpJGJv7FRv9><0qV%y?oHILpgu?DZ{Ec%Fl2bd~s4fnr|# zib7uJ%qTTRlTA9~OJYUc-qeuz$!e<8T*cnJK+N+Tx?wvc=7d#KmNIcb0)&YaHLEI% zl{9O4a;D}bwv0l!=ru(hAduYR>vWfk`PT6zoY$!;kxhuj{@pS;=^J#v6=&DlF0%|Eyurp{klw4EHyT73y#)wLM(gn%XOcEbN+$@PWA2Lfctqt zCGbsde3%oF8Db+L9pTMAq73CJY&nyI6qLd(24nJyS$9e&fEX)qgpoVBKT|oV-SIG) z$7>Ve=Aj{@qWr(pSCK#_X()xWxQQKH@z!hzBAJ;cp*h|*$OWyH{{M9;ed7rvRT}6@3iLtZs#`< z`z0o@=&Hn^r`b=9j_p+PMf;$t#6IdJYJ8XmclLNxjDbRcZwAazjK!JKHc)n*E5jNP z^{Y)G0rWOTzXc7tLjckWHf(c*a^&y4A_}h=Tue8;O?A;pbx!>IRTo51Cp&sS8^rQo zf0tjfjgQ}mWyA)wz-i=I-mZ<&X+hrkyfuLPSybL93VXNDZG61d|GX z;#31ylRT?~CqsxAdfDLt$lBf(7v;b%p6&bh+f0fmt7as*{6mB5HQ*jX$?TrV*F0)Z;6* zSkB2o(7OHW$srSc_Oc(1UyV|k$74%w9up|v!Uq8lwePJhwwpD*f_LS1p~-cb2uFfd zP1N~n7gj%&6PWVa2r0*|W z+f&l_E2ARvdX{!=$qUNA>p%MD14!La+1tqc+_{<3Hk$?HkZT{MicY4mV?c~?FlSXt zj-H;7g4(Y%r?9nAJ9=q{UMWOy)ygR^X<@IV<@5~1i z;u6PsFAYzFPL@WZ^xBk$jT@|b<@=()rn(IdF-~HZ+RDMprukytWe9WB;2@gSBvxpw zYAjNIQ&0|(UKj2@xR?NvGPM&6uW-?cmnl7-3aj6++G*F!w97X^76WGZQgc}yuUOE~ zunY4ZF5d23E1wI=5H^jqlxDS%fjMol3I9Noy6Rfp?S1~Aaw7(Fn-A>Oz+}g} z2`}|f1A6yG3>0fmhPy@#VE?W@iQDr#eemsHv1d)up_OeZszeFB)Z0KV(%g>g*fkGB zDXF~_*l9!&{d8aF$Ke*t^}rFWk+3JS8M8OZon#;c;JhFt{ShB9TM^ei2G@Hv8FX=3 zO(1Q*s9NE7A%NYd@aJD%F)*7+i z>kGOOH_k}>Hli{(j!$uj-MnYmB^)_PdxYi6RgTiMVva`w8wMbq@0VjmXw+jGby$#^ zB?_m6t42eKHeZmfBJfa~CgozyJr zBSSLl{;s~F`ZJ63?dd;!B~3q_U;pyrpGyAhV}lBHpGDIK!X6i_3cNQMV2p)Pk9hKy zHRp^+voA0ePCt`NFMB7LnW@+h`sG_^KjRkxwM?`p#hh1yeYq1-!+D|NH0foLkW$+@ z=QH5yu1g$T^DXu9G5MM#vO_Leq@oy@iw`;AD4sw zSU27ADNe?wuG9N*tEF?o!f{hQoDaItJ>jhLMX2?lPaURB!7-+6+)PSU472CD;m=s# z+N|6)j7RxouI*%j1kuOm-`b_y6(3gg&9E!G_c>O+HLibty#H>~olC}Up}U%8F71i^ zJV1s@ah%&yU6$9;$GiC_D=M{EsD_36B@`R^RVl$;-d$RbE*+ zF!Hm$VBW4Fe{-H6w_UD381aZqsQ&hmwpunq+J2YTMih7M=gdj&{$oUW z`RBdjo%bdF@hnjL(@;uPcRSCo27#q06fk`8V zs>rY2oCi9u*Lv{BIKOpX{?|fI7y>Q%{+gmIK;7RH9G3Sd1?&fC4d2!EJS*YXO!&uc zp(g$=0W+#56ZWf{5*6gKZ9gW#(Bxm+0T%LipN;_!uAEi=(Zg?R{)=?}S&IKmkO=!p zdWI&kBOboKrN4+=a*Z;7HT#V+_x@T)XT7y9l77;EEKv71_bBIF{gVRD0bP`lk#SD^ z#Sw-k2_uDnlzC=$ALd8!i_5W`y zuC00a@A>J;+O@`-O8(6$+kUO`Yrc9b(l7dW{*P5|E!*}#rtLp@2x#UvoBux%@$ZFL zBk=$01($qELynbp6K7dYt^O^Fgf13<|I}}KTzh+}i^T;Mt>;9I1g_8Azi3x|_Y`(^uzZJ+g z-uxw}x{?8b?BD)V*+}LBb$`hZm+P^A3b-(UzbwqnyOe&(gxo?v8~suGSE6nCQ<6{r zTRZ=v)ZUL!HJ0Una%yhIzM&Le@UId1mjMmiwOjoj5g-u%|1tk}*7;g%N6($#lobo8 z?XtJI>eN5}`!{L(@3x6mmi;S-Ush7Dk;ETTe~s~e>kGr1fQbJs)U5y=@LTV%si{Bo zoAAFbuu@p{!btN^hJO3R7_g>3SGxY{_!{y2HlWtbDR&PKm7nx-~rk_J2}aE66l@=>8#rzKbN_BXj>|F8>lUF1P+Uc>6yXd~G~`$Q8h# z{HH|wLrVSA_Fhx`zwET>|8LCi|A7|!Q;#33zz+@mt5*1JF8&8gbWI@srWY%KUVfMU zTgGTREuk9un;`E!ywXmqC!n48)veCADq%)}Pt&AbM%FBu2h-S$pSJ#m9WRcme9}MT zaRxl%2z)aH<-D&&u3g}l@?JUAbH6$Ui>oIvLB0&zUm{#hSpHLl6tEX?artebJpeSu zZ$7U2my%joHSyUmtq1=5>Lv(g`Aeh{#`f6Bckwn*VPbwkH5svcCBmkulY7YAV(@h zFl`aw7)`q23Z9J22Ee}8e>9=CQT|hNYH-Pc!ek_@5W`t1YkZ=fDXzJ+{K6TgNPd*v zC5W?*_o$*T`O(+{KX+Xb2PLk!Jr}lLo36l>1X9--Qfho+Qc`z}@xI!CL~(vA=*|6V z!M8b>9~%MxZMUDlmuQ`9Vb(vrvAe7Pib!^+tKQX+YiX&lp4`^EKdN0x#K;U*!l$dc zTykk6&zymCOQy6j6tz=7wgt~8JU0fKOk&KZ%jZ9qHH(G(TIRQsPFtzlB`VYjKZk$R zXnj4QknP$HoY3^sbQYA?_JTBNY^KVVSYpaL6rkPrTNjz-d#%wn1!sfy{g{)tNL9xP zk87=Gi|9$@o=o^k+q_g}eTGC9N~K>?H@U<;v7%GOMg~(iz05!6yYcVV)*qX+qfq7B z`Bto$RgZeByFo9J#W&&D6r4 z{X;1rO}109?1nB?R7Y2Bx42yG;lEJ4;z8$E=+8A9<%GyPk*Ek9i{DC7bM9;R)C+yk zl?+_!^S#ztSj*NX&(cftt{)tO#Nifx%-F6st-wsNi61=GNhx)1#AQfvA&TZ?Nh8ie z5pWW>Ks#uk%>#RdO_z?xrNC|cDhCxzt(mn%-n#M{@g4ZVb{5w_8j@-2n&q!LAS*+# zyF9J#7rn}*beCwFF!fp;D%rOyiBL0OeQs($mcJ%uqLd1OwAekIXYoakJ$VpMRcx-L zc`l?!%U`F^LGEK)USj7&Y+NmcK-kmStL7n(8Svg^H<;ne4dbR!$lIUMZqU!hZbGcg zRpyG1i(T1LOK}wReVt?rhaAV!EykKnz^kxzC`;qe=G8Lf0Pi^T3~~q9^!9^ux!9-0 zb2QI5GJc8mMQU3V)b!;g`3VwthK%-iajfJj=Ll$M=f2iIwD$runOti%J%010L2v9B zIGSU@fR1@TuHvRGLTxgO+mycaH_toc$8mL@m%v>~Dn$1VlfLo144J~Bu8%#A9eG4h zMYY%Pl{;herF|=4-xuJ9h?<5fh<3c7X;n$9*1b9&0Cfe4=j2F2nJc@`mlar}1ME2Od%UK?-6*#Tn zUPbZ9<<6qMtg8b;pKn_WD-p@N-3(`C=3&Tpm4KK?^o@;iW5wc8v z0v;~_){wnm9?GrwG_{iCp<7Py)~{k0hIFSui17~Sq2v`rNfU(cxm=kcP05bi*sU!N zeYwJKbws)C^a<$dT(k4XN&mX;Pn%l_cEp;Y81Pl8n8f9jxHXaNzo$uVqo9d}Ylafa zIjyW27LoZWiTX5-rYZf`v2lj4?68bLi^`Bsb|6hn#4|qb&W=Q0*G)}kZ6V^%`|x*I zW!GX3xsSaa58kdz_Nak|dSu8z^jZrlu2!G>s@zAA<`*sXu>sL(Uryxb}v-jU=R;F(q)TLKglnyUP%}+dcAj+OWk4! z-ZR}eGUVW-L!N+b&W|SMAjA_FYT4aBwc%MC1i+x^w3=~-xxV^e_+iM$ib=Zx>J<$s zmqzz5+(lw7PmFW9Cqi=Rcyor47VLFR*cqdR+Q#$E4M&n((6d};|2vVIQYEN3hZhtMu% zvx3p{Iaj6%L#X;d(w)i1^^w^3M$MU(l2$a+NxzBJ+JF+HRWVVo!iSj29?ktS-~)>x z+s!pK7e5wkHUzPTw#sYI+QTc=*fj>_eoX*-AnTUOd+bJXHalSb{cBOLXCZYl@Z(>1 zmn@FQJI_1dvu$Mhj>xf!LvK}T%De&-D+qwxN^75LmBU;%vG#?kExlFjdV~S1il^)8 z5msWNHb{&Mo4Cd0*~Ch2*P9!>X^F}gH$0N0#-)%Vf%9|PPM@k}QA2hP5rS4YQ-m6% zaSN{=`URuNW-qNP_(Rrc$bNxPcVh3#AabvbyxuJ$ltEAmL_KmJz%NL?k^`8d%{59h zZd&DZ(^k3K)vHxm<4v1)Xs%8cERHnBWIh{HO&$x4t7Zz%f&e8xg(x4^L$WC}pueD) z1%IBblzB2B5%g9TyY+8hJAeMev3MK7dZKL54j@;V@u8B@imZtPGcHw~ifR0KQ}TXA zl(Gu3?j&@MNt)`?h+{%Fxb|h!B*(gvf~-ts#|jS@H8F#SYE7g3KTf*xuUyn}Bhx;V zJT5jHBf1Whp>A2d4wPxqMYOtGVoyYD?(b_d@`dWdpqH)n(cBIV&e1CojAZ}eOY-T* zi*(PNste(=8QoJPOJSrcOuW@@TS@hjhmdpHwWTAvzG5ia*~^CxL4)s z7O$?5L_D(`Q=y(>kLY(OVm5Fu!^2{gqn#f zQ1&-pj~;6ePC&&OHHP3XH1v*F!a%?&emi?&s_i06JWeDvVT(YQn6dFDOTg#+C{KJI zu3VQBZ;5)%wANrS^#OvQ=lC;if!;MXp{%k=bkY0AQy=a0 zqrKUB)wKBV!a5JNiTB;z5#ph*vh?uBWnszwoU||0+k^6SQY_9oGRnFsgEn4O>dUdb za}Z69e5hGgxMBSK>@sjpSDSmVTa)RM=e~srgUakbVZ4AIzu-#`Dvn0W$@RpEmFF+=G%?D(D4j$z z4O)Dgb83UO-sP=w7E&K&*;?;uk)-yAjA!oZUPdr+VZp!cqZ7)mBs;m+w8<6^=RYAH zEPQ$M6OI__VqS5M$Po`zkyFw<IKJCpB08?(R~?5rj?7nppXU^`~uYJafZ7 zC=~6C4eQ!P;MGo$>9xC@h{m0p(FU}%zg z6;*796rE70vCtp~kO_wbCVnK$v>Ri*}-w-7)HmaZ{C7H5|jF-xa@5(H#Tq3^=YsID3cibZJY4uz|mob8nfJ zm_f9;YsULMTX!l=-`u)G0aQV|7hxB5X&_)q{jetev#)&LkW9=;Sk)vSpneRxvxA;u zrUG=QNEpiAaqW?K+Si4sfy5<^Q-7I9jcJX$Te{1Xc)OmPdJ}cRgrk=rmfTzwCCEZn z8Na*|b!H*NjF&oO=^7?umy|2?l0V^%&cvKPw%+bGM&M(bh4<|Ajk+H3CassB=Aq%u zi+*8R2+`KZ^Pk4CkZmH>*3w~g(<;==$#{ET=8dM8BK~d&%cX)1_@?<**8Z*1mA5UW zU(uIe%&|2Ws{F)HNtS$WE-ZEK0WYayn@^%6*)4Sr@I9&J>9I zhXuc{f`}KH_pn}VeF43q*@`dzgs%PoIv)9y9o+j_q|J z-o6^;&?4B}c0Wt>Z3c*m7S@SM;^+P2K@; zs5U~wh5mp|@1;|!?FJUr@30sxbW#?cdQAYl68LgGzW5F`MhNR4NUtFdI2O1f_zMq^ zb^17WhqBD{Tke;HA{%gB<>e;#L{OCblYTX`EC#|lK6VzHJQ9>LW@>q$mE1fRucA-1?6Fw65O+nqF?cWgB))a- zZ@caOX$)8r?5@vi&W<61U6a_9w)EGeH@AlZTPe&UrhVd5{abrKs>epShS`jE;U=tU+Ha_4c{2!>8V|NILAV35GhgO7*Y5 zy-S{f8;wr?6?G@rC(}MHEapl3qjg^tu^^$?(RiH#;c{tBW>0A@MAj4p89f%C9RpfD z#U4xJUIWh53f<_pg(~L1N;}ekF#|1^>TbMX#@okwPfXiQTzJ9Z(_CA&UTeu zw)W&(oF;oXS;aHDpaP%+>d!=Vf(lCK&{IN@5Pb-daTc)dvP=Ui0V&^?a8+;bd@ApO zXW^u<(9R&Ajys~Cj*h&4k>7qtsK`3`VjXkBVya+4?(vi)huI`jd0~INgnNxu@~k{+ z1MlViTg`ec$4Pm|kE=0;xz|5`_#C!y!eqZh%HHFaLe`-{vKb;{P<3UR2(;F*zsc6^w2yqd! zTSw(iMenOG&=yM(X_!@q#e_e!}&NQBPQ9MdiX?0vlSzAE7vb5 zxfDDOVK3i}k4(3B3v!fkx=oJ+G!~uk8}2Qq#%k+Ft()mn*VD(1V~YeX zFCUt$o9nASnpK~^O&DV!ek87AWrxSKCSHGET`VpQtEoo*v@8Nal*rD|-gwNaVYo6} z@hE4{it(lX_&fQ}W%Lg|TqmB;voSE9qN&tWMyp%!ut2jX)RnTWvS{LFsp6kG2kVk9 zs`NP`H^fBQW0(_3H;AA1XKml9G|pmv1}0C8Y`XC^{Dd20K&YoAe(D9R<}&H>{V~Te z_kie?PgXo8Rw2+CpnwZL`)vdTglW0Zs3#p+Z|i7C$V? zmsKJHhH3-uy|rbV?rr^F0n{Ta+~$r5%DdLirp5Q1e)fgwq5M50eA1@qUr#;r{I)*# zg%@8+V{-W(aoj0wZJh7oI7C30GUr&q`qTCZwv#BzcX2HEM_vxc9sYiQ94G#nmoYnz z<&+o4H_DE_oA3PBzdlVDUHaG5i8;bo7!VhD>7VE)IsS67VAJh(YrV_kjp#cLKjxI$ z#o$xUY|R$`M|vW+A1-u65WAiI_I0ScTu33fyZi3D&zs;b2YwdJj^}FE=b!y64gg%C zXN!!t zn2unTG3(@=JTtwKzk`4=2Y5Q8(Gxe0D<3!X#5<(-P{?F*;?MV??VK4*WWVD z&XxL|T#=~Q+*-gK#_Q!1PqvXO*mPJY<%2h!4_A4~EZ_jn-#6N7=Lo)Tw*9npc|HkY zS_!Ud{AAItX^(t@%7Kj&NdmHz4GrOc^1)!8O}2|G9$R6!F)-QBx!!a7-oDPWO9ppw*ez#V9EgQr=3=a z*M6~B_ZS~BbwYc|3Y-Iv%wq-yoD5Wdn$NQdFfpDWYmC4wfkU2Ka?5RZMnH^l7h|k` z!`F=W5p3mswG7-tV_9Sz5vbsqAzv5VWgQs=5NW#;uaMOGF84W{TIYmVSG)6jkR;Rlg; z^Q$FROjpmmF#?CY_iumydpbNXm*6qUIJ2I3GOfMQHj&{)HXA`_0>@-fl2tkT{n?Qq zLok-H6Tvn11LJTqZ_E1|jlo^MpRph7zV%MiBiP8DvIJTQo^r8*a$=0e`jWU)1Z5jh z#|VHDG$BAuaF8h$sEY(N3GU8%{HX|Z>^yzH$b2h4OJHeO9>eoJo9A&S0kG#^crk*B zW7pj@4b5Y3>iGqKx-628SO)^yMZIR1MQIPSQ3l~{PK6Ufp$Ti zEq<>Byq>8AcXQn#_{=skwk6)M_0D_5?@W2f-Kk_9GOoWj*Cp12`o_3;hiQ99`EfTY zK``nQuh(u{e=0I1NrEGO!QHQH$MSuLx7Ft#3fq0=`4>f*kc~*TBlVni#eQTyVggw_ zKZrUv>7sD ziNg?NBXGR`p~pn5VcOmYN1dcDf19A!w?R2jSMJVjk-oaP@Ig`=eI#v=VC=!Ue<0>W z%!}C6l-y4cXX3&I^^`K=&T0Nne>85r&C+JuH${M#iw#_~Nnd^uaV4_HX$#S>wX;t1 z3T=f9+D9LIBKkq%ca5*Jt<+i!bE1$}xeqcGo=*)Pm7HR*nmg zwK6;@`Uv__;#`|-yK7`evrZ(55`5?Q@lx(<=)=jTrB9FPdM0lk7ZB(}&p7wO=to&5 z&lBT$Thzm=bN@j9%`&%~x_kQcliKlx*$GGr-6J1k>BmWUDW1F|7wXIF^vM9HUY;73g^#}RXRs-cbVFW1(oKA+z}TC()xGyjw{CO za88z(D~E$0>F?Zf!$vpM5T_G|}Pgvd8`rZ6BBq-kj8Mh41)N&rT=& z{_MCCap@ITM`uXKHEBvMxXYDkI*g7C?ot7{`b+0Z#i2vx${0cC$MZ=ESC$C4(uq-N zU&|+0Tn**#T%n^A=0OjvJB@_$q%$BpnyZr$+|3;`{~xs4gyj`k>KvBXPy_q60)SqpC$Q$0Nx|B9*^V-vQ1Ar>w@(1tFN{NcS)|`0Z_Nx zepdvUii}EvBlBSR@2|g}_T2yQ7$1>w##n}1XUpqdAfUmxip(N{U3ly5 zw_;4gc{qVXl0>)*@c&zIxjaBUF|w(cXZFVncWw=Syc)Nvf&ntqs_lEo(Gl1qc>43- zc8_v6v2~opL&z9Y@qYq6WU2n-H?4u8JicSf2LfW;F-RHxZ+?vjYZLsfO&3rb1XDJY z`KzzKmJT}N__!;OyCfOkz4o`i#n^@*6yr7m8@!L_w;Y$hhaf3qK(>#dD}!#Pj$oU) z<(Oa{*=LPqSKAl0ZR8=2z zRwPCdm?aoScHMfL?hv;Ke^s!6J6$i%_3_a>UXS4JMVCd^CS}b!k~BqGGoK>?R)R3p zWyWlcnRboHR%Pr>@RE#9>K_^DO#eU-nL9@*D=u_U7aEsCeWvUQcr)%KC{5Y1k9aTd zp*~PY$&TZq2J6z8LCh`xOdG*P2p)>YMFi$q{-0b&3F6Q``3!Zbo~2s*{oD&Li3<+2 z1p-`rwg~Q$JVtPrZ6T=3L)OW{r!5k&|HWcGT4N7y#QXnukuEWZGZ#p>HT>8-?&ZC& z=KVT++UzG{nQP}R&&b}b_9qom{6T$tx4mdIrwV0-bcFD7L*slbn zh_&pM%YrOK;sgXXxxhmVi1~Y&?u39l?TdEAGnL5Vq^}~dciSCzM?H)>l`Wj>!xdLu z7x4o2B|%f-J{_6W9Kl^Ockg>3zL)kxCN^z>_IA?g=SDdYWF$~e|G|UTin@MfZYz`p z32ST@`1#W%Pt8afbjwVWt}8HSTtxj>nwU=lv=Ap|{_8JMLbHq|e-6aa<(k z#KnMp4n8W52i%!W|I2q#uC#$-x{e~aOS#eR`JUp!+lV#SkM_g`75Y&6#0zr2#W93F z_qg0IFeMK`S=u1w%!~kJMDt!UtT|S4Tq9=3oi_Zf2=1=G#ni}H?>=yJTv#Hg%zB=E z!Nu|Yv~iAWv|Zwb!~|jSeGZBdOG$c+s?XkF@S_h`oLpPJ~J}Zxk$nku+(oZ zY#y4Ar#yL@jfd9r;Zyv{bKXluZ23!Sh$S0uLX%UV8YESrHH= z!*k`_x$z`dBKBOp7|JaNOZSP}@420Yoy~HJWirt)PmFywS9%)u0x_9=-`WJkxzk`` z|V;YkyGL?aOW@rd^!V(|L_a`FZjo!CfZE z=HYStjdkbB8VAn}@;WlD0-Y?Cbfw&3zmiWRPd)R3n6rex_aC-qOxDZ;^g#JA$vwBA zaEk>`m)vPuZ7PM8hOLo)vT&C;VS9h}>^M<6Js-e1Nbn@zk-1TF;N-+^)qH};)tjan z2Skvam7BnDWpr299L#l6gk53PDDuD_ElI zzz7!Xo5v%K=d_GPcsLs8*JS;YFv9CRoS0zUKmPHL)IAS;dB_dH&ZnPwHiA-&pBC>r zAcDn=Z^(>WVDZ`mjS1xP5H*&`v}Xh}2_kSl&iOoJrs9Dx;QuW9p@$!hfjU`6yr2J* z$;boTrtY?PoaZyZ=bW9aQU;|fth8!8RQvaN+(00R2g;Gz$F>t-Y`O8482FNT%h+Mh znA7)z$jtmj9{BbgG&;r-dmngYtUqJ6qmMr|wyAUPVUg8)=RNnudJ}9QXu$JNmTY~% zQ?U(f_eGcfB?j^Y4+*?6M=RU%mn*MLFX#QjL$oMM0;(h^al1HyKmO%4?$%`7!I+PI zz{95rULADAaZzT)ck#Uhq6jYV_szE3EtmIaG3Fu2O*t`sWIV{f1VDNZ9uvzZxu)3v zeD>TwTpWQ2)|WD0ap0&ZQ-b<@FXL8%ZQJH?8)GCMAVj$k5PC3=wRz|o+rYS!@i@yS z=u9w*a%aD=f2l9U!-ootMgMf^6){~1V?(9{A=pV-6O@F`EeOLZ@I&?SS|sM3;uXn-Y-wZU7Td@QZ~hd)*9QwurceV4?dWk$BaA0 zgX>5#VxRLpyw0{CdE6;6=H>#%+IgFc2SD*2rgPxVVJ--e$^J&JTf_^fvrIQgaF_QI zw;;1H9st$)JDJP;PPyJr;Hc;wnKmgd1w1UA`Etk>m#y(WS@WPwxed*ppf9D+Gk zf1bZDE^NH>ZUmzUW^=KI04MFXSFR7IoppXJ>*=STi!5Kts@Rqv0^1!IPo8@r0_3ZW z-yqs2ZHv0T@4>a;F6B{spxT;|RlnB(M?~9Z`|1C-*=c&T>2d39nwIW9IHuvC9sc#| zndyOtABpVgl~DIU?K_HPjS9{o3@2H#9XD*@?{TrFM91DosF>Mdi8q{B# z7Ma$R19j(}ci)MJv{Bz#ChcOa^|y#b$I%luN{1eGVq7p|u3wHvJo}0ILmB^e`P%xi z?CY+-Iqpy)9>+2`eh_@+!Xqwp9y_e+U9mgWdwCHnpoqj+ZL-`xiVeqgq+BnA} z>K}Iz)Z%p)q|I`F$$nrv_#Tck1BR~^b@}$Y?uovDsUSE`(6-6Ar`<;aYi_e#^x=5N zgFP?3{L082W;@t^+BD_H1;9%$zdF{9vSHQ$;+Ng?G3Mmc&x!0}mN{bVC>kZ+~wf-%`CK3&vgBbx5mM2LSE^gcUmDT0zb^ZLKZE5JLQaXBLg#~ z+LIUi4ILK;dv0Z6XS19+mb-MXyy53ZK$I)2bSho@j)+3%@?HYC$DVjbR1kIsCmAVOk^KdavCc5PV@=q7(9G_jb=PGH9 z+_6y^Ine$pGI#Hb3cJX%?6|qhbzY+JuATP{S+E;#y>tA|-xpb?ckCZdSpItTb!n~1 zTg2Qb9E6t4jqA_(M2hU)t#)XRz&G<6_g!Ud%y&aTm~7gucicVQpDQoh->)@umq0&P zEI1(Fbj$6vtm<6e=U;efoSf2G&&VfrbP(+0-z?WRIx=qCV1JRKzuqR>#nox9`fz~f z!1?}r@24qwnXGqt8zo7Sq#qh%2Ld=x=fOLfObm*TJNb;b^`F0!3A9ok2k}1Mzi2)W z?$T#iWV?~k$6bE>-ZPIy7Vk13f+GaFxchM7JU(I&${=~09jC`K2=bC-LbfJBFUCwu z_ZS@GA%YLwTFyX{#1w*BdmnUUS}u=Gm?D7yVlBX18`DkRbo)3zpRwPeX~ekoVz9pJ z^!+0VgE@o=u#kDm0R3l+c1?#JePWEOYQf!Z@qOIENMZ>*TUrFmD$@8g47U``-KGeFU2b3@`-(17gOijNJ$> zFs>u>Y}0LbjqxGnP1Y>?v6l3+Qhev~y@$pW0j%p{UHixT$i$+I7-PPf%ZYL8Px5$h z$!-Iqj2I7bEBEw$4ryB!`;@yF2}}@3ASljjj5GP2%w4{Vfj@UnGPb15y7V0$0VIO) z%dEI^Bs?)zUcT4RNYvpw$x>q<5LDyAWRs?Bo%#$J8)aIQ8QaKh^4zJ)xR$I+?&zef z8E2n#+Sw6AWo%AHC*wvQj77kTb>snC)NRJi#d4{ayv97KjExz)Q7@l*`k8du6<5bP z5*Q_mwmh!mccwig$gr=ORefBwZNe=fK%mfvLSUD6J_ z?G?d1_8a?`aWwmZ`ZsOQgJQZtf;p7OI=P+kIpP(x1;)M91Ga@A{!f3?CEC-!KK&#v zEDXtGbJ|E_z3xbCH-YrWW<3%6k$$1*s|e)nd(hF52|sw`g!r9=E&}Xi?oxhaqSD8` z^wP^Q4GO_c`VwM3yG-9N{l5j4P6r)+Tw6RQvUv0VS6O{hY%^uTzw}YGfBGygVz3_@ z>+ScAa-e;2QHky6_e(CnGU^8Pf&E5*yKL^S2sRQ!qJN`IcrSH=%w6g;eeBJ*65PE$ zUMHBxc5&f^hq0~DZ`G(9^f@Fx(ht`H*>kVgyu$K#-}~T*4>3nDaU3o%t}=R3l>Nn* zT^a43btT|?* zT-P_u?V4lShFeTc|GUs~u|B;9kDjY9Cp(yaX@!0xqCfg`{vM`KU>%qfo(p1pX2Ja4 z0}nqo=EYrg&Gpldb6L{=QI~j)cFYAz`gr;{j+wM;>L2ZQ*`7mUnX9fbx%Mzbrr^o_ zA~DC>lsY#@9pE^@Hq+k|7h{{L?<|vqNsc+RUoPIVeG#`>wszr`K9l1L7kpU`Wy1PV zhxqqri*|{6^#1$r#qopVR(YTOJCp?%&Is=AK0Pvb=YG?_6T#h^Zi#tD2oBQGZnw*f zNVBGsFRri=)V%iko6?Op-yQ+IW%7Z5-KT!;d@p z^td(Rgj3FnPM@96?HOF5j*M8oAf zsB~PRqTmTi-gf8RQ5jf=<4!&^b_7v=D))*5Yr$PQs+easclyJ}uA5%SuaR0#@R{%9 ziYrgqqm$$+F*}`L@kbwh81wOdo1OPf(5cX=vOWa48xNwKP!NRWN)+q-2NvG;?^S$xE#cppNkVPt^jj;&mDK&lO}JreKZiR zMslLYzMvBzV9S+j4g>_5Fa66^@fjKsC#36cylw1PDm)z@bGUGoh^t*4*||%SBuW1X z&QTd06ENePmtYa+)?^@Ydp^l9wamQQ`#DEukj+$ej1veRkRA5&E3ZVRCIL2rrVKg> zNWPuNIagdYGtSi~Z?b(Pw7m7!o3U&%dI@UH*#EEyf-=Tnkjyx%<)&NXme8Mf>KefV z0=E2H1jPv6ajyMJ{yd2(42nVEkcS14Sw`@Qc?DOG%-ybefO~QT*NWio8F@^=_Y?3V zlZtiawpubFKlpHVWVdo|PY{%G1ldiDk2vQi*vztcfEy3WA&AU8t!zJca^8FYgKfdx zbMoMvaa%dK%lMHo-dlN){o;!+$Do?^I_AXFBJt>mV@{5;pj@`tz9}*~xpkbZI^Ms2 zE)T}B@j$hwo{8WL1NLiMZj5p$zKgLG<3%!y@5$?R|AP(6&nrx<(pUU~HhdJ}vsz8eI0sTYsuaW>yeFqUy&5!@x~ zjj|!Tk1;I!l4UZlCd+4f0Ro)_P#9Mh%cWjXuL*P#wC7?6`;2is0WsPJL6-J{yUbxq z;ue8a_8aV24qkZS#rPX{CX-c2@b`xZ@DiA$ zyjeGb5ckG`=xF1 zeZ;`N?^p)`=cT$2ipKlKU*`6)`^A3DXJDpYeNRU%+vTexJUW;6BF$9wxc_ zUI)kbT$=kV+7k7X{lf(x`h{AbTPsWYGWt#~N^uP1I7PeWLITIi7ju6^AI5X0j>yL{ zW*6W>9>*Q(F@4w;xxKTVTwo&3$OSjzX@?zsQp6OwSXKmgKgi`s%&lv`5fKBUUGUI7 zrq5Y<)Y_4$OU$t7yQm)=6Pb2~sYxDq@R2zFGOs*A^YT9XcZ%TdN-K{{GiJ>Aw!z(A zu`@Urk=@A&13R5Ur^DoR#GD+taKUTb#zNz!068#~gS%iyEzxaYyv~EVn5TtXoH)30 zMSFuSrlwJBd|nn;@hBYTtRYxQhZwhqSs&`EE%>z;9S zm8m1Rnn<9Moq5#pr{>Qd9~F{iu}%bW2^!N`bM=j7aH2-kpA#caD#&2v_A7QYR|WVk zDiQ}N)}5=ZT&>^$@O?L4aCMbR+TM4u&Qu20lOQzf+NpD`{MmO@P_~gyfX~MjlDw=X zbBDlzpT^7kqH*Qdi;kW0;BPFS@8QZtTtUst<8OSf$Xw>%`e$kfc9vBvm+$5EZ&T4F zNs^?F!Z|GG(%ePJE!Yg|7!xqQD9(!uoZ~Wfn7Gl_fj}n+ypownk__kD1V2eWAsE2< zGUvoBk6>W=b0lLF=lrY(|B}%}rYXS|0)qr5iflOE!*?)fXKYoQ>Y#@6a2{~Q*oUzK z+eDTV=kAQF$X+Bk$+&@l592I8LjZ&E(6qe{i~u0-V}98YYfMg)TGyAL97!O(R$e{M z^T`_H?mp%T=Hc4KEzJZPc-nfDZ64o|6vFzj&c*f>+seA|+L$~5FUq&ikTLOqEfPl9 zH~gLTXSv))P6jgBT5J~?(@bwc!p^RH91sua;qOKEVo@fHHQ6W3>-xJBPK)s*<2#m% zZv9t{EMCTgBm$B7Nj4eDQ044d-cQ*v&Sm{sKI2Tvi~tz#Wxbi!jt7tte2FBgT$cuo zoDg@Pa+~m$J2b~W*sJCn*-^YF|2Qc}aiwlgssYBEO zf--yuK^Mx7EIqH%5otT=0=^l&e25CFgKiUrer`)-7mt_*HB&(BpwnwhtjQEI)ekB6;M-)IATcAbs3nX6nn3S~(kswk7j_Qh-TNz^4W?D?ITN?V<79kbKk z=#z+f@HfhR;Hu-Jt#R?BXum9ju|A)ryl5x1bGDtB(v+=tj-WVyEBBk4Qxk2AT{iGcieIVsfd+oqEUSoO8Tg&go zcGJ$OAN2jSrRXDbA3&LLA?omBPKt{_lr`&8tQ)~yrm-Lp%2YE1k6Bi%^K!L5i#Ax) zPs)sbqOs4V?<)FM>T~q1tbhJ~GH$t8d1QVsNrl{P!f};#Yz(f`);WIhz(DRcA)d(l z=*u|P(YD#&JqE58{RDADmd~8V^jTcsVEcI=%i~#NWEt;w$kEX^actq(L|?{*6ONDH zcK=h}Og%Ap*yyy+K6|GhMThhavE!MHm|F=*U8m!s!E-CZSD_%t*yKtZPmAoH3nLyX z(9ZH}LCIb*fj#&?f1?ojy)6*g`g`p?J>xyaGUyD7&&I>tT9?6V6khSUm>j;e{I+E- zUH?q&fpEQQ6VtbTcjI^Rda)k-TWlNa%J1#1{|~L`cv-LVYy7QkBL3268q2widB@7H z7u#Nb@7H}sk|as0k{H9ZjzJ2XPnX|^#_>pd?{6FrF}{e0&UBu0{4?k0`poqm#e<5- z)Fg|PY~V=nD7~lrxA^-qwZAi_X&m#^k~8Y>k7uK_{@%E5#Tbjf@&EGr7Gr~AtW+*`fHRfG|>tz%V#A^LJ%Va;6-w&4ASe}h_iLz^4ChO4N=Zk&Aduw&S zD6cuUXRhsS_`O&T%P6l?u`g<`&sjf<*NVT@mQ&wH)U9&;DPjWU_4y%`%cxP&=G*FN z+x~B;`>l1Pu{|`#N6K}*Twe)z5kw=SlT7BKzw2m4zt{LT%BEP?VjIhKqrJ~Y9ckUi z(YC4odAoVIS!3O3Y$F|kb!lu*wc|@`e>_K9FO|bryw=!P7u$)V4YR$x7X57FcDI&I zfd}j{H!gS4lfD0S-&1I>&#k?8?)qHRxwd#6v95OZBicJol-ohEJ&nJ&eP-#}`=YHh zly%XsH1-3H$GvZgWpy7gDh(esE**66LFq?Dg#DW!@;+ern(6)r9*QU6F$Ds1Mf^LY ze>3SYw+#`QFE3Y;BuSDq?~swie3@jKk!@9eUH^T^cJ4c5Y&xvYEzrqd(+xmZHl1wCT7f{_KX!?>wMC37wZ*1t$Bg-= z{XOS@p7;Gb_c=Ky`QGb$?a$}BM1D|{$H5}Qdhp-@j-rB$=7R@MKo1^Z)INKP{^sjl zq56XdpC2g7yw~;y>}5ak*4DeauU}ZY-9HHQYBzKaTEl7R)T+jL-Yux|P*Qm~F6iZJ} z?}%SEiZCK3Mn*>F@uNqNUXhS|V~)!I-v_j(ML!YpZ9|7pR^xvipbi&UIx8`7YlNjx zE$L~06tQ$-m2_sX7jT;pQm)0dJ+HE zy_lnrSnF%Z?JnBa#Ke!cSRY+{Rw#6ZhcpNW|36nu)*~T?G~b2k8{K^oLq)x@HZ4p~ z!`xX6`Tws=f&Skw#9Yn&7L+oRI5mfX^YFi)I3Ew*Q~l2>nQ%Ak z&yl}JVfDZzpCKN0|9AOuoO`{?r<<~Hj-`Yy83w;HypI2V7`B%ZgO%@)CF`ZD*FX9C zuC&bNM;Q*{?hw=a@K*i5x5^q=aPEq)`(>B!m(8e<@=FpCi1$}0t^&4hebgn)QHk1X ziiq!ip*qO6-T1w7EC%O064>>aFZFtFyySlZbR|24UgHhxR7V2ef{4(fu|<3l5N)QZ zmwyHgpB^EE-`zs*s}OxtlAA&9>1vH zofCTbbNhvq=d#NQ8QY0};vA+h23DR+>&IuD21KnPw6f>(oRS>4>p69I6_Rh9%`AAC zM%Ql>E>Y_#{yQh4W7k_>6ZQT|H<>t634s34BUb_px6ByCeAG`AMozZ4ZF5jb_(hNlI(^#83O#zk@kp>MSijkowe#kRyl`xb6WmJb z_SAeLk!ZG+iENdjY-O?{Kw;-k^jiU&DJZkl_OUn(4QAn;y&~qx#EF% zl)ku$b@4N!PX2o{=?j}51_H=Yf2heKE0Up3u*_w$agU;Ca1=%6jgLYK(vSLMRIY|8oY4Vl1k@;-R)7Oiv`1cJQ7 zUl%y&x%oSGTO5~&h7hxWNcotkdX7obT=#w~*7^Z!(Mx8ZV(;qfA3@#NPN3*rTzTRY zzDD6K@d3#rq{V<1cQW)KC{%`HURlOB=+c4;Tk-B|3o6unE{Z>m-9@4pC)iA3y#6t!OjflzH=jsX^kk`f^wr(rV#Wif)uxOnbvVaXX$y zN7uxCkNXvQvxDH?_nT1V6+CTy`YQf_koNq@$v=(z$&f zPCLv7Q|sQ)KlE(OXplbm+JjaJ3XQ9Ldd}t$DTuo3by&*x8(B$HL=S_0jW>(WOEOFB z7&ptSv5j2i^KTpe{wu9{iGpTEMt3)QeQRr`>Wk*j^eh!4Q+$RVMv@SLIC(vpvRR6X4%{i`?GXIN*NDD{J@MuWYS5ufB>@L=S zA`zmIFMNajY3N&IU8m&z4K`WxL0E+Z>e$vnNpX9{0j3Ojk3zV8SICm^MVO6CQsGib zgkd#iM7`U*bFW}xfj)!TKR=5Tf2ue?&e0J*U~tc>S524i?!jlbM3nM}53=u4L09@$ zFdtyo7Djid!~50T`@8C+=KJe#;XJxkD$^vWZROyNc?6T+exG@8;spDmL!S7zk9)()21FVAM=nGIl!Zi0?WW*iYOUAM<5LF_c^;xbq#yl^;LPzk}3 z&`A9NvMu4_@NTCL!HADmZY?S<;j(sitVKfhnn|0`dhMev6nA%okjn8X~73>s!Hi1 z7(CW+QspT1$w9UI??#-TstvYMX5zg)=rN{yMRG4PGPF0WoJP(rI@0W~FSSY5UmeZ{kW>2vr4x@g?f3?I z4g(1lFE;m{z|=yHXc;(XA|HudeP0#Q1ozgZ*n>w)K5NnWWV3);0qNqsHQqbJvmRDH zBLEEf$RCx6ulxflH;*uJDN}5_7CU3xMnxD42(DX%4ACm?^OLyVLfm<|lb~IEy?Eq% z(>HPMU1#$9`nfne97AP`YI9@7RgXkyU3?;l>f^1saGckd&7bu7i-$o<2&Q#peBdqd z>%i--E;=q}df;Q32riYBe(X{nU)myB#(0?|S}i9(yDb)zMyf6U`d150j)QGyjy{_LxK>yS2+& zb7qasrxIM2n(aOX7oYQHJFH*k7ZlXG&&As;)M76BpR6Xuw60YuYp%9!BXOm!93&LL z+;^vaNDUD$l?)L|%$HO$r=9*0JPVZCUxg62e3>zl?!UiQ1Zry&1|u_%OY6*#e7rfE z1qKpWAQjN`y1ti`1@Ps&w!MJbT&-DZQRy<39EI%B*QAt!WrBB+W;7;Lhc`#hS;60^ zgNapv^ql1W26b)bhHAE3Dp;(x4~kl9@P*YJt&Y9U!Vd$QxWpoxQ)*7sh;h3(bT`L{Ep-(Bel!s`HO6x zCm~Gg-LIr`{GK>|nn@6leto(1T-GH>3Yjs%A0FdXv2Cj_D9D}%-+fi>9|}*Fzfze4 zME&06k+>8h0(xJ*QNIfY-i~hW$E%O<3;S<5{JxmepTm?cQInms z_K-V9K3_bwqM&10RzD27nA}XgI7WUalNeeF>anzsN?X@z+W|fuEEna5GQ;ej2v!=^ zzn^wph+F!$RG58=?S8XiOFGkW@1ofCTgVycTD)QT7&!|w8TQE$_j>q?tRXD$PV={@ z#f#KxBUTnJmc{h2wR*+L(c^0(uLA@T3ckLsZ}JI!TH~WB#sCSerVzaLZB9VXggFzp z>8wyI2WA+gJ8`p|K@;`+IH|?=g39UchId%k`P68}(OMbcgpF}e;cVqXnVSlk7sxe% zCNmPY>$(*9zI!Yd98EtrQ7E`9+;zhMhWQ0jl+5*7g2G=XxiOT&y-Cr&6YhT}Cg|d= zLK%N{_#Wzx)1-iSRyec~xw!SR&cu|<@AibAl)6jo*$_dnW)b|W${dhcql`}}m4iJO zB~j<1arxwNH(c-m9ynB^P~Vlsq`~|7moTEwT?S6IYYcdViNvU0Y?$x;_g9yfnB5DU zuK*Gct^6JeViLParu;KE1L-MqnU!8tyD?#**oT)R&G3f~!u6UUUtt)IKT z<~aN`JhVW+w2s+{S-*wE?~$;?5)bZP2>CaODvv>31O=vXI{K{AU zlu;SknfnMM9CvUhnwZORK*a(MCcpRJmJY({9sXrcW4A2fuv{-cR&C9HhaVg}|H5GL zN1HWg%=MN1i~AclKLIz!u=J-ziD5`z39L&froYzN6-?aasP4AN zpWDJuDH{@7Jcz)z{3N71gTWr@-453>PKN58V1xlJ#H zEQTpFOx>BcvDuBf1(r*BX|pKc^kKvdAXKJFgB0b>)q-ga*~xHt_ooiIl2X4p zlUnyL(XPopNIgC0!hTG0>ezuZ0)G|u&D_&wd=;5u-*Uea1kJrfvEd!xhQ+0fU!PM; zF~&n-2u8H_Vh!oo3l6u%rVAMZv3dQU#y@#-EuRiO(vahXv5uVVZ0ytn9X@*fp~Ii5 z9qU_Dfw3-w^NARU&%S~Q65cZ2b2F@L?3kEOUD`g60>oi+Xyax!$>o`kzptenarNu` zlu~PX&7oa2N#XXIEtP45cLPiD)O8(Y{7nVNsMV9wBg4}>f7bd7*9B^|fN4WCdrIv< zMl%!S&4%AY%A%gd4r--V)~>>={*e#E@5l<@rgi=#?iirFB6>i8ZGG9~OkJQStc;kRy;RC1RFZlBLG$b z)em?P<1r_pnKbfFCL28K5$&You5s%GA&nBPP>eP3B%JzTH!6XqojA=pjVXbiTTn8w zi8G^XL$WF0O+~vJ%gAX)?EJ7f-kw7I>J_wraG|`Y+>r{LI=jMg8O>o;yE7KJyE|FFm?$%rS6u#4zWe~(6?Z0vJw2JPEEscx zRE}KRq^lJMUVnWzfv*7JE@vNRE_Ssu;|!oInG^hEFeat>ZZ_7df>Szm55H8W+LHX{ zTJo@8Z8G9-H7H31MG&zVQmt=~1ev&yAnukif%~VYFMHCeJ9|F6uFIac`Cbm6a$sOa z?~U45nWsMUfC|i+blq83K@dSSwCbed*XMzf3AQ`Dmi#y!j})>w+=6E$uk9&TNA-*K zT-eMxGf_F}-?Z(2JfrFis@;7TNkK-%qS@>OpGJ1Umu~d1xflA$cPk(ZH@5RCB$ibZ zXoHGbYGTU!m%{D{DFKvXKR+ruT3MAQ9US|`tV$uvxsA*f_s;W z7U5`}Z*&VsE8Q5$6-LWjA4Y^5 zJq9@{0L?7j_atI7-o0P&hDS0-4xi0L2m78rUT7r+)V&xbB&{8tz_E%FDLp29wj(JFtjXVD?*QZ5o7-(cXdD7Ki{lhs;Dr^Tps-#t&YMN*sJqrnKnQ2c@fH)hJTpO7aS-#sR~-IY2P_L<|Z1A%l6&0 zeF_hs>%HRH!cEC!i@WZh7u4Bp_BpUw@lKqPY| zw<~(Yt2~k0GB6sqB$C3zMe{n{H?&@<_en6j zFUWlX#oZ)Cl(DVL9DRc{Bdv03%Gu`Sea8u& zl3pbZx>}`|ygRG*lDV0Wwn$ya(fb#?#=13-nljv1)mr24X&Zz_vYHjX$dNSMRk;93EEL)`u5HZFSUlBdcslrX?U2uhK9`nh3!k6Loe~wEu3iM7wDRyQ-y> z1TOLszBQKq@~z!=*QCu)Cr-mmYip^Yl}o7DtyLJiQ~jKO+#nGm_~bYCYfi(^1uqAb z=dQs18>Ij6=^S#7EX^vIvdWTc`$v4a<6z7VISEbXqKyJNviT5Txfk>2^%dL{(#_R? zL{qB)7k#&?d7>_T-r$-3x6?%2BMQ5}L&9Yr*Ttn~`zTjg4&S1on6Kk2+-MA?J*yz- z34DnA{ve!4zY9cug>(C2z1WWdT%6M_%jG(+0vdtlBJ_YMb8MlG1p`BM?528ll!+&* zwDclB0oi)P%ssu-9cG&-u>zPX?h#*!{p0sDo7UNfRZ$9gLOV4hkvc9+h`3=Xaou)g3(3 zMcXaHXiX8|W~`LLi1AcCBZea+Y^V`__w6ee5`y6$R z+edi#>B{LNAjwRAY=60Ua2C=p`({*-8IYIgfC1;)?#M)O3Lv9*m_Ih&n=YuaL(U#o`UtfQ;MIA@0@2 z82o^vZ_n%Q2;&wnUfjJkZVZZ9FrVK)my%#XD>KkPgbp74y~w3Np@0NCj*V&kHw{_y ze%P^ASE2`?!!zlbdhu)hcC+#rbBWE3tEXr~l|uqWNr=Yy$c(RF^tRgqCA5%8C|s`r zpGwS|8E^EkWSo+mXtB-B1e!EYDOtJ928tqm-?k#UFp9Y~SPUth_=cmFEy21x3c`j& zoUFcMQ4@yeeZ1AJE!E;MX^lFBRO7?oc?RuNv_71G&fw}U1GeilN(Ny1WEa3Ru2*$W zU>m!joWMs@v}mqM;pDc}W7oQLJm9N$Q@#b|wlWqvZ4lc=zAk;mS~R!1hSaggBh*k^ zd>shyOyj2(z1T~-`5|G}UsM3|y*SA9KaSmKJD75-Sv0ytK}=jGvkL459o{cg-QtUN z5^jm5-o(06bQ&~hk6mmp3F0PRj0?c*0|+Hx3A^cuGk|G{{SMi^2BY{AOLz{3M8K9j zi?akOOI&`;8=hCu_*49G=ocDw7l0NABzfJx%>Hz zY%BTj@nO+u%3izOYsD0(1I6pNnvdkwa|dK5xo(%+sg>_Kg)9-MXHRIOR#uMJx1z-e z&B<14H@A1u^JKm=iG7Gw6foBveEHGB;c6%plN`in8l0`F5wRMRE}-|%%6N`4}ho9EG- z9lx<&_lOf@FueH9@+p;t5-V*NUEsB{A++}eESRri$mqa*&Rw?>mm65y+l?^`-|wFmThs^qz+^E>={bAZN9BKsN>{4qih#J1 z)56EKA}of@wuV_HLMA$}Yeg$(nbcAmM?i6w%~YAaSdhK=BT2^rBZELW?KYq7r1Mg9 zf5mQe+?^?VgeF)fs=Jh~LStH`sb&tHq7#a~t<``G34>J(bM}E)B~gu;Fz@1gZz6i< z4|%|rvy<@_r#M-Q^bBuKeIW^vjQe~i)HzAr)DBV zdhSmwLo>TLR>x4rS!V8A5NM=@^YYdVGnDX*5RtqXfKpPz42uCE0*@jT0K?t&+nfq- z!@PcO#Hdbo6XM+~ZicN9?G9V}WTGE+_!`XuDGcM{?ziE5Unr&sxi~;{MC0YErr7An z$tkM=PK+;w>R;A*hjxz&8eKW8d4;lk%-Qfl-!H)FdUd1~n>IDKVM(zYojP#I+TMNA zv7p@LvyHz8nh>(l1;r5*k0zVS%WVOf^$H>*{`>{R6;Si|9;)6sJZoO?^CfRi!@-h(!_mnivxu*gcsdtGBZWPUQmXW zPD((a?Kg{M9^@7Jt(qc=@C)(SgtZwYI%RaK_ z{4N?{|4{SFYCJvq_WI=;pFqCX{>>!)O3Cb;=6g zq@d@d^K{f`ml$%|!e;&O?D|}`0N9xEvo(UjdkKi5e*^Sq=qa*Xz`eAacGy`>kDs>Y zKT9tCKpG8UlhyY&1NRd)R1Eq!ce_rP-}(*$c>wt#=@>$tiyq0)eNj*FtJ~Pj=GArv z$u;Q{jP9`+Z!aq}z0~4!+h$Y)!c54!x&ha8_NhpXM)&Bty{}i37}G1U^%dq$Kgx>y zEzBuux87f1drbu#4DotbJeC$xu_cwZ7>%h|wvmE6!DG!Ud0t+7cw|P%0wB8&xE2TJ zC$~C?)lDcq^xNAbovK=9HV_6qXRx1-slpF}Gncs5cggAJ<>LqS<#eQr1c6@7)mYIr zy6gbA7Lh!M)?aleU)RP%bh&Xp2*}I{>XDKt$ZYbyHSGAKxgr2DyAk-3 zBUcI{$Y3D<$30z!k2m{OwcgTbpuB{C&jr-!B#bfCakO~UBKy%vSf=E!#*L2yOja#> zJUaGYxpK226>IzKU35Yhw85GM4&kla(g>y{qY;2gQ#~ z-+@y&lUW`E_+juH$cU>Ca*EV|bC|CwXx%H$!Z2`{VM}ZCJF|qGn1s5B)W6Wqa!+FB zcQQRrd&masvwiqPX&rHU4OB_Xge>&fCKrtK!-Mc@)bTyXd(smjV5n}{)2$*L4sF0W zHyxYso}~L@Vh%v+MZrKIhdPbd4lm(LYKcVG7ax_Yn0+-8oBd)LhbWC6>s2p(uRul9 z|Ct3K8R=O-4j(=K(1ACza>3Kl0s1sO5X}hylH<}TeaKXzR#mcB!5Yi#{-$Uni~S>_ ziAp^YN|;7%b(-uJu{-qJOc}{@8Q+r%%GvQ9%j)=iLd+4l@!}chZJ%2hcs+fz(_%^p z(+ShE?&N2dkUA16_*sxph>!0&7(Cg}I@c$JK^;#i$*>SGx|gY`L#B|-@66?LX}e@4 zlU(L>o(plw}8^X-;{2%r%qoDq{4-JN0MWA1_n+uhPz zL2t^VW~0`q7N4`XYPk~ZNP&8Lfz!QTs-hy#|}P z`DDqEnwwRd$trOUqn6JS{?~b)OFsIIKKy8U0n8-CC*Y4^SqF)i)U7fKO=42Z_l*bG zOhXx(oR-4Gea~t6oC6|{Mz>N4TE+cWh+nZCvd`_VZeliPRnR@SE6#gw=0MO17_!?s zffGD(uFrNL(Fe}_Vi$zo2CrC>2~|0@(yK~$9w|@=0||BPr(VM{N0+9+aCzjSW}&5^ z$GkFND|T1XhPlacnMUJ#GPKI7lg#5!CU(S}iL7$u8!PeF4vbNsjmBT3bgtrl$h0f} zRf1QvEn7#)z#y6@4xfbOZmf70R#!7IJF_I2W@yaj>^CZ;YwdPIBm|Ca==#gW-5G?=+IxWY|^$7t_*^D4_HJ_Q8?*n4wXE80G$il7p?a*x~$%4^e=$+A=oiZU?E`FX$qq=&Z*fCV@*vGQS zzJ|V`Mb%3!{O_5)F9wpg zzc+k=r9}0ivxa@p)_cn`nWomcWn9Z#e)e{gmJQ?0q^4wN9z-@?Xs3P?u+jnZdZkt* z;~%6vmy#%myBweuE7#tyh5P`6C&`C^>>MU0dcA#cd^4R&&(jmcme zL2q;-G-a0$LXMg3gELSd-=#F@l{}HWkF*KEU1(Yu9}h@OvrgwpVIfI72(l%~p$Cz6 zXCtyTN;?xXAsB8vyi(2Xzrv6x#YD*VQwGi=u8#PQja$DhF;vw_J2whGhaV}r6K#;_ zn+meer3Y2|e{aBnR2%UQ+NV1dta~yNTPq{b922Y)4U8r2@s>+>(QIX{xqe+=Yfb6r zRr$h^8&UnSnt{W(Gg#HIfW9rG%WY)Re%E_{r|WrQQ{E>^BmQgOgJ$Io-<=Bo^|ejn z7o53bM|>7Tzp<8AT)LJLy)ebk;Uz%YvDN>*CQLfUcztx;n&S`uhCQtbo}nwVmGX@J_PuoQxxPDHiUVZ z)MT_r5c_o$A)?)x`YA3IEnY|G-TO2#OES;&vxP=`;;YPo2MpEW>YwMTp3k=03+8(s z^c;Z;EXC+RXa`T5C|FP~`c|jXw#huUl$UIo;|g~*G`b(JBN^(C`C?!|HFMP4*}@eb zdTOvp&vXDT7<{EsSg5e1X6$2%9eRfFPdhs^`m)9PxH$`vCTx%Un&YFx`JtM_Jd~*8 z3b$`qN7C&6F61vU>-XqHse`iJU2vg^vVD}BMA9{CsQ-%$=OF4yXr9H~@X$&Q=7Q&5 zUmdj`x{)M@Tary+0^Sa$@HSh2i5SsHxU*hJ9MY2pSxn)yHoaPP9Fdp{ ziPe{*bVC`vl=uh-%?06H;E)gW59{@PX>}_MC}#qqZF@8Ry%@~CN)&pYTx~#})Ri9p zGo>8f7>tDA)pw(?htHz&Av5Gyno$#Ev6*X*iv34zgc;GDd>L*ml^PYP%d%EPvzmh^U4(9rw2<@nm|vNjL_{~6 zj>O#-qbtU;j2WuY6;u-1cll{f3Yt8Rr0?)Pu9Io!4uJ zt3yTkNNgej4c6;sJRW{mMLd3ilj$|oLLG3UC?iJaOR6vkqF|t&j2OB0j7*jcSmUch zy-qkJ+fB@Z4mt{hi0^AOJFSzUVkPN-mA=w?eAnySIvr#KKc*7m3lJ$_yI_1SOxL;N zKcI3cMSs{2*JG&myjyG1erht3#dLCf^GOLOYP>`dV4vAS;rZ=C4DT>bNDB$fk+ZnUcwXf>|Gx(d(`zOct~OEQ}Y5yP;q+%Zqe>N@q~+^;SzC<$Yv=J%^78+h;M zOO^FrkV`z;6?90b%RxxYHu;PCoc{?K)+txCIG8;qsIi2Y9P-K7Sw+Vb5U~^c#`J96^!K$kZzl0zlw6Wb7KkcMl8qD zMPC}Intx6_8v@hWAo3d(mQJ?E3qDwIpR}e3?{I$2V_BZ#vzo3j4*xLOva{s%U@VRE z*`{qXRfp@rA}F0IS+Gk1P;CEl`*{lfHo5%o=@ypwIcyNyCW`I2$Kl}AzfpC z7=Y3+unWinK9N)EBpw@-XYw8l_ex?8)T;o*yKQq~xe;@K+at!^9x=%y@nNy{WT51; z-ocpu3wU5(-7iVAEhx&ybS&ueS7_SxzEoDHH=dTYU#L4NK9kSfZ;J*&(ZW(R((jE@ zqV)_{$)UByUj+Knp_x0R4J&!gh^2n*2(4AiYW;r4}H27gR(;QHzN#st&r_kqwkdozcT$S>E@^~RXKvIDvd&9+e z_Jg{eH4x2{5AUiQt96)@YROE;t04p;g^>w2sFrdE!Ri4Yf&nb_9gN+uiTI5g%Ts)q42-|ki} zktcFSLV{tk#aN!DV22D1$Yw>eH#;%lNhYh?n$LUX$-eE|SoCAVX7M0>|8e?V`uoyh zG-Scs)xN<%3Je=spN{b?%(9AlE=LJ8mACYZY5%Z8Rtqi?zlwi1fz?>#kZu>7P-2?y z4dnO>WY)!wmN-^6JRK<-rYMVf+t5cP`zC%goD`Z+t#3&o?$p%E~8XG-j&hu4hRKO4W2}taM9*$`r=R!v96{|1mWM5 zw_+b_Fgiak%sd(W1co-DZZ>=``$te~u5xjijMw3b5ZalKOj}2rzH&D_ug2+GYLcCo zTH|HHIJuTFat@PI3Yh$81g%K=$9|v5DhDLH=R~@SE)qwwKnT%1Vda%~&i*0+JBxK% zVi34pOyJazaBHL$ek=HCj}UKruO=@0*BtQVYUq%nz{l%Q^m7h|`~Zs551;eXa?8!; z{as}9-TBMa@xVK5zYuJRRA|6+bXhT7X@5tL&eRkqt!$R_=r{n-2q4j08fhy%mE1dq zPJ<)%uvn5v>QoNdi8Th-m6iACVo6EH>X#iq{Srpr*X*-12N)cF)hTe;aeHGfYFDs9 zDdb(Fa$#L!&23AP76_T-vG(YVz$>V++|?x=v|05mrs>(-c#hkPZUW=-8L?K#l;A~% z%dcG?6MXwn`qpm7@iQF4X}(oaEqhwG&R%S3>V7aaUJ{)KPvghz%n{dn>{Mg>?E^Bk zS{o;&{8vvbxgfXePi=7bNhfOBXi<%}!qmcnkCVZ9T;kUC?&b-bNiDuITT@JNg>%l-U8aiYd; zhKf{hNJTQ>hW-kNB)Cfa%5=H&w(c(GNL2yJV=SG))_PQ0{!-Hdnb?4{L(jH|g)>e! z(S8%W5Dqcy0M@;zMOdGWQD5gszGK@a($wZah~=Tozxx0&iBj8JC@#cM-jyDTaT~FY zE$N`y-?x0Ka&A=?{g~7XA{k~f4g!<2SzR`@5eUu^5SYPm%sNU#Vm@PlqJS(mBfms= z8B;YY;^F#$G6rw6^XE!wKIx!O3`KbGou#lByplB@g?R8Y(u9na96LI~ zNq*{ZJMGA@HXPM+yFzEU4iWad4iL~4DKqQM+%~?W?JqJX&uKSu9y2L1P)7I0DCGNB zKCS(W%MN}AAbHBp_tT(l(Bh*lYC88ydxDc$q>l{f8gb3CaU}ODsAtgH7=EuBBn^`t-0KOxEb#?D^8Cd_{fS6=rr08 z89>ixN^C+!S_lZzp?3Rnc-|xShHZ8jLEwnn@Ys}Z_PEKVevfZKGD&F1W0veBv-3v? zG@r^eM>gw9%-}be6XJT`9U?TzOwYndDQm0gQoO+sb5v|tyWFfR?<%(4A_lJ&v+baU z#IwFY%?(#NWOwI@i8XNqgmPPE7QT(s;Hhw4X8CZ}Uh*1PObQR+4Lc|&q zcT`F_USjndT*~~7%BcA>vehz_Mpl<8O=lLjmdsHhOD-KVn-Q7(@g%=@f3f{H?aI_b z`ysuWXN+n&j2_mo9P;$~O`hFJsbY->&a*9~9apFFVQj)OzYi8$$vcBU40?xg-;8+< z>Rkz3PiLRkJ3w4 zulJqJ5jWmo9c&fEP~Cq`T^vP}R~sv$MJ;<6dMRv35Odrmpv(5Rfd(!&?{h1elXl8BRjC-ciNvkH=tB-<2 z=JcFyNZkr8b>Iq5F6VYE9RP&GcXDi%pQ1Zdw$Mi9e?(KAM6E1gQcUI(?;&JFM_H|- zJO5K8LGt{+P7ZB^v#_RTZ*?LbhkDB5_IT>IJFeR zv1I6%8TPG)M&!)!v9QLFnapC!%?*+x1JV1xIm7$4(7WZTP;bd0MQc}4% zGWJ#geXP_u1+8nksMqFj$}?D|y5_qEyUEwYoW?S9NFs9vP6#m-UL*mNT0{a44(kJT zYRS_-OY*d?$`JPW;!(r3y}9~tnw5-xqawUf-o0Tsv^xS0vk{%Qm;+#FO1ZZDS%$}t zdUeUk+2i+1SF!Xw5R_+$%Jn03UPv>N%uZr3;xH)@lg;%UB;~k6_BI2AO~f9lRiaj) zdaZ^W@~`y4p(ny{%bzc?|GKf%08(}swD)7H_1V9wrES*9#7!g%26qR5dTNf^4{JS_ zo`UOQjx7H~FexH*9Yx7R6dt=q))6s$EOu+ov02E2YteytEl%G3spwQl8daxv&Qd@u zqbyWjpgCOiV2`%UlQ7D2@p8Q1&&ca_r6*l8Zcn}O8oAdg;gZ+_-`9T?{T&qKJ`#DY z{pJzn)w%q2=j}!c%4L6ZC#gy`b;HtWsSJm_-xIpk^5WWuVo>-KJKPmoUsKgR-F75C z$=7f&flYaJ2HB5i(>YH^>i?&cwfP{usySx=YI;vopRRF6Rbm#15h)VgUvI`|-myi= zuw2alL7NwAnmZo}a&6jRFbcf*E=3~YiFHmX#HKk#Hd{MAP$~MM+*Oq2x&k*Jzc)Go z`US6Jq!<2e;s{^Ib$yF{E)`ue)7i~PMAlhM*~#HS$Emf?eH9SI4=2C61lD3S2^e1~ zot~7_+hlj6F*oN&94U5F(xGJ@FB-v2^pbwTSl>ql?+GUPKm73An=%m5D;U|d_RQC< zb2l(*bH_U)=aWixaQewYCaQCCeg;vSFPo_dU1)ZOL$kssI!5Mvk5=B}RgbL0{aW|Z zVl_H++nyS3xTrNaEl`z=@Q`}I<9_OU&PHh9|Jq$Aj(D=n@mPynM*eUxPdfZV2>_#h zF>AKYk`Fann8WrbWcm{JdVp+ zpW+w!*Wt~9H4(crdLz_O4+WHI{m z_hW8pLe~R*<)8mfSo93Sc`djtw#+w5*F2%ApErv9*h%nM@EYO=K~ZV!dU>=x$Z+LT z$JP9P4X6c6PP6PRN^yd{nW|PvkXMpMTed^%hUv>q6UMuDg z-_l~-E{+6Gbma7ddXU2OY>zC5_1-%jK7hgC7c?kr#lEWexm0xfd4a}cDzg!kZxMLi zM*yu&6cp;*Xhb9Vvd6`Ge`z^%>Png1u8S2eiS=)`0Y9GozR;xNgU{>nYXxx-8chGd z1vI7b?8drFj=UUmD?mlM)`UfP@A7;k= zmCf23@-@}^BgyNy8GMDAcg(Jp?pWtY$U575NWAR4i{1nVI&^JMf4Z(mu8iD* zU0lIi(7J8%GgFJ$^-jYOKFMSGE@R=vi~%v%tF( zlNDn8Ac}z1OL~8`OUy6@dE2{(paAO@To}z|>E)Aog2czjfme3EqXZcW$R3kt(cM0W zLI~Ha{a@n&K0hY&e#Bl2b4nqJWHLrt6Bx-wjq5e}^@Ty}xfIp3MtXYHTzoc@c$MuQ z^7V1q6BS8l>p&lFHWNkVd7{9lath&6ard%lLH#{8b^7`@#{*^AI0A!BzNsRMhu1|T(R&AiO$+YzF^Et5**HamE37x=GZ>vV(gUkenX z(z>~6d^mRs=0$cj;GS!(sIKd#(}SM| z*_Ey3EB}qy|C17$(wxb@OcZpcU;IQ1Lg@!)?A_7&DLTkhhZZ;xuKo^JC&;jhbvwU_ zv)tcq&OMhKzi-L9J&rs9{N(GS&=SPAp$p&t74`f7x+LM|Spj5Pdf)%?s+KNPRc(r@+SS^#HHxZHY7-@P>`lZTwG}mL zE2Z{~y+>?Ci5VsKiWxKf&->H&`!jyu|G9F-btQ7nbMEJU?(uqF_kH3V_rI!u`gIs zY5w84N8t}}e~NfZ#C))lo{crCo=y+GeILH_sU1!yS}tytSO#9TrD?!Ee*3pv|EO8~ zjVXHc2r<3Le&53W@YMy$)kRHPavRmgau7W3sUjrTcMu%S;^Y5TV%Et+WhF5E?- z7o6GEbD)r4+|0{(Wp$r~LDCNZoqu-^rUcW}I-rB+I1p2{L&N3ht-Pr|!)OoK!Agr? z3a{y@=jH_0>{;?fM21iKUjOz?Eo?Qa&9f;$)D80+sDJ%OWPjB1N$ZzQr2YPuu$;r$ z+k4zsCrBToy~LJFA`Z=>nA_O>1Tn9Z-B2<2-Nz^)Iof{hjMEJvE=KL(&2sQCC{@UX z8d+lK^Fv?hqrRFu)q(mw(dKC|&u2SSJ^9_6Wq)h?pDR660pLcb$)+pc01%8n*nOQE zAVaW`QS#HUR!rb2UOr988$778#G3XDHJ#gU3?#enkG{7MQLc=RaamG88zN5W`t>Fi z4aom@4aD++YsmxKV1^+w3+XuP|ARy?=Y6BgL^dZd`B2I->_tPbynyy=MOQy!B1}iFo zUNClr)cHM=4}Y7GKZcHFy-_pPP2=4YOrgjYs>RSXAFccsvG~7U9`75?Vvm9S$I|w{ zTQ&Uq%lO1W$Wsq3;RKIdf`74l|7(&Otv~FGIH>*|i2O6)zW$YJAnyUTt2HS9Zdmcp zS7G}V?|U~pU;hip`uB&~&vLlV7E1(2r~771*tYrwgp@lSOAMTvk?O)XpSIU{ReNfedlrMq zRp@}8B1<`t%rY+39Q`5><$E{7;t?p=IbEUWKm9TOOXy0DESPU0(a*gGWCAG)eZLor zGM}|FBA8xWIGzibd5M#B^=nX&UgS95Cfa*q=QzrrDgx6iI%t!YdqC7bU+07N9*jxk4kKILev3*%Eq(rS7 z#yizgg&JrZQb^n1sP_LO1wdV*>2YB@FoN(Zg9=Vt`|T3(^ZUAGPo`bA>C7*-XWV`^ z+GsswQzxJK=88zh<}ju&DJj5z#yv_`ho)1vn`gt4fyjmwJnd?=N>yuq~-m z@2Rki`#Kdb>W@Ns9DVew-#o$W@{-Z9vIqf@>h#`p%HVLzg+Fl4PMXqZc1$&cb(er$ z-Ru6V?DU`4lP^p1AlK}PDi`zkB31Ql&*FuXUUdr;JUpUQwMpXXJKPIb>M@afv?6aD z_eESMfSJPUO{t~wDSgdix1aU9$rVQcm)&k3)T>#l1XIa+sAv9Oj$Yl1%RA~0{?BEe z4gXao9s<;*Fg9v?9MXwBh^7~hb%-r#i{Jn?6WsZd|H;(=ib$AmVx=}^N4~DES8~`J zU7p-ip#j=v98!D*)n1&I_C_tGJzrL=+Wz$tv}&dD&4zW`olE#4wY4_qIc!4zm(?is z!6WZz00byp(|FK@Yp8L+D7UZn8N5s%qeEP!tM2ZgXd=IF*JneojAGSRhUO&UYfVna z+&id-!q0>M$OLHe^DdUdg9l*h6AaFLvtMUV!Y(7-Pu58P>K-GlX*DA)XTNiClMQ+} z>7Wiz%W+6L7|gCE7dN$M)2(N^F5R(rb$LLH^4#RrQnoV@Cv@k9V(j~0 zx*24#@YE~R9N^>59q5=wcV-jzQT1~T2j?#_P`{o)akW|xCmyOirfy|tw zqiOqDZkD_}mXG~m>fSpw^I4j40?On~$CyihIs|vtX3fYm5myeWH`X#8 zR1Ia0^TJN4aaw}M{o^z>_DfqDGv04ABlZ^;9OTEr{8DdhVrhu5WA5IXU+eMLJud_A zYT0(iwYIRvmyHmTd^4!=22TC3SgX{aBbGtS=+_C`nz+Rcf=JpBs>+tOuKvV~^M?5Q zf&-^Mi@(@(uJmebyHYMWlhSi-YMS%)OQ|$3tCX>kzzX?~Z%rRMkOvV11~BV=IQE%# z(e<|<@Za5_q&*6v5%hU;2-Nu3 zpzqZ3o#FxTWP3o8+?>zpvUzCmJ^E%+?jwqCtJ%1d?FEC+&2}{gQCql)?7`F~i^Fkl zcM_CuSHn=xJ}q*=a#9AfU7LL@tS)Fz*F5EVhrv}p^s4Hdl#y95Yc|Jbm!=-?n@kk!wb61mUsu=K)PR&86q7l@!ZfcCuHx zrbVBOOYr+&s!e;tXpwE8^vcwu5f=fYm{^p{_Zsqw1ryKeB`2Us@U8`U%>!j3~ zaQjHfjJyEKZo2lD`{@AZ+_CxCLs4at0ND(&-(2DHszLKzqO6kTRqp8DDO`(7{G7eX zUdxBW^Xm}&eMY3m$7712pov1O3?@)}zsl%Z$?HUJ z0*j#Q%AO1%4idv5z{nGy(Q+V07s9ArzC-IFd+|qCvylvPlK&l>+FvRuo=z% z5VIK_!hUNZcX~zFw6+p-qBT>0d`j60rT$mWHl|7jsuAc>_n>xGJ!XlVa|ZTkCQ83^ zP%pZRdsD)sZy$E}gX6(XrSc(|%AT@Aqa#L#&HT3PTeUZ!Qo%9pRo+S^rs%<{mx-ll zfGAiY9-`FL3F?WBqbQ{+QH)>Ktd!swc%cHSeTvwq{Q((ob}~EX?(x(;_a&X9Au(um z6IB5ZUOLqpC-{h(T``EeX<#Y(0cyyOM1Zt;N%!ZpkO2wPrc|GrDf5ZOz)kPgEyJOj z)lSnNDF|QEk%>bmE!&SShr&hA&liiP-f(o?I=;=EkKB@E5ap82s1A*7bQ?S@G}F;v z3B3!4x%OLkV82o91qj2>2kM45vPH<0%!eS%P#9Y`@Z- zJsFHIsgS}*%DvaUn4ZoNK&p}$< zaJ-EOjmtBox9wQ3T+Mme#Ra&(#b4_;x(dH7Eu$X;6#H0Q#cHpDRle2U27$;c_5Q-DVi-vuj>RXzWR48Xxfh*F)d&4Hg9I@1nhkD_!6^Z-mJwK{rhY<1? zhCgoWIb5{!ho)Xy9VnQrl~4bwBhmrfiBB~s>cgC77EbW|x465w1b_cY_*6zvx9w-s zm%4l#lPovB;?nE;*}bgf&9RbQ`=w^kU{1*!nAe-{5Bk$ieirGiE6jioILN|=1P-w6 z0GC20Vk+WrP7`g%mC)waLqLU@h7w6U-#jI$q@x=UvCnuv>6s)_SM(uGYk{FSq4!L+ zv7&jOtcG!TH}cbo_1)2A7oWl|wH$%chovoFZBlEolxj)1&uyHW;+4_vWFOa}Lrg(0 zypKq|Ouo06PY8meGwz#gWCu#xuY`Rve-mPkX?SF*lqN>JgPSnw&kFxIP1H9YyFz=J zr;`_NX1F(r8%xdmyh16iv=8E4Jz0jNx^cWn!8MQkLe%#G#3Q&v?p7knU`24sQO>m? zW2_=tr@^M~`ylVKTW9}PrHGj%M%+awio7QBz}o~nG99oAmUULkTFZ@(VD=n-qI9?q zb+~Mot=gHT;irbTYdJlVx1|kJodC-&c-J`J+~Bhb;U&wkqW6ZSgk*F~0SK(^(*Z6Kg;x zX4UBBgS46T7XZ=%&wxi223#VCt@TQJi@D&k#72mKbvwWX7_nQk_~G>XQ#t&QtY0h3 z<9vsytT6d(+GUgDdeV_Y9Ub&uYu#N66PVA51OEn}C5MZClef4+3)R0(eb|0I(9UFY zYoUCJ3pDZ6gWsUT>2tRW{Uy?Q=V@F?Hz*>gIGLQd2}Bz zM^76M`D0{mv1m@KPP$&%N?uMIv%%?_9@?c*epbjjO`oDjYY9z=zZ;*5rplUe50ytH z>nVplNpIYt1e%5g=RWX&-W~jvD7Rm=oT@n=#0C=2f8vB87j@q~+@3K*wS#Lu zBKP_qaOv9*m|gUz>P39Ybsy|GyqjSIv}~OFei^ai#bGwYH8JO6R3*Q$XQoF*BnBS4 zt&=FF^10C#hwLrqFx@zTZkkruh`H$v&V{>)6t%u^dN-W1Z7bmx{i{oUIZWN{H=3J+ z<@(tIZstLGKUf@cpm2C`dF|3Rij6sxs;$W#sq^_HYMn0D{}W0&MAr31wNx}-2aCv& z0vj={Q6ML?E>)Xeo~7Q_bOTTNlkfTlW$r(IsZc3ePFG_-T1QTYGJa#tw8A|~l7P@_ zmgv}hKe|8CpFf*F2jw;1GT{WlulH*ezc#OoiZ6cH4IS+IHk|o6_JRLVWZK2eW<$7I zwymD)Rwx0N$m01j2g{3${-ymAebcH_w9_x3ZYHa;j}y9osKXSLeBFPfW#BUib5-fa zu=_q9yhTm)%J0aoDGS9cwLX*jpYD<|SD8Hnr`2DHK7a*YYKn zo4Rj24KAmq&c$`RY+hhVmcxIp%^|i0{m5p}x9k{s^PK;lGz*Uu=tlOf(fgfQHqxh{ z9cub!-f6vnj?HZiD+4>T@4@mwJA#RiRzG`gpFviT)Lx8-o3)E&54Wmh^$3<8?I-N4 zKW#$l6MN(_=i6-OkU*SBK7DSO7U|DWBo6cWkgYEUSvQ2PTL-^8xHCRMo4HJzC^>29DpjxP?dTu?C?{ zTwM3pGUb5)VTASVM|JjZqBqOhRpuqD{9EfuSKf59D9R5gOwr%x2#R#dETDP4Nr-M- z9&~6}N_FsY7`}fmaebS6@Dc4#v^|Lm&FY&Ty0jS1xrl1XSwdK*y6K9mqHi$}Q+-Z4^4v3$2-kJ@UUT*ES+o@=DIs6=u~yv? z_ei0fuZ*TXZibh)BsmNgdPQ5x^6T1vp#S~D=)eelPOfX zY-TM^JX`0_q^A7RcU{_gm7n43W+kQ$>+%5ZsV_ND73oAq~U?L3)sV+gd+6n)r$n=@`>5m5y zg6y zZ#+J+V!>q4LDxKNuI{BU^02#|lQ3|!P%+H7U`kc?8|@eT%gxMB*N-P&SZ|rw5SEWS zHB_zrG^jsjFuO>8JNomO6@77#P!to`DPuX`l))#6WgsGISfsyC`mY10HTRU!PP2hP zE4Wdx-5TlJ>YA?}1J|(-^J&4dj1y8$1vZk+N%7scHrbL}UYDMOTS@BP@Psq+tjG>) zdqts2r3DE4#BEZSD%m8a&dM&;-D_igKE_2^x^$(5Tl!5}wl^)T?+-aI!z6rKbA({T(ws{@X&uBMTjyi({KtFl(AMeFT zMjT|Sy!0GzeqkK)fo}zBb3%+h?^P;v8u2#Hfs}dAXR+%@>w?9lBad$#KN7d2*opcD zkz3xU(LtVHeB?Pb+L17zXg{!U#H4W*7uaiPmE0q!@bV(ZkB5$u4RA7ek z<&x}U5!d~9L@^_%YcO{Q<-nqRco+58>h%Kh!{&1m%V(k{15b({*rG~OE~c_VqF(nv z*GE~3OJsXQfi`eN1|#Ye8Z8!^nHnctq6%>dbS{^~bLWr@RH_sTK%h5;#5irwW@V|l z!I1}7x}U4RbJsH*Wa-vnVtA*Wj(;y)!%?rwsTk5m_nFM3w*$S<|2nQ*qUiQl8VIk3 zpDvj;1k)G=H>!|KJ!NCFqy{lvgES1Nyim@Vc=hw12dha?<9Ykya-2fLkrtM}C$cgS z4FA%YMA1fdU555xYj<0BFsuNvdAs@0=!4(u(YoQsxN4gljfg0Qmh8mU`PZ%WWE(e_+8o!FZ@_as>lLCkE~#m=3tWhG*@4UCQwIG^dP22HU1US@)hsC4 ztS6kXJ}Z%PXFde&)_c%>^i7I-L9jrBv_f+Y&3&6yz35A$)?E)R^PooVOI}@z!tPg!G-jyX7%b|ND&;YDkCC?wxT(^RYJb*&5Rg!#Y;AJ1!`u18a5< z8)=YO;NU$Ehhfs)Y){w1a_=gA3;0szhZoJ}_urOILh9g0gi)43oIB_qu7tOss_aSU z=eig+U9HCtCpMMjC)h1M%xh9rDP7^=ZMN3E7l&291zj+AqjBQ73#qWPm^QZbtTRyB z^X9AmW0%CUmsl$(sh6P~)iF7VUI+g2Zd0Tr!?I@`r0_wNL)nG2-}3P7l~;Bs`tD=$ zf<-wY!p)|tmMb5Gz;D@SVOW9^`k5mJ;VlG+sQq2l>osBfzzeH^m&UUXi#-t;EH`q6 zqHTIa%|`Eu6P)`?N#&a6fkx{U?Y3LO1xOi<799Eb^kdc4Os7+W_R*MP)7f7-x<{fm zJ4_IkQk$L`yL=XBS(egMYIgqs>GmoG(UrT=pJL;yepy3mikD=oZ7W^pa%9hU7VA3n zxb=m23I&BMSum4qFON>{r*XXNFsF?^5AmhgW+8}9&qrc57P>Tv{-~U@oWoj7⋙U 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 z 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 M07*qoM6N<$g2x;k-v9sr literal 0 HcmV?d00001 diff --git a/docs/bridge/docs/Services/img/user-list.png b/docs/bridge/docs/Services/img/user-list.png new file mode 100644 index 0000000000000000000000000000000000000000..180071ec6b8c5a8cb16368fe56b2e108636819ec GIT binary patch literal 144262 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

    Cxzg(B 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 literal 0 HcmV?d00001 diff --git a/docs/bridge/docs/Services/img/kms-advanced.png b/docs/bridge/docs/Services/img/kms-advanced.png new file mode 100644 index 0000000000000000000000000000000000000000..ec963d87a7ae25e15de8b375282a1f58155d8772 GIT binary patch literal 73369 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 aJ>V7Ep4Ria|A~_gxGc@^xQf%B@qY&jQ?h#i literal 0 HcmV?d00001 diff --git a/docs/bridge/docs/Services/img/kms-labels.png b/docs/bridge/docs/Services/img/kms-labels.png new file mode 100644 index 0000000000000000000000000000000000000000..5ea8b503efeceaf55f79dbb9771582fcfb26a0ee GIT binary patch literal 107763 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

  • vG;I` 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�u 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�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

    b-?+gc>-8 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

    74`rfR_o^04mh^T!75fVTy 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 Z3a4jK7G|T=|BvijR#H)-TFmI@{{oZIwatcher: Client interface for chain watcher. ├── contracts: Contains interfaces for using contracts with the deployer + manager ├── client: Contains an open tracing compatible ethclient with batching. -├── example: Contains a full featured example of how to use deployer + manager +├── examples: Contains a full featured example of how to use deployer + manager & a signer. ├── forker: Allows the use of fork tests in live chains without docker using an anvil binary. ├── listener: Drop-in contract listener ├── manager: Manages contract deployments. diff --git a/ethergo/backends/anvil/suite_test.go b/ethergo/backends/anvil/suite_test.go index 11ba05f869..57df4304e9 100644 --- a/ethergo/backends/anvil/suite_test.go +++ b/ethergo/backends/anvil/suite_test.go @@ -1,6 +1,8 @@ package anvil_test import ( + "github.com/synapsecns/sanguine/ethergo/examples/contracttests" + "github.com/synapsecns/sanguine/ethergo/examples/contracttests/counter" "testing" "github.com/ethereum/go-ethereum/common" @@ -9,8 +11,6 @@ import ( "github.com/synapsecns/sanguine/core" "github.com/synapsecns/sanguine/core/testsuite" "github.com/synapsecns/sanguine/ethergo/backends/anvil" - "github.com/synapsecns/sanguine/ethergo/example" - "github.com/synapsecns/sanguine/ethergo/example/counter" "github.com/synapsecns/sanguine/ethergo/manager" ) @@ -49,8 +49,8 @@ func (a *AnvilSuite) SetupSuite() { a.client, err = anvil.Dial(a.GetSuiteContext(), a.backend.RPCAddress()) Nil(a.T(), err) - deployer := manager.NewDeployerManager(a.T(), example.NewCounterDeployer) - deployedContract := deployer.Get(a.GetSuiteContext(), a.backend, example.CounterType) + deployer := manager.NewDeployerManager(a.T(), contracttests.NewCounterDeployer) + deployedContract := deployer.Get(a.GetSuiteContext(), a.backend, contracttests.CounterType) var ok bool a.counter, ok = deployedContract.ContractHandle().(*counter.CounterRef) diff --git a/ethergo/deployer/deployed_contract_test.go b/ethergo/deployer/deployed_contract_test.go index 04d55b6c7d..7042c3432b 100644 --- a/ethergo/deployer/deployed_contract_test.go +++ b/ethergo/deployer/deployed_contract_test.go @@ -4,7 +4,7 @@ import ( . "github.com/stretchr/testify/assert" "github.com/synapsecns/sanguine/ethergo/backends/simulated" "github.com/synapsecns/sanguine/ethergo/deployer" - "github.com/synapsecns/sanguine/ethergo/example/counter" + counter2 "github.com/synapsecns/sanguine/ethergo/examples/contracttests/counter" "math/big" ) @@ -13,10 +13,10 @@ func (d *DeployerSuite) TestNewDeployedContract() { backend := simulated.NewSimulatedBackendWithChainID(d.GetTestContext(), d.T(), big.NewInt(chainID)) counterDeployer := backend.GetTxContext(d.GetTestContext(), nil) - deploymentAddress, tx, _, err := counter.DeployCounter(counterDeployer.TransactOpts, backend) + deploymentAddress, tx, _, err := counter2.DeployCounter(counterDeployer.TransactOpts, backend) Nil(d.T(), err) - handle, err := counter.NewCounterRef(deploymentAddress, backend) + handle, err := counter2.NewCounterRef(deploymentAddress, backend) Nil(d.T(), err) deployed, err := deployer.NewDeployedContract(handle, tx) diff --git a/ethergo/example/README.md b/ethergo/examples/contracttests/README.md similarity index 98% rename from ethergo/example/README.md rename to ethergo/examples/contracttests/README.md index 6ad31612ee..f8a3261b1b 100644 --- a/ethergo/example/README.md +++ b/ethergo/examples/contracttests/README.md @@ -153,8 +153,8 @@ "context" "github.com/ethereum/go-ethereum/accounts/abi/bind" . "github.com/stretchr/testify/assert" - "github.com/synapsecns/sanguine/ethergo/example" - "github.com/synapsecns/sanguine/ethergo/example/counter" + "github.com/synapsecns/sanguine/ethergo/examples" + "github.com/synapsecns/sanguine/ethergo/examples/counter" "github.com/synapsecns/sanguine/ethergo/manager" "github.com/synapsecns/sanguine/ethergo/backends/simulated" "testing" @@ -233,7 +233,7 @@ "context" "github.com/synapsecns/sanguine/ethergo/backends" "github.com/synapsecns/sanguine/ethergo/contracts" - "github.com/synapsecns/sanguine/ethergo/example/counter" + "github.com/synapsecns/sanguine/ethergo/examples/counter" "github.com/synapsecns/sanguine/ethergo/manager" "testing" ) @@ -255,7 +255,7 @@ "context" "github.com/synapsecns/sanguine/ethergo/backends" "github.com/synapsecns/sanguine/ethergo/contracts" - "github.com/synapsecns/sanguine/ethergo/example" + "github.com/synapsecns/sanguine/ethergo/examples" "github.com/synapsecns/sanguine/ethergo/manager" "testing" ) diff --git a/ethergo/example/contracttype.go b/ethergo/examples/contracttests/contracttype.go similarity index 95% rename from ethergo/example/contracttype.go rename to ethergo/examples/contracttests/contracttype.go index 43f2f9b0fa..06f4b1685c 100644 --- a/ethergo/example/contracttype.go +++ b/ethergo/examples/contracttests/contracttype.go @@ -1,9 +1,9 @@ -package example +package contracttests import ( "github.com/ethereum/go-ethereum/common/compiler" "github.com/synapsecns/sanguine/ethergo/contracts" - "github.com/synapsecns/sanguine/ethergo/example/counter" + "github.com/synapsecns/sanguine/ethergo/examples/contracttests/counter" ) // set all contact types. diff --git a/ethergo/example/contracttypeimpl_string.go b/ethergo/examples/contracttests/contracttypeimpl_string.go similarity index 96% rename from ethergo/example/contracttypeimpl_string.go rename to ethergo/examples/contracttests/contracttypeimpl_string.go index 6f15257e8f..cb53e0a008 100644 --- a/ethergo/example/contracttypeimpl_string.go +++ b/ethergo/examples/contracttests/contracttypeimpl_string.go @@ -1,6 +1,6 @@ // Code generated by "stringer -type=contractTypeImpl -linecomment"; DO NOT EDIT. -package example +package contracttests import "strconv" diff --git a/ethergo/example/counter/counter.abigen.go b/ethergo/examples/contracttests/counter/counter.abigen.go similarity index 100% rename from ethergo/example/counter/counter.abigen.go rename to ethergo/examples/contracttests/counter/counter.abigen.go diff --git a/ethergo/example/counter/counter.contractinfo.json b/ethergo/examples/contracttests/counter/counter.contractinfo.json similarity index 100% rename from ethergo/example/counter/counter.contractinfo.json rename to ethergo/examples/contracttests/counter/counter.contractinfo.json diff --git a/ethergo/example/counter/counter.metadata.go b/ethergo/examples/contracttests/counter/counter.metadata.go similarity index 100% rename from ethergo/example/counter/counter.metadata.go rename to ethergo/examples/contracttests/counter/counter.metadata.go diff --git a/ethergo/example/counter/counter.sol b/ethergo/examples/contracttests/counter/counter.sol similarity index 100% rename from ethergo/example/counter/counter.sol rename to ethergo/examples/contracttests/counter/counter.sol diff --git a/ethergo/example/counter/generate.go b/ethergo/examples/contracttests/counter/generate.go similarity index 100% rename from ethergo/example/counter/generate.go rename to ethergo/examples/contracttests/counter/generate.go diff --git a/ethergo/example/counter/helpers.go b/ethergo/examples/contracttests/counter/helpers.go similarity index 100% rename from ethergo/example/counter/helpers.go rename to ethergo/examples/contracttests/counter/helpers.go diff --git a/ethergo/example/counter_test.go b/ethergo/examples/contracttests/counter_test.go similarity index 80% rename from ethergo/example/counter_test.go rename to ethergo/examples/contracttests/counter_test.go index 93b4dc14ab..d677d816e2 100644 --- a/ethergo/example/counter_test.go +++ b/ethergo/examples/contracttests/counter_test.go @@ -1,12 +1,12 @@ -package example_test +package contracttests_test import ( "context" "github.com/ethereum/go-ethereum/accounts/abi/bind" . "github.com/stretchr/testify/assert" "github.com/synapsecns/sanguine/ethergo/backends/simulated" - "github.com/synapsecns/sanguine/ethergo/example" - "github.com/synapsecns/sanguine/ethergo/example/counter" + "github.com/synapsecns/sanguine/ethergo/examples/contracttests" + "github.com/synapsecns/sanguine/ethergo/examples/contracttests/counter" "github.com/synapsecns/sanguine/ethergo/manager" "testing" "time" @@ -19,11 +19,11 @@ func TestCounter(t *testing.T) { // since extra deployers don't necessarily deploy anything (only when requested in the GetOnlyContractRegistry) // adding them here won't slow anything down. It's recommended you have a global slice of these deployers you register every time. - deployer := manager.NewDeployerManager(t, example.NewCounterDeployer) + deployer := manager.NewDeployerManager(t, contracttests.NewCounterDeployer) newTestBackend := simulated.NewSimulatedBackend(testContext, t) - deployedContract := deployer.Get(testContext, newTestBackend, example.CounterType) + deployedContract := deployer.Get(testContext, newTestBackend, contracttests.CounterType) // if you're using these often, it's recommended you extend manager and add type casted getters here, along with the global registry //nolint: forcetypeassert counterHandle := deployedContract.ContractHandle().(*counter.CounterRef) @@ -48,6 +48,6 @@ func TestCounter(t *testing.T) { func TestDependenciesCorrect(t *testing.T) { manager.AssertDependenciesCorrect(context.Background(), t, func() manager.IDeployManager { - return manager.NewDeployerManager(t, example.NewCounterDeployer) + return manager.NewDeployerManager(t, contracttests.NewCounterDeployer) }) } diff --git a/ethergo/example/deployer.go b/ethergo/examples/contracttests/deployer.go similarity index 86% rename from ethergo/example/deployer.go rename to ethergo/examples/contracttests/deployer.go index bce378114b..4fe4542d34 100644 --- a/ethergo/example/deployer.go +++ b/ethergo/examples/contracttests/deployer.go @@ -1,4 +1,4 @@ -package example +package contracttests import ( "context" @@ -8,7 +8,7 @@ import ( "github.com/synapsecns/sanguine/ethergo/backends" "github.com/synapsecns/sanguine/ethergo/contracts" "github.com/synapsecns/sanguine/ethergo/deployer" - "github.com/synapsecns/sanguine/ethergo/example/counter" + counter2 "github.com/synapsecns/sanguine/ethergo/examples/contracttests/counter" ) // CounterDeployer deploys a counter. @@ -28,11 +28,11 @@ func (n *CounterDeployer) Deploy(ctx context.Context) (contracts.DeployedContrac //nolint: wrapcheck return n.DeploySimpleContract(ctx, func(transactOps *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, interface{}, error) { //nolint: wrapcheck - return counter.DeployCounter(transactOps, backend) + return counter2.DeployCounter(transactOps, backend) }, func(address common.Address, backend bind.ContractBackend) (interface{}, error) { // this is kept separate because we often want to add an address handle to this so it's compatible with vm.ContractRef //nolint: wrapcheck - return counter.NewCounterRef(address, backend) + return counter2.NewCounterRef(address, backend) }) } diff --git a/ethergo/example/deploymanager.go b/ethergo/examples/contracttests/deploymanager.go similarity index 90% rename from ethergo/example/deploymanager.go rename to ethergo/examples/contracttests/deploymanager.go index 8f86031b7d..b6ac1a1c3b 100644 --- a/ethergo/example/deploymanager.go +++ b/ethergo/examples/contracttests/deploymanager.go @@ -1,10 +1,10 @@ -package example +package contracttests import ( "context" "github.com/synapsecns/sanguine/ethergo/backends" "github.com/synapsecns/sanguine/ethergo/contracts" - "github.com/synapsecns/sanguine/ethergo/example/counter" + "github.com/synapsecns/sanguine/ethergo/examples/contracttests/counter" "github.com/synapsecns/sanguine/ethergo/manager" "testing" ) diff --git a/ethergo/example/doc.go b/ethergo/examples/contracttests/doc.go similarity index 74% rename from ethergo/example/doc.go rename to ethergo/examples/contracttests/doc.go index d8c6eecb56..360cebb639 100644 --- a/ethergo/example/doc.go +++ b/ethergo/examples/contracttests/doc.go @@ -1,2 +1,2 @@ // Package example defines an example project that uses ethergo -package example +package contracttests diff --git a/ethergo/examples/signer-example/README.md b/ethergo/examples/signer-example/README.md new file mode 100644 index 0000000000..8c1fb2ac1d --- /dev/null +++ b/ethergo/examples/signer-example/README.md @@ -0,0 +1,3 @@ +# Signer Config Example + +The signer config example is a simple signer example for the docs that reads a signer config and prints the address of a key. diff --git a/ethergo/examples/signer-example/cmd/cmd.go b/ethergo/examples/signer-example/cmd/cmd.go new file mode 100644 index 0000000000..967646c335 --- /dev/null +++ b/ethergo/examples/signer-example/cmd/cmd.go @@ -0,0 +1,67 @@ +// Package cmd provides the command line interface for the opbot. +package cmd + +import ( + "fmt" + "github.com/synapsecns/sanguine/core/config" + "github.com/synapsecns/sanguine/core/metrics" + exampleConfig "github.com/synapsecns/sanguine/ethergo/examples/signer-example/config" + signerConfig "github.com/synapsecns/sanguine/ethergo/signer/config" + "github.com/urfave/cli/v2" + "gopkg.in/yaml.v3" + "os" +) + +// Start starts the command line tool. +func Start(args []string, buildInfo config.BuildInfo) { + app := cli.NewApp() + app.Name = buildInfo.Name() + + app.Description = buildInfo.VersionString() + "Opbot is a tool to manage operations." + app.Usage = fmt.Sprintf("%s --help", buildInfo.Name()) + app.EnableBashCompletion = true + app.Before = func(c *cli.Context) error { + // nolint:wrapcheck + return metrics.Setup(c.Context, buildInfo) + } + app.Flags = []cli.Flag{fileFlag} + app.Action = action + err := app.Run(args) + + if err != nil { + panic(err) + } +} + +var fileFlag = &cli.StringFlag{ + Name: "config", + Usage: "--config /Users/synapsecns/config.yaml", + Required: true, +} + +var action = func(c *cli.Context) error { + configFile, err := os.ReadFile(c.String(fileFlag.Name)) + if err != nil { + return fmt.Errorf("failed to open config file: %w", err) + } + + var cfg exampleConfig.ExampleConfig + // nolint: musttag + err = yaml.Unmarshal(configFile, &cfg) + if err != nil { + return fmt.Errorf("failed to unmarshal config file: %w", err) + } + + if ok, err := cfg.SignerConfig.IsValid(c.Context); !ok { + panic(fmt.Errorf("failed to validate signer config: %w", err)) + } + + signer, err := signerConfig.SignerFromConfig(c.Context, cfg.SignerConfig) + if err != nil { + return fmt.Errorf("could not create signer: %w", err) + } + + fmt.Printf("signer address is %s", signer.Address()) + + return nil +} diff --git a/ethergo/examples/signer-example/config/config.go b/ethergo/examples/signer-example/config/config.go new file mode 100644 index 0000000000..aeb36554cf --- /dev/null +++ b/ethergo/examples/signer-example/config/config.go @@ -0,0 +1,9 @@ +// Package config provides configuration for the example signer. +package config + +import "github.com/synapsecns/sanguine/ethergo/signer/config" + +// ExampleConfig is a configuration for the example signer. +type ExampleConfig struct { + config.SignerConfig `yaml:"signer_config"` +} diff --git a/ethergo/examples/signer-example/main.go b/ethergo/examples/signer-example/main.go new file mode 100644 index 0000000000..7443fd7f94 --- /dev/null +++ b/ethergo/examples/signer-example/main.go @@ -0,0 +1,12 @@ +// Package main provides the command line interface for the example signer. +package main + +import ( + "github.com/synapsecns/sanguine/ethergo/examples/signer-example/cmd" + "github.com/synapsecns/sanguine/ethergo/examples/signer-example/metadata" + "os" +) + +func main() { + cmd.Start(os.Args, metadata.BuildInfo()) +} diff --git a/ethergo/examples/signer-example/metadata/metadata.go b/ethergo/examples/signer-example/metadata/metadata.go new file mode 100644 index 0000000000..949538d904 --- /dev/null +++ b/ethergo/examples/signer-example/metadata/metadata.go @@ -0,0 +1,15 @@ +// Package metadata provides a metadata service for the example signer. +package metadata + +import "github.com/synapsecns/sanguine/core/config" + +var ( + version = config.DefaultVersion + commit = config.DefaultCommit + date = config.DefaultDate +) + +// BuildInfo returns the build info for the service. +func BuildInfo() config.BuildInfo { + return config.NewBuildInfo(version, commit, "signer-aws-example", date) +} diff --git a/ethergo/forker/fork_test.go b/ethergo/forker/fork_test.go index bcd3ff3a27..6301aad0d8 100644 --- a/ethergo/forker/fork_test.go +++ b/ethergo/forker/fork_test.go @@ -5,8 +5,8 @@ import ( "github.com/ethereum/go-ethereum/ethclient" . "github.com/stretchr/testify/assert" "github.com/synapsecns/sanguine/ethergo/backends/geth" - "github.com/synapsecns/sanguine/ethergo/example" - "github.com/synapsecns/sanguine/ethergo/example/counter" + "github.com/synapsecns/sanguine/ethergo/examples/contracttests" + "github.com/synapsecns/sanguine/ethergo/examples/contracttests/counter" "github.com/synapsecns/sanguine/ethergo/forker" "github.com/synapsecns/sanguine/ethergo/manager" ) @@ -18,8 +18,8 @@ func (f *ForkSuite) TestFork() { err := forker.Fork(testContext, backend.HTTPEndpoint(), 10, func(client *ethclient.Client) { // deploy the counter contract - deployer := manager.NewDeployerManager(f.T(), example.NewCounterDeployer) - deployedContract := deployer.Get(testContext, backend, example.CounterType) + deployer := manager.NewDeployerManager(f.T(), contracttests.NewCounterDeployer) + deployedContract := deployer.Get(testContext, backend, contracttests.CounterType) // if you're using these often, it's recommended you extend manager and add type casted getters here, along with the global registry //nolint: forcetypeassert counterHandle := deployedContract.ContractHandle().(*counter.CounterRef) diff --git a/ethergo/go.mod b/ethergo/go.mod index 104d4dacc2..a603d4dd08 100644 --- a/ethergo/go.mod +++ b/ethergo/go.mod @@ -54,6 +54,7 @@ require ( github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 github.com/teivah/onecontext v1.3.0 github.com/tyler-smith/go-bip39 v1.1.0 + github.com/urfave/cli/v2 v2.27.2 github.com/viant/toolbox v0.24.0 go.opentelemetry.io/otel v1.27.0 go.opentelemetry.io/otel/metric v1.27.0 @@ -67,6 +68,7 @@ require ( google.golang.org/api v0.183.0 google.golang.org/protobuf v1.34.1 gopkg.in/yaml.v2 v2.4.0 + gopkg.in/yaml.v3 v3.0.1 gorm.io/driver/mysql v1.5.6 gorm.io/driver/sqlite v1.5.6 gorm.io/gorm v1.25.10 @@ -248,7 +250,6 @@ require ( github.com/uptrace/opentelemetry-go-extra/otelsql v0.3.1 // indirect github.com/uptrace/opentelemetry-go-extra/otelutil v0.3.1 // indirect github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.1 // indirect - github.com/urfave/cli/v2 v2.27.2 // indirect github.com/valyala/fastjson v1.6.4 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect @@ -284,7 +285,6 @@ require ( google.golang.org/grpc v1.64.0 // indirect gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect k8s.io/klog/v2 v2.120.1 // indirect k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect rsc.io/tmplfunc v0.0.3 // indirect diff --git a/ethergo/listener/suite_test.go b/ethergo/listener/suite_test.go index de38f6594e..2245941e11 100644 --- a/ethergo/listener/suite_test.go +++ b/ethergo/listener/suite_test.go @@ -6,8 +6,8 @@ import ( "github.com/brianvoe/gofakeit/v6" "github.com/ipfs/go-log" common_base "github.com/synapsecns/sanguine/core/dbcommon" - "github.com/synapsecns/sanguine/ethergo/example" - "github.com/synapsecns/sanguine/ethergo/example/counter" + "github.com/synapsecns/sanguine/ethergo/examples/contracttests" + "github.com/synapsecns/sanguine/ethergo/examples/contracttests/counter" "github.com/synapsecns/sanguine/ethergo/listener" db2 "github.com/synapsecns/sanguine/ethergo/listener/db" "gorm.io/gorm" @@ -31,7 +31,7 @@ const chainID = 10 type ListenerTestSuite struct { *testsuite.TestSuite - manager *example.DeployManager + manager *contracttests.DeployManager backend backends.SimulatedTestBackend store db2.ChainListenerDB metrics metrics.Handler @@ -53,7 +53,7 @@ func TestListenerSuite(t *testing.T) { func (l *ListenerTestSuite) SetupTest() { l.TestSuite.SetupTest() - l.manager = example.NewDeployManager(l.T()) + l.manager = contracttests.NewDeployManager(l.T()) l.backend = geth.NewEmbeddedBackendForChainID(l.GetTestContext(), l.T(), big.NewInt(chainID)) var err error l.metrics = metrics.NewNullHandler() diff --git a/ethergo/signer/config/signer.go b/ethergo/signer/config/signer.go index 436bd2f147..525db76b47 100644 --- a/ethergo/signer/config/signer.go +++ b/ethergo/signer/config/signer.go @@ -17,6 +17,7 @@ import ( "gopkg.in/yaml.v2" "os" "path/filepath" + "slices" "strings" ) @@ -32,15 +33,19 @@ type SignerConfig struct { // IsValid determines if the config is valid. func (s SignerConfig) IsValid(_ context.Context) (ok bool, err error) { - if !strings.EqualFold(s.Type, FileType.String()) { + if !slices.ContainsFunc(AllSignerTypes, func(signerType SignerType) bool { + return strings.EqualFold(signerType.String(), s.Type) + }) { return false, fmt.Errorf("%w: %s. must be one of: %s", ErrUnsupportedSignerType, s.Type, allSignerTypesList()) } - // TODO: we'll need to switch validity here based on type once we have more then one supported configuration type - // alternatively, we could try to use an awsconfig type file, but this makes the virtual box setup more tedious. A third option is a json blob - _, err = wallet.FromKeyFile(s.File) - if err != nil { - return false, fmt.Errorf("file %s invalid: %w", s.File, err) + if strings.EqualFold(s.Type, FileType.String()) { + // TODO: we'll need to switch validity here based on type once we have more then one supported configuration type + // alternatively, we could try to use an awsconfig type file, but this makes the virtual box setup more tedious. A third option is a json blob + _, err = wallet.FromKeyFile(s.File) + if err != nil { + return false, fmt.Errorf("file %s invalid: %w", s.File, err) + } } return true, nil @@ -63,6 +68,11 @@ const ( GCPType // GCP ) +// lString returns the lowercase string of the signer type. +func (s SignerType) lString() string { + return strings.ToLower(s.String()) +} + // AllSignerTypes is a list of all contract types. Since we use stringer and this is a testing library, instead // of manually copying all these out we pull the names out of stringer. In order to make sure stringer is updated, we panic on // any method called where the index is higher than the stringer array length. @@ -90,8 +100,8 @@ func allSignerTypesList() string { // TODO: this needs to be moved to some kind of common package. // in the old code configs were split into responsible packages. Maybe something like that works here? func SignerFromConfig(ctx context.Context, config SignerConfig) (signer.Signer, error) { - switch config.Type { - case FileType.String(): + switch strings.ToLower(config.Type) { + case FileType.lString(): wall, err := wallet.FromKeyFile(core.ExpandOrReturnPath(config.File)) if err != nil { return nil, fmt.Errorf("could not add signer: %w", err) @@ -100,7 +110,7 @@ func SignerFromConfig(ctx context.Context, config SignerConfig) (signer.Signer, res := localsigner.NewSigner(wall.PrivateKey()) return res, nil - case AWSType.String(): + case AWSType.lString(): awsConfig, err := DecodeAWSConfig(config.File) if err != nil { return nil, fmt.Errorf("could not decode aws config: %w", err) @@ -110,7 +120,7 @@ func SignerFromConfig(ctx context.Context, config SignerConfig) (signer.Signer, return nil, fmt.Errorf("could not decode aws config: %w", err) } return res, nil - case GCPType.String(): + case GCPType.lString(): gcpConfig, err := DecodeGCPConfig(config.File) if err != nil { return nil, fmt.Errorf("could not decode gcp config: %w", err) diff --git a/ethergo/submitter/submitter_test.go b/ethergo/submitter/submitter_test.go index 2c19b33347..7ea7512de6 100644 --- a/ethergo/submitter/submitter_test.go +++ b/ethergo/submitter/submitter_test.go @@ -2,6 +2,8 @@ package submitter_test import ( "fmt" + "github.com/synapsecns/sanguine/ethergo/examples/contracttests" + "github.com/synapsecns/sanguine/ethergo/examples/contracttests/counter" "math/big" "github.com/ethereum/go-ethereum/accounts/abi/bind" @@ -10,8 +12,6 @@ import ( "github.com/stretchr/testify/mock" "github.com/synapsecns/sanguine/core/testsuite" clientMocks "github.com/synapsecns/sanguine/ethergo/client/mocks" - "github.com/synapsecns/sanguine/ethergo/example" - "github.com/synapsecns/sanguine/ethergo/example/counter" "github.com/synapsecns/sanguine/ethergo/manager" ethMocks "github.com/synapsecns/sanguine/ethergo/mocks" "github.com/synapsecns/sanguine/ethergo/signer/signer/localsigner" @@ -270,7 +270,7 @@ func (s *SubmitterSuite) TestGetNonce() { func (s *SubmitterSuite) TestSubmitTransaction() { _, cntr := manager.GetContract[*counter.CounterRef](s.GetTestContext(), s.T(), - s.deployer, s.testBackends[0], example.CounterType) + s.deployer, s.testBackends[0], contracttests.CounterType) cfg := &config.Config{} chainID := s.testBackends[0].GetBigChainID() diff --git a/ethergo/submitter/suite_test.go b/ethergo/submitter/suite_test.go index d49f25ba8a..b590353428 100644 --- a/ethergo/submitter/suite_test.go +++ b/ethergo/submitter/suite_test.go @@ -4,6 +4,7 @@ import ( "context" "database/sql" "fmt" + "github.com/synapsecns/sanguine/ethergo/examples/contracttests" "math/big" "os" "sync" @@ -24,7 +25,6 @@ import ( "github.com/synapsecns/sanguine/ethergo/backends/anvil" "github.com/synapsecns/sanguine/ethergo/backends/simulated" "github.com/synapsecns/sanguine/ethergo/client" - "github.com/synapsecns/sanguine/ethergo/example" "github.com/synapsecns/sanguine/ethergo/manager" "github.com/synapsecns/sanguine/ethergo/mocks" "github.com/synapsecns/sanguine/ethergo/signer/nonce" @@ -80,7 +80,7 @@ func (s *SubmitterSuite) SetupSuite() { testChainIDs := []uint64{1, 3, 4} s.testBackends = make([]backends.SimulatedTestBackend, len(testChainIDs)) - s.deployer = manager.NewDeployerManager(s.T(), example.NewCounterDeployer) + s.deployer = manager.NewDeployerManager(s.T(), contracttests.NewCounterDeployer) var wg sync.WaitGroup // wait for all the backends to be created, add 1 to the wait group for the metrics @@ -115,7 +115,7 @@ func (s *SubmitterSuite) SetupSuite() { options.SetProcessLogOptions(processlog.WithLogFileName(fmt.Sprintf("chain-%d.log", chainID)), processlog.WithLogDir(logDir)) s.testBackends[index] = anvil.NewAnvilBackend(s.GetSuiteContext(), s.T(), options) - s.deployer.Get(s.GetSuiteContext(), s.testBackends[index], example.CounterType) + s.deployer.Get(s.GetSuiteContext(), s.testBackends[index], contracttests.CounterType) }(i, chainID) } wg.Wait() From 824e44ce753b4c8318d91f662cfde6416776bb82 Mon Sep 17 00:00:00 2001 From: trajan0x <83933037+trajan0x@users.noreply.github.com> Date: Wed, 26 Jun 2024 15:14:33 -0400 Subject: [PATCH 47/85] fix ethergo goreleaser config (#2796) Co-authored-by: Trajan0x --- ethergo/.goreleaser.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ethergo/.goreleaser.yml b/ethergo/.goreleaser.yml index 984e592e77..489efea5e1 100644 --- a/ethergo/.goreleaser.yml +++ b/ethergo/.goreleaser.yml @@ -7,7 +7,7 @@ monorepo: builds: # Linux AMD64 - id: signer-example - binary: api + binary: signer-example ldflags: # We need to build a static binary because we are building in a glibc based system and running in a musl container - -s -w -extldflags '-static' From 3804042182b131afaa2d397de296a866c86262a8 Mon Sep 17 00:00:00 2001 From: trajan0x <83933037+trajan0x@users.noreply.github.com> Date: Wed, 26 Jun 2024 15:35:51 -0400 Subject: [PATCH 48/85] codeclimate fixes (#2797) Co-authored-by: Trajan0x --- .codeclimate.yml | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/.codeclimate.yml b/.codeclimate.yml index 38f59424fb..23c51fbdfe 100644 --- a/.codeclimate.yml +++ b/.codeclimate.yml @@ -13,13 +13,12 @@ plugins: enabled: true exclude_patterns: - - '.*\\.abigen\\.go$' - - '*/*.abigen.go' - - '*.gen.go' #gql gen - - '.*\\.metadata\\.go$' - - '.*\\.pb\\.go$' - - '.*_gen.go$' - - '.*_generated.go$' + - '**/*.abigen.go' + - '**/*.gen.go' #gql gen + - '**/*.metadata.go' + - '**/*.pb.go' + - '**/*_gen.go' + - '**/.*_generated.go' - '**/grpc/client/rest/*' - '**/bundle/*' - '**/generated/*' From 317202e9c34627c9a3fdd69a804fdefaeed290cb Mon Sep 17 00:00:00 2001 From: trajan0x <83933037+trajan0x@users.noreply.github.com> Date: Wed, 26 Jun 2024 21:48:40 -0400 Subject: [PATCH 49/85] document additional service (#2799) * document scribe * deploy fix --------- Co-authored-by: Trajan0x --- docs/bridge/docs/Services/Scribe.md | 120 ++++++++++++++++++++++++++++ docs/bridge/docusaurus.config.ts | 8 +- 2 files changed, 121 insertions(+), 7 deletions(-) create mode 100644 docs/bridge/docs/Services/Scribe.md diff --git a/docs/bridge/docs/Services/Scribe.md b/docs/bridge/docs/Services/Scribe.md new file mode 100644 index 0000000000..0b58a1edab --- /dev/null +++ b/docs/bridge/docs/Services/Scribe.md @@ -0,0 +1,120 @@ +--- +sidebar_position: 0 +sidebar_label: Scribe +--- + +# Scribe + +Scribe is a multi-chain indexing service designed to store logs, receipts, and transactions for every event from specified contracts across multiple blockchains. It provides a powerful tool for analytics, event streaming, and monitoring on-chain activities. + +## Key Features + +1. **Multi-Chain Support**: Currently indexes over 900 contracts across 18 different chains. +2. **Flexible Indexing**: Supports indexing any number of contracts on any chain. +3. **Real-Time and Historical Data**: Indexes from a specified start block up to real-time events. +4. **Reorg Protection**: Stores "unconfirmed" events near the chain tip in separate tables. +5. **GraphQL API**: Provides a GraphQL/IQL endpoint for easy data querying. + +## Architecture + +Scribe consists of two main components: + +1. **Scribe Indexer**: Responsible for fetching and storing blockchain data. +2. **Scribe Server**: Provides a GraphQL API for querying indexed data. + +The indexer architecture consists of three main components: + +1. **Fetcher**: Retrieves logs for specified contracts and block ranges. +2. **Indexer**: Stores logs, receipts, and transactions for events for a given contract. +3. **ChainIndexer**: Manages multiple indexers per chain for different indexing stages (backfill, livefill, unconfirmed livefill). + +## Running Scribe + +### Building From Source + +To build Scribe from source, you will need to have Go installed. You can install Go by following the instructions [here](https://golang.org/doc/install). Once you have Go installed, you can build Scribe by running the following commands: + +1. `git clone https://github.com/synapsecns/sanguine --recursive` +2. `cd sanguine/services/scribe` +3. `go build` + + +There is also a [docker image](https://github.com/synapsecns/sanguine/pkgs/container/sanguine%2Fscribe) available for scribe. + +### Running the Components + +To start the Scribe indexer: + +```bash +./scribe --config --db --path +``` + +To start the Scribe server: + +```bash +./server --port --db --path +``` + +### Deployment + +Scribe can be deployed using Helm charts. You can see the scribe chart on [artifacthub](https://artifacthub.io/packages/helm/synapse/scribe) + +### Configuration + +Most deployments of scribe will run two components, the indexer and the server. The indexer is responsible for fetching and storing blockchain data, while the server provides a GraphQL API for querying indexed data. The configuration file for Scribe is a YAML file with the following structure: + +indexer.yaml: +
    + example config + ```yaml + + ``` +
    + +```yaml +chains: + - chain_id: 1 + get_logs_range: 500 + get_block_batch_amount: 1 + store_concurrency: 100 + concurrency_threshold: 50000 + livefill_threshold: 300 + livefill_range: 200 + livefill_flush_interval: 10000 + confirmations: 200 + contracts: + - address: 0xAf41a65F786339e7911F4acDAD6BD49426F2Dc6b + start_block: 18646320 +``` + +Key configuration parameters include: + +- `rpc_url`: The omnirpc url to use for querying chain data (no trailing slash). For more information on omnirpc, see [here](Services//Omnirpc.md). +- `chains`: List of chains to index, including chain-specific parameters: + - `chain_id`: The ID of the chain. + - `get_logs_range`: The number of blocks to request in a single `getLogs` request. + - `get_logs_batch_amount`: The number of `getLogs` requests to include in a batch request. + - `store_concurrency`: The number of goroutines to use when storing data. + - `concurrency_threshold`: The maximum number of blocks from the head in which concurrent operations (store, getLogs) are allowed. + - `livefill_threshold`: Number of blocks away from the head to start livefilling. + - `livefill_range`: Range in which the `getLogs` request for the livefill contracts will be requesting. + - `livefill_flush_interval`: The interval in which the unconfirmed livefill table will be flushed. + - `confirmations`: The number of blocks from the head that the livefiller will livefill up to (and where the unconfirmed livefill indexer will begin). + - `contracts`: List of contracts to index per chain, including: + - `address`: Address of the contract. + - `start_block`: Block to start indexing the contract from (block with the first transaction). + +## API + +Scribe provides a GraphQL API for querying indexed data. Some basic queries include: + +- `lastIndexed(chain_id, contract_address)` +- `logsRange(chain_id, contract_address, start_block, end_block, page)` +- `blockTime(chain_id, block_number)` +- `txSender(tx_hash, chain_id)` + +For a full list of available queries, refer to the GraphQL schema. + +## Observability + +Scribe implements open telemetry for both tracing and metrics. Please see the [Observability](../Observability) page for more info. diff --git a/docs/bridge/docusaurus.config.ts b/docs/bridge/docusaurus.config.ts index da123b7f81..63a90080b5 100644 --- a/docs/bridge/docusaurus.config.ts +++ b/docs/bridge/docusaurus.config.ts @@ -67,13 +67,7 @@ const config: Config = { }, items: [ { - type: 'docSidebar', - sidebarId: 'tutorialSidebar', - position: 'left', - label: 'Tutorial', - }, - { - href: 'https://github.com/facebook/docusaurus', + href: 'https://github.com/synapsecns/sanguine', label: 'GitHub', position: 'right', }, From 8bad5a94e08b624c33eb81dfd2460d57528efad7 Mon Sep 17 00:00:00 2001 From: trajan0x Date: Thu, 27 Jun 2024 01:52:52 +0000 Subject: [PATCH 50/85] Publish - @synapsecns/bridge-docs@0.1.3 --- docs/bridge/CHANGELOG.md | 8 ++++++++ docs/bridge/package.json | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/bridge/CHANGELOG.md b/docs/bridge/CHANGELOG.md index e68d44c7c2..da7129461f 100644 --- a/docs/bridge/CHANGELOG.md +++ b/docs/bridge/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.3](https://github.com/synapsecns/sanguine/compare/@synapsecns/bridge-docs@0.1.2...@synapsecns/bridge-docs@0.1.3) (2024-06-27) + +**Note:** Version bump only for package @synapsecns/bridge-docs + + + + + ## [0.1.2](https://github.com/synapsecns/sanguine/compare/@synapsecns/bridge-docs@0.1.1...@synapsecns/bridge-docs@0.1.2) (2024-06-26) **Note:** Version bump only for package @synapsecns/bridge-docs diff --git a/docs/bridge/package.json b/docs/bridge/package.json index f688bf4a1f..0f6a82d9fb 100644 --- a/docs/bridge/package.json +++ b/docs/bridge/package.json @@ -1,6 +1,6 @@ { "name": "@synapsecns/bridge-docs", - "version": "0.1.2", + "version": "0.1.3", "private": true, "scripts": { "docusaurus": "docusaurus", From b2f1dbd5451c588ef295e95d294fd56f32e0c7f8 Mon Sep 17 00:00:00 2001 From: trajan0x <83933037+trajan0x@users.noreply.github.com> Date: Wed, 26 Jun 2024 23:06:37 -0400 Subject: [PATCH 51/85] format string literals in signer docs (#2800) * clarify region must match key region * format string literals --------- Co-authored-by: Trajan0x --- docs/bridge/docs/Services/Signer.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/bridge/docs/Services/Signer.md b/docs/bridge/docs/Services/Signer.md index 7dc96a934b..44d6778004 100644 --- a/docs/bridge/docs/Services/Signer.md +++ b/docs/bridge/docs/Services/Signer.md @@ -106,10 +106,10 @@ signer_config: `aws.yaml`: ```yaml -region: us-east-1 -access_key: YOUR_ACCESS_KEY -access_secret: YOUR_ACCESS_SECRET -key_id: f15fa759-7c13-44eb-a868-e7388aa1387b # this will be the id from above. +region: "us-east-1" # should match the region of your key! +access_key: "YOUR_ACCESS_KEY" +access_secret: "YOUR_ACCESS_SECRET" +key_id: "f15fa759-7c13-44eb-a868-e7388aa1387b" # this will be the id from above. ``` This is obviously used in multiple services, so we've put together an example service that will print out the address of your key. From bbe8dc320aa471c255633d0df4e942781cc968dd Mon Sep 17 00:00:00 2001 From: trajan0x Date: Thu, 27 Jun 2024 03:10:49 +0000 Subject: [PATCH 52/85] Publish - @synapsecns/bridge-docs@0.1.4 --- docs/bridge/CHANGELOG.md | 8 ++++++++ docs/bridge/package.json | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/bridge/CHANGELOG.md b/docs/bridge/CHANGELOG.md index da7129461f..ca7db92ffe 100644 --- a/docs/bridge/CHANGELOG.md +++ b/docs/bridge/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.4](https://github.com/synapsecns/sanguine/compare/@synapsecns/bridge-docs@0.1.3...@synapsecns/bridge-docs@0.1.4) (2024-06-27) + +**Note:** Version bump only for package @synapsecns/bridge-docs + + + + + ## [0.1.3](https://github.com/synapsecns/sanguine/compare/@synapsecns/bridge-docs@0.1.2...@synapsecns/bridge-docs@0.1.3) (2024-06-27) **Note:** Version bump only for package @synapsecns/bridge-docs diff --git a/docs/bridge/package.json b/docs/bridge/package.json index 0f6a82d9fb..52f0e24202 100644 --- a/docs/bridge/package.json +++ b/docs/bridge/package.json @@ -1,6 +1,6 @@ { "name": "@synapsecns/bridge-docs", - "version": "0.1.3", + "version": "0.1.4", "private": true, "scripts": { "docusaurus": "docusaurus", From 8d04213d6418a67ebbadd4da45f2d1a599f85c80 Mon Sep 17 00:00:00 2001 From: vro <168573323+golangisfun123@users.noreply.github.com> Date: Thu, 27 Jun 2024 10:14:43 -0500 Subject: [PATCH 53/85] Fix message construction (#2802) Co-authored-by: Trajan0x --- .github/labeler.yml | 23 +++++++++ .vscode/settings.json | 2 +- contrib/screener-api/client/client.go | 19 ++++---- contrib/screener-api/docs/docs.go | 3 -- contrib/screener-api/docs/swagger.json | 3 -- contrib/screener-api/docs/swagger.yaml | 2 - contrib/screener-api/screener/screener.go | 27 +++++++++-- core/bytes.go | 19 ++++++++ core/bytes_test.go | 59 +++++++++++++++++++++++ 9 files changed, 134 insertions(+), 23 deletions(-) diff --git a/.github/labeler.yml b/.github/labeler.yml index cc75a715c0..df8d1b7670 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -10,6 +10,9 @@ M-make: M-docker: - any: ['docker/**/*'] +M-docs: + - any: ['docs/**/*'] + M-integration: - any: ['integration-tests/**/*'] @@ -31,5 +34,25 @@ M-charts: C-Protocol-Critical: - 'packages/contracts-core/**/*.sol' +M-vscode-settings: + - any: ['.vscode/**/*'] + + +M-deps: + - 'package.json' + - 'yarn.lock' + - 'go.mod' + - 'go.sum' + - 'go.work' + - 'go.work.sum' + +Sol: + - '**/*.ts' + +Typescript: + - '**/*.ts' + +Javascript: + - '**/*.js' Go: - '**/*.go' diff --git a/.vscode/settings.json b/.vscode/settings.json index 27a875e01a..19bbfe56d3 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -22,4 +22,4 @@ "solidity.compileUsingRemoteVersion": "v0.8.17+commit.8df45f5f", "solidity.formatter": "prettier", "solidity.defaultCompiler": "remote" -} \ No newline at end of file +} diff --git a/contrib/screener-api/client/client.go b/contrib/screener-api/client/client.go index 3381e2dff1..387ab86b05 100644 --- a/contrib/screener-api/client/client.go +++ b/contrib/screener-api/client/client.go @@ -14,6 +14,7 @@ import ( "github.com/dubonzi/otelresty" "github.com/go-resty/resty/v2" "github.com/google/uuid" + "github.com/synapsecns/sanguine/core" "github.com/synapsecns/sanguine/core/ginhelper" "github.com/synapsecns/sanguine/core/metrics" ) @@ -78,15 +79,19 @@ func (c clientImpl) BlacklistAddress(ctx context.Context, appsecret string, appi nonce := strings.ReplaceAll(uuid.New().String(), "-", "")[:32] timestamp := fmt.Sprintf("%d", time.Now().Unix()) - queryString := "" bodyBz, err := json.Marshal(body) if err != nil { return "", fmt.Errorf("error marshaling body: %w", err) } - message := fmt.Sprintf("%s%s%s%s%s%s%s", - appid, timestamp, nonce, "POST", "/api/data/sync", queryString, string(bodyBz)) + bodyStr, err := core.BytesToJSONString(bodyBz) + if err != nil { + return "", fmt.Errorf("could not convert bytes to json: %w", err) + } + + message := fmt.Sprintf("%s;%s;%s;%s;%s;%s", + appid, timestamp, nonce, "POST", "/api/data/sync", bodyStr) signature := GenerateSignature(appsecret, message) @@ -133,12 +138,8 @@ type blacklistResponse struct { } // GenerateSignature generates a signature for the request. -func GenerateSignature( - secret, - message string, -) string { - key := []byte(secret) - h := hmac.New(sha256.New, key) +func GenerateSignature(secret, message string) string { + h := hmac.New(sha256.New, []byte(secret)) h.Write([]byte(message)) return hex.EncodeToString(h.Sum(nil)) } diff --git a/contrib/screener-api/docs/docs.go b/contrib/screener-api/docs/docs.go index d2a2278d92..90d9f50b83 100644 --- a/contrib/screener-api/docs/docs.go +++ b/contrib/screener-api/docs/docs.go @@ -112,9 +112,6 @@ const docTemplate = `{ "createdAt": { "type": "string" }, - "data": { - "type": "string" - }, "id": { "type": "string" }, diff --git a/contrib/screener-api/docs/swagger.json b/contrib/screener-api/docs/swagger.json index 3747345ed8..d326b66e63 100644 --- a/contrib/screener-api/docs/swagger.json +++ b/contrib/screener-api/docs/swagger.json @@ -101,9 +101,6 @@ "createdAt": { "type": "string" }, - "data": { - "type": "string" - }, "id": { "type": "string" }, diff --git a/contrib/screener-api/docs/swagger.yaml b/contrib/screener-api/docs/swagger.yaml index 808f7aabbf..fb0c080460 100644 --- a/contrib/screener-api/docs/swagger.yaml +++ b/contrib/screener-api/docs/swagger.yaml @@ -5,8 +5,6 @@ definitions: type: string createdAt: type: string - data: - type: string id: type: string network: diff --git a/contrib/screener-api/screener/screener.go b/contrib/screener-api/screener/screener.go index 69607380de..55e06614a6 100644 --- a/contrib/screener-api/screener/screener.go +++ b/contrib/screener-api/screener/screener.go @@ -350,17 +350,34 @@ func (s *screenerImpl) authMiddleware(cfg config.Config) gin.HandlerFunc { signature := c.Request.Header.Get("X-Signature-signature") queryString := c.Request.URL.RawQuery - bodyBytes, err := io.ReadAll(c.Request.Body) + bodyBz, err := io.ReadAll(c.Request.Body) if err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": "could not read request body"}) c.Abort() return } - c.Request.Body = io.NopCloser(bytes.NewBuffer(bodyBytes)) - bodyStr := string(bodyBytes) + // Put it back so we can read it again for DB operations. + c.Request.Body = io.NopCloser(bytes.NewBuffer(bodyBz)) - message := fmt.Sprintf("%s%s%s%s%s%s%s", - appID, timestamp, nonce, "POST", "/api/data/sync", queryString, bodyStr) + bodyStr, err := core.BytesToJSONString(bodyBz) + if err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": "could not convert bytes to json"}) + c.Abort() + return + } + + var message string + if len(queryString) > 0 { + message = fmt.Sprintf( + "%s;%s;%s;%s;%s;%s;%s", + appID, timestamp, nonce, "POST", "/api/data/sync", queryString, bodyStr, + ) + } else { + message = fmt.Sprintf( + "%s;%s;%s;%s;%s;%s", + appID, timestamp, nonce, "POST", "/api/data/sync", bodyStr, + ) + } expectedSignature := client.GenerateSignature(cfg.AppSecret, message) diff --git a/core/bytes.go b/core/bytes.go index a482da1a1d..ee25375e62 100644 --- a/core/bytes.go +++ b/core/bytes.go @@ -1,8 +1,27 @@ package core +import ( + "encoding/json" + "fmt" +) + // BytesToSlice converts a 32 bit array to a slice slice. func BytesToSlice(bytes [32]byte) []byte { rawBytes := make([]byte, len(bytes)) copy(rawBytes, bytes[:]) return rawBytes } + +// BytesToJSONString converts a 32 bit array to a JSON string without escapes, newlines, etc. +func BytesToJSONString(bz []byte) (string, error) { + var jsonData map[string]interface{} + if err := json.Unmarshal(bz, &jsonData); err != nil { + return "", fmt.Errorf("failed to unmarshal JSON: %w", err) + } + formattedJSON, err := json.Marshal(jsonData) + if err != nil { + return "", fmt.Errorf("failed to marshal JSON: %w", err) + } + + return string(formattedJSON), nil +} diff --git a/core/bytes_test.go b/core/bytes_test.go index 691fd441cf..eacae15564 100644 --- a/core/bytes_test.go +++ b/core/bytes_test.go @@ -3,6 +3,7 @@ package core_test import ( "github.com/synapsecns/sanguine/core" "reflect" + "strings" "testing" ) @@ -33,3 +34,61 @@ func TestBytesToSlice(t *testing.T) { }) } } + +func TestBytesToJSONString(t *testing.T) { + tests := []struct { + name string + input []byte + want string + wantErr bool + errString string + }{ + { + name: "Valid JSON", + input: []byte(`{"key1":"value1","key2":2}`), + want: `{"key1":"value1","key2":2}`, + wantErr: false, + }, + { + name: "Invalid JSON", + input: []byte(`{"key1":"value1",`), + want: "", + wantErr: true, + errString: "failed to unmarshal JSON", + }, + { + name: "Empty JSON", + input: []byte(`{}`), + want: `{}`, + wantErr: false, + }, + { + name: "Nested JSON", + input: []byte(`{"key1":{"nestedKey1":"nestedValue1"},"key2":[1,2,3]}`), + want: `{"key1":{"nestedKey1":"nestedValue1"},"key2":[1,2,3]}`, + wantErr: false, + }, + { + name: "JSON with special characters", + input: []byte(`{"key1":"value1\nvalue2","key2":"value3\tvalue4"}`), + want: `{"key1":"value1\nvalue2","key2":"value3\tvalue4"}`, + wantErr: false, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got, err := core.BytesToJSONString(tt.input) + if (err != nil) != tt.wantErr { + t.Errorf("BytesToJSONString() error = %v, wantErr %v", err, tt.wantErr) + return + } + if err != nil && tt.wantErr && tt.errString != "" && !strings.Contains(err.Error(), tt.errString) { + t.Errorf("BytesToJSONString() error = %v, expected error to contain %v", err, tt.errString) + } + if got != tt.want { + t.Errorf("BytesToJSONString() = %v, want %v", got, tt.want) + } + }) + } +} From 1f4a910141ff4393030c26fde5592a513e882b6a Mon Sep 17 00:00:00 2001 From: abtestingalpha <104046418+abtestingalpha@users.noreply.github.com> Date: Thu, 27 Jun 2024 12:36:35 -0400 Subject: [PATCH 54/85] feat(widget): Adds scroll (#2805) * Adds Scroll via RFQ * Adds NewTag * Adds RFQ logic into the generateMaps script * Adds announcement banner * Linting * Adjusts order * API call for quotes * Adds Scroll to Widget * Updates bridge map * removes old --- packages/widget/src/constants/bridgeMap.ts | 168 +++++++++++++++----- packages/widget/src/constants/bridgeable.ts | 4 + packages/widget/src/constants/chains.ts | 15 ++ 3 files changed, 143 insertions(+), 44 deletions(-) diff --git a/packages/widget/src/constants/bridgeMap.ts b/packages/widget/src/constants/bridgeMap.ts index 2f002e5c53..8d6d3be23b 100644 --- a/packages/widget/src/constants/bridgeMap.ts +++ b/packages/widget/src/constants/bridgeMap.ts @@ -31,7 +31,15 @@ export const BRIDGE_MAP = { '0x1B84765dE8B7566e4cEAF4D0fD3c5aF52D3DdE4F': { decimals: 18, symbol: 'nUSD', - origin: ['CCTP.USDC', 'DAI', 'USDC', 'USDT', 'nUSD', 'synFRAX'], + origin: [ + 'CCTP.USDC', + 'DAI', + 'RFQ.USDC', + 'USDC', + 'USDT', + 'nUSD', + 'synFRAX', + ], destination: ['CCTP.USDC', 'nUSD'], swappable: [ '0x5f98805A4E8be255a32880FDeC7F6728C6568bA0', @@ -60,7 +68,15 @@ export const BRIDGE_MAP = { '0x5f98805A4E8be255a32880FDeC7F6728C6568bA0': { decimals: 18, symbol: 'LUSD', - origin: ['CCTP.USDC', 'DAI', 'USDC', 'USDT', 'nUSD', 'synFRAX'], + origin: [ + 'CCTP.USDC', + 'DAI', + 'RFQ.USDC', + 'USDC', + 'USDT', + 'nUSD', + 'synFRAX', + ], destination: ['CCTP.USDC'], swappable: [ '0x1B84765dE8B7566e4cEAF4D0fD3c5aF52D3DdE4F', @@ -82,7 +98,15 @@ export const BRIDGE_MAP = { '0x6B175474E89094C44Da98b954EedeAC495271d0F': { decimals: 18, symbol: 'DAI', - origin: ['CCTP.USDC', 'DAI', 'USDC', 'USDT', 'nUSD', 'synFRAX'], + origin: [ + 'CCTP.USDC', + 'DAI', + 'RFQ.USDC', + 'USDC', + 'USDT', + 'nUSD', + 'synFRAX', + ], destination: ['CCTP.USDC', 'DAI', 'nUSD'], swappable: [ '0x1B84765dE8B7566e4cEAF4D0fD3c5aF52D3DdE4F', @@ -97,7 +121,15 @@ export const BRIDGE_MAP = { '0x6c3ea9036406852006290770BEdFcAbA0e23A0e8': { decimals: 6, symbol: 'PYUSD', - origin: ['CCTP.USDC', 'DAI', 'USDC', 'USDT', 'nUSD', 'synFRAX'], + origin: [ + 'CCTP.USDC', + 'DAI', + 'RFQ.USDC', + 'USDC', + 'USDT', + 'nUSD', + 'synFRAX', + ], destination: ['CCTP.USDC'], swappable: [ '0x1B84765dE8B7566e4cEAF4D0fD3c5aF52D3DdE4F', @@ -126,7 +158,15 @@ export const BRIDGE_MAP = { '0x853d955aCEf822Db058eb8505911ED77F175b99e': { decimals: 18, symbol: 'FRAX', - origin: ['CCTP.USDC', 'DAI', 'USDC', 'USDT', 'nUSD', 'synFRAX'], + origin: [ + 'CCTP.USDC', + 'DAI', + 'RFQ.USDC', + 'USDC', + 'USDT', + 'nUSD', + 'synFRAX', + ], destination: ['CCTP.USDC', 'synFRAX'], swappable: [ '0x1B84765dE8B7566e4cEAF4D0fD3c5aF52D3DdE4F', @@ -148,8 +188,16 @@ export const BRIDGE_MAP = { '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48': { decimals: 6, symbol: 'USDC', - origin: ['CCTP.USDC', 'DAI', 'USDC', 'USDT', 'nUSD', 'synFRAX'], - destination: ['CCTP.USDC', 'USDC', 'nUSD'], + origin: [ + 'CCTP.USDC', + 'DAI', + 'RFQ.USDC', + 'USDC', + 'USDT', + 'nUSD', + 'synFRAX', + ], + destination: ['CCTP.USDC', 'USDC', 'nUSD', 'RFQ.USDC'], swappable: [ '0x1B84765dE8B7566e4cEAF4D0fD3c5aF52D3DdE4F', '0x5f98805A4E8be255a32880FDeC7F6728C6568bA0', @@ -184,15 +232,15 @@ export const BRIDGE_MAP = { '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2': { decimals: 18, symbol: 'WETH', - origin: ['nETH'], + origin: ['RFQ.ETH', 'nETH'], destination: ['nETH'], swappable: [], }, '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE': { decimals: 18, symbol: 'ETH', - origin: ['nETH'], - destination: ['nETH'], + origin: ['RFQ.ETH', 'nETH'], + destination: ['nETH', 'RFQ.ETH'], swappable: [], }, '0xb753428af26E81097e7fD17f40c88aaA3E04902c': { @@ -205,7 +253,15 @@ export const BRIDGE_MAP = { '0xdAC17F958D2ee523a2206206994597C13D831ec7': { decimals: 6, symbol: 'USDT', - origin: ['CCTP.USDC', 'DAI', 'USDC', 'USDT', 'nUSD', 'synFRAX'], + origin: [ + 'CCTP.USDC', + 'DAI', + 'RFQ.USDC', + 'USDC', + 'USDT', + 'nUSD', + 'synFRAX', + ], destination: ['CCTP.USDC', 'USDT', 'nUSD'], swappable: [ '0x1B84765dE8B7566e4cEAF4D0fD3c5aF52D3DdE4F', @@ -227,7 +283,15 @@ export const BRIDGE_MAP = { '0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E': { decimals: 18, symbol: 'crvUSD', - origin: ['CCTP.USDC', 'DAI', 'USDC', 'USDT', 'nUSD', 'synFRAX'], + origin: [ + 'CCTP.USDC', + 'DAI', + 'RFQ.USDC', + 'USDC', + 'USDT', + 'nUSD', + 'synFRAX', + ], destination: ['CCTP.USDC'], swappable: [ '0x1B84765dE8B7566e4cEAF4D0fD3c5aF52D3DdE4F', @@ -244,8 +308,8 @@ export const BRIDGE_MAP = { '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85': { decimals: 6, symbol: 'USDC', - origin: ['CCTP.USDC', 'nUSD'], - destination: ['CCTP.USDC'], + origin: ['CCTP.USDC', 'RFQ.USDC', 'nUSD'], + destination: ['CCTP.USDC', 'RFQ.USDC'], swappable: [ '0x67C10C397dD0Ba417329543c1a40eb48AAa7cd00', '0x7F5c764cBc14f9669B88837ca1490cCa17c31607', @@ -264,7 +328,7 @@ export const BRIDGE_MAP = { '0x121ab82b49B2BC4c7901CA46B8277962b4350204': { decimals: 18, symbol: 'WETH', - origin: ['nETH'], + origin: ['RFQ.ETH', 'nETH'], destination: ['nETH'], swappable: [ '0x809DC529f07651bD43A172e8dB6f4a7a0d771036', @@ -288,7 +352,7 @@ export const BRIDGE_MAP = { '0x67C10C397dD0Ba417329543c1a40eb48AAa7cd00': { decimals: 18, symbol: 'nUSD', - origin: ['CCTP.USDC', 'nUSD'], + origin: ['CCTP.USDC', 'RFQ.USDC', 'nUSD'], destination: ['CCTP.USDC', 'nUSD'], swappable: [ '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85', @@ -301,7 +365,7 @@ export const BRIDGE_MAP = { '0x7F5c764cBc14f9669B88837ca1490cCa17c31607': { decimals: 6, symbol: 'USDC.e', - origin: ['CCTP.USDC', 'nUSD'], + origin: ['CCTP.USDC', 'RFQ.USDC', 'nUSD'], destination: ['CCTP.USDC', 'nUSD'], swappable: [ '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85', @@ -314,7 +378,7 @@ export const BRIDGE_MAP = { '0x809DC529f07651bD43A172e8dB6f4a7a0d771036': { decimals: 18, symbol: 'nETH', - origin: ['nETH'], + origin: ['RFQ.ETH', 'nETH'], destination: ['nETH'], swappable: [ '0x121ab82b49B2BC4c7901CA46B8277962b4350204', @@ -324,7 +388,7 @@ export const BRIDGE_MAP = { '0x8c6f28f2F1A3C87F0f938b96d27520d9751ec8d9': { decimals: 18, symbol: 'sUSD', - origin: ['CCTP.USDC', 'nUSD'], + origin: ['CCTP.USDC', 'RFQ.USDC', 'nUSD'], destination: ['CCTP.USDC'], swappable: [ '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85', @@ -337,7 +401,7 @@ export const BRIDGE_MAP = { '0x94b008aA00579c1307B0EF2c499aD98a8ce58e58': { decimals: 6, symbol: 'USDT', - origin: ['CCTP.USDC', 'nUSD'], + origin: ['CCTP.USDC', 'RFQ.USDC', 'nUSD'], destination: ['CCTP.USDC'], swappable: [ '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85', @@ -357,7 +421,7 @@ export const BRIDGE_MAP = { '0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1': { decimals: 18, symbol: 'DAI', - origin: ['CCTP.USDC', 'nUSD'], + origin: ['CCTP.USDC', 'RFQ.USDC', 'nUSD'], destination: ['CCTP.USDC'], swappable: [ '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85', @@ -377,8 +441,8 @@ export const BRIDGE_MAP = { '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE': { decimals: 18, symbol: 'ETH', - origin: ['nETH'], - destination: ['nETH'], + origin: ['RFQ.ETH', 'nETH'], + destination: ['nETH', 'RFQ.ETH'], swappable: [ '0x121ab82b49B2BC4c7901CA46B8277962b4350204', '0x809DC529f07651bD43A172e8dB6f4a7a0d771036', @@ -1183,7 +1247,7 @@ export const BRIDGE_MAP = { '0x417Ac0e078398C154EdFadD9Ef675d30Be60Af93': { decimals: 18, symbol: 'crvUSD', - origin: ['CCTP.USDC'], + origin: ['CCTP.USDC', 'RFQ.USDC'], destination: ['CCTP.USDC'], swappable: [ '0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb', @@ -1195,7 +1259,7 @@ export const BRIDGE_MAP = { '0x4200000000000000000000000000000000000006': { decimals: 18, symbol: 'WETH', - origin: ['nETH'], + origin: ['RFQ.ETH', 'nETH'], destination: ['nETH'], swappable: [ '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE', @@ -1212,7 +1276,7 @@ export const BRIDGE_MAP = { '0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb': { decimals: 18, symbol: 'DAI', - origin: ['CCTP.USDC'], + origin: ['CCTP.USDC', 'RFQ.USDC'], destination: ['CCTP.USDC'], swappable: [ '0x417Ac0e078398C154EdFadD9Ef675d30Be60Af93', @@ -1231,8 +1295,8 @@ export const BRIDGE_MAP = { '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913': { decimals: 6, symbol: 'USDC', - origin: ['CCTP.USDC'], - destination: ['CCTP.USDC'], + origin: ['CCTP.USDC', 'RFQ.USDC'], + destination: ['CCTP.USDC', 'RFQ.USDC'], swappable: [ '0x417Ac0e078398C154EdFadD9Ef675d30Be60Af93', '0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb', @@ -1250,7 +1314,7 @@ export const BRIDGE_MAP = { '0xEB466342C4d449BC9f53A865D5Cb90586f405215': { decimals: 6, symbol: 'axlUSDC', - origin: ['CCTP.USDC'], + origin: ['CCTP.USDC', 'RFQ.USDC'], destination: ['CCTP.USDC'], swappable: [ '0x417Ac0e078398C154EdFadD9Ef675d30Be60Af93', @@ -1262,8 +1326,8 @@ export const BRIDGE_MAP = { '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE': { decimals: 18, symbol: 'ETH', - origin: ['nETH'], - destination: ['nETH'], + origin: ['RFQ.ETH', 'nETH'], + destination: ['nETH', 'RFQ.ETH'], swappable: [ '0x4200000000000000000000000000000000000006', '0xb554A55358fF0382Fb21F0a478C3546d1106Be8c', @@ -1272,7 +1336,7 @@ export const BRIDGE_MAP = { '0xb554A55358fF0382Fb21F0a478C3546d1106Be8c': { decimals: 18, symbol: 'nETH', - origin: ['nETH'], + origin: ['RFQ.ETH', 'nETH'], destination: ['nETH'], swappable: [ '0x4200000000000000000000000000000000000006', @@ -1282,7 +1346,7 @@ export const BRIDGE_MAP = { '0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA': { decimals: 6, symbol: 'USDbC', - origin: ['CCTP.USDC'], + origin: ['CCTP.USDC', 'RFQ.USDC'], destination: ['CCTP.USDC'], swappable: [ '0x417Ac0e078398C154EdFadD9Ef675d30Be60Af93', @@ -1317,7 +1381,7 @@ export const BRIDGE_MAP = { '0x17FC002b466eEc40DaE837Fc4bE5c67993ddBd6F': { decimals: 18, symbol: 'FRAX', - origin: ['CCTP.USDC', 'nUSD'], + origin: ['CCTP.USDC', 'RFQ.USDC', 'nUSD'], destination: ['CCTP.USDC'], swappable: [ '0x2913E812Cf0dcCA30FB28E6Cac3d2DCFF4497688', @@ -1330,7 +1394,7 @@ export const BRIDGE_MAP = { '0x2913E812Cf0dcCA30FB28E6Cac3d2DCFF4497688': { decimals: 18, symbol: 'nUSD', - origin: ['CCTP.USDC', 'nUSD'], + origin: ['CCTP.USDC', 'RFQ.USDC', 'nUSD'], destination: ['CCTP.USDC', 'nUSD'], swappable: [ '0x17FC002b466eEc40DaE837Fc4bE5c67993ddBd6F', @@ -1350,7 +1414,7 @@ export const BRIDGE_MAP = { '0x3ea9B0ab55F34Fb188824Ee288CeaEfC63cf908e': { decimals: 18, symbol: 'nETH', - origin: ['nETH'], + origin: ['RFQ.ETH', 'nETH'], destination: ['nETH'], swappable: [ '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', @@ -1374,7 +1438,7 @@ export const BRIDGE_MAP = { '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1': { decimals: 18, symbol: 'WETH', - origin: ['nETH'], + origin: ['RFQ.ETH', 'nETH'], destination: ['nETH'], swappable: [ '0x3ea9B0ab55F34Fb188824Ee288CeaEfC63cf908e', @@ -1405,7 +1469,7 @@ export const BRIDGE_MAP = { '0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1': { decimals: 18, symbol: 'DAI', - origin: ['CCTP.USDC', 'nUSD'], + origin: ['CCTP.USDC', 'RFQ.USDC', 'nUSD'], destination: ['CCTP.USDC'], swappable: [ '0x17FC002b466eEc40DaE837Fc4bE5c67993ddBd6F', @@ -1418,8 +1482,8 @@ export const BRIDGE_MAP = { '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE': { decimals: 18, symbol: 'ETH', - origin: ['nETH'], - destination: ['nETH'], + origin: ['RFQ.ETH', 'nETH'], + destination: ['nETH', 'RFQ.ETH'], swappable: [ '0x3ea9B0ab55F34Fb188824Ee288CeaEfC63cf908e', '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', @@ -1428,7 +1492,7 @@ export const BRIDGE_MAP = { '0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8': { decimals: 6, symbol: 'USDC.e', - origin: ['CCTP.USDC', 'nUSD'], + origin: ['CCTP.USDC', 'RFQ.USDC', 'nUSD'], destination: ['CCTP.USDC', 'nUSD'], swappable: [ '0x17FC002b466eEc40DaE837Fc4bE5c67993ddBd6F', @@ -1441,7 +1505,7 @@ export const BRIDGE_MAP = { '0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9': { decimals: 6, symbol: 'USDT', - origin: ['CCTP.USDC', 'nUSD'], + origin: ['CCTP.USDC', 'RFQ.USDC', 'nUSD'], destination: ['CCTP.USDC', 'nUSD'], swappable: [ '0x17FC002b466eEc40DaE837Fc4bE5c67993ddBd6F', @@ -1461,8 +1525,8 @@ export const BRIDGE_MAP = { '0xaf88d065e77c8cC2239327C5EDb3A432268e5831': { decimals: 6, symbol: 'USDC', - origin: ['CCTP.USDC', 'nUSD'], - destination: ['CCTP.USDC'], + origin: ['CCTP.USDC', 'RFQ.USDC', 'nUSD'], + destination: ['CCTP.USDC', 'RFQ.USDC'], swappable: [ '0x17FC002b466eEc40DaE837Fc4bE5c67993ddBd6F', '0x2913E812Cf0dcCA30FB28E6Cac3d2DCFF4497688', @@ -1782,6 +1846,22 @@ export const BRIDGE_MAP = { ], }, }, + '534352': { + '0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4': { + origin: ['RFQ.USDC'], + destination: ['RFQ.USDC'], + swappable: [], + symbol: 'USDC', + decimals: 6, + }, + '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE': { + origin: ['RFQ.ETH'], + destination: ['RFQ.ETH'], + swappable: [], + symbol: 'ETH', + decimals: 18, + }, + }, '1313161554': { '0x07379565cD8B0CaE7c60Dc78e7f601b34AF2A21c': { decimals: 18, diff --git a/packages/widget/src/constants/bridgeable.ts b/packages/widget/src/constants/bridgeable.ts index 3fff22b3bf..e582823678 100644 --- a/packages/widget/src/constants/bridgeable.ts +++ b/packages/widget/src/constants/bridgeable.ts @@ -435,6 +435,7 @@ export const USDC: BridgeableToken = { [CHAINS.DFK.id]: '0x3AD9DFE640E1A9Cc1D9B0948620820D975c3803a', [CHAINS.BASE.id]: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', [CHAINS.POLYGON.id]: '0x2791bca1f2de4661ed88a30c99a7a9449aa84174', + [CHAINS.SCROLL.id]: '0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4', }, decimals: { [CHAINS.ETHEREUM.id]: 6, @@ -450,6 +451,7 @@ export const USDC: BridgeableToken = { [CHAINS.DFK.id]: 18, [CHAINS.BASE.id]: 6, [CHAINS.POLYGON.id]: 6, + [CHAINS.SCROLL.id]: 6, }, symbol: 'USDC', name: 'USD Coin', @@ -799,6 +801,7 @@ export const ETH: BridgeableToken = { [CHAINS.ARBITRUM.id]: ZeroAddress, [CHAINS.DFK.id]: '0xfBDF0E31808d0aa7b9509AA6aBC9754E48C58852', [CHAINS.BLAST.id]: ZeroAddress, + [CHAINS.SCROLL.id]: ZeroAddress, }, decimals: { [CHAINS.ETHEREUM.id]: 18, @@ -809,6 +812,7 @@ export const ETH: BridgeableToken = { [CHAINS.ARBITRUM.id]: 18, [CHAINS.DFK.id]: 18, [CHAINS.BLAST.id]: 18, + [CHAINS.SCROLL.id]: 18, }, symbol: 'ETH', name: 'Ethereum', diff --git a/packages/widget/src/constants/chains.ts b/packages/widget/src/constants/chains.ts index f7d3685d33..59c4b10020 100644 --- a/packages/widget/src/constants/chains.ts +++ b/packages/widget/src/constants/chains.ts @@ -282,6 +282,20 @@ export const BLAST: Chain = { 'https://45a97b3d.sanguine-fe.pages.dev/_next/static/media/blast.e39807f8.svg', } +export const SCROLL: Chain = { + id: 534352, + name: 'Scroll', + rpcUrls: { + primary: 'https://rpc.scroll.io/', + fallback: 'https://scroll.blockpi.network/v1/rpc/public', + }, + explorerUrl: 'https://scrollscan.com', + explorerName: 'Scrollscan', + blockTime: 3000, + imgUrl: + 'https://fe-adds-scroll.sanguine-fe.pages.dev/_next/static/media/scroll.a805c122.svg', +} + export const CHAINS = { ETHEREUM, ARBITRUM, @@ -303,6 +317,7 @@ export const CHAINS = { DOGE, BASE, BLAST, + SCROLL, } export const CHAINS_ARRAY = Object.values(CHAINS) From 78123ffda11898124f6c5b3551d60d2bfa10ef81 Mon Sep 17 00:00:00 2001 From: abtestingalpha Date: Thu, 27 Jun 2024 16:40:39 +0000 Subject: [PATCH 55/85] Publish - @synapsecns/widget@0.4.0 --- packages/widget/CHANGELOG.md | 11 +++++++++++ packages/widget/package.json | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/widget/CHANGELOG.md b/packages/widget/CHANGELOG.md index 96974d4141..51da518b31 100644 --- a/packages/widget/CHANGELOG.md +++ b/packages/widget/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [0.4.0](https://github.com/synapsecns/sanguine/compare/@synapsecns/widget@0.3.0...@synapsecns/widget@0.4.0) (2024-06-27) + + +### Features + +* **widget:** Adds scroll ([#2805](https://github.com/synapsecns/sanguine/issues/2805)) ([1f4a910](https://github.com/synapsecns/sanguine/commit/1f4a910141ff4393030c26fde5592a513e882b6a)) + + + + + # [0.3.0](https://github.com/synapsecns/sanguine/compare/@synapsecns/widget@0.2.1...@synapsecns/widget@0.3.0) (2024-05-17) diff --git a/packages/widget/package.json b/packages/widget/package.json index 5bb22e49f5..8605fe8aef 100644 --- a/packages/widget/package.json +++ b/packages/widget/package.json @@ -1,7 +1,7 @@ { "name": "@synapsecns/widget", "description": "Widget library for interacting with the Synapse Protocol", - "version": "0.3.0", + "version": "0.4.0", "license": "MIT", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", From 18ac4e6e2e0b3922ec078497f9f827a2bcf77b88 Mon Sep 17 00:00:00 2001 From: trajan0x <83933037+trajan0x@users.noreply.github.com> Date: Thu, 27 Jun 2024 14:15:20 -0400 Subject: [PATCH 56/85] fix: core lint (#2807) Co-authored-by: Trajan0x --- core/bytes_test.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/bytes_test.go b/core/bytes_test.go index eacae15564..704e53155b 100644 --- a/core/bytes_test.go +++ b/core/bytes_test.go @@ -76,7 +76,8 @@ func TestBytesToJSONString(t *testing.T) { }, } - for _, tt := range tests { + for i := range tests { + tt := tests[i] t.Run(tt.name, func(t *testing.T) { got, err := core.BytesToJSONString(tt.input) if (err != nil) != tt.wantErr { From b0451251b48d35909bb9d976c3a6bdd03b99d6ab Mon Sep 17 00:00:00 2001 From: abtestingalpha <104046418+abtestingalpha@users.noreply.github.com> Date: Thu, 27 Jun 2024 16:38:47 -0400 Subject: [PATCH 57/85] feat(sdk): Adds origin/dest chain ids to bridge quote (#2804) * Adds origin/dest chain ids to bridge quote * Updates readme --- packages/sdk-router/README.md | 4 +++ .../sdk-router/src/module/synapseModuleSet.ts | 2 ++ packages/sdk-router/src/module/types.ts | 2 ++ packages/sdk-router/src/sdk.test.ts | 28 +++++++++++++++++++ 4 files changed, 36 insertions(+) diff --git a/packages/sdk-router/README.md b/packages/sdk-router/README.md index 133394d876..6245c9a76a 100644 --- a/packages/sdk-router/README.md +++ b/packages/sdk-router/README.md @@ -112,6 +112,10 @@ export type BridgeQuote = { // Amount of native gas tokens that user will receive on the destination chain // on top of the token amount gasDropAmount: BigNumber + // Origin chain id + originChainId: number + // Destination chain id + destChainId: number } ``` diff --git a/packages/sdk-router/src/module/synapseModuleSet.ts b/packages/sdk-router/src/module/synapseModuleSet.ts index 63a23ca8aa..91543947e0 100644 --- a/packages/sdk-router/src/module/synapseModuleSet.ts +++ b/packages/sdk-router/src/module/synapseModuleSet.ts @@ -215,6 +215,8 @@ export abstract class SynapseModuleSet { estimatedTime: this.getEstimatedTime(bridgeRoute.originChainId), bridgeModuleName: bridgeRoute.bridgeModuleName, gasDropAmount: await this.getGasDropAmount(bridgeRoute), + originChainId: bridgeRoute.originChainId, + destChainId: bridgeRoute.destChainId, } } } diff --git a/packages/sdk-router/src/module/types.ts b/packages/sdk-router/src/module/types.ts index 03f72cb62b..07fecbba9c 100644 --- a/packages/sdk-router/src/module/types.ts +++ b/packages/sdk-router/src/module/types.ts @@ -64,6 +64,8 @@ export type BridgeQuote = { estimatedTime: number bridgeModuleName: string gasDropAmount: BigNumber + originChainId: number + destChainId: number } /** diff --git a/packages/sdk-router/src/sdk.test.ts b/packages/sdk-router/src/sdk.test.ts index 6c3444c8fa..5edbbaed05 100644 --- a/packages/sdk-router/src/sdk.test.ts +++ b/packages/sdk-router/src/sdk.test.ts @@ -74,6 +74,8 @@ const expectCorrectBridgeQuote = (bridgeQuote: BridgeQuote) => { expect(bridgeQuote.maxAmountOut.gt(0)).toBe(true) expect(bridgeQuote.originQuery).toBeDefined() expect(bridgeQuote.destQuery).toBeDefined() + expect(bridgeQuote.originChainId).toBeDefined() + expect(bridgeQuote.destChainId).toBeDefined() } const expectCorrectPopulatedTransaction = ( @@ -293,6 +295,8 @@ describe('SynapseSDK', () => { expect(result.gasDropAmount).toEqual( EXPECTED_GAS_DROP[SupportedChainId.ARBITRUM] ) + expect(result.originChainId).toEqual(SupportedChainId.ETH) + expect(result.destChainId).toEqual(SupportedChainId.ARBITRUM) }) }) }) @@ -337,6 +341,8 @@ describe('SynapseSDK', () => { expect(result.gasDropAmount).toEqual( EXPECTED_GAS_DROP[SupportedChainId.BSC] ) + expect(result.originChainId).toEqual(SupportedChainId.AVALANCHE) + expect(result.destChainId).toEqual(SupportedChainId.BSC) }) }) @@ -374,6 +380,8 @@ describe('SynapseSDK', () => { expect(result.gasDropAmount).toEqual( EXPECTED_GAS_DROP[SupportedChainId.BSC] ) + expect(result.originChainId).toEqual(SupportedChainId.AVALANCHE) + expect(result.destChainId).toEqual(SupportedChainId.BSC) }) }) }) @@ -418,6 +426,8 @@ describe('SynapseSDK', () => { expect(result.gasDropAmount).toEqual( EXPECTED_GAS_DROP[SupportedChainId.ETH] ) + expect(result.originChainId).toEqual(SupportedChainId.ARBITRUM) + expect(result.destChainId).toEqual(SupportedChainId.ETH) }) }) @@ -455,6 +465,8 @@ describe('SynapseSDK', () => { expect(result.gasDropAmount).toEqual( EXPECTED_GAS_DROP[SupportedChainId.ETH] ) + expect(result.originChainId).toEqual(SupportedChainId.ARBITRUM) + expect(result.destChainId).toEqual(SupportedChainId.ETH) }) }) @@ -498,6 +510,8 @@ describe('SynapseSDK', () => { expect(result.gasDropAmount).toEqual( EXPECTED_GAS_DROP[SupportedChainId.ETH] ) + expect(result.originChainId).toEqual(SupportedChainId.ARBITRUM) + expect(result.destChainId).toEqual(SupportedChainId.ETH) }) }) @@ -536,6 +550,8 @@ describe('SynapseSDK', () => { expect(result.gasDropAmount).toEqual( EXPECTED_GAS_DROP[SupportedChainId.ETH] ) + expect(result.originChainId).toEqual(SupportedChainId.ARBITRUM) + expect(result.destChainId).toEqual(SupportedChainId.ETH) }) }) @@ -574,6 +590,8 @@ describe('SynapseSDK', () => { expect(result.gasDropAmount).toEqual( EXPECTED_GAS_DROP[SupportedChainId.ETH] ) + expect(result.originChainId).toEqual(SupportedChainId.ARBITRUM) + expect(result.destChainId).toEqual(SupportedChainId.ETH) }) }) }) @@ -612,6 +630,8 @@ describe('SynapseSDK', () => { expect(result.gasDropAmount).toEqual( EXPECTED_GAS_DROP[SupportedChainId.ETH] ) + expect(result.originChainId).toEqual(SupportedChainId.ARBITRUM) + expect(result.destChainId).toEqual(SupportedChainId.ETH) }) }) }) @@ -657,6 +677,8 @@ describe('SynapseSDK', () => { expect(result.gasDropAmount).toEqual( EXPECTED_GAS_DROP[SupportedChainId.AVALANCHE] ) + expect(result.originChainId).toEqual(SupportedChainId.BSC) + expect(result.destChainId).toEqual(SupportedChainId.AVALANCHE) }) }) @@ -694,6 +716,8 @@ describe('SynapseSDK', () => { expect(result.gasDropAmount).toEqual( EXPECTED_GAS_DROP[SupportedChainId.AVALANCHE] ) + expect(result.originChainId).toEqual(SupportedChainId.BSC) + expect(result.destChainId).toEqual(SupportedChainId.AVALANCHE) }) }) }) @@ -778,6 +802,10 @@ describe('SynapseSDK', () => { expect(allQuotes[1].gasDropAmount).toEqual( EXPECTED_GAS_DROP[SupportedChainId.ARBITRUM] ) + expect(allQuotes[0].originChainId).toEqual(SupportedChainId.ETH) + expect(allQuotes[0].destChainId).toEqual(SupportedChainId.ARBITRUM) + expect(allQuotes[1].originChainId).toEqual(SupportedChainId.ETH) + expect(allQuotes[1].destChainId).toEqual(SupportedChainId.ARBITRUM) }) it('Fetches only SynapseBridge quotes for ETH', async () => { From 41095f0c4f52553af7fe5c638e3096ef64ee4d8c Mon Sep 17 00:00:00 2001 From: abtestingalpha Date: Thu, 27 Jun 2024 20:43:02 +0000 Subject: [PATCH 58/85] Publish - @synapsecns/rest-api@1.0.65 - @synapsecns/sdk-router@0.7.0 - @synapsecns/synapse-interface@0.26.7 - @synapsecns/widget@0.4.1 --- packages/rest-api/CHANGELOG.md | 8 ++++++++ packages/rest-api/package.json | 4 ++-- packages/sdk-router/CHANGELOG.md | 11 +++++++++++ packages/sdk-router/package.json | 2 +- packages/synapse-interface/CHANGELOG.md | 8 ++++++++ packages/synapse-interface/package.json | 4 ++-- packages/widget/CHANGELOG.md | 8 ++++++++ packages/widget/package.json | 4 ++-- 8 files changed, 42 insertions(+), 7 deletions(-) diff --git a/packages/rest-api/CHANGELOG.md b/packages/rest-api/CHANGELOG.md index accce47d26..40dbf9fc7f 100644 --- a/packages/rest-api/CHANGELOG.md +++ b/packages/rest-api/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.0.65](https://github.com/synapsecns/sanguine/compare/@synapsecns/rest-api@1.0.64...@synapsecns/rest-api@1.0.65) (2024-06-27) + +**Note:** Version bump only for package @synapsecns/rest-api + + + + + ## [1.0.64](https://github.com/synapsecns/sanguine/compare/@synapsecns/rest-api@1.0.63...@synapsecns/rest-api@1.0.64) (2024-05-09) **Note:** Version bump only for package @synapsecns/rest-api diff --git a/packages/rest-api/package.json b/packages/rest-api/package.json index 08a9c1d772..44ab0a9e64 100644 --- a/packages/rest-api/package.json +++ b/packages/rest-api/package.json @@ -1,6 +1,6 @@ { "name": "@synapsecns/rest-api", - "version": "1.0.64", + "version": "1.0.65", "private": "true", "engines": { "node": ">=18.17.0" @@ -23,7 +23,7 @@ "@ethersproject/bignumber": "^5.7.0", "@ethersproject/providers": "^5.7.2", "@ethersproject/units": "5.7.0", - "@synapsecns/sdk-router": "^0.6.0", + "@synapsecns/sdk-router": "^0.7.0", "bignumber": "^1.1.0", "ethers": "5.7.2", "express": "^4.18.2", diff --git a/packages/sdk-router/CHANGELOG.md b/packages/sdk-router/CHANGELOG.md index b8a565eafd..b1a37b8285 100644 --- a/packages/sdk-router/CHANGELOG.md +++ b/packages/sdk-router/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [0.7.0](https://github.com/synapsecns/sanguine/compare/@synapsecns/sdk-router@0.6.0...@synapsecns/sdk-router@0.7.0) (2024-06-27) + + +### Features + +* **sdk:** Adds origin/dest chain ids to bridge quote ([#2804](https://github.com/synapsecns/sanguine/issues/2804)) ([b045125](https://github.com/synapsecns/sanguine/commit/b0451251b48d35909bb9d976c3a6bdd03b99d6ab)) + + + + + # [0.6.0](https://github.com/synapsecns/sanguine/compare/@synapsecns/sdk-router@0.5.1...@synapsecns/sdk-router@0.6.0) (2024-05-09) diff --git a/packages/sdk-router/package.json b/packages/sdk-router/package.json index 13af037e3b..4756dff07b 100644 --- a/packages/sdk-router/package.json +++ b/packages/sdk-router/package.json @@ -1,7 +1,7 @@ { "name": "@synapsecns/sdk-router", "description": "An SDK for interacting with the Synapse Protocol", - "version": "0.6.0", + "version": "0.7.0", "license": "MIT", "main": "dist/index.js", "typings": "dist/index.d.ts", diff --git a/packages/synapse-interface/CHANGELOG.md b/packages/synapse-interface/CHANGELOG.md index a7761bb85b..4fd8c9e6e5 100644 --- a/packages/synapse-interface/CHANGELOG.md +++ b/packages/synapse-interface/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.26.7](https://github.com/synapsecns/sanguine/compare/@synapsecns/synapse-interface@0.26.6...@synapsecns/synapse-interface@0.26.7) (2024-06-27) + +**Note:** Version bump only for package @synapsecns/synapse-interface + + + + + ## [0.26.6](https://github.com/synapsecns/sanguine/compare/@synapsecns/synapse-interface@0.26.5...@synapsecns/synapse-interface@0.26.6) (2024-06-26) **Note:** Version bump only for package @synapsecns/synapse-interface diff --git a/packages/synapse-interface/package.json b/packages/synapse-interface/package.json index 6f44801155..b161a96710 100644 --- a/packages/synapse-interface/package.json +++ b/packages/synapse-interface/package.json @@ -1,6 +1,6 @@ { "name": "@synapsecns/synapse-interface", - "version": "0.26.6", + "version": "0.26.7", "private": true, "engines": { "node": ">=18.18.0" @@ -33,7 +33,7 @@ "@reduxjs/toolkit": "^1.9.5", "@rtk-query/graphql-request-base-query": "^2.2.0", "@segment/analytics-next": "^1.53.0", - "@synapsecns/sdk-router": "^0.6.0", + "@synapsecns/sdk-router": "^0.7.0", "@tailwindcss/aspect-ratio": "^0.4.2", "@tailwindcss/forms": "^0.5.3", "@tailwindcss/typography": "^0.5.9", diff --git a/packages/widget/CHANGELOG.md b/packages/widget/CHANGELOG.md index 51da518b31..4036f3b2f0 100644 --- a/packages/widget/CHANGELOG.md +++ b/packages/widget/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.4.1](https://github.com/synapsecns/sanguine/compare/@synapsecns/widget@0.4.0...@synapsecns/widget@0.4.1) (2024-06-27) + +**Note:** Version bump only for package @synapsecns/widget + + + + + # [0.4.0](https://github.com/synapsecns/sanguine/compare/@synapsecns/widget@0.3.0...@synapsecns/widget@0.4.0) (2024-06-27) diff --git a/packages/widget/package.json b/packages/widget/package.json index 8605fe8aef..45397619fe 100644 --- a/packages/widget/package.json +++ b/packages/widget/package.json @@ -1,7 +1,7 @@ { "name": "@synapsecns/widget", "description": "Widget library for interacting with the Synapse Protocol", - "version": "0.4.0", + "version": "0.4.1", "license": "MIT", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", @@ -66,7 +66,7 @@ "@ethersproject/providers": "^5.7.2", "@ethersproject/units": "^5.7.0", "@reduxjs/toolkit": "^2.0.1", - "@synapsecns/sdk-router": "^0.6.0", + "@synapsecns/sdk-router": "^0.7.0", "ethers": "^6.9.1", "lodash": "^4.17.21", "react-redux": "^9.0.2" From c5852196eed34ca2fd2b544b030c9667fb70dbd7 Mon Sep 17 00:00:00 2001 From: abtestingalpha <104046418+abtestingalpha@users.noreply.github.com> Date: Thu, 27 Jun 2024 17:56:08 -0400 Subject: [PATCH 59/85] feat(synapse-interface): SDK bridgequote chainID validation (#2803) * Adds origin/dest chain id validation * Removes unused fns * Button state --- .../BridgeTransactionButton.tsx | 30 +++- .../synapse-interface/constants/bridge.ts | 4 + .../pages/state-managed-bridge/index.tsx | 4 + .../synapse-interface/slices/bridge/hooks.ts | 42 ----- .../slices/bridge/reducer.ts | 30 +--- .../utils/actions/fetchBridgeQuotes.tsx | 168 ------------------ .../utils/hooks/useAlternateBridgeQuotes.ts | 74 -------- .../synapse-interface/utils/types/index.tsx | 2 + 8 files changed, 39 insertions(+), 315 deletions(-) delete mode 100644 packages/synapse-interface/utils/actions/fetchBridgeQuotes.tsx delete mode 100644 packages/synapse-interface/utils/hooks/useAlternateBridgeQuotes.ts diff --git a/packages/synapse-interface/components/StateManagedBridge/BridgeTransactionButton.tsx b/packages/synapse-interface/components/StateManagedBridge/BridgeTransactionButton.tsx index e88f4720c0..8b1e5f7178 100644 --- a/packages/synapse-interface/components/StateManagedBridge/BridgeTransactionButton.tsx +++ b/packages/synapse-interface/components/StateManagedBridge/BridgeTransactionButton.tsx @@ -76,6 +76,13 @@ export const BridgeTransactionButton = ({ ) }, [bridgeQuote.outputAmount, fromValueBigInt]) + const chainSelectionsMatchBridgeQuote = useMemo(() => { + return ( + fromChainId === bridgeQuote.originChainId && + toChainId === bridgeQuote.destChainId + ) + }, [fromChainId, toChainId, bridgeQuote]) + const isButtonDisabled = isLoading || bridgeQuote === EMPTY_BRIDGE_QUOTE_ZERO || @@ -83,6 +90,7 @@ export const BridgeTransactionButton = ({ (destinationAddress && !isAddress(destinationAddress)) || (isConnected && !sufficientBalance) || bridgeQuoteAmountGreaterThanInputForRfq || + !chainSelectionsMatchBridgeQuote || isBridgePaused let buttonProperties @@ -107,6 +115,11 @@ export const BridgeTransactionButton = ({ label: `Please select an Origin token`, onClick: null, } + } else if (isLoading) { + buttonProperties = { + label: `Bridge ${fromToken?.symbol}`, + onClick: null, + } } else if ( !isLoading && bridgeQuote?.feeAmount === 0n && @@ -116,7 +129,20 @@ export const BridgeTransactionButton = ({ label: `Amount must be greater than fee`, onClick: null, } - } else if (bridgeQuoteAmountGreaterThanInputForRfq) { + } else if ( + !isLoading && + !chainSelectionsMatchBridgeQuote && + fromValueBigInt > 0 + ) { + buttonProperties = { + label: 'Please reset chain selection', + onClick: null, + } + } else if ( + !isLoading && + bridgeQuoteAmountGreaterThanInputForRfq && + fromValueBigInt > 0 + ) { buttonProperties = { label: 'Invalid bridge quote', onClick: null, @@ -126,7 +152,7 @@ export const BridgeTransactionButton = ({ label: `Connect Wallet to Bridge`, onClick: openConnectModal, } - } else if (isConnected && !sufficientBalance) { + } else if (!isLoading && isConnected && !sufficientBalance) { buttonProperties = { label: 'Insufficient balance', onClick: null, diff --git a/packages/synapse-interface/constants/bridge.ts b/packages/synapse-interface/constants/bridge.ts index ebc58ebc41..40708c1f1a 100644 --- a/packages/synapse-interface/constants/bridge.ts +++ b/packages/synapse-interface/constants/bridge.ts @@ -17,6 +17,8 @@ export const EMPTY_BRIDGE_QUOTE = { bridgeModuleName: null, gasDropAmount: 0n, timestamp: null, + originChainId: null, + destChainId: null, } export const EMPTY_BRIDGE_QUOTE_ZERO = { @@ -33,6 +35,8 @@ export const EMPTY_BRIDGE_QUOTE_ZERO = { bridgeModuleName: null, gasDropAmount: 0n, timestamp: null, + originChainId: null, + destChainId: null, } /** * ETH Only Bridge Config used to calculate swap fees diff --git a/packages/synapse-interface/pages/state-managed-bridge/index.tsx b/packages/synapse-interface/pages/state-managed-bridge/index.tsx index f9771cb7bf..46befb6311 100644 --- a/packages/synapse-interface/pages/state-managed-bridge/index.tsx +++ b/packages/synapse-interface/pages/state-managed-bridge/index.tsx @@ -201,6 +201,8 @@ const StateManagedBridge = () => { estimatedTime, bridgeModuleName, gasDropAmount, + originChainId, + destChainId, } = quote if (!(originQuery && maxAmountOut && destQuery && feeAmount)) { @@ -276,6 +278,8 @@ const StateManagedBridge = () => { bridgeModuleName: bridgeModuleName, gasDropAmount: BigInt(gasDropAmount.toString()), timestamp: currentTimestamp, + originChainId, + destChainId, }) ) diff --git a/packages/synapse-interface/slices/bridge/hooks.ts b/packages/synapse-interface/slices/bridge/hooks.ts index 74162eb298..ed22c83ae0 100644 --- a/packages/synapse-interface/slices/bridge/hooks.ts +++ b/packages/synapse-interface/slices/bridge/hooks.ts @@ -1,13 +1,5 @@ -import { createAsyncThunk } from '@reduxjs/toolkit' - import { RootState } from '@/store/store' import { useAppSelector } from '@/store/hooks' -import { - fetchBridgeQuote, - fetchBridgeQuotes, - BridgeQuoteRequest, - BridgeQuoteResponse, -} from '@/utils/actions/fetchBridgeQuotes' export const useBridgeState = (): RootState['bridge'] => { return useAppSelector((state) => state.bridge) @@ -16,37 +8,3 @@ export const useBridgeState = (): RootState['bridge'] => { export const useBridgeDisplayState = (): RootState['bridgeDisplay'] => { return useAppSelector((state) => state.bridgeDisplay) } - -export const fetchAndStoreBridgeQuote = createAsyncThunk( - 'bridge/fetchAndStoreBridgeQuote', - async ({ - request, - synapseSDK, - }: { - request: BridgeQuoteRequest - synapseSDK: any - }) => { - const bridgeQuote: BridgeQuoteResponse = await fetchBridgeQuote( - request, - synapseSDK - ) - return bridgeQuote - } -) - -export const fetchAndStoreBridgeQuotes = createAsyncThunk( - 'bridge/fetchAndStoreBridgeQuotes', - async ({ - requests, - synapseSDK, - }: { - requests: BridgeQuoteRequest[] - synapseSDK: any - }) => { - const bridgeQuotes: BridgeQuoteResponse[] = await fetchBridgeQuotes( - requests, - synapseSDK - ) - return bridgeQuotes - } -) diff --git a/packages/synapse-interface/slices/bridge/reducer.ts b/packages/synapse-interface/slices/bridge/reducer.ts index 6fbf365bb6..28ab9449e5 100644 --- a/packages/synapse-interface/slices/bridge/reducer.ts +++ b/packages/synapse-interface/slices/bridge/reducer.ts @@ -2,7 +2,7 @@ import { createSlice, PayloadAction } from '@reduxjs/toolkit' import { type Address } from 'viem' import { EMPTY_BRIDGE_QUOTE } from '@/constants/bridge' -import { BridgeQuote, Token } from '@/utils/types' +import { type BridgeQuote, type Token } from '@/utils/types' import { getRoutePossibilities, getSymbol, @@ -12,10 +12,7 @@ import { getFromTokens } from '@/utils/routeMaker/getFromTokens' import { getToChainIds } from '@/utils/routeMaker/getToChainIds' import { getToTokens } from '@/utils/routeMaker/getToTokens' import { findTokenByRouteSymbol } from '@/utils/findTokenByRouteSymbol' -import { fetchAndStoreBridgeQuotes } from './hooks' -import { BridgeQuoteResponse } from '@/utils/actions/fetchBridgeQuotes' import { findValidToken } from '@/utils/findValidToken' -import { FetchState } from '../portfolio/actions' export interface BridgeState { fromChainId: number @@ -31,8 +28,6 @@ export interface BridgeState { debouncedFromValue: string debouncedToTokensFromValue: string bridgeQuote: BridgeQuote - toTokensBridgeQuotes: BridgeQuoteResponse[] - toTokensBridgeQuotesStatus: FetchState isLoading: boolean isWalletPending: boolean deadlineMinutes: number | null @@ -69,8 +64,6 @@ export const initialState: BridgeState = { debouncedFromValue: '', debouncedToTokensFromValue: '', bridgeQuote: EMPTY_BRIDGE_QUOTE, - toTokensBridgeQuotes: [], - toTokensBridgeQuotesStatus: FetchState.IDLE, isLoading: false, isWalletPending: false, deadlineMinutes: null, @@ -478,26 +471,6 @@ export const bridgeSlice = createSlice({ state.fromValue = initialState.fromValue state.debouncedFromValue = initialState.debouncedFromValue }, - resetFetchedBridgeQuotes: (state) => { - state.toTokensBridgeQuotes = initialState.toTokensBridgeQuotes - state.toTokensBridgeQuotesStatus = initialState.toTokensBridgeQuotesStatus - }, - }, - extraReducers: (builder) => { - builder - .addCase(fetchAndStoreBridgeQuotes.pending, (state) => { - state.toTokensBridgeQuotesStatus = FetchState.LOADING - }) - .addCase( - fetchAndStoreBridgeQuotes.fulfilled, - (state, action: PayloadAction) => { - state.toTokensBridgeQuotes = action.payload - state.toTokensBridgeQuotesStatus = FetchState.VALID - } - ) - .addCase(fetchAndStoreBridgeQuotes.rejected, (state) => { - state.toTokensBridgeQuotesStatus = FetchState.INVALID - }) }, }) @@ -517,7 +490,6 @@ export const { setIsWalletPending, resetBridgeInputs, clearDestinationAddress, - resetFetchedBridgeQuotes, } = bridgeSlice.actions export default bridgeSlice.reducer diff --git a/packages/synapse-interface/utils/actions/fetchBridgeQuotes.tsx b/packages/synapse-interface/utils/actions/fetchBridgeQuotes.tsx deleted file mode 100644 index 98f4a334cc..0000000000 --- a/packages/synapse-interface/utils/actions/fetchBridgeQuotes.tsx +++ /dev/null @@ -1,168 +0,0 @@ -import { Address } from 'viem' -import { BridgeQuote, Token } from '@/utils/types' -import { formatBigIntToString } from '../bigint/format' -import { commify } from '@ethersproject/units' -import { calculateExchangeRate } from '../calculateExchangeRate' -import { getTimeMinutesFromNow } from '../time' - -export interface BridgeQuoteResponse extends BridgeQuote { - destinationToken: Token - destinationChainId: number -} - -export interface BridgeQuoteRequest { - originChainId: number - originToken: Token - destinationChainId: number - destinationTokenAddress: Address - destinationToken: Token - amount: bigint -} - -export async function fetchBridgeQuote( - request: BridgeQuoteRequest, - synapseSDK: any -): Promise { - if (request && synapseSDK) { - const currentTimestamp: number = getTimeMinutesFromNow(0) - try { - const { - originChainId, - originToken, - destinationChainId, - destinationTokenAddress, - destinationToken, - amount, - }: BridgeQuoteRequest = request - - const { - feeAmount, - routerAddress, - maxAmountOut, - originQuery, - destQuery, - estimatedTime, - bridgeModuleName, - gasDropAmount, - } = await synapseSDK.bridgeQuote( - originChainId, - destinationChainId, - originToken.addresses[originChainId], - destinationTokenAddress, - amount - ) - - const toValueBigInt: bigint = BigInt(maxAmountOut.toString()) ?? 0n - // Bridge Lifecycle: originToken -> bridgeToken -> destToken - // amount is in originToken decimals - // originQuery.minAmountOut and feeAmount is in bridgeToken decimals - // Adjust feeAmount to be in originToken decimals - const adjustedFeeAmount = - (BigInt(feeAmount) * BigInt(amount)) / BigInt(originQuery.minAmountOut) - - const { - originQuery: originQueryWithSlippage, - destQuery: destQueryWithSlippage, - } = synapseSDK.applyBridgeSlippage( - bridgeModuleName, - originQuery, - destQuery - ) - - return { - outputAmount: toValueBigInt, - outputAmountString: commify( - formatBigIntToString( - toValueBigInt, - destinationToken.decimals[destinationChainId], - 8 - ) - ), - routerAddress, - allowance: null, // update for allowances - exchangeRate: calculateExchangeRate( - amount - adjustedFeeAmount, - originToken.decimals[originChainId], - toValueBigInt, - destinationToken.decimals[destinationChainId] - ), - feeAmount, - delta: BigInt(maxAmountOut.toString()), - originQuery: originQueryWithSlippage, - destQuery: destQueryWithSlippage, - destinationToken: request.destinationToken, - destinationChainId: destinationChainId, - estimatedTime: estimatedTime, - bridgeModuleName: bridgeModuleName, - gasDropAmount: BigInt(gasDropAmount.toString()), - timestamp: currentTimestamp, - } - } catch (error) { - console.error('Error fetching bridge quote:', error) - throw error - } - } else { - console.error('Missing request or synapse SDK') - } -} - -export async function fetchBridgeQuotes( - requests: BridgeQuoteRequest[], - synapseSDK: any, - maxConcurrentRequests: number = 2, // Set the maximum number of concurrent requests - requestDelay: number = 1000 // Set the delay between requests in milliseconds (adjust as needed) -): Promise { - try { - const bridgeQuotes: BridgeQuoteResponse[] = [] - - for (let i = 0; i < requests.length; i += maxConcurrentRequests) { - const batchRequests = requests.slice(i, i + maxConcurrentRequests) - const bridgeQuotesPromises: Promise[] = - batchRequests.map(async (request: BridgeQuoteRequest) => { - try { - const results: BridgeQuoteResponse = await fetchBridgeQuote( - request, - synapseSDK - ) - return results - } catch (error) { - console.error('Error in individual bridge quote request: ', error) - return null - } - }) - - const batchBridgeQuotes = ( - await Promise.all(bridgeQuotesPromises) - ).filter((quote) => quote !== null) - bridgeQuotes.push(...batchBridgeQuotes) - - // Add a delay between batches of requests to avoid overloading the server - if (i + maxConcurrentRequests < requests.length) { - await new Promise((resolve) => setTimeout(resolve, requestDelay)) - } - } - - return bridgeQuotes - } catch (error) { - console.error('Error fetching bridge quotes: ', error) - return [] - } -} - -export function locateBestExchangeRateToken( - quotes: BridgeQuoteResponse[] -): Token | null { - if (quotes?.length === 0) { - return null - } - - let bestQuote: BridgeQuoteResponse | null = null - - quotes.forEach((quote) => { - if (!bestQuote || quote.exchangeRate > bestQuote.exchangeRate) { - bestQuote = quote - } - }) - - return bestQuote ? bestQuote.destinationToken : null -} diff --git a/packages/synapse-interface/utils/hooks/useAlternateBridgeQuotes.ts b/packages/synapse-interface/utils/hooks/useAlternateBridgeQuotes.ts deleted file mode 100644 index d2f1f74576..0000000000 --- a/packages/synapse-interface/utils/hooks/useAlternateBridgeQuotes.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { useEffect } from 'react' -import { Address } from 'viem' -import _ from 'lodash' - -import { useAppDispatch } from '@/store/hooks' -import { - useBridgeState, - fetchAndStoreBridgeQuotes, -} from '@/slices/bridge/hooks' -import { BridgeState, resetFetchedBridgeQuotes } from '@/slices/bridge/reducer' -import { useSynapseContext } from '@/utils/providers/SynapseProvider' -import { BridgeQuoteRequest } from '@/utils/actions/fetchBridgeQuotes' -import { stringToBigInt } from '@/utils/bigint/format' -import { isEmptyString } from '@/utils/isEmptyString' -import { hasOnlyZeroes } from '@/utils/hasOnlyZeroes' -import { Token } from '@/utils/types' - -/** - * Hook to trigger fetching alternative bridge quotes - * based on current user input conditions - */ -export const useAlternateBridgeQuotes = () => { - const dispatch = useAppDispatch() - const { synapseSDK } = useSynapseContext() - const { - fromChainId, - fromToken, - toTokens, - toChainId, - toToken, - debouncedToTokensFromValue, - }: BridgeState = useBridgeState() - - useEffect(() => { - const isValueInvalid: boolean = - hasOnlyZeroes(debouncedToTokensFromValue) || - isEmptyString(debouncedToTokensFromValue) - - const isSelectionsInvalid: boolean = [ - fromChainId, - toChainId, - fromToken, - toToken, - ].some(_.isNull) - - /** Conditions required for fetching bridge quotes */ - if (!isValueInvalid && !isSelectionsInvalid && synapseSDK) { - const bridgeQuoteRequests: BridgeQuoteRequest[] = toTokens.map( - (token: Token) => ({ - originChainId: fromChainId, - originToken: fromToken, - destinationChainId: toChainId, - destinationTokenAddress: token.addresses[toChainId] as Address, - destinationToken: token, - amount: stringToBigInt( - debouncedToTokensFromValue, - fromToken?.decimals[fromChainId] - ), - }) - ) - dispatch( - fetchAndStoreBridgeQuotes({ - requests: bridgeQuoteRequests, - synapseSDK, - }) - ) - } - - /** Reset bridge quotes state when value is invalid */ - if (isValueInvalid) { - dispatch(resetFetchedBridgeQuotes()) - } - }, [debouncedToTokensFromValue]) -} diff --git a/packages/synapse-interface/utils/types/index.tsx b/packages/synapse-interface/utils/types/index.tsx index 525b927b11..e44e870f35 100644 --- a/packages/synapse-interface/utils/types/index.tsx +++ b/packages/synapse-interface/utils/types/index.tsx @@ -83,6 +83,8 @@ export type BridgeQuote = { bridgeModuleName: string gasDropAmount: bigint timestamp: number + originChainId: number + destChainId: number } interface TokensByChain { From e81fffeef3f0697916ecf5f1d7f9e6a73ddfcb27 Mon Sep 17 00:00:00 2001 From: abtestingalpha Date: Thu, 27 Jun 2024 22:00:27 +0000 Subject: [PATCH 60/85] Publish - @synapsecns/synapse-interface@0.27.0 --- packages/synapse-interface/CHANGELOG.md | 11 +++++++++++ packages/synapse-interface/package.json | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/synapse-interface/CHANGELOG.md b/packages/synapse-interface/CHANGELOG.md index 4fd8c9e6e5..29a4fc5ba5 100644 --- a/packages/synapse-interface/CHANGELOG.md +++ b/packages/synapse-interface/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [0.27.0](https://github.com/synapsecns/sanguine/compare/@synapsecns/synapse-interface@0.26.7...@synapsecns/synapse-interface@0.27.0) (2024-06-27) + + +### Features + +* **synapse-interface:** SDK bridgequote chainID validation ([#2803](https://github.com/synapsecns/sanguine/issues/2803)) ([c585219](https://github.com/synapsecns/sanguine/commit/c5852196eed34ca2fd2b544b030c9667fb70dbd7)) + + + + + ## [0.26.7](https://github.com/synapsecns/sanguine/compare/@synapsecns/synapse-interface@0.26.6...@synapsecns/synapse-interface@0.26.7) (2024-06-27) **Note:** Version bump only for package @synapsecns/synapse-interface diff --git a/packages/synapse-interface/package.json b/packages/synapse-interface/package.json index b161a96710..f753db839b 100644 --- a/packages/synapse-interface/package.json +++ b/packages/synapse-interface/package.json @@ -1,6 +1,6 @@ { "name": "@synapsecns/synapse-interface", - "version": "0.26.7", + "version": "0.27.0", "private": true, "engines": { "node": ">=18.18.0" From f264967b39a445216eb8ab9206d82be123fc04b4 Mon Sep 17 00:00:00 2001 From: bigboydiamonds <57741810+bigboydiamonds@users.noreply.github.com> Date: Thu, 27 Jun 2024 15:11:41 -0700 Subject: [PATCH 61/85] chore(synapse-interface): clean (#2721) * Clean _Transaction components * Clean _Transaction helper functions * Organize * Clean comments * Fix * Clean util functions * ... --------- Co-authored-by: abtestingalpha --- .../components/Activity/Activity.tsx | 11 ++- .../Transaction/Transaction.tsx | 0 .../Transaction/TransactionOptions.tsx | 0 .../Transaction/components/Completed.tsx | 0 .../components/EstimatedDuration.tsx | 0 .../components/TransactionExplorerLink.tsx | 0 .../components/TransactionPayloadDetail.tsx | 0 .../components/AnnouncementBanner.tsx | 20 +++--- .../components/EventCountdownProgressBar.tsx | 12 ++-- .../components/LinearAnimatedProgressBar.tsx | 11 ++- .../components/MaintenanceBanner.tsx | 12 +--- .../components/MaintenanceWarningMessage.tsx | 9 +-- .../useMaintenanceCountdownProgress.tsx | 10 --- .../example/EcotoneForkUpgrade.tsx | 2 +- .../components/Portfolio/Portfolio.tsx | 2 +- .../Portfolio/components/SearchBar.tsx | 8 +-- .../useSearchInputStatus.ts | 0 .../components/_Transaction/_Transaction.tsx | 6 +- .../components/AnimatedProgressBar.tsx | 12 ++-- .../_Transaction/components/DropdownMenu.tsx | 12 +++- .../_Transaction/components/TimeRemaining.tsx | 17 +---- ...tus.ts => calculateEstimatedTimeStatus.ts} | 11 ++- .../_Transaction/helpers/useBridgeTxStatus.ts | 3 +- .../helpers/useBridgeTxUpdater.ts | 16 ++--- .../_Transaction/helpers/useIsTxReverted.ts | 2 +- .../layouts/LandingPageWrapper/index.tsx | 2 +- .../actions}/getTransactionReceipt.ts | 0 .../utils/getEstimatedBridgeTime.tsx | 67 ------------------- ...oingeckoPrice.tsx => useCoingeckoPrice.ts} | 0 .../helpers => utils/hooks}/useIsFocused.ts | 0 .../helpers => utils/hooks}/useIsMounted.ts | 3 - 31 files changed, 70 insertions(+), 178 deletions(-) rename packages/synapse-interface/components/{Portfolio => Activity}/Transaction/Transaction.tsx (100%) rename packages/synapse-interface/components/{Portfolio => Activity}/Transaction/TransactionOptions.tsx (100%) rename packages/synapse-interface/components/{Portfolio => Activity}/Transaction/components/Completed.tsx (100%) rename packages/synapse-interface/components/{Portfolio => Activity}/Transaction/components/EstimatedDuration.tsx (100%) rename packages/synapse-interface/components/{Portfolio => Activity}/Transaction/components/TransactionExplorerLink.tsx (100%) rename packages/synapse-interface/components/{Portfolio => Activity}/Transaction/components/TransactionPayloadDetail.tsx (100%) rename packages/synapse-interface/components/Portfolio/{helpers => hooks}/useSearchInputStatus.ts (100%) rename packages/synapse-interface/components/_Transaction/helpers/{getEstimatedTimeStatus.ts => calculateEstimatedTimeStatus.ts} (72%) rename packages/synapse-interface/{components/_Transaction/helpers => utils/actions}/getTransactionReceipt.ts (100%) delete mode 100644 packages/synapse-interface/utils/getEstimatedBridgeTime.tsx rename packages/synapse-interface/utils/hooks/{useCoingeckoPrice.tsx => useCoingeckoPrice.ts} (100%) rename packages/synapse-interface/{components/Portfolio/helpers => utils/hooks}/useIsFocused.ts (100%) rename packages/synapse-interface/{components/Portfolio/helpers => utils/hooks}/useIsMounted.ts (84%) diff --git a/packages/synapse-interface/components/Activity/Activity.tsx b/packages/synapse-interface/components/Activity/Activity.tsx index bf29e9a7b6..9a1797d0f9 100644 --- a/packages/synapse-interface/components/Activity/Activity.tsx +++ b/packages/synapse-interface/components/Activity/Activity.tsx @@ -2,20 +2,17 @@ import React, { useMemo } from 'react' import _ from 'lodash' import Fuse from 'fuse.js' import { useAccount } from 'wagmi' -import { Address } from 'viem' +import { type Address } from 'viem' +import { type Chain } from '@/utils/types' import { useTransactionsState } from '@/slices/transactions/hooks' import { usePortfolioState } from '@/slices/portfolio/hooks' import { BridgeTransaction } from '@/slices/api/generated' import { CHAINS_BY_ID } from '@/constants/chains' -import { Chain, Token } from '@/utils/types' import { tokenAddressToToken } from '@/constants/tokens' import { TransactionsState } from '@/slices/transactions/reducer' import { PortfolioState } from '@/slices/portfolio/reducer' -import { - Transaction, - TransactionType, -} from '../Portfolio/Transaction/Transaction' -import { UserExplorerLink } from '../Portfolio/Transaction/components/TransactionExplorerLink' +import { Transaction, TransactionType } from './Transaction/Transaction' +import { UserExplorerLink } from './Transaction/components/TransactionExplorerLink' import { NoSearchResultsContent } from '../Portfolio/components/NoSearchResultContent' import { checkTransactionsExist } from '@/utils/checkTransactionsExist' diff --git a/packages/synapse-interface/components/Portfolio/Transaction/Transaction.tsx b/packages/synapse-interface/components/Activity/Transaction/Transaction.tsx similarity index 100% rename from packages/synapse-interface/components/Portfolio/Transaction/Transaction.tsx rename to packages/synapse-interface/components/Activity/Transaction/Transaction.tsx diff --git a/packages/synapse-interface/components/Portfolio/Transaction/TransactionOptions.tsx b/packages/synapse-interface/components/Activity/Transaction/TransactionOptions.tsx similarity index 100% rename from packages/synapse-interface/components/Portfolio/Transaction/TransactionOptions.tsx rename to packages/synapse-interface/components/Activity/Transaction/TransactionOptions.tsx diff --git a/packages/synapse-interface/components/Portfolio/Transaction/components/Completed.tsx b/packages/synapse-interface/components/Activity/Transaction/components/Completed.tsx similarity index 100% rename from packages/synapse-interface/components/Portfolio/Transaction/components/Completed.tsx rename to packages/synapse-interface/components/Activity/Transaction/components/Completed.tsx diff --git a/packages/synapse-interface/components/Portfolio/Transaction/components/EstimatedDuration.tsx b/packages/synapse-interface/components/Activity/Transaction/components/EstimatedDuration.tsx similarity index 100% rename from packages/synapse-interface/components/Portfolio/Transaction/components/EstimatedDuration.tsx rename to packages/synapse-interface/components/Activity/Transaction/components/EstimatedDuration.tsx diff --git a/packages/synapse-interface/components/Portfolio/Transaction/components/TransactionExplorerLink.tsx b/packages/synapse-interface/components/Activity/Transaction/components/TransactionExplorerLink.tsx similarity index 100% rename from packages/synapse-interface/components/Portfolio/Transaction/components/TransactionExplorerLink.tsx rename to packages/synapse-interface/components/Activity/Transaction/components/TransactionExplorerLink.tsx diff --git a/packages/synapse-interface/components/Portfolio/Transaction/components/TransactionPayloadDetail.tsx b/packages/synapse-interface/components/Activity/Transaction/components/TransactionPayloadDetail.tsx similarity index 100% rename from packages/synapse-interface/components/Portfolio/Transaction/components/TransactionPayloadDetail.tsx rename to packages/synapse-interface/components/Activity/Transaction/components/TransactionPayloadDetail.tsx diff --git a/packages/synapse-interface/components/Maintenance/components/AnnouncementBanner.tsx b/packages/synapse-interface/components/Maintenance/components/AnnouncementBanner.tsx index e8b7ba6da5..1403e84725 100644 --- a/packages/synapse-interface/components/Maintenance/components/AnnouncementBanner.tsx +++ b/packages/synapse-interface/components/Maintenance/components/AnnouncementBanner.tsx @@ -1,24 +1,22 @@ -import { useState, useEffect } from 'react' +import { useState, useEffect, ReactNode } from 'react' import { getCountdownTimeStatus } from './EventCountdownProgressBar' /** - * Generic Message Banner that appears between defined start and end time. - * If end date is null, banner will appear indefinitely until removed. + * Message banner that renders between defined start <> end dates. * - * @param bannerId Unique ID to prevent conflicts with other banner instances. - * Assign ID $MMDDYYYY-$BANNER_NAME format (e.g 03132024-ETH-DENCUN) - * @param bannerContents Message to display - * @param startDate Start time to display banner - * @param endDate End time to remove banner + * @param {string} bannerId - The unique ID assigned to banner instance to prevent collisions. ID Format: $MMDDYYYY-$BANNER_NAME format (e.g 03132024-ETH-DENCUN) + * @param {any} bannerContent - The content to display in the banner. + * @param {Date} startDate - The start date that initiates rendering banner. + * @param {Date | null} endDate - The end date that removes banner. If null, the banner will render indefinitely. */ export const AnnouncementBanner = ({ bannerId, - bannerContents, + bannerContent, startDate, endDate, }: { bannerId: string - bannerContents: any + bannerContent: any startDate: Date endDate: Date | null }) => { @@ -72,7 +70,7 @@ export const AnnouncementBanner = ({ `} role="alert" > - {bannerContents} + {bannerContent} -
    +
  • aHhw9eEheDxQ=GmG;lArMa1L?XPK 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 z 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