diff --git a/base/gfspapp/task_options.go b/base/gfspapp/task_options.go index 7d4881163..3a1a1d8c1 100644 --- a/base/gfspapp/task_options.go +++ b/base/gfspapp/task_options.go @@ -2,6 +2,7 @@ package gfspapp import ( coretask "github.com/bnb-chain/greenfield-storage-provider/core/task" + "github.com/bnb-chain/greenfield-storage-provider/util" ) const ( @@ -103,32 +104,32 @@ func (g *GfSpBaseApp) TaskTimeout(task coretask.Task, size uint64) int64 { case coretask.TypeTaskReplicatePieceApproval: return NotUseTimeout case coretask.TypeTaskUpload: - timeout := int64(size) / (g.uploadSpeed + 1) / (MinSpeed) - if timeout < MinUploadTime { + timeout := size / uint64(g.uploadSpeed+1) / (MinSpeed) + if timeout < uint64(MinUploadTime) { return MinUploadTime } - if timeout > MaxUploadTime { + if timeout > uint64(MaxUploadTime) { return MaxUploadTime } - return timeout + return util.Uint64ToInt64(timeout) case coretask.TypeTaskReplicatePiece: - timeout := int64(size) / (g.replicateSpeed + 1) / (MinSpeed) - if timeout < MinReplicateTime { + timeout := size / (uint64(g.replicateSpeed) + 1) / (MinSpeed) + if timeout < uint64(MinReplicateTime) { return MinReplicateTime } - if timeout > MaxReplicateTime { + if timeout > uint64(MaxReplicateTime) { return MaxReplicateTime } - return timeout + return util.Uint64ToInt64(timeout) case coretask.TypeTaskReceivePiece: - timeout := int64(size) / (g.replicateSpeed + 1) / (MinSpeed) - if timeout < MinReceiveTime { + timeout := size / (uint64(g.replicateSpeed) + 1) / (MinSpeed) + if timeout < uint64(MinReceiveTime) { return MinReceiveTime } - if timeout > MaxReceiveTime { + if timeout > uint64(MaxReceiveTime) { return MaxReceiveTime } - return timeout + return util.Uint64ToInt64(timeout) case coretask.TypeTaskSealObject: if g.sealObjectTimeout < MinSealObjectTime { return MinSealObjectTime @@ -138,23 +139,23 @@ func (g *GfSpBaseApp) TaskTimeout(task coretask.Task, size uint64) int64 { } return g.sealObjectTimeout case coretask.TypeTaskDownloadObject: - timeout := int64(size) / (g.downloadSpeed + 1) / (MinSpeed) - if timeout < MinDownloadTime { + timeout := size / (uint64(g.downloadSpeed) + 1) / (MinSpeed) + if timeout < uint64(MinDownloadTime) { return MinDownloadTime } - if timeout > MaxDownloadTime { + if timeout > uint64(MaxDownloadTime) { return MaxDownloadTime } - return timeout + return util.Uint64ToInt64(timeout) case coretask.TypeTaskChallengePiece: - timeout := int64(size) / (g.downloadSpeed + 1) / (MinSpeed) - if timeout < MinDownloadTime { + timeout := size / (uint64(g.downloadSpeed) + 1) / (MinSpeed) + if timeout < uint64(MinDownloadTime) { return MinDownloadTime } - if timeout > MaxDownloadTime { + if timeout > uint64(MaxDownloadTime) { return MaxDownloadTime } - return timeout + return util.Uint64ToInt64(timeout) case coretask.TypeTaskGCObject: if g.gcObjectTimeout < MinGCObjectTime { return MinGCObjectTime @@ -180,14 +181,14 @@ func (g *GfSpBaseApp) TaskTimeout(task coretask.Task, size uint64) int64 { } return g.gcMetaTimeout case coretask.TypeTaskRecoverPiece: - timeout := int64(size)/(g.replicateSpeed+1)/(MinSpeed) + 1 - if timeout < MinRecoveryTime { + timeout := size/(uint64(g.replicateSpeed)+1)/(MinSpeed) + 1 + if timeout < uint64(MinRecoveryTime) { return MinRecoveryTime } - if timeout > MaxRecoveryTime { + if timeout > uint64(MaxRecoveryTime) { return MaxRecoveryTime } - return timeout + return util.Uint64ToInt64(timeout) case coretask.TypeTaskMigrateGVG: if g.migrateGVGTimeout < MinMigrateGVGTime { return MinMigrateGVGTime diff --git a/base/gfspclient/metadata.go b/base/gfspclient/metadata.go index 0995605cd..0d5dd5cf1 100644 --- a/base/gfspclient/metadata.go +++ b/base/gfspclient/metadata.go @@ -42,8 +42,8 @@ func (s *GfSpClient) ListDeletedObjectsByBlockNumberRange(ctx context.Context, s } defer conn.Close() req := &types.GfSpListDeletedObjectsByBlockNumberRangeRequest{ - StartBlockNumber: int64(startBlockNumber), - EndBlockNumber: int64(endBlockNumber), + StartBlockNumber: startBlockNumber, + EndBlockNumber: endBlockNumber, IncludePrivate: includePrivate, } resp, err := types.NewGfSpMetadataServiceClient(conn).GfSpListDeletedObjectsByBlockNumberRange(ctx, req) @@ -51,7 +51,7 @@ func (s *GfSpClient) ListDeletedObjectsByBlockNumberRange(ctx context.Context, s log.CtxErrorw(ctx, "failed to list deleted objects by block number range", "error", err) return nil, uint64(0), ErrRPCUnknownWithDetail("failed to list deleted objects by block number range, error: ", err) } - return resp.GetObjects(), uint64(resp.GetEndBlockNumber()), nil + return resp.GetObjects(), resp.GetEndBlockNumber(), nil } func (s *GfSpClient) GetUserBuckets(ctx context.Context, account string, includeRemoved bool, opts ...grpc.DialOption) ([]*types.VGFInfoBucket, error) { diff --git a/base/gfsppieceop/piece_op.go b/base/gfsppieceop/piece_op.go index ebb2f5ea8..09e079341 100644 --- a/base/gfsppieceop/piece_op.go +++ b/base/gfsppieceop/piece_op.go @@ -105,7 +105,7 @@ func (p *GfSpPieceOp) ParseECPieceKeyIdx(ecPieceKey string) (uint32, int32, erro if err != nil { return 0, 0, err } - redundancyIndex, err := strconv.ParseUint(keyParts[2][len(redundancyPrefix):], 10, 32) + redundancyIndex, err := strconv.ParseInt(keyParts[2][len(redundancyPrefix):], 10, 32) if err != nil { return 0, 0, err } diff --git a/go.mod b/go.mod index 8e3fa0498..daafea0fb 100644 --- a/go.mod +++ b/go.mod @@ -13,10 +13,10 @@ require ( github.com/bnb-chain/greenfield v1.6.0 github.com/bnb-chain/greenfield-common/go v0.0.0-20240228080631-2683b0ee669a github.com/bytedance/gopkg v0.0.0-20221122125632-68358b8ecec6 - github.com/cometbft/cometbft v0.37.2 + github.com/cometbft/cometbft v0.38.0 github.com/consensys/gnark-crypto v0.7.0 github.com/cosmos/cosmos-proto v1.0.0-beta.3 - github.com/cosmos/cosmos-sdk v0.47.3 + github.com/cosmos/cosmos-sdk v0.47.10 github.com/cosmos/gogoproto v1.4.10 github.com/ethereum/go-ethereum v1.10.26 github.com/felixge/fgprof v0.9.3 @@ -33,25 +33,27 @@ require ( github.com/multiformats/go-multiaddr v0.9.0 github.com/pelletier/go-toml/v2 v2.0.8 github.com/pkg/sftp v1.13.5 - github.com/prometheus/client_golang v1.15.0 + github.com/prometheus/client_golang v1.17.0 github.com/shopspring/decimal v1.3.1 github.com/spaolacci/murmur3 v1.1.0 github.com/stretchr/testify v1.8.4 github.com/ulule/limiter/v3 v3.11.1 - github.com/urfave/cli/v2 v2.25.0 + github.com/urfave/cli/v2 v2.25.7 github.com/viki-org/dnscache v0.0.0-20130720023526-c70c1f23c5d8 - go.opentelemetry.io/otel/trace v1.11.0 + go.opentelemetry.io/otel/trace v1.21.0 go.uber.org/mock v0.2.0 go.uber.org/multierr v1.11.0 go.uber.org/zap v1.24.0 - golang.org/x/crypto v0.17.0 + golang.org/x/crypto v0.19.0 golang.org/x/exp v0.0.0-20230515195305-f3d0a9c9a5cc golang.org/x/time v0.3.0 - google.golang.org/grpc v1.58.3 + google.golang.org/grpc v1.59.0 gorm.io/driver/mysql v1.4.7 gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11 ) +require github.com/jackc/puddle/v2 v2.2.1 // indirect + require ( cosmossdk.io/api v0.4.0 // indirect cosmossdk.io/core v0.6.1 // indirect @@ -68,7 +70,7 @@ require ( github.com/benbjohnson/clock v1.3.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 // indirect - github.com/bits-and-blooms/bitset v1.2.0 // indirect + github.com/bits-and-blooms/bitset v1.7.0 // indirect github.com/btcsuite/btcd v0.23.4 // indirect github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect github.com/btcsuite/btcd/btcutil v1.1.3 // indirect @@ -100,10 +102,10 @@ require ( github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/dustin/go-humanize v1.0.1 // indirect - github.com/dvsekhvalnov/jose2go v1.5.0 // indirect + github.com/dvsekhvalnov/jose2go v1.6.0 // indirect github.com/edsrzf/mmap-go v1.0.0 // indirect github.com/elastic/gosigar v0.14.2 // indirect - github.com/felixge/httpsnoop v1.0.3 // indirect + github.com/felixge/httpsnoop v1.0.4 // indirect github.com/ferranbt/fastssz v0.0.0-20210905181407-59cf6761a7d5 // indirect github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5 // indirect github.com/flynn/noise v1.0.0 // indirect @@ -123,16 +125,16 @@ require ( github.com/gogo/googleapis v1.4.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang-jwt/jwt/v4 v4.3.0 // indirect - github.com/golang/glog v1.1.0 // indirect + github.com/golang/glog v1.1.2 // indirect github.com/golang/mock v1.6.0 - github.com/golang/protobuf v1.5.3 // indirect - github.com/golang/snappy v0.0.4 // indirect + github.com/golang/protobuf v1.5.4 // indirect + github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect github.com/google/btree v1.1.2 // indirect github.com/google/go-cmp v0.6.0 // indirect github.com/google/gopacket v1.1.19 // indirect github.com/google/orderedcode v0.0.1 // indirect github.com/google/pprof v0.0.0-20230405160723-4a4c7d95572b // indirect - github.com/google/uuid v1.3.0 // indirect + github.com/google/uuid v1.5.0 // indirect github.com/gorilla/handlers v1.5.1 // indirect github.com/gorilla/websocket v1.5.0 github.com/graph-gophers/graphql-go v1.3.0 // indirect @@ -160,7 +162,7 @@ require ( github.com/ipfs/go-log/v2 v2.5.1 // indirect github.com/jackc/pgpassfile v1.0.0 // indirect github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect - github.com/jackc/pgx/v5 v5.3.0 // indirect + github.com/jackc/pgx/v5 v5.5.4 // indirect github.com/jackpal/go-nat-pmp v1.0.2 // indirect github.com/jbenet/go-temp-err-catcher v0.1.0 // indirect github.com/jbenet/goprocess v0.1.4 // indirect @@ -168,7 +170,7 @@ require ( github.com/jinzhu/now v1.1.5 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/jmhodges/levigo v1.0.0 // indirect - github.com/klauspost/compress v1.16.4 // indirect + github.com/klauspost/compress v1.17.4 // indirect github.com/klauspost/cpuid/v2 v2.2.4 // indirect github.com/klauspost/reedsolomon v1.11.8 // indirect github.com/koron/go-ssdp v0.0.4 // indirect @@ -223,9 +225,9 @@ require ( github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/client_model v0.3.0 // indirect - github.com/prometheus/common v0.42.0 // indirect - github.com/prometheus/procfs v0.9.0 // indirect + github.com/prometheus/client_model v0.5.0 // indirect + github.com/prometheus/common v0.44.0 // indirect + github.com/prometheus/procfs v0.12.0 // indirect github.com/prometheus/tsdb v0.10.0 // indirect github.com/prysmaticlabs/eth2-types v0.0.0-20210303084904-c9735a06829d // indirect github.com/prysmaticlabs/prysm v0.0.0-20220124113610-e26cde5e091b @@ -268,23 +270,23 @@ require ( github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect github.com/zondax/hid v0.9.1 // indirect github.com/zondax/ledger-go v0.14.1 // indirect - go.etcd.io/bbolt v1.3.7 // indirect - go.opentelemetry.io/otel v1.11.0 // indirect + go.etcd.io/bbolt v1.3.9 // indirect + go.opentelemetry.io/otel v1.21.0 // indirect go.uber.org/atomic v1.10.0 // indirect go.uber.org/dig v1.16.1 // indirect go.uber.org/fx v1.19.2 // indirect golang.org/x/arch v0.5.0 // indirect - golang.org/x/mod v0.12.0 // indirect - golang.org/x/net v0.19.0 // indirect - golang.org/x/sync v0.3.0 // indirect - golang.org/x/sys v0.15.0 // indirect - golang.org/x/term v0.15.0 // indirect + golang.org/x/mod v0.14.0 // indirect + golang.org/x/net v0.21.0 // indirect + golang.org/x/sync v0.5.0 // indirect + golang.org/x/sys v0.18.0 // indirect + golang.org/x/term v0.18.0 // indirect golang.org/x/text v0.14.0 // indirect - golang.org/x/tools v0.13.0 // indirect - google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect - google.golang.org/protobuf v1.31.0 // indirect + golang.org/x/tools v0.14.0 // indirect + google.golang.org/genproto v0.0.0-20231016165738-49dd2c1f3d0b // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20231012201019-e917dd12ba7a // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b // indirect + google.golang.org/protobuf v1.33.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect gopkg.in/yaml.v2 v2.4.0 // indirect @@ -301,7 +303,7 @@ replace ( cosmossdk.io/api => github.com/bnb-chain/greenfield-cosmos-sdk/api v0.0.0-20231206043955-0855e0965bc8 cosmossdk.io/math => github.com/bnb-chain/greenfield-cosmos-sdk/math v0.0.0-20231206043955-0855e0965bc8 github.com/btcsuite/btcd => github.com/btcsuite/btcd v0.23.0 - github.com/cometbft/cometbft => github.com/bnb-chain/greenfield-cometbft v1.2.0 + github.com/cometbft/cometbft => github.com/bnb-chain/greenfield-cometbft v0.0.0-20240402065323-40677309d454 github.com/cometbft/cometbft-db => github.com/bnb-chain/greenfield-cometbft-db v0.8.1-alpha.1 github.com/confio/ics23/go => github.com/cosmos/cosmos-sdk/ics23/go v0.8.0 github.com/cosmos/cosmos-sdk => github.com/bnb-chain/greenfield-cosmos-sdk v1.6.0 diff --git a/go.sum b/go.sum index 54d080180..5b5ceb1c4 100644 --- a/go.sum +++ b/go.sum @@ -173,13 +173,13 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r 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.2.0 h1:Kn4yilvwNtMACtf1eYDlG8H77R07mZSPbMjLyS07ChA= -github.com/bits-and-blooms/bitset v1.2.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA= +github.com/bits-and-blooms/bitset v1.7.0 h1:YjAGVd3XmtK9ktAbX8Zg2g2PwLIMjGREZJHlV4j7NEo= +github.com/bits-and-blooms/bitset v1.7.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA= github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40/go.mod h1:8rLXio+WjiTceGBHIoTvn60HIbs7Hm7bcHjyrSqYB9c= github.com/bnb-chain/greenfield v1.6.0 h1:AAEJjtwED6XVckPRqMSa6nUciEeBNszeJhNiO/2KNiE= github.com/bnb-chain/greenfield v1.6.0/go.mod h1:KCjy1bsc5q2G4IjyhKX0r3BQM+4rooZ1/fNnGlq8o3I= -github.com/bnb-chain/greenfield-cometbft v1.2.0 h1:LTStppZS9WkVj0TfEYKkk5OAQDGfYlUefWByr7Zr018= -github.com/bnb-chain/greenfield-cometbft v1.2.0/go.mod h1:WVOEZ59UYM2XePQH47/IQfcInspDn8wbRXhFSJrbU1c= +github.com/bnb-chain/greenfield-cometbft v0.0.0-20240402065323-40677309d454 h1:mLXDQRfTUbOKOrbaaxbTsVy6V2kZhPZmsIPwsyIGBTs= +github.com/bnb-chain/greenfield-cometbft v0.0.0-20240402065323-40677309d454/go.mod h1:q9/nqW19iXvxyma5XgcZfxL/OkWI9s5e7yX9ecePz8A= github.com/bnb-chain/greenfield-cometbft-db v0.8.1-alpha.1 h1:XcWulGacHVRiSCx90Q8Y//ajOrLNBQWR/KDB89dy3cU= github.com/bnb-chain/greenfield-cometbft-db v0.8.1-alpha.1/go.mod h1:ey1CiK4bYo1RBNJLRiVbYr5CMdSxci9S/AZRINLtppI= github.com/bnb-chain/greenfield-common/go v0.0.0-20240228080631-2683b0ee669a h1:VjUknQkIcqkjYCt1hmfpinM7kToOBuUU+KykrrqFsEM= @@ -276,7 +276,7 @@ github.com/consensys/gnark-crypto v0.7.0/go.mod h1:KPSuJzyxkJA8xZ/+CV47tyqkr9Mmp github.com/containerd/cgroups v0.0.0-20201119153540-4cbc285b3327/go.mod h1:ZJeTFisyysqgcCdecO57Dj79RfL0LNeGiFUqLYQRYLE= github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM= github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw= -github.com/containerd/continuity v0.3.0 h1:nisirsYROK15TAMVukJOUyGJjz4BNQJBVsNvAXZJ/eg= +github.com/containerd/continuity v0.4.3 h1:6HVkalIp+2u1ZLH1J/pYX2oBVXlJZvh1X1A7bEZ9Su8= 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= @@ -359,8 +359,8 @@ github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUn github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/dlclark/regexp2 v1.4.1-0.20201116162257-a2a8dda75c91/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= github.com/docker/docker v1.4.2-0.20180625184442-8e610b2b55bf/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v23.0.0-rc.1+incompatible h1:Dmn88McWuHc7BSNN1s6RtfhMmt6ZPQAYUEf7FhqpiQI= -github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= @@ -371,8 +371,8 @@ github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:Htrtb 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.5.0 h1:3j8ya4Z4kMCwT5nXIKFSV84YS+HdqSSO0VsTQxaLAeM= -github.com/dvsekhvalnov/jose2go v1.5.0/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB/mPZadG+mhXU= +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/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= github.com/eapache/go-resiliency v1.2.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= @@ -406,8 +406,8 @@ github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL github.com/felixge/fgprof v0.9.3 h1:VvyZxILNuCiUCSXtPtYmmtGvb65nqXh2QFWc0Wpf2/g= github.com/felixge/fgprof v0.9.3/go.mod h1:RdbpDgzqYVh/T9fPELJyV7EYJuHB55UTEULNun8eiPw= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= -github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/ferranbt/fastssz v0.0.0-20210120143747-11b9eff30ea9/go.mod h1:DyEu2iuLBnb/T51BlsiO3yLYdJC6UbGMrIkqK1KmQxM= github.com/ferranbt/fastssz v0.0.0-20210905181407-59cf6761a7d5 h1:6dVcS0LktRSyEEgldFY4N9J17WjUoiJStttH+RZj0Wo= github.com/ferranbt/fastssz v0.0.0-20210905181407-59cf6761a7d5/go.mod h1:S8yiDeAXy8f88W4Ul+0dBMPx49S05byYbmZD6Uv94K4= @@ -470,7 +470,7 @@ github.com/go-logfmt/logfmt v0.6.0/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KE github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= github.com/go-logr/logr v0.2.1/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= +github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= github.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8= github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= @@ -529,8 +529,8 @@ github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGw github.com/golang/gddo v0.0.0-20200528160355-8d077c1d8f4c/go.mod h1:sam69Hju0uq+5uvLJUMDlsKlQ21Vrs1Kd/1YFPNYdOU= github.com/golang/geo v0.0.0-20190916061304-5b978397cfec/go.mod h1:QZ0nwyI2jOfgRAoBvP+ab5aRr7c9x7lhGEJrKvBwjWI= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE= -github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= +github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo= +github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= 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= @@ -564,14 +564,15 @@ github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -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-20170215233205-553a64147049/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= +github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golangci/lint-1 v0.0.0-20181222135242-d2cdd8c08219/go.mod h1:/X8TswGSh1pIozq4ZwCfxS0WA5JGXguxk94ar/4c87Y= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= @@ -629,8 +630,9 @@ github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.5/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU= +github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go v2.0.0+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY= github.com/googleapis/gax-go/v2 v2.0.3/go.mod h1:LLvjysVCY1JZeum8Z6l8qUty8fiNwE08qbEPm1M08qg= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= @@ -805,9 +807,12 @@ github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsI github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/Y25WS6cokEszi5g+S0QxI/d45PkRi7Nk= github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= -github.com/jackc/pgx/v5 v5.3.0 h1:/NQi8KHMpKWHInxXesC8yD4DhkXPrVhmnwYkjp9AmBA= github.com/jackc/pgx/v5 v5.3.0/go.mod h1:t3JDKnCBlYIc0ewLF0Q7B8MXmoIaBOZj/ic7iHozM/8= +github.com/jackc/pgx/v5 v5.5.4 h1:Xp2aQS8uXButQdnCMWNmvx6UysWQQC+u1EoizjguY+8= +github.com/jackc/pgx/v5 v5.5.4/go.mod h1:ez9gk+OAat140fv9ErkZDYFWmXLfV+++K0uAOiwgm1A= github.com/jackc/puddle/v2 v2.2.0/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= +github.com/jackc/puddle/v2 v2.2.1 h1:RhxXJtFG022u4ibrCSMSiu5aOq1i77R3OHKNJj77OAk= +github.com/jackc/puddle/v2 v2.2.1/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= github.com/jackpal/go-nat-pmp v1.0.2-0.20160603034137-1fa385a6f458/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= @@ -870,8 +875,8 @@ github.com/klauspost/compress v1.10.1/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYs 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.16.4 h1:91KN02FnsOYhuunwU4ssRe8lc2JosWmizWa91B5v1PU= -github.com/klauspost/compress v1.16.4/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/compress v1.17.4 h1:Ej5ixsIri7BrIjBkRZLTo6ghwrEtHFk7ijlczPW4fZ4= +github.com/klauspost/compress v1.17.4/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM= github.com/klauspost/cpuid v0.0.0-20170728055534-ae7887de9fa5/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/cpuid v1.2.3/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= @@ -1274,8 +1279,8 @@ github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWEr github.com/openconfig/gnmi v0.0.0-20190823184014-89b2bf29312c/go.mod h1:t+O9It+LKzfOAhKTT5O0ehDix+MTqbtT0T9t+7zzOvc= github.com/openconfig/reference v0.0.0-20190727015836-8dfd928c9696/go.mod h1:ym2A+zigScwkSEb/cVQB0/ZMpU3rqiH6X7WRRsxgOGw= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= -github.com/opencontainers/image-spec v1.1.0-rc2 h1:2zx/Stx4Wc5pIPDvIxHXvXtQFW/7XWJGmnM7r3wg034= -github.com/opencontainers/runc v1.1.5 h1:L44KXEpKmfWDcS02aeGm8QNTFXTo2D+8MYGDIJ/GDEs= +github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= +github.com/opencontainers/runc v1.1.12 h1:BOIssBaW1La0/qbNZHXOOa71dZfZEQOzW7dqQf3phss= github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417 h1:3snG66yBm59tKhhSPQrQ/0bCrv1LQbKt40LnUPiUxdc= github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= @@ -1343,16 +1348,16 @@ github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP github.com/prometheus/client_golang v1.9.0/go.mod h1:FqZLKOZnGdFAhOK4nqGHa7D66IdsO+O441Eve7ptJDU= github.com/prometheus/client_golang v1.10.0/go.mod h1:WJM3cc3yu7XKBKa/I8WeZm+V3eltZnBwfENSU7mdogU= github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_golang v1.15.0 h1:5fCgGYogn0hFdhyhLbw7hEsWxufKtY9klyvdNfFlFhM= -github.com/prometheus/client_golang v1.15.0/go.mod h1:e9yaBhRPU2pPNsZwE+JdQl0KEt1N9XgF6zxWmaC0xOk= +github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= +github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= 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 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= -github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= +github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= +github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= github.com/prometheus/common v0.0.0-20180801064454-c7de2306084e/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= @@ -1365,8 +1370,8 @@ github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16 github.com/prometheus/common v0.18.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= github.com/prometheus/common v0.30.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM= -github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc= +github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= +github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= github.com/prometheus/procfs v0.0.0-20180725123919-05ee40e3a273/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= 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= @@ -1377,8 +1382,8 @@ github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4O github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI= -github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY= +github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= +github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= github.com/prometheus/prom2json v1.3.0/go.mod h1:rMN7m0ApCowcoDlypBHlkNbp5eJQf/+1isKykIP5ZnM= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/prometheus/tsdb v0.10.0 h1:If5rVCMTp6W2SiRAQFlbpJNgVlgMEd+U2GZckwK38ic= @@ -1426,8 +1431,8 @@ github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6So 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 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= 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= @@ -1591,8 +1596,8 @@ github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijb github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= -github.com/urfave/cli/v2 v2.25.0 h1:ykdZKuQey2zq0yin/l7JOm9Mh+pg72ngYMeB0ABn6q8= -github.com/urfave/cli/v2 v2.25.0/go.mod h1:GHupkWPMM0M/sj1a2b4wUrWBPzazNrIjouW6fmdJLxc= +github.com/urfave/cli/v2 v2.25.7 h1:VAzn5oq403l5pHjc4OhD54+XGO9cdKVL/7lDjF+iKUs= +github.com/urfave/cli/v2 v2.25.7/go.mod h1:8qnjx1vcq5s2/wpsqoZFndg2CE5tNFyrTvS6SinrnYQ= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= @@ -1640,8 +1645,8 @@ github.com/zondax/ledger-go v0.14.1 h1:Pip65OOl4iJ84WTpA4BKChvOufMhhbxED3BaihoZN github.com/zondax/ledger-go v0.14.1/go.mod h1:fZ3Dqg6qcdXWSOJFKMG8GCTnD7slO/RL2feOQv8K320= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= -go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ= -go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= +go.etcd.io/bbolt v1.3.9 h1:8x7aARPEXiXbHmtUwAIv7eV2fQFHrLLavdiJ3uzJXoI= +go.etcd.io/bbolt v1.3.9/go.mod h1:zaO32+Ti0PK1ivdPtgMESzuzL2VPoIG1PCQNvOdo/dE= go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= go.opencensus.io v0.18.0/go.mod h1:vKdFvxhtzZ9onBp9VKHK8z/sRpBMnKAsufL7wlDrCOA= go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= @@ -1653,10 +1658,10 @@ go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= -go.opentelemetry.io/otel v1.11.0 h1:kfToEGMDq6TrVrJ9Vht84Y8y9enykSZzDDZglV0kIEk= -go.opentelemetry.io/otel v1.11.0/go.mod h1:H2KtuEphyMvlhZ+F7tg9GRhAOe60moNx61Ex+WmiKkk= -go.opentelemetry.io/otel/trace v1.11.0 h1:20U/Vj42SX+mASlXLmSGBg6jpI1jQtv682lZtTAOVFI= -go.opentelemetry.io/otel/trace v1.11.0/go.mod h1:nyYjis9jy0gytE9LXGU+/m1sHTKbRY0fX0hulNNDP1U= +go.opentelemetry.io/otel v1.21.0 h1:hzLeKBZEL7Okw2mGzZ0cc4k/A7Fta0uoPgaJCr8fsFc= +go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo= +go.opentelemetry.io/otel/trace v1.21.0 h1:WD9i5gzvoUPuXIXH24ZNBudiarZDKuekPqi/E8fpfLc= +go.opentelemetry.io/otel/trace v1.21.0/go.mod h1:LGbsEB0f9LGjN+OZaQQ26sohbOmiMR+BaslueVtS/qQ= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= 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= @@ -1737,8 +1742,8 @@ golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20211117183948-ae814b36b871/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= -golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= -golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.19.0 h1:ENy+Az/9Y1vSrlrvBSyna3PITt4tiZLf7sgCjZBX7Wo= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= 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= @@ -1784,8 +1789,8 @@ 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.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.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc= -golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= +golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1854,8 +1859,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= 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.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= -golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= +golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/oauth2 v0.0.0-20170912212905-13449ad91cb2/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -1885,8 +1890,8 @@ 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-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= -golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= +golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180810173357-98c5dad5d1a0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -2003,15 +2008,15 @@ golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.1.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.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4= -golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= +golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8= +golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= 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= @@ -2102,8 +2107,8 @@ golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.8/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= -golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= +golang.org/x/tools v0.14.0 h1:jvNa2pY0M4r62jkRQ6RwEZZyPcymeL9XZMLBbV7U2nc= +golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg= 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= @@ -2202,12 +2207,12 @@ google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210426193834-eac7f76ac494/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= google.golang.org/genproto v0.0.0-20220314164441-57ef72a4c106/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= -google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= -google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98/go.mod h1:S7mY02OqCJTD0E1OiQy1F72PWFB4bZJ87cAtLPYgDR0= -google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= -google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= +google.golang.org/genproto v0.0.0-20231016165738-49dd2c1f3d0b h1:+YaDE2r2OG8t/z5qmsh7Y+XXwCbvadxxZ0YY6mTdrVA= +google.golang.org/genproto v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:CgAqfJo+Xmu0GwA0411Ht3OU3OntXwsGmrmjI8ioGXI= +google.golang.org/genproto/googleapis/api v0.0.0-20231012201019-e917dd12ba7a h1:myvhA4is3vrit1a6NZCWBIwN0kNEnX21DJOJX/NvIfI= +google.golang.org/genproto/googleapis/api v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:SUBoKXbI1Efip18FClrQVGjWcyd0QZd8KkvdP34t7ww= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b h1:ZlWIi1wSK56/8hn4QcBp/j9M7Gt3U/3hZw3mC7vDICo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc= google.golang.org/grpc v1.2.1-0.20170921194603-d4b75ebd4f9f/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.16.0/go.mod h1:0JHn/cJsOMiMfNA9+DeHDlAU7KAAB5GDlYFpa9MZMio= @@ -2241,8 +2246,8 @@ google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQ google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= -google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= +google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.0.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/grpc/examples v0.0.0-20200723182653-9106c3fff523/go.mod h1:5j1uub0jRGhRiSghIlrThmBUgcgLXOVJQ/l1getT4uo= google.golang.org/grpc/examples v0.0.0-20210424002626-9572fd6faeae/go.mod h1:Ly7ZA/ARzg8fnPU9TyZIxoz33sEUuWX7txiqs8lPTgE= @@ -2260,8 +2265,8 @@ google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp0 google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/bsm/ratelimit.v1 v1.0.0-20160220154919-db14e161995a/go.mod h1:KF9sEfUPAXdG8Oev9e99iLGnl2uJMjc5B+4y3O7x610= gopkg.in/cenkalti/backoff.v1 v1.1.0/go.mod h1:J6Vskwqd+OMVJl8C33mmtxTBs2gyzfv7UDAkHu8BrjI= diff --git a/modular/gater/metadata_handler.go b/modular/gater/metadata_handler.go index 876a9f6c9..0d40373ad 100644 --- a/modular/gater/metadata_handler.go +++ b/modular/gater/metadata_handler.go @@ -1012,7 +1012,7 @@ func (g *GateModular) listDeletedObjectsByBlockNumberRangeHandler(w http.Respons grpcResponse := &types.GfSpListDeletedObjectsByBlockNumberRangeResponse{ Objects: objects, - EndBlockNumber: int64(block), + EndBlockNumber: block, } respBytes, err = xml.Marshal(grpcResponse) diff --git a/modular/gater/object_handler.go b/modular/gater/object_handler.go index 2a492e44b..65e48585c 100644 --- a/modular/gater/object_handler.go +++ b/modular/gater/object_handler.go @@ -166,23 +166,23 @@ func parseRange(rangeStr string) (bool, int64, int64) { rangeStr = rangeStr[len("bytes="):] if strings.HasSuffix(rangeStr, "-") { rangeStr = rangeStr[:len(rangeStr)-1] - rangeStart, err := util.StringToUint64(rangeStr) + rangeStart, err := util.StringToInt64(rangeStr) if err != nil { return false, -1, -1 } - return true, int64(rangeStart), -1 + return true, rangeStart, -1 } pair := strings.Split(rangeStr, "-") if len(pair) == 2 { - rangeStart, err := util.StringToUint64(pair[0]) + rangeStart, err := util.StringToInt64(pair[0]) if err != nil { return false, -1, -1 } - rangeEnd, err := util.StringToUint64(pair[1]) + rangeEnd, err := util.StringToInt64(pair[1]) if err != nil { return false, -1, -1 } - return true, int64(rangeStart), int64(rangeEnd) + return true, rangeStart, rangeEnd } return false, -1, -1 } diff --git a/modular/gater/object_handler_test.go b/modular/gater/object_handler_test.go index 77d502e02..0d3cf5606 100644 --- a/modular/gater/object_handler_test.go +++ b/modular/gater/object_handler_test.go @@ -365,7 +365,7 @@ func Test_parseRange(t *testing.T) { }, { name: "3", - rangeStr: "bytes=-1-", + rangeStr: "bytes=a-1-", wantedResult1: false, wantedResult2: -1, wantedResult3: -1, diff --git a/modular/metadata/metadata_object_service_test.go b/modular/metadata/metadata_object_service_test.go index d7bfea456..9e69962a2 100644 --- a/modular/metadata/metadata_object_service_test.go +++ b/modular/metadata/metadata_object_service_test.go @@ -364,12 +364,12 @@ func TestMetadataModular_GfSpListDeletedObjectsByBlockNumberRange_Success(t *tes m := bsdb.NewMockBSDB(ctrl) a.baseApp.SetGfBsDB(m) m.EXPECT().GetLatestBlockNumber().DoAndReturn( - func() (int64, error) { + func() (uint64, error) { return 10, nil }, ).Times(1) m.EXPECT().ListDeletedObjectsByBlockNumberRange(gomock.Any(), gomock.Any(), gomock.Any()).DoAndReturn( - func(int64, int64, bool) ([]*bsdb.Object, error) { + func(uint64, uint64, bool) ([]*bsdb.Object, error) { return []*bsdb.Object{ &bsdb.Object{ ID: 1, @@ -404,8 +404,8 @@ func TestMetadataModular_GfSpListDeletedObjectsByBlockNumberRange_Success(t *tes }, ).Times(1) objects, err := a.GfSpListDeletedObjectsByBlockNumberRange(context.Background(), &types.GfSpListDeletedObjectsByBlockNumberRangeRequest{ - StartBlockNumber: 0, - EndBlockNumber: 8, + StartBlockNumber: uint64(0), + EndBlockNumber: uint64(8), IncludePrivate: false, }) assert.Nil(t, err) @@ -423,8 +423,8 @@ func TestMetadataModular_GfSpListDeletedObjectsByBlockNumberRange_Failed(t *test }, ).Times(1) _, err := a.GfSpListDeletedObjectsByBlockNumberRange(context.Background(), &types.GfSpListDeletedObjectsByBlockNumberRangeRequest{ - StartBlockNumber: 0, - EndBlockNumber: 8, + StartBlockNumber: uint64(0), + EndBlockNumber: uint64(8), IncludePrivate: false, }) assert.NotNil(t, err) @@ -436,18 +436,18 @@ func TestMetadataModular_GfSpListDeletedObjectsByBlockNumberRange_Failed2(t *tes m := bsdb.NewMockBSDB(ctrl) a.baseApp.SetGfBsDB(m) m.EXPECT().GetLatestBlockNumber().DoAndReturn( - func() (int64, error) { + func() (uint64, error) { return 10, nil }, ).Times(1) m.EXPECT().ListDeletedObjectsByBlockNumberRange(gomock.Any(), gomock.Any(), gomock.Any()).DoAndReturn( - func(int64, int64, bool) ([]*bsdb.Object, error) { + func(uint64, uint64, bool) ([]*bsdb.Object, error) { return nil, ErrExceedRequest }, ).Times(1) _, err := a.GfSpListDeletedObjectsByBlockNumberRange(context.Background(), &types.GfSpListDeletedObjectsByBlockNumberRangeRequest{ - StartBlockNumber: 0, - EndBlockNumber: 8, + StartBlockNumber: uint64(0), + EndBlockNumber: uint64(8), IncludePrivate: false, }) assert.NotNil(t, err) diff --git a/modular/metadata/metadata_sp_exit_service.go b/modular/metadata/metadata_sp_exit_service.go index 165b29808..b9d422c58 100644 --- a/modular/metadata/metadata_sp_exit_service.go +++ b/modular/metadata/metadata_sp_exit_service.go @@ -152,7 +152,7 @@ func (r *MetadataModular) GfSpListMigrateBucketEvents(ctx context.Context, req * rejectEventsMap map[common.Hash]*model.EventRejectMigrateBucket res []*types.ListMigrateBucketEvents filters []func(*gorm.DB) *gorm.DB - latestBlock int64 + latestBlock uint64 ) ctx = log.Context(ctx, req) @@ -161,7 +161,7 @@ func (r *MetadataModular) GfSpListMigrateBucketEvents(ctx context.Context, req * log.CtxErrorw(ctx, "failed to list migrate bucket events", "error", err) return nil, err } - if uint64(latestBlock) < req.BlockId { + if latestBlock < req.BlockId { log.CtxError(ctx, "failed to list migrate bucket events due to request block id exceed current block syncer block height") return nil, ErrExceedBlockHeight } @@ -252,7 +252,7 @@ func (r *MetadataModular) GfSpListCompleteMigrationBucketEvents(ctx context.Cont completeEventsMap map[common.Hash]*model.EventCompleteMigrationBucket res []*storage_types.EventCompleteMigrationBucket filters []func(*gorm.DB) *gorm.DB - latestBlock int64 + latestBlock uint64 ) ctx = log.Context(ctx, req) @@ -260,7 +260,7 @@ func (r *MetadataModular) GfSpListCompleteMigrationBucketEvents(ctx context.Cont log.CtxErrorw(ctx, "failed to list migrate bucket events", "error", err) return nil, err } - if uint64(latestBlock) < req.BlockId { + if latestBlock < req.BlockId { //log.CtxError(ctx, "failed to list migrate bucket events due to request block id exceed current block syncer block height") return nil, ErrExceedBlockHeight } @@ -307,7 +307,7 @@ func (r *MetadataModular) GfSpListSwapOutEvents(ctx context.Context, req *types. cancelEventsMap map[string]*model.EventCancelSwapOut res []*types.ListSwapOutEvents idx string - latestBlock int64 + latestBlock uint64 ) ctx = log.Context(ctx, req) @@ -316,7 +316,7 @@ func (r *MetadataModular) GfSpListSwapOutEvents(ctx context.Context, req *types. log.CtxErrorw(ctx, "failed to list migrate swap out events", "error", err) return nil, err } - if uint64(latestBlock) < req.BlockId { + if latestBlock < req.BlockId { log.CtxError(ctx, "failed to list migrate swap out events due to request block id exceed current block syncer block height") return nil, ErrExceedBlockHeight } @@ -459,7 +459,7 @@ func (r *MetadataModular) GfSpListSpExitEvents(ctx context.Context, req *types.G completeEvent *model.EventCompleteStorageProviderExit spEvent *virtual_types.EventStorageProviderExit spCompleteEvent *virtual_types.EventCompleteStorageProviderExit - latestBlock int64 + latestBlock uint64 ) ctx = log.Context(ctx, req) latestBlock, err = r.baseApp.GfBsDB().GetLatestBlockNumber() @@ -467,7 +467,7 @@ func (r *MetadataModular) GfSpListSpExitEvents(ctx context.Context, req *types.G log.CtxErrorw(ctx, "failed to list sp exit events", "error", err) return nil, err } - if uint64(latestBlock) < req.BlockId { + if latestBlock < req.BlockId { log.CtxError(ctx, "failed to list sp exit events due to request block id exceed current block syncer block height") return nil, ErrExceedBlockHeight } diff --git a/modular/metadata/metadata_sp_exit_service_test.go b/modular/metadata/metadata_sp_exit_service_test.go index 6df1af698..c28d62f42 100644 --- a/modular/metadata/metadata_sp_exit_service_test.go +++ b/modular/metadata/metadata_sp_exit_service_test.go @@ -214,7 +214,7 @@ func TestMetadataModularGfSpListMigrateBucketEvents_Success(t *testing.T) { m := bsdb.NewMockBSDB(ctrl) a.baseApp.SetGfBsDB(m) m.EXPECT().GetLatestBlockNumber().DoAndReturn( - func() (int64, error) { + func() (uint64, error) { return 100000, nil }, ).Times(1) @@ -283,7 +283,7 @@ func TestMetadataModularGfSpListMigrateBucketEvents_Success2(t *testing.T) { m := bsdb.NewMockBSDB(ctrl) a.baseApp.SetGfBsDB(m) m.EXPECT().GetLatestBlockNumber().DoAndReturn( - func() (int64, error) { + func() (uint64, error) { return 100000, nil }, ).Times(1) @@ -339,7 +339,7 @@ func TestMetadataModularGfSpListMigrateBucketEvents_Fail(t *testing.T) { m := bsdb.NewMockBSDB(ctrl) a.baseApp.SetGfBsDB(m) m.EXPECT().GetLatestBlockNumber().DoAndReturn( - func() (int64, error) { + func() (uint64, error) { return 100000, nil }, ).Times(1) @@ -361,7 +361,7 @@ func TestMetadataModularGfSpListMigrateBucketEvents_Fail2(t *testing.T) { m := bsdb.NewMockBSDB(ctrl) a.baseApp.SetGfBsDB(m) m.EXPECT().GetLatestBlockNumber().DoAndReturn( - func() (int64, error) { + func() (uint64, error) { return 100000, nil }, ).Times(1) @@ -378,7 +378,7 @@ func TestMetadataModularGfSpListMigrateBucketEvents_Fail3(t *testing.T) { m := bsdb.NewMockBSDB(ctrl) a.baseApp.SetGfBsDB(m) m.EXPECT().GetLatestBlockNumber().DoAndReturn( - func() (int64, error) { + func() (uint64, error) { return 0, ErrExceedRequest }, ).Times(1) @@ -552,7 +552,7 @@ func TestMetadataModularGfSpListSwapOutEvents_Success(t *testing.T) { m := bsdb.NewMockBSDB(ctrl) a.baseApp.SetGfBsDB(m) m.EXPECT().GetLatestBlockNumber().DoAndReturn( - func() (int64, error) { + func() (uint64, error) { return 100000, nil }, ).Times(1) @@ -610,7 +610,7 @@ func TestMetadataModularGfSpGfSpListSwapOutEvents_Success2(t *testing.T) { m := bsdb.NewMockBSDB(ctrl) a.baseApp.SetGfBsDB(m) m.EXPECT().GetLatestBlockNumber().DoAndReturn( - func() (int64, error) { + func() (uint64, error) { return 100000, nil }, ).Times(1) @@ -656,7 +656,7 @@ func TestMetadataModularGfSpGfSpListSwapOutEvents_Fail(t *testing.T) { m := bsdb.NewMockBSDB(ctrl) a.baseApp.SetGfBsDB(m) m.EXPECT().GetLatestBlockNumber().DoAndReturn( - func() (int64, error) { + func() (uint64, error) { return 100000, nil }, ).Times(1) @@ -679,7 +679,7 @@ func TestMetadataModularGfSpGfSpListSwapOutEvents_Fail2(t *testing.T) { m := bsdb.NewMockBSDB(ctrl) a.baseApp.SetGfBsDB(m) m.EXPECT().GetLatestBlockNumber().DoAndReturn( - func() (int64, error) { + func() (uint64, error) { return 100000, nil }, ).Times(1) @@ -696,7 +696,7 @@ func TestMetadataModularGfSpListSwapOutEvents_Fail3(t *testing.T) { m := bsdb.NewMockBSDB(ctrl) a.baseApp.SetGfBsDB(m) m.EXPECT().GetLatestBlockNumber().DoAndReturn( - func() (int64, error) { + func() (uint64, error) { return 0, ErrExceedRequest }, ).Times(1) @@ -713,7 +713,7 @@ func TestMetadataModularGfSpListSpExitEvents_Success(t *testing.T) { m := bsdb.NewMockBSDB(ctrl) a.baseApp.SetGfBsDB(m) m.EXPECT().GetLatestBlockNumber().DoAndReturn( - func() (int64, error) { + func() (uint64, error) { return 100000, nil }, ).Times(1) @@ -752,7 +752,7 @@ func TestMetadataModularGfSpGfSpGfSpListSpExitEvents_Success2(t *testing.T) { m := bsdb.NewMockBSDB(ctrl) a.baseApp.SetGfBsDB(m) m.EXPECT().GetLatestBlockNumber().DoAndReturn( - func() (int64, error) { + func() (uint64, error) { return 100000, nil }, ).Times(1) @@ -782,7 +782,7 @@ func TestMetadataModularGfSpListSpExitEvents_Fail(t *testing.T) { m := bsdb.NewMockBSDB(ctrl) a.baseApp.SetGfBsDB(m) m.EXPECT().GetLatestBlockNumber().DoAndReturn( - func() (int64, error) { + func() (uint64, error) { return 100000, nil }, ).Times(1) @@ -805,7 +805,7 @@ func TestMetadataModularGfSpListSpExitEvents_Fail2(t *testing.T) { m := bsdb.NewMockBSDB(ctrl) a.baseApp.SetGfBsDB(m) m.EXPECT().GetLatestBlockNumber().DoAndReturn( - func() (int64, error) { + func() (uint64, error) { return 100000, nil }, ).Times(1) @@ -822,7 +822,7 @@ func TestMetadataModularGfSpGfSpListSpExitEvents_Fail3(t *testing.T) { m := bsdb.NewMockBSDB(ctrl) a.baseApp.SetGfBsDB(m) m.EXPECT().GetLatestBlockNumber().DoAndReturn( - func() (int64, error) { + func() (uint64, error) { return 0, ErrExceedRequest }, ).Times(1) @@ -839,7 +839,7 @@ func TestMetadataModularGfSpListCompleteMigrationBucketEvents_Success(t *testing m := bsdb.NewMockBSDB(ctrl) a.baseApp.SetGfBsDB(m) m.EXPECT().GetLatestBlockNumber().DoAndReturn( - func() (int64, error) { + func() (uint64, error) { return 100000, nil }, ).Times(1) @@ -874,7 +874,7 @@ func TestMetadataModularGfSpListCompleteMigrationBucketEvents_Fail(t *testing.T) m := bsdb.NewMockBSDB(ctrl) a.baseApp.SetGfBsDB(m) m.EXPECT().GetLatestBlockNumber().DoAndReturn( - func() (int64, error) { + func() (uint64, error) { return 100000, nil }, ).Times(1) diff --git a/modular/metadata/types/metadata.pb.go b/modular/metadata/types/metadata.pb.go index 24996c8f2..aaae529f9 100644 --- a/modular/metadata/types/metadata.pb.go +++ b/modular/metadata/types/metadata.pb.go @@ -1190,10 +1190,10 @@ func (m *GfSpGetBucketByBucketIDResponse) GetBucket() *Bucket { type GfSpListDeletedObjectsByBlockNumberRangeRequest struct { // start_block_number defines the start of range // [start_block_number, end_block_number], start_block_number > end_block_number is invalid - StartBlockNumber int64 `protobuf:"varint,1,opt,name=start_block_number,json=startBlockNumber,proto3" json:"start_block_number,omitempty"` + StartBlockNumber uint64 `protobuf:"varint,1,opt,name=start_block_number,json=startBlockNumber,proto3" json:"start_block_number,omitempty"` // end_block_number defines the end of range // end_block_number < 0 or start_block_number > end_block_number is invalid - EndBlockNumber int64 `protobuf:"varint,2,opt,name=end_block_number,json=endBlockNumber,proto3" json:"end_block_number,omitempty"` + EndBlockNumber uint64 `protobuf:"varint,2,opt,name=end_block_number,json=endBlockNumber,proto3" json:"end_block_number,omitempty"` // include_private indicates whether this request can get the private objects information IncludePrivate bool `protobuf:"varint,3,opt,name=include_private,json=includePrivate,proto3" json:"include_private,omitempty"` } @@ -1235,14 +1235,14 @@ func (m *GfSpListDeletedObjectsByBlockNumberRangeRequest) XXX_DiscardUnknown() { var xxx_messageInfo_GfSpListDeletedObjectsByBlockNumberRangeRequest proto.InternalMessageInfo -func (m *GfSpListDeletedObjectsByBlockNumberRangeRequest) GetStartBlockNumber() int64 { +func (m *GfSpListDeletedObjectsByBlockNumberRangeRequest) GetStartBlockNumber() uint64 { if m != nil { return m.StartBlockNumber } return 0 } -func (m *GfSpListDeletedObjectsByBlockNumberRangeRequest) GetEndBlockNumber() int64 { +func (m *GfSpListDeletedObjectsByBlockNumberRangeRequest) GetEndBlockNumber() uint64 { if m != nil { return m.EndBlockNumber } @@ -1261,7 +1261,7 @@ type GfSpListDeletedObjectsByBlockNumberRangeResponse struct { // objects defines the list of object Objects []*Object `protobuf:"bytes,1,rep,name=objects,proto3" json:"objects,omitempty"` // latest_block_number defines the response objects latest block number - EndBlockNumber int64 `protobuf:"varint,2,opt,name=end_block_number,json=endBlockNumber,proto3" json:"end_block_number,omitempty"` + EndBlockNumber uint64 `protobuf:"varint,2,opt,name=end_block_number,json=endBlockNumber,proto3" json:"end_block_number,omitempty"` } func (m *GfSpListDeletedObjectsByBlockNumberRangeResponse) Reset() { @@ -1308,7 +1308,7 @@ func (m *GfSpListDeletedObjectsByBlockNumberRangeResponse) GetObjects() []*Objec return nil } -func (m *GfSpListDeletedObjectsByBlockNumberRangeResponse) GetEndBlockNumber() int64 { +func (m *GfSpListDeletedObjectsByBlockNumberRangeResponse) GetEndBlockNumber() uint64 { if m != nil { return m.EndBlockNumber } @@ -7760,7 +7760,7 @@ func init() { } var fileDescriptor_7cdcff708e247f22 = []byte{ - // 6063 bytes of a gzipped FileDescriptorProto + // 6066 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x3d, 0x5b, 0x8c, 0x1c, 0x49, 0x52, 0x53, 0xd3, 0xf3, 0xcc, 0xe9, 0x79, 0x38, 0xfd, 0x1a, 0xb7, 0xd7, 0x63, 0xbb, 0x6c, 0xaf, 0xc7, 0xeb, 0xf5, 0xcc, 0xda, 0xde, 0xf5, 0xda, 0x5e, 0xdb, 0xeb, 0x79, 0x79, 0x76, 0xb4, 0xe7, @@ -7843,303 +7843,304 @@ var fileDescriptor_7cdcff708e247f22 = []byte{ 0x0c, 0xa6, 0xa5, 0xa4, 0x4c, 0xf0, 0xb3, 0xd7, 0xe8, 0x7d, 0x11, 0x5f, 0x42, 0xa7, 0x33, 0xc7, 0xd9, 0xe7, 0x12, 0xfe, 0x42, 0x42, 0xcb, 0x81, 0x92, 0xac, 0xb3, 0xa3, 0xdb, 0x88, 0x74, 0xc5, 0xbf, 0x3f, 0xbe, 0xd7, 0x6e, 0xd5, 0x88, 0xab, 0x68, 0x56, 0x23, 0xdc, 0x9d, 0x57, 0x11, 0x06, - 0x3b, 0x50, 0xf3, 0x01, 0x54, 0x8b, 0x41, 0xf0, 0xd5, 0xcd, 0xb1, 0x1e, 0x01, 0xd3, 0x3f, 0xf5, - 0x88, 0x65, 0xc4, 0x61, 0x87, 0x19, 0xec, 0x0c, 0xb1, 0x0c, 0x11, 0x32, 0x85, 0x1f, 0xa5, 0x54, - 0x7e, 0xfc, 0x8e, 0x84, 0x5e, 0xeb, 0x7d, 0xd2, 0xfb, 0x56, 0xf3, 0x9e, 0x57, 0x20, 0x6f, 0x87, - 0x02, 0x21, 0x1c, 0x01, 0xcc, 0x1c, 0x1c, 0xf4, 0x61, 0xf3, 0x66, 0x28, 0x12, 0xdd, 0x23, 0xf1, - 0x05, 0x1f, 0x41, 0xa3, 0xd1, 0x11, 0x5c, 0x52, 0xe0, 0x43, 0x7e, 0x01, 0x0a, 0xe1, 0xb3, 0x6e, - 0x63, 0xcf, 0x31, 0x5d, 0x62, 0x70, 0xe4, 0xd5, 0x4e, 0xd5, 0x11, 0xc4, 0x96, 0xdf, 0xcd, 0xb4, - 0x00, 0x7d, 0x02, 0x1a, 0x56, 0x3c, 0x2c, 0xa3, 0x69, 0xc7, 0x35, 0x5b, 0x9a, 0xdb, 0x51, 0xa9, - 0x13, 0x9c, 0x21, 0xd3, 0xca, 0x14, 0x6f, 0xac, 0x3a, 0x5b, 0x86, 0x3f, 0x36, 0xb3, 0x23, 0xfc, - 0xda, 0x08, 0x1f, 0xf2, 0x8f, 0x47, 0x27, 0x58, 0xda, 0xd8, 0xd1, 0x46, 0xc5, 0x4f, 0xca, 0x22, - 0x59, 0x0e, 0x8f, 0xc8, 0x9f, 0x97, 0xd0, 0x3c, 0xe7, 0x0a, 0xec, 0xa1, 0x7f, 0x29, 0x11, 0x6c, - 0x0a, 0x7f, 0x66, 0x89, 0x36, 0x05, 0x9a, 0x98, 0x4d, 0x49, 0x18, 0x9d, 0xe1, 0x5e, 0x8c, 0x4e, - 0xba, 0x7c, 0x56, 0xc3, 0xeb, 0x86, 0x38, 0x8d, 0x48, 0x53, 0x07, 0x79, 0x71, 0xc8, 0xad, 0xd0, - 0x92, 0xf1, 0x3b, 0xd3, 0x0f, 0xd7, 0x70, 0xee, 0xc0, 0x5e, 0x65, 0x0d, 0xc7, 0x17, 0xd3, 0x75, - 0x3f, 0x93, 0x06, 0xba, 0x9f, 0x35, 0x42, 0x69, 0x4e, 0x0c, 0x76, 0xd0, 0x96, 0xd4, 0x0c, 0x0f, - 0x9f, 0x94, 0x81, 0x0e, 0x76, 0x4d, 0x46, 0x28, 0x8b, 0x30, 0x42, 0x42, 0x16, 0x0f, 0x68, 0x9b, - 0xbe, 0x25, 0x85, 0xb2, 0x26, 0x0e, 0xc3, 0x97, 0x72, 0x37, 0x71, 0x2a, 0xf4, 0x78, 0xe7, 0x0c, - 0x1e, 0xab, 0x07, 0x74, 0xfb, 0xbe, 0x8e, 0x5e, 0xe2, 0x53, 0xdc, 0xb0, 0x0c, 0xc7, 0x36, 0x7d, - 0xae, 0x57, 0x9d, 0x68, 0x6b, 0x0f, 0xa3, 0x51, 0x30, 0x24, 0x12, 0x33, 0x24, 0x23, 0xd4, 0xd9, - 0x32, 0xe4, 0xb7, 0xd0, 0xa9, 0x0c, 0x24, 0xbe, 0xb6, 0x0a, 0x9a, 0x20, 0xbc, 0x87, 0x33, 0x30, - 0xfc, 0x96, 0x7f, 0x2a, 0x44, 0xe6, 0x2b, 0x22, 0x9a, 0xf1, 0xf9, 0xb6, 0x1d, 0x6d, 0xc0, 0xbe, - 0x5f, 0xcd, 0xa7, 0x10, 0xea, 0x10, 0xcd, 0x55, 0x5b, 0xb6, 0xe5, 0x6d, 0x07, 0xb7, 0x68, 0xbf, - 0xe5, 0xa1, 0xdf, 0x20, 0xff, 0x67, 0x29, 0x71, 0x35, 0x10, 0x66, 0xc0, 0xe7, 0x7f, 0x0d, 0x95, - 0x88, 0xeb, 0x86, 0xc2, 0x55, 0xd3, 0x28, 0xe1, 0x9b, 0x11, 0xf9, 0x5a, 0x97, 0x7c, 0x1a, 0x1b, - 0xfe, 0x4f, 0xc5, 0x07, 0xf6, 0x4f, 0x5e, 0x7d, 0x5b, 0x73, 0x1b, 0xc4, 0x50, 0x3f, 0xf4, 0x89, - 0xc1, 0x53, 0x13, 0x6e, 0x9e, 0x73, 0xbc, 0x87, 0x8d, 0xc2, 0xde, 0x9b, 0x97, 0x11, 0xa6, 0x8e, - 0x5a, 0x77, 0x09, 0x11, 0xa1, 0xe1, 0x2e, 0x3a, 0x4b, 0x9d, 0x07, 0x2e, 0x21, 0x11, 0xf0, 0x39, - 0x34, 0xad, 0xdb, 0x16, 0x6d, 0xb7, 0x88, 0x01, 0x70, 0x23, 0x0c, 0xae, 0x1c, 0x34, 0x32, 0xa0, - 0x37, 0xd0, 0x71, 0x81, 0x1c, 0xef, 0x02, 0xf0, 0x51, 0x06, 0x7e, 0xa4, 0x1e, 0x10, 0x5d, 0x83, - 0x4e, 0x86, 0x76, 0x1b, 0x55, 0xa8, 0x03, 0xac, 0x6a, 0x76, 0xba, 0x26, 0x34, 0xc6, 0x30, 0x8f, - 0x51, 0xe7, 0x21, 0x00, 0xc4, 0xe7, 0xb5, 0x8e, 0x4e, 0xa7, 0x20, 0xc6, 0x86, 0x1e, 0x67, 0x04, - 0x4e, 0xb6, 0x12, 0xe8, 0xe2, 0x0c, 0x5e, 0x45, 0xd8, 0xb3, 0x3d, 0xad, 0x19, 0x47, 0x9c, 0x00, - 0xc6, 0xb1, 0x1e, 0x11, 0xfa, 0x15, 0x74, 0xc8, 0x25, 0x2d, 0xff, 0x95, 0x2e, 0x4c, 0x73, 0x12, - 0xf8, 0x06, 0x1d, 0xe1, 0xfc, 0xe4, 0xb5, 0xd0, 0x4e, 0x26, 0x36, 0x3a, 0x79, 0xec, 0x0b, 0xe2, - 0x22, 0x25, 0xc5, 0xc5, 0x86, 0x97, 0x4a, 0x26, 0x91, 0x7d, 0x88, 0x4c, 0x78, 0x0b, 0x18, 0x16, - 0x6f, 0x01, 0x2d, 0x10, 0x4f, 0xff, 0x24, 0xce, 0xd0, 0x90, 0xfc, 0x19, 0xfb, 0x6f, 0x0a, 0xbb, - 0x5e, 0xa7, 0xdc, 0xff, 0x35, 0xad, 0xf0, 0xaf, 0xf8, 0xc1, 0x3f, 0x1d, 0x1c, 0xfc, 0xbf, 0x52, - 0x42, 0x47, 0xbb, 0xc6, 0xf1, 0x6d, 0x43, 0xb1, 0x25, 0x8c, 0xd9, 0x7d, 0xfe, 0xc6, 0x0a, 0xed, - 0xfe, 0x8f, 0x24, 0x7c, 0x30, 0x09, 0x97, 0x7f, 0x4f, 0x82, 0x13, 0x37, 0x55, 0x00, 0xf6, 0x21, - 0x6d, 0x1b, 0x68, 0xcc, 0x25, 0xb4, 0xdd, 0xf4, 0xc5, 0xc2, 0xbf, 0xba, 0x5d, 0x29, 0xb8, 0xba, - 0xc5, 0xa5, 0x41, 0xe1, 0xc8, 0xf2, 0x6a, 0xa8, 0x0f, 0x9f, 0xd3, 0x3c, 0x92, 0x29, 0xa3, 0x5d, - 0x77, 0x02, 0x41, 0x36, 0xe4, 0x6f, 0x48, 0xe8, 0x7c, 0x3e, 0x91, 0x7d, 0xac, 0xf3, 0x1e, 0x1a, - 0x65, 0xdb, 0xc4, 0x4f, 0xc4, 0xc5, 0x24, 0x16, 0x0b, 0x81, 0xf9, 0x38, 0x30, 0x28, 0x1b, 0x90, - 0x9d, 0x21, 0x80, 0x26, 0xff, 0x20, 0x95, 0xff, 0x9c, 0x0b, 0x07, 0x75, 0x46, 0x85, 0xef, 0x34, - 0xcf, 0x6c, 0x11, 0xea, 0x69, 0x2d, 0x47, 0x6d, 0x53, 0x6e, 0x07, 0xe0, 0x9d, 0xf6, 0x24, 0xe8, - 0x78, 0x1a, 0xbe, 0x72, 0x62, 0xb0, 0xa5, 0xf0, 0x95, 0x23, 0x42, 0x9e, 0x47, 0x33, 0x2d, 0x6d, - 0x8f, 0xdf, 0x09, 0xfc, 0x07, 0x11, 0xf7, 0x1f, 0x96, 0x5b, 0xda, 0x1e, 0x2c, 0xe1, 0xbd, 0x76, - 0x4b, 0xfe, 0x4b, 0x09, 0xa1, 0x68, 0x51, 0xc5, 0xd7, 0xef, 0x93, 0x68, 0x32, 0x08, 0x83, 0x84, - 0x8a, 0xce, 0x83, 0x1c, 0xec, 0x82, 0x17, 0x3c, 0x9b, 0x02, 0x2f, 0x68, 0x89, 0x51, 0x98, 0xe1, - 0xcd, 0x2b, 0xdc, 0x19, 0x7a, 0x16, 0x95, 0x63, 0x2b, 0x80, 0x99, 0x4d, 0x79, 0xc2, 0xf4, 0x4f, - 0xa2, 0x49, 0x97, 0x68, 0x86, 0xa8, 0xd4, 0x13, 0x7e, 0x03, 0x53, 0x8c, 0xef, 0x4b, 0x70, 0x43, - 0x4c, 0xdf, 0x98, 0x7d, 0x48, 0xcc, 0xbb, 0xa8, 0xcc, 0x46, 0x05, 0xae, 0x51, 0xae, 0x1f, 0x72, - 0x96, 0x7e, 0x44, 0xa3, 0xae, 0x8e, 0x7c, 0xf4, 0xc9, 0x69, 0x49, 0x99, 0x72, 0xc3, 0x16, 0xea, - 0x5b, 0x29, 0xe6, 0x1d, 0x4a, 0xd9, 0x5e, 0xd8, 0xb2, 0x23, 0x7e, 0x77, 0x35, 0xb1, 0xc5, 0xf2, - 0x5d, 0xb0, 0xfa, 0x9f, 0x6f, 0x13, 0xb7, 0xf3, 0xd4, 0x69, 0xda, 0x9a, 0xf1, 0xd8, 0xb5, 0x1b, - 0x3e, 0xdf, 0x04, 0x8d, 0x8a, 0x36, 0x41, 0x8a, 0x6f, 0x82, 0xfc, 0x6d, 0x2e, 0xb4, 0xa9, 0xf8, - 0xfb, 0xba, 0xd5, 0x8c, 0x52, 0x2f, 0xb8, 0xe2, 0xce, 0x5c, 0x3b, 0xb6, 0x04, 0x31, 0x4c, 0x40, - 0x7b, 0xa2, 0xd1, 0x9d, 0xaa, 0xdf, 0xab, 0x00, 0x90, 0x2f, 0x0a, 0xc4, 0x75, 0x55, 0x83, 0x50, - 0xdd, 0x35, 0x1d, 0xcf, 0xb4, 0xad, 0x40, 0x14, 0x88, 0xeb, 0xae, 0x47, 0xad, 0xf2, 0x06, 0x7a, - 0x39, 0x9c, 0xad, 0x42, 0x68, 0xbb, 0xa5, 0xd5, 0x9a, 0x04, 0xa6, 0x5d, 0x25, 0x0d, 0xff, 0xd2, - 0xda, 0xd3, 0xaa, 0x7f, 0x46, 0x42, 0x17, 0x0b, 0xe9, 0xec, 0x63, 0xf5, 0xe7, 0xd0, 0x34, 0x05, - 0x32, 0x82, 0x23, 0x71, 0x5a, 0x29, 0xf3, 0x46, 0x76, 0x03, 0x90, 0xbf, 0x31, 0x8c, 0x46, 0x59, - 0xc8, 0x01, 0x5f, 0x47, 0xa3, 0x2c, 0x1c, 0xc1, 0x07, 0x39, 0x95, 0x66, 0x0f, 0x18, 0x24, 0x98, - 0x1b, 0x06, 0x1b, 0x8b, 0xc3, 0x0c, 0x27, 0xe2, 0x30, 0xb1, 0xb7, 0x7e, 0x29, 0xf1, 0xd6, 0x3f, - 0x8d, 0xa6, 0x82, 0x20, 0x8d, 0xd9, 0x22, 0x5c, 0x9b, 0x10, 0x8f, 0xd0, 0x98, 0xad, 0x44, 0x18, - 0x61, 0x34, 0x3f, 0x8c, 0x30, 0xd6, 0x15, 0x79, 0x79, 0x05, 0x1d, 0x02, 0x7f, 0x8a, 0x6a, 0xd7, - 0xd5, 0x16, 0xf1, 0x7f, 0x51, 0x76, 0xd8, 0x95, 0x94, 0x59, 0xe8, 0x78, 0x54, 0x7f, 0x08, 0xcd, - 0x62, 0x9c, 0x6a, 0x22, 0x16, 0xa7, 0x92, 0xff, 0x66, 0x18, 0x4d, 0xb1, 0x25, 0x03, 0xe8, 0x60, - 0x2c, 0x2a, 0x70, 0x8b, 0x8b, 0x1c, 0x2c, 0xe5, 0x71, 0x70, 0x24, 0x9f, 0x83, 0xa3, 0xf9, 0x1c, - 0x1c, 0xcb, 0xe7, 0xe0, 0x78, 0x17, 0x07, 0x33, 0xb9, 0xc2, 0xf4, 0x64, 0xcf, 0x31, 0x5d, 0xee, - 0x94, 0x8d, 0x42, 0x5f, 0x33, 0x51, 0x33, 0x8b, 0xe5, 0x7c, 0x57, 0x42, 0xc7, 0xf9, 0x41, 0xc9, - 0xb8, 0xe2, 0x9b, 0xbe, 0x40, 0x33, 0x02, 0x77, 0xb2, 0x94, 0xea, 0x4e, 0x1e, 0x8e, 0xb9, 0x93, - 0x4f, 0xa3, 0x29, 0xc8, 0xb1, 0x50, 0x7d, 0x91, 0xe7, 0x5c, 0x42, 0xd0, 0xf4, 0xa4, 0xe3, 0x90, - 0xe8, 0x6e, 0x38, 0x22, 0x38, 0x85, 0x84, 0x9b, 0x24, 0xf0, 0x26, 0xb8, 0x49, 0xa6, 0xb8, 0xc2, - 0xc6, 0x52, 0x5d, 0x61, 0x8d, 0xf0, 0xa1, 0x2d, 0x4c, 0x9f, 0x2b, 0xe4, 0x1b, 0x68, 0x8c, 0x6d, - 0x6f, 0xe0, 0x4a, 0x3a, 0x95, 0x65, 0x6f, 0x21, 0xc6, 0xca, 0x81, 0x33, 0x2e, 0xcd, 0x04, 0x9d, - 0x8c, 0x1f, 0x0d, 0x74, 0xb5, 0xb3, 0xb5, 0x2e, 0xc6, 0x91, 0xc2, 0xdb, 0x08, 0x8c, 0x37, 0xa2, - 0x4c, 0x06, 0xd7, 0x11, 0xda, 0xbb, 0x6b, 0xef, 0x5f, 0x25, 0x78, 0x2f, 0x77, 0x8f, 0xc3, 0x17, - 0xf5, 0xe5, 0xa4, 0x83, 0x6c, 0x25, 0x73, 0x55, 0x39, 0x64, 0xf8, 0xad, 0x81, 0x6e, 0x58, 0x9e, - 0xdb, 0x09, 0x7d, 0x68, 0x95, 0xf7, 0x51, 0x59, 0xec, 0xc0, 0x73, 0xa8, 0xb4, 0x43, 0x3a, 0xdc, - 0x2a, 0xfa, 0x3f, 0xf1, 0xeb, 0x68, 0x74, 0x57, 0x6b, 0xb6, 0x49, 0x8f, 0x91, 0x6f, 0x00, 0xbe, - 0x3d, 0x7c, 0x53, 0x12, 0x19, 0x18, 0xfa, 0x6b, 0xe3, 0x0c, 0x0c, 0xcd, 0x70, 0xc8, 0xc0, 0xc0, - 0x0e, 0x0f, 0xc8, 0xc0, 0xf8, 0x38, 0x11, 0x03, 0xe3, 0xae, 0xe0, 0x42, 0x06, 0xa6, 0x91, 0xe1, - 0x0e, 0xba, 0x80, 0x81, 0x9c, 0xa2, 0xcf, 0x40, 0xb1, 0x63, 0x1f, 0x0c, 0xe4, 0x0e, 0x40, 0x81, - 0x81, 0x3f, 0x37, 0x0c, 0x27, 0xf0, 0x33, 0xe2, 0x9a, 0xf5, 0xce, 0xe3, 0x30, 0xef, 0xc9, 0x9f, - 0x57, 0xc0, 0xc5, 0xd7, 0x05, 0x4b, 0xc5, 0xd4, 0x76, 0x75, 0xfe, 0x7b, 0xdf, 0xb9, 0x72, 0x84, - 0xe7, 0x5e, 0xf1, 0x7b, 0x52, 0xd5, 0x73, 0x4d, 0xab, 0x21, 0xd8, 0xb0, 0x07, 0x68, 0x3a, 0x48, - 0x91, 0x02, 0xf5, 0x85, 0xb3, 0xf8, 0xac, 0x68, 0x3b, 0x03, 0x80, 0x25, 0x85, 0x44, 0x5a, 0xad, - 0x94, 0x5d, 0xe1, 0xcb, 0x37, 0x02, 0x21, 0x1d, 0xd3, 0xe0, 0x4f, 0x31, 0x14, 0x34, 0x6d, 0x19, - 0x78, 0x15, 0x4d, 0x69, 0x3a, 0x98, 0x24, 0x7f, 0x98, 0x91, 0xee, 0x61, 0xa2, 0x74, 0xae, 0xa5, - 0x15, 0x06, 0xc9, 0x86, 0x41, 0x5a, 0xf8, 0x5b, 0xfe, 0x12, 0xdc, 0xd1, 0xd2, 0xb9, 0x10, 0x69, - 0x3e, 0xa9, 0xd7, 0x03, 0x37, 0xeb, 0x4c, 0xfc, 0x14, 0x10, 0x86, 0xd8, 0x60, 0x40, 0x0a, 0x07, - 0x96, 0xef, 0xa3, 0x4b, 0xc1, 0x9e, 0x77, 0x45, 0xfa, 0x4d, 0x42, 0x7b, 0x70, 0x5c, 0xfd, 0x81, - 0x84, 0x5e, 0xe9, 0x85, 0x04, 0x9f, 0xa7, 0x87, 0x4e, 0x35, 0x58, 0x62, 0x81, 0xca, 0x93, 0x0d, - 0x54, 0x66, 0x83, 0xd4, 0x3a, 0x07, 0xe7, 0x12, 0x3a, 0x40, 0x5a, 0x42, 0xa5, 0x91, 0xde, 0x63, - 0x12, 0x2a, 0xdf, 0x87, 0x3b, 0x8d, 0x6f, 0x33, 0xbb, 0x80, 0x56, 0x3b, 0x9b, 0xbb, 0x8d, 0x68, - 0x91, 0x47, 0xd1, 0x58, 0x63, 0xb7, 0x11, 0xad, 0x72, 0xb4, 0xb1, 0xdb, 0xd8, 0x32, 0xe4, 0xaf, - 0x49, 0x68, 0xb1, 0x98, 0x04, 0x5f, 0xe4, 0x07, 0xe8, 0x48, 0xda, 0x22, 0xf9, 0x01, 0xdd, 0x57, - 0x1a, 0x0c, 0xee, 0x5e, 0x95, 0x7c, 0x2b, 0xf4, 0xea, 0xa6, 0xb0, 0x21, 0x5a, 0xc6, 0x6e, 0xa3, - 0x2e, 0x2c, 0x63, 0xb7, 0x51, 0xdf, 0x32, 0xe4, 0xed, 0xd0, 0xab, 0x9e, 0x86, 0xca, 0xa7, 0xcf, - 0x13, 0x44, 0xa4, 0xfd, 0x24, 0x88, 0xc8, 0xcf, 0xc2, 0x49, 0xa6, 0xac, 0xaa, 0x87, 0x07, 0xad, - 0xbf, 0x82, 0x26, 0x6c, 0xc4, 0x30, 0xf7, 0xad, 0xb0, 0x8d, 0xa8, 0x85, 0x2b, 0x48, 0xa3, 0x1b, - 0x3a, 0x82, 0x59, 0xda, 0x91, 0x34, 0x60, 0xda, 0xd1, 0x4e, 0x97, 0xe1, 0xde, 0xb2, 0x36, 0x9f, - 0x6d, 0xe6, 0x8b, 0x48, 0x32, 0x5f, 0x80, 0xdb, 0x02, 0x21, 0x5f, 0x20, 0x76, 0x21, 0x08, 0x9d, - 0x45, 0x6a, 0x97, 0xf5, 0xe6, 0x83, 0x45, 0x99, 0x14, 0x71, 0xeb, 0x7d, 0x21, 0xdf, 0x80, 0xf2, - 0x54, 0xaf, 0xd0, 0x42, 0xcb, 0xbf, 0xce, 0x3d, 0x03, 0xc9, 0x11, 0x56, 0x2c, 0x23, 0x78, 0xf2, - 0xe5, 0xae, 0x2b, 0xd7, 0x25, 0x35, 0xe0, 0xa2, 0xb7, 0xd1, 0x85, 0x82, 0x29, 0x1d, 0xd4, 0xea, - 0x7f, 0x5f, 0x8a, 0x4c, 0x5c, 0x78, 0xac, 0x89, 0x43, 0x3d, 0xb0, 0xdd, 0xcd, 0xb5, 0x80, 0x05, - 0x2f, 0x21, 0x64, 0x50, 0x4f, 0x8d, 0xb1, 0x61, 0xc2, 0xa0, 0xde, 0xe6, 0x0f, 0x8d, 0x13, 0xad, - 0xc8, 0x7c, 0xe6, 0x4d, 0xef, 0xa0, 0xd8, 0xf1, 0x24, 0x8a, 0x49, 0x3e, 0x34, 0x1b, 0xae, 0xe6, - 0x11, 0x18, 0x66, 0x83, 0xa5, 0xe1, 0x06, 0x6c, 0x38, 0x81, 0x26, 0x20, 0xfc, 0x1b, 0xea, 0xe5, - 0x38, 0xfb, 0xde, 0x32, 0xa2, 0x43, 0x60, 0x58, 0x38, 0x04, 0xfe, 0x65, 0x18, 0x1d, 0xcf, 0x20, - 0x89, 0xef, 0xa1, 0x51, 0x96, 0xe3, 0xcb, 0xb5, 0x71, 0x31, 0xed, 0x79, 0xc2, 0x40, 0x01, 0xd9, - 0x3f, 0xd8, 0xf8, 0x4d, 0x8a, 0xa1, 0xe1, 0xcf, 0xa3, 0xb2, 0xae, 0x59, 0x3a, 0x69, 0xaa, 0x40, - 0x06, 0x6e, 0x11, 0x4b, 0x99, 0x64, 0xd6, 0x18, 0x70, 0x92, 0xd8, 0x14, 0xd0, 0x60, 0x10, 0xf8, - 0x0b, 0x68, 0x46, 0xb7, 0x5b, 0x0e, 0x4b, 0xe7, 0x03, 0xa2, 0x90, 0xa0, 0xf8, 0x5a, 0x36, 0x51, - 0x0e, 0x9e, 0x24, 0x3b, 0x1d, 0xd0, 0x01, 0xc2, 0x8f, 0x50, 0xd9, 0x25, 0xec, 0x4a, 0x07, 0x64, - 0x47, 0x18, 0xd9, 0x57, 0x33, 0xc9, 0x2a, 0x0c, 0x38, 0xc6, 0x35, 0x65, 0x0a, 0x28, 0xb0, 0x7e, - 0xd9, 0x8a, 0x72, 0x7a, 0x52, 0xb7, 0x8b, 0x8b, 0xc5, 0x26, 0x1a, 0x83, 0x3c, 0x6a, 0x2e, 0x15, - 0xcb, 0x59, 0x52, 0x91, 0x45, 0x88, 0xa3, 0xcb, 0x04, 0xbd, 0x1a, 0x8c, 0x97, 0xb1, 0xe4, 0x9e, - 0x05, 0xa5, 0x82, 0x26, 0xa9, 0xab, 0xc7, 0x62, 0xe6, 0xe3, 0xd4, 0xd5, 0xab, 0xbe, 0xbc, 0xfc, - 0xa2, 0x84, 0xae, 0xf4, 0x38, 0x0e, 0x5f, 0xe1, 0x97, 0x58, 0x7a, 0x8e, 0xb0, 0x65, 0xc1, 0x52, - 0xfb, 0xdf, 0xb3, 0x99, 0xd8, 0x9e, 0x51, 0xf9, 0xbd, 0xc8, 0x00, 0x57, 0x9f, 0x6b, 0xce, 0xa3, - 0xf6, 0x3e, 0x95, 0xe1, 0x7f, 0x24, 0x74, 0xa8, 0x8b, 0x18, 0xbe, 0x2b, 0x6c, 0x11, 0xc4, 0x26, - 0xb3, 0x4e, 0x25, 0x86, 0xc0, 0x91, 0x83, 0x8d, 0xc1, 0x8f, 0xd1, 0xb4, 0xa8, 0x05, 0x94, 0xab, - 0xc1, 0xe5, 0x7c, 0x2a, 0xa0, 0x0b, 0x01, 0xad, 0xb2, 0xa0, 0x03, 0x14, 0x3f, 0xeb, 0xe6, 0x28, - 0x68, 0xc1, 0x95, 0x02, 0x9a, 0x1c, 0x29, 0xa0, 0x9a, 0x64, 0x67, 0x0d, 0x82, 0x91, 0x29, 0xec, - 0xe4, 0x5b, 0xb9, 0x92, 0x10, 0xd6, 0x4b, 0x79, 0xc2, 0x1a, 0x27, 0x11, 0x88, 0xe9, 0x83, 0x28, - 0x8b, 0xa7, 0xfb, 0x0c, 0xf7, 0xaf, 0x9c, 0x44, 0xb7, 0x2d, 0x43, 0x73, 0x3b, 0xd5, 0xc7, 0xb9, - 0x97, 0xd7, 0xe7, 0x51, 0x62, 0x4d, 0x31, 0x9d, 0xf0, 0x76, 0x14, 0x7f, 0x63, 0xf7, 0x75, 0xbd, - 0xe0, 0xa8, 0xf2, 0x56, 0x64, 0xf5, 0x53, 0x07, 0x8e, 0x1f, 0xcc, 0xb9, 0x8e, 0x7f, 0x17, 0x5d, - 0xee, 0x89, 0xd4, 0x41, 0x4e, 0xff, 0x61, 0x74, 0x41, 0xaa, 0x3a, 0x1b, 0x7b, 0xe6, 0x3e, 0x35, - 0xe6, 0xbb, 0x12, 0x9a, 0x4b, 0xd2, 0xc2, 0x9b, 0xf1, 0x73, 0xe3, 0x6a, 0x81, 0xbe, 0x80, 0xe6, - 0x3f, 0x76, 0xed, 0x5d, 0xd3, 0x20, 0xae, 0x4f, 0x27, 0x38, 0x40, 0xbe, 0xd2, 0x65, 0xed, 0x41, - 0x77, 0x6e, 0xf5, 0x28, 0xe7, 0x29, 0x94, 0xe3, 0x66, 0x5f, 0xfe, 0x8a, 0x60, 0x41, 0x62, 0xec, - 0xe0, 0x3c, 0xbf, 0x9f, 0xd0, 0xfd, 0xc5, 0x5c, 0x89, 0x17, 0x29, 0x04, 0x02, 0xbf, 0x82, 0x8e, - 0xf0, 0x5b, 0x6f, 0xf5, 0x31, 0x73, 0xe3, 0x71, 0x4e, 0x5f, 0x42, 0x73, 0xc1, 0x9b, 0x56, 0x8d, - 0xe7, 0x4b, 0xcf, 0x06, 0xed, 0xfc, 0x09, 0x2c, 0xd7, 0xd0, 0xd1, 0x04, 0x09, 0x3e, 0xbb, 0x2d, - 0x34, 0x17, 0xa4, 0x72, 0x3b, 0x7c, 0x91, 0xa9, 0xd1, 0x17, 0x67, 0x29, 0xc1, 0x0a, 0x65, 0x96, - 0xc6, 0x1b, 0xe4, 0x9b, 0x70, 0x39, 0x7f, 0x1c, 0xa6, 0x46, 0x59, 0xba, 0xdd, 0x22, 0xc1, 0x25, - 0x24, 0x4f, 0x13, 0xff, 0x5a, 0x82, 0x8b, 0x49, 0x16, 0x2a, 0x9f, 0xeb, 0x65, 0x74, 0x48, 0x6f, - 0xbb, 0x2e, 0xb1, 0x84, 0x30, 0x40, 0x90, 0x8a, 0xc7, 0x3b, 0xc2, 0x08, 0x00, 0xde, 0x46, 0x27, - 0xc4, 0xcc, 0x2d, 0x46, 0x50, 0x35, 0x80, 0x62, 0x51, 0xc0, 0x2e, 0x75, 0x1e, 0xca, 0x31, 0x27, - 0x75, 0x7a, 0xf2, 0x3f, 0x4a, 0xe8, 0x68, 0x2a, 0x46, 0xc6, 0x3b, 0xec, 0x80, 0x52, 0x4d, 0xf0, - 0x13, 0x34, 0x06, 0xcb, 0x62, 0xa6, 0xbb, 0xbc, 0x7a, 0xe7, 0xa3, 0x4f, 0x4e, 0x0f, 0x7d, 0xff, - 0x93, 0xd3, 0x2f, 0x37, 0x4c, 0x6f, 0xbb, 0x5d, 0x5b, 0xd2, 0xed, 0x16, 0xaf, 0x42, 0xe3, 0xff, - 0x5c, 0xa1, 0xc6, 0x0e, 0x2f, 0xa6, 0xda, 0xb2, 0xbc, 0xef, 0x7d, 0xe7, 0x0a, 0xe2, 0x8e, 0x92, - 0x2d, 0xcb, 0x53, 0x38, 0x2d, 0xf9, 0x36, 0x5c, 0x3a, 0x22, 0xe3, 0xd7, 0xc7, 0x3e, 0xfe, 0x03, - 0x7f, 0x6c, 0x64, 0x23, 0x0f, 0xb2, 0x93, 0x16, 0x3a, 0x49, 0x03, 0x82, 0x99, 0x7b, 0x99, 0x79, - 0xe9, 0xc9, 0x98, 0x8b, 0x32, 0x4f, 0x33, 0x26, 0x29, 0xff, 0xb3, 0x84, 0x8e, 0x67, 0x60, 0x65, - 0xbd, 0x92, 0xfe, 0x5f, 0xef, 0xe8, 0x3f, 0x95, 0xd0, 0x18, 0xd4, 0x5a, 0x60, 0x15, 0x1d, 0x4d, - 0x6a, 0xbb, 0x18, 0x70, 0xbd, 0x9c, 0xc9, 0xc4, 0xb8, 0xaa, 0x33, 0x0b, 0x72, 0x98, 0x76, 0x37, - 0xe2, 0x2a, 0x3a, 0x04, 0xc6, 0x9f, 0x76, 0x2c, 0x3d, 0x20, 0x0e, 0xcc, 0xb8, 0x98, 0xe9, 0x3b, - 0xf5, 0x11, 0xaa, 0x0c, 0x9e, 0x11, 0x9e, 0xad, 0xc5, 0x1b, 0xf0, 0x7d, 0x84, 0xa0, 0x8e, 0x84, - 0x51, 0x83, 0x7b, 0xca, 0xd9, 0x2c, 0x6a, 0xac, 0xb4, 0x84, 0xd1, 0x99, 0xd4, 0x83, 0x9f, 0xf8, - 0x01, 0x2a, 0xb7, 0x34, 0x4b, 0x6b, 0x04, 0x33, 0x82, 0xab, 0xf9, 0xb9, 0x2c, 0x1a, 0x0f, 0x01, - 0x96, 0x51, 0x99, 0x6a, 0x45, 0x1f, 0x78, 0x0b, 0x4d, 0x93, 0x3d, 0xa2, 0xb7, 0x7d, 0x8b, 0xcb, - 0x08, 0x8d, 0x32, 0x42, 0xe7, 0xb3, 0x08, 0x6d, 0x70, 0x60, 0x46, 0xa9, 0x4c, 0x84, 0x2f, 0xfc, - 0x26, 0x1a, 0x6f, 0xe8, 0x40, 0x64, 0x2c, 0xdf, 0x35, 0xba, 0xb9, 0xc6, 0xd0, 0xc7, 0x1a, 0xba, - 0xff, 0xaf, 0xfc, 0x9b, 0x25, 0x34, 0x9b, 0x60, 0x19, 0x7e, 0x19, 0xcd, 0xd6, 0x28, 0x4f, 0xda, - 0xdd, 0x26, 0x66, 0x63, 0x3b, 0xc8, 0x64, 0x9d, 0xae, 0x51, 0x06, 0xfb, 0x0e, 0x6b, 0xc4, 0x32, - 0x9a, 0x8e, 0xe0, 0x34, 0x1a, 0x24, 0x73, 0x4d, 0x05, 0x50, 0xbc, 0x0a, 0xa9, 0x46, 0x55, 0x31, - 0x12, 0x03, 0x81, 0xb2, 0x72, 0x8d, 0x3e, 0x8d, 0x62, 0x31, 0x8b, 0x68, 0xae, 0x46, 0xd5, 0x56, - 0x87, 0x7e, 0xd8, 0x54, 0x77, 0x89, 0x4b, 0xcd, 0xb0, 0x2a, 0x6a, 0xa6, 0x46, 0x1f, 0xfa, 0xcd, - 0xcf, 0xa0, 0x15, 0xdf, 0x47, 0xa7, 0x6a, 0x54, 0x35, 0x48, 0x5d, 0x6b, 0x37, 0x3d, 0x55, 0xdf, - 0xd6, 0x5c, 0x4d, 0xf7, 0x88, 0xab, 0xd2, 0x20, 0x0f, 0x06, 0x72, 0xfc, 0x4f, 0xd4, 0xe8, 0x3a, - 0xc0, 0xac, 0x05, 0x20, 0x55, 0x9e, 0x16, 0x73, 0x0b, 0x9d, 0x10, 0x29, 0xd8, 0xcd, 0x26, 0xc4, - 0x79, 0x84, 0xe4, 0xff, 0x63, 0x11, 0x76, 0xd0, 0x1d, 0x14, 0x80, 0xf8, 0xd3, 0xf4, 0x19, 0x4b, - 0xe8, 0xfc, 0x38, 0xcb, 0xe9, 0x9f, 0xac, 0xd1, 0x87, 0xd0, 0xc0, 0xbb, 0x9f, 0xdb, 0xee, 0x0e, - 0x71, 0x29, 0x0b, 0x2a, 0x4d, 0xfb, 0xdd, 0x5f, 0x80, 0x06, 0x7c, 0x09, 0x1d, 0xaa, 0x51, 0x95, - 0x58, 0x5a, 0xad, 0x49, 0x54, 0xa3, 0xad, 0x35, 0x55, 0xa3, 0xc6, 0x02, 0x4b, 0x13, 0xfe, 0x2a, - 0x37, 0x58, 0xfb, 0x7a, 0x5b, 0x6b, 0xae, 0xd7, 0xe4, 0x77, 0xd1, 0x64, 0x28, 0x79, 0xfe, 0x15, - 0x88, 0x0b, 0x6c, 0x90, 0xf6, 0x3c, 0x0e, 0xb2, 0x68, 0xb0, 0xc4, 0x1c, 0xd6, 0x15, 0x1c, 0xd8, - 0xc3, 0x6c, 0x4e, 0x65, 0xd6, 0x18, 0x9c, 0xd6, 0xff, 0x35, 0x8c, 0x0e, 0xa7, 0xa8, 0x9c, 0xbf, - 0xcd, 0xd4, 0x51, 0x75, 0xdb, 0x20, 0x21, 0xcf, 0x81, 0xfc, 0x34, 0x75, 0xd6, 0x6c, 0x83, 0x04, - 0x2c, 0x3f, 0x8f, 0x66, 0x02, 0x38, 0xdd, 0x6e, 0xb5, 0x4c, 0x8f, 0xef, 0x73, 0x19, 0xc0, 0xd6, - 0x58, 0x1b, 0xbe, 0xc8, 0xa8, 0x69, 0xae, 0xbe, 0x6d, 0x7a, 0x44, 0xf7, 0xda, 0x6e, 0x10, 0xc7, - 0x9a, 0xa1, 0xce, 0x8a, 0xd0, 0xea, 0x4b, 0x0d, 0x75, 0xd4, 0x86, 0x9d, 0xd8, 0xe8, 0x29, 0xea, - 0x6c, 0xda, 0xc1, 0x90, 0x4b, 0xe8, 0x30, 0x75, 0x54, 0xb8, 0x76, 0x98, 0x56, 0x43, 0xa5, 0x1d, - 0xea, 0x91, 0x56, 0x50, 0x0f, 0x43, 0x9d, 0x47, 0x41, 0x4f, 0x95, 0x75, 0xc4, 0xe0, 0x85, 0xeb, - 0xcb, 0x58, 0x1c, 0x3e, 0xbc, 0xc0, 0xf0, 0x25, 0x19, 0x36, 0xcb, 0x54, 0x63, 0x1b, 0x3f, 0x1e, - 0x2c, 0x69, 0x9d, 0x35, 0xb2, 0xed, 0xbe, 0x8a, 0x8e, 0xa6, 0xa6, 0x26, 0xf1, 0xdc, 0x20, 0xdc, - 0x9d, 0x95, 0x24, 0xff, 0x89, 0x84, 0xa6, 0x04, 0x7d, 0x87, 0xd4, 0x10, 0xb6, 0xe1, 0x4d, 0x5b, - 0x33, 0x54, 0x4f, 0xa3, 0x3b, 0x8c, 0xc9, 0x13, 0xca, 0x0c, 0xb4, 0x7f, 0xce, 0xd6, 0x8c, 0x27, - 0x1a, 0xdd, 0xc1, 0xd7, 0xd0, 0x51, 0x0e, 0xb9, 0x4d, 0xb4, 0xa6, 0xb7, 0xad, 0xea, 0xdb, 0x44, - 0xdf, 0xe1, 0xf9, 0xf2, 0x13, 0xca, 0x61, 0xe8, 0x7c, 0x87, 0xf5, 0xad, 0x41, 0x17, 0xbe, 0x8b, - 0x4e, 0x72, 0x1c, 0x9f, 0xb0, 0xea, 0x12, 0xcf, 0x3f, 0xd3, 0xf4, 0x6d, 0xe2, 0xcb, 0xa3, 0xcb, - 0x53, 0xac, 0xe7, 0x01, 0xc4, 0x1f, 0x44, 0xf1, 0x01, 0xaa, 0x41, 0xbf, 0x7f, 0xc0, 0x96, 0x45, - 0x9b, 0xe2, 0xab, 0x46, 0xd3, 0xa4, 0x1e, 0xb1, 0x54, 0x56, 0x0d, 0x0a, 0xf4, 0x7c, 0xa5, 0xb5, - 0xdb, 0x81, 0x09, 0x38, 0x06, 0x00, 0x55, 0xa2, 0x35, 0x19, 0xb5, 0x27, 0xd0, 0x8b, 0xef, 0xa1, - 0x97, 0xf8, 0xbb, 0xc2, 0x73, 0xb5, 0x7a, 0xdd, 0xd4, 0xd5, 0x1d, 0x42, 0x1c, 0x86, 0xac, 0x1a, - 0x5a, 0x87, 0x87, 0x03, 0xe7, 0x01, 0xe6, 0x09, 0x80, 0xbc, 0x4b, 0x88, 0xe3, 0xe3, 0xaf, 0x6b, - 0x1d, 0x7c, 0x13, 0x9d, 0x10, 0x92, 0x3c, 0x12, 0xc8, 0x60, 0x32, 0x8e, 0x46, 0x79, 0x1c, 0x02, - 0xa6, 0xfc, 0x4b, 0x12, 0x1a, 0x03, 0xa3, 0x26, 0x70, 0xbb, 0xa1, 0xab, 0x2f, 0xec, 0x56, 0xcd, - 0x24, 0x71, 0x6e, 0x6f, 0xea, 0xef, 0xb3, 0x56, 0x5f, 0x00, 0x22, 0x48, 0xdf, 0x42, 0x72, 0x36, - 0x97, 0x03, 0x38, 0x56, 0x94, 0x77, 0x15, 0x1d, 0xe5, 0xdd, 0x30, 0x17, 0xd3, 0xf2, 0x88, 0xbb, - 0xab, 0x35, 0xf9, 0x84, 0x70, 0x83, 0x81, 0xf9, 0x13, 0xd9, 0xe2, 0x3d, 0xf2, 0xb1, 0xe8, 0x76, - 0xcd, 0x0e, 0x49, 0x7e, 0xc3, 0x91, 0x1f, 0x45, 0x57, 0x66, 0xde, 0x1e, 0x25, 0xb5, 0xf3, 0x82, - 0xc6, 0x82, 0xa4, 0x76, 0x8e, 0xc7, 0xa1, 0x65, 0x27, 0x8c, 0xdd, 0x3e, 0xa5, 0xc4, 0x85, 0x17, - 0x5a, 0x8f, 0xa5, 0x12, 0xa1, 0xf7, 0x70, 0x58, 0xf0, 0x1e, 0x16, 0x3a, 0x1d, 0xe5, 0x2f, 0xc6, - 0x4a, 0x01, 0x83, 0x11, 0xf9, 0x32, 0xde, 0x4a, 0xbc, 0x05, 0xcf, 0xe5, 0x86, 0x8b, 0x21, 0xdd, - 0x20, 0x7c, 0x03, 0x5a, 0x61, 0xfd, 0x9f, 0xd0, 0x2b, 0x3e, 0x01, 0x21, 0xb0, 0x13, 0x3d, 0x01, - 0xd9, 0x77, 0x3f, 0x2b, 0x89, 0x55, 0xdb, 0xc9, 0xef, 0xc3, 0x9b, 0xb3, 0x6b, 0xbc, 0x83, 0x58, - 0x4b, 0x3b, 0x4c, 0xa0, 0xf6, 0xb9, 0xf4, 0xe8, 0xb9, 0x45, 0x8c, 0xff, 0x8b, 0xcd, 0xf9, 0x20, - 0x56, 0x3f, 0x13, 0x1b, 0xf6, 0x20, 0x56, 0xf5, 0xf7, 0xc3, 0x68, 0xec, 0xb1, 0xdd, 0x34, 0xf5, - 0x0e, 0xbe, 0x80, 0x66, 0x1c, 0xd7, 0xb4, 0x74, 0xd3, 0xd1, 0x9a, 0x10, 0x89, 0x94, 0x58, 0x25, - 0xee, 0x74, 0xd8, 0xca, 0xc2, 0x99, 0x17, 0xd1, 0x6c, 0x04, 0x16, 0x05, 0x6d, 0x27, 0x95, 0x08, - 0xfb, 0x99, 0xdf, 0xda, 0x1d, 0x3f, 0x2d, 0x1d, 0x48, 0xfc, 0x94, 0xd7, 0x58, 0x0a, 0xf1, 0xd3, - 0x4b, 0x68, 0x4e, 0xc8, 0x27, 0x81, 0x57, 0x02, 0x24, 0x4e, 0xcc, 0x46, 0x49, 0x25, 0xf0, 0x48, - 0xb8, 0x84, 0xe6, 0x84, 0x2b, 0x0b, 0x80, 0x42, 0x82, 0xc9, 0x6c, 0x94, 0x41, 0x02, 0xa0, 0x29, - 0xc9, 0x22, 0xe3, 0xa9, 0xc9, 0x22, 0xff, 0x2e, 0x45, 0xde, 0x2c, 0xf0, 0xa8, 0x33, 0x86, 0x9a, - 0x84, 0x1e, 0x5c, 0x9d, 0x4d, 0x22, 0x44, 0x5c, 0x1a, 0x20, 0x44, 0x9c, 0x1e, 0x5b, 0x48, 0x0a, - 0xe0, 0x68, 0x97, 0x00, 0xfe, 0x58, 0x94, 0x17, 0x9d, 0x5c, 0x1d, 0x17, 0xc0, 0xdb, 0x68, 0xc2, - 0xe1, 0x6d, 0x45, 0xe5, 0x49, 0x20, 0x6a, 0x4a, 0x08, 0x2f, 0x3f, 0x8a, 0xe2, 0x4e, 0xf1, 0xba, - 0x67, 0x78, 0xff, 0x84, 0x2c, 0xbc, 0x98, 0x5e, 0x46, 0x3d, 0x99, 0x2c, 0x8f, 0x96, 0xb5, 0x28, - 0x6a, 0x94, 0x41, 0x70, 0xdf, 0x35, 0x55, 0x6b, 0x51, 0x7c, 0xc4, 0xd7, 0xc9, 0xf8, 0x30, 0x3d, - 0x9a, 0x03, 0xf9, 0x27, 0x23, 0xaf, 0x7d, 0x2a, 0x11, 0x3e, 0xcb, 0xa7, 0x68, 0x2e, 0xb1, 0xee, - 0xe0, 0x29, 0xfb, 0x4a, 0x6f, 0xf5, 0xe3, 0xac, 0xf8, 0x65, 0x36, 0xce, 0x24, 0x2a, 0xdf, 0x02, - 0xc3, 0xcc, 0x1c, 0x82, 0xdc, 0x07, 0x28, 0x64, 0x9d, 0x9c, 0x44, 0x93, 0x81, 0x61, 0x0e, 0x92, - 0x4e, 0x26, 0xb8, 0x65, 0xa6, 0xf2, 0xc7, 0x52, 0xe4, 0xd8, 0x8b, 0xe1, 0xf2, 0x19, 0x7f, 0x21, - 0x61, 0x8e, 0xde, 0x2e, 0x4a, 0x24, 0x49, 0x21, 0x02, 0xa6, 0x8a, 0xa7, 0x91, 0x70, 0x72, 0x95, - 0x2f, 0xf2, 0x94, 0xb6, 0xcc, 0x24, 0x92, 0xeb, 0xf1, 0x24, 0x92, 0x82, 0xc4, 0x26, 0x21, 0x87, - 0xe4, 0x0e, 0xc8, 0x0c, 0x73, 0x7b, 0xf1, 0x48, 0x80, 0xd5, 0xe0, 0xa5, 0x5d, 0x50, 0x36, 0x99, - 0xe7, 0xce, 0xb8, 0x07, 0x49, 0x95, 0x79, 0xd8, 0x69, 0xe5, 0x87, 0x23, 0x41, 0x0e, 0xd5, 0x73, - 0x18, 0x1d, 0x52, 0x37, 0x78, 0xe0, 0x65, 0xf3, 0xd9, 0x66, 0x94, 0xc4, 0xd1, 0x6b, 0x28, 0xbc, - 0x11, 0x0b, 0x85, 0x83, 0xcb, 0xa1, 0x82, 0x26, 0x0d, 0xea, 0xf1, 0x08, 0x0b, 0x14, 0x20, 0x8c, - 0x1b, 0xd4, 0x63, 0x11, 0x16, 0x15, 0x26, 0x9e, 0x37, 0xf0, 0xfe, 0x32, 0x47, 0xde, 0x4c, 0xd4, - 0x7b, 0x55, 0xcd, 0x17, 0xa4, 0x27, 0x7f, 0xf5, 0x9d, 0x44, 0x05, 0x17, 0x20, 0xf2, 0xc9, 0x44, - 0xc6, 0x92, 0xa5, 0x2b, 0xc7, 0xea, 0x23, 0x58, 0xc2, 0xf2, 0x42, 0x58, 0x5c, 0x05, 0x59, 0xee, - 0xfc, 0x6f, 0xc4, 0x04, 0xe9, 0x1b, 0xf2, 0x9d, 0xf0, 0x24, 0x4f, 0xf6, 0xf3, 0x11, 0x72, 0x93, - 0x5f, 0x37, 0xc3, 0x1c, 0xfa, 0x28, 0xc7, 0x7c, 0x90, 0xba, 0x43, 0x59, 0x0d, 0xa5, 0x2e, 0x8b, - 0xd0, 0xfe, 0x0a, 0x99, 0xaf, 0xfd, 0xd1, 0x5d, 0x74, 0xd8, 0x1f, 0xe1, 0x21, 0x87, 0xaa, 0x12, - 0x77, 0xd7, 0xd4, 0x09, 0xfe, 0x2a, 0xc2, 0xdd, 0x85, 0xb2, 0xf8, 0x6a, 0x9e, 0x9e, 0xa6, 0xfe, - 0x99, 0x88, 0xca, 0xb5, 0x7e, 0x50, 0x60, 0x31, 0xf2, 0x10, 0xfe, 0xba, 0x94, 0x92, 0xf3, 0x16, - 0x2d, 0x1b, 0xdf, 0xee, 0x39, 0xf3, 0xac, 0x8b, 0xe9, 0x95, 0xb7, 0x06, 0xc2, 0x0d, 0xa7, 0xf6, - 0x1b, 0xc9, 0xd2, 0xc1, 0xd8, 0xc4, 0x6e, 0x16, 0x2c, 0x37, 0xb3, 0x78, 0xbf, 0x72, 0x6b, 0x00, - 0xcc, 0x70, 0x52, 0xbf, 0x1c, 0x25, 0xa3, 0x26, 0x6b, 0xdd, 0xf1, 0x8d, 0xbe, 0x08, 0x87, 0x2a, - 0x50, 0x79, 0xb3, 0x6f, 0xbc, 0x70, 0x3a, 0x7f, 0xc7, 0xb3, 0x9c, 0x7a, 0xa9, 0x34, 0xc7, 0x9b, - 0x45, 0xfb, 0xd1, 0x63, 0x81, 0x7d, 0xe5, 0x9d, 0xfd, 0x13, 0x4a, 0x63, 0x68, 0xb2, 0x52, 0xbc, - 0x90, 0xa1, 0x19, 0x45, 0xec, 0x85, 0x0c, 0xcd, 0x2a, 0x49, 0x97, 0x87, 0xf0, 0x6f, 0x4b, 0xd1, - 0x61, 0xdc, 0x5d, 0x03, 0x8e, 0x6f, 0x15, 0xad, 0x3c, 0xb3, 0x66, 0xbd, 0x72, 0x7b, 0x10, 0xd4, - 0x70, 0x5e, 0x2f, 0xd0, 0xa1, 0xae, 0x92, 0x6d, 0xfc, 0x5a, 0xc1, 0x3a, 0xbb, 0x8a, 0xcc, 0x2b, - 0x57, 0xfb, 0xc0, 0x08, 0xc7, 0xfe, 0x05, 0x29, 0x7c, 0x56, 0xc7, 0x6d, 0x34, 0x7e, 0xbd, 0x80, - 0x5c, 0xaa, 0xc9, 0xaf, 0xbc, 0xd1, 0x27, 0x56, 0xd7, 0xe6, 0xa4, 0x17, 0x7d, 0xe3, 0x22, 0xc5, - 0xce, 0xae, 0x4b, 0xcf, 0xdf, 0x9c, 0xfc, 0x1a, 0x73, 0x79, 0x08, 0xff, 0x6a, 0x54, 0xd7, 0xdf, - 0x55, 0xb6, 0x8d, 0xdf, 0xec, 0x8f, 0x74, 0xc4, 0xa6, 0x9b, 0xfd, 0x23, 0x86, 0x33, 0xfa, 0x2a, - 0x38, 0x48, 0x92, 0x19, 0xa8, 0x38, 0x35, 0xf9, 0x82, 0x55, 0x8e, 0x24, 0x41, 0x23, 0x89, 0xe9, - 0x1d, 0x23, 0x45, 0x5a, 0xa3, 0xa2, 0xef, 0x42, 0x69, 0xed, 0x2a, 0x43, 0x2f, 0x94, 0xd6, 0xee, - 0x8a, 0xf2, 0xb8, 0xb4, 0xc6, 0x2b, 0xb3, 0x0b, 0xa5, 0x35, 0xb5, 0xfa, 0xbb, 0x50, 0x5a, 0xd3, - 0xcb, 0xbf, 0xe5, 0x21, 0xfc, 0x35, 0x09, 0x1d, 0x4b, 0xaf, 0x9a, 0xc5, 0x6f, 0xf4, 0xb4, 0xb0, - 0x64, 0x3d, 0x61, 0xe5, 0x46, 0xbf, 0x68, 0x5d, 0x56, 0x36, 0xa5, 0x9e, 0x32, 0xdf, 0xca, 0x66, - 0x57, 0xe0, 0xe6, 0x5b, 0xd9, 0x9c, 0xc2, 0x4d, 0xe1, 0xd6, 0x91, 0x51, 0x50, 0x8c, 0x6f, 0xf7, - 0xb7, 0xd0, 0x98, 0xf1, 0x7f, 0x6b, 0x20, 0xdc, 0x70, 0x6a, 0xbf, 0x2b, 0x25, 0x2e, 0xac, 0x49, - 0x76, 0xbd, 0xd5, 0x93, 0xf5, 0xca, 0xe0, 0xd9, 0x9d, 0xc1, 0x90, 0xbb, 0x2c, 0x4d, 0x5a, 0xf9, - 0x1f, 0xee, 0x63, 0x43, 0x62, 0x95, 0x9c, 0xf9, 0x96, 0x26, 0xaf, 0xd2, 0x50, 0x90, 0xac, 0x94, - 0xa2, 0xbb, 0x7c, 0xc9, 0xca, 0xae, 0xf2, 0xcb, 0x97, 0xac, 0x9c, 0xea, 0x3e, 0x79, 0x08, 0xff, - 0xa1, 0x58, 0x03, 0x98, 0x5e, 0x0d, 0x87, 0xef, 0x15, 0x92, 0xcf, 0x2d, 0xc7, 0xab, 0xbc, 0x3d, - 0x30, 0x7e, 0x38, 0xcd, 0xe7, 0x68, 0x2e, 0x59, 0x13, 0x84, 0x97, 0x0b, 0x64, 0x23, 0x59, 0xfc, - 0x54, 0x79, 0xad, 0x77, 0x84, 0x70, 0xe0, 0x9f, 0x95, 0xe0, 0x64, 0x48, 0x56, 0xdd, 0xe0, 0xeb, - 0xfd, 0xd5, 0xe8, 0xc0, 0x0c, 0x5e, 0x1f, 0xa4, 0xb0, 0x27, 0x31, 0x0b, 0xb1, 0x74, 0xa5, 0x78, - 0x16, 0x29, 0x75, 0x39, 0xc5, 0xb3, 0x48, 0xab, 0x8e, 0x11, 0x94, 0x29, 0xad, 0x4e, 0x23, 0x5f, - 0x99, 0x72, 0xea, 0x5b, 0xf2, 0x95, 0x29, 0xaf, 0x24, 0x44, 0x1e, 0xc2, 0x7f, 0x2a, 0x45, 0xde, - 0xac, 0xec, 0xda, 0x0c, 0x5c, 0x58, 0x0e, 0x54, 0x58, 0x1a, 0x52, 0x59, 0xdd, 0x0f, 0x89, 0x70, - 0xbe, 0x7f, 0x2c, 0xe5, 0x14, 0x0d, 0xf0, 0x22, 0x0b, 0xfc, 0x76, 0x91, 0x98, 0x16, 0x54, 0x78, - 0x54, 0xee, 0x0f, 0x4e, 0x20, 0xed, 0x31, 0xd9, 0x5d, 0x00, 0x51, 0xf8, 0x98, 0xcc, 0x2c, 0xdb, - 0x28, 0x7c, 0x4c, 0x66, 0x57, 0x6d, 0xc4, 0x27, 0xd5, 0xbd, 0x86, 0xc2, 0x49, 0x65, 0x96, 0x69, - 0x14, 0x4e, 0x2a, 0xbb, 0x10, 0x23, 0x5d, 0x37, 0x59, 0xaa, 0x7f, 0xcf, 0xba, 0x29, 0x96, 0x5e, - 0xf4, 0xac, 0x9b, 0xb1, 0x12, 0x0a, 0x79, 0x08, 0x7f, 0xb3, 0xcb, 0x8f, 0x9f, 0x28, 0x38, 0xc0, - 0x77, 0xfa, 0xa1, 0x9c, 0x2c, 0x9d, 0xa8, 0xdc, 0x1d, 0x10, 0x3b, 0x55, 0x55, 0xb3, 0xeb, 0x00, - 0x70, 0xef, 0x95, 0x7b, 0x59, 0x25, 0x0e, 0xc5, 0xaa, 0x5a, 0x5c, 0x86, 0x90, 0xf0, 0x14, 0x14, - 0xa5, 0xce, 0x16, 0x7b, 0x0a, 0x7a, 0x4c, 0xe2, 0x2d, 0xf6, 0x14, 0xf4, 0x9a, 0xc5, 0x2b, 0x0f, - 0xe1, 0x3f, 0x97, 0x22, 0x2f, 0x7d, 0x4e, 0xe2, 0x2c, 0x5e, 0x1d, 0x68, 0xcc, 0xb8, 0x78, 0xac, - 0xed, 0x8b, 0x46, 0xaa, 0x77, 0x2d, 0xad, 0xd4, 0xa2, 0xd0, 0x27, 0x90, 0x5d, 0xf2, 0x51, 0xec, - 0x5d, 0xcb, 0xa9, 0x3f, 0x90, 0x87, 0xf0, 0x5f, 0x49, 0x51, 0x6c, 0x26, 0x37, 0xa3, 0x1f, 0xaf, - 0x17, 0x0d, 0xd4, 0x4b, 0xe1, 0x41, 0x65, 0x63, 0x9f, 0x54, 0xba, 0xde, 0x77, 0xdd, 0x19, 0xfb, - 0x85, 0xb6, 0x26, 0xad, 0x5a, 0x20, 0xff, 0x7d, 0x97, 0x99, 0x14, 0x9f, 0x30, 0x94, 0xb1, 0x44, - 0xe8, 0x42, 0x43, 0x99, 0x92, 0x82, 0x5d, 0x6c, 0x28, 0xd3, 0x12, 0x95, 0xe5, 0x21, 0x6c, 0xa1, - 0xe9, 0x58, 0x96, 0x30, 0x7e, 0xb5, 0xc0, 0xf8, 0xc7, 0xf2, 0x91, 0x2b, 0x57, 0x7a, 0x84, 0x4e, - 0x1b, 0x0f, 0xf2, 0x13, 0x0b, 0xc7, 0x13, 0x33, 0x34, 0x8a, 0xc7, 0x8b, 0xe5, 0x6d, 0xc4, 0x5c, - 0x09, 0x51, 0x3e, 0x44, 0xa1, 0x2b, 0xa1, 0x2b, 0x59, 0xa3, 0x72, 0xb5, 0x0f, 0x8c, 0x70, 0xec, - 0x9f, 0x96, 0xc0, 0x67, 0x9f, 0x48, 0x61, 0xc0, 0xd7, 0x7a, 0xb9, 0x78, 0xc7, 0xf3, 0x2b, 0x2a, - 0xd7, 0xfb, 0xc2, 0x49, 0x73, 0x22, 0x24, 0x52, 0x0e, 0x0a, 0x9d, 0x08, 0xe9, 0x99, 0x11, 0x95, - 0x1b, 0xfd, 0xa2, 0x75, 0xcd, 0xa5, 0x3b, 0xfa, 0x8c, 0xdf, 0xe8, 0xed, 0x8c, 0x4a, 0xc4, 0xe2, - 0x2b, 0x37, 0xfa, 0x45, 0x4b, 0xbd, 0x1f, 0xa4, 0x86, 0x96, 0x8b, 0xef, 0x07, 0x79, 0x21, 0xee, - 0xe2, 0xfb, 0x41, 0x6e, 0x3c, 0x3b, 0x61, 0xfa, 0x53, 0x62, 0xca, 0xc5, 0xa6, 0x3f, 0x3b, 0x9a, - 0x5d, 0x6c, 0xfa, 0x73, 0x82, 0xd8, 0x82, 0x58, 0x27, 0xe2, 0xbd, 0xf9, 0x62, 0x9d, 0x1e, 0x9d, - 0xae, 0x5c, 0x1f, 0x20, 0xa0, 0x2c, 0x0f, 0xe1, 0x6f, 0x49, 0x61, 0x26, 0x4d, 0x46, 0x9c, 0x16, - 0xdf, 0x2d, 0xb4, 0x4c, 0x79, 0xd1, 0xe1, 0xca, 0xbd, 0x41, 0xd1, 0xbb, 0xe6, 0x98, 0x1d, 0x92, - 0xcd, 0x9f, 0x63, 0x61, 0x0c, 0x39, 0x7f, 0x8e, 0xc5, 0x91, 0xe0, 0x14, 0x47, 0x2b, 0xfb, 0x53, - 0x6b, 0xbd, 0x39, 0x5a, 0x85, 0xf8, 0x6f, 0x8f, 0x8e, 0x56, 0x31, 0xf0, 0x2b, 0x78, 0xe3, 0xd3, - 0x2b, 0x40, 0xf2, 0xbd, 0xf1, 0xb9, 0x05, 0x27, 0xf9, 0xde, 0xf8, 0xfc, 0x82, 0x13, 0xc1, 0x83, - 0x97, 0x55, 0xd1, 0x90, 0xef, 0xc1, 0x2b, 0x28, 0xa2, 0xc8, 0xf7, 0xe0, 0x15, 0x15, 0x51, 0x08, - 0x86, 0x2b, 0x33, 0xd2, 0x8c, 0xef, 0xf4, 0xb4, 0x19, 0x19, 0x91, 0xee, 0xca, 0xdd, 0x01, 0xb1, - 0x83, 0x09, 0xae, 0x6a, 0x1f, 0x7d, 0xba, 0x20, 0x7d, 0xfc, 0xe9, 0x82, 0xf4, 0x83, 0x4f, 0x17, - 0xa4, 0x5f, 0xfb, 0x6c, 0x61, 0xe8, 0xe3, 0xcf, 0x16, 0x86, 0xfe, 0xed, 0xb3, 0x85, 0xa1, 0xf7, - 0x37, 0x85, 0x92, 0x86, 0x9a, 0x55, 0xbb, 0xc2, 0xf2, 0x9f, 0x97, 0xa3, 0xf0, 0xc0, 0x15, 0x1e, - 0x1e, 0xb8, 0x12, 0xd4, 0x29, 0x2c, 0xa7, 0xff, 0xff, 0x9d, 0x6a, 0x63, 0xec, 0x7f, 0xff, 0x73, - 0xfd, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x34, 0x2c, 0x89, 0x83, 0x00, 0x6a, 0x00, 0x00, + 0x3b, 0x50, 0xf3, 0x01, 0x54, 0x8b, 0x41, 0xb0, 0x71, 0x47, 0x94, 0x39, 0xd6, 0x23, 0x60, 0xfa, + 0xa7, 0x1e, 0xb1, 0x8c, 0x38, 0x2c, 0xe8, 0xca, 0x0c, 0xb1, 0x0c, 0x11, 0x32, 0x85, 0x1f, 0xa5, + 0x54, 0x7e, 0xfc, 0x8e, 0x84, 0x5e, 0xeb, 0x7d, 0xd2, 0xfb, 0x56, 0xf3, 0x9e, 0x57, 0x20, 0x6f, + 0x87, 0x02, 0x21, 0x1c, 0x01, 0xcc, 0x1c, 0x1c, 0xf4, 0x61, 0xf3, 0x66, 0x28, 0x12, 0xdd, 0x23, + 0xf1, 0x05, 0x1f, 0x41, 0xa3, 0xd1, 0x11, 0x5c, 0x52, 0xe0, 0x43, 0x7e, 0x01, 0x0a, 0xe1, 0xb3, + 0x6e, 0x63, 0xcf, 0x31, 0x5d, 0x62, 0x70, 0xe4, 0xd5, 0x4e, 0xd5, 0x11, 0xc4, 0x96, 0xdf, 0xcd, + 0xb4, 0x00, 0x7d, 0x02, 0x1a, 0x56, 0x3c, 0x2c, 0xa3, 0x69, 0xc7, 0x35, 0x5b, 0x9a, 0xdb, 0x51, + 0xa9, 0x13, 0x9c, 0x21, 0xd3, 0xca, 0x14, 0x6f, 0xac, 0x3a, 0x5b, 0x86, 0x3f, 0x36, 0xb3, 0x23, + 0xfc, 0xda, 0x08, 0x1f, 0xf2, 0x8f, 0x47, 0x27, 0x58, 0xda, 0xd8, 0xd1, 0x46, 0xc5, 0x4f, 0xca, + 0x22, 0x59, 0x0e, 0x8f, 0xc8, 0x9f, 0x97, 0xd0, 0x3c, 0xe7, 0x0a, 0xec, 0xa1, 0x7f, 0x29, 0x11, + 0x6c, 0x0a, 0x7f, 0x66, 0x89, 0x36, 0x05, 0x9a, 0x98, 0x4d, 0x49, 0x18, 0x9d, 0xe1, 0x5e, 0x8c, + 0x4e, 0xba, 0x7c, 0x56, 0xc3, 0xeb, 0x86, 0x38, 0x8d, 0x48, 0x53, 0x07, 0x79, 0x71, 0xc8, 0xad, + 0xd0, 0x92, 0xf1, 0x3b, 0xd3, 0x0f, 0xd7, 0x70, 0xee, 0xc0, 0x5e, 0x65, 0x0d, 0xc7, 0x17, 0xd3, + 0x75, 0x3f, 0x93, 0x06, 0xba, 0x9f, 0x35, 0x42, 0x69, 0x4e, 0x0c, 0x76, 0xd0, 0x96, 0xd4, 0x0c, + 0x0f, 0x9f, 0x94, 0x81, 0x0e, 0x76, 0x4d, 0x46, 0x28, 0x8b, 0x30, 0x42, 0x42, 0x16, 0x0f, 0x68, + 0x9b, 0xbe, 0x25, 0x85, 0xb2, 0x26, 0x0e, 0xc3, 0x97, 0x72, 0x37, 0x71, 0x2a, 0xf4, 0x78, 0xe7, + 0x0c, 0x1e, 0xab, 0x07, 0x74, 0xfb, 0xbe, 0x8e, 0x5e, 0xe2, 0x53, 0xdc, 0xb0, 0x0c, 0xc7, 0x36, + 0x7d, 0xae, 0x57, 0x9d, 0x68, 0x6b, 0x0f, 0xa3, 0x51, 0x30, 0x24, 0x12, 0x33, 0x24, 0x23, 0xd4, + 0xd9, 0x32, 0xe4, 0xb7, 0xd0, 0xa9, 0x0c, 0x24, 0xbe, 0xb6, 0x0a, 0x9a, 0x20, 0xbc, 0x87, 0x33, + 0x30, 0xfc, 0x96, 0x7f, 0x2a, 0x44, 0xe6, 0x2b, 0x22, 0x9a, 0xf1, 0xf9, 0xb6, 0x1d, 0x6d, 0xc0, + 0xbe, 0x5f, 0xcd, 0xa7, 0x10, 0xea, 0x10, 0xcd, 0x55, 0x5b, 0xb6, 0xe5, 0x6d, 0x07, 0xb7, 0x68, + 0xbf, 0xe5, 0xa1, 0xdf, 0x20, 0xff, 0x67, 0x29, 0x71, 0x35, 0x10, 0x66, 0xc0, 0xe7, 0x7f, 0x0d, + 0x95, 0x88, 0xeb, 0x86, 0xc2, 0x55, 0xd3, 0x28, 0xe1, 0x9b, 0x11, 0xf9, 0x5a, 0x97, 0x7c, 0x1a, + 0x1b, 0xfe, 0x4f, 0xc5, 0x07, 0xf6, 0x4f, 0x5e, 0x7d, 0x5b, 0x73, 0x1b, 0xc4, 0x50, 0x3f, 0xf4, + 0x89, 0xc1, 0x53, 0x13, 0xce, 0xa2, 0x39, 0xde, 0xc3, 0x46, 0x61, 0xef, 0xcd, 0xcb, 0x08, 0x53, + 0x47, 0xad, 0xbb, 0x84, 0x88, 0xd0, 0x70, 0x17, 0x9d, 0xa5, 0xce, 0x03, 0x97, 0x90, 0x08, 0xf8, + 0x1c, 0x9a, 0xd6, 0x6d, 0x8b, 0xb6, 0x5b, 0xc4, 0x00, 0xb8, 0x11, 0x06, 0x57, 0x0e, 0x1a, 0x19, + 0xd0, 0x1b, 0xe8, 0xb8, 0x40, 0x8e, 0x77, 0x01, 0xf8, 0x28, 0x03, 0x3f, 0x52, 0x0f, 0x88, 0xae, + 0x41, 0x27, 0x43, 0xbb, 0x8d, 0x2a, 0xd4, 0x01, 0x56, 0x35, 0x3b, 0x5d, 0x13, 0x1a, 0x63, 0x98, + 0xc7, 0xa8, 0xf3, 0x10, 0x00, 0xe2, 0xf3, 0x5a, 0x47, 0xa7, 0x53, 0x10, 0x63, 0x43, 0x8f, 0x33, + 0x02, 0x27, 0x5b, 0x09, 0x74, 0x71, 0x06, 0xaf, 0x22, 0xec, 0xd9, 0x9e, 0xd6, 0x8c, 0x23, 0x4e, + 0x00, 0xe3, 0x58, 0x8f, 0x08, 0xfd, 0x0a, 0x3a, 0xe4, 0x92, 0x96, 0xff, 0x4a, 0x17, 0xa6, 0x39, + 0x09, 0x7c, 0x83, 0x8e, 0x70, 0x7e, 0xf2, 0x5a, 0x68, 0x27, 0x13, 0x1b, 0x9d, 0x3c, 0xf6, 0x05, + 0x71, 0x91, 0x92, 0xe2, 0x62, 0xc3, 0x4b, 0x25, 0x93, 0xc8, 0x3e, 0x44, 0x26, 0xbc, 0x05, 0x0c, + 0x8b, 0xb7, 0x80, 0x16, 0x88, 0xa7, 0x7f, 0x12, 0x67, 0x68, 0x48, 0xfe, 0x8c, 0xfd, 0x37, 0x85, + 0x5d, 0xaf, 0x53, 0xee, 0xff, 0x9a, 0x56, 0xf8, 0x57, 0xfc, 0xe0, 0x9f, 0x0e, 0x0e, 0xfe, 0x5f, + 0x29, 0xa1, 0xa3, 0x5d, 0xe3, 0xf8, 0xb6, 0xa1, 0xd8, 0x12, 0xc6, 0xec, 0x3e, 0x7f, 0x63, 0x85, + 0x76, 0xff, 0x47, 0x12, 0x3e, 0x98, 0x84, 0xcb, 0xbf, 0x27, 0xc1, 0x89, 0x9b, 0x2a, 0x00, 0xfb, + 0x90, 0xb6, 0x0d, 0x34, 0xe6, 0x12, 0xda, 0x6e, 0xfa, 0x62, 0xe1, 0x5f, 0xdd, 0xae, 0x14, 0x5c, + 0xdd, 0xe2, 0xd2, 0xa0, 0x70, 0x64, 0x79, 0x35, 0xd4, 0x87, 0xcf, 0x69, 0x1e, 0xc9, 0x94, 0xd1, + 0xae, 0x3b, 0x81, 0x20, 0x1b, 0xf2, 0x37, 0x24, 0x74, 0x3e, 0x9f, 0xc8, 0x3e, 0xd6, 0x79, 0x0f, + 0x8d, 0xb2, 0x6d, 0xe2, 0x27, 0xe2, 0x62, 0x12, 0x8b, 0x85, 0xc0, 0x7c, 0x1c, 0x18, 0x94, 0x0d, + 0xc8, 0xce, 0x10, 0x40, 0x93, 0x7f, 0x90, 0xca, 0x7f, 0xce, 0x85, 0x83, 0x3a, 0xa3, 0xc2, 0x77, + 0x9a, 0x67, 0xb6, 0x08, 0xf5, 0xb4, 0x96, 0xa3, 0xb6, 0x29, 0xb7, 0x03, 0xf0, 0x4e, 0x7b, 0x12, + 0x74, 0x3c, 0x0d, 0x5f, 0x39, 0x31, 0x58, 0xb8, 0xbd, 0xfb, 0xaf, 0x1c, 0x11, 0xf2, 0x3c, 0x9a, + 0x69, 0x69, 0x7b, 0xfc, 0x4e, 0xe0, 0x3f, 0x88, 0xb8, 0xff, 0xb0, 0xdc, 0xd2, 0xf6, 0x60, 0x09, + 0xef, 0xb5, 0x5b, 0xf2, 0x5f, 0x4a, 0x08, 0x45, 0x8b, 0x2a, 0xbe, 0x7e, 0x9f, 0x44, 0x93, 0x41, + 0x18, 0x24, 0x54, 0x74, 0x1e, 0xe4, 0x60, 0x17, 0xbc, 0xe0, 0xd9, 0x14, 0x78, 0x41, 0x4b, 0x8c, + 0xc2, 0x0c, 0x6f, 0x5e, 0xe1, 0xce, 0xd0, 0xb3, 0xa8, 0x1c, 0x5b, 0x01, 0xcc, 0x6c, 0xca, 0x13, + 0xa6, 0x7f, 0x12, 0x4d, 0xba, 0x44, 0x33, 0x44, 0xa5, 0x9e, 0xf0, 0x1b, 0x98, 0x62, 0x7c, 0x5f, + 0x82, 0x1b, 0x62, 0xfa, 0xc6, 0xec, 0x43, 0x62, 0xde, 0x45, 0x65, 0x36, 0x2a, 0x70, 0x8d, 0x72, + 0xfd, 0x90, 0xb3, 0xf4, 0x23, 0x1a, 0x75, 0x75, 0xe4, 0xa3, 0x4f, 0x4e, 0x4b, 0xca, 0x94, 0x1b, + 0xb6, 0x50, 0xdf, 0x4a, 0x31, 0xef, 0x50, 0xca, 0xf6, 0xc2, 0x96, 0x1d, 0xf1, 0xbb, 0xab, 0x89, + 0x2d, 0x96, 0xef, 0x82, 0xd5, 0xff, 0x7c, 0x9b, 0xb8, 0x9d, 0xa7, 0x4e, 0xd3, 0xd6, 0x8c, 0xc7, + 0xae, 0xdd, 0xf0, 0xf9, 0x26, 0x68, 0x54, 0xb4, 0x09, 0x52, 0x7c, 0x13, 0xe4, 0x6f, 0x73, 0xa1, + 0x4d, 0xc5, 0xdf, 0xd7, 0xad, 0x66, 0x94, 0x7a, 0xc1, 0x15, 0x77, 0xe6, 0xda, 0xb1, 0x25, 0x88, + 0x61, 0x02, 0xda, 0x13, 0x8d, 0xee, 0x54, 0xfd, 0x5e, 0x05, 0x80, 0x7c, 0x51, 0x20, 0xae, 0xab, + 0x1a, 0x84, 0xea, 0xae, 0xe9, 0x78, 0xa6, 0x6d, 0x05, 0xa2, 0x40, 0x5c, 0x77, 0x3d, 0x6a, 0x95, + 0x37, 0xd0, 0xcb, 0xe1, 0x6c, 0x15, 0x42, 0xdb, 0x2d, 0xad, 0xd6, 0x24, 0x30, 0xed, 0x2a, 0x69, + 0xf8, 0x97, 0xd6, 0x9e, 0x56, 0xfd, 0x33, 0x12, 0xba, 0x58, 0x48, 0x67, 0x1f, 0xab, 0x3f, 0x87, + 0xa6, 0x29, 0x90, 0x11, 0x1c, 0x89, 0xd3, 0x4a, 0x99, 0x37, 0xb2, 0x1b, 0x80, 0xfc, 0x8d, 0x61, + 0x34, 0xca, 0x42, 0x0e, 0xf8, 0x3a, 0x1a, 0x65, 0xe1, 0x08, 0x3e, 0xc8, 0xa9, 0x34, 0x7b, 0xc0, + 0x20, 0xc1, 0xdc, 0x30, 0xd8, 0x58, 0x1c, 0x66, 0x38, 0x11, 0x87, 0x89, 0xbd, 0xf5, 0x4b, 0x89, + 0xb7, 0xfe, 0x69, 0x34, 0x15, 0x04, 0x69, 0xcc, 0x16, 0xe1, 0xda, 0x84, 0x78, 0x84, 0xc6, 0x6c, + 0x25, 0xc2, 0x08, 0xa3, 0xf9, 0x61, 0x84, 0xb1, 0xae, 0xc8, 0xcb, 0x2b, 0xe8, 0x10, 0xf8, 0x53, + 0x54, 0xbb, 0xae, 0xb6, 0x88, 0xff, 0x8b, 0xb2, 0xc3, 0xae, 0xa4, 0xcc, 0x42, 0xc7, 0xa3, 0xfa, + 0x43, 0x68, 0x16, 0xe3, 0x54, 0x13, 0xb1, 0x38, 0x95, 0xfc, 0x37, 0xc3, 0x68, 0x8a, 0x2d, 0x19, + 0x40, 0x07, 0x63, 0x51, 0x81, 0x5b, 0x5c, 0xe4, 0x60, 0x29, 0x8f, 0x83, 0x23, 0xf9, 0x1c, 0x1c, + 0xcd, 0xe7, 0xe0, 0x58, 0x3e, 0x07, 0xc7, 0xbb, 0x38, 0x98, 0xc9, 0x15, 0xa6, 0x27, 0x7b, 0x8e, + 0xe9, 0x72, 0xa7, 0x6c, 0x14, 0xfa, 0x9a, 0x89, 0x9a, 0x59, 0x2c, 0xe7, 0xbb, 0x12, 0x3a, 0xce, + 0x0f, 0x4a, 0xc6, 0x15, 0xdf, 0xf4, 0x05, 0x9a, 0x11, 0xb8, 0x93, 0xa5, 0x54, 0x77, 0xf2, 0x70, + 0xcc, 0x9d, 0x7c, 0x1a, 0x4d, 0x41, 0x8e, 0x85, 0xea, 0x8b, 0x3c, 0xe7, 0x12, 0x82, 0xa6, 0x27, + 0x1d, 0x87, 0x44, 0x77, 0xc3, 0x11, 0xc1, 0x29, 0x24, 0xdc, 0x24, 0x81, 0x37, 0xc1, 0x4d, 0x32, + 0xc5, 0x15, 0x36, 0x96, 0xea, 0x0a, 0x6b, 0x84, 0x0f, 0x6d, 0x61, 0xfa, 0x5c, 0x21, 0xdf, 0x40, + 0x63, 0x6c, 0x7b, 0x03, 0x57, 0xd2, 0xa9, 0x2c, 0x7b, 0x0b, 0x31, 0x56, 0x0e, 0x9c, 0x71, 0x69, + 0x26, 0xe8, 0x64, 0xfc, 0x68, 0xa0, 0xab, 0x9d, 0xad, 0x75, 0x31, 0x8e, 0x14, 0xde, 0x46, 0x60, + 0xbc, 0x11, 0x65, 0x32, 0xb8, 0x8e, 0xd0, 0xde, 0x5d, 0x7b, 0xff, 0x2a, 0xc1, 0x7b, 0xb9, 0x7b, + 0x1c, 0xbe, 0xa8, 0x2f, 0x27, 0x1d, 0x64, 0x2b, 0x99, 0xab, 0xca, 0x21, 0xc3, 0x6f, 0x0d, 0x74, + 0xc3, 0xf2, 0xdc, 0x4e, 0xe8, 0x43, 0xab, 0xbc, 0x8f, 0xca, 0x62, 0x07, 0x9e, 0x43, 0xa5, 0x1d, + 0xd2, 0xe1, 0x56, 0xd1, 0xff, 0x89, 0x5f, 0x47, 0xa3, 0xbb, 0x5a, 0xb3, 0x4d, 0x7a, 0x8c, 0x7c, + 0x03, 0xf0, 0xed, 0xe1, 0x9b, 0x92, 0xc8, 0xc0, 0xd0, 0x5f, 0x1b, 0x67, 0x60, 0x68, 0x86, 0x43, + 0x06, 0x06, 0x76, 0x78, 0x40, 0x06, 0xc6, 0xc7, 0x89, 0x18, 0x18, 0x77, 0x05, 0x17, 0x32, 0x30, + 0x8d, 0x0c, 0x77, 0xd0, 0x05, 0x0c, 0xe4, 0x14, 0x7d, 0x06, 0x8a, 0x1d, 0xfb, 0x60, 0x20, 0x77, + 0x00, 0x0a, 0x0c, 0xfc, 0xb9, 0x61, 0x38, 0x81, 0x9f, 0x11, 0xd7, 0xac, 0x77, 0x1e, 0x87, 0x79, + 0x4f, 0xfe, 0xbc, 0x02, 0x2e, 0xbe, 0x2e, 0x58, 0x2a, 0xa6, 0xb6, 0xab, 0xf3, 0xdf, 0xfb, 0xce, + 0x95, 0x23, 0x3c, 0xf7, 0x8a, 0xdf, 0x93, 0xaa, 0x9e, 0x6b, 0x5a, 0x0d, 0xc1, 0x86, 0x3d, 0x40, + 0xd3, 0x41, 0x8a, 0x14, 0xa8, 0x2f, 0x9c, 0xc5, 0x67, 0x45, 0xdb, 0x19, 0x00, 0x2c, 0x29, 0x24, + 0xd2, 0x6a, 0xa5, 0xec, 0x0a, 0x5f, 0xbe, 0x11, 0x08, 0xe9, 0x98, 0x06, 0x7f, 0x8a, 0xa1, 0xa0, + 0x69, 0xcb, 0xc0, 0xab, 0x68, 0x4a, 0xd3, 0xc1, 0x24, 0xf9, 0xc3, 0x8c, 0x74, 0x0f, 0x13, 0xa5, + 0x73, 0x2d, 0xad, 0x30, 0x48, 0x36, 0x0c, 0xd2, 0xc2, 0xdf, 0xf2, 0x97, 0xe0, 0x8e, 0x96, 0xce, + 0x85, 0x48, 0xf3, 0x49, 0xbd, 0x1e, 0xb8, 0x59, 0x67, 0xe2, 0xa7, 0x80, 0x30, 0xc4, 0x06, 0x03, + 0x52, 0x38, 0xb0, 0x7c, 0x1f, 0x5d, 0x0a, 0xf6, 0xbc, 0x2b, 0xd2, 0x6f, 0x12, 0xda, 0x83, 0xe3, + 0xea, 0x0f, 0x24, 0xf4, 0x4a, 0x2f, 0x24, 0xf8, 0x3c, 0x3d, 0x74, 0xaa, 0xc1, 0x12, 0x0b, 0x54, + 0x9e, 0x6c, 0xa0, 0x32, 0x1b, 0xa4, 0xd6, 0x39, 0x38, 0x97, 0xd0, 0x01, 0xd2, 0x12, 0x2a, 0x8d, + 0xf4, 0x1e, 0x93, 0x50, 0xf9, 0x3e, 0xdc, 0x69, 0x7c, 0x9b, 0xd9, 0x05, 0xb4, 0xda, 0xd9, 0xdc, + 0x6d, 0x44, 0x8b, 0x3c, 0x8a, 0xc6, 0x1a, 0xbb, 0x8d, 0x68, 0x95, 0xa3, 0x8d, 0xdd, 0xc6, 0x96, + 0x21, 0x7f, 0x4d, 0x42, 0x8b, 0xc5, 0x24, 0xf8, 0x22, 0x3f, 0x40, 0x47, 0xd2, 0x16, 0xc9, 0x0f, + 0xe8, 0xbe, 0xd2, 0x60, 0x70, 0xf7, 0xaa, 0xe4, 0x5b, 0xa1, 0x57, 0x37, 0x85, 0x0d, 0xd1, 0x32, + 0x76, 0x1b, 0x75, 0x61, 0x19, 0xbb, 0x8d, 0xfa, 0x96, 0x21, 0x6f, 0x87, 0x5e, 0xf5, 0x34, 0x54, + 0x3e, 0x7d, 0x9e, 0x20, 0x22, 0xed, 0x27, 0x41, 0x44, 0x7e, 0x16, 0x4e, 0x32, 0x65, 0x55, 0x3d, + 0x3c, 0x68, 0xfd, 0x15, 0x34, 0x61, 0x23, 0x86, 0xb9, 0x6f, 0x85, 0x6d, 0x44, 0x2d, 0x5c, 0x41, + 0x1a, 0xdd, 0xd0, 0x11, 0xcc, 0xd2, 0x8e, 0xa4, 0x01, 0xd3, 0x8e, 0x76, 0xba, 0x0c, 0xf7, 0x96, + 0xb5, 0xf9, 0x6c, 0x33, 0x5f, 0x44, 0x92, 0xf9, 0x02, 0xdc, 0x16, 0x08, 0xf9, 0x02, 0xb1, 0x0b, + 0x41, 0xe8, 0x2c, 0x52, 0xbb, 0xac, 0x37, 0x1f, 0x2c, 0xca, 0xa4, 0x88, 0x5b, 0xef, 0x0b, 0xf9, + 0x06, 0x94, 0xa7, 0x7a, 0x85, 0x16, 0x5a, 0xfe, 0x75, 0xee, 0x19, 0x48, 0x8e, 0xb0, 0x62, 0x19, + 0xc1, 0x93, 0x2f, 0x77, 0x5d, 0xb9, 0x2e, 0xa9, 0x01, 0x17, 0xbd, 0x8d, 0x2e, 0x14, 0x4c, 0xe9, + 0xa0, 0x56, 0xff, 0xfb, 0x52, 0x64, 0xe2, 0xc2, 0x63, 0x4d, 0x1c, 0xea, 0x81, 0xed, 0x6e, 0xae, + 0x05, 0x2c, 0x78, 0x09, 0x21, 0x83, 0x7a, 0x6a, 0x8c, 0x0d, 0x13, 0x06, 0xf5, 0x36, 0x7f, 0x68, + 0x9c, 0x68, 0x45, 0xe6, 0x33, 0x6f, 0x7a, 0x07, 0xc5, 0x8e, 0x27, 0x51, 0x4c, 0xf2, 0xa1, 0xd9, + 0x70, 0x35, 0x8f, 0xc0, 0x30, 0x1b, 0x2c, 0x0d, 0x37, 0x60, 0xc3, 0x09, 0x34, 0x01, 0xe1, 0xdf, + 0x50, 0x2f, 0xc7, 0xd9, 0xf7, 0x96, 0x11, 0x1d, 0x02, 0xc3, 0xc2, 0x21, 0xf0, 0x2f, 0xc3, 0xe8, + 0x78, 0x06, 0x49, 0x7c, 0x0f, 0x8d, 0xb2, 0x1c, 0x5f, 0xae, 0x8d, 0x8b, 0x69, 0xcf, 0x13, 0x06, + 0x0a, 0xc8, 0xfe, 0xc1, 0xc6, 0x6f, 0x52, 0x0c, 0x0d, 0x7f, 0x1e, 0x95, 0x75, 0xcd, 0xd2, 0x49, + 0x53, 0x05, 0x32, 0x70, 0x8b, 0x58, 0xca, 0x24, 0xb3, 0xc6, 0x80, 0x93, 0xc4, 0xa6, 0x80, 0x06, + 0x83, 0xc0, 0x5f, 0x40, 0x33, 0xba, 0xdd, 0x72, 0x58, 0x3a, 0x1f, 0x10, 0x85, 0x04, 0xc5, 0xd7, + 0xb2, 0x89, 0x72, 0xf0, 0x24, 0xd9, 0xe9, 0x80, 0x0e, 0x10, 0x7e, 0x84, 0xca, 0x2e, 0x61, 0x57, + 0x3a, 0x20, 0x3b, 0xc2, 0xc8, 0xbe, 0x9a, 0x49, 0x56, 0x61, 0xc0, 0x31, 0xae, 0x29, 0x53, 0x40, + 0x81, 0xf5, 0xcb, 0x56, 0x94, 0xd3, 0x93, 0xba, 0x5d, 0x5c, 0x2c, 0x36, 0xd1, 0x18, 0xe4, 0x51, + 0x73, 0xa9, 0x58, 0xce, 0x92, 0x8a, 0x2c, 0x42, 0x1c, 0x5d, 0x26, 0xe8, 0xd5, 0x60, 0xbc, 0x8c, + 0x25, 0xf7, 0x2c, 0x28, 0x15, 0x34, 0x49, 0x5d, 0x3d, 0x16, 0x33, 0x1f, 0xa7, 0xae, 0x5e, 0xf5, + 0xe5, 0xe5, 0x17, 0x25, 0x74, 0xa5, 0xc7, 0x71, 0xf8, 0x0a, 0xbf, 0xc4, 0xd2, 0x73, 0x84, 0x2d, + 0x0b, 0x96, 0xda, 0xff, 0x9e, 0xcd, 0xc4, 0xf6, 0x8c, 0xca, 0xef, 0x45, 0x06, 0xb8, 0xfa, 0x5c, + 0x73, 0x1e, 0xb5, 0xf7, 0xa9, 0x0c, 0xff, 0x23, 0xa1, 0x43, 0x5d, 0xc4, 0xf0, 0x5d, 0x61, 0x8b, + 0x20, 0x36, 0x99, 0x75, 0x2a, 0x31, 0x04, 0x8e, 0x1c, 0x6c, 0x0c, 0x7e, 0x8c, 0xa6, 0x45, 0x2d, + 0xa0, 0x5c, 0x0d, 0x2e, 0xe7, 0x53, 0x01, 0x5d, 0x08, 0x68, 0x95, 0x05, 0x1d, 0xa0, 0xf8, 0x59, + 0x37, 0x47, 0x41, 0x0b, 0xae, 0x14, 0xd0, 0xe4, 0x48, 0x01, 0xd5, 0x24, 0x3b, 0x6b, 0x10, 0x8c, + 0x4c, 0x61, 0x27, 0xdf, 0xca, 0x95, 0x84, 0xb0, 0x5e, 0xca, 0x13, 0xd6, 0x38, 0x89, 0x40, 0x4c, + 0x1f, 0x44, 0x59, 0x3c, 0xdd, 0x67, 0xb8, 0x7f, 0xe5, 0x24, 0xba, 0x6d, 0x19, 0x9a, 0xdb, 0xa9, + 0x3e, 0xce, 0xbd, 0xbc, 0x3e, 0x8f, 0x12, 0x6b, 0x8a, 0xe9, 0x84, 0xb7, 0xa3, 0xf8, 0x1b, 0xbb, + 0xaf, 0xeb, 0x05, 0x47, 0x95, 0xb7, 0x22, 0xab, 0x9f, 0x3a, 0x70, 0xfc, 0x60, 0xce, 0x75, 0xfc, + 0xbb, 0xe8, 0x72, 0x4f, 0xa4, 0x0e, 0x72, 0xfa, 0x0f, 0xa3, 0x0b, 0x52, 0xd5, 0xd9, 0xd8, 0x33, + 0xf7, 0xa9, 0x31, 0xdf, 0x95, 0xd0, 0x5c, 0x92, 0x16, 0xde, 0x8c, 0x9f, 0x1b, 0x57, 0x0b, 0xf4, + 0x05, 0x34, 0xff, 0xb1, 0x6b, 0xef, 0x9a, 0x06, 0x71, 0x7d, 0x3a, 0xc1, 0x01, 0xf2, 0x95, 0x2e, + 0x6b, 0x0f, 0xba, 0x73, 0xab, 0x47, 0x39, 0x4f, 0xa1, 0x1c, 0x37, 0xfb, 0xf2, 0x57, 0x04, 0x0b, + 0x12, 0x63, 0x07, 0xe7, 0xf9, 0xfd, 0x84, 0xee, 0x2f, 0xe6, 0x4a, 0xbc, 0x48, 0x21, 0x10, 0xf8, + 0x15, 0x74, 0x84, 0xdf, 0x7a, 0xab, 0x8f, 0x99, 0x1b, 0x8f, 0x73, 0xfa, 0x12, 0x9a, 0x0b, 0xde, + 0xb4, 0x6a, 0x3c, 0x5f, 0x7a, 0x36, 0x68, 0xe7, 0x4f, 0x60, 0xb9, 0x86, 0x8e, 0x26, 0x48, 0xf0, + 0xd9, 0x6d, 0xa1, 0xb9, 0x20, 0x95, 0xdb, 0xe1, 0x8b, 0x4c, 0x8d, 0xbe, 0x38, 0x4b, 0x09, 0x56, + 0x28, 0xb3, 0x34, 0xde, 0x20, 0xdf, 0x84, 0xcb, 0xf9, 0xe3, 0x30, 0x35, 0xca, 0xd2, 0xed, 0x16, + 0x09, 0x2e, 0x21, 0x79, 0x9a, 0xf8, 0xd7, 0x12, 0x5c, 0x4c, 0xb2, 0x50, 0xf9, 0x5c, 0x2f, 0xa3, + 0x43, 0x7a, 0xdb, 0x75, 0x89, 0x25, 0x84, 0x01, 0x78, 0x7a, 0xcc, 0x1c, 0xef, 0x08, 0x23, 0x00, + 0x78, 0x1b, 0x9d, 0x10, 0x33, 0xb7, 0x18, 0x41, 0xd5, 0x00, 0x8a, 0x45, 0x01, 0xbb, 0xd4, 0x79, + 0x28, 0xc7, 0x9c, 0xd4, 0xe9, 0xc9, 0xff, 0x28, 0xa1, 0xa3, 0xa9, 0x18, 0x19, 0xef, 0xb0, 0x03, + 0x4a, 0x35, 0xc1, 0x4f, 0xd0, 0x18, 0x2c, 0x8b, 0x99, 0xee, 0xf2, 0xea, 0x9d, 0x8f, 0x3e, 0x39, + 0x3d, 0xf4, 0xfd, 0x4f, 0x4e, 0xbf, 0xdc, 0x30, 0xbd, 0xed, 0x76, 0x6d, 0x49, 0xb7, 0x5b, 0xbc, + 0x0a, 0x8d, 0xff, 0x73, 0x85, 0x1a, 0x3b, 0xbc, 0x98, 0x6a, 0xcb, 0xf2, 0xbe, 0xf7, 0x9d, 0x2b, + 0x88, 0x3b, 0x4a, 0xb6, 0x2c, 0x4f, 0xe1, 0xb4, 0xe4, 0xdb, 0x70, 0xe9, 0x88, 0x8c, 0x5f, 0x1f, + 0xfb, 0xf8, 0x0f, 0xfc, 0xb1, 0x91, 0x8d, 0x3c, 0xc8, 0x4e, 0x5a, 0xe8, 0x24, 0x0d, 0x08, 0x66, + 0xee, 0x65, 0xe6, 0xa5, 0x27, 0x63, 0x2e, 0xca, 0x3c, 0xcd, 0x98, 0xa4, 0xfc, 0xcf, 0x12, 0x3a, + 0x9e, 0x81, 0x95, 0xf5, 0x4a, 0xfa, 0x7f, 0xbd, 0xa3, 0xff, 0x54, 0x42, 0x63, 0x50, 0x6b, 0x81, + 0x55, 0x74, 0x34, 0xa9, 0xed, 0x62, 0xc0, 0xf5, 0x72, 0x26, 0x13, 0xe3, 0xaa, 0xce, 0x2c, 0xc8, + 0x61, 0xda, 0xdd, 0x88, 0xab, 0xe8, 0x10, 0x18, 0x7f, 0xda, 0xb1, 0xf4, 0x80, 0x38, 0x30, 0xe3, + 0x62, 0xa6, 0xef, 0xd4, 0x47, 0xa8, 0x32, 0x78, 0x46, 0x78, 0xb6, 0x16, 0x6f, 0xc0, 0xf7, 0x11, + 0x82, 0x3a, 0x12, 0x46, 0x0d, 0xee, 0x29, 0x67, 0xb3, 0xa8, 0xb1, 0xd2, 0x12, 0x46, 0x67, 0x52, + 0x0f, 0x7e, 0xe2, 0x07, 0xa8, 0xdc, 0xd2, 0x2c, 0xad, 0x11, 0xcc, 0x08, 0xae, 0xe6, 0xe7, 0xb2, + 0x68, 0x3c, 0x04, 0x58, 0x46, 0x65, 0xaa, 0x15, 0x7d, 0xe0, 0x2d, 0x34, 0x4d, 0xf6, 0x88, 0xde, + 0xf6, 0x2d, 0x2e, 0x23, 0x34, 0xca, 0x08, 0x9d, 0xcf, 0x22, 0xb4, 0xc1, 0x81, 0x19, 0xa5, 0x32, + 0x11, 0xbe, 0xf0, 0x9b, 0x68, 0xbc, 0xa1, 0x03, 0x91, 0xb1, 0x7c, 0xd7, 0xe8, 0xe6, 0x1a, 0x43, + 0x1f, 0x6b, 0xe8, 0xfe, 0xbf, 0xf2, 0x6f, 0x96, 0xd0, 0x6c, 0x82, 0x65, 0xf8, 0x65, 0x34, 0x5b, + 0xa3, 0x3c, 0x69, 0x77, 0x9b, 0x98, 0x8d, 0xed, 0x20, 0x93, 0x75, 0xba, 0x46, 0x19, 0xec, 0x3b, + 0xac, 0x11, 0xcb, 0x68, 0x3a, 0x82, 0xd3, 0x68, 0x90, 0xcc, 0x35, 0x15, 0x40, 0xf1, 0x2a, 0xa4, + 0x1a, 0x55, 0xc5, 0x48, 0x0c, 0x04, 0xca, 0xca, 0x35, 0xfa, 0x34, 0x8a, 0xc5, 0x2c, 0xa2, 0xb9, + 0x1a, 0x55, 0x5b, 0x1d, 0xfa, 0x61, 0x53, 0xdd, 0x25, 0x2e, 0x35, 0xc3, 0xaa, 0xa8, 0x99, 0x1a, + 0x7d, 0xe8, 0x37, 0x3f, 0x83, 0x56, 0x7c, 0x1f, 0x9d, 0xaa, 0x51, 0xd5, 0x20, 0x75, 0xad, 0xdd, + 0xf4, 0x54, 0x7d, 0x5b, 0x73, 0x35, 0xdd, 0x23, 0xae, 0x4a, 0x83, 0x3c, 0x18, 0xc8, 0xf1, 0x3f, + 0x51, 0xa3, 0xeb, 0x00, 0xb3, 0x16, 0x80, 0x54, 0x79, 0x5a, 0xcc, 0x2d, 0x74, 0x42, 0xa4, 0x60, + 0x37, 0x9b, 0x10, 0xe7, 0x11, 0x92, 0xff, 0x8f, 0x45, 0xd8, 0x41, 0x77, 0x50, 0x00, 0xe2, 0x4f, + 0xd3, 0x67, 0x2c, 0xa1, 0xf3, 0xe3, 0x2c, 0xa7, 0x7f, 0xb2, 0x46, 0x1f, 0x42, 0x03, 0xef, 0x7e, + 0x6e, 0xbb, 0x3b, 0xc4, 0xa5, 0x2c, 0xa8, 0x34, 0xed, 0x77, 0x7f, 0x01, 0x1a, 0xf0, 0x25, 0x74, + 0xa8, 0x46, 0x55, 0x62, 0x69, 0xb5, 0x26, 0x51, 0x8d, 0xb6, 0xd6, 0x54, 0x8d, 0x1a, 0x0b, 0x2c, + 0x4d, 0xf8, 0xab, 0xdc, 0x60, 0xed, 0xeb, 0x6d, 0xad, 0xb9, 0x5e, 0x93, 0xdf, 0x45, 0x93, 0xa1, + 0xe4, 0xf9, 0x57, 0x20, 0x2e, 0xb0, 0x41, 0xda, 0xf3, 0x38, 0xc8, 0xa2, 0xc1, 0x12, 0x73, 0x58, + 0x57, 0x70, 0x60, 0x0f, 0xb3, 0x39, 0x95, 0x59, 0x63, 0x70, 0x5a, 0xff, 0xd7, 0x30, 0x3a, 0x9c, + 0xa2, 0x72, 0xfe, 0x36, 0x53, 0x47, 0xd5, 0x6d, 0x83, 0x84, 0x3c, 0x07, 0xf2, 0xd3, 0xd4, 0x59, + 0xb3, 0x0d, 0x12, 0xb0, 0xfc, 0x3c, 0x9a, 0x09, 0xe0, 0x74, 0xbb, 0xd5, 0x32, 0x3d, 0xbe, 0xcf, + 0x65, 0x00, 0x5b, 0x63, 0x6d, 0xf8, 0x22, 0xa3, 0xa6, 0xb9, 0xfa, 0xb6, 0xe9, 0x11, 0xdd, 0x6b, + 0xbb, 0x41, 0x1c, 0x6b, 0x86, 0x3a, 0x2b, 0x42, 0xab, 0x2f, 0x35, 0xd4, 0x51, 0x1b, 0x76, 0x62, + 0xa3, 0xa7, 0xa8, 0xb3, 0x69, 0x07, 0x43, 0x2e, 0xa1, 0xc3, 0xd4, 0x51, 0xe1, 0xda, 0x61, 0x5a, + 0x0d, 0x95, 0x76, 0xa8, 0x47, 0x5a, 0x41, 0x3d, 0x0c, 0x75, 0x1e, 0x05, 0x3d, 0x55, 0xd6, 0x11, + 0x83, 0x17, 0xae, 0x2f, 0x63, 0x71, 0xf8, 0xf0, 0x02, 0xc3, 0x97, 0x64, 0xd8, 0x2c, 0x53, 0x8d, + 0x6d, 0xfc, 0x78, 0xb0, 0xa4, 0x75, 0xd6, 0xc8, 0xb6, 0xfb, 0x2a, 0x3a, 0x9a, 0x9a, 0x9a, 0xc4, + 0x73, 0x83, 0x70, 0x77, 0x56, 0x92, 0xfc, 0x27, 0x12, 0x9a, 0x12, 0xf4, 0x1d, 0x52, 0x43, 0xd8, + 0x86, 0x37, 0x6d, 0xcd, 0x50, 0x3d, 0x8d, 0xee, 0x30, 0x26, 0x4f, 0x28, 0x33, 0xd0, 0xfe, 0x39, + 0x5b, 0x33, 0x9e, 0x68, 0x74, 0x07, 0x5f, 0x43, 0x47, 0x39, 0xe4, 0x36, 0xd1, 0x9a, 0xde, 0xb6, + 0xaa, 0x6f, 0x13, 0x7d, 0x87, 0xe7, 0xcb, 0x4f, 0x28, 0x87, 0xa1, 0xf3, 0x1d, 0xd6, 0xb7, 0x06, + 0x5d, 0xf8, 0x2e, 0x3a, 0xc9, 0x71, 0x7c, 0xc2, 0xaa, 0x4b, 0x3c, 0xff, 0x4c, 0xd3, 0xb7, 0x89, + 0x2f, 0x8f, 0x2e, 0x4f, 0xb1, 0x9e, 0x07, 0x10, 0x7f, 0x10, 0xc5, 0x07, 0xa8, 0x06, 0xfd, 0xfe, + 0x01, 0x5b, 0x16, 0x6d, 0x8a, 0xaf, 0x1a, 0x4d, 0x93, 0x7a, 0xc4, 0x52, 0x59, 0x35, 0x28, 0xd0, + 0xf3, 0x95, 0xd6, 0x6e, 0x07, 0x26, 0xe0, 0x18, 0x00, 0x54, 0x89, 0xd6, 0x64, 0xd4, 0x9e, 0x40, + 0x2f, 0xbe, 0x87, 0x5e, 0xe2, 0xef, 0x0a, 0xcf, 0xd5, 0xea, 0x75, 0x53, 0x57, 0x77, 0x08, 0x71, + 0x18, 0xb2, 0x6a, 0x68, 0x1d, 0x1e, 0x0e, 0x9c, 0x07, 0x98, 0x27, 0x00, 0xf2, 0x2e, 0x21, 0x8e, + 0x8f, 0xbf, 0xae, 0x75, 0xf0, 0x4d, 0x74, 0x42, 0x48, 0xf2, 0x48, 0x20, 0x83, 0xc9, 0x38, 0x1a, + 0xe5, 0x71, 0x08, 0x98, 0xf2, 0x2f, 0x49, 0x68, 0x0c, 0x8c, 0x9a, 0xc0, 0xed, 0x86, 0xae, 0xbe, + 0xb0, 0x5b, 0x35, 0x93, 0xc4, 0xb9, 0xbd, 0xa9, 0xbf, 0xcf, 0x5a, 0x7d, 0x01, 0x88, 0x20, 0x7d, + 0x0b, 0xc9, 0xd9, 0x5c, 0x0e, 0xe0, 0x58, 0x51, 0xde, 0x55, 0x74, 0x94, 0x77, 0xc3, 0x5c, 0x4c, + 0xcb, 0x23, 0xee, 0xae, 0xd6, 0xe4, 0x13, 0xc2, 0x0d, 0x06, 0xe6, 0x4f, 0x64, 0x8b, 0xf7, 0xc8, + 0xc7, 0xa2, 0xdb, 0x35, 0x3b, 0x24, 0xf9, 0x0d, 0x47, 0x7e, 0x14, 0x5d, 0x99, 0x79, 0x7b, 0x94, + 0xd4, 0xce, 0x0b, 0x1a, 0x0b, 0x92, 0xda, 0x39, 0x1e, 0x87, 0x96, 0x9d, 0x30, 0x76, 0xfb, 0x94, + 0x12, 0x17, 0x5e, 0x68, 0x3d, 0x96, 0x4a, 0x84, 0xde, 0xc3, 0x61, 0xc1, 0x7b, 0x58, 0xe8, 0x74, + 0x94, 0xbf, 0x18, 0x2b, 0x05, 0x0c, 0x46, 0xe4, 0xcb, 0x78, 0x2b, 0xf1, 0x16, 0x3c, 0x97, 0x1b, + 0x2e, 0x86, 0x74, 0x83, 0xf0, 0x0d, 0x68, 0x85, 0xf5, 0x7f, 0x42, 0xaf, 0xf8, 0x04, 0x84, 0xc0, + 0x4e, 0xf4, 0x04, 0x64, 0xdf, 0xfd, 0xac, 0x24, 0x56, 0x6d, 0x27, 0xbf, 0x0f, 0x6f, 0xce, 0xae, + 0xf1, 0x0e, 0x62, 0x2d, 0xed, 0x30, 0x81, 0xda, 0xe7, 0xd2, 0xa3, 0xe7, 0x16, 0x31, 0xfe, 0x2f, + 0x36, 0xe7, 0x83, 0x58, 0xfd, 0x4c, 0x6c, 0xd8, 0x83, 0x58, 0xd5, 0xdf, 0x0f, 0xa3, 0xb1, 0xc7, + 0x76, 0xd3, 0xd4, 0x3b, 0xf8, 0x02, 0x9a, 0x71, 0x5c, 0xd3, 0xd2, 0x4d, 0x47, 0x6b, 0x42, 0x24, + 0x52, 0x62, 0x95, 0xb8, 0xd3, 0x61, 0x2b, 0x0b, 0x67, 0x5e, 0x44, 0xb3, 0x11, 0x58, 0x14, 0xb4, + 0x9d, 0x54, 0x22, 0xec, 0x67, 0x7e, 0x6b, 0x77, 0xfc, 0xb4, 0x74, 0x20, 0xf1, 0x53, 0x5e, 0x63, + 0x29, 0xc4, 0x4f, 0x2f, 0xa1, 0x39, 0x21, 0x9f, 0x04, 0x5e, 0x09, 0x90, 0x38, 0x31, 0x1b, 0x25, + 0x95, 0xc0, 0x23, 0xe1, 0x12, 0x9a, 0x13, 0xae, 0x2c, 0x00, 0x0a, 0x09, 0x26, 0xb3, 0x51, 0x06, + 0x09, 0x80, 0xa6, 0x24, 0x8b, 0x8c, 0xa7, 0x26, 0x8b, 0xfc, 0xbb, 0x14, 0x79, 0xb3, 0xc0, 0xa3, + 0xce, 0x18, 0x6a, 0x12, 0x7a, 0x70, 0x75, 0x36, 0x89, 0x10, 0x71, 0x69, 0x80, 0x10, 0x71, 0x7a, + 0x6c, 0x21, 0x29, 0x80, 0xa3, 0x5d, 0x02, 0xf8, 0x63, 0x51, 0x5e, 0x74, 0x72, 0x75, 0x5c, 0x00, + 0x6f, 0xa3, 0x09, 0x87, 0xb7, 0x15, 0x95, 0x27, 0x81, 0xa8, 0x29, 0x21, 0xbc, 0xfc, 0x28, 0x8a, + 0x3b, 0xc5, 0xeb, 0x9e, 0xe1, 0xfd, 0x13, 0xb2, 0xf0, 0x62, 0x7a, 0x19, 0xf5, 0x64, 0xb2, 0x3c, + 0x5a, 0xd6, 0xa2, 0xa8, 0x51, 0x06, 0xc1, 0x7d, 0xd7, 0x54, 0xad, 0x45, 0xf1, 0x11, 0x5f, 0x27, + 0xe3, 0xc3, 0xf4, 0x68, 0x0e, 0xe4, 0x9f, 0x8c, 0xbc, 0xf6, 0xa9, 0x44, 0xf8, 0x2c, 0x9f, 0xa2, + 0xb9, 0xc4, 0xba, 0x83, 0xa7, 0xec, 0x2b, 0xbd, 0xd5, 0x8f, 0xb3, 0xe2, 0x97, 0xd9, 0x38, 0x93, + 0xa8, 0x7c, 0x0b, 0x0c, 0x33, 0x73, 0x08, 0x72, 0x1f, 0xa0, 0x90, 0x75, 0x72, 0x12, 0x4d, 0x06, + 0x86, 0x39, 0x48, 0x3a, 0x99, 0xe0, 0x96, 0x99, 0xca, 0x1f, 0x4b, 0x91, 0x63, 0x2f, 0x86, 0xcb, + 0x67, 0xfc, 0x85, 0x84, 0x39, 0x7a, 0xbb, 0x28, 0x91, 0x24, 0x85, 0x08, 0x98, 0x2a, 0x9e, 0x46, + 0xc2, 0xc9, 0x55, 0xbe, 0xc8, 0x53, 0xda, 0x32, 0x93, 0x48, 0xae, 0xc7, 0x93, 0x48, 0x0a, 0x12, + 0x9b, 0x84, 0x1c, 0x92, 0x3b, 0x20, 0x33, 0xcc, 0xed, 0xc5, 0x23, 0x01, 0x56, 0x83, 0x97, 0x76, + 0x41, 0xd9, 0x64, 0x9e, 0x3b, 0xe3, 0x1e, 0x24, 0x55, 0xe6, 0x61, 0xa7, 0x95, 0x1f, 0x8e, 0x04, + 0x39, 0x54, 0xcf, 0x61, 0x74, 0x48, 0xdd, 0xe0, 0x81, 0x97, 0xcd, 0x67, 0x9b, 0x51, 0x12, 0x47, + 0xaf, 0xa1, 0xf0, 0x46, 0x2c, 0x14, 0x0e, 0x2e, 0x87, 0x0a, 0x9a, 0x34, 0xa8, 0xc7, 0x23, 0x2c, + 0x50, 0x80, 0x30, 0x6e, 0x50, 0x8f, 0x45, 0x58, 0x54, 0x98, 0x78, 0xde, 0xc0, 0xfb, 0xcb, 0x1c, + 0x79, 0x33, 0x51, 0xef, 0x55, 0x35, 0x5f, 0x90, 0x9e, 0xfc, 0xd5, 0x77, 0x12, 0x15, 0x5c, 0x80, + 0xc8, 0x27, 0x13, 0x19, 0x4b, 0x96, 0xae, 0x1c, 0xab, 0x8f, 0x60, 0x09, 0xcb, 0x0b, 0x61, 0x71, + 0x15, 0x64, 0xb9, 0xf3, 0xbf, 0x11, 0x13, 0xa4, 0x6f, 0xc8, 0x77, 0xc2, 0x93, 0x3c, 0xd9, 0xcf, + 0x47, 0xc8, 0x4d, 0x7e, 0xdd, 0x0c, 0x73, 0xe8, 0xa3, 0x1c, 0xf3, 0x41, 0xea, 0x0e, 0x65, 0x35, + 0x94, 0xba, 0x2c, 0x42, 0xfb, 0x2b, 0x64, 0xbe, 0xf6, 0x47, 0x77, 0xd1, 0x61, 0x7f, 0x84, 0x87, + 0x1c, 0xaa, 0x4a, 0xdc, 0x5d, 0x53, 0x27, 0xf8, 0xab, 0x08, 0x77, 0x17, 0xca, 0xe2, 0xab, 0x79, + 0x7a, 0x9a, 0xfa, 0x67, 0x22, 0x2a, 0xd7, 0xfa, 0x41, 0x81, 0xc5, 0xc8, 0x43, 0xf8, 0xeb, 0x52, + 0x4a, 0xce, 0x5b, 0xb4, 0x6c, 0x7c, 0xbb, 0xe7, 0xcc, 0xb3, 0x2e, 0xa6, 0x57, 0xde, 0x1a, 0x08, + 0x37, 0x9c, 0xda, 0x6f, 0x24, 0x4b, 0x07, 0x63, 0x13, 0xbb, 0x59, 0xb0, 0xdc, 0xcc, 0xe2, 0xfd, + 0xca, 0xad, 0x01, 0x30, 0xc3, 0x49, 0xfd, 0x72, 0x94, 0x8c, 0x9a, 0xac, 0x75, 0xc7, 0x37, 0xfa, + 0x22, 0x1c, 0xaa, 0x40, 0xe5, 0xcd, 0xbe, 0xf1, 0xc2, 0xe9, 0xfc, 0x1d, 0xcf, 0x72, 0xea, 0xa5, + 0xd2, 0x1c, 0x6f, 0x16, 0xed, 0x47, 0x8f, 0x05, 0xf6, 0x95, 0x77, 0xf6, 0x4f, 0x28, 0x8d, 0xa1, + 0xc9, 0x4a, 0xf1, 0x42, 0x86, 0x66, 0x14, 0xb1, 0x17, 0x32, 0x34, 0xab, 0x24, 0x5d, 0x1e, 0xc2, + 0xbf, 0x2d, 0x45, 0x87, 0x71, 0x77, 0x0d, 0x38, 0xbe, 0x55, 0xb4, 0xf2, 0xcc, 0x9a, 0xf5, 0xca, + 0xed, 0x41, 0x50, 0xc3, 0x79, 0xbd, 0x40, 0x87, 0xba, 0x4a, 0xb6, 0xf1, 0x6b, 0x05, 0xeb, 0xec, + 0x2a, 0x32, 0xaf, 0x5c, 0xed, 0x03, 0x23, 0x1c, 0xfb, 0x17, 0xa4, 0xf0, 0x59, 0x1d, 0xb7, 0xd1, + 0xf8, 0xf5, 0x02, 0x72, 0xa9, 0x26, 0xbf, 0xf2, 0x46, 0x9f, 0x58, 0x5d, 0x9b, 0x93, 0x5e, 0xf4, + 0x8d, 0x8b, 0x14, 0x3b, 0xbb, 0x2e, 0x3d, 0x7f, 0x73, 0xf2, 0x6b, 0xcc, 0xe5, 0x21, 0xfc, 0xab, + 0x51, 0x5d, 0x7f, 0x57, 0xd9, 0x36, 0x7e, 0xb3, 0x3f, 0xd2, 0x11, 0x9b, 0x6e, 0xf6, 0x8f, 0x18, + 0xce, 0xe8, 0xab, 0xe0, 0x20, 0x49, 0x66, 0xa0, 0xe2, 0xd4, 0xe4, 0x0b, 0x56, 0x39, 0x92, 0x04, + 0x8d, 0x24, 0xa6, 0x77, 0x8c, 0x14, 0x69, 0x8d, 0x8a, 0xbe, 0x0b, 0xa5, 0xb5, 0xab, 0x0c, 0xbd, + 0x50, 0x5a, 0xbb, 0x2b, 0xca, 0xe3, 0xd2, 0x1a, 0xaf, 0xcc, 0x2e, 0x94, 0xd6, 0xd4, 0xea, 0xef, + 0x42, 0x69, 0x4d, 0x2f, 0xff, 0x96, 0x87, 0xf0, 0xd7, 0x24, 0x74, 0x2c, 0xbd, 0x6a, 0x16, 0xbf, + 0xd1, 0xd3, 0xc2, 0x92, 0xf5, 0x84, 0x95, 0x1b, 0xfd, 0xa2, 0x75, 0x59, 0xd9, 0x94, 0x7a, 0xca, + 0x7c, 0x2b, 0x9b, 0x5d, 0x81, 0x9b, 0x6f, 0x65, 0x73, 0x0a, 0x37, 0x85, 0x5b, 0x47, 0x46, 0x41, + 0x31, 0xbe, 0xdd, 0xdf, 0x42, 0x63, 0xc6, 0xff, 0xad, 0x81, 0x70, 0xc3, 0xa9, 0xfd, 0xae, 0x94, + 0xb8, 0xb0, 0x26, 0xd9, 0xf5, 0x56, 0x4f, 0xd6, 0x2b, 0x83, 0x67, 0x77, 0x06, 0x43, 0xee, 0xb2, + 0x34, 0x69, 0xe5, 0x7f, 0xb8, 0x8f, 0x0d, 0x89, 0x55, 0x72, 0xe6, 0x5b, 0x9a, 0xbc, 0x4a, 0x43, + 0x41, 0xb2, 0x52, 0x8a, 0xee, 0xf2, 0x25, 0x2b, 0xbb, 0xca, 0x2f, 0x5f, 0xb2, 0x72, 0xaa, 0xfb, + 0xe4, 0x21, 0xfc, 0x87, 0x62, 0x0d, 0x60, 0x7a, 0x35, 0x1c, 0xbe, 0x57, 0x48, 0x3e, 0xb7, 0x1c, + 0xaf, 0xf2, 0xf6, 0xc0, 0xf8, 0xe1, 0x34, 0x9f, 0xa3, 0xb9, 0x64, 0x4d, 0x10, 0x5e, 0x2e, 0x90, + 0x8d, 0x64, 0xf1, 0x53, 0xe5, 0xb5, 0xde, 0x11, 0xc2, 0x81, 0x7f, 0x56, 0x82, 0x93, 0x21, 0x59, + 0x75, 0x83, 0xaf, 0xf7, 0x57, 0xa3, 0x03, 0x33, 0x78, 0x7d, 0x90, 0xc2, 0x9e, 0xc4, 0x2c, 0xc4, + 0xd2, 0x95, 0xe2, 0x59, 0xa4, 0xd4, 0xe5, 0x14, 0xcf, 0x22, 0xad, 0x3a, 0x46, 0x50, 0xa6, 0xb4, + 0x3a, 0x8d, 0x7c, 0x65, 0xca, 0xa9, 0x6f, 0xc9, 0x57, 0xa6, 0xbc, 0x92, 0x10, 0x79, 0x08, 0xff, + 0xa9, 0x14, 0x79, 0xb3, 0xb2, 0x6b, 0x33, 0x70, 0x61, 0x39, 0x50, 0x61, 0x69, 0x48, 0x65, 0x75, + 0x3f, 0x24, 0xc2, 0xf9, 0xfe, 0xb1, 0x94, 0x53, 0x34, 0xc0, 0x8b, 0x2c, 0xf0, 0xdb, 0x45, 0x62, + 0x5a, 0x50, 0xe1, 0x51, 0xb9, 0x3f, 0x38, 0x81, 0xb4, 0xc7, 0x64, 0x77, 0x01, 0x44, 0xe1, 0x63, + 0x32, 0xb3, 0x6c, 0xa3, 0xf0, 0x31, 0x99, 0x5d, 0xb5, 0x11, 0x9f, 0x54, 0xf7, 0x1a, 0x0a, 0x27, + 0x95, 0x59, 0xa6, 0x51, 0x38, 0xa9, 0xec, 0x42, 0x8c, 0x74, 0xdd, 0x64, 0xa9, 0xfe, 0x3d, 0xeb, + 0xa6, 0x58, 0x7a, 0xd1, 0xb3, 0x6e, 0xc6, 0x4a, 0x28, 0xe4, 0x21, 0xfc, 0xcd, 0x2e, 0x3f, 0x7e, + 0xa2, 0xe0, 0x00, 0xdf, 0xe9, 0x87, 0x72, 0xb2, 0x74, 0xa2, 0x72, 0x77, 0x40, 0xec, 0x54, 0x55, + 0xcd, 0xae, 0x03, 0xc0, 0xbd, 0x57, 0xee, 0x65, 0x95, 0x38, 0x14, 0xab, 0x6a, 0x71, 0x19, 0x42, + 0xc2, 0x53, 0x50, 0x94, 0x3a, 0x5b, 0xec, 0x29, 0xe8, 0x31, 0x89, 0xb7, 0xd8, 0x53, 0xd0, 0x6b, + 0x16, 0xaf, 0x3c, 0x84, 0xff, 0x5c, 0x8a, 0xbc, 0xf4, 0x39, 0x89, 0xb3, 0x78, 0x75, 0xa0, 0x31, + 0xe3, 0xe2, 0xb1, 0xb6, 0x2f, 0x1a, 0xa9, 0xde, 0xb5, 0xb4, 0x52, 0x8b, 0x42, 0x9f, 0x40, 0x76, + 0xc9, 0x47, 0xb1, 0x77, 0x2d, 0xa7, 0xfe, 0x40, 0x1e, 0xc2, 0x7f, 0x25, 0x45, 0xb1, 0x99, 0xdc, + 0x8c, 0x7e, 0xbc, 0x5e, 0x34, 0x50, 0x2f, 0x85, 0x07, 0x95, 0x8d, 0x7d, 0x52, 0xe9, 0x7a, 0xdf, + 0x75, 0x67, 0xec, 0x17, 0xda, 0x9a, 0xb4, 0x6a, 0x81, 0xfc, 0xf7, 0x5d, 0x66, 0x52, 0x7c, 0xc2, + 0x50, 0xc6, 0x12, 0xa1, 0x0b, 0x0d, 0x65, 0x4a, 0x0a, 0x76, 0xb1, 0xa1, 0x4c, 0x4b, 0x54, 0x96, + 0x87, 0xb0, 0x85, 0xa6, 0x63, 0x59, 0xc2, 0xf8, 0xd5, 0x02, 0xe3, 0x1f, 0xcb, 0x47, 0xae, 0x5c, + 0xe9, 0x11, 0x3a, 0x6d, 0x3c, 0xc8, 0x4f, 0x2c, 0x1c, 0x4f, 0xcc, 0xd0, 0x28, 0x1e, 0x2f, 0x96, + 0xb7, 0x11, 0x73, 0x25, 0x44, 0xf9, 0x10, 0x85, 0xae, 0x84, 0xae, 0x64, 0x8d, 0xca, 0xd5, 0x3e, + 0x30, 0xc2, 0xb1, 0x7f, 0x5a, 0x02, 0x9f, 0x7d, 0x22, 0x85, 0x01, 0x5f, 0xeb, 0xe5, 0xe2, 0x1d, + 0xcf, 0xaf, 0xa8, 0x5c, 0xef, 0x0b, 0x27, 0xcd, 0x89, 0x90, 0x48, 0x39, 0x28, 0x74, 0x22, 0xa4, + 0x67, 0x46, 0x54, 0x6e, 0xf4, 0x8b, 0xd6, 0x35, 0x97, 0xee, 0xe8, 0x33, 0x7e, 0xa3, 0xb7, 0x33, + 0x2a, 0x11, 0x8b, 0xaf, 0xdc, 0xe8, 0x17, 0x2d, 0xf5, 0x7e, 0x90, 0x1a, 0x5a, 0x2e, 0xbe, 0x1f, + 0xe4, 0x85, 0xb8, 0x8b, 0xef, 0x07, 0xb9, 0xf1, 0xec, 0x84, 0xe9, 0x4f, 0x89, 0x29, 0x17, 0x9b, + 0xfe, 0xec, 0x68, 0x76, 0xb1, 0xe9, 0xcf, 0x09, 0x62, 0x0b, 0x62, 0x9d, 0x88, 0xf7, 0xe6, 0x8b, + 0x75, 0x7a, 0x74, 0xba, 0x72, 0x7d, 0x80, 0x80, 0xb2, 0x3c, 0x84, 0xbf, 0x25, 0x85, 0x99, 0x34, + 0x19, 0x71, 0x5a, 0x7c, 0xb7, 0xd0, 0x32, 0xe5, 0x45, 0x87, 0x2b, 0xf7, 0x06, 0x45, 0xef, 0x9a, + 0x63, 0x76, 0x48, 0x36, 0x7f, 0x8e, 0x85, 0x31, 0xe4, 0xfc, 0x39, 0x16, 0x47, 0x82, 0x53, 0x1c, + 0xad, 0xec, 0x4f, 0xad, 0xf5, 0xe6, 0x68, 0x15, 0xe2, 0xbf, 0x3d, 0x3a, 0x5a, 0xc5, 0xc0, 0xaf, + 0xe0, 0x8d, 0x4f, 0xaf, 0x00, 0xc9, 0xf7, 0xc6, 0xe7, 0x16, 0x9c, 0xe4, 0x7b, 0xe3, 0xf3, 0x0b, + 0x4e, 0x04, 0x0f, 0x5e, 0x56, 0x45, 0x43, 0xbe, 0x07, 0xaf, 0xa0, 0x88, 0x22, 0xdf, 0x83, 0x57, + 0x54, 0x44, 0x21, 0x18, 0xae, 0xcc, 0x48, 0x33, 0xbe, 0xd3, 0xd3, 0x66, 0x64, 0x44, 0xba, 0x2b, + 0x77, 0x07, 0xc4, 0x0e, 0x26, 0xb8, 0xaa, 0x7d, 0xf4, 0xe9, 0x82, 0xf4, 0xf1, 0xa7, 0x0b, 0xd2, + 0x0f, 0x3e, 0x5d, 0x90, 0x7e, 0xed, 0xb3, 0x85, 0xa1, 0x8f, 0x3f, 0x5b, 0x18, 0xfa, 0xb7, 0xcf, + 0x16, 0x86, 0xde, 0xdf, 0x14, 0x4a, 0x1a, 0x6a, 0x56, 0xed, 0x0a, 0xcb, 0x7f, 0x5e, 0x8e, 0xc2, + 0x03, 0x57, 0x78, 0x78, 0xe0, 0x4a, 0x50, 0xa7, 0xb0, 0x9c, 0xfe, 0xff, 0x77, 0xaa, 0x8d, 0xb1, + 0xff, 0xfd, 0xcf, 0xf5, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x62, 0xda, 0x9c, 0x97, 0x00, 0x6a, + 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -20692,7 +20693,7 @@ func (m *GfSpListDeletedObjectsByBlockNumberRangeRequest) Unmarshal(dAtA []byte) } b := dAtA[iNdEx] iNdEx++ - m.StartBlockNumber |= int64(b&0x7F) << shift + m.StartBlockNumber |= uint64(b&0x7F) << shift if b < 0x80 { break } @@ -20711,7 +20712,7 @@ func (m *GfSpListDeletedObjectsByBlockNumberRangeRequest) Unmarshal(dAtA []byte) } b := dAtA[iNdEx] iNdEx++ - m.EndBlockNumber |= int64(b&0x7F) << shift + m.EndBlockNumber |= uint64(b&0x7F) << shift if b < 0x80 { break } @@ -20834,7 +20835,7 @@ func (m *GfSpListDeletedObjectsByBlockNumberRangeResponse) Unmarshal(dAtA []byte } b := dAtA[iNdEx] iNdEx++ - m.EndBlockNumber |= int64(b&0x7F) << shift + m.EndBlockNumber |= uint64(b&0x7F) << shift if b < 0x80 { break } diff --git a/proto/modular/metadata/types/metadata.proto b/proto/modular/metadata/types/metadata.proto index 2d2241110..771f4092b 100644 --- a/proto/modular/metadata/types/metadata.proto +++ b/proto/modular/metadata/types/metadata.proto @@ -217,10 +217,10 @@ message GfSpGetBucketByBucketIDResponse { message GfSpListDeletedObjectsByBlockNumberRangeRequest { // start_block_number defines the start of range // [start_block_number, end_block_number], start_block_number > end_block_number is invalid - int64 start_block_number = 1; + uint64 start_block_number = 1; // end_block_number defines the end of range // end_block_number < 0 or start_block_number > end_block_number is invalid - int64 end_block_number = 2; + uint64 end_block_number = 2; // include_private indicates whether this request can get the private objects information bool include_private = 3; } @@ -230,7 +230,7 @@ message GfSpListDeletedObjectsByBlockNumberRangeResponse { // objects defines the list of object repeated Object objects = 1; // latest_block_number defines the response objects latest block number - int64 end_block_number = 2; + uint64 end_block_number = 2; } // GfSpGetUserBucketsCountRequest is request type for the GfSpGetUserBucketsCount RPC method. diff --git a/store/bsdb/block.go b/store/bsdb/block.go index 8f32aff80..42423ba03 100644 --- a/store/bsdb/block.go +++ b/store/bsdb/block.go @@ -5,9 +5,9 @@ import ( ) // GetLatestBlockNumber get current latest block number -func (b *BsDBImpl) GetLatestBlockNumber() (int64, error) { +func (b *BsDBImpl) GetLatestBlockNumber() (uint64, error) { var ( - latestBlockNumber int64 + latestBlockNumber uint64 err error ) startTime := time.Now() diff --git a/store/bsdb/block_test.go b/store/bsdb/block_test.go index c44a472d4..3dc87af97 100644 --- a/store/bsdb/block_test.go +++ b/store/bsdb/block_test.go @@ -14,7 +14,7 @@ const ( ) func TestBsDBImpl_GetLatestBlockNumberSuccess(t *testing.T) { - expectedBlockHeight := int64(12345) + expectedBlockHeight := uint64(12345) s, mock := setupDB(t) mock.ExpectQuery(mockBlockHeightQuerySQL). @@ -34,7 +34,7 @@ func TestBsDBImpl_GetLatestBlockNumberNoRecords(t *testing.T) { blockNum, err := s.GetLatestBlockNumber() assert.Error(t, err) assert.True(t, errors.Is(err, gorm.ErrRecordNotFound)) - assert.Equal(t, int64(0), blockNum) + assert.Equal(t, uint64(0), blockNum) } func TestBsDBImpl_GetLatestBlockNumberDBError(t *testing.T) { @@ -44,7 +44,7 @@ func TestBsDBImpl_GetLatestBlockNumberDBError(t *testing.T) { blockNum, err := s.GetLatestBlockNumber() assert.Error(t, err) assert.Contains(t, err.Error(), mockDBInternalError.Error()) - assert.Equal(t, int64(0), blockNum) + assert.Equal(t, uint64(0), blockNum) } func TestBsDBImpl_GetLatestBlockNumberMultipleRecords(t *testing.T) { @@ -55,5 +55,5 @@ func TestBsDBImpl_GetLatestBlockNumberMultipleRecords(t *testing.T) { blockNum, err := s.GetLatestBlockNumber() assert.Nil(t, err) - assert.Equal(t, int64(54321), blockNum) + assert.Equal(t, uint64(54321), blockNum) } diff --git a/store/bsdb/database.go b/store/bsdb/database.go index 5298353df..666f92b5e 100644 --- a/store/bsdb/database.go +++ b/store/bsdb/database.go @@ -20,7 +20,7 @@ type Metadata interface { // GetBucketByID get buckets info by by a bucket id GetBucketByID(bucketID int64, includePrivate bool) (*Bucket, error) // GetLatestBlockNumber get current latest block number - GetLatestBlockNumber() (int64, error) + GetLatestBlockNumber() (uint64, error) // GetPaymentByBucketName get bucket payment info by a bucket name GetPaymentByBucketName(bucketName string, includePrivate bool) (*StreamRecord, error) // GetPaymentByBucketID get bucket payment info by a bucket id @@ -38,7 +38,7 @@ type Metadata interface { // ListObjectsByBucketName list objects info by a bucket name ListObjectsByBucketName(bucketName, continuationToken, prefix, delimiter string, maxKeys int, includeRemoved bool) ([]*ListObjectsResult, error) // ListDeletedObjectsByBlockNumberRange list deleted objects info by a block number range - ListDeletedObjectsByBlockNumberRange(startBlockNumber int64, endBlockNumber int64, includePrivate bool) ([]*Object, error) + ListDeletedObjectsByBlockNumberRange(startBlockNumber uint64, endBlockNumber uint64, includePrivate bool) ([]*Object, error) // ListExpiredBucketsBySp list expired buckets by sp ListExpiredBucketsBySp(createAt int64, primarySpID uint32, limit int64) ([]*Bucket, error) // GetObjectByName get object info by an object name diff --git a/store/bsdb/database_mock.go b/store/bsdb/database_mock.go index 0df10eccb..8f973aa40 100644 --- a/store/bsdb/database_mock.go +++ b/store/bsdb/database_mock.go @@ -298,10 +298,10 @@ func (mr *MockMetadataMockRecorder) GetGvgByBucketAndLvgID(bucketID, lvgID any) } // GetLatestBlockNumber mocks base method. -func (m *MockMetadata) GetLatestBlockNumber() (int64, error) { +func (m *MockMetadata) GetLatestBlockNumber() (uint64, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetLatestBlockNumber") - ret0, _ := ret[0].(int64) + ret0, _ := ret[0].(uint64) ret1, _ := ret[1].(error) return ret0, ret1 } @@ -692,7 +692,7 @@ func (mr *MockMetadataMockRecorder) ListCompleteMigrationBucket(srcSpID any, fil } // ListDeletedObjectsByBlockNumberRange mocks base method. -func (m *MockMetadata) ListDeletedObjectsByBlockNumberRange(startBlockNumber, endBlockNumber int64, includePrivate bool) ([]*Object, error) { +func (m *MockMetadata) ListDeletedObjectsByBlockNumberRange(startBlockNumber, endBlockNumber uint64, includePrivate bool) ([]*Object, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListDeletedObjectsByBlockNumberRange", startBlockNumber, endBlockNumber, includePrivate) ret0, _ := ret[0].([]*Object) @@ -1351,10 +1351,10 @@ func (mr *MockBSDBMockRecorder) GetGvgByBucketAndLvgID(bucketID, lvgID any) *gom } // GetLatestBlockNumber mocks base method. -func (m *MockBSDB) GetLatestBlockNumber() (int64, error) { +func (m *MockBSDB) GetLatestBlockNumber() (uint64, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetLatestBlockNumber") - ret0, _ := ret[0].(int64) + ret0, _ := ret[0].(uint64) ret1, _ := ret[1].(error) return ret0, ret1 } @@ -1745,7 +1745,7 @@ func (mr *MockBSDBMockRecorder) ListCompleteMigrationBucket(srcSpID any, filters } // ListDeletedObjectsByBlockNumberRange mocks base method. -func (m *MockBSDB) ListDeletedObjectsByBlockNumberRange(startBlockNumber, endBlockNumber int64, includePrivate bool) ([]*Object, error) { +func (m *MockBSDB) ListDeletedObjectsByBlockNumberRange(startBlockNumber, endBlockNumber uint64, includePrivate bool) ([]*Object, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListDeletedObjectsByBlockNumberRange", startBlockNumber, endBlockNumber, includePrivate) ret0, _ := ret[0].([]*Object) diff --git a/store/bsdb/object.go b/store/bsdb/object.go index 4ac937b11..77b52a12b 100644 --- a/store/bsdb/object.go +++ b/store/bsdb/object.go @@ -97,7 +97,7 @@ func (a ByUpdateAtAndObjectID) Less(i, j int) bool { func (a ByUpdateAtAndObjectID) Swap(i, j int) { a[i], a[j] = a[j], a[i] } // ListDeletedObjectsByBlockNumberRange list deleted objects info by a block number range -func (b *BsDBImpl) ListDeletedObjectsByBlockNumberRange(startBlockNumber int64, endBlockNumber int64, includePrivate bool) ([]*Object, error) { +func (b *BsDBImpl) ListDeletedObjectsByBlockNumberRange(startBlockNumber uint64, endBlockNumber uint64, includePrivate bool) ([]*Object, error) { var ( totalObjects []*Object objects []*Object diff --git a/util/string.go b/util/string.go index b575dbad7..914d21c0d 100644 --- a/util/string.go +++ b/util/string.go @@ -34,6 +34,14 @@ func StringToInt64(str string) (int64, error) { return i64, nil } +// Uint64ToInt64 converts uint64 to int64 +// This method ignores errors when the size of n exceeds the int64 range. Please determine the value before use +func Uint64ToInt64(n uint64) int64 { + str := Uint64ToString(n) + res, _ := StringToInt64(str) + return res +} + // StringToUint32 coverts string to uint32 func StringToUint32(str string) (uint32, error) { ui64, err := StringToUint64(str)