From d693aca719a2358f98ad67a6a5ef2697197c4417 Mon Sep 17 00:00:00 2001 From: TxCorpi0x <6095314+TxCorpi0x@users.noreply.github.com> Date: Tue, 22 Jul 2025 10:31:02 +0300 Subject: [PATCH 1/3] wip: upgrade ibcv10 --- modules/ibc-hooks/go.mod | 259 ++-- modules/ibc-hooks/go.sum | 1361 +++++++++++++---- modules/ibc-hooks/hooks.go | 32 +- modules/ibc-hooks/ibc_module.go | 43 +- modules/ibc-hooks/ics4_middleware.go | 28 +- modules/ibc-hooks/simapp/ante.go | 6 +- modules/ibc-hooks/simapp/app.go | 103 +- .../tests/unit/mocks/isc4_middleware_mock.go | 9 +- modules/ibc-hooks/tests/unit/module_test.go | 18 +- modules/ibc-hooks/wasm_hook.go | 68 +- 10 files changed, 1328 insertions(+), 599 deletions(-) diff --git a/modules/ibc-hooks/go.mod b/modules/ibc-hooks/go.mod index 687b9755..c2199f08 100644 --- a/modules/ibc-hooks/go.mod +++ b/modules/ibc-hooks/go.mod @@ -1,204 +1,229 @@ module github.com/cosmos/ibc-apps/modules/ibc-hooks/v8 -go 1.22 +go 1.23.8 + +toolchain go1.24.5 require ( cosmossdk.io/client/v2 v2.0.0-beta.3 - cosmossdk.io/core v0.11.1 - cosmossdk.io/errors v1.0.1 - cosmossdk.io/log v1.4.0 - cosmossdk.io/math v1.3.0 - cosmossdk.io/store v1.1.0 + cosmossdk.io/core v0.11.3 + cosmossdk.io/errors v1.0.2 + cosmossdk.io/log v1.6.0 + cosmossdk.io/math v1.5.3 + cosmossdk.io/store v1.1.2 cosmossdk.io/x/circuit v0.1.1 cosmossdk.io/x/evidence v0.1.1 cosmossdk.io/x/feegrant v0.1.1 - cosmossdk.io/x/nft v0.1.0 - cosmossdk.io/x/tx v0.13.4 - cosmossdk.io/x/upgrade v0.1.4 - github.com/CosmWasm/wasmd v0.51.0 - github.com/cometbft/cometbft v0.38.11 - github.com/cosmos/cosmos-db v1.0.2 - github.com/cosmos/cosmos-sdk v0.50.9 + cosmossdk.io/x/nft v0.1.1 + cosmossdk.io/x/tx v0.14.0 + cosmossdk.io/x/upgrade v0.2.0 + github.com/CosmWasm/wasmd v0.60.1 + github.com/cometbft/cometbft v0.38.17 + github.com/cosmos/cosmos-db v1.1.1 + github.com/cosmos/cosmos-sdk v0.53.0 github.com/cosmos/gogoproto v1.7.0 github.com/cosmos/ibc-go/modules/capability v1.0.1 - github.com/cosmos/ibc-go/v8 v8.6.1 + github.com/cosmos/ibc-go/v10 v10.3.0 github.com/gorilla/mux v1.8.1 github.com/grpc-ecosystem/grpc-gateway v1.16.0 - github.com/prometheus/client_golang v1.19.0 - github.com/spf13/cast v1.6.0 - github.com/spf13/cobra v1.8.1 - github.com/stretchr/testify v1.9.0 + github.com/prometheus/client_golang v1.22.0 + github.com/spf13/cast v1.8.0 + github.com/spf13/cobra v1.9.1 + github.com/stretchr/testify v1.10.0 ) require ( - cloud.google.com/go v0.115.0 // indirect - cloud.google.com/go/auth v0.6.0 // 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.9 // indirect - cloud.google.com/go/storage v1.41.0 // indirect - cosmossdk.io/api v0.7.5 // indirect - cosmossdk.io/collections v0.4.0 // indirect - cosmossdk.io/depinject v1.0.0 // indirect + cel.dev/expr v0.20.0 // indirect + cloud.google.com/go v0.116.0 // indirect + cloud.google.com/go/auth v0.14.1 // indirect + cloud.google.com/go/auth/oauth2adapt v0.2.7 // indirect + cloud.google.com/go/compute/metadata v0.6.0 // indirect + cloud.google.com/go/iam v1.2.2 // indirect + cloud.google.com/go/monitoring v1.21.2 // indirect + cloud.google.com/go/storage v1.49.0 // indirect + cosmossdk.io/api v0.9.2 // indirect + cosmossdk.io/collections v1.2.1 // indirect + cosmossdk.io/depinject v1.2.0 // indirect + cosmossdk.io/schema v1.1.0 // indirect filippo.io/edwards25519 v1.1.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.2 // indirect - github.com/CosmWasm/wasmvm/v2 v2.0.0 // indirect - github.com/DataDog/datadog-go v3.2.0+incompatible // indirect - github.com/DataDog/zstd v1.5.5 // indirect - github.com/aws/aws-sdk-go v1.44.224 // indirect + github.com/CosmWasm/wasmvm/v2 v2.2.4 // indirect + github.com/DataDog/datadog-go v4.8.3+incompatible // indirect + github.com/DataDog/zstd v1.5.7 // indirect + github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.26.0 // indirect + github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.1 // indirect + github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.48.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect + github.com/aws/aws-sdk-go v1.49.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect - github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 // indirect - github.com/bits-and-blooms/bitset v1.8.0 // indirect - github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect - github.com/cenkalti/backoff/v4 v4.1.3 // indirect - github.com/cespare/xxhash v1.1.0 // indirect + github.com/bgentry/speakeasy v0.2.0 // indirect + github.com/bits-and-blooms/bitset v1.22.0 // indirect + github.com/bytedance/sonic v1.13.2 // indirect + github.com/bytedance/sonic/loader v0.2.4 // indirect + github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/chzyer/readline v1.5.1 // indirect + github.com/cloudwego/base64x v0.1.5 // indirect + github.com/cncf/xds/go v0.0.0-20250121191232-2f005788dc42 // indirect github.com/cockroachdb/apd/v2 v2.0.2 // indirect - github.com/cockroachdb/errors v1.11.1 // indirect - github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect - github.com/cockroachdb/pebble v1.1.0 // indirect - github.com/cockroachdb/redact v1.1.5 // indirect + github.com/cockroachdb/errors v1.12.0 // indirect + github.com/cockroachdb/fifo v0.0.0-20240616162244-4768e80dfb9a // indirect + github.com/cockroachdb/logtags v0.0.0-20241215232642-bb51bb14a506 // indirect + github.com/cockroachdb/pebble v1.1.5 // indirect + github.com/cockroachdb/redact v1.1.6 // indirect github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect - github.com/cometbft/cometbft-db v0.11.0 // indirect + github.com/cometbft/cometbft-db v0.14.1 // indirect github.com/cosmos/btcutil v1.0.5 // indirect github.com/cosmos/cosmos-proto v1.0.0-beta.5 // indirect github.com/cosmos/go-bip39 v1.0.0 // indirect github.com/cosmos/gogogateway v1.2.0 // indirect - github.com/cosmos/iavl v1.1.2 // indirect + github.com/cosmos/iavl v1.2.4 // indirect github.com/cosmos/ics23/go v0.11.0 // indirect - github.com/cosmos/ledger-cosmos-go v0.13.3 // indirect - github.com/danieljoos/wincred v1.1.2 // indirect + github.com/cosmos/ledger-cosmos-go v0.14.0 // indirect + github.com/danieljoos/wincred v1.2.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/desertbit/timer v0.0.0-20180107155436-c41aec40b27f // indirect - github.com/dgraph-io/badger/v2 v2.2007.4 // indirect + github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 // indirect + github.com/desertbit/timer v1.0.1 // indirect + github.com/dgraph-io/badger/v4 v4.2.0 // indirect github.com/dgraph-io/ristretto v0.1.1 // indirect - github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect github.com/distribution/reference v0.5.0 // indirect github.com/dustin/go-humanize v1.0.1 // indirect - github.com/dvsekhvalnov/jose2go v1.6.0 // indirect - github.com/emicklei/dot v1.6.1 // indirect - github.com/fatih/color v1.15.0 // indirect + github.com/dvsekhvalnov/jose2go v1.7.0 // indirect + github.com/emicklei/dot v1.6.2 // indirect + github.com/envoyproxy/go-control-plane/envoy v1.32.4 // indirect + github.com/envoyproxy/protoc-gen-validate v1.2.1 // indirect + github.com/ethereum/go-ethereum v1.15.11 // indirect + github.com/fatih/color v1.17.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/getsentry/sentry-go v0.27.0 // indirect - github.com/go-kit/kit v0.12.0 // indirect + github.com/fsnotify/fsnotify v1.9.0 // indirect + github.com/getsentry/sentry-go v0.32.0 // indirect + github.com/go-jose/go-jose/v4 v4.0.5 // indirect + github.com/go-kit/kit v0.13.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.1 // indirect + github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect + github.com/go-viper/mapstructure/v2 v2.2.1 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gogo/googleapis v1.4.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/glog v1.2.0 // indirect + github.com/golang/glog v1.2.4 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect - github.com/golang/mock v1.6.0 // indirect github.com/golang/protobuf v1.5.4 // indirect - github.com/golang/snappy v0.0.4 // indirect - github.com/google/btree v1.1.2 // indirect - github.com/google/go-cmp v0.6.0 // indirect + github.com/golang/snappy v0.0.5-0.20231225225746-43d5d4cd4e0e // indirect + github.com/google/btree v1.1.3 // indirect + github.com/google/flatbuffers v24.3.25+incompatible // indirect + github.com/google/go-cmp v0.7.0 // indirect github.com/google/gofuzz v1.2.0 // indirect github.com/google/orderedcode v0.0.1 // indirect - github.com/google/s2a-go v0.1.7 // indirect + github.com/google/s2a-go v0.1.9 // 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.5 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.4 // indirect + github.com/googleapis/gax-go/v2 v2.14.1 // indirect github.com/gorilla/handlers v1.5.2 // indirect - github.com/gorilla/websocket v1.5.0 // indirect + github.com/gorilla/websocket v1.5.3 // indirect github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // indirect github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect - github.com/hashicorp/go-getter v1.7.4 // indirect - github.com/hashicorp/go-hclog v1.5.0 // indirect + github.com/hashicorp/go-getter v1.7.8 // indirect + github.com/hashicorp/go-hclog v1.6.3 // indirect github.com/hashicorp/go-immutable-radix v1.3.1 // indirect - github.com/hashicorp/go-metrics v0.5.3 // indirect - github.com/hashicorp/go-plugin v1.5.2 // indirect + github.com/hashicorp/go-metrics v0.5.4 // indirect + github.com/hashicorp/go-plugin v1.6.3 // indirect github.com/hashicorp/go-safetemp v1.0.0 // indirect github.com/hashicorp/go-version v1.6.0 // indirect github.com/hashicorp/golang-lru v1.0.2 // indirect github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect - github.com/hashicorp/yamux v0.1.1 // indirect - github.com/hdevalence/ed25519consensus v0.1.0 // indirect - github.com/huandu/skiplist v1.2.0 // indirect + github.com/hashicorp/yamux v0.1.2 // indirect + github.com/hdevalence/ed25519consensus v0.2.0 // indirect + github.com/holiman/uint256 v1.3.2 // indirect + github.com/huandu/skiplist v1.2.1 // indirect github.com/iancoleman/strcase v0.3.0 // indirect github.com/improbable-eng/grpc-web v0.15.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/jmhodges/levigo v1.0.0 // indirect - github.com/klauspost/compress v1.17.7 // indirect + github.com/klauspost/compress v1.18.0 // indirect + github.com/klauspost/cpuid/v2 v2.2.10 // indirect github.com/kr/pretty v0.3.1 // indirect github.com/kr/text v0.2.0 // indirect - github.com/lib/pq v1.10.7 // indirect - github.com/linxGnu/grocksdb v1.8.14 // indirect - github.com/magiconair/properties v1.8.7 // indirect + github.com/lib/pq v1.10.9 // indirect + github.com/linxGnu/grocksdb v1.9.2 // indirect github.com/manifoldco/promptui v0.9.0 // indirect - github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-colorable v0.1.14 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/minio/highwayhash v1.0.2 // indirect + github.com/minio/highwayhash v1.0.3 // 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/mtibben/percent v0.2.1 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/oasisprotocol/curve25519-voi v0.0.0-20230904125328-1f23a7beb09a // indirect github.com/oklog/run v1.1.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/pelletier/go-toml/v2 v2.2.2 // indirect - github.com/petermattis/goid v0.0.0-20231207134359-e60b3f734c67 // indirect + github.com/pelletier/go-toml/v2 v2.2.4 // indirect + github.com/petermattis/goid v0.0.0-20240813172612-4fcff4a6cae7 // indirect github.com/pkg/errors v0.9.1 // indirect + github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // 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.52.2 // indirect - github.com/prometheus/procfs v0.13.0 // indirect + github.com/prometheus/common v0.63.0 // indirect + github.com/prometheus/procfs v0.15.1 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect - github.com/rogpeppe/go-internal v1.12.0 // indirect - github.com/rs/cors v1.8.3 // indirect - github.com/rs/zerolog v1.33.0 // indirect - github.com/sagikazarmark/locafero v0.4.0 // indirect - github.com/sagikazarmark/slog-shim v0.1.0 // indirect - github.com/sasha-s/go-deadlock v0.3.1 // indirect + github.com/rogpeppe/go-internal v1.14.1 // indirect + github.com/rs/cors v1.11.1 // indirect + github.com/rs/zerolog v1.34.0 // indirect + github.com/sagikazarmark/locafero v0.7.0 // indirect + github.com/sasha-s/go-deadlock v0.3.5 // indirect + github.com/shamaton/msgpack/v2 v2.2.0 // indirect github.com/sourcegraph/conc v0.3.0 // indirect - github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/pflag v1.0.5 // indirect - github.com/spf13/viper v1.19.0 // indirect + github.com/spf13/afero v1.12.0 // indirect + github.com/spf13/pflag v1.0.6 // indirect + github.com/spf13/viper v1.20.1 // indirect + github.com/spiffe/go-spiffe/v2 v2.5.0 // indirect github.com/subosito/gotenv v1.6.0 // indirect github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/tendermint/go-amino v0.16.0 // indirect github.com/tidwall/btree v1.7.0 // indirect + github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/ulikunitz/xz v0.5.11 // indirect + github.com/zeebo/errs v1.4.0 // indirect github.com/zondax/hid v0.9.2 // indirect github.com/zondax/ledger-go v0.14.3 // indirect - go.etcd.io/bbolt v1.3.8 // indirect + go.etcd.io/bbolt v1.4.0-alpha.1 // indirect go.opencensus.io v0.24.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/otel v1.24.0 // indirect - go.opentelemetry.io/otel/metric v1.24.0 // indirect - go.opentelemetry.io/otel/trace v1.24.0 // indirect + go.opentelemetry.io/auto/sdk v1.1.0 // indirect + go.opentelemetry.io/contrib/detectors/gcp v1.34.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.59.0 // indirect + go.opentelemetry.io/otel v1.34.0 // indirect + go.opentelemetry.io/otel/metric v1.34.0 // indirect + go.opentelemetry.io/otel/sdk v1.34.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.34.0 // indirect + go.opentelemetry.io/otel/trace v1.34.0 // indirect + go.uber.org/mock v0.5.2 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.26.0 // indirect - golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 // indirect - golang.org/x/net v0.27.0 // indirect - golang.org/x/oauth2 v0.21.0 // indirect - golang.org/x/sync v0.8.0 // indirect - golang.org/x/sys v0.24.0 // indirect - golang.org/x/term v0.23.0 // indirect - golang.org/x/text v0.17.0 // indirect - golang.org/x/time v0.5.0 // indirect - google.golang.org/api v0.186.0 // indirect - google.golang.org/genproto v0.0.0-20240701130421-f6361c86f094 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240624140628-dc46fd24d27d // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240709173604-40e1e62336c5 // indirect - google.golang.org/grpc v1.64.1 // indirect - google.golang.org/protobuf v1.34.2 // indirect - gopkg.in/ini.v1 v1.67.0 // indirect + golang.org/x/arch v0.15.0 // indirect + golang.org/x/crypto v0.37.0 // indirect + golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 // indirect + golang.org/x/net v0.39.0 // indirect + golang.org/x/oauth2 v0.27.0 // indirect + golang.org/x/sync v0.13.0 // indirect + golang.org/x/sys v0.32.0 // indirect + golang.org/x/term v0.31.0 // indirect + golang.org/x/text v0.24.0 // indirect + golang.org/x/time v0.10.0 // indirect + google.golang.org/api v0.222.0 // indirect + google.golang.org/genproto v0.0.0-20241118233622-e639e219e697 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20250414145226-207652e42e2e // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250422160041-2d3770c4ea7f // indirect + google.golang.org/grpc v1.72.0 // indirect + google.golang.org/protobuf v1.36.6 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - gotest.tools/v3 v3.5.1 // indirect - nhooyr.io/websocket v1.8.6 // indirect - pgregory.net/rapid v1.1.0 // indirect + gotest.tools/v3 v3.5.2 // indirect + nhooyr.io/websocket v1.8.17 // indirect + pgregory.net/rapid v1.2.0 // indirect sigs.k8s.io/yaml v1.4.0 // indirect ) diff --git a/modules/ibc-hooks/go.sum b/modules/ibc-hooks/go.sum index 3d895163..5e581afe 100644 --- a/modules/ibc-hooks/go.sum +++ b/modules/ibc-hooks/go.sum @@ -1,8 +1,11 @@ +cel.dev/expr v0.20.0 h1:OunBvVCfvpWlt4dN7zg3FM6TDkzOePe1+foGJ9AXeeI= +cel.dev/expr v0.20.0/go.mod h1:MrpN08Q+lEBs+bGYdLxxHkZoUSsCp0nSKTs0nTymJgw= 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.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= @@ -15,6 +18,7 @@ cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOY 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.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= @@ -26,32 +30,96 @@ cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+Y cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4= cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc= cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA= +cloud.google.com/go v0.100.1/go.mod h1:fs4QogzfH5n2pBXBP9vRiU+eCny7lD2vmFZy79Iuw1U= cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w99A= cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc= cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34hIU= cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRYtA= -cloud.google.com/go v0.115.0 h1:CnFSK6Xo3lDYRoBKEcAtia6VSC837/ZkJuRduSFnr14= -cloud.google.com/go v0.115.0/go.mod h1:8jIM5vVgoAEoiVxQ/O4BFTfHqulPZgs/ufEzMcFMdWU= +cloud.google.com/go v0.105.0/go.mod h1:PrLgOJNe5nfE9UMxKxgXj4mD3voiP+YQ6gdt6KMFOKM= +cloud.google.com/go v0.107.0/go.mod h1:wpc2eNrD7hXUTy8EKS10jkxpZBjASrORK7goS+3YX2I= +cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY= +cloud.google.com/go v0.116.0 h1:B3fRrSDkLRt5qSHWe40ERJvhvnQwdZiHu0bJOpldweE= +cloud.google.com/go v0.116.0/go.mod h1:cEPSRWPzZEswwdr9BxE6ChEn01dWlTaF05LiC2Xs70U= +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/go.mod h1:R0EiYnwV5fsRFiKZkPHr6mwyk2wxUJ30nL4j2pcFY2E= +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= +cloud.google.com/go/accesscontextmanager v1.7.0/go.mod h1:CEGLewx8dwa33aDAZQujl7Dx+uYhS0eay198wB/VumQ= 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= +cloud.google.com/go/aiplatform v1.35.0/go.mod h1:7MFT/vCaOyZT/4IIFfxH4ErVg/4ku6lKv3w0+tFTgXQ= +cloud.google.com/go/aiplatform v1.36.1/go.mod h1:WTm12vJRPARNvJ+v6P52RDHCNe4AhvjcIZ/9/RRHy/k= +cloud.google.com/go/aiplatform v1.37.0/go.mod h1:IU2Cv29Lv9oCn/9LkFiiuKfwrRTq+QQMbW+hPCxJGZw= 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= +cloud.google.com/go/analytics v0.18.0/go.mod h1:ZkeHGQlcIPkw0R/GW+boWHhCOR43xz9RN/jn7WcqfIE= +cloud.google.com/go/analytics v0.19.0/go.mod h1:k8liqf5/HCnOUkbawNtrWWc+UAzyDlW89doe8TtoDsE= +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/go.mod h1:GpnZR3Q4rR7LVu5951qfXPJCHquZt02jf7xQx7kpqN8= +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/go.mod h1:KFaCqvBRU6idyhSNyn3vlHXc8VMDJdRmwDF6JyFRqZ8= +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/go.mod h1:BFNzW7yQVLZ3yj0TKcwzb8n25CFBri51GVGOEUcgQsc= +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/go.mod h1:kbpXu5upyiAlGkKrJgQl8A0rKNNJ7dQ377pdroRSSi8= +cloud.google.com/go/appengine v1.4.0/go.mod h1:CS2NhuBuDXM9f+qscZ6V86m1MIIqPj3WC/UoEuR1Sno= +cloud.google.com/go/appengine v1.5.0/go.mod h1:TfasSozdkFI0zeoxW3PTBLiNqRmzraodCWatWI9Dmak= +cloud.google.com/go/appengine v1.6.0/go.mod h1:hg6i0J/BD2cKmDJbaFSYHFyZkgBEfQrDg/X0V5fJn84= +cloud.google.com/go/appengine v1.7.0/go.mod h1:eZqpbHFCqRGa2aCdope7eC0SWLV1j0neb/QnMJVWx6A= +cloud.google.com/go/appengine v1.7.1/go.mod h1:IHLToyb/3fKutRysUlFO0BPt5j7RiQ45nrzEJmKTo6E= 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= +cloud.google.com/go/area120 v0.7.1/go.mod h1:j84i4E1RboTWjKtZVWXPqvK5VHQFJRF2c1Nm69pWm9k= 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= +cloud.google.com/go/artifactregistry v1.9.0/go.mod h1:2K2RqvA2CYvAeARHRkLDhMDJ3OXy26h3XW+3/Jh2uYc= +cloud.google.com/go/artifactregistry v1.11.1/go.mod h1:lLYghw+Itq9SONbCa1YWBoWs1nOucMH0pwXN1rOBZFI= +cloud.google.com/go/artifactregistry v1.11.2/go.mod h1:nLZns771ZGAwVLzTX/7Al6R9ehma4WUEhZGWV6CeQNQ= +cloud.google.com/go/artifactregistry v1.12.0/go.mod h1:o6P3MIvtzTOnmvGagO9v/rOjjA0HmhJ+/6KAXrmYDCI= +cloud.google.com/go/artifactregistry v1.13.0/go.mod h1:uy/LNfoOIivepGhooAUpL1i30Hgee3Cu0l4VTWHUC08= 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= +cloud.google.com/go/asset v1.9.0/go.mod h1:83MOE6jEJBMqFKadM9NLRcs80Gdw76qGuHn8m3h8oHQ= +cloud.google.com/go/asset v1.10.0/go.mod h1:pLz7uokL80qKhzKr4xXGvBQXnzHn5evJAEAtZiIb0wY= +cloud.google.com/go/asset v1.11.1/go.mod h1:fSwLhbRvC9p9CXQHJ3BgFeQNM4c9x10lqlrdEUYXlJo= +cloud.google.com/go/asset v1.12.0/go.mod h1:h9/sFOa4eDIyKmH6QMpm4eUK3pDojWnUhTgJlk762Hg= +cloud.google.com/go/asset v1.13.0/go.mod h1:WQAMyYek/b7NBpYq/K4KJWcRqzoalEsxz/t/dTk4THw= 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= -cloud.google.com/go/auth v0.6.0 h1:5x+d6b5zdezZ7gmLWD1m/xNjnaQ2YDhmIz/HH3doy1g= -cloud.google.com/go/auth v0.6.0/go.mod h1:b4acV+jLQDyjwm4OXHYjNvRi4jvGBzHWJRtJcy+2P4g= -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/assuredworkloads v1.8.0/go.mod h1:AsX2cqyNCOvEQC8RMPnoc0yEarXQk6WEKkxYfL6kGIo= +cloud.google.com/go/assuredworkloads v1.9.0/go.mod h1:kFuI1P78bplYtT77Tb1hi0FMxM0vVpRC7VVoJC3ZoT0= +cloud.google.com/go/assuredworkloads v1.10.0/go.mod h1:kwdUQuXcedVdsIaKgKTp9t0UJkE5+PAVNhdQm4ZVq2E= +cloud.google.com/go/auth v0.14.1 h1:AwoJbzUdxA/whv1qj3TLKwh3XX5sikny2fc40wUl+h0= +cloud.google.com/go/auth v0.14.1/go.mod h1:4JHUxlGXisL0AW8kXPtUF6ztuOksyfUQNFjfsOCXkPM= +cloud.google.com/go/auth/oauth2adapt v0.2.7 h1:/Lc7xODdqcEw8IrZ9SvwnlLX6j9FHQM74z6cBk9Rw6M= +cloud.google.com/go/auth/oauth2adapt v0.2.7/go.mod h1:NTbTTzfvPl1Y3V1nPpOgl2w6d/FjO7NNUQaWSox6ZMc= 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= +cloud.google.com/go/automl v1.8.0/go.mod h1:xWx7G/aPEe/NP+qzYXktoBSDfjO+vnKMGgsApGJJquM= +cloud.google.com/go/automl v1.12.0/go.mod h1:tWDcHDp86aMIuHmyvjuKeeHEGq76lD7ZqfGLN6B0NuU= +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/go.mod h1:dXGxEkmR9BMwxhzBhV0AioD0ULBmuLZI8CdwalUxuss= +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/go.mod h1:vLZN95s6teRUqRQ4s3RLDsH8PvboqBK+rn1oevL159g= +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= +cloud.google.com/go/beyondcorp v0.5.0/go.mod h1:uFqj9X+dSfrheVp7ssLTaRHd2EHqSL4QZmH4e8WXGGU= 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= @@ -59,12 +127,44 @@ cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUM 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/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= +cloud.google.com/go/bigquery v1.47.0/go.mod h1:sA9XOgy0A8vQK9+MWhEQTY6Tix87M/ZurWFIxmF9I/E= +cloud.google.com/go/bigquery v1.48.0/go.mod h1:QAwSz+ipNgfL5jxiaK7weyOhzdoAy1zFm0Nf1fysJac= +cloud.google.com/go/bigquery v1.49.0/go.mod h1:Sv8hMmTFFYBlt/ftw2uN6dFdQPzBlREY9yBh7Oy7/4Q= +cloud.google.com/go/bigquery v1.50.0/go.mod h1:YrleYEh2pSEbgTBZYMJ5SuSr0ML3ypjRB1zgf7pvQLU= 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= +cloud.google.com/go/billing v1.6.0/go.mod h1:WoXzguj+BeHXPbKfNWkqVtDdzORazmCjraY+vrxcyvI= +cloud.google.com/go/billing v1.7.0/go.mod h1:q457N3Hbj9lYwwRbnlD7vUpyjq6u5U1RAOArInEiD5Y= +cloud.google.com/go/billing v1.12.0/go.mod h1:yKrZio/eu+okO/2McZEbch17O5CB5NpZhhXG6Z766ss= +cloud.google.com/go/billing v1.13.0/go.mod h1:7kB2W9Xf98hP9Sr12KfECgfGclsH3CQR0R08tnRlRbc= 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= +cloud.google.com/go/binaryauthorization v1.4.0/go.mod h1:tsSPQrBd77VLplV70GUhBf/Zm3FsKmgSqgm4UmiDItk= +cloud.google.com/go/binaryauthorization v1.5.0/go.mod h1:OSe4OU1nN/VswXKRBmciKpo9LulY41gch5c68htf3/Q= +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/go.mod h1:3Hh64rCKjRAX8dXgRAyOcY5vQ/fE1sh8o+Mdd6KPgY8= +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= +cloud.google.com/go/channel v1.12.0/go.mod h1:VkxCGKASi4Cq7TbXxlaBezonAYpp1GCnKMY6tnMQnLU= +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= +cloud.google.com/go/cloudbuild v1.7.0/go.mod h1:zb5tWh2XI6lR9zQmsm1VRA+7OCuve5d8S+zJUul8KTg= +cloud.google.com/go/cloudbuild v1.9.0/go.mod h1:qK1d7s4QlO0VwfYn5YuClDGg2hfmLZEb4wQGAbIgL1s= +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/go.mod h1:QSxQnhikCLUw13iAbffF2CZxAER3xDGNHjsTAkQJcQA= 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= +cloud.google.com/go/cloudtasks v1.8.0/go.mod h1:gQXUIwCSOI4yPVK7DgTVFiiP0ZW/eQkydWzwVMdHxrI= +cloud.google.com/go/cloudtasks v1.9.0/go.mod h1:w+EyLsVkLWHcOaqNEyvcKAsWp9p29dL6uL9Nst1cI7Y= +cloud.google.com/go/cloudtasks v1.10.0/go.mod h1:NDSoTLkZ3+vExFEWu2UJV1arUyzVDAiZtdWcsUyNwBs= cloud.google.com/go/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow= cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM= cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6mkzQJeu0M= @@ -72,153 +172,485 @@ cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU= -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/compute v1.12.0/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU= +cloud.google.com/go/compute v1.12.1/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU= +cloud.google.com/go/compute v1.13.0/go.mod h1:5aPTS0cUNMIc1CE546K+Th6weJUNQErARyZtRXDJ8GE= +cloud.google.com/go/compute v1.14.0/go.mod h1:YfLtxrj9sU4Yxv+sXzZkyPjEyPBZfXHUvjxega5vAdo= +cloud.google.com/go/compute v1.15.1/go.mod h1:bjjoF/NtFUrkD/urWfdHaKuOPDR5nWIs63rR+SXhcpA= +cloud.google.com/go/compute v1.18.0/go.mod h1:1X7yHxec2Ga+Ss6jPyjxRxpu2uu7PLgsOVXvgU0yacs= +cloud.google.com/go/compute v1.19.0/go.mod h1:rikpw2y+UMidAe9tISo04EHNOIf42RLYF/q8Bs93scU= +cloud.google.com/go/compute v1.19.1/go.mod h1:6ylj3a05WF8leseCdIf77NK0g1ey+nj5IKd5/kvShxE= +cloud.google.com/go/compute/metadata v0.1.0/go.mod h1:Z1VN+bulIf6bt4P/C37K4DyZYZEXYonfTBHHFPO/4UU= +cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= +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/compute/metadata v0.6.0 h1:A6hENjEsCDtC1k8byVsgwvVcioamEHvZ4j01OwKxG9I= +cloud.google.com/go/compute/metadata v0.6.0/go.mod h1:FjyFAW1MW0C203CEOMDTu3Dk1FlqW3Rga40jzHL4hfg= +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/go.mod h1:IIDlT6CLcDoyv79kDv8iWxMSTZhLxSCofVV5W6YFM/w= +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= +cloud.google.com/go/container v1.14.0/go.mod h1:3AoJMPhHfLDxLvrlVWaK57IXzaPnLaZq63WX59aQBfM= +cloud.google.com/go/container v1.15.0/go.mod h1:ft+9S0WGjAyjDggg5S06DXj+fHJICWg8L7isCQe9pQA= 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= +cloud.google.com/go/containeranalysis v0.9.0/go.mod h1:orbOANbwk5Ejoom+s+DUCTTJ7IBdBQJDcSylAx/on9s= 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= +cloud.google.com/go/datacatalog v1.7.0/go.mod h1:9mEl4AuDYWw81UGc41HonIHH7/sn52H0/tc8f8ZbZIE= +cloud.google.com/go/datacatalog v1.8.0/go.mod h1:KYuoVOv9BM8EYz/4eMFxrr4DUKhGIOXxZoKYF5wdISM= +cloud.google.com/go/datacatalog v1.8.1/go.mod h1:RJ58z4rMp3gvETA465Vg+ag8BGgBdnRPEMMSTr5Uv+M= +cloud.google.com/go/datacatalog v1.12.0/go.mod h1:CWae8rFkfp6LzLumKOnmVh4+Zle4A3NXLzVJ1d1mRm0= +cloud.google.com/go/datacatalog v1.13.0/go.mod h1:E4Rj9a5ZtAxcQJlEBTLgMTphfP11/lNaAshpoBgemX8= 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/go.mod h1:Rcf5YgTKPtQyYz8bLYhFoIV/vP39eL7fWNcSOyFfLJE= 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= +cloud.google.com/go/dataform v0.6.0/go.mod h1:QPflImQy33e29VuapFdf19oPbE4aYTJxr31OAPV+ulA= +cloud.google.com/go/dataform v0.7.0/go.mod h1:7NulqnVozfHvWUBpMDfKMUESr+85aJsC/2O0o3jWPDE= +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/go.mod h1:WBsMF8F1RhSXvVM8rCV3AeyWVxcC2xY6vith3iw3S+8= 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/go.mod h1:WPQb1y08RJbmpM3ww0CSUAGweL0SxByuW2E+FU+wXcM= +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= +cloud.google.com/go/dataplex v1.6.0/go.mod h1:bMsomC/aEJOSpHXdFKFGQ1b0TDPIeL28nJObeO1ppRs= +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/go.mod h1:zrF3aX0uV3ikkMz6z4uBbIKyhRITnxvr4i3IjKsKrw4= 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/go.mod h1:Lx9OcIIeqCrw1a6KdO3/5KMP1wAmTc0slZWwP12Qq3c= 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/datastore v1.10.0/go.mod h1:PC5UzAmDEkAmkfaknstTYbNpgE49HAgW2J1gcgUfmdM= +cloud.google.com/go/datastore v1.11.0/go.mod h1:TvGxBIHCS50u8jzG+AW/ppf87v1of8nwzFNgEZU1D3c= 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= +cloud.google.com/go/datastream v1.5.0/go.mod h1:6TZMMNPwjUqZHBKPQ1wwXpb0d5VDVPl2/XoS5yi88q4= +cloud.google.com/go/datastream v1.6.0/go.mod h1:6LQSuswqLa7S4rPAOZFVjHIG3wJIjZcZrw8JDEDJuIs= +cloud.google.com/go/datastream v1.7.0/go.mod h1:uxVRMm2elUSPuh65IbZpzJNMbuzkcvu5CjMqVIUHrww= +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= +cloud.google.com/go/deploy v1.8.0/go.mod h1:z3myEJnA/2wnB4sgjqdMfgxCA0EqC3RBTNcVPs93mtQ= 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= +cloud.google.com/go/dialogflow v1.18.0/go.mod h1:trO7Zu5YdyEuR+BhSNOqJezyFQ3aUzz0njv7sMx/iek= +cloud.google.com/go/dialogflow v1.19.0/go.mod h1:JVmlG1TwykZDtxtTXujec4tQ+D8SBFMoosgy+6Gn0s0= +cloud.google.com/go/dialogflow v1.29.0/go.mod h1:b+2bzMe+k1s9V+F2jbJwpHPzrnIyHihAdRFMtn2WXuM= +cloud.google.com/go/dialogflow v1.31.0/go.mod h1:cuoUccuL1Z+HADhyIA7dci3N5zUssgpBJmCzI6fNRB4= +cloud.google.com/go/dialogflow v1.32.0/go.mod h1:jG9TRJl8CKrDhMEcvfcfFkkpp8ZhgPz3sBGmAUYJ2qE= +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/go.mod h1:qdgmqgTyReTz5/YNSSuueR8pl7hO0o9bQ39ZhtgkWp4= 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= +cloud.google.com/go/documentai v1.10.0/go.mod h1:vod47hKQIPeCfN2QS/jULIvQTugbmdc0ZvxxfQY1bg4= +cloud.google.com/go/documentai v1.16.0/go.mod h1:o0o0DLTEZ+YnJZ+J4wNfTxmDVyrkzFvttBXXtYRMHkM= +cloud.google.com/go/documentai v1.18.0/go.mod h1:F6CK6iUH8J81FehpskRmhLq/3VlwQvb7TvwOceQ2tbs= 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/go.mod h1:M9i3MMDzGFXsydri9/vW+EWz9sWb4I6WyHqdlAk0idE= 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= +cloud.google.com/go/edgecontainer v1.0.0/go.mod h1:cttArqZpBB2q58W/upSG++ooo6EsblxDIolxa3jSjbY= +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= +cloud.google.com/go/essentialcontacts v1.4.0/go.mod h1:8tRldvHYsmnBCHdFpvU+GL75oWiBKl80BiqlFh9tp+8= +cloud.google.com/go/essentialcontacts v1.5.0/go.mod h1:ay29Z4zODTuwliK7SnX8E86aUF2CTzdNtvv42niCX0M= +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= +cloud.google.com/go/eventarc v1.11.0/go.mod h1:PyUjsUKPWoRBCHeOxZd/lbOOjahV41icXyUY5kSTvVY= +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= +cloud.google.com/go/filestore v1.6.0/go.mod h1:di5unNuss/qfZTw2U9nhFqo8/ZDSc466dre85Kydllg= +cloud.google.com/go/firestore v1.9.0/go.mod h1:HMkjKHNTtRyZNiMzu7YAsLr9K3X2udY2AMwDaMEQiiE= 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= +cloud.google.com/go/functions v1.9.0/go.mod h1:Y+Dz8yGguzO3PpIjhLTbnqV1CWmgQ5UwtlpzoyquQ08= +cloud.google.com/go/functions v1.10.0/go.mod h1:0D3hEOe3DbEvCXtYOZHQZmD+SzYsi1YbI7dGvHfldXw= +cloud.google.com/go/functions v1.12.0/go.mod h1:AXWGrF3e2C/5ehvwYo/GH6O5s09tOPksiKhz+hH8WkA= +cloud.google.com/go/functions v1.13.0/go.mod h1:EU4O007sQm6Ef/PwRsI8N2umygGqPBS/IZQKBQBcJ3c= 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= +cloud.google.com/go/gaming v1.8.0/go.mod h1:xAqjS8b7jAVW0KFYeRUxngo9My3f33kFmua++Pi+ggM= +cloud.google.com/go/gaming v1.9.0/go.mod h1:Fc7kEmCObylSWLO334NcO+O9QMDyz+TKC4v1D7X+Bc0= +cloud.google.com/go/gkebackup v0.2.0/go.mod h1:XKvv/4LfG829/B8B7xRkk8zRrOEbKtEam6yNfuQNH60= +cloud.google.com/go/gkebackup v0.3.0/go.mod h1:n/E671i1aOQvUxT541aTkCwExO/bTer2HDlj4TsBRAo= +cloud.google.com/go/gkebackup v0.4.0/go.mod h1:byAyBGUwYGEEww7xsbnUTBHIYcOPy/PgUWUtOeRm9Vg= 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/go.mod h1:SNfmVqPkaEi3bF/B3CNZOAYPYdg7sU+obZ+QTky2Myw= 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= +cloud.google.com/go/gkehub v0.12.0/go.mod h1:djiIwwzTTBrF5NaXCGv3mf7klpEMcST17VBTVVDcuaw= +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/go.mod h1:W0JDkiyi3Tqh0TJr//y19wyb1yf8llHVto2Htf2Ja3Y= cloud.google.com/go/grafeas v0.2.0/go.mod h1:KhxgtF2hb0P191HlY5besjYm6MqTSTj3LSI+M+ByZHc= +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/go.mod h1:TFCClYLd64Eaa12sFVmUyG62tk4mdIsI7pAnSXRkcFo= +cloud.google.com/go/iam v0.1.0/go.mod h1:vcUNEa0pEm0qRVpmWepWaFMIAI8/hjB9mO8rNCJtF6c= cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc= -cloud.google.com/go/iam v1.1.9 h1:oSkYLVtVme29uGYrOcKcvJRht7cHJpYD09GM9JaR0TE= -cloud.google.com/go/iam v1.1.9/go.mod h1:Nt1eDWNYH9nGQg3d/mY7U1hvfGmsaG9o/kLGoLoLXjQ= +cloud.google.com/go/iam v0.6.0/go.mod h1:+1AH33ueBne5MzYccyMHtEKqLE4/kJOibtffMHDMFMc= +cloud.google.com/go/iam v0.7.0/go.mod h1:H5Br8wRaDGNc8XP3keLc4unfUUZeyH3Sfl9XpQEYOeg= +cloud.google.com/go/iam v0.8.0/go.mod h1:lga0/y3iH6CX7sYqypWJ33hf7kkfXJag67naqGESjkE= +cloud.google.com/go/iam v0.11.0/go.mod h1:9PiLDanza5D+oWFZiH1uG+RnRCfEGKoyl6yo4cgWZGY= +cloud.google.com/go/iam v0.12.0/go.mod h1:knyHGviacl11zrtZUoDuYpDgLjvr28sLQaG0YB2GYAY= +cloud.google.com/go/iam v0.13.0/go.mod h1:ljOg+rcNfzZ5d6f1nAUJ8ZIxOaZUVoS14bKCtaLZ/D0= +cloud.google.com/go/iam v1.2.2 h1:ozUSofHUGf/F4tCNy/mu9tHLTaxZFLOUiKzjcgWHGIA= +cloud.google.com/go/iam v1.2.2/go.mod h1:0Ys8ccaZHdI1dEUilwzqng/6ps2YB6vRsjIe00/+6JY= +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= +cloud.google.com/go/iap v1.7.0/go.mod h1:beqQx56T9O1G1yNPph+spKpNibDlYIiIixiqsQXxLIo= +cloud.google.com/go/iap v1.7.1/go.mod h1:WapEwPc7ZxGt2jFGB/C/bm+hP0Y6NXzOYGjpPnmMS74= +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/go.mod h1:JBdTYwANikFKaDP6LtW5JAi4gubs57SVNQjemdt6xV4= +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= +cloud.google.com/go/iot v1.6.0/go.mod h1:IqdAsmE2cTYYNO1Fvjfzo9po179rAtJeVGUvkLN3rLE= +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= +cloud.google.com/go/kms v1.8.0/go.mod h1:4xFEhYFqvW+4VMELtZyxomGSYtSQKzM178ylFW4jMAg= +cloud.google.com/go/kms v1.9.0/go.mod h1:qb1tPTgfF9RQP8e1wq4cLFErVuTJv7UsSC915J8dh3w= +cloud.google.com/go/kms v1.10.0/go.mod h1:ng3KTUtQQU9bPX3+QGLsflZIHlkbn8amFAMY63m8d24= +cloud.google.com/go/kms v1.10.1/go.mod h1:rIWk/TryCkR59GMC3YtHtXeLzd634lBbKenvyySAyYI= cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic= cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI= +cloud.google.com/go/language v1.7.0/go.mod h1:DJ6dYN/W+SQOjF8e1hLQXMF21AkH2w9wiPzPCJa2MIE= +cloud.google.com/go/language v1.8.0/go.mod h1:qYPVHf7SPoNNiCL2Dr0FfEFNil1qi3pQEyygwpgVKB8= +cloud.google.com/go/language v1.9.0/go.mod h1:Ns15WooPM5Ad/5no/0n81yUetis74g3zrbeJBE+ptUY= 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/go.mod h1:lFxiEOMqII6XggGbOnKiyZ7IBwoIqA84ClvoezaA/bo= +cloud.google.com/go/logging v1.6.1/go.mod h1:5ZO0mHHbvm8gEmeEUHrmDlTDSu5imF6MUP9OfilNXBw= +cloud.google.com/go/logging v1.7.0/go.mod h1:3xjP2CjkM3ZkO73aj4ASA5wRPGGCRrPIAeNqVNkzY8M= +cloud.google.com/go/logging v1.12.0 h1:ex1igYcGFd4S/RZWOCU51StlIEuey5bjqwH9ZYjHibk= +cloud.google.com/go/logging v1.12.0/go.mod h1:wwYBt5HlYP1InnrtYI0wtwttpVU1rifnMT7RejksUAM= +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.4.1/go.mod h1:4iWDqhBZ70CvZ6BfETbvam3T8FMvLK+eFj0E6AaRQTo= +cloud.google.com/go/longrunning v0.6.2 h1:xjDfh1pQcWPEvnfjZmwjKQEcHnpz6lHjfy7Fo0MK+hc= +cloud.google.com/go/longrunning v0.6.2/go.mod h1:k/vIs83RN4bE3YCswdXC5PFfWVILjm3hpEUlSko4PiI= +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/go.mod h1:+dWcZ0JlUmpuxpIDfyP5pP5y0bLdRwOS4Lp7gMni/LA= +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/go.mod h1:3GnvVl3cqeSvgMcpRlQidXsPYuDGQ8naBis7MVzpXsY= 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/go.mod h1:LCnB/gZr90ONOIQLgSXagp8XUW1ODs2UmUMvcgMfI2I= 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= +cloud.google.com/go/memcache v1.7.0/go.mod h1:ywMKfjWhNtkQTxrWxCkCFkoPjLHPW6A7WOTVI8xy3LY= +cloud.google.com/go/memcache v1.9.0/go.mod h1:8oEyzXCu+zo9RzlEaEjHl4KkgjlNDaXbCQeQWlzNFJM= 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= +cloud.google.com/go/metastore v1.8.0/go.mod h1:zHiMc4ZUpBiM7twCIFQmJ9JMEkDSyZS9U12uf7wHqSI= +cloud.google.com/go/metastore v1.10.0/go.mod h1:fPEnH3g4JJAk+gMRnrAnoqyv2lpUCqJPWOodSaf45Eo= +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= +cloud.google.com/go/monitoring v1.13.0/go.mod h1:k2yMBAB1H9JT/QETjNkgdCGD9bPF712XiLTVr+cBrpw= +cloud.google.com/go/monitoring v1.21.2 h1:FChwVtClH19E7pJ+e0xUhJPGksctZNVOk2UhMmblmdU= +cloud.google.com/go/monitoring v1.21.2/go.mod h1:hS3pXvaG8KgWTSz+dAdyzPrGUYmi2Q+WFX8g2hqVEZU= 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= +cloud.google.com/go/networkconnectivity v1.7.0/go.mod h1:RMuSbkdbPwNMQjB5HBWD5MpTBnNm39iAVpC3TmsExt8= +cloud.google.com/go/networkconnectivity v1.10.0/go.mod h1:UP4O4sWXJG13AqrTdQCD9TnLGEbtNRqjuaaA7bNjF5E= +cloud.google.com/go/networkconnectivity v1.11.0/go.mod h1:iWmDD4QF16VCDLXUqvyspJjIEtBR/4zq5hwnY2X3scM= +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/go.mod h1:5pKPqyXjB/sgtvB5xqOemumoQNB7y95Q7S+4rjSOPYY= 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= +cloud.google.com/go/networksecurity v0.8.0/go.mod h1:B78DkqsxFG5zRSVuwYFRZ9Xz8IcQ5iECsNrPn74hKHU= 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= +cloud.google.com/go/notebooks v1.5.0/go.mod h1:q8mwhnP9aR8Hpfnrc5iN5IBhrXUy8S2vuYs+kBJ/gu0= +cloud.google.com/go/notebooks v1.7.0/go.mod h1:PVlaDGfJgj1fl1S3dUwhFMXFgfYGhYQt2164xOMONmE= +cloud.google.com/go/notebooks v1.8.0/go.mod h1:Lq6dYKOYOWUCTvw5t2q1gp1lAp0zxAxRycayS0iJcqQ= +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/go.mod h1:IvUSefKiwd1a5p0RgHDbWCIbDFgKuEdB+fPPuP0IDLI= +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/go.mod h1:M62Bevp7pkxStDfFfTuCOaXgaaqRAga1yKyoMtEoWPQ= +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/go.mod h1:w1fo8b7rRqlXlIJbVhOMPrwVljyuW5mqssvBtU18ONc= 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= +cloud.google.com/go/osconfig v1.10.0/go.mod h1:uMhCzqC5I8zfD9zDEAfvgVhDS8oIjySWh+l4WK6GnWw= +cloud.google.com/go/osconfig v1.11.0/go.mod h1:aDICxrur2ogRd9zY5ytBLV89KEgT2MKB2L/n6x1ooPw= 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= +cloud.google.com/go/oslogin v1.7.0/go.mod h1:e04SN0xO1UNJ1M5GP0vzVBFicIe4O53FOfcixIqTyXo= +cloud.google.com/go/oslogin v1.9.0/go.mod h1:HNavntnH8nzrn8JCTT5fj18FuJLFJc4NaZJtBnQtKFs= 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/go.mod h1:8qJI4QKHoda/sb/7/YmMQ2omRLSLYSu9bU0EKCNI+Lk= +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= +cloud.google.com/go/policytroubleshooter v1.6.0/go.mod h1:zYqaPTsmfvpjm5ULxAyD/lINQxJ0DDsnWOP/GZ7xzBc= 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= +cloud.google.com/go/privatecatalog v0.8.0/go.mod h1:nQ6pfaegeDAq/Q5lrfCQzQLhubPiZhSaNhIgfJlnIXs= 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/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= +cloud.google.com/go/pubsub v1.30.0/go.mod h1:qWi1OPS0B+b5L+Sg6Gmc9zD1Y+HaM0MdUr7LsupY1P4= +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/go.mod h1:8hVMwRXfDfvGm3fahVbtDbiLePT3gpoiJYJY+vxWxVM= cloud.google.com/go/recaptchaenterprise v1.3.1/go.mod h1:OdD+q+y4XGeAlxRaMn1Y7/GveP6zmq76byL6tjPE7d4= cloud.google.com/go/recaptchaenterprise/v2 v2.1.0/go.mod h1:w9yVqajwroDNTfGuhmOjPDN//rZGySaf6PtFVcSCa7o= cloud.google.com/go/recaptchaenterprise/v2 v2.2.0/go.mod h1:/Zu5jisWGeERrd5HnlS3EUGb/D335f9k51B/FVil0jk= cloud.google.com/go/recaptchaenterprise/v2 v2.3.0/go.mod h1:O9LwGCjrhGHBQET5CA7dd5NwwNQUErSgEDit1DLNTdo= +cloud.google.com/go/recaptchaenterprise/v2 v2.4.0/go.mod h1:Am3LHfOuBstrLrNCBrlI5sbwx9LBg3te2N6hGvHn2mE= +cloud.google.com/go/recaptchaenterprise/v2 v2.5.0/go.mod h1:O8LzcHXN3rz0j+LBC91jrwI3R+1ZSZEWrfL7XHgNo9U= +cloud.google.com/go/recaptchaenterprise/v2 v2.6.0/go.mod h1:RPauz9jeLtB3JVzg6nCbe12qNoaa8pXc4d/YukAmcnA= +cloud.google.com/go/recaptchaenterprise/v2 v2.7.0/go.mod h1:19wVj/fs5RtYtynAPJdDTb69oW0vNHYDBTbB4NvMD9c= 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/go.mod h1:1reUcE3GIu6MeBz/h5xZJqNLuuVjNg1lmWMPyjatzac= 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= +cloud.google.com/go/recommender v1.8.0/go.mod h1:PkjXrTT05BFKwxaUxQmtIlrtj0kph108r02ZZQ5FE70= +cloud.google.com/go/recommender v1.9.0/go.mod h1:PnSsnZY7q+VL1uax2JWkt/UegHssxjUVVCrX52CuEmQ= 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= +cloud.google.com/go/redis v1.10.0/go.mod h1:ThJf3mMBQtW18JzGgh41/Wld6vnDDc/F/F35UolRZPM= +cloud.google.com/go/redis v1.11.0/go.mod h1:/X6eicana+BWcUda5PpwZC48o37SiFVTFSs0fWAJ7uQ= +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= +cloud.google.com/go/resourcemanager v1.6.0/go.mod h1:YcpXGRs8fDzcUl1Xw8uOVmI8JEadvhRIkoXXUNVYcVo= +cloud.google.com/go/resourcemanager v1.7.0/go.mod h1:HlD3m6+bwhzj9XCouqmeiGuni95NTrExfhoSrkC/3EI= +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/go.mod h1:+xJF7QSG6undsQDfsCJyqWXyBwUoJLhetkRMDRnIoXA= 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= +cloud.google.com/go/retail v1.11.0/go.mod h1:MBLk1NaWPmh6iVFSz9MeKG/Psyd7TAgm6y/9L2B4x9Y= +cloud.google.com/go/retail v1.12.0/go.mod h1:UMkelN/0Z8XvKymXFbD4EhFJlYKRx1FGhQkVPU5kF14= +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= +cloud.google.com/go/run v0.9.0/go.mod h1:Wwu+/vvg8Y+JUApMwEDfVfhetv30hCG4ZwDR/IXl2Qg= 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= +cloud.google.com/go/scheduler v1.7.0/go.mod h1:jyCiBqWW956uBjjPMMuX09n3x37mtyPJegEWKxRsn44= +cloud.google.com/go/scheduler v1.8.0/go.mod h1:TCET+Y5Gp1YgHT8py4nlg2Sew8nUHMqcpousDgXJVQc= +cloud.google.com/go/scheduler v1.9.0/go.mod h1:yexg5t+KSmqu+njTIh3b7oYPheFtBWGcbVUYF1GGMIc= 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= +cloud.google.com/go/secretmanager v1.10.0/go.mod h1:MfnrdvKMPNra9aZtQFvBcvRU54hbPD8/HayQdlUgJpU= 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= +cloud.google.com/go/security v1.9.0/go.mod h1:6Ta1bO8LXI89nZnmnsZGp9lVoVWXqsVbIq/t9dzI+2Q= +cloud.google.com/go/security v1.10.0/go.mod h1:QtOMZByJVlibUT2h9afNDWRZ1G96gVywH8T5GUSb9IA= +cloud.google.com/go/security v1.12.0/go.mod h1:rV6EhrpbNHrrxqlvW0BWAIawFWq3X90SduMJdFwtLB8= +cloud.google.com/go/security v1.13.0/go.mod h1:Q1Nvxl1PAgmeW0y3HTt54JYIvUdtcpYKVfIB8AOMZ+0= 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= +cloud.google.com/go/securitycenter v1.16.0/go.mod h1:Q9GMaLQFUD+5ZTabrbujNWLtSLZIZF7SAR0wWECrjdk= +cloud.google.com/go/securitycenter v1.18.1/go.mod h1:0/25gAzCM/9OL9vVx4ChPeM/+DlfGQJDwBy/UC8AKK0= +cloud.google.com/go/securitycenter v1.19.0/go.mod h1:LVLmSg8ZkkyaNy4u7HCIshAngSQ8EcIRREP3xBnyfag= +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= +cloud.google.com/go/servicecontrol v1.11.0/go.mod h1:kFmTzYzTUIuZs0ycVqRHNaNhgR+UMUpw9n02l/pY+mc= +cloud.google.com/go/servicecontrol v1.11.1/go.mod h1:aSnNNlwEFBY+PWGQ2DoM0JJ/QUXqV5/ZD9DOLB7SnUk= cloud.google.com/go/servicedirectory v1.4.0/go.mod h1:gH1MUaZCgtP7qQiI+F+A+OpeKF/HQWgtAddhTbhL2bs= cloud.google.com/go/servicedirectory v1.5.0/go.mod h1:QMKFL0NUySbpZJ1UZs3oFAmdvVxhhxB6eJ/Vlp73dfg= +cloud.google.com/go/servicedirectory v1.6.0/go.mod h1:pUlbnWsLH9c13yGkxCmfumWEPjsRs1RlmJ4pqiNjVL4= +cloud.google.com/go/servicedirectory v1.7.0/go.mod h1:5p/U5oyvgYGYejufvxhgwjL8UVXjkuw7q5XcG10wx1U= +cloud.google.com/go/servicedirectory v1.8.0/go.mod h1:srXodfhY1GFIPvltunswqXpVxFPpZjf8nkKQT7XcXaY= +cloud.google.com/go/servicedirectory v1.9.0/go.mod h1:29je5JjiygNYlmsGz8k6o+OZ8vd4f//bQLtvzkPPT/s= +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= +cloud.google.com/go/servicemanagement v1.8.0/go.mod h1:MSS2TDlIEQD/fzsSGfCdJItQveu9NXnUniTrq/L8LK4= +cloud.google.com/go/serviceusage v1.3.0/go.mod h1:Hya1cozXM4SeSKTAgGXgj97GlqUvF5JaoXacR1JTP/E= +cloud.google.com/go/serviceusage v1.4.0/go.mod h1:SB4yxXSaYVuUBYUml6qklyONXNLt83U0Rb+CXyhjEeU= +cloud.google.com/go/serviceusage v1.5.0/go.mod h1:w8U1JvqUqwJNPEOTQjrMHkw3IaIFLoLsPLvsE3xueec= +cloud.google.com/go/serviceusage v1.6.0/go.mod h1:R5wwQcbOWsyuOfbP9tGdAnCAc6B9DRwPG1xtWMDeuPA= +cloud.google.com/go/shell v1.3.0/go.mod h1:VZ9HmRjZBsjLGXusm7K5Q5lzzByZmJHf1d0IWHEN5X4= +cloud.google.com/go/shell v1.4.0/go.mod h1:HDxPzZf3GkDdhExzD/gs8Grqk+dmYcEjGShZgYa9URw= +cloud.google.com/go/shell v1.6.0/go.mod h1:oHO8QACS90luWgxP3N9iZVuEiSF84zNyLytb+qE2f9A= +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/go.mod h1:FIws5LowYz8YAE1J8fOS7DJup8ff7xJeetWEo5REA2M= 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= +cloud.google.com/go/speech v1.9.0/go.mod h1:xQ0jTcmnRFFM2RfX/U+rk6FQNUF6DQlydUSyoooSpco= +cloud.google.com/go/speech v1.14.1/go.mod h1:gEosVRPJ9waG7zqqnsHpYTOoAS4KouMRLDFMekpJ0J0= +cloud.google.com/go/speech v1.15.0/go.mod h1:y6oH7GhqCaZANH7+Oe0BhgIogsNInLlz542tg3VqeYI= 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= cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= 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= -cloud.google.com/go/storage v1.41.0 h1:RusiwatSu6lHeEXe3kglxakAmAbfV+rhtPqA6i8RBx0= -cloud.google.com/go/storage v1.41.0/go.mod h1:J1WCa/Z2FcgdEDuPUY8DxT5I+d9mFKsCepp5vR6Sq80= +cloud.google.com/go/storage v1.28.1/go.mod h1:Qnisd4CqDdo6BGs2AD5LLnEsmSQ80wQ5ogcBBKhU86Y= +cloud.google.com/go/storage v1.29.0/go.mod h1:4puEjyTKnku6gfKoTfNOU/W+a9JyuVNxjpS5GBrB8h4= +cloud.google.com/go/storage v1.49.0 h1:zenOPBOWHCnojRd9aJZAyQXBYqkJkdQS42dxL55CIMw= +cloud.google.com/go/storage v1.49.0/go.mod h1:k1eHhhpLvrPjVGfo0mOUPEJ4Y2+a/Hv5PiwehZI9qGU= +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= +cloud.google.com/go/storagetransfer v1.8.0/go.mod h1:JpegsHHU1eXg7lMHkvf+KE5XDJ7EQu0GwNJbbVGanEw= 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= +cloud.google.com/go/talent v1.4.0/go.mod h1:ezFtAgVuRf8jRsvyE6EwmbTK5LKciD4KVnHuDEFmOOA= +cloud.google.com/go/talent v1.5.0/go.mod h1:G+ODMj9bsasAEJkQSzO2uHQWXHHXUomArjWQQYkqK6c= +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/go.mod h1:YmwmFT8pj1aBblQOI3TfKmwibnsfvhIBzPXcW4EBovc= +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/go.mod h1:8zVo1rYDFuW2l4yZVY0R0fb/v44xLh3llq7RuV61fPM= +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= +cloud.google.com/go/trace v1.9.0/go.mod h1:lOQqpE5IaWY0Ixg7/r2SjixMuc6lfTFeO4QGM4dQWOk= +cloud.google.com/go/trace v1.11.2 h1:4ZmaBdL8Ng/ajrgKqY5jfvzqMXbrDcBsUGXOT9aqTtI= +cloud.google.com/go/trace v1.11.2/go.mod h1:bn7OwXd4pd5rFuAnTrzBuoZ4ax2XQeG3qNgYmfCy0Io= +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= +cloud.google.com/go/translate v1.6.0/go.mod h1:lMGRudH1pu7I3n3PETiOB2507gf3HnfLV8qlkHZEyos= +cloud.google.com/go/translate v1.7.0/go.mod h1:lMGRudH1pu7I3n3PETiOB2507gf3HnfLV8qlkHZEyos= +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= +cloud.google.com/go/video v1.13.0/go.mod h1:ulzkYlYgCp15N2AokzKjy7MQ9ejuynOJdf1tR5lGthk= +cloud.google.com/go/video v1.14.0/go.mod h1:SkgaXwT+lIIAKqWAJfktHT/RbgjSuY6DobxEp0C5yTQ= +cloud.google.com/go/video v1.15.0/go.mod h1:SkgaXwT+lIIAKqWAJfktHT/RbgjSuY6DobxEp0C5yTQ= 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= +cloud.google.com/go/videointelligence v1.9.0/go.mod h1:29lVRMPDYHikk3v8EdPSaL8Ku+eMzDljjuvRs105XoU= +cloud.google.com/go/videointelligence v1.10.0/go.mod h1:LHZngX1liVtUhZvi2uNS0VQuOzNi2TkY1OakiuoUOjU= 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= cloud.google.com/go/vision/v2 v2.3.0/go.mod h1:UO61abBx9QRMFkNBbf1D8B1LXdS2cGiiCRx0vSpZoUo= +cloud.google.com/go/vision/v2 v2.4.0/go.mod h1:VtI579ll9RpVTrdKdkMzckdnwMyX2JILb+MhPqRbPsY= +cloud.google.com/go/vision/v2 v2.5.0/go.mod h1:MmaezXOOE+IWa+cS7OhRRLK2cNv1ZL98zhqFFZaaH2E= +cloud.google.com/go/vision/v2 v2.6.0/go.mod h1:158Hes0MvOS9Z/bDMSFpjwsUrZ5fPrdwuyyvKSGAGMY= +cloud.google.com/go/vision/v2 v2.7.0/go.mod h1:H89VysHy21avemp6xcf9b9JvZHVehWbET0uT/bcuY/0= +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= +cloud.google.com/go/vmmigration v1.6.0/go.mod h1:bopQ/g4z+8qXzichC7GW1w2MjbErL54rk3/C843CjfY= +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/go.mod h1:wvoyMvNWdIzxMYSpH/R7y2h5h3WFkx6d+1TIsP39WGY= +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/go.mod h1:wX2ILaNhe7TlVa4vC5xce1bCnqE3AeH27RV31lnmZes= 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= +cloud.google.com/go/webrisk v1.7.0/go.mod h1:mVMHgEYH0r337nmt1JyLthzMr6YxwN1aAIEc2fTcq7A= +cloud.google.com/go/webrisk v1.8.0/go.mod h1:oJPDuamzHXgUc+b8SiHRcVInZQuybnvEW72PqTc7sSg= +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/go.mod h1:Y6xdCPy81yi0SQnDY1xdNTNpfY1oAgXUlcfN3B3eSng= 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= -cosmossdk.io/api v0.7.5 h1:eMPTReoNmGUm8DeiQL9DyM8sYDjEhWzL1+nLbI9DqtQ= -cosmossdk.io/api v0.7.5/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= +cloud.google.com/go/workflows v1.8.0/go.mod h1:ysGhmEajwZxGn1OhGOGKsTXc5PyxOc0vfKf5Af+to4M= +cloud.google.com/go/workflows v1.9.0/go.mod h1:ZGkj1aFIOd9c8Gerkjjq7OW7I5+l6cSvT3ujaO/WwSA= +cloud.google.com/go/workflows v1.10.0/go.mod h1:fZ8LmRmZQWacon9UCX1r/g/DfAXx5VcPALq2CxzdePw= +cosmossdk.io/api v0.9.2 h1:9i9ptOBdmoIEVEVWLtYYHjxZonlF/aOVODLFaxpmNtg= +cosmossdk.io/api v0.9.2/go.mod h1:CWt31nVohvoPMTlPv+mMNCtC0a7BqRdESjCsstHcTkU= cosmossdk.io/client/v2 v2.0.0-beta.3 h1:+TTuH0DwQYsUq2JFAl3fDZzKq5gQG7nt3dAattkjFDU= cosmossdk.io/client/v2 v2.0.0-beta.3/go.mod h1:CZcL41HpJPOOayTCO28j8weNBQprG+SRiKX39votypo= -cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s= -cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0= -cosmossdk.io/core v0.11.1 h1:h9WfBey7NAiFfIcUhDVNS503I2P2HdZLebJlUIs8LPA= -cosmossdk.io/core v0.11.1/go.mod h1:OJzxcdC+RPrgGF8NJZR2uoQr56tc7gfBKhiKeDO7hH0= -cosmossdk.io/depinject v1.0.0 h1:dQaTu6+O6askNXO06+jyeUAnF2/ssKwrrszP9t5q050= -cosmossdk.io/depinject v1.0.0/go.mod h1:zxK/h3HgHoA/eJVtiSsoaRaRA2D5U4cJ5thIG4ssbB8= -cosmossdk.io/errors v1.0.1 h1:bzu+Kcr0kS/1DuPBtUFdWjzLqyUuCiyHjyJB6srBV/0= -cosmossdk.io/errors v1.0.1/go.mod h1:MeelVSZThMi4bEakzhhhE/CKqVv3nOJDA25bIqRDu/U= -cosmossdk.io/log v1.4.0 h1:Ttt9d6fQ0GlktwhcysOeNiIjixW7l0rYBocmoXOb11k= -cosmossdk.io/log v1.4.0/go.mod h1:k08v0Pyq+gCP6phvdI6RCGhLf/r425UT6Rk/m+o74rU= -cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE= -cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= -cosmossdk.io/store v1.1.0 h1:LnKwgYMc9BInn9PhpTFEQVbL9UK475G2H911CGGnWHk= -cosmossdk.io/store v1.1.0/go.mod h1:oZfW/4Fc/zYqu3JmQcQdUJ3fqu5vnYTn3LZFFy8P8ng= +cosmossdk.io/collections v1.2.1 h1:mAlNMs5vJwkda4TA+k5q/43p24RVAQ/qyDrjANu3BXE= +cosmossdk.io/collections v1.2.1/go.mod h1:PSsEJ/fqny0VPsHLFT6gXDj/2C1tBOTS9eByK0+PBFU= +cosmossdk.io/core v0.11.3 h1:mei+MVDJOwIjIniaKelE3jPDqShCc/F4LkNNHh+4yfo= +cosmossdk.io/core v0.11.3/go.mod h1:9rL4RE1uDt5AJ4Tg55sYyHWXA16VmpHgbe0PbJc6N2Y= +cosmossdk.io/depinject v1.2.0 h1:6NW/FSK1IkWTrX7XxUpBmX1QMBozpEI9SsWkKTBc5zw= +cosmossdk.io/depinject v1.2.0/go.mod h1:pvitjtUxZZZTQESKNS9KhGjWVslJZxtO9VooRJYyPjk= +cosmossdk.io/errors v1.0.2 h1:wcYiJz08HThbWxd/L4jObeLaLySopyyuUFB5w4AGpCo= +cosmossdk.io/errors v1.0.2/go.mod h1:0rjgiHkftRYPj//3DrD6y8hcm40HcPv/dR4R/4efr0k= +cosmossdk.io/log v1.6.0 h1:SJIOmJ059wi1piyRgNRXKXhlDXGqnB5eQwhcZKv2tOk= +cosmossdk.io/log v1.6.0/go.mod h1:5cXXBvfBkR2/BcXmosdCSLXllvgSjphrrDVdfVRmBGM= +cosmossdk.io/math v1.5.3 h1:WH6tu6Z3AUCeHbeOSHg2mt9rnoiUWVWaQ2t6Gkll96U= +cosmossdk.io/math v1.5.3/go.mod h1:uqcZv7vexnhMFJF+6zh9EWdm/+Ylyln34IvPnBauPCQ= +cosmossdk.io/schema v1.1.0 h1:mmpuz3dzouCoyjjcMcA/xHBEmMChN+EHh8EHxHRHhzE= +cosmossdk.io/schema v1.1.0/go.mod h1:Gb7pqO+tpR+jLW5qDcNOSv0KtppYs7881kfzakguhhI= +cosmossdk.io/store v1.1.2 h1:3HOZG8+CuThREKv6cn3WSohAc6yccxO3hLzwK6rBC7o= +cosmossdk.io/store v1.1.2/go.mod h1:60rAGzTHevGm592kFhiUVkNC9w7gooSEn5iUBPzHQ6A= cosmossdk.io/x/circuit v0.1.1 h1:KPJCnLChWrxD4jLwUiuQaf5mFD/1m7Omyo7oooefBVQ= cosmossdk.io/x/circuit v0.1.1/go.mod h1:B6f/urRuQH8gjt4eLIXfZJucrbreuYrKh5CSjaOxr+Q= cosmossdk.io/x/evidence v0.1.1 h1:Ks+BLTa3uftFpElLTDp9L76t2b58htjVbSZ86aoK/E4= cosmossdk.io/x/evidence v0.1.1/go.mod h1:OoDsWlbtuyqS70LY51aX8FBTvguQqvFrt78qL7UzeNc= cosmossdk.io/x/feegrant v0.1.1 h1:EKFWOeo/pup0yF0svDisWWKAA9Zags6Zd0P3nRvVvw8= cosmossdk.io/x/feegrant v0.1.1/go.mod h1:2GjVVxX6G2fta8LWj7pC/ytHjryA6MHAJroBWHFNiEQ= -cosmossdk.io/x/nft v0.1.0 h1:VhcsFiEK33ODN27kxKLa0r/CeFd8laBfbDBwYqCyYCM= -cosmossdk.io/x/nft v0.1.0/go.mod h1:ec4j4QAO4mJZ+45jeYRnW7awLHby1JZANqe1hNZ4S3g= -cosmossdk.io/x/tx v0.13.4 h1:Eg0PbJgeO0gM8p5wx6xa0fKR7hIV6+8lC56UrsvSo0Y= -cosmossdk.io/x/tx v0.13.4/go.mod h1:BkFqrnGGgW50Y6cwTy+JvgAhiffbGEKW6KF9ufcDpvk= -cosmossdk.io/x/upgrade v0.1.4 h1:/BWJim24QHoXde8Bc64/2BSEB6W4eTydq0X/2f8+g38= -cosmossdk.io/x/upgrade v0.1.4/go.mod h1:9v0Aj+fs97O+Ztw+tG3/tp5JSlrmT7IcFhAebQHmOPo= +cosmossdk.io/x/nft v0.1.1 h1:pslAVS8P5NkW080+LWOamInjDcq+v2GSCo+BjN9sxZ8= +cosmossdk.io/x/nft v0.1.1/go.mod h1:Kac6F6y2gsKvoxU+fy8uvxRTi4BIhLOor2zgCNQwVgY= +cosmossdk.io/x/tx v0.14.0 h1:hB3O25kIcyDW/7kMTLMaO8Ripj3yqs5imceVd6c/heA= +cosmossdk.io/x/tx v0.14.0/go.mod h1:Tn30rSRA1PRfdGB3Yz55W4Sn6EIutr9xtMKSHij+9PM= +cosmossdk.io/x/upgrade v0.2.0 h1:ZHy0xny3wBCSLomyhE06+UmQHWO8cYlVYjfFAJxjz5g= +cosmossdk.io/x/upgrade v0.2.0/go.mod h1:DXDtkvi//TrFyHWSOaeCZGBoiGAE6Rs8/0ABt2pcDD0= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= +gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8= +git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc= github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 h1:/vQbFIOMbk2FiG/kXiLl8BRyzTWDw7gX/Hz7Dd5eDMs= github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4/go.mod h1:hN7oaIRCjzsZ2dE+yG5k+rsdt3qcwykqK6HVGcKwsw4= github.com/99designs/keyring v1.2.2 h1:pZd3neh/EmUzWONb35LxQfvuY7kiSXAq3HQd97+XBn0= @@ -227,46 +659,63 @@ github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25 github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= 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/CosmWasm/wasmd v0.51.0 h1:3A2o20RrdF7P1D3Xb+R7A/pHbbHWsYCDXrHLa7S0SC8= -github.com/CosmWasm/wasmd v0.51.0/go.mod h1:7TSaj5HoolghujuVWeExqmcUKgpcYWEySGLSODbnnwY= -github.com/CosmWasm/wasmvm/v2 v2.0.0 h1:IqNCI2G0mvs7K6ej17/I28805rVqnu+Y1cWDqIdwb08= -github.com/CosmWasm/wasmvm/v2 v2.0.0/go.mod h1:su9lg5qLr7adV95eOfzjZWkGiky8WNaNIHDr7Fpu7Ck= -github.com/DataDog/datadog-go v3.2.0+incompatible h1:qSG2N4FghB1He/r2mFrWKCaL7dXCilEuNEeAn20fdD4= +github.com/CosmWasm/wasmd v0.60.1 h1:p/YN389gXDhF3ujZfJBlsygw8CFsd4/EnoL8UNof8Ms= +github.com/CosmWasm/wasmd v0.60.1/go.mod h1:NS/KnAtvyy0m+r8/ERZuuEVSeAgVZGUPoCQqQBK5Uhk= +github.com/CosmWasm/wasmvm/v2 v2.2.4 h1:V3UwXJMA8TNOuQETppDQkaXAevF7gOWLYpKvrThPv7o= +github.com/CosmWasm/wasmvm/v2 v2.2.4/go.mod h1:Aj/rB2KMRM8nAdbWxkO23rnQYb5KsoPuH9ZizSi0sVg= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= -github.com/DataDog/zstd v1.5.5 h1:oWf5W7GtOLgp6bciQYDmhHHjdhYkALu6S/5Ni9ZgSvQ= -github.com/DataDog/zstd v1.5.5/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= +github.com/DataDog/datadog-go v4.8.3+incompatible h1:fNGaYSuObuQb5nzeTQqowRAd9bpDIRRV4/gUtIBjh8Q= +github.com/DataDog/datadog-go v4.8.3+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= +github.com/DataDog/zstd v1.5.7 h1:ybO8RBeh29qrxIhCA9E8gKY6xfONU9T6G6aP9DTKfLE= +github.com/DataDog/zstd v1.5.7/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.26.0 h1:f2Qw/Ehhimh5uO1fayV0QIW7DShEQqhtUfhYc+cBPlw= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.26.0/go.mod h1:2bIszWvQRlJVmJLiuLhukLImRjKPcYdzzsx6darK02A= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.1 h1:UQ0AhxogsIRZDkElkblfnwjc3IaltCm2HUMvezQaL7s= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.1/go.mod h1:jyqM3eLpJ3IbIFDTKVz2rF9T/xWGW0rIriGwnz8l9Tk= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.48.1 h1:oTX4vsorBZo/Zdum6OKPA4o7544hm6smoRv1QjpTwGo= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.48.1/go.mod h1:0wEl7vrAD8mehJyohS9HZy+WyEOaQO2mJx86Cvh93kM= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.48.1 h1:8nn+rsCvTq9axyEh382S0PFLBeaFwNsT43IrPWzctRU= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.48.1/go.mod h1:viRWSEhtMZqz1rhwmOVKkWl6SwmVowfL9O2YR5gI2PE= +github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= -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/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= 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 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrdtl/UvroE= github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= -github.com/adlio/schema v1.3.3 h1:oBJn8I02PyTB466pZO1UZEn1TV5XLlifBSyMrmHl/1I= -github.com/adlio/schema v1.3.3/go.mod h1:1EsRssiv9/Ce2CMzq5DoL7RiMshhuigQxrR4DMV9fHg= +github.com/adlio/schema v1.3.6 h1:k1/zc2jNfeiZBA5aFTRy37jlBIuCkXCm0XmvpzCKI9I= +github.com/adlio/schema v1.3.6/go.mod h1:qkxwLgPBd1FgLRHYVCmQT/rrBr3JH38J9LjmVzWNudg= github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= +github.com/ajstarks/deck v0.0.0-20200831202436-30c9fc6549a9/go.mod h1:JynElWSGnm/4RlzPXRlREEwqTHAN3T56Bv2ITsFT3gY= +github.com/ajstarks/deck/generate v0.0.0-20210309230005-c3f852c02e19/go.mod h1:T13YZdzov6OU0A1+RfKZiZN9ca6VeKdBdyDV+BY97Tk= +github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= +github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b/go.mod h1:1KcenG0jGWcpt8ov532z81sp/kMMUG485J2InIOyADM= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= +github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/apache/arrow/go/v10 v10.0.1/go.mod h1:YvhnlEePVnBS4+0z3fhPfUy7W1Ikj0Ih0vcRo/gZ1M0= +github.com/apache/arrow/go/v11 v11.0.0/go.mod h1:Eg5OsL5H+e299f7u5ssuXsuHQVEGC4xei5aX110hRiI= github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= +github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= +github.com/armon/go-metrics v0.4.1/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.44.122/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= -github.com/aws/aws-sdk-go v1.44.224 h1:09CiaaF35nRmxrzWZ2uRq5v6Ghg/d2RiPjZnSgtt+RQ= -github.com/aws/aws-sdk-go v1.44.224/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= +github.com/aws/aws-sdk-go v1.49.0 h1:g9BkW1fo9GqKfwg2+zCD+TW/D36Ux+vtfJ8guF4AYmY= +github.com/aws/aws-sdk-go v1.49.0/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= @@ -276,28 +725,35 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d h1:xDfNPAt8lFiC1UJrqV3uuy861HCTo708pDMbjHHdCas= github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d/go.mod h1:6QX/PXZ00z/TKoufEY6K/a0k6AhaJrQKdFe6OfVXsa4= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 h1:41iFGWnSlI2gVpmOtVTJZNodLdLQLn/KsJqFvXwnd/s= -github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bits-and-blooms/bitset v1.8.0 h1:FD+XqgOZDUxxZ8hzoBFuV9+cGWY9CslN6d5MS5JVb4c= -github.com/bits-and-blooms/bitset v1.8.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= -github.com/btcsuite/btcd/btcec/v2 v2.3.2 h1:5n0X6hX0Zk+6omWcihdYvdAlGf2DfasC0GMf7DClJ3U= -github.com/btcsuite/btcd/btcec/v2 v2.3.2/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04= -github.com/btcsuite/btcd/btcutil v1.1.3 h1:xfbtw8lwpp0G6NwSHb+UE67ryTFHJAiNuipusjXSohQ= -github.com/btcsuite/btcd/btcutil v1.1.3/go.mod h1:UR7dsSJzJUfMmFiiLlIrMq1lS9jh9EdCV7FStZSnpi0= -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/bufbuild/protocompile v0.6.0 h1:Uu7WiSQ6Yj9DbkdnOe7U4mNKp58y9WDMKDn28/ZlunY= -github.com/bufbuild/protocompile v0.6.0/go.mod h1:YNP35qEYoYGme7QMtz5SBCoN4kL4g12jTtjuzRNdjpE= +github.com/bgentry/speakeasy v0.2.0 h1:tgObeVOf8WAvtuAX6DhJ4xks4CFNwPDZiqzGqIHE51E= +github.com/bgentry/speakeasy v0.2.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/bits-and-blooms/bitset v1.22.0 h1:Tquv9S8+SGaS3EhyA+up3FXzmkhxPGjQQCkcs2uw7w4= +github.com/bits-and-blooms/bitset v1.22.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= +github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= +github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= +github.com/btcsuite/btcd/btcec/v2 v2.3.4 h1:3EJjcN70HCu/mwqlUsGK8GcNVyLVxFDlWurTXGPFfiQ= +github.com/btcsuite/btcd/btcec/v2 v2.3.4/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04= +github.com/btcsuite/btcd/btcutil v1.1.6 h1:zFL2+c3Lb9gEgqKNzowKUPQNb8jV7v5Oaodi/AYFd6c= +github.com/btcsuite/btcd/btcutil v1.1.6/go.mod h1:9dFymx8HpuLqBnsPELrImQeTQfKBQqzqGbbV3jK55aE= +github.com/bufbuild/protocompile v0.14.1 h1:iA73zAf/fyljNjQKwYzUHD6AD4R8KMasmwa/FBatYVw= +github.com/bufbuild/protocompile v0.14.1/go.mod h1:ppVdAIhbr2H8asPk6k4pY7t9zB1OU5DoEw9xY/FUi1c= +github.com/bytedance/sonic v1.13.2 h1:8/H1FempDZqC4VqjptGo14QQlJx8VdZJegxs6wwfqpQ= +github.com/bytedance/sonic v1.13.2/go.mod h1:o68xyaF9u2gvVBuGHPlUVCy+ZfmNNO5ETf1+KgkJhz4= +github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= +github.com/bytedance/sonic/loader v0.2.4 h1:ZWCw4stuXUsn1/+zQDqeE7JKP+QO47tz7QCNan80NzY= +github.com/bytedance/sonic/loader v0.2.4/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI= github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= 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.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= -github.com/cenkalti/backoff/v4 v4.1.3 h1:cFAlzYUlVYDysBEH2T5hyJZMh3+5+WCBvSnK6Q8UtC4= -github.com/cenkalti/backoff/v4 v4.1.3/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= +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 v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= +github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= 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/cheggaaa/pb v1.0.27/go.mod h1:pQciLPpbU0oxA0h+VJYYLxO+XeDQb5pZijXscXHm81s= @@ -314,51 +770,60 @@ github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6D github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cloudwego/base64x v0.1.5 h1:XPciSp1xaq2VCSt6lF0phncD4koWyULpl5bUxbfCyP4= +github.com/cloudwego/base64x v0.1.5/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= +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/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= +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-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20220314180256-7f1daf1720fc/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20250121191232-2f005788dc42 h1:Om6kYQYDUk5wWbT0t0q6pvyM49i9XZAv9dDrkDA7gjk= +github.com/cncf/xds/go v0.0.0-20250121191232-2f005788dc42/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= github.com/cockroachdb/apd/v2 v2.0.2 h1:weh8u7Cneje73dDh+2tEVLUvyBc89iwepWCD8b8034E= github.com/cockroachdb/apd/v2 v2.0.2/go.mod h1:DDxRlzC2lo3/vSlmSoS7JkqbbrARPuFOGr0B9pvN3Gw= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f h1:otljaYPt5hWxV3MUfO5dFPFiOXg9CyG5/kCfayTqsJ4= github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= -github.com/cockroachdb/errors v1.11.1 h1:xSEW75zKaKCWzR3OfxXUxgrk/NtT4G1MiOv5lWZazG8= -github.com/cockroachdb/errors v1.11.1/go.mod h1:8MUxA3Gi6b25tYlFEBGLf+D8aISL+M4MIpiWMSNRfxw= -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 v1.1.0 h1:pcFh8CdCIt2kmEpK0OIatq67Ln9uGDYY3d5XnE0LJG4= -github.com/cockroachdb/pebble v1.1.0/go.mod h1:sEHm5NOXxyiAoKWhoFxT8xMgd/f3RA6qUqQ1BXKrh2E= -github.com/cockroachdb/redact v1.1.5 h1:u1PMllDkdFfPWaNGMyLD1+so+aq3uUItthCFqzwPJ30= -github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= +github.com/cockroachdb/errors v1.12.0 h1:d7oCs6vuIMUQRVbi6jWWWEJZahLCfJpnJSVobd1/sUo= +github.com/cockroachdb/errors v1.12.0/go.mod h1:SvzfYNNBshAVbZ8wzNc/UPK3w1vf0dKDUP41ucAIf7g= +github.com/cockroachdb/fifo v0.0.0-20240616162244-4768e80dfb9a h1:f52TdbU4D5nozMAhO9TvTJ2ZMCXtN4VIAmfrrZ0JXQ4= +github.com/cockroachdb/fifo v0.0.0-20240616162244-4768e80dfb9a/go.mod h1:9/y3cnZ5GKakj/H4y9r9GTjCvAFta7KLgSHPJJYc52M= +github.com/cockroachdb/logtags v0.0.0-20241215232642-bb51bb14a506 h1:ASDL+UJcILMqgNeV5jiqR4j+sTuvQNHdf2chuKj1M5k= +github.com/cockroachdb/logtags v0.0.0-20241215232642-bb51bb14a506/go.mod h1:Mw7HqKr2kdtu6aYGn3tPmAftiP3QPX63LdK/zcariIo= +github.com/cockroachdb/pebble v1.1.5 h1:5AAWCBWbat0uE0blr8qzufZP5tBjkRyy/jWe1QWLnvw= +github.com/cockroachdb/pebble v1.1.5/go.mod h1:17wO9el1YEigxkP/YtV8NtCivQDgoCyBg5c4VR/eOWo= +github.com/cockroachdb/redact v1.1.6 h1:zXJBwDZ84xJNlHl1rMyCojqyIxv+7YUpQiJLQ7n4314= +github.com/cockroachdb/redact v1.1.6/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/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= -github.com/cometbft/cometbft v0.38.11 h1:6bNDUB8/xq4uYonYwIfGc9OqK1ZH4NkdaMmR1LZIJqk= -github.com/cometbft/cometbft v0.38.11/go.mod h1:jHPx9vQpWzPHEAiYI/7EDKaB1NXhK6o3SArrrY8ExKc= -github.com/cometbft/cometbft-db v0.11.0 h1:M3Lscmpogx5NTbb1EGyGDaFRdsoLWrUWimFEyf7jej8= -github.com/cometbft/cometbft-db v0.11.0/go.mod h1:GDPJAC/iFHNjmZZPN8V8C1yr/eyityhi2W1hz2MGKSc= +github.com/cometbft/cometbft v0.38.17 h1:FkrQNbAjiFqXydeAO81FUzriL4Bz0abYxN/eOHrQGOk= +github.com/cometbft/cometbft v0.38.17/go.mod h1:5l0SkgeLRXi6bBfQuevXjKqML1jjfJJlvI1Ulp02/o4= +github.com/cometbft/cometbft-db v0.14.1 h1:SxoamPghqICBAIcGpleHbmoPqy+crij/++eZz3DlerQ= +github.com/cometbft/cometbft-db v0.14.1/go.mod h1:KHP1YghilyGV/xjD5DP3+2hyigWx0WTp9X+0Gnx0RxQ= github.com/containerd/continuity v0.3.0 h1:nisirsYROK15TAMVukJOUyGJjz4BNQJBVsNvAXZJ/eg= github.com/containerd/continuity v0.3.0/go.mod h1:wJEAIwKOm/pBZuBd0JmeTvnLquTB1Ag8espWhkykbPM= -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 v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis= -github.com/cosmos/cosmos-db v1.0.2 h1:hwMjozuY1OlJs/uh6vddqnk9j7VamLv+0DBlbEXbAKs= -github.com/cosmos/cosmos-db v1.0.2/go.mod h1:Z8IXcFJ9PqKK6BIsVOB3QXtkKoqUOp1vRvPT39kOXEA= +github.com/cosmos/cosmos-db v1.1.1 h1:FezFSU37AlBC8S98NlSagL76oqBRWq/prTPvFcEJNCM= +github.com/cosmos/cosmos-db v1.1.1/go.mod h1:AghjcIPqdhSLP/2Z0yha5xPH3nLnskz81pBx3tcVSAw= github.com/cosmos/cosmos-proto v1.0.0-beta.5 h1:eNcayDLpip+zVLRLYafhzLvQlSmyab+RC5W7ZfmxJLA= github.com/cosmos/cosmos-proto v1.0.0-beta.5/go.mod h1:hQGLpiIUloJBMdQMMWb/4wRApmI9hjHH05nefC0Ojec= -github.com/cosmos/cosmos-sdk v0.50.9 h1:gt2usjz0H0qW6KwAxWw7ZJ3XU8uDwmhN+hYG3nTLeSg= -github.com/cosmos/cosmos-sdk v0.50.9/go.mod h1:TMH6wpoYBcg7Cp5BEg8fneLr+8XloNQkf2MRNF9V6JE= +github.com/cosmos/cosmos-sdk v0.53.0 h1:ZsB2tnBVudumV059oPuElcr0K1lLOutaI6WJ+osNTbI= +github.com/cosmos/cosmos-sdk v0.53.0/go.mod h1:UPcRyFwOUy2PfSFBWxBceO/HTjZOuBVqY583WyazIGs= github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= github.com/cosmos/gogogateway v1.2.0 h1:Ae/OivNhp8DqBi/sh2A8a1D0y638GpL3tkmLQAiKxTE= @@ -366,36 +831,35 @@ github.com/cosmos/gogogateway v1.2.0/go.mod h1:iQpLkGWxYcnCdz5iAdLcRBSw3h7NXeOkZ github.com/cosmos/gogoproto v1.4.2/go.mod h1:cLxOsn1ljAHSV527CHOtaIP91kK6cCrZETRBrkzItWU= github.com/cosmos/gogoproto v1.7.0 h1:79USr0oyXAbxg3rspGh/m4SWNyoz/GLaAh0QlCe2fro= github.com/cosmos/gogoproto v1.7.0/go.mod h1:yWChEv5IUEYURQasfyBW5ffkMHR/90hiHgbNgrtp4j0= -github.com/cosmos/iavl v1.1.2 h1:zL9FK7C4L/P4IF1Dm5fIwz0WXCnn7Bp1M2FxH0ayM7Y= -github.com/cosmos/iavl v1.1.2/go.mod h1:jLeUvm6bGT1YutCaL2fIar/8vGUE8cPZvh/gXEWDaDM= +github.com/cosmos/iavl v1.2.4 h1:IHUrG8dkyueKEY72y92jajrizbkZKPZbMmG14QzsEkw= +github.com/cosmos/iavl v1.2.4/go.mod h1:GiM43q0pB+uG53mLxLDzimxM9l/5N9UuSY3/D0huuVw= github.com/cosmos/ibc-go/modules/capability v1.0.1 h1:ibwhrpJ3SftEEZRxCRkH0fQZ9svjthrX2+oXdZvzgGI= github.com/cosmos/ibc-go/modules/capability v1.0.1/go.mod h1:rquyOV262nGJplkumH+/LeYs04P3eV8oB7ZM4Ygqk4E= -github.com/cosmos/ibc-go/v8 v8.6.1 h1:35JQ9HttSDNLjy4J/ZxmmFbzw0cRVjoCRKkc3ngDZms= -github.com/cosmos/ibc-go/v8 v8.6.1/go.mod h1:Hd3kDFNOhQ/EnYt8qb84/r78tA/lOYC3IkLMbpurs3I= +github.com/cosmos/ibc-go/v10 v10.3.0 h1:w5DkHih8qn15deAeFoTk778WJU+xC1krJ5kDnicfUBc= +github.com/cosmos/ibc-go/v10 v10.3.0/go.mod h1:CthaR7n4d23PJJ7wZHegmNgbVcLXCQql7EwHrAXnMtw= github.com/cosmos/ics23/go v0.11.0 h1:jk5skjT0TqX5e5QJbEnwXIS2yI2vnmLOgpQPeM5RtnU= github.com/cosmos/ics23/go v0.11.0/go.mod h1:A8OjxPE67hHST4Icw94hOxxFEJMBG031xIGF/JHNIY0= -github.com/cosmos/ledger-cosmos-go v0.13.3 h1:7ehuBGuyIytsXbd4MP43mLeoN2LTOEnk5nvue4rK+yM= -github.com/cosmos/ledger-cosmos-go v0.13.3/go.mod h1:HENcEP+VtahZFw38HZ3+LS3Iv5XV6svsnkk9vdJtLr8= -github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= +github.com/cosmos/ledger-cosmos-go v0.14.0 h1:WfCHricT3rPbkPSVKRH+L4fQGKYHuGOK9Edpel8TYpE= +github.com/cosmos/ledger-cosmos-go v0.14.0/go.mod h1:E07xCWSBl3mTGofZ2QnL4cIUzMbbGVyik84QYKbX3RA= 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/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0= -github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= +github.com/danieljoos/wincred v1.2.1 h1:dl9cBrupW8+r5250DYkYxocLeZ1Y4vB1kxgtjxw8GQs= +github.com/danieljoos/wincred v1.2.1/go.mod h1:uGaFL9fDn3OLTvzCGulzE+SzjEe5NGlh5FdCcyfPwps= 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/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/desertbit/timer v0.0.0-20180107155436-c41aec40b27f h1:U5y3Y5UE0w7amNe7Z5G/twsBW0KEalRQXZzf8ufSh9I= +github.com/decred/dcrd/crypto/blake256 v1.1.0 h1:zPMNGQCm0g4QTY27fOCorQW7EryeQ/U0x++OzVrdms8= +github.com/decred/dcrd/crypto/blake256 v1.1.0/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 h1:NMZiJj8QnKe1LgsbDayM4UoHwbvwDRwnI3hwNaAHRnc= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0/go.mod h1:ZXNYxsqcloTdSy/rNShjYzMhyjf0LaoftYK0p+A3h40= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f/go.mod h1:xH/i4TFMt8koVQZ6WFms69WAsDWr2XsYL3Hkl7jkoLE= -github.com/dgraph-io/badger/v2 v2.2007.4 h1:TRWBQg8UrlUhaFdco01nO2uXwzKS7zd+HVdwV/GHc4o= -github.com/dgraph-io/badger/v2 v2.2007.4/go.mod h1:vSw/ax2qojzbN6eXHIx6KPKtCSHJN/Uz0X0VPruTIhk= -github.com/dgraph-io/ristretto v0.0.3-0.20200630154024-f66de99634de/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E= +github.com/desertbit/timer v1.0.1 h1:yRpYNn5Vaaj6QXecdLMPMJsW81JLiI1eokUft5nBmeo= +github.com/desertbit/timer v1.0.1/go.mod h1:htRrYeY5V/t4iu1xCJ5XsQvp4xve8QulXXctAzxqcwE= +github.com/dgraph-io/badger/v4 v4.2.0 h1:kJrlajbXXL9DFTNuhhu9yCx7JJa4qpYWxtE8BzuWsEs= +github.com/dgraph-io/badger/v4 v4.2.0/go.mod h1:qfCqhPoWDFJRx1gp5QwwyGo8xk1lbHUxvK9nK0OGAak= github.com/dgraph-io/ristretto v0.1.1 h1:6CWw5tJNgpegArSHpNHJKldNeq03FQCwYvfMVWajOK8= github.com/dgraph-io/ristretto v0.1.1/go.mod h1:S1GPSBCYCIhmVNfcth17y2zZtQT6wzkzgwUve0VDWWA= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= @@ -404,22 +868,23 @@ github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WA github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= -github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= +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/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= 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/dvsekhvalnov/jose2go v1.6.0 h1:Y9gnSnP4qEI0+/uQkHvFXeD2PLPJeXEL+ySMEA2EjTY= -github.com/dvsekhvalnov/jose2go v1.6.0/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB/mPZadG+mhXU= +github.com/dvsekhvalnov/jose2go v1.7.0 h1:bnQc8+GMnidJZA8zc6lLEAb4xNrIqHwO+9TzqvtQZPo= +github.com/dvsekhvalnov/jose2go v1.7.0/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB/mPZadG+mhXU= github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= -github.com/emicklei/dot v1.6.1 h1:ujpDlBkkwgWUY+qPId5IwapRW/xEoligRSYjioR6DFI= -github.com/emicklei/dot v1.6.1/go.mod h1:DeV7GvQtIw4h2u73RKBkkFdvVAz0D9fzeJrgPW6gy/s= +github.com/emicklei/dot v1.6.2 h1:08GN+DD79cy/tzN6uLCT84+2Wk9u+wvqP+Hkx/dIR8A= +github.com/emicklei/dot v1.6.2/go.mod h1:DeV7GvQtIw4h2u73RKBkkFdvVAz0D9fzeJrgPW6gy/s= github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= 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= @@ -430,13 +895,30 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.m 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.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= +github.com/envoyproxy/go-control-plane v0.10.3/go.mod h1:fJJn/j26vwOu972OllsvAgJJM//w9BV6Fxbg2LuVd34= +github.com/envoyproxy/go-control-plane v0.11.1-0.20230524094728-9239064ad72f/go.mod h1:sfYdkwUW4BA3PbKjySwjJy+O4Pu0h62rlqCMHNk+K+Q= +github.com/envoyproxy/go-control-plane v0.13.4 h1:zEqyPVyku6IvWCFwux4x9RxkLOMUL+1vC9xUFv5l2/M= +github.com/envoyproxy/go-control-plane v0.13.4/go.mod h1:kDfuBlDVsSj2MjrLEtRWtHlsWIFcGyB2RMO44Dc5GZA= +github.com/envoyproxy/go-control-plane/envoy v1.32.4 h1:jb83lalDRZSpPWW2Z7Mck/8kXZ5CQAFYVjQcdVIr83A= +github.com/envoyproxy/go-control-plane/envoy v1.32.4/go.mod h1:Gzjc5k8JcJswLjAx1Zm+wSYE20UrLtt7JZMWiWQXQEw= +github.com/envoyproxy/go-control-plane/ratelimit v0.1.0 h1:/G9QYbddjL25KvtKTv3an9lx6VBE2cnb8wp1vEGNYGI= +github.com/envoyproxy/go-control-plane/ratelimit v0.1.0/go.mod h1:Wk+tMFAFbCXaJPzVVHnPgRKdUdwW/KdbRt94AzgRee4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/envoyproxy/protoc-gen-validate v0.6.7/go.mod h1:dyJXwwfPK2VSqiB9Klm1J6romD608Ba7Hij42vrOBCo= +github.com/envoyproxy/protoc-gen-validate v0.9.1/go.mod h1:OKNgG7TCp5pF4d6XftA0++PMirau2/yoOwVac3AbF2w= +github.com/envoyproxy/protoc-gen-validate v0.10.1/go.mod h1:DRjgyB0I43LtJapqN6NiRwroiAU2PaFuvk/vjgh61ss= +github.com/envoyproxy/protoc-gen-validate v1.2.1 h1:DEo3O99U8j4hBFwbJfrz9VtgcDfUKS7KJ7spH3d86P8= +github.com/envoyproxy/protoc-gen-validate v1.2.1/go.mod h1:d/C80l/jxXLdfEIhX1W2TmLfsJ31lvEjwamM4DxlWXU= +github.com/ethereum/go-ethereum v1.15.11 h1:JK73WKeu0WC0O1eyX+mdQAVHUV+UR1a9VB/domDngBU= +github.com/ethereum/go-ethereum v1.15.11/go.mod h1:mf8YiHIb0GR4x4TipcvBUPxJLw1mFdmxzoDi11sDRoI= 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/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= -github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= +github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= +github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= +github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= @@ -446,61 +928,59 @@ github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7z 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.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= -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/getsentry/sentry-go v0.27.0 h1:Pv98CIbtB3LkMWmXi4Joa5OOcwbmnX88sF5qbK3r3Ps= -github.com/getsentry/sentry-go v0.27.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY= +github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k= +github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= +github.com/getsentry/sentry-go v0.32.0 h1:YKs+//QmwE3DcYtfKRH8/KyOOF/I6Qnx7qYGNHCGmCY= +github.com/getsentry/sentry-go v0.32.0/go.mod h1:CYNcMMz73YigoHljQRG+qPF+eMq8gG72XcGN/p71BAY= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -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-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= -github.com/gin-gonic/gin v1.8.1 h1:4+fr/el88TOO3ewCmQr8cx/CtZ/umlIRIs5M4NTNjf8= -github.com/gin-gonic/gin v1.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk= 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-fonts/dejavu v0.1.0/go.mod h1:4Wt4I4OU2Nq9asgDCteaAaWZOV24E+0/Pwo0gppep4g= +github.com/go-fonts/latin-modern v0.2.0/go.mod h1:rQVLdDMK+mK1xscDwsqM5J8U2jrRa3T0ecnM9pNujks= +github.com/go-fonts/liberation v0.1.1/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY= +github.com/go-fonts/liberation v0.2.0/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY= +github.com/go-fonts/stix v0.1.0/go.mod h1:w/c1f0ldAUlJmLBvlbkvVXLAD+tAMqobIIQpmnUIzUY= 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-jose/go-jose/v4 v4.0.5 h1:M6T8+mKZl/+fNNuFHvGIzDz7BTLQPIounk/b9dw3AaE= +github.com/go-jose/go-jose/v4 v4.0.5/go.mod h1:s3P1lRrkT8igV8D9OjyL4WRyHvjB6a4JSllnOrmmBOA= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o= -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-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-latex/latex v0.0.0-20210118124228-b3d85cf34e07/go.mod h1:CO1AlKB2CSIqUrmQPqA0gdRIlnLEY0gK5JGjh37zN5U= +github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81/go.mod h1:SX0U8uGpxhq9o2S/CELCSUxEWWAuoCUcVCQWv7G2OCk= 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.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= 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.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/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-pdf/fpdf v0.5.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= +github.com/go-pdf/fpdf v0.6.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= -github.com/go-playground/locales v0.14.0 h1:u50s323jtVGugKlcYeyzC0etD1HifMjqmJqb8WugfUU= -github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs= github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= -github.com/go-playground/universal-translator v0.18.0 h1:82dyy6p4OuJq4/CByFNOn/jYrnRPArHwAcmLoJZxyho= -github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA= github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= -github.com/go-playground/validator/v10 v10.11.1 h1:prmOlTVv+YjZjmRmNSF3VmspqJIxJWXmqUsHwfTRRkQ= -github.com/go-playground/validator/v10 v10.11.1/go.mod h1:i+3WkQ1FvaUjjxh1kSvIA4dMGDBiPU55YFDl0WbKdWU= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= +github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIxtHqx8aGss= +github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= -github.com/gobwas/httphead v0.1.0 h1:exrUm0f4YX0L7EBwZHuCF4GDp8aJfVeBrlLQrs6NqWU= -github.com/gobwas/httphead v0.1.0/go.mod h1:O/RXo79gxV8G+RqlR/otEwx4Q36zl9rqC5u12GKvMCM= github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= -github.com/gobwas/pool v0.2.1 h1:xfeeEhW7pwmX8nuLVlqbzVc7udMDrwetjEv+TZIz1og= -github.com/gobwas/pool v0.2.1/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= -github.com/gobwas/ws v1.0.2 h1:CoAavW/wd/kulfZmSIBt6p24n4j7tHgNVCjsfHVNUbo= github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= -github.com/goccy/go-json v0.9.11 h1:/pAaQDLHEoCq/5FFmSKBswWmK6H0e8g4159Kc/X/nqk= github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+Hoeu/iUR3ruzNvZ+yQfO03a0= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= @@ -515,9 +995,12 @@ github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zV github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.2.0 h1:uCdmnmatrKCgMBlM4rMuJZWOkPDqdbZPnrMXDY4gI68= -github.com/golang/glog v1.2.0/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= +github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= +github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= +github.com/golang/glog v1.2.4 h1:CNNw5U8lSiiBk7druxtSHHTsRWcxKoac6kZKm2peBBc= +github.com/golang/glog v1.2.4/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= 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= @@ -552,16 +1035,21 @@ github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.3/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.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.5-0.20231225225746-43d5d4cd4e0e h1:4bw4WeyTYPp0smaXiJZCNnLrvVBqirQVreixayXezGc= +github.com/golang/snappy v0.0.5-0.20231225225746-43d5d4cd4e0e/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= 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/btree v1.1.2 h1:xf4v41cLI2Z6FxbKm+8Bu+m8ifhj15JuZ9sa0jZCMUU= -github.com/google/btree v1.1.2/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= +github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg= +github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= +github.com/google/flatbuffers v2.0.8+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= +github.com/google/flatbuffers v24.3.25+incompatible h1:CX395cjN9Kke9mmalRoL3d81AtFUxJM+yDthflgJGkI= +github.com/google/flatbuffers v24.3.25+incompatible/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= @@ -577,8 +1065,9 @@ github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ 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.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= @@ -588,6 +1077,7 @@ github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXi 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/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= +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/orderedcode v0.0.1 h1:UzfcAexk9Vhv8+9pNOgRu41f16lHq725vPwnSeiG/Us= @@ -601,6 +1091,7 @@ github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hf 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/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= @@ -608,8 +1099,8 @@ github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/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/s2a-go v0.1.9 h1:LGD7gtMgezd8a/Xak7mEWL0PjoTQFvpRudN895yqKW0= +github.com/google/s2a-go v0.1.9/go.mod h1:YA0Ei2ZQL3acow2O62kdp9UlnvMmU7kA6Eutn0dXayM= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -618,8 +1109,10 @@ github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= github.com/googleapis/enterprise-certificate-proxy v0.2.0/go.mod h1:8C0jb7/mgJe/9KK8Lm7X9ctZC2t60YyIpYEI16jx0Qg= -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/enterprise-certificate-proxy v0.2.1/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= +github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= +github.com/googleapis/enterprise-certificate-proxy v0.3.4 h1:XYIDZApgAnrN1c855gTgghdIA6Stxb52D5RnLI1SLyw= +github.com/googleapis/enterprise-certificate-proxy v0.3.4/go.mod h1:YKe7cfqYXjKGpGvmSg28/fFvhNzinZQm8DGnaburhGA= 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.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= @@ -629,9 +1122,12 @@ github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99 github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= github.com/googleapis/gax-go/v2 v2.5.1/go.mod h1:h6B0KMMFNtI2ddbGJn3T3ZbwkeT6yqEF02fYlzkUCyo= github.com/googleapis/gax-go/v2 v2.6.0/go.mod h1:1mjbznJAPHFpesgE5ucqfYEscaz5kMdcIDwU/6+DDoY= -github.com/googleapis/gax-go/v2 v2.12.5 h1:8gw9KZK8TiVKB6q3zHY3SBzLnrGp6HQjyfYBYGmXdxA= -github.com/googleapis/gax-go/v2 v2.12.5/go.mod h1:BUDKcWo+RaKq5SC9vVYL0wLADa3VcfswbOMMRmB9H3E= +github.com/googleapis/gax-go/v2 v2.7.0/go.mod h1:TEop28CZZQ2y+c0VxMUmu1lV+fQx57QpBWsYpwqHJx8= +github.com/googleapis/gax-go/v2 v2.7.1/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI= +github.com/googleapis/gax-go/v2 v2.14.1 h1:hb0FFeiPaQskmvakKu5EbCbpntQn48jyHuvrkurSS/Q= +github.com/googleapis/gax-go/v2 v2.14.1/go.mod h1:Hb/NubMaVM88SrNkvl8X/o8XWwDJEPqouaLeN2IUxoA= 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/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= github.com/gorilla/handlers v1.5.2 h1:cLTUSsNkgcwhgRqvCNmdbRWG0A3N4F+M2nWKdScwyEE= @@ -642,8 +1138,8 @@ github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= -github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= +github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.2.2/go.mod h1:EaizFBKfUKtMIF5iaDEhniwNedqGo9FuLFzppDr3uwI= github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDaL56wXCB/5+wF6uHfaI= @@ -652,6 +1148,8 @@ github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgf github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3/go.mod h1:o//XUCC/F+yRGJoPO/VU0GSB0f8Nhgmxx0VIRUvaC0w= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c h1:6rhixN/i8ZofjG1Y75iExal34USq5p+wiN1tpie8IrU= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c/go.mod h1:NMPJylDgVpX0MLRlPy15sqSwOFv/U1GZ2m21JhFfek0= github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE= @@ -661,19 +1159,19 @@ github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtng github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= 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.7.4 h1:3yQjWuxICvSpYwqSayAdKRFcvBl1y/vogCxczWSmix0= -github.com/hashicorp/go-getter v1.7.4/go.mod h1:W7TalhMmbPmsSMdNjD0ZskARur/9GJ17cfHTRtXV744= -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-getter v1.7.8 h1:mshVHx1Fto0/MydBekWan5zUipGq7jO0novchgMmSiY= +github.com/hashicorp/go-getter v1.7.8/go.mod h1:2c6CboOEb9jG6YvmC9xdD+tyAFsrUaJPedwXDGr0TM4= +github.com/hashicorp/go-hclog v1.6.3 h1:Qr2kF+eVWjTiYmU7Y31tYlP1h0q/X3Nl3tPGdaB11/k= +github.com/hashicorp/go-hclog v1.6.3/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= github.com/hashicorp/go-immutable-radix v1.0.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-metrics v0.5.3 h1:M5uADWMOGCTUNU1YuC4hfknOeHNaX54LDm4oYSucoNE= -github.com/hashicorp/go-metrics v0.5.3/go.mod h1:KEjodfebIOuBYSAe/bHTm+HChmKSxAOXPBieMLYozDE= +github.com/hashicorp/go-metrics v0.5.4 h1:8mmPiIJkTPPEbAiV97IxdAGNdRdaWwVap1BU6elejKY= +github.com/hashicorp/go-metrics v0.5.4/go.mod h1:CG5yz4NZ/AI/aQt9Ucm/vdBnbh7fvmv4lxZ350i+QQI= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= -github.com/hashicorp/go-plugin v1.5.2 h1:aWv8eimFqWlsEiMrYZdPYl+FdHaBJSN4AWwGWfT1G2Y= -github.com/hashicorp/go-plugin v1.5.2/go.mod h1:w1sAEES3g3PuV/RzUrgow20W2uErMly84hhD3um1WL4= +github.com/hashicorp/go-plugin v1.6.3 h1:xgHB+ZUSYeuJi96WtxEjzi23uh7YQpznjGh0U0UUrwg= +github.com/hashicorp/go-plugin v1.6.3/go.mod h1:MRobyh+Wc/nYy1V4KAXUiYfzxoYhs7V1mlH1Z7iY2h0= github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= github.com/hashicorp/go-safetemp v1.0.0 h1:2HR189eFNrjHQyENnQMMpCiBAsRxzbTMIgBhEyExpmo= @@ -682,8 +1180,8 @@ github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerX github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-uuid v1.0.2 h1:cfejS+Tpcp13yd5nYHWDI6qVCny6wyX2Mt5SGur2IGE= -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.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek= github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= @@ -694,22 +1192,23 @@ github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iP github.com/hashicorp/golang-lru v1.0.2/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= -github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE= -github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= -github.com/hdevalence/ed25519consensus v0.1.0 h1:jtBwzzcHuTmFrQN6xQZn6CQEO/V9f7HsjsjeEZ6auqU= -github.com/hdevalence/ed25519consensus v0.1.0/go.mod h1:w3BHWjwJbFU29IRHL1Iqkw3sus+7FctEyM4RqDxYNzo= +github.com/hashicorp/yamux v0.1.2 h1:XtB8kyFOyHXYVFnwT5C3+Bdo8gArse7j2AQ0DA0Uey8= +github.com/hashicorp/yamux v0.1.2/go.mod h1:C+zze2n6e/7wshOZep2A70/aQU6QBRWJO/G6FT1wIns= +github.com/hdevalence/ed25519consensus v0.2.0 h1:37ICyZqdyj0lAZ8P4D1d1id3HqbbG1N3iBb1Tb4rdcU= +github.com/hdevalence/ed25519consensus v0.2.0/go.mod h1:w3BHWjwJbFU29IRHL1Iqkw3sus+7FctEyM4RqDxYNzo= +github.com/holiman/uint256 v1.3.2 h1:a9EgMPSC1AAaj1SZL5zIQD3WbwTuHrMGOerLjGmM/TA= +github.com/holiman/uint256 v1.3.2/go.mod h1:EOMSn4q6Nyt9P6efbI3bueV4e1b3dGlUCXeiRV4ng7E= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/huandu/go-assert v1.1.5 h1:fjemmA7sSfYHJD7CUqs9qTwwfdNAx7/j2/ZlHXzNB3c= github.com/huandu/go-assert v1.1.5/go.mod h1:yOLvuqZwmcHIC5rIzrBhT7D3Q9c3GFnd0JrPVhn/06U= -github.com/huandu/skiplist v1.2.0 h1:gox56QD77HzSC0w+Ws3MH3iie755GBJU1OER3h5VsYw= -github.com/huandu/skiplist v1.2.0/go.mod h1:7v3iFjLcSAzO4fN5B8dvebvo/qsfumiLiDXMrPiHF9w= +github.com/huandu/skiplist v1.2.1 h1:dTi93MgjwErA/8idWTzIw4Y1kZsMWx35fmI2c8Rij7w= +github.com/huandu/skiplist v1.2.1/go.mod h1:7v3iFjLcSAzO4fN5B8dvebvo/qsfumiLiDXMrPiHF9w= github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= +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-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= @@ -720,8 +1219,8 @@ github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANyt 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/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= -github.com/jhump/protoreflect v1.15.3 h1:6SFRuqU45u9hIZPJAoZ8c28T3nK64BNdp9w6jFonzls= -github.com/jhump/protoreflect v1.15.3/go.mod h1:4ORHmSBmlCW8fh3xHmJMGyul1zNqZK4Elxc8qKP+p1k= +github.com/jhump/protoreflect v1.17.0 h1:qOEr613fac2lOuTgWN4tPAtLL7fUSbuJL5X5XumQh94= +github.com/jhump/protoreflect v1.17.0/go.mod h1:h9+vUUL38jiBzck8ck+6G/aeMX8Z4QUY/NiJPwPNi+8= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= 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= @@ -736,53 +1235,66 @@ github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/u github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= -github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= +github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= +github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= +github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= +github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= 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/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.11.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= -github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= +github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= -github.com/klauspost/compress v1.17.7 h1:ehO88t2UGzQK66LMdE8tibEd1ErmzZjNEqWkjLAKQQg= -github.com/klauspost/compress v1.17.7/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= +github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= +github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= +github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= +github.com/klauspost/cpuid/v2 v2.2.10 h1:tBs3QSyvjDyFTq3uoc/9xFpCuOsJQFNPiAhYdw2skhE= +github.com/klauspost/cpuid/v2 v2.2.10/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0= +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/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/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= -github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= -github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= -github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw= -github.com/lib/pq v1.10.7/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= +github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= -github.com/linxGnu/grocksdb v1.8.14 h1:HTgyYalNwBSG/1qCQUIott44wU5b2Y9Kr3z7SK5OfGQ= -github.com/linxGnu/grocksdb v1.8.14/go.mod h1:QYiYypR2d4v63Wj1adOOfzglnoII0gLj3PNh4fZkcFA= +github.com/linxGnu/grocksdb v1.9.2 h1:O3mzvO0wuzQ9mtlHbDrShixyVjVbmuqTjFrzlf43wZ8= +github.com/linxGnu/grocksdb v1.9.2/go.mod h1:QYiYypR2d4v63Wj1adOOfzglnoII0gLj3PNh4fZkcFA= +github.com/lyft/protoc-gen-star v0.6.0/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= +github.com/lyft/protoc-gen-star v0.6.1/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= +github.com/lyft/protoc-gen-star/v2 v2.0.1/go.mod h1:RcCdONR2ScXaYnQC5tUzxzlpA3WVYF7/opLeUgcQs/o= github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= -github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= -github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= +github.com/magiconair/properties v1.8.10 h1:s31yESBquKXCV9a/ScB3ESkOjUYYv+X0rg8SYxI99mE= +github.com/magiconair/properties v1.8.10/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/manifoldco/promptui v0.9.0 h1:3V4HzJk1TtXW1MTZMP7mdlwbBpIinw3HztaIlYthEiA= github.com/manifoldco/promptui v0.9.0/go.mod h1:ka04sppxSGFAtxX0qhlYQjISsg9mR4GWtQEhdbn6Pgg= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.12/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-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE= +github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= @@ -793,10 +1305,13 @@ 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.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mattn/go-sqlite3 v1.14.14/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/minio/highwayhash v1.0.2 h1:Aak5U0nElisjDCfPSG79Tgzkn2gl66NxOMspRrKnA/g= -github.com/minio/highwayhash v1.0.2/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY= +github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY= +github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3/go.mod h1:RagcQ7I8IeTMnF8JTXieKnO4Z6JCsikNEzj0DwauVzE= +github.com/minio/highwayhash v1.0.3 h1:kbnuUMoHYyVl7szWjSxJnxw11k2U709jqFPPmIUyD6Q= +github.com/minio/highwayhash v1.0.3/go.mod h1:GGYsuwP/fPD6Y9hMiXuapVvlIUEhFhMTh0rxU3ik1LQ= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= @@ -808,17 +1323,14 @@ github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS4 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/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/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/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs= github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ibNBTZrns= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= @@ -832,8 +1344,9 @@ github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxzi github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= 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/nxadm/tail v1.4.11 h1:8feyoE3OzPrcshW5/MJ4sGESc5cqmGkGCWlco4l0bqY= +github.com/nxadm/tail v1.4.11/go.mod h1:OTaG3NK980DZzxbRq6lEuzgU+mug70nY11sMd4JXXHc= github.com/oasisprotocol/curve25519-voi v0.0.0-20230904125328-1f23a7beb09a h1:dlRvE5fWabOchtH7znfiFCcOvmIYgOeAS5ifBXBlh9Q= github.com/oasisprotocol/curve25519-voi v0.0.0-20230904125328-1f23a7beb09a/go.mod h1:hVoHR2EVESiICEMbg137etN/Lx+lSrHPTD39Z/uE+2s= github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs= @@ -853,15 +1366,15 @@ github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7J github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= -github.com/onsi/gomega v1.26.0 h1:03cDLK28U6hWvCAns6NeydX3zIm4SF3ci69ulidS32Q= -github.com/onsi/gomega v1.26.0/go.mod h1:r+zV744Re+DiYCIPRlYOTxn0YkOLcAnW8k1xXdMPGhM= +github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k= +github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY= github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= 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-rc2 h1:2zx/Stx4Wc5pIPDvIxHXvXtQFW/7XWJGmnM7r3wg034= -github.com/opencontainers/image-spec v1.1.0-rc2/go.mod h1:3OVijpioIKYWTqjiG0zfF6wvoJ4fAXGbjdZuI2NgsRQ= -github.com/opencontainers/runc v1.1.3 h1:vIXrkId+0/J2Ymu2m7VjGvbSlAId9XNRPhn2p4b+d8w= -github.com/opencontainers/runc v1.1.3/go.mod h1:1J5XiS+vdZ3wCyZybsuxXZWGrgSr8fFJHLXuG2PsnNg= +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.12 h1:BOIssBaW1La0/qbNZHXOOa71dZfZEQOzW7dqQf3phss= +github.com/opencontainers/runc v1.1.12/go.mod h1:S+lQwSfncpBha7XTy/5lBwWgm5+y5Ma/O44Ekby9FK8= github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= @@ -877,15 +1390,17 @@ github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FI github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= -github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -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/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4= +github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= -github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCrJTQWu0XVbaOlby/2lO20uSCHEMzzplHXte1o= -github.com/petermattis/goid v0.0.0-20231207134359-e60b3f734c67 h1:jik8PHtAIsPlCRJjJzl4udgEf7hawInF9texMeO2jrU= -github.com/petermattis/goid v0.0.0-20231207134359-e60b3f734c67/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= +github.com/petermattis/goid v0.0.0-20240813172612-4fcff4a6cae7 h1:Dx7Ovyv/SFnMFw3fD4oEoeorXc6saIiQ23LrGLth0Gw= +github.com/petermattis/goid v0.0.0-20240813172612-4fcff4a6cae7/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= +github.com/phpdave11/gofpdf v1.4.2/go.mod h1:zpO6xFn9yxo3YLyMvW8HcKWVdbNqgIfOOp2dXMnm1mY= +github.com/phpdave11/gofpdi v1.0.12/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= +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/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= @@ -894,6 +1409,10 @@ 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/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= +github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= +github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= +github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo= +github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8= 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= @@ -904,14 +1423,16 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= 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.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7kmXYlnfbA6JU= -github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k= +github.com/prometheus/client_golang v1.11.1/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= +github.com/prometheus/client_golang v1.22.0 h1:rb93p9lokFEsctTys46VnV1kLCDpVZ0a/Y92Vm0Zc6Q= +github.com/prometheus/client_golang v1.22.0/go.mod h1:R7ljNsLXhuQXYZYtw6GAE9AZg8Y7vEW5scdCXrWRXC0= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/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.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= 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.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= @@ -920,50 +1441,55 @@ github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt2 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.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= -github.com/prometheus/common v0.52.2 h1:LW8Vk7BccEdONfrJBDffQGRtpSzi5CQaRZGtboOO2ck= -github.com/prometheus/common v0.52.2/go.mod h1:lrWtQx+iDfn2mbH5GUzlH9TSHyfZpHkSiG1W7y3sF2Q= +github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= +github.com/prometheus/common v0.63.0 h1:YR/EIY1o3mEFP/kZCD7iDMnLPlGyuU2Gb3HIcXnA98k= +github.com/prometheus/common v0.63.0/go.mod h1:VVFF/fBIoToEnWRVkYoXEkq3R3paCoxG9PXP74SnV18= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.3.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.13.0 h1:GqzLlQyfsPbaEHaQkO7tbDlriv/4o5Hudv6OXHGKX7o= -github.com/prometheus/procfs v0.13.0/go.mod h1:cd4PFCR54QLnGKPaKGA6l+cfuNXtht43ZKY6tow0Y1g= +github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= 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.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/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= +github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= -github.com/rs/cors v1.8.3 h1:O+qNyWn7Z+F9M0ILBHgMVPuB1xTOucVd5gtaYyXBpRo= -github.com/rs/cors v1.8.3/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= -github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= -github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8= -github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= -github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= +github.com/rs/cors v1.11.1 h1:eU3gRzXLRK57F5rKMGMZURNdIG4EoAmX8k94r9wXWHA= +github.com/rs/cors v1.11.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= +github.com/rs/xid v1.6.0/go.mod h1:7XoLgs4eV+QndskICGsho+ADou8ySMSjJKDIan90Nz0= +github.com/rs/zerolog v1.34.0 h1:k43nTLIwcTVQAncfCw4KZ2VY6ukYoZaBPNOE8txlOeY= +github.com/rs/zerolog v1.34.0/go.mod h1:bJsvje4Z08ROH4Nhs5iH600c3IkWhwp44iRc54W6wYQ= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w= +github.com/ruudk/golang-pdf417 v0.0.0-20201230142125-a7e3863a1245/go.mod h1:pQAZKsJ8yyVxGRWYNEm9oFB8ieLgKFnamEyDmSA0BRk= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ= -github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4= -github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE= -github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ= +github.com/sagikazarmark/locafero v0.7.0 h1:5MqpDsTGNDhY8sGp0Aowyf0qKsPrhewaLSsFaodPcyo= +github.com/sagikazarmark/locafero v0.7.0/go.mod h1:2za3Cg5rMaTMoG/2Ulr9AwtFaIppKXTRYnozin4aB5k= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= -github.com/sasha-s/go-deadlock v0.3.1 h1:sqv7fDNShgjcaxkO0JNcOAlr8B9+cV5Ey/OB71efZx0= -github.com/sasha-s/go-deadlock v0.3.1/go.mod h1:F73l+cr82YSh10GxyRI6qZiCgK64VaZjwesgfQ1/iLM= +github.com/sasha-s/go-deadlock v0.3.5 h1:tNCOEEDG6tBqrNDOX35j/7hL5FcFViG6awUGROb2NsU= +github.com/sasha-s/go-deadlock v0.3.5/go.mod h1:bugP6EGbdGYObIlx7pUZtWqlvo8k9H6vCBBsiChJQ5U= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= +github.com/shamaton/msgpack/v2 v2.2.0 h1:IP1m01pHwCrMa6ZccP9B3bqxEMKMSmMVAVKk54g3L/Y= +github.com/shamaton/msgpack/v2 v2.2.0/go.mod h1:6khjYnkx73f7VQU7wjcFS9DFjs+59naVWJv1TB7qdOI= 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.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= -github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= @@ -971,26 +1497,24 @@ github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJ github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -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.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= -github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= -github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4= +github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= +github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= +github.com/spf13/afero v1.12.0 h1:UcOPyRBYczmFn6yvphxkn9ZEOY65cpwGKb5mL36mrqs= +github.com/spf13/afero v1.12.0/go.mod h1:ZTlWwG4/ahT8W7T0WQ5uYmjI9duaLQGy3Q2OAl4sk/4= +github.com/spf13/cast v1.8.0 h1:gEN9K4b8Xws4EX0+a0reLmhq8moKn7ntRlQYgjPeCDk= +github.com/spf13/cast v1.8.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= 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/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= -github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= -github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo= +github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0= github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI= -github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg= +github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= +github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/viper v1.20.1 h1:ZMi+z/lvLyPSCoNtFCpqjy0S4kPbirhpTMwl8BkW9X4= +github.com/spf13/viper v1.20.1/go.mod h1:P9Mdzt1zoHIG8m2eZQinpiBjo6kCmZSKBClNNqjJvu4= +github.com/spiffe/go-spiffe/v2 v2.5.0 h1:N2I01KCUkv1FAjZXJMwh95KK1ZIQLYbPfhaxw8WS0hE= +github.com/spiffe/go-spiffe/v2 v2.5.0/go.mod h1:P+NxobPc6wXhVtINNtFjNWGBTreew1GBUCwT2wPmb7g= github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= @@ -1010,9 +1534,9 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= 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/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d h1:vfofYNRScrDdvS342BElfbETmL1Aiz3i2t0zfRj16Hs= @@ -1023,32 +1547,34 @@ github.com/tidwall/btree v1.7.0 h1:L1fkJH/AuEh5zBnnBbmTwQ5Lt+bRJ5A8EWecslvo9iI= github.com/tidwall/btree v1.7.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= -github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo= +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.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/ugorji/go/codec v1.2.11 h1:BMaWp1Bb6fHwEtbplGBGJ498wD+LKlNSl25MjdZY4dU= -github.com/ugorji/go/codec v1.2.11/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= github.com/ulikunitz/xz v0.5.10/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/ulikunitz/xz v0.5.11 h1:kpFauv27b6ynzBNT/Xy+1k+fK4WswhN/6PN5WhFAGw8= github.com/ulikunitz/xz v0.5.11/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= 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.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= +github.com/zeebo/errs v1.4.0 h1:XNdoD/RRMKP7HD0UhJnIzUy74ISdGGxURlYG8HSWSfM= +github.com/zeebo/errs v1.4.0/go.mod h1:sgbWHsvVuTPHcqJJGQ1WhI5KbWlHYz+2+2C/LSEtCw4= +github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= github.com/zondax/hid v0.9.2 h1:WCJFnEDMiqGF64nlZz28E9qLVZ0KSJ7xpc5DLEyma2U= github.com/zondax/hid v0.9.2/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= github.com/zondax/ledger-go v0.14.3 h1:wEpJt2CEcBJ428md/5MgSLsXLBos98sBOyxNmCjfUCw= github.com/zondax/ledger-go v0.14.3/go.mod h1:IKKaoxupuB43g4NxeQmbLXv7T9AlQyie1UpHb342ycI= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.8 h1:xs88BrvEv273UsB79e0hcVrlUWmS0a8upikMFhSyAtA= -go.etcd.io/bbolt v1.3.8/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= +go.etcd.io/bbolt v1.4.0-alpha.1 h1:3yrqQzbRRPFPdOMWS/QQIVxVnzSkAZQYeWlZFv1kbj4= +go.etcd.io/bbolt v1.4.0-alpha.1/go.mod h1:S/Z/Nm3iuOnyO1W4XuFfPci51Gj6F1Hv0z8hisyYYOw= go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= @@ -1061,24 +1587,38 @@ go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= 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/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/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo= -go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo= -go.opentelemetry.io/otel/metric v1.24.0 h1:6EhoGWWK28x1fbpA4tYTOWBkPefTDQnb8WSGXlc88kI= -go.opentelemetry.io/otel/metric v1.24.0/go.mod h1:VYhLe1rFfxuTXLgj4CBiyz+9WYBA8pNGJgDcSFRKBco= -go.opentelemetry.io/otel/sdk v1.24.0 h1:YMPPDNymmQN3ZgczicBY3B6sf9n62Dlj9pWD3ucgoDw= -go.opentelemetry.io/otel/sdk v1.24.0/go.mod h1:KVrIYw6tEubO9E96HQpcmpTKDVn9gdv35HoYiQWGDFg= -go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y1YELI= -go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU= +go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= +go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= +go.opentelemetry.io/contrib/detectors/gcp v1.34.0 h1:JRxssobiPg23otYU5SbWtQC//snGVIM3Tx6QRzlQBao= +go.opentelemetry.io/contrib/detectors/gcp v1.34.0/go.mod h1:cV4BMFcscUR/ckqLkbfQmF0PRsq8w/lMGzdbCSveBHo= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0 h1:PS8wXpbyaDJQ2VDHHncMe9Vct0Zn1fEjpsjrLxGJoSc= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0/go.mod h1:HDBUsEjOuRC0EzKZ1bSaRGZWUBAzo+MhAcUUORSr4D0= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.59.0 h1:CV7UdSGJt/Ao6Gp4CXckLxVRRsRgDHoI8XjbL3PDl8s= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.59.0/go.mod h1:FRmFuRJfag1IZ2dPkHnEoSFVgTVPUd2qf5Vi69hLb8I= +go.opentelemetry.io/otel v1.34.0 h1:zRLXxLCgL1WyKsPVrgbSdMN4c0FMkDAskSTQP+0hdUY= +go.opentelemetry.io/otel v1.34.0/go.mod h1:OWFPOQ+h4G8xpyjgqo4SxJYdDQ/qmRH+wivy7zzx9oI= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.29.0 h1:WDdP9acbMYjbKIyJUhTvtzj601sVJOqgWdUxSdR/Ysc= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.29.0/go.mod h1:BLbf7zbNIONBLPwvFnwNHGj4zge8uTCM/UPIVW1Mq2I= +go.opentelemetry.io/otel/metric v1.34.0 h1:+eTR3U0MyfWjRDhmFMxe2SsW64QrZ84AOhvqS7Y+PoQ= +go.opentelemetry.io/otel/metric v1.34.0/go.mod h1:CEDrp0fy2D0MvkXE+dPV7cMi8tWZwX3dmaIhwPOaqHE= +go.opentelemetry.io/otel/sdk v1.34.0 h1:95zS4k/2GOy069d321O8jWgYsW3MzVV+KuSPKp7Wr1A= +go.opentelemetry.io/otel/sdk v1.34.0/go.mod h1:0e/pNiaMAqaykJGKbi+tSjWfNNHMTxoC9qANsCzbyxU= +go.opentelemetry.io/otel/sdk/metric v1.34.0 h1:5CeK9ujjbFVL5c1PhLuStg1wxA7vQv7ce1EK0Gyvahk= +go.opentelemetry.io/otel/sdk/metric v1.34.0/go.mod h1:jQ/r8Ze28zRKoNRdkjCZxfs6YvBTG1+YIqyFVFYec5w= +go.opentelemetry.io/otel/trace v1.34.0 h1:+ouXS2V8Rd4hp4580a8q23bg0azF2nI8cqLYnC8mh/k= +go.opentelemetry.io/otel/trace v1.34.0/go.mod h1:Svm7lSjQD7kG7KJ/MUHPVXSDGz2OX4h0M2jHBhmSfRE= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= +go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= +go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= +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/mock v0.5.2 h1:LbtPTcP8A5k9WPXj54PPPbjcI4Y6lhyOZXn+VS7wNko= +go.uber.org/mock v0.5.2/go.mod h1:wLlUxC2vVTPTaE3UD51E0BGOAElKrILxhVSDYQLld5o= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= @@ -1088,23 +1628,35 @@ go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9E go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= +golang.org/x/arch v0.15.0 h1:QtOrQd0bTUnhNVNndMpLHNWrDmYzZ2KDqSrEymqInZw= +golang.org/x/arch v0.15.0/go.mod h1:JmwW7aLIoRUKgaTzhkiEFxvcEiQGyOg9BMonBJUS7EE= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/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-20190820162420-60c769a6c586/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-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw= -golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= +golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= +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.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= +golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE= +golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc= +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-20191002040644-a1355ae1e2c3/go.mod h1:NOZ3BPKG0ec/BKJQgnvsSFpcKLM5xXVWnvZS97DWHgE= 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= @@ -1112,10 +1664,22 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0 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-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= -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/exp v0.0.0-20220827204233-334a2380cb91/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= +golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 h1:nDVHiLt8aIbd/VzvPWN6kSOPE7+F/fNFDSXLVYkE/Iw= +golang.org/x/exp v0.0.0-20250305212735-054e65f0b394/go.mod h1:sIifuuw/Yco/y6yb6+bDNfyeQ/MdPUy/hKEMYQV17cM= +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/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= +golang.org/x/image v0.0.0-20200618115811-c13761719519/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20201208152932-35266b937fa6/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20210216034530-4410531fe030/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20210607152325-775e3b0c77b9/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= +golang.org/x/image v0.0.0-20210628002857-a66eb6448b8d/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= +golang.org/x/image v0.0.0-20211028202545-6944b10bf410/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= +golang.org/x/image v0.0.0-20220302094943-723b81ca9867/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= 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= @@ -1139,9 +1703,15 @@ 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.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= +golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -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/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +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-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= @@ -1182,6 +1752,7 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY 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-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= @@ -1189,6 +1760,8 @@ golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96b golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= @@ -1199,10 +1772,22 @@ golang.org/x/net v0.0.0-20220617184016-355a448f1bc9/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.0.0-20221012135044-0b7e1fb9d458/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= -golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= -golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= +golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= +golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= +golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= +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.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= +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.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= +golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY= +golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= 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= @@ -1226,10 +1811,14 @@ golang.org/x/oauth2 v0.0.0-20220608161450-d0670ef3b1eb/go.mod h1:jaDAt6Dkxork7Lm golang.org/x/oauth2 v0.0.0-20220622183110-fd043fe589d2/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= +golang.org/x/oauth2 v0.0.0-20221006150949-b44042a4b9c1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= -golang.org/x/oauth2 v0.1.0/go.mod h1:G9FE4dLTsbXUu90h/Pf85g4w1D+SSAgR+q46nJZ8M4A= -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/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec= +golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= +golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw= +golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4= +golang.org/x/oauth2 v0.27.0 h1:da9Vo7/tDv5RH/7nZDz1eMGS/q1Vv1N/7FCrBhI9I3M= +golang.org/x/oauth2 v0.27.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8= 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= @@ -1243,9 +1832,15 @@ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/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.0.0-20220819030929-7fc1605a5dde/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= -golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.13.0 h1:AauUjRAJ9OSnvULf/ARrrVywoJDy0YS2AwQ98I37610= +golang.org/x/sync v0.13.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 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= @@ -1254,8 +1849,6 @@ golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5h 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-20181122145206-62eef0e2fa9b/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-20190130150945-aca44879d564/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-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1264,7 +1857,6 @@ golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7w 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-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1300,24 +1892,31 @@ golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210304124612-50617c2ba197/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-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-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603125802-9665404d3644/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-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/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-20211019181941-9d821ace8654/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-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1338,17 +1937,38 @@ golang.org/x/sys v0.0.0-20220624220833-87e55d714810/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-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.4.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.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.24.0 h1:Twjiwq9dn6R1fQcyiK+wQyHWfaz/BJB+YIpzU/Cv3Xg= -golang.org/x/sys v0.24.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/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= +golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= 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.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.23.0 h1:F6D4vR+EHoL9/sWAWgAR1H2DcHr4PareCbAaCo1RpuU= -golang.org/x/term v0.23.0/go.mod h1:DgV24QBUrK6jhZXl+20l6UWznPlwAHm1Q1mGHtydmSk= +golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= +golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= +golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= +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.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= +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.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek= +golang.org/x/term v0.31.0 h1:erwDkOK1Msy6offm1mOgvspSkslFnIGsFnxOKoufg3o= +golang.org/x/term v0.31.0/go.mod h1:R4BeIy7D95HzImkxGkTW1UQTtP54tio2RyHz7PwK0aw= 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= @@ -1358,20 +1978,35 @@ 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.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= -golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.6.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.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= +golang.org/x/text v0.24.0 h1:dd5Bzh4yt5KYA8f9CJHCP4FB4D51c2c6JvN37xJJkJ0= +golang.org/x/text v0.24.0/go.mod h1:L8rBsPeo2pSS+xqN0d5u2ikmjtmoJbDBT1b7nHvFCdU= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= 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.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= -golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/time v0.0.0-20220922220347-f3bd1da661af/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.1.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.10.0 h1:3usCWA8tQn0L8+hFJQNgzpWbd89begxN66o1Ojdn5L4= +golang.org/x/time v0.10.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/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-20181030221726-6c7e314b6563/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= @@ -1385,6 +2020,7 @@ golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/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.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= @@ -1418,20 +2054,26 @@ golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc 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-20201124115921-2c860bdd6e78/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-20201224043029-2b0845dc783e/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.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -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/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= 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= @@ -1440,8 +2082,14 @@ golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= 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.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= +gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0= +gonum.org/v1/gonum v0.9.3/go.mod h1:TZumC3NeyVQskjXqmyWt4S3bINhy7B4eYwW69EbyX+0= +gonum.org/v1/gonum v0.11.0/go.mod h1:fSG4YDCxxUZQJ7rKsQrj0gMOg00Il0Z96/qMA4bVQhA= +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= +gonum.org/v1/plot v0.9.0/go.mod h1:3Pcqqmp6RHvJI72kgb8fThyUnav364FOsdDo2aGW5lY= +gonum.org/v1/plot v0.10.1/go.mod h1:VZW5OlhkL1mysU9vaqNHnsy86inf6Ot+jB3r+BczCEo= google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= 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= @@ -1490,9 +2138,18 @@ google.golang.org/api v0.95.0/go.mod h1:eADj+UBuxkh5zlrSntJghuNeg8HwQ1w5lTKkuqaE google.golang.org/api v0.96.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.97.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= +google.golang.org/api v0.99.0/go.mod h1:1YOf74vkVndF7pG6hIHuINsM7eWwpVTAfNMNiL91A08= google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70= -google.golang.org/api v0.186.0 h1:n2OPp+PPXX0Axh4GuSsL5QL8xQCTb2oDwyzPnQvqUug= -google.golang.org/api v0.186.0/go.mod h1:hvRbBmgoje49RV3xqVXrmP6w93n6ehGgIVPYrGtBFFc= +google.golang.org/api v0.102.0/go.mod h1:3VFl6/fzoA+qNuS1N1/VfXY4LjoXN/wzeIp7TweWwGo= +google.golang.org/api v0.103.0/go.mod h1:hGtW6nK1AC+d9si/UBhw8Xli+QMOf6xyNAyJw4qU9w0= +google.golang.org/api v0.106.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= +google.golang.org/api v0.107.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= +google.golang.org/api v0.108.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= +google.golang.org/api v0.110.0/go.mod h1:7FC4Vvx1Mooxh8C5HWjzZHcavuS2f6pmJpZx60ca7iI= +google.golang.org/api v0.111.0/go.mod h1:qtFHvU9mhgTJegR31csQ+rwxyUTHOKFqCKWp1J0fdw0= +google.golang.org/api v0.114.0/go.mod h1:ifYI2ZsFK6/uGddGfAD5BMxlnkBqCmqHSDUVi45N5Yg= +google.golang.org/api v0.222.0 h1:Aiewy7BKLCuq6cUCeOUrsAlzjXPqBkEeQ/iwGHVQa/4= +google.golang.org/api v0.222.0/go.mod h1:efZia3nXpWELrwMlN5vyQrD4GmJN1Vw0x68Et3r+a9c= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1539,8 +2196,10 @@ google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6D 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-20210126160654-44e461bb6506/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/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-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= @@ -1574,6 +2233,7 @@ google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2 google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= google.golang.org/genproto v0.0.0-20220314164441-57ef72a4c106/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= +google.golang.org/genproto v0.0.0-20220329172620-7be39ac1afc7/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= google.golang.org/genproto v0.0.0-20220407144326-9054f6ed7bac/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= google.golang.org/genproto v0.0.0-20220413183235-5e96e2839df9/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= google.golang.org/genproto v0.0.0-20220414192740-2d67ff6cf2b4/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= @@ -1606,13 +2266,41 @@ google.golang.org/genproto v0.0.0-20220926220553-6981cbe3cfce/go.mod h1:woMGP53B google.golang.org/genproto v0.0.0-20221010155953-15ba04fc1c0e/go.mod h1:3526vdqwhZAwq4wsRUaVG555sVgsNmIjRtO7t/JH29U= google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= -google.golang.org/genproto v0.0.0-20221025140454-527a21cfbd71/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= -google.golang.org/genproto v0.0.0-20240701130421-f6361c86f094 h1:6whtk83KtD3FkGrVb2hFXuQ+ZMbCNdakARIn/aHMmG8= -google.golang.org/genproto v0.0.0-20240701130421-f6361c86f094/go.mod h1:Zs4wYw8z1zr6RNF4cwYb31mvN/EGaKAdQjNCF3DW6K4= -google.golang.org/genproto/googleapis/api v0.0.0-20240624140628-dc46fd24d27d h1:Aqf0fiIdUQEj0Gn9mKFFXoQfTTEaNopWpfVyYADxiSg= -google.golang.org/genproto/googleapis/api v0.0.0-20240624140628-dc46fd24d27d/go.mod h1:Od4k8V1LQSizPRUK4OzZ7TBE/20k+jPczUDAEyvn69Y= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240709173604-40e1e62336c5 h1:SbSDUWW1PAO24TNpLdeheoYPd7kllICcLU52x6eD4kQ= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240709173604-40e1e62336c5/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY= +google.golang.org/genproto v0.0.0-20221024153911-1573dae28c9c/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= +google.golang.org/genproto v0.0.0-20221024183307-1bc688fe9f3e/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= +google.golang.org/genproto v0.0.0-20221027153422-115e99e71e1c/go.mod h1:CGI5F/G+E5bKwmfYo09AXuVN4dD894kIKUFmVbP2/Fo= +google.golang.org/genproto v0.0.0-20221109142239-94d6d90a7d66/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221114212237-e4508ebdbee1/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221117204609-8f9c96812029/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221201164419-0e50fba7f41c/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221201204527-e3fa12d562f3/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221202195650-67e5cbc046fd/go.mod h1:cTsE614GARnxrLsqKREzmNYJACSWWpAWdNMwnD7c2BE= +google.golang.org/genproto v0.0.0-20221227171554-f9683d7f8bef/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230112194545-e10362b5ecf9/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230113154510-dbe35b8444a5/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230123190316-2c411cf9d197/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230124163310-31e0e69b6fc2/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230125152338-dcaf20b6aeaa/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230127162408-596548ed4efa/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230209215440-0dfe4f8abfcc/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230216225411-c8e22ba71e44/go.mod h1:8B0gmkoRebU8ukX6HP+4wrVQUY1+6PkQ44BSyIlflHA= +google.golang.org/genproto v0.0.0-20230222225845-10f96fb3dbec/go.mod h1:3Dl5ZL0q0isWJt+FVcfpQyirqemEuLAK/iFvg1UP1Hw= +google.golang.org/genproto v0.0.0-20230223222841-637eb2293923/go.mod h1:3Dl5ZL0q0isWJt+FVcfpQyirqemEuLAK/iFvg1UP1Hw= +google.golang.org/genproto v0.0.0-20230303212802-e74f57abe488/go.mod h1:TvhZT5f700eVlTNwND1xoEZQeWTB2RY/65kplwl/bFA= +google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= +google.golang.org/genproto v0.0.0-20230320184635-7606e756e683/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= +google.golang.org/genproto v0.0.0-20230323212658-478b75c54725/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= +google.golang.org/genproto v0.0.0-20230330154414-c0448cd141ea/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= +google.golang.org/genproto v0.0.0-20230331144136-dcfb400f0633/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= +google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= +google.golang.org/genproto v0.0.0-20241118233622-e639e219e697 h1:ToEetK57OidYuqD4Q5w+vfEnPvPpuTwedCNVohYJfNk= +google.golang.org/genproto v0.0.0-20241118233622-e639e219e697/go.mod h1:JJrvXBWRZaFMxBufik1a4RpFw4HhgVtBBWQeQgUj2cc= +google.golang.org/genproto/googleapis/api v0.0.0-20250414145226-207652e42e2e h1:UdXH7Kzbj+Vzastr5nVfccbmFsmYNygVLSPk1pEfDoY= +google.golang.org/genproto/googleapis/api v0.0.0-20250414145226-207652e42e2e/go.mod h1:085qFyf2+XaZlRdCgKNCIZ3afY2p4HHZdoIRpId8F4A= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250422160041-2d3770c4ea7f h1:N/PrbTw4kdkqNRzVfWPrBekzLuarFREcbFOiOLkXon4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250422160041-2d3770c4ea7f/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -1645,6 +2333,7 @@ google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnD google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= +google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= @@ -1654,8 +2343,13 @@ google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACu google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.64.1 h1:LKtvyfbX3UGVPFcGqJ9ItpVWW6oN/2XqTxfAnwRRXiA= -google.golang.org/grpc v1.64.1/go.mod h1:hiQF4LFZelK2WKaP6W0L92zGHtiQdZxk8CrSdvyjeP0= +google.golang.org/grpc v1.51.0/go.mod h1:wgNDFcnuBGmxLKI/qn4T+m5BtEBYXJPvibbUPsAIPww= +google.golang.org/grpc v1.52.3/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= +google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= +google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= +google.golang.org/grpc v1.56.3/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= +google.golang.org/grpc v1.72.0 h1:S7UkcVa60b5AAQTaO6ZKamFp1zMZSU0fGDK2WZLbBnM= +google.golang.org/grpc v1.72.0/go.mod h1:wH5Aktxcg25y1I3w7H69nHfXdOG3UiadoBtjh3izSDM= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= 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= @@ -1672,8 +2366,11 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ 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.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= -google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= +google.golang.org/protobuf v1.29.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= +google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= 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= @@ -1686,8 +2383,6 @@ gopkg.in/cheggaaa/pb.v1 v1.0.27/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qS 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/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= -gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= -gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= 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= @@ -1706,8 +2401,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= -gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU= -gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= +gotest.tools/v3 v3.5.2 h1:7koQfIKdy+I8UTetycgUqXWSDwpgv193Ka+qRsmBY8Q= +gotest.tools/v3 v3.5.2/go.mod h1:LtdLGcnqToBH83WByAAi/wiwSFCArdFIUV/xxN4pcjA= honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= 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= @@ -1716,11 +2411,49 @@ 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= -nhooyr.io/websocket v1.8.6 h1:s+C3xAMLwGmlI31Nyn/eAehUlZPwfYZu2JXM621Q5/k= +honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= +lukechampine.com/uint128 v1.1.1/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= +lukechampine.com/uint128 v1.2.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= +modernc.org/cc/v3 v3.36.0/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= +modernc.org/cc/v3 v3.36.2/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= +modernc.org/cc/v3 v3.36.3/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= +modernc.org/ccgo/v3 v3.0.0-20220428102840-41399a37e894/go.mod h1:eI31LL8EwEBKPpNpA4bU1/i+sKOwOrQy8D87zWUcRZc= +modernc.org/ccgo/v3 v3.0.0-20220430103911-bc99d88307be/go.mod h1:bwdAnOoaIt8Ax9YdWGjxWsdkPcZyRPHqrOvJxaKAKGw= +modernc.org/ccgo/v3 v3.16.4/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ= +modernc.org/ccgo/v3 v3.16.6/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ= +modernc.org/ccgo/v3 v3.16.8/go.mod h1:zNjwkizS+fIFDrDjIAgBSCLkWbJuHF+ar3QRn+Z9aws= +modernc.org/ccgo/v3 v3.16.9/go.mod h1:zNMzC9A9xeNUepy6KuZBbugn3c0Mc9TeiJO4lgvkJDo= +modernc.org/ccorpus v1.11.6/go.mod h1:2gEUTrWqdpH2pXsmTM1ZkjeSrUWDpjMu2T6m29L/ErQ= +modernc.org/httpfs v1.0.6/go.mod h1:7dosgurJGp0sPaRanU53W4xZYKh14wfzX420oZADeHM= +modernc.org/libc v0.0.0-20220428101251-2d5f3daf273b/go.mod h1:p7Mg4+koNjc8jkqwcoFBJx7tXkpj00G77X7A72jXPXA= +modernc.org/libc v1.16.0/go.mod h1:N4LD6DBE9cf+Dzf9buBlzVJndKr/iJHG97vGLHYnb5A= +modernc.org/libc v1.16.1/go.mod h1:JjJE0eu4yeK7tab2n4S1w8tlWd9MxXLRzheaRnAKymU= +modernc.org/libc v1.16.17/go.mod h1:hYIV5VZczAmGZAnG15Vdngn5HSF5cSkbvfz2B7GRuVU= +modernc.org/libc v1.16.19/go.mod h1:p7Mg4+koNjc8jkqwcoFBJx7tXkpj00G77X7A72jXPXA= +modernc.org/libc v1.17.0/go.mod h1:XsgLldpP4aWlPlsjqKRdHPqCxCjISdHfM/yeWC5GyW0= +modernc.org/libc v1.17.1/go.mod h1:FZ23b+8LjxZs7XtFMbSzL/EhPxNbfZbErxEHc7cbD9s= +modernc.org/mathutil v1.2.2/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= +modernc.org/mathutil v1.4.1/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= +modernc.org/mathutil v1.5.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= +modernc.org/memory v1.1.1/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw= +modernc.org/memory v1.2.0/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw= +modernc.org/memory v1.2.1/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= +modernc.org/opt v0.1.1/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= +modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= +modernc.org/sqlite v1.18.1/go.mod h1:6ho+Gow7oX5V+OiOQ6Tr4xeqbx13UZ6t+Fw9IRUG4d4= +modernc.org/strutil v1.1.1/go.mod h1:DE+MQQ/hjKBZS2zNInV5hhcipt5rLPWkmpbGeW5mmdw= +modernc.org/strutil v1.1.3/go.mod h1:MEHNA7PdEnEwLvspRMtWTNnp2nnyvMfkimT1NKNAGbw= +modernc.org/tcl v1.13.1/go.mod h1:XOLfOwzhkljL4itZkK6T72ckMgvj0BDsnKNdZVUOecw= +modernc.org/token v1.0.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= +modernc.org/z v1.5.1/go.mod h1:eWFB510QWW5Th9YGZT81s+LwvaAs3Q2yr4sP0rmLkv8= nhooyr.io/websocket v1.8.6/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= -pgregory.net/rapid v1.1.0 h1:CMa0sjHSru3puNx+J0MIAuiiEV4N0qj8/cMWGBBCsjw= -pgregory.net/rapid v1.1.0/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= +nhooyr.io/websocket v1.8.17 h1:KEVeLJkUywCKVsnLIDlD/5gtayKp8VoCkksHCGGfT9Y= +nhooyr.io/websocket v1.8.17/go.mod h1:rN9OFWIUwuxg4fR5tELlYC04bXYowCP9GX47ivo2l+c= +nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= +pgregory.net/rapid v1.2.0 h1:keKAYRcjm+e1F0oAuU5F5+YPAWcyxNNRK2wud503Gnk= +pgregory.net/rapid v1.2.0/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= 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= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= diff --git a/modules/ibc-hooks/hooks.go b/modules/ibc-hooks/hooks.go index d6b2339c..86c756d8 100644 --- a/modules/ibc-hooks/hooks.go +++ b/modules/ibc-hooks/hooks.go @@ -4,34 +4,34 @@ import ( // external libraries sdk "github.com/cosmos/cosmos-sdk/types" - capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types" - ibcclienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" + ibcclienttypes "github.com/cosmos/ibc-go/v10/modules/core/02-client/types" + // ibc-go - channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types" - ibcexported "github.com/cosmos/ibc-go/v8/modules/core/exported" + channeltypes "github.com/cosmos/ibc-go/v10/modules/core/04-channel/types" + ibcexported "github.com/cosmos/ibc-go/v10/modules/core/exported" ) type Hooks interface{} type OnChanOpenInitOverrideHooks interface { - OnChanOpenInitOverride(im IBCMiddleware, ctx sdk.Context, order channeltypes.Order, connectionHops []string, portID string, channelID string, channelCap *capabilitytypes.Capability, counterparty channeltypes.Counterparty, version string) (string, error) + OnChanOpenInitOverride(im IBCMiddleware, ctx sdk.Context, order channeltypes.Order, connectionHops []string, portID string, channelID string, counterparty channeltypes.Counterparty, version string) (string, error) } type OnChanOpenInitBeforeHooks interface { - OnChanOpenInitBeforeHook(ctx sdk.Context, order channeltypes.Order, connectionHops []string, portID string, channelID string, channelCap *capabilitytypes.Capability, counterparty channeltypes.Counterparty, version string) + OnChanOpenInitBeforeHook(ctx sdk.Context, order channeltypes.Order, connectionHops []string, portID string, channelID string, counterparty channeltypes.Counterparty, version string) } type OnChanOpenInitAfterHooks interface { - OnChanOpenInitAfterHook(ctx sdk.Context, order channeltypes.Order, connectionHops []string, portID string, channelID string, channelCap *capabilitytypes.Capability, counterparty channeltypes.Counterparty, version string, finalVersion string, err error) + OnChanOpenInitAfterHook(ctx sdk.Context, order channeltypes.Order, connectionHops []string, portID string, channelID string, counterparty channeltypes.Counterparty, version string, finalVersion string, err error) } // OnChanOpenTry Hooks type OnChanOpenTryOverrideHooks interface { - OnChanOpenTryOverride(im IBCMiddleware, ctx sdk.Context, order channeltypes.Order, connectionHops []string, portID, channelID string, channelCap *capabilitytypes.Capability, counterparty channeltypes.Counterparty, counterpartyVersion string) (string, error) + OnChanOpenTryOverride(im IBCMiddleware, ctx sdk.Context, order channeltypes.Order, connectionHops []string, portID, channelID string, counterparty channeltypes.Counterparty, counterpartyVersion string) (string, error) } type OnChanOpenTryBeforeHooks interface { - OnChanOpenTryBeforeHook(ctx sdk.Context, order channeltypes.Order, connectionHops []string, portID, channelID string, channelCap *capabilitytypes.Capability, counterparty channeltypes.Counterparty, counterpartyVersion string) + OnChanOpenTryBeforeHook(ctx sdk.Context, order channeltypes.Order, connectionHops []string, portID, channelID string, counterparty channeltypes.Counterparty, counterpartyVersion string) } type OnChanOpenTryAfterHooks interface { - OnChanOpenTryAfterHook(ctx sdk.Context, order channeltypes.Order, connectionHops []string, portID, channelID string, channelCap *capabilitytypes.Capability, counterparty channeltypes.Counterparty, counterpartyVersion string, version string, err error) + OnChanOpenTryAfterHook(ctx sdk.Context, order channeltypes.Order, connectionHops []string, portID, channelID string, counterparty channeltypes.Counterparty, counterpartyVersion string, version string, err error) } // OnChanOpenAck Hooks @@ -113,24 +113,24 @@ type OnTimeoutPacketAfterHooks interface { // SendPacket Hooks type SendPacketOverrideHooks interface { - SendPacketOverride(i ICS4Middleware, ctx sdk.Context, channelCap *capabilitytypes.Capability, sourcePort string, sourceChannel string, timeoutHeight ibcclienttypes.Height, timeoutTimestamp uint64, data []byte) (sequence uint64, err error) + SendPacketOverride(i ICS4Middleware, ctx sdk.Context, sourcePort string, sourceChannel string, timeoutHeight ibcclienttypes.Height, timeoutTimestamp uint64, data []byte) (sequence uint64, err error) } type SendPacketBeforeHooks interface { - SendPacketBeforeHook(ctx sdk.Context, chanCap *capabilitytypes.Capability, sourcePort string, sourceChannel string, timeoutHeight ibcclienttypes.Height, timeoutTimestamp uint64, data []byte) + SendPacketBeforeHook(ctx sdk.Context, sourcePort string, sourceChannel string, timeoutHeight ibcclienttypes.Height, timeoutTimestamp uint64, data []byte) } type SendPacketAfterHooks interface { - SendPacketAfterHook(ctx sdk.Context, chanCap *capabilitytypes.Capability, sourcePort string, sourceChannel string, timeoutHeight ibcclienttypes.Height, timeoutTimestamp uint64, data []byte, err error) + SendPacketAfterHook(ctx sdk.Context, sourcePort string, sourceChannel string, timeoutHeight ibcclienttypes.Height, timeoutTimestamp uint64, data []byte, err error) } // WriteAcknowledgement Hooks type WriteAcknowledgementOverrideHooks interface { - WriteAcknowledgementOverride(i ICS4Middleware, ctx sdk.Context, chanCap *capabilitytypes.Capability, packet ibcexported.PacketI, ack ibcexported.Acknowledgement) error + WriteAcknowledgementOverride(i ICS4Middleware, ctx sdk.Context, packet ibcexported.PacketI, ack ibcexported.Acknowledgement) error } type WriteAcknowledgementBeforeHooks interface { - WriteAcknowledgementBeforeHook(ctx sdk.Context, chanCap *capabilitytypes.Capability, packet ibcexported.PacketI, ack ibcexported.Acknowledgement) + WriteAcknowledgementBeforeHook(ctx sdk.Context, packet ibcexported.PacketI, ack ibcexported.Acknowledgement) } type WriteAcknowledgementAfterHooks interface { - WriteAcknowledgementAfterHook(ctx sdk.Context, chanCap *capabilitytypes.Capability, packet ibcexported.PacketI, ack ibcexported.Acknowledgement, err error) + WriteAcknowledgementAfterHook(ctx sdk.Context, packet ibcexported.PacketI, ack ibcexported.Acknowledgement, err error) } // GetAppVersion Hooks diff --git a/modules/ibc-hooks/ibc_module.go b/modules/ibc-hooks/ibc_module.go index 1e9d8cc8..1c7c5179 100644 --- a/modules/ibc-hooks/ibc_module.go +++ b/modules/ibc-hooks/ibc_module.go @@ -4,12 +4,12 @@ import ( // external libraries sdk "github.com/cosmos/cosmos-sdk/types" - capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types" - ibcclienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" + ibcclienttypes "github.com/cosmos/ibc-go/v10/modules/core/02-client/types" + // ibc-go - channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types" - porttypes "github.com/cosmos/ibc-go/v8/modules/core/05-port/types" - ibcexported "github.com/cosmos/ibc-go/v8/modules/core/exported" + channeltypes "github.com/cosmos/ibc-go/v10/modules/core/04-channel/types" + porttypes "github.com/cosmos/ibc-go/v10/modules/core/05-port/types" + ibcexported "github.com/cosmos/ibc-go/v10/modules/core/exported" ) var _ porttypes.Middleware = &IBCMiddleware{} @@ -33,22 +33,21 @@ func (im IBCMiddleware) OnChanOpenInit( connectionHops []string, portID string, channelID string, - channelCap *capabilitytypes.Capability, counterparty channeltypes.Counterparty, version string, ) (string, error) { if hook, ok := im.ICS4Middleware.Hooks.(OnChanOpenInitOverrideHooks); ok { - return hook.OnChanOpenInitOverride(im, ctx, order, connectionHops, portID, channelID, channelCap, counterparty, version) + return hook.OnChanOpenInitOverride(im, ctx, order, connectionHops, portID, channelID, counterparty, version) } if hook, ok := im.ICS4Middleware.Hooks.(OnChanOpenInitBeforeHooks); ok { - hook.OnChanOpenInitBeforeHook(ctx, order, connectionHops, portID, channelID, channelCap, counterparty, version) + hook.OnChanOpenInitBeforeHook(ctx, order, connectionHops, portID, channelID, counterparty, version) } - finalVersion, err := im.App.OnChanOpenInit(ctx, order, connectionHops, portID, channelID, channelCap, counterparty, version) + finalVersion, err := im.App.OnChanOpenInit(ctx, order, connectionHops, portID, channelID, counterparty, version) if hook, ok := im.ICS4Middleware.Hooks.(OnChanOpenInitAfterHooks); ok { - hook.OnChanOpenInitAfterHook(ctx, order, connectionHops, portID, channelID, channelCap, counterparty, version, finalVersion, err) + hook.OnChanOpenInitAfterHook(ctx, order, connectionHops, portID, channelID, counterparty, version, finalVersion, err) } return version, err } @@ -60,22 +59,21 @@ func (im IBCMiddleware) OnChanOpenTry( connectionHops []string, portID, channelID string, - channelCap *capabilitytypes.Capability, counterparty channeltypes.Counterparty, counterpartyVersion string, ) (string, error) { if hook, ok := im.ICS4Middleware.Hooks.(OnChanOpenTryOverrideHooks); ok { - return hook.OnChanOpenTryOverride(im, ctx, order, connectionHops, portID, channelID, channelCap, counterparty, counterpartyVersion) + return hook.OnChanOpenTryOverride(im, ctx, order, connectionHops, portID, channelID, counterparty, counterpartyVersion) } if hook, ok := im.ICS4Middleware.Hooks.(OnChanOpenTryBeforeHooks); ok { - hook.OnChanOpenTryBeforeHook(ctx, order, connectionHops, portID, channelID, channelCap, counterparty, counterpartyVersion) + hook.OnChanOpenTryBeforeHook(ctx, order, connectionHops, portID, channelID, counterparty, counterpartyVersion) } - version, err := im.App.OnChanOpenTry(ctx, order, connectionHops, portID, channelID, channelCap, counterparty, counterpartyVersion) + version, err := im.App.OnChanOpenTry(ctx, order, connectionHops, portID, channelID, counterparty, counterpartyVersion) if hook, ok := im.ICS4Middleware.Hooks.(OnChanOpenTryAfterHooks); ok { - hook.OnChanOpenTryAfterHook(ctx, order, connectionHops, portID, channelID, channelCap, counterparty, counterpartyVersion, version, err) + hook.OnChanOpenTryAfterHook(ctx, order, connectionHops, portID, channelID, counterparty, counterpartyVersion, version, err) } return version, err } @@ -170,6 +168,7 @@ func (im IBCMiddleware) OnChanCloseConfirm( // OnRecvPacket implements the IBCMiddleware interface func (im IBCMiddleware) OnRecvPacket( ctx sdk.Context, + channelVersion string, packet channeltypes.Packet, relayer sdk.AccAddress, ) ibcexported.Acknowledgement { @@ -181,7 +180,7 @@ func (im IBCMiddleware) OnRecvPacket( hook.OnRecvPacketBeforeHook(ctx, packet, relayer) } - ack := im.App.OnRecvPacket(ctx, packet, relayer) + ack := im.App.OnRecvPacket(ctx, channelVersion, packet, relayer) if hook, ok := im.ICS4Middleware.Hooks.(OnRecvPacketAfterHooks); ok { hook.OnRecvPacketAfterHook(ctx, packet, relayer, ack) @@ -193,6 +192,7 @@ func (im IBCMiddleware) OnRecvPacket( // OnAcknowledgementPacket implements the IBCMiddleware interface func (im IBCMiddleware) OnAcknowledgementPacket( ctx sdk.Context, + channelVersion string, packet channeltypes.Packet, acknowledgement []byte, relayer sdk.AccAddress, @@ -204,7 +204,7 @@ func (im IBCMiddleware) OnAcknowledgementPacket( hook.OnAcknowledgementPacketBeforeHook(ctx, packet, acknowledgement, relayer) } - err := im.App.OnAcknowledgementPacket(ctx, packet, acknowledgement, relayer) + err := im.App.OnAcknowledgementPacket(ctx, channelVersion, packet, acknowledgement, relayer) if hook, ok := im.ICS4Middleware.Hooks.(OnAcknowledgementPacketAfterHooks); ok { hook.OnAcknowledgementPacketAfterHook(ctx, packet, acknowledgement, relayer, err) @@ -216,6 +216,7 @@ func (im IBCMiddleware) OnAcknowledgementPacket( // OnTimeoutPacket implements the IBCMiddleware interface func (im IBCMiddleware) OnTimeoutPacket( ctx sdk.Context, + channelVersion string, packet channeltypes.Packet, relayer sdk.AccAddress, ) error { @@ -226,7 +227,7 @@ func (im IBCMiddleware) OnTimeoutPacket( if hook, ok := im.ICS4Middleware.Hooks.(OnTimeoutPacketBeforeHooks); ok { hook.OnTimeoutPacketBeforeHook(ctx, packet, relayer) } - err := im.App.OnTimeoutPacket(ctx, packet, relayer) + err := im.App.OnTimeoutPacket(ctx, channelVersion, packet, relayer) if hook, ok := im.ICS4Middleware.Hooks.(OnTimeoutPacketAfterHooks); ok { hook.OnTimeoutPacketAfterHook(ctx, packet, relayer, err) } @@ -237,24 +238,22 @@ func (im IBCMiddleware) OnTimeoutPacket( // SendPacket implements the ICS4 Wrapper interface func (im IBCMiddleware) SendPacket( ctx sdk.Context, - chanCap *capabilitytypes.Capability, sourcePort string, sourceChannel string, timeoutHeight ibcclienttypes.Height, timeoutTimestamp uint64, data []byte, ) (sequence uint64, err error) { - return im.ICS4Middleware.SendPacket(ctx, chanCap, sourcePort, sourceChannel, timeoutHeight, timeoutTimestamp, data) + return im.ICS4Middleware.SendPacket(ctx, sourcePort, sourceChannel, timeoutHeight, timeoutTimestamp, data) } // WriteAcknowledgement implements the ICS4 Wrapper interface func (im IBCMiddleware) WriteAcknowledgement( ctx sdk.Context, - chanCap *capabilitytypes.Capability, packet ibcexported.PacketI, ack ibcexported.Acknowledgement, ) error { - return im.ICS4Middleware.WriteAcknowledgement(ctx, chanCap, packet, ack) + return im.ICS4Middleware.WriteAcknowledgement(ctx, packet, ack) } func (im IBCMiddleware) GetAppVersion(ctx sdk.Context, portID, channelID string) (string, bool) { diff --git a/modules/ibc-hooks/ics4_middleware.go b/modules/ibc-hooks/ics4_middleware.go index 8485f8ef..f3d33730 100644 --- a/modules/ibc-hooks/ics4_middleware.go +++ b/modules/ibc-hooks/ics4_middleware.go @@ -4,11 +4,11 @@ import ( // external libraries sdk "github.com/cosmos/cosmos-sdk/types" - capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types" - ibcclienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" + ibcclienttypes "github.com/cosmos/ibc-go/v10/modules/core/02-client/types" + // ibc-go - porttypes "github.com/cosmos/ibc-go/v8/modules/core/05-port/types" - ibcexported "github.com/cosmos/ibc-go/v8/modules/core/exported" + porttypes "github.com/cosmos/ibc-go/v10/modules/core/05-port/types" + ibcexported "github.com/cosmos/ibc-go/v10/modules/core/exported" ) var _ porttypes.ICS4Wrapper = &ICS4Middleware{} @@ -27,35 +27,35 @@ func NewICS4Middleware(channel porttypes.ICS4Wrapper, hooks Hooks) ICS4Middlewar } } -func (i ICS4Middleware) SendPacket(ctx sdk.Context, channelCap *capabilitytypes.Capability, sourcePort string, sourceChannel string, timeoutHeight ibcclienttypes.Height, timeoutTimestamp uint64, data []byte) (sequence uint64, err error) { +func (i ICS4Middleware) SendPacket(ctx sdk.Context, sourcePort string, sourceChannel string, timeoutHeight ibcclienttypes.Height, timeoutTimestamp uint64, data []byte) (sequence uint64, err error) { if hook, ok := i.Hooks.(SendPacketOverrideHooks); ok { - return hook.SendPacketOverride(i, ctx, channelCap, sourcePort, sourceChannel, timeoutHeight, timeoutTimestamp, data) + return hook.SendPacketOverride(i, ctx, sourcePort, sourceChannel, timeoutHeight, timeoutTimestamp, data) } if hook, ok := i.Hooks.(SendPacketBeforeHooks); ok { - hook.SendPacketBeforeHook(ctx, channelCap, sourcePort, sourceChannel, timeoutHeight, timeoutTimestamp, data) + hook.SendPacketBeforeHook(ctx, sourcePort, sourceChannel, timeoutHeight, timeoutTimestamp, data) } - seq, err := i.channel.SendPacket(ctx, channelCap, sourcePort, sourceChannel, timeoutHeight, timeoutTimestamp, data) + seq, err := i.channel.SendPacket(ctx, sourcePort, sourceChannel, timeoutHeight, timeoutTimestamp, data) if hook, ok := i.Hooks.(SendPacketAfterHooks); ok { - hook.SendPacketAfterHook(ctx, channelCap, sourcePort, sourceChannel, timeoutHeight, timeoutTimestamp, data, err) + hook.SendPacketAfterHook(ctx, sourcePort, sourceChannel, timeoutHeight, timeoutTimestamp, data, err) } return seq, err } -func (i ICS4Middleware) WriteAcknowledgement(ctx sdk.Context, chanCap *capabilitytypes.Capability, packet ibcexported.PacketI, ack ibcexported.Acknowledgement) error { +func (i ICS4Middleware) WriteAcknowledgement(ctx sdk.Context, packet ibcexported.PacketI, ack ibcexported.Acknowledgement) error { if hook, ok := i.Hooks.(WriteAcknowledgementOverrideHooks); ok { - return hook.WriteAcknowledgementOverride(i, ctx, chanCap, packet, ack) + return hook.WriteAcknowledgementOverride(i, ctx, packet, ack) } if hook, ok := i.Hooks.(WriteAcknowledgementBeforeHooks); ok { - hook.WriteAcknowledgementBeforeHook(ctx, chanCap, packet, ack) + hook.WriteAcknowledgementBeforeHook(ctx, packet, ack) } - err := i.channel.WriteAcknowledgement(ctx, chanCap, packet, ack) + err := i.channel.WriteAcknowledgement(ctx, packet, ack) if hook, ok := i.Hooks.(WriteAcknowledgementAfterHooks); ok { - hook.WriteAcknowledgementAfterHook(ctx, chanCap, packet, ack, err) + hook.WriteAcknowledgementAfterHook(ctx, packet, ack, err) } return err diff --git a/modules/ibc-hooks/simapp/ante.go b/modules/ibc-hooks/simapp/ante.go index 90626f0b..d7af8fc5 100644 --- a/modules/ibc-hooks/simapp/ante.go +++ b/modules/ibc-hooks/simapp/ante.go @@ -13,8 +13,8 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/x/auth/ante" - ibcante "github.com/cosmos/ibc-go/v8/modules/core/ante" - "github.com/cosmos/ibc-go/v8/modules/core/keeper" + ibcante "github.com/cosmos/ibc-go/v10/modules/core/ante" + "github.com/cosmos/ibc-go/v10/modules/core/keeper" ) // HandlerOptions extend the SDK's AnteHandler options by requiring the IBC @@ -23,7 +23,7 @@ type HandlerOptions struct { ante.HandlerOptions IBCKeeper *keeper.Keeper - WasmConfig *wasmTypes.WasmConfig + WasmConfig *wasmTypes.NodeConfig WasmKeeper *wasmkeeper.Keeper TXCounterStoreService corestoretypes.KVStoreService CircuitKeeper *circuitkeeper.Keeper diff --git a/modules/ibc-hooks/simapp/app.go b/modules/ibc-hooks/simapp/app.go index d6621d6a..cafe9a2b 100644 --- a/modules/ibc-hooks/simapp/app.go +++ b/modules/ibc-hooks/simapp/app.go @@ -111,24 +111,21 @@ import ( "github.com/cosmos/ibc-go/modules/capability" capabilitykeeper "github.com/cosmos/ibc-go/modules/capability/keeper" capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types" - ica "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts" - icacontrollertypes "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/controller/types" - icahost "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/host" - icahostkeeper "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/host/keeper" - icahosttypes "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/host/types" - icatypes "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/types" - ibcfee "github.com/cosmos/ibc-go/v8/modules/apps/29-fee" - ibcfeekeeper "github.com/cosmos/ibc-go/v8/modules/apps/29-fee/keeper" - ibcfeetypes "github.com/cosmos/ibc-go/v8/modules/apps/29-fee/types" - ibctransfer "github.com/cosmos/ibc-go/v8/modules/apps/transfer" - ibctransferkeeper "github.com/cosmos/ibc-go/v8/modules/apps/transfer/keeper" - ibctransfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" - ibc "github.com/cosmos/ibc-go/v8/modules/core" - ibcclient "github.com/cosmos/ibc-go/v8/modules/core/02-client" - ibcporttypes "github.com/cosmos/ibc-go/v8/modules/core/05-port/types" - ibcexported "github.com/cosmos/ibc-go/v8/modules/core/exported" - ibckeeper "github.com/cosmos/ibc-go/v8/modules/core/keeper" - ibctm "github.com/cosmos/ibc-go/v8/modules/light-clients/07-tendermint" + ica "github.com/cosmos/ibc-go/v10/modules/apps/27-interchain-accounts" + icacontrollertypes "github.com/cosmos/ibc-go/v10/modules/apps/27-interchain-accounts/controller/types" + icahost "github.com/cosmos/ibc-go/v10/modules/apps/27-interchain-accounts/host" + icahostkeeper "github.com/cosmos/ibc-go/v10/modules/apps/27-interchain-accounts/host/keeper" + icahosttypes "github.com/cosmos/ibc-go/v10/modules/apps/27-interchain-accounts/host/types" + icatypes "github.com/cosmos/ibc-go/v10/modules/apps/27-interchain-accounts/types" + ibctransfer "github.com/cosmos/ibc-go/v10/modules/apps/transfer" + ibctransferkeeper "github.com/cosmos/ibc-go/v10/modules/apps/transfer/keeper" + ibctransfertypes "github.com/cosmos/ibc-go/v10/modules/apps/transfer/types" + ibc "github.com/cosmos/ibc-go/v10/modules/core" + ibcporttypes "github.com/cosmos/ibc-go/v10/modules/core/05-port/types" + porttypes "github.com/cosmos/ibc-go/v10/modules/core/05-port/types" + ibcexported "github.com/cosmos/ibc-go/v10/modules/core/exported" + ibckeeper "github.com/cosmos/ibc-go/v10/modules/core/keeper" + ibctm "github.com/cosmos/ibc-go/v10/modules/light-clients/07-tendermint" ) // DO NOT change the names of these variables! @@ -178,7 +175,6 @@ var ( ibc.AppModuleBasic{}, ibctransfer.AppModuleBasic{}, ica.AppModuleBasic{}, - ibcfee.AppModuleBasic{}, ibchooks.AppModuleBasic{}, wasm.AppModuleBasic{}, ibctm.AppModuleBasic{}, @@ -187,7 +183,6 @@ var ( maccPerms = map[string][]string{ authtypes.FeeCollectorName: nil, distrtypes.ModuleName: nil, - ibcfeetypes.ModuleName: nil, nft.ModuleName: nil, minttypes.ModuleName: {authtypes.Minter}, stakingtypes.BondedPoolName: {authtypes.Burner, authtypes.Staking}, @@ -252,7 +247,6 @@ type App struct { WasmKeeper wasm.Keeper ConsensusParamsKeeper consensuskeeper.Keeper CircuitKeeper circuitkeeper.Keeper - IBCFeeKeeper ibcfeekeeper.Keeper ContractKeeper wasmtypes.ContractOpsKeeper // IBC hooks @@ -266,7 +260,6 @@ type App struct { ScopedICAHostKeeper capabilitykeeper.ScopedKeeper ScopedICAControllerKeeper capabilitykeeper.ScopedKeeper ScopedTransferKeeper capabilitykeeper.ScopedKeeper - ScopedIBCFeeKeeper capabilitykeeper.ScopedKeeper ScopedWasmKeeper capabilitykeeper.ScopedKeeper // sm is the simulation manager @@ -314,7 +307,7 @@ func NewSimApp( minttypes.StoreKey, distrtypes.StoreKey, slashingtypes.StoreKey, govtypes.StoreKey, group.StoreKey, paramstypes.StoreKey, consensustypes.StoreKey, ibcexported.StoreKey, upgradetypes.StoreKey, feegrant.StoreKey, - evidencetypes.StoreKey, ibcfeetypes.StoreKey, ibctransfertypes.StoreKey, + evidencetypes.StoreKey, ibctransfertypes.StoreKey, authzkeeper.StoreKey, capabilitytypes.StoreKey, nftkeeper.StoreKey, circuittypes.StoreKey, ) @@ -399,10 +392,7 @@ func NewSimApp( // add capability keeper and ScopeToModule for ibc module app.CapabilityKeeper = capabilitykeeper.NewKeeper(appCodec, keys[capabilitytypes.StoreKey], memKeys[capabilitytypes.MemStoreKey]) - scopedIBCKeeper := app.CapabilityKeeper.ScopeToModule(ibcexported.ModuleName) - scopedICAHostKeeper := app.CapabilityKeeper.ScopeToModule(icahosttypes.SubModuleName) - scopedTransferKeeper := app.CapabilityKeeper.ScopeToModule(ibctransfertypes.ModuleName) - scopedWasmKeeper := app.CapabilityKeeper.ScopeToModule(wasmtypes.ModuleName) + // scopedWasmKeeper := app.CapabilityKeeper.ScopeToModule(wasmtypes.ModuleName) // seal capability keeper after scoping modules app.CapabilityKeeper.Seal() @@ -544,15 +534,13 @@ func NewSimApp( app.keys[ibcexported.StoreKey] = storetypes.NewKVStoreKey(ibcexported.StoreKey) app.IBCKeeper = ibckeeper.NewKeeper( appCodec, - keys[ibcexported.StoreKey], + runtime.NewKVStoreService(keys[ibcexported.StoreKey]), app.GetSubspace(ibcexported.ModuleName), - app.StakingKeeper, app.UpgradeKeeper, - scopedIBCKeeper, govModAddress, ) - govLegacyRouter.AddRoute(ibcexported.RouterKey, ibcclient.NewClientProposalHandler(app.IBCKeeper.ClientKeeper)) + // govLegacyRouter.AddRoute(ibcexported.RouterKey, ibcclient.NewClientProposalHandler(app.IBCKeeper.ClientKeeper)) simModules = append(simModules, ibc.NewAppModule(app.IBCKeeper)) // 'ibcfeekeeper' module - depends on @@ -562,25 +550,19 @@ func NewSimApp( // 4. 'ibc port' app.IBCKeeper = ibckeeper.NewKeeper( appCodec, - keys[ibcexported.StoreKey], + runtime.NewKVStoreService(keys[ibcexported.StoreKey]), app.GetSubspace(ibcexported.ModuleName), - app.StakingKeeper, app.UpgradeKeeper, - scopedIBCKeeper, govModAddress, ) app.keys[ibcporttypes.StoreKey] = storetypes.NewKVStoreKey(ibcporttypes.StoreKey) - app.AccountKeeper.GetModulePermissions()[ibctransfertypes.ModuleName] = authtypes.NewPermissionsForAddress(ibcfeetypes.ModuleName, nil) - icaHostIBCModule := icahost.NewIBCModule(app.ICAHostKeeper) - icaHostStack := ibcfee.NewIBCMiddleware(icaHostIBCModule, app.IBCFeeKeeper) - - simModules = append(simModules, ibcfee.NewAppModule(app.IBCFeeKeeper)) // Create fee enabled wasm ibc Stack var wasmStack ibcporttypes.IBCModule - wasmStack = wasm.NewIBCHandler(app.WasmKeeper, app.IBCKeeper.ChannelKeeper, app.IBCFeeKeeper) - wasmStack = ibcfee.NewIBCMiddleware(wasmStack, app.IBCFeeKeeper) + wasmStack = wasm.NewIBCHandler(app.WasmKeeper, app.IBCKeeper.ChannelKeeper, app.IBCKeeper.ChannelKeeper) + + var icaHostStack porttypes.IBCModule = icahost.NewIBCModule(app.ICAHostKeeper) app.IBCKeeper.SetRouter(ibcporttypes.NewRouter(). AddRoute(icahosttypes.SubModuleName, icaHostStack). @@ -610,14 +592,13 @@ func NewSimApp( app.keys[ibctransfertypes.StoreKey] = storetypes.NewKVStoreKey(ibctransfertypes.StoreKey) app.TransferKeeper = ibctransferkeeper.NewKeeper( appCodec, - app.keys[ibctransfertypes.StoreKey], + runtime.NewKVStoreService(keys[ibctransfertypes.StoreKey]), app.ParamsKeeper.Subspace(ibctransfertypes.ModuleName), hooksICS4Wrapper, app.IBCKeeper.ChannelKeeper, - app.IBCKeeper.PortKeeper, + app.MsgServiceRouter(), app.AccountKeeper, app.BankKeeper, - scopedTransferKeeper, govModAddress, ) simModules = append(simModules, ibctransfer.NewAppModule(app.TransferKeeper)) @@ -632,28 +613,26 @@ func NewSimApp( app.keys[icacontrollertypes.StoreKey] = storetypes.NewKVStoreKey(icacontrollertypes.StoreKey) app.TransferKeeper = ibctransferkeeper.NewKeeper( appCodec, - keys[ibctransfertypes.StoreKey], + runtime.NewKVStoreService(keys[ibctransfertypes.StoreKey]), app.GetSubspace(ibctransfertypes.ModuleName), - app.IBCFeeKeeper, // ISC4 Wrapper: fee IBC middleware app.IBCKeeper.ChannelKeeper, - app.IBCKeeper.PortKeeper, + app.IBCKeeper.ChannelKeeper, + app.MsgServiceRouter(), app.AccountKeeper, app.BankKeeper, - scopedTransferKeeper, govModAddress, ) app.keys[icahosttypes.StoreKey] = storetypes.NewKVStoreKey(icahosttypes.StoreKey) app.ICAHostKeeper = icahostkeeper.NewKeeper( appCodec, - keys[icahosttypes.StoreKey], + runtime.NewKVStoreService(keys[icahosttypes.StoreKey]), app.GetSubspace(icahosttypes.SubModuleName), - app.IBCFeeKeeper, // use ics29 fee as ics4Wrapper in middleware stack app.IBCKeeper.ChannelKeeper, - app.IBCKeeper.PortKeeper, + app.IBCKeeper.ChannelKeeper, app.AccountKeeper, - scopedICAHostKeeper, app.MsgServiceRouter(), + app.GRPCQueryRouter(), govModAddress, ) @@ -663,7 +642,7 @@ func NewSimApp( // availableCapabilities := strings.Join(AllCapabilities(), ",") wasmDir := filepath.Join(homePath, "wasm") - wasmConfig, err := wasm.ReadWasmConfig(appOpts) + wasmConfig, err := wasm.ReadNodeConfig(appOpts) if err != nil { panic(fmt.Sprintf("error while reading wasm config: %s", err)) } @@ -678,20 +657,24 @@ func NewSimApp( app.BankKeeper, app.StakingKeeper, distrkeeper.NewQuerier(app.DistrKeeper), - app.IBCFeeKeeper, // ISC4 Wrapper: fee IBC middleware app.IBCKeeper.ChannelKeeper, - app.IBCKeeper.PortKeeper, - scopedWasmKeeper, + app.IBCKeeper.ChannelKeeper, app.TransferKeeper, app.MsgServiceRouter(), app.GRPCQueryRouter(), wasmDir, wasmConfig, + wasmtypes.VMConfig{}, wasmkeeper.BuiltInCapabilities(), govModAddress, ) app.ContractKeeper = wasmkeeper.NewDefaultPermissionKeeper(&app.WasmKeeper) + // Create IBC Tendermint Light Client Stack + clientKeeper := app.IBCKeeper.ClientKeeper + tmLightClientModule := ibctm.NewLightClientModule(appCodec, clientKeeper.GetStoreProvider()) + clientKeeper.AddRoute(ibctm.ModuleName, &tmLightClientModule) + /**** Module Options ****/ // NOTE: Any module instantiated in the module manager that is later modified @@ -723,8 +706,7 @@ func NewSimApp( // IBC modules ibc.NewAppModule(app.IBCKeeper), ibctransfer.NewAppModule(app.TransferKeeper), - ibctm.NewAppModule(), - ibcfee.NewAppModule(app.IBCFeeKeeper), + ibctm.NewAppModule(tmLightClientModule), ) // BasicModuleManager defines the module BasicManager is in charge of setting up basic, @@ -765,7 +747,6 @@ func NewSimApp( ibctransfertypes.ModuleName, ibcexported.ModuleName, icatypes.ModuleName, - ibcfeetypes.ModuleName, genutiltypes.ModuleName, authz.ModuleName, feegrant.ModuleName, @@ -801,7 +782,6 @@ func NewSimApp( upgradetypes.ModuleName, vestingtypes.ModuleName, nft.ModuleName, - ibcfeetypes.ModuleName, ibchookstypes.ModuleName, wasmtypes.ModuleName, // this line is used by starport scaffolding # stargate/app/endBlockers @@ -836,7 +816,6 @@ func NewSimApp( upgradetypes.ModuleName, vestingtypes.ModuleName, nft.ModuleName, - ibcfeetypes.ModuleName, ibchookstypes.ModuleName, wasmtypes.ModuleName, // this line is used by starport scaffolding # stargate/app/initGenesis @@ -1064,7 +1043,7 @@ func BlockedAddresses() map[string]bool { return modAccAddrs } -func (app *App) setAnteHandler(txConfig client.TxConfig, wasmConfig wasmtypes.WasmConfig, txCounterStoreKey *storetypes.KVStoreKey) { +func (app *App) setAnteHandler(txConfig client.TxConfig, wasmConfig wasmtypes.NodeConfig, txCounterStoreKey *storetypes.KVStoreKey) { anteHandler, err := NewAnteHandler( HandlerOptions{ HandlerOptions: ante.HandlerOptions{ diff --git a/modules/ibc-hooks/tests/unit/mocks/isc4_middleware_mock.go b/modules/ibc-hooks/tests/unit/mocks/isc4_middleware_mock.go index 7d5bbddf..6a78a25a 100644 --- a/modules/ibc-hooks/tests/unit/mocks/isc4_middleware_mock.go +++ b/modules/ibc-hooks/tests/unit/mocks/isc4_middleware_mock.go @@ -3,10 +3,9 @@ package mocks import ( sdk "github.com/cosmos/cosmos-sdk/types" - capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types" - ibcclienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" - porttypes "github.com/cosmos/ibc-go/v8/modules/core/05-port/types" - "github.com/cosmos/ibc-go/v8/modules/core/exported" + ibcclienttypes "github.com/cosmos/ibc-go/v10/modules/core/02-client/types" + porttypes "github.com/cosmos/ibc-go/v10/modules/core/05-port/types" + "github.com/cosmos/ibc-go/v10/modules/core/exported" ) var _ porttypes.ICS4Wrapper = &ICS4WrapperMock{} @@ -15,7 +14,6 @@ type ICS4WrapperMock struct{} func (m *ICS4WrapperMock) SendPacket( ctx sdk.Context, - chanCap *capabilitytypes.Capability, sourcePort string, sourceChannel string, timeoutHeight ibcclienttypes.Height, @@ -27,7 +25,6 @@ func (m *ICS4WrapperMock) SendPacket( func (m *ICS4WrapperMock) WriteAcknowledgement( ctx sdk.Context, - chanCap *capabilitytypes.Capability, packet exported.PacketI, ack exported.Acknowledgement, ) error { diff --git a/modules/ibc-hooks/tests/unit/module_test.go b/modules/ibc-hooks/tests/unit/module_test.go index 82b7648a..1f3f7c0d 100644 --- a/modules/ibc-hooks/tests/unit/module_test.go +++ b/modules/ibc-hooks/tests/unit/module_test.go @@ -16,12 +16,11 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/x/auth/types" - capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types" - ibctransfer "github.com/cosmos/ibc-go/v8/modules/apps/transfer" - transfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" - ibcclienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" - channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types" - ibcmock "github.com/cosmos/ibc-go/v8/testing/mock" + ibctransfer "github.com/cosmos/ibc-go/v10/modules/apps/transfer" + transfertypes "github.com/cosmos/ibc-go/v10/modules/apps/transfer/types" + ibcclienttypes "github.com/cosmos/ibc-go/v10/modules/core/02-client/types" + channeltypes "github.com/cosmos/ibc-go/v10/modules/core/04-channel/types" + ibcmock "github.com/cosmos/ibc-go/v10/testing/mock" ) //go:embed testdata/counter/artifacts/counter.wasm @@ -136,6 +135,7 @@ func (suite *HooksTestSuite) TestOnRecvPacketEcho() { // call the hook twice res := ibcmiddleware.OnRecvPacket( suite.Ctx, + transfertypes.V1, recvPacket, suite.TestAddress.GetAddress(), ) @@ -198,12 +198,14 @@ func (suite *HooksTestSuite) TestOnRecvPacketCounterContract() { // call the hook twice res := ibcmiddleware.OnRecvPacket( suite.Ctx, + transfertypes.V1, recvPacket, suite.TestAddress.GetAddress(), ) suite.True(res.Success()) res = ibcmiddleware.OnRecvPacket( suite.Ctx, + transfertypes.V1, recvPacket, suite.TestAddress.GetAddress(), ) @@ -276,7 +278,6 @@ func (suite *HooksTestSuite) TestOnAcknowledgementPacketCounterContract() { // call the hook seq, err := ibcmiddleware.SendPacket( suite.Ctx, - &capabilitytypes.Capability{Index: 1}, callbackPacket.SourcePort, callbackPacket.SourceChannel, ibcclienttypes.Height{ @@ -309,6 +310,7 @@ func (suite *HooksTestSuite) TestOnAcknowledgementPacketCounterContract() { err = wasmHooks.OnAcknowledgementPacketOverride( ibcmiddleware, suite.Ctx, + transfertypes.V1, recvPacket, ibcmock.MockAcknowledgement.Acknowledgement(), suite.TestAddress.GetAddress(), @@ -375,7 +377,6 @@ func (suite *HooksTestSuite) TestOnTimeoutPacketOverrideCounterContract() { // call the hook seq, err := ibcmiddleware.SendPacket( suite.Ctx, - &capabilitytypes.Capability{Index: 1}, callbackPacket.SourcePort, callbackPacket.SourceChannel, ibcclienttypes.Height{ @@ -408,6 +409,7 @@ func (suite *HooksTestSuite) TestOnTimeoutPacketOverrideCounterContract() { err = wasmHooks.OnTimeoutPacketOverride( ibcmiddleware, suite.Ctx, + transfertypes.V1, recvPacket, suite.TestAddress.GetAddress(), ) diff --git a/modules/ibc-hooks/wasm_hook.go b/modules/ibc-hooks/wasm_hook.go index 52a1fc6b..84cc7e39 100644 --- a/modules/ibc-hooks/wasm_hook.go +++ b/modules/ibc-hooks/wasm_hook.go @@ -14,11 +14,10 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" - capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types" - transfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" - ibcclienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" - channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types" - ibcexported "github.com/cosmos/ibc-go/v8/modules/core/exported" + transfertypes "github.com/cosmos/ibc-go/v10/modules/apps/transfer/types" + ibcclienttypes "github.com/cosmos/ibc-go/v10/modules/core/02-client/types" + channeltypes "github.com/cosmos/ibc-go/v10/modules/core/04-channel/types" + ibcexported "github.com/cosmos/ibc-go/v10/modules/core/exported" ) type ContractAck struct { @@ -44,20 +43,20 @@ func (h WasmHooks) ProperlyConfigured() bool { return h.ContractKeeper != nil && h.ibcHooksKeeper != nil } -func (h WasmHooks) OnRecvPacketOverride(im IBCMiddleware, ctx sdk.Context, packet channeltypes.Packet, relayer sdk.AccAddress) ibcexported.Acknowledgement { +func (h WasmHooks) OnRecvPacketOverride(im IBCMiddleware, ctx sdk.Context, channelVersion string, packet channeltypes.Packet, relayer sdk.AccAddress) ibcexported.Acknowledgement { if !h.ProperlyConfigured() { // Not configured - return im.App.OnRecvPacket(ctx, packet, relayer) + return im.App.OnRecvPacket(ctx, channelVersion, packet, relayer) } isIcs20, data := isIcs20Packet(packet.GetData()) if !isIcs20 { - return im.App.OnRecvPacket(ctx, packet, relayer) + return im.App.OnRecvPacket(ctx, channelVersion, packet, relayer) } // Validate the memo isWasmRouted, contractAddr, msgBytes, err := ValidateAndParseMemo(data.GetMemo(), data.Receiver) if !isWasmRouted { - return im.App.OnRecvPacket(ctx, packet, relayer) + return im.App.OnRecvPacket(ctx, channelVersion, packet, relayer) } if err != nil { return NewEmitErrorAcknowledgement(ctx, types.ErrMsgValidation, err.Error()) @@ -88,7 +87,7 @@ func (h WasmHooks) OnRecvPacketOverride(im IBCMiddleware, ctx sdk.Context, packe packet.Data = bz // Execute the receive - ack := im.App.OnRecvPacket(ctx, packet, relayer) + ack := im.App.OnRecvPacket(ctx, channelVersion, packet, relayer) if !ack.Success() { return ack } @@ -218,15 +217,15 @@ func ValidateAndParseMemo(memo string, receiver string) (isWasmRouted bool, cont return isWasmRouted, contractAddr, msgBytes, nil } -func (h WasmHooks) SendPacketOverride(i ICS4Middleware, ctx sdk.Context, chanCap *capabilitytypes.Capability, sourcePort string, sourceChannel string, timeoutHeight ibcclienttypes.Height, timeoutTimestamp uint64, data []byte) (sequence uint64, err error) { +func (h WasmHooks) SendPacketOverride(i ICS4Middleware, ctx sdk.Context, sourcePort string, sourceChannel string, timeoutHeight ibcclienttypes.Height, timeoutTimestamp uint64, data []byte) (sequence uint64, err error) { isIcs20, ics20data := isIcs20Packet(data) if !isIcs20 { - return i.channel.SendPacket(ctx, chanCap, sourcePort, sourceChannel, timeoutHeight, timeoutTimestamp, data) // continue + return i.channel.SendPacket(ctx, sourcePort, sourceChannel, timeoutHeight, timeoutTimestamp, data) // continue } isCallbackRouted, metadata := jsonStringHasKey(ics20data.GetMemo(), types.IBCCallbackKey) if !isCallbackRouted { - return i.channel.SendPacket(ctx, chanCap, sourcePort, sourceChannel, timeoutHeight, timeoutTimestamp, data) // continue + return i.channel.SendPacket(ctx, sourcePort, sourceChannel, timeoutHeight, timeoutTimestamp, data) // continue } // We remove the meta.callback provides instructions for post-send processing. This instruction are saved @@ -252,7 +251,7 @@ func (h WasmHooks) SendPacketOverride(i ICS4Middleware, ctx sdk.Context, chanCap return 0, errors.Wrap(err, "ics20data marshall error") } - seq, err := i.channel.SendPacket(ctx, chanCap, sourcePort, sourceChannel, timeoutHeight, timeoutTimestamp, dataBytes) + seq, err := i.channel.SendPacket(ctx, sourcePort, sourceChannel, timeoutHeight, timeoutTimestamp, dataBytes) if err != nil { return 0, err } @@ -271,8 +270,8 @@ func (h WasmHooks) SendPacketOverride(i ICS4Middleware, ctx sdk.Context, chanCap return seq, nil } -func (h WasmHooks) OnAcknowledgementPacketOverride(im IBCMiddleware, ctx sdk.Context, packet channeltypes.Packet, acknowledgement []byte, relayer sdk.AccAddress) error { - err := im.App.OnAcknowledgementPacket(ctx, packet, acknowledgement, relayer) +func (h WasmHooks) OnAcknowledgementPacketOverride(im IBCMiddleware, ctx sdk.Context, channelVersion string, packet channeltypes.Packet, acknowledgement []byte, relayer sdk.AccAddress) error { + err := im.App.OnAcknowledgementPacket(ctx, channelVersion, packet, acknowledgement, relayer) if err != nil { return err } @@ -318,8 +317,8 @@ func (h WasmHooks) OnAcknowledgementPacketOverride(im IBCMiddleware, ctx sdk.Con return nil } -func (h WasmHooks) OnTimeoutPacketOverride(im IBCMiddleware, ctx sdk.Context, packet channeltypes.Packet, relayer sdk.AccAddress) error { - err := im.App.OnTimeoutPacket(ctx, packet, relayer) +func (h WasmHooks) OnTimeoutPacketOverride(im IBCMiddleware, ctx sdk.Context, channelVersion string, packet channeltypes.Packet, relayer sdk.AccAddress) error { + err := im.App.OnTimeoutPacket(ctx, channelVersion, packet, relayer) if err != nil { return err } @@ -403,25 +402,20 @@ func MustExtractDenomFromPacketOnRecv(packet ibcexported.PacketI) string { panic("unable to unmarshal ICS20 packet data") } - var denom string - if transfertypes.ReceiverChainIsSource(packet.GetSourcePort(), packet.GetSourceChannel(), data.Denom) { - // if we receive back a token, that was originally sent from "this" chain, then we need to remove - // prefix added by the sender chain: port/channel/base_denom -> base_denom. - voucherPrefix := transfertypes.GetDenomPrefix(packet.GetSourcePort(), packet.GetSourceChannel()) - unprefixedDenom := data.Denom[len(voucherPrefix):] - - // coin denomination used in sending from the escrow address - denom = unprefixedDenom - - // The denomination used to send the coins is either the native denom or the hash of the path - // if the denomination is not native. - denomTrace := transfertypes.ParseDenomTrace(unprefixedDenom) - if !denomTrace.IsNativeDenom() { - denom = denomTrace.IBCDenom() + denom := transfertypes.ExtractDenomFromPath(data.Denom) + if denom.HasPrefix(packet.GetSourcePort(), packet.GetSourceChannel()) { + // unwind denom + denom.Trace = denom.Trace[1:] + if len(denom.Trace) == 0 { + // denom is now unwound back to native denom + return denom.Path() } - } else { - prefixedDenom := transfertypes.GetDenomPrefix(packet.GetDestPort(), packet.GetDestChannel()) + data.Denom - denom = transfertypes.ParseDenomTrace(prefixedDenom).IBCDenom() + // denom is still IBC denom + return denom.IBCDenom() } - return denom + // append port and channel from this chain to denom + trace := []transfertypes.Hop{transfertypes.NewHop(packet.GetSourcePort(), packet.GetSourceChannel())} + denom.Trace = append(trace, denom.Trace...) + + return denom.IBCDenom() } From 53e0133a15608e366ec0460c248279e067f4179c Mon Sep 17 00:00:00 2001 From: milad Date: Wed, 23 Jul 2025 14:14:46 +0330 Subject: [PATCH 2/3] fixed failing tests --- modules/ibc-hooks/go.mod | 2 - modules/ibc-hooks/hooks.go | 2 +- modules/ibc-hooks/ibc_module.go | 2 +- .../tests/unit/testdata/counter/Cargo.lock | 332 +++++++++++++----- .../tests/unit/testdata/counter/Cargo.toml | 11 +- .../testdata/counter/artifacts/checksums.txt | 2 +- .../artifacts/checksums_intermediate.txt | 1 - .../testdata/counter/artifacts/counter.wasm | Bin 177529 -> 192252 bytes .../unit/testdata/counter/src/contract.rs | 8 +- .../tests/unit/testdata/echo/Cargo.lock | 291 +++++++++++---- .../tests/unit/testdata/echo/Cargo.toml | 11 +- .../testdata/echo/artifacts/checksums.txt | 2 +- .../unit/testdata/echo/artifacts/echo.wasm | Bin 138325 -> 145224 bytes 13 files changed, 472 insertions(+), 192 deletions(-) delete mode 100644 modules/ibc-hooks/tests/unit/testdata/counter/artifacts/checksums_intermediate.txt diff --git a/modules/ibc-hooks/go.mod b/modules/ibc-hooks/go.mod index c2199f08..76cbb157 100644 --- a/modules/ibc-hooks/go.mod +++ b/modules/ibc-hooks/go.mod @@ -2,8 +2,6 @@ module github.com/cosmos/ibc-apps/modules/ibc-hooks/v8 go 1.23.8 -toolchain go1.24.5 - require ( cosmossdk.io/client/v2 v2.0.0-beta.3 cosmossdk.io/core v0.11.3 diff --git a/modules/ibc-hooks/hooks.go b/modules/ibc-hooks/hooks.go index 86c756d8..0b7e293e 100644 --- a/modules/ibc-hooks/hooks.go +++ b/modules/ibc-hooks/hooks.go @@ -80,7 +80,7 @@ type OnChanCloseConfirmAfterHooks interface { // OnRecvPacket Hooks type OnRecvPacketOverrideHooks interface { - OnRecvPacketOverride(im IBCMiddleware, ctx sdk.Context, packet channeltypes.Packet, relayer sdk.AccAddress) ibcexported.Acknowledgement + OnRecvPacketOverride(im IBCMiddleware, ctx sdk.Context, channelVersion string, packet channeltypes.Packet, relayer sdk.AccAddress) ibcexported.Acknowledgement } type OnRecvPacketBeforeHooks interface { OnRecvPacketBeforeHook(ctx sdk.Context, packet channeltypes.Packet, relayer sdk.AccAddress) diff --git a/modules/ibc-hooks/ibc_module.go b/modules/ibc-hooks/ibc_module.go index 1c7c5179..d9be3667 100644 --- a/modules/ibc-hooks/ibc_module.go +++ b/modules/ibc-hooks/ibc_module.go @@ -173,7 +173,7 @@ func (im IBCMiddleware) OnRecvPacket( relayer sdk.AccAddress, ) ibcexported.Acknowledgement { if hook, ok := im.ICS4Middleware.Hooks.(OnRecvPacketOverrideHooks); ok { - return hook.OnRecvPacketOverride(im, ctx, packet, relayer) + return hook.OnRecvPacketOverride(im, ctx, channelVersion, packet, relayer) } if hook, ok := im.ICS4Middleware.Hooks.(OnRecvPacketBeforeHooks); ok { diff --git a/modules/ibc-hooks/tests/unit/testdata/counter/Cargo.lock b/modules/ibc-hooks/tests/unit/testdata/counter/Cargo.lock index 7f70be5a..34602d96 100644 --- a/modules/ibc-hooks/tests/unit/testdata/counter/Cargo.lock +++ b/modules/ibc-hooks/tests/unit/testdata/counter/Cargo.lock @@ -25,11 +25,17 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + [[package]] name = "base64" -version = "0.13.1" +version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" [[package]] name = "base64ct" @@ -37,6 +43,12 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" +[[package]] +name = "bech32" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" + [[package]] name = "block-buffer" version = "0.9.0" @@ -55,6 +67,12 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bnum" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56953345e39537a3e18bdaeba4cb0c58a78c1f61f361dc0fa7c5c7340ae87c5f" + [[package]] name = "byteorder" version = "1.4.3" @@ -81,31 +99,31 @@ checksum = "520fbf3c07483f94e3e3ca9d0cfd913d7718ef2483d2cfd91c0d9e91474ab913" [[package]] name = "cosmwasm-crypto" -version = "1.2.5" +version = "1.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75836a10cb9654c54e77ee56da94d592923092a10b369cdb0dbd56acefc16340" +checksum = "a9c82e56962f0f18c9a292aa59940e03a82ce15ef79b93679d5838bb8143f0df" dependencies = [ "digest 0.10.7", "ed25519-zebra", - "k256", + "k256 0.13.4", "rand_core 0.6.4", "thiserror", ] [[package]] name = "cosmwasm-derive" -version = "1.2.5" +version = "1.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c9f7f0e51bfc7295f7b2664fe8513c966428642aa765dad8a74acdab5e0c773" +checksum = "d9b804ff15a0e059c88f85ae0e868cf8c7aba9d61221e46f1ad7250f270628c7" dependencies = [ "syn 1.0.109", ] [[package]] name = "cosmwasm-schema" -version = "1.2.5" +version = "1.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f00b363610218eea83f24bbab09e1a7c3920b79f068334fdfcc62f6129ef9fc" +checksum = "5526ea839acb47bbf8fff031ed9aad86e74d43f77b089255417328c3664367d5" dependencies = [ "cosmwasm-schema-derive", "schemars", @@ -116,9 +134,9 @@ dependencies = [ [[package]] name = "cosmwasm-schema-derive" -version = "1.2.5" +version = "1.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae38f909b2822d32b275c9e2db9728497aa33ffe67dd463bc67c6a3b7092785c" +checksum = "10f41b99f41f840765d02ae858956bb52af910755976312082e90493c67db512" dependencies = [ "proc-macro2", "quote", @@ -127,11 +145,13 @@ dependencies = [ [[package]] name = "cosmwasm-std" -version = "1.2.5" +version = "1.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a49b85345e811c8e80ec55d0d091e4fcb4f00f97ab058f9be5f614c444a730cb" +checksum = "763340055b84e5482ed90fec8194ff7d59112267a09bbf5819c9e3edca8c052e" dependencies = [ "base64", + "bech32", + "bnum", "cosmwasm-crypto", "cosmwasm-derive", "derivative", @@ -141,15 +161,15 @@ dependencies = [ "serde", "serde-json-wasm", "sha2 0.10.6", + "static_assertions", "thiserror", - "uint", ] [[package]] name = "cosmwasm-storage" -version = "1.2.5" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3737a3aac48f5ed883b5b73bfb731e77feebd8fc6b43419844ec2971072164d" +checksum = "66de2ab9db04757bcedef2b5984fbe536903ada4a8a9766717a4a71197ef34f6" dependencies = [ "cosmwasm-std", "serde", @@ -163,7 +183,7 @@ dependencies = [ "cosmwasm-std", "cosmwasm-storage", "cw-multi-test", - "cw-storage-plus 0.16.0", + "cw-storage-plus 1.2.0", "cw2 0.16.0", "schemars", "serde", @@ -180,16 +200,22 @@ dependencies = [ ] [[package]] -name = "crunchy" -version = "0.2.2" +name = "crypto-bigint" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" +checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] [[package]] name = "crypto-bigint" -version = "0.4.9" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" dependencies = [ "generic-array", "rand_core 0.6.4", @@ -228,11 +254,11 @@ checksum = "2a18afd2e201221c6d72a57f0886ef2a22151bbc9e6db7af276fde8a91081042" dependencies = [ "anyhow", "cosmwasm-std", - "cw-storage-plus 1.0.1", + "cw-storage-plus 1.2.0", "cw-utils", "derivative", "itertools", - "k256", + "k256 0.11.6", "prost", "schemars", "serde", @@ -252,9 +278,9 @@ dependencies = [ [[package]] name = "cw-storage-plus" -version = "1.0.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053a5083c258acd68386734f428a5a171b29f7d733151ae83090c6fcc9417ffa" +checksum = "d5ff29294ee99373e2cd5fd21786a3c0ced99a52fec2ca347d565489c61b723c" dependencies = [ "cosmwasm-std", "schemars", @@ -297,7 +323,7 @@ checksum = "8fb70cee2cf0b4a8ff7253e6bc6647107905e8eb37208f87d54f67810faa62f8" dependencies = [ "cosmwasm-schema", "cosmwasm-std", - "cw-storage-plus 1.0.1", + "cw-storage-plus 1.2.0", "schemars", "serde", ] @@ -312,6 +338,16 @@ dependencies = [ "zeroize", ] +[[package]] +name = "der" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +dependencies = [ + "const-oid", + "zeroize", +] + [[package]] name = "derivative" version = "2.2.0" @@ -339,6 +375,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer 0.10.4", + "const-oid", "crypto-common", "subtle", ] @@ -355,10 +392,24 @@ version = "0.14.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c" dependencies = [ - "der", - "elliptic-curve", - "rfc6979", - "signature", + "der 0.6.1", + "elliptic-curve 0.12.3", + "rfc6979 0.3.1", + "signature 1.6.4", +] + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der 0.7.10", + "digest 0.10.7", + "elliptic-curve 0.13.8", + "rfc6979 0.4.0", + "signature 2.2.0", + "spki 0.7.3", ] [[package]] @@ -388,16 +439,35 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3" dependencies = [ - "base16ct", - "crypto-bigint", - "der", + "base16ct 0.1.1", + "crypto-bigint 0.4.9", + "der 0.6.1", "digest 0.10.7", - "ff", + "ff 0.12.1", "generic-array", - "group", - "pkcs8", + "group 0.12.1", + "pkcs8 0.9.0", "rand_core 0.6.4", - "sec1", + "sec1 0.3.0", + "subtle", + "zeroize", +] + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct 0.2.0", + "crypto-bigint 0.5.5", + "digest 0.10.7", + "ff 0.13.1", + "generic-array", + "group 0.13.0", + "pkcs8 0.10.2", + "rand_core 0.6.4", + "sec1 0.7.3", "subtle", "zeroize", ] @@ -412,6 +482,16 @@ dependencies = [ "subtle", ] +[[package]] +name = "ff" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" +dependencies = [ + "rand_core 0.6.4", + "subtle", +] + [[package]] name = "forward_ref" version = "1.0.0" @@ -426,6 +506,7 @@ checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", + "zeroize", ] [[package]] @@ -445,7 +526,18 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" dependencies = [ - "ff", + "ff 0.12.1", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff 0.13.1", "rand_core 0.6.4", "subtle", ] @@ -496,11 +588,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72c1e0b51e7ec0a97369623508396067a486bd0cbed95a2659a4b863d28cfc8b" dependencies = [ "cfg-if", - "ecdsa", - "elliptic-curve", + "ecdsa 0.14.8", + "elliptic-curve 0.12.3", "sha2 0.10.6", ] +[[package]] +name = "k256" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" +dependencies = [ + "cfg-if", + "ecdsa 0.16.9", + "elliptic-curve 0.13.8", + "once_cell", + "sha2 0.10.6", + "signature 2.2.0", +] + [[package]] name = "libc" version = "0.2.144" @@ -509,9 +615,9 @@ checksum = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1" [[package]] name = "once_cell" -version = "1.17.1" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "opaque-debug" @@ -525,15 +631,25 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" dependencies = [ - "der", - "spki", + "der 0.6.1", + "spki 0.6.0", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der 0.7.10", + "spki 0.7.3", ] [[package]] name = "proc-macro2" -version = "1.0.59" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6aeca18b86b413c660b781aa319e4e2648a3e6f9eadc9b47e9038e6fe9f3451b" +checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" dependencies = [ "unicode-ident", ] @@ -563,9 +679,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.28" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" dependencies = [ "proc-macro2", ] @@ -591,11 +707,21 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" dependencies = [ - "crypto-bigint", + "crypto-bigint 0.4.9", "hmac", "zeroize", ] +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + [[package]] name = "ryu" version = "1.0.13" @@ -604,9 +730,9 @@ checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" [[package]] name = "schemars" -version = "0.8.12" +version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02c613288622e5f0c3fdc5dbd4db1c5fbe752746b1d1a56a0630b78fd00de44f" +checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" dependencies = [ "dyn-clone", "schemars_derive", @@ -616,14 +742,14 @@ dependencies = [ [[package]] name = "schemars_derive" -version = "0.8.12" +version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109da1e6b197438deb6db99952990c7f959572794b80ff93707d55a232545e7c" +checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 1.0.109", + "syn 2.0.104", ] [[package]] @@ -632,58 +758,72 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" dependencies = [ - "base16ct", - "der", + "base16ct 0.1.1", + "der 0.6.1", "generic-array", - "pkcs8", + "pkcs8 0.9.0", + "subtle", + "zeroize", +] + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct 0.2.0", + "der 0.7.10", + "generic-array", + "pkcs8 0.10.2", "subtle", "zeroize", ] [[package]] name = "semver" -version = "1.0.17" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" +checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" [[package]] name = "serde" -version = "1.0.163" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2113ab51b87a539ae008b5c6c02dc020ffa39afd2d83cffcb3f4eb2722cebec2" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" dependencies = [ "serde_derive", ] [[package]] name = "serde-json-wasm" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16a62a1fad1e1828b24acac8f2b468971dade7b8c3c2e672bcadefefb1f8c137" +checksum = "9e9213a07d53faa0b8dd81e767a54a8188a242fdb9be99ab75ec576a774bfdd7" dependencies = [ "serde", ] [[package]] name = "serde_derive" -version = "1.0.163" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c805777e3930c8883389c602315a24224bcc738b63905ef87cd1420353ea93e" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.17", + "syn 2.0.104", ] [[package]] name = "serde_derive_internals" -version = "0.26.0" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.104", ] [[package]] @@ -731,6 +871,16 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + [[package]] name = "spki" version = "0.6.0" @@ -738,7 +888,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" dependencies = [ "base64ct", - "der", + "der 0.6.1", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der 0.7.10", ] [[package]] @@ -766,9 +926,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.17" +version = "2.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45b6ddbb36c5b969c182aec3c4a0bce7df3fbad4b77114706a49aacc80567388" +checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" dependencies = [ "proc-macro2", "quote", @@ -777,22 +937,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.40" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.40" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.17", + "syn 2.0.104", ] [[package]] @@ -801,18 +961,6 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" -[[package]] -name = "uint" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" -dependencies = [ - "byteorder", - "crunchy", - "hex", - "static_assertions", -] - [[package]] name = "unicode-ident" version = "1.0.9" @@ -833,6 +981,6 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "zeroize" -version = "1.6.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" diff --git a/modules/ibc-hooks/tests/unit/testdata/counter/Cargo.toml b/modules/ibc-hooks/tests/unit/testdata/counter/Cargo.toml index e66c8115..8623ac00 100644 --- a/modules/ibc-hooks/tests/unit/testdata/counter/Cargo.toml +++ b/modules/ibc-hooks/tests/unit/testdata/counter/Cargo.toml @@ -17,8 +17,7 @@ exclude = [ crate-type = ["cdylib", "rlib"] [features] -# for more explicit tests, cargo test --features=backtraces -backtraces = ["cosmwasm-std/backtraces"] + # use library feature to disable all instantiate/execute/query exports library = [] @@ -30,10 +29,10 @@ optimize = """docker run --rm -v "$(pwd)":/code \ """ [dependencies] -cosmwasm-schema = "1.1.3" -cosmwasm-std = "1.1.3" -cosmwasm-storage = "1.1.3" -cw-storage-plus = "0.16.0" +cosmwasm-schema = "1.5.4" +cosmwasm-std = { version = "1.5.4", features = ["cosmwasm_1_1", "stargate"] } +cosmwasm-storage = "1.5.2" +cw-storage-plus = "1.2.0" cw2 = "0.16.0" schemars = "0.8.10" serde = { version = "1.0.145", default-features = false, features = ["derive"] } diff --git a/modules/ibc-hooks/tests/unit/testdata/counter/artifacts/checksums.txt b/modules/ibc-hooks/tests/unit/testdata/counter/artifacts/checksums.txt index 063deca9..e7684c9f 100644 --- a/modules/ibc-hooks/tests/unit/testdata/counter/artifacts/checksums.txt +++ b/modules/ibc-hooks/tests/unit/testdata/counter/artifacts/checksums.txt @@ -1 +1 @@ -4dc0c4ce263c019e3ec53efbcbd594cc1931abbdb705f07c0ded9b3d8e685a27 counter.wasm +6e6d0c9028c11dbdb29f406f3b19de9a57e9c7280963690700c88e90c598404f counter.wasm diff --git a/modules/ibc-hooks/tests/unit/testdata/counter/artifacts/checksums_intermediate.txt b/modules/ibc-hooks/tests/unit/testdata/counter/artifacts/checksums_intermediate.txt deleted file mode 100644 index a612f464..00000000 --- a/modules/ibc-hooks/tests/unit/testdata/counter/artifacts/checksums_intermediate.txt +++ /dev/null @@ -1 +0,0 @@ -a8861569ce49bcfa476ebc15f0b85d4f9b1b1734aef63026f489403832eba8a7 ./target/wasm32-unknown-unknown/release/counter.wasm diff --git a/modules/ibc-hooks/tests/unit/testdata/counter/artifacts/counter.wasm b/modules/ibc-hooks/tests/unit/testdata/counter/artifacts/counter.wasm index 407509573e89f0485978d34fd508165496cee4d9..631594a1994a8083345983c29e1d55fd75244070 100644 GIT binary patch literal 192252 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 literal 177529 zcmeFa3$$fdS?9YR`*qGfk6n)>CrJ_3-YMl2q)6ewR7gs!RZS&9q6Ry+&GphF6-a4P z6+&Lb*dv1!5->{CpiyZ}Yc-7zkz2dO+Mor(Q`{s_Oz4UFA z`}_aDxz^sN>eMSdq}!z6?78Ne&+k3I`OUeq8}58#o@H77%lWzciu>-%@6+FGUwNO? z`pNd?%I=bkhiqRbl6_|>GjpN0>>H$qSng6V2yuq5ZeK#l7%1Be!X)?TAGA z7B!t3NY8%%7XHhMpDdQk{kPuTz2Wt5y5p{_r*!|u*I$3f{u^%0I(i!L^xb#deAoUg z*W;XDzVS_W@1GXF^9?uLniWmeTle2{S5#fR;l>;9xc=@NZn^o!8>sK*HaL$8Z@Ts7 zH}K}4?9VdQjIuYq`HeT++UAY!-2aB#zV7QUIry^c@7{mM&ENSw(aFj*`;Pr@U?g{3 zf7_d1e{lczWD9C(Y5$F1_w`@@vRACBv$@H9{S9}$;ifgOx;O5B{hPllW;49~&HL~8 zp6lOm(+xM@%6NaR_|+nB{wvF}-|ct1-L^%jbPuCjAftteKCPCvg5R`}(-%Lq60&MoiD>qCc*WW)Qi`ZMqP zZT~*2-~Nx}!`>VBzwu3Xd{2=LZ@%@;yKcDkuA4Onbg;I?tJr&Z^|z1 z8a3HB4sN*RmN&gYWqvxJzj1&2^fUQ}JNDoH=9}->f9Lg3>m4`T^`<+r@6R{gd@B#% zdBYp_3+Z>>{H9y4zm)9x>#v6*vCQw_JGh zi!XfR8@Imcwja+A=l?u^TYljK`H$ug=RcN{_Y?WM^M9IeeOvL}7ry!C3qO$mZ2pt^ zJ&)zTlK*P{OZkN#%zrKam-)-?eoy}X{4Pp=Jb&@KiVqbpekyxr;4909xi^ZxbVk| z-zffh@$L}Rdp&r~V(w;WWe}~@_tkl&4$hzSD7eD~ZyA@=@2ZD^dvIrS zYX8*~dc|w*SoC>xo@SVtX@)S&?6*yNHL$1(R^Uf7xK4_J23!tS_RgW9MeBAEe+GGfoCBcclKm^ z=J#ZyBSlqgD_8bp-?msPHJWrOpPIdQ(y6-FE>fgHs9IfvG<5(7%LGEk3hFz}R6J=< zmBGiPhmfMO1zsqy-XZWlQRJQbf^193wq$yy*`kGOxjhr=fCj0&o?J<%hDI4f`+bdJ z<-lr@jSEtnol@S&sZLd{77OEULH*TYu$OkaB7>|FN*LP0fvPat-5e=UQ7rT{P{=_g z09q9+vAqeI9_vh&e*O^UsXo;QuCIdO;@DXNYpQk)lq zP@cOsm6%=(#FheR>kD}%C_*PxR~uyz>HpKu=LJPbv?{W$6KPY7 zUY`0ZR*Mxn>p@nNxdAz)rgFO-6gp|8HiC5R~l!kRGi9(~$S0cn!|D4UMtr_nVj z_qzUGq_`(VS;0`=a<-D;LCAjZlm2ywO85@fjoafnFa zng0!PWpb0eK1(!0i@{lL{TPmxunEBnK)a^LEO@#LA;t)J4z?C!GJD!A1PEy`ppXFt zB)AHzw+0I6THe9qKp{62rT{3bo@Orw-t*Q&GOI-I;#)r+%@g@sxOD5)=|I+qBTLG5 zdK%*p7+7%r#xU=RU-}Y=SQ4a7OhZ@wVs&0sGrFYYEajtm+UrmLO1BW1XfaWlWu(xRuK7J z07|OrZ_hfg9P;i!EkU!;wLwEhc3GD5RP~jz)zK5sMV(<8s%=4>R-|3WUD2o;GRUD{ zKZx@5Mm=h_&fKI-O9MnxZ?sAB0V5)K5@|%=HFj0B$OOx6#b(H!%9JnbEe*}9F8-&Wi!Q58}o(U01N(bcPD9SjJ41rhErIrKHYm(~9b#X4xH za8-qZ6jmEjxX7e%ZIHq>X*@;!RCZwW%^*~B6*-y|>dqaa()ywNfRbGi4nVMuRHmkI z4W#mWxrv0QhjJM0EKvj?3>6EofxNVQNIK!mts7y~xk**7SakN2@Quo^<`$%=lx;c6 zXm@a)K$nIZ0}a7ntJaASz>r}!k7{v#3jZh8g+HLpP6>Zn$?BmnF{hN-7R)9Q(O1gU zf&JDDiUkMMWDODO*tiW-U(hjLW&Velk@+Q!^$;>T(Sa0S&_Kf#sjLKg^alW4Yj<0z z5MgsdktPy`AJq7Z(JN{jAs#yNXlT(QCdwthZ7Yv>pRe8*JF*)kwCZ4T_Nrn~q!s{HU;;1+sDRXk1dLU~^v2>|_M2k-ul}+zYCZjWYFOM|65BIV%>9E4BKdAu^M!RHB z<#lldcz6ECl|LjO3$!O^f^*aKcFE+V4Y>#^8M_@Bv1!$>ftI)JELX?{Dqu(>_T)xk zhl6aX&3P$H%B~1H^EFGw#ScXCVX==*P}f@a##wTA2qie zsI&y2JgXj7;7ZA|kFjYosaIj5dE2R{V8&6DRj1ogg+ih$OAy*?w)LXKJ-7w{})Ja;r}lnjT>})0X%Uu zYgS~;WN9r=ut1VuT=Y2Qi6yV6)bEmb0!wj#y8=&i!xLMy+Pb7z@p^_oD+fk+s#!;h zAxg+%ykR{C5G$zI7%#nfpx5xg`PZoCmTOqM&Ouov$b_Zp{}jY^IT>Mh;(=20U}Jo~ z#St~*2Bt@qrmzd=E0f=HjR6FydJxMDLMabH zf>~9@eQ?Gix`!C+Rm&~Ds^0c23tW*(hV!ye)f1|gXN|VWuvPNh(YER=$?j!QDzdxZczQ~&mE#dl504OazdBD;-Vd7Z zi&M@O_4g&ur3pxBXrzz=vG&z;Wvb4iXj{2E;MM>?fVr#51iSy2P}@PCun2-1caLAN zCm(NF=!e;U{+|5X3_hXApcQ_VN{Gs<4MvZ6c7w*$ppBu)U^cE2`9vR*C;idL=-G>i zrY)#VC8wkq<3=c`I?RHg()5BhRxJFw_#moB?ivih(boaVYEId5n6NZZ?$;U80oTF>>lH?66Bd| zsaehnoA6KKxk&7X%dwRVTNyd@+nu3bXgnT+etGMb!Rg%IY5@-~PHoHTgpvk9B5V7) z4ZZUrA&uo|CQpv_66$TLGS^es%&WJ6tgxD^B+*-4x6!HF)X-x&QkLHj=3}(+w({|W znHg1Ysm0EnC8_&v{5^1?yf>H_k`b^r`=fbP$d)57um6*MT>Y?iq*nX&gJP+2^t+9A zMfqR3STfdJIB>7yC1laFt^R*xL8U!aA zR@Fs3peR=X!0Zx80}_ISOh3_wTLxswI&zU@}n16zur$1BJzUPZAX?~pT($oHHwMEL4Pz3C zE7G;OfqW$$ghu_OaW4~Rb9m^f(-#{;<1I{_ z8LO+LeY({aIne`RVzAaQi9xr9Nf;L`3%{F9JKB!*_&G8h8fU;cPVE-6mz1BQrPXGXF-4>QU%^Lr~wH}81y~anC&960`;;}WIY#xY|k^|u69*b%d z5-+WUdv$i@_-w8JSrp$Pji_bukRmt=skp|j_01ZO= z$jO0r_t+%*2+DglsHe(N_eZo;A|{~&G0TZ}2q#`_Av2k7lKMiX5sI{4>$1?oxohb! zrP*y=7RlfYH{LF!C$qT}rUVFDl8nAd9KJhDGB67}p=a?@0$AhKf+31Lm|uM3rOU5HJor94#1b*)PAI1+z=d(|wjW8Ac- ziAeMW5TI6xgER%e9q(C52v816;&lSd?CVl&H61)fSCbaF$qQ-MR*^ikz+K~cmA-B4 zh2$;rOyLD}sn3NHfYh;kwEQzR#hk8ki>e40*%an48v`zBugp2TLQu{i;W(z<$6iD4mNFwb#>lQ$Ab077TXJ} z#a-h;OnFW}w~W0cKZcBxMQMC}d`fN_*sG@a60*Fd(y??$oWtNU3mak2BPMX)Ha0FB zM0Fq-=>dobiXa-Wc7$8;abs*Z5kxsKHK)t|2F{3Ey!9T`++M=Qx_5bj-FKP7qJB6l z>VMrFAmh?YXdrjdQ$8IDYw zX6=IG(n+V)lh;jMFQ1npT4(8XR}3G^pz4HzyiJv^SoCs^S`A=A0SPb?+8qZO5m*-; zH^8)$VIVKN$J2mgm*cLHt$Fx?)EmvjP?d6@@eZgQ3 z#ZFXKO1N(DQCKkwj0uM783#tcSpZG)5Ofl*je10{Kr7Nvn9(fuoR*==l3H|w#+2Jx zTSDr&5v$j+a<=!xdlZe5R0Jvor%JMkrB)MiVc3?KB_mt#=EHeyq=_YEIRROj#ngfI zG^C!)XX&DNKp07}$OQIF1QCu^J!p|?%cDVE3}y{Y%eb)xF~vi0)eJ5Gu<$_Z%c1$F zXh3KMFghcve8WH3WNqK8#f?ES`)mRa+^;gdz-^bi14+#WYF3nq`AlxF3m&}AKB&~O z$!F@|G^NKjlW7#Zx5 zA%L7r+W2F=yen-yitSP{{sa%m0B0;-V~0U25|`|%dqw9yEX3~UwepP&x|McDcyXY< zNa1ssjpXVG28&qu9&#tTm@#wsO3j|6{^a=j7C}|_U_Jk8jUE)vkFIeK4hD96;DKBn zmGS%N*d6-y!8-ruRJS<3ZvCFmW|w=|-MToyhyw^YRv%1{2f6~@N)FiI_;3z$Xc7XY zT0P1~BpG{Xp#baeBI#&lV>5QP;9TK}0M0HOZT7T1B~-H_ist#_ah zYEG{`HOGW1z;t2sZ>;91V~Y_w3^Ow~{RdYj+Hc;tdCZdu9uYKzs=zDq+c0sJh44?+ zo}yvB{UB)L8}<>Vb-MEA|gCV>SNa4a}G0nSbfPHk1w>~Y{kUatqv z6W2cmoT?wd>>RASl1&QZ>NX%r-BumRCe|eeC-1TNRIvdkbuF7zw*}|4?i8H7HaIPk zbnFgTG-pHV?D8C8wI`hn<2=!!dk|S2&cjY{Sm$?=bS9^5b^c-gR-7&Kw;Zf@+;Lep zU(b#6;=X!bFW5Ld52W+@l5LX5N$}vu#hXI`r^=_;jgaImL>$m~wA5 zh-Azm_q?gcDPyUHsyt9{mnK744Qm7$fs`%AwGR}>c=E)As28Y4OfhB@Wiqq zJC#bjHY_FJSw<;lF2sFfE7?v#ecIR9lOo+RK?{%2JPKmNQkigUc=Pm3Wr3yC)572) zx5lEP$I=;j2b76ME_e&^PXu7Gn))^K8u~WU6!U0ZC78?Td995%Td9(sNfY2Q2*o-B zakC)8vclNM$g1Y!tc_Hc<1ua7Zq?FU(seZqtu0YO?#=qB_N_4(86w7%s$pxXz434l zo8ck0=O7l9p0I(HO*9H@%t4}T578(X#A>`CgIV%piezP8dZ%MaF) z!GakZF4q`7vatoUs(YaR3r&s#f=DD6NoICC;zTrhCsh^`n^sR|wqJ{A0LE^b02mIv zLnrQ0FeFdlR~qu+A3l1?27*(m1u80jJr~c_FS?|7FgL)9w^R#z4jrn# zLv*3t&LwU#_|O01Q@{PwKmD5@|FQe__(}u0)cxX*{_Ge2kN^1Szy7|z&YBmjrD6e-*)PKHrFxz$Xvo#Qlf`P`+7H}Ia1M{V?X3h7$is#rM4O0o)bKdy03^?JFO+UrJ|T&-QmP?oAKezvnmK^SwX&L%-NLG^D{r zCVcd<5B-9rF-e&FPKkWvn4%xZvop-`2K5H^yT$`g#~tqbso&? z%?C#x0iPrSjxq_{dJT^X=i?3!bl|;TA@B; z=r`iVhI)yG)QESvYJtMB;@$Rk>x8g?RI^<8VD+$0{bK~=8be>EAavIu*fUAE)Gd}- z{m73&TCsF;k!0()BW?v`*!mWbGu2xG+1UE_Ru!X1A?={`5$N>j#s~Nigg_-?m`Z%sXjJebl>8;RnV-GrE*aVFzJpI0dp0x%g<=M4AVK{Qku;t zs<~+bO11FAo|SbTJFm)-ry#u}YC^uM_8I9b)@YtZ$CO-2B0XFjNL6`)-9n)d10PnV zVM#Y-UrKNCx++R@qMI-nw#Xin+3z_y%`6tIpI%4Vqm(Ta>rp5ow0`ghL6iRQ{Ar%w zOLFu|W{9_ApPV09{rQ1CsekqkQgRQs*W6PT2tr@jP~JqE>rM7mMANHnx~V^`wtq)| z=0+d-^rS< zK=bg2;Y#leA`2M%B)hWaA`7#uNWnOhd1vv=UWbYdcjhC8Ktpa4UlXnxm2uRJ8}J^X z>v`Le8hUF7=gi!c_gv-%-vS8$0D#;?xS|_5uBm?o$SyX#3pvlvfciwtj6A3>h*{KE zfYD2e<7tl#bXY|;r`5#7_ZxMEDqR`?!{g$K zS5Tm=YbF#56vQaf>&mZY0z}EqPHuWljbgCN)1ROeZct&lmw7A5LbAY+5brtYiVPj+ z8S=Yi5XsO)n0{ze(Tn@l6lNQisR&7K)+EVtNwQff3FXj_ZQ78dxOT+|@MJv0wA#LF zpW#d4qkV>Bn;kjJVWfkCqnr0h3SWvmW@j(8iHuq+kR?agNMwBWH^~@Ck~H_3Pz4Y_ zhRq$f5l}?lW!kb;b}1wR$wXjKXDoO1QJ~<}TCuz4eiJUaDgjwpKm1Rj&Mhn<#)Je! zzG6-V`I=T`M6t`F(6PrdEEkU&Y`~!4OKdj+Yhc#Rqbza~9{k+pXQTCVX zwP(hrZdvbYWC1;FD+oW|5*x(AB-&J4cNfVP8lDs+6$v7_7EujS@j^Nju%G-?^nP;;^xOJF6dk?wpSAe^;Z-~uP~ zH^JVFr7pO}?mQ|OvBG(DqAf=ct{Sopv7swP7N>s(y3NiW_l_0zjINGGcb07BSjN8EzY%6*jDMA$X&>CB$ONZKh4b4JK`#?TB(? zVIbPnrD<|g#6RtO?8B&7)aGu%&^W#Dy%OkKIO=LKkIv^BFg7IOHZ9^_bztaw6>W*K z4np+UW)K$K#0j|iLFk$v`~$BK7J?e*S$s%RjJ{qd(He%I7`qrAoV0_2YP=VTg>|E* zohh!Mm8buGFSbjP2*1C_!)lgY!h;Ph(a4m8*#We8-N(yEv`@+}9i;6txj-QP z>2_IF?0Gvj=Tk7k!$40WQdbwH)3r9ok#e$^f@pUkHb&njFuzJSD)Or!(Un^elg-UF zL4&k$*ruaMNz6$G2ig+L$(?S8hSX8qjb!sEDH8*deE7A^AyS*1@NKx32jQFNUd0P+ zX^i>MMex+Na)-?4Le%(fCM5rlCuW|q%B`OQka7YQv67jTA7G&O-TD4K`Mo5vZ<&;w zUPe;?dcnb*V^Q*lvncu4EJ`AB)qrPEc9{k2;1gVi1|Ig2fp-h|5b!!J7NmR3H-IQ^ z0$M;8v8Ffpz=H&Ztoi`>z8Ua_(H$8`iN;Wm45W>rnh+peL`H{X*Ng&$5GqU?1HI&@VlJP5AS&2xQ>pk(3oxMDla60OI>nsYMj%Xr*X% zOR-y7pYvT8Wqkz37uP*jH2hQ6kCO*!)$g0hV`k84Ss$LsV{Y7=Th{L`@Z2YcqJ+Ax zA0iJgU^dw-4y258A0QW6%_e6>E=$HLk`y__OHq^^U* zGJeNr@%qDYTEog07cDtZt)|D>K`t2K=bF*EVu?Fgh-`i|!m%FUK2%CRNbehXXH%I` zL(bfwQUGTpk}Qw2okeG)&)Hdg9#H|ZaB0brg9%FOhYGnW)ae*lDV%&G9g*1QDAL$G zfJgCF?4#*KM!&y!$PEX~w_Y;03jfb~- z-<*;|Q_I9GWL0XNKDr_(L1lL6~f?i`2f!CdEaPmWY)#?{lo- z`Y6(=8CxW}XX9$c9$7pC<0cyMa&mMAX6Ed!#BQA3#q$)a-Hgyi`s0kJoeU?epbl0! zh{-&sb4s)EJY>qtj+q(3E-Cpmi1u)%$AERr;Y^2o>0U$;6o_{?V}a2FW<58|hp{cl z7;CN=a}BnMG>ry4rM5Q5{!;baby)~4Q8y!|Ej7iKit>V01Gpmo+p2sFDzH$+q&Q zBq4Z~Gyx*1C|5ebe-73s?viBk^?ZUPdvoghDUxTu(#emL)QxQ9BDf~~Bv|VAk{{8n z^%0W9i1IeI^f(!j)IjdpS$AmG_`$Ru3jRZ~a1yCFTO=}wZ z0~jqHdp7z`A?kH-^F}Kr99DtSyT^Qa0AJ{L039M$ey15POEM?*EA+ zHnM;pZDgZg&V6%?7md%hx8=CKXMF8p**O0wKiVIQT;`Jmw&!4RtrTbdew3M1Gc%d0 zEX_j7DyFR&NJ&KljQ&t@g3&*4^3e-Vr#*UDHDTjnpvlTwYE#&FFku5$svmfmIp7YM z!3N5=8Ee7@jMe4@HXxuTN7y*&d_>sCW1|o@7|v}YK=mc03{zt=8)he`e9H>Mufu0iZT6yghpVHC5{sbkA9BC=tdr%Eo1T1UH)MRQmFe@d$61-2f)#XSWkymDQZqE8BeJ$K`JJ&cD|1d(W**L=aGz%FF}dDcY$5GCZQj^2HNz@xqDIGskw8@y!~j?N2f zFut-HOItg)zKNZ|73>>wZ;ITA{GRJWa4dUm<920O5rVIUH@@765x4as(@VPF{Okv| z0H;R)XKrT4*cOZ9UBRdeql;Cs3NWk53$#&1;1882)y`a=W3+;EI~5tM;~NVsOfM`; zgR%h-jv0W$=mUR!W+pd|R}IWGz&L*1Pw`&mqLHYqRP$MTN^&3TEqper7MHAH@nXk$G%chflA^~->V9nzg#0F%A!{R1q8DGm}wzOvN9#`BdtH=l4bJhJXJPq-Hf9x zbdMabnPe|+cFThJk|PAP$@?+xC3y2-nk0}qs0!Bc{8JLgdvXPO)@Y<5JqT{~eALvFygP4IBQ`IySKw{mx4i{+c9Bcrb(*Qd$^5$nJ_|Pd(ehbucPz#+TaqtRd-YK?2Gv)63Q?(j zI#(+x$_=J^mzK?$Hz05ZwQEDDBrTgWxpHO}t(Q}mRd6=5Y-VU_*-V_g%j0ugR)29d z(n%@^&n;)MxgtQT5iO;e^Re?Y5MHLGwB*FhsJxU;{j^JIk1Lka3~)1YJdtvHT}lsm z7pRS4HxztT11HmZ%&w*2=?c0hD48Bi9zHptBZ6R?nPkwI=~!t79Bb;Yc0x9pTW{o6 zTmX3j0N@FfpCm`Kj*-+TLTb$MBPvC`%VUry=H$W3O6aa9&2M;tw*++|@D{ask3R)ZxG0dU}u8tzc0p_aBf_Z67EKfp_4ijp2l|fNxASVBwxX&T8qAxUm=}|eTw7- zQ@?^QpKbgK$*PoJVS@+`Co0L)@GIaTvtNN@hHLx^8_&eApkojpOrC|onR*rgkt}Ch zv>N#Fo`q&(#LMjUyb9+vYbvd=R+|?|84mbcyocjaT76Xw!SGk7srX zs(Gwkf@*1N;%Nx!E9O;Duwl3h3Q1~Jj?sHkyP^5#sv3gJu8zWgRr@&@?{TECf` zXj)%2M82+9!I3zEMyvtP$g9ArwQ&bDUIntg`n?LDI4!TjU+0|Y!dN3PCPm>$T_L{w z6*}#da>pVjfBMiEdtu+@s4#h=QHhGrkr9ugV#y?rA;uV(#zD}jKaT{|hAhF?qmOC> z$APBPbI_3rt>=|ax+OqLHH-u_rIrez#26NcCJaD#R>}>>gGhnQIH{}%9&On%`t*Uj zhrbu5*-0BjbARS-q~FaSyHnoDXIsC>d1JDlblyNU;$`D@y-cf@ybTV?>kt2)9PleF z)>*bM@ahxJ;5-9qHWYr@XUK3G$SQEfFhrW-QD4FCe?vQ4K}U||;TB0+`up4W9bQ*jF>z@fSex>9nw7-n0Xt0u{vi_`Kl7mZSUg(-yD1l@9vEiklG_Ql$ z6(^Xz*o`oX4AlWuy?XvzF{U{vJpHgGs&?R;?1;3E&ak5BQ@1VA_(3F_v@wSedK}2; zSA*}sE6T`HVTRzfZXd=VR0}hWMT^_<=VP?hBgcR!gj;GfDX;Odk#xU))IiH~zw2e0 zocmneP&eigNfSi5r`YMRjgP}`aoHM0t_66$K|1c5DeD(O2G==rK#GubR!S473*H#L zRZ9r$^jrZ|r$oXl%OCGl?UF7nM06YV8ha^g6=Z zA>se^GeWdDS-Eh0{(Oj1qkxl zID4KD1h5vWQ@(l*gzz255&{tZ64AohmI_4a7{725^!TgAa3QjJ_~m@~&JD$=JrcVp z9+&TYVX_Q=!H~C>uw5II`WZM4maUcKhGmT{Na09 zL>S7~h|f!EZrsP4QI;Bp)R3=!r!wlpx<-P`i&>EVV1Jm&hTm%o{D(c`_o1)M~A`()uDTMi2n)s&M; z8lc!1l#Y^fR@8oZe8l7<61t3uE1YPnS~$oxQTN_H=^fMsNL=)Q%YCj|Ixv}|Rhq-~ z_$^3Pp6_M( zKgOHCz3A2vP}KsSE8b13tL8d&1VclBp>=UXqf3dg&{0%iFsJzPxp-5RKCM7sY4XHQ zDAos%hy*~rAb`TI=A`qP(E{M5ac-G!C%;fBim zQ_Rsf>Xt(voEg}^=!Qop185C8hRhE@{Cf_)^?UDs;Gx4u z4&C>*$);<#H$k6^rT}AN9-??@5c2dX=Hcy=&N{V>%6_%!pF9fZQz^<_#IU@6QS`uU zKQ1OWB%?SeCOCK}H7pI(OEYc}D*VggN7w@7oqP9$J*SKUgM*ak9Rt%gRK__-?X%1? zALJCCo8W3Vo%3cLk&ns-$o?hYI=T&-&SFry;ug->?tUvXnSA*(o{jd$7 zpH8(|KP3XuB7_sEj6_2ul4v@_l&9`JqSTi9^f20IW+V4u^X&OV%SZ&zzdWw-N?GDT z(_Ob3>g*2|lZ>;h%Bzjl@*ivxJT(RuaxLu7Y+g}cUw~6M=uF5U9EE(~Cv*yq>{p-9oDek9 z0&$RKu9}A(b9uhWZtma=W_I`!mSP&tN(^U<>^i!SMV1YCsdT#*v`)c$d~m!Br-{8` z(*sjt2Kxn{3o@gLpBC2ViQuGlxu~~(jpMk8a^+0N>v9pY2-eg^y08Z~GeC}_yap2 z$@&(xL;wpaVpBa6=zz6}nID^95_sLNvxU ze%vG;k0U)XDSrf;jwAOm!k?V2K>Trujj#K>bBug%-8IwDRNw#xn4W9*)AR+TF!{+beirj82tmi^|>EkQlK~;-Mzp9aXim2@$1KbkxW(U z33iKM)@iTx?(($p8b!S|P1V1B=t$h=E!PLx+<(|^M#47w6d`APU#Al`eE5q<1W+ot zv<-Y%4d|;hr))q{EW2{dhvrgs&A+{^l=OAF6WdtU`I#6@vQnB++{JkCoZJ>eP;`ne zEv4>l+GAuFFOA}J5jklQNjTeW8bAI7CdB2KM$SfbAz5m|!x$*aR}BF+Z&w1`bo-_E zeDawyJ;u@NL_0bMt1ZCzlgmvn3ikyP5WABZ%>kX+FC`%1;8 z{W7W8w3lBaHtn%;v?V=iHtp@yK#39;@Q+3PN-mH7u|8aZT_l{zs4>^HgdUHCrvyp& z;iUjbFc3eU|1}(qD4MX6XrC z4@w1HT*}WrY&?EmM?Up8Ai6P3Ahdns&3p1OpY1!2e=YqJb>d%YdeVqrHA9`yR5^nt zKpT&NCXhI{7dTc6alg2@(Zd?SnmIU01Ch{YNTPYiK4`Q65@ym78hIx5dLt>Y?5_ba znNbt_Q-*P217;J{A(g{dCnHrIs5V9ld0~g8RgMmeiXmK-Ii*trG_N@)E=JdT$>HFj zW93NzOWU>3m7&dBK7JX>XnH$q=2x>zD6DoA6TziFRr#bU9agBm4 zTCxZ~VA>Owx0IH+Yfewa83(yp{QX5vT_7&--=q%hk##NmYdtkv6O_v+CqqPJU=NQ^ zfq`9m26D8?H}dF`OJMAm_jqE7O@_dsdI)p8egAu>=*FRCX-GwF0gC~!;3vZ%>M}e& zQuiUGu;$XpmQX)HYcAbG8C+qJkQlV_#=BHj{YfrfL531;1_79e40hgp zTKBSu(>n)7FO1jnt~Ia!O0Tut^UX@CE#PwriCq!tno3Kepa#V#82gTgm=c8rQ+ng( zwfXPknT4t#dn6HqfJ9)v<^&X+usslQsxl%P$u9s!%$pQ}Zlak8uG|KYh}B_g*X}HL zsLZQWX0_ODe(T0%7c=E_ZjP%LfdvN>j=T%VoD(=Al+~1?@H=QP=mijVgID7ji>(WH zHt!`zY>Y4y4Wiu56%lx1)jWMdQ@X@){?Uo<;3QB+d8~)iLEpI1os+;Ot!^SM?!UB4 zGB%)C*?>ybGq$L_u%Qn$fQNm_^8454)Y^sO8$I$i8*_QRe4zeAW|s^`6VQ{h&zgFA zDOTC@6P%KKRyGq&fJwI^c+@(xAeQkiR?cV=l1IAw2n#2#g1D>9}ehFwcyDWx@7BN57 zFUtG6`f&5q{(~do!;u znU#*gH{~U2m=!8fd(fn`gu)O4wpI*6LugPh3QS{UU_crTO*5hxqoc`4VZYZ=mapH+ z=+$jsGT;SMY_?T-5x|$^j#y(Nm(Zji!dOu7EHyUCUF=#zAw4rzrJ5^brpzv)@GI`` z@R*LhG3NdsI+8B!c!bpGl``)4MW<+lJ*hhkyp%lc>ta5rhD%-9fp7}J{^gs+1GSe`CnuDSbm8Mheb13&-M%be}8^OtvxWAmsPq=&Z;k~iTj_tfZWN&(Xs+4wvvCC{I5~|_Q;2pCoitzf!8_)a6x)~NJ5l1+<{bcY6hr| zzm_DtJb6iVUejZBzEjr`Jc<3cg97i5vM;JCRnh54Ai@HZ*^=>&kicd-g4kLVa+h7k)zZJA0wEqX-glOWq3}*h3OZ znhxKo=5b+sR)Uv5gROjxtvWbii-rpb&ziz-v4tP091s|O*|EnF0)Fjr1RgPz{I#aD zMrT)4U3(m%dCzeK-lgLRi`AlzBa}LhpeQ1dgHmxEVLO1KY&womu5%n=y8t4E;4oBD z!hk@3mR7YIj8z8#02#BiNzLFuE|J5I*yQ(I=@E&WvxEb7wpR2xIlCY$99?qphSN{o z=o{Saii2oTM`U`{kWC{p+Z6}vlOP14Oa)LauvN}bUm_r+#=u{-_=2W(+hkdqUmP(t5Rb; z9sYWb_9m9fvdB9KUof%}a@~Fn1K`Vs1x`KPLRehMr*rguK6yKS?$8mbmdnXNF^W>= zNIntC0mXF);Vy!x7KqJYcAfOS>ybW8!?fy*9gca2@5m=)Hx?$9*RR?i!OClw=4#o;GQ_g8 zE#Dt-`(6A|C|tJ;Wt?7HI<;`N8YCcE;W&(kbal4e*d0h#f?#`gsr-sT8-nF2C@PT> zgk_9x&t5T}mv07I?FJ?irgt@-zU^Azoeaa!snCo3+8{)&huuU`yX3nRx&aZ&MIMJm zIMQ@|!m+0jNsIUsH!2BgscT46@f62xzQKfu|9={aV+;&?7aS}xXZ9nRKh69~@P6H*#LWIi) zggj8BrUrUW40MxVuvU&^{SI|DrTwBVsv9zCzo^S2q~B13rSR^9lE;S8H%R7g&vuFI zAXVv(i}P1X6r7UF){)y1vcqac26+(JM!fkU{&uuFAiRxI0lth|J#WvpX&gG&s$p7hC|{z?o=AV0 zI8iN(Of;WW_fdJ*Lg>m-Qpp^%q2McHl5Jep=V_t(l5mmXQQ^VfK&_*BxH#K(c}`?_ znivI=YgI-<06>=&yxgFeCv|B8O1gy(l$6%~jwOJ7Bmf8pP+Tcz{zBQ?esU;@J;k1i z{REz#uHK0&BkW7?{d_(i12i%$F55;ldU3vTIZ(>$p=NYmGb8!D0F-cuc_&+9pJG z&6uiH7i>giaaIlVx#_r)0f`W$9&@@|E z2ea$y%4XM9P`L%3RMzNQkVDY-_Usywmrq`a3$;#`Lu=El6{cdZoopazq%PSiWgr`5 zf)zQzv^?m-x$SJz(OjxtHx>;!xU#d^>*S=o^tIjarwfuH;-ce5yV%)1H8YROr@b zyp0_3$vT0N-8F$xk~Wx1-#V*ax~F5hI!p8!;B5j2a+V4D1_emiWK<_K8B#S1u+Rq65IzF^C#|F(~u^MXsE@!BIxwud{tOo3K~iNvP9lAKnPw{raUEk0&1V z7?Tw}Uc?I@y+>g%)Rz;%>p>+TxH;dXz~D`f?kRQC(Bo3jBWR1dz9>44THuR;$Ed}3 z@bV0;cKq%4_;P2zK58nw_));`{R6;uUZrh-#)W?b*M7f}Q(qHjOMz!@1ZbZ*PfBF| zbc=u!r;|?O@|UxJXZd(eJ+6am@15g1L7wjafg>JjQFHxUd+*!@)r;G9=1lr9d^}=REii1l581qAH8Q!1O*w9R14fz_Yhk_a*rR@@9HJR znQ8)G__4F)HacQNVp5dvvgN&NnnB&g!sM=sBs($3{N3v=g z4{S|LRQ#wWPbSFWcI#?fRcR8FcB^Ac+Un3`FHCR0rrMfP7tjdySbB1g+;|t0;np}% zrvt7RS+wxLk?yj3p-e&y&_Yztm3G|Kq>W3)qm9>xz02)Zn~UO#(TgYtLix-7Pt%!D zP7d}-n*&jh!>&)0BM=+{1V%OBeFl{4*ymB9zJ>?SBJT>5Tk1dGZr{>@>GlvJr(Hsu(>p5sH zheWtPaU|U+e3aI7aE0Y?nggfu69-0noWYx!1La5itFHxBaT@YPa!#ZRXaj{HFK#{y zEM~@{<_ukllu!%!O?C4b1@4jXWj{}l1j%%q=w7C;IoSAM+pS>&HrzxsnvO0$E4cWK zhZ0RB$+e~_bCerOXr&o8befCL0wLaiqx)j!5?T`mIcyR(Kkq)ck%CWAX8a(`n_w6qExOj7Q$g(Q2;Vn5!dJQf z-9*pFm^2dg%}5xUC{^QXMzYFhYK|L89wS*jek67XF%S&{WciBY_fp>7(j2=GC zAEV|=0R0EK{{O2R`k()5h5qm6LHoKo$?l_|{nE6LMQ?(+VtE6ST;4J2%d2w{NINj|)?k$Zj6rz`6=pHLg$8nC_Y5hfrVI!NNyV@RvBP zCX5nCG@pQDKD#|h-lUIU>^{gxFw{3|RK)k_68U;xj#A`jM;Jp=oIc(|mbbzMMmnRK z_Y%kRq#|xzj`4_Fj{{g5l0H67P5gr#RH9)%zg4E*Jyzx~zqtxU7XlvTNAJF6#RkSwm>(%;uXFVVywb z91J5APxQ`iqf9NP5(p`hhd0py9Kt#EJ0>C*3h1kT7*T>pq)fJii=jme0dj?xBEyd2 zmlY{J?#2drIP779j>DHl9uE3MmJ-ye&}B*0HgwryQ=QiT<(;TdP(yTbQwL^I_%Yim z3w+kcHkiiYaN(k{e3^D4R)!oFa9Y!-ZOy3(KeiD%jYt$V$%ka_(vqN%Sl7=CO9DAq z5*Qw9fQqdc9cqCFWZ+-w#e>WPfcQ(Yu`k4eTz$?&l@?bJY^g(0zGR-iEGvW`ugMGS zw^*IaYNclc95}*SGj^d27^Mv$6Z(U+VHy*%8!-h_DT|SsaU7Rx#5*FFPZN3P&2T;O z7bAQUDQ>>-hy}EJ<_Jl6!A#Wj?UaMh;c+b0{-vS72cxK0WGwewVx~nIq`@toae_5U`-Xb zl|Qf}&zvj(WGf#BsQQTTzOKOx7g^uZT;G3=IyirCqAI*~BR{}wUo^CPXL%d-81tBK zO^;c(I7;&&ecPTfccdJuT+(Txfs3`cCtw=sUs%Q7G|_SXj;^zxa0vmaXH5dc;Y+%Y zi-^KMnoou@RyvX73-jRwU6hNUoD7pKsMvWvB<+?by7t;&ke>?=(f~6B z;^l-!s00E&!Q_B*di->Vh7ex0t0iC#>WA+K{~L64BLjQ1`8abLMK+$t%^NUDJRQTP z?Mo2eSv+C=#we33f38|+hltXi@O|mF21Il(&<7BjI=v8A*|~!xmIH~=btIo8caiBs z*d4J1f5A}Oq`=KZAy|zX(_?=Blz|@rpl!S(K7KCe9oS|URqA8S1V6{~LNhF`=^=2V zZSxtPS|}%g9wn*(kGl!9It`EnRX?5U4l2gET6~5}yn%ImT@x@0JBSvDJBb#dKbbU$ z79FWUv~(?6sQ!#vqI6?zlJ#`#QgrIidiL%|GilnP$Rq9_Xsj0R{o?vRe0=|pH2p{D zw#;5LL-Zf)gmGp9B`;i9`Y;Mv5HjEvHv$}kn4@oHg&ZNOz{0V+E{lVmY zRrYZ<+3B$zCGloi&RbU;gsrdPK;(+dkD**7!P1hFMFuvA$xWD7hUl_tNvGJ#TQLIb zW!&~M|M?CdpnN zh#n?6o#=ZDAr`it8PxzSx3Skv#8*oh{#H|2C$;(qkYfvT>-1@ zGdS~28Wu;y+iRnzFX~2rKlnApxy|v9qi918D*5;ab<*(<)+qi=m^HuT{|Ldy&&o01 z1|#dRKZa3A?M=|3(i)S^X&8m|f{Z)l;N+|}7n$ls0RpwnL#wi*XNT})sm+y&w&QoQ zOdhx6!Mcrr?_uVXzyDM>ZVh{=jDx`79dG@dKx zk!5z=pyxwxmu>&CL}%U=A5vf}x|S(tnMTz9Jj5lKPjI>dz9WhO zo_-q>Er@#bn4VndD8O2SIqu{FgG190#Wg*-Fb7RTrV8$< zFjpOUbOp4}bw|gZT+lj6^R%aht%Z}HTu{hMu#6}e(I$K9{F##r7qllAoLg38$oC>~ zCQkFo1rD#;UDE)F@EL%D84`=|0oYX>mp>VCG;5;eShCKwI4yR^oKwI$vv2OSnDape zigKrgOm*Z*Cg{YS78mh=-KvG{4$Xk8<6o_}JAlp!uTS^29^5I<2(fHSf>!kdjVl5` zYf;RW`iBo4VT~}_rR$n{ZCtB{usZ2E0-2)K0Yo5KS549ppNQe_MGV!oV?g91PWri8 zBd2H_dd1hmWCHfFGK#`iBRPE+J#T%E&9g`;XuxFTId690)iKkS?Z@=FQoc*u!Vt1P zi+ybAL;iUS8c#EhF4i=@#iX<6tsJK1bQB}PAr+6>)AIsO`_CF^>BhA#nSsycO&8oE zZ__dLaW(rkF+0kGy(f&ls}$lVEi1=|hC(rvG$3y$ZHq6|KA*Ypj<_J^K|t4?J)zfC z#Zd8AJ`5GNsfC~W)dl(I(=@tFKuBZjRB$BLNlU;8M3ZN@6}j3XObrB-tnHvTY>ow8 zFJ>a;!NksGWs0=X^=v89hGY|IW1_XEII+D(p_xTst5aHbb;$6dmAzlIVPx1;IB8`u z_>5euxW5&HCZUPYT(y${<%k>zp`-6-$iYP2=h^akwiFwGN!bzsa%j|Y^Yg43;`Gc| z6CvBi9LhF8&Yn2tP&*B_o4h1Ixy+-#C9q^mdEaD=9i>Rut_2rKTNE;_Y;Ec570UF@ zNC*)2Pb4_nRRR*$ZZxk4!eb<&V;!@}U}-io7m!J|wG!|@vX$65bl_sZIraF=&w>X zSj3VsK^9{X#JlH-Mu3-~XIELBpD8bu>F z?*$S<$=oIc$k#v%?RmdXeE<}XfzXvU$_E=m5k6WBF%8x^Ya@K#w>H8@&OU$6lBJVJ zHWPNGBla}#@H7z1-yUTrW16EW-%n_khr{rmO2d0{c6d+D49{^kF+_PUJ;bNh4)Mvg zLu7KJ{Xm=*KI%Na3Bto>Sw#A%!W13Ymd7&!fE(5C*6z>Q^e04QEh45XMIk|JM6pm= zXTFl6Zu+8>uI{Gcasf^`i1?zT;Y$HSuXU{sb!BDGKf`B+FEtE7@hdQyQmUKQI|^&s0N*;J=65MJtfTav}-Rk2+!%JgDkXM z843X8`Uq4Aztr}cKsx*!78m$1!u3}0Ni0iYNelB48XIg|ue+Hs#wF)u2QQi49GuWaXtkyRkY!LJ8Kp|#pA*4+r=GZ`l zqNxGKy!t!QOXxOY2(%rKL+?Yc$j?pJ>FdG_4F{i9FGPukAOPqL!+0~RCICH8DNZL0 zCOVVRj=hHvd#&?fBQEmr*c(x@QgO(EDhbf@R9q`cFv6mr(`(nFWVXrK^_*qOZ{`wF z7E|(*9T%`(Ji;@)*t;b zsFwRJxmMjpxYgPsyBYDpI{)TWT^}zvw)%TMn_cda&(->N!61O4z1fYxfn7GFvXY>D z^kD!yej1U(5P1mP)ZAmd&fDd7~(p&WFm})8`nic=hB5B z%3Y{HRGB6q-N$~QHbh6x4cbX7_t=94)1&rMK8C6Avli$vc{1*Sa*0yLAV6;pwV zhzgEtC8)r!MFlMb=?s#0x#JYA+@6*a3L8m+S8ajI)YS_4Bog?mO(|GvW)GWlaEIr@j5=~#nZ%j=*3y2qZiMT zkw-9M(u)f+@-%%=pY-AhU#gxiJ)*qyA`P`fWLmYc->N&gV;cdWQ!5q#4S7S)v*evH z{wt=BMB&ySC#e-`Ix3LQ5eA z&&0_PYH{n{xc0?IBG;svKLP#dOo8X+#xm< zJ?rp3_nw@RA7!h=ApWbGTxbRnlH}xaLv>Fjq>dlx>9(vtE zIWu%^n%NJif&Q7yOm)9JGiyfWnY~K`)75drTwGw5Jssf8HW5&%Tvy?pr-TaY)&!NG zapz|O71doAD#4JOu$DBf2_aT|Ek@Q7cXcOgNlKDzK6HS!)aBmv*Gm6lEwLjfMVzc9 zHkXsNgu9%HZU}2hwcYGV>f2gcTVJtIba}Au%37i?R&v}M?2$#c)$l+a^kr+wMF>8V z5h5_Luip+lSxYJ+Yw6fllFjVbVJ(?ECmfN^Cg+JeHxUy1ue@zYigT(utjtRk0Q0Oi zkpwg(lCIhyUA3vzRdr6xq4y9rF))D|WpO&>(qP;a_X}nPM#h&8PM_jto0z4zGw%LZ z)V)}FOJfq9aTEWtX@Y(2FuD{PeoDIcw+bw5f5RX+6S`O3b?H7>$$))sa;_PbnmALy z&epAu2dwu$TfJV!_VKZnALi#NAs5ymJkuJjVGGXYgylDz15MNNOpfHvSD#fktj=+O zB%DVgao#!NJXtibB=*OY^A>{hw5(h#rdEiTh!SGW5|LPsFJ_4dqsv3!C8C-=!zE%= zIatp%OT@W#7I#0VB_ezBcnGv+;TvIEp2iYUn+4BxiO3Zca)j$nb=?Dq5u0S5Y+!N+ zqsJkQIDBJG(3s}-zfMi_DbU0Gj&*tYRS$H#Wdu>VWn@Nn_&8a&XOOHv7F)71*D~T^_1hc$h7Z&$QVIF*R!4!YV^c6<$zQvN9M`M=4I(9uque z8RmSdG79;$_`<1`vDLIJ2REOz%JB%zk>*Pg1Z373yfgF-uGy8Nj~Tr9!IE6@bsQ-M zRO_0Vn=od|c!_>YQNhGY|7@KpkexsxwR*OIqVfThDdXrK5bOlGJ6Q{wO>C zHM?EdPO1Z8OyB*1k8K5EGz~IgdY8}JNBpe%@f`Sw->gxg54;2cTBIa%!;OoBxjNh& zYy%`2zOX=&HYaTl@i}8S=)`~yGs1Whp(_yxy&m6zhQuL`c$=ygI9WWVz9S`!&59Y9 zpNbh|XmAqeb%Oawq^9S@d@6q|^U2rRFrTy*-bZannZMLZ!(WKTFUC~p%$N#l_6$vh zsB(~x5JHiHXJ;M$`g8FY!MVv)U?n!?udq_w@fmxQkwII7vBG!JS_&f8T)V*HHh5`- zCz&7b0`u#Q?{q4|{&3jmgvg$X!!oF-+5MT9>|^6+s+!12gvf=dlF#!(?qEvTsHWx( z+2K-aRFlh2X-2B)lyR+% zbt78TfHuVWncWcY8MDJ*%Cp80ieCgrd2p$hmt~n1ASACJe-Ki}6U1>P?ZEwU^XRkX zeEKsvmgL*AY|nrG=;#KLB8*g}GrEi% z-9gD6&`#K%%EY8GI7S4937;tSh#eJ!okDfM6_}rF) zg$rF{%WsbO@ZkNORE?(A-L(-1eW-VN?hiJ)6kAz}8+R1EdQf|cE%)-7;PP=Hl;svE zL%J*KNz>C6hQqWAT{9+#=$!aC59wx|L>KX8$v}XIjp_gtw`4f3qVp9l_2GRU15i6$Duu zZs3{&iiQJFk24&=(}qbI98jJX2XL42EC&>Ehd)qM4_cQr96*u}SFh!OGB`jzornXp zo7`}Knb-{n6$!9RU6fBMQNBlD9xO!p;viTa@;?6Z4lj}yFmup(qWl8Nx7pLH`#S2< zt^fROM?#$GKH&!a*Z>uDor6f1?w?j^o$1hx76i~)QcmfzIX*)eE|d(3LBFO|(^<-c zR#Pw(3L{Z1P)<|}t%??ecdwxUcAVr92G*lJ%&RHwb>a}tmx}gutnYc+d+xN?4ca>* z+LNq3IqjWJ>A!ch_ZLa-u_y?+2dh}_l{0crk||W3xMc2(G=H{M>=6oruw#chWS)eQ zxSeKMMXi;2#i_Nv!${U>{bty*8d{k*)%Nb*+P*xMw)b-LIBk!pGaZ$+ZWc)zUgC!p zLbv{`^77GTp=AA?qV#1QRJhLsu2Zcyt!6o zY7`$+VsPuIS56@NY>3rs^M$}Kk$MeR)$sG(FSmLftfjO6{?%(K4^C3wHURq>Uur7L zyd2goEQAQmi%O%&Fbgb?)tJf zzkJ>Oy%Vy}Q~wzom$T$ZDDT0gZeC`Pe?$AfD=OFWDbYUBhwOtx3 z8P9vM)}N?AxVflsI$o?3x4hPiwYKHwy;$;foYIT+ z*Uy{TXX?dTYiK097dJg-HuU^S9VQcfFXFSDwX#307c*8i7eZ6~ubSd#U}Jw7`uclk zVtjDwz5O!nUmUZ%{EF^htn116BKIvYCbadw$4+~az0sa>JLbJ%bk-F< z%)jaigjqlw%IgWNO-Lz@EfbuI&QKzRf+_pSs(=F_J){XaStAX`!n!~p$Ob1DFWoNy-_FA*o zx@)c~b|=;8s}mKW5*ns6qPCN$IE&hjxR4Q)D5E&CS{X5e5l3_~h9txxii(kFn-Fak z!~XvF{k-paPgQl(jpSo5p_4lA$MZfP_xE!@_j5ma>^*$yy|b=s}iAlZp z(42Ztv!mW;vGgz*xm@ERFyZtDLYD|*VQbL3no?%$TJ-npD8YGMxjCYG< zrOTphZ;A)Ni~se`gR1!rQ>*NY6<>3+w|+_lH1DgY-+e(gb93h=`(Oy<0Vxs^I!FiK zIIF#uIz^a7m)T8W<9j}!#1OBSay{A_odqz?s@e0RT9U(Bzh9MQltjd+PlsA`eq;89()-y+kA{iq(4h5 z4#6lzWE+iJYIG+Fsc#Mb*Wr0=8X9n-9bcF1PQ7~_BJ8>5DQ6+G;Z$+n%I;$;&nLI6 zyz^a0j~zd;xsl#9+?6e7%XE+9BUjNcin#RJcdbE*#XR%;4 zTF%7$^iFT-YNIO)h5FBn|AQZ*j`(+od=ZVqvdBqA*E2 zVkL`nQ}|?kPj$j?bx#RK%4Q)RJG89kd1G##c{0N+9rKBmepLNJom z8^5~o#&VvwY~h@L!`?tzkmYda&u@}xH9W}A;NPGhfrAlWCQ3zwyt>eNrYI1Z!qQ_L zYarF6<0zqGevhT-4K)qPE0IdgCT&sk25Zm7+}Co$9%fJl$lQmw#PoomFkcr)$zc4(*YECPN2+Cz9{8|!z(lR@W6bd2yBv_~(0a6PV znp~rj9Rv&J@%m1(MLcM-MeaZ8Ml~o_R_~1t>U-!zL{i^t@?Fa!t;la>deHv$wtY?d zdSA8-Flo`(V&_)7aO|rw+U@wH|um_&&um_L<(>3KjNP*X@qwc)7NRlNo;P5j* zVe_LPKYma~Qq=szDx$}5RSUibUQ^dATqkT~YeEsPY@{W0-E6CzYuvp7JkgtxN|!(| zW)-2?@m(3>EI#WoTAqoC_QN`c-Ry99GGB-O#RNJo78W$}8{8$6rvQ>boUDXha_Wa~?IOfV}! z7&B0&g+nk?>%ee zhBvxFXqVNY8@Z+oucfoZQ-3`_$c^QY%F2rvlKlX3(sASnZ^ov>v;q5DUI;aFLe1PQ zHEQC$>{OR=W^7a#L3^&13ZaLKMi|kU2NX9=>*%nTpq4kvI6os@7g2$r97BbW55U(5 zMV%CGzFu+KIR`13vZ`h<=$J{+W0+y9xiDaIT;9;7-x2Cd080l4O-WTGos?0W^r9*GV@eeC|Co0Y%y` zGgj<5k`;ZWlU=q5pWz$?3Z33$bec&QFeac{{uhq9V2YudN$|4cB#{m%25 zc;4#Do#zpo=#(O7si5-gTQqdG)e$#JNwwsE6cVPndg%_~qc^ieV`H}z><;#?x5 zLUx2;x)>!?^Jf5+(n6d+&(j*igaU$Hwf6QJk0{90dGyHV-uCF-t*p)294MeCleo#m zVUZgwcn)97i7V5oY|DRTc988S2(m~gZqihsJD{O3#(d*6gT2IXift?p-n{ev@y_|2{G)yar4lLUyl8UI}C$ z#kCM!TO=lqZZsX@d^InRey@BE99*j+Z$i!3k(aJ`^6*M*3khkwR_IGkawsK|N!{_z zjCP^KRBF`@Wrn==WtRdZe(Xr@m@L#ZFzoe5t*mnsGgCUekM@+-??C0h)T68I#4%y~ zCft8LvN|H{Fgy_3{g9I^a7CbDX#>&mkJ!9~!0Ah-9Xd#xDLUX)iIj1E_`chU{HVlH z$PNv0anqozgvp|RZ40x8l3(2{iO;i#yw4AZ1MBzQcC^fOWD4zG3*kVXh)jMMxK64n z@>_9J>f8_0ZY*0?jM@ub;mD+USv?c$N>do#fq4rYOa>c+!^-LzEi+7YPFEdke%OZS z2gX&A}7X-oZNIziWpoSxoV=IURr{!xKCWW}0YYTrtQ>NahWX7*NG`gRx$NV!&I zOlPmm3x3-2f?x*d+)uu={(?SjhN6@HeppRFr9z#qI6_zC; z)tFZeheWQ{ILw5@SOevRJ}V~-*5!mjJLg80($&3>WvTgWHE}X2ZccK9!$x{NFwCUI z$r~0n20}5v8!br%dCR_TokEAMN@nb?etUFS&sdOGB`cBP5A5MWYLd#Hg5 zd#E91_E5_)j?9EbfgxJusp(gd>X51=>QgD7-tXmz0$YRCDaL*j%`!d@_l0)F zbW@^c76w*6`PBD+_IIB7=tIvW#w1;LNNPZOpR*nEw|@QZ+duj<&sOhYRnV~V>EHdn z&;G!pPyGB-@ww_gfFw2#Ek7%t`_OOP@{xN#{_~$zfhFER(D?HNDX7B+&$R~ezwq>V zuz0;VIsB$XD9^|?yX49$tf zP0ZX_W_&|+uyk(Ru9x02LIT0nv4(l64(erQUuHK-?%5~Qpqf=5Ez)^!gxcu1dTK9k z?QKqH^R+eAWBjra0EZw8^DnYh^;=6RGrP1E875I;6>~8ANh<75kSsH!9Gt;dnyA?o zObpa@Qo@XE`Bc{f+432QUsY{u*p)er4Py=2L=P!8C}zUq4Wwy>UjxLiyJ4T7bWIlC z^Z9y#8CML9nw2MDI9X{a)lKaj<%1=p(Bv#{wIvIkPMAqY>Sr-Bq;{LGYC$xsu8CuA zRo6uBcdKjknkM2@yUJ=Ds%lE3n~XaxMO<3vU@T^H>%?6csvj0{IKxo(Rf;Wz#G3=s z`0pg)m~;tR*cxlYS?f7G8^8q&uV5c*hU1q=i`+4eEUThOes1_F<)pkaCV#s;;n(Rb$=8rMmY+OaW}pER%bb zE53ZYhi9!5h$3unS#Iip(6d;N-ALJFMXOwZrqi;6+?zCqzMLhd7BIb3Q}pb!85c9u zYFmWx%4t5BhTJCfk>e&}s0Ec_u!_!%(4e#EmK^HjD`={N9syY$kOd_vj1nSZ5w|4( z!mTVRc-x$dTb6t2;9M62hR08*Mv7i^`MADhWSrbMQI zkVzkEnY%8<^b(V&nq`shc+HdiqGzhKbuw0XhqsB|(oK5NJ~Q+qL^l@=rw43VPIIf zQ!37w5Zu9~;ND7LalzP*BkS_R-GCpsL7phJYGcNb7_7pGwjBNvj(UsaQQxd*mE?(T zRuPbQM_~|hjSNAjCMoeclgSaUE#GRqHVGN82R+378DK15Kdk>kpoY}6b|DY}MfWZM z8s#1w$KQhEZyPQ2IdDRmK7`{1nM=j&tBZL*RnrZMIkQI8!fZ&w?YH9EzFk&|gq10h z8AzmSwg*aK5l04+b@2wTLI;(~pfTp897@G&?O}Fk-5)vN)!dy~d_{l>;f1!5U1n*1 z;^93l=be`Ej<#Ys@8C10JQGhkXnt&lW3t57O3f*hV?D8|+H_S8iBO{Z<$ABbDkzX)HqDJLl zA9fHJZ9+Vhy{a9B9o_EE0Pduo?o*GzL{&2_Q9I~Wk5%=wsxnxDN{{=o7Y5Agxr$$` z;`Y>n+YIrkAIIuGTA8od7aS)`L0TJT^lb;y$bbz7oqS4V%Y=7|8Ok?cnesaQRM|Y3 z{;Ee7yBB*XG5`@(&lBQkM1Eh~z6lwzb87l(hoV&M0bQ!kh=4qGQU(@6xYt#tCksv%#4S*O3)n{3a)TxOI`eHq?CG)z!XhPR2(FXKV(76j6&7ln8VmYpj z9Ykqdn@CV}ttcMBTndnX; zUj#|w8%>ZY5K_jx;&<&=@p8J4L9EiP5#)4gI8YM@u@FXPr& zsws5uBQ1AnXcf$Cgm5#rMU!Z=_G*_)#%h{T@vsc~#%D z1TIYay%;I0HA1z@S!s;w-t6nz`)n%7?CbcR`fS3kHRntn#sR3X>t36j_mloLVd}h8L9_{0* z;F$)dvuP#%@Us83^fs4NW?)S1gf}Z%Rr`3XcJzfri^&CdByH=+!*xgYdPmOCyc$ug#so2MH#jyT&;mlTZP}q0=;ARr8 zKt5Q^@ zi?(hJ9(Ut`a%h~)9y5iYRCwn`_gbDXooHRRE^|Y22z!*iD@rR17p-ch0~i!KEA_%d zHATOQHV2?-CXVSQ-$l+~0`qZQ6Cb~(TPTea@9DDrp>jU!tl_r;$>GC#u0LuN1n>_y z>CHoWqd$5B$V4#L>J3sW0v)TF6VO`+WsZP5;7ISe_;VyULykWmx70lMdQIv#UtKr) z#J{DiT)#R{9WSkVtPd=D#b9qHrzS-AjMa1Pbe=75>5Vi48wmcKkz1^>r^K@U39RZS zhc%75`79~qEYn)JX`P09hF&v!tub#IwvA~IncKywaoJ)*O1JR?vo@e|n&E^yz6ZeR z4}c3dK?3=aw^K0_HYZg`%DQL(YmQz30|)~EW<1~J0Sv3SqkQm@RG6pR-~rhH9ffy< z8@V`{?iDG3`-6M2{h@8QuqM1<{bG;3VPa;L^BHF)4NehuIGwEg)=%B>@DJVcGk@8fGuA)%0e}9jibmUZl-0iOL_1V zbxKXB;DCY$#6Mh<^Zh--x@isPP(epcPBpRiM$~uR=8wJvZOY7{CD~$`wAJ&5awR>j zF2R|GRM4)p?G@P)B~Qer`5AD_I6)j;TgiQ#_nv8-3hvL)&uC(FflPKIDx)pz*U)bg z1eBn4YJNl))=EmGw$fx8N&457Ijl-iO%H-tR8xYE3y=Ib*C&PP6JkwOF8VpD<(zC8 z++*28BiV8|_1(_O@-=PVbeZ1kmTlO*3x^F zJXB*$0MeXe!<~PmCYA_3!ia%8!*li^GU$n?fyTcE8oh(!O#tu4A-~ZeDsvWez>BHs z_aUw5gYC)Smv}ZI#JnlcF1PA<@}*uN`$?mRFUJ)!0j~kjbg%9*=#zqsh;o(Y#a)UP~9sFp9;Y9lu zYa|&<&gO(4EKb{(04R7M&178^%~Ngc;?c1#e!X>InK;R!?ur_x0{W(|sAE-E@XkkZ z&cmuJkc7Ij&yC+^SN3Z%MC0nmhT?QaQo}YgY!MqDOdbAJyd%P0@JByOJmrG64JG%X z>dnt2caK8oqq=Wa{ubzBg z2C9=`61gddn>775C!J&)dT%xCw~5Uxfx=;mc}8p17Ta->4=EjH5AvsVWSHR)qIKv8 zWA>df3}Az$|IZ*_ze~i0zdRi0E{G|po1%dZuMK_zxmgq53-{(D*6bIfJG~F(S!w|_ z0*VyvI0*IRK|mP6*OGOm_34b!P@Gs^mI>MtN%?YN+K*b~ydd~!&Ea}?nFl~i*c71c z7-+MV!8e%zV_v|<0id7TF6A6cL-RbK9Z|q+3s|gd5LA?{bdL?A)g(L!JNkWRN-T-t z<#d=}%C&)PFf>??#s4pMM8eHk42fc2>@oHFfI%E0s&CvpnDq`Pps4m@St(n2Zu`nJ zE~zhozv=fZrOPr5R1r%kKPlV~=!IV*;|l@*I# z#5zI+X;U&RhddqJV@p=LZgGvlNwlcUM;qbFJ2y5qHnjvH(>t--C$X7KMWH-=DrB-< z(*~O(LRzRZGeu=E+1y0BTBca<7ki$Y@PwiVHAsYTW1K*JhkqLV0rmv=Lb~q$F+B3| zWNqdv$VGwfIsJd+Xo2YSP_E7NvZVS?Sd4)CH9+GD0e}csWCMmXD^k4l8ZJMPTyuz@ zzvTyyhC`hn|I%hM*uZqp)+k6IE)6~-PSZxs{IsF8rqWEpn&gEp(Wv{f8--gotKj(XJ(Iz*UeZEhR|O_9T35*HJH+c&3v0C_=&I!* z(6eIJIzvyG7J#6&c9kO}i0Y>Wx~|Xzih8tj54H-y}3c{eW0g?V1$!RitpKkpdb;q`>h;ww*PTZ8^9O zglepkC+_NO9Wn_-bT?;f*y4qNV4J}d@+}&Bec2g&FwKk>_hrYm8gibyklN83F3%EZ ztM+}$Ahz0}fbUQZY?TKHnw@8XNPUn&(bVvQWAc&|C@wqaiK}8)y`#pZ{?+Laz))Z| z>(w-eX;$!mct`jH+82gDwUEI`n6RY|V_RSB&@)@^uvD`wcvPK&6JRkDunn}o`f0MNc-=R^F+AX9%RS*9+Xuvq=g{Im*6 z$n<}Last7KAmB}jxU?cJkQybNt19%7FQggCjHxOUcv4mJfT(70oNlsqk&C2swR)sAeVB7 zwTG2TWEmt4bE9V!4y|#RPa-2?41DMdo(Twkg{xZtu9mk7%^C017_z}SLdDY3CngPr zCeEnt>szNY9>U9lkok*F(7xEH3p`_F~)PFwiz9p$}i zl&Q_vSqk#q3;s!E6-4Vn(>ldo+zqh?Cf0^vO6sfUWNqUw7_>v?EpMYlhwFCOjLIR($@-Y#-wepu`@L9>= zIcB@qdio>x(gPVsHTpUs4#d=A3OtrUi?eJk(ORMX5GQ6KE}HZY6z{`(CbCiHk5IqdUlxSvtNw}#MMrDG%UV_y(ZG``03ZzyG0Ro}K|htwg>XD;toS-KR$CUZA>(<#W6pGv-Dv|w zGvR`b+ceypNIyWXpXxfn)r2|&9Nx?L-1j9_-#}wMOsh(vDnFQKUElNQVM-uL*6x7q z4yrm*3lss7u-(tV&UWT2v&+2;iiTxtIV6YaKp5ozopOcAoPia6Y`d=T&$6+!obpgw zqM+sR9;)P}#5(GlJ>&bbi*3z?C5`wI<@ZC(R;iT&cq$CNs4xMHB>ttB{48nYBCrv) z8*Jpx$D$M#I$WC7;}B;5x2Q=G)QY{+l`MU~8e4*q=Se;wkN>ew8#{63oIuExIDx~V z!-K{Niee&t=4QnSXa2^yCw^0N4<>H!ncNeR#?azrC$H)+M#@G;6ky~S21$5@lbZdA zqlA9|*kKO{u>rR0M@s^sAb!p^{NN|`=mO{-tf_bw?uUL5+gB#KfnOeM-gAWSX7iqb zJ~Fx&6jx5L?zMqT5m5PDwaS5-TcbGP6p`*cZ4NzSYbc1t7ww`-9JbM+J%DIeH@j%q)DfeN?syBMI|-Hf2ftE&WbzXdkeOKB5}hz zi2bk$LcuLEo>tcK&<<2Abi0yKiUOAD!62nxQIk6r<- zsDz3jSa33BCdLQ8+X&)*YJLd`!uL>YCkR7=2w@~~1+f=P8n@?J)+7xfjYwI;T@`j- zAzK2`>B4@5aY?Z7F{cX%hoDQN3o`@qm5&)+Kuwg&?BhYVG(l?c6~Ag7Po!Z`HJ**6 zVTxG<6XfIvB_5CFJZj84&Z9vqzB{1hv2#Sr=@>LdE^7PiiRAbl+?ZwORomD+(m^c=Uk^iNEJh3 zt)c|1E@e1j$R!V)F~fO}5^xPaUi?tv#)6;OdU`wCJmgu0BDxmSbF z#=n)cD}%Tq?S{?nmP*9z$Wm!i!&%z-x8z?g?9lr{v%_QeHQ3>CZk!#OK-pB5}H^XbyC z9Y2KuB&d)v5>%!Ea)~uHx)0->X^4NhUt46ztTmj7U&1i5JdjD6tMa3{s-jo6Gbijx z=P)<=WoJhb7p?cR6miNY7KOYc=(TQ*T}_`IsU#>@ME|JN#Cbp4UZ+_RR1 zZnb&}GM~G-+2Ye0&2E`@7?ZQygI@Op0rWUAy*84V=QeAd_F3zP*Rnk~x0UEl@njH9 zB^Ya2yPGz5yR5aJ7I$WN?;gy=jYP7*_E>xhrt**}kcjLRvDda?et`x=m3^qPU+gJf zG1yGWOTyOYS>7ns^*0`V<7g6)ucW>L~e)SQ~Afo3%i?6WVU0S%u$X z+;WTZVQxb*^udk#w9stO-xGINz5mYywea$lC0Xs%aPO;Pec~;zJN_W;Yozz}mAwldZV)HZO#H9C# zJ$Q@WiM-=^9Q^LK2o8JmLB^>qLLCoNf&`V}1BV1N8v1c;P?)K+m71u!Yfl$i0u6f%8RZ{VPhW&PxFEYYEa+nGnr6IRAfo~*nMUIni5d@ zg08?lobdsARxD=GQ-;c-J6b5ywU){3Tp&keO0G5qND7flLZq^S8m!Rz4l95WOA%3wrK&?MC)4DgwjdTQaq$-LgUeBe8p2&b9Sl|)WbZYCmV+e z81f%6B_!&X$C~W}ECxpUl_4e!lZOs71fEYuCIh^@%pm;^Ia--gk^l~D`F)Q8nIlYz z4&A1}=dgmZf?>x964e3S3AvVF zSNtiC^dq6{QlowiG-)J0BcNNSW@@0%)TB1!nww)cgaR;HKQNhd#*f8CGseX7M!>T2 z%t`5KY%>b-gLUbq9_fKgA!X2m%Vrc4$wXMOf`UAPsvLFDIv2( zJ5<_?jg(I!W(tTJ!$cS!(2AL>14RZjJBaekSYc4BCa$)rrcN!<3^0CMt0tq{slj&^ zd}`v%-`A>XAaTaKS=UU1VjyvbW@2-w zSv-_L09LsEzTwL3;=V=M#?SsrpG}<2XGK@jSK~cG zLOnnj)8n<}l7$z`40%hr*JF#baJzz!)d{dBjxy_k){mxKvY~&&I5-Q0VHZmtW(?p^ za|DIP5fHDf2<`YW$1u=$-f1uj?2Yij`^V_xFy24GpS|LP3 z*htGcAH(^Q0Y|m{qBvh9Z)2)QGj~OHgJh7yAs@`y_>oSr`@3q95xc~&cbN>iSYk-Y zS7_}p`Mvph>k#+MzU&5fi8XpQG2XMqv*{Vs(&*U)nvSa9a<)C2kn6{Kw&*=0bE|r$ zr`>l&Q-l7p-Gn^Mvi)qi6iGKf4A#up}Z>&5A4m8ykPQwHcE#hhVUAYgj6g-dfhxo?$9fN<$W- zz^Vh6%`6eq?P#p1uo)$7SFf@PxJ;WyNvDQ-M^HEOq$8-isu0xeI2@f&<67TTirG)5 z1q~CO+G=69#0Ao#A{dP-(t5`UCTdGy*ihn>1Bf_pX{>U)1D&p6q1_hUtK--nR*0#e zx$$xUJN^(XnDcJzsqraTz+>)M5Q%i$CbEVFLmJK;DTWwt+6bU-TE%GEvINyl*AK^< zuAYtv0CIN%Z~!P8PwSr8`Ck&{`>rpV^2KbNe<>9329XD32s#VB{bj9y<1m^U_GJZ( zjRoI+K@{-2(w7zR%L@2q1x#4Z%L>>muq_I>wUYvVte*X1^SIYl)1KO0$JLzeP)&J@ z?^2Eru6*)q0R$>cl5i%!xAR(d(=ipZy{6h>JGdz`6VR(Yp1Rk?XG-_@E>#)q_Y>1k zK6Y*YuFCrt->3OkPM*DMrW2mb$vKdvIt@q1I%mP_2*;!~Tc$Oiu}R4TOcp(ruT4Jg zW#0BJnkCv7GRlupaXnGJCzXk=Id>KwwV5j4W69JrRedjGUdHrhoT_e8aL%Wyo1>|! zH~+}^Ty@i$XMZVcUjomQK1Yweew*g56Ixfd8M2%F<{T)A`m;U+sx583I-wAH1fPi6 zt(wD>f*@OMH9KZfp{Wk%McK5mepIY-W@2^5CwQ_KiW#FTVALlnZ>Cn?3oJY{vG|sH zVj;tRY*qoLeO58}HaQSl?n8?+l6=W$H_UV9V;5|KQ=Ri>Gn+Yo<5&?e9V^Y*_a=!L zy+@4a5-_0t%vE4JH2!a`kO{4Eo-ZlYMIGN_Fnj)s{>RSxt`?3d8pKsr9 z4%dBDO%hRh3a~v?&`1?A&%6lt#QThKxKF#v& zwsAe|?c*=7AEoyV!8om~If}-Ln(s%;=lKeBvC1`Gp)t2`7$3*QgH&uGj~lR|zgV z@yrxVEx71GQ*ccT@Fi&kcFwO0t}N_0eA52n^K;2z*zj}d*8N;?&H$fctLf*`t^2u5r?zT8SF84O$zuqFQBy55 z(~8z*NrKg7&Ym;-xu_GH_;h|QTc|#>pNkOb+Rvp?nd*E2Gh6x{7nU8%l2<~Y>E~+8 zOXYqpnG86(fpZ%_*Z4!AZGNt?rvM#TXy}SBMaee&T-Go_4`=Xm)lI8d<>#uKt{;vy zT|EW))->GYP0PV1H>(UF^K)g<%=W#%2;epXS>Y=#k;(S1j1dd&_je4tZ%X%)adM9&Udk&7x6d zwVMg;RcUosl;%#~mPbN4feN+8yh?)DU|!FT2!u*wUfnjF)VggrspGlKKq9Z1S8`6+ zQ?#2osoC;fF)x=d-bsBH%uC#L&Ab}b*)Xr9FF3SAsamIFUN#eXp~^`u4jO-0anRV) z5%WR>TbS1xR_xH}oz!Apt53z6%sc*Ytm&#K6iAb=rk~rGH+SYuzeICnlL96QY?|=} znj^pG|Ce***y|TLM>ZCDd5#Rp%aPDDHDB^MGP#;xo+A?%_3{#=OtbCM{Y$+BNh}eH znCujUK+80m^(SkSeKKnOHU(VkPf(RsQf$gd#tVpRfm>H3P=_ zB$>WFu($(%pcT9xpT!auJZNDS3LNM3IDPnf5A5z;lD$qJ%?f?J@ZmZdW>z@vg;99S zEGXi^Q;iar>cMDQJ?l{ipp0;Gi}xTjQATczGxv7X5zU1>hFnE4kqCDx@j%e8_{k`E zQGF%?%~_%7$2gik!Syw5UqHxx-@|Fd7fW`#yapsaWJ7Nsw)sOjr3je5qJe+{25>*d z<4kbnu{Uk5*sx9Xr8aE$eM$_?DVU$2_Wzh#AIe!~CrFS5cNr{D%z0x$V4{_TSA1Z6 zupn3(^)HBDj3X8Va0~BPfTlebdqKdmZQ2XK#H@cYK;MIY?5+A1&Eo}Ul!ZFz$39YF z0orQSAiOJv{)J-J{Na)$+97Fi%)&*VZV_tKr=O$1i=sV>yXjE4Pw%XdSWx}yK-=RF zsmgYHj6L09I@9kxr)WCiMy(qHU?m)qEpGv^YdM2nnu%O|#k2F>^Myp=b(U1HK;8 z@CyI-1b`5gohy^>wr4E1YMKxa@f!~r$`6K%m>%yTtlyKNtG_*f#F9R&U_0R{wnyGTaV#{7m@FXIh-+w z$dL4gX#xL8fPxv3S`L}gm$%j#Z`A>{OKd;BE%9xmbp$T%3hX#(YFelsI-WOec2nI$0E*L0}mDfVh$;drH zpL?IwNfLM#2OhmHlnw0)Zk&zqM7^k1>SftRxr3^{%Bq=9W_azCL z$(Ii6gLtg?AzdE{8=ueDxmr4M=up|^01Fuf6U6g&hGb&cNv+7C*UO6oH-g2GS0)XpYiR}rnirCW80^J7~AL)c6GoX-k!OA zET5AFNhFwd@yM`5r-0GHaMv?lS7I+N=34*{cX2M2k&<$}aHX9Rrtu!4e6?HK6LGL* zn&Tsv!9{+!B!Yw15ivn0bfxRCIcerwVPc*AaW~WViEGWR2gU?+9Z8IZL+VOO=j%hl zitTJ#<9UWBjl@TT_`4K;i}<@Q{_c;z2kf`C8vg^m@@Uckfyc>lpaZ^2Y_j}!3^QT zyWxQZR$7Ei@%GbdJWLmgu85P+^dpDxj*FD(GCO*TRy^U0<|PruCs=rrDnlnf%>O7A zfjWcGYy^6PJ&JrS@N31d2~|Qu=>a&2C3U;!J4*KpJLV=B?7yjg6d9*<{!|Dm2M{U*m!EGz0>fMdOpi@6roesr}bn( zB}L7gjZi1nC{nt)p#+ni!8-3GvEe%~MQ=AB>!*fAF z1fGgSaW@PU<^ikXA*kM0TvBVwL0DTxKbpESL++*0^M#Bt;oSF#8&)-Q=c(sskx{I~ zEVNNci^`%}a*Ikz@1@I7@pm{S@?OhzCti@`n}vi&+RVVGM{8NpxZ^=%Ie|419~tu_?b*|4T-K6 z!cT(nm+S=>Op_krdhkOC`DF0pR3izFS@r|jSl3+mp1y0%ym}`dkkoCQ{dX@dL^6@d z#M#8+)Eccx*!IQoZC_Z=Dni)di<8!jkZ*TLVac#8GDw0JuE}4eO(y9_l;S$8 z_hTuayE%Y0nk^S%0MqxDcB_U_l}3(`4Ic@igAY1XGkQ2m5XNvSDDCh~#V+>ED4`2d z(fCtgDD3C|D%p!^%C5*?13Yr{ z%8+oTS(tV7bJ$X4H@B3UA8zm#za!vM3S~FnMk4_ zy3CGomRg?RpkW7`GUYKp?)|Io}IY&wGYv=jC+wWnk!?7^;}Tb+Y@ zhm&eF=Pe!Hv#OJ#Tj9-q5;HM2RC~}8s-fyqG*Vvl&@`7|mCddkxUC$lTy^a3)yonc z2chxE`WcW}V&82mWH8{r&F7O_j#BLMV|QbEk4k1$$)#BG$*;SG@49|>@}gUg>Z`BZ z@|DzDF<9BR;>4M6zRcA}tHRBgO?3c65L zKtZjo%y*Gq5dPC-KH1{z&Bk3==GWtEY2ite*g~Y8{5@3q?YMWsn?n*dexJMVl^aqa zJ4j7?px21I+VYd=YyLwBa-jHI%PF##aLzrlFd1rEgLurtjR&z#5$a0n+L2I9!guI! zc9ZQm#t+Ku)sz55=W;SfFqYFHJ5os$j&akVP!W1k&NPG#HjiF0>p#r<)ZR1B!{LG> zhsKJTic!K0#B&HWl)>iTo1WP=YMP4&<2U;)Ot=LxoI)G`ap7Rgr;MUbqudG=n=+ z6XFEh0UHH32JR18o$BUY;*ReUI7H%4)ZKi5=i$E#PwMr*(QC_tLZsQ?=kQ@*;X(5p zc`P%|ep>w4vQ*a$C91D&c!s<2emBpOaG6m`}z=pM>W25zAm_(x6yZ2#Z`kC4 zxrclA@5?4{nwR0Z0jOp%=WxlXo3l2BDbnFC@6!2th2>lB-bqrxE;vS3%f2wyhu|^u zqHigr!=+3QTQZ{{d8Us`@*x!Gy9s=Lu_S1mA8cx%iVzol9AM$j-=eRt3U~c>g@=B~ zkCcn|t#ocGb5bxWB0Imkl<%2kHC!&Lgtf)@rN#Mz?UH`F!+|p6kT;fBq6dy&WRAns zu^6oKP*f93_jxirPaWgbxNZPB;ek)OsW>x|i0a^aIX%-!CYg;*;`Hwhr@?uc;s-0U z$B!n*!)Yu|NiVXQ@zcL{Z#ge--$F63!6m~1TWR#e|EKfiNcAnV5kHUZoV<|%O+!&- zT4V>O>8@n@c?evJ-b5aq>0%dvl8BmK{c8T^E6=BI;G0%4ecw^d{AM&@lOA56-7KJX zx^*#^yuxPp)WzD3Vv}2o?W>D*8pWoz7TaGJn`jj4 zQS6O?%s`=$9yr>=j%E!g5(B%a+AEjeR^%&J-FB2+`(Mf52`u!Zj4`cvO+c8%6q!S|Scrn=|+)=KNWep zQDml3B;rm*PBx0nHi`&ukg$rJibbZC=jh82SA#~kBj>5x8*C@j8KA<|T%$+>SH~Jf z<{L#CxH{e_vd}2fz||d%B8!b84P2dQ6gjU^q=Bn@8bx+BiZpP=W{i47=QoNpaP?p; zGOZ=$FE3nWHwi17sUc*k(S5_&bh1aUAMw|_8?Oyt@%3Z=dQaoE;VQm<++Xi)yf!?= z*H8NE3mUHtNAdO3{`wV-*M^_?`lP?Uu<_b(!)qJTMU59O^-P1DLj1Rix%-YDb+JcY z>o+q4cwpv4PV1HWy}bZaiku5jqdIP-bHrbN^#p!*e2_(z#1VXPZ2goi+NLyd8!LOt=E$W{x%usz(>$jrH z1PHj=+%A}pldW;PfC)vTL{rySCP5nVMv11HudD%9d>SR18on|F($H>{Xe#&024GFP zQKG5WMfz{lY%NSsqKBa)a07G)cefV^vXGg3Qphzz*DYwX2Tte)$FT9ERS5^HKZqsp zIJ8FQLEFrOj+qA&W*&6SJeV}|VCsuv9xQ5NBXaLJx%bQT;I#6LYFabw$4QeLkuUVO zSPYr0<-u@K;G@)0E<)Z9P*5``;H9#NTCfZvN?WH4QWqJ{F zHM^F$uNlJToCN)~k>K>aUSG$|S+64x+1D;>yS&b?V`8k=PJI5g%i1Ykx2_|YNUxpp z{I$#4KCj!?O;6ivCp&-bvKDJObgrA8wbxE_{@P{jfY%e(P0!hDCpdrYvUb5H5KL&8 zBcC%}oYp{O2J#IL0^JKMpM*^0w{v54q{+taKgHrJdy&Du4 zkV~|Wmwr#k*yM;9Ch>E+mppDl3ng&LQp5&0+|@syILl&gRXo44@z;sOEZI$WnI!1b z*J9e<={ZGJm%1L3f3~;ik9`F!kgwr>2?Fy1=Kt0IkMU&np1P-Zie z-9)R6IxRx}3}&ttbwRvsVLivNALX@akHFvO4k&%#V!L>UeYQwS6CzXr-% zWNuG!;z!r-J9f1gN-UB}tgRw3l?p;RGtBvC^>|I^jWjYfEikAx0Y!xLe0mFN<>*Q# z8WQZl`n@%7T#?K1Fs*!}Wbc$SW4F8*q&$}etTX4iQrH?-!NRn67t_imy*scPp;@0g zx|`V?H~UNs>;|>mbdSO1AuW`C0xty%;lU4aINz3Iv*luz9h!>ku~73_kGn3_P=SZ$ zlI-%5m=~dij`&kKR(MrdEX=IASv0CyD}5z^v}Xjev!Iy2mOFw;aaqhNYO;!`g#cLj z)q;KW6Z3i*O9(*#;7HOUH(3h*Sjd>#{9WF%3&6Qc$jJU@o}Bm(8rwH= zCGL8i&?dxOk-bHi%0FvvIhG5AH$Rw47SG^a_(y}KgM?x(S63h$3yuV3h9P`pirwJ( zBG1KvF>={aK3ukh!J>uV3nT~; z@NWtMD=FlX11R53`+NaTV2Z~ zEFJB1?@Q~s`DAC^_P;}&&z8sj-5gRD2T+f%6~`&kg7b_33s)^dNO`3|8{!V>751~j zgQt;LsR!>XW{P1B-a=6eyU|?34ohPkiTP6b%)|&hfr#Kkd*ci3m5>lvEyfcu8`uBo z61r~;tofP1>KXScu(F^cumTVU6v3KBu%dkFwS!gT1s_=xtQvU*R$ZIdegszQdDaB$ zZ>D20BE+eVg|9fc4YU##9n^|x6-IdM|Aol9id3<%>(4*L?UZgUl4FLd4<%D2wrN5Wv076xM>?2LJpPmKH3GTuE@k< zTjjvAV^x2x4v}i#Np+$-In^U15H_jKh|APx9pd=Vrt6+8{4vK`;5k%f$=8S}dxqAL zg6g1I0D?{zV37G{C3667*7d8f15l?fN_dR{P!YruTjQWqF755(e{WssIds~R3~d|# zsb6{#G8VKPuG<2f~*`cb3>#F|r?5jd3Syd6x$E^++xMKBtW2Gs@jE_~`f&qU- z3J}qNyVR<6n_M+k5s{f|F`gIX)JK(l&}`|E5AXuJR4qNowY4PS zNJ~GZkEVBMX~&Nw2KnfDRoEPpM4;gPJ*rLM?qlhNJ7Na~c9U}|a*v8=H(>SFP7mPz zbE@>LyD!zj*U6O zlBjOV8uTTasPu%s?eEZ&dtXeYl0sB^OyBM_ye7pRuX-YR!$;4E8h7eR^P^J~vhGW= z@X^EiXnu$8H$QqJe#9rlVFRaurd{7W#=#JXne`$N#EDr^nZy)IGq~JBEwF#L;@*9= zc#s&`C-I;OfJq4B-tUeQ%(=G~5p?=FWKlSO)M=;Oae%)UxuJnFO4sk|SVVLh#@Fr&766DFRa6C5L>zlHq*_+4o+1%FNd{R$!0z`vj$Lc%%@E+FinhY)Jst*2^UU1a7 z^X3!WRU`EG&*;78wW9$PE~WMLv)kV`uz3l?3mfd3W2%_qCh%+9IGU_%bj^Wdv)JC_ zY1a0`e3=46ZAslBics#iaC2A;5B(*5a0-7d6=P)~ktYlV|%qU4nRp+pF zGv(o}T2Sdyw9f-onOnihFs}_qCzEy6p4Z=a867)C4#w?M5i0Di&Fp2KJkjnW9r@-3p;@ql5#bz*L!M1^P1_v^ zYHkQ`7MQgHqYdF(@L8j~!oO_@CoN-yK~!Jt3q^gY586R$>I?TJ2MeQ^;~bT z6T#OOqta;#Pw5RR*{XRG*T1H*k~o<$^*78MgR10Xs$Cf zSHc*ydZH`qaJCx$^i%Ku{mvCh(vxRhCL6u~g|zo3E72`wQPw;3d5fOp%Wk`%PS=wk zHzK9D{3@~6vd?TEC>5%>Y3^?CpJS2O{aIA|H)mh%@yu5XQ1UWf)L<#2uhH*z-S22> zta1neG!)o-Jl01RlPegY=9NrA3oKTpgQ65fUG?n%jH^VK^_czCDSc36r~PEhKz9OM zV6U=l2b6ByGAA1lL#Qvx0h@YdJELW;#eIWo{R!CP=c*M{* zvp`Vbw)7G6v8_+Y?BI$e1{Un+`NAS6!X)qx=N}B1Plv;M5S;6zsmDG~X$y;~YR)J> zoTpRbd(Wrra1VqlWmconmzp4ngf+%tu-S6HoY9PxVe7WVp0#Og=Heu2wfNuG|C*0- z7MQ4>K4j_xV`b*+=|OU)oXw6h@kAYzz`NNM3F?`5tcpy=X9=Tvp-V;Jmd6( zRVWfB3C4OD?Q~%UbCg|}WZoLKC`o*qM;Pr~qv*n_a%54Tki~W%LGy=G^0~YKEZdQg z43>iA|Bxhk&i}Ulx5J}Yg zV#;F_5=%M0pR7C*EKJ6Dn=!c%R^u)!$|@eqk84Jk@o{TSyHk|l5Gs<8FO(S2ayv0Q zq%MfezUGgbs`1VX{4n& z&oscZ9;W!hC`0mUGI0Q80g#Os=|d>UeX6 z6e-tc-jvKX{u{e#Jm2xs3#Yux;`^N6)@-{E)!RaDF7+nU;SIXSJdoQ9jp4(zXJY)^ zj%I=4i_?A(x>BL4#6R$3OwaTI2M#wskQ4IEEliDnAP3}`KOm~6*@B#pXZ~Pv`~&Pm z_78be#EC1+V(SIlqKbsN+z9w0bv2 z&|*LJ&N6b^I3>>HgP$O;3apCn14b2dv<@FafLhH2>YBi4g^iP(?X+>f9d}GTO}x9t z!Y#xc&ds)+i|hd^`=B<2x1FAn$=5mIDOTC}A{eEl;aBFFeg|0fA|I8IpUCIF^z7k;Ds2EQh0Stbjt1 z?gRzQVP43S$Q&O>m{gCgQlPR4 zf+OX%MCPLV3kct|5GAC5RYbu~n#VSG1#DGX(WfqLRVgh3@k+WXH4DO2ljRadMXLdJ z{4u+<7NvY;@_Xc88z3l+hI*vDp;W^=$ibG)Kt5Nj4$=^UEIf@Mu{FJF(eX)ppp{la zd-T@xQV}rh#ZET;6QdGTizq{QS@GA z6RNS+@@wUC7N1&tI)+5gKY)s_MRD{#rNE$(O%$gKO^trKYfa@aD%NHen=vKRGqZ!a z`GrNJhd=yH!+j|Giz15Oh_}1@3%Y%OyuF~$QQ2Aefq1*OKd0Nj{LlXFMcU!W;zhju zhh_$Z_r=?NeRjNO;WNMCg|GB8Y=1r8zS84T-V<*RXdhb^KK`f|KHx{k-xqJc()4Bc z{&>4&%aY-?csnaUaTfmi*ZteR!n?BY-{S3Fg?DA);rbSC%);kBN4*1xk$VW||4!`Cq9&x?#yk`Tx$o_P;%C?ccG* zX>(==h}Tnh@2or^r*HdTwqTzfIKdE8<}-PcG2y2GuAc1+!hg!V7bX4+FXs0saSC326$@2mipRsK_b-x@ixV0t2U@ z#cjwFl9R{}XN0gaOl&qn(~3H(XE2vid|PdgdTq_R)INQqcoow0;aDgO@8ShYXFQOJ zq0~J|ZA1_+dSQ+EycT{eWdX{A;CNTqjrgV*Ni=HVme_&@Vk*Sjs#|ac!@8&nibv2j z0F)~Qn<#?qnYy>ly5u9GkaaJzOto-49{aL2za{f#(f8jWjoR&hBotPTu-P-DQ5!GW zy9h+mVRJ4j7nER95-H4;6mV|{zo-PFgJoAec8#e^Q_)|V=;q(Ss-UN+@xNPi^ADzG zX=ls!&vnxaL^p#h&88u>VUCWB;mznNkqvY2!MFBG92Z803iL>UlZ86>oFSoFK9U_^ zzDuewHEVW|fa@;K-ydePzKD%5AZM8R2kbwmytNp;HcP+eq zJ+M-pvCqaI5!6Z2N|^xH?k$q*Q1-&Ml^(Xjo!|2TVVv$F9M~P2IvjKpHnag`Pq>In zaw|*_tWJ(y;%dn0edJq7%6kNZlFHJLI4#!a4U!snR-)DDN$Z=B(&BUr#((yvsW+n zB8@OfX@R7R2sOoX=R>p3*q|y4M&O?~Jor>vjdWeajSL(7N&1%Y4(mw492kp%)lJ-b z*KQ5SOqV zky4~uB-gvos%$!V7AgVYnm_9HqcJW%KT=BQh7+KPtz_BF;SNU_vsyUdaG9_3g;XvC zW$y%*LlQ$N zkOyvD2ul$K^xmNinFHk-#`4%j7(-{kc!VR(Yv}6{+;KH{NpR>W9Om`Nm@pTe!)1p} zb~GqB+iv6}-266CKQ=S9fQE37FeHktW)yVN(N@~zom-)R6)T6mBdZ;5Dw4OagD-h4 zRTapftEVI)CU9ZUd`e(NnTm!*8i&^fyKSvzE|oReYPQO)w~8XGNu(NFqwNSK2O~_U zo(S@-F`$V!1+xZ8j$qa#PI$5=P6OJAI6Fq1iHMWYIC1iWQ^IM~ddyr_sPGw~_{xu~ z5RC$tPNeisF;P_p{~J-`VvPeff=4>g!nVq!)psO+cBMu7Uao!{jGZb6&AkHFE=)C!wGTke+t)~cV975bu)(A;5nc=e2 zv7*aLrUNXHWBt)9GomZn#s?sXxnWIPBB;axhqn$$N*rZY#x#vX+RYnd5-TIIvk_`UmmF_Ymb) z*{DW9MwOmS8yaKPCiX^Mq({cx78@jjrAHEkz^mCdixs`9)yDVr*CxF+vJBGTTdydQ z9+JgvqvrG$SJ~yvS~wp&A1EV)q`ZsHS|Nyv68u57%1*G3@Gt>o&zK^KBsb(BA{WVs zYrp7Q-x#Rm2T3TcPEycK^PN_%*meqh5fIoIeaqFRjlZO*6Uj~CiAZ55lzUZetiNB? zKdnO4#pd8Xj+yS-D)Tjth@?^odP7`gz5Hxypv5i1R%_gxq{*cSw{oFO6!NKrN7WN^ z_&jWVQtw0^PLe8bOJX^sf>lkTb9}82?2&_?$|+ zHWk#-rckkoF0wIH+LU$SN)kfQK<#juN}CF8wKj!RDj7qaCcFW#&910fatr5)WGi!b zK4e8kWF|=P4}yf!)M>*A#vNFer6c@+2Hg>9r(Un=Op-XzT4f>3c&<^kRyEN{D&ixA zt&#}^OK7~IDV-cmLXCFD5M;j){NwfnDpArd&iYNdN2ixU;W|PCIoV89R^zS!gNi`d zABh^umc3{Uhn`FtxedjGjx*6#B^~Ln&xM2sqbjp6Os6>!%099kxK=|oF2*VtXqv52 zV@!)8Y0&K?F@lMI$q8%KOvMJE>kh!+WFn)OLG^`-{`k4_ONaqjBoT? z7kgAUoAHf)>tY|)%_H%Re(PdS=;pEbM!$8jr*!jpe52pG*fY9$GQQDoUF=!iJRRTY zw=VXaZcfHG`mKu{WsVw7#W(t`i`}j_8~hQd^jjBuuWpXTH~OuM-Km@7@r{1#Vt480 zj`&8ub+Hr8H&Nf#B8GDyqiTrKwW&QMy;6xt>*7eCqyO;n<2yi~NA>ekh_D`}OIit4 zq7}h)Lu@ug?F$NUy0JhUa^2 zcEyfybxH1R2{;*>e4rs~1`+30Twy}7w1j^E3nE7;XBgsCC7)55Y4xW%LXCw*1r%no zCa@eqJW~K2QJ3&z-MOH46O>vBlg?yaIpFo=ThuSn{RZ*WT|Q5*EUE&8!b->Q;sM>3?a`1K^hwkpQtQ&dB9k(=+LH+pVH&&3>_Aop7x8 zjIfy=;A1VrFs!fHT4t!Bf7wwX#$*_haiuZm zqbRR1GmH{*dDYx&b~>Ap&d1@jMgO?&gd7kq(>G4;ceWX`!JjG}P1PWbo7FSIB2#5q zqrYx138~}u5`LCSs$nmYna}J_D>r6$Hp*4DW3%>pVr&nM+ZFO-)-s|~-cRh^IB|$( zvo)f zP^l9Zd92{zny}JHSj53Z!m3<`-o=WrB zoa4k9PUZEjR}zv?xg*dOsC=-B8$}BSaeAf8Xv0Wp+pM;K9+{Kk zX22qThuySGM&SD>C;w=oqd&B%fEh^@EhkXho>{Rcj5y}=Y;q&|wDxq4x#1h!ct$sT z?_Z?-o6SKY0Le6I&b;WZ1Ezx=gAIdb6mz=<;fKu{(6rGJF+n&Jm;qY+tl*?EDW2>i z`*YAei@krDvk2|H0a2!55;#YT6PKG4ZZh}?fg_M`Wr`x=UwF-_HBKq4;Nm0QOX7Jg zJ3%$4UsfpV#Rd*LU88YX2SU$ZrNhK}30|;1Y-vH}pB5}6QK)roU8SL}f1I5`9IjJ*s)f^LfsEbnO zy3tpySgCu@t>)IiYtAL=aYR^6dq|G5@)y5%>iwVjjdoNSlw=yX@rwdv5{3v-R2cW)2AUGPf^I0!$uGeK!(Ie*6$F z$t>BI-7;qEEa@1#4bR3RdF$qI(y#d%bTYY_OI2^%j%;Sef);OUT zk0(t;WK1y$D@AQ;aCOM*wB0o~=xIKwIgEHU?%G-w=M6qa^Ah1W`ndIYCq040=o-Ot zW;JN($dq5Bky&e`iX!b-O;%yIGxnenSIZ_p3CU(Z>oOMgx~&Q_$r9`#0C}JJWp}yY zS2m+kE0}5svE#OTE48px2~2ssrJ&(F=r!qmlZXF7zm7~%t(ZV!hY>dTGsa_X;ZMXH zJ*q?%;bx;_gY7^$f*;Z~iTkzno;H9nrDP7o#oD3XlwTCddT*Y~uv@Q>ppe2v*X-r3 zu-*#qSnol0@DAtB;6p!Bzev}6z4(Geg6*o0$cWHM3lG86XcYR`Yy>=&HH-?iRug}O1o zL8-Z93QM|Ip%=%;Nf+y*%OeH@p;Rzg?Jd`6ODq(vN*$Sm52G|}y6qu?_=oL53^cpz zQ=1-dyT?cNbd(NBcsG2r7tT-4Q1@eeJy!Qq_8`{%OjY;EygmuIWs1_=B|2!A0r=i7 zr((ooei-E`W(gf?7nav(0JE9k9$Uy7JAF3Gkr!%%8J7x^iUIeYjMFxS z9t$j)yFvB>oc4ao>;-NA-5YP-wc8e;g8(5&I zbVzNXoppIUwp5R$v;xKSu~-`1$iHHy5rSPp8`>0swzhDywr;`$wc&weFuqpG4Y>K9 zPjB)mui<7C)^i{>yviPgW4sEF{0UTaLUM$?PTB+df1qHqW&N{S0S*&n8;YSEC}HKN z<{9);SAA59Xu;}|3P(T_4qs*D4w0^r94!(B5cl z+U}alZi|+A5sK=|TJ0F2iUS*J=NCt~12%*E-Jv{qzy0dT&u6m=z$^mYFFuq|(DuI8k)haQ))%>{2n`e7X=m1}+OY8%2=2SY z9uR#v&Rx)Si`pp~sA_HS6Ov!tX>-8~^yMRT@r%`&-e*&p$}$2P)|RO1KHqV%!X*m= z;n!}%W<{Wr@{+PR`RB4^?@`TRjD@jZ!f&ex^yy5vdD56ruaPkDVE9B;#nW8CpUS=5 zGAADwI_aC*weu<+R&LcY1y#fu#_85l`1L>E6llkK;qy=H= zuk(y;8rnJ=C5y%nN^KpUWciJG)k0Bx@umHbr)&{#=i zu6zfojXJMN&gbXy)$kMulE#qD$Di|MCnB1O>QL@I=A}!T%ktY*dZ0^Km;wDoepymn zl^oC&%1w(FX)$?azK@^om3hIBw9FORej*uClu)<}{XwVa5@L8nO8djFcptgG-05g& z#xda)jlxQM0S8`{Ak{SyQs0#b5M1I?kt3y2zXn(4I#^T&Oe0}B?2`ruysTukb^rIMTc-ylj_YNQW3& z#!7J;Fec*)^Jl_<5E4v}eLJ6arPB{IggTJZ0m{Dl+C%((>$N%>hl{Z$Td_%gt0uYJ z)};H)i#9c2@EMO_b`q&9^N())f8Cu6d|g$Y@Auy4nVh6ep)I8kx)Td6edOIF4X>U; zOAECvl!pS+oFper+T@({oRdBj;S}l<5m07eRJ`CIps3({yowH^b;Q?<0^W;?j-%k< z=zPYD%vDG3h~$2MYwew!q%9~gpV2w(%HC_Q*MI%jfBj!;?X|szsP$~yIH0+^fFQkg zqm(SYO^DY}t8$2*aI-Wwq$QYx;7`>bcBsjis&3STmS)hW5XCMqBk%@>H9q6T7aXgLW~KzCyp?L-)HP*Fq&7~NhK7a7kr=SA!|-0M zV@G5ff=6+;gOAz3uw&F9c8xcNPapE9)J2yazLu>%IoBHUsd1 zpB{G7E7A|(`m1}lQQ^d~@c&Va$>LZ-ysaem_!<2w*08e@=a6`oB&HPiyNR|z&$3i z-f-Z2nuZ$aC4IZuwZW|+B6iZdT1+$h3Uvd7xYbMYrlRxN}anAcrs(=TK32A+hq%k>s%GLduhZGHzduglU zcjlE?$PPLV<}%N$tBbc`pRs&L?n`46Qr_<5pe_kN&$ui6Nb2E$ZO913M`cHcW(9Er z;?F20pQi^im_h)f~?_WT)2by@Cn5=~M|Xna>+_zKAPA7BV5Ik??4o z4S1GI>F3^RRb8)VH7A3Rt5pkja?tnO;W2dZu-_To`B`)f7Ru%o4)T_uAh$7-4=YN z5+B@u9Cp&n(qH>6mpeEz;&)u{_sGC5G)X~xc)~;a$!}I~AaeMb>fP!6=NGu;yV5-W z;IroW1GlGkr}vy+P(t}x?w{OwzHZAkyVJLqO#bqKi zGKpSbt5ZAAdd~V&xxxvc%F05-hyb9AH*l?24M+=k4DmGH;Xh-7@ zNcc(78Sf^UlSK6ydDm12%3O`8d{wH2{zJE}U#szj9IA9u!L-_Rq-8Sw1cP9Yw~!au z#LV#)arJ|_V0B;}hTT-y@*bY&);M}EQbT>M>gQp^R^49lj9{;>3ES~=ZST^#Qda0 zGiVPSFI0XX$q&+I25oWK;B1sz)rkkO6G47dV6<%G@vk(+^( zq$;6Cd?EUGRuCpIjazbZO#TTqtWORU@Ud%O9S$< zU?{uRj@8AlWcj4@fqtT@q=~t;ATm zTHkMtNP&#c{6S z`L_>Q7qAZ{R?`yl6pw`u(HeLW-#(0|;n-25!xZK;U41@EOMYMq9X*@rzfQ-ImLk0=j#2=uY;G|H zHu5alkSBIt)o_tvACjo9_Dp;D%t5uwp8hg5t#rzs+*-I1@#rZ&?uPLfO#Fq3`0rd! z#bj?LBf$i~*C{5>MAcRvS<%LrLCG*yKTN$M<*w%rBVW=nPT3Nd4?ObTCe?=)Dn$lu z6m`G=YWC*wMCt(-p+_1$YVM>nFd{Y2bke6NFC*eH11%b0u#a$rm#a?RZ$-;RlNSld zrOD91L$z+r?1UJkJXZzIJ*too)Jj4MD?d^j{8wf`c{ZYw<#n3@EnrH9$n*?4FQc*s z$hfkGcsj-d>E-A^mRzmkC5#9`!hoa~P}^!Y*Fth8AsYB#Opjbrp>k)Vidp}wx~LB) zFxKfEQkFgWgZY*>-(?U2c?Hj91IUuJ!7+u*Hx&4iEt-ysnr|pbGuJm1j3(<%dYZ{@ zJk2J10S(GJ2!YLv43$!_48=fQvJ-S<9=A9~6)E!>N-fPANg!5EhhXI^VWbbUglQK4 zW9I9dlCDs8`e`1A_dnqNL&5XMx&O;RWW+l8b`vMR{y*8#5(Zk!*i7v)`-x8G0k@LP zgXT`sqsQFo@Tu3CyCvLhGk044*rSG#s{d!C_n1 z`o3*ly2M6t9$15T3Y$L-Ljk)YXExk|HiInVL(_S;lL!)A0gO6TNJ#kx)9@vbVnGlv z76c(>qnJPKrSAy!>p-~$9;4X;9_c8_0eE;txYvh;uR;Sb$}Qt8Nhte*FEi&8>;ww z?L8Pv>G!Z;zN^V`PIH)->G*Cxx$dS%oboZ!lS)5)=!|2fS1Y~zx8H3l-@_CbJ+grs zli_Rk-*NJ>a?CI}?zrW{H!LEHIkWR9H8Fy_)KvLjuKVN<=PD!XN=M1Z2MFj2pRj?4 zq`&{m!+7u0&v6Od&B7RpMu0KFEo^b61gL!4$-$(LQY|XSZqNm$axVfR`aeUXbr?`a z#-oEMa(&tv-YrkFhA{1^>ZwCxq_7~m@e#+EqHI?(0$jj1n2+mNXvhLk!z|;3aOE1% z7N(A~kf&BSHN>=Rvrf%qR1uQ^g8s=gib-x8#i|S%jT#i`@336WdhLEnQ}WlC$JJ6h zjXjEh5sQT1YFY3oWl$ZIQL?NeW3wE5sk;(d;baFNy2*;Pcz7@)F<2WC3(%Gk+2+$Z zny9$;SLqS5Hf5IDaDGdXOXEzWC(JZGx*5^B8)}Kh!mhjdp55*c z(V82dc9LZd4kgO$dYi2Oib%zJn~TC7rXZ~3gs*4qUV~R9g-NS|&eYmWHltUuf@`M$JOl3k$AxYUG6AVypFar+rzrJFnn{U&4Tz5$RzylJl-z5bmtAe`BldpzOk_Bgk zTqjk)fLcCn{Z92+@jSI-rVd|=z*IKrF;GNGgBn1iz%_FXjo{+Z!m!J`AOHu95=vSn z2-XS>6ez}H-+uw^WwLlh>MQ57h3T)2)*BhR+t zS#)tR=t5S7zy&5X<0U|X-o&S&iw@|kT45K0u5cuuuloDICv5|ty|3|MPo)Ar|8 zW|(O*Ol~BfR{ccl6BTkkF@7AnVK%c|IqW= zr&Ey$%2mQ(^uHHAU!~3QM?+~lb3p5>5b(OPeyF@W@=?TbfSH9=dx2d+$uda!qDg{{ z)rN~wR_+qE4`aC^q|f)!vdnuTD3cPk<`6#?7x&1fly8`iXfPWmLrgx}xD`^w!+~3oQXxe&?U5oZnMjJ@lAV+y6}8nX8xvd`tS6)hkl{-P zO0!WK#t0}ZN(AlTE=DAXo1na}bc|80JvWIo_HFRcSmHd?lB%a298z4&`ZC>D=MhHf z!`$%)yB2>F>naFh7HSf-8%sZryiS^}2b1zx1G393;4%~I9axm%gYtKC#9V^KBW8cW zIBoXq0;ASxbBsiLtj{qLtw=mtqF67}y8%Wg{}yac5*LKwD-$1QNg+Lc@cG0ZZq0R9 z`d~Ra%*kfxR1By5_bQ~mshrd>bR6mB=7!_z7!G3+(opz+8QvJP9lgh{*e| z>^^{_q9CM&0`!Ie_}xb1d67Xe*aHtLE*Wny_~JN|BrznQ8z)W=Ovc%ZKGv zc*2Z7#F8T$1EaDy%mN=8uFZvSGWh;iJRn*exO`K@hvVq8Jdxc#$Q1?Ex~5h5upp?H zVZu!mCipY} z$=Vozaz*x7`q#Qgk@dL$t?pUC1torxrEk-^;dVL#mv02ZBqeFm9FNGy1=W>^FVbMr z;jeH~(18b!uLRS8D(B^lh#PUhnT56LD6kqI=M3##a6KTMfQT&%6OaP+L=S)(R_Z6F z0o}}pNX#;-r{hI{Pk{mB27+utHzBu^ZbFfh+=OQBR+ieV-4Y3S!u&eBj-0Y9 z6OagE;UO&<7#EogPM|dVA*YfL_JQcYaFpR+ZdVk&_&je(!0ML){PN4#XhfNP~a7;u)dbOf|j zpA5Bf zMi^?aI}K24<&0$40IrZd%))E<+zn$1eX;Gt(HK+0oMuG(MllN)&R|?xYDRBn_k=Vm zgd<092Sr5N>`E{TAX1DtoX1JAg0Rl5uZCP=A-POmnLBr}<5l2kAR=%AzDf~MVa%^h zwJfUC$JRM~*QZvK-`q|lZ>_BX(x|2sG#kgTM17YhBA%{g`;kcL$Rg6`f+8Up?dFL}y&Xxjy*KRG;*2*Z2vf^b^n`z(3x%7=JWPytanv1~R%FGQK zF>6|S(*S%Pk+Qiqwk~2Zqt9!w$9_-xj%&`Xt+MUham|)m9h3q*i*1WFa&IMgb2gnj zcM4=CThugWCSVAM{3fQeCMj_EO+J7-Ly4^Ys1+eyTXYyvot6%S?PD@Cq_~;*hQI`pVngV4U9a`M#Lj6z;KGexLNQ zyqzF~^)ghqb>s5V!-X6}@yUCP4^`hYV!$;C1qJ?Vo`X)~1C^`!Mf|Arg>`TZ=9C&3 ziz)urU{ofX;EQv{ampC6mFxc;2ALrWU>FheZX6#O)5|#v9bfx7(htA&i|pT>6aq$n z)r;ElJZPV2>Z{(wDFF`Z;Ze7B;#oCo=8<4q=j6~C?rn6_dWQk|J-2i=fLr!+()}ae z1Z4VRZcM)VH*Hg=X7y2VdjEG#!jaYrk#<8fHy z5uG|78fQjS!}ZWnlDi!pgkqK%Jxw|3$4nxqrQRihS;Jac4G$+@m2;LLA!wid?0g2) zY&OPMXpfhXOA=Nj$kFA{_*gw@ja*LUMlMLo(VT-;58@BL`3gLiD zS=pTCZ8@Q`-tjCl8|+6=>+Qihm}5exNrj7QPY1cH5Y&cJ!LROw+{c6)mnti8V;r(d z{MJzt>p|_rx*|htl!3FEumXezm~tX7IFGAK%$_i5tlz*H%@E267U~%# z^+qOB?MxXkPSBk+z)CS_z^}y47Mnstc!k8Dg7IKf;ZY;M)C1={iWsfm zcz1@wH<`r#Wt<7vKzT4O0*IdikTMF~5zXlAM*w$HIX8Z_&q%X^IzB%0x(0Y!cpJaE zA%RZouJhmCki5D<>ktv$$FIJsA-2wc>s1Zx>!VW`3DuW;oYdsiWUspDAHN zuA=?u)#}UDS6#)+2&o6PA=LxP@bLgU#;xO2Vuu|B20P47^EFs@=r9UGlGaeL7C=7k zA-+&zIuQf^;3_Fx;fF#grd8ujGGDtuE!$ix1oGVlP94yyl-!E)NP<|}jqcV{G#wFJ z98|H{#jn~c&Vh2r*PZP#c_upp0H*QzscB76Q#<&pcTGW+(SQVtSCzS0ztXs9(=$+N zZqrFI_FzM_C@mxe20Z8^D+_j@Qt!XPjlwg_hn>{T(adl$TNums<;QZRvEkuNe}AEG zFq6w=dA?^Xo9oMF`gRw``ueiPVkuwB4DT2i%k>xY`*PVre>RsN$&9FI?{L0vcd3xc z6*GOMp?t0{pCiU?u0OkfFgvt!uv8iv$x`)DZpTo6G0XFUsYxwTcf_$jmrIloBg6@n z&lALxget;NZf|CIsNcVMC|Bxe_m?j9SNRV*b^LRjuklxPoSj$m6EHeY@?7=)gsbYV zCe#p=Hx=C1a?SYX3>8O*GY9;kks8fC+TN*3mvi*K0=VuFre8C^fW%rL} z`%2mV;R8*Dv0|yOsk5`KGuzy|y05*ZxvjOOqrYRIzpHOxO?yjkXQp>eZ+~wl)0ge+ zYZ@NvEo2G@nli&6uc=rdlnO(+osET}LRLJfe0>T3Z)SW}6!Li=PzWm6lmTX^NN9&q3 z{k?0leO;|>O?~@TK`VvK&g`nu;j!YX=Ejze#%5D&G*cR+f6ZQe0 zS?QMsvxTgmA>{I50t4?{6{(ZZc5dJ**vJ~vm>;G+NSfde>m3-%4)-5ft9h(CA1A*? z_@B56uVFl_XJn{Yg!25bo`q4He+5^KN&ndB@K9f-lnrz6>~zuuXP76P@;iod1NpOq z`F}~aP^@4Fdu_DHe9B%=dCkU!1pU;`BEm_8#e}n&P5BXjy_siB_HN&C9-z!|q+OiL zjFkrSg`qcQ`@g|6;o>%~`c>BF6R#&U5MD#5Oj|ar!qnCIeR zZwbJ6fzuVFpT$+&cv3z% zN2I-uJmNB!2W1?tqCX^*`Dx4>32ccnLC-^u)XY70j0sk#OkmNJ5A(H>r!5GT^|teD zbr1ryPieP zxtqj<>Be+EFtzyrtk&xHpsAy^g@c zUX&lJ?n!?u<#zr`FMIRg~ z?i`u~BzS1l!{JPCb~tNCFhszJ?M!i!2WQ2Wi!_sY1zJl$v*<4Ut6Cac8&?~R1=*V~ zl!`_vbN;!y&bb`gmrR{c2;(iwdOqv;V>$252L}H?d~4S?JHzPmz~<j{4>xLjO2 z6_*!gM~4q=#j275WQ{3<-pug6%z@(ev0kQ+nFTvDMTGRoP^q92JMuZl*+9Sa3-Nz0 z_rj;-$40^?!g+-7nRs?SH+;Y^j*S}9^_jG=4vdbXKQ`)@^8Ro(x3e_pH}BuT?-k6L zW9#{Y*YN?GbO}K^Pd~FCLy*=Ui0L z)?L$Jd62lqEQIBI#HE{u@gGf#|7=?P-=@X?V_H1oO|7qHT6|6re=Tk5M{#EhVQUax zO`C8Vb%y-p0`4y)Y$v=-UCepBZYmGJQISP{4qMMbw~xfa0PM$wP{7ABm|gokH&;! zYG=@ZkyJ&0pn$O%xGnslB9o=$@5>Gkhip_{pOTDrnwCeX(cjM1&kw*Z3bYdpuDKa7 zycU>LN&k@82qmOr(XZ0JEc_-z1G!b%{diPJ^06I}oz}5rx^19p^e>d>jI8@shTT+^ zg)B24X)9=Yv#@|6!2l>0Wwu9+{zZ9zw2&|1o-&0^4@-som?#a73vbKkU=3Myd(@XZ zLY*oU4)_DOwp6*%V@|heb1P~;zZISr4z37M=}iY zPO1W-BY9jM#k`z$hjLu8XQi%P=mX7w$3Ei#mhy;8(T-3e(%k`ehosO>iP%YNz?fh04ATzh$#{t!souC~b5x)A^z*FbDs5@Oz_nFh+m)xxE&y_*^)sz`m z(0(X0-oX8pgjXUnk|#`+8KO`90Nv;amGml|s)vvvy!<(Hq{75hXIxO2f`RuhzG#E! zvd`55!O2&2Q-D5djk%X$&4(3O2W zp~wAvUY*guZsMx(>m*3W*?s_4JYpy_(2{lpl4~+*4e(rk2TJ@PhKgO}n2h&l18F># z3$$gXkHHo?@-_2R%sZR&%M`SUHjAsH0V+ZpNu{%EFv zL4o){T38c<*=uD^H>#+_SW6?mK+4O<7M3p#?aXCZKf#A=*vNj;rGtd&gD{vN$+?X* z;UIvCK`~GncY$arSTE-PTo#bTs-KJXf>jib}EMnb(t8k|_ zLcMDz_pdsw!bS(1#+X952BB9x84}$Ro(!$k*28&qIxzJBL&(oweOOSH3I~AVLKb+? zDn?m0lX4&>h$X>>h1O^LHQbvW3UXu8;~tT2q|9Mq(zj7g{`|0twm&faOh z!J?UdOcv`^u(Q$n7^e9JZI)N+PCRocSV6QLu-mU&Was7dd9aM<(tATX{X^%$TFO_> zgHiOap+2MW*@-~iW%6hZDr{r=T)B(%W6hO^Nz+_87l&GbiUX2%p5(c7oOPK}-(c|c zIiAUyeTZR&bT}# zs&pPBU45NG4*>Ek&qc=pqx7LeSshuSO>icCJI^lxg9BRZs~C}GqzTT+u?k0^h~?3j z-9uVPI|c6TxUD;I8KYL2RwOMfS^2!g^Xe>>kf^HQ<-m!eE5pt@kM2W_3YGw z8QHevOB*y!l9~Z#E-npp1-Bcs`-8i4!0>hu9HQ5mQvY7+x9ASCTjWj>Z-6{I0f2z~ zmGJE&UWq^Ds7&8a`u4%$?SqAF`F*b)8^-gO?(YvM$+CSTKi^kxb%8s%#wl|TSMkme zchs9NO?wjMcdriLl79iW_%;vr$%xff18=hTKeql0#G75!C? z@gzLC{#R4Kek1LK`t_T*zlyM(ka>AKG@LjNNW7_V-b%4`la0sE?M^nZHq-ISs@^0}|_Pab_#uV$9T8I(0s;hBp?=E?B#J8oL zkqdEQHw^_03u}7F*wyBbQRN!LB=O1cJ~uYfiv}M??YJX7?Vhj3^}((t>$;ifpdc{{ zAMF}=Z7(Nt<8cyi_Otk#L2kzHDY3h(XQkgWpq*yi$c^InNLTE6u~yXki8_|9T*~T_ zDY*2_ODoC=vHK?R>MuLz?B?blm*0C1>l&y2q16M{(l<=4UEZ!K)pyzI*S&Q0s;yhK zZQY>J#^n~O8&gqtl;mJUk5V${=M4oMwbo&LiH&f2TztcmG->Cj2y7am7@{v880jT9 z!!j@+?<#g%a+#I&3%QEdoXl1HaeYXP+5HnVYE~aIe#ffbA$cW7GTLxgXmr+6W(8$J z@{(fY6EE>xI_dPfL%DY3T8yPr`8Lf;hFRD!p0$_H0*`cgOso+-3ViZ$e2E|(ufE|m zOHMvz>9SLouUNUNxuvzOeRW4?*P6BIb!VTme#5yNH=TF>=GSi7cEN?)FS_`W*S-F- z%X>1tef`2)vX0pXqJ6>7&6-{>M-;4ZpTrU!h#S_V@>Qv46c1!9!Lj_CL}W7>V%>Eq*PoOzZl_^0>RKyJyCuAC8cU)RghDz*&bZ&{}PY(m*j;qP3-cJl;1$9j6{rm;Cf0MK^wfF6-|0MfA+1&vAnrXeB z?61u*z1K$|@J|R0XO55mf%JdY_GTjAi<1G|-CvaIYL=?-CCpXT1Lh<}EA*;HZr z^W4j?6UKkXeSJmzc$6>HvWaxXrI&^IXHSc3|4C(j#VhmI5|oV;@@>N+hbYaGbG=U#_l>Re78CC0U#@T*f9V?v40PUw;8g#Pzg@@ai! zrH@aUd-?GmIo|;j_1MAMUB!Ix4T*^gVTc54LwU*i#o+hnT-Z z0|$)tYMS*2^ZDI&6GO%V60E#y4b1r}FtyW8_{s@e9D~;}fLIx^_@nLCzbHFe^b*E5 zfN1Uc3FGGy*B zf|hCglHC@Q!QdWZGe|!0`#uoB`iH)mqBW-80(%IxL##D;C#8_t7kU#Or{1l!-9uPL z2=O)fiVm4~?9KLpFB~OPfg=C5)pq|&J6Fx=IJlDEE)y(lnQbTX8?cAvC0;E$vgv`5 zk{mPlQ@7RvE~aj^aq5vd0Wj#%seW-VKgPQu*wd$cGFTq~d7 z7R0%jdS^^a7w@dh|32dHCwzbqSc3b)?r23oXf+#YOho>TAeXjn6h{~~c`OD@H=!kY zi;bhdBG<5<9zEAkutL;7#M@5O?dV`0T6c%|oz}w578|<>C$P2~ov}{KtNwsF-hG&H z(Ct{yJENXd_fS< zgV|MOH~feic;YzEQwJAkVV7NtQQP78-pzdviw0r+7mx>Xbd)FL3HNY+FX1BupI=C( zee44=%m;dI>Kz*z#$%v0`!aR-4a)6(41($d<} z*3#axx}~F~v!$zLO>1*&OKWRuTWfpk>ei0d&epEhHEqppEp4rBZEfvstJ^x-I@`M1 z*0eXbx3ssmx3#youWs*X?`-dCU$eS-b<673)orWWSFc{(vAT10*XlJL%^fWrtsQM0 z?H#K-IyyQ#x;oZ$Hg~pkw({y=d*|xTj?T``uFf@G&0Q^BtzB(h?Om(8I=VW$y1Le^ z0mL;lzlN&UP;3p4GDW15S*{ttBdJYD%lmLO`e*trYk1o+==V<`B=Mq3oZUzKV}y?r zj*7a#%j$Pq+`SbBFWw)asxr;u5(cAlk- z;E$hX{Zj6K@y|*B^KW?hvdw$ZUu4=Zs-KhAVfv{r%(=X=vGEPY;TB+)**skG-i8#IN0?0{N2(`;}bEBRJoi%9Db)1{SIEox4p-@LVckd4T4`dTBzlIW z(_fQ+5#flufp@%VloxG{ZXt;ZFQDAXT&1^5riStP+;JJuxyrvA|vEEuQN~Rzy~%8r|kdi`VMj<9)>YX!O41 ze|W!*{my$KGG6uZ{RghU;X}=rzV7;W-L&u@XUsf*^KYMTY&z?TH|+TFp&Q z$M`YU(5c{QGZS7%z|P`QeXdEY9T@F52`F7QJyzhG7cb|+s<^44J zGw&Jy+30f~gzDBTJ?+dbTW|c}2mi;Lu7B^Jf9S71_tsCw6IC5&oO#JFANy8x_PmbH zOD?_Uqo26{Z&p8f+}qyq?hj5-q6l%z*8c1jpZ?5(g^6T!YW4{oYr60K$P?eI>b&XZ zdlS{CojEXc<9qTuzVOU1F6;f(^W*P(e`C|qWf$Lm$DMz9*FE=s{BsXI98cBES=4>j z`U~#9=NsR=BXQ#VhLg`c>!&~e#rT)M67^qm@+r&Oy1F->w|U!kobC`^PhWOmcX9ul zuX*QPAHDy9!;gL9{#^dOS2nyU7KyHk3`E?f#`3j`A}uo)Mwe8b6k8EHCpu$!`J?eA z(IwGk$@bKivk!Jw&8<$(J8k`%NMEw5c`l#5SrBvAc16#RHASlvRf)C!(r8UpN2EJ8 zKM}1-Y}?e?R@;_nOjaK}<-#q?lFR4LKV{+U6RNh*z&W)iCaU8blS`|{QfH-?$4`q@ z$1jMxvARgCe0}dp8{26yr>MfuySBJ-o(!L^HL zb;sO8PnLgk>gH&5)VprhIh)TY|Ly5!}a%_Y_4PjoG+T^X%{?&Ib6 zUH1f?u8ovxUY}qV&8&%b(V1n*hAjs#s+kjsMG{quBB@xsx;mbOtCs)%0Z3 zaqrL$8OyVuT32UmG_B_^BZTowxtBZ(;}>#&CPCZvWk(yEWx{x20duH-$Ji)uT^oaC z2inF|9qAL4l`?%@)OT)<^*C=h{toB36a2+Be$V1xth{5z@@9W!{_ZDNdiVCMI_bAP zjm`^x#|OuII)3Lq)!|mxcP^=Ys`I`XnKe!G?p)Kn@Tqfuc~br6XLmidb!)zU+wBkC zxy^Yrb3yi7cV6Ipzy3n!$)~nAKb5)o6F@dH@Z<4Xk0hxUceEOHOXGrt4hVs^A=E_>vqm?X)%^^msGg} zQ8x}y-icl`QWxd4J1_3yiHbOpMczsLTg!PbN!LqNxv+6}%xiG>MxtJo8;|@0NC4V| zYV?xvYR_$6+!Adj9&?v*RGUvH-AEUS6pVByJ@2-NTk9s&V8r{%TF3oTy%V{??eU%X zkmp2Q4)@>YA@PCzL@(yv>dil{);%S8VyZFHOy4|jse3k<_c(7R={C7-)XI5i^n1CN zbe|F0TokD~UjLz%AG?1Rb0YLIx-1fPKTQ3O_ZO*_=$qV*nWxgr>PQPUCfqY3OJZ*F zOpXC+uVRL|J2)QH1qXMyk>nhMRo9*C&PYUJUrMSYCkUgAlXAJjLlMq@L^& zE=bKr7|@tg<$Awn)S(9VCR&TSoMsv~qZIcdjUe0MOAoGl;amWrmN&*}0DMDfYRaV_ z$TG)0D|&(M8@&@8`W%fVlV0Ma=q(YaGuoPTXSj1??o4W$Won5*vF;gBCoz(6ddkn* Za~7nNNw*8bR&2~xLJi@cv3ap4|364NWDo!V diff --git a/modules/ibc-hooks/tests/unit/testdata/counter/src/contract.rs b/modules/ibc-hooks/tests/unit/testdata/counter/src/contract.rs index 259d3634..e54e1506 100644 --- a/modules/ibc-hooks/tests/unit/testdata/counter/src/contract.rs +++ b/modules/ibc-hooks/tests/unit/testdata/counter/src/contract.rs @@ -366,12 +366,12 @@ mod tests { // No acks query(deps.as_ref(), env.clone(), get_msg.clone()).unwrap_err(); - let msg = SudoMsg::ReceiveAck { + let msg = SudoMsg::IBCLifecycleComplete(IBCLifecycleComplete::IBCAck { channel: format!("channel-0"), sequence: 1, ack: String::new(), success: true, - }; + }); let _res = sudo(deps.as_mut(), env.clone(), msg).unwrap(); // should increase counter by 1 @@ -379,12 +379,12 @@ mod tests { let value: GetCountResponse = from_binary(&res).unwrap(); assert_eq!(1, value.count); - let msg = SudoMsg::ReceiveAck { + let msg = SudoMsg::IBCLifecycleComplete(IBCLifecycleComplete::IBCAck { channel: format!("channel-0"), sequence: 1, ack: String::new(), success: true, - }; + }); let _res = sudo(deps.as_mut(), env.clone(), msg).unwrap(); // should increase counter by 1 diff --git a/modules/ibc-hooks/tests/unit/testdata/echo/Cargo.lock b/modules/ibc-hooks/tests/unit/testdata/echo/Cargo.lock index 8cd39f5c..85c6c5ce 100644 --- a/modules/ibc-hooks/tests/unit/testdata/echo/Cargo.lock +++ b/modules/ibc-hooks/tests/unit/testdata/echo/Cargo.lock @@ -25,11 +25,17 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + [[package]] name = "base64" -version = "0.13.1" +version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" [[package]] name = "base64ct" @@ -37,6 +43,12 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" +[[package]] +name = "bech32" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" + [[package]] name = "block-buffer" version = "0.9.0" @@ -55,6 +67,12 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bnum" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56953345e39537a3e18bdaeba4cb0c58a78c1f61f361dc0fa7c5c7340ae87c5f" + [[package]] name = "byteorder" version = "1.4.3" @@ -81,31 +99,31 @@ checksum = "520fbf3c07483f94e3e3ca9d0cfd913d7718ef2483d2cfd91c0d9e91474ab913" [[package]] name = "cosmwasm-crypto" -version = "1.2.6" +version = "1.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41c0e41be7e6c7d7ab3c61cdc32fcfaa14f948491a401cbc1c74bb33b6f4b851" +checksum = "a9c82e56962f0f18c9a292aa59940e03a82ce15ef79b93679d5838bb8143f0df" dependencies = [ "digest 0.10.7", "ed25519-zebra", - "k256", + "k256 0.13.4", "rand_core 0.6.4", "thiserror", ] [[package]] name = "cosmwasm-derive" -version = "1.2.6" +version = "1.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a7ee2798c92c00dd17bebb4210f81d5f647e5e92d847959b7977e0fd29a3500" +checksum = "d9b804ff15a0e059c88f85ae0e868cf8c7aba9d61221e46f1ad7250f270628c7" dependencies = [ "syn 1.0.109", ] [[package]] name = "cosmwasm-schema" -version = "1.2.6" +version = "1.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "407aca6f1671a08b60db8167f03bb7cb6b2378f0ddd9a030367b66ba33c2fd41" +checksum = "5526ea839acb47bbf8fff031ed9aad86e74d43f77b089255417328c3664367d5" dependencies = [ "cosmwasm-schema-derive", "schemars", @@ -116,9 +134,9 @@ dependencies = [ [[package]] name = "cosmwasm-schema-derive" -version = "1.2.6" +version = "1.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d1e00b8fd27ff923c10303023626358e23a6f9079f8ebec23a8b4b0bfcd4b3" +checksum = "10f41b99f41f840765d02ae858956bb52af910755976312082e90493c67db512" dependencies = [ "proc-macro2", "quote", @@ -127,11 +145,13 @@ dependencies = [ [[package]] name = "cosmwasm-std" -version = "1.2.6" +version = "1.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92d5fdfd112b070055f068fad079d490117c8e905a588b92a5a7c9276d029930" +checksum = "763340055b84e5482ed90fec8194ff7d59112267a09bbf5819c9e3edca8c052e" dependencies = [ "base64", + "bech32", + "bnum", "cosmwasm-crypto", "cosmwasm-derive", "derivative", @@ -141,15 +161,15 @@ dependencies = [ "serde", "serde-json-wasm", "sha2 0.10.6", + "static_assertions", "thiserror", - "uint", ] [[package]] name = "cosmwasm-storage" -version = "1.2.6" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af9e21c4f58986fd20184d7685e1c43c5732c9309337b09307d5952fd34dba6e" +checksum = "66de2ab9db04757bcedef2b5984fbe536903ada4a8a9766717a4a71197ef34f6" dependencies = [ "cosmwasm-std", "serde", @@ -165,16 +185,22 @@ dependencies = [ ] [[package]] -name = "crunchy" -version = "0.2.2" +name = "crypto-bigint" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" +checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] [[package]] name = "crypto-bigint" -version = "0.4.9" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" dependencies = [ "generic-array", "rand_core 0.6.4", @@ -213,11 +239,11 @@ checksum = "2a18afd2e201221c6d72a57f0886ef2a22151bbc9e6db7af276fde8a91081042" dependencies = [ "anyhow", "cosmwasm-std", - "cw-storage-plus 1.0.1", + "cw-storage-plus", "cw-utils", "derivative", "itertools", - "k256", + "k256 0.11.6", "prost", "schemars", "serde", @@ -226,20 +252,9 @@ dependencies = [ [[package]] name = "cw-storage-plus" -version = "0.16.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b6f91c0b94481a3e9ef1ceb183c37d00764f8751e39b45fc09f4d9b970d469" -dependencies = [ - "cosmwasm-std", - "schemars", - "serde", -] - -[[package]] -name = "cw-storage-plus" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053a5083c258acd68386734f428a5a171b29f7d733151ae83090c6fcc9417ffa" +checksum = "d5ff29294ee99373e2cd5fd21786a3c0ced99a52fec2ca347d565489c61b723c" dependencies = [ "cosmwasm-std", "schemars", @@ -269,7 +284,7 @@ checksum = "8fb70cee2cf0b4a8ff7253e6bc6647107905e8eb37208f87d54f67810faa62f8" dependencies = [ "cosmwasm-schema", "cosmwasm-std", - "cw-storage-plus 1.0.1", + "cw-storage-plus", "schemars", "serde", ] @@ -284,6 +299,16 @@ dependencies = [ "zeroize", ] +[[package]] +name = "der" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +dependencies = [ + "const-oid", + "zeroize", +] + [[package]] name = "derivative" version = "2.2.0" @@ -311,6 +336,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer 0.10.4", + "const-oid", "crypto-common", "subtle", ] @@ -327,10 +353,24 @@ version = "0.14.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c" dependencies = [ - "der", - "elliptic-curve", - "rfc6979", - "signature", + "der 0.6.1", + "elliptic-curve 0.12.3", + "rfc6979 0.3.1", + "signature 1.6.4", +] + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der 0.7.10", + "digest 0.10.7", + "elliptic-curve 0.13.8", + "rfc6979 0.4.0", + "signature 2.2.0", + "spki 0.7.3", ] [[package]] @@ -341,7 +381,7 @@ dependencies = [ "cosmwasm-std", "cosmwasm-storage", "cw-multi-test", - "cw-storage-plus 0.16.0", + "cw-storage-plus", "schemars", "serde", "thiserror", @@ -374,16 +414,35 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3" dependencies = [ - "base16ct", - "crypto-bigint", - "der", + "base16ct 0.1.1", + "crypto-bigint 0.4.9", + "der 0.6.1", + "digest 0.10.7", + "ff 0.12.1", + "generic-array", + "group 0.12.1", + "pkcs8 0.9.0", + "rand_core 0.6.4", + "sec1 0.3.0", + "subtle", + "zeroize", +] + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct 0.2.0", + "crypto-bigint 0.5.5", "digest 0.10.7", - "ff", + "ff 0.13.1", "generic-array", - "group", - "pkcs8", + "group 0.13.0", + "pkcs8 0.10.2", "rand_core 0.6.4", - "sec1", + "sec1 0.7.3", "subtle", "zeroize", ] @@ -398,6 +457,16 @@ dependencies = [ "subtle", ] +[[package]] +name = "ff" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" +dependencies = [ + "rand_core 0.6.4", + "subtle", +] + [[package]] name = "forward_ref" version = "1.0.0" @@ -412,6 +481,7 @@ checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", + "zeroize", ] [[package]] @@ -431,7 +501,18 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" dependencies = [ - "ff", + "ff 0.12.1", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff 0.13.1", "rand_core 0.6.4", "subtle", ] @@ -482,9 +563,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72c1e0b51e7ec0a97369623508396067a486bd0cbed95a2659a4b863d28cfc8b" dependencies = [ "cfg-if", - "ecdsa", - "elliptic-curve", + "ecdsa 0.14.8", + "elliptic-curve 0.12.3", + "sha2 0.10.6", +] + +[[package]] +name = "k256" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" +dependencies = [ + "cfg-if", + "ecdsa 0.16.9", + "elliptic-curve 0.13.8", + "once_cell", "sha2 0.10.6", + "signature 2.2.0", ] [[package]] @@ -495,9 +590,9 @@ checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b" [[package]] name = "once_cell" -version = "1.18.0" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "opaque-debug" @@ -511,8 +606,18 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" dependencies = [ - "der", - "spki", + "der 0.6.1", + "spki 0.6.0", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der 0.7.10", + "spki 0.7.3", ] [[package]] @@ -577,11 +682,21 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" dependencies = [ - "crypto-bigint", + "crypto-bigint 0.4.9", "hmac", "zeroize", ] +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + [[package]] name = "ryu" version = "1.0.13" @@ -618,10 +733,24 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" dependencies = [ - "base16ct", - "der", + "base16ct 0.1.1", + "der 0.6.1", + "generic-array", + "pkcs8 0.9.0", + "subtle", + "zeroize", +] + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct 0.2.0", + "der 0.7.10", "generic-array", - "pkcs8", + "pkcs8 0.10.2", "subtle", "zeroize", ] @@ -643,9 +772,9 @@ dependencies = [ [[package]] name = "serde-json-wasm" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16a62a1fad1e1828b24acac8f2b468971dade7b8c3c2e672bcadefefb1f8c137" +checksum = "9e9213a07d53faa0b8dd81e767a54a8188a242fdb9be99ab75ec576a774bfdd7" dependencies = [ "serde", ] @@ -717,6 +846,16 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + [[package]] name = "spki" version = "0.6.0" @@ -724,7 +863,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" dependencies = [ "base64ct", - "der", + "der 0.6.1", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der 0.7.10", ] [[package]] @@ -787,18 +936,6 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" -[[package]] -name = "uint" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" -dependencies = [ - "byteorder", - "crunchy", - "hex", - "static_assertions", -] - [[package]] name = "unicode-ident" version = "1.0.9" @@ -819,6 +956,6 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "zeroize" -version = "1.6.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" diff --git a/modules/ibc-hooks/tests/unit/testdata/echo/Cargo.toml b/modules/ibc-hooks/tests/unit/testdata/echo/Cargo.toml index c8140315..f0ac8943 100644 --- a/modules/ibc-hooks/tests/unit/testdata/echo/Cargo.toml +++ b/modules/ibc-hooks/tests/unit/testdata/echo/Cargo.toml @@ -17,8 +17,7 @@ exclude = [ crate-type = ["cdylib", "rlib"] [features] -# for more explicit tests, cargo test --features=backtraces -backtraces = ["cosmwasm-std/backtraces"] + # use library feature to disable all instantiate/execute/query exports library = [] @@ -30,10 +29,10 @@ optimize = """docker run --rm -v "$(pwd)":/code \ """ [dependencies] -cosmwasm-schema = "1.1.3" -cosmwasm-std = "1.1.3" -cosmwasm-storage = "1.1.3" -cw-storage-plus = "0.16.0" +cosmwasm-schema = "1.5.4" +cosmwasm-std = { version = "1.5.4", features = ["cosmwasm_1_1", "stargate"] } +cosmwasm-storage = "1.5.2" +cw-storage-plus = "1.2.0" schemars = "0.8.10" serde = { version = "1.0.145", default-features = false, features = ["derive"] } thiserror = { version = "1.0.31" } diff --git a/modules/ibc-hooks/tests/unit/testdata/echo/artifacts/checksums.txt b/modules/ibc-hooks/tests/unit/testdata/echo/artifacts/checksums.txt index 823ba2cc..bfe4a377 100644 --- a/modules/ibc-hooks/tests/unit/testdata/echo/artifacts/checksums.txt +++ b/modules/ibc-hooks/tests/unit/testdata/echo/artifacts/checksums.txt @@ -1 +1 @@ -20d0515b3b3fac21c70758e8184136fadb821b93da1b491b481fe0ef52a6b8ed echo.wasm +10fd0f72c9659414a1a782887e55b75ce1f3cf41fff08bb3382a52aedc995b08 echo.wasm diff --git a/modules/ibc-hooks/tests/unit/testdata/echo/artifacts/echo.wasm b/modules/ibc-hooks/tests/unit/testdata/echo/artifacts/echo.wasm index e8a1bdecede1d623fc5ec5df21b71e6d58c4503d..9c2f6f974c5d734719bb57fba6179a80627e9855 100644 GIT binary patch literal 145224 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 literal 138325 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%0AF3+%Cg-b0qHaF{4Ew5+ci(BV> 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

>N{q@2NEYqjFJZ^$hc+va3O1hO%$5Vkht+$z7Dl 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 T-Cp~nb?!H{PiimKw4VG2-=`A) From 4db66ba3f6f87aaa43f4bb1f306898769ce6ae1e Mon Sep 17 00:00:00 2001 From: milad Date: Fri, 1 Aug 2025 10:10:28 +0330 Subject: [PATCH 3/3] fix denom extraction (#1) * fixed denom extraction * fixed the native denom * fixed acknowledgement interface * fixed interface compatiblity --- modules/ibc-hooks/hooks.go | 4 ++-- modules/ibc-hooks/ibc_module.go | 4 ++-- modules/ibc-hooks/wasm_hook.go | 40 ++++++++++++++++++++++----------- 3 files changed, 31 insertions(+), 17 deletions(-) diff --git a/modules/ibc-hooks/hooks.go b/modules/ibc-hooks/hooks.go index 0b7e293e..f84e1de1 100644 --- a/modules/ibc-hooks/hooks.go +++ b/modules/ibc-hooks/hooks.go @@ -91,7 +91,7 @@ type OnRecvPacketAfterHooks interface { // OnAcknowledgementPacket Hooks type OnAcknowledgementPacketOverrideHooks interface { - OnAcknowledgementPacketOverride(im IBCMiddleware, ctx sdk.Context, packet channeltypes.Packet, acknowledgement []byte, relayer sdk.AccAddress) error + OnAcknowledgementPacketOverride(im IBCMiddleware, ctx sdk.Context, channelVersion string, packet channeltypes.Packet, acknowledgement []byte, relayer sdk.AccAddress) error } type OnAcknowledgementPacketBeforeHooks interface { OnAcknowledgementPacketBeforeHook(ctx sdk.Context, packet channeltypes.Packet, acknowledgement []byte, relayer sdk.AccAddress) @@ -102,7 +102,7 @@ type OnAcknowledgementPacketAfterHooks interface { // OnTimeoutPacket Hooks type OnTimeoutPacketOverrideHooks interface { - OnTimeoutPacketOverride(im IBCMiddleware, ctx sdk.Context, packet channeltypes.Packet, relayer sdk.AccAddress) error + OnTimeoutPacketOverride(im IBCMiddleware, ctx sdk.Context, channelVersion string, packet channeltypes.Packet, relayer sdk.AccAddress) error } type OnTimeoutPacketBeforeHooks interface { OnTimeoutPacketBeforeHook(ctx sdk.Context, packet channeltypes.Packet, relayer sdk.AccAddress) diff --git a/modules/ibc-hooks/ibc_module.go b/modules/ibc-hooks/ibc_module.go index d9be3667..83468b45 100644 --- a/modules/ibc-hooks/ibc_module.go +++ b/modules/ibc-hooks/ibc_module.go @@ -198,7 +198,7 @@ func (im IBCMiddleware) OnAcknowledgementPacket( relayer sdk.AccAddress, ) error { if hook, ok := im.ICS4Middleware.Hooks.(OnAcknowledgementPacketOverrideHooks); ok { - return hook.OnAcknowledgementPacketOverride(im, ctx, packet, acknowledgement, relayer) + return hook.OnAcknowledgementPacketOverride(im, ctx, channelVersion, packet, acknowledgement, relayer) } if hook, ok := im.ICS4Middleware.Hooks.(OnAcknowledgementPacketBeforeHooks); ok { hook.OnAcknowledgementPacketBeforeHook(ctx, packet, acknowledgement, relayer) @@ -221,7 +221,7 @@ func (im IBCMiddleware) OnTimeoutPacket( relayer sdk.AccAddress, ) error { if hook, ok := im.ICS4Middleware.Hooks.(OnTimeoutPacketOverrideHooks); ok { - return hook.OnTimeoutPacketOverride(im, ctx, packet, relayer) + return hook.OnTimeoutPacketOverride(im, ctx, channelVersion, packet, relayer) } if hook, ok := im.ICS4Middleware.Hooks.(OnTimeoutPacketBeforeHooks); ok { diff --git a/modules/ibc-hooks/wasm_hook.go b/modules/ibc-hooks/wasm_hook.go index 84cc7e39..375fb263 100644 --- a/modules/ibc-hooks/wasm_hook.go +++ b/modules/ibc-hooks/wasm_hook.go @@ -3,6 +3,7 @@ package ibc_hooks import ( "encoding/json" "fmt" + "strings" wasmkeeper "github.com/CosmWasm/wasmd/x/wasm/keeper" wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" @@ -20,6 +21,11 @@ import ( ibcexported "github.com/cosmos/ibc-go/v10/modules/core/exported" ) +var _ OnRecvPacketOverrideHooks = WasmHooks{} +var _ SendPacketOverrideHooks = WasmHooks{} +var _ OnTimeoutPacketOverrideHooks = WasmHooks{} +var _ OnAcknowledgementPacketOverrideHooks = WasmHooks{} + type ContractAck struct { ContractResult []byte `json:"contract_result"` IbcAck []byte `json:"ibc_ack"` @@ -402,20 +408,28 @@ func MustExtractDenomFromPacketOnRecv(packet ibcexported.PacketI) string { panic("unable to unmarshal ICS20 packet data") } - denom := transfertypes.ExtractDenomFromPath(data.Denom) - if denom.HasPrefix(packet.GetSourcePort(), packet.GetSourceChannel()) { - // unwind denom - denom.Trace = denom.Trace[1:] - if len(denom.Trace) == 0 { - // denom is now unwound back to native denom - return denom.Path() + var denom string + voucherPrefix := GetDenomPrefix(packet.GetSourcePort(), packet.GetSourceChannel()) + if strings.HasPrefix(data.Denom, voucherPrefix) { + unprefixedDenom := data.Denom[len(voucherPrefix):] + + // coin denomination used in sending from the escrow address + denom = unprefixedDenom + + // The denomination used to send the coins is either the native denom or the hash of the path + // if the denomination is not native. + denomTrace := transfertypes.ExtractDenomFromPath(unprefixedDenom) + if !denomTrace.IsNative() { + denom = denomTrace.IBCDenom() } - // denom is still IBC denom - return denom.IBCDenom() + } else { + prefixedDenom := GetDenomPrefix(packet.GetDestPort(), packet.GetDestChannel()) + data.Denom + denom = transfertypes.ExtractDenomFromPath(prefixedDenom).IBCDenom() } - // append port and channel from this chain to denom - trace := []transfertypes.Hop{transfertypes.NewHop(packet.GetSourcePort(), packet.GetSourceChannel())} - denom.Trace = append(trace, denom.Trace...) + return denom +} - return denom.IBCDenom() +// GetDenomPrefix returns the receiving denomination prefix +func GetDenomPrefix(portID, channelID string) string { + return transfertypes.NewHop(portID, channelID).String() + "/" }